steroids-cli 0.8.44 → 0.9.2

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 (145) hide show
  1. package/dist/cleanup/backups.d.ts +26 -0
  2. package/dist/cleanup/backups.d.ts.map +1 -0
  3. package/dist/cleanup/backups.js +157 -0
  4. package/dist/cleanup/backups.js.map +1 -0
  5. package/dist/cleanup/directory-size.d.ts +1 -1
  6. package/dist/cleanup/directory-size.d.ts.map +1 -1
  7. package/dist/cleanup/directory-size.js +58 -6
  8. package/dist/cleanup/directory-size.js.map +1 -1
  9. package/dist/commands/ai.js +2 -2
  10. package/dist/commands/ai.js.map +1 -1
  11. package/dist/commands/config.js +80 -4
  12. package/dist/commands/config.js.map +1 -1
  13. package/dist/commands/health-stuck.d.ts.map +1 -1
  14. package/dist/commands/health-stuck.js +8 -2
  15. package/dist/commands/health-stuck.js.map +1 -1
  16. package/dist/commands/init.d.ts.map +1 -1
  17. package/dist/commands/init.js +19 -1
  18. package/dist/commands/init.js.map +1 -1
  19. package/dist/commands/loop-phases.d.ts +3 -3
  20. package/dist/commands/loop-phases.d.ts.map +1 -1
  21. package/dist/commands/loop-phases.js +308 -74
  22. package/dist/commands/loop-phases.js.map +1 -1
  23. package/dist/commands/loop.d.ts.map +1 -1
  24. package/dist/commands/loop.js +12 -1
  25. package/dist/commands/loop.js.map +1 -1
  26. package/dist/commands/tasks.d.ts.map +1 -1
  27. package/dist/commands/tasks.js +69 -2
  28. package/dist/commands/tasks.js.map +1 -1
  29. package/dist/config/ai-setup.d.ts +2 -1
  30. package/dist/config/ai-setup.d.ts.map +1 -1
  31. package/dist/config/ai-setup.js +234 -36
  32. package/dist/config/ai-setup.js.map +1 -1
  33. package/dist/config/loader.d.ts +21 -7
  34. package/dist/config/loader.d.ts.map +1 -1
  35. package/dist/config/loader.js +22 -2
  36. package/dist/config/loader.js.map +1 -1
  37. package/dist/config/schema.d.ts.map +1 -1
  38. package/dist/config/schema.js +41 -3
  39. package/dist/config/schema.js.map +1 -1
  40. package/dist/database/queries.d.ts +37 -0
  41. package/dist/database/queries.d.ts.map +1 -1
  42. package/dist/database/queries.js +94 -2
  43. package/dist/database/queries.js.map +1 -1
  44. package/dist/database/schema.d.ts +2 -2
  45. package/dist/database/schema.d.ts.map +1 -1
  46. package/dist/database/schema.js +21 -0
  47. package/dist/database/schema.js.map +1 -1
  48. package/dist/git/status.d.ts +1 -1
  49. package/dist/git/status.d.ts.map +1 -1
  50. package/dist/git/status.js +3 -2
  51. package/dist/git/status.js.map +1 -1
  52. package/dist/health/stuck-task-detector.d.ts +2 -0
  53. package/dist/health/stuck-task-detector.d.ts.map +1 -1
  54. package/dist/health/stuck-task-detector.js +39 -18
  55. package/dist/health/stuck-task-detector.js.map +1 -1
  56. package/dist/orchestrator/coder.d.ts.map +1 -1
  57. package/dist/orchestrator/coder.js +23 -6
  58. package/dist/orchestrator/coder.js.map +1 -1
  59. package/dist/orchestrator/coordinator.js +1 -1
  60. package/dist/orchestrator/coordinator.js.map +1 -1
  61. package/dist/orchestrator/fallback-handler.d.ts +1 -1
  62. package/dist/orchestrator/fallback-handler.d.ts.map +1 -1
  63. package/dist/orchestrator/fallback-handler.js.map +1 -1
  64. package/dist/orchestrator/invoke.d.ts +5 -1
  65. package/dist/orchestrator/invoke.d.ts.map +1 -1
  66. package/dist/orchestrator/invoke.js +9 -1
  67. package/dist/orchestrator/invoke.js.map +1 -1
  68. package/dist/orchestrator/post-reviewer.d.ts +5 -1
  69. package/dist/orchestrator/post-reviewer.d.ts.map +1 -1
  70. package/dist/orchestrator/post-reviewer.js +100 -1
  71. package/dist/orchestrator/post-reviewer.js.map +1 -1
  72. package/dist/orchestrator/reviewer.d.ts +30 -2
  73. package/dist/orchestrator/reviewer.d.ts.map +1 -1
  74. package/dist/orchestrator/reviewer.js +121 -17
  75. package/dist/orchestrator/reviewer.js.map +1 -1
  76. package/dist/orchestrator/task-selector.d.ts.map +1 -1
  77. package/dist/orchestrator/task-selector.js +5 -1
  78. package/dist/orchestrator/task-selector.js.map +1 -1
  79. package/dist/orchestrator/types.d.ts +27 -0
  80. package/dist/orchestrator/types.d.ts.map +1 -1
  81. package/dist/parallel/merge-conflict-invoke.js +1 -1
  82. package/dist/parallel/merge-conflict-invoke.js.map +1 -1
  83. package/dist/prompts/coder.d.ts +4 -0
  84. package/dist/prompts/coder.d.ts.map +1 -1
  85. package/dist/prompts/coder.js +41 -0
  86. package/dist/prompts/coder.js.map +1 -1
  87. package/dist/prompts/reviewer.d.ts +4 -0
  88. package/dist/prompts/reviewer.d.ts.map +1 -1
  89. package/dist/prompts/reviewer.js +65 -0
  90. package/dist/prompts/reviewer.js.map +1 -1
  91. package/dist/providers/api-models.d.ts +14 -6
  92. package/dist/providers/api-models.d.ts.map +1 -1
  93. package/dist/providers/api-models.js +86 -5
  94. package/dist/providers/api-models.js.map +1 -1
  95. package/dist/providers/claude.d.ts +1 -1
  96. package/dist/providers/claude.d.ts.map +1 -1
  97. package/dist/providers/claude.js +57 -12
  98. package/dist/providers/claude.js.map +1 -1
  99. package/dist/providers/codex.d.ts +5 -1
  100. package/dist/providers/codex.d.ts.map +1 -1
  101. package/dist/providers/codex.js +143 -40
  102. package/dist/providers/codex.js.map +1 -1
  103. package/dist/providers/gemini.d.ts +1 -1
  104. package/dist/providers/gemini.d.ts.map +1 -1
  105. package/dist/providers/gemini.js +53 -9
  106. package/dist/providers/gemini.js.map +1 -1
  107. package/dist/providers/interface.d.ts +62 -1
  108. package/dist/providers/interface.d.ts.map +1 -1
  109. package/dist/providers/interface.js +105 -12
  110. package/dist/providers/interface.js.map +1 -1
  111. package/dist/providers/invocation-logger.d.ts +3 -0
  112. package/dist/providers/invocation-logger.d.ts.map +1 -1
  113. package/dist/providers/invocation-logger.js +22 -8
  114. package/dist/providers/invocation-logger.js.map +1 -1
  115. package/dist/providers/minimax.d.ts +50 -0
  116. package/dist/providers/minimax.d.ts.map +1 -0
  117. package/dist/providers/minimax.js +248 -0
  118. package/dist/providers/minimax.js.map +1 -0
  119. package/dist/providers/mistral.d.ts +6 -0
  120. package/dist/providers/mistral.d.ts.map +1 -1
  121. package/dist/providers/mistral.js +73 -4
  122. package/dist/providers/mistral.js.map +1 -1
  123. package/dist/providers/ollama.d.ts +50 -0
  124. package/dist/providers/ollama.d.ts.map +1 -0
  125. package/dist/providers/ollama.js +259 -0
  126. package/dist/providers/ollama.js.map +1 -0
  127. package/dist/providers/openai.d.ts +1 -1
  128. package/dist/providers/openai.d.ts.map +1 -1
  129. package/dist/providers/openai.js +1 -1
  130. package/dist/providers/openai.js.map +1 -1
  131. package/dist/providers/registry.d.ts +2 -2
  132. package/dist/providers/registry.d.ts.map +1 -1
  133. package/dist/providers/registry.js +28 -14
  134. package/dist/providers/registry.js.map +1 -1
  135. package/dist/runners/credit-pause.d.ts +1 -1
  136. package/dist/runners/credit-pause.d.ts.map +1 -1
  137. package/dist/runners/credit-pause.js +2 -2
  138. package/dist/runners/credit-pause.js.map +1 -1
  139. package/dist/runners/orchestrator-loop.js +2 -2
  140. package/dist/runners/orchestrator-loop.js.map +1 -1
  141. package/migrations/014_add_session_context.sql +17 -0
  142. package/migrations/015_add_follow_up_fields.sql +26 -0
  143. package/migrations/016_add_invocation_activity_timestamp.sql +8 -0
  144. package/migrations/manifest.json +25 -1
  145. package/package.json +1 -1
@@ -48,15 +48,16 @@ const DEFAULT_MODELS = {
48
48
  const DEFAULT_TIMEOUT = 900_000;
49
49
  /**
50
50
  * Default invocation template for Gemini CLI
51
- * Uses -p flag for non-interactive mode with stream-json for realtime output
51
+ * Uses --prompt flag for non-interactive mode with stream-json for realtime output
52
+ * --output-format=stream-json is more stable than space-separated flags
52
53
  */
53
- const DEFAULT_INVOCATION_TEMPLATE = '{cli} -p "$(cat {prompt_file})" -m {model} --output-format stream-json';
54
+ const DEFAULT_INVOCATION_TEMPLATE = '{cli} --output-format=stream-json -m {model} {session_id} --prompt "$(cat {prompt_file})"';
54
55
  /**
55
56
  * Gemini AI Provider implementation
56
57
  */
57
58
  class GeminiProvider extends interface_js_1.BaseAIProvider {
58
59
  name = 'gemini';
59
- displayName = 'Google Gemini';
60
+ displayName = 'Google (gemini)';
60
61
  /**
61
62
  * Write prompt to a temporary file
62
63
  */
@@ -100,7 +101,7 @@ class GeminiProvider extends interface_js_1.BaseAIProvider {
100
101
  const promptFile = options.promptFile ?? this.writePromptFile(prompt);
101
102
  const createdTempFile = !options.promptFile;
102
103
  try {
103
- return await this.invokeWithFile(promptFile, options.model, timeout, cwd, streamOutput, onActivity);
104
+ return await this.invokeWithFile(promptFile, options.model, timeout, cwd, streamOutput, onActivity, options.resumeSessionId);
104
105
  }
105
106
  finally {
106
107
  if (createdTempFile) {
@@ -117,6 +118,10 @@ class GeminiProvider extends interface_js_1.BaseAIProvider {
117
118
  parseStreamJsonLine(line) {
118
119
  try {
119
120
  const event = JSON.parse(line);
121
+ // Session ID is in the 'init' event
122
+ if (event.type === 'init' && event.session_id) {
123
+ return { sessionId: event.session_id };
124
+ }
120
125
  // Assistant message with delta text
121
126
  if (event.type === 'message' && event.role === 'assistant' && event.content) {
122
127
  return { text: event.content };
@@ -125,9 +130,17 @@ class GeminiProvider extends interface_js_1.BaseAIProvider {
125
130
  if (event.type === 'tool_call' || event.type === 'function_call') {
126
131
  return { tool: event.name || event.function?.name || 'tool' };
127
132
  }
128
- // Final result
133
+ // Final result includes token usage stats
129
134
  if (event.type === 'result') {
130
- return { result: event.content || '' };
135
+ const usage = event.stats ? {
136
+ inputTokens: event.stats.input_tokens,
137
+ outputTokens: event.stats.output_tokens,
138
+ cachedInputTokens: event.stats.cached,
139
+ } : undefined;
140
+ return {
141
+ result: event.content || '',
142
+ tokenUsage: usage,
143
+ };
131
144
  }
132
145
  }
133
146
  catch {
@@ -136,21 +149,30 @@ class GeminiProvider extends interface_js_1.BaseAIProvider {
136
149
  }
137
150
  return {};
138
151
  }
139
- invokeWithFile(promptFile, model, timeout, cwd, streamOutput, onActivity) {
152
+ invokeWithFile(promptFile, model, timeout, cwd, streamOutput, onActivity, resumeSessionId) {
153
+ // Set up isolated HOME
154
+ const isolatedHome = this.setupIsolatedHome('.gemini', ['config.json']);
155
+ // Also isolate gcloud config if present in the same isolated home
156
+ this.setupIsolatedHome('.config/gcloud', ['active_config', 'credentials.db', 'configurations/config_default'], isolatedHome);
140
157
  return new Promise((resolve) => {
141
158
  const startTime = Date.now();
142
159
  let stdout = '';
143
160
  let stderr = '';
144
161
  let timedOut = false;
145
162
  let stdoutLineBuffer = '';
163
+ let sessionId = resumeSessionId;
164
+ let tokenUsage;
146
165
  const isStreamJson = this.getInvocationTemplate().includes('stream-json');
147
166
  // Build command from invocation template
148
- const command = this.buildCommand(promptFile, model);
167
+ const sessionIdFlag = resumeSessionId ? `--resume ${resumeSessionId}` : '';
168
+ const command = this.buildCommand(promptFile, model, sessionIdFlag);
149
169
  // Spawn using shell to handle the command template
150
170
  const child = (0, node_child_process_1.spawn)(command, {
151
171
  shell: true,
152
172
  cwd,
153
- env: this.getSanitizedCliEnv(),
173
+ env: this.getSanitizedCliEnv({
174
+ HOME: isolatedHome,
175
+ }),
154
176
  stdio: ['pipe', 'pipe', 'pipe'],
155
177
  });
156
178
  // Close stdin immediately to prevent CLI tools from hanging
@@ -201,6 +223,10 @@ class GeminiProvider extends interface_js_1.BaseAIProvider {
201
223
  if (!line)
202
224
  continue;
203
225
  const parsed = this.parseStreamJsonLine(line);
226
+ if (parsed.sessionId)
227
+ sessionId = parsed.sessionId;
228
+ if (parsed.tokenUsage)
229
+ tokenUsage = parsed.tokenUsage;
204
230
  if (parsed.result !== undefined) {
205
231
  if (parsed.result)
206
232
  stdout = parsed.result;
@@ -232,6 +258,13 @@ class GeminiProvider extends interface_js_1.BaseAIProvider {
232
258
  child.on('close', (code) => {
233
259
  clearTimeout(activityTimer);
234
260
  const duration = Date.now() - startTime;
261
+ // Cleanup isolated home
262
+ try {
263
+ (0, node_fs_1.rmSync)(isolatedHome, { recursive: true, force: true });
264
+ }
265
+ catch {
266
+ // Ignore cleanup errors
267
+ }
235
268
  resolve({
236
269
  success: code === 0 && !timedOut,
237
270
  exitCode: code ?? 1,
@@ -239,11 +272,20 @@ class GeminiProvider extends interface_js_1.BaseAIProvider {
239
272
  stderr,
240
273
  duration,
241
274
  timedOut,
275
+ sessionId,
276
+ tokenUsage,
242
277
  });
243
278
  });
244
279
  child.on('error', (error) => {
245
280
  clearTimeout(activityTimer);
246
281
  const duration = Date.now() - startTime;
282
+ // Cleanup isolated home
283
+ try {
284
+ (0, node_fs_1.rmSync)(isolatedHome, { recursive: true, force: true });
285
+ }
286
+ catch {
287
+ // Ignore cleanup errors
288
+ }
247
289
  resolve({
248
290
  success: false,
249
291
  exitCode: 1,
@@ -251,6 +293,8 @@ class GeminiProvider extends interface_js_1.BaseAIProvider {
251
293
  stderr: error.message,
252
294
  duration,
253
295
  timedOut: false,
296
+ sessionId,
297
+ tokenUsage,
254
298
  });
255
299
  });
256
300
  });
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAgaH,oDAEC;AAhaD,2DAA2C;AAC3C,qCAAwE;AACxE,qCAAiC;AACjC,yCAAiC;AACjC,iDAMwB;AAExB;;GAEG;AACH,MAAM,aAAa,GAAgB;IACjC;QACE,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,gBAAgB;QACtB,cAAc,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,UAAU,CAAC;QACrD,iBAAiB,EAAE,IAAI;KACxB;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,kBAAkB;QACxB,cAAc,EAAE,EAAE;QAClB,iBAAiB,EAAE,IAAI;KACxB;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,kBAAkB;QACxB,cAAc,EAAE,EAAE;QAClB,iBAAiB,EAAE,IAAI;KACxB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,cAAc,GAA0D;IAC5E,YAAY,EAAE,gBAAgB;IAC9B,KAAK,EAAE,gBAAgB;IACvB,QAAQ,EAAE,gBAAgB;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,eAAe,GAAG,OAAO,CAAC;AAEhC;;;;GAIG;AACH,MAAM,2BAA2B,GAAG,2FAA2F,CAAC;AAEhI;;GAEG;AACH,MAAa,cAAe,SAAQ,6BAAc;IACvC,IAAI,GAAG,QAAQ,CAAC;IAChB,WAAW,GAAG,iBAAiB,CAAC;IAEzC;;OAEG;IACK,eAAe,CAAC,MAAc;QACpC,MAAM,QAAQ,GAAG,IAAA,gBAAI,EAAC,IAAA,gBAAM,GAAE,EAAE,mBAAmB,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACrE,IAAA,uBAAa,EAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,IAAY;QACpC,IAAI,CAAC;YACH,IAAI,IAAA,oBAAU,EAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,IAAA,oBAAU,EAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,4BAA4B;QAC1B,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,OAAsB;QACjD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,eAAe,CAAC;QACnD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACzC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC;QAClD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAEtC,0DAA0D;QAC1D,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;YAC/B,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACzD,CAAC;QAED,4BAA4B;QAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACtE,MAAM,eAAe,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC;QAE5C,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,cAAc,CAC9B,UAAU,EACV,OAAO,CAAC,KAAK,EACb,OAAO,EACP,GAAG,EACH,YAAY,EACZ,UAAU,EACV,OAAO,CAAC,eAAe,CACxB,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,IAAI,eAAe,EAAE,CAAC;gBACpB,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH;;OAEG;IACK,mBAAmB,CAAC,IAAY;QAOtC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAE/B,oCAAoC;YACpC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBAC9C,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;YACzC,CAAC;YAED,oCAAoC;YACpC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC5E,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;YACjC,CAAC;YAED,mBAAmB;YACnB,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACjE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,CAAC;YAChE,CAAC;YAED,0CAA0C;YAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAA2B,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBAClD,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY;oBACrC,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa;oBACvC,iBAAiB,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;iBACtC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAEd,OAAO;oBACL,MAAM,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;oBAC3B,UAAU,EAAE,KAAK;iBAClB,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,IAAI,CAAC,IAAI,EAAE;gBAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACzC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,cAAc,CACpB,UAAkB,EAClB,KAAa,EACb,OAAe,EACf,GAAW,EACX,YAAqB,EACrB,UAAwC,EACxC,eAAwB;QAExB,uBAAuB;QACvB,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;QACxE,kEAAkE;QAClE,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,eAAe,EAAE,gBAAgB,EAAE,+BAA+B,CAAC,EAAE,YAAY,CAAC,CAAC;QAE7H,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,IAAI,gBAAgB,GAAG,EAAE,CAAC;YAC1B,IAAI,SAAS,GAAuB,eAAe,CAAC;YACpD,IAAI,UAAkC,CAAC;YACvC,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAE1E,yCAAyC;YACzC,MAAM,aAAa,GAAG,eAAe,CAAC,CAAC,CAAC,YAAY,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;YAGpE,mDAAmD;YACnD,MAAM,KAAK,GAAG,IAAA,0BAAK,EAAC,OAAO,EAAE;gBAC3B,KAAK,EAAE,IAAI;gBACX,GAAG;gBACH,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC;oBAC3B,IAAI,EAAE,YAAY;iBACnB,CAAC;gBACF,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;aAChC,CAAC,CAAC;YAEH,4DAA4D;YAC5D,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;YAEnB,uEAAuE;YACvE,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,4BAA4B;YAC1D,IAAI,aAA4C,CAAC;YAEjD,MAAM,kBAAkB,GAAG,GAAG,EAAE;gBAC9B,YAAY,CAAC,aAAa,CAAC,CAAC;gBAC5B,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC9B,QAAQ,GAAG,IAAI,CAAC;oBAChB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACtB,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;4BAC5B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBACxB,CAAC;wBACD,UAAU,CAAC,GAAG,EAAE;4BACd,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gCAC5B,OAAO,CAAC;oCACN,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM;oCAC3C,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,IAAI;iCACjD,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC,EAAE,IAAI,CAAC,CAAC;oBACX,CAAC,EAAE,IAAI,CAAC,CAAC;gBACX,CAAC,EAAE,OAAO,CAAC,CAAC;YACd,CAAC,CAAC;YACF,kBAAkB,EAAE,CAAC;YAErB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACxC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC5B,kBAAkB,EAAE,CAAC;gBAErB,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,IAAI,MAAM,CAAC,MAAM,GAAG,UAAU;wBAAE,MAAM,IAAI,GAAG,CAAC;oBAC9C,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC7D,IAAI,YAAY;wBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC5C,OAAO;gBACT,CAAC;gBAED,uCAAuC;gBACvC,gBAAgB,IAAI,GAAG,CAAC;gBACxB,OAAO,IAAI,EAAE,CAAC;oBACZ,MAAM,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC1C,IAAI,EAAE,KAAK,CAAC,CAAC;wBAAE,MAAM;oBACrB,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;oBAClD,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,IAAI;wBAAE,SAAS;oBAEpB,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;oBAE9C,IAAI,MAAM,CAAC,SAAS;wBAAE,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;oBACnD,IAAI,MAAM,CAAC,UAAU;wBAAE,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;oBAEtD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBAChC,IAAI,MAAM,CAAC,MAAM;4BAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;oBAC5C,CAAC;yBAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;wBACvB,IAAI,MAAM,CAAC,MAAM,GAAG,UAAU;4BAAE,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC;wBACtD,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;wBACrE,IAAI,YAAY;4BAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACtD,CAAC;yBAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;wBACvB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;wBACjD,IAAI,YAAY;4BAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;oBACrE,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACxC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC7B,IAAI,MAAM,CAAC,MAAM,GAAG,UAAU;oBAAE,MAAM,IAAI,IAAI,CAAC;gBAC/C,kBAAkB,EAAE,CAAC;gBACrB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9D,IAAI,YAAY,EAAE,CAAC;oBACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,YAAY,CAAC,aAAa,CAAC,CAAC;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBAExC,wBAAwB;gBACxB,IAAI,CAAC;oBACH,IAAA,gBAAM,EAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzD,CAAC;gBAAC,MAAM,CAAC;oBACP,wBAAwB;gBAC1B,CAAC;gBAED,OAAO,CAAC;oBACN,OAAO,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ;oBAChC,QAAQ,EAAE,IAAI,IAAI,CAAC;oBACnB,MAAM;oBACN,MAAM;oBACN,QAAQ;oBACR,QAAQ;oBACR,SAAS;oBACT,UAAU;iBACX,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC1B,YAAY,CAAC,aAAa,CAAC,CAAC;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBAExC,wBAAwB;gBACxB,IAAI,CAAC;oBACH,IAAA,gBAAM,EAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzD,CAAC;gBAAC,MAAM,CAAC;oBACP,wBAAwB;gBAC1B,CAAC;gBAED,OAAO,CAAC;oBACN,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,CAAC;oBACX,MAAM;oBACN,MAAM,EAAE,KAAK,CAAC,OAAO;oBACrB,QAAQ;oBACR,QAAQ,EAAE,KAAK;oBACf,SAAS;oBACT,UAAU;iBACX,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC;QAErC,gDAAgD;QAChD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC1D,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,8CAA8C;QAC9C,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,GAAW;QACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,IAAA,0BAAK,EAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE;gBAClC,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;aAChC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACrB,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;YAEH,0BAA0B;YAC1B,UAAU,CAAC,GAAG,EAAE;gBACd,KAAK,CAAC,IAAI,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,CAAC,GAAG,aAAa,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,IAA2C;QACzD,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;CACF;AA7VD,wCA6VC;AAED;;GAEG;AACH,SAAgB,oBAAoB;IAClC,OAAO,IAAI,cAAc,EAAE,CAAC;AAC9B,CAAC"}
@@ -25,6 +25,8 @@ export interface InvokeOptions {
25
25
  * Providers should emit lightweight JSON-serializable events as work progresses.
26
26
  */
27
27
  onActivity?: (activity: InvocationActivity) => void;
28
+ /** Resume a previous session instead of starting fresh */
29
+ resumeSessionId?: string;
28
30
  }
29
31
  /**
30
32
  * Activity entry emitted during a provider invocation.
@@ -33,6 +35,23 @@ export interface InvokeOptions {
33
35
  export type InvocationActivity = Record<string, unknown> & {
34
36
  type: string;
35
37
  };
38
+ /**
39
+ * Token usage information
40
+ */
41
+ export interface TokenUsage {
42
+ /** Total input tokens */
43
+ inputTokens: number;
44
+ /** Total output tokens */
45
+ outputTokens: number;
46
+ /** Subset served from server-side cache (Codex, Gemini) */
47
+ cachedInputTokens?: number;
48
+ /** Tokens served from cache (Claude) */
49
+ cacheReadTokens?: number;
50
+ /** Tokens written to cache (Claude) */
51
+ cacheCreationTokens?: number;
52
+ /** Total cost for the invocation (Claude, Vibe) */
53
+ totalCostUsd?: number;
54
+ }
36
55
  /**
37
56
  * Result of an AI provider invocation
38
57
  */
@@ -49,6 +68,10 @@ export interface InvokeResult {
49
68
  duration: number;
50
69
  /** Whether the process was killed due to timeout */
51
70
  timedOut: boolean;
71
+ /** Session ID from the provider CLI (if available) */
72
+ sessionId?: string;
73
+ /** Token usage statistics (if available) */
74
+ tokenUsage?: TokenUsage;
52
75
  }
53
76
  /**
54
77
  * Error types that can be classified from provider output
@@ -96,6 +119,19 @@ export interface IAIProvider {
96
119
  * @returns Promise resolving to the invocation result
97
120
  */
98
121
  invoke(prompt: string, options: InvokeOptions): Promise<InvokeResult>;
122
+ /**
123
+ * Resume a previous session with a new prompt
124
+ * @param sessionId The ID of the session to resume
125
+ * @param prompt The prompt text to send
126
+ * @param options Invocation options
127
+ * @returns Promise resolving to the invocation result
128
+ */
129
+ resume(sessionId: string, prompt: string, options: InvokeOptions): Promise<InvokeResult>;
130
+ /**
131
+ * Initialize the provider (e.g., fetch dynamic models)
132
+ * @returns Promise resolving when initialization is complete
133
+ */
134
+ initialize?(): Promise<void>;
99
135
  /**
100
136
  * Check if this provider is available (CLI installed and accessible)
101
137
  * @returns Promise resolving to true if available
@@ -167,6 +203,15 @@ export declare abstract class BaseAIProvider implements IAIProvider {
167
203
  protected invocationTemplate: string | undefined;
168
204
  abstract invoke(prompt: string, options: InvokeOptions): Promise<InvokeResult>;
169
205
  abstract isAvailable(): Promise<boolean>;
206
+ /**
207
+ * Initialize the provider (e.g., fetch dynamic models).
208
+ * Default implementation does nothing.
209
+ */
210
+ initialize(): Promise<void>;
211
+ /**
212
+ * Default implementation of resume calls invoke with resumeSessionId in options
213
+ */
214
+ resume(sessionId: string, prompt: string, options: InvokeOptions): Promise<InvokeResult>;
170
215
  abstract listModels(): string[];
171
216
  abstract getModelInfo(): ModelInfo[];
172
217
  abstract getDefaultModel(role: 'orchestrator' | 'coder' | 'reviewer'): string | undefined;
@@ -192,12 +237,28 @@ export declare abstract class BaseAIProvider implements IAIProvider {
192
237
  * Build the command from the invocation template
193
238
  * @param promptFile Path to the prompt file
194
239
  * @param model Model identifier
240
+ * @param sessionId Optional session ID for resumption
195
241
  * @returns Command string ready for execution
196
242
  */
197
- protected buildCommand(promptFile: string, model: string): string;
243
+ protected buildCommand(promptFile: string, model: string, sessionId?: string): string;
198
244
  /**
199
245
  * Build child process env for provider CLI invocation.
246
+ *
247
+ * Strips known provider API-key env vars so the spawned CLI
248
+ * falls back to its own OAuth / login credentials instead of
249
+ * accidentally using Steroids' internal keys (e.g.
250
+ * STEROIDS_ANTHROPIC_API_KEY leaking as ANTHROPIC_API_KEY).
200
251
  */
201
252
  protected getSanitizedCliEnv(overrides?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
253
+ /**
254
+ * Set up an isolated temporary home directory for a provider CLI.
255
+ * Copies/symlinks essential auth files from the real home to the isolated one.
256
+ *
257
+ * @param providerDir The provider-specific config directory (e.g. '.claude', '.gemini')
258
+ * @param authFiles Array of critical auth/config filenames to preserve (e.g. ['config.json', 'state.json'])
259
+ * @param baseDir Optional pre-existing isolated home directory to use
260
+ * @returns Path to the isolated home directory
261
+ */
262
+ protected setupIsolatedHome(providerDir: string, authFiles: string[], baseDir?: string): string;
202
263
  }
203
264
  //# sourceMappingURL=interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/providers/interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/providers/interface.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
- /**
3
- * AI Provider Interface
4
- * Defines the contract for AI providers (Claude, Gemini, OpenAI, etc.)
5
- */
6
2
  Object.defineProperty(exports, "__esModule", { value: true });
7
3
  exports.BaseAIProvider = void 0;
4
+ const node_fs_1 = require("node:fs");
5
+ const node_os_1 = require("node:os");
6
+ const node_path_1 = require("node:path");
7
+ const node_crypto_1 = require("node:crypto");
8
8
  /**
9
9
  * Base abstract class for AI providers
10
10
  * Provides common functionality
@@ -12,6 +12,19 @@ exports.BaseAIProvider = void 0;
12
12
  class BaseAIProvider {
13
13
  cliPath;
14
14
  invocationTemplate;
15
+ /**
16
+ * Initialize the provider (e.g., fetch dynamic models).
17
+ * Default implementation does nothing.
18
+ */
19
+ async initialize() {
20
+ // No-op by default
21
+ }
22
+ /**
23
+ * Default implementation of resume calls invoke with resumeSessionId in options
24
+ */
25
+ async resume(sessionId, prompt, options) {
26
+ return this.invoke(prompt, { ...options, resumeSessionId: sessionId });
27
+ }
15
28
  /**
16
29
  * Classify an error based on exit code and stderr
17
30
  * Subclasses can override for provider-specific error detection
@@ -37,6 +50,14 @@ class BaseAIProvider {
37
50
  retryAfterMs: 60000,
38
51
  };
39
52
  }
53
+ if (/demand|compute|pressure|busy|wait/i.test(stderr)) {
54
+ return {
55
+ type: 'rate_limit',
56
+ message: 'High compute demand, waiting for capacity',
57
+ retryable: true,
58
+ retryAfterMs: 300000, // 5 minutes
59
+ };
60
+ }
40
61
  if (/billing|budget|hard limit/i.test(stderr)) {
41
62
  return {
42
63
  type: 'credit_exhaustion',
@@ -53,10 +74,12 @@ class BaseAIProvider {
53
74
  retryable: false,
54
75
  };
55
76
  }
56
- if (stderrLower.includes('rate limit') || stderr.includes('429')) {
77
+ if (stderrLower.includes('rate limit') || stderr.includes('429') ||
78
+ stderrLower.includes('overloaded') || stderrLower.includes('capacity') ||
79
+ stderrLower.includes('busy')) {
57
80
  return {
58
81
  type: 'rate_limit',
59
- message: 'Rate limit exceeded',
82
+ message: 'Provider is overloaded or rate limited',
60
83
  retryable: true,
61
84
  retryAfterMs: 60000,
62
85
  };
@@ -155,24 +178,94 @@ class BaseAIProvider {
155
178
  * Build the command from the invocation template
156
179
  * @param promptFile Path to the prompt file
157
180
  * @param model Model identifier
181
+ * @param sessionId Optional session ID for resumption
158
182
  * @returns Command string ready for execution
159
183
  */
160
- buildCommand(promptFile, model) {
184
+ buildCommand(promptFile, model, sessionId) {
161
185
  const template = this.getInvocationTemplate();
162
186
  const cli = this.cliPath ?? this.name;
163
187
  return template
164
188
  .replace('{cli}', cli)
165
189
  .replace('{prompt_file}', promptFile)
166
- .replace('{model}', model);
190
+ .replace('{model}', model)
191
+ .replace('{session_id}', sessionId ?? '');
167
192
  }
168
193
  /**
169
194
  * Build child process env for provider CLI invocation.
195
+ *
196
+ * Strips known provider API-key env vars so the spawned CLI
197
+ * falls back to its own OAuth / login credentials instead of
198
+ * accidentally using Steroids' internal keys (e.g.
199
+ * STEROIDS_ANTHROPIC_API_KEY leaking as ANTHROPIC_API_KEY).
170
200
  */
171
201
  getSanitizedCliEnv(overrides) {
172
- return {
173
- ...process.env,
174
- ...overrides,
175
- };
202
+ const env = { ...process.env };
203
+ // Remove raw provider API keys — CLIs should use their own auth
204
+ const keysToStrip = [
205
+ 'ANTHROPIC_API_KEY',
206
+ 'OPENAI_API_KEY',
207
+ 'GOOGLE_API_KEY',
208
+ 'GEMINI_API_KEY',
209
+ 'GOOGLE_CLOUD_API_KEY',
210
+ 'MISTRAL_API_KEY',
211
+ ];
212
+ for (const key of keysToStrip) {
213
+ delete env[key];
214
+ }
215
+ return { ...env, ...overrides };
216
+ }
217
+ /**
218
+ * Set up an isolated temporary home directory for a provider CLI.
219
+ * Copies/symlinks essential auth files from the real home to the isolated one.
220
+ *
221
+ * @param providerDir The provider-specific config directory (e.g. '.claude', '.gemini')
222
+ * @param authFiles Array of critical auth/config filenames to preserve (e.g. ['config.json', 'state.json'])
223
+ * @param baseDir Optional pre-existing isolated home directory to use
224
+ * @returns Path to the isolated home directory
225
+ */
226
+ setupIsolatedHome(providerDir, authFiles, baseDir) {
227
+ const uuid = (0, node_crypto_1.randomUUID)();
228
+ const isolatedHome = baseDir ?? (0, node_path_1.join)((0, node_os_1.tmpdir)(), `steroids-${this.name}-${uuid}`);
229
+ try {
230
+ if (!baseDir) {
231
+ (0, node_fs_1.mkdirSync)(isolatedHome, { recursive: true });
232
+ }
233
+ const realProviderPath = (0, node_path_1.join)((0, node_os_1.homedir)(), providerDir);
234
+ const isolatedProviderPath = (0, node_path_1.join)(isolatedHome, providerDir);
235
+ if ((0, node_fs_1.existsSync)(realProviderPath)) {
236
+ (0, node_fs_1.mkdirSync)(isolatedProviderPath, { recursive: true });
237
+ for (const file of authFiles) {
238
+ const src = (0, node_path_1.join)(realProviderPath, file);
239
+ const dest = (0, node_path_1.join)(isolatedProviderPath, file);
240
+ if ((0, node_fs_1.existsSync)(src)) {
241
+ try {
242
+ (0, node_fs_1.symlinkSync)(src, dest);
243
+ }
244
+ catch {
245
+ // Fallback to copy if symlink fails
246
+ (0, node_fs_1.writeFileSync)(dest, (0, node_fs_1.readFileSync)(src));
247
+ }
248
+ }
249
+ }
250
+ }
251
+ // Also symlink global git config so AI tools still work
252
+ ['.gitconfig', '.ssh'].forEach(file => {
253
+ const src = (0, node_path_1.join)((0, node_os_1.homedir)(), file);
254
+ const dest = (0, node_path_1.join)(isolatedHome, file);
255
+ if ((0, node_fs_1.existsSync)(src)) {
256
+ try {
257
+ (0, node_fs_1.symlinkSync)(src, dest);
258
+ }
259
+ catch {
260
+ // Ignore failure for optional system files
261
+ }
262
+ }
263
+ });
264
+ }
265
+ catch (e) {
266
+ console.warn(`Failed to set up isolated ${this.name} home: ${e}`);
267
+ }
268
+ return isolatedHome;
176
269
  }
177
270
  }
178
271
  exports.BaseAIProvider = BaseAIProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/providers/interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/providers/interface.ts"],"names":[],"mappings":"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"}
@@ -92,6 +92,9 @@ export declare function logInvocation(prompt: string, invokeOrResult: ((ctx?: In
92
92
  taskId?: string;
93
93
  projectPath?: string;
94
94
  rejectionNumber?: number;
95
+ sessionId?: string;
96
+ resumedFromSessionId?: string;
97
+ invocationMode?: 'fresh' | 'resume';
95
98
  }): Promise<InvokeResult>;
96
99
  export {};
97
100
  //# sourceMappingURL=invocation-logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"invocation-logger.d.ts","sourceRoot":"","sources":["../../src/providers/invocation-logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,cAAc,GAAG,OAAO,GAAG,UAAU,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAaD;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAmC;gBAErC,MAAM,GAAE,sBAA2B;IAI/C;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IA2BpC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAkDtB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAmCtB;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE;IA6BtB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAWhB;;OAEG;IACH,YAAY,IAAI,MAAM;CAevB;AAOD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,sBAAsB,GAAG,gBAAgB,CAKrF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAElE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,KAAK,uBAAuB,GAAG;IAAE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAA;CAAE,CAAC;AAoBvF,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,uBAAuB,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,EACzF,QAAQ,EAAE;IACR,IAAI,EAAE,cAAc,GAAG,OAAO,GAAG,UAAU,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GACA,OAAO,CAAC,YAAY,CAAC,CA0JvB"}
1
+ {"version":3,"file":"invocation-logger.d.ts","sourceRoot":"","sources":["../../src/providers/invocation-logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,cAAc,GAAG,OAAO,GAAG,UAAU,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAaD;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAmC;gBAErC,MAAM,GAAE,sBAA2B;IAI/C;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IA2BpC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAkDtB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAmCtB;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE;IA6BtB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAWhB;;OAEG;IACH,YAAY,IAAI,MAAM;CAevB;AAOD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,sBAAsB,GAAG,gBAAgB,CAKrF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAElE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,KAAK,uBAAuB,GAAG;IAAE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAA;CAAE,CAAC;AAoBvF,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,uBAAuB,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,EACzF,QAAQ,EAAE;IACR,IAAI,EAAE,cAAc,GAAG,OAAO,GAAG,UAAU,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CACrC,GACA,OAAO,CAAC,YAAY,CAAC,CA+KvB"}
@@ -272,20 +272,32 @@ async function logInvocation(prompt, invokeOrResult, metadata) {
272
272
  const activity = (entry) => {
273
273
  if (!activityLogFile)
274
274
  return;
275
- appendJsonlLine(activityLogFile, { ts: Date.now(), ...entry });
275
+ const now = Date.now();
276
+ appendJsonlLine(activityLogFile, { ts: now, ...entry });
277
+ // Update the database with the last activity timestamp
278
+ if (canDbLog && dbConn && invocationId !== null) {
279
+ try {
280
+ dbConn.db.prepare(`UPDATE task_invocations SET last_activity_at_ms = ? WHERE id = ?`).run(now, invocationId);
281
+ }
282
+ catch {
283
+ // ignore best-effort update failures
284
+ }
285
+ }
276
286
  };
277
287
  if (canDbLog && projectPath) {
278
288
  try {
279
289
  const { openDatabase } = await import('../database/connection.js');
280
290
  const conn = openDatabase(projectPath);
281
291
  dbConn = conn;
282
- const insert = conn.db.prepare(`INSERT INTO task_invocations (task_id, role, provider, model, prompt, started_at_ms, status, rejection_number)
283
- VALUES (?, ?, ?, ?, ?, ?, 'running', ?)`);
284
- const info = insert.run(metadata.taskId, metadata.role, metadata.provider, metadata.model, prompt, startedAtMs, metadata.rejectionNumber ?? null);
292
+ const insert = conn.db.prepare(`INSERT INTO task_invocations (
293
+ task_id, role, provider, model, prompt, started_at_ms, status,
294
+ rejection_number, session_id, resumed_from_session_id, invocation_mode
295
+ ) VALUES (?, ?, ?, ?, ?, ?, 'running', ?, ?, ?, ?)`);
296
+ const info = insert.run(metadata.taskId, metadata.role, metadata.provider, metadata.model, prompt, startedAtMs, metadata.rejectionNumber ?? null, metadata.sessionId ?? null, metadata.resumedFromSessionId ?? null, metadata.invocationMode ?? 'fresh');
285
297
  invocationId = Number(info.lastInsertRowid);
286
298
  const invDir = ensureInvocationsDir(projectPath);
287
299
  activityLogFile = (0, node_path_1.join)(invDir, `${invocationId}.log`);
288
- activity({ type: 'start', role: metadata.role, provider: metadata.provider, model: metadata.model });
300
+ activity({ type: 'start', role: metadata.role, provider: metadata.provider, model: metadata.model, mode: metadata.invocationMode ?? 'fresh' });
289
301
  }
290
302
  catch (error) {
291
303
  console.warn(`Failed to create running invocation record: ${error}`);
@@ -304,7 +316,7 @@ async function logInvocation(prompt, invokeOrResult, metadata) {
304
316
  : invokeOrResult;
305
317
  const completedAtMs = Date.now();
306
318
  const status = result.timedOut ? 'timeout' : result.success ? 'completed' : 'failed';
307
- activity({ type: 'complete', success: result.success, duration: result.duration, exitCode: result.exitCode, timedOut: result.timedOut });
319
+ activity({ type: 'complete', success: result.success, duration: result.duration, exitCode: result.exitCode, timedOut: result.timedOut, sessionId: result.sessionId });
308
320
  // Human-readable log (legacy: .steroids/logs) for `steroids logs`
309
321
  logger.log({
310
322
  timestamp: new Date(startedAtMs).toISOString(),
@@ -323,8 +335,10 @@ async function logInvocation(prompt, invokeOrResult, metadata) {
323
335
  if (canDbLog && dbConn && invocationId !== null) {
324
336
  try {
325
337
  dbConn.db.prepare(`UPDATE task_invocations
326
- SET completed_at_ms = ?, status = ?, response = ?, error = ?, exit_code = ?, duration_ms = ?, success = ?, timed_out = ?, rejection_number = ?
327
- WHERE id = ?`).run(completedAtMs, status, result.stdout, result.stderr || null, result.exitCode, result.duration, result.success ? 1 : 0, result.timedOut ? 1 : 0, metadata.rejectionNumber ?? null, invocationId);
338
+ SET completed_at_ms = ?, status = ?, response = ?, error = ?, exit_code = ?,
339
+ duration_ms = ?, success = ?, timed_out = ?, rejection_number = ?,
340
+ session_id = ?, token_usage_json = ?
341
+ WHERE id = ?`).run(completedAtMs, status, result.stdout, result.stderr || null, result.exitCode, result.duration, result.success ? 1 : 0, result.timedOut ? 1 : 0, metadata.rejectionNumber ?? null, result.sessionId ?? metadata.sessionId ?? null, result.tokenUsage ? JSON.stringify(result.tokenUsage) : null, invocationId);
328
342
  }
329
343
  catch (error) {
330
344
  console.warn(`Failed to update invocation record: ${error}`);