Files
msd-core/capabilities/lm-studio/capability.json
Jakub Zych 294039720c
Some checks failed
Tests / conformance test (macos-latest, 24) (pull_request) Has been cancelled
Tests / conformance test (windows-latest, 24, shard 1/3) (pull_request) Has been cancelled
Tests / conformance test (windows-latest, 24, shard 3/3) (pull_request) Has been cancelled
Tests / Required tests (pull_request) Has been cancelled
Tests / conformance test (windows-latest, 24, shard 2/3) (pull_request) Has been cancelled
Validate Branch Name / PR mergeability (pull_request) Successful in 18s
Changeset Required / PR mergeability (pull_request) Successful in 11s
Default Flip Documentation / PR mergeability (pull_request) Successful in 10s
Dependabot Auto-Merge / auto-merge (pull_request) Has been skipped
Dependabot Vendor Refresh / refresh-vendor (pull_request) Has been skipped
Docs Required / PR mergeability (pull_request) Successful in 10s
Mutation Testing / PR mergeability (pull_request) Successful in 10s
Security Scan / PR mergeability (pull_request) Successful in 10s
Tests / PR mergeability (pull_request) Successful in 10s
Tests / Base branch health (pull_request) Successful in 10s
Tests / Detect test scope (pull_request) Successful in 21s
PR Target Validator / validate-target (pull_request_target) Successful in 13s
PR Template Format / Pull request template format (pull_request_target) Failing after 14s
PR Title Validator / validate-title (pull_request_target) Failing after 16s
Require Issue Link / Issue link required (pull_request_target) Failing after 15s
Validate Branch Name / check-branch (pull_request) Successful in 8s
Changeset Required / changeset-lint (pull_request) Successful in 25s
Default Flip Documentation / default-flip-documentation (pull_request) Successful in 26s
Docs Required / docs-lint (pull_request) Successful in 5m20s
Mutation Testing / Detect changed covered modules (pull_request) Successful in 19s
Security Scan / security (pull_request) Successful in 6m22s
Tests / lint-tests (pull_request) Failing after 1m50s
Tests / plugin-validate (pull_request) Successful in 1m7s
Tests / test (ubuntu-latest, 24, shard 1/3) (pull_request) Failing after 19s
Tests / test (ubuntu-latest, 24, shard 2/3) (pull_request) Failing after 18s
Tests / test (ubuntu-latest, 24, shard 3/3) (pull_request) Failing after 20s
Tests / test (ubuntu-latest, 24) (pull_request) Failing after 19s
Tests / test (inert CI) (pull_request) Has been skipped
Tests / QA loop walk (smell ratchet) (pull_request) Failing after 17s
Mutation Testing / Stryker (${{ matrix.name }}) (pull_request) Has been skipped
Tests / Coverage gate (merged shards) (pull_request) Has been skipped
Tests / Publish emitted-baseline artifact (pull_request) Has been skipped
Mutation Testing / Stryker mutation score (changed files only) (pull_request) Has been skipped
chore: release 2.0.0
2026-10-09 10:35:10 +02:00

67 lines
2.7 KiB
JSON

{
"id": "lm-studio",
"role": "reviewer",
"version": "2.0.0",
"title": "LM Studio",
"description": "LM Studio local model server — cross-AI /msd:review reviewer lane only; not a MSD install target (no runtime body, no artifacts). OpenAI-compatible HTTP transport against a user-configured `review.lm_studio_host` (POST /v1/chat/completions); model discovered via GET /v1/models piped through jq. Capability id/folder are kebab (`lm-studio`, required by KEBAB_RE); `reviewer.slug` stays snake (`lm_studio`) to match the shipped roster and the `review.lm_studio_host` config key (ADR-2782's three-namespace trap).",
"tier": "full",
"requires": [],
"engines": {
"msd": ">=1.8.0"
},
"reviewer": {
"slug": "lm_studio",
"flags": [
"--lm-studio"
],
"transport": "openai-http",
"probe": {
"kind": "http-reachable",
"hostConfigKey": "review.lm_studio_host",
"path": "/v1/models",
"timeoutMs": 2000
},
"invoke": {
"hostConfigKey": "review.lm_studio_host",
"defaultHost": "http://localhost:1234",
"path": "/v1/chat/completions",
"modelDiscovery": "first-from-models-endpoint",
"fallbackModel": "local-model",
"effortChannel": "none"
},
"timeoutFloorMs": 120000,
"timeoutConfigKey": "review.timeouts.lm_studio",
"emptyOutput": "stub-with-stderr",
"reviewsSection": "LM Studio",
"evidenceClass": "source-grounded",
"requiresBinaries": [],
"promptBudgetKey": "review.max_prompt_tokens_per_reviewer.lm_studio",
"modelConfigKey": "review.models.lm_studio",
"effortConfigKey": null,
"defaultEffort": null,
"handler": "openai-compatible"
},
"config": {
"review.models.lm_studio": {
"type": "string",
"default": "",
"description": "Model requested from the LM Studio reviewer lane; empty discovers the first model from /v1/models."
},
"review.lm_studio_host": {
"type": "string",
"default": "",
"description": "Base URL of the LM Studio OpenAI-compatible server."
},
"review.max_prompt_tokens_per_reviewer.lm_studio": {
"type": "number",
"default": -1,
"description": "Prompt-token budget for the LM Studio 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.lm_studio": {
"type": "number",
"default": -1,
"description": "Outer wall-clock timeout override (seconds) for the LM Studio 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."
}
}
}