zelari-code 1.41.0 → 1.43.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.
Files changed (33) hide show
  1. package/dist/cli/budget/llmCompact.js +97 -83
  2. package/dist/cli/budget/llmCompact.js.map +1 -1
  3. package/dist/cli/budget/requestMeter.js +138 -0
  4. package/dist/cli/budget/requestMeter.js.map +1 -0
  5. package/dist/cli/budget/requestSnapshotStore.js +55 -0
  6. package/dist/cli/budget/requestSnapshotStore.js.map +1 -0
  7. package/dist/cli/budget/tokenBudget.js +147 -15
  8. package/dist/cli/budget/tokenBudget.js.map +1 -1
  9. package/dist/cli/hooks/conversationContext.js +4 -0
  10. package/dist/cli/hooks/conversationContext.js.map +1 -1
  11. package/dist/cli/hooks/historyCompaction.js +76 -21
  12. package/dist/cli/hooks/historyCompaction.js.map +1 -1
  13. package/dist/cli/hooks/useChatTurn.js +90 -23
  14. package/dist/cli/hooks/useChatTurn.js.map +1 -1
  15. package/dist/cli/main.bundled.js +1555 -890
  16. package/dist/cli/main.bundled.js.map +4 -4
  17. package/dist/cli/provider/openai-compatible.js +11 -1
  18. package/dist/cli/provider/openai-compatible.js.map +1 -1
  19. package/dist/cli/runHeadless.js +15 -0
  20. package/dist/cli/runHeadless.js.map +1 -1
  21. package/dist/cli/toolRegistry.js +16 -0
  22. package/dist/cli/toolRegistry.js.map +1 -1
  23. package/dist/cli/tools/planTaskTools.js +236 -0
  24. package/dist/cli/tools/planTaskTools.js.map +1 -0
  25. package/dist/cli/workspace/planStore.js +213 -0
  26. package/dist/cli/workspace/planStore.js.map +1 -0
  27. package/dist/cli/workspace/planStore.test.js +295 -0
  28. package/dist/cli/workspace/planStore.test.js.map +1 -0
  29. package/dist/cli/workspace/stubs.js +14 -4
  30. package/dist/cli/workspace/stubs.js.map +1 -1
  31. package/dist/cli/workspace/workspaceSummary.js +7 -1
  32. package/dist/cli/workspace/workspaceSummary.js.map +1 -1
  33. package/package.json +2 -2
@@ -13,7 +13,7 @@
13
13
  * @updated v1.21.0 — continuity summaries on compact; async LLM path
14
14
  */
15
15
  import { envNumber } from '../utils/envNumber.js';
16
- import { compactHistoryAsync, compactHistoryDetailed, } from '../hooks/historyCompaction.js';
16
+ import { compactHistoryAsync, compactHistoryDetailed, pruneToolResultsDetailed, } from '../hooks/historyCompaction.js';
17
17
  /** Rough chars→tokens (OpenAI-ish). */
18
18
  export function estimateTokens(text) {
19
19
  if (!text)
@@ -131,21 +131,77 @@ export function applyBudgetPolicy(history, phase, opts) {
131
131
  messagesRemoved: messagesRemoved || undefined,
132
132
  };
133
133
  }
134
+ /** Reserved output headroom factored into context pressure (v1.36.0). */
135
+ const RESERVED_OUTPUT_TOKENS = 8_192;
134
136
  /**
135
- * Async budget policy: at ≥85% occupancy uses optional LLM continuity brief
136
- * (ZELARI_LLM_COMPACT, default on), falling back to extractive summary.
137
+ * Async budget policy v1.36.0 pipeline (P6/P7):
138
+ *
139
+ * measure → 70–85% warn
140
+ * → ≥80% prune oversized tool results → remeasure
141
+ * → ≥85% compactHistoryAsync(force, replay) → remeasure
142
+ * → ≥95% emergency hard trim → send
143
+ *
144
+ * Measuring uses the FULL request surface (system + tools schema +
145
+ * conversation + reasoning) when a snapshot anchors it; otherwise it falls
146
+ * back to the legacy history-only estimate. Pruning BEFORE summarizing
147
+ * avoids an LLM compaction call entirely when two oversized read_file /
148
+ * grep results were the whole problem (DSH prune-remeasure lesson).
149
+ *
150
+ * cachedPromptTokens are NEVER subtracted from pressure: cached or not,
151
+ * the provider still holds the whole prefix in the context window.
137
152
  */
138
153
  export async function applyBudgetPolicyAsync(history, phase, opts) {
139
154
  const contextLimit = resolveContextLimit(opts?.model);
140
155
  const sessionExtra = opts?.sessionTokens ?? 0;
141
156
  const warnings = [];
142
157
  let { historyTurns, maxToolLoopIterations } = phaseKnobs(phase);
158
+ const envelope = opts?.requestSnapshot ?? null;
159
+ // v1.36.0 (case 12): when only the providerStream is available (no routed
160
+ // snapshot yet — first turn, tests), synthesize a DEGRADED replay base so
161
+ // the summarizer still runs on a cold minimal prefix: no cache reuse, but
162
+ // LLM compaction proceeds instead of being silently skipped. The METER
163
+ // stays anchored to real snapshots only (a degraded envelope would add
164
+ // RESERVED_OUTPUT_TOKENS pressure that was never measured).
165
+ const replayBase = envelope
166
+ ? {
167
+ provider: envelope.snapshot.provider,
168
+ model: envelope.snapshot.model,
169
+ systemMessages: envelope.snapshot.systemMessages,
170
+ tools: envelope.snapshot.tools,
171
+ }
172
+ : opts?.providerStream
173
+ ? { provider: 'local', model: opts?.model ?? 'unknown', systemMessages: [], tools: [] }
174
+ : null;
175
+ // Full-request meter (anchored when snapshot+usage are available).
176
+ const headerTokens = envelope
177
+ ? estimateSystemTokensLite(envelope.snapshot.systemMessages) +
178
+ estimateToolSchemaTokensLite(envelope.snapshot.tools)
179
+ : 0;
180
+ const convTokensOf = (h) => estimateConversationTokensLite(h);
143
181
  let hist = history;
144
- let { estimated, occupancy } = occupancyOf(hist, sessionExtra, contextLimit);
182
+ let estimated = envelope
183
+ ? headerTokens + convTokensOf(hist) + RESERVED_OUTPUT_TOKENS
184
+ : estimateHistoryTokens(hist) + sessionExtra;
185
+ let occupancy = Math.min(1, estimated / contextLimit);
145
186
  let compactSummary = '';
146
187
  let messagesRemoved = 0;
188
+ let cacheReuseExpected;
189
+ let prunedTotal = 0;
147
190
  if (occupancy >= 0.7 && occupancy < 0.85) {
148
- warnings.push(`[budget] context ~${Math.round(occupancy * 100)}% full (${estimated + sessionExtra}/${contextLimit} tok est.) — consider /compact or shorter replies.`);
191
+ warnings.push(`[budget] context ~${Math.round(occupancy * 100)}% full (${estimated}/${contextLimit} tok full-request est.) — consider /compact or shorter replies.`);
192
+ }
193
+ // ── ≥80%: prune oversized tool results, then REMEASURE ──────────────────
194
+ if (occupancy >= 0.8) {
195
+ const pruned = pruneToolResultsDetailed(hist);
196
+ if (pruned.stats.pruned > 0) {
197
+ hist = pruned.messages;
198
+ prunedTotal += pruned.stats.pruned;
199
+ estimated = envelope
200
+ ? headerTokens + convTokensOf(hist) + RESERVED_OUTPUT_TOKENS
201
+ : estimateHistoryTokens(hist) + sessionExtra;
202
+ occupancy = Math.min(1, estimated / contextLimit);
203
+ warnings.push(`[budget] pruned ${pruned.stats.pruned} oversized tool result(s) → ${Math.round(occupancy * 100)}% (${estimated} tok).`);
204
+ }
149
205
  }
150
206
  const fold = (r, label, forcedTurns) => {
151
207
  hist = r.messages;
@@ -153,43 +209,119 @@ export async function applyBudgetPolicyAsync(history, phase, opts) {
153
209
  messagesRemoved += r.messagesRemoved;
154
210
  if (r.summary)
155
211
  compactSummary = r.summary;
212
+ if (r.cacheReuseExpected !== undefined) {
213
+ cacheReuseExpected = r.cacheReuseExpected;
214
+ }
156
215
  }
157
- ({ estimated, occupancy } = occupancyOf(hist, sessionExtra, contextLimit));
158
- warnings.push(`[budget] ${label} at ${forcedTurns === 2 ? '95%' : '85%'} — kept ~${forcedTurns} turns (${estimated} tok history est.` +
216
+ estimated = envelope
217
+ ? headerTokens + convTokensOf(hist) + RESERVED_OUTPUT_TOKENS
218
+ : estimateHistoryTokens(hist) + sessionExtra;
219
+ occupancy = Math.min(1, estimated / contextLimit);
220
+ warnings.push(`[budget] ${label} — kept ~${forcedTurns} turns (${estimated} tok est.` +
159
221
  (r.messagesRemoved ? `, removed ${r.messagesRemoved} msgs` : '') +
160
- `).`);
222
+ (r.cacheReuseExpected === false ? ', cache reuse NOT expected (model override)' : '') +
223
+ ').');
161
224
  };
225
+ // ── ≥85% after pruning: cache-aware compaction (replay when possible) ───
162
226
  if (occupancy >= 0.85) {
163
227
  const forcedTurns = Math.max(1, Math.floor(historyTurns / 2));
164
228
  historyTurns = forcedTurns;
165
229
  maxToolLoopIterations = Math.min(maxToolLoopIterations, phase === 'plan' ? 24 : 40);
166
- const r = await compactHistoryAsync(hist, {
167
- maxMessages: forcedTurns * 4,
230
+ let r = await compactHistoryAsync(hist, {
231
+ maxMessages: Math.max(2, forcedTurns * 4),
232
+ force: true,
168
233
  signal: opts?.signal,
234
+ ...(replayBase
235
+ ? { requestSnapshot: replayBase, providerStream: opts?.providerStream }
236
+ : {}),
169
237
  });
170
- const label = r.summary.includes('· llm') ? 'llm-compact' : 'auto-compact';
238
+ // Few-but-huge histories may not shrink on the first window: retry
239
+ // with a minimal window so token pressure always wins (test case 20).
240
+ if (!r.compacted) {
241
+ r = await compactHistoryAsync(hist, {
242
+ maxMessages: 2,
243
+ force: true,
244
+ signal: opts?.signal,
245
+ ...(replayBase
246
+ ? { requestSnapshot: replayBase, providerStream: opts?.providerStream }
247
+ : {}),
248
+ });
249
+ }
250
+ const label = r.cacheReuseExpected === false ? 'llm-compact (model override)' : 'auto-compact';
171
251
  fold(r, label, forcedTurns);
172
252
  }
253
+ // ── ≥95%: emergency hard trim ────────────────────────────────────────────
173
254
  if (occupancy >= 0.95) {
174
255
  const hard = await compactHistoryAsync(hist, {
175
- maxMessages: 8,
256
+ maxMessages: 2,
257
+ force: true,
176
258
  signal: opts?.signal,
177
259
  });
178
- fold(hard, hard.summary.includes('· llm') ? 'llm-compact' : 'auto-compact', 2);
260
+ fold(hard, hard.summary.includes('· llm') ? 'llm-compact' : 'HARD trim', 2);
179
261
  historyTurns = 2;
180
262
  maxToolLoopIterations = Math.min(maxToolLoopIterations, 16);
181
- warnings.push(`[budget] HARD context pressure (≥95%) — prefer /clear or a new session if quality drops.`);
263
+ warnings.push('[budget] HARD context pressure (≥95%) — prefer /clear or a new session if quality drops.');
182
264
  }
265
+ const cacheMetricsLine = envelope
266
+ ? [
267
+ 'compaction meter:',
268
+ `provider/model: ${envelope.snapshot.provider}/${envelope.snapshot.model}`,
269
+ `headerFingerprint: ${envelope.snapshot.headerFingerprint.slice(0, 12)}`,
270
+ `occupancy: ${Math.round(occupancy * 100)}% (${estimated}/${contextLimit})`,
271
+ ...(envelope.usage?.cachedPromptTokens !== undefined
272
+ ? [`cachedPromptTokens: ${envelope.usage.cachedPromptTokens}`]
273
+ : []),
274
+ ...(cacheReuseExpected !== undefined
275
+ ? [`cacheReuseExpected: ${cacheReuseExpected}`]
276
+ : []),
277
+ ].join(' | ')
278
+ : undefined;
183
279
  return {
184
280
  history: hist,
185
281
  warnings,
186
282
  maxToolLoopIterations,
187
283
  historyTurns,
188
- estimatedHistoryTokens: estimated,
284
+ estimatedHistoryTokens: envelope ? convTokensOf(hist) : estimated,
189
285
  contextLimit,
190
286
  occupancy,
191
287
  compactSummary: compactSummary || undefined,
192
288
  messagesRemoved: messagesRemoved || undefined,
289
+ ...(envelope ? { contextPressureTokens: estimated } : {}),
290
+ ...(cacheReuseExpected !== undefined ? { cacheReuseExpected } : {}),
291
+ ...(cacheMetricsLine ? { cacheMetricsLine } : {}),
193
292
  };
194
293
  }
294
+ // ── Local estimators (requestMeter-lite, no import cycle) ───────────────────
295
+ function estimateSystemTokensLite(systemMessages) {
296
+ let n = 0;
297
+ for (const m of systemMessages)
298
+ n += 4 + Math.ceil((m.content ?? '').length / 4);
299
+ return n;
300
+ }
301
+ function estimateToolSchemaTokensLite(tools) {
302
+ let n = 0;
303
+ for (const t of tools) {
304
+ n += Math.ceil((t.name ?? '').length / 4);
305
+ n += Math.ceil((t.description ?? '').length / 4);
306
+ n += Math.ceil(JSON.stringify(t.parameters ?? {}).length / 4);
307
+ }
308
+ return n + tools.length * 4;
309
+ }
310
+ function estimateConversationTokensLite(messages) {
311
+ let n = 0;
312
+ for (const m of messages) {
313
+ n += 4 + Math.ceil((m.content ?? '').length / 4);
314
+ if (m.toolCalls) {
315
+ for (const tc of m.toolCalls) {
316
+ n += Math.ceil(tc.name.length / 4) + Math.ceil(tc.id.length / 4);
317
+ n += Math.ceil(JSON.stringify(tc.args ?? {}).length / 4);
318
+ }
319
+ }
320
+ if (m.reasoningContent)
321
+ n += Math.ceil(m.reasoningContent.length / 4);
322
+ if (m.toolCallId)
323
+ n += Math.ceil(m.toolCallId.length / 4);
324
+ }
325
+ return n;
326
+ }
195
327
  //# sourceMappingURL=tokenBudget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokenBudget.js","sourceRoot":"","sources":["../../../src/cli/budget/tokenBudget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tokenBudget.js","sourceRoot":"","sources":["../../../src/cli/budget/tokenBudget.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ import { join } from 'node:path';
16
16
  import { clearSessionPermissionGrants } from '../safety/toolPermissions.js';
17
17
  import { clearSessionTodos } from '../sessionTodos.js';
18
18
  import { compactHistory } from './historyCompaction.js';
19
+ import { clearAllRequestSnapshots } from '../budget/requestSnapshotStore.js';
19
20
  let history = [];
20
21
  let lastClarification = null;
21
22
  /** Current rolling history (read-only view — callers must not mutate). */
@@ -41,6 +42,9 @@ export function appendMessages(msgs) {
41
42
  export function clearHistory() {
42
43
  history = [];
43
44
  lastClarification = null;
45
+ // v1.36.0: routed-request snapshots are conversation-scoped — a cleared
46
+ // session must not replay a stale warm prefix.
47
+ clearAllRequestSnapshots();
44
48
  // Session todos + permission grants are conversation-scoped.
45
49
  clearSessionTodos();
46
50
  clearSessionPermissionGrants();
@@ -1 +1 @@
1
- {"version":3,"file":"conversationContext.js","sourceRoot":"","sources":["../../../src/cli/hooks/conversationContext.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAUxD,IAAI,OAAO,GAAmB,EAAE,CAAC;AACjC,IAAI,iBAAiB,GAA6B,IAAI,CAAC;AAEvD,0EAA0E;AAC1E,MAAM,UAAU,UAAU;IACxB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,UAAU,CAAC,QAAiC;IAC1D,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;AAC1B,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,cAAc,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACxD,MAAM,mBAAmB,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IACnF,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,EAAE,mBAAmB,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,cAAc,CAAC,IAA6B;IAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC9B,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,YAAY;IAC1B,OAAO,GAAG,EAAE,CAAC;IACb,iBAAiB,GAAG,IAAI,CAAC;IACzB,6DAA6D;IAC7D,iBAAiB,EAAE,CAAC;IACpB,4BAA4B,EAAE,CAAC;AACjC,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AACtB,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,cAAc,CAAC,QAAiC;IAC9D,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,CAAiD;IAEjD,iBAAiB,GAAG,CAAC;QACnB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;QAC9D,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACrD,MAAM,IAAI,GAAG,iBAAiB,CAAC;IAC/B,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,4DAA4D;IAC5D,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/D,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7B,MAAM,OAAO,GACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzF,mEAAmE;IACnE,IAAI,WAAW,GAAG,OAAO,IAAI,IAAI,CAAC;IAClC,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM;YAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IAC3E,CAAC;IAED,6EAA6E;IAC7E,wEAAwE;IACxE,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,IAAI,CAAC;IAErD,MAAM,MAAM,GAAG,WAAW,IAAI,OAAO,CAAC;IACtC,OAAO,CACL,4DAA4D;QAC5D,aAAa,IAAI,CAAC,QAAQ,IAAI;QAC9B,iBAAiB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;QACxC,kBAAkB,MAAM,IAAI;QAC5B,kGAAkG,CACnG,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAQ,GAAG,CAAC;IAClD,OAAO,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAiC,EACjC,QAAQ,GAAG,CAAC,EACZ,aAAa,GAAG,MAAM;IAEtB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QAClE,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAChD,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,IAAI,IAAI,GAAG,CAAC,yCAAyC,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAC7E,IAAI,CACL,CAAC;IACF,IAAI,IAAI,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;QAChC,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,EAAE,CAAC;IACzD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,cAAc,GAClB,kMAAkM,CAAC;AAErM,qEAAqE;AACrE,MAAM,oBAAoB,GACxB,2HAA2H,CAAC;AAE9H;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1F,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,IAAY,EACZ,KAA8B,EAC9B,IAAiC;IAEjC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnE,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC;SACxB,OAAO,EAAE;SACT,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnE,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,GAAG,GAAG,IAAI,EAAE,aAAa,IAAI,IAAI,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,OAAO,CACL,kBAAkB,OAAO,+DAA+D;QACxF,2EAA2E;QAC3E,yEAAyE;QACzE,0CAA0C;QAC1C,wEAAwE;QACxE,qEAAqE;QACrE,0EAA0E;QAC1E,oGAAoG;QACpG,qFAAqF;QACrF,uFAAuF;QACvF,uEAAuE;QACvE,gEAAgE;QAChE,iEAAiE;QACjE,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM;QACxC,kBAAkB;QAClB,mGAAmG,CACpG,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAY,EACZ,KAAyB,EACzB,KAA+B;IAE/B,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,oBAAoB,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,IACE,iHAAiH,CAAC,IAAI,CACpH,OAAO,CACR,EACD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,qEAAqE;IACrE,mEAAmE;IACnE,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/D,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC;aACxB,OAAO,EAAE;aACT,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,IACE,QAAQ;YACR,+GAA+G,CAAC,IAAI,CAClH,QAAQ,CAAC,OAAO,CACjB,EACD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CACzC,IAAY,EACZ,KAA0C;IAE1C,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAE5B,4EAA4E;IAC5E,yEAAyE;IACzE,IAAI,QAAQ,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IAEpD,MAAM,SAAS,GAAG,wBAAwB,CAAC,OAAO,EAAE,QAAQ,EAAE;QAC5D,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC;IACH,IAAI,SAAS,EAAE,CAAC;QACd,QAAQ,GAAG,SAAS,CAAC;IACvB,CAAC;IAED,MAAM,KAAK,GAAG,qBAAqB,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACzD,IAAI,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAC;IAC5B,sEAAsE;IACtE,IAAI,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;QAChD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,GAAG,KAAK,gCAAgC,QAAQ,EAAE,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAY,EACZ,KAA0C;IAE1C,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,OAAO,wBAAwB,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;AACnF,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS,EAAE,GAAW;IACtC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;AACnC,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,iCAAiC;IAC/C,OAAO,GAAG,EAAE,CAAC;IACb,iBAAiB,GAAG,IAAI,CAAC;IACzB,iBAAiB,EAAE,CAAC;IACpB,4BAA4B,EAAE,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"conversationContext.js","sourceRoot":"","sources":["../../../src/cli/hooks/conversationContext.ts"],"names":[],"mappings":"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"}
@@ -24,8 +24,8 @@
24
24
  *
25
25
  * @since v1.6.0
26
26
  */
27
- import { extractiveHistorySummary, formatDroppedForLlm, } from "../budget/historySummary.js";
28
- import { llmSummarizeHistory } from "../budget/llmCompact.js";
27
+ import { extractiveHistorySummary, } from "../budget/historySummary.js";
28
+ import { llmSummarizeHistoryReplay, } from "../budget/llmCompact.js";
29
29
  import { envNumber } from "../utils/envNumber.js";
30
30
  /** Marker prepended when messages are dropped (legacy short form). */
31
31
  const COMPACT_MARKER = "[history] Earlier turns were compacted to stay within the context budget.";
@@ -50,6 +50,13 @@ export function resolveMaxMessages(opts) {
50
50
  }
51
51
  if (turns <= 0)
52
52
  return 0;
53
+ // v1.36.0 (P8/case 20): occupancy-driven callers (force=true) pass a
54
+ // PRECISE message window — honor it literally instead of rounding through
55
+ // the turns×4 amortization, which would inflate a small window (2 → 4)
56
+ // and refuse to drop anything. The ×4 rounding stays for the count-gated
57
+ // legacy path where it amortizes compaction across turns.
58
+ if (opts?.force && opts?.maxMessages)
59
+ return Math.max(1, opts.maxMessages);
53
60
  return turns * 4;
54
61
  }
55
62
  /**
@@ -165,6 +172,24 @@ export function pruneToolResultsDetailed(messages, opts) {
165
172
  export function compactHistory(messages, opts) {
166
173
  return compactHistoryDetailed(messages, opts).messages;
167
174
  }
175
+ /**
176
+ * v1.36.0 (P12): the compaction checkpoint is a USER message, not a new
177
+ * system policy block. The system prompt stays stable (1–2 messages, byte
178
+ * identical across turns) so the provider prefix cache keeps hitting; the
179
+ * checkpoint replaces the dropped conversation as model-visible user
180
+ * context. This is the same surface pattern used by DSH-style harnesses.
181
+ */
182
+ const CHECKPOINT_WRAPPER_PREFIX = 'This is an automatically generated checkpoint of earlier conversation. ' +
183
+ 'Treat it as established context and continue directly.';
184
+ export function buildCheckpointMessage(summaryText) {
185
+ return {
186
+ role: 'user',
187
+ content: CHECKPOINT_WRAPPER_PREFIX +
188
+ '\n\n<compacted-summary>\n' +
189
+ summaryText +
190
+ '\n</compacted-summary>',
191
+ };
192
+ }
168
193
  /**
169
194
  * Same as compactHistory but returns metadata (removed count + summary text).
170
195
  */
@@ -174,7 +199,9 @@ export function compactHistoryDetailed(messages, opts) {
174
199
  return { messages: [], compacted: true, messagesRemoved: messages.length, summary: "" };
175
200
  }
176
201
  // Trigger at 2× cap so we don't compact on every single turn (amortize).
177
- if (messages.length <= maxMessages * 2) {
202
+ // v1.36.0 (P8): occupancy-driven callers pass force=true so high TOKEN
203
+ // pressure compacts even when the message COUNT is low.
204
+ if (messages.length <= maxMessages * 2 && !opts?.force) {
178
205
  return {
179
206
  messages: messages,
180
207
  compacted: false,
@@ -182,7 +209,7 @@ export function compactHistoryDetailed(messages, opts) {
182
209
  summary: "",
183
210
  };
184
211
  }
185
- const naiveCut = messages.length - maxMessages;
212
+ const naiveCut = Math.max(0, messages.length - maxMessages);
186
213
  const cut = findValidCutIndex(messages, naiveCut);
187
214
  if (cut === 0) {
188
215
  return {
@@ -196,10 +223,7 @@ export function compactHistoryDetailed(messages, opts) {
196
223
  const pruned = pruneToolResultsDetailed(messages.slice(cut));
197
224
  const kept = pruned.messages;
198
225
  const summaryText = extractiveHistorySummary(droppedMsgs);
199
- const summary = {
200
- role: "system",
201
- content: summaryText || `${COMPACT_MARKER} ${cut} earlier message(s) dropped.`,
202
- };
226
+ const summary = buildCheckpointMessage(summaryText || `${COMPACT_MARKER} ${cut} earlier message(s) dropped.`);
203
227
  return {
204
228
  messages: [summary, ...kept],
205
229
  compacted: true,
@@ -219,29 +243,60 @@ export async function compactHistoryAsync(messages, opts) {
219
243
  const cut = base.messagesRemoved;
220
244
  const droppedMsgs = messages.slice(0, cut);
221
245
  const extractive = extractiveHistorySummary(droppedMsgs);
222
- const droppedTranscript = formatDroppedForLlm(droppedMsgs);
223
246
  let summaryText = extractive;
224
- try {
225
- const llm = await llmSummarizeHistory({
226
- extractive,
227
- droppedTranscript,
228
- signal: opts?.signal,
229
- });
230
- if (llm && llm.trim().length > 40)
231
- summaryText = llm.trim();
232
- }
233
- catch {
234
- // keep extractive
247
+ let cacheReuseExpected;
248
+ let replayExactPrefix;
249
+ const canReplay = !!(opts?.providerStream && opts?.requestSnapshot);
250
+ if (canReplay) {
251
+ try {
252
+ const replay = await llmSummarizeHistoryReplay({
253
+ providerStream: opts.providerStream,
254
+ provider: opts.requestSnapshot.provider,
255
+ model: opts.requestSnapshot.model,
256
+ systemMessages: opts.requestSnapshot.systemMessages,
257
+ tools: opts.requestSnapshot.tools,
258
+ droppedMessages: droppedMsgs,
259
+ signal: opts?.signal,
260
+ });
261
+ cacheReuseExpected = replay.cacheReuseExpected;
262
+ if (replay.summary && replay.summary.trim().length > 40) {
263
+ // P13: a summary that does not shrink the source is a failed
264
+ // compaction — keep the (much smaller) extractive sketch instead.
265
+ const sourceTokens = roughTokens(droppedMsgs);
266
+ const summaryTok = Math.ceil(replay.summary.length / 4);
267
+ if (summaryTok < sourceTokens) {
268
+ summaryText = replay.summary.trim();
269
+ }
270
+ }
271
+ }
272
+ catch {
273
+ // keep extractive
274
+ }
235
275
  }
236
276
  const pruned = pruneToolResultsDetailed(messages.slice(cut));
237
277
  const kept = pruned.messages;
238
- const summary = { role: "system", content: summaryText };
278
+ const summary = buildCheckpointMessage(summaryText);
239
279
  return {
240
280
  messages: [summary, ...kept],
241
281
  compacted: true,
242
282
  messagesRemoved: cut,
243
283
  summary: summaryText,
244
284
  prunedToolResults: pruned.stats.pruned,
285
+ cacheReuseExpected,
286
+ replayExactPrefix,
245
287
  };
246
288
  }
289
+ /** Rough chars/4 token estimate over content + tool args (local, no cycle). */
290
+ function roughTokens(msgs) {
291
+ let n = 0;
292
+ for (const m of msgs) {
293
+ n += Math.ceil((m.content ?? '').length / 4);
294
+ if (m.toolCalls) {
295
+ for (const tc of m.toolCalls) {
296
+ n += Math.ceil(JSON.stringify(tc.args ?? {}).length / 4);
297
+ }
298
+ }
299
+ }
300
+ return Math.max(1, n);
301
+ }
247
302
  //# sourceMappingURL=historyCompaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"historyCompaction.js","sourceRoot":"","sources":["../../../src/cli/hooks/historyCompaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"historyCompaction.js","sourceRoot":"","sources":["../../../src/cli/hooks/historyCompaction.ts"],"names":[],"mappings":"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"}