orquesta-cli 0.2.102 → 0.2.104
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/cli.js
CHANGED
|
@@ -374,7 +374,10 @@ program
|
|
|
374
374
|
else {
|
|
375
375
|
logger.flow('No LLM endpoints configured');
|
|
376
376
|
}
|
|
377
|
-
await Promise.
|
|
377
|
+
await Promise.race([
|
|
378
|
+
Promise.all([toolsPromise, syncPromise]),
|
|
379
|
+
new Promise(resolve => setTimeout(resolve, Number(process.env['ORQUESTA_INIT_TIMEOUT_MS']) || 12000).unref?.()),
|
|
380
|
+
]);
|
|
378
381
|
spinner.stop();
|
|
379
382
|
process.stdout.write('\x1B[2J\x1B[0f');
|
|
380
383
|
if (!process.stdin.isTTY) {
|
|
@@ -47,10 +47,13 @@ export function planWaves(todos) {
|
|
|
47
47
|
}
|
|
48
48
|
function buildWorkerMessages(ctx) {
|
|
49
49
|
const upstreamSection = Object.keys(ctx.upstreamOutputs).length > 0
|
|
50
|
-
? `\n\
|
|
50
|
+
? `\n\nFindings from already-completed tasks (REUSE these — do not re-discover what they already found, e.g. file locations):\n${Object.entries(ctx.upstreamOutputs)
|
|
51
51
|
.map(([id, out]) => `- [${id}] ${truncate(out, 800)}`)
|
|
52
52
|
.join('\n')}`
|
|
53
53
|
: '';
|
|
54
|
+
const siblingSection = ctx.siblingTitles && ctx.siblingTitles.length > 0
|
|
55
|
+
? `\n\nRunning in parallel RIGHT NOW (other workers own these — do NOT do their work, and avoid redundant whole-repo scans they'd also run):\n${ctx.siblingTitles.map(t => `- ${t}`).join('\n')}`
|
|
56
|
+
: '';
|
|
54
57
|
const cwdNote = ctx.workingDirectory && ctx.workingDirectory !== process.cwd()
|
|
55
58
|
? `\n\nIMPORTANT: Run all filesystem and shell operations from this directory: ${ctx.workingDirectory}\nDO NOT cd elsewhere.`
|
|
56
59
|
: '';
|
|
@@ -60,7 +63,7 @@ function buildWorkerMessages(ctx) {
|
|
|
60
63
|
role: 'user',
|
|
61
64
|
content: `Execute ONLY this single task and then call final_response with a short summary of what you did. Do not start other tasks.
|
|
62
65
|
|
|
63
|
-
Task [${ctx.todo.id}]: ${ctx.todo.title}${upstreamSection}${cwdNote}`,
|
|
66
|
+
Task [${ctx.todo.id}]: ${ctx.todo.title}${upstreamSection}${siblingSection}${cwdNote}`,
|
|
64
67
|
},
|
|
65
68
|
];
|
|
66
69
|
}
|
|
@@ -197,17 +200,15 @@ export async function runParallelGraph(opts) {
|
|
|
197
200
|
}
|
|
198
201
|
}
|
|
199
202
|
}
|
|
203
|
+
const priorFindings = { ...outputs };
|
|
200
204
|
const settled = await Promise.allSettled(batch.map(t => runWorker({
|
|
201
205
|
todo: todoById.get(t.id),
|
|
202
206
|
sessionId,
|
|
203
207
|
llmClient,
|
|
204
208
|
baseSystemPrompt,
|
|
205
209
|
executorModel,
|
|
206
|
-
upstreamOutputs:
|
|
207
|
-
|
|
208
|
-
acc[depId] = outputs[depId];
|
|
209
|
-
return acc;
|
|
210
|
-
}, {}),
|
|
210
|
+
upstreamOutputs: priorFindings,
|
|
211
|
+
siblingTitles: batch.filter(s => s.id !== t.id).map(s => todoById.get(s.id).title),
|
|
211
212
|
workingDirectory: allocations.get(t.id),
|
|
212
213
|
})));
|
|
213
214
|
for (let k = 0; k < settled.length; k++) {
|