@x-code-cli/core 0.1.10 → 0.2.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.
- package/dist/agent/api-errors.d.ts.map +1 -1
- package/dist/agent/api-errors.js +18 -0
- package/dist/agent/api-errors.js.map +1 -1
- package/dist/agent/diff.d.ts +35 -0
- package/dist/agent/diff.d.ts.map +1 -0
- package/dist/agent/diff.js +83 -0
- package/dist/agent/diff.js.map +1 -0
- package/dist/agent/loop-state.d.ts +45 -3
- package/dist/agent/loop-state.d.ts.map +1 -1
- package/dist/agent/loop-state.js +24 -3
- package/dist/agent/loop-state.js.map +1 -1
- package/dist/agent/loop.d.ts +10 -6
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +212 -30
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/plan-storage.d.ts +55 -0
- package/dist/agent/plan-storage.d.ts.map +1 -0
- package/dist/agent/plan-storage.js +156 -0
- package/dist/agent/plan-storage.js.map +1 -0
- package/dist/agent/session-store.d.ts +114 -0
- package/dist/agent/session-store.d.ts.map +1 -0
- package/dist/agent/session-store.js +415 -0
- package/dist/agent/session-store.js.map +1 -0
- package/dist/agent/sub-agents/built-in.d.ts +3 -0
- package/dist/agent/sub-agents/built-in.d.ts.map +1 -0
- package/dist/agent/sub-agents/built-in.js +98 -0
- package/dist/agent/sub-agents/built-in.js.map +1 -0
- package/dist/agent/sub-agents/index.d.ts +7 -0
- package/dist/agent/sub-agents/index.d.ts.map +1 -0
- package/dist/agent/sub-agents/index.js +5 -0
- package/dist/agent/sub-agents/index.js.map +1 -0
- package/dist/agent/sub-agents/loader.d.ts +5 -0
- package/dist/agent/sub-agents/loader.d.ts.map +1 -0
- package/dist/agent/sub-agents/loader.js +117 -0
- package/dist/agent/sub-agents/loader.js.map +1 -0
- package/dist/agent/sub-agents/registry.d.ts +14 -0
- package/dist/agent/sub-agents/registry.d.ts.map +1 -0
- package/dist/agent/sub-agents/registry.js +37 -0
- package/dist/agent/sub-agents/registry.js.map +1 -0
- package/dist/agent/sub-agents/runner.d.ts +26 -0
- package/dist/agent/sub-agents/runner.d.ts.map +1 -0
- package/dist/agent/sub-agents/runner.js +287 -0
- package/dist/agent/sub-agents/runner.js.map +1 -0
- package/dist/agent/sub-agents/types.d.ts +63 -0
- package/dist/agent/sub-agents/types.d.ts.map +1 -0
- package/dist/agent/sub-agents/types.js +2 -0
- package/dist/agent/sub-agents/types.js.map +1 -0
- package/dist/agent/system-prompt.d.ts +15 -0
- package/dist/agent/system-prompt.d.ts.map +1 -1
- package/dist/agent/system-prompt.js +161 -0
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/agent/tool-execution.d.ts +4 -3
- package/dist/agent/tool-execution.d.ts.map +1 -1
- package/dist/agent/tool-execution.js +316 -14
- package/dist/agent/tool-execution.js.map +1 -1
- package/dist/agent/tool-result-sanitize.d.ts +12 -0
- package/dist/agent/tool-result-sanitize.d.ts.map +1 -1
- package/dist/agent/tool-result-sanitize.js +70 -0
- package/dist/agent/tool-result-sanitize.js.map +1 -1
- package/dist/config/index.d.ts +6 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/index.d.ts +11 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -3
- package/dist/index.js.map +1 -1
- package/dist/knowledge/session.d.ts +4 -7
- package/dist/knowledge/session.d.ts.map +1 -1
- package/dist/knowledge/session.js +20 -55
- package/dist/knowledge/session.js.map +1 -1
- package/dist/permissions/index.d.ts +18 -3
- package/dist/permissions/index.d.ts.map +1 -1
- package/dist/permissions/index.js +20 -2
- package/dist/permissions/index.js.map +1 -1
- package/dist/tools/ask-user.d.ts.map +1 -1
- package/dist/tools/ask-user.js +8 -6
- package/dist/tools/ask-user.js.map +1 -1
- package/dist/tools/enter-plan-mode.d.ts +25 -0
- package/dist/tools/enter-plan-mode.d.ts.map +1 -0
- package/dist/tools/enter-plan-mode.js +120 -0
- package/dist/tools/enter-plan-mode.js.map +1 -0
- package/dist/tools/exit-plan-mode.d.ts +13 -0
- package/dist/tools/exit-plan-mode.d.ts.map +1 -0
- package/dist/tools/exit-plan-mode.js +22 -0
- package/dist/tools/exit-plan-mode.js.map +1 -0
- package/dist/tools/grep.d.ts +1 -1
- package/dist/tools/index.d.ts +20 -4
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +7 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/save-knowledge.d.ts +2 -2
- package/dist/tools/shell-provider.d.ts +4 -0
- package/dist/tools/shell-provider.d.ts.map +1 -1
- package/dist/tools/shell-provider.js +2 -0
- package/dist/tools/shell-provider.js.map +1 -1
- package/dist/tools/task.d.ts +14 -0
- package/dist/tools/task.d.ts.map +1 -0
- package/dist/tools/task.js +95 -0
- package/dist/tools/task.js.map +1 -0
- package/dist/tools/todo-write.d.ts +21 -0
- package/dist/tools/todo-write.d.ts.map +1 -0
- package/dist/tools/todo-write.js +117 -0
- package/dist/tools/todo-write.js.map +1 -0
- package/dist/types/index.d.ts +103 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/knowledge/session-usage.d.ts +0 -24
- package/dist/knowledge/session-usage.d.ts.map +0 -1
- package/dist/knowledge/session-usage.js +0 -86
- package/dist/knowledge/session-usage.js.map +0 -1
package/dist/agent/loop.js
CHANGED
|
@@ -3,22 +3,40 @@ import fs from 'node:fs/promises';
|
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { generateText, streamText } from 'ai';
|
|
5
5
|
import { buildKnowledgeContext } from '../knowledge/loader.js';
|
|
6
|
-
import { generateSessionSummary
|
|
7
|
-
import { persistUsageSnapshot } from '../knowledge/session-usage.js';
|
|
6
|
+
import { generateSessionSummary } from '../knowledge/session.js';
|
|
8
7
|
import { applyCacheControl } from '../providers/cache-control.js';
|
|
9
8
|
import { getThinkingProviderOptions, mergeThinkingOptions } from '../providers/thinking.js';
|
|
10
9
|
import { clearProgressReporter, setProgressReporter } from '../tools/progress.js';
|
|
11
10
|
import { toolRegistry, truncateToolResult } from '../tools/index.js';
|
|
11
|
+
import { createTaskTool } from '../tools/task.js';
|
|
12
12
|
import { debugLog } from '../utils.js';
|
|
13
13
|
import { classifyApiError, isContextTooLongError } from './api-errors.js';
|
|
14
14
|
import { estimateTokenCount, getCompressionThreshold, getMaxOutputTokens } from './context-window.js';
|
|
15
15
|
import { lightCompactMessages } from './light-compact.js';
|
|
16
16
|
import { createLoopState } from './loop-state.js';
|
|
17
|
+
import { generateTaskSlug, makePlanFilePath } from './plan-storage.js';
|
|
18
|
+
import { appendHeader, appendUsage, flushPendingMessages, markBoundaryAndReflush, } from './session-store.js';
|
|
19
|
+
/** Pull plain text out of a UserContent payload for slugification.
|
|
20
|
+
* UserContent can be a string OR a multi-part array (text/image/file
|
|
21
|
+
* parts after `buildUserContent` ingests `@path` references); we only
|
|
22
|
+
* care about the text segments — image / file parts contribute
|
|
23
|
+
* nothing to a human-readable filename. */
|
|
24
|
+
function userContentToText(content) {
|
|
25
|
+
if (typeof content === 'string')
|
|
26
|
+
return content;
|
|
27
|
+
if (Array.isArray(content)) {
|
|
28
|
+
return content
|
|
29
|
+
.filter((p) => p?.type === 'text' && typeof p.text === 'string')
|
|
30
|
+
.map((p) => p.text)
|
|
31
|
+
.join(' ');
|
|
32
|
+
}
|
|
33
|
+
return '';
|
|
34
|
+
}
|
|
17
35
|
import { downgradeBinaryPartsForProvider, ensureReasoningContentParts } from './provider-compat.js';
|
|
18
36
|
import { drainStreamResult } from './stream-utils.js';
|
|
19
37
|
import { buildSystemPrompt } from './system-prompt.js';
|
|
20
38
|
import { processToolCalls } from './tool-execution.js';
|
|
21
|
-
import { truncateToolResultsInMessages } from './tool-result-sanitize.js';
|
|
39
|
+
import { repairOrphanToolCalls, truncateToolResultsInMessages } from './tool-result-sanitize.js';
|
|
22
40
|
/** Number of recent messages to keep verbatim when compressing. */
|
|
23
41
|
const KEEP_RECENT = 6;
|
|
24
42
|
/** Compress old messages into a summary. */
|
|
@@ -53,20 +71,33 @@ async function checkAndCompressContext(state, model, threshold, callbacks) {
|
|
|
53
71
|
state.messages = light.messages;
|
|
54
72
|
const stillOver = estimateTokenCount(state.messages) > threshold;
|
|
55
73
|
callbacks.onContextCompressed(`Dropped ${light.dropped} looped tool-call message(s) to reclaim context${stillOver ? ' — still over threshold, summarising' : ''}.`);
|
|
56
|
-
if (!stillOver)
|
|
74
|
+
if (!stillOver) {
|
|
75
|
+
// Light compaction succeeded — write a boundary so resume won't
|
|
76
|
+
// resurrect the dropped loop-guard pairs (they're still on disk
|
|
77
|
+
// pre-boundary, but the loader cuts at the latest boundary). The
|
|
78
|
+
// boundary carries no summary text since nothing was summarised.
|
|
79
|
+
void markBoundaryAndReflush(state);
|
|
57
80
|
return;
|
|
81
|
+
}
|
|
58
82
|
}
|
|
83
|
+
let summaryText = '';
|
|
59
84
|
try {
|
|
60
85
|
const summary = await generateSessionSummary(state.messages, model, state.sessionId, state.startedAt, [
|
|
61
86
|
...state.filesModified,
|
|
62
87
|
]);
|
|
63
|
-
|
|
88
|
+
summaryText = summary.summary;
|
|
64
89
|
}
|
|
65
90
|
catch {
|
|
66
|
-
//
|
|
91
|
+
// Summary generation failed — fall through with empty text. The
|
|
92
|
+
// compressMessages call below still runs its own LLM summarisation,
|
|
93
|
+
// so context still shrinks; we just lose the structured summary
|
|
94
|
+
// that would have ridden along on the boundary line for picker UX.
|
|
67
95
|
}
|
|
68
96
|
state.messages = await compressMessages(state.messages, model);
|
|
69
97
|
state.lastInputTokens = 0;
|
|
98
|
+
// Write a compact-boundary line + re-flush the trimmed messages so
|
|
99
|
+
// the post-boundary jsonl content equals the new in-memory state.
|
|
100
|
+
void markBoundaryAndReflush(state, summaryText);
|
|
70
101
|
callbacks.onContextCompressed('Context compressed to fit context window.');
|
|
71
102
|
}
|
|
72
103
|
/**
|
|
@@ -79,6 +110,10 @@ async function handleContextTooLong(state, model, callbacks) {
|
|
|
79
110
|
return false;
|
|
80
111
|
state.messages = await compressMessages(state.messages, model);
|
|
81
112
|
state.lastInputTokens = 0;
|
|
113
|
+
// Same boundary discipline as the proactive path — reactive compact
|
|
114
|
+
// also shrinks state.messages in place, so the jsonl needs a
|
|
115
|
+
// compact-boundary marker to keep loader semantics consistent.
|
|
116
|
+
void markBoundaryAndReflush(state);
|
|
82
117
|
callbacks.onContextCompressed('Context too long — automatically compressed. Retrying...');
|
|
83
118
|
return true;
|
|
84
119
|
}
|
|
@@ -147,15 +182,87 @@ async function collectTurnResponse(result, state, modelId, callbacks) {
|
|
|
147
182
|
state.tokenUsage.cacheReadTokens += usage.inputTokenDetails?.cacheReadTokens ?? 0;
|
|
148
183
|
state.tokenUsage.cacheCreationTokens += usage.inputTokenDetails?.cacheWriteTokens ?? 0;
|
|
149
184
|
state.tokenUsage.totalTokens = state.tokenUsage.inputTokens + state.tokenUsage.outputTokens;
|
|
185
|
+
// Snapshot the current context-window occupancy from this response —
|
|
186
|
+
// overwrite, not accumulate. Includes input + output because every
|
|
187
|
+
// major provider (Anthropic, OpenAI, Google, DeepSeek, Moonshot,
|
|
188
|
+
// Alibaba, xAI) defines context window as the SHARED budget pool of
|
|
189
|
+
// input + output: input + output ≤ context_window is the architectural
|
|
190
|
+
// constraint (single KV-cache cap). AI SDK's `inputTokens` already
|
|
191
|
+
// includes cache_read + cache_write, so this is the full
|
|
192
|
+
// prompt-the-model-saw plus what it just wrote — directly comparable
|
|
193
|
+
// to `getContextWindow(modelId)` in the footer "N / M · X%" indicator.
|
|
194
|
+
// Cumulative counters above remain for /usage billing summaries.
|
|
195
|
+
state.tokenUsage.currentContextTokens = (usage.inputTokens ?? 0) + (usage.outputTokens ?? 0);
|
|
150
196
|
if (usage.inputTokens != null)
|
|
151
197
|
state.lastInputTokens = usage.inputTokens;
|
|
152
198
|
callbacks.onUsageUpdate(state.tokenUsage);
|
|
153
|
-
|
|
199
|
+
// Persist a usage snapshot inline with the jsonl transcript. Per-turn
|
|
200
|
+
// cadence: the picker's tail-scan only ever needs the LATEST entry, but
|
|
201
|
+
// we write every turn so a crashed process doesn't lose its final
|
|
202
|
+
// counts. Fire-and-forget — never blocks the loop.
|
|
203
|
+
void appendUsage(state, modelId);
|
|
154
204
|
}
|
|
155
205
|
return result.finishReason;
|
|
156
206
|
}
|
|
207
|
+
/** AbortError from streamText / fetch is the SDK's signal that we cancelled
|
|
208
|
+
* the request. We also accept any error that lands while abortSignal is
|
|
209
|
+
* already aborted — some providers wrap the underlying AbortError into their
|
|
210
|
+
* own error class but still flip the signal first. */
|
|
211
|
+
function isAbortError(err, signal) {
|
|
212
|
+
if (signal?.aborted)
|
|
213
|
+
return true;
|
|
214
|
+
if (err instanceof Error) {
|
|
215
|
+
if (err.name === 'AbortError')
|
|
216
|
+
return true;
|
|
217
|
+
if (/aborted|AbortError/i.test(err.message))
|
|
218
|
+
return true;
|
|
219
|
+
}
|
|
220
|
+
return false;
|
|
221
|
+
}
|
|
222
|
+
/** Build the effective tool set for this loop, applying:
|
|
223
|
+
* 1. The static tool registry (always)
|
|
224
|
+
* 2. The task tool (when subAgentRegistry is present)
|
|
225
|
+
* 3. options.toolFilter allow/deny (for sub-agent loops)
|
|
226
|
+
*
|
|
227
|
+
* Computed once per session and cached — the tool set is stable within
|
|
228
|
+
* a session (registry doesn't change, filter doesn't change). */
|
|
229
|
+
function buildTools(options) {
|
|
230
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
231
|
+
const tools = { ...toolRegistry };
|
|
232
|
+
if (options.subAgentRegistry) {
|
|
233
|
+
tools.task = createTaskTool(options.subAgentRegistry);
|
|
234
|
+
}
|
|
235
|
+
const filter = options.toolFilter;
|
|
236
|
+
if (filter) {
|
|
237
|
+
if (filter.allow) {
|
|
238
|
+
const allowSet = new Set(filter.allow);
|
|
239
|
+
for (const name of Object.keys(tools)) {
|
|
240
|
+
if (!allowSet.has(name))
|
|
241
|
+
delete tools[name];
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
if (filter.deny) {
|
|
245
|
+
for (const name of filter.deny) {
|
|
246
|
+
delete tools[name];
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
return tools;
|
|
251
|
+
}
|
|
157
252
|
/** Run one agent turn: stream to UI, collect response. Resilient to errors. */
|
|
158
|
-
async function runTurn(state, model, options, systemPrompt, callbacks
|
|
253
|
+
async function runTurn(state, model, options, systemPrompt, callbacks,
|
|
254
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
255
|
+
effectiveTools) {
|
|
256
|
+
// Defensive sweep BEFORE every API call: if the previous turn left
|
|
257
|
+
// an assistant tool_call without a paired tool_result anywhere in
|
|
258
|
+
// state.messages (model emitted malformed tool input → SDK rejected
|
|
259
|
+
// with tool-error and never produced a result; or a turn errored
|
|
260
|
+
// mid-flight), append a synthetic error result so the request body
|
|
261
|
+
// is well-formed. Providers strictly require tool_call ↔ tool_result
|
|
262
|
+
// pairing and reject the whole request with confusing errors like
|
|
263
|
+
// "tool must be a response to a preceding message with tool_calls".
|
|
264
|
+
// Idempotent — running every turn is cheap and bulletproof.
|
|
265
|
+
repairOrphanToolCalls(state.messages);
|
|
159
266
|
// Text-only providers (DeepSeek, custom) would 400 on any surviving
|
|
160
267
|
// image/file parts. Rewrite those parts to OCR'd text in-place before
|
|
161
268
|
// the stream starts. Multimodal providers short-circuit inside the
|
|
@@ -188,7 +295,7 @@ async function runTurn(state, model, options, systemPrompt, callbacks) {
|
|
|
188
295
|
model,
|
|
189
296
|
system: cached.system,
|
|
190
297
|
messages: cached.messages,
|
|
191
|
-
tools:
|
|
298
|
+
tools: effectiveTools,
|
|
192
299
|
maxRetries: 3,
|
|
193
300
|
abortSignal: options.abortSignal,
|
|
194
301
|
// Explicit ceiling so provider defaults don't silently truncate long
|
|
@@ -205,6 +312,8 @@ async function runTurn(state, model, options, systemPrompt, callbacks) {
|
|
|
205
312
|
});
|
|
206
313
|
}
|
|
207
314
|
catch (err) {
|
|
315
|
+
if (isAbortError(err, options.abortSignal))
|
|
316
|
+
return { kind: 'aborted' };
|
|
208
317
|
callbacks.onError(new Error(classifyApiError(err).message));
|
|
209
318
|
return { kind: 'error' };
|
|
210
319
|
}
|
|
@@ -223,6 +332,8 @@ async function runTurn(state, model, options, systemPrompt, callbacks) {
|
|
|
223
332
|
// Silently drain all pending AI SDK promises so unhandled-rejection
|
|
224
333
|
// warnings (NoOutputGeneratedError) don't leak to stderr.
|
|
225
334
|
drainStreamResult(result);
|
|
335
|
+
if (isAbortError(err, options.abortSignal))
|
|
336
|
+
return { kind: 'aborted' };
|
|
226
337
|
if (isContextTooLongError(err)) {
|
|
227
338
|
const compressed = await handleContextTooLong(state, model, callbacks);
|
|
228
339
|
if (compressed)
|
|
@@ -238,14 +349,35 @@ async function runTurn(state, model, options, systemPrompt, callbacks) {
|
|
|
238
349
|
}
|
|
239
350
|
catch (err) {
|
|
240
351
|
drainStreamResult(result);
|
|
352
|
+
if (isAbortError(err, options.abortSignal))
|
|
353
|
+
return { kind: 'aborted' };
|
|
241
354
|
callbacks.onError(new Error(classifyApiError(err).message));
|
|
242
355
|
return { kind: 'error' };
|
|
243
356
|
}
|
|
244
357
|
}
|
|
245
358
|
/** Main agent loop. */
|
|
246
359
|
export async function agentLoop(userMessage, model, options, callbacks, existingState) {
|
|
247
|
-
const state = existingState ?? createLoopState();
|
|
360
|
+
const state = existingState ?? createLoopState(options.permissionMode ?? 'default');
|
|
248
361
|
state.messages.push({ role: 'user', content: userMessage });
|
|
362
|
+
// Derive the session task-slug ONCE per session, on the first turn.
|
|
363
|
+
// Drives session-usage filenames (`<slug>-<sessionId>.usage.json`)
|
|
364
|
+
// and (when in plan mode) plan-file names. Set-once: changing it
|
|
365
|
+
// mid-session would orphan the file the previous turn already wrote
|
|
366
|
+
// to.
|
|
367
|
+
//
|
|
368
|
+
// For non-ASCII first messages (CJK, emoji-only) `generateTaskSlug`
|
|
369
|
+
// makes one isolated generateText round-trip to summarize the task
|
|
370
|
+
// into 2-4 English words; for ASCII messages it short-circuits to a
|
|
371
|
+
// local slugify with no network. We kick it off in parallel with
|
|
372
|
+
// knowledge / git-stat below so the round-trip overlaps with disk
|
|
373
|
+
// work and doesn't add serial latency to the first turn. The
|
|
374
|
+
// resulting slug is awaited before any session-usage write or plan
|
|
375
|
+
// file is created (well before the first runTurn), so paths are
|
|
376
|
+
// never written with a stale empty slug.
|
|
377
|
+
const taskText = userContentToText(userMessage);
|
|
378
|
+
const taskSlugPromise = state.taskSlug
|
|
379
|
+
? Promise.resolve(state.taskSlug)
|
|
380
|
+
: generateTaskSlug(taskText, model, options.modelId, options.abortSignal);
|
|
249
381
|
// Session continuation is handled explicitly by the UI: if the user accepts
|
|
250
382
|
// the resume prompt, the pending work is embedded directly in their first
|
|
251
383
|
// user message. Auto-injecting it into every system prompt made the model
|
|
@@ -256,7 +388,34 @@ export async function agentLoop(userMessage, model, options, callbacks, existing
|
|
|
256
388
|
.stat(path.join(process.cwd(), '.git'))
|
|
257
389
|
.then(() => true)
|
|
258
390
|
.catch(() => false);
|
|
391
|
+
// Cache knowledge context and git status on state for sub-agent use
|
|
392
|
+
state.knowledgeContext = fullKnowledgeContext;
|
|
393
|
+
state.isGitRepo = isGitRepo;
|
|
394
|
+
// Resolve the slug now — must be set before any persistUsageSnapshot
|
|
395
|
+
// (per-turn) or plan-file write below. `generateTaskSlug` returns ''
|
|
396
|
+
// on failure, in which case session/plan files fall back to the
|
|
397
|
+
// pure-timestamp naming we had before this helper existed.
|
|
398
|
+
state.taskSlug = await taskSlugPromise;
|
|
399
|
+
// Lazy plan-file path derivation. We derive ONCE per plan-mode
|
|
400
|
+
// session (the first turn that's in plan mode without a path
|
|
401
|
+
// already set) from the user's task text. Re-deriving on every
|
|
402
|
+
// plan-mode turn would overwrite the path the model has been
|
|
403
|
+
// editing, so the !currentPlanPath guard is critical. Pass the
|
|
404
|
+
// session-wide slug so non-ASCII task text still gets a readable
|
|
405
|
+
// filename instead of timestamp-only.
|
|
406
|
+
if (state.permissionMode === 'plan' && !state.currentPlanPath) {
|
|
407
|
+
state.currentPlanPath = makePlanFilePath(taskText, { slug: state.taskSlug });
|
|
408
|
+
}
|
|
409
|
+
// Write the session header to its jsonl file (idempotent for resumes —
|
|
410
|
+
// the header line already exists in that case and we skip). Must come
|
|
411
|
+
// AFTER taskSlug resolution because the filename is `<slug>-<id>.jsonl`.
|
|
412
|
+
// Fire-and-forget — never blocks the loop on FS errors.
|
|
413
|
+
void appendHeader(state, options.modelId, taskText);
|
|
259
414
|
const compressionThreshold = getCompressionThreshold(options.modelId);
|
|
415
|
+
// Build the effective tool set once per session — includes the task
|
|
416
|
+
// tool when a subAgentRegistry is available, and applies toolFilter
|
|
417
|
+
// for sub-agent loops. Stable for the session lifetime.
|
|
418
|
+
const effectiveTools = buildTools(options);
|
|
260
419
|
// Auto-continuation on `length` finish. Reasoning models can exhaust the
|
|
261
420
|
// output token budget before the user-visible reply completes — the old
|
|
262
421
|
// behavior was to stop mid-sentence and surface an error, which looks
|
|
@@ -266,6 +425,14 @@ export async function agentLoop(userMessage, model, options, callbacks, existing
|
|
|
266
425
|
let continuationAttempts = 0;
|
|
267
426
|
while (state.turnCount < options.maxTurns) {
|
|
268
427
|
state.turnCount++;
|
|
428
|
+
// Sweep any unpersisted messages from the prior iteration (or the
|
|
429
|
+
// initial user message on iter 1) into the jsonl. Diff-based: only
|
|
430
|
+
// appends `state.messages.slice(persistedMessageCount)`, so it's a
|
|
431
|
+
// no-op when nothing has changed. Must come BEFORE
|
|
432
|
+
// checkAndCompressContext — if compaction fires it rewrites the array
|
|
433
|
+
// in place and writes its own boundary + re-flush, which assumes the
|
|
434
|
+
// pre-compaction tail is already on disk.
|
|
435
|
+
void flushPendingMessages(state);
|
|
269
436
|
await checkAndCompressContext(state, model, compressionThreshold, callbacks);
|
|
270
437
|
// Build the system prompt once per session and reuse it across turns.
|
|
271
438
|
// Stable byte-level prefix is a prerequisite for OpenAI-compatible
|
|
@@ -273,17 +440,27 @@ export async function agentLoop(userMessage, model, options, callbacks, existing
|
|
|
273
440
|
// Zhipu, xAI). If this string changes between turns — e.g. because
|
|
274
441
|
// buildSystemPrompt interpolates a fresh timestamp — the cache misses
|
|
275
442
|
// every request.
|
|
443
|
+
//
|
|
444
|
+
// The plan-mode overlay is folded into this same byte-stable cache.
|
|
445
|
+
// tool-execution invalidates the cache (sets it to null) when
|
|
446
|
+
// permissionMode flips, so each mode's prompt stays cache-friendly
|
|
447
|
+
// for as long as the mode is active. Only the boundary turn pays the
|
|
448
|
+
// cache miss.
|
|
276
449
|
if (!state.systemPromptCache) {
|
|
277
450
|
state.systemPromptCache = buildSystemPrompt({
|
|
278
451
|
knowledgeContext: fullKnowledgeContext,
|
|
279
452
|
modelId: options.modelId,
|
|
280
453
|
isGitRepo,
|
|
454
|
+
planMode: state.permissionMode === 'plan',
|
|
455
|
+
planFilePath: state.currentPlanPath ?? undefined,
|
|
281
456
|
});
|
|
282
457
|
}
|
|
283
458
|
const systemPrompt = state.systemPromptCache;
|
|
284
|
-
const outcome = await runTurn(state, model, options, systemPrompt, callbacks);
|
|
459
|
+
const outcome = await runTurn(state, model, options, systemPrompt, callbacks, effectiveTools);
|
|
285
460
|
if (outcome.kind === 'error')
|
|
286
461
|
break;
|
|
462
|
+
if (outcome.kind === 'aborted')
|
|
463
|
+
break;
|
|
287
464
|
if (outcome.kind === 'retry') {
|
|
288
465
|
// Don't count a failed attempt that got recovered via reactive compaction.
|
|
289
466
|
state.turnCount--;
|
|
@@ -298,10 +475,16 @@ export async function agentLoop(userMessage, model, options, callbacks, existing
|
|
|
298
475
|
toolCalls = await outcome.result.toolCalls;
|
|
299
476
|
}
|
|
300
477
|
catch (err) {
|
|
478
|
+
if (isAbortError(err, options.abortSignal))
|
|
479
|
+
break;
|
|
301
480
|
callbacks.onError(new Error(classifyApiError(err).message));
|
|
302
481
|
break;
|
|
303
482
|
}
|
|
304
|
-
await processToolCalls(toolCalls, state, options, callbacks);
|
|
483
|
+
await processToolCalls(toolCalls, state, options, callbacks, model);
|
|
484
|
+
// processToolCalls short-circuits on abort with synthetic results;
|
|
485
|
+
// skip the next streamText call which would just throw AbortError.
|
|
486
|
+
if (options.abortSignal?.aborted)
|
|
487
|
+
break;
|
|
305
488
|
continue;
|
|
306
489
|
}
|
|
307
490
|
if (outcome.finishReason === 'length') {
|
|
@@ -328,25 +511,24 @@ export async function agentLoop(userMessage, model, options, callbacks, existing
|
|
|
328
511
|
if (state.turnCount >= options.maxTurns) {
|
|
329
512
|
callbacks.onError(new Error(`Reached maximum turns (${options.maxTurns}). Stopping agent loop.`));
|
|
330
513
|
}
|
|
514
|
+
// Final flush — catches the last iteration's content when we exit via
|
|
515
|
+
// 'stop'/'error' (the next-iter flush at the top of the loop never
|
|
516
|
+
// runs in those cases). Abort path: useAgent.abort() pushes the
|
|
517
|
+
// `[Request interrupted by user]` notice AFTER agentLoop returns, so
|
|
518
|
+
// it's responsible for its own flush — see use-agent.ts.
|
|
519
|
+
void flushPendingMessages(state);
|
|
331
520
|
return state;
|
|
332
521
|
}
|
|
333
|
-
/**
|
|
334
|
-
*
|
|
335
|
-
*
|
|
336
|
-
*
|
|
337
|
-
*
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
}
|
|
345
|
-
catch {
|
|
346
|
-
// Timeout or any other failure — skip summary silently.
|
|
347
|
-
}
|
|
348
|
-
finally {
|
|
349
|
-
clearTimeout(timer);
|
|
350
|
-
}
|
|
522
|
+
/** Sync any in-memory messages to the session jsonl. Called on exit /
|
|
523
|
+
* cleanup paths so a process kill doesn't lose the last turn. Per-turn
|
|
524
|
+
* appends already happen during agentLoop — this is the safety-net
|
|
525
|
+
* drain for whatever is left. Tolerant of a half-initialized state
|
|
526
|
+
* (no taskSlug yet etc.); flushPendingMessages no-ops when there's
|
|
527
|
+
* nothing to write. The `model` parameter is kept for API stability
|
|
528
|
+
* with the previous summary-generating implementation but is unused
|
|
529
|
+
* here — summaries now ride along on `compact-boundary` lines, not
|
|
530
|
+
* on a separate exit-time call. */
|
|
531
|
+
export async function saveSession(state, _model) {
|
|
532
|
+
await flushPendingMessages(state);
|
|
351
533
|
}
|
|
352
534
|
//# sourceMappingURL=loop.js.map
|
package/dist/agent/loop.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { LanguageModel } from 'ai';
|
|
2
|
+
/** Convert an arbitrary task description into a filesystem-safe,
|
|
3
|
+
* lower-case, hyphen-separated slug. Drops anything outside
|
|
4
|
+
* `[a-z0-9 -]` (so CJK / emoji / punctuation collapse to nothing —
|
|
5
|
+
* CJK-only tasks produce an empty slug, which is intentional and
|
|
6
|
+
* caught by callers' timestamp-only fallback). Length capped at
|
|
7
|
+
* SLUG_MAX_LEN cells so `ls` columns stay readable. Exported so
|
|
8
|
+
* session-usage filenames can mirror the same shape as plan files. */
|
|
9
|
+
export declare function slugify(text: string): string;
|
|
10
|
+
/** Build a fresh plan-file path from a task description (typically the
|
|
11
|
+
* user's most recent message). Pure function — no I/O — so callers
|
|
12
|
+
* can stash the path on LoopState before the file actually exists.
|
|
13
|
+
* Format: `<slug>-<timestamp>.md` (slug-only when timestamp could
|
|
14
|
+
* conflict, timestamp-only when the task text produces an empty
|
|
15
|
+
* slug). Pass `opts.slug` when the caller already has a precomputed
|
|
16
|
+
* slug (e.g. agentLoop's session-wide LLM-generated `taskSlug`) to
|
|
17
|
+
* skip the local slugify pass — important for non-ASCII task text
|
|
18
|
+
* where slugify would return empty. */
|
|
19
|
+
export declare function makePlanFilePath(taskText: string, opts?: {
|
|
20
|
+
slug?: string;
|
|
21
|
+
now?: Date;
|
|
22
|
+
}): string;
|
|
23
|
+
/** Derive a human-skimmable filename slug for the session.
|
|
24
|
+
*
|
|
25
|
+
* Fast path: if `slugify(taskText)` already produces ≥6 chars (i.e.
|
|
26
|
+
* the user typed something English-y), return it directly — zero
|
|
27
|
+
* network, zero tokens. Covers the entire English-prompt user base.
|
|
28
|
+
*
|
|
29
|
+
* Slow path: for CJK-only / emoji-heavy / very short first messages
|
|
30
|
+
* where slugify returns empty or near-empty, make ONE isolated
|
|
31
|
+
* generateText call asking for 2-4 lowercase English words. No
|
|
32
|
+
* message history, no tools, no system context — just the user's
|
|
33
|
+
* raw text (truncated) and a strict instruction. Disables thinking
|
|
34
|
+
* on providers that support it so the small token budget isn't
|
|
35
|
+
* spent on hidden reasoning before any visible text appears.
|
|
36
|
+
*
|
|
37
|
+
* Returns '' on any failure (including abort). Callers treat empty
|
|
38
|
+
* as "fall back to timestamp-only naming", matching pre-existing
|
|
39
|
+
* behavior so adding this helper can't regress anyone. */
|
|
40
|
+
export declare function generateTaskSlug(taskText: string, model: LanguageModel, modelId: string, signal?: AbortSignal): Promise<string>;
|
|
41
|
+
/** Make sure the plan directory exists. Recursive mkdir so we don't have
|
|
42
|
+
* to also ensure `.x-code/` separately — first plan written in a fresh
|
|
43
|
+
* project gets the parent created automatically. */
|
|
44
|
+
export declare function ensurePlanDir(): Promise<void>;
|
|
45
|
+
/** Read the plan body at `planPath`. Empty string when the file doesn't
|
|
46
|
+
* exist — exitPlanMode calls this to grab whatever the model has
|
|
47
|
+
* written so far, and "no plan written yet" is a valid (if unhelpful)
|
|
48
|
+
* state. */
|
|
49
|
+
export declare function readPlan(planPath: string): Promise<string>;
|
|
50
|
+
/** Persist the plan body to `planPath`. Used by exitPlanMode when the
|
|
51
|
+
* model passes a `plan` override so the on-disk record matches what
|
|
52
|
+
* the user is approving. Returns the path it wrote to (always equal
|
|
53
|
+
* to the input). */
|
|
54
|
+
export declare function writePlan(planPath: string, body: string): Promise<string>;
|
|
55
|
+
//# sourceMappingURL=plan-storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-storage.d.ts","sourceRoot":"","sources":["../../src/agent/plan-storage.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAQvC;;;;;;uEAMuE;AACvE,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAU5C;AAiBD;;;;;;;;wCAQwC;AACxC,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,IAAI,CAAA;CAAE,GACnC,MAAM,CAKR;AAuBD;;;;;;;;;;;;;;;;2DAgB2D;AAC3D,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC,CAiCjB;AAED;;qDAEqD;AACrD,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAEnD;AAED;;;aAGa;AACb,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMhE;AAED;;;qBAGqB;AACrB,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI/E"}
|