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.
- package/dist/compaction/hook.d.ts +28 -3
- package/dist/compaction/hook.d.ts.map +1 -1
- package/dist/compaction/hook.js +223 -28
- package/dist/compaction/hook.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/ui/core-tool-render.d.ts.map +1 -1
- package/dist/ui/core-tool-render.js +9 -2
- package/dist/ui/core-tool-render.js.map +1 -1
- package/dist/ui/settings.d.ts.map +1 -1
- package/dist/ui/settings.js +15 -0
- package/dist/ui/settings.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,27 @@
|
|
|
1
|
-
import type
|
|
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[]
|
|
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,
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/compaction/hook.ts"],"names":[],"mappings":"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"}
|
package/dist/compaction/hook.js
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import {
|
|
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 === "
|
|
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
|
-
|
|
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:
|
|
58
|
-
|
|
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
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
package/dist/config.d.ts.map
CHANGED
|
@@ -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),
|