mcp-subagents-opencode 1.0.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 (219) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +602 -0
  3. package/build/config/timeouts.d.ts +9 -0
  4. package/build/config/timeouts.d.ts.map +1 -0
  5. package/build/config/timeouts.js +18 -0
  6. package/build/config/timeouts.js.map +1 -0
  7. package/build/helpers.d.ts +6 -0
  8. package/build/helpers.d.ts.map +1 -0
  9. package/build/helpers.js +47 -0
  10. package/build/helpers.js.map +1 -0
  11. package/build/index.d.ts +3 -0
  12. package/build/index.d.ts.map +1 -0
  13. package/build/index.js +245 -0
  14. package/build/index.js.map +1 -0
  15. package/build/models.d.ts +32 -0
  16. package/build/models.d.ts.map +1 -0
  17. package/build/models.js +58 -0
  18. package/build/models.js.map +1 -0
  19. package/build/server/register-notifications.d.ts +3 -0
  20. package/build/server/register-notifications.d.ts.map +1 -0
  21. package/build/server/register-notifications.js +77 -0
  22. package/build/server/register-notifications.js.map +1 -0
  23. package/build/server/register-resources.d.ts +3 -0
  24. package/build/server/register-resources.d.ts.map +1 -0
  25. package/build/server/register-resources.js +210 -0
  26. package/build/server/register-resources.js.map +1 -0
  27. package/build/server/register-retry-execution.d.ts +2 -0
  28. package/build/server/register-retry-execution.d.ts.map +1 -0
  29. package/build/server/register-retry-execution.js +28 -0
  30. package/build/server/register-retry-execution.js.map +1 -0
  31. package/build/server/register-tasks.d.ts +3 -0
  32. package/build/server/register-tasks.d.ts.map +1 -0
  33. package/build/server/register-tasks.js +52 -0
  34. package/build/server/register-tasks.js.map +1 -0
  35. package/build/server/register-tools.d.ts +3 -0
  36. package/build/server/register-tools.d.ts.map +1 -0
  37. package/build/server/register-tools.js +32 -0
  38. package/build/server/register-tools.js.map +1 -0
  39. package/build/server/resource-helpers.d.ts +21 -0
  40. package/build/server/resource-helpers.d.ts.map +1 -0
  41. package/build/server/resource-helpers.js +84 -0
  42. package/build/server/resource-helpers.js.map +1 -0
  43. package/build/services/account-manager.d.ts +88 -0
  44. package/build/services/account-manager.d.ts.map +1 -0
  45. package/build/services/account-manager.js +239 -0
  46. package/build/services/account-manager.js.map +1 -0
  47. package/build/services/claude-code-runner.d.ts +15 -0
  48. package/build/services/claude-code-runner.d.ts.map +1 -0
  49. package/build/services/claude-code-runner.js +475 -0
  50. package/build/services/claude-code-runner.js.map +1 -0
  51. package/build/services/client-context.d.ts +31 -0
  52. package/build/services/client-context.d.ts.map +1 -0
  53. package/build/services/client-context.js +44 -0
  54. package/build/services/client-context.js.map +1 -0
  55. package/build/services/exhaustion-fallback.d.ts +27 -0
  56. package/build/services/exhaustion-fallback.d.ts.map +1 -0
  57. package/build/services/exhaustion-fallback.js +30 -0
  58. package/build/services/exhaustion-fallback.js.map +1 -0
  59. package/build/services/fallback-orchestrator.d.ts +16 -0
  60. package/build/services/fallback-orchestrator.d.ts.map +1 -0
  61. package/build/services/fallback-orchestrator.js +48 -0
  62. package/build/services/fallback-orchestrator.js.map +1 -0
  63. package/build/services/opencode-client.d.ts +40 -0
  64. package/build/services/opencode-client.d.ts.map +1 -0
  65. package/build/services/opencode-client.js +147 -0
  66. package/build/services/opencode-client.js.map +1 -0
  67. package/build/services/opencode-spawner.d.ts +56 -0
  68. package/build/services/opencode-spawner.d.ts.map +1 -0
  69. package/build/services/opencode-spawner.js +426 -0
  70. package/build/services/opencode-spawner.js.map +1 -0
  71. package/build/services/output-file.d.ts +24 -0
  72. package/build/services/output-file.d.ts.map +1 -0
  73. package/build/services/output-file.js +90 -0
  74. package/build/services/output-file.js.map +1 -0
  75. package/build/services/progress-registry.d.ts +12 -0
  76. package/build/services/progress-registry.d.ts.map +1 -0
  77. package/build/services/progress-registry.js +97 -0
  78. package/build/services/progress-registry.js.map +1 -0
  79. package/build/services/question-registry.d.ts +79 -0
  80. package/build/services/question-registry.d.ts.map +1 -0
  81. package/build/services/question-registry.js +249 -0
  82. package/build/services/question-registry.js.map +1 -0
  83. package/build/services/retry-queue.d.ts +41 -0
  84. package/build/services/retry-queue.d.ts.map +1 -0
  85. package/build/services/retry-queue.js +195 -0
  86. package/build/services/retry-queue.js.map +1 -0
  87. package/build/services/sdk-client-manager.d.ts +149 -0
  88. package/build/services/sdk-client-manager.d.ts.map +1 -0
  89. package/build/services/sdk-client-manager.js +632 -0
  90. package/build/services/sdk-client-manager.js.map +1 -0
  91. package/build/services/sdk-session-adapter.d.ts +203 -0
  92. package/build/services/sdk-session-adapter.d.ts.map +1 -0
  93. package/build/services/sdk-session-adapter.js +1088 -0
  94. package/build/services/sdk-session-adapter.js.map +1 -0
  95. package/build/services/sdk-spawner.d.ts +42 -0
  96. package/build/services/sdk-spawner.d.ts.map +1 -0
  97. package/build/services/sdk-spawner.js +488 -0
  98. package/build/services/sdk-spawner.js.map +1 -0
  99. package/build/services/session-hooks.d.ts +24 -0
  100. package/build/services/session-hooks.d.ts.map +1 -0
  101. package/build/services/session-hooks.js +130 -0
  102. package/build/services/session-hooks.js.map +1 -0
  103. package/build/services/session-snapshot.d.ts +19 -0
  104. package/build/services/session-snapshot.d.ts.map +1 -0
  105. package/build/services/session-snapshot.js +203 -0
  106. package/build/services/session-snapshot.js.map +1 -0
  107. package/build/services/subscription-registry.d.ts +12 -0
  108. package/build/services/subscription-registry.d.ts.map +1 -0
  109. package/build/services/subscription-registry.js +27 -0
  110. package/build/services/subscription-registry.js.map +1 -0
  111. package/build/services/task-manager.d.ts +150 -0
  112. package/build/services/task-manager.d.ts.map +1 -0
  113. package/build/services/task-manager.js +765 -0
  114. package/build/services/task-manager.js.map +1 -0
  115. package/build/services/task-persistence.d.ts +29 -0
  116. package/build/services/task-persistence.d.ts.map +1 -0
  117. package/build/services/task-persistence.js +159 -0
  118. package/build/services/task-persistence.js.map +1 -0
  119. package/build/services/task-status-mapper.d.ts +21 -0
  120. package/build/services/task-status-mapper.d.ts.map +1 -0
  121. package/build/services/task-status-mapper.js +171 -0
  122. package/build/services/task-status-mapper.js.map +1 -0
  123. package/build/templates/index.d.ts +22 -0
  124. package/build/templates/index.d.ts.map +1 -0
  125. package/build/templates/index.js +147 -0
  126. package/build/templates/index.js.map +1 -0
  127. package/build/templates/overlays/coder-csharp.mdx +58 -0
  128. package/build/templates/overlays/coder-go.mdx +53 -0
  129. package/build/templates/overlays/coder-java.mdx +54 -0
  130. package/build/templates/overlays/coder-kotlin.mdx +56 -0
  131. package/build/templates/overlays/coder-nextjs.mdx +65 -0
  132. package/build/templates/overlays/coder-python.mdx +53 -0
  133. package/build/templates/overlays/coder-react.mdx +55 -0
  134. package/build/templates/overlays/coder-ruby.mdx +59 -0
  135. package/build/templates/overlays/coder-rust.mdx +48 -0
  136. package/build/templates/overlays/coder-supabase.mdx +268 -0
  137. package/build/templates/overlays/coder-supastarter.mdx +313 -0
  138. package/build/templates/overlays/coder-swift.mdx +56 -0
  139. package/build/templates/overlays/coder-tauri.mdx +566 -0
  140. package/build/templates/overlays/coder-triggerdev.mdx +296 -0
  141. package/build/templates/overlays/coder-typescript.mdx +45 -0
  142. package/build/templates/overlays/coder-vue.mdx +62 -0
  143. package/build/templates/overlays/planner-architecture.mdx +78 -0
  144. package/build/templates/overlays/planner-bugfix.mdx +36 -0
  145. package/build/templates/overlays/planner-feature.mdx +38 -0
  146. package/build/templates/overlays/planner-migration.mdx +50 -0
  147. package/build/templates/overlays/planner-refactor.mdx +57 -0
  148. package/build/templates/overlays/researcher-library.mdx +59 -0
  149. package/build/templates/overlays/researcher-performance.mdx +68 -0
  150. package/build/templates/overlays/researcher-security.mdx +86 -0
  151. package/build/templates/overlays/tester-graphql.mdx +191 -0
  152. package/build/templates/overlays/tester-playwright.mdx +621 -0
  153. package/build/templates/overlays/tester-rest.mdx +101 -0
  154. package/build/templates/overlays/tester-suite.mdx +177 -0
  155. package/build/templates/super-coder.mdx +529 -0
  156. package/build/templates/super-planner.mdx +568 -0
  157. package/build/templates/super-researcher.mdx +406 -0
  158. package/build/templates/super-tester.mdx +243 -0
  159. package/build/tools/answer-question.d.ts +30 -0
  160. package/build/tools/answer-question.d.ts.map +1 -0
  161. package/build/tools/answer-question.js +108 -0
  162. package/build/tools/answer-question.js.map +1 -0
  163. package/build/tools/cancel-task.d.ts +44 -0
  164. package/build/tools/cancel-task.d.ts.map +1 -0
  165. package/build/tools/cancel-task.js +144 -0
  166. package/build/tools/cancel-task.js.map +1 -0
  167. package/build/tools/send-message.d.ts +39 -0
  168. package/build/tools/send-message.d.ts.map +1 -0
  169. package/build/tools/send-message.js +124 -0
  170. package/build/tools/send-message.js.map +1 -0
  171. package/build/tools/shared-spawn.d.ts +56 -0
  172. package/build/tools/shared-spawn.d.ts.map +1 -0
  173. package/build/tools/shared-spawn.js +114 -0
  174. package/build/tools/shared-spawn.js.map +1 -0
  175. package/build/tools/spawn-agent.d.ts +85 -0
  176. package/build/tools/spawn-agent.d.ts.map +1 -0
  177. package/build/tools/spawn-agent.js +133 -0
  178. package/build/tools/spawn-agent.js.map +1 -0
  179. package/build/tools/spawn-coder.d.ts +70 -0
  180. package/build/tools/spawn-coder.d.ts.map +1 -0
  181. package/build/tools/spawn-coder.js +71 -0
  182. package/build/tools/spawn-coder.js.map +1 -0
  183. package/build/tools/spawn-planner.d.ts +70 -0
  184. package/build/tools/spawn-planner.d.ts.map +1 -0
  185. package/build/tools/spawn-planner.js +71 -0
  186. package/build/tools/spawn-planner.js.map +1 -0
  187. package/build/tools/spawn-researcher.d.ts +70 -0
  188. package/build/tools/spawn-researcher.d.ts.map +1 -0
  189. package/build/tools/spawn-researcher.js +70 -0
  190. package/build/tools/spawn-researcher.js.map +1 -0
  191. package/build/tools/spawn-task.d.ts +74 -0
  192. package/build/tools/spawn-task.d.ts.map +1 -0
  193. package/build/tools/spawn-task.js +107 -0
  194. package/build/tools/spawn-task.js.map +1 -0
  195. package/build/tools/spawn-tester.d.ts +70 -0
  196. package/build/tools/spawn-tester.d.ts.map +1 -0
  197. package/build/tools/spawn-tester.js +69 -0
  198. package/build/tools/spawn-tester.js.map +1 -0
  199. package/build/types.d.ts +101 -0
  200. package/build/types.d.ts.map +1 -0
  201. package/build/types.js +28 -0
  202. package/build/types.js.map +1 -0
  203. package/build/utils/brief-validator.d.ts +30 -0
  204. package/build/utils/brief-validator.d.ts.map +1 -0
  205. package/build/utils/brief-validator.js +254 -0
  206. package/build/utils/brief-validator.js.map +1 -0
  207. package/build/utils/format.d.ts +34 -0
  208. package/build/utils/format.d.ts.map +1 -0
  209. package/build/utils/format.js +55 -0
  210. package/build/utils/format.js.map +1 -0
  211. package/build/utils/sanitize.d.ts +240 -0
  212. package/build/utils/sanitize.d.ts.map +1 -0
  213. package/build/utils/sanitize.js +89 -0
  214. package/build/utils/sanitize.js.map +1 -0
  215. package/build/utils/task-id-generator.d.ts +10 -0
  216. package/build/utils/task-id-generator.d.ts.map +1 -0
  217. package/build/utils/task-id-generator.js +22 -0
  218. package/build/utils/task-id-generator.js.map +1 -0
  219. package/package.json +62 -0
@@ -0,0 +1,203 @@
1
+ /**
2
+ * SDK Session Adapter - Bridges Copilot SDK sessions to the MCP server's TaskState model.
3
+ *
4
+ * This adapter:
5
+ * - Maps SDK session events to TaskState updates using SDK's native types
6
+ * - Handles mid-session rate limit detection via session.error events
7
+ * - Triggers account rotation and session resume on rate limits
8
+ * - Manages streaming output accumulation
9
+ * - Provides unified error handling with proper typing
10
+ * - Collects completion metrics from session.shutdown
11
+ * - Tracks quota info from assistant.usage
12
+ * - Monitors tool execution and subagent activity
13
+ */
14
+ import type { CopilotSession } from '@github/copilot-sdk';
15
+ import { type QuotaInfo, type ToolMetrics, type SubagentInfo } from '../types.js';
16
+ type RotationRequestCallback = (taskId: string, sessionId: string, reason: string, statusCode?: number) => Promise<{
17
+ rotated: boolean;
18
+ newSession?: CopilotSession;
19
+ }>;
20
+ interface SessionBinding {
21
+ taskId: string;
22
+ session: CopilotSession;
23
+ sessionId: string;
24
+ unsubscribe: () => void;
25
+ outputBuffer: string[];
26
+ reasoningBuffer: string[];
27
+ lastMessageId?: string;
28
+ startTime: Date;
29
+ isCompleted: boolean;
30
+ isPaused: boolean;
31
+ error?: string;
32
+ rotationAttempts: number;
33
+ maxRotationAttempts: number;
34
+ rotationInProgress: boolean;
35
+ rateLimitInfo?: {
36
+ statusCode: number;
37
+ resetDate?: string;
38
+ remainingPercentage?: number;
39
+ };
40
+ pendingPrompt?: string;
41
+ turnCount: number;
42
+ totalTokens: {
43
+ input: number;
44
+ output: number;
45
+ };
46
+ toolMetrics: Map<string, ToolMetrics>;
47
+ toolStartTimes: Map<string, number>;
48
+ toolCallIdToName: Map<string, string>;
49
+ activeSubagents: Map<string, SubagentInfo>;
50
+ completedSubagents: SubagentInfo[];
51
+ quotas: Map<string, QuotaInfo>;
52
+ isUnbound: boolean;
53
+ }
54
+ declare class SDKSessionAdapter {
55
+ private bindings;
56
+ private rotationCallback?;
57
+ /**
58
+ * Set the callback for rotation requests.
59
+ * This is called when mid-session rate limits are detected.
60
+ */
61
+ onRotationRequest(callback: RotationRequestCallback): void;
62
+ /**
63
+ * Perform a health check on the current account by creating a test session.
64
+ * Uses claude-haiku-4.5 for fast/cheap verification.
65
+ * Returns true if the account can successfully respond.
66
+ */
67
+ performHealthCheck(cwd: string): Promise<boolean>;
68
+ /**
69
+ * Bind a SDK session to a task, setting up event handlers.
70
+ */
71
+ bind(taskId: string, session: CopilotSession, pendingPrompt?: string): void;
72
+ /**
73
+ * Handle SDK session events and map them to task updates.
74
+ * Uses type narrowing for type-safe event handling.
75
+ */
76
+ private handleEvent;
77
+ /**
78
+ * Handle session.start event
79
+ */
80
+ private handleSessionStart;
81
+ /**
82
+ * Handle assistant.turn_start event - track turn count
83
+ */
84
+ private handleTurnStart;
85
+ /**
86
+ * Handle session.idle event - indicates completion
87
+ */
88
+ private handleSessionIdle;
89
+ /**
90
+ * Handle session.error event - key for mid-session rate limit detection
91
+ * Now stores structured failure context
92
+ */
93
+ private handleSessionError;
94
+ /**
95
+ * Attempt to rotate to a new account and resume the session
96
+ */
97
+ private attemptRotationAndResume;
98
+ /**
99
+ * Rebind a task with a new session after rotation
100
+ */
101
+ private rebindWithNewSession;
102
+ /**
103
+ * Mark task as rate limited (for when rotation is exhausted)
104
+ */
105
+ private markAsRateLimited;
106
+ /**
107
+ * Mark task as failed with structured failure context
108
+ */
109
+ private markAsFailed;
110
+ /**
111
+ * Handle assistant.message_delta event (streaming)
112
+ */
113
+ private handleMessageDelta;
114
+ /**
115
+ * Handle assistant.message event (final message)
116
+ * Also checks for string-based rate limit detection as fallback
117
+ */
118
+ private handleAssistantMessage;
119
+ /**
120
+ * Handle assistant.usage event for quota tracking
121
+ * Stores structured quota info and updates session metrics
122
+ */
123
+ private handleUsage;
124
+ /**
125
+ * Handle tool.execution_start event - track tool metrics
126
+ */
127
+ private handleToolStart;
128
+ /**
129
+ * Handle tool.execution_complete event - finalize tool metrics
130
+ */
131
+ private handleToolComplete;
132
+ /**
133
+ * Handle subagent.started event
134
+ */
135
+ private handleSubagentStarted;
136
+ /**
137
+ * Handle subagent.completed event
138
+ */
139
+ private handleSubagentCompleted;
140
+ /**
141
+ * Handle subagent.failed event
142
+ */
143
+ private handleSubagentFailed;
144
+ /**
145
+ * Handle session.shutdown event - extract completion metrics
146
+ */
147
+ private handleSessionShutdown;
148
+ /**
149
+ * Handle abort event
150
+ */
151
+ private handleAbort;
152
+ /**
153
+ * Update session metrics in task state
154
+ * Uses SDK's UsageMetricsTracker for token/request metrics, combined with our custom tracking
155
+ */
156
+ private updateSessionMetrics;
157
+ /**
158
+ * Unbind a session from a task.
159
+ * Also destroys the session and removes it from the client manager's tracking
160
+ * to prevent PTY file descriptor leaks.
161
+ */
162
+ unbind(taskId: string): void;
163
+ /**
164
+ * Get the binding for a task.
165
+ */
166
+ getBinding(taskId: string): SessionBinding | undefined;
167
+ /**
168
+ * Get the session for a task.
169
+ */
170
+ getSession(taskId: string): CopilotSession | undefined;
171
+ /**
172
+ * Check if a task has an active session.
173
+ */
174
+ hasSession(taskId: string): boolean;
175
+ /**
176
+ * Get accumulated output for a task.
177
+ */
178
+ getOutput(taskId: string): string[];
179
+ /**
180
+ * Mark a task as timed out.
181
+ */
182
+ markTimedOut(taskId: string, timeoutMs: number): void;
183
+ /**
184
+ * Cleanup all bindings.
185
+ * Destroys all sessions to release PTY file descriptors.
186
+ */
187
+ cleanup(): void;
188
+ /**
189
+ * Get statistics.
190
+ */
191
+ getStats(): {
192
+ activeBindings: number;
193
+ totalRotations: number;
194
+ totalTurns: number;
195
+ totalTokens: {
196
+ input: number;
197
+ output: number;
198
+ };
199
+ };
200
+ }
201
+ export declare const sdkSessionAdapter: SDKSessionAdapter;
202
+ export {};
203
+ //# sourceMappingURL=sdk-session-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-session-adapter.d.ts","sourceRoot":"","sources":["../../src/services/sdk-session-adapter.ts"],"names":[],"mappings":"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"}