pi-fabric 0.21.32 → 0.21.34

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.
@@ -1,8 +1,27 @@
1
- import type { CompactionResult, ExtensionAPI, SessionEntry } from "@earendil-works/pi-coding-agent";
1
+ import { type CompactionResult, type ExtensionAPI, type SessionEntry } from "@earendil-works/pi-coding-agent";
2
2
  import { type CompactionEnricher } from "./enrichers.js";
3
3
  import { type CompactionInstructionDecodeError, type CompactionInstructionPolicy } from "./instructions.js";
4
4
  import { type ProjectionOmittedCounts } from "./projections.js";
5
5
  type CompactionEngine = "pi" | "fabric";
6
+ export interface FabricCompactionBudget {
7
+ contextWindow: number;
8
+ targetContextRatio: number;
9
+ reserveTokens: number;
10
+ keepRecentTokens: number;
11
+ }
12
+ export interface FabricCompactionBudgetDetails {
13
+ strategy: "adaptive";
14
+ contextWindow: number;
15
+ targetContextRatio: number;
16
+ targetContextTokens: number;
17
+ reserveTokens: number;
18
+ keepRecentTokens: number;
19
+ rawTokensBefore: number;
20
+ tokenScale: number;
21
+ fixedOverheadTokens: number;
22
+ retainedRawTokens: number;
23
+ projectedTokensAfter: number;
24
+ }
6
25
  export type CutResult = {
7
26
  ok: true;
8
27
  summarized: SessionEntry[];
@@ -10,11 +29,15 @@ export type CutResult = {
10
29
  firstSummarizedEntryId: string;
11
30
  lastSummarizedEntryId: string;
12
31
  lastTimestamp: string;
32
+ budget?: Omit<FabricCompactionBudgetDetails, "projectedTokensAfter">;
13
33
  } | {
14
34
  ok: false;
15
35
  reason: "empty";
16
36
  };
17
- export declare const computeCut: (branchEntries: SessionEntry[]) => CutResult;
37
+ export declare const computeCut: (branchEntries: SessionEntry[], options?: {
38
+ tokensBefore: number;
39
+ budget: FabricCompactionBudget;
40
+ }) => CutResult;
18
41
  interface EntryRange {
19
42
  first: string;
20
43
  last: string;
@@ -44,10 +67,11 @@ export interface FabricCompactionDetailsV2 {
44
67
  cumulativeSourceRange: EntryRange;
45
68
  recall: "session-entry-id-range";
46
69
  };
70
+ budget?: FabricCompactionBudgetDetails;
47
71
  timestamp: string;
48
72
  }
49
73
  export declare const fabricCompactionVersion: (details: unknown) => 1 | 2 | undefined;
50
- export declare const compileFabricSummary: (branchEntries: SessionEntry[], tokensBefore: number, enrichers?: readonly CompactionEnricher[], customInstructions?: string) => {
74
+ export declare const compileFabricSummary: (branchEntries: SessionEntry[], tokensBefore: number, enrichers?: readonly CompactionEnricher[], customInstructions?: string, budget?: FabricCompactionBudget) => {
51
75
  compaction: CompactionResult<FabricCompactionDetailsV2>;
52
76
  } | {
53
77
  cancel: true;
@@ -56,6 +80,7 @@ export declare const compileFabricSummary: (branchEntries: SessionEntry[], token
56
80
  };
57
81
  export interface CompactionHookOptions {
58
82
  getEngine: () => CompactionEngine;
83
+ getTargetContextRatio?: () => number;
59
84
  enrichers?: readonly CompactionEnricher[];
60
85
  }
61
86
  export declare const registerCompactionHook: (pi: ExtensionAPI, options: CompactionHookOptions) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/compaction/hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EAIZ,YAAY,EACb,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAsC,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAE7F,OAAO,EAEL,KAAK,gCAAgC,EACrC,KAAK,2BAA2B,EACjC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAEL,KAAK,uBAAuB,EAE7B,MAAM,kBAAkB,CAAC;AAG1B,KAAK,gBAAgB,GAAG,IAAI,GAAG,QAAQ,CAAC;AA4IxC,MAAM,MAAM,SAAS,GACjB;IACE,EAAE,EAAE,IAAI,CAAC;IACT,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;CACvB,GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAgBnC,eAAO,MAAM,UAAU,GAAI,eAAe,YAAY,EAAE,KAAG,SAa1D,CAAC;AAYF,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,QAAQ,CAAC;IACpB,OAAO,EAAE,CAAC,CAAC;IACX,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE;QACR,qBAAqB,EAAE,UAAU,CAAC;QAClC,YAAY,EAAE,UAAU,CAAC;KAC1B,CAAC;IACF,MAAM,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;QACtB,uBAAuB,EAAE,MAAM,CAAC;QAChC,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,aAAa,EAAE,uBAAuB,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,iBAAiB,EAAE,2BAA2B,CAAC;IAC/C,eAAe,EAAE;QACf,gBAAgB,EAAE,MAAM,CAAC;QACzB,qBAAqB,EAAE,UAAU,CAAC;QAClC,MAAM,EAAE,wBAAwB,CAAC;KAClC,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB;AAiED,eAAO,MAAM,uBAAuB,GAAI,SAAS,OAAO,KAAG,CAAC,GAAG,CAAC,GAAG,SAKlE,CAAC;AAoCF,eAAO,MAAM,oBAAoB,GAC/B,eAAe,YAAY,EAAE,EAC7B,cAAc,MAAM,EACpB,YAAW,SAAS,kBAAkB,EAAyB,EAC/D,qBAAqB,MAAM,KAC1B;IAAE,UAAU,EAAE,gBAAgB,CAAC,yBAAyB,CAAC,CAAA;CAAE,GAAG;IAC/D,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,gCAAgC,CAAC;CAuErD,CAAC;AAWF,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,gBAAgB,CAAC;IAClC,SAAS,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAC3C;AAUD,eAAO,MAAM,sBAAsB,GAAI,IAAI,YAAY,EAAE,SAAS,qBAAqB,KAAG,IA+CzF,CAAC"}
1
+ {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/compaction/hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAIjB,KAAK,YAAY,EAClB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAsC,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAE7F,OAAO,EAEL,KAAK,gCAAgC,EACrC,KAAK,2BAA2B,EACjC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAEL,KAAK,uBAAuB,EAE7B,MAAM,kBAAkB,CAAC;AAG1B,KAAK,gBAAgB,GAAG,IAAI,GAAG,QAAQ,CAAC;AAsBxC,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,UAAU,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAgSD,MAAM,MAAM,SAAS,GACjB;IACE,EAAE,EAAE,IAAI,CAAC;IACT,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,IAAI,CAAC,6BAA6B,EAAE,sBAAsB,CAAC,CAAC;CACtE,GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAiEnC,eAAO,MAAM,UAAU,GACrB,eAAe,YAAY,EAAE,EAC7B,UAAU;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,sBAAsB,CAAA;CAAE,KACjE,SAqBF,CAAC;AAYF,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,QAAQ,CAAC;IACpB,OAAO,EAAE,CAAC,CAAC;IACX,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE;QACR,qBAAqB,EAAE,UAAU,CAAC;QAClC,YAAY,EAAE,UAAU,CAAC;KAC1B,CAAC;IACF,MAAM,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;QACtB,uBAAuB,EAAE,MAAM,CAAC;QAChC,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,aAAa,EAAE,uBAAuB,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,iBAAiB,EAAE,2BAA2B,CAAC;IAC/C,eAAe,EAAE;QACf,gBAAgB,EAAE,MAAM,CAAC;QACzB,qBAAqB,EAAE,UAAU,CAAC;QAClC,MAAM,EAAE,wBAAwB,CAAC;KAClC,CAAC;IACF,MAAM,CAAC,EAAE,6BAA6B,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB;AAiFD,eAAO,MAAM,uBAAuB,GAAI,SAAS,OAAO,KAAG,CAAC,GAAG,CAAC,GAAG,SAKlE,CAAC;AAoCF,eAAO,MAAM,oBAAoB,GAC/B,eAAe,YAAY,EAAE,EAC7B,cAAc,MAAM,EACpB,YAAW,SAAS,kBAAkB,EAAyB,EAC/D,qBAAqB,MAAM,EAC3B,SAAS,sBAAsB,KAC9B;IAAE,UAAU,EAAE,gBAAgB,CAAC,yBAAyB,CAAC,CAAA;CAAE,GAAG;IAC/D,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,gCAAgC,CAAC;CA6FrD,CAAC;AAWF,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,gBAAgB,CAAC;IAClC,qBAAqB,CAAC,EAAE,MAAM,MAAM,CAAC;IACrC,SAAS,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAC3C;AAUD,eAAO,MAAM,sBAAsB,GAAI,IAAI,YAAY,EAAE,SAAS,qBAAqB,KAAG,IA8DzF,CAAC"}
@@ -1,10 +1,14 @@
1
- import { clipUtf8 } from "./bounds.js";
1
+ import { buildSessionContext, calculateContextTokens, DEFAULT_COMPACTION_SETTINGS, estimateTokens, sessionEntryToContextMessages, } from "@earendil-works/pi-coding-agent";
2
+ import { clipUtf8, MAX_SUMMARY_BYTES } from "./bounds.js";
2
3
  import { NO_BUILTIN_ENRICHERS, runEnrichers } from "./enrichers.js";
3
4
  import { compileFabricBranchSummary } from "./branch-summary.js";
4
5
  import { decodeCompactionInstructions, } from "./instructions.js";
5
6
  import { isPiCustomMessageEntry, normalizeEntries } from "./normalize.js";
6
7
  import { projectWithMetadata, } from "./projections.js";
7
8
  import { renderSummary } from "./render.js";
9
+ const SUMMARY_RAW_TOKEN_BUDGET = Math.ceil(MAX_SUMMARY_BYTES / 4);
10
+ const HARD_CEILING_SAFETY_RATIO = 0.9;
11
+ const MAX_PRECOMPACTION_RATIO = 0.95;
8
12
  const isMessageEntry = (entry) => entry.type === "message";
9
13
  const isHiddenEmptyCustom = (message) => {
10
14
  if (!message || typeof message !== "object")
@@ -29,6 +33,14 @@ const toolCallIdsOf = (message) => {
29
33
  }
30
34
  return ids;
31
35
  };
36
+ const contextMessages = (entry) => {
37
+ try {
38
+ return sessionEntryToContextMessages(entry);
39
+ }
40
+ catch {
41
+ return [];
42
+ }
43
+ };
32
44
  const findLastCompaction = (entries) => {
33
45
  for (let index = entries.length - 1; index >= 0; index--) {
34
46
  const entry = entries[index];
@@ -42,20 +54,30 @@ const collectContextEntries = (entries, startIndex) => {
42
54
  const contextEntries = [];
43
55
  for (let index = Math.max(0, startIndex); index < entries.length; index++) {
44
56
  const entry = entries[index];
45
- if (entry.type === "custom_message") {
46
- if (isPiCustomMessageEntry(entry)) {
47
- contextEntries.push({ entry, branchIndex: index, turnBoundary: true });
48
- }
57
+ if (entry.type === "compaction")
49
58
  continue;
50
- }
51
- if (!isMessageEntry(entry) || isHiddenEmptyCustom(entry.message))
59
+ if (entry.type === "custom_message" && !isPiCustomMessageEntry(entry))
52
60
  continue;
53
- const message = entry.message;
61
+ if (isMessageEntry(entry) && isHiddenEmptyCustom(entry.message))
62
+ continue;
63
+ const messages = contextMessages(entry);
64
+ if (messages.length === 0)
65
+ continue;
66
+ const roles = messages.map((message) => message.role);
67
+ const rawMessage = isMessageEntry(entry)
68
+ ? entry.message
69
+ : undefined;
54
70
  contextEntries.push({
55
71
  entry,
56
72
  branchIndex: index,
57
- turnBoundary: message.role === "user",
58
- message,
73
+ turnBoundary: roles.some((role) => role === "user"
74
+ || role === "custom"
75
+ || role === "bashExecution"
76
+ || role === "branchSummary"
77
+ || role === "compactionSummary"),
78
+ cutPoint: roles.some((role) => role !== "toolResult"),
79
+ estimatedTokens: messages.reduce((total, message) => total + estimateTokens(message), 0),
80
+ ...(rawMessage ? { message: rawMessage } : {}),
59
81
  });
60
82
  }
61
83
  return contextEntries;
@@ -88,17 +110,22 @@ const lastBoundaryIndex = (live) => {
88
110
  };
89
111
  const callResultSpans = (entries) => {
90
112
  const spans = new Map();
91
- const record = (id, index) => {
113
+ const record = (id, index, kind) => {
92
114
  if (!id)
93
115
  return;
94
- const span = spans.get(id);
95
- if (span) {
96
- span.first = Math.min(span.first, index);
97
- span.last = Math.max(span.last, index);
98
- }
99
- else {
100
- spans.set(id, { first: index, last: index });
101
- }
116
+ const span = spans.get(id) ?? {
117
+ first: index,
118
+ last: index,
119
+ hasCall: false,
120
+ hasResult: false,
121
+ };
122
+ span.first = Math.min(span.first, index);
123
+ span.last = Math.max(span.last, index);
124
+ if (kind === "call")
125
+ span.hasCall = true;
126
+ else
127
+ span.hasResult = true;
128
+ spans.set(id, span);
102
129
  };
103
130
  for (let index = 0; index < entries.length; index++) {
104
131
  const entry = entries[index];
@@ -106,13 +133,18 @@ const callResultSpans = (entries) => {
106
133
  continue;
107
134
  const message = entry.message;
108
135
  for (const id of toolCallIdsOf(message))
109
- record(id, index);
136
+ record(id, index, "call");
110
137
  if (message.role === "toolResult" && typeof message.toolCallId === "string") {
111
- record(message.toolCallId, index);
138
+ record(message.toolCallId, index, "result");
112
139
  }
113
140
  }
114
141
  return spans;
115
142
  };
143
+ const spanCrosses = (span, boundaryIndex) => span.hasCall
144
+ && span.hasResult
145
+ && span.first < boundaryIndex
146
+ && span.last >= boundaryIndex;
147
+ const closureSafe = (spans, boundaryIndex) => [...spans.values()].every((span) => !spanCrosses(span, boundaryIndex));
116
148
  const closeCut = (branchEntries, live, candidateLiveIndex) => {
117
149
  const spans = callResultSpans(branchEntries);
118
150
  let liveIndex = candidateLiveIndex;
@@ -120,7 +152,7 @@ const closeCut = (branchEntries, live, candidateLiveIndex) => {
120
152
  const boundaryIndex = live[liveIndex].branchIndex;
121
153
  let earliestCrossing = boundaryIndex;
122
154
  for (const span of spans.values()) {
123
- if (span.first < boundaryIndex && span.last >= boundaryIndex) {
155
+ if (spanCrosses(span, boundaryIndex)) {
124
156
  earliestCrossing = Math.min(earliestCrossing, span.first);
125
157
  }
126
158
  }
@@ -133,7 +165,79 @@ const closeCut = (branchEntries, live, candidateLiveIndex) => {
133
165
  }
134
166
  return 0;
135
167
  };
136
- const boundary = (summarized, firstKeptEntryId) => {
168
+ const rawContextTokens = (branchEntries) => buildSessionContext(branchEntries).messages.reduce((total, message) => total + estimateTokens(message), 0);
169
+ const usageCheckpoints = (branchEntries) => {
170
+ const lastCompaction = findLastCompaction(branchEntries);
171
+ const startIndex = lastCompaction ? lastCompaction.index + 1 : 0;
172
+ let rawTokens = lastCompaction
173
+ ? rawContextTokens(branchEntries.slice(0, lastCompaction.index + 1))
174
+ : 0;
175
+ const checkpoints = [];
176
+ for (let index = startIndex; index < branchEntries.length; index++) {
177
+ for (const message of contextMessages(branchEntries[index])) {
178
+ rawTokens += estimateTokens(message);
179
+ if (message.role !== "assistant")
180
+ continue;
181
+ const contextTokens = calculateContextTokens(message.usage);
182
+ if (Number.isFinite(contextTokens) && contextTokens > 0) {
183
+ checkpoints.push({ rawTokens, contextTokens });
184
+ }
185
+ }
186
+ }
187
+ return checkpoints;
188
+ };
189
+ // Fit an upper affine envelope: context ≈ fixed overhead + scale × raw messages.
190
+ // Only post-marker usage is comparable; the fallback treats all unexplained tokens as fixed.
191
+ const tokenCalibration = (branchEntries, tokensBefore, rawTokensBefore) => {
192
+ const minimumDelta = Math.max(4_096, Math.floor(rawTokensBefore * 0.1));
193
+ const checkpoints = usageCheckpoints(branchEntries).filter((checkpoint) => checkpoint.rawTokens < rawTokensBefore
194
+ && checkpoint.contextTokens <= tokensBefore);
195
+ const slopes = checkpoints.flatMap((checkpoint) => {
196
+ const rawDelta = rawTokensBefore - checkpoint.rawTokens;
197
+ const contextDelta = tokensBefore - checkpoint.contextTokens;
198
+ return rawDelta >= minimumDelta && contextDelta >= 0
199
+ ? [contextDelta / rawDelta]
200
+ : [];
201
+ }).filter((slope) => Number.isFinite(slope) && slope >= 0);
202
+ if (slopes.length === 0) {
203
+ return {
204
+ tokenScale: 1,
205
+ fixedOverheadTokens: Math.max(0, tokensBefore - rawTokensBefore),
206
+ };
207
+ }
208
+ const tokenScale = Math.max(1, ...slopes);
209
+ const fixedOverheadTokens = Math.max(0, tokensBefore - tokenScale * rawTokensBefore, ...checkpoints.map((checkpoint) => checkpoint.contextTokens - tokenScale * checkpoint.rawTokens));
210
+ return { tokenScale, fixedOverheadTokens };
211
+ };
212
+ const adaptiveCutPlan = (branchEntries, tokensBefore, budget) => {
213
+ if (!Number.isFinite(budget.contextWindow) || budget.contextWindow <= 0)
214
+ return undefined;
215
+ const contextWindow = Math.floor(budget.contextWindow);
216
+ const reserveTokens = Math.max(0, Math.floor(budget.reserveTokens));
217
+ const keepRecentTokens = Math.max(0, Math.floor(budget.keepRecentTokens));
218
+ const targetContextRatio = Math.max(0.25, Math.min(0.85, budget.targetContextRatio));
219
+ const rawTokensBefore = rawContextTokens(branchEntries);
220
+ const { tokenScale, fixedOverheadTokens } = tokenCalibration(branchEntries, tokensBefore, rawTokensBefore);
221
+ const hardCeiling = Math.max(1, contextWindow - reserveTokens);
222
+ const safeCeiling = Math.max(1, Math.floor(hardCeiling * HARD_CEILING_SAFETY_RATIO));
223
+ const configuredTarget = Math.floor(contextWindow * targetContextRatio);
224
+ const keepRecentTarget = Math.ceil(fixedOverheadTokens + (keepRecentTokens + SUMMARY_RAW_TOKEN_BUDGET) * tokenScale);
225
+ const reductionCeiling = Math.max(1, Math.floor(tokensBefore * MAX_PRECOMPACTION_RATIO));
226
+ const targetContextTokens = Math.min(safeCeiling, reductionCeiling, Math.max(configuredTarget, keepRecentTarget));
227
+ const rawPostBudget = Math.max(0, Math.floor((targetContextTokens - fixedOverheadTokens) / tokenScale));
228
+ return {
229
+ contextWindow,
230
+ targetContextRatio,
231
+ targetContextTokens,
232
+ reserveTokens,
233
+ keepRecentTokens,
234
+ rawTokensBefore,
235
+ tokenScale,
236
+ fixedOverheadTokens,
237
+ recentRawTokenBudget: Math.max(0, rawPostBudget - SUMMARY_RAW_TOKEN_BUDGET),
238
+ };
239
+ };
240
+ const boundary = (summarized, firstKeptEntryId, budget) => {
137
241
  if (summarized.length === 0)
138
242
  return { ok: false, reason: "empty" };
139
243
  const first = summarized[0];
@@ -145,18 +249,64 @@ const boundary = (summarized, firstKeptEntryId) => {
145
249
  firstSummarizedEntryId: first.id,
146
250
  lastSummarizedEntryId: last.id,
147
251
  lastTimestamp: last.timestamp,
252
+ ...(budget ? { budget } : {}),
148
253
  };
149
254
  };
150
- export const computeCut = (branchEntries) => {
255
+ const computeAdaptiveCut = (branchEntries, live, plan) => {
256
+ const suffixTokens = new Array(live.length + 1).fill(0);
257
+ for (let index = live.length - 1; index >= 0; index--) {
258
+ suffixTokens[index] = suffixTokens[index + 1] + live[index].estimatedTokens;
259
+ }
260
+ const spans = callResultSpans(branchEntries);
261
+ // Pi replays entries contiguously from firstKeptEntryId, including compaction markers.
262
+ const previousCompactionIndex = findLastCompaction(branchEntries)?.index ?? -1;
263
+ let cutIndex = live.length;
264
+ for (let index = 1; index < live.length; index++) {
265
+ const item = live[index];
266
+ if (item.branchIndex <= previousCompactionIndex)
267
+ continue;
268
+ if (!item.cutPoint || suffixTokens[index] > plan.recentRawTokenBudget)
269
+ continue;
270
+ if (!closureSafe(spans, item.branchIndex))
271
+ continue;
272
+ cutIndex = index;
273
+ break;
274
+ }
275
+ const retainedRawTokens = suffixTokens[cutIndex] ?? 0;
276
+ const details = {
277
+ strategy: "adaptive",
278
+ contextWindow: plan.contextWindow,
279
+ targetContextRatio: plan.targetContextRatio,
280
+ targetContextTokens: plan.targetContextTokens,
281
+ reserveTokens: plan.reserveTokens,
282
+ keepRecentTokens: plan.keepRecentTokens,
283
+ rawTokensBefore: plan.rawTokensBefore,
284
+ tokenScale: plan.tokenScale,
285
+ fixedOverheadTokens: plan.fixedOverheadTokens,
286
+ retainedRawTokens,
287
+ };
288
+ if (cutIndex >= live.length) {
289
+ return boundary(live.map((item) => item.entry), "", details);
290
+ }
291
+ return boundary(live.slice(0, cutIndex).map((item) => item.entry), live[cutIndex].entry.id, details);
292
+ };
293
+ export const computeCut = (branchEntries, options) => {
151
294
  const live = collectLive(branchEntries);
152
295
  if (live.length === 0)
153
296
  return { ok: false, reason: "empty" };
297
+ if (options) {
298
+ const plan = adaptiveCutPlan(branchEntries, options.tokensBefore, options.budget);
299
+ if (plan)
300
+ return computeAdaptiveCut(branchEntries, live, plan);
301
+ }
154
302
  const lastBoundary = lastBoundaryIndex(live);
155
303
  if (lastBoundary <= 0)
156
304
  return boundary(live.map((item) => item.entry), "");
157
305
  const closed = closeCut(branchEntries, live, lastBoundary);
158
- if (closed <= 0)
306
+ const previousCompactionIndex = findLastCompaction(branchEntries)?.index ?? -1;
307
+ if (closed <= 0 || live[closed].branchIndex <= previousCompactionIndex) {
159
308
  return boundary(live.map((item) => item.entry), "");
309
+ }
160
310
  return boundary(live.slice(0, closed).map((item) => item.entry), live[closed].entry.id);
161
311
  };
162
312
  const isRecord = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
@@ -210,6 +360,20 @@ const isFabricV2Details = (value) => {
210
360
  && typeof value.stableAddresses.firstKeptEntryId === "string"
211
361
  && isEntryRange(value.stableAddresses.cumulativeSourceRange)
212
362
  && value.stableAddresses.recall === "session-entry-id-range"
363
+ && (value.budget === undefined || (isRecord(value.budget)
364
+ && value.budget.strategy === "adaptive"
365
+ && hasFiniteNumbers(value.budget, [
366
+ "contextWindow",
367
+ "targetContextRatio",
368
+ "targetContextTokens",
369
+ "reserveTokens",
370
+ "keepRecentTokens",
371
+ "rawTokensBefore",
372
+ "tokenScale",
373
+ "fixedOverheadTokens",
374
+ "retainedRawTokens",
375
+ "projectedTokensAfter",
376
+ ])))
213
377
  && typeof value.timestamp === "string";
214
378
  };
215
379
  export const fabricCompactionVersion = (details) => {
@@ -253,7 +417,7 @@ const priorFabricVersions = (entries) => {
253
417
  }
254
418
  return { v1, v2 };
255
419
  };
256
- export const compileFabricSummary = (branchEntries, tokensBefore, enrichers = NO_BUILTIN_ENRICHERS, customInstructions) => {
420
+ export const compileFabricSummary = (branchEntries, tokensBefore, enrichers = NO_BUILTIN_ENRICHERS, customInstructions, budget) => {
257
421
  const instructions = decodeCompactionInstructions(customInstructions);
258
422
  if (!instructions.ok) {
259
423
  return {
@@ -262,7 +426,7 @@ export const compileFabricSummary = (branchEntries, tokensBefore, enrichers = NO
262
426
  instructionError: instructions.error,
263
427
  };
264
428
  }
265
- const cut = computeCut(branchEntries);
429
+ const cut = computeCut(branchEntries, budget ? { tokensBefore, budget } : undefined);
266
430
  if (!cut.ok)
267
431
  return { cancel: true, reason: "fabric: nothing to compact" };
268
432
  const source = cumulativeSource(branchEntries, cut.firstKeptEntryId);
@@ -277,6 +441,22 @@ export const compileFabricSummary = (branchEntries, tokensBefore, enrichers = NO
277
441
  lastTimestamp: source.timestamp,
278
442
  requestLines: instructions.requestLines,
279
443
  });
444
+ const projectedTokensAfter = cut.budget
445
+ ? Math.ceil(cut.budget.fixedOverheadTokens
446
+ + (cut.budget.retainedRawTokens + Math.ceil(summary.length / 4))
447
+ * cut.budget.tokenScale)
448
+ : undefined;
449
+ const budgetDetails = cut.budget && projectedTokensAfter !== undefined
450
+ ? { ...cut.budget, projectedTokensAfter }
451
+ : undefined;
452
+ // The maximum-summary reservation should make this unreachable unless fixed overhead alone
453
+ // makes the target infeasible. Never persist an expanding or nominally unsafe result.
454
+ if (budgetDetails && budgetDetails.projectedTokensAfter > budgetDetails.targetContextTokens) {
455
+ return {
456
+ cancel: true,
457
+ reason: "fabric: no deterministic summary fits the adaptive context target",
458
+ };
459
+ }
280
460
  const versions = priorFabricVersions(branchEntries);
281
461
  const sectionHeaders = SECTION_HEADERS
282
462
  .filter(({ key }) => sections[key].length > 0)
@@ -312,6 +492,7 @@ export const compileFabricSummary = (branchEntries, tokensBefore, enrichers = NO
312
492
  cumulativeSourceRange: source.range,
313
493
  recall: "session-entry-id-range",
314
494
  },
495
+ ...(budgetDetails ? { budget: budgetDetails } : {}),
315
496
  timestamp: source.timestamp,
316
497
  };
317
498
  return {
@@ -343,7 +524,21 @@ export const registerCompactionHook = (pi, options) => {
343
524
  if (options.getEngine() !== "fabric")
344
525
  return;
345
526
  const { preparation, branchEntries } = event;
346
- const result = compileFabricSummary(branchEntries ?? [], preparation.tokensBefore, options.enrichers, event.customInstructions);
527
+ const contextWindow = context?.model?.contextWindow;
528
+ const targetContextRatio = options.getTargetContextRatio?.();
529
+ const settings = preparation.settings ?? DEFAULT_COMPACTION_SETTINGS;
530
+ const budget = typeof contextWindow === "number"
531
+ && Number.isFinite(contextWindow)
532
+ && typeof targetContextRatio === "number"
533
+ && Number.isFinite(targetContextRatio)
534
+ ? {
535
+ contextWindow,
536
+ targetContextRatio,
537
+ reserveTokens: settings.reserveTokens,
538
+ keepRecentTokens: settings.keepRecentTokens,
539
+ }
540
+ : undefined;
541
+ const result = compileFabricSummary(branchEntries ?? [], preparation.tokensBefore, options.enrichers, event.customInstructions, budget);
347
542
  if ("cancel" in result) {
348
543
  if (result.instructionError) {
349
544
  notifyInstructionError(context, result.instructionError);
@@ -1 +1 @@
1
- {"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/compaction/hook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/compaction/hook.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -85,6 +85,7 @@ interface FabricUiConfig {
85
85
  }
86
86
  interface FabricCompactionConfig {
87
87
  engine: FabricCompactionEngine;
88
+ targetContextRatio: number;
88
89
  }
89
90
  export interface FabricMeshConfig {
90
91
  enabled: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -78,6 +78,7 @@ export const DEFAULT_FABRIC_CONFIG = {
78
78
  },
79
79
  compaction: {
80
80
  engine: "fabric",
81
+ targetContextRatio: 0.65,
81
82
  },
82
83
  mesh: {
83
84
  enabled: true,
@@ -302,6 +303,7 @@ export const normalizeFabricConfig = (input) => {
302
303
  },
303
304
  compaction: {
304
305
  engine: compactionEngineValue(compaction.engine, DEFAULT_FABRIC_CONFIG.compaction.engine),
306
+ targetContextRatio: boundedFloat(compaction.targetContextRatio, DEFAULT_FABRIC_CONFIG.compaction.targetContextRatio, 0.25, 0.85),
305
307
  },
306
308
  mesh: {
307
309
  enabled: booleanValue(mesh.enabled, DEFAULT_FABRIC_CONFIG.mesh.enabled),