zidane 6.2.35 → 6.3.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/README.md +16 -5
- package/dist/{acp-DZNCQaTQ.js → acp-BCg03Fqc.js} +6 -6
- package/dist/{acp-DZNCQaTQ.js.map → acp-BCg03Fqc.js.map} +1 -1
- package/dist/acp-cli.js +7 -7
- package/dist/acp.d.ts +2 -2
- package/dist/acp.js +1 -1
- package/dist/{agent-CrPwqpLI.js → agent-DO8s7bDf.js} +168 -23
- package/dist/agent-DO8s7bDf.js.map +1 -0
- package/dist/agent.d.ts +2 -2
- package/dist/agent.js +4 -4
- package/dist/{anthropic-asnZVFS_.js → anthropic-B3hj9OMm.js} +32 -13
- package/dist/anthropic-B3hj9OMm.js.map +1 -0
- package/dist/{auth-C5YTniaq.js → auth-kqdSYLMU.js} +4 -4
- package/dist/{auth-C5YTniaq.js.map → auth-kqdSYLMU.js.map} +1 -1
- package/dist/{cache-telemetry-BhTryxFT.js → cache-telemetry-DzyfqSds.js} +87 -5
- package/dist/cache-telemetry-DzyfqSds.js.map +1 -0
- package/dist/chat/pure.d.ts +3 -3
- package/dist/chat.d.ts +42 -4
- package/dist/chat.d.ts.map +1 -1
- package/dist/chat.js +31 -3
- package/dist/chat.js.map +1 -1
- package/dist/context-transport-CTLvmkj8.js +84 -0
- package/dist/context-transport-CTLvmkj8.js.map +1 -0
- package/dist/contexts/daytona.d.ts +33 -4
- package/dist/contexts/daytona.d.ts.map +1 -1
- package/dist/contexts/daytona.js +136 -0
- package/dist/contexts/daytona.js.map +1 -1
- package/dist/contexts/docker.d.ts +1 -1
- package/dist/contexts/docker.d.ts.map +1 -1
- package/dist/contexts/docker.js +85 -2
- package/dist/contexts/docker.js.map +1 -1
- package/dist/contexts/e2b.d.ts +34 -4
- package/dist/contexts/e2b.d.ts.map +1 -1
- package/dist/contexts/e2b.js +92 -0
- package/dist/contexts/e2b.js.map +1 -1
- package/dist/contexts/sandbox.d.ts +1 -1
- package/dist/contexts/sandbox.js +4 -2
- package/dist/contexts/sandbox.js.map +1 -1
- package/dist/{contexts-o8y5B3Tm.js → contexts-DbMuUPjS.js} +92 -5
- package/dist/contexts-DbMuUPjS.js.map +1 -0
- package/dist/contexts.d.ts +4 -4
- package/dist/contexts.js +1 -1
- package/dist/eval.d.ts +1 -1
- package/dist/eval.js +3 -3
- package/dist/{exec-file-size-PXkr-MGA.js → exec-file-size-BRpoB6Io.js} +3 -32
- package/dist/exec-file-size-BRpoB6Io.js.map +1 -0
- package/dist/extensions.d.ts +1 -1
- package/dist/extensions.js +1 -1
- package/dist/headless.d.ts +1 -1
- package/dist/headless.js +4 -4
- package/dist/{index-DsPQbyUn.d.ts → index-B9jSo84a.d.ts} +2 -2
- package/dist/index-B9jSo84a.d.ts.map +1 -0
- package/dist/{index-CohO0oaX.d.ts → index-Bht3PKx6.d.ts} +5588 -5202
- package/dist/index-Bht3PKx6.d.ts.map +1 -0
- package/dist/index.d.ts +6 -6
- package/dist/index.js +12 -12
- package/dist/{login-CWwu9Sex.js → login-DRy_-rQh.js} +2 -2
- package/dist/{login-CWwu9Sex.js.map → login-DRy_-rQh.js.map} +1 -1
- package/dist/{mcp-Ct5tF4oj.js → mcp-DHKk_tLV.js} +77 -34
- package/dist/mcp-DHKk_tLV.js.map +1 -0
- package/dist/mcp.d.ts +2 -2
- package/dist/mcp.js +2 -2
- package/dist/{messages-Cpb4g_KV.js → messages-DHzFOdx_.js} +2 -2
- package/dist/{messages-Cpb4g_KV.js.map → messages-DHzFOdx_.js.map} +1 -1
- package/dist/{openai-compat-C77gOaHh.js → openai-compat-OI68avOl.js} +59 -16
- package/dist/openai-compat-OI68avOl.js.map +1 -0
- package/dist/output/stream-json.d.ts +1 -1
- package/dist/output/terminal.d.ts +1 -1
- package/dist/presets.d.ts +1 -1
- package/dist/presets.js +1 -1
- package/dist/prompt.d.ts +1 -1
- package/dist/prompt.js +14 -0
- package/dist/prompt.js.map +1 -1
- package/dist/providers/anthropic.d.ts +2 -2
- package/dist/providers/anthropic.js +2 -2
- package/dist/providers/arcee.d.ts +1 -1
- package/dist/providers/arcee.js +1 -1
- package/dist/providers/baseten.d.ts +1 -1
- package/dist/providers/baseten.js +1 -1
- package/dist/providers/cerebras.d.ts +1 -1
- package/dist/providers/cerebras.js +1 -1
- package/dist/providers/local.d.ts +1 -1
- package/dist/providers/local.js +1 -1
- package/dist/providers/openai-compat.d.ts +1 -1
- package/dist/providers/openai-compat.js +1 -1
- package/dist/providers/openai.d.ts +1 -1
- package/dist/providers/openai.js +2 -2
- package/dist/providers/openrouter.d.ts +1 -1
- package/dist/providers/openrouter.js +1 -1
- package/dist/providers/xai.d.ts +1 -1
- package/dist/providers/xai.js +1 -1
- package/dist/{providers-DnHPW-dL.js → providers-y_l5VkAZ.js} +3 -3
- package/dist/{providers-DnHPW-dL.js.map → providers-y_l5VkAZ.js.map} +1 -1
- package/dist/providers.d.ts +1 -1
- package/dist/providers.js +4 -4
- package/dist/{read-state-rDmfeLmz.js → read-state-CNyeMG7W.js} +7 -4
- package/dist/read-state-CNyeMG7W.js.map +1 -0
- package/dist/restate.d.ts +2 -2
- package/dist/restate.js +2 -2
- package/dist/restate.js.map +1 -1
- package/dist/{sandbox-CgjG2VvQ.d.ts → sandbox-DqwpKX18.d.ts} +14 -2
- package/dist/{sandbox-CgjG2VvQ.d.ts.map → sandbox-DqwpKX18.d.ts.map} +1 -1
- package/dist/session/sqlite.d.ts +1 -1
- package/dist/{session-DpDBnktP.js → session-DdT2xT_d.js} +2 -2
- package/dist/{session-DpDBnktP.js.map → session-DdT2xT_d.js.map} +1 -1
- package/dist/session.d.ts +1 -1
- package/dist/session.js +2 -2
- package/dist/shell-quote-BmnhZmdM.js +33 -0
- package/dist/shell-quote-BmnhZmdM.js.map +1 -0
- package/dist/skills.d.ts +1 -1
- package/dist/{stdio-loader-Ce68wUmM.js → stdio-DU3ljLqy.js} +8 -215
- package/dist/stdio-DU3ljLqy.js.map +1 -0
- package/dist/stdio-loader-9PnQWshg.js +217 -0
- package/dist/stdio-loader-9PnQWshg.js.map +1 -0
- package/dist/stream-queue-Cd9OJxl7.js +71 -0
- package/dist/stream-queue-Cd9OJxl7.js.map +1 -0
- package/dist/{system-prompt-BlsdjcUi.d.ts → system-prompt-MNVHatSD.d.ts} +15 -1
- package/dist/system-prompt-MNVHatSD.d.ts.map +1 -0
- package/dist/{tool-formatters-bZYz74qU.d.ts → tool-formatters-B0ZXWJTe.d.ts} +2 -2
- package/dist/{tool-formatters-bZYz74qU.d.ts.map → tool-formatters-B0ZXWJTe.d.ts.map} +1 -1
- package/dist/tools/fetch-url.d.ts +1 -1
- package/dist/tools/web-search.d.ts +1 -1
- package/dist/tools.d.ts +1 -1
- package/dist/tools.js +2 -2
- package/dist/{transcript-anchors-ZZYwCTjo.js → transcript-anchors-ChQH1fMm.js} +18 -8
- package/dist/transcript-anchors-ChQH1fMm.js.map +1 -0
- package/dist/{transcript-anchors-EBchHUMo.d.ts → transcript-anchors-yt0sGL0w.d.ts} +2 -2
- package/dist/{transcript-anchors-EBchHUMo.d.ts.map → transcript-anchors-yt0sGL0w.d.ts.map} +1 -1
- package/dist/tui.d.ts +3 -3
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +59 -7
- package/dist/tui.js.map +1 -1
- package/dist/{turn-operations-DygcPreU.d.ts → turn-operations-XlnBT7p9.d.ts} +3 -3
- package/dist/{turn-operations-DygcPreU.d.ts.map → turn-operations-XlnBT7p9.d.ts.map} +1 -1
- package/dist/types-BIarq1qE.js.map +1 -1
- package/dist/{types-BDccavwj.d.ts → types-DdZMQxfT.d.ts} +117 -2
- package/dist/types-DdZMQxfT.d.ts.map +1 -0
- package/dist/types.d.ts +3 -3
- package/dist/{xai-B2hIs5We.js → xai-DxdI27ds.js} +2 -2
- package/dist/{xai-B2hIs5We.js.map → xai-DxdI27ds.js.map} +1 -1
- package/docs/ARCHITECTURE.md +62 -4
- package/docs/CHAT.md +11 -4
- package/docs/RESTATE.md +1 -1
- package/docs/SKILL.md +21 -1
- package/docs/TUI.md +2 -0
- package/package.json +1 -1
- package/dist/agent-CrPwqpLI.js.map +0 -1
- package/dist/anthropic-asnZVFS_.js.map +0 -1
- package/dist/cache-telemetry-BhTryxFT.js.map +0 -1
- package/dist/contexts-o8y5B3Tm.js.map +0 -1
- package/dist/exec-file-size-PXkr-MGA.js.map +0 -1
- package/dist/index-CohO0oaX.d.ts.map +0 -1
- package/dist/index-DsPQbyUn.d.ts.map +0 -1
- package/dist/mcp-Ct5tF4oj.js.map +0 -1
- package/dist/openai-compat-C77gOaHh.js.map +0 -1
- package/dist/read-state-rDmfeLmz.js.map +0 -1
- package/dist/stdio-loader-Ce68wUmM.js.map +0 -1
- package/dist/system-prompt-BlsdjcUi.d.ts.map +0 -1
- package/dist/transcript-anchors-ZZYwCTjo.js.map +0 -1
- package/dist/types-BDccavwj.d.ts.map +0 -1
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
const FNV_OFFSET = 2166136261;
|
|
3
3
|
const FNV_PRIME = 16777619;
|
|
4
4
|
/**
|
|
5
|
+
* Smallest previous-prefix size the ratio test will judge. Below this the run
|
|
6
|
+
* has barely started (or the provider reports no cache at all) and the ratio is
|
|
7
|
+
* noise — the absolute floor still applies.
|
|
8
|
+
*/
|
|
9
|
+
const MIN_JUDGED_PREFIX_TOKENS = 1024;
|
|
10
|
+
/**
|
|
5
11
|
* FNV-1a-style 32-bit hash over UTF-16 code units. Pure, allocation-free,
|
|
6
12
|
* ~10 ns per KB. Cryptographic strength is irrelevant here — we only need
|
|
7
13
|
* change detection, and this has effectively zero collision risk for the
|
|
@@ -31,6 +37,7 @@ function fnv1a32(s) {
|
|
|
31
37
|
*/
|
|
32
38
|
function snapshotCacheDimensions(options) {
|
|
33
39
|
const toolsJson = JSON.stringify(options.tools ?? []);
|
|
40
|
+
const messages = options.messages ?? [];
|
|
34
41
|
return {
|
|
35
42
|
systemHash: fnv1a32(options.system),
|
|
36
43
|
systemBytes: options.system.length,
|
|
@@ -40,10 +47,57 @@ function snapshotCacheDimensions(options) {
|
|
|
40
47
|
thinking: options.thinking ?? "off",
|
|
41
48
|
thinkingBudget: options.thinkingBudget ?? 0,
|
|
42
49
|
taskBudget: options.taskBudget ?? 0,
|
|
43
|
-
effortHint: options.effortHint !== false
|
|
50
|
+
effortHint: options.effortHint !== false,
|
|
51
|
+
messageHashes: hashMessages(messages),
|
|
52
|
+
messageCount: messages.length
|
|
44
53
|
};
|
|
45
54
|
}
|
|
46
55
|
/**
|
|
56
|
+
* Hash each message independently, preserving order.
|
|
57
|
+
*
|
|
58
|
+
* Per-message rather than cumulative so the diff can tell an APPEND (healthy)
|
|
59
|
+
* from a REWRITE (a cache break) by comparing positionally — see
|
|
60
|
+
* {@link CacheDimensionSnapshot.messageHashes}.
|
|
61
|
+
*
|
|
62
|
+
* Folds field-by-field into a rolling FNV rather than `JSON.stringify`-ing the
|
|
63
|
+
* whole list at once: on a long run the transcript is hundreds of KB, and
|
|
64
|
+
* building one giant string every turn just to throw it away is the kind of
|
|
65
|
+
* overhead that gets telemetry ripped back out.
|
|
66
|
+
*
|
|
67
|
+
* Exported so hosts can stamp the same hashes onto their own spans.
|
|
68
|
+
*/
|
|
69
|
+
function hashMessages(messages) {
|
|
70
|
+
const out = [];
|
|
71
|
+
for (const message of messages) {
|
|
72
|
+
if (!message) {
|
|
73
|
+
out.push(0);
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
let h = mixString(FNV_OFFSET, message.role ?? "");
|
|
77
|
+
h = mixString(h, JSON.stringify(message.content) ?? "");
|
|
78
|
+
out.push(h >>> 0);
|
|
79
|
+
}
|
|
80
|
+
return out;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Index of the first message whose content differs, or -1 when one list is a
|
|
84
|
+
* pure prefix of the other (i.e. messages were only appended).
|
|
85
|
+
*/
|
|
86
|
+
function firstDivergentIndex(prev, curr) {
|
|
87
|
+
const shared = Math.min(prev.length, curr.length);
|
|
88
|
+
for (let i = 0; i < shared; i++) if (prev[i] !== curr[i]) return i;
|
|
89
|
+
return -1;
|
|
90
|
+
}
|
|
91
|
+
/** Mix a string into a running FNV-1a state. */
|
|
92
|
+
function mixString(seed, s) {
|
|
93
|
+
let h = seed;
|
|
94
|
+
for (let i = 0; i < s.length; i++) {
|
|
95
|
+
h ^= s.charCodeAt(i);
|
|
96
|
+
h = Math.imul(h, FNV_PRIME);
|
|
97
|
+
}
|
|
98
|
+
return h;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
47
101
|
* Compare two snapshots and return the list of dimensions whose bytes
|
|
48
102
|
* differ. The `details` map carries a short human-readable description per
|
|
49
103
|
* changed dimension (e.g. `system: 1024 → 1031 bytes`).
|
|
@@ -82,6 +136,11 @@ function diffCacheDimensions(prev, curr) {
|
|
|
82
136
|
changed.push("effortHint");
|
|
83
137
|
details.effortHint = `${prev.effortHint} → ${curr.effortHint}`;
|
|
84
138
|
}
|
|
139
|
+
const divergentAt = firstDivergentIndex(prev.messageHashes, curr.messageHashes);
|
|
140
|
+
if (divergentAt >= 0) {
|
|
141
|
+
changed.push("messagePrefix");
|
|
142
|
+
details.messagePrefix = `message[${divergentAt}] of ${prev.messageCount} → ${curr.messageCount} was rewritten in place — suspect compaction, stale-read elision, media age-out, or host-side history trimming`;
|
|
143
|
+
}
|
|
85
144
|
return {
|
|
86
145
|
changed,
|
|
87
146
|
details
|
|
@@ -117,7 +176,13 @@ function installCacheBreakLogger(hooks, options = {}) {
|
|
|
117
176
|
const log = options.log ?? ((line) => console.error(line));
|
|
118
177
|
const verbose = options.verbose === true;
|
|
119
178
|
const expectedReadAtLeast = options.expectedReadAtLeast ?? 1;
|
|
179
|
+
const expectedReadRatio = options.expectedReadRatio ?? .8;
|
|
120
180
|
let prev;
|
|
181
|
+
/**
|
|
182
|
+
* Size of the prefix the previous turn left cached (`cacheRead +
|
|
183
|
+
* cacheCreation`). Turn N+1 should read back at least this much.
|
|
184
|
+
*/
|
|
185
|
+
let previousPrefixTokens = 0;
|
|
121
186
|
let turnIndex = 0;
|
|
122
187
|
let pending;
|
|
123
188
|
function onTurnBefore(ctx) {
|
|
@@ -134,13 +199,14 @@ function installCacheBreakLogger(hooks, options = {}) {
|
|
|
134
199
|
turnId: ctx.turnId
|
|
135
200
|
};
|
|
136
201
|
}
|
|
137
|
-
function onTurnAfter(ctx) {
|
|
202
|
+
async function onTurnAfter(ctx) {
|
|
138
203
|
if (!pending || pending.turnId !== ctx.turnId) return;
|
|
139
204
|
const { snapshot: curr, turnIndex: tIdx } = pending;
|
|
140
205
|
pending = void 0;
|
|
141
206
|
if (prev && tIdx > 1 && typeof ctx.usage.cacheRead === "number") {
|
|
142
207
|
const cacheRead = ctx.usage.cacheRead;
|
|
143
|
-
|
|
208
|
+
const ratioFloor = expectedReadRatio > 0 && previousPrefixTokens >= MIN_JUDGED_PREFIX_TOKENS ? previousPrefixTokens * expectedReadRatio : 0;
|
|
209
|
+
if (cacheRead < expectedReadAtLeast || cacheRead < ratioFloor) {
|
|
144
210
|
const diff = diffCacheDimensions(prev, curr);
|
|
145
211
|
if (diff.changed.length > 0) log(formatBreakLine({
|
|
146
212
|
turn: tIdx,
|
|
@@ -149,8 +215,24 @@ function installCacheBreakLogger(hooks, options = {}) {
|
|
|
149
215
|
cacheCreation: ctx.usage.cacheCreation ?? 0,
|
|
150
216
|
diff
|
|
151
217
|
}));
|
|
218
|
+
try {
|
|
219
|
+
await hooks.callHook("cache:break", {
|
|
220
|
+
turn: tIdx,
|
|
221
|
+
turnId: ctx.turnId,
|
|
222
|
+
model: curr.model,
|
|
223
|
+
cacheRead,
|
|
224
|
+
cacheCreation: ctx.usage.cacheCreation ?? 0,
|
|
225
|
+
expectedAtLeast: Math.max(expectedReadAtLeast, Math.round(ratioFloor)),
|
|
226
|
+
rebilledTokens: Math.max(0, Math.round(previousPrefixTokens - cacheRead)),
|
|
227
|
+
changed: [...diff.changed],
|
|
228
|
+
details: { ...diff.details }
|
|
229
|
+
});
|
|
230
|
+
} catch (error) {
|
|
231
|
+
log(`cache-break: 'cache:break' handler threw: ${String(error)}`);
|
|
232
|
+
}
|
|
152
233
|
}
|
|
153
234
|
}
|
|
235
|
+
previousPrefixTokens = (ctx.usage.cacheRead ?? 0) + (ctx.usage.cacheCreation ?? 0);
|
|
154
236
|
prev = curr;
|
|
155
237
|
}
|
|
156
238
|
const unregisterBefore = hooks.hook("turn:before", onTurnBefore);
|
|
@@ -174,6 +256,6 @@ function formatVerboseLine(input) {
|
|
|
174
256
|
return `[zidane:cache] turn=${input.turn} turnId=${input.turnId} system=${hex(s.systemHash)}(${s.systemBytes}b) tools=${hex(s.toolsHash)}(${s.toolsCount}) model=${s.model} thinking=${s.thinking}/${s.thinkingBudget}${s.taskBudget ? `/task=${s.taskBudget}` : ""}`;
|
|
175
257
|
}
|
|
176
258
|
//#endregion
|
|
177
|
-
export { snapshotCacheDimensions as i, fnv1a32 as n,
|
|
259
|
+
export { snapshotCacheDimensions as a, installCacheBreakLogger as i, fnv1a32 as n, hashMessages as r, diffCacheDimensions as t };
|
|
178
260
|
|
|
179
|
-
//# sourceMappingURL=cache-telemetry-
|
|
261
|
+
//# sourceMappingURL=cache-telemetry-DzyfqSds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-telemetry-DzyfqSds.js","names":[],"sources":["../src/cache-telemetry.ts"],"sourcesContent":["/**\n * Per-dimension cache-break detection.\n *\n * The agent surfaces `cacheRead` / `cacheCreation` in {@link TurnUsage}, but\n * doesn't answer the load-bearing diagnostic question: *which* dimension\n * busted the cache? When `cacheCreation > 0` on turn N+1 with no obvious\n * reason, you want to know whether the system prompt, the tool list, the\n * thinking config, or the model id changed — without re-reading the loop\n * source.\n *\n * This module hashes each cache-affecting dimension at `turn:before`, then\n * on `turn:after` checks whether the latest turn read its share of the\n * cached prefix. If not, it diffs the previous turn's dimension hashes\n * against the current ones and logs the responsible dimension(s).\n *\n * Wire contract:\n *\n * - Install via {@link installCacheBreakLogger} on the agent's hook bus.\n * Returns an uninstall fn. Idempotent — calling install twice on the\n * same bus leaves two listeners; callers manage lifecycle.\n * - Output sink defaults to `console.error`; pass `log` to redirect into a\n * {@link Logger}, span attribute writer, or test buffer.\n * - Heuristic only: a missing cache read on turn 1 is expected (nothing\n * cached yet); the logger only reports from turn 2 onward.\n * - Pure helper {@link diffCacheDimensions} is exported for tests so the\n * diff logic can be exercised without standing up the loop.\n *\n * The dimensions tracked are the inputs the provider treats as part of the\n * cache key — `system`, `tools`, `model`, thinking config, and the message\n * PREFIX. Tools are hashed after `provider.formatTools`, so MCP catalogues\n * showing up mid-run also register as a break. Messages are hashed\n * per-message and compared positionally (`messageHashes` / the\n * `messagePrefix` dimension): appending — what every healthy turn does — is\n * deliberately silent, while an in-place rewrite of an earlier message\n * (compaction, stale-read elision, media age-out, host-side history trims)\n * reports the exact index that diverged.\n */\n\nimport type { Hookable } from 'hookable'\nimport type { AgentHooks } from './agent'\nimport type { StreamOptions } from './providers'\n\n// ---------------------------------------------------------------------------\n// Public types\n// ---------------------------------------------------------------------------\n\n/**\n * Snapshot of per-request dimensions that contribute to the provider-side\n * prompt cache key. Hashed at `turn:before` and stashed for diffing on the\n * next request.\n *\n * Hashes are FNV-1a 32-bit (cheap, no allocations on the hot path,\n * collision rate good enough for diff detection — we're not signing\n * anything). For verbose output the helper also captures byte lengths so\n * `system: 1024 → 1031` reads like a real diff line.\n */\nexport interface CacheDimensionSnapshot {\n /** Hash of `options.system` (with boundary marker preserved). */\n systemHash: number\n /** Byte length of `options.system`. */\n systemBytes: number\n /** Hash of the JSON-serialized `options.tools` array. */\n toolsHash: number\n /** Number of tools in the array. */\n toolsCount: number\n /** Model id. */\n model: string\n /** Thinking level — `'off'` when absent. */\n thinking: string\n /** Exact thinking budget — `0` when absent. */\n thinkingBudget: number\n /** Whole-task thinking budget (Anthropic adaptive-only) — `0` when absent. */\n taskBudget: number\n /** Whether the level-derived effort hint is emitted — `true` when absent. */\n effortHint: boolean\n /**\n * Per-message content hashes, in order. Compared POSITIONALLY against the\n * previous turn so that appending messages — what every healthy turn does —\n * is not mistaken for a rewrite. A single cumulative hash cannot make that\n * distinction: it changes on plain growth too, and would name this dimension\n * on literally every break, drowning the real culprit.\n *\n * Tracked because the expensive real-world breaks live here, not in the\n * request scaffold: compaction, stale-read elision, media age-out and history\n * trimming all rewrite the transcript mid-conversation, and none of them touch\n * `system`, `tools`, or the model id. A run can lose its entire transcript to\n * a cache miss with every other dimension reading perfectly stable.\n */\n messageHashes: readonly number[]\n /** Number of messages in the request. */\n messageCount: number\n}\n\n/** Result of {@link diffCacheDimensions}. */\nexport interface CacheDimensionDiff {\n /** Dimension names whose hashes differ between the two snapshots. */\n changed: readonly CacheDimensionName[]\n /** Per-dimension details — only filled for changed dimensions. */\n details: Readonly<Partial<Record<CacheDimensionName, string>>>\n}\n\n/** Cache-affecting dimension names. */\nexport type CacheDimensionName\n = | 'system'\n | 'tools'\n | 'model'\n | 'thinking'\n | 'thinkingBudget'\n | 'taskBudget'\n | 'effortHint'\n /**\n * Per-message hashes compared positionally over the shared range — see\n * {@link CacheDimensionSnapshot.messageHashes}. Appends are silent (every\n * healthy turn grows the list); any in-place rewrite of a shared position,\n * including the previous turn's last message, is reported with its index.\n */\n | 'messagePrefix'\n\n/**\n * Structured payload of the `'cache:break'` agent hook, emitted by\n * {@link installCacheBreakLogger} whenever a turn reads back materially less\n * prefix than the previous turn established (see `expectedReadAtLeast` /\n * `expectedReadRatio` on {@link CacheBreakLoggerOptions}).\n *\n * `changed` names the request dimensions that differ from the previous turn —\n * the culprit when the host rewrote something. An EMPTY `changed` is itself a\n * signal: the request was byte-stable and the provider still failed to serve\n * the prefix, which is the signature of TTL expiry or provider-side eviction\n * rather than anything the host did.\n */\nexport interface CacheBreakInfo {\n /**\n * 1-based turn index as counted by the detector — monotonic across the\n * INSTALLER'S lifetime, i.e. every `agent.run()` on this hook bus. It does\n * NOT reset per run the way `turn:after`'s `ctx.turn` does, so don't\n * correlate the two on any prompt after the first; use `turnId` for that.\n */\n turn: number\n turnId: string\n /** Model id of the request that broke — pair with a provider key to price the break. */\n model: string\n cacheRead: number\n cacheCreation: number\n /** The floor that tripped: `max(expectedReadAtLeast, ratio-derived floor)`. */\n expectedAtLeast: number\n /**\n * Approximate tokens re-billed by this break: the prefix the previous turn\n * had cached minus what this turn actually read back. That portion was\n * re-written at the cache-write rate (~1.25x input) instead of read at the\n * cache-read rate (~0.1x), so the extra spend is roughly\n * `1.15 x rebilledTokens` input-token equivalents. Approximate because the\n * healthy-turn counterfactual (the genuine new-transcript delta) is folded\n * into `cacheCreation` and cannot be separated out.\n */\n rebilledTokens: number\n /** Request dimensions that changed since the previous turn; empty ⇒ suspect TTL/eviction. */\n changed: CacheDimensionName[]\n /** Human-readable per-dimension diffs, keyed by the entries of `changed`. */\n details: Partial<Record<CacheDimensionName, string>>\n}\n\n// ---------------------------------------------------------------------------\n// Configuration\n// ---------------------------------------------------------------------------\n\nexport interface CacheBreakLoggerOptions {\n /**\n * Sink for log lines. Defaults to `console.error`. Use a {@link Logger} or\n * a test buffer here when you want the output to land somewhere other than\n * stderr.\n */\n log?: (line: string) => void\n /**\n * When `true`, emit a log line on EVERY turn (not just cache breaks) with\n * the per-dimension hashes. Useful for offline correlation; off by default\n * to keep the logger zero-noise on happy paths.\n */\n verbose?: boolean\n /**\n * Absolute floor for \"this turn missed cache\". The logger reports when\n * `cacheRead` falls below the threshold AND the dimensions differ from the\n * previous turn.\n *\n * Defaults to `1`, which on its own only catches TOTAL cache loss. That is not\n * the common failure: when the system prompt or the message prefix is\n * rewritten, `tools` + the static system block still match, so `cacheRead`\n * stays comfortably non-zero — pinned to a CONSTANT equal to that scaffold —\n * while the entire conversation re-bills at the cache-write rate. An\n * absolute-only threshold reports such a run as perfectly healthy.\n *\n * {@link CacheBreakLoggerOptions.expectedReadRatio} is the fix and is on by\n * default; this field remains as the absolute floor beneath it.\n */\n expectedReadAtLeast?: number\n /**\n * Detect PARTIAL-prefix breaks by comparing this turn's `cacheRead` against\n * the prefix the previous turn established (`cacheRead + cacheCreation`).\n * The conversation only grows, so a healthy turn reads back at least what the\n * one before it wrote; reading materially less means something at or before\n * the last message changed.\n *\n * Defaults to `0.8` — the slack absorbs tokenizer jitter and any uncached\n * dynamic system block, which is re-billed by design. Set `0` to disable and\n * restore the pre-6.3 absolute-only behavior.\n */\n expectedReadRatio?: number\n}\n\n// ---------------------------------------------------------------------------\n// Hashing\n// ---------------------------------------------------------------------------\n\nconst FNV_OFFSET = 0x811C9DC5\nconst FNV_PRIME = 0x01000193\n\n/**\n * Smallest previous-prefix size the ratio test will judge. Below this the run\n * has barely started (or the provider reports no cache at all) and the ratio is\n * noise — the absolute floor still applies.\n */\nconst MIN_JUDGED_PREFIX_TOKENS = 1024\n\n/**\n * FNV-1a-style 32-bit hash over UTF-16 code units. Pure, allocation-free,\n * ~10 ns per KB. Cryptographic strength is irrelevant here — we only need\n * change detection, and this has effectively zero collision risk for the\n * small number of dimensions tracked.\n *\n * Feeds the FULL char code into the mix (same as read-state's\n * `hashContent`) — masking to the low byte would collapse code points that\n * share a low byte, so a non-ASCII system-prompt change could hash\n * identically and silently hide a cache-dimension drift.\n *\n * Exported for tests; callers shouldn't typically import directly.\n */\nexport function fnv1a32(s: string): number {\n let h = FNV_OFFSET\n for (let i = 0; i < s.length; i++) {\n h ^= s.charCodeAt(i)\n // Multiply by FNV_PRIME mod 2^32, using `Math.imul` to keep within\n // 32-bit signed range (avoid >>> 0 ping-pong on every iteration).\n h = Math.imul(h, FNV_PRIME)\n }\n // Map signed → unsigned 32-bit so the printed hex is stable.\n return h >>> 0\n}\n\n/**\n * Build a {@link CacheDimensionSnapshot} from a `turn:before` payload.\n *\n * Pure — exported so hosts can compute snapshots outside the logger (e.g.\n * stamping them onto custom telemetry spans). The hash is deterministic on\n * byte-identical inputs.\n */\nexport function snapshotCacheDimensions(options: StreamOptions): CacheDimensionSnapshot {\n const toolsJson = JSON.stringify(options.tools ?? [])\n const messages = options.messages ?? []\n return {\n systemHash: fnv1a32(options.system),\n systemBytes: options.system.length,\n toolsHash: fnv1a32(toolsJson),\n toolsCount: Array.isArray(options.tools) ? options.tools.length : 0,\n model: options.model,\n thinking: options.thinking ?? 'off',\n thinkingBudget: options.thinkingBudget ?? 0,\n taskBudget: options.taskBudget ?? 0,\n effortHint: options.effortHint !== false,\n messageHashes: hashMessages(messages),\n messageCount: messages.length,\n }\n}\n\n/**\n * Hash each message independently, preserving order.\n *\n * Per-message rather than cumulative so the diff can tell an APPEND (healthy)\n * from a REWRITE (a cache break) by comparing positionally — see\n * {@link CacheDimensionSnapshot.messageHashes}.\n *\n * Folds field-by-field into a rolling FNV rather than `JSON.stringify`-ing the\n * whole list at once: on a long run the transcript is hundreds of KB, and\n * building one giant string every turn just to throw it away is the kind of\n * overhead that gets telemetry ripped back out.\n *\n * Exported so hosts can stamp the same hashes onto their own spans.\n */\nexport function hashMessages(messages: readonly { role: string, content: unknown }[]): number[] {\n const out: number[] = []\n for (const message of messages) {\n if (!message) {\n out.push(0)\n continue\n }\n let h = mixString(FNV_OFFSET, message.role ?? '')\n // `JSON.stringify` yields `undefined` (the value, not a string) for\n // undefined input — public export, so don't let a malformed message throw\n // inside a diagnostics helper.\n h = mixString(h, JSON.stringify(message.content) ?? '')\n out.push(h >>> 0)\n }\n return out\n}\n\n/**\n * Index of the first message whose content differs, or -1 when one list is a\n * pure prefix of the other (i.e. messages were only appended).\n */\nfunction firstDivergentIndex(prev: readonly number[], curr: readonly number[]): number {\n const shared = Math.min(prev.length, curr.length)\n for (let i = 0; i < shared; i++) {\n if (prev[i] !== curr[i])\n return i\n }\n return -1\n}\n\n/** Mix a string into a running FNV-1a state. */\nfunction mixString(seed: number, s: string): number {\n let h = seed\n for (let i = 0; i < s.length; i++) {\n h ^= s.charCodeAt(i)\n h = Math.imul(h, FNV_PRIME)\n }\n return h\n}\n\n// ---------------------------------------------------------------------------\n// Diffing\n// ---------------------------------------------------------------------------\n\n/**\n * Compare two snapshots and return the list of dimensions whose bytes\n * differ. The `details` map carries a short human-readable description per\n * changed dimension (e.g. `system: 1024 → 1031 bytes`).\n *\n * Pure / no I/O. Use this in tests to assert the diff logic; the logger\n * itself just formats and emits the result.\n */\nexport function diffCacheDimensions(\n prev: CacheDimensionSnapshot,\n curr: CacheDimensionSnapshot,\n): CacheDimensionDiff {\n const changed: CacheDimensionName[] = []\n const details: Partial<Record<CacheDimensionName, string>> = {}\n\n if (prev.systemHash !== curr.systemHash) {\n changed.push('system')\n details.system = `${prev.systemBytes} → ${curr.systemBytes} bytes (hash ${hex(prev.systemHash)} → ${hex(curr.systemHash)})`\n }\n if (prev.toolsHash !== curr.toolsHash) {\n changed.push('tools')\n details.tools = `${prev.toolsCount} → ${curr.toolsCount} tools (hash ${hex(prev.toolsHash)} → ${hex(curr.toolsHash)})`\n }\n if (prev.model !== curr.model) {\n changed.push('model')\n details.model = `${prev.model} → ${curr.model}`\n }\n if (prev.thinking !== curr.thinking) {\n changed.push('thinking')\n details.thinking = `${prev.thinking} → ${curr.thinking}`\n }\n if (prev.thinkingBudget !== curr.thinkingBudget) {\n changed.push('thinkingBudget')\n details.thinkingBudget = `${prev.thinkingBudget} → ${curr.thinkingBudget}`\n }\n if (prev.taskBudget !== curr.taskBudget) {\n changed.push('taskBudget')\n details.taskBudget = `${prev.taskBudget} → ${curr.taskBudget}`\n }\n if (prev.effortHint !== curr.effortHint) {\n changed.push('effortHint')\n details.effortHint = `${prev.effortHint} → ${curr.effortHint}`\n }\n // Reported last, mirroring the provider's tools → system → messages ordering:\n // a change here invalidates the least, a change in `tools` the most.\n //\n // Only a POSITIONAL divergence counts. Appending messages is what every\n // healthy turn does and must never be reported, or this dimension would name\n // itself on every single break and bury the real culprit.\n const divergentAt = firstDivergentIndex(prev.messageHashes, curr.messageHashes)\n if (divergentAt >= 0) {\n changed.push('messagePrefix')\n details.messagePrefix = `message[${divergentAt}] of ${prev.messageCount} → ${curr.messageCount} was rewritten in place`\n + ` — suspect compaction, stale-read elision, media age-out, or host-side history trimming`\n }\n\n return { changed, details }\n}\n\nfunction hex(n: number): string {\n return `0x${n.toString(16).padStart(8, '0')}`\n}\n\n// ---------------------------------------------------------------------------\n// Hook installer\n// ---------------------------------------------------------------------------\n\n/**\n * Install the cache-break logger on an agent's hook bus.\n *\n * Subscribes to `turn:before` (snapshot) + `turn:after` (compare with prior\n * snapshot, log breaks). Returns an `uninstall` fn that detaches both\n * listeners. Idempotent w.r.t. agent lifecycle — installs/uninstalls cleanly\n * across runs.\n *\n * Recommended setup:\n *\n * ```ts\n * const uninstall = installCacheBreakLogger(agent.hooks, {\n * log: line => logger.debug(line),\n * verbose: !!process.env.ZIDANE_DEBUG?.includes('cache'),\n * })\n * // ...\n * uninstall()\n * ```\n *\n * Performance: hashing runs on each `turn:before` and is bounded by the\n * input size (system + tools serialization). Disabled callers pay nothing\n * (don't install).\n */\nexport function installCacheBreakLogger(\n hooks: Hookable<AgentHooks>,\n options: CacheBreakLoggerOptions = {},\n): () => void {\n const log = options.log ?? ((line: string) => console.error(line))\n const verbose = options.verbose === true\n const expectedReadAtLeast = options.expectedReadAtLeast ?? 1\n const expectedReadRatio = options.expectedReadRatio ?? 0.8\n\n // Per-bus latest snapshot. Keyed implicitly by the bus instance —\n // installing on a fresh bus starts from empty. Across runs on the same\n // bus, the snapshot persists, which is what we want: the first turn of\n // run N+1 should hit cache if it shares a prefix with the last turn of\n // run N. The detector reports correctly across that boundary.\n let prev: CacheDimensionSnapshot | undefined\n /**\n * Size of the prefix the previous turn left cached (`cacheRead +\n * cacheCreation`). Turn N+1 should read back at least this much.\n */\n let previousPrefixTokens = 0\n let turnIndex = 0\n let pending: { snapshot: CacheDimensionSnapshot, turnIndex: number, turnId: string } | undefined\n\n function onTurnBefore(ctx: { turn: number, turnId: string, options: StreamOptions }): void {\n const curr = snapshotCacheDimensions(ctx.options)\n turnIndex += 1\n\n if (verbose) {\n log(formatVerboseLine({\n turn: turnIndex,\n turnId: ctx.turnId,\n snapshot: curr,\n }))\n }\n\n // Stash for the matching `turn:after`. We can't compute the diff here —\n // the cache-read result lands on `turn:after.usage`.\n pending = { snapshot: curr, turnIndex, turnId: ctx.turnId }\n }\n\n async function onTurnAfter(ctx: { turn: number, turnId: string, usage: { cacheRead?: number, cacheCreation?: number } }): Promise<void> {\n if (!pending || pending.turnId !== ctx.turnId)\n return\n const { snapshot: curr, turnIndex: tIdx } = pending\n pending = undefined\n\n // Skip break detection on providers that don't report `cacheRead` —\n // treating undefined as 0 would log a false break every turn on Codex,\n // Cerebras, or any host without a cache_read field. We can only diagnose\n // breaks when the provider tells us how much cache was actually used.\n if (prev && tIdx > 1 && typeof ctx.usage.cacheRead === 'number') {\n const cacheRead = ctx.usage.cacheRead\n // Below the absolute floor, OR materially short of the prefix the previous\n // turn already had cached. The second test is the one that catches a\n // partial break, where `cacheRead` is large but covers only the scaffold.\n const ratioFloor = expectedReadRatio > 0 && previousPrefixTokens >= MIN_JUDGED_PREFIX_TOKENS\n ? previousPrefixTokens * expectedReadRatio\n : 0\n if (cacheRead < expectedReadAtLeast || cacheRead < ratioFloor) {\n const diff = diffCacheDimensions(prev, curr)\n // The text line stays gated on an attributable dimension change (its\n // historical behavior); the typed hook fires on EVERY break — an\n // empty `changed` is the TTL-expiry / provider-eviction signature and\n // hosts (TUI chip, dashboards) want to see it.\n if (diff.changed.length > 0) {\n log(formatBreakLine({\n turn: tIdx,\n turnId: ctx.turnId,\n cacheRead,\n cacheCreation: ctx.usage.cacheCreation ?? 0,\n diff,\n }))\n }\n // Emission is side-effect-safe: this runs inside the loop's\n // `turn:after` dispatch, so a throwing consumer handler (a UI bug,\n // say) would otherwise unwind into the loop and abort the run — a\n // bad trade for an observational diagnostics module. Errors are\n // surfaced through the `log` channel instead of propagated.\n try {\n await hooks.callHook('cache:break', {\n turn: tIdx,\n turnId: ctx.turnId,\n model: curr.model,\n cacheRead,\n cacheCreation: ctx.usage.cacheCreation ?? 0,\n expectedAtLeast: Math.max(expectedReadAtLeast, Math.round(ratioFloor)),\n rebilledTokens: Math.max(0, Math.round(previousPrefixTokens - cacheRead)),\n changed: [...diff.changed],\n details: { ...diff.details },\n })\n }\n catch (error) {\n log(`cache-break: 'cache:break' handler threw: ${String(error)}`)\n }\n }\n }\n\n previousPrefixTokens = (ctx.usage.cacheRead ?? 0) + (ctx.usage.cacheCreation ?? 0)\n prev = curr\n }\n\n // Hookable's `.hook()` returns its own unregister fn — keep both so\n // `uninstall()` is symmetric with the install path and survives a\n // future hookable rename of `removeHook`.\n const unregisterBefore = hooks.hook('turn:before', onTurnBefore)\n const unregisterAfter = hooks.hook('turn:after', onTurnAfter)\n\n return () => {\n unregisterBefore()\n unregisterAfter()\n }\n}\n\n// ---------------------------------------------------------------------------\n// Formatting\n// ---------------------------------------------------------------------------\n\nfunction formatBreakLine(input: {\n turn: number\n turnId: string\n cacheRead: number\n cacheCreation: number\n diff: CacheDimensionDiff\n}): string {\n const names = input.diff.changed.join(', ')\n const details = input.diff.changed\n .map(d => ` ${d}: ${input.diff.details[d]}`)\n .join('\\n')\n return [\n `[zidane:cache-break] turn=${input.turn} turnId=${input.turnId} cacheRead=${input.cacheRead} cacheCreation=${input.cacheCreation}`,\n ` changed: ${names}`,\n details,\n ].join('\\n')\n}\n\nfunction formatVerboseLine(input: {\n turn: number\n turnId: string\n snapshot: CacheDimensionSnapshot\n}): string {\n const s = input.snapshot\n return `[zidane:cache] turn=${input.turn} turnId=${input.turnId} system=${hex(s.systemHash)}(${s.systemBytes}b) tools=${hex(s.toolsHash)}(${s.toolsCount}) model=${s.model} thinking=${s.thinking}/${s.thinkingBudget}${s.taskBudget ? `/task=${s.taskBudget}` : ''}`\n}\n"],"mappings":"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"}
|
package/dist/chat/pure.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $c as
|
|
2
|
-
import { $ as uniqueFilesFromReferences, A as buildUnifiedDiff, C as EditSummary, D as PreviewResult, E as InlineSegment, F as previewEditPayload, I as splitLines, J as SKILLS_TRIGGER, L as summarizeEditPayload, M as computeLineDiff, N as extractEditPayload, O as applyEditPayload, P as filetypeFromPath, Q as createFilesCompletionProvider, R as tokenize, S as EditHunkSummary, T as InlineDiff, X as uniqueSkillNamesFromReferences, Y as createSkillsCompletionProvider, Z as FILES_TRIGGER, _ as formatTaskSummary, a as MAX_TRANSCRIPT_EVENTS, at as CHATS_TRIGGER, b as DiffLine, c as finalizeStreamingMarkdown, ct as ChatReferenceScope, d as ageString, dt as uniqueChatIdsFromReferences, f as compactPath, ft as blendHsl, g as formatTaskStatus, h as formatDuration, i as turnAsText, it as createCommandsCompletionProvider, j as computeInlineDiff, k as buildContextualDiff, l as finalizeStreamingMarkdownForOwner, lt as chatReferenceTokensFromText, m as fmtTokens, n as deleteTurnSafely, o as TRANSCRIPT_TRIM_TO_EVENTS, ot as ChatReferenceData, p as fmtCost, pt as buildLinearRamp, q as summarizeOutcomes, r as truncateTurnsAt, rt as COMMANDS_TRIGGER, s as capTranscriptEvents, st as ChatReferenceEntry, t as countNeighbors, u as turnContextSize, ut as createChatsCompletionProvider, v as previewLine, w as HunkResolution, x as DiffOp, y as shortId } from "../turn-operations-
|
|
3
|
-
import { $ as selectableTurnIds, A as highlightSegments, C as SearchTurnResult, D as buildSessionSearchIndex, E as SessionSearchIndex, F as searchSessionIndex, I as searchSessionIndexAsync, J as EDIT_TOOL_NAMES, L as searchSessionTurns, M as searchSessionHistory, N as searchSessionHistoryIndex, O as buildSessionSearchIndexAsync, P as searchSessionHistoryIndexAsync, Q as isVisible, R as searchTurns, S as SearchSessionResult, T as SessionSearchExcerpt, X as isTurnHighlighted, Y as isEditErrorResult, Z as isUserBashEvent, _ as splitMarkdownCodeBlocks, a as formatToolCall, b as IndexedSearchTurn, c as splitPromptSegments, d as filterModelCatalog, f as indexOfEntry, g as normalizeMarkdownCodeFences, h as chunkMarkdownForRender, i as displayNameFor, j as searchHighlightRanges, k as filterSessionSearchCatalog, l as CatalogEntry, m as MarkdownSegment, n as ToolDisplayMeta, o as PromptSegment, p as MARKDOWN_RENDER_CHUNK_TARGET_BYTES, q as BASH_CALL_ID_PREFIX, r as ToolFormatLine, s as PromptSegmentRef, t as TOOL_DISPLAY, tt as turnSelectionOwnership, u as buildModelCatalog, v as HighlightRange, w as SessionHistoryMatch, x as SearchExcerpt, y as HighlightSegment, z as searchableTurnText } from "../tool-formatters-
|
|
1
|
+
import { $c as findActiveTrigger, Ad as ContextCategoryId, Dd as ContextBreakdownContributor, Ed as ContextBreakdownContributionContext, Fd as ContextMcpGroup, Gc as ActiveTrigger, Id as ContextSnapshot, Jc as CompletionProvider, Kc as CompletionContext, Ld as ContextUsageSplit, Md as ContextExtensionRow, Nd as ContextExtensionSection, Od as ContextBreakdownOptions, Pd as ContextItem, Qc as collectReferences, Rd as buildContextBreakdown, Td as ContextBreakdown, Yc as CompletionReference, Zc as applyInsert, al as CommandArgSuggestion, el as mergeReferences, jd as ContextExactCounts, kd as ContextCategory, qc as CompletionItem, rl as Command, tl as mergeSuggestions } from "../index-Bht3PKx6.js";
|
|
2
|
+
import { $ as uniqueFilesFromReferences, A as buildUnifiedDiff, C as EditSummary, D as PreviewResult, E as InlineSegment, F as previewEditPayload, I as splitLines, J as SKILLS_TRIGGER, L as summarizeEditPayload, M as computeLineDiff, N as extractEditPayload, O as applyEditPayload, P as filetypeFromPath, Q as createFilesCompletionProvider, R as tokenize, S as EditHunkSummary, T as InlineDiff, X as uniqueSkillNamesFromReferences, Y as createSkillsCompletionProvider, Z as FILES_TRIGGER, _ as formatTaskSummary, a as MAX_TRANSCRIPT_EVENTS, at as CHATS_TRIGGER, b as DiffLine, c as finalizeStreamingMarkdown, ct as ChatReferenceScope, d as ageString, dt as uniqueChatIdsFromReferences, f as compactPath, ft as blendHsl, g as formatTaskStatus, h as formatDuration, i as turnAsText, it as createCommandsCompletionProvider, j as computeInlineDiff, k as buildContextualDiff, l as finalizeStreamingMarkdownForOwner, lt as chatReferenceTokensFromText, m as fmtTokens, n as deleteTurnSafely, o as TRANSCRIPT_TRIM_TO_EVENTS, ot as ChatReferenceData, p as fmtCost, pt as buildLinearRamp, q as summarizeOutcomes, r as truncateTurnsAt, rt as COMMANDS_TRIGGER, s as capTranscriptEvents, st as ChatReferenceEntry, t as countNeighbors, u as turnContextSize, ut as createChatsCompletionProvider, v as previewLine, w as HunkResolution, x as DiffOp, y as shortId } from "../turn-operations-XlnBT7p9.js";
|
|
3
|
+
import { $ as selectableTurnIds, A as highlightSegments, C as SearchTurnResult, D as buildSessionSearchIndex, E as SessionSearchIndex, F as searchSessionIndex, I as searchSessionIndexAsync, J as EDIT_TOOL_NAMES, L as searchSessionTurns, M as searchSessionHistory, N as searchSessionHistoryIndex, O as buildSessionSearchIndexAsync, P as searchSessionHistoryIndexAsync, Q as isVisible, R as searchTurns, S as SearchSessionResult, T as SessionSearchExcerpt, X as isTurnHighlighted, Y as isEditErrorResult, Z as isUserBashEvent, _ as splitMarkdownCodeBlocks, a as formatToolCall, b as IndexedSearchTurn, c as splitPromptSegments, d as filterModelCatalog, f as indexOfEntry, g as normalizeMarkdownCodeFences, h as chunkMarkdownForRender, i as displayNameFor, j as searchHighlightRanges, k as filterSessionSearchCatalog, l as CatalogEntry, m as MarkdownSegment, n as ToolDisplayMeta, o as PromptSegment, p as MARKDOWN_RENDER_CHUNK_TARGET_BYTES, q as BASH_CALL_ID_PREFIX, r as ToolFormatLine, s as PromptSegmentRef, t as TOOL_DISPLAY, tt as turnSelectionOwnership, u as buildModelCatalog, v as HighlightRange, w as SessionHistoryMatch, x as SearchExcerpt, y as HighlightSegment, z as searchableTurnText } from "../tool-formatters-B0ZXWJTe.js";
|
|
4
4
|
export { type ActiveTrigger, BASH_CALL_ID_PREFIX, CHATS_TRIGGER, COMMANDS_TRIGGER, type CatalogEntry, type ChatReferenceData, type ChatReferenceEntry, type ChatReferenceScope, type Command, type CommandArgSuggestion, type CompletionContext, type CompletionItem, type CompletionProvider, type CompletionReference, type ContextBreakdown, type ContextBreakdownContributionContext, type ContextBreakdownContributor, type ContextBreakdownOptions, type ContextCategory, type ContextCategoryId, type ContextExactCounts, type ContextExtensionRow, type ContextExtensionSection, type ContextItem, type ContextMcpGroup, type ContextSnapshot, type ContextUsageSplit, type DiffLine, type DiffOp, EDIT_TOOL_NAMES, type EditHunkSummary, type EditSummary, FILES_TRIGGER, type HighlightRange, type HighlightSegment, type HunkResolution, type IndexedSearchTurn, type InlineDiff, type InlineSegment, MARKDOWN_RENDER_CHUNK_TARGET_BYTES, MAX_TRANSCRIPT_EVENTS, type MarkdownSegment, type PreviewResult, type PromptSegment, type PromptSegmentRef, SKILLS_TRIGGER, type SearchExcerpt, type SearchSessionResult, type SearchTurnResult, type SessionHistoryMatch, type SessionSearchExcerpt, type SessionSearchIndex, TOOL_DISPLAY, TRANSCRIPT_TRIM_TO_EVENTS, type ToolDisplayMeta, type ToolFormatLine, ageString, applyEditPayload, applyInsert, blendHsl, buildContextBreakdown, buildContextualDiff, buildLinearRamp, buildModelCatalog, buildSessionSearchIndex, buildSessionSearchIndexAsync, buildUnifiedDiff, capTranscriptEvents, chatReferenceTokensFromText, chunkMarkdownForRender, collectReferences, compactPath, computeInlineDiff, computeLineDiff, countNeighbors, createChatsCompletionProvider, createCommandsCompletionProvider, createFilesCompletionProvider, createSkillsCompletionProvider, deleteTurnSafely, displayNameFor, extractEditPayload, filetypeFromPath, filterModelCatalog, filterSessionSearchCatalog, finalizeStreamingMarkdown, finalizeStreamingMarkdownForOwner, findActiveTrigger, fmtCost, fmtTokens, formatDuration, formatTaskStatus, formatTaskSummary, formatToolCall, highlightSegments, indexOfEntry, isEditErrorResult, isTurnHighlighted, isUserBashEvent, isVisible, mergeReferences, mergeSuggestions, normalizeMarkdownCodeFences, previewEditPayload, previewLine, searchHighlightRanges, searchSessionHistory, searchSessionHistoryIndex, searchSessionHistoryIndexAsync, searchSessionIndex, searchSessionIndexAsync, searchSessionTurns, searchTurns, searchableTurnText, selectableTurnIds, shortId, splitLines, splitMarkdownCodeBlocks, splitPromptSegments, summarizeEditPayload, summarizeOutcomes, tokenize, truncateTurnsAt, turnAsText, turnContextSize, turnSelectionOwnership, uniqueChatIdsFromReferences, uniqueFilesFromReferences, uniqueSkillNamesFromReferences };
|
package/dist/chat.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { $c as
|
|
2
|
-
import { $ as KEYBINDING_KEY_COL_WIDTH, A as resolveStorageDirs, B as loadState, C as ResolvedPaths, D as StorageDirs, E as ResolveStorageDirsOptions, F as createStateStore, G as titleFromTurns, H as saveState, I as deriveSessionTitle, J as updateToolEventOutcomes, K as toolCallPreview, L as eventsFromTurns, M as StateStoreApi, N as TuiState, O as StorageMode, P as compactSummaryEvent, Q as KEYBINDING_DEF_BY_ACTION, R as lastContextSizeFromTurns, S as ResolvedConfig, T as resolveStoragePaths, U as stripSpawnTokensLine, V as marginTopFor, W as sumRunCosts, X as DEFAULT_KEYBINDINGS, Y as usageByModel, Z as KEYBINDING_DEFS, _ as discoverProjectMcps, _t as EMPTY_HINTS, a as SessionExportTarget, at as ResolvedExtensionKeybinding, b as ChatOptions, bt as hintsLength, c as writeSessionExport, ct as groupBindings, d as useEnabledToggleSet, dt as mergeKeybindings, et as KeyAction, f as DiscoveredMcp, ft as parseBindingSpec, g as defaultMcpsConfigPaths, gt as stripJsonComments, h as buildMcpServers, ht as resolveExtensionKeybindings, i as SessionExportFormat, it as ParsedBinding, j as ModelUsageSummary, k as StorageSlot, l as EnabledAllowlistKey, lt as keybindingsPath, m as DiscoveryResult, mt as readKeybindingsRaw, n as computeTurnAnchors, nt as KeyBindingSection, o as renderSession, ot as ensureKeybindingsFile, p as DiscoveryError, pt as readKeybindings, q as toolResultText, r as SessionExportAnchor, rt as KeyBindings, s as resolveSessionExportTarget, st as formatBindingForDisplay, t as TranscriptItem, tt as KeyBindingDef, u as EnabledToggleSet, ut as matchesBinding, v as parseMcpsFile, vt as Hint, w as resolveConfig, x as ProviderRegistry, xt as truncateTrailing, y as AutoUpdateConfig, yt as clipHintsToWidth, z as listSessionMeta } from "./transcript-anchors-
|
|
3
|
-
import { $ as uniqueFilesFromReferences, A as buildUnifiedDiff, B as buildEditOutcomesAnnotation, C as EditSummary, D as PreviewResult, E as InlineSegment, F as previewEditPayload, G as rewriteMultiEditHeader, H as mergeApprovalAndBodyOutcomes, I as splitLines, J as SKILLS_TRIGGER, K as stripEditOutcomesAnnotation, L as summarizeEditPayload, M as computeLineDiff, N as extractEditPayload, O as applyEditPayload, P as filetypeFromPath, Q as createFilesCompletionProvider, R as tokenize, S as EditHunkSummary, T as InlineDiff, U as parseEditOutcomesFromResult, V as maskToOutcomeKinds, W as resolveApprovalForPayload, X as uniqueSkillNamesFromReferences, Y as createSkillsCompletionProvider, Z as FILES_TRIGGER, _ as formatTaskSummary, a as MAX_TRANSCRIPT_EVENTS, at as CHATS_TRIGGER, b as DiffLine, c as finalizeStreamingMarkdown, ct as ChatReferenceScope, d as ageString, dt as uniqueChatIdsFromReferences, et as FileEntry, f as compactPath, ft as blendHsl, g as formatTaskStatus, h as formatDuration, i as turnAsText, it as createCommandsCompletionProvider, j as computeInlineDiff, k as buildContextualDiff, l as finalizeStreamingMarkdownForOwner, lt as chatReferenceTokensFromText, m as fmtTokens, n as deleteTurnSafely, nt as listProjectFiles, o as TRANSCRIPT_TRIM_TO_EVENTS, ot as ChatReferenceData, p as fmtCost, pt as buildLinearRamp, q as summarizeOutcomes, r as truncateTurnsAt, rt as COMMANDS_TRIGGER, s as capTranscriptEvents, st as ChatReferenceEntry, t as countNeighbors, tt as ListProjectFilesOptions, u as turnContextSize, ut as createChatsCompletionProvider, v as previewLine, w as HunkResolution, x as DiffOp, y as shortId, z as ResolvedApproval } from "./turn-operations-
|
|
4
|
-
import { $ as selectableTurnIds, A as highlightSegments, B as ApprovalDecision, C as SearchTurnResult, D as buildSessionSearchIndex, E as SessionSearchIndex, F as searchSessionIndex, G as useSafeModeActions, H as RequestApproval, I as searchSessionIndexAsync, K as useSafeModeQueue, L as searchSessionTurns, M as searchSessionHistory, N as searchSessionHistoryIndex, O as buildSessionSearchIndexAsync, P as searchSessionHistoryIndexAsync, Q as isVisible, R as searchTurns, S as SearchSessionResult, T as SessionSearchExcerpt, U as SafeModeActions, V as ApprovalRequest, W as SafeModeProvider, X as isTurnHighlighted, Y as isEditErrorResult, _ as splitMarkdownCodeBlocks, a as formatToolCall, b as IndexedSearchTurn, c as splitPromptSegments, d as filterModelCatalog, et as selectionAfterTurnRemoval, f as indexOfEntry, g as normalizeMarkdownCodeFences, h as chunkMarkdownForRender, i as displayNameFor, j as searchHighlightRanges, k as filterSessionSearchCatalog, l as CatalogEntry, m as MarkdownSegment, n as ToolDisplayMeta, o as PromptSegment, p as MARKDOWN_RENDER_CHUNK_TARGET_BYTES, r as ToolFormatLine, s as PromptSegmentRef, t as TOOL_DISPLAY, tt as turnSelectionOwnership, u as buildModelCatalog, v as HighlightRange, w as SessionHistoryMatch, x as SearchExcerpt, y as HighlightSegment, z as searchableTurnText } from "./tool-formatters-
|
|
1
|
+
import { $c as findActiveTrigger, $i as mergeContributions, $m as Session, $u as detectAuth, Ac as Theme, Ad as ContextCategoryId, Al as PRESENT_PLAN_TOOL, Ao as ExtensionProviderMiddleware, Au as EditHunk, B as McpCredentialStore, Bc as patchInlineGhost, Bi as AgentHooks, Bl as QuestionRequest, Bu as ToolCallDisplay, Ca as discoverExtensions, Cd as effectiveContextWindow, Cl as AnswerValue, Co as ExtensionMcpConfigTransform, Cu as DEFAULT_BUDGET_EXCLUDE_TOOLS, Da as scanExtensionDirectories, Dc as DEFAULT_THEME, Dd as ContextBreakdownContributor, Dl as InteractionResponse, Do as ExtensionPaths, Du as resolveAgentId, Ec as ChipColorMap, Ed as ContextBreakdownContributionContext, El as InteractionRequest, Eo as ExtensionOrderedContribution, Ep as AutoCompact, Eu as accentColor, Fc as resolveTheme, Fd as ContextMcpGroup, Fl as PlanResponse, Fo as ExtensionSkillPolicy, Fu as Picked, Gc as ActiveTrigger, Gl as buildResumedToolResultsTurn, Go as ExtensionToolResultMetadataRegistration, Gu as filterChainFallbacks, Hc as tokenEndingAtCursor, Hl as QuestionType, Hu as buildRunModel, Ic as InlineAutocompleteContext, Id as ContextSnapshot, Il as PlanStep, Io as ExtensionSource, Iu as Screen, Jc as CompletionProvider, Ji as buildExtensionPreset, Jl as makeRequestInteraction, Ju as sanitizeModelChain, Kc as CompletionContext, Ki as BuildExtensionRegistryOptions, Kl as createInteractionTools, Km as SkillConfig, Ku as providerKeySetChanged, Lc as InlineAutocompleteProvider, Ld as ContextUsageSplit, Ll as Question, Lo as ExtensionStorageScope, Lu as SessionMeta, Mc as ThemeSelect, Md as ContextExtensionRow, Mi as generateStructuredData, Ml as PlanDecision, Mo as ExtensionRunTransform, Mu as EditOutcomeKind, Na as defineExtension, Nc as ThemeSurfaces, Nd as ContextExtensionSection, Nl as PlanPayload, No as ExtensionRuntimeEnv, Nu as EditPayload, Oc as SyntaxStyles, Od as ContextBreakdownOptions, Ol as InteractionsActions, Oo as ExtensionPermission, Ou as singleAgentRegistry, Pc as resolveChipColor, Pd as ContextItem, Pl as PlanRequest, Pm as ToolDef, Po as ExtensionSessionStateSurface, Pu as Owner, Qc as collectReferences, Qi as filterExtensionRegistry, Ql as useInteractionsQueue, Qo as TuiContributions, Qu as ProviderKey, Rc as InlineGhost, Rd as buildContextBreakdown, Rl as QuestionChoice, Ro as ExtensionStorageSurface, Ru as Settings, Sa as defaultExtensionScanPaths, Sd as OUTPUT_RESERVE_TOKENS, Sl as ASK_USER_TOOL, So as ExtensionManifest, Su as DEFAULT_AGENT_ID, Tc as ChipColor, Td as ContextBreakdown, Tl as CreateInteractionToolsOptions, Tu as PLAN_AGENT, Uc as CompletionState, Ul as SelectQuestion, Uu as chainPositionOf, Vc as resolveInlineSuggestion, Vl as QuestionResponse, Vp as McpToolSchema, Vu as ModelChainEntry, Wc as useCompletion, Wl as TextQuestion, Wu as chainsEqual, Xd as Provider, Xi as composeExtensionPreset, Xl as serializeInteractionResponse, Xm as SkillsConfig, Xo as GuiContributions, Xu as AuthMethod, Yc as CompletionReference, Yi as buildExtensionRegistry, Yl as pendingInteractionsFromTurns, Yu as toggleChainEntry, Zc as applyInsert, Zi as disposeExtensionRegistry, Zl as useInteractionsActions, Zo as LoadedExtension, Zu as ProviderAuth, _d as piIdOf, _o as ExtensionFooterHint, _u as AgentAccent, ad as anthropicDescriptor, bd as AutoCompactDecision, bl as executeCommand, bo as ExtensionKeybinding, bu as BUILD_AGENT, cd as enabledModelOptions, co as ExtensionApiVersion, dd as localDescriptor, dl as CommandOutputBlock, do as ExtensionContext, ea as partitionExtensionCatalog, ed as BUILTIN_PROVIDERS, el as mergeReferences, fd as modelOptionsFor, gd as openrouterDescriptor, gl as CommandStepFn, go as ExtensionDefinition, hd as openaiDescriptor, hl as CommandStepContext, id as ProviderDescriptor, il as CommandAgentResult, jc as ThemeColors, jd as ContextExactCounts, ji as GenerateStructuredDataOptions, jl as PendingInteractionEntry, jo as ExtensionRegistry, ju as EditOutcome, kc as SyntaxTokenStyle, kd as ContextCategory, kl as InteractionsProvider, ku as EditDiffDisplay, lc as SourcedScanPath, ld as getContextWindow, lm as SessionTurn, lo as ExtensionBehaviorTransform, md as modelsForDescriptor, ml as CommandStep, nd as ModelInfo, od as cerebrasDescriptor, pd as modelSupportsReasoning, po as ExtensionContributions, qc as CompletionItem, ql as isInteractionTool, qu as restoreChainFallbacks, rd as ModelOption, rh as SessionStore, rl as Command, sd as credKeyOf, sl as CommandExecution, so as EMPTY_EXTENSION_REGISTRY, t as Preset, td as CustomField, tl as mergeSuggestions, ud as getModelInfo, ul as CommandInvocation, uo as ExtensionCapability, vd as restoreModelOptions, vo as ExtensionGuiPanel, vu as AgentProfile, wa as inlineLoadedExtension, wc as BUILTIN_THEMES, wd as shouldAutoCompact, wl as ConfirmQuestion, wo as ExtensionModal, wu as DEFAULT_PERSIST_EXCLUDE_TOOLS, xd as AutoCompactInput, xl as parseCommandInvocation, xo as ExtensionKeybindingDispatchContext, xu as BUILTIN_AGENTS, yd as AUTO_COMPACT_MIN_GROWTH_FRACTION, yl as commandSteps, yu as AgentRegistry, z as McpCredentialEntry, zc as createPathAutocompleteProvider, zi as AgentHookMap, zl as QuestionPayload, zo as ExtensionToolCatalogTransform, zp as McpServerConfig, zu as StreamEvent } from "./index-Bht3PKx6.js";
|
|
2
|
+
import { $ as KEYBINDING_KEY_COL_WIDTH, A as resolveStorageDirs, B as loadState, C as ResolvedPaths, D as StorageDirs, E as ResolveStorageDirsOptions, F as createStateStore, G as titleFromTurns, H as saveState, I as deriveSessionTitle, J as updateToolEventOutcomes, K as toolCallPreview, L as eventsFromTurns, M as StateStoreApi, N as TuiState, O as StorageMode, P as compactSummaryEvent, Q as KEYBINDING_DEF_BY_ACTION, R as lastContextSizeFromTurns, S as ResolvedConfig, T as resolveStoragePaths, U as stripSpawnTokensLine, V as marginTopFor, W as sumRunCosts, X as DEFAULT_KEYBINDINGS, Y as usageByModel, Z as KEYBINDING_DEFS, _ as discoverProjectMcps, _t as EMPTY_HINTS, a as SessionExportTarget, at as ResolvedExtensionKeybinding, b as ChatOptions, bt as hintsLength, c as writeSessionExport, ct as groupBindings, d as useEnabledToggleSet, dt as mergeKeybindings, et as KeyAction, f as DiscoveredMcp, ft as parseBindingSpec, g as defaultMcpsConfigPaths, gt as stripJsonComments, h as buildMcpServers, ht as resolveExtensionKeybindings, i as SessionExportFormat, it as ParsedBinding, j as ModelUsageSummary, k as StorageSlot, l as EnabledAllowlistKey, lt as keybindingsPath, m as DiscoveryResult, mt as readKeybindingsRaw, n as computeTurnAnchors, nt as KeyBindingSection, o as renderSession, ot as ensureKeybindingsFile, p as DiscoveryError, pt as readKeybindings, q as toolResultText, r as SessionExportAnchor, rt as KeyBindings, s as resolveSessionExportTarget, st as formatBindingForDisplay, t as TranscriptItem, tt as KeyBindingDef, u as EnabledToggleSet, ut as matchesBinding, v as parseMcpsFile, vt as Hint, w as resolveConfig, x as ProviderRegistry, xt as truncateTrailing, y as AutoUpdateConfig, yt as clipHintsToWidth, z as listSessionMeta } from "./transcript-anchors-yt0sGL0w.js";
|
|
3
|
+
import { $ as uniqueFilesFromReferences, A as buildUnifiedDiff, B as buildEditOutcomesAnnotation, C as EditSummary, D as PreviewResult, E as InlineSegment, F as previewEditPayload, G as rewriteMultiEditHeader, H as mergeApprovalAndBodyOutcomes, I as splitLines, J as SKILLS_TRIGGER, K as stripEditOutcomesAnnotation, L as summarizeEditPayload, M as computeLineDiff, N as extractEditPayload, O as applyEditPayload, P as filetypeFromPath, Q as createFilesCompletionProvider, R as tokenize, S as EditHunkSummary, T as InlineDiff, U as parseEditOutcomesFromResult, V as maskToOutcomeKinds, W as resolveApprovalForPayload, X as uniqueSkillNamesFromReferences, Y as createSkillsCompletionProvider, Z as FILES_TRIGGER, _ as formatTaskSummary, a as MAX_TRANSCRIPT_EVENTS, at as CHATS_TRIGGER, b as DiffLine, c as finalizeStreamingMarkdown, ct as ChatReferenceScope, d as ageString, dt as uniqueChatIdsFromReferences, et as FileEntry, f as compactPath, ft as blendHsl, g as formatTaskStatus, h as formatDuration, i as turnAsText, it as createCommandsCompletionProvider, j as computeInlineDiff, k as buildContextualDiff, l as finalizeStreamingMarkdownForOwner, lt as chatReferenceTokensFromText, m as fmtTokens, n as deleteTurnSafely, nt as listProjectFiles, o as TRANSCRIPT_TRIM_TO_EVENTS, ot as ChatReferenceData, p as fmtCost, pt as buildLinearRamp, q as summarizeOutcomes, r as truncateTurnsAt, rt as COMMANDS_TRIGGER, s as capTranscriptEvents, st as ChatReferenceEntry, t as countNeighbors, tt as ListProjectFilesOptions, u as turnContextSize, ut as createChatsCompletionProvider, v as previewLine, w as HunkResolution, x as DiffOp, y as shortId, z as ResolvedApproval } from "./turn-operations-XlnBT7p9.js";
|
|
4
|
+
import { $ as selectableTurnIds, A as highlightSegments, B as ApprovalDecision, C as SearchTurnResult, D as buildSessionSearchIndex, E as SessionSearchIndex, F as searchSessionIndex, G as useSafeModeActions, H as RequestApproval, I as searchSessionIndexAsync, K as useSafeModeQueue, L as searchSessionTurns, M as searchSessionHistory, N as searchSessionHistoryIndex, O as buildSessionSearchIndexAsync, P as searchSessionHistoryIndexAsync, Q as isVisible, R as searchTurns, S as SearchSessionResult, T as SessionSearchExcerpt, U as SafeModeActions, V as ApprovalRequest, W as SafeModeProvider, X as isTurnHighlighted, Y as isEditErrorResult, _ as splitMarkdownCodeBlocks, a as formatToolCall, b as IndexedSearchTurn, c as splitPromptSegments, d as filterModelCatalog, et as selectionAfterTurnRemoval, f as indexOfEntry, g as normalizeMarkdownCodeFences, h as chunkMarkdownForRender, i as displayNameFor, j as searchHighlightRanges, k as filterSessionSearchCatalog, l as CatalogEntry, m as MarkdownSegment, n as ToolDisplayMeta, o as PromptSegment, p as MARKDOWN_RENDER_CHUNK_TARGET_BYTES, r as ToolFormatLine, s as PromptSegmentRef, t as TOOL_DISPLAY, tt as turnSelectionOwnership, u as buildModelCatalog, v as HighlightRange, w as SessionHistoryMatch, x as SearchExcerpt, y as HighlightSegment, z as searchableTurnText } from "./tool-formatters-B0ZXWJTe.js";
|
|
5
5
|
import { Hookable } from "hookable";
|
|
6
6
|
import { spawn } from "node:child_process";
|
|
7
7
|
import { OAuthCredentials, OAuthDeviceCodeInfo, OAuthPrompt, OAuthPrompt as OAuthPrompt$1, OAuthSelectPrompt } from "@earendil-works/pi-ai/oauth";
|
|
@@ -1078,6 +1078,16 @@ interface BuildHintsOptions {
|
|
|
1078
1078
|
* row so it's the first to drop when the terminal narrows.
|
|
1079
1079
|
*/
|
|
1080
1080
|
updateHint: Hint | null;
|
|
1081
|
+
/**
|
|
1082
|
+
* Pre-built prompt-cache toast, non-null only for a few seconds after a
|
|
1083
|
+
* `'cache:break'` hook fired (the host owns the visibility timer and the
|
|
1084
|
+
* severity split): warn-colored `⚡ cache break · <culprit> · +Nk tok · ~$0.48`
|
|
1085
|
+
* for attributable breaks, dim `⚡ cache expired · +Nk tok · ~$0.48` for
|
|
1086
|
+
* byte-stable TTL expiry — routine across human think-time, so it must not
|
|
1087
|
+
* cry wolf. Sits beside `updateHint` at the droppable end of the row: a
|
|
1088
|
+
* transient cost signal, not an action.
|
|
1089
|
+
*/
|
|
1090
|
+
cacheBreakHint?: Hint | null;
|
|
1081
1091
|
/**
|
|
1082
1092
|
* Sessions-screen list scope — `true` when the list spans all
|
|
1083
1093
|
* projects. Drives the `tab` hint's label, which advertises the scope
|
|
@@ -2539,6 +2549,34 @@ declare function renderActiveTodoAnchor(todos: readonly TodoItem[], options?: Ac
|
|
|
2539
2549
|
* Optional chat-layer hook that keeps the live `todowrite` list visible in the
|
|
2540
2550
|
* dynamic system prompt. It reads only live todos, never the archive, so an
|
|
2541
2551
|
* auto-cleared completed plan is not reintroduced on later turns.
|
|
2552
|
+
*
|
|
2553
|
+
* ## Prompt-cache cost — read before enabling
|
|
2554
|
+
*
|
|
2555
|
+
* This writes per-turn state into the system prompt, and the system prompt sits
|
|
2556
|
+
* ABOVE the entire conversation in the provider's cache prefix (Anthropic hashes
|
|
2557
|
+
* tools → system → messages, cumulatively). So every time the rendered anchor
|
|
2558
|
+
* changes by a single byte, the whole transcript stops matching the cache and
|
|
2559
|
+
* re-bills at the cache-write rate; only `tools` and the static system block
|
|
2560
|
+
* survive.
|
|
2561
|
+
*
|
|
2562
|
+
* That is an acceptable trade only because the anchor changes *rarely* — once
|
|
2563
|
+
* per `todowrite`, which in practice is a small fraction of turns. Two rules
|
|
2564
|
+
* follow, and breaking either one turns that occasional cost into a per-turn
|
|
2565
|
+
* one:
|
|
2566
|
+
*
|
|
2567
|
+
* 1. Never add anything to the anchor that ticks on its own — no counters, no
|
|
2568
|
+
* timestamps, no elapsed times, no per-turn indices.
|
|
2569
|
+
* 2. The render must stay a pure function of the todo list.
|
|
2570
|
+
* `renderActiveTodoAnchor` is deterministic today, so identical todos emit
|
|
2571
|
+
* identical bytes; keep it that way. Note this does NOT cover reordering —
|
|
2572
|
+
* todo order is semantically meaningful (it is the plan), so a reorder is
|
|
2573
|
+
* a real state change and costs one re-bill like any other `todowrite`.
|
|
2574
|
+
*
|
|
2575
|
+
* Moving the anchor onto the newest message instead does NOT avoid this: it is
|
|
2576
|
+
* wire-only, so the message that carried last turn's anchor re-renders without
|
|
2577
|
+
* it, and the prefix diverges at that point just the same. The only injection
|
|
2578
|
+
* that is genuinely free is one persisted into the transcript as immutable
|
|
2579
|
+
* history.
|
|
2542
2580
|
*/
|
|
2543
2581
|
declare function createActiveTodoAnchorHooks(options?: ActiveTodoAnchorOptions): AgentHookMap;
|
|
2544
2582
|
//#endregion
|
package/dist/chat.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","names":[],"sources":["../src/tools/read-chat-turns.ts","../src/chat/agent-prompt.ts","../src/chat/agents-md.ts","../src/chat/auto-compact.ts","../src/chat/auto-update.ts","../src/chat/auto-update-cli.ts","../src/chat/auto-update-hook.ts","../src/chat/boot-profiler.ts","../src/chat/browser.ts","../src/chat/claude-import.ts","../src/chat/config-context.tsx","../src/chat/credentials.ts","../src/chat/discovery-context.tsx","../src/chat/discovery-slot.ts","../src/chat/footer-hints.ts","../src/chat/generate-title.ts","../src/chat/mcp-auth-state.ts","../src/chat/mcp-auth-context.tsx","../src/chat/mcp-credentials.ts","../src/chat/mcp-rows.ts","../src/chat/mcp-tool-toggle.ts","../src/chat/mcp-tools-cache.ts","../src/chat/mcps-write.ts","../src/chat/oauth.ts","../src/chat/oauth-redirect.ts","../src/chat/path-display.ts","../src/chat/project-root.ts","../src/chat/project-user-paths.ts","../src/chat/safe-mode.ts","../src/chat/settings-context.tsx","../src/chat/skills-discovery.ts","../src/chat/streaming.ts","../src/chat/theme-context.tsx","../src/chat/themes/catppuccin.ts","../src/chat/themes/gruvbox.ts","../src/chat/themes/vaporwave.ts","../src/chat/todos.ts","../src/chat/todo-anchor.ts"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat.d.ts","names":[],"sources":["../src/tools/read-chat-turns.ts","../src/chat/agent-prompt.ts","../src/chat/agents-md.ts","../src/chat/auto-compact.ts","../src/chat/auto-update.ts","../src/chat/auto-update-cli.ts","../src/chat/auto-update-hook.ts","../src/chat/boot-profiler.ts","../src/chat/browser.ts","../src/chat/claude-import.ts","../src/chat/config-context.tsx","../src/chat/credentials.ts","../src/chat/discovery-context.tsx","../src/chat/discovery-slot.ts","../src/chat/footer-hints.ts","../src/chat/generate-title.ts","../src/chat/mcp-auth-state.ts","../src/chat/mcp-auth-context.tsx","../src/chat/mcp-credentials.ts","../src/chat/mcp-rows.ts","../src/chat/mcp-tool-toggle.ts","../src/chat/mcp-tools-cache.ts","../src/chat/mcps-write.ts","../src/chat/oauth.ts","../src/chat/oauth-redirect.ts","../src/chat/path-display.ts","../src/chat/project-root.ts","../src/chat/project-user-paths.ts","../src/chat/safe-mode.ts","../src/chat/settings-context.tsx","../src/chat/skills-discovery.ts","../src/chat/streaming.ts","../src/chat/theme-context.tsx","../src/chat/themes/catppuccin.ts","../src/chat/themes/gruvbox.ts","../src/chat/themes/vaporwave.ts","../src/chat/todos.ts","../src/chat/todo-anchor.ts"],"mappings":"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"}
|
package/dist/chat.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { $ as InteractionsProvider, $n as INTERACTION_GUIDANCE_NO_PROMPTS, $t as countClaudeSessionFiles, A as runOAuthLogin, An as PLAN_AGENT, At as GRUVBOX_DARK, B as useMcpToolToggleSet, Bn as getArchivedTodosForRun, Bt as ConfigProvider, C as projectsFilePath, Cn as discoverAgentsMd, Cr as toolCallPreview, D as formatPathForCwd, Dn as DEFAULT_AGENT_ID, Dt as resolveChipColor, E as writeProjects, En as BUILTIN_AGENTS, Er as usageByModel, Et as DEFAULT_THEME, F as refreshMcpToolsCatalog, Fn as TODOS_METADATA_KEY, Ft as CATPPUCCIN_MOCHA, G as mcpCredentialsPath, Gn as selectActiveTodos, Gt as chainPositionOf, H as indexOfServerRow, Hn as isTodoTool, Ht as resolveConfig, I as saveMcpToolsCache, In as TODOWRITE_TOOL, It as createDiscoverySlot, J as useMcpAuthDispatch, Jn as ACTIONS_WITH_CARE_DOCTRINE, Jt as providerKeySetChanged, K as patchMcpCredential, Kn as setTodosForRun, Kt as chainsEqual, L as subscribeMcpToolsCache, Ln as TODO_STATUS_GLYPHS, Lt as DiscoveryProvider, M as clearMcpToolsCache, Mn as resolveAgentId, Mt as CATPPUCCIN_FRAPPE, N as loadMcpToolsCache, Nn as singleAgentRegistry, Nt as CATPPUCCIN_LATTE, O as fetchOAuthRedirect, On as DEFAULT_BUDGET_EXCLUDE_TOOLS, Ot as resolveTheme, P as mcpToolsCachePath, Pn as TODOREAD_TOOL, Pt as CATPPUCCIN_MACCHIATO, Q as ASK_USER_TOOL, Qn as INTERACTION_GUIDANCE, Qt as useCompletion, R as buildToolToggle, Rn as TODO_WRITE_COUNTS_METADATA_KEY, Rt as useDiscovery, S as matchesSafelistEntry, Sn as chatAutoCompactBehavior, Sr as titleFromTurns, St as SettingsProvider, T as suggestSafelistEntries, Tn as BUILD_AGENT, Tr as updateToolEventOutcomes, Tt as BUILTIN_THEMES, U as parentServerName, Un as pickActiveRunId, Ut as resolveStoragePaths, V as buildVisibleMcpRows, Vn as getTodosForRun, Vt as useConfig, W as createFileMcpCredentialStore, Wn as pruneTodosByRun, Wt as buildRunModel, X as getMcpAuthStatus, Xn as DOING_TASKS_DOCTRINE, Xt as sanitizeModelChain, Y as useMcpAuthState, Yn as COMMUNICATION_DOCTRINE, Yt as restoreChainFallbacks, Z as reduceMcpAuth, Zn as IDENTITY_PREFIX, Zt as toggleChainEntry, _ as useSafeModeQueue, _n as detectPackageManager, _r as marginTopFor, _t as DEFAULT_SETTINGS, a as useSurfaces, an as buildMcpServers, ar as buildPlanSystem, at as pendingInteractionsFromTurns, b as getSafelist, bn as performSelfUpdate, br as stripSpawnTokensLine, bt as SETTINGS_INPUTS, c as useStreamBuffer, cn as parseMcpsFile, cr as createChatTurnsReadTool, ct as useInteractionsQueue, d as discoverProjectSkills, dn as bootTick, dr as createStateStore, dt as hintsLength, en as hasClaudeCodeSetup, er as PLAN_MODE_DOCTRINE, et as PRESENT_PLAN_TOOL, f as renderSession, fn as buildUpdateHint, fr as deriveSessionTitle, ft as truncateTrailing, g as useSafeModeActions, gn as detectLibc, gr as loadState, gt as useEnabledToggleSet, h as SafeModeProvider, hn as compareSemver, hr as listSessionMeta, ht as listProjectFiles, i as useSelectStyle, in as upsertMcpServer, ir as buildBuildSystem, it as makeRequestInteraction, j as supportsOAuth, jn as accentColor, jt as GRUVBOX_LIGHT, k as oauthUsesManualCodePaste, kn as DEFAULT_PERSIST_EXCLUDE_TOOLS, kt as VAPORWAVE_THEME, l as buildSkillsConfig, ln as tryOpenBrowser, lt as EMPTY_HINTS, m as writeSessionExport, mn as checkForUpdate, mr as lastContextSizeFromTurns, mt as shortChord, n as ThemeProvider, nn as mcpsWritePath, nr as SUBAGENT_GUIDANCE, nt as createInteractionTools, o as useSyntaxStyles, on as defaultMcpsConfigPaths, or as envSection, ot as serializeInteractionResponse, p as resolveSessionExportTarget, pn as useUpdateCheck, pr as eventsFromTurns, pt as buildHints, q as McpAuthProvider, qn as useActiveTodos, qt as filterChainFallbacks, r as useColors, rn as removeMcpServer, rr as TOKEN_DISCIPLINE_DOCTRINE, rt as isInteractionTool, s as useTheme, sn as discoverProjectMcps, sr as chatReferenceTokensForPrompt, st as useInteractionsActions, t as computeTurnAnchors, tn as importFromClaudeCode, tr as PLAN_MODE_DOCTRINE_NO_PROMPTS, tt as buildResumedToolResultsTurn, u as defaultSkillScanPaths, un as bootProfileEnabled, ur as compactSummaryEvent, ut as clipHintsToWidth, v as IMPLICITLY_SAFE_TOOLS, vn as parseSemver, vr as saveState, vt as SETTINGS_CATEGORIES, w as readProjects, wn as renderAgentsMdBlock, wr as toolResultText, wt as useSettings, x as isOnSafelist, xn as resolvePlatformPackage, xr as sumRunCosts, xt as SETTINGS_TOGGLES, y as addToSafelist, yn as performInPlaceSelfUpdate, yt as SETTINGS_CHOICES, z as useMcpToolToggleMap, zn as createTodoTools, zt as useDiscoveryOptional } from "./transcript-anchors-
|
|
2
|
-
import { $ as
|
|
1
|
+
import { $ as InteractionsProvider, $n as INTERACTION_GUIDANCE_NO_PROMPTS, $t as countClaudeSessionFiles, A as runOAuthLogin, An as PLAN_AGENT, At as GRUVBOX_DARK, B as useMcpToolToggleSet, Bn as getArchivedTodosForRun, Bt as ConfigProvider, C as projectsFilePath, Cn as discoverAgentsMd, Cr as toolCallPreview, D as formatPathForCwd, Dn as DEFAULT_AGENT_ID, Dt as resolveChipColor, E as writeProjects, En as BUILTIN_AGENTS, Er as usageByModel, Et as DEFAULT_THEME, F as refreshMcpToolsCatalog, Fn as TODOS_METADATA_KEY, Ft as CATPPUCCIN_MOCHA, G as mcpCredentialsPath, Gn as selectActiveTodos, Gt as chainPositionOf, H as indexOfServerRow, Hn as isTodoTool, Ht as resolveConfig, I as saveMcpToolsCache, In as TODOWRITE_TOOL, It as createDiscoverySlot, J as useMcpAuthDispatch, Jn as ACTIONS_WITH_CARE_DOCTRINE, Jt as providerKeySetChanged, K as patchMcpCredential, Kn as setTodosForRun, Kt as chainsEqual, L as subscribeMcpToolsCache, Ln as TODO_STATUS_GLYPHS, Lt as DiscoveryProvider, M as clearMcpToolsCache, Mn as resolveAgentId, Mt as CATPPUCCIN_FRAPPE, N as loadMcpToolsCache, Nn as singleAgentRegistry, Nt as CATPPUCCIN_LATTE, O as fetchOAuthRedirect, On as DEFAULT_BUDGET_EXCLUDE_TOOLS, Ot as resolveTheme, P as mcpToolsCachePath, Pn as TODOREAD_TOOL, Pt as CATPPUCCIN_MACCHIATO, Q as ASK_USER_TOOL, Qn as INTERACTION_GUIDANCE, Qt as useCompletion, R as buildToolToggle, Rn as TODO_WRITE_COUNTS_METADATA_KEY, Rt as useDiscovery, S as matchesSafelistEntry, Sn as chatAutoCompactBehavior, Sr as titleFromTurns, St as SettingsProvider, T as suggestSafelistEntries, Tn as BUILD_AGENT, Tr as updateToolEventOutcomes, Tt as BUILTIN_THEMES, U as parentServerName, Un as pickActiveRunId, Ut as resolveStoragePaths, V as buildVisibleMcpRows, Vn as getTodosForRun, Vt as useConfig, W as createFileMcpCredentialStore, Wn as pruneTodosByRun, Wt as buildRunModel, X as getMcpAuthStatus, Xn as DOING_TASKS_DOCTRINE, Xt as sanitizeModelChain, Y as useMcpAuthState, Yn as COMMUNICATION_DOCTRINE, Yt as restoreChainFallbacks, Z as reduceMcpAuth, Zn as IDENTITY_PREFIX, Zt as toggleChainEntry, _ as useSafeModeQueue, _n as detectPackageManager, _r as marginTopFor, _t as DEFAULT_SETTINGS, a as useSurfaces, an as buildMcpServers, ar as buildPlanSystem, at as pendingInteractionsFromTurns, b as getSafelist, bn as performSelfUpdate, br as stripSpawnTokensLine, bt as SETTINGS_INPUTS, c as useStreamBuffer, cn as parseMcpsFile, cr as createChatTurnsReadTool, ct as useInteractionsQueue, d as discoverProjectSkills, dn as bootTick, dr as createStateStore, dt as hintsLength, en as hasClaudeCodeSetup, er as PLAN_MODE_DOCTRINE, et as PRESENT_PLAN_TOOL, f as renderSession, fn as buildUpdateHint, fr as deriveSessionTitle, ft as truncateTrailing, g as useSafeModeActions, gn as detectLibc, gr as loadState, gt as useEnabledToggleSet, h as SafeModeProvider, hn as compareSemver, hr as listSessionMeta, ht as listProjectFiles, i as useSelectStyle, in as upsertMcpServer, ir as buildBuildSystem, it as makeRequestInteraction, j as supportsOAuth, jn as accentColor, jt as GRUVBOX_LIGHT, k as oauthUsesManualCodePaste, kn as DEFAULT_PERSIST_EXCLUDE_TOOLS, kt as VAPORWAVE_THEME, l as buildSkillsConfig, ln as tryOpenBrowser, lt as EMPTY_HINTS, m as writeSessionExport, mn as checkForUpdate, mr as lastContextSizeFromTurns, mt as shortChord, n as ThemeProvider, nn as mcpsWritePath, nr as SUBAGENT_GUIDANCE, nt as createInteractionTools, o as useSyntaxStyles, on as defaultMcpsConfigPaths, or as envSection, ot as serializeInteractionResponse, p as resolveSessionExportTarget, pn as useUpdateCheck, pr as eventsFromTurns, pt as buildHints, q as McpAuthProvider, qn as useActiveTodos, qt as filterChainFallbacks, r as useColors, rn as removeMcpServer, rr as TOKEN_DISCIPLINE_DOCTRINE, rt as isInteractionTool, s as useTheme, sn as discoverProjectMcps, sr as chatReferenceTokensForPrompt, st as useInteractionsActions, t as computeTurnAnchors, tn as importFromClaudeCode, tr as PLAN_MODE_DOCTRINE_NO_PROMPTS, tt as buildResumedToolResultsTurn, u as defaultSkillScanPaths, un as bootProfileEnabled, ur as compactSummaryEvent, ut as clipHintsToWidth, v as IMPLICITLY_SAFE_TOOLS, vn as parseSemver, vr as saveState, vt as SETTINGS_CATEGORIES, w as readProjects, wn as renderAgentsMdBlock, wr as toolResultText, wt as useSettings, x as isOnSafelist, xn as resolvePlatformPackage, xr as sumRunCosts, xt as SETTINGS_TOGGLES, y as addToSafelist, yn as performInPlaceSelfUpdate, yt as SETTINGS_CHOICES, z as useMcpToolToggleMap, zn as createTodoTools, zt as useDiscoveryOptional } from "./transcript-anchors-ChQH1fMm.js";
|
|
2
|
+
import { $ as buildExtensionPreset, Bt as KEYBINDING_DEF_BY_ACTION, Gt as keybindingsPath, Ht as ensureKeybindingsFile, Jt as parseBindingSpec, Kt as matchesBinding, Lt as resolveStorageDirs, Qt as stripJsonComments, Rt as DEFAULT_KEYBINDINGS, Ut as formatBindingForDisplay, V as EMPTY_EXTENSION_REGISTRY, Vt as KEYBINDING_KEY_COL_WIDTH, Wt as groupBindings, Xt as readKeybindingsRaw, Yt as readKeybindings, Zt as resolveExtensionKeybindings, _n as OUTPUT_RESERVE_TOKENS, at as partitionExtensionCatalog, et as buildExtensionRegistry, gn as AUTO_COMPACT_MIN_GROWTH_FRACTION, it as mergeContributions, nn as discoverExtensions, nt as disposeExtensionRegistry, on as scanExtensionDirectories, qt as mergeKeybindings, rn as inlineLoadedExtension, rt as filterExtensionRegistry, sn as defineExtension, tn as defaultExtensionScanPaths, tt as composeExtensionPreset, vn as effectiveContextWindow, yn as shouldAutoCompact, zt as KEYBINDING_DEFS } from "./agent-DO8s7bDf.js";
|
|
3
3
|
import { t as buildContextBreakdown } from "./context-breakdown-Dzo25N45.js";
|
|
4
4
|
import { a as formatDuration, c as previewLine, i as fmtTokens, l as shortId, n as compactPath, o as formatTaskStatus, r as fmtCost, s as formatTaskSummary, t as ageString } from "./format-BF745pLL.js";
|
|
5
5
|
import { M as findGitRoot, j as projectUserPaths } from "./resolve-BPTA1RpX.js";
|
|
6
6
|
import { appendDynamicSection } from "./prompt.js";
|
|
7
7
|
import { a as generateStructuredData, c as shouldAutoGenerateTitle, g as parseCommandInvocation, h as executeCommand, i as tokenEndingAtCursor, m as commandSteps, n as patchInlineGhost, o as cleanTitle, r as resolveInlineSuggestion, s as generateSessionTitle, t as createPathAutocompleteProvider } from "./inline-autocomplete-CbcdZpfC.js";
|
|
8
8
|
import { a as mergeReferences, n as collectReferences, o as mergeSuggestions, r as findActiveTrigger, t as applyInsert } from "./completion-core-BRo86R_L.js";
|
|
9
|
-
import { C as restoreModelOptions, S as piIdOf, _ as modelOptionsFor, a as readProviderCredential, b as openaiDescriptor, c as writeCredentials, d as cerebrasDescriptor, f as credKeyOf, g as localDescriptor, h as getModelInfo, i as readCredentials, l as BUILTIN_PROVIDERS, m as getContextWindow, n as applyApiKeyEnv, o as removeProviderCredential, p as enabledModelOptions, r as credentialsPath, s as setProviderCredential, t as detectAuth, u as anthropicDescriptor, v as modelSupportsReasoning, x as openrouterDescriptor, y as modelsForDescriptor } from "./auth-
|
|
9
|
+
import { C as restoreModelOptions, S as piIdOf, _ as modelOptionsFor, a as readProviderCredential, b as openaiDescriptor, c as writeCredentials, d as cerebrasDescriptor, f as credKeyOf, g as localDescriptor, h as getModelInfo, i as readCredentials, l as BUILTIN_PROVIDERS, m as getContextWindow, n as applyApiKeyEnv, o as removeProviderCredential, p as enabledModelOptions, r as credentialsPath, s as setProviderCredential, t as detectAuth, u as anthropicDescriptor, v as modelSupportsReasoning, x as openrouterDescriptor, y as modelsForDescriptor } from "./auth-kqdSYLMU.js";
|
|
10
10
|
import { $ as computeInlineDiff, A as FILES_TRIGGER, B as isTurnHighlighted, C as chunkMarkdownForRender, D as SKILLS_TRIGGER, F as blendHsl, G as selectableTurnIds, H as isVisible, I as buildLinearRamp, J as turnSelectionOwnership, K as selectionAfterTurnRemoval, M as uniqueFilesFromReferences, N as COMMANDS_TRIGGER, O as createSkillsCompletionProvider, P as createCommandsCompletionProvider, S as MARKDOWN_RENDER_CHUNK_TARGET_BYTES, T as splitMarkdownCodeBlocks, X as buildContextualDiff, Y as applyEditPayload, Z as buildUnifiedDiff, _ as turnContextSize, _t as createChatsCompletionProvider, a as TOOL_DISPLAY, at as summarizeEditPayload, b as filterModelCatalog, c as MAX_TRANSCRIPT_EVENTS, ct as maskToOutcomeKinds, d as finalizeStreamingMarkdown, dt as resolveApprovalForPayload, et as computeLineDiff, f as finalizeStreamingMarkdownForOwner, ft as rewriteMultiEditHeader, gt as chatReferenceTokensFromText, ht as CHATS_TRIGGER, i as turnAsText, it as splitLines, j as createFilesCompletionProvider, k as uniqueSkillNamesFromReferences, l as TRANSCRIPT_TRIM_TO_EVENTS, lt as mergeApprovalAndBodyOutcomes, mt as summarizeOutcomes, n as deleteTurnSafely, nt as filetypeFromPath, o as displayNameFor, ot as tokenize, pt as stripEditOutcomesAnnotation, r as truncateTurnsAt, rt as previewEditPayload, s as formatToolCall, st as buildEditOutcomesAnnotation, t as countNeighbors, tt as extractEditPayload, u as capTranscriptEvents, ut as parseEditOutcomesFromResult, v as splitPromptSegments, vt as uniqueChatIdsFromReferences, w as normalizeMarkdownCodeFences, x as indexOfEntry, y as buildModelCatalog, z as isEditErrorResult } from "./turn-operations-CtEpeB_s.js";
|
|
11
11
|
import { a as searchHighlightRanges, c as searchSessionHistoryIndexAsync, d as searchSessionTurns, f as searchTurns, i as highlightSegments, l as searchSessionIndex, n as buildSessionSearchIndexAsync, o as searchSessionHistory, p as searchableTurnText, r as filterSessionSearchCatalog, s as searchSessionHistoryIndex, t as buildSessionSearchIndex, u as searchSessionIndexAsync } from "./history-search-C4bk1Wz_.js";
|
|
12
12
|
//#region src/chat/auto-update-cli.ts
|
|
@@ -223,6 +223,34 @@ function renderActiveTodoAnchor(todos, options = {}) {
|
|
|
223
223
|
* Optional chat-layer hook that keeps the live `todowrite` list visible in the
|
|
224
224
|
* dynamic system prompt. It reads only live todos, never the archive, so an
|
|
225
225
|
* auto-cleared completed plan is not reintroduced on later turns.
|
|
226
|
+
*
|
|
227
|
+
* ## Prompt-cache cost — read before enabling
|
|
228
|
+
*
|
|
229
|
+
* This writes per-turn state into the system prompt, and the system prompt sits
|
|
230
|
+
* ABOVE the entire conversation in the provider's cache prefix (Anthropic hashes
|
|
231
|
+
* tools → system → messages, cumulatively). So every time the rendered anchor
|
|
232
|
+
* changes by a single byte, the whole transcript stops matching the cache and
|
|
233
|
+
* re-bills at the cache-write rate; only `tools` and the static system block
|
|
234
|
+
* survive.
|
|
235
|
+
*
|
|
236
|
+
* That is an acceptable trade only because the anchor changes *rarely* — once
|
|
237
|
+
* per `todowrite`, which in practice is a small fraction of turns. Two rules
|
|
238
|
+
* follow, and breaking either one turns that occasional cost into a per-turn
|
|
239
|
+
* one:
|
|
240
|
+
*
|
|
241
|
+
* 1. Never add anything to the anchor that ticks on its own — no counters, no
|
|
242
|
+
* timestamps, no elapsed times, no per-turn indices.
|
|
243
|
+
* 2. The render must stay a pure function of the todo list.
|
|
244
|
+
* `renderActiveTodoAnchor` is deterministic today, so identical todos emit
|
|
245
|
+
* identical bytes; keep it that way. Note this does NOT cover reordering —
|
|
246
|
+
* todo order is semantically meaningful (it is the plan), so a reorder is
|
|
247
|
+
* a real state change and costs one re-bill like any other `todowrite`.
|
|
248
|
+
*
|
|
249
|
+
* Moving the anchor onto the newest message instead does NOT avoid this: it is
|
|
250
|
+
* wire-only, so the message that carried last turn's anchor re-renders without
|
|
251
|
+
* it, and the prefix diverges at that point just the same. The only injection
|
|
252
|
+
* that is genuinely free is one persisted into the transcript as immutable
|
|
253
|
+
* history.
|
|
226
254
|
*/
|
|
227
255
|
function createActiveTodoAnchorHooks(options = {}) {
|
|
228
256
|
return { "system:transform": (ctx) => {
|