mcp-subagents-opencode 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/build/index.js +9 -0
  2. package/build/index.js.map +1 -1
  3. package/build/models.d.ts +27 -14
  4. package/build/models.d.ts.map +1 -1
  5. package/build/models.js +78 -39
  6. package/build/models.js.map +1 -1
  7. package/build/services/model-discovery.d.ts +56 -0
  8. package/build/services/model-discovery.d.ts.map +1 -0
  9. package/build/services/model-discovery.js +259 -0
  10. package/build/services/model-discovery.js.map +1 -0
  11. package/build/services/template-home.d.ts +25 -0
  12. package/build/services/template-home.d.ts.map +1 -0
  13. package/build/services/template-home.js +105 -0
  14. package/build/services/template-home.js.map +1 -0
  15. package/build/templates/index.d.ts +1 -0
  16. package/build/templates/index.d.ts.map +1 -1
  17. package/build/templates/index.js +34 -7
  18. package/build/templates/index.js.map +1 -1
  19. package/build/templates/overlays/coder-csharp.mdx +6 -0
  20. package/build/templates/overlays/coder-go.mdx +6 -0
  21. package/build/templates/overlays/coder-java.mdx +6 -0
  22. package/build/templates/overlays/coder-kotlin.mdx +6 -0
  23. package/build/templates/overlays/coder-nextjs.mdx +6 -0
  24. package/build/templates/overlays/coder-python.mdx +6 -0
  25. package/build/templates/overlays/coder-react.mdx +6 -0
  26. package/build/templates/overlays/coder-ruby.mdx +6 -0
  27. package/build/templates/overlays/coder-rust.mdx +6 -0
  28. package/build/templates/overlays/coder-supabase.mdx +6 -0
  29. package/build/templates/overlays/coder-supastarter.mdx +6 -0
  30. package/build/templates/overlays/coder-swift.mdx +6 -0
  31. package/build/templates/overlays/coder-tauri.mdx +6 -0
  32. package/build/templates/overlays/coder-triggerdev.mdx +6 -0
  33. package/build/templates/overlays/coder-typescript.mdx +6 -0
  34. package/build/templates/overlays/coder-vue.mdx +6 -0
  35. package/build/templates/overlays/planner-architecture.mdx +6 -0
  36. package/build/templates/overlays/planner-bugfix.mdx +6 -0
  37. package/build/templates/overlays/planner-feature.mdx +6 -0
  38. package/build/templates/overlays/planner-migration.mdx +6 -0
  39. package/build/templates/overlays/planner-refactor.mdx +6 -0
  40. package/build/templates/overlays/researcher-library.mdx +6 -0
  41. package/build/templates/overlays/researcher-performance.mdx +6 -0
  42. package/build/templates/overlays/researcher-security.mdx +6 -0
  43. package/build/templates/overlays/tester-graphql.mdx +6 -0
  44. package/build/templates/overlays/tester-playwright.mdx +6 -0
  45. package/build/templates/overlays/tester-rest.mdx +6 -0
  46. package/build/templates/overlays/tester-suite.mdx +6 -0
  47. package/build/templates/super-coder.mdx +21 -0
  48. package/build/templates/super-planner.mdx +21 -0
  49. package/build/templates/super-researcher.mdx +21 -0
  50. package/build/templates/super-tester.mdx +21 -0
  51. package/build/tools/spawn-agent.d.ts +1 -1
  52. package/build/tools/spawn-agent.js +5 -5
  53. package/build/tools/spawn-agent.js.map +1 -1
  54. package/package.json +1 -1
  55. package/build/services/account-manager.d.ts +0 -88
  56. package/build/services/account-manager.d.ts.map +0 -1
  57. package/build/services/account-manager.js +0 -239
  58. package/build/services/account-manager.js.map +0 -1
  59. package/build/services/claude-code-runner.d.ts +0 -15
  60. package/build/services/claude-code-runner.d.ts.map +0 -1
  61. package/build/services/claude-code-runner.js +0 -475
  62. package/build/services/claude-code-runner.js.map +0 -1
  63. package/build/services/exhaustion-fallback.d.ts +0 -27
  64. package/build/services/exhaustion-fallback.d.ts.map +0 -1
  65. package/build/services/exhaustion-fallback.js +0 -30
  66. package/build/services/exhaustion-fallback.js.map +0 -1
  67. package/build/services/fallback-orchestrator.d.ts +0 -16
  68. package/build/services/fallback-orchestrator.d.ts.map +0 -1
  69. package/build/services/fallback-orchestrator.js +0 -48
  70. package/build/services/fallback-orchestrator.js.map +0 -1
  71. package/build/services/sdk-client-manager.d.ts +0 -149
  72. package/build/services/sdk-client-manager.d.ts.map +0 -1
  73. package/build/services/sdk-client-manager.js +0 -632
  74. package/build/services/sdk-client-manager.js.map +0 -1
  75. package/build/services/sdk-session-adapter.d.ts +0 -203
  76. package/build/services/sdk-session-adapter.d.ts.map +0 -1
  77. package/build/services/sdk-session-adapter.js +0 -1088
  78. package/build/services/sdk-session-adapter.js.map +0 -1
  79. package/build/services/sdk-spawner.d.ts +0 -42
  80. package/build/services/sdk-spawner.d.ts.map +0 -1
  81. package/build/services/sdk-spawner.js +0 -488
  82. package/build/services/sdk-spawner.js.map +0 -1
  83. package/build/services/session-hooks.d.ts +0 -24
  84. package/build/services/session-hooks.d.ts.map +0 -1
  85. package/build/services/session-hooks.js +0 -130
  86. package/build/services/session-hooks.js.map +0 -1
  87. package/build/services/session-snapshot.d.ts +0 -19
  88. package/build/services/session-snapshot.d.ts.map +0 -1
  89. package/build/services/session-snapshot.js +0 -203
  90. package/build/services/session-snapshot.js.map +0 -1
  91. package/build/tools/spawn-coder.d.ts +0 -70
  92. package/build/tools/spawn-coder.d.ts.map +0 -1
  93. package/build/tools/spawn-coder.js +0 -71
  94. package/build/tools/spawn-coder.js.map +0 -1
  95. package/build/tools/spawn-planner.d.ts +0 -70
  96. package/build/tools/spawn-planner.d.ts.map +0 -1
  97. package/build/tools/spawn-planner.js +0 -71
  98. package/build/tools/spawn-planner.js.map +0 -1
  99. package/build/tools/spawn-researcher.d.ts +0 -70
  100. package/build/tools/spawn-researcher.d.ts.map +0 -1
  101. package/build/tools/spawn-researcher.js +0 -70
  102. package/build/tools/spawn-researcher.js.map +0 -1
  103. package/build/tools/spawn-task.d.ts +0 -74
  104. package/build/tools/spawn-task.d.ts.map +0 -1
  105. package/build/tools/spawn-task.js +0 -107
  106. package/build/tools/spawn-task.js.map +0 -1
  107. package/build/tools/spawn-tester.d.ts +0 -70
  108. package/build/tools/spawn-tester.d.ts.map +0 -1
  109. package/build/tools/spawn-tester.js +0 -69
  110. package/build/tools/spawn-tester.js.map +0 -1
package/build/index.js CHANGED
@@ -8,12 +8,15 @@ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/
8
8
  import { taskManager } from './services/task-manager.js';
9
9
  import { clientContext } from './services/client-context.js';
10
10
  import { initSpawner, checkOpenCodeAvailable, shutdownSpawner, getSpawnerStats } from './services/opencode-spawner.js';
11
+ import { discoverModels } from './services/model-discovery.js';
12
+ import { refreshModelExports } from './models.js';
11
13
  import { OpenCodeClient } from './services/opencode-client.js';
12
14
  import { registerToolHandlers } from './server/register-tools.js';
13
15
  import { registerTaskHandlers } from './server/register-tasks.js';
14
16
  import { registerResourceHandlers } from './server/register-resources.js';
15
17
  import { registerNotificationWiring } from './server/register-notifications.js';
16
18
  import { registerRetryAndExecutionCallbacks } from './server/register-retry-execution.js';
19
+ import { ensureTemplateHome } from './templates/index.js';
17
20
  const require = createRequire(import.meta.url);
18
21
  const { version: PKG_VERSION } = require('../package.json');
19
22
  const server = new Server({ name: 'mcp-subagents-opencode', version: PKG_VERSION }, {
@@ -155,6 +158,12 @@ async function startHttpTransport(port) {
155
158
  });
156
159
  }
157
160
  async function main() {
161
+ // Discover available models from OpenCode CLI before anything else
162
+ console.error('[index] Discovering available models via `opencode models`...');
163
+ await discoverModels();
164
+ refreshModelExports();
165
+ // Initialize editable templates in home directory
166
+ ensureTemplateHome();
158
167
  const opencodeAvailable = await checkOpenCodeAvailable().catch(() => false);
159
168
  if (!opencodeAvailable) {
160
169
  console.error('Warning: OpenCode server not available at ' + OPENCODE_BASE_URL + ' — tasks will fail until server starts');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/build/models.d.ts CHANGED
@@ -1,20 +1,32 @@
1
- export declare const MODELS: {
2
- readonly 'claude-sonnet-4.5': "Latest Sonnet - best balance of speed and capability (default)";
3
- readonly 'claude-opus-4.6': "Most capable - complex reasoning, large codebases";
4
- readonly 'claude-haiku-4.5': "Fastest - simple tasks, quick iterations";
5
- };
6
- export type ModelId = keyof typeof MODELS;
7
- export declare const DEFAULT_MODEL: ModelId;
8
- export declare const OPUS_MODEL: ModelId;
9
- export declare const MODEL_IDS: ModelId[];
10
- export declare const ALL_ACCEPTED_MODELS: string[];
1
+ /**
2
+ * Dynamic model resolution powered by OpenCode model discovery.
3
+ *
4
+ * Models are discovered at startup via `opencode models --verbose`.
5
+ * The discovery populates MODEL_IDS and ALL_ACCEPTED_MODELS dynamically.
6
+ * Default model: github-copilot/claude-opus-4.6 for all agent types.
7
+ */
8
+ export declare const DEFAULT_MODEL = "github-copilot/claude-opus-4.6";
9
+ /** Get the recommended "most capable" model for planning tasks. */
10
+ export declare function getPlannerModel(): string;
11
+ export declare const OPUS_MODEL = "github-copilot/claude-opus-4.6";
12
+ /** Model IDs exposed in tool schema enum. Computed after discovery. */
13
+ export declare function getModelIdsForSchema(): string[];
14
+ /**
15
+ * MODEL_IDS — Returns discovered model IDs + default.
16
+ */
17
+ export declare const MODEL_IDS: string[];
18
+ /** All accepted model values for backend validation. Includes full IDs and short IDs. */
19
+ export declare function getAllAcceptedModels(): string[];
20
+ export declare let ALL_ACCEPTED_MODELS: string[];
21
+ /** Call after discovery to refresh static exports. */
22
+ export declare function refreshModelExports(): void;
11
23
  /**
12
24
  * Validate and sanitize model selection.
13
- * - super-planner always resolves to opus (no user override).
14
- * - 'opus' is an alias for 'claude-opus-4.6'.
15
- * - 'claude-opus-4.6' and 'opus' are ALWAYS allowed regardless of ENABLE_OPUS.
25
+ * - super-planner uses DEFAULT_MODEL (github-copilot/claude-opus-4.6).
26
+ * - Discovered models are validated. Unknown models are passed through
27
+ * (OpenCode server handles validation).
16
28
  */
17
- export declare function resolveModel(requested?: string, taskType?: string): ModelId;
29
+ export declare function resolveModel(requested?: string, taskType?: string): string;
18
30
  /**
19
31
  * Resolve provider. OpenCode manages providers internally.
20
32
  */
@@ -27,6 +39,7 @@ export interface ModelConfig {
27
39
  }
28
40
  /**
29
41
  * Get OpenCode model config for a model ID.
42
+ * Dynamically generated from discovered models.
30
43
  */
31
44
  export declare function getModelConfig(modelId: string): ModelConfig | undefined;
32
45
  //# sourceMappingURL=models.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;CAIT,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,MAAM,CAAC;AAC1C,eAAO,MAAM,aAAa,EAAE,OAA6B,CAAC;AAC1D,eAAO,MAAM,UAAU,EAAE,OAA2B,CAAC;AAOrD,eAAO,MAAM,SAAS,EAAE,OAAO,EAEc,CAAC;AAG9C,eAAO,MAAM,mBAAmB,EAAE,MAAM,EAKvC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAW3E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAQD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEvE"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,eAAO,MAAM,aAAa,mCAAmC,CAAC;AAE9D,mEAAmE;AACnE,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAGD,eAAO,MAAM,UAAU,mCAAgB,CAAC;AAIxC,uEAAuE;AACvE,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAI/C;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,EAAoB,CAAC;AAEnD,yFAAyF;AACzF,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAQ/C;AAGD,eAAO,IAAI,mBAAmB,EAAE,MAAM,EAA4B,CAAC;AAEnE,sDAAsD;AACtD,wBAAgB,mBAAmB,IAAI,IAAI,CAQ1C;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAmB1E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAUvE"}
package/build/models.js CHANGED
@@ -1,42 +1,76 @@
1
- export const MODELS = {
2
- 'claude-sonnet-4.5': 'Latest Sonnet - best balance of speed and capability (default)',
3
- 'claude-opus-4.6': 'Most capable - complex reasoning, large codebases',
4
- 'claude-haiku-4.5': 'Fastest - simple tasks, quick iterations',
5
- };
6
- export const DEFAULT_MODEL = 'claude-sonnet-4.5';
7
- export const OPUS_MODEL = 'claude-opus-4.6';
8
- // ENABLE_OPUS controls VISIBILITY in tool descriptions only.
9
- // Clients that know the word 'opus' or 'claude-opus-4.6' can always use it.
10
- const ENABLE_OPUS = process.env.ENABLE_OPUS === 'true';
11
- // MODEL_IDS exposed in tool schema enum opus hidden unless ENABLE_OPUS=true
12
- export const MODEL_IDS = ENABLE_OPUS
13
- ? ['claude-sonnet-4.5', 'claude-opus-4.6', 'claude-haiku-4.5']
14
- : ['claude-sonnet-4.5', 'claude-haiku-4.5'];
15
- // All accepted model values (always includes opus + alias) for backend validation
16
- export const ALL_ACCEPTED_MODELS = [
17
- 'claude-sonnet-4.5',
18
- 'claude-opus-4.6',
19
- 'claude-haiku-4.5',
20
- 'opus', // alias for claude-opus-4.6
21
- ];
1
+ /**
2
+ * Dynamic model resolution powered by OpenCode model discovery.
3
+ *
4
+ * Models are discovered at startup via `opencode models --verbose`.
5
+ * The discovery populates MODEL_IDS and ALL_ACCEPTED_MODELS dynamically.
6
+ * Default model: github-copilot/claude-opus-4.6 for all agent types.
7
+ */
8
+ import { getDiscoveredModels, getModelIds, } from './services/model-discovery.js';
9
+ // --- Default model ---
10
+ export const DEFAULT_MODEL = 'github-copilot/claude-opus-4.6';
11
+ /** Get the recommended "most capable" model for planning tasks. */
12
+ export function getPlannerModel() {
13
+ return DEFAULT_MODEL;
14
+ }
15
+ // Legacy alias
16
+ export const OPUS_MODEL = DEFAULT_MODEL;
17
+ // --- Dynamic model lists (populated after discovery) ---
18
+ /** Model IDs exposed in tool schema enum. Computed after discovery. */
19
+ export function getModelIdsForSchema() {
20
+ const ids = getModelIds();
21
+ const result = [DEFAULT_MODEL, ...ids];
22
+ return [...new Set(result)];
23
+ }
24
+ /**
25
+ * MODEL_IDS — Returns discovered model IDs + default.
26
+ */
27
+ export const MODEL_IDS = [DEFAULT_MODEL];
28
+ /** All accepted model values for backend validation. Includes full IDs and short IDs. */
29
+ export function getAllAcceptedModels() {
30
+ const models = getDiscoveredModels();
31
+ const accepted = ['auto', DEFAULT_MODEL];
32
+ for (const m of models) {
33
+ accepted.push(m.fullId);
34
+ accepted.push(m.id);
35
+ }
36
+ return [...new Set(accepted)];
37
+ }
38
+ // Static reference for zod schema (updated after discovery)
39
+ export let ALL_ACCEPTED_MODELS = ['auto', DEFAULT_MODEL];
40
+ /** Call after discovery to refresh static exports. */
41
+ export function refreshModelExports() {
42
+ const ids = getModelIds();
43
+ MODEL_IDS.length = 0;
44
+ MODEL_IDS.push(DEFAULT_MODEL);
45
+ for (const id of ids) {
46
+ if (id !== DEFAULT_MODEL)
47
+ MODEL_IDS.push(id);
48
+ }
49
+ ALL_ACCEPTED_MODELS = getAllAcceptedModels();
50
+ }
22
51
  /**
23
52
  * Validate and sanitize model selection.
24
- * - super-planner always resolves to opus (no user override).
25
- * - 'opus' is an alias for 'claude-opus-4.6'.
26
- * - 'claude-opus-4.6' and 'opus' are ALWAYS allowed regardless of ENABLE_OPUS.
53
+ * - super-planner uses DEFAULT_MODEL (github-copilot/claude-opus-4.6).
54
+ * - Discovered models are validated. Unknown models are passed through
55
+ * (OpenCode server handles validation).
27
56
  */
28
57
  export function resolveModel(requested, taskType) {
29
- // super-planner is always opus user cannot override
30
- if (taskType === 'super-planner')
31
- return OPUS_MODEL;
32
- if (!requested)
58
+ // super-planner uses the best available model
59
+ if (taskType === 'super-planner') {
60
+ return getPlannerModel();
61
+ }
62
+ if (!requested || requested === 'auto')
33
63
  return DEFAULT_MODEL;
34
- // 'opus' alias and 'claude-opus-4.6' always bypass ENABLE_OPUS
35
- if (requested === 'opus' || requested === 'claude-opus-4.6')
36
- return OPUS_MODEL;
37
- if (Object.keys(MODELS).includes(requested))
64
+ const models = getDiscoveredModels();
65
+ // Exact match on fullId (e.g. "opencode/big-pickle")
66
+ if (models.some(m => m.fullId === requested))
38
67
  return requested;
39
- return DEFAULT_MODEL;
68
+ // Short ID match (e.g. "big-pickle")
69
+ const byShortId = models.find(m => m.id === requested);
70
+ if (byShortId)
71
+ return byShortId.fullId;
72
+ // Pass through unknown models — let OpenCode server validate
73
+ return requested;
40
74
  }
41
75
  /**
42
76
  * Resolve provider. OpenCode manages providers internally.
@@ -44,15 +78,20 @@ export function resolveModel(requested, taskType) {
44
78
  export function resolveProvider(_provider) {
45
79
  return 'opencode';
46
80
  }
47
- const MODEL_CONFIGS = {
48
- 'claude-sonnet-4.5': { id: 'claude-sonnet-4.5', providerID: 'anthropic', modelID: 'claude-sonnet-4.5', displayName: 'Claude Sonnet 4.5' },
49
- 'claude-opus-4.6': { id: 'claude-opus-4.6', providerID: 'anthropic', modelID: 'claude-opus-4.6', displayName: 'Claude Opus 4.6' },
50
- 'claude-haiku-4.5': { id: 'claude-haiku-4.5', providerID: 'anthropic', modelID: 'claude-haiku-4.5', displayName: 'Claude Haiku 4.5' },
51
- };
52
81
  /**
53
82
  * Get OpenCode model config for a model ID.
83
+ * Dynamically generated from discovered models.
54
84
  */
55
85
  export function getModelConfig(modelId) {
56
- return MODEL_CONFIGS[modelId];
86
+ const models = getDiscoveredModels();
87
+ const model = models.find(m => m.fullId === modelId || m.id === modelId);
88
+ if (!model)
89
+ return undefined;
90
+ return {
91
+ id: model.fullId,
92
+ providerID: model.providerID,
93
+ modelID: model.id,
94
+ displayName: model.name,
95
+ };
57
96
  }
58
97
  //# sourceMappingURL=models.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,mBAAmB,EAAE,gEAAgE;IACrF,iBAAiB,EAAE,mDAAmD;IACtE,kBAAkB,EAAE,0CAA0C;CACtD,CAAC;AAGX,MAAM,CAAC,MAAM,aAAa,GAAY,mBAAmB,CAAC;AAC1D,MAAM,CAAC,MAAM,UAAU,GAAY,iBAAiB,CAAC;AAErD,6DAA6D;AAC7D,4EAA4E;AAC5E,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,MAAM,CAAC;AAEvD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,SAAS,GAAc,WAAW;IAC7C,CAAC,CAAC,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,CAAC;IAC9D,CAAC,CAAC,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;AAE9C,kFAAkF;AAClF,MAAM,CAAC,MAAM,mBAAmB,GAAa;IAC3C,mBAAmB;IACnB,iBAAiB;IACjB,kBAAkB;IAClB,MAAM,EAAE,4BAA4B;CACrC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,SAAkB,EAAE,QAAiB;IAChE,sDAAsD;IACtD,IAAI,QAAQ,KAAK,eAAe;QAAE,OAAO,UAAU,CAAC;IAEpD,IAAI,CAAC,SAAS;QAAE,OAAO,aAAa,CAAC;IAErC,+DAA+D;IAC/D,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,iBAAiB;QAAE,OAAO,UAAU,CAAC;IAE/E,IAAK,MAAM,CAAC,IAAI,CAAC,MAAM,CAAe,CAAC,QAAQ,CAAC,SAAoB,CAAC;QAAE,OAAO,SAAoB,CAAC;IACnG,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,SAAkB;IAChD,OAAO,UAAU,CAAC;AACpB,CAAC;AASD,MAAM,aAAa,GAAgC;IACjD,mBAAmB,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,mBAAmB,EAAE;IACzI,iBAAiB,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE;IACjI,kBAAkB,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,kBAAkB,EAAE;CACtI,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Model Discovery - Discovers available models from the OpenCode CLI at startup.
3
+ *
4
+ * Runs `opencode models --verbose` to get the full list of models with metadata,
5
+ * parses the output, and stores them for use by the MCP server.
6
+ * Falls back to a minimal default set if discovery fails.
7
+ */
8
+ export interface DiscoveredModel {
9
+ id: string;
10
+ providerID: string;
11
+ name: string;
12
+ family: string;
13
+ contextLimit: number;
14
+ outputLimit: number;
15
+ capabilities: {
16
+ reasoning: boolean;
17
+ toolcall: boolean;
18
+ attachment: boolean;
19
+ image: boolean;
20
+ };
21
+ releaseDate: string;
22
+ /** Full provider/id format, e.g. "opencode/big-pickle" */
23
+ fullId: string;
24
+ }
25
+ /** Per-agent-type model recommendation. */
26
+ export interface ModelRecommendation {
27
+ modelId: string;
28
+ reason: string;
29
+ }
30
+ /**
31
+ * Run `opencode models --verbose` and parse the interleaved text+JSON output.
32
+ * Output format is:
33
+ * provider/model-id
34
+ * { ...json... }
35
+ * provider/model-id
36
+ * { ...json... }
37
+ */
38
+ export declare function discoverModels(): Promise<DiscoveredModel[]>;
39
+ export declare function getDiscoveredModels(): DiscoveredModel[];
40
+ export declare function isDiscoveryComplete(): boolean;
41
+ export declare function getDiscoveryError(): string | null;
42
+ /**
43
+ * Get all discovered model IDs (full format: "provider/model-id").
44
+ */
45
+ export declare function getModelIds(): string[];
46
+ /**
47
+ * Get a compact summary of available models for template injection.
48
+ */
49
+ export declare function getModelsSummary(): string;
50
+ /**
51
+ * Recommend the best model for a given agent type.
52
+ * Default: github-copilot/claude-opus-4.6 for all agents.
53
+ * If models are discovered, picks the best based on capabilities.
54
+ */
55
+ export declare function recommendModel(agentType: string): ModelRecommendation;
56
+ //# sourceMappingURL=model-discovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-discovery.d.ts","sourceRoot":"","sources":["../../src/services/model-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE;QACZ,SAAS,EAAE,OAAO,CAAC;QACnB,QAAQ,EAAE,OAAO,CAAC;QAClB,UAAU,EAAE,OAAO,CAAC;QACpB,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD;;;;;;;GAOG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CA0CjE;AAqHD,wBAAgB,mBAAmB,IAAI,eAAe,EAAE,CAEvD;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAEjD;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,EAAE,CAEtC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAgBzC;AAID;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,CA+CrE"}
@@ -0,0 +1,259 @@
1
+ /**
2
+ * Model Discovery - Discovers available models from the OpenCode CLI at startup.
3
+ *
4
+ * Runs `opencode models --verbose` to get the full list of models with metadata,
5
+ * parses the output, and stores them for use by the MCP server.
6
+ * Falls back to a minimal default set if discovery fails.
7
+ */
8
+ import { execSync } from 'child_process';
9
+ let discoveredModels = [];
10
+ let discoveryRan = false;
11
+ let discoveryError = null;
12
+ /**
13
+ * Run `opencode models --verbose` and parse the interleaved text+JSON output.
14
+ * Output format is:
15
+ * provider/model-id
16
+ * { ...json... }
17
+ * provider/model-id
18
+ * { ...json... }
19
+ */
20
+ export async function discoverModels() {
21
+ try {
22
+ const raw = execSync('opencode models --verbose 2>/dev/null', {
23
+ encoding: 'utf8',
24
+ timeout: 15000,
25
+ stdio: ['pipe', 'pipe', 'pipe'],
26
+ });
27
+ const models = parseVerboseOutput(raw);
28
+ if (models.length > 0) {
29
+ discoveredModels = models;
30
+ discoveryRan = true;
31
+ discoveryError = null;
32
+ console.error(`[model-discovery] Discovered ${models.length} models: ${models.map(m => m.fullId).join(', ')}`);
33
+ return models;
34
+ }
35
+ // If verbose parsing found nothing, try non-verbose
36
+ const rawSimple = execSync('opencode models 2>/dev/null', {
37
+ encoding: 'utf8',
38
+ timeout: 10000,
39
+ stdio: ['pipe', 'pipe', 'pipe'],
40
+ });
41
+ const simpleModels = parseSimpleOutput(rawSimple);
42
+ if (simpleModels.length > 0) {
43
+ discoveredModels = simpleModels;
44
+ discoveryRan = true;
45
+ discoveryError = null;
46
+ console.error(`[model-discovery] Discovered ${simpleModels.length} models (simple): ${simpleModels.map(m => m.fullId).join(', ')}`);
47
+ return simpleModels;
48
+ }
49
+ discoveryError = 'No models found in output';
50
+ discoveryRan = true;
51
+ console.error('[model-discovery] No models found');
52
+ return [];
53
+ }
54
+ catch (err) {
55
+ discoveryError = err instanceof Error ? err.message : String(err);
56
+ discoveryRan = true;
57
+ console.error(`[model-discovery] Discovery failed: ${discoveryError}`);
58
+ return [];
59
+ }
60
+ }
61
+ /**
62
+ * Parse the verbose output (interleaved model-id lines + JSON blocks).
63
+ */
64
+ function parseVerboseOutput(raw) {
65
+ const models = [];
66
+ const lines = raw.split('\n');
67
+ let currentFullId = null;
68
+ let jsonBuffer = '';
69
+ let inJson = false;
70
+ let braceDepth = 0;
71
+ for (const line of lines) {
72
+ const trimmed = line.trim();
73
+ // Model ID line: "provider/model-id"
74
+ if (!inJson && /^[\w-]+\/[\w.-]+$/.test(trimmed)) {
75
+ // Flush previous JSON buffer
76
+ if (currentFullId && jsonBuffer) {
77
+ const model = parseModelJson(currentFullId, jsonBuffer);
78
+ if (model)
79
+ models.push(model);
80
+ }
81
+ currentFullId = trimmed;
82
+ jsonBuffer = '';
83
+ inJson = false;
84
+ braceDepth = 0;
85
+ continue;
86
+ }
87
+ // Track JSON block
88
+ if (currentFullId) {
89
+ if (trimmed === '{' && !inJson) {
90
+ inJson = true;
91
+ braceDepth = 1;
92
+ jsonBuffer = '{';
93
+ continue;
94
+ }
95
+ if (inJson) {
96
+ jsonBuffer += '\n' + line;
97
+ for (const ch of trimmed) {
98
+ if (ch === '{')
99
+ braceDepth++;
100
+ else if (ch === '}')
101
+ braceDepth--;
102
+ }
103
+ if (braceDepth === 0) {
104
+ const model = parseModelJson(currentFullId, jsonBuffer);
105
+ if (model)
106
+ models.push(model);
107
+ currentFullId = null;
108
+ jsonBuffer = '';
109
+ inJson = false;
110
+ }
111
+ }
112
+ }
113
+ }
114
+ // Flush last
115
+ if (currentFullId && jsonBuffer) {
116
+ const model = parseModelJson(currentFullId, jsonBuffer);
117
+ if (model)
118
+ models.push(model);
119
+ }
120
+ return models;
121
+ }
122
+ /**
123
+ * Parse a single model JSON block.
124
+ */
125
+ function parseModelJson(fullId, jsonStr) {
126
+ try {
127
+ const data = JSON.parse(jsonStr);
128
+ const [providerID, id] = fullId.includes('/') ? fullId.split('/', 2) : ['opencode', fullId];
129
+ return {
130
+ id: data.id ?? id,
131
+ providerID: data.providerID ?? providerID,
132
+ name: data.name ?? id,
133
+ family: data.family ?? '',
134
+ contextLimit: data.limit?.context ?? 128000,
135
+ outputLimit: data.limit?.output ?? 32000,
136
+ capabilities: {
137
+ reasoning: data.capabilities?.reasoning ?? false,
138
+ toolcall: data.capabilities?.toolcall ?? false,
139
+ attachment: data.capabilities?.attachment ?? false,
140
+ image: data.capabilities?.input?.image ?? false,
141
+ },
142
+ releaseDate: data.release_date ?? '',
143
+ fullId,
144
+ };
145
+ }
146
+ catch {
147
+ return null;
148
+ }
149
+ }
150
+ /**
151
+ * Parse simple (non-verbose) output: one model-id per line.
152
+ */
153
+ function parseSimpleOutput(raw) {
154
+ return raw.split('\n')
155
+ .map(l => l.trim())
156
+ .filter(l => /^[\w-]+\/[\w.-]+$/.test(l))
157
+ .map(fullId => {
158
+ const [providerID, id] = fullId.split('/', 2);
159
+ return {
160
+ id,
161
+ providerID,
162
+ name: id,
163
+ family: '',
164
+ contextLimit: 128000,
165
+ outputLimit: 32000,
166
+ capabilities: { reasoning: true, toolcall: true, attachment: false, image: false },
167
+ releaseDate: '',
168
+ fullId,
169
+ };
170
+ });
171
+ }
172
+ // --- Public API ---
173
+ export function getDiscoveredModels() {
174
+ return discoveredModels;
175
+ }
176
+ export function isDiscoveryComplete() {
177
+ return discoveryRan;
178
+ }
179
+ export function getDiscoveryError() {
180
+ return discoveryError;
181
+ }
182
+ /**
183
+ * Get all discovered model IDs (full format: "provider/model-id").
184
+ */
185
+ export function getModelIds() {
186
+ return discoveredModels.map(m => m.fullId);
187
+ }
188
+ /**
189
+ * Get a compact summary of available models for template injection.
190
+ */
191
+ export function getModelsSummary() {
192
+ const lines = [
193
+ `- **github-copilot/claude-opus-4.6** (Claude Opus 4.6) — Default, most capable [reasoning, tools, vision]`,
194
+ ];
195
+ if (discoveredModels.length > 0) {
196
+ for (const m of discoveredModels) {
197
+ const caps = [];
198
+ if (m.capabilities.reasoning)
199
+ caps.push('reasoning');
200
+ if (m.capabilities.toolcall)
201
+ caps.push('tools');
202
+ if (m.capabilities.image)
203
+ caps.push('vision');
204
+ const capsStr = caps.length > 0 ? ` [${caps.join(', ')}]` : '';
205
+ const ctx = m.contextLimit >= 1000 ? `${Math.round(m.contextLimit / 1000)}K ctx` : `${m.contextLimit} ctx`;
206
+ lines.push(`- **${m.fullId}** (${m.name}) — ${ctx}${capsStr}`);
207
+ }
208
+ }
209
+ return lines.join('\n');
210
+ }
211
+ const FALLBACK_MODEL = 'github-copilot/claude-opus-4.6';
212
+ /**
213
+ * Recommend the best model for a given agent type.
214
+ * Default: github-copilot/claude-opus-4.6 for all agents.
215
+ * If models are discovered, picks the best based on capabilities.
216
+ */
217
+ export function recommendModel(agentType) {
218
+ if (discoveredModels.length === 0) {
219
+ return { modelId: FALLBACK_MODEL, reason: 'Default model — Claude Opus 4.6 via GitHub Copilot' };
220
+ }
221
+ let sorted;
222
+ switch (agentType) {
223
+ case 'super-planner':
224
+ // Planner: prioritize largest context + reasoning
225
+ sorted = [...discoveredModels].sort((a, b) => {
226
+ const aScore = (a.capabilities.reasoning ? 100 : 0) + a.contextLimit / 1000;
227
+ const bScore = (b.capabilities.reasoning ? 100 : 0) + b.contextLimit / 1000;
228
+ return bScore - aScore;
229
+ });
230
+ return { modelId: sorted[0].fullId, reason: 'Best reasoning + largest context window for architectural planning' };
231
+ case 'super-coder':
232
+ // Coder: prioritize toolcall + large output
233
+ sorted = [...discoveredModels].sort((a, b) => {
234
+ const aScore = (a.capabilities.toolcall ? 100 : 0) + (a.capabilities.reasoning ? 50 : 0) + a.outputLimit / 1000;
235
+ const bScore = (b.capabilities.toolcall ? 100 : 0) + (b.capabilities.reasoning ? 50 : 0) + b.outputLimit / 1000;
236
+ return bScore - aScore;
237
+ });
238
+ return { modelId: sorted[0].fullId, reason: 'Best tool-calling + large output for code generation' };
239
+ case 'super-researcher':
240
+ // Researcher: prioritize reasoning + context
241
+ sorted = [...discoveredModels].sort((a, b) => {
242
+ const aScore = (a.capabilities.reasoning ? 100 : 0) + a.contextLimit / 1000;
243
+ const bScore = (b.capabilities.reasoning ? 100 : 0) + b.contextLimit / 1000;
244
+ return bScore - aScore;
245
+ });
246
+ return { modelId: sorted[0].fullId, reason: 'Best reasoning + large context for deep research' };
247
+ case 'super-tester':
248
+ // Tester: prioritize toolcall + reasoning
249
+ sorted = [...discoveredModels].sort((a, b) => {
250
+ const aScore = (a.capabilities.toolcall ? 100 : 0) + (a.capabilities.reasoning ? 50 : 0);
251
+ const bScore = (b.capabilities.toolcall ? 100 : 0) + (b.capabilities.reasoning ? 50 : 0);
252
+ return bScore - aScore;
253
+ });
254
+ return { modelId: sorted[0].fullId, reason: 'Best tool-calling + reasoning for QA testing' };
255
+ default:
256
+ return { modelId: discoveredModels[0].fullId, reason: 'Default model' };
257
+ }
258
+ }
259
+ //# sourceMappingURL=model-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-discovery.js","sourceRoot":"","sources":["../../src/services/model-discovery.ts"],"names":[],"mappings":"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"}