Repository navigation
Render the inference document from the provider registry - #229
Merged
Merged
Conversation
The controller projected a resolved provider as harness variables on the pod (OPENAI_API_KEY, OPENAI_BASE_URL, CRUCIBLE_INFERENCE_WIRE_API), while the engine already reads one typed document, CRUCIBLE_INFERENCE, and nothing wrote it. Route tasks need a decision binding, so a deployed controller could not run one; projecting a decision key the old way collides with an OpenAI agent's key and lands in agent sandboxes. Dispatch defaults now name a role, agent or decision. A decision default resolves per domain and class like an agent default, is refused on the autoresearch class, and takes no launch pin. A provider serves the roles its kind or protocol can: OpenAI serves both (the Decisions API for decisions, gpt-6-luna by default), Anthropic and Vertex agents only, and a custom provider whatever its protocol does; system_one and decisions join the custom protocols. Every pod dispatch (playbook run, scope and rank turn, grounded rank) carries CRUCIBLE_INFERENCE with one binding per resolved role, and each key as a secretKeyRef under CRUCIBLE_INFERENCE_KEY_AGENT or CRUCIBLE_INFERENCE_KEY_DECISION, which no harness reads. A credentials map gives up the entry its protocol's clients read as the key; an agent keeps its other entries, a decision drops them. The local executor reads no secrets and keeps passing CRUCIBLE_* through. Migration 0054 adds the role column to dispatch_defaults. The UI shows what each provider serves and edits defaults per role. ADR-0065.
|
Docs preview for this PR is built and attached as the Download Rebuilt for 67abc3b. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The controller now hands the engine its models as the
CRUCIBLE_INFERENCEdocument the engine already reads (C-INFERENCE), one binding per role, instead of projecting harness variables (OPENAI_API_KEY,OPENAI_BASE_URL,CRUCIBLE_INFERENCE_WIRE_API) onto the pod. This lets a deployed controller run model-decided routes; the old projection could not carry a decision key without colliding with an OpenAI agent's key or leaking into agent sandboxes. Decision in ADR-0065.agentordecision(migration 0054). A decision default resolves per domain and class like an agent default, is refused on autoresearch (no route tasks there), and takes no launch pin.gpt-6-lunaunless the default names a model), Anthropic and Vertex agents only, custom whatever its protocol does;system_oneanddecisionsjoin the custom protocols. Defaults, fallbacks and pins that name a provider that cannot serve the role are refused.CRUCIBLE_INFERENCE_KEY_AGENT/_DECISION, names no harness reads. A credentials map gives up its protocol's entry as the key; the agent keeps the other entries, a decision drops them. The local executor still passes its ownCRUCIBLE_*through.Stacked on #226. Pod specs no longer carry the harness variables from the registry, so dispatch images must run an engine at contract 1.15.0+. Tested with provider/resolution sqlx tests, pod-spec tests for run, turn and grounded-rank pods, a reconcile-driven playbook launch asserting both bindings and keys, API tests for role validation, and the UI unit tests; full controller suite green.
Changelog: Changed: the controller passes models to runs as the CRUCIBLE_INFERENCE document from its provider registry, with agent and decision defaults per scope