feat: initial bootstrap — structure, task_brief, blackboard, adapter bases, escalation, prompts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-15 02:19:14 -04:00
commit eaf7fd8f6f
33 changed files with 2141 additions and 0 deletions

50
adapters/base/llm.py Normal file
View File

@@ -0,0 +1,50 @@
"""
adapters/base/llm.py
Abstract base class for all LLM adapters.
"""
from abc import ABC, abstractmethod
class LLMAdapter(ABC):
"""
Contract that every LLM provider adapter must fulfil.
Capability strings
------------------
"reasoning-heavy" — tasks requiring deep chain-of-thought (e.g. T1, T2)
"capable" — general-purpose capable model (e.g. T3, T4)
"fast-cheap" — high-volume, low-latency tasks (e.g. T5 quick checks)
"""
@abstractmethod
def complete(self, prompt: str, capability: str, context: dict) -> str:
"""
Send a prompt to the model and return the text response.
Parameters
----------
prompt : The full prompt string (system + user combined or just user).
capability : One of "reasoning-heavy" | "capable" | "fast-cheap".
context : Arbitrary key/value bag passed to the adapter (e.g. system
prompt override, temperature, max_tokens).
Returns
-------
The model's text completion as a plain string.
"""
...
@abstractmethod
def resolve_model(self, capability: str) -> str:
"""
Map a capability string to the concrete model identifier for this provider.
Parameters
----------
capability : One of "reasoning-heavy" | "capable" | "fast-cheap".
Returns
-------
Model identifier string (e.g. "claude-opus-4-6", "gpt-4o").
"""
...