omp-fabric 1.16.0 → 1.18.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/CHANGELOG.md +24 -0
- package/dist/chunks/{chunk-3U5ZVAIX.js → chunk-7OAFYAJC.js} +2 -2
- package/dist/chunks/{chunk-N2MMGFMD.js → chunk-C5JMLDIM.js} +2 -2
- package/dist/chunks/{chunk-XJMS4223.js → chunk-I3XEFTXH.js} +9 -11
- package/dist/chunks/chunk-I3XEFTXH.js.map +7 -0
- package/dist/chunks/{chunk-BSUEBCAM.js → chunk-QZJB7QTM.js} +2 -2
- package/dist/chunks/{chunk-BSUEBCAM.js.map → chunk-QZJB7QTM.js.map} +2 -2
- package/dist/chunks/{chunk-3NWBU3K7.js → chunk-VYB7ROEH.js} +2 -2
- package/dist/chunks/{chunk-D2ET33NE.js → chunk-WMB6QCWX.js} +2 -5
- package/dist/chunks/{chunk-D2ET33NE.js.map → chunk-WMB6QCWX.js.map} +2 -2
- package/dist/chunks/{chunk-ARRZTY7E.js → chunk-Z7N4PVTM.js} +2 -2
- package/dist/compaction/hook.d.ts +0 -2
- package/dist/compaction/hook.d.ts.map +1 -1
- package/dist/compaction/hook.js +1 -1
- package/dist/compaction/lcm-maintenance.d.ts +7 -7
- package/dist/compaction/lcm-maintenance.d.ts.map +1 -1
- package/dist/compaction/lcm-runtime.d.ts +4 -7
- package/dist/compaction/lcm-runtime.d.ts.map +1 -1
- package/dist/compaction/lcm-runtime.js +60 -58
- package/dist/compaction/lcm-runtime.js.map +2 -2
- package/dist/fabric-runtime-state.d.ts +0 -1
- package/dist/fabric-runtime-state.d.ts.map +1 -1
- package/dist/fabric-runtime-state.js +5 -5
- package/dist/fabric-runtime-state.js.map +2 -2
- package/dist/index.js +3 -3
- package/dist/memory/lcm-adapter.d.ts +0 -3
- package/dist/memory/lcm-adapter.d.ts.map +1 -1
- package/dist/providers/memory-provider.js +1 -1
- package/dist/residency/host.js +4 -4
- package/dist/residency/omp-entry.js +4 -4
- package/dist/storage/lcm-ledger.d.ts +1 -0
- package/dist/storage/lcm-ledger.d.ts.map +1 -1
- package/dist/ui/lcm-dashboard.js +1 -1
- package/dist/ui/lcm-panel.js +1 -1
- package/docs/compaction.md +10 -0
- package/package.json +1 -1
- package/dist/chunks/chunk-XJMS4223.js.map +0 -7
- /package/dist/chunks/{chunk-3U5ZVAIX.js.map → chunk-7OAFYAJC.js.map} +0 -0
- /package/dist/chunks/{chunk-N2MMGFMD.js.map → chunk-C5JMLDIM.js.map} +0 -0
- /package/dist/chunks/{chunk-3NWBU3K7.js.map → chunk-VYB7ROEH.js.map} +0 -0
- /package/dist/chunks/{chunk-ARRZTY7E.js.map → chunk-Z7N4PVTM.js.map} +0 -0
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
buildThinkingDigest,
|
|
13
13
|
snapshotHandoffSession,
|
|
14
14
|
thinkingTransferPolicy
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-C5JMLDIM.js";
|
|
16
16
|
import {
|
|
17
17
|
isFabricThinking
|
|
18
18
|
} from "./chunk-SKYNDRW5.js";
|
|
@@ -2803,4 +2803,4 @@ export {
|
|
|
2803
2803
|
resolveFabricIdentity,
|
|
2804
2804
|
MainAgentController
|
|
2805
2805
|
};
|
|
2806
|
-
//# sourceMappingURL=chunk-
|
|
2806
|
+
//# sourceMappingURL=chunk-Z7N4PVTM.js.map
|
|
@@ -91,7 +91,6 @@ export declare const compileFabricSummary: (branchEntries: SessionEntry[], token
|
|
|
91
91
|
export interface LcmCompactionInput {
|
|
92
92
|
branchEntries: readonly SessionEntry[];
|
|
93
93
|
sessionId: string;
|
|
94
|
-
branch: string | null;
|
|
95
94
|
firstKeptEntryId: string;
|
|
96
95
|
tokensBefore: number;
|
|
97
96
|
customInstructions?: string;
|
|
@@ -101,7 +100,6 @@ export interface LcmCompactionOutput {
|
|
|
101
100
|
firstKeptEntryId: string;
|
|
102
101
|
tokensBefore: number;
|
|
103
102
|
source: "ready-frontier" | "emergency";
|
|
104
|
-
branch: string | null;
|
|
105
103
|
details?: unknown;
|
|
106
104
|
}
|
|
107
105
|
interface LcmCompactionOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/compaction/hook.ts"],"names":[],"mappings":"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
|
|
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
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
fabricCompactionVersion,
|
|
5
5
|
rawContextTokens,
|
|
6
6
|
registerCompactionHook
|
|
7
|
-
} from "../chunks/chunk-
|
|
7
|
+
} from "../chunks/chunk-WMB6QCWX.js";
|
|
8
8
|
import "../chunks/chunk-3J7BKUNG.js";
|
|
9
9
|
import "../chunks/chunk-E4HNDTLM.js";
|
|
10
10
|
import "../chunks/chunk-3XPR2AZL.js";
|
|
@@ -13,7 +13,6 @@ export interface LcmNode {
|
|
|
13
13
|
nodeId: string;
|
|
14
14
|
projectKey: string;
|
|
15
15
|
sessionId: string;
|
|
16
|
-
branch: string | null;
|
|
17
16
|
kind: "leaf" | "condensed";
|
|
18
17
|
sources: LcmSourceRef[];
|
|
19
18
|
children: string[];
|
|
@@ -100,12 +99,13 @@ export declare class LcmMaintenance {
|
|
|
100
99
|
modelHash: string;
|
|
101
100
|
createdAt: number;
|
|
102
101
|
}>;
|
|
103
|
-
selectUpgrades(sessionId?: string, activeSources?: ReadonlySet<string>,
|
|
102
|
+
selectUpgrades(sessionId?: string, activeSources?: ReadonlySet<string>, limit?: number): LcmNode[];
|
|
104
103
|
ancestorsOf(nodeId: string): string[];
|
|
105
104
|
reopen(nodeId: string, force?: boolean): LcmJob;
|
|
106
105
|
listNodes(limit?: number, offset?: number): LcmNode[];
|
|
107
106
|
getNode(nodeId: string): LcmNode | undefined;
|
|
108
|
-
|
|
107
|
+
/** Scoped by the live source set when given; drops a condensed child and a contained node. */
|
|
108
|
+
getFrontier(sessionId?: string, activeSources?: ReadonlySet<string>): LcmNode[];
|
|
109
109
|
recentJobs(limit?: number): LcmJob[];
|
|
110
110
|
listJobs(limit?: number): LcmJob[];
|
|
111
111
|
jobForNode(nodeId: string): LcmJob | undefined;
|
|
@@ -117,10 +117,10 @@ export declare class LcmMaintenance {
|
|
|
117
117
|
retryFailedJobs(): LcmJob[];
|
|
118
118
|
recoverLegacyContentionRetirements(): LcmJob[];
|
|
119
119
|
recordFailure(job: LcmJob, error: unknown): LcmJob | undefined;
|
|
120
|
-
selectLeaf(entries?: RawEntry[],
|
|
121
|
-
selectCondensation(sessionId?: string, activeSources?: ReadonlySet<string
|
|
122
|
-
createLeaf(entries
|
|
123
|
-
createCondensed(children
|
|
120
|
+
selectLeaf(entries?: RawEntry[], activeSources?: ReadonlySet<string>): RawEntry[];
|
|
121
|
+
selectCondensation(sessionId?: string, activeSources?: ReadonlySet<string>): LcmNode[];
|
|
122
|
+
createLeaf(entries: RawEntry[]): LcmNode | undefined;
|
|
123
|
+
createCondensed(children: LcmNode[]): LcmNode | undefined;
|
|
124
124
|
private validateSources;
|
|
125
125
|
private sourceKey;
|
|
126
126
|
private publish;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lcm-maintenance.d.ts","sourceRoot":"","sources":["../../src/compaction/lcm-maintenance.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAmC,KAAK,cAAc,EAAsB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE9H,KAAK,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC/D,KAAK,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAClE,MAAM,WAAW,YAAY;IAAG,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;CAAE;AAE5G,MAAM,WAAW,OAAO;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,
|
|
1
|
+
{"version":3,"file":"lcm-maintenance.d.ts","sourceRoot":"","sources":["../../src/compaction/lcm-maintenance.ts"],"names":[],"mappings":"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"}
|
|
@@ -133,6 +133,7 @@ export declare class LcmRuntime {
|
|
|
133
133
|
private frontierCache;
|
|
134
134
|
/** One frontier walk shared by preview, coverage, and the coverage map. */
|
|
135
135
|
private frontierSnapshot;
|
|
136
|
+
/** Content identity, so a fork keeps the summaries built over the entries it inherited. */
|
|
136
137
|
private sourceKey;
|
|
137
138
|
/** Assembles what a compaction would serve now. Reads only; it never persists a node. */
|
|
138
139
|
preview(): LcmPreview;
|
|
@@ -155,9 +156,8 @@ export declare class LcmRuntime {
|
|
|
155
156
|
};
|
|
156
157
|
memoryContext(): {
|
|
157
158
|
summaries: {
|
|
158
|
-
listNodes: ({ sessionId,
|
|
159
|
+
listNodes: ({ sessionId, limit }: {
|
|
159
160
|
sessionId?: string;
|
|
160
|
-
branch?: string | null;
|
|
161
161
|
limit: number;
|
|
162
162
|
}) => {
|
|
163
163
|
text: string;
|
|
@@ -169,7 +169,6 @@ export declare class LcmRuntime {
|
|
|
169
169
|
nodeId: string;
|
|
170
170
|
projectKey: string;
|
|
171
171
|
sessionId: string;
|
|
172
|
-
branch: string | null;
|
|
173
172
|
kind: "leaf" | "condensed";
|
|
174
173
|
children: string[];
|
|
175
174
|
depth: number;
|
|
@@ -189,7 +188,6 @@ export declare class LcmRuntime {
|
|
|
189
188
|
nodeId: string;
|
|
190
189
|
projectKey: string;
|
|
191
190
|
sessionId: string;
|
|
192
|
-
branch: string | null;
|
|
193
191
|
kind: "leaf" | "condensed";
|
|
194
192
|
children: string[];
|
|
195
193
|
depth: number;
|
|
@@ -200,8 +198,7 @@ export declare class LcmRuntime {
|
|
|
200
198
|
createdAt: number;
|
|
201
199
|
} | undefined;
|
|
202
200
|
};
|
|
203
|
-
branchForSession: (
|
|
204
|
-
branch: string | null;
|
|
201
|
+
branchForSession: () => {
|
|
205
202
|
activeSourceKeys: string[];
|
|
206
203
|
ready: boolean;
|
|
207
204
|
} | undefined;
|
|
@@ -214,7 +211,7 @@ export declare class LcmRuntime {
|
|
|
214
211
|
searchRaw: (options: Parameters<LcmLedger["searchRaw"]>[1]) => import("../storage/lcm-ledger.js").LcmSearchPage;
|
|
215
212
|
};
|
|
216
213
|
};
|
|
217
|
-
frontier(sessionId?: string
|
|
214
|
+
frontier(sessionId?: string): LcmNode[];
|
|
218
215
|
raw(sessionId?: string): RawEntry[];
|
|
219
216
|
shutdown(): Promise<void>;
|
|
220
217
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lcm-runtime.d.ts","sourceRoot":"","sources":["../../src/compaction/lcm-runtime.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"lcm-runtime.d.ts","sourceRoot":"","sources":["../../src/compaction/lcm-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -517,8 +517,8 @@ ALTER TABLE summary_node_revisions_next RENAME TO summary_node_revisions;`);
|
|
|
517
517
|
readRawKeys(projectKey = this.project.key, sessionId, limit = 1e5) {
|
|
518
518
|
this.guard();
|
|
519
519
|
this.assertProjectKey(projectKey);
|
|
520
|
-
const rows = sessionId ? this.db.prepare("SELECT session_id, entry_id, revision FROM raw_entries WHERE project_key=? AND session_id=? ORDER BY created_at,revision,rowid LIMIT ?").all(projectKey, sessionId, limit) : this.db.prepare("SELECT session_id, entry_id, revision FROM raw_entries WHERE project_key=? ORDER BY created_at,session_id,entry_id,revision LIMIT ?").all(projectKey, limit);
|
|
521
|
-
return rows.map((row) => ({ sessionId: row.session_id, entryId: row.entry_id, revision: Number(row.revision) }));
|
|
520
|
+
const rows = sessionId ? this.db.prepare("SELECT session_id, entry_id, revision, content_hash FROM raw_entries WHERE project_key=? AND session_id=? ORDER BY created_at,revision,rowid LIMIT ?").all(projectKey, sessionId, limit) : this.db.prepare("SELECT session_id, entry_id, revision, content_hash FROM raw_entries WHERE project_key=? ORDER BY created_at,session_id,entry_id,revision LIMIT ?").all(projectKey, limit);
|
|
521
|
+
return rows.map((row) => ({ sessionId: row.session_id, entryId: row.entry_id, revision: Number(row.revision), contentHash: row.content_hash }));
|
|
522
522
|
}
|
|
523
523
|
/** Total stored payload bytes for one session, as a single aggregate. */
|
|
524
524
|
payloadBytes(projectKey = this.project.key, sessionId) {
|
|
@@ -1082,8 +1082,8 @@ var LcmMaintenance = class {
|
|
|
1082
1082
|
revisionsOf(nodeId) {
|
|
1083
1083
|
return this.ledger.readOnly((db) => db.prepare("SELECT revision, text, model_hash, created_at FROM summary_node_revisions WHERE node_id=? AND project_key=? ORDER BY revision").all(nodeId, this.projectKey).map((row) => ({ revision: Number(row.revision), text: row.text, modelHash: row.model_hash, createdAt: Number(row.created_at) })));
|
|
1084
1084
|
}
|
|
1085
|
-
selectUpgrades(sessionId, activeSources,
|
|
1086
|
-
return this.listNodes(1e5).filter((node) => node.state === "ready" && node.modelHash === "emergency" && node.policyHash === this.policyHash && (!sessionId || node.sessionId === sessionId) && (
|
|
1085
|
+
selectUpgrades(sessionId, activeSources, limit = 1) {
|
|
1086
|
+
return this.listNodes(1e5).filter((node) => node.state === "ready" && node.modelHash === "emergency" && node.policyHash === this.policyHash && (!sessionId || node.sessionId === sessionId) && (!activeSources || node.sources.every((source) => activeSources.has(this.sourceKey(source))))).sort((left, right) => left.depth - right.depth || left.nodeId.localeCompare(right.nodeId)).slice(0, limit);
|
|
1087
1087
|
}
|
|
1088
1088
|
ancestorsOf(nodeId) {
|
|
1089
1089
|
return this.ledger.readOnly((db) => {
|
|
@@ -1132,10 +1132,26 @@ var LcmMaintenance = class {
|
|
|
1132
1132
|
return node;
|
|
1133
1133
|
});
|
|
1134
1134
|
}
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
const
|
|
1138
|
-
|
|
1135
|
+
/** Scoped by the live source set when given; drops a condensed child and a contained node. */
|
|
1136
|
+
getFrontier(sessionId, activeSources) {
|
|
1137
|
+
const nodes = this.listNodes(1e5).filter((n) => n.state === "ready" && n.policyHash === this.policyHash && (!sessionId || activeSources !== void 0 || n.sessionId === sessionId) && (!activeSources || n.sources.every((s) => activeSources.has(this.sourceKey(s)))));
|
|
1138
|
+
const condensed = new Set(nodes.flatMap((n) => n.children));
|
|
1139
|
+
const standing = nodes.filter((n) => !condensed.has(n.nodeId));
|
|
1140
|
+
const ranked = [...standing].sort((a, b) => b.sources.length - a.sources.length || a.nodeId.localeCompare(b.nodeId));
|
|
1141
|
+
const kept = [];
|
|
1142
|
+
const shadowed = /* @__PURE__ */ new Set();
|
|
1143
|
+
for (const node of ranked) {
|
|
1144
|
+
const keys = node.sources.map((s) => this.sourceKey(s));
|
|
1145
|
+
if (kept.some((other) => {
|
|
1146
|
+
const held = new Set(other.sources.map((s) => this.sourceKey(s)));
|
|
1147
|
+
return keys.every((key) => held.has(key));
|
|
1148
|
+
})) {
|
|
1149
|
+
shadowed.add(node.nodeId);
|
|
1150
|
+
continue;
|
|
1151
|
+
}
|
|
1152
|
+
kept.push(node);
|
|
1153
|
+
}
|
|
1154
|
+
return standing.filter((n) => !shadowed.has(n.nodeId));
|
|
1139
1155
|
}
|
|
1140
1156
|
recentJobs(limit = 200) {
|
|
1141
1157
|
return this.ledger.readOnly((db) => db.prepare("SELECT payload FROM maintenance_jobs WHERE project_key=? ORDER BY CASE status WHEN 'failed' THEN 0 WHEN 'running' THEN 1 WHEN 'pending' THEN 2 ELSE 3 END, updated_at DESC LIMIT ?").all(this.projectKey, limit).map((r) => {
|
|
@@ -1248,12 +1264,12 @@ var LcmMaintenance = class {
|
|
|
1248
1264
|
return next;
|
|
1249
1265
|
});
|
|
1250
1266
|
}
|
|
1251
|
-
selectLeaf(entries = this.ledger.readRaw(this.projectKey),
|
|
1267
|
+
selectLeaf(entries = this.ledger.readRaw(this.projectKey), activeSources) {
|
|
1252
1268
|
const first = entries[0];
|
|
1253
1269
|
if (!first) return [];
|
|
1254
|
-
const nodes = this.listNodes(1e5).filter((n) => n.state !== "failed" && n.policyHash === this.policyHash && n.sessionId === first.sessionId
|
|
1270
|
+
const nodes = this.listNodes(1e5).filter((n) => n.state !== "failed" && n.policyHash === this.policyHash && (n.sessionId === first.sessionId || activeSources !== void 0 && n.state === "ready") && (!activeSources || n.sources.every((s) => activeSources.has(this.sourceKey(s)))));
|
|
1255
1271
|
const covered = new Set(nodes.flatMap((n) => n.sources.map((s) => this.sourceKey(s))));
|
|
1256
|
-
const candidates = entries.filter((e) => e.sessionId === first.sessionId &&
|
|
1272
|
+
const candidates = entries.filter((e) => e.sessionId === first.sessionId && !covered.has(this.sourceKey(e)));
|
|
1257
1273
|
const picked = [];
|
|
1258
1274
|
let chars = 0;
|
|
1259
1275
|
for (const entry of candidates) {
|
|
@@ -1265,8 +1281,8 @@ var LcmMaintenance = class {
|
|
|
1265
1281
|
}
|
|
1266
1282
|
return picked;
|
|
1267
1283
|
}
|
|
1268
|
-
selectCondensation(sessionId, activeSources
|
|
1269
|
-
const nodes = this.listNodes(1e5).filter((n) => n.state === "ready" && n.policyHash === this.policyHash && (!sessionId || n.sessionId === sessionId) && (!activeSources || n.sources.every((s) => activeSources.has(this.sourceKey(s))))
|
|
1284
|
+
selectCondensation(sessionId, activeSources) {
|
|
1285
|
+
const nodes = this.listNodes(1e5).filter((n) => n.state === "ready" && n.policyHash === this.policyHash && (!sessionId || n.sessionId === sessionId) && (!activeSources || n.sources.every((s) => activeSources.has(this.sourceKey(s)))));
|
|
1270
1286
|
const eligible = new Set(nodes.map((n) => n.nodeId));
|
|
1271
1287
|
const edges = this.ledger.readOnly((db) => db.prepare("SELECT e.parent_id,e.child_id FROM summary_edges e JOIN summary_nodes parent ON parent.node_id=e.parent_id AND parent.project_key=? JOIN summary_nodes child ON child.node_id=e.child_id AND child.project_key=parent.project_key WHERE parent.project_key=?").all(this.projectKey, this.projectKey));
|
|
1272
1288
|
const consumed = new Set(edges.filter((e) => eligible.has(e.parent_id)).map((e) => e.child_id));
|
|
@@ -1278,11 +1294,8 @@ var LcmMaintenance = class {
|
|
|
1278
1294
|
if (depth > 0 && sameDepth.length < 2) return [];
|
|
1279
1295
|
return candidates.filter((n) => n.projectKey === first.projectKey && n.sessionId === first.sessionId && n.depth === depth).sort((a, b) => a.nodeId.localeCompare(b.nodeId)).slice(0, this.maxChildren);
|
|
1280
1296
|
}
|
|
1281
|
-
createLeaf(entries
|
|
1297
|
+
createLeaf(entries) {
|
|
1282
1298
|
if (!entries.length) return void 0;
|
|
1283
|
-
const branches = new Set(entries.map((entry) => entry.branch).filter((value) => typeof value === "string"));
|
|
1284
|
-
if (branches.size > 1) throw new Error("cross-branch ranges");
|
|
1285
|
-
const branch = [...branches][0] ?? null;
|
|
1286
1299
|
const source = entries.map((e, index) => {
|
|
1287
1300
|
if (e.projectKey !== this.projectKey) throw new Error("entry project does not match ledger project");
|
|
1288
1301
|
const payload = parse(e.payloadJson);
|
|
@@ -1291,23 +1304,20 @@ var LcmMaintenance = class {
|
|
|
1291
1304
|
return { sessionId: e.sessionId, entryId: e.entryId, revision: e.revision, payloadHash: rawHash(e) };
|
|
1292
1305
|
});
|
|
1293
1306
|
this.validateSources(source);
|
|
1294
|
-
const node = { nodeId: `leaf:${hash3({ projectKey: this.projectKey, source,
|
|
1307
|
+
const node = { nodeId: `leaf:${hash3({ projectKey: this.projectKey, source, policyHash: this.policyHash })}`, projectKey: this.projectKey, sessionId: entries[0].sessionId, kind: "leaf", sources: source, children: [], depth: 0, sourceHash: hash3(source.map((s) => s.payloadHash)), policyHash: this.policyHash, modelHash: "", state: "pending", createdAt: this.now() };
|
|
1295
1308
|
this.publish(node);
|
|
1296
1309
|
return node;
|
|
1297
1310
|
}
|
|
1298
|
-
createCondensed(children
|
|
1311
|
+
createCondensed(children) {
|
|
1299
1312
|
if (!children.length) return void 0;
|
|
1300
1313
|
if (children.some((c) => c.state !== "ready")) throw new Error("condensation requires ready children");
|
|
1301
|
-
if (new Set(children.map((c) => c.sessionId)).size !== 1 || new Set(children.map((c) => c.depth)).size !== 1) throw new Error("
|
|
1314
|
+
if (new Set(children.map((c) => c.sessionId)).size !== 1 || new Set(children.map((c) => c.depth)).size !== 1) throw new Error("mixed session or depth");
|
|
1302
1315
|
const storedChildren = children.map((child) => this.getNode(child.nodeId));
|
|
1303
1316
|
if (storedChildren.some((child) => !child || child.projectKey !== this.projectKey)) throw new Error("child project does not match ledger project");
|
|
1304
1317
|
if (storedChildren.some((child, index) => JSON.stringify(child) !== JSON.stringify(children[index]))) throw new Error("child payload changed");
|
|
1305
|
-
const concreteBranches = new Set(storedChildren.map((c) => c.branch).filter((value) => typeof value === "string"));
|
|
1306
|
-
if (concreteBranches.size > 1) throw new Error("cross-branch ranges");
|
|
1307
|
-
const branch = [...concreteBranches][0] ?? null;
|
|
1308
1318
|
const source = [...new Map(storedChildren.flatMap((c) => c.sources).map((value) => [this.sourceKey(value), value])).values()];
|
|
1309
1319
|
this.validateSources(source);
|
|
1310
|
-
const node = { nodeId: `condensed:${hash3({ projectKey: this.projectKey, children: storedChildren.map((c) => c.nodeId),
|
|
1320
|
+
const node = { nodeId: `condensed:${hash3({ projectKey: this.projectKey, children: storedChildren.map((c) => c.nodeId), policyHash: this.policyHash })}`, projectKey: this.projectKey, sessionId: children[0].sessionId, kind: "condensed", sources: source, children: children.map((c) => c.nodeId), depth: Math.max(...children.map((c) => c.depth)) + 1, sourceHash: hash3(children.map((c) => c.sourceHash)), policyHash: this.policyHash, modelHash: "", state: "pending", createdAt: this.now() };
|
|
1311
1321
|
this.publish(node);
|
|
1312
1322
|
return node;
|
|
1313
1323
|
}
|
|
@@ -1320,7 +1330,7 @@ var LcmMaintenance = class {
|
|
|
1320
1330
|
if (new Set(source.map((s) => s.sessionId)).size !== 1) throw new Error("cross-session ranges");
|
|
1321
1331
|
}
|
|
1322
1332
|
sourceKey(source) {
|
|
1323
|
-
return `${source.
|
|
1333
|
+
return `${source.entryId}:${source.payloadHash}`;
|
|
1324
1334
|
}
|
|
1325
1335
|
publish(node) {
|
|
1326
1336
|
this.ledger.transaction((db) => {
|
|
@@ -1724,7 +1734,7 @@ var LcmRuntime = class {
|
|
|
1724
1734
|
if (!previous || previous.revision < entry.revision) latest.set(entry.entryId, entry);
|
|
1725
1735
|
}
|
|
1726
1736
|
this.activeSources = new Set(
|
|
1727
|
-
[...latest.values()].map((entry) =>
|
|
1737
|
+
[...latest.values()].map((entry) => this.sourceKey(entry))
|
|
1728
1738
|
);
|
|
1729
1739
|
this.activeSessionId = sessionId;
|
|
1730
1740
|
this.invalidateFrontier();
|
|
@@ -1768,7 +1778,6 @@ var LcmRuntime = class {
|
|
|
1768
1778
|
if (this.closed) return;
|
|
1769
1779
|
const entries = this.context.sessionManager.getBranch();
|
|
1770
1780
|
const sessionId = this.context.sessionManager.getSessionId();
|
|
1771
|
-
const branch = this.context.sessionManager.getLeafId();
|
|
1772
1781
|
const recorded = this.context.sessionManager.getRecordedCwd?.();
|
|
1773
1782
|
if (this.persistedSessionId !== sessionId) {
|
|
1774
1783
|
this.persisted = /* @__PURE__ */ new WeakMap();
|
|
@@ -1795,10 +1804,9 @@ var LcmRuntime = class {
|
|
|
1795
1804
|
content: message ? JSON.stringify(message.content ?? "") : payloadJson,
|
|
1796
1805
|
payloadJson,
|
|
1797
1806
|
parentEntryId: entry.parentId ?? null,
|
|
1798
|
-
branch,
|
|
1799
1807
|
...recorded || this.context.cwd ? { recordedCwd: recorded || this.context.cwd } : {}
|
|
1800
1808
|
});
|
|
1801
|
-
const key =
|
|
1809
|
+
const key = this.sourceKey(stored);
|
|
1802
1810
|
this.persisted.set(entry, { key, contentHash });
|
|
1803
1811
|
active.add(key);
|
|
1804
1812
|
}
|
|
@@ -1886,7 +1894,7 @@ var LcmRuntime = class {
|
|
|
1886
1894
|
try {
|
|
1887
1895
|
if (!this.maintenance.withinBudget(sessionId)) return void 0;
|
|
1888
1896
|
if (this.maintenanceOccupancyReached()) return "occupancy";
|
|
1889
|
-
if (this.actionableJobs(sessionId,
|
|
1897
|
+
if (this.actionableJobs(sessionId, 1).length > 0) return "jobs";
|
|
1890
1898
|
const { active, covered } = this.coverage();
|
|
1891
1899
|
return active - covered >= Math.max(1, this.options.maxLeafEntries ?? DEFAULT_LEAF_ENTRIES) ? "backlog" : void 0;
|
|
1892
1900
|
} catch (error) {
|
|
@@ -1918,13 +1926,12 @@ var LcmRuntime = class {
|
|
|
1918
1926
|
this.degradedError = error;
|
|
1919
1927
|
});
|
|
1920
1928
|
}
|
|
1921
|
-
actionableJobs(sessionId,
|
|
1929
|
+
actionableJobs(sessionId, limit) {
|
|
1922
1930
|
const found = [];
|
|
1923
1931
|
if (limit <= 0) return found;
|
|
1924
1932
|
for (const job of this.maintenance.claimableJobs(sessionId, CLAIMABLE_JOB_LIMIT)) {
|
|
1925
1933
|
const node = this.maintenance.getNode(job.nodeId);
|
|
1926
1934
|
if (!node || node.sessionId !== sessionId) continue;
|
|
1927
|
-
if (branch !== null && node.branch !== branch && node.branch !== null) continue;
|
|
1928
1935
|
if (!node.sources.every((source) => this.activeSources.has(this.sourceKey(source)))) continue;
|
|
1929
1936
|
found.push({ job, node });
|
|
1930
1937
|
if (found.length >= limit) break;
|
|
@@ -1960,7 +1967,7 @@ var LcmRuntime = class {
|
|
|
1960
1967
|
const passes = Math.max(1, this.options.maxMaintenancePasses ?? 4);
|
|
1961
1968
|
const runDeadline = Date.now() + Math.max(1, this.options.maintenanceRunSeconds ?? 60) * 1e3;
|
|
1962
1969
|
const raw = this.ledger.readRaw(this.projectKey, sessionId).filter(
|
|
1963
|
-
(entry) => this.activeSources.has(
|
|
1970
|
+
(entry) => this.activeSources.has(this.sourceKey(entry))
|
|
1964
1971
|
);
|
|
1965
1972
|
const inputFor = (node) => {
|
|
1966
1973
|
if (node.kind === "condensed") return node.children.map((id) => this.maintenance.getNode(id)?.text ?? "").filter(Boolean).join("\n\n");
|
|
@@ -2000,7 +2007,7 @@ var LcmRuntime = class {
|
|
|
2000
2007
|
};
|
|
2001
2008
|
this.reclaimExpiredLeases();
|
|
2002
2009
|
for (let pass = 0; pass < passes && !this.closed && Date.now() < runDeadline; pass += 1) {
|
|
2003
|
-
const leafCandidate = this.maintenance.createLeaf(this.maintenance.selectLeaf(raw, this.
|
|
2010
|
+
const leafCandidate = this.maintenance.createLeaf(this.maintenance.selectLeaf(raw, this.activeSources));
|
|
2004
2011
|
const leaf = leafCandidate ? this.maintenance.getNode(leafCandidate.nodeId) : void 0;
|
|
2005
2012
|
const batch = [];
|
|
2006
2013
|
const queued = /* @__PURE__ */ new Set();
|
|
@@ -2011,13 +2018,13 @@ var LcmRuntime = class {
|
|
|
2011
2018
|
queued.add(job.jobId);
|
|
2012
2019
|
}
|
|
2013
2020
|
}
|
|
2014
|
-
const pending = this.actionableJobs(sessionId,
|
|
2021
|
+
const pending = this.actionableJobs(sessionId, passes);
|
|
2015
2022
|
for (const item of pending) if (!queued.has(item.job.jobId)) {
|
|
2016
2023
|
queued.add(item.job.jobId);
|
|
2017
2024
|
batch.push(item);
|
|
2018
2025
|
}
|
|
2019
2026
|
await dispatch(batch);
|
|
2020
|
-
const children = this.maintenance.selectCondensation(sessionId, this.activeSources
|
|
2027
|
+
const children = this.maintenance.selectCondensation(sessionId, this.activeSources);
|
|
2021
2028
|
if (children.length >= fanIn) {
|
|
2022
2029
|
const node = this.maintenance.createCondensed(children);
|
|
2023
2030
|
if (node) {
|
|
@@ -2026,7 +2033,7 @@ var LcmRuntime = class {
|
|
|
2026
2033
|
}
|
|
2027
2034
|
}
|
|
2028
2035
|
if (!leaf && pending.length === 0 && children.length < fanIn) {
|
|
2029
|
-
const upgrades = this.maintenance.selectUpgrades(sessionId, this.activeSources,
|
|
2036
|
+
const upgrades = this.maintenance.selectUpgrades(sessionId, this.activeSources, 1);
|
|
2030
2037
|
const upgrade = upgrades[0];
|
|
2031
2038
|
if (!upgrade) break;
|
|
2032
2039
|
const job = this.maintenance.reopen(upgrade.nodeId);
|
|
@@ -2056,8 +2063,7 @@ var LcmRuntime = class {
|
|
|
2056
2063
|
role: message?.role ?? entry.type,
|
|
2057
2064
|
content: message ? JSON.stringify(message.content ?? "") : payloadJson,
|
|
2058
2065
|
payloadJson,
|
|
2059
|
-
parentEntryId: entry.parentId ?? null
|
|
2060
|
-
branch: input.branch
|
|
2066
|
+
parentEntryId: entry.parentId ?? null
|
|
2061
2067
|
});
|
|
2062
2068
|
persistedEntries.set(`${entry.id}:${stored.payloadHash}`, stored);
|
|
2063
2069
|
}
|
|
@@ -2071,18 +2077,17 @@ var LcmRuntime = class {
|
|
|
2071
2077
|
if (!stored) throw new Error("compaction source was not persisted");
|
|
2072
2078
|
return stored;
|
|
2073
2079
|
});
|
|
2074
|
-
const activeSources = new Set(selectedStored.map((entry) =>
|
|
2075
|
-
const frontier = this.maintenance.getFrontier(input.sessionId,
|
|
2076
|
-
const coveredSources = new Set(frontier.flatMap((node) => node.sources.map((source) =>
|
|
2080
|
+
const activeSources = new Set(selectedStored.map((entry) => this.sourceKey(entry)));
|
|
2081
|
+
const frontier = this.maintenance.getFrontier(input.sessionId, activeSources);
|
|
2082
|
+
const coveredSources = new Set(frontier.flatMap((node) => node.sources.map((source) => this.sourceKey(source))));
|
|
2077
2083
|
const summary = renderAddressedFrontier(frontier, requestLines);
|
|
2078
2084
|
const instructionDetails = instructions.ok && (instructions.requestLines.length > 0 || instructions.policy.preserveCount > 0) ? { instructionPolicy: instructions.policy } : void 0;
|
|
2079
|
-
if (summary && selectedStored.every((entry) => coveredSources.has(
|
|
2085
|
+
if (summary && selectedStored.every((entry) => coveredSources.has(this.sourceKey(entry)))) {
|
|
2080
2086
|
return {
|
|
2081
2087
|
summary,
|
|
2082
2088
|
firstKeptEntryId: input.firstKeptEntryId,
|
|
2083
2089
|
tokensBefore: input.tokensBefore,
|
|
2084
2090
|
source: "ready-frontier",
|
|
2085
|
-
branch: input.branch,
|
|
2086
2091
|
...instructionDetails ? { details: instructionDetails } : {}
|
|
2087
2092
|
};
|
|
2088
2093
|
}
|
|
@@ -2094,14 +2099,13 @@ var LcmRuntime = class {
|
|
|
2094
2099
|
if (!leaf) throw new Error("LCM emergency fallback node was not created");
|
|
2095
2100
|
const persisted = this.maintenance.getNode(leaf.nodeId);
|
|
2096
2101
|
if (persisted?.state === "ready") {
|
|
2097
|
-
if (
|
|
2102
|
+
if (JSON.stringify(persisted.sources) !== JSON.stringify(sources)) throw new Error("LCM emergency fallback provenance mismatch");
|
|
2098
2103
|
if (!persisted.text) throw new Error("LCM emergency fallback text is missing");
|
|
2099
2104
|
return {
|
|
2100
2105
|
summary: persisted.text,
|
|
2101
2106
|
firstKeptEntryId: input.firstKeptEntryId,
|
|
2102
2107
|
tokensBefore: input.tokensBefore,
|
|
2103
2108
|
source: "emergency",
|
|
2104
|
-
branch: input.branch,
|
|
2105
2109
|
...instructionDetails ? { details: instructionDetails } : {}
|
|
2106
2110
|
};
|
|
2107
2111
|
}
|
|
@@ -2114,7 +2118,6 @@ var LcmRuntime = class {
|
|
|
2114
2118
|
firstKeptEntryId: input.firstKeptEntryId,
|
|
2115
2119
|
tokensBefore: input.tokensBefore,
|
|
2116
2120
|
source: "emergency",
|
|
2117
|
-
branch: input.branch,
|
|
2118
2121
|
...instructionDetails ? { details: instructionDetails } : {}
|
|
2119
2122
|
};
|
|
2120
2123
|
} catch (error) {
|
|
@@ -2124,7 +2127,6 @@ var LcmRuntime = class {
|
|
|
2124
2127
|
firstKeptEntryId: input.firstKeptEntryId,
|
|
2125
2128
|
tokensBefore: input.tokensBefore,
|
|
2126
2129
|
source: "emergency",
|
|
2127
|
-
branch: input.branch,
|
|
2128
2130
|
...instructionDetails ? { details: instructionDetails } : {}
|
|
2129
2131
|
};
|
|
2130
2132
|
}
|
|
@@ -2284,18 +2286,18 @@ var LcmRuntime = class {
|
|
|
2284
2286
|
/** One frontier walk shared by preview, coverage, and the coverage map. */
|
|
2285
2287
|
frontierSnapshot() {
|
|
2286
2288
|
const sessionId = this.activeSessionId ?? "";
|
|
2287
|
-
const branch = this.context.sessionManager.getLeafId();
|
|
2288
2289
|
const cached = this.frontierCache;
|
|
2289
|
-
if (cached && cached.sessionId === sessionId &&
|
|
2290
|
+
if (cached && cached.sessionId === sessionId && Date.now() - cached.at < 250) {
|
|
2290
2291
|
return { nodes: cached.nodes, covered: cached.covered };
|
|
2291
2292
|
}
|
|
2292
|
-
const nodes = sessionId ? this.maintenance.getFrontier(sessionId,
|
|
2293
|
+
const nodes = sessionId ? this.maintenance.getFrontier(sessionId, this.activeSources) : [];
|
|
2293
2294
|
const covered = new Set(nodes.flatMap((node) => node.sources.map((source) => this.sourceKey(source))));
|
|
2294
|
-
this.frontierCache = { at: Date.now(), sessionId,
|
|
2295
|
+
this.frontierCache = { at: Date.now(), sessionId, nodes, covered };
|
|
2295
2296
|
return { nodes, covered };
|
|
2296
2297
|
}
|
|
2298
|
+
/** Content identity, so a fork keeps the summaries built over the entries it inherited. */
|
|
2297
2299
|
sourceKey(source) {
|
|
2298
|
-
return `${source.
|
|
2300
|
+
return `${source.entryId}:${source.payloadHash}`;
|
|
2299
2301
|
}
|
|
2300
2302
|
/** Assembles what a compaction would serve now. Reads only; it never persists a node. */
|
|
2301
2303
|
preview() {
|
|
@@ -2318,7 +2320,7 @@ var LcmRuntime = class {
|
|
|
2318
2320
|
if (!sessionId) return [];
|
|
2319
2321
|
const { covered } = this.frontierSnapshot();
|
|
2320
2322
|
return this.ledger.readRawKeys(this.projectKey, sessionId, limit).map((entry) => {
|
|
2321
|
-
const key = this.sourceKey(entry);
|
|
2323
|
+
const key = this.sourceKey({ entryId: entry.entryId, payloadHash: entry.contentHash });
|
|
2322
2324
|
return { key, covered: covered.has(key) };
|
|
2323
2325
|
});
|
|
2324
2326
|
}
|
|
@@ -2358,17 +2360,17 @@ var LcmRuntime = class {
|
|
|
2358
2360
|
},
|
|
2359
2361
|
...this.activeSessionId === void 0 ? {} : { currentSessionId: this.activeSessionId },
|
|
2360
2362
|
summaries: {
|
|
2361
|
-
listNodes: ({ sessionId,
|
|
2363
|
+
listNodes: ({ sessionId, limit }) => this.maintenance.getFrontier(sessionId, sessionId === this.activeSessionId ? this.activeSources : void 0).slice(0, limit).map((node) => ({ ...node, text: node.text ?? "", sources: node.sources.map((source) => ({ entryId: source.entryId, revision: source.revision, contentHash: source.payloadHash })) })),
|
|
2362
2364
|
getNode: (nodeId) => {
|
|
2363
2365
|
const node = this.maintenance.getNode(nodeId);
|
|
2364
2366
|
return node ? { ...node, text: node.text ?? "", sources: node.sources.map((source) => ({ entryId: source.entryId, revision: source.revision, contentHash: source.payloadHash })) } : void 0;
|
|
2365
2367
|
}
|
|
2366
2368
|
},
|
|
2367
|
-
branchForSession: (
|
|
2369
|
+
branchForSession: () => this.activeSessionId === void 0 ? void 0 : { activeSourceKeys: [...this.activeSources], ready: this.status === "healthy" }
|
|
2368
2370
|
};
|
|
2369
2371
|
}
|
|
2370
|
-
frontier(sessionId
|
|
2371
|
-
return this.maintenance.getFrontier(sessionId,
|
|
2372
|
+
frontier(sessionId) {
|
|
2373
|
+
return this.maintenance.getFrontier(sessionId, sessionId === this.activeSessionId ? this.activeSources : void 0);
|
|
2372
2374
|
}
|
|
2373
2375
|
raw(sessionId) {
|
|
2374
2376
|
return this.ledger.readRaw(this.projectKey, sessionId);
|