Session 2. Call a model through the adapter — Tue 15 Sep

Conclusion

You called a model through complete(system, user) -> str and never through a vendor SDK.

What you did

The failure you handled

A timeout. answer_with_timeout turns a provider that never answers into an AgentResult flagged for review, citing nothing, with the cause kept in the trace and out of the answer.

What to carry forward

From here, every client you write is passed in as an argument. Nothing in the capstone constructs its own model.

Into session 3

Session 3 assumes this seam and stops trusting the string that comes back through it: ResearchAnswer, a strict parser, and a parse failure that is also a refusal.