mcp-subagents-opencode 1.0.0 → 1.2.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.
- package/build/helpers.d.ts +43 -0
- package/build/helpers.d.ts.map +1 -1
- package/build/helpers.js +99 -8
- package/build/helpers.js.map +1 -1
- package/build/index.js +17 -3
- package/build/index.js.map +1 -1
- package/build/models.d.ts +27 -14
- package/build/models.d.ts.map +1 -1
- package/build/models.js +78 -39
- package/build/models.js.map +1 -1
- package/build/server/register-notifications.d.ts +5 -0
- package/build/server/register-notifications.d.ts.map +1 -1
- package/build/server/register-notifications.js +28 -3
- package/build/server/register-notifications.js.map +1 -1
- package/build/server/register-resources.d.ts.map +1 -1
- package/build/server/register-resources.js +9 -4
- package/build/server/register-resources.js.map +1 -1
- package/build/server/register-tasks.d.ts.map +1 -1
- package/build/server/register-tasks.js +13 -6
- package/build/server/register-tasks.js.map +1 -1
- package/build/server/register-tools.d.ts.map +1 -1
- package/build/server/register-tools.js +4 -3
- package/build/server/register-tools.js.map +1 -1
- package/build/services/model-discovery.d.ts +56 -0
- package/build/services/model-discovery.d.ts.map +1 -0
- package/build/services/model-discovery.js +259 -0
- package/build/services/model-discovery.js.map +1 -0
- package/build/services/opencode-client.d.ts +15 -1
- package/build/services/opencode-client.d.ts.map +1 -1
- package/build/services/opencode-client.js +229 -8
- package/build/services/opencode-client.js.map +1 -1
- package/build/services/opencode-spawner.d.ts +8 -2
- package/build/services/opencode-spawner.d.ts.map +1 -1
- package/build/services/opencode-spawner.js +331 -28
- package/build/services/opencode-spawner.js.map +1 -1
- package/build/services/output-file.d.ts +7 -5
- package/build/services/output-file.d.ts.map +1 -1
- package/build/services/output-file.js +28 -31
- package/build/services/output-file.js.map +1 -1
- package/build/services/task-manager.d.ts +6 -2
- package/build/services/task-manager.d.ts.map +1 -1
- package/build/services/task-manager.js +34 -5
- package/build/services/task-manager.js.map +1 -1
- package/build/services/task-persistence.d.ts +3 -3
- package/build/services/task-persistence.d.ts.map +1 -1
- package/build/services/task-persistence.js +15 -13
- package/build/services/task-persistence.js.map +1 -1
- package/build/services/template-home.d.ts +25 -0
- package/build/services/template-home.d.ts.map +1 -0
- package/build/services/template-home.js +105 -0
- package/build/services/template-home.js.map +1 -0
- package/build/templates/index.d.ts +1 -0
- package/build/templates/index.d.ts.map +1 -1
- package/build/templates/index.js +34 -7
- package/build/templates/index.js.map +1 -1
- package/build/templates/overlays/coder-csharp.mdx +6 -0
- package/build/templates/overlays/coder-go.mdx +6 -0
- package/build/templates/overlays/coder-java.mdx +6 -0
- package/build/templates/overlays/coder-kotlin.mdx +6 -0
- package/build/templates/overlays/coder-nextjs.mdx +6 -0
- package/build/templates/overlays/coder-python.mdx +6 -0
- package/build/templates/overlays/coder-react.mdx +6 -0
- package/build/templates/overlays/coder-ruby.mdx +6 -0
- package/build/templates/overlays/coder-rust.mdx +6 -0
- package/build/templates/overlays/coder-supabase.mdx +6 -0
- package/build/templates/overlays/coder-supastarter.mdx +6 -0
- package/build/templates/overlays/coder-swift.mdx +6 -0
- package/build/templates/overlays/coder-tauri.mdx +6 -0
- package/build/templates/overlays/coder-triggerdev.mdx +6 -0
- package/build/templates/overlays/coder-typescript.mdx +6 -0
- package/build/templates/overlays/coder-vue.mdx +6 -0
- package/build/templates/overlays/planner-architecture.mdx +6 -0
- package/build/templates/overlays/planner-bugfix.mdx +6 -0
- package/build/templates/overlays/planner-feature.mdx +6 -0
- package/build/templates/overlays/planner-migration.mdx +6 -0
- package/build/templates/overlays/planner-refactor.mdx +6 -0
- package/build/templates/overlays/researcher-library.mdx +6 -0
- package/build/templates/overlays/researcher-performance.mdx +6 -0
- package/build/templates/overlays/researcher-security.mdx +6 -0
- package/build/templates/overlays/tester-graphql.mdx +6 -0
- package/build/templates/overlays/tester-playwright.mdx +6 -0
- package/build/templates/overlays/tester-rest.mdx +6 -0
- package/build/templates/overlays/tester-suite.mdx +6 -0
- package/build/templates/super-coder.mdx +21 -0
- package/build/templates/super-planner.mdx +21 -0
- package/build/templates/super-researcher.mdx +21 -0
- package/build/templates/super-tester.mdx +21 -0
- package/build/tools/answer-question.d.ts.map +1 -1
- package/build/tools/answer-question.js +4 -3
- package/build/tools/answer-question.js.map +1 -1
- package/build/tools/cancel-task.d.ts.map +1 -1
- package/build/tools/cancel-task.js +6 -2
- package/build/tools/cancel-task.js.map +1 -1
- package/build/tools/send-message.d.ts.map +1 -1
- package/build/tools/send-message.js +13 -2
- package/build/tools/send-message.js.map +1 -1
- package/build/tools/shared-spawn.d.ts.map +1 -1
- package/build/tools/shared-spawn.js +19 -2
- package/build/tools/shared-spawn.js.map +1 -1
- package/build/tools/spawn-agent.d.ts +1 -1
- package/build/tools/spawn-agent.js +5 -5
- package/build/tools/spawn-agent.js.map +1 -1
- package/package.json +1 -1
- package/build/services/account-manager.d.ts +0 -88
- package/build/services/account-manager.d.ts.map +0 -1
- package/build/services/account-manager.js +0 -239
- package/build/services/account-manager.js.map +0 -1
- package/build/services/claude-code-runner.d.ts +0 -15
- package/build/services/claude-code-runner.d.ts.map +0 -1
- package/build/services/claude-code-runner.js +0 -475
- package/build/services/claude-code-runner.js.map +0 -1
- package/build/services/exhaustion-fallback.d.ts +0 -27
- package/build/services/exhaustion-fallback.d.ts.map +0 -1
- package/build/services/exhaustion-fallback.js +0 -30
- package/build/services/exhaustion-fallback.js.map +0 -1
- package/build/services/fallback-orchestrator.d.ts +0 -16
- package/build/services/fallback-orchestrator.d.ts.map +0 -1
- package/build/services/fallback-orchestrator.js +0 -48
- package/build/services/fallback-orchestrator.js.map +0 -1
- package/build/services/sdk-client-manager.d.ts +0 -149
- package/build/services/sdk-client-manager.d.ts.map +0 -1
- package/build/services/sdk-client-manager.js +0 -632
- package/build/services/sdk-client-manager.js.map +0 -1
- package/build/services/sdk-session-adapter.d.ts +0 -203
- package/build/services/sdk-session-adapter.d.ts.map +0 -1
- package/build/services/sdk-session-adapter.js +0 -1088
- package/build/services/sdk-session-adapter.js.map +0 -1
- package/build/services/sdk-spawner.d.ts +0 -42
- package/build/services/sdk-spawner.d.ts.map +0 -1
- package/build/services/sdk-spawner.js +0 -488
- package/build/services/sdk-spawner.js.map +0 -1
- package/build/services/session-hooks.d.ts +0 -24
- package/build/services/session-hooks.d.ts.map +0 -1
- package/build/services/session-hooks.js +0 -130
- package/build/services/session-hooks.js.map +0 -1
- package/build/services/session-snapshot.d.ts +0 -19
- package/build/services/session-snapshot.d.ts.map +0 -1
- package/build/services/session-snapshot.js +0 -203
- package/build/services/session-snapshot.js.map +0 -1
- package/build/tools/spawn-coder.d.ts +0 -70
- package/build/tools/spawn-coder.d.ts.map +0 -1
- package/build/tools/spawn-coder.js +0 -71
- package/build/tools/spawn-coder.js.map +0 -1
- package/build/tools/spawn-planner.d.ts +0 -70
- package/build/tools/spawn-planner.d.ts.map +0 -1
- package/build/tools/spawn-planner.js +0 -71
- package/build/tools/spawn-planner.js.map +0 -1
- package/build/tools/spawn-researcher.d.ts +0 -70
- package/build/tools/spawn-researcher.d.ts.map +0 -1
- package/build/tools/spawn-researcher.js +0 -70
- package/build/tools/spawn-researcher.js.map +0 -1
- package/build/tools/spawn-task.d.ts +0 -74
- package/build/tools/spawn-task.d.ts.map +0 -1
- package/build/tools/spawn-task.js +0 -107
- package/build/tools/spawn-task.js.map +0 -1
- package/build/tools/spawn-tester.d.ts +0 -70
- package/build/tools/spawn-tester.d.ts.map +0 -1
- package/build/tools/spawn-tester.js +0 -69
- package/build/tools/spawn-tester.js.map +0 -1
|
@@ -50,7 +50,7 @@ export async function handleAnswerQuestion(args) {
|
|
|
50
50
|
// Check if task exists
|
|
51
51
|
const task = taskManager.getTask(taskId);
|
|
52
52
|
if (!task) {
|
|
53
|
-
return mcpError(
|
|
53
|
+
return mcpError(`Task "${taskId}" not found`, 'It may have expired (TTL) or never existed. Read resource `task:///all` to find valid task IDs.');
|
|
54
54
|
}
|
|
55
55
|
// Check if there's a pending question
|
|
56
56
|
if (!questionRegistry.hasPendingQuestion(taskId)) {
|
|
@@ -100,9 +100,10 @@ export async function handleAnswerQuestion(args) {
|
|
|
100
100
|
}
|
|
101
101
|
catch (error) {
|
|
102
102
|
if (error instanceof z.ZodError) {
|
|
103
|
-
|
|
103
|
+
const issues = error.issues.map(i => `${i.path.join('.')}: ${i.message}`).join('; ');
|
|
104
|
+
return mcpError(`Invalid input: ${issues}`, 'Required: task_id (string), answer (string). Answer can be a choice number (1, 2, 3...), exact choice text, or "CUSTOM: your answer".');
|
|
104
105
|
}
|
|
105
|
-
return mcpError(error instanceof Error ? error.message : 'Unknown error', '
|
|
106
|
+
return mcpError(error instanceof Error ? error.message : 'Unknown error', 'Verify that task_id is valid and the task has a pending question. Read resource `task:///all` to check.');
|
|
106
107
|
}
|
|
107
108
|
}
|
|
108
109
|
//# sourceMappingURL=answer-question.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"answer-question.js","sourceRoot":"","sources":["../../src/tools/answer-question.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACpE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iFAAiF,CAAC;CACtH,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE;;;;;;;;;;;;;;;sDAeuC;IACpD,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+BAA+B;aAC7C;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iFAAiF;aAC/F;SACF;QACD,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;KAChC;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAa;IACtD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QAEnD,uBAAuB;QACvB,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,QAAQ,
|
|
1
|
+
{"version":3,"file":"answer-question.js","sourceRoot":"","sources":["../../src/tools/answer-question.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cancel-task.d.ts","sourceRoot":"","sources":["../../src/tools/cancel-task.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkBH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgC1B,CAAC;AASF,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"cancel-task.d.ts","sourceRoot":"","sources":["../../src/tools/cancel-task.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkBH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgC1B,CAAC;AASF,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC,CA6HjI"}
|
|
@@ -76,7 +76,7 @@ export async function handleCancelTask(args) {
|
|
|
76
76
|
for (const taskId of taskIds) {
|
|
77
77
|
const task = taskManager.getTask(taskId);
|
|
78
78
|
if (!task) {
|
|
79
|
-
results.push({ task_id: taskId, success: false, error:
|
|
79
|
+
results.push({ task_id: taskId, success: false, error: `Task "${taskId}" not found. Read resource \`task:///all\` for valid IDs.` });
|
|
80
80
|
continue;
|
|
81
81
|
}
|
|
82
82
|
const previousStatus = task.status;
|
|
@@ -138,7 +138,11 @@ export async function handleCancelTask(args) {
|
|
|
138
138
|
return mcpText(parts.join('\n'));
|
|
139
139
|
}
|
|
140
140
|
catch (error) {
|
|
141
|
-
|
|
141
|
+
if (error instanceof z.ZodError) {
|
|
142
|
+
const issues = error.issues.map(i => `${i.path.join('.')}: ${i.message}`).join('; ');
|
|
143
|
+
return mcpError(`Invalid input: ${issues}`, 'Required: task_id (string, array, or "all"). Optional: clear (boolean), confirm (boolean).');
|
|
144
|
+
}
|
|
145
|
+
return mcpError(error instanceof Error ? error.message : 'Unknown error', 'Provide task_id as string, array, or "all". Read resource `task:///all` for valid IDs.');
|
|
142
146
|
}
|
|
143
147
|
}
|
|
144
148
|
//# sourceMappingURL=cancel-task.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cancel-task.js","sourceRoot":"","sources":["../../src/tools/cancel-task.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cancel-task.js","sourceRoot":"","sources":["../../src/tools/cancel-task.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEnF,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC;QACf,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACjB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;KAC1C,CAAC,CAAC,QAAQ,CAAC,yDAAyD,CAAC;IACtE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;IACzF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;CACrE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE;;;;;;;;kFAQmE;IAChF,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,OAAO,EAAE;gBACP,KAAK,EAAE;oBACL,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;oBAC1D,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,6BAA6B,EAAE;iBACzF;gBACD,WAAW,EAAE,oDAAoD;aAClE;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,iEAAiE;aAC/E;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,wCAAwC;aACtD;SACF;QACD,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB;CACF,CAAC;AASF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAa;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAElD,iCAAiC;QACjC,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAClB,OAAO,QAAQ,CACb,mCAAmC,EACnC,wDAAwD,CACzD,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,QAAQ,CACb,uBAAuB,EACvB,wDAAwD,CACzD,CAAC;YACJ,CAAC;YAED,MAAM,GAAG,GAAG,aAAa,CAAC,aAAa,EAAE,CAAC;YAC1C,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,aAAa,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;YAEzC,OAAO,OAAO,CAAC,OAAO;gBACpB,CAAC,CAAC,aAAa,SAAS,0BAA0B;gBAClD,CAAC,CAAC,8CAA8C,CACjD,CAAC;QACJ,CAAC;QAED,qBAAqB;QACrB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;YAC3C,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;YACnD,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QAE1C,oBAAoB;QACpB,MAAM,OAAO,GAAmB,EAAE,CAAC;QAEnC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAEzC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,MAAM,2DAA2D,EAAE,CAAC,CAAC;gBACrI,SAAS;YACX,CAAC;YAED,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;YAEnC,gEAAgE;YAChE,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAEpD,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC;oBACX,OAAO,EAAE,MAAM;oBACf,OAAO,EAAE,IAAI;oBACb,eAAe,EAAE,cAAc;iBAChC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC;oBACX,OAAO,EAAE,MAAM;oBACf,OAAO,EAAE,KAAK;oBACd,eAAe,EAAE,cAAc;oBAC/B,KAAK,EAAE,YAAY,CAAC,KAAK,IAAI,eAAe;iBAC7C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,kBAAkB;QAClB,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAE/C,uBAAuB;QACvB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,KAAK,GAAsB;oBAC/B,oBAAoB;oBACpB,cAAc,MAAM,CAAC,OAAO,IAAI;oBAChC,oBAAoB,aAAa,CAAC,MAAM,CAAC,eAAgB,CAAC,EAAE;oBAC5D,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,IAAI;oBACvE,EAAE;oBACF,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,wBAAwB,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,IAAI;iBAC9E,CAAC;gBACF,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,OAAO,QAAQ,CACb,sBAAsB,MAAM,CAAC,OAAO,OAAO,MAAM,CAAC,KAAK,EAAE,EACzD,oFAAoF,CACrF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,iBAAiB;QACjB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,sBAAsB,SAAS,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,aAAa,CAAC,CAAC;QAClF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,eAAgB,CAAC,CAAC,CAAC,CAAC;YACtF,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACzB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC;YACxE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrF,OAAO,QAAQ,CACb,kBAAkB,MAAM,EAAE,EAC1B,4FAA4F,CAC7F,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CACb,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EACxD,wFAAwF,CACzF,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-message.d.ts","sourceRoot":"","sources":["../../src/tools/send-message.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"send-message.d.ts","sourceRoot":"","sources":["../../src/tools/send-message.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAY/C,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;CAsC3B,CAAC;AAEF,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,OAAO,EACb,GAAG,CAAC,EAAE,WAAW,GAChB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC,CAuG7E"}
|
|
@@ -4,10 +4,11 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
import { taskManager } from '../services/task-manager.js';
|
|
7
|
-
import { spawnOpenCodeTask } from '../services/opencode-spawner.js';
|
|
7
|
+
import { spawnOpenCodeTask, diagnoseConnection } from '../services/opencode-spawner.js';
|
|
8
8
|
import { progressRegistry } from '../services/progress-registry.js';
|
|
9
9
|
import { TaskStatus } from '../types.js';
|
|
10
10
|
import { mcpText, mcpError } from '../utils/format.js';
|
|
11
|
+
import { OpenCodeError } from '../services/opencode-client.js';
|
|
11
12
|
import { TASK_TIMEOUT_MAX_MS, TASK_TIMEOUT_MIN_MS } from '../config/timeouts.js';
|
|
12
13
|
const SendMessageSchema = z.object({
|
|
13
14
|
task_id: z.string().min(1),
|
|
@@ -118,7 +119,17 @@ export async function handleSendMessage(args, ctx) {
|
|
|
118
119
|
return mcpText(parts.filter(Boolean).join('\n'));
|
|
119
120
|
}
|
|
120
121
|
catch (error) {
|
|
121
|
-
|
|
122
|
+
if (error instanceof OpenCodeError) {
|
|
123
|
+
const parts = [error.message, '', `**Diagnosis:** ${error.guidance}`];
|
|
124
|
+
if (error.category === 'connection_refused') {
|
|
125
|
+
const diagnosis = await diagnoseConnection().catch(() => '');
|
|
126
|
+
if (diagnosis)
|
|
127
|
+
parts.push(`**Server status:** ${diagnosis}`);
|
|
128
|
+
}
|
|
129
|
+
return mcpError(parts.join('\n'));
|
|
130
|
+
}
|
|
131
|
+
const msg = error instanceof Error ? error.message : 'Failed to send message';
|
|
132
|
+
return mcpError(msg, 'Check that the OpenCode server is running (`opencode serve`) and the task session is still valid. Try creating a new task with `spawn_agent` instead.');
|
|
122
133
|
}
|
|
123
134
|
}
|
|
124
135
|
//# sourceMappingURL=send-message.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-message.js","sourceRoot":"","sources":["../../src/tools/send-message.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"send-message.js","sourceRoot":"","sources":["../../src/tools/send-message.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-spawn.d.ts","sourceRoot":"","sources":["../../src/tools/shared-spawn.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAkC,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtF,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"shared-spawn.d.ts","sourceRoot":"","sources":["../../src/tools/shared-spawn.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAkC,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtF,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAG3D,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,6BAA6B,CAAC;AAErC,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC;AAE7G,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,MAAM,EAAE;QAAE,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,CAAC,CAAA;KAAE,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IAC7C,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,QAAQ,GAAG,SAAS,CAAC;CACnD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,iBAAiB,EAC5D,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC5B,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,WAAW,KAAK,kBAAkB,CA8B1D;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,eAAe,EACvB,GAAG,CAAC,EAAE,WAAW,GAChB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC,CAoG7E"}
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
* Shared spawn logic used by all spawn tool handlers.
|
|
3
3
|
* Ported from mcp-supersubagents, adapted for OpenCode.
|
|
4
4
|
*/
|
|
5
|
-
import { spawnOpenCodeTask } from '../services/opencode-spawner.js';
|
|
5
|
+
import { spawnOpenCodeTask, diagnoseConnection } from '../services/opencode-spawner.js';
|
|
6
6
|
import { taskManager } from '../services/task-manager.js';
|
|
7
7
|
import { applyTemplate, isValidTaskType } from '../templates/index.js';
|
|
8
8
|
import { progressRegistry } from '../services/progress-registry.js';
|
|
9
9
|
import { TaskStatus } from '../types.js';
|
|
10
10
|
import { mcpText, mcpValidationError } from '../utils/format.js';
|
|
11
|
+
import { OpenCodeError } from '../services/opencode-client.js';
|
|
11
12
|
import { validateBrief, formatValidationError, assemblePromptWithContext, } from '../utils/brief-validator.js';
|
|
12
13
|
/**
|
|
13
14
|
* Generic factory that creates a spawn tool handler.
|
|
@@ -108,7 +109,23 @@ export async function handleSharedSpawn(params, config, ctx) {
|
|
|
108
109
|
return mcpText(parts.join('\n'));
|
|
109
110
|
}
|
|
110
111
|
catch (error) {
|
|
111
|
-
|
|
112
|
+
// Provide specific, actionable guidance based on error type
|
|
113
|
+
if (error instanceof OpenCodeError) {
|
|
114
|
+
const parts = [`**SPAWN ERROR:** ${error.message}`, '', `**Diagnosis:** ${error.guidance}`];
|
|
115
|
+
if (error.category === 'connection_refused' || error.category === 'dns_resolution') {
|
|
116
|
+
const diagnosis = await diagnoseConnection().catch(() => '');
|
|
117
|
+
if (diagnosis)
|
|
118
|
+
parts.push('', `**Server status:** ${diagnosis}`);
|
|
119
|
+
}
|
|
120
|
+
return mcpValidationError(parts.join('\n'));
|
|
121
|
+
}
|
|
122
|
+
const msg = error instanceof Error ? error.message : 'Unknown error';
|
|
123
|
+
// Check if it looks like a connection error even without OpenCodeError type
|
|
124
|
+
if (msg.includes('ECONNREFUSED') || msg.includes('fetch failed')) {
|
|
125
|
+
const diagnosis = await diagnoseConnection().catch(() => 'Unable to diagnose');
|
|
126
|
+
return mcpValidationError(`**SPAWN ERROR:** Cannot connect to OpenCode server.\n\n**Diagnosis:** ${diagnosis}\n\nEnsure \`opencode serve\` is running and OPENCODE_BASE_URL is correct.`);
|
|
127
|
+
}
|
|
128
|
+
return mcpValidationError(`**SPAWN ERROR:** ${msg}\n\nCheck that all parameters are valid and try again. Read resource \`system:///status\` for server connectivity info.`);
|
|
112
129
|
}
|
|
113
130
|
}
|
|
114
131
|
//# sourceMappingURL=shared-spawn.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-spawn.js","sourceRoot":"","sources":["../../src/tools/shared-spawn.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"shared-spawn.js","sourceRoot":"","sources":["../../src/tools/shared-spawn.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAiB,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,yBAAyB,GAE1B,MAAM,6BAA6B,CAAC;AA+BrC;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAA6B;IAE7B,OAAO,KAAK,EAAE,IAAa,EAAE,GAAiB,EAAsB,EAAE;QACpE,IAAI,MAAS,CAAC;QACd,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,kBAAkB,CACvB,iCAAiC,MAAM,CAAC,QAAQ,SAAS,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,OAAO,MAAM,CAAC,cAAc,EAAE,CACpJ,CAAC;QACJ,CAAC;QAED,OAAO,iBAAiB,CACtB;YACE,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK;YAChD,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,EACD;YACE,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ;YACzD,cAAc,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC;SACnD,EACD,GAAG,CACJ,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAyB,EACzB,MAAuB,EACvB,GAAiB;IAEjB,wBAAwB;IACxB,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IAC7F,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,kBAAkB,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,uCAAuC;IACvC,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;IAC3E,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,WAAW,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,kBAAkB,CACvB,yBAAyB,QAAQ,iGAAiG,CACnI,CAAC;QACJ,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,MAAM,cAAc,GAAG,MAAM,yBAAyB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IAE5F,+DAA+D;IAC/D,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC;QACrE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC;QACvE,CAAC,CAAC,cAAc,CAAC;IAEnB,oBAAoB;IACpB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;IAEpE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;YACrC,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,SAAS,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACvD,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YAC9C,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,aAAa;SAC3C,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,CAAC;QAEtD,IAAI,GAAG,EAAE,aAAa,IAAI,IAAI,EAAE,CAAC;YAC/B,gBAAgB,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC3E,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE,iBAAiB,MAAM,aAAa,IAAI,EAAE,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC;QACzG,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3D,MAAM,KAAK,GAAG;gBACZ,4CAA4C;gBAC5C,cAAc,MAAM,IAAI;gBACxB,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,IAAI;gBACvE,EAAE;gBACF,mBAAmB,QAAQ,EAAE;gBAC7B,EAAE;gBACF,4EAA4E;aAC7E,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAClB,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,KAAK,GAAG;YACZ,sBAAsB,MAAM,CAAC,QAAQ,GAAG;YACxC,cAAc,MAAM,IAAI;YACxB,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,IAAI;YACvE,EAAE;YACF,qFAAqF;YACrF,EAAE;YACF,8BAA8B;YAC9B,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,cAAc,qBAAqB,CAAC,CAAC,CAAC,IAAI;YACtF,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,cAAc,kBAAkB,CAAC,CAAC,CAAC,IAAI;YAChF,8BAA8B,MAAM,IAAI;SACzC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClB,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,4DAA4D;QAC5D,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,CAAC,oBAAoB,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,kBAAkB,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5F,IAAI,KAAK,CAAC,QAAQ,KAAK,oBAAoB,IAAI,KAAK,CAAC,QAAQ,KAAK,gBAAgB,EAAE,CAAC;gBACnF,MAAM,SAAS,GAAG,MAAM,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC7D,IAAI,SAAS;oBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,sBAAsB,SAAS,EAAE,CAAC,CAAC;YACnE,CAAC;YACD,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACrE,4EAA4E;QAC5E,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACjE,MAAM,SAAS,GAAG,MAAM,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAC;YAC/E,OAAO,kBAAkB,CACvB,yEAAyE,SAAS,4EAA4E,CAC/J,CAAC;QACJ,CAAC;QAED,OAAO,kBAAkB,CACvB,oBAAoB,GAAG,yHAAyH,CACjJ,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Ported from mcp-supersubagents, adapted for OpenCode.
|
|
4
4
|
*/
|
|
5
5
|
import { z } from 'zod';
|
|
6
|
-
import { ALL_ACCEPTED_MODELS, MODEL_IDS,
|
|
6
|
+
import { ALL_ACCEPTED_MODELS, MODEL_IDS, getPlannerModel } from '../models.js';
|
|
7
7
|
import { handleSharedSpawn } from './shared-spawn.js';
|
|
8
8
|
import { mcpValidationError } from '../utils/format.js';
|
|
9
9
|
import { TASK_TIMEOUT_DEFAULT_MS, TASK_TIMEOUT_MAX_MS, TASK_TIMEOUT_MIN_MS, } from '../config/timeouts.js';
|
|
@@ -39,7 +39,7 @@ export const spawnAgentTool = {
|
|
|
39
39
|
|
|
40
40
|
**Roles:**
|
|
41
41
|
- coder: Implementation. Min 1000-char prompt + min 1 .md context file. Include: OBJECTIVE, FILES, CRITERIA, CONSTRAINTS, PATTERNS.
|
|
42
|
-
- planner: Architecture/planning. Min 300-char prompt. Always uses
|
|
42
|
+
- planner: Architecture/planning. Min 300-char prompt. Always uses best available model. Include: PROBLEM, CONSTRAINTS, SCOPE, OUTPUT.
|
|
43
43
|
- tester: QA/testing. Min 300-char prompt + min 1 context file. Include: WHAT BUILT, FILES, CRITERIA, TESTS, EDGE CASES.
|
|
44
44
|
- researcher: Investigation. Min 200-char prompt. Include: TOPIC, QUESTIONS, HANDOFF TARGET.
|
|
45
45
|
|
|
@@ -76,7 +76,7 @@ export const spawnAgentTool = {
|
|
|
76
76
|
model: {
|
|
77
77
|
type: 'string',
|
|
78
78
|
enum: MODEL_IDS,
|
|
79
|
-
description: `Model. Default:
|
|
79
|
+
description: `Model. Default: github-copilot/claude-opus-4.6. Additional models discovered from \`opencode models\` at startup.`,
|
|
80
80
|
},
|
|
81
81
|
cwd: { type: 'string', description: 'Working directory (absolute path).' },
|
|
82
82
|
timeout: { type: 'number', description: `Max duration in ms. Default: ${TASK_TIMEOUT_DEFAULT_MS}. Max: ${TASK_TIMEOUT_MAX_MS}.` },
|
|
@@ -106,8 +106,8 @@ export async function handleSpawnAgent(args, ctx) {
|
|
|
106
106
|
}
|
|
107
107
|
const role = parsed.role;
|
|
108
108
|
const taskType = ROLE_TO_TASK_TYPE[role];
|
|
109
|
-
// Planner always uses
|
|
110
|
-
const model = role === 'planner' ?
|
|
109
|
+
// Planner always uses the best available model regardless of user input
|
|
110
|
+
const model = role === 'planner' ? getPlannerModel() : parsed.model;
|
|
111
111
|
const params = {
|
|
112
112
|
prompt: parsed.prompt,
|
|
113
113
|
context_files: parsed.context_files,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-agent.js","sourceRoot":"","sources":["../../src/tools/spawn-agent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"spawn-agent.js","sourceRoot":"","sources":["../../src/tools/spawn-agent.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-subagents-opencode",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "MCP server for spawning and managing OpenCode AI sub-agents — parallel task execution with planner, coder, researcher & tester specialists",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "build/index.js",
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Multi-Account Manager - In-memory round-robin rotation for GitHub PAT tokens.
|
|
3
|
-
*
|
|
4
|
-
* Supports up to 100 GitHub PAT tokens for failover on rate limits and errors.
|
|
5
|
-
* Key features:
|
|
6
|
-
* - Round-robin rotation through configured tokens
|
|
7
|
-
* - Automatic failover on rate limit (429) or server errors (5xx)
|
|
8
|
-
* - Reset to first token on MCP reconnect
|
|
9
|
-
* - Track failed tokens to skip them temporarily
|
|
10
|
-
*/
|
|
11
|
-
interface AccountRotationResult {
|
|
12
|
-
success: boolean;
|
|
13
|
-
token?: string;
|
|
14
|
-
tokenIndex?: number;
|
|
15
|
-
allExhausted?: boolean;
|
|
16
|
-
error?: string;
|
|
17
|
-
}
|
|
18
|
-
declare class AccountManager {
|
|
19
|
-
private tokens;
|
|
20
|
-
private currentIndex;
|
|
21
|
-
private rotationCount;
|
|
22
|
-
private lastRotationTime?;
|
|
23
|
-
private initialized;
|
|
24
|
-
/**
|
|
25
|
-
* Initialize the account manager with GitHub PAT tokens.
|
|
26
|
-
* Tokens can be provided via:
|
|
27
|
-
* - GITHUB_PAT_TOKENS env var (comma-separated)
|
|
28
|
-
* - GITHUB_PAT_TOKEN_1, GITHUB_PAT_TOKEN_2, ... env vars
|
|
29
|
-
* - Direct configuration via setTokens()
|
|
30
|
-
*/
|
|
31
|
-
initialize(): void;
|
|
32
|
-
/**
|
|
33
|
-
* Set tokens directly (useful for testing or programmatic configuration).
|
|
34
|
-
*/
|
|
35
|
-
setTokens(tokens: string[]): void;
|
|
36
|
-
/**
|
|
37
|
-
* Get the current active token.
|
|
38
|
-
* Returns undefined if no tokens configured.
|
|
39
|
-
*/
|
|
40
|
-
getCurrentToken(): string | undefined;
|
|
41
|
-
/**
|
|
42
|
-
* Get the current token index.
|
|
43
|
-
*/
|
|
44
|
-
getCurrentIndex(): number;
|
|
45
|
-
/**
|
|
46
|
-
* Get total number of configured tokens.
|
|
47
|
-
*/
|
|
48
|
-
getTokenCount(): number;
|
|
49
|
-
/**
|
|
50
|
-
* Check if multi-account mode is enabled (more than 1 token).
|
|
51
|
-
*/
|
|
52
|
-
isMultiAccountEnabled(): boolean;
|
|
53
|
-
/**
|
|
54
|
-
* Reset to the first token (called on MCP reconnect).
|
|
55
|
-
*/
|
|
56
|
-
reset(): void;
|
|
57
|
-
/**
|
|
58
|
-
* Rotate to the next available token.
|
|
59
|
-
* Called when current token encounters rate limit or error.
|
|
60
|
-
*
|
|
61
|
-
* @param reason - Reason for rotation (e.g., 'rate_limit', 'server_error')
|
|
62
|
-
* @returns Result with new token or exhausted status
|
|
63
|
-
*/
|
|
64
|
-
rotateToNext(reason?: string): AccountRotationResult;
|
|
65
|
-
/**
|
|
66
|
-
* Check if rotation should happen based on error type.
|
|
67
|
-
* Returns true for rate limits (429) and server errors (5xx).
|
|
68
|
-
*/
|
|
69
|
-
shouldRotate(statusCode?: number, errorMessage?: string): boolean;
|
|
70
|
-
/**
|
|
71
|
-
* Get statistics about token usage.
|
|
72
|
-
*/
|
|
73
|
-
getStats(): {
|
|
74
|
-
totalTokens: number;
|
|
75
|
-
currentIndex: number;
|
|
76
|
-
rotationCount: number;
|
|
77
|
-
lastRotation?: string;
|
|
78
|
-
failedTokens: number;
|
|
79
|
-
availableTokens: number;
|
|
80
|
-
};
|
|
81
|
-
/**
|
|
82
|
-
* Get a masked version of the current token for logging.
|
|
83
|
-
*/
|
|
84
|
-
getMaskedCurrentToken(): string;
|
|
85
|
-
}
|
|
86
|
-
export declare const accountManager: AccountManager;
|
|
87
|
-
export {};
|
|
88
|
-
//# sourceMappingURL=account-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"account-manager.d.ts","sourceRoot":"","sources":["../../src/services/account-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAaH,UAAU,qBAAqB;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,cAAM,cAAc;IAClB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,gBAAgB,CAAC,CAAO;IAChC,OAAO,CAAC,WAAW,CAAS;IAE5B;;;;;;OAMG;IACH,UAAU,IAAI,IAAI;IA2ClB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAejC;;;OAGG;IACH,eAAe,IAAI,MAAM,GAAG,SAAS;IAOrC;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,qBAAqB,IAAI,OAAO;IAIhC;;OAEG;IACH,KAAK,IAAI,IAAI;IAeb;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,GAAE,MAAkB,GAAG,qBAAqB;IAqE/D;;;OAGG;IACH,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO;IA6BjE;;OAEG;IACH,QAAQ,IAAI;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;KACzB;IAgBD;;OAEG;IACH,qBAAqB,IAAI,MAAM;CAMhC;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
|