zelari-code 1.10.0 → 1.12.1
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/README.md +14 -4
- package/dist/cli/headless.js +41 -0
- package/dist/cli/headless.js.map +1 -1
- package/dist/cli/hooks/conversationContext.js +57 -10
- package/dist/cli/hooks/conversationContext.js.map +1 -1
- package/dist/cli/hooks/useChatTurn.js +8 -1
- package/dist/cli/hooks/useChatTurn.js.map +1 -1
- package/dist/cli/main.bundled.js +1803 -647
- package/dist/cli/main.bundled.js.map +4 -4
- package/dist/cli/main.js +208 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/mcp/mcpConfigIo.js +136 -0
- package/dist/cli/mcp/mcpConfigIo.js.map +1 -0
- package/dist/cli/provider/openai-compatible.js +65 -4
- package/dist/cli/provider/openai-compatible.js.map +1 -1
- package/dist/cli/runHeadless.js +303 -38
- package/dist/cli/runHeadless.js.map +1 -1
- package/dist/cli/ssh/targets.js +406 -0
- package/dist/cli/ssh/targets.js.map +1 -0
- package/dist/cli/ssh/tools.js +79 -0
- package/dist/cli/ssh/tools.js.map +1 -0
- package/dist/cli/toolRegistry.js +13 -0
- package/dist/cli/toolRegistry.js.map +1 -1
- package/dist/cli/utils/streamScrub.js +55 -0
- package/dist/cli/utils/streamScrub.js.map +1 -0
- package/dist/cli/workspace/projectInstructions.js +47 -0
- package/dist/cli/workspace/projectInstructions.js.map +1 -0
- package/package.json +2 -2
package/dist/cli/runHeadless.js
CHANGED
|
@@ -15,13 +15,53 @@
|
|
|
15
15
|
* @since 0.5.0
|
|
16
16
|
*/
|
|
17
17
|
import { AgentHarness } from '@zelari/core/harness';
|
|
18
|
+
import { cleanAgentContent } from '@zelari/core';
|
|
19
|
+
import { buildCouncilTaskWithHistory, maybeAnchorShortAnswer, } from './hooks/conversationContext.js';
|
|
18
20
|
import { createBuiltinToolRegistry } from './toolRegistry.js';
|
|
19
21
|
import { emitEvent, openaiCompatibleProvider, resolveHeadlessKey, resolveHeadlessProvider, } from './headless.js';
|
|
20
22
|
import { buildSystemPrompt, getAllTools, SINGLE_AGENT_IDENTITY_MODULE, buildLanguagePolicyModuleFor, } from '@zelari/core/skills';
|
|
21
23
|
import { envNumber } from './utils/envNumber.js';
|
|
22
24
|
import { setPhase } from './phaseState.js';
|
|
23
25
|
import { describePhase } from './phase.js';
|
|
26
|
+
import { createStreamScrubber } from './utils/streamScrub.js';
|
|
24
27
|
export async function runHeadless(opts) {
|
|
28
|
+
// === Global crash handlers (headless-only) ===
|
|
29
|
+
// Without these, an uncaught exception during a tool call (e.g. write_file
|
|
30
|
+
// failing deep in the harness) kills the process silently: no agent_end,
|
|
31
|
+
// no run-finished, and the desktop hangs forever waiting for output that
|
|
32
|
+
// never comes. Here we surface the failure as a final NDJSON error event
|
|
33
|
+
// + stderr line, then exit non-zero, so the desktop can show the cause.
|
|
34
|
+
let crashed = false;
|
|
35
|
+
const handleFatal = (label, err) => {
|
|
36
|
+
if (crashed)
|
|
37
|
+
return; // Re-entrant: log only the first fatal cause.
|
|
38
|
+
crashed = true;
|
|
39
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
40
|
+
const stack = err instanceof Error && err.stack ? `\n${err.stack}` : '';
|
|
41
|
+
const line = `[zelari-code --headless] FATAL ${label}: ${msg}${stack}`;
|
|
42
|
+
try {
|
|
43
|
+
// Emit a structured error event the desktop renders in the chat.
|
|
44
|
+
emitEvent({
|
|
45
|
+
type: 'error',
|
|
46
|
+
severity: 'fatal',
|
|
47
|
+
message: `${label}: ${msg}`,
|
|
48
|
+
code: 'uncaught',
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
// If stdout is already gone, at least try stderr.
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
process.stderr.write(line + '\n');
|
|
56
|
+
}
|
|
57
|
+
catch { /* ignore */ }
|
|
58
|
+
// Force exit: the default Node behavior would print to stderr and keep
|
|
59
|
+
// an exit code 1, but for unhandledRejection it just warns and continues
|
|
60
|
+
// (which leaves the desktop hanging). We make both fatal + explicit.
|
|
61
|
+
process.exit(2);
|
|
62
|
+
};
|
|
63
|
+
process.on('uncaughtException', (err) => handleFatal('uncaughtException', err));
|
|
64
|
+
process.on('unhandledRejection', (err) => handleFatal('unhandledRejection', err));
|
|
25
65
|
// Apply work phase before any tool registry is built.
|
|
26
66
|
setPhase(opts.phase ?? 'build');
|
|
27
67
|
const { provider, model } = resolveHeadlessProvider(opts);
|
|
@@ -57,11 +97,55 @@ export async function runHeadless(opts) {
|
|
|
57
97
|
function planModeFromOpts(opts) {
|
|
58
98
|
return (opts.phase ?? 'build') === 'plan';
|
|
59
99
|
}
|
|
100
|
+
let mcpExitHookInstalled = false;
|
|
101
|
+
async function registerHeadlessMcp(toolRegistry, opts) {
|
|
102
|
+
try {
|
|
103
|
+
const { registerMcpTools, closeMcpClients } = await import('./mcp/mcpManager.js');
|
|
104
|
+
const mcp = await registerMcpTools(toolRegistry, process.cwd());
|
|
105
|
+
// Ensure MCP child processes are torn down when the headless process exits.
|
|
106
|
+
if (!mcpExitHookInstalled) {
|
|
107
|
+
mcpExitHookInstalled = true;
|
|
108
|
+
process.once('exit', () => {
|
|
109
|
+
try {
|
|
110
|
+
closeMcpClients();
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
/* ignore */
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
if (mcp.registered.length > 0 && opts.output === 'json') {
|
|
118
|
+
emitEvent({
|
|
119
|
+
type: 'log',
|
|
120
|
+
message: `[headless] MCP tools: ${mcp.registered.length} registered`,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
for (const w of mcp.warnings) {
|
|
124
|
+
if (opts.output === 'json') {
|
|
125
|
+
emitEvent({ type: 'log', message: `[mcp] ${w}` });
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
process.stderr.write(`[zelari-code --headless] [mcp] ${w}\n`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
catch (err) {
|
|
133
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
134
|
+
if (opts.output === 'json') {
|
|
135
|
+
emitEvent({ type: 'log', message: `[mcp] registration skipped: ${msg}` });
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
process.stderr.write(`[zelari-code --headless] [mcp] registration skipped: ${msg}\n`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
60
142
|
async function runHeadlessSingle(opts, provider, model, providerStream) {
|
|
61
143
|
const sessionId = crypto.randomUUID();
|
|
62
144
|
const { registry: toolRegistry } = createBuiltinToolRegistry({
|
|
63
145
|
planMode: planModeFromOpts(opts),
|
|
64
146
|
});
|
|
147
|
+
// Parity with TUI: project MCP tools must be available from Desktop/headless.
|
|
148
|
+
await registerHeadlessMcp(toolRegistry, opts);
|
|
65
149
|
const tools = toolRegistry.toOpenAITools().map((t) => ({
|
|
66
150
|
name: t.function.name,
|
|
67
151
|
description: t.function.description,
|
|
@@ -101,18 +185,36 @@ async function runHeadlessSingle(opts, provider, model, providerStream) {
|
|
|
101
185
|
: 'BUILD phase: full tools; implement changes.',
|
|
102
186
|
].join('\n'),
|
|
103
187
|
};
|
|
104
|
-
|
|
188
|
+
const { loadProjectInstructions } = await import('./workspace/projectInstructions.js');
|
|
189
|
+
const projectInstructions = loadProjectInstructions(process.cwd()).content;
|
|
190
|
+
let sshBlock = '';
|
|
191
|
+
try {
|
|
192
|
+
const { formatSshTargetsForPrompt } = await import('./ssh/targets.js');
|
|
193
|
+
sshBlock = formatSshTargetsForPrompt();
|
|
194
|
+
}
|
|
195
|
+
catch {
|
|
196
|
+
/* optional */
|
|
197
|
+
}
|
|
198
|
+
const rolePrompt = [headlessRole.systemPrompt, sshBlock]
|
|
199
|
+
.filter(Boolean)
|
|
200
|
+
.join('\n\n');
|
|
201
|
+
systemPrompt = buildSystemPrompt({ ...headlessRole, systemPrompt: rolePrompt }, {
|
|
105
202
|
tools: getAllTools(),
|
|
106
203
|
toolNames,
|
|
204
|
+
mode: 'agent',
|
|
205
|
+
projectInstructions: projectInstructions || undefined,
|
|
107
206
|
aiConfig: {
|
|
108
207
|
enabledSkills: [],
|
|
109
208
|
enabledTools: toolNames,
|
|
110
|
-
customPromptModules: [
|
|
209
|
+
customPromptModules: [
|
|
210
|
+
SINGLE_AGENT_IDENTITY_MODULE,
|
|
211
|
+
{
|
|
111
212
|
type: 'language-policy',
|
|
112
213
|
title: 'Response Language',
|
|
113
214
|
priority: 5,
|
|
114
215
|
content: languageDirectiveContent,
|
|
115
|
-
}
|
|
216
|
+
},
|
|
217
|
+
],
|
|
116
218
|
agentSkillConfigs: [],
|
|
117
219
|
},
|
|
118
220
|
});
|
|
@@ -125,13 +227,30 @@ async function runHeadlessSingle(opts, provider, model, providerStream) {
|
|
|
125
227
|
languageDirectiveContent,
|
|
126
228
|
].join('\n');
|
|
127
229
|
}
|
|
230
|
+
// v1.10.0: multi-turn context for the desktop. Each desktop message spawns
|
|
231
|
+
// a fresh headless process, so without seeding prior turns the agent has
|
|
232
|
+
// amnesia and treats "procedi" / "sì" as brand-new requests. The desktop
|
|
233
|
+
// passes the rolling history via --history <json>; we scrub it (strip
|
|
234
|
+
// <think> tags but KEEP ---QUESTION--- blocks so short answers can bind),
|
|
235
|
+
// then seed the harness as [system, ...history, {user: task}].
|
|
236
|
+
const historySeed = (opts.history ?? []).map((m) => m.role === 'assistant' && m.content
|
|
237
|
+
? { ...m, content: cleanAgentContent(m.content, { stripQuestion: false }) }
|
|
238
|
+
: m);
|
|
239
|
+
// Short-answer anchoring: if the last history turn was a clarifying
|
|
240
|
+
// question and the user's reply is short ("procedi", "2", "sì"), rewrite
|
|
241
|
+
// it to re-state the question so the model can't treat it as contextless.
|
|
242
|
+
// Mirrors the TUI's maybeAnchorShortAnswer (conversationContext.ts).
|
|
243
|
+
const effectiveTask = maybeAnchorShortAnswer(opts.task)
|
|
244
|
+
?? opts.task;
|
|
245
|
+
const historySeedLen = historySeed.length;
|
|
128
246
|
const harness = new AgentHarness({
|
|
129
247
|
model,
|
|
130
248
|
provider,
|
|
131
249
|
sessionId,
|
|
132
250
|
messages: [
|
|
133
251
|
{ role: 'system', content: systemPrompt },
|
|
134
|
-
|
|
252
|
+
...historySeed,
|
|
253
|
+
{ role: 'user', content: effectiveTask },
|
|
135
254
|
],
|
|
136
255
|
tools,
|
|
137
256
|
toolRegistry,
|
|
@@ -144,27 +263,58 @@ async function runHeadlessSingle(opts, provider, model, providerStream) {
|
|
|
144
263
|
let finalReason = 'completed';
|
|
145
264
|
let exitCode = 0;
|
|
146
265
|
const textBuffer = [];
|
|
266
|
+
// Scrub <think>/---QUESTION--- leaks from the streamed text. The TUI does
|
|
267
|
+
// this in useChatTurn; the headless path used to emit raw deltas, leaking
|
|
268
|
+
// model reasoning into the desktop UI. One scrubber per turn accumulates
|
|
269
|
+
// raw text and yields only clean increments.
|
|
270
|
+
const scrub = createStreamScrubber();
|
|
147
271
|
try {
|
|
148
272
|
for await (const event of harness.run()) {
|
|
149
|
-
|
|
150
|
-
|
|
273
|
+
// Reset the scrubber on every new assistant message so an unclosed
|
|
274
|
+
// <think> in one message can't swallow the next message's text.
|
|
275
|
+
// (In a tool-loop turn the harness emits multiple message_start/end cycles.)
|
|
276
|
+
if (event.type === 'message_start') {
|
|
277
|
+
scrub.reset();
|
|
151
278
|
}
|
|
152
|
-
if (event.type === 'message_delta') {
|
|
153
|
-
|
|
154
|
-
|
|
279
|
+
if (event.type === 'message_delta' && typeof event.delta === 'string') {
|
|
280
|
+
const cleanDelta = scrub.push(event.delta);
|
|
281
|
+
if (opts.output === 'json') {
|
|
282
|
+
// Re-emit a scrubbed message_delta so JSON consumers never see
|
|
283
|
+
// <think> tags. (Other event types pass through untouched.)
|
|
284
|
+
if (cleanDelta.length > 0) {
|
|
285
|
+
emitEvent({ ...event, delta: cleanDelta });
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
else if (opts.output === 'plain') {
|
|
289
|
+
if (cleanDelta.length > 0)
|
|
290
|
+
process.stdout.write(cleanDelta);
|
|
155
291
|
}
|
|
156
292
|
else {
|
|
157
|
-
|
|
293
|
+
if (cleanDelta.length > 0)
|
|
294
|
+
textBuffer.push(cleanDelta);
|
|
158
295
|
}
|
|
159
296
|
}
|
|
160
|
-
else
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
297
|
+
else {
|
|
298
|
+
if (opts.output === 'json') {
|
|
299
|
+
emitEvent(event);
|
|
300
|
+
}
|
|
301
|
+
if (event.type === 'agent_end') {
|
|
302
|
+
// Flush any trailing cleaned text before signaling end.
|
|
303
|
+
const tail = scrub.flush();
|
|
304
|
+
if (tail.length > 0) {
|
|
305
|
+
if (opts.output === 'plain')
|
|
306
|
+
process.stdout.write(tail);
|
|
307
|
+
else
|
|
308
|
+
textBuffer.push(tail);
|
|
309
|
+
}
|
|
310
|
+
finalReason = event.reason;
|
|
311
|
+
if (event.reason === 'error')
|
|
312
|
+
exitCode = 3;
|
|
313
|
+
}
|
|
314
|
+
else if (event.type === 'error') {
|
|
315
|
+
if (event.severity === 'fatal') {
|
|
316
|
+
exitCode = 2;
|
|
317
|
+
}
|
|
168
318
|
}
|
|
169
319
|
}
|
|
170
320
|
}
|
|
@@ -177,11 +327,33 @@ async function runHeadlessSingle(opts, provider, model, providerStream) {
|
|
|
177
327
|
process.stdout.write(textBuffer.join(''));
|
|
178
328
|
}
|
|
179
329
|
process.stdout.write('');
|
|
330
|
+
// v1.10.0: emit a history_snapshot so the desktop can replay this turn's
|
|
331
|
+
// assistant+tool tail on the next message. We snapshot the messages BEYOND
|
|
332
|
+
// the seed (everything the harness added this turn), scrubbing <think> from
|
|
333
|
+
// assistant content but KEEPING ---QUESTION--- blocks (so the next turn's
|
|
334
|
+
// short-answer anchor can still bind). Mirrors useChatTurn's finally block.
|
|
335
|
+
if (finalReason !== 'error' && opts.output === 'json') {
|
|
336
|
+
try {
|
|
337
|
+
const all = harness.getMessages();
|
|
338
|
+
const seedLen = 1 /*system*/ + historySeedLen + 1 /*user*/;
|
|
339
|
+
if (all.length > seedLen) {
|
|
340
|
+
const tail = all.slice(seedLen).map((m) => m.role === 'assistant' && m.content
|
|
341
|
+
? { ...m, content: cleanAgentContent(m.content, { stripQuestion: false }) }
|
|
342
|
+
: m);
|
|
343
|
+
if (tail.length > 0) {
|
|
344
|
+
emitEvent({ type: 'history_snapshot', messages: tail });
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
catch {
|
|
349
|
+
// Non-fatal: a snapshot failure must never break the run.
|
|
350
|
+
}
|
|
351
|
+
}
|
|
180
352
|
if (finalReason === 'error')
|
|
181
353
|
return 3;
|
|
182
354
|
return exitCode;
|
|
183
355
|
}
|
|
184
|
-
async function buildCouncilToolRegistry(planMode) {
|
|
356
|
+
async function buildCouncilToolRegistry(planMode, opts) {
|
|
185
357
|
const { registry: toolRegistry } = createBuiltinToolRegistry({ planMode });
|
|
186
358
|
const { createWorkspaceContext, createWorkspaceStubs } = await import('./workspace/stubs.js');
|
|
187
359
|
const { createWorkspaceToolRegistry } = await import('./workspace/toolRegistry.js');
|
|
@@ -194,17 +366,31 @@ async function buildCouncilToolRegistry(planMode) {
|
|
|
194
366
|
toolRegistry.register(td);
|
|
195
367
|
}
|
|
196
368
|
setWorkspaceStubs(createWorkspaceStubs(realCtx));
|
|
369
|
+
if (opts) {
|
|
370
|
+
await registerHeadlessMcp(toolRegistry, opts);
|
|
371
|
+
}
|
|
197
372
|
return { toolRegistry, workspaceCtx: realCtx };
|
|
198
373
|
}
|
|
199
374
|
async function runHeadlessCouncil(opts, provider, model, providerStream) {
|
|
200
375
|
const { dispatchCouncil } = await import('./councilDispatcher.js');
|
|
201
376
|
const sessionId = crypto.randomUUID();
|
|
202
|
-
const { toolRegistry } = await buildCouncilToolRegistry(planModeFromOpts(opts));
|
|
377
|
+
const { toolRegistry } = await buildCouncilToolRegistry(planModeFromOpts(opts), opts);
|
|
203
378
|
const { FeedbackStore } = await import('./councilFeedback.js');
|
|
204
379
|
const feedbackStore = new FeedbackStore();
|
|
380
|
+
// Multi-turn: Desktop passes --history, but council used to ignore it →
|
|
381
|
+
// "procedi" looked like a brand-new empty request. Inject prior transcript
|
|
382
|
+
// into the user task and emit history_snapshot for the next turn.
|
|
383
|
+
const historySeed = (opts.history ?? []).map((m) => m.role === 'assistant' && m.content
|
|
384
|
+
? { ...m, content: cleanAgentContent(m.content, { stripQuestion: false }) }
|
|
385
|
+
: m);
|
|
386
|
+
const effectiveTask = buildCouncilTaskWithHistory(opts.task, historySeed);
|
|
205
387
|
let exitCode = 0;
|
|
388
|
+
const scrub = createStreamScrubber();
|
|
389
|
+
/** Last finished assistant blob this run (chairman / specialist). */
|
|
390
|
+
let lastAssistantText = '';
|
|
391
|
+
let currentAssistantText = '';
|
|
206
392
|
try {
|
|
207
|
-
for await (const event of dispatchCouncil(
|
|
393
|
+
for await (const event of dispatchCouncil(effectiveTask, {
|
|
208
394
|
apiKey: 'REDACTED',
|
|
209
395
|
model,
|
|
210
396
|
provider: 'openai-compatible',
|
|
@@ -214,17 +400,42 @@ async function runHeadlessCouncil(opts, provider, model, providerStream) {
|
|
|
214
400
|
feedbackStore,
|
|
215
401
|
runMode: planModeFromOpts(opts) ? 'design-phase' : 'implementation',
|
|
216
402
|
})) {
|
|
217
|
-
if (
|
|
218
|
-
|
|
403
|
+
if (event.type === 'message_start') {
|
|
404
|
+
scrub.reset();
|
|
405
|
+
currentAssistantText = '';
|
|
219
406
|
}
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
407
|
+
if (event.type === 'message_delta' && typeof event.delta === 'string') {
|
|
408
|
+
const cleanDelta = scrub.push(event.delta);
|
|
409
|
+
if (cleanDelta.length > 0)
|
|
410
|
+
currentAssistantText += cleanDelta;
|
|
411
|
+
if (opts.output === 'json') {
|
|
412
|
+
if (cleanDelta.length > 0)
|
|
413
|
+
emitEvent({ ...event, delta: cleanDelta });
|
|
414
|
+
}
|
|
415
|
+
else if (opts.output === 'plain' && cleanDelta.length > 0) {
|
|
416
|
+
process.stdout.write(cleanDelta);
|
|
417
|
+
}
|
|
225
418
|
}
|
|
226
|
-
else
|
|
227
|
-
|
|
419
|
+
else {
|
|
420
|
+
if (opts.output === 'json')
|
|
421
|
+
emitEvent(event);
|
|
422
|
+
if (event.type === 'message_end' || event.type === 'agent_end') {
|
|
423
|
+
const tail = scrub.flush();
|
|
424
|
+
if (tail.length > 0) {
|
|
425
|
+
currentAssistantText += tail;
|
|
426
|
+
if (opts.output === 'plain')
|
|
427
|
+
process.stdout.write(tail);
|
|
428
|
+
}
|
|
429
|
+
if (currentAssistantText.trim()) {
|
|
430
|
+
lastAssistantText = currentAssistantText.trim();
|
|
431
|
+
}
|
|
432
|
+
if (event.type === 'agent_end' && event.reason === 'error') {
|
|
433
|
+
exitCode = 3;
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
else if (event.type === 'error' && event.severity === 'fatal') {
|
|
437
|
+
exitCode = 2;
|
|
438
|
+
}
|
|
228
439
|
}
|
|
229
440
|
}
|
|
230
441
|
}
|
|
@@ -232,6 +443,21 @@ async function runHeadlessCouncil(opts, provider, model, providerStream) {
|
|
|
232
443
|
process.stderr.write(`[zelari-code --headless] council error: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
233
444
|
return 2;
|
|
234
445
|
}
|
|
446
|
+
// Desktop multi-turn: append this turn so the next "procedi" has context.
|
|
447
|
+
if (opts.output === 'json') {
|
|
448
|
+
try {
|
|
449
|
+
const snapshot = [
|
|
450
|
+
{ role: 'user', content: opts.task },
|
|
451
|
+
...(lastAssistantText
|
|
452
|
+
? [{ role: 'assistant', content: lastAssistantText }]
|
|
453
|
+
: []),
|
|
454
|
+
];
|
|
455
|
+
emitEvent({ type: 'history_snapshot', messages: snapshot });
|
|
456
|
+
}
|
|
457
|
+
catch {
|
|
458
|
+
/* non-fatal */
|
|
459
|
+
}
|
|
460
|
+
}
|
|
235
461
|
return exitCode;
|
|
236
462
|
}
|
|
237
463
|
/**
|
|
@@ -251,7 +477,7 @@ async function runHeadlessZelari(opts, provider, model, providerStream) {
|
|
|
251
477
|
hasPlan: hasWorkspacePlan(projectRoot),
|
|
252
478
|
});
|
|
253
479
|
const memory = await getMemoryBackend(projectRoot);
|
|
254
|
-
const { toolRegistry, workspaceCtx } = await buildCouncilToolRegistry(planModeFromOpts(opts));
|
|
480
|
+
const { toolRegistry, workspaceCtx } = await buildCouncilToolRegistry(planModeFromOpts(opts), opts);
|
|
255
481
|
const feedbackStore = new FeedbackStore();
|
|
256
482
|
const chairmanBudget = envNumber(process.env.ZELARI_MODE_MAX_TOOLS_LUCIFER, {
|
|
257
483
|
default: 30,
|
|
@@ -265,11 +491,16 @@ async function runHeadlessZelari(opts, provider, model, providerStream) {
|
|
|
265
491
|
process.stderr.write(message + '\n');
|
|
266
492
|
}
|
|
267
493
|
};
|
|
494
|
+
const historySeed = (opts.history ?? []).map((m) => m.role === 'assistant' && m.content
|
|
495
|
+
? { ...m, content: cleanAgentContent(m.content, { stripQuestion: false }) }
|
|
496
|
+
: m);
|
|
497
|
+
const missionTask = buildCouncilTaskWithHistory(opts.task, historySeed);
|
|
268
498
|
// Surface the brief once so the desktop UI is not blank.
|
|
269
499
|
emit(`[zelari] mission brief\n${JSON.stringify({ deliverable: brief.deliverableThisMission, mvp: brief.sliceMvp?.title }, null, 0)}`);
|
|
270
500
|
let exitCode = 0;
|
|
501
|
+
let lastMissionAssistant = '';
|
|
271
502
|
try {
|
|
272
|
-
const state = await runZelariMission(
|
|
503
|
+
const state = await runZelariMission(missionTask, brief, {
|
|
273
504
|
projectRoot,
|
|
274
505
|
memory,
|
|
275
506
|
emit,
|
|
@@ -282,6 +513,7 @@ async function runHeadlessZelari(opts, provider, model, providerStream) {
|
|
|
282
513
|
let writeCount = 0;
|
|
283
514
|
let chairmanErrored = false;
|
|
284
515
|
let membersCompleted = 0;
|
|
516
|
+
const scrub = createStreamScrubber();
|
|
285
517
|
for await (const event of dispatchCouncil(fullPrompt, {
|
|
286
518
|
apiKey: 'REDACTED',
|
|
287
519
|
model,
|
|
@@ -293,15 +525,27 @@ async function runHeadlessZelari(opts, provider, model, providerStream) {
|
|
|
293
525
|
runMode: planModeFromOpts(opts) ? 'design-phase' : runMode,
|
|
294
526
|
maxToolCallsChairman: chairmanBudget,
|
|
295
527
|
})) {
|
|
296
|
-
if (
|
|
297
|
-
|
|
298
|
-
}
|
|
299
|
-
else if (event.type === 'message_delta') {
|
|
300
|
-
process.stdout.write(event.delta);
|
|
528
|
+
if (event.type === 'message_start') {
|
|
529
|
+
scrub.reset();
|
|
301
530
|
}
|
|
302
531
|
if (event.type === 'message_delta' && typeof event.delta === 'string') {
|
|
303
|
-
// Best-effort accumulate last member stream as synthesis proxy
|
|
532
|
+
// Best-effort accumulate RAW last member stream as synthesis proxy
|
|
533
|
+
// (the synthesis accumulator tracks raw provider text; the display
|
|
534
|
+
// path below emits the scrubbed version separately).
|
|
304
535
|
synthesisText += event.delta;
|
|
536
|
+
const cleanDelta = scrub.push(event.delta);
|
|
537
|
+
if (opts.output === 'json') {
|
|
538
|
+
if (cleanDelta.length > 0)
|
|
539
|
+
emitEvent({ ...event, delta: cleanDelta });
|
|
540
|
+
}
|
|
541
|
+
else if (opts.output === 'plain' && cleanDelta.length > 0) {
|
|
542
|
+
process.stdout.write(cleanDelta);
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
else {
|
|
546
|
+
if (opts.output === 'json') {
|
|
547
|
+
emitEvent(event);
|
|
548
|
+
}
|
|
305
549
|
}
|
|
306
550
|
if (event.type === 'tool_execution_end') {
|
|
307
551
|
const name = event.toolName
|
|
@@ -348,6 +592,11 @@ async function runHeadlessZelari(opts, provider, model, providerStream) {
|
|
|
348
592
|
catch {
|
|
349
593
|
// best-effort
|
|
350
594
|
}
|
|
595
|
+
if (synthesisText.trim()) {
|
|
596
|
+
lastMissionAssistant = cleanAgentContent(synthesisText, {
|
|
597
|
+
stripQuestion: false,
|
|
598
|
+
});
|
|
599
|
+
}
|
|
351
600
|
return {
|
|
352
601
|
completionOk,
|
|
353
602
|
ran: membersCompleted > 0 || synthesisText.length > 0,
|
|
@@ -371,6 +620,22 @@ async function runHeadlessZelari(opts, provider, model, providerStream) {
|
|
|
371
620
|
finally {
|
|
372
621
|
await memory.close().catch(() => undefined);
|
|
373
622
|
}
|
|
623
|
+
if (opts.output === 'json') {
|
|
624
|
+
try {
|
|
625
|
+
emitEvent({
|
|
626
|
+
type: 'history_snapshot',
|
|
627
|
+
messages: [
|
|
628
|
+
{ role: 'user', content: opts.task },
|
|
629
|
+
...(lastMissionAssistant
|
|
630
|
+
? [{ role: 'assistant', content: lastMissionAssistant }]
|
|
631
|
+
: []),
|
|
632
|
+
],
|
|
633
|
+
});
|
|
634
|
+
}
|
|
635
|
+
catch {
|
|
636
|
+
/* non-fatal */
|
|
637
|
+
}
|
|
638
|
+
}
|
|
374
639
|
return exitCode;
|
|
375
640
|
}
|
|
376
641
|
//# sourceMappingURL=runHeadless.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runHeadless.js","sourceRoot":"","sources":["../../src/cli/runHeadless.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runHeadless.js","sourceRoot":"","sources":["../../src/cli/runHeadless.ts"],"names":[],"mappings":"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"}
|