mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-06 08:18:58 +00:00
- Enforce stream_read timeout (30s default) in all 4 providers' streaming code - Add with_timeout() builder method to all adapter constructors - Fix ResponseFormatType::JsonObject to serialize as "json" per spec - Add STEP_FINISH to StreamEventType enum in spec doc - Add UnsupportedToolChoice error and enforce in all adapters via validate_tool_choice() - Fix error classification to check status code before message content - Add stop_sequences support to OpenAI Responses API adapter - Handle Gemini thought parts (thought: true) in both complete and streaming paths Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| attractor-spec.md | ||
| coding-agent-loop-spec.md | ||
| README.md | ||
| unified-llm-spec.md | ||
Attractor
This repository contains NLSpecs to build your own version of Attractor to create your own software factory.
Although bringing your own agentic loop and unified LLM SDK is not required to build your own Attractor, we highly recommend controlling the stack so you have a strong foundation.
Specs
Building Attractor
Supply the following prompt to a modern coding agent (Claude Code, Codex, OpenCode, Amp, Cursor, etc):
codeagent> Implement Attractor as described by https://factory.strongdm.ai/
Terminology
- NLSpec (Natural Language Spec): a human-readable spec intended to be directly usable by coding agents to implement/validate behavior.