steroids-cli 0.15.10 → 0.16.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.
@@ -1,209 +1,6 @@
1
- /**
2
- * AI Provider Interface
3
- * Defines the contract for AI providers (Claude, Gemini, OpenAI, etc.)
4
- */
5
- /**
6
- * Options for invoking an AI provider
7
- */
8
- export interface InvokeOptions {
9
- /** Model identifier (e.g., 'claude-sonnet-4', 'gpt-4') */
10
- model: string;
11
- /** Timeout in milliseconds (default: 900000 = 15 minutes) */
12
- timeout?: number;
13
- /** Working directory for the invocation */
14
- cwd?: string;
15
- /** Path to prompt file (alternative to inline prompt) */
16
- promptFile?: string;
17
- /** Role for this invocation (orchestrator, coder, reviewer) */
18
- role?: 'orchestrator' | 'coder' | 'reviewer';
19
- /** Custom invocation template (e.g., "claude -p {prompt_file} --model {model}") */
20
- invocationTemplate?: string;
21
- /** Whether to stream output to stdout/stderr */
22
- streamOutput?: boolean;
23
- /**
24
- * Optional activity callback for live monitoring.
25
- * Providers should emit lightweight JSON-serializable events as work progresses.
26
- */
27
- onActivity?: (activity: InvocationActivity) => void;
28
- /** Resume a previous session instead of starting fresh */
29
- resumeSessionId?: string;
30
- }
31
- /**
32
- * Activity entry emitted during a provider invocation.
33
- * Kept intentionally flexible (JSONL logger appends arbitrary fields).
34
- */
35
- export type InvocationActivity = Record<string, unknown> & {
36
- type: string;
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
- }
55
- /**
56
- * Error thrown when a provider fails to resume a session (e.g., session not found on disk/server)
57
- */
58
- export declare class SessionNotFoundError extends Error {
59
- constructor(message: string);
60
- }
61
- /**
62
- * Result of an AI provider invocation
63
- */
64
- export interface InvokeResult {
65
- /** Whether the invocation succeeded (exit code 0) */
66
- success: boolean;
67
- /** Exit code from the CLI process */
68
- exitCode: number;
69
- /** Standard output from the process */
70
- stdout: string;
71
- /** Standard error from the process */
72
- stderr: string;
73
- /** Duration in milliseconds */
74
- duration: number;
75
- /** Whether the process was killed due to timeout */
76
- timedOut: boolean;
77
- /** Session ID from the provider CLI (if available) */
78
- sessionId?: string;
79
- /** Token usage statistics (if available) */
80
- tokenUsage?: TokenUsage;
81
- }
82
- /**
83
- * Error types that can be classified from provider output
84
- */
85
- export type ProviderErrorType = 'rate_limit' | 'auth_error' | 'network_error' | 'model_not_found' | 'context_exceeded' | 'credit_exhaustion' | 'model_capability_error' | 'subprocess_hung' | 'safety_violation' | 'policy_violation' | 'invalid_prompt' | 'unknown';
86
- /**
87
- * Classified error from provider invocation
88
- */
89
- export interface ProviderError {
90
- /** Type of error */
91
- type: ProviderErrorType;
92
- /** Human-readable error message */
93
- message: string;
94
- /** Whether this error is retryable */
95
- retryable: boolean;
96
- /** Suggested retry delay in milliseconds */
97
- retryAfterMs?: number;
98
- }
99
- /**
100
- * Model information
101
- */
102
- export interface ModelInfo {
103
- /** Model identifier used for invocation */
104
- id: string;
105
- /** Human-readable name */
106
- name: string;
107
- /** Recommended role for this model */
108
- recommendedFor?: ('orchestrator' | 'coder' | 'reviewer')[];
109
- /** Whether this model supports streaming */
110
- supportsStreaming?: boolean;
111
- /** Maximum context window size in tokens */
112
- contextWindow?: number;
113
- }
114
- /**
115
- * AI Provider interface
116
- * All providers must implement this interface
117
- */
118
- export interface IAIProvider {
119
- /** Provider name (e.g., 'claude', 'gemini', 'codex') */
120
- readonly name: string;
121
- /** Human-readable display name */
122
- readonly displayName: string;
123
- /**
124
- * Invoke the provider with a prompt
125
- * @param prompt The prompt text to send
126
- * @param options Invocation options
127
- * @returns Promise resolving to the invocation result
128
- */
129
- invoke(prompt: string, options: InvokeOptions): Promise<InvokeResult>;
130
- /**
131
- * Resume a previous session with a new prompt
132
- * @param sessionId The ID of the session to resume
133
- * @param prompt The prompt text to send
134
- * @param options Invocation options
135
- * @returns Promise resolving to the invocation result
136
- */
137
- resume(sessionId: string, prompt: string, options: InvokeOptions): Promise<InvokeResult>;
138
- /**
139
- * Initialize the provider (e.g., fetch dynamic models)
140
- * @returns Promise resolving when initialization is complete
141
- */
142
- initialize?(): Promise<void>;
143
- /**
144
- * Check if this provider is available (CLI installed and accessible)
145
- * @returns Promise resolving to true if available
146
- */
147
- isAvailable(): Promise<boolean>;
148
- /**
149
- * List available models for this provider
150
- * @returns Array of model identifiers
151
- */
152
- listModels(): string[];
153
- /**
154
- * Get detailed model information
155
- * @returns Array of model info objects
156
- */
157
- getModelInfo(): ModelInfo[];
158
- /**
159
- * Get the default model for a role
160
- * @param role The role to get default model for
161
- * @returns Default model ID or undefined
162
- */
163
- getDefaultModel(role: 'orchestrator' | 'coder' | 'reviewer'): string | undefined;
164
- /**
165
- * Classify an error from stderr output
166
- * @param exitCode The process exit code
167
- * @param stderr The stderr output
168
- * @returns Classified error or null if not an error
169
- */
170
- classifyError(exitCode: number, stderr: string): ProviderError | null;
171
- /**
172
- * Classify a full invocation result, checking both stderr and stdout
173
- * @param result The full invocation result
174
- * @returns Classified error or null if successful
175
- */
176
- classifyResult(result: InvokeResult): ProviderError | null;
177
- /**
178
- * Get the CLI path for this provider
179
- * @returns Path to CLI executable or undefined if using default
180
- */
181
- getCliPath(): string | undefined;
182
- /**
183
- * Set a custom CLI path
184
- * @param path Path to CLI executable
185
- */
186
- setCliPath(path: string): void;
187
- /**
188
- * Get the default invocation template
189
- * @returns Default template with {prompt_file} and {model} placeholders
190
- */
191
- getDefaultInvocationTemplate(): string;
192
- /**
193
- * Set a custom invocation template
194
- * @param template Custom template with {prompt_file} and {model} placeholders
195
- */
196
- setInvocationTemplate(template: string): void;
197
- /**
198
- * Get the current invocation template
199
- * @returns Current template (custom or default)
200
- */
201
- getInvocationTemplate(): string;
202
- }
203
- /**
204
- * Base abstract class for AI providers
205
- * Provides common functionality
206
- */
1
+ export type { InvokeOptions, InvocationActivity, TokenUsage, InvokeResult, ProviderErrorType, ProviderError, ModelInfo, IAIProvider, } from './provider-types.js';
2
+ export { SessionNotFoundError } from './provider-types.js';
3
+ import type { InvokeOptions, InvokeResult, ProviderError, ModelInfo, IAIProvider } from './provider-types.js';
207
4
  export declare abstract class BaseAIProvider implements IAIProvider {
208
5
  abstract readonly name: string;
209
6
  abstract readonly displayName: string;
@@ -259,14 +56,21 @@ export declare abstract class BaseAIProvider implements IAIProvider {
259
56
  */
260
57
  protected getSanitizedCliEnv(overrides?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
261
58
  /**
262
- * Set up an isolated temporary home directory for a provider CLI.
263
- * Copies/symlinks essential auth files from the real home to the isolated one.
59
+ * Set up a minimal isolated home directory for a provider CLI.
60
+ *
61
+ * Only used by providers that store session state locally and need isolation
62
+ * between parallel invocations (Gemini, Codex). Providers that don't write
63
+ * local session state (Claude with -p flag, Mistral via VIBE_HOME) should
64
+ * NOT use this — they should run with the real HOME or a targeted env var.
65
+ *
66
+ * Creates a minimal dir with:
67
+ * - an isolated providerDir containing only auth-file symlinks
68
+ * - symlinks for .gitconfig, .ssh, and any extra rootFiles
264
69
  *
265
- * @param providerDir The provider-specific config directory (e.g. '.claude', '.gemini')
266
- * @param authFiles Array of critical auth/config filenames to preserve (e.g. ['config.json', 'state.json'])
267
- * @param baseDir Optional pre-existing isolated home directory to use
268
- * @param rootFiles Additional HOME-root files to symlink (e.g. ['.claude.json'])
269
- * @returns Path to the isolated home directory
70
+ * @param providerDir Provider-specific config/state dir (e.g. '.gemini', '.config/gcloud')
71
+ * @param authFiles Auth/config filenames to symlink into the isolated providerDir
72
+ * @param baseDir Optional pre-existing dir to use (e.g. per-project persistent home)
73
+ * @param rootFiles Extra HOME-root files to symlink (e.g. ['.npmrc'])
270
74
  */
271
75
  protected setupIsolatedHome(providerDir: string, authFiles: string[], baseDir?: string, rootFiles?: string[]): string;
272
76
  }
@@ -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":"AAMA,YAAY,EACV,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,KAAK,EACV,aAAa,EAEb,YAAY,EACZ,aAAa,EACb,SAAS,EACT,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAI7B,8BAAsB,cAAe,YAAW,WAAW;IACzD,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAEtC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,SAAS,CAAC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IAEjD,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAC9E,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAExC;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;OAEG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAI9F,QAAQ,CAAC,UAAU,IAAI,MAAM,EAAE;IAC/B,QAAQ,CAAC,YAAY,IAAI,SAAS,EAAE;IACpC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS;IACzF,QAAQ,CAAC,4BAA4B,IAAI,MAAM;IAE/C;;;OAGG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IA8GrE;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,GAAG,IAAI;IAoB1D;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAqBtC,UAAU,IAAI,MAAM,GAAG,SAAS;IAIhC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI9B,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI7C,qBAAqB,IAAI,MAAM;IAI/B;;;;;;OAMG;IACH,SAAS,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAWrF;;;;;;;OAOG;IACH,SAAS,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU;IAsG9E;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM;CAkDtH"}
@@ -5,20 +5,9 @@ const node_fs_1 = require("node:fs");
5
5
  const node_os_1 = require("node:os");
6
6
  const node_path_1 = require("node:path");
7
7
  const node_crypto_1 = require("node:crypto");
8
- /**
9
- * Error thrown when a provider fails to resume a session (e.g., session not found on disk/server)
10
- */
11
- class SessionNotFoundError extends Error {
12
- constructor(message) {
13
- super(message);
14
- this.name = 'SessionNotFoundError';
15
- }
16
- }
17
- exports.SessionNotFoundError = SessionNotFoundError;
18
- /**
19
- * Base abstract class for AI providers
20
- * Provides common functionality
21
- */
8
+ var provider_types_js_1 = require("./provider-types.js");
9
+ Object.defineProperty(exports, "SessionNotFoundError", { enumerable: true, get: function () { return provider_types_js_1.SessionNotFoundError; } });
10
+ // Re-export SessionNotFoundError is handled above via named export.
22
11
  class BaseAIProvider {
23
12
  cliPath;
24
13
  invocationTemplate;
@@ -276,6 +265,20 @@ class BaseAIProvider {
276
265
  env.PATH = [...realBinDirs, currentPath].join(':');
277
266
  }
278
267
  }
268
+ // Prevent git from invoking the macOS Keychain credential helper inside isolated
269
+ // home dirs. The real .gitconfig is symlinked in (so git finds it), but its
270
+ // credential.helper = osxkeychain setting causes macOS to show "Keychain Not
271
+ // Found" dialogs when the spawned process has no keychain session (e.g. when
272
+ // launched from launchd as a detached child). Override via git env vars so the
273
+ // helper is disabled for all child processes without touching the real gitconfig.
274
+ if (overrides?.HOME && overrides.HOME !== (0, node_os_1.homedir)()) {
275
+ env.GIT_TERMINAL_PROMPT = '0';
276
+ // GIT_CONFIG_COUNT/KEY/VALUE overrides take precedence over all gitconfig files
277
+ const existingCount = parseInt(env.GIT_CONFIG_COUNT ?? '0', 10);
278
+ env.GIT_CONFIG_COUNT = String(existingCount + 1);
279
+ env[`GIT_CONFIG_KEY_${existingCount}`] = 'credential.helper';
280
+ env[`GIT_CONFIG_VALUE_${existingCount}`] = '';
281
+ }
279
282
  // Cap Node.js heap for child processes to prevent runaway memory consumption.
280
283
  // Provider CLIs (Codex, Claude) spawn sub-processes (pnpm, tsc, etc.) that
281
284
  // can each balloon to GBs and trigger massive macOS swap on constrained systems.
@@ -296,23 +299,32 @@ class BaseAIProvider {
296
299
  return { ...env, ...cleanOverrides };
297
300
  }
298
301
  /**
299
- * Set up an isolated temporary home directory for a provider CLI.
300
- * Copies/symlinks essential auth files from the real home to the isolated one.
302
+ * Set up a minimal isolated home directory for a provider CLI.
301
303
  *
302
- * @param providerDir The provider-specific config directory (e.g. '.claude', '.gemini')
303
- * @param authFiles Array of critical auth/config filenames to preserve (e.g. ['config.json', 'state.json'])
304
- * @param baseDir Optional pre-existing isolated home directory to use
305
- * @param rootFiles Additional HOME-root files to symlink (e.g. ['.claude.json'])
306
- * @returns Path to the isolated home directory
304
+ * Only used by providers that store session state locally and need isolation
305
+ * between parallel invocations (Gemini, Codex). Providers that don't write
306
+ * local session state (Claude with -p flag, Mistral via VIBE_HOME) should
307
+ * NOT use this — they should run with the real HOME or a targeted env var.
308
+ *
309
+ * Creates a minimal dir with:
310
+ * - an isolated providerDir containing only auth-file symlinks
311
+ * - symlinks for .gitconfig, .ssh, and any extra rootFiles
312
+ *
313
+ * @param providerDir Provider-specific config/state dir (e.g. '.gemini', '.config/gcloud')
314
+ * @param authFiles Auth/config filenames to symlink into the isolated providerDir
315
+ * @param baseDir Optional pre-existing dir to use (e.g. per-project persistent home)
316
+ * @param rootFiles Extra HOME-root files to symlink (e.g. ['.npmrc'])
307
317
  */
308
318
  setupIsolatedHome(providerDir, authFiles, baseDir, rootFiles) {
309
319
  const uuid = (0, node_crypto_1.randomUUID)();
310
320
  const isolatedHome = baseDir ?? (0, node_path_1.join)((0, node_os_1.tmpdir)(), `steroids-${this.name}-${uuid}`);
321
+ const realHome = (0, node_os_1.homedir)();
311
322
  try {
312
323
  if (!baseDir) {
313
324
  (0, node_fs_1.mkdirSync)(isolatedHome, { recursive: true });
314
325
  }
315
- const realProviderPath = (0, node_path_1.join)((0, node_os_1.homedir)(), providerDir);
326
+ // Create isolated provider dir with auth-file symlinks
327
+ const realProviderPath = (0, node_path_1.join)(realHome, providerDir);
316
328
  const isolatedProviderPath = (0, node_path_1.join)(isolatedHome, providerDir);
317
329
  if ((0, node_fs_1.existsSync)(realProviderPath)) {
318
330
  (0, node_fs_1.mkdirSync)(isolatedProviderPath, { recursive: true });
@@ -321,29 +333,29 @@ class BaseAIProvider {
321
333
  const dest = (0, node_path_1.join)(isolatedProviderPath, file);
322
334
  if ((0, node_fs_1.existsSync)(src)) {
323
335
  try {
324
- // Ensure parent directories exist for nested auth files (e.g. configurations/config_default)
325
336
  (0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(dest), { recursive: true });
326
337
  (0, node_fs_1.symlinkSync)(src, dest);
327
338
  }
328
339
  catch {
329
- // Fallback to copy if symlink fails
330
- (0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(dest), { recursive: true });
331
- (0, node_fs_1.writeFileSync)(dest, (0, node_fs_1.readFileSync)(src));
340
+ // Fallback to copy if symlink fails (e.g. cross-device)
341
+ try {
342
+ (0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(dest), { recursive: true });
343
+ (0, node_fs_1.writeFileSync)(dest, (0, node_fs_1.readFileSync)(src));
344
+ }
345
+ catch { /* best effort */ }
332
346
  }
333
347
  }
334
348
  }
335
349
  }
336
- // Also symlink global git config, ssh keys, and any provider-specific root files
350
+ // Essential HOME-root symlinks so git and SSH work from the isolated home
337
351
  [...(rootFiles ?? []), '.gitconfig', '.ssh'].forEach(file => {
338
- const src = (0, node_path_1.join)((0, node_os_1.homedir)(), file);
352
+ const src = (0, node_path_1.join)(realHome, file);
339
353
  const dest = (0, node_path_1.join)(isolatedHome, file);
340
- if ((0, node_fs_1.existsSync)(src)) {
354
+ if ((0, node_fs_1.existsSync)(src) && !(0, node_fs_1.existsSync)(dest)) {
341
355
  try {
342
356
  (0, node_fs_1.symlinkSync)(src, dest);
343
357
  }
344
- catch {
345
- // Ignore failure for optional system files
346
- }
358
+ catch { /* best effort */ }
347
359
  }
348
360
  });
349
361
  }
@@ -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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"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Shared types and interfaces for AI providers.
3
+ * Implementation lives in interface.ts (BaseAIProvider).
4
+ */
5
+ export interface InvokeOptions {
6
+ /** Model identifier (e.g., 'claude-sonnet-4', 'gpt-4') */
7
+ model: string;
8
+ /** Timeout in milliseconds (default: 900000 = 15 minutes) */
9
+ timeout?: number;
10
+ /** Working directory for the invocation */
11
+ cwd?: string;
12
+ /** Path to prompt file (alternative to inline prompt) */
13
+ promptFile?: string;
14
+ /** Role for this invocation (orchestrator, coder, reviewer) */
15
+ role?: 'orchestrator' | 'coder' | 'reviewer';
16
+ /** Custom invocation template (e.g., "claude -p {prompt_file} --model {model}") */
17
+ invocationTemplate?: string;
18
+ /** Whether to stream output to stdout/stderr */
19
+ streamOutput?: boolean;
20
+ /**
21
+ * Optional activity callback for live monitoring.
22
+ * Providers should emit lightweight JSON-serializable events as work progresses.
23
+ */
24
+ onActivity?: (activity: InvocationActivity) => void;
25
+ /** Resume a previous session instead of starting fresh */
26
+ resumeSessionId?: string;
27
+ }
28
+ /**
29
+ * Activity entry emitted during a provider invocation.
30
+ * Kept intentionally flexible (JSONL logger appends arbitrary fields).
31
+ */
32
+ export type InvocationActivity = Record<string, unknown> & {
33
+ type: string;
34
+ };
35
+ export interface TokenUsage {
36
+ /** Total input tokens */
37
+ inputTokens: number;
38
+ /** Total output tokens */
39
+ outputTokens: number;
40
+ /** Subset served from server-side cache (Codex, Gemini) */
41
+ cachedInputTokens?: number;
42
+ /** Tokens served from cache (Claude) */
43
+ cacheReadTokens?: number;
44
+ /** Tokens written to cache (Claude) */
45
+ cacheCreationTokens?: number;
46
+ /** Total cost for the invocation (Claude, Vibe) */
47
+ totalCostUsd?: number;
48
+ }
49
+ /**
50
+ * Error thrown when a provider fails to resume a session (e.g., session not found on disk/server)
51
+ */
52
+ export declare class SessionNotFoundError extends Error {
53
+ constructor(message: string);
54
+ }
55
+ export interface InvokeResult {
56
+ /** Whether the invocation succeeded (exit code 0) */
57
+ success: boolean;
58
+ /** Exit code from the CLI process */
59
+ exitCode: number;
60
+ /** Standard output from the process */
61
+ stdout: string;
62
+ /** Standard error from the process */
63
+ stderr: string;
64
+ /** Duration in milliseconds */
65
+ duration: number;
66
+ /** Whether the process was killed due to timeout */
67
+ timedOut: boolean;
68
+ /** Session ID from the provider CLI (if available) */
69
+ sessionId?: string;
70
+ /** Token usage statistics (if available) */
71
+ tokenUsage?: TokenUsage;
72
+ }
73
+ export type ProviderErrorType = 'rate_limit' | 'auth_error' | 'network_error' | 'model_not_found' | 'context_exceeded' | 'credit_exhaustion' | 'model_capability_error' | 'subprocess_hung' | 'safety_violation' | 'policy_violation' | 'invalid_prompt' | 'unknown';
74
+ export interface ProviderError {
75
+ /** Type of error */
76
+ type: ProviderErrorType;
77
+ /** Human-readable error message */
78
+ message: string;
79
+ /** Whether this error is retryable */
80
+ retryable: boolean;
81
+ /** Suggested retry delay in milliseconds */
82
+ retryAfterMs?: number;
83
+ }
84
+ export interface ModelInfo {
85
+ /** Model identifier used for invocation */
86
+ id: string;
87
+ /** Human-readable name */
88
+ name: string;
89
+ /** Recommended role for this model */
90
+ recommendedFor?: ('orchestrator' | 'coder' | 'reviewer')[];
91
+ /** Whether this model supports streaming */
92
+ supportsStreaming?: boolean;
93
+ /** Maximum context window size in tokens */
94
+ contextWindow?: number;
95
+ }
96
+ export interface IAIProvider {
97
+ readonly name: string;
98
+ readonly displayName: string;
99
+ invoke(prompt: string, options: InvokeOptions): Promise<InvokeResult>;
100
+ resume(sessionId: string, prompt: string, options: InvokeOptions): Promise<InvokeResult>;
101
+ initialize?(): Promise<void>;
102
+ isAvailable(): Promise<boolean>;
103
+ listModels(): string[];
104
+ getModelInfo(): ModelInfo[];
105
+ getDefaultModel(role: 'orchestrator' | 'coder' | 'reviewer'): string | undefined;
106
+ classifyError(exitCode: number, stderr: string): ProviderError | null;
107
+ classifyResult(result: InvokeResult): ProviderError | null;
108
+ getCliPath(): string | undefined;
109
+ setCliPath(path: string): void;
110
+ getDefaultInvocationTemplate(): string;
111
+ setInvocationTemplate(template: string): void;
112
+ getInvocationTemplate(): string;
113
+ }
114
+ //# sourceMappingURL=provider-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-types.d.ts","sourceRoot":"","sources":["../../src/providers/provider-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ /**
3
+ * Shared types and interfaces for AI providers.
4
+ * Implementation lives in interface.ts (BaseAIProvider).
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.SessionNotFoundError = void 0;
8
+ /**
9
+ * Error thrown when a provider fails to resume a session (e.g., session not found on disk/server)
10
+ */
11
+ class SessionNotFoundError extends Error {
12
+ constructor(message) {
13
+ super(message);
14
+ this.name = 'SessionNotFoundError';
15
+ }
16
+ }
17
+ exports.SessionNotFoundError = SessionNotFoundError;
18
+ //# sourceMappingURL=provider-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-types.js","sourceRoot":"","sources":["../../src/providers/provider-types.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA+CH;;GAEG;AACH,MAAa,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AALD,oDAKC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "steroids-cli",
3
- "version": "0.15.10",
3
+ "version": "0.16.0",
4
4
  "description": "Automated task execution system with coder/reviewer loop",
5
5
  "main": "dist/index.js",
6
6
  "bin": {