mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-20 00:11:34 +00:00
- Parse x-ratelimit-* headers into RateLimitInfo for Anthropic, OpenAI, and OpenAI-compatible providers (previously hardcoded to None) - Add "not found"/"does not exist" and "unauthorized"/"invalid key" error message classification patterns for ambiguous HTTP status codes - Apply TimeoutConfig.total to wrap the entire multi-step generate() loop (previously only per_step was used) - Add metadata field to GenerateParams with builder method, pass through to Request instead of hardcoding None - Implement stream_object() for streaming structured output with incremental JSON parsing via new ObjectStreamEvent type (Partial/Delta/Complete variants) - Add OpenAI-compatible Chat Completions adapter for third-party endpoints 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.