Goal: A local-model backend adapter for \contract:typed-decision\ (\ ools/typed-decision/), supporting llama.cpp, Ollama, or vLLM endpoints.
Why: PR #1402 introduced the \contract:typed-decision\ interface with TypeSafe Jev API as the initial cloud backend. Providing a local-model backend enables offline, zero-egress structured decisions without third-party network calls and establishes a second independent backend for vendor neutrality.
What it needs to do (see \ ools/typed-decision/tool.md\ § Interface):
- Implement \DecisionProvider\ (\choice, \score,
oul) against local OpenAI-compatible or Ollama endpoints (e.g. \http://localhost:11434/v1\ or \http://localhost:8080/v1\).
- Support structured outputs via JSON schema or constrained grammars (e.g. GBNF) for discrete choice selection and bounded scale evaluation.
- Strictly adhere to \TypedDecisionUnavailable\ fail-open semantics on connection, timeout, or schema failure.
References: \ ools/typed-decision/tool.md, \docs/adapters/registry.md, \docs/vendor-neutrality.md.
Goal: A local-model backend adapter for \contract:typed-decision\ (\ ools/typed-decision/), supporting llama.cpp, Ollama, or vLLM endpoints.
Why: PR #1402 introduced the \contract:typed-decision\ interface with TypeSafe Jev API as the initial cloud backend. Providing a local-model backend enables offline, zero-egress structured decisions without third-party network calls and establishes a second independent backend for vendor neutrality.
What it needs to do (see \ ools/typed-decision/tool.md\ § Interface):
oul) against local OpenAI-compatible or Ollama endpoints (e.g. \http://localhost:11434/v1\ or \http://localhost:8080/v1\).
References: \ ools/typed-decision/tool.md, \docs/adapters/registry.md, \docs/vendor-neutrality.md.