super-subagents 1.3.10 → 1.3.11

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 (92) hide show
  1. package/FALLBACK_IMPLEMENTATION.md +191 -0
  2. package/build/config/timeouts.d.ts +1 -0
  3. package/build/config/timeouts.d.ts.map +1 -1
  4. package/build/config/timeouts.js +2 -0
  5. package/build/config/timeouts.js.map +1 -1
  6. package/build/index.js +35 -9
  7. package/build/index.js.map +1 -1
  8. package/build/services/claude-code-runner.d.ts +12 -0
  9. package/build/services/claude-code-runner.d.ts.map +1 -0
  10. package/build/services/claude-code-runner.js +220 -0
  11. package/build/services/claude-code-runner.js.map +1 -0
  12. package/build/services/exhaustion-fallback.d.ts +27 -0
  13. package/build/services/exhaustion-fallback.d.ts.map +1 -0
  14. package/build/services/exhaustion-fallback.js +30 -0
  15. package/build/services/exhaustion-fallback.js.map +1 -0
  16. package/build/services/sdk-client-manager.d.ts +12 -0
  17. package/build/services/sdk-client-manager.d.ts.map +1 -1
  18. package/build/services/sdk-client-manager.js +86 -12
  19. package/build/services/sdk-client-manager.js.map +1 -1
  20. package/build/services/sdk-session-adapter.d.ts +4 -0
  21. package/build/services/sdk-session-adapter.d.ts.map +1 -1
  22. package/build/services/sdk-session-adapter.js +78 -18
  23. package/build/services/sdk-session-adapter.js.map +1 -1
  24. package/build/services/sdk-spawner.d.ts.map +1 -1
  25. package/build/services/sdk-spawner.js +46 -26
  26. package/build/services/sdk-spawner.js.map +1 -1
  27. package/build/services/session-snapshot.d.ts +13 -0
  28. package/build/services/session-snapshot.d.ts.map +1 -0
  29. package/build/services/session-snapshot.js +103 -0
  30. package/build/services/session-snapshot.js.map +1 -0
  31. package/build/services/task-manager.d.ts +1 -2
  32. package/build/services/task-manager.d.ts.map +1 -1
  33. package/build/services/task-manager.js +4 -9
  34. package/build/services/task-manager.js.map +1 -1
  35. package/build/services/task-status-mapper.d.ts.map +1 -1
  36. package/build/services/task-status-mapper.js +1 -1
  37. package/build/services/task-status-mapper.js.map +1 -1
  38. package/build/tools/send-message.js +1 -1
  39. package/build/tools/send-message.js.map +1 -1
  40. package/build/tools/shared-spawn.d.ts +28 -0
  41. package/build/tools/shared-spawn.d.ts.map +1 -1
  42. package/build/tools/shared-spawn.js +31 -0
  43. package/build/tools/shared-spawn.js.map +1 -1
  44. package/build/tools/spawn-coder.d.ts +1 -8
  45. package/build/tools/spawn-coder.d.ts.map +1 -1
  46. package/build/tools/spawn-coder.js +8 -25
  47. package/build/tools/spawn-coder.js.map +1 -1
  48. package/build/tools/spawn-planner.d.ts +1 -8
  49. package/build/tools/spawn-planner.d.ts.map +1 -1
  50. package/build/tools/spawn-planner.js +9 -25
  51. package/build/tools/spawn-planner.js.map +1 -1
  52. package/build/tools/spawn-researcher.d.ts +1 -8
  53. package/build/tools/spawn-researcher.d.ts.map +1 -1
  54. package/build/tools/spawn-researcher.js +7 -24
  55. package/build/tools/spawn-researcher.js.map +1 -1
  56. package/build/tools/spawn-task.d.ts +1 -8
  57. package/build/tools/spawn-task.d.ts.map +1 -1
  58. package/build/tools/spawn-task.js +7 -30
  59. package/build/tools/spawn-task.js.map +1 -1
  60. package/build/tools/spawn-tester.d.ts +1 -8
  61. package/build/tools/spawn-tester.d.ts.map +1 -1
  62. package/build/tools/spawn-tester.js +7 -24
  63. package/build/tools/spawn-tester.js.map +1 -1
  64. package/build/types.d.ts +11 -1
  65. package/build/types.d.ts.map +1 -1
  66. package/build/types.js +17 -0
  67. package/build/types.js.map +1 -1
  68. package/build/utils/sanitize.d.ts +67 -194
  69. package/build/utils/sanitize.d.ts.map +1 -1
  70. package/build/utils/sanitize.js +6 -6
  71. package/build/utils/sanitize.js.map +1 -1
  72. package/package.json +3 -2
  73. package/src/config/timeouts.ts +3 -0
  74. package/src/index.ts +38 -10
  75. package/src/services/claude-code-runner.ts +246 -0
  76. package/src/services/exhaustion-fallback.ts +38 -0
  77. package/src/services/sdk-client-manager.ts +106 -11
  78. package/src/services/sdk-session-adapter.ts +95 -23
  79. package/src/services/sdk-spawner.ts +53 -28
  80. package/src/services/session-snapshot.ts +125 -0
  81. package/src/services/task-manager.ts +4 -9
  82. package/src/services/task-status-mapper.ts +1 -2
  83. package/src/tools/send-message.ts +1 -1
  84. package/src/tools/shared-spawn.ts +56 -0
  85. package/src/tools/spawn-coder.ts +8 -35
  86. package/src/tools/spawn-planner.ts +9 -35
  87. package/src/tools/spawn-researcher.ts +7 -34
  88. package/src/tools/spawn-task.ts +8 -43
  89. package/src/tools/spawn-tester.ts +7 -34
  90. package/src/types.ts +29 -2
  91. package/src/utils/sanitize.ts +6 -6
  92. package/test-fallback.sh +63 -0
@@ -0,0 +1,191 @@
1
+ # Claude Agent SDK Fallback Implementation
2
+
3
+ This document describes the implementation of the Claude Agent SDK fallback when Copilot accounts are exhausted.
4
+
5
+ ## Overview
6
+
7
+ When all GitHub Copilot PAT accounts are exhausted (rate-limited or in cooldown), the system automatically falls back to Claude Agent SDK (`@anthropic-ai/claude-agent-sdk`) to continue task execution.
8
+
9
+ ## Key Components
10
+
11
+ ### 1. New Services
12
+
13
+ #### `/src/services/exhaustion-fallback.ts`
14
+ - **Purpose**: Policy checker for when to activate fallback
15
+ - **Key function**: `shouldFallbackToClaudeCode(rotationResult)` - returns true ONLY when `allExhausted=true`
16
+ - **Environment variable**: `DISABLE_CLAUDE_CODE_FALLBACK=true` to disable fallback (defaults to enabled)
17
+
18
+ #### `/src/services/session-snapshot.ts`
19
+ - **Purpose**: Extract bounded context from Copilot session for handoff
20
+ - **Key function**: `buildHandoffPrompt(task, maxTurns)` - builds handoff prompt with last N turns
21
+ - **Bounds**: Max 5 turns, 2K chars per message, 20K total snapshot size
22
+
23
+ #### `/src/services/claude-code-runner.ts`
24
+ - **Purpose**: Execute tasks using Claude Agent SDK
25
+ - **Key function**: `runClaudeCodeSession(taskId, prompt, cwd, timeout, resumeSessionId?)`
26
+ - **Features**:
27
+ - Streams output to task output file
28
+ - Tracks tool metrics and token usage
29
+ - Handles session resumption via `sessionId`
30
+ - Sets `provider: 'claude-cli'` and fallback metadata
31
+
32
+ ### 2. Integration Points
33
+
34
+ #### `/src/services/sdk-spawner.ts`
35
+ Two integration points:
36
+
37
+ **A. Pre-task check (line ~104)**
38
+ - Before starting a new task, check if any Copilot accounts are available via `accountManager.getCurrentToken()`
39
+ - If no token available, immediately use Claude Agent SDK
40
+ - No Copilot session is created
41
+
42
+ **B. Mid-task exhaustion (line ~399)**
43
+ - In `handleRateLimit()` function when `rotationResult.allExhausted=true`
44
+ - Unbind Copilot session
45
+ - Build handoff prompt from session snapshot
46
+ - Calculate remaining timeout
47
+ - Continue with Claude Agent SDK
48
+
49
+ #### `/src/services/sdk-session-adapter.ts` (line ~530)
50
+ - In `attemptRotationAndResume()` when mid-session rotation fails with `allExhausted`
51
+ - Unbind Copilot session
52
+ - Build handoff prompt from session snapshot
53
+ - Calculate remaining timeout
54
+ - Delegate to Claude Agent SDK (async, doesn't block)
55
+
56
+ ### 3. Type Extensions
57
+
58
+ #### `/src/types.ts`
59
+ Added to `SessionMetrics` interface:
60
+ ```typescript
61
+ provider?: Provider; // 'copilot' | 'claude-cli'
62
+ fallbackActivated?: boolean;
63
+ fallbackReason?: string; // 'copilot-accounts-exhausted'
64
+ ```
65
+
66
+ Existing fields used:
67
+ - `TaskState.provider: Provider` - tracks which SDK is active
68
+ - `TaskState.sessionId: string` - stores session ID for both Copilot and Claude
69
+ - `TaskState.sessionMetrics: SessionMetrics` - includes fallback metadata
70
+
71
+ ## Behavior
72
+
73
+ ### Sticky Provider Rule
74
+ Once a task switches to Claude Agent SDK (`provider: 'claude-cli'`), it NEVER attempts to switch back to Copilot for that task. This prevents ping-ponging between providers.
75
+
76
+ ### When Fallback Activates
77
+ Fallback ONLY activates when:
78
+ - `accountManager.rotateToNext()` returns `{ allExhausted: true }`
79
+ - This means ALL Copilot accounts are in cooldown (exhausted)
80
+
81
+ Fallback does NOT activate for:
82
+ - Auth errors (401/403)
83
+ - Timeouts
84
+ - Single-account failures
85
+ - Network errors
86
+
87
+ ### Session Handoff
88
+ When switching from Copilot to Claude Agent SDK:
89
+ 1. Extract last 5 turns from Copilot output file
90
+ 2. Truncate messages to 2K chars each, 20K total
91
+ 3. Build prompt: "You are continuing a task... Original prompt: ... Recent context: ..."
92
+ 4. Calculate remaining timeout from original task timeout
93
+ 5. Start Claude Agent SDK session with handoff prompt
94
+
95
+ ### Logging
96
+ Clear logging indicates fallback activation:
97
+ ```
98
+ [sdk-spawner] All Copilot accounts exhausted for task <id>, falling back to Claude Agent SDK
99
+ [system] All Copilot accounts exhausted. Switching to Claude Agent SDK...
100
+ [claude-code-runner] Starting Claude Agent SDK session for task <id>
101
+ ```
102
+
103
+ ### Metrics
104
+ Tasks that use fallback have:
105
+ ```typescript
106
+ task.provider = 'claude-cli'
107
+ task.sessionMetrics.provider = 'claude-cli'
108
+ task.sessionMetrics.fallbackActivated = true
109
+ task.sessionMetrics.fallbackReason = 'copilot-accounts-exhausted'
110
+ ```
111
+
112
+ ## Dependencies
113
+
114
+ - `@anthropic-ai/claude-agent-sdk@^0.2.34` - Claude Agent SDK
115
+ - `zod@^4.0.0` - Upgraded from v3 for SDK compatibility
116
+
117
+ ## Persistence
118
+
119
+ The following fields are automatically persisted to `~/.super-agents/{hash}.json`:
120
+ - `provider`
121
+ - `sessionId` (works for both Copilot and Claude sessions)
122
+ - `sessionMetrics` (includes fallback metadata)
123
+
124
+ The `session` field (runtime object) is excluded from persistence.
125
+
126
+ ## Testing
127
+
128
+ ### Manual Verification
129
+
130
+ 1. **Setup**: Set invalid or exhausted PAT token
131
+ ```bash
132
+ export GITHUB_PAT_TOKENS="ghp_invalidtoken123"
133
+ npm run build && npm start
134
+ ```
135
+
136
+ 2. **Trigger fallback**: Spawn a task via MCP `spawn_task` tool
137
+
138
+ 3. **Verify**:
139
+ - Console logs show fallback activation
140
+ - Task output shows Claude Agent SDK continuation message
141
+ - Task completes successfully (status: COMPLETED)
142
+ - Read task resource: `provider: 'claude-cli'`, `sessionId` populated
143
+
144
+ 4. **Test rollback**: Disable fallback
145
+ ```bash
146
+ export DISABLE_CLAUDE_CODE_FALLBACK=true
147
+ npm start
148
+ # Task should FAIL with "All accounts exhausted"
149
+ ```
150
+
151
+ ### Edge Cases
152
+
153
+ 1. **Claude Agent SDK not installed**: Task fails with clear error message
154
+ 2. **Claude CLI not authenticated**: Task fails with "Run: claude login" message
155
+ 3. **Claude Agent SDK fails**: Task transitions to FAILED with proper `failureContext`
156
+ 4. **Timeout during Claude execution**: Task transitions to TIMED_OUT
157
+ 5. **No Copilot accounts on startup**: Immediately uses Claude Agent SDK
158
+
159
+ ## Rollback Switch
160
+
161
+ Set `DISABLE_CLAUDE_CODE_FALLBACK=true` to disable fallback. Tasks will fail with "All accounts exhausted" when Copilot accounts are exhausted (original behavior).
162
+
163
+ ## Architecture Decisions
164
+
165
+ ### Why this seam?
166
+ The integration point in `sdk-spawner.ts:handleRateLimit()` was chosen because:
167
+ 1. Single point of control for all exhaustion paths
168
+ 2. Clear `allExhausted` signal from account manager
169
+ 3. Full task context available for snapshot building
170
+ 4. Minimal disruption to existing code
171
+ 5. Symmetric with existing retry patterns
172
+
173
+ ### Why not other seams?
174
+ - `account-manager.ts`: Too low-level, no task context
175
+ - `sdk-client-manager.ts`: No task state, can't build handoff prompt
176
+ - Multiple seams: Would create fragmented logic
177
+
178
+ ### Provider tracking
179
+ Using existing `provider` field rather than new fields because:
180
+ 1. Already exists in types
181
+ 2. Clearly indicates which SDK is active
182
+ 3. Persists automatically
183
+ 4. No migration needed
184
+
185
+ ## Future Improvements
186
+
187
+ 1. **Smarter handoff**: Parse tool executions and file changes for better context
188
+ 2. **Resume support**: Allow resuming Claude sessions across restarts
189
+ 3. **Bidirectional switch**: Allow switching back to Copilot when accounts recover (requires careful design to avoid loops)
190
+ 4. **Cost tracking**: Track usage by provider for billing/analytics
191
+ 5. **Provider preference**: Allow user to prefer Claude Agent SDK over Copilot
@@ -5,4 +5,5 @@ export declare const TASK_TIMEOUT_MIN_MS: number;
5
5
  export declare const TASK_TIMEOUT_MAX_MS: number;
6
6
  export declare const TASK_TIMEOUT_DEFAULT_MS: number;
7
7
  export declare const TASK_STALL_WARN_MS: number;
8
+ export declare const TASK_TTL_MS: number;
8
9
  //# sourceMappingURL=timeouts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"timeouts.d.ts","sourceRoot":"","sources":["../../src/config/timeouts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,eAAO,MAAM,mBAAmB,QAA+C,CAAC;AAChF,eAAO,MAAM,mBAAmB,QAAmD,CAAC;AACpF,eAAO,MAAM,uBAAuB,QAA+C,CAAC;AACpF,eAAO,MAAM,kBAAkB,QAAmD,CAAC"}
1
+ {"version":3,"file":"timeouts.d.ts","sourceRoot":"","sources":["../../src/config/timeouts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,eAAO,MAAM,mBAAmB,QAA+C,CAAC;AAChF,eAAO,MAAM,mBAAmB,QAAmD,CAAC;AACpF,eAAO,MAAM,uBAAuB,QAA+C,CAAC;AACpF,eAAO,MAAM,kBAAkB,QAAmD,CAAC;AAGnF,eAAO,MAAM,WAAW,QAA2C,CAAC"}
@@ -13,4 +13,6 @@ export const TASK_TIMEOUT_MIN_MS = readIntEnv('MCP_TASK_TIMEOUT_MIN_MS', 1_000);
13
13
  export const TASK_TIMEOUT_MAX_MS = readIntEnv('MCP_TASK_TIMEOUT_MAX_MS', 3_600_000);
14
14
  export const TASK_TIMEOUT_DEFAULT_MS = readIntEnv('MCP_TASK_TIMEOUT_MS', 1_800_000);
15
15
  export const TASK_STALL_WARN_MS = readIntEnv('MCP_TASK_STALL_WARN_MS', 5 * 60_000);
16
+ // Task retention: how long completed/failed tasks stay in memory before cleanup
17
+ export const TASK_TTL_MS = readIntEnv('MCP_TASK_TTL_MS', 3_600_000); // 1 hour
16
18
  //# sourceMappingURL=timeouts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timeouts.js","sourceRoot":"","sources":["../../src/config/timeouts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,SAAS,UAAU,CAAC,IAAY,EAAE,QAAgB;IAChD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAG;QAAE,OAAO,QAAQ,CAAC;IAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC5E,CAAC;AAED,gCAAgC;AAChC,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;AAChF,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC;AACpF,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAU,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;AACpF,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC,wBAAwB,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"timeouts.js","sourceRoot":"","sources":["../../src/config/timeouts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,SAAS,UAAU,CAAC,IAAY,EAAE,QAAgB;IAChD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAG;QAAE,OAAO,QAAQ,CAAC;IAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC5E,CAAC;AAED,gCAAgC;AAChC,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;AAChF,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC;AACpF,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAU,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;AACpF,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC,wBAAwB,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;AAEnF,gFAAgF;AAChF,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS"}
package/build/index.js CHANGED
@@ -10,7 +10,8 @@ import { spawnResearcherTool, handleSpawnResearcher } from './tools/spawn-resear
10
10
  import { cancelTaskTool, handleCancelTask } from './tools/cancel-task.js';
11
11
  import { sendMessageTool, handleSendMessage } from './tools/send-message.js';
12
12
  import { answerQuestionTool, handleAnswerQuestion } from './tools/answer-question.js';
13
- import { taskManager, TERMINAL_STATUSES } from './services/task-manager.js';
13
+ import { taskManager } from './services/task-manager.js';
14
+ import { TERMINAL_STATUSES } from './types.js';
14
15
  import { clientContext } from './services/client-context.js';
15
16
  import { checkSDKAvailable, shutdownSDK, getSDKStats } from './services/sdk-spawner.js';
16
17
  import { sdkClientManager } from './services/sdk-client-manager.js';
@@ -561,15 +562,40 @@ async function main() {
561
562
  }
562
563
  const transport = new StdioServerTransport();
563
564
  await server.connect(transport);
564
- // Graceful shutdown with SDK cleanup
565
- const shutdown = async () => {
566
- console.error('Shutting down...');
567
- await taskManager.shutdown();
568
- await shutdownSDK();
569
- process.exit(0);
565
+ // Graceful shutdown with SDK cleanup (guard against double-shutdown)
566
+ let isShuttingDown = false;
567
+ const shutdown = async (signal, exitCode = 0) => {
568
+ if (isShuttingDown)
569
+ return;
570
+ isShuttingDown = true;
571
+ console.error(`Shutting down${signal ? ` (${signal})` : ''}...`);
572
+ try {
573
+ await taskManager.shutdown();
574
+ await shutdownSDK();
575
+ }
576
+ catch (err) {
577
+ console.error('Shutdown error:', err);
578
+ }
579
+ process.exit(exitCode);
570
580
  };
571
- process.on('SIGINT', shutdown);
572
- process.on('SIGTERM', shutdown);
581
+ process.on('SIGINT', () => shutdown('SIGINT', 0));
582
+ process.on('SIGTERM', () => shutdown('SIGTERM', 0));
583
+ // Emergency cleanup on unhandled errors — prevent PTY leaks on crash
584
+ process.on('unhandledRejection', (reason) => {
585
+ console.error('[FATAL] Unhandled rejection:', reason);
586
+ shutdown('unhandledRejection', 1).catch(() => process.exit(1));
587
+ });
588
+ process.on('uncaughtException', (err) => {
589
+ console.error('[FATAL] Uncaught exception:', err);
590
+ shutdown('uncaughtException', 1).catch(() => process.exit(1));
591
+ });
592
+ // Periodic session leak detection (every 5 min)
593
+ setInterval(() => {
594
+ const stats = getSDKStats();
595
+ if (stats.bindings > 0 || stats.sessions > 0) {
596
+ console.error(`[session-monitor] Active: ${stats.bindings} bindings, ${stats.sessions} sessions, ${stats.clients} clients`);
597
+ }
598
+ }, 5 * 60_000);
573
599
  }
574
600
  main().catch(e => { console.error('Fatal:', e); process.exit(1); });
575
601
  //# sourceMappingURL=index.js.map
@@ -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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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Claude Agent SDK Runner
3
+ *
4
+ * Standalone runner that executes tasks using Claude Agent SDK when Copilot accounts are exhausted.
5
+ * Mirrors Copilot SDK session behavior: streams output, tracks metrics, handles errors.
6
+ */
7
+ /**
8
+ * Run a task using Claude Agent SDK.
9
+ * Streams output to task output file and tracks metrics.
10
+ */
11
+ export declare function runClaudeCodeSession(taskId: string, prompt: string, cwd: string, timeout: number, resumeSessionId?: string): Promise<void>;
12
+ //# sourceMappingURL=claude-code-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code-runner.d.ts","sourceRoot":"","sources":["../../src/services/claude-code-runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC,CA+Nf"}
@@ -0,0 +1,220 @@
1
+ /**
2
+ * Claude Agent SDK Runner
3
+ *
4
+ * Standalone runner that executes tasks using Claude Agent SDK when Copilot accounts are exhausted.
5
+ * Mirrors Copilot SDK session behavior: streams output, tracks metrics, handles errors.
6
+ */
7
+ import { query } from '@anthropic-ai/claude-agent-sdk';
8
+ import { taskManager } from './task-manager.js';
9
+ import { TaskStatus, isTerminalStatus } from '../types.js';
10
+ /**
11
+ * Run a task using Claude Agent SDK.
12
+ * Streams output to task output file and tracks metrics.
13
+ */
14
+ export async function runClaudeCodeSession(taskId, prompt, cwd, timeout, resumeSessionId) {
15
+ const task = taskManager.getTask(taskId);
16
+ if (!task) {
17
+ console.error(`[claude-code-runner] Task ${taskId} not found`);
18
+ return;
19
+ }
20
+ console.log(`[claude-code-runner] Starting Claude Agent SDK session for task ${taskId}`);
21
+ console.log(`[claude-code-runner] CWD: ${cwd}, Timeout: ${timeout}ms, Resume: ${resumeSessionId || 'none'}`);
22
+ // Guard: don't overwrite if task already reached terminal state (e.g., cancelled)
23
+ if (isTerminalStatus(task.status)) {
24
+ console.log(`[claude-code-runner] Task ${taskId} already terminal (${task.status}), skipping`);
25
+ return;
26
+ }
27
+ // Mark as running with claude-cli provider and set fallback metadata
28
+ taskManager.updateTask(taskId, {
29
+ status: TaskStatus.RUNNING,
30
+ provider: 'claude-cli',
31
+ sessionMetrics: {
32
+ ...task.sessionMetrics,
33
+ quotas: task.sessionMetrics?.quotas || {},
34
+ toolMetrics: task.sessionMetrics?.toolMetrics || {},
35
+ activeSubagents: [],
36
+ completedSubagents: [],
37
+ turnCount: 0,
38
+ totalTokens: { input: 0, output: 0 },
39
+ provider: 'claude-cli',
40
+ fallbackActivated: true,
41
+ fallbackReason: 'copilot-accounts-exhausted',
42
+ },
43
+ });
44
+ const abortController = new AbortController();
45
+ const timeoutHandle = setTimeout(() => {
46
+ console.warn(`[claude-code-runner] Task ${taskId} timed out after ${timeout}ms`);
47
+ abortController.abort();
48
+ }, timeout);
49
+ try {
50
+ // Create query with options
51
+ const queryStream = query({
52
+ prompt,
53
+ options: {
54
+ cwd,
55
+ abortController,
56
+ model: 'sonnet',
57
+ // Auto-allow tools to avoid permission prompts
58
+ allowedTools: ['*'],
59
+ // Resume if we have a session ID
60
+ ...(resumeSessionId ? { resume: resumeSessionId } : {}),
61
+ },
62
+ });
63
+ let sessionId;
64
+ let turnCount = 0;
65
+ let totalInputTokens = 0;
66
+ let totalOutputTokens = 0;
67
+ const toolMetrics = {};
68
+ // Stream messages
69
+ for await (const message of queryStream) {
70
+ // Extract session ID from first message
71
+ if (!sessionId && 'session_id' in message) {
72
+ sessionId = message.session_id;
73
+ console.log(`[claude-code-runner] Session ID: ${sessionId}`);
74
+ }
75
+ // Handle different message types
76
+ switch (message.type) {
77
+ case 'assistant':
78
+ // Assistant message - append content
79
+ turnCount++;
80
+ taskManager.appendOutput(taskId, `\n[Assistant Turn ${turnCount}]\n`);
81
+ if ('content' in message && Array.isArray(message.content)) {
82
+ for (const block of message.content) {
83
+ if (block.type === 'text' && 'text' in block) {
84
+ taskManager.appendOutput(taskId, block.text);
85
+ }
86
+ else if (block.type === 'tool_use') {
87
+ // Track tool usage
88
+ const toolName = 'name' in block ? String(block.name) : 'unknown';
89
+ if (!toolMetrics[toolName]) {
90
+ toolMetrics[toolName] = {
91
+ toolName,
92
+ executionCount: 0,
93
+ successCount: 0,
94
+ failureCount: 0,
95
+ totalDurationMs: 0,
96
+ };
97
+ }
98
+ toolMetrics[toolName].executionCount++;
99
+ taskManager.appendOutput(taskId, `\n[Tool: ${toolName}]\n`);
100
+ }
101
+ }
102
+ }
103
+ break;
104
+ case 'result':
105
+ // Final result message
106
+ if ('content' in message && Array.isArray(message.content)) {
107
+ for (const block of message.content) {
108
+ if (block.type === 'text' && 'text' in block) {
109
+ taskManager.appendOutput(taskId, `\n${block.text}\n`);
110
+ }
111
+ }
112
+ }
113
+ // Extract usage if available
114
+ if ('usage' in message && message.usage) {
115
+ const usage = message.usage;
116
+ if (usage.input_tokens != null)
117
+ totalInputTokens += usage.input_tokens;
118
+ if (usage.output_tokens != null)
119
+ totalOutputTokens += usage.output_tokens;
120
+ }
121
+ break;
122
+ case 'stream_event':
123
+ // Partial streaming event - can extract more detailed info if needed
124
+ break;
125
+ default:
126
+ // Other message types (user, system, etc.)
127
+ break;
128
+ }
129
+ }
130
+ clearTimeout(timeoutHandle);
131
+ // Session completed successfully
132
+ console.log(`[claude-code-runner] Task ${taskId} completed successfully`);
133
+ console.log(`[claude-code-runner] Turns: ${turnCount}, Tokens: ${totalInputTokens}/${totalOutputTokens}`);
134
+ // Guard: check if task is already terminal before marking completed
135
+ const freshTask = taskManager.getTask(taskId);
136
+ if (!freshTask || isTerminalStatus(freshTask.status)) {
137
+ console.log(`[claude-code-runner] Task ${taskId} already terminal, skipping completion`);
138
+ return;
139
+ }
140
+ taskManager.updateTask(taskId, {
141
+ status: TaskStatus.COMPLETED,
142
+ endTime: new Date().toISOString(),
143
+ exitCode: 0,
144
+ sessionMetrics: {
145
+ quotas: {},
146
+ toolMetrics,
147
+ activeSubagents: [],
148
+ completedSubagents: [],
149
+ turnCount,
150
+ totalTokens: {
151
+ input: totalInputTokens,
152
+ output: totalOutputTokens,
153
+ },
154
+ provider: 'claude-cli',
155
+ fallbackActivated: true,
156
+ fallbackReason: 'copilot-accounts-exhausted',
157
+ },
158
+ // Store session ID for potential resume
159
+ sessionId,
160
+ session: undefined,
161
+ });
162
+ }
163
+ catch (error) {
164
+ clearTimeout(timeoutHandle);
165
+ // Check if aborted due to timeout
166
+ if (abortController.signal.aborted) {
167
+ console.error(`[claude-code-runner] Task ${taskId} timed out`);
168
+ // Guard: check terminal status before marking timed out
169
+ const freshTask = taskManager.getTask(taskId);
170
+ if (freshTask && !isTerminalStatus(freshTask.status)) {
171
+ taskManager.updateTask(taskId, {
172
+ status: TaskStatus.TIMED_OUT,
173
+ endTime: new Date().toISOString(),
174
+ error: 'Task timed out',
175
+ timeoutReason: 'hard_timeout',
176
+ exitCode: 124,
177
+ session: undefined,
178
+ });
179
+ }
180
+ return;
181
+ }
182
+ // Handle other errors
183
+ console.error(`[claude-code-runner] Task ${taskId} failed:`, error);
184
+ let errorMessage = error.message || 'Unknown error';
185
+ let exitCode = 1;
186
+ // Classify error types
187
+ if (error.name === 'AbortError') {
188
+ errorMessage = 'Task was aborted';
189
+ exitCode = 130;
190
+ }
191
+ else if (error.message?.includes('CLI not found')) {
192
+ errorMessage = 'Claude Code CLI not found. Install via: npm install -g @anthropic-ai/claude-code';
193
+ exitCode = 127;
194
+ }
195
+ else if (error.message?.includes('authentication')) {
196
+ errorMessage = 'Claude Code authentication failed. Run: claude login';
197
+ exitCode = 1;
198
+ }
199
+ // Guard: check terminal status before marking failed
200
+ const freshTask = taskManager.getTask(taskId);
201
+ if (!freshTask || isTerminalStatus(freshTask.status)) {
202
+ console.log(`[claude-code-runner] Task ${taskId} already terminal, skipping failure update`);
203
+ return;
204
+ }
205
+ taskManager.updateTask(taskId, {
206
+ status: TaskStatus.FAILED,
207
+ endTime: new Date().toISOString(),
208
+ error: errorMessage,
209
+ exitCode,
210
+ failureContext: {
211
+ errorType: error.name || 'unknown',
212
+ message: errorMessage,
213
+ stack: error.stack,
214
+ recoverable: false, // Don't retry Claude Code failures with Copilot
215
+ },
216
+ session: undefined,
217
+ });
218
+ }
219
+ }
220
+ //# sourceMappingURL=claude-code-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code-runner.js","sourceRoot":"","sources":["../../src/services/claude-code-runner.ts"],"names":[],"mappings":"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"}