Files
msd-core/capabilities/ollama/capability.json
2026-09-06 02:10:29 +00:00

67 lines
2.5 KiB
JSON

{
"id": "ollama",
"role": "reviewer",
"version": "1.13.0",
"title": "Ollama",
"description": "Ollama local model server — cross-AI /gsd:review reviewer lane only; not a GSD install target (no runtime body, no artifacts). OpenAI-compatible HTTP transport against a user-configured `review.ollama_host` (POST /v1/chat/completions); model discovered via GET /v1/models piped through jq.",
"tier": "full",
"requires": [],
"engines": {
"gsd": ">=1.8.0"
},
"reviewer": {
"slug": "ollama",
"flags": [
"--ollama"
],
"transport": "openai-http",
"probe": {
"kind": "http-reachable",
"hostConfigKey": "review.ollama_host",
"path": "/v1/models",
"timeoutMs": 2000
},
"invoke": {
"hostConfigKey": "review.ollama_host",
"defaultHost": "http://localhost:11434",
"path": "/v1/chat/completions",
"modelDiscovery": "first-from-models-endpoint",
"fallbackModel": "llama3",
"effortChannel": "none"
},
"timeoutFloorMs": 120000,
"timeoutConfigKey": "review.timeouts.ollama",
"emptyOutput": "stub-with-stderr",
"reviewsSection": "Ollama",
"evidenceClass": "source-grounded",
"requiresBinaries": [],
"promptBudgetKey": "review.max_prompt_tokens_per_reviewer.ollama",
"modelConfigKey": "review.models.ollama",
"effortConfigKey": null,
"defaultEffort": null,
"handler": "openai-compatible"
},
"config": {
"review.models.ollama": {
"type": "string",
"default": "",
"description": "Model requested from the Ollama reviewer lane; empty discovers the first model from /v1/models."
},
"review.ollama_host": {
"type": "string",
"default": "",
"description": "Base URL of the Ollama OpenAI-compatible server."
},
"review.max_prompt_tokens_per_reviewer.ollama": {
"type": "number",
"default": -1,
"description": "Prompt-token budget for the Ollama reviewer lane. Unset is -1, a sentinel: 0 is a legitimate value meaning \"do not trim this lane\", so it cannot double as \"not configured\"."
},
"review.timeouts.ollama": {
"type": "number",
"default": -1,
"description": "Outer wall-clock timeout override (seconds) for the Ollama reviewer lane. Unset is -1, a sentinel: 0 or a negative number is also treated as unset (a timeout has no legitimate zero/negative value), so no second sentinel is needed. Falls back to the lane's built-in timeoutFloorMs when unset."
}
}
}