> ## Documentation Index
> Fetch the complete documentation index at: https://qitor.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Third-party extension index

> Replace mechanisms while preserving their public contracts.

These are replaceable framework mechanisms, not an exhaustive package index or a perpetual cross-version stability promise. Assemble extensions through explicit Python factories rather than arbitrary config-selected imports. The default lesson uses pure tools and a fake provider; client dependencies are listed in Installation.

| Extension        | Public entry                                                            | Contract to preserve                                                                                          |
| ---------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| Provider         | `qitos.models.base.Model`, `ModelFactory`; composition `model_override` | Model request/response, codec, continuation, typed failures; provider extra required only for that client     |
| Tool             | `qitos.core.tool.BaseTool.execute`, `ToolRegistry`                      | Schema, permission, effect declarations, ToolResult, cancellation and unknown outcome                         |
| Checkpoint store | `qitos.checkpoint.store.CheckpointStore`                                | Session capabilities, snapshot commit CAS, lineage, fork and durability; SQLite reference implementation      |
| Event sink       | `qitos.tracing.sinks.EventSink`                                         | Privacy view, loss, required/optional failure policy, append/close contract                                   |
| Sandbox          | `qitos.core.env.Env`                                                    | Capability preflight, bounded tools, real isolation, artifacts, cleanup; publication is separately authorized |
| Evaluator        | `qitos.evaluate.base.TrajectoryEvaluator.evaluate`                      | EvaluationContext to EvaluationResult, evidence, provenance and declared loss                                 |

[Complete provider/context extension](/guides/third-party-extensions) · [API index](/reference/api)

## Provider stream lifecycle

Built-in native Chat, Responses and Anthropic streams validate provider termination before publishing success. Partial tool input, premature EOF and conflicting terminals fail closed. Usage-only trailing chunks are collected without duplicate charging; missing usage is unknown. `chat_template_kwargs` is relocated to `extra_body` for the OpenAI SDK. Explicit output limits are preserved.

Owned SDK clients and response iterators close on completion, failure and explicit close/aclose. Consumer callbacks propagate failure. Async cancellation cannot kill a running Python thread; AsyncEngine retains worker ownership until completion. Client construction is a proven unsent failure; transport failures remain conservatively possibly sent. Non-native LiteLLM, Gemini and local fallbacks emit one complete chunk and do not advertise token streaming.

Model history rereads preserve recorded tool completion order; declaration-order result views remain derived views. The offline installed consumer verifies this across three model requests.
