steroids-cli 0.8.25 → 0.8.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/ai.js +7 -6
- package/dist/commands/ai.js.map +1 -1
- package/dist/commands/completion.d.ts.map +1 -1
- package/dist/commands/completion.js +1 -0
- package/dist/commands/completion.js.map +1 -1
- package/dist/commands/config.js +10 -7
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/llm.d.ts.map +1 -1
- package/dist/commands/llm.js +5 -0
- package/dist/commands/llm.js.map +1 -1
- package/dist/commands/merge.d.ts +3 -0
- package/dist/commands/merge.d.ts.map +1 -0
- package/dist/commands/merge.js +234 -0
- package/dist/commands/merge.js.map +1 -0
- package/dist/commands/runners-list.d.ts +3 -0
- package/dist/commands/runners-list.d.ts.map +1 -0
- package/dist/commands/runners-list.js +287 -0
- package/dist/commands/runners-list.js.map +1 -0
- package/dist/commands/runners-logs.d.ts +2 -0
- package/dist/commands/runners-logs.d.ts.map +1 -0
- package/dist/commands/runners-logs.js +207 -0
- package/dist/commands/runners-logs.js.map +1 -0
- package/dist/commands/runners-management.d.ts +3 -0
- package/dist/commands/runners-management.d.ts.map +1 -0
- package/dist/commands/runners-management.js +205 -0
- package/dist/commands/runners-management.js.map +1 -0
- package/dist/commands/runners-wakeup.d.ts +4 -0
- package/dist/commands/runners-wakeup.d.ts.map +1 -0
- package/dist/commands/runners-wakeup.js +157 -0
- package/dist/commands/runners-wakeup.js.map +1 -0
- package/dist/commands/runners.d.ts.map +1 -1
- package/dist/commands/runners.js +10 -759
- package/dist/commands/runners.js.map +1 -1
- package/dist/commands/workspaces.d.ts +3 -0
- package/dist/commands/workspaces.d.ts.map +1 -0
- package/dist/commands/workspaces.js +409 -0
- package/dist/commands/workspaces.js.map +1 -0
- package/dist/config/ai-setup.d.ts +1 -1
- package/dist/config/ai-setup.d.ts.map +1 -1
- package/dist/config/ai-setup.js +1 -0
- package/dist/config/ai-setup.js.map +1 -1
- package/dist/config/loader.d.ts +3 -3
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +1 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.js +3 -3
- package/dist/config/schema.js.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/providers/api-models.d.ts +11 -6
- package/dist/providers/api-models.d.ts.map +1 -1
- package/dist/providers/api-models.js +80 -0
- package/dist/providers/api-models.js.map +1 -1
- package/dist/providers/index.d.ts +2 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +6 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/mistral.d.ts +58 -0
- package/dist/providers/mistral.d.ts.map +1 -0
- package/dist/providers/mistral.js +310 -0
- package/dist/providers/mistral.js.map +1 -0
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js +2 -0
- package/dist/providers/registry.js.map +1 -1
- package/dist/runners/wakeup.d.ts +1 -0
- package/dist/runners/wakeup.d.ts.map +1 -1
- package/dist/runners/wakeup.js +27 -0
- package/dist/runners/wakeup.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mistral Provider
|
|
3
|
+
* Implementation for Mistral Vibe CLI
|
|
4
|
+
*/
|
|
5
|
+
import { BaseAIProvider, type InvokeOptions, type InvokeResult, type ModelInfo, type ProviderError } from './interface.js';
|
|
6
|
+
/**
|
|
7
|
+
* Mistral Vibe Provider implementation
|
|
8
|
+
*/
|
|
9
|
+
export declare class MistralProvider extends BaseAIProvider {
|
|
10
|
+
readonly name = "mistral";
|
|
11
|
+
readonly displayName = "Mistral Vibe";
|
|
12
|
+
constructor();
|
|
13
|
+
/**
|
|
14
|
+
* Write prompt to a temporary file
|
|
15
|
+
*/
|
|
16
|
+
private writePromptFile;
|
|
17
|
+
/**
|
|
18
|
+
* Clean up temporary prompt file
|
|
19
|
+
*/
|
|
20
|
+
private cleanupPromptFile;
|
|
21
|
+
/**
|
|
22
|
+
* Get the default invocation template
|
|
23
|
+
*/
|
|
24
|
+
getDefaultInvocationTemplate(): string;
|
|
25
|
+
/**
|
|
26
|
+
* Invoke Mistral Vibe with a prompt
|
|
27
|
+
*/
|
|
28
|
+
invoke(prompt: string, options: InvokeOptions): Promise<InvokeResult>;
|
|
29
|
+
/**
|
|
30
|
+
* Invoke Vibe CLI with a prompt file using the invocation template
|
|
31
|
+
*/
|
|
32
|
+
private invokeWithFile;
|
|
33
|
+
/**
|
|
34
|
+
* Check if Mistral Vibe CLI is available
|
|
35
|
+
*/
|
|
36
|
+
isAvailable(): Promise<boolean>;
|
|
37
|
+
/**
|
|
38
|
+
* Add provider-specific error classification for Vibe startup failures.
|
|
39
|
+
*/
|
|
40
|
+
classifyError(exitCode: number, stderr: string): ProviderError | null;
|
|
41
|
+
/**
|
|
42
|
+
* List available model IDs
|
|
43
|
+
*/
|
|
44
|
+
listModels(): string[];
|
|
45
|
+
/**
|
|
46
|
+
* Get detailed model information
|
|
47
|
+
*/
|
|
48
|
+
getModelInfo(): ModelInfo[];
|
|
49
|
+
/**
|
|
50
|
+
* Get the default model for a role
|
|
51
|
+
*/
|
|
52
|
+
getDefaultModel(role: 'orchestrator' | 'coder' | 'reviewer'): string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Create a Mistral provider instance
|
|
56
|
+
*/
|
|
57
|
+
export declare function createMistralProvider(): MistralProvider;
|
|
58
|
+
//# sourceMappingURL=mistral.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mistral.d.ts","sourceRoot":"","sources":["../../src/providers/mistral.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EACL,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,aAAa,EACnB,MAAM,gBAAgB,CAAC;AAoDxB;;GAEG;AACH,qBAAa,eAAgB,SAAQ,cAAc;IACjD,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,WAAW,kBAAkB;;IAQtC;;OAEG;IACH,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,4BAA4B,IAAI,MAAM;IAItC;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAsB3E;;OAEG;IACH,OAAO,CAAC,cAAc;IAoHtB;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAwCrC;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAuBrE;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE;IAItB;;OAEG;IACH,YAAY,IAAI,SAAS,EAAE;IAI3B;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM;CAGrE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAEvD"}
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Mistral Provider
|
|
4
|
+
* Implementation for Mistral Vibe CLI
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.MistralProvider = void 0;
|
|
8
|
+
exports.createMistralProvider = createMistralProvider;
|
|
9
|
+
const node_child_process_1 = require("node:child_process");
|
|
10
|
+
const node_crypto_1 = require("node:crypto");
|
|
11
|
+
const node_fs_1 = require("node:fs");
|
|
12
|
+
const node_os_1 = require("node:os");
|
|
13
|
+
const node_path_1 = require("node:path");
|
|
14
|
+
const interface_js_1 = require("./interface.js");
|
|
15
|
+
/**
|
|
16
|
+
* Available Mistral models
|
|
17
|
+
*/
|
|
18
|
+
const MISTRAL_MODELS = [
|
|
19
|
+
{
|
|
20
|
+
id: 'codestral-latest',
|
|
21
|
+
name: 'Codestral (latest)',
|
|
22
|
+
recommendedFor: ['orchestrator', 'coder', 'reviewer'],
|
|
23
|
+
supportsStreaming: true,
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
id: 'mistral-large-latest',
|
|
27
|
+
name: 'Mistral Large (latest)',
|
|
28
|
+
recommendedFor: [],
|
|
29
|
+
supportsStreaming: true,
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
id: 'mistral-medium-latest',
|
|
33
|
+
name: 'Mistral Medium (latest)',
|
|
34
|
+
recommendedFor: [],
|
|
35
|
+
supportsStreaming: true,
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
id: 'mistral-small-latest',
|
|
39
|
+
name: 'Mistral Small (latest)',
|
|
40
|
+
recommendedFor: [],
|
|
41
|
+
supportsStreaming: true,
|
|
42
|
+
},
|
|
43
|
+
];
|
|
44
|
+
/**
|
|
45
|
+
* Default models per role
|
|
46
|
+
*/
|
|
47
|
+
const DEFAULT_MODELS = {
|
|
48
|
+
orchestrator: 'codestral-latest',
|
|
49
|
+
coder: 'codestral-latest',
|
|
50
|
+
reviewer: 'codestral-latest',
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Default timeout in milliseconds (15 minutes)
|
|
54
|
+
*/
|
|
55
|
+
const DEFAULT_TIMEOUT = 900_000;
|
|
56
|
+
/**
|
|
57
|
+
* Default invocation template for Vibe CLI
|
|
58
|
+
* Model selection is injected through VIBE_ACTIVE_MODEL/VIBE_MODELS env vars.
|
|
59
|
+
*/
|
|
60
|
+
const DEFAULT_INVOCATION_TEMPLATE = '{cli} -p "$(cat {prompt_file})" --output text --max-turns 80 --agent auto-approve';
|
|
61
|
+
/**
|
|
62
|
+
* Mistral Vibe Provider implementation
|
|
63
|
+
*/
|
|
64
|
+
class MistralProvider extends interface_js_1.BaseAIProvider {
|
|
65
|
+
name = 'mistral';
|
|
66
|
+
displayName = 'Mistral Vibe';
|
|
67
|
+
constructor() {
|
|
68
|
+
super();
|
|
69
|
+
// Provider ID is "mistral", but executable is "vibe".
|
|
70
|
+
this.cliPath = 'vibe';
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Write prompt to a temporary file
|
|
74
|
+
*/
|
|
75
|
+
writePromptFile(prompt) {
|
|
76
|
+
const tempPath = (0, node_path_1.join)((0, node_os_1.tmpdir)(), `steroids-mistral-${process.pid}-${(0, node_crypto_1.randomUUID)()}.txt`);
|
|
77
|
+
(0, node_fs_1.writeFileSync)(tempPath, prompt, { mode: 0o600 });
|
|
78
|
+
return tempPath;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Clean up temporary prompt file
|
|
82
|
+
*/
|
|
83
|
+
cleanupPromptFile(path) {
|
|
84
|
+
try {
|
|
85
|
+
if ((0, node_fs_1.existsSync)(path)) {
|
|
86
|
+
(0, node_fs_1.unlinkSync)(path);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
// Ignore cleanup errors
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Get the default invocation template
|
|
95
|
+
*/
|
|
96
|
+
getDefaultInvocationTemplate() {
|
|
97
|
+
return DEFAULT_INVOCATION_TEMPLATE;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Invoke Mistral Vibe with a prompt
|
|
101
|
+
*/
|
|
102
|
+
async invoke(prompt, options) {
|
|
103
|
+
const timeout = options.timeout ?? DEFAULT_TIMEOUT;
|
|
104
|
+
const cwd = options.cwd ?? process.cwd();
|
|
105
|
+
const streamOutput = options.streamOutput ?? true;
|
|
106
|
+
const onActivity = options.onActivity;
|
|
107
|
+
if (options.invocationTemplate) {
|
|
108
|
+
this.setInvocationTemplate(options.invocationTemplate);
|
|
109
|
+
}
|
|
110
|
+
const promptFile = options.promptFile ?? this.writePromptFile(prompt);
|
|
111
|
+
const createdTempFile = !options.promptFile;
|
|
112
|
+
try {
|
|
113
|
+
return await this.invokeWithFile(promptFile, options.model, timeout, cwd, streamOutput, onActivity);
|
|
114
|
+
}
|
|
115
|
+
finally {
|
|
116
|
+
if (createdTempFile) {
|
|
117
|
+
this.cleanupPromptFile(promptFile);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Invoke Vibe CLI with a prompt file using the invocation template
|
|
123
|
+
*/
|
|
124
|
+
invokeWithFile(promptFile, model, timeout, cwd, streamOutput, onActivity) {
|
|
125
|
+
return new Promise((resolve) => {
|
|
126
|
+
const startTime = Date.now();
|
|
127
|
+
let stdout = '';
|
|
128
|
+
let stderr = '';
|
|
129
|
+
let timedOut = false;
|
|
130
|
+
// Vibe chooses models by alias. We inject a one-model runtime list so any
|
|
131
|
+
// requested model ID can be selected deterministically.
|
|
132
|
+
const env = {
|
|
133
|
+
...process.env,
|
|
134
|
+
VIBE_ACTIVE_MODEL: model,
|
|
135
|
+
VIBE_MODELS: JSON.stringify([
|
|
136
|
+
{
|
|
137
|
+
name: model,
|
|
138
|
+
provider: 'mistral',
|
|
139
|
+
alias: model,
|
|
140
|
+
input_price: 0.0,
|
|
141
|
+
output_price: 0.0,
|
|
142
|
+
},
|
|
143
|
+
]),
|
|
144
|
+
};
|
|
145
|
+
// Default path uses argument-based invocation (no shell interpolation),
|
|
146
|
+
// which avoids command injection through prompt content.
|
|
147
|
+
// If a custom template is explicitly set, preserve template behavior.
|
|
148
|
+
const child = this.invocationTemplate
|
|
149
|
+
? (0, node_child_process_1.spawn)(this.buildCommand(promptFile, model), {
|
|
150
|
+
shell: true,
|
|
151
|
+
cwd,
|
|
152
|
+
env,
|
|
153
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
154
|
+
})
|
|
155
|
+
: (0, node_child_process_1.spawn)(this.getCliPath() ?? this.cliPath ?? 'vibe', [
|
|
156
|
+
'-p',
|
|
157
|
+
(0, node_fs_1.readFileSync)(promptFile, 'utf-8'),
|
|
158
|
+
'--output',
|
|
159
|
+
'text',
|
|
160
|
+
'--max-turns',
|
|
161
|
+
'80',
|
|
162
|
+
'--agent',
|
|
163
|
+
'auto-approve',
|
|
164
|
+
], {
|
|
165
|
+
shell: false,
|
|
166
|
+
cwd,
|
|
167
|
+
env,
|
|
168
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
169
|
+
});
|
|
170
|
+
child.stdin?.end();
|
|
171
|
+
const timeoutHandle = setTimeout(() => {
|
|
172
|
+
timedOut = true;
|
|
173
|
+
child.kill('SIGTERM');
|
|
174
|
+
setTimeout(() => {
|
|
175
|
+
if (child.exitCode === null) {
|
|
176
|
+
child.kill('SIGKILL');
|
|
177
|
+
}
|
|
178
|
+
}, 5000);
|
|
179
|
+
}, timeout);
|
|
180
|
+
child.stdout?.on('data', (data) => {
|
|
181
|
+
const text = data.toString();
|
|
182
|
+
stdout += text;
|
|
183
|
+
onActivity?.({ type: 'output', stream: 'stdout', msg: text });
|
|
184
|
+
if (streamOutput) {
|
|
185
|
+
process.stdout.write(text);
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
child.stderr?.on('data', (data) => {
|
|
189
|
+
const text = data.toString();
|
|
190
|
+
stderr += text;
|
|
191
|
+
onActivity?.({ type: 'output', stream: 'stderr', msg: text });
|
|
192
|
+
if (streamOutput) {
|
|
193
|
+
process.stderr.write(text);
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
child.on('close', (code) => {
|
|
197
|
+
clearTimeout(timeoutHandle);
|
|
198
|
+
const duration = Date.now() - startTime;
|
|
199
|
+
resolve({
|
|
200
|
+
success: code === 0 && !timedOut,
|
|
201
|
+
exitCode: code ?? 1,
|
|
202
|
+
stdout: stdout.trimEnd(),
|
|
203
|
+
stderr,
|
|
204
|
+
duration,
|
|
205
|
+
timedOut,
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
child.on('error', (error) => {
|
|
209
|
+
clearTimeout(timeoutHandle);
|
|
210
|
+
const duration = Date.now() - startTime;
|
|
211
|
+
resolve({
|
|
212
|
+
success: false,
|
|
213
|
+
exitCode: 1,
|
|
214
|
+
stdout,
|
|
215
|
+
stderr: error.message,
|
|
216
|
+
duration,
|
|
217
|
+
timedOut: false,
|
|
218
|
+
});
|
|
219
|
+
});
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Check if Mistral Vibe CLI is available
|
|
224
|
+
*/
|
|
225
|
+
async isAvailable() {
|
|
226
|
+
return new Promise((resolve) => {
|
|
227
|
+
const cli = this.cliPath ?? 'vibe';
|
|
228
|
+
const lookup = process.platform === 'win32' ? 'where' : 'which';
|
|
229
|
+
let settled = false;
|
|
230
|
+
let timeoutHandle;
|
|
231
|
+
const finish = (available) => {
|
|
232
|
+
if (settled)
|
|
233
|
+
return;
|
|
234
|
+
settled = true;
|
|
235
|
+
if (timeoutHandle) {
|
|
236
|
+
clearTimeout(timeoutHandle);
|
|
237
|
+
}
|
|
238
|
+
resolve(available);
|
|
239
|
+
};
|
|
240
|
+
const child = (0, node_child_process_1.spawn)(lookup, [cli], {
|
|
241
|
+
shell: false,
|
|
242
|
+
stdio: ['ignore', 'ignore', 'ignore'],
|
|
243
|
+
});
|
|
244
|
+
child.on('close', (code) => {
|
|
245
|
+
finish(code === 0);
|
|
246
|
+
});
|
|
247
|
+
child.on('error', () => {
|
|
248
|
+
finish(false);
|
|
249
|
+
});
|
|
250
|
+
timeoutHandle = setTimeout(() => {
|
|
251
|
+
try {
|
|
252
|
+
child.kill();
|
|
253
|
+
}
|
|
254
|
+
catch {
|
|
255
|
+
// Ignore kill errors
|
|
256
|
+
}
|
|
257
|
+
finish(false);
|
|
258
|
+
}, 5000);
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Add provider-specific error classification for Vibe startup failures.
|
|
263
|
+
*/
|
|
264
|
+
classifyError(exitCode, stderr) {
|
|
265
|
+
if (exitCode === 0)
|
|
266
|
+
return null;
|
|
267
|
+
if (/active model .* not found in configuration/i.test(stderr)) {
|
|
268
|
+
return {
|
|
269
|
+
type: 'model_not_found',
|
|
270
|
+
message: 'Requested model alias is not configured for Vibe',
|
|
271
|
+
retryable: false,
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
if (/missing .* environment variable .* provider/i.test(stderr) ||
|
|
275
|
+
/mistral_api_key/i.test(stderr)) {
|
|
276
|
+
return {
|
|
277
|
+
type: 'auth_error',
|
|
278
|
+
message: 'MISTRAL_API_KEY is missing or invalid',
|
|
279
|
+
retryable: false,
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
return super.classifyError(exitCode, stderr);
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* List available model IDs
|
|
286
|
+
*/
|
|
287
|
+
listModels() {
|
|
288
|
+
return MISTRAL_MODELS.map((m) => m.id);
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Get detailed model information
|
|
292
|
+
*/
|
|
293
|
+
getModelInfo() {
|
|
294
|
+
return [...MISTRAL_MODELS];
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Get the default model for a role
|
|
298
|
+
*/
|
|
299
|
+
getDefaultModel(role) {
|
|
300
|
+
return DEFAULT_MODELS[role];
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
exports.MistralProvider = MistralProvider;
|
|
304
|
+
/**
|
|
305
|
+
* Create a Mistral provider instance
|
|
306
|
+
*/
|
|
307
|
+
function createMistralProvider() {
|
|
308
|
+
return new MistralProvider();
|
|
309
|
+
}
|
|
310
|
+
//# sourceMappingURL=mistral.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mistral.js","sourceRoot":"","sources":["../../src/providers/mistral.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAOlD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAuC;IAExD;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAOrC;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC;;;OAGG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAW9B;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAI7C;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACH,QAAQ,IAAI,MAAM,EAAE;IAIpB;;OAEG;IACH,MAAM,IAAI,WAAW,EAAE;IAIvB;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAiB5C;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAY5C;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAIzC;;OAEG;IACH,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAYhE;;;OAGG;IACG,kBAAkB,CACtB,IAAI,EAAE,cAAc,GAAG,OAAO,GAAG,UAAU,GAC1C,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;CAYpC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,gBAAgB,CAWxD;AAOD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,CAKtD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAEpE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
|
|
@@ -12,6 +12,7 @@ exports.resetProviderRegistry = resetProviderRegistry;
|
|
|
12
12
|
const claude_js_1 = require("./claude.js");
|
|
13
13
|
const codex_js_1 = require("./codex.js");
|
|
14
14
|
const gemini_js_1 = require("./gemini.js");
|
|
15
|
+
const mistral_js_1 = require("./mistral.js");
|
|
15
16
|
const openai_js_1 = require("./openai.js");
|
|
16
17
|
/**
|
|
17
18
|
* Provider Registry
|
|
@@ -144,6 +145,7 @@ function createDefaultRegistry() {
|
|
|
144
145
|
registry.register(new claude_js_1.ClaudeProvider());
|
|
145
146
|
registry.register(new codex_js_1.CodexProvider());
|
|
146
147
|
registry.register(new gemini_js_1.GeminiProvider());
|
|
148
|
+
registry.register(new mistral_js_1.MistralProvider());
|
|
147
149
|
registry.register(new openai_js_1.OpenAIProvider());
|
|
148
150
|
return registry;
|
|
149
151
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/runners/wakeup.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ export interface WakeupResult {
|
|
|
22
22
|
* Exported for use in daemon startup checks
|
|
23
23
|
*/
|
|
24
24
|
export declare function hasActiveRunnerForProject(projectPath: string): boolean;
|
|
25
|
+
export declare function hasActiveParallelSessionForProject(projectPath: string): boolean;
|
|
25
26
|
/**
|
|
26
27
|
* Get the last wakeup invocation time
|
|
27
28
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wakeup.d.ts","sourceRoot":"","sources":["../../src/runners/wakeup.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,aAAa,CAAC;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AA8BD;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAiBtE;AA2DD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAUjD;AAED,wBAAsB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"wakeup.d.ts","sourceRoot":"","sources":["../../src/runners/wakeup.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,aAAa,CAAC;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AA8BD;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAiBtE;AAED,wBAAgB,kCAAkC,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAe/E;AA2DD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAUjD;AAED,wBAAsB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAsNjF;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC;IACjD,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAyCD"}
|
package/dist/runners/wakeup.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.hasActiveRunnerForProject = hasActiveRunnerForProject;
|
|
7
|
+
exports.hasActiveParallelSessionForProject = hasActiveParallelSessionForProject;
|
|
7
8
|
exports.getLastWakeupTime = getLastWakeupTime;
|
|
8
9
|
exports.wakeup = wakeup;
|
|
9
10
|
exports.checkWakeupNeeded = checkWakeupNeeded;
|
|
@@ -61,6 +62,20 @@ function hasActiveRunnerForProject(projectPath) {
|
|
|
61
62
|
close();
|
|
62
63
|
}
|
|
63
64
|
}
|
|
65
|
+
function hasActiveParallelSessionForProject(projectPath) {
|
|
66
|
+
const { db, close } = (0, global_db_js_1.openGlobalDatabase)();
|
|
67
|
+
try {
|
|
68
|
+
const row = db
|
|
69
|
+
.prepare(`SELECT 1 FROM parallel_sessions
|
|
70
|
+
WHERE project_path = ?
|
|
71
|
+
AND status IN ('running', 'merging')`)
|
|
72
|
+
.get(projectPath);
|
|
73
|
+
return row !== undefined;
|
|
74
|
+
}
|
|
75
|
+
finally {
|
|
76
|
+
close();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
64
79
|
/**
|
|
65
80
|
* Kill a process by PID
|
|
66
81
|
*/
|
|
@@ -224,6 +239,18 @@ async function wakeup(options = {}) {
|
|
|
224
239
|
});
|
|
225
240
|
continue;
|
|
226
241
|
}
|
|
242
|
+
// Skip projects currently executing a parallel session before attempting recovery/startup.
|
|
243
|
+
// This prevents parallel runners from being interfered with by a cron-managed runner.
|
|
244
|
+
if (hasActiveParallelSessionForProject(project.path)) {
|
|
245
|
+
log(`Skipping ${project.path}: active parallel session in progress`);
|
|
246
|
+
results.push({
|
|
247
|
+
action: 'none',
|
|
248
|
+
reason: 'Parallel session already running',
|
|
249
|
+
projectPath: project.path,
|
|
250
|
+
deletedInvocationLogs,
|
|
251
|
+
});
|
|
252
|
+
continue;
|
|
253
|
+
}
|
|
227
254
|
// Step 4a: Recover stuck tasks (best-effort) before deciding whether to (re)start a runner.
|
|
228
255
|
// This is what unblocks orphaned/infinite-hang scenarios without manual intervention.
|
|
229
256
|
let recoveredActions = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wakeup.js","sourceRoot":"","sources":["../../src/runners/wakeup.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAgEH,8DAiBC;AA8DD,8CAUC;AAED,
|
|
1
|
+
{"version":3,"file":"wakeup.js","sourceRoot":"","sources":["../../src/runners/wakeup.ts"],"names":[],"mappings":"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"}
|