instar 1.3.364 → 1.3.365
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/core/CoherenceJournalReader.d.ts +25 -0
- package/dist/core/CoherenceJournalReader.d.ts.map +1 -1
- package/dist/core/CoherenceJournalReader.js +72 -0
- package/dist/core/CoherenceJournalReader.js.map +1 -1
- package/dist/core/WorkingSetManifest.d.ts +105 -0
- package/dist/core/WorkingSetManifest.d.ts.map +1 -0
- package/dist/core/WorkingSetManifest.js +237 -0
- package/dist/core/WorkingSetManifest.js.map +1 -0
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +2 -2
- package/upgrades/1.3.365.md +61 -0
- package/upgrades/side-effects/working-set-manifest-p21.md +89 -0
|
@@ -72,6 +72,22 @@ export interface ReaderQueryResult {
|
|
|
72
72
|
skippedCorrupt: number;
|
|
73
73
|
truncated: boolean;
|
|
74
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Own-stream autonomous-run evidence for ONE topic (P2 §3.1 source 2).
|
|
77
|
+
* Own stream ONLY by construction — `query()`'s merged own+replica view is
|
|
78
|
+
* deliberately not used: replicas NOMINATE, they never feed THIS machine's
|
|
79
|
+
* manifest (WORKING-SET-HANDOFF-SPEC §3.1).
|
|
80
|
+
*/
|
|
81
|
+
export interface OwnAutonomousRuns {
|
|
82
|
+
/** Own-stream autonomous-run entries for the topic, newest-first. */
|
|
83
|
+
entries: ReaderEntry[];
|
|
84
|
+
/** True when the newest `started` run has no matching `stopped`. */
|
|
85
|
+
liveRun: boolean;
|
|
86
|
+
/** Union of jailed artifactPaths across the entries, deduped, order-stable. */
|
|
87
|
+
artifactPaths: string[];
|
|
88
|
+
/** Byte/archive bound hit — the answer may be missing older evidence. */
|
|
89
|
+
truncated: boolean;
|
|
90
|
+
}
|
|
75
91
|
export interface CoherenceJournalReaderConfig {
|
|
76
92
|
/** Absolute path to the agent's `.instar/` directory (the stateDir). */
|
|
77
93
|
stateDir: string;
|
|
@@ -107,6 +123,15 @@ export declare class CoherenceJournalReader {
|
|
|
107
123
|
private encodeCursor;
|
|
108
124
|
private decodeCursor;
|
|
109
125
|
query(opts?: ReaderQueryOpts): ReaderQueryResult;
|
|
126
|
+
/**
|
|
127
|
+
* P2 §3.1: the working-set manifest's journal-evidence source. Reads the
|
|
128
|
+
* OWN stream only (source === 'own', machineId === ownMachineId — never a
|
|
129
|
+
* replica, never a peer's stream that happens to sit in our own dir),
|
|
130
|
+
* kind `autonomous-run`, filtered to `topic`. Bounded exactly like query()
|
|
131
|
+
* (shared byte ceiling + archive cap); over-bound → truncated: true, the
|
|
132
|
+
* caller treats the evidence as partial rather than failing.
|
|
133
|
+
*/
|
|
134
|
+
readOwnAutonomousRuns(topic: number, ownMachineId: string): OwnAutonomousRuns;
|
|
110
135
|
/** The opaque cursor for the LAST entry of a page (callers echo it back). */
|
|
111
136
|
cursorFor(entry: ReaderEntry, isPlacement: boolean): string;
|
|
112
137
|
private epochOf;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoherenceJournalReader.d.ts","sourceRoot":"","sources":["../../src/core/CoherenceJournalReader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CoherenceJournalReader.d.ts","sourceRoot":"","sources":["../../src/core/CoherenceJournalReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -263,6 +263,78 @@ export class CoherenceJournalReader {
|
|
|
263
263
|
truncated,
|
|
264
264
|
};
|
|
265
265
|
}
|
|
266
|
+
/**
|
|
267
|
+
* P2 §3.1: the working-set manifest's journal-evidence source. Reads the
|
|
268
|
+
* OWN stream only (source === 'own', machineId === ownMachineId — never a
|
|
269
|
+
* replica, never a peer's stream that happens to sit in our own dir),
|
|
270
|
+
* kind `autonomous-run`, filtered to `topic`. Bounded exactly like query()
|
|
271
|
+
* (shared byte ceiling + archive cap); over-bound → truncated: true, the
|
|
272
|
+
* caller treats the evidence as partial rather than failing.
|
|
273
|
+
*/
|
|
274
|
+
readOwnAutonomousRuns(topic, ownMachineId) {
|
|
275
|
+
const streams = this.enumerate(ownMachineId, 'autonomous-run').filter((s) => s.source === 'own');
|
|
276
|
+
const collected = [];
|
|
277
|
+
let truncated = false;
|
|
278
|
+
let bytesRemaining = this.byteCeiling;
|
|
279
|
+
for (const group of this.groupStreams(streams)) {
|
|
280
|
+
const ordered = this.orderNewestFirst(group.files);
|
|
281
|
+
let archivesScanned = 0;
|
|
282
|
+
for (const f of ordered) {
|
|
283
|
+
if (bytesRemaining <= 0) {
|
|
284
|
+
truncated = true;
|
|
285
|
+
break;
|
|
286
|
+
}
|
|
287
|
+
if (f.isArchive && archivesScanned >= this.archiveCap) {
|
|
288
|
+
truncated = true;
|
|
289
|
+
break;
|
|
290
|
+
}
|
|
291
|
+
if (f.isArchive)
|
|
292
|
+
archivesScanned++;
|
|
293
|
+
const read = readTailTolerant(this.io, f.file, READER_MAX_LIMIT, bytesRemaining);
|
|
294
|
+
if (read.truncated)
|
|
295
|
+
truncated = true;
|
|
296
|
+
bytesRemaining -= Math.min(this.safeSize(f.file), bytesRemaining);
|
|
297
|
+
for (const e of read.entries) {
|
|
298
|
+
if (e.topic !== topic)
|
|
299
|
+
continue;
|
|
300
|
+
collected.push({ ...e, source: 'own' });
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
const sorted = this.sortMerged(collected, false); // newest-first, (ts, machineId, seq)
|
|
305
|
+
// liveRun: the newest run's `started` with no `stopped` for the same runId.
|
|
306
|
+
// Scanning newest-first, the first action we see per runId is its LATEST
|
|
307
|
+
// state — a runId whose first-seen action is 'started' is still running.
|
|
308
|
+
let liveRun = false;
|
|
309
|
+
const seenRuns = new Set();
|
|
310
|
+
for (const e of sorted) {
|
|
311
|
+
const runId = typeof e.data?.runId === 'string' ? e.data.runId : '';
|
|
312
|
+
const action = e.data?.action;
|
|
313
|
+
if (!runId || seenRuns.has(runId))
|
|
314
|
+
continue;
|
|
315
|
+
seenRuns.add(runId);
|
|
316
|
+
if (action === 'started') {
|
|
317
|
+
liveRun = true;
|
|
318
|
+
break;
|
|
319
|
+
}
|
|
320
|
+
if (action === 'stopped')
|
|
321
|
+
break; // newest run is finished → not live
|
|
322
|
+
}
|
|
323
|
+
// artifactPaths union (write-time jailed already), deduped, newest-first
|
|
324
|
+
// stable order.
|
|
325
|
+
const seenPaths = new Set();
|
|
326
|
+
const artifactPaths = [];
|
|
327
|
+
for (const e of sorted) {
|
|
328
|
+
const paths = Array.isArray(e.data?.artifactPaths) ? e.data.artifactPaths : [];
|
|
329
|
+
for (const p of paths) {
|
|
330
|
+
if (typeof p !== 'string' || !p || seenPaths.has(p))
|
|
331
|
+
continue;
|
|
332
|
+
seenPaths.add(p);
|
|
333
|
+
artifactPaths.push(p);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
return { entries: sorted, liveRun, artifactPaths, truncated };
|
|
337
|
+
}
|
|
266
338
|
/** The opaque cursor for the LAST entry of a page (callers echo it back). */
|
|
267
339
|
cursorFor(entry, isPlacement) {
|
|
268
340
|
const c = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoherenceJournalReader.js","sourceRoot":"","sources":["../../src/core/CoherenceJournalReader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CoherenceJournalReader.js","sourceRoot":"","sources":["../../src/core/CoherenceJournalReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WorkingSetManifest — P2.1 of multi-machine coherence: pure, on-demand
|
|
3
|
+
* computation of "what files make up this topic's workspace on THIS machine".
|
|
4
|
+
*
|
|
5
|
+
* Spec: docs/specs/WORKING-SET-HANDOFF-SPEC.md §3.1 (manifest — computed,
|
|
6
|
+
* never declared). No new persistent store; no willpower-dependent
|
|
7
|
+
* declarations. Sources, deduped:
|
|
8
|
+
* 1. Filesystem convention: `autonomous/<topic>.local.md` + `autonomous/
|
|
9
|
+
* <topic>.*` (bounded readdir of the convention dir — never recursion).
|
|
10
|
+
* 2. Journal evidence: jailed `artifactPaths` from the topic's OWN-stream
|
|
11
|
+
* autonomous-run entries (CoherenceJournalReader.readOwnAutonomousRuns —
|
|
12
|
+
* injected by the caller so this module stays pure).
|
|
13
|
+
*
|
|
14
|
+
* Discipline (§3.1):
|
|
15
|
+
* - Every candidate is canonicalized + re-jailed HERE even though journal
|
|
16
|
+
* paths were jailed at write time (jails are enforced at the data's birth
|
|
17
|
+
* AND at every serve boundary — defense in depth, P1 invariant).
|
|
18
|
+
* - `mtime` is DISPLAY-ONLY (P1's `ts` treatment): every diff/skip decision
|
|
19
|
+
* downstream keys on sha256 exclusively.
|
|
20
|
+
* - The credential-shape scan runs over each candidate file's BYTES; a
|
|
21
|
+
* flagged file is LISTED `secretFlagged: true` and never transferred — an
|
|
22
|
+
* honest, surfaced refusal, never a silent skip. The scan is a
|
|
23
|
+
* LEAK-REDUCTION filter, not the security boundary (the boundary is the
|
|
24
|
+
* same-operator peer posture — §3.1/§5).
|
|
25
|
+
* - When the topic's own journal shows a live autonomous run, EVERY entry is
|
|
26
|
+
* `liveSource: true` (any of them is plausibly mid-write) — the pull
|
|
27
|
+
* re-fires on the run's `stopped` (§3.4).
|
|
28
|
+
* - Bounded everywhere: per-file caps (headline exemption for the topic's
|
|
29
|
+
* `.local.md`), maxFiles, hash ceiling. Over-cap entries are LISTED
|
|
30
|
+
* `tooLarge: true` — observability is not delivery.
|
|
31
|
+
*/
|
|
32
|
+
import type { OwnAutonomousRuns } from './CoherenceJournalReader.js';
|
|
33
|
+
/** §3.7 defaults (mirrored in ConfigDefaults.coherenceJournal.workingSet). */
|
|
34
|
+
export declare const DEFAULT_WORKING_SET_CAPS: WorkingSetCaps;
|
|
35
|
+
/**
|
|
36
|
+
* Above this, a file's sha256 is reported `null` rather than paying an
|
|
37
|
+
* unbounded hash at manifest time (a tooLarge file never transfers anyway,
|
|
38
|
+
* so the hash is disclosure metadata, not verification material).
|
|
39
|
+
*/
|
|
40
|
+
export declare const HASH_BYTE_CEILING: number;
|
|
41
|
+
export interface WorkingSetCaps {
|
|
42
|
+
maxFileBytes: number;
|
|
43
|
+
headlineFileBytes: number;
|
|
44
|
+
maxFiles: number;
|
|
45
|
+
/** TOTAL-SET transfer budget — enforced by the PULL layer, carried here so
|
|
46
|
+
* both sides quote one number (§3.2 assembled-bytes basis). */
|
|
47
|
+
maxTotalBytes: number;
|
|
48
|
+
}
|
|
49
|
+
export interface WorkingSetEntry {
|
|
50
|
+
/** Relative to the stateDir; receiver treats it as hostile input (§3.2). */
|
|
51
|
+
relPath: string;
|
|
52
|
+
bytes: number;
|
|
53
|
+
/** null only above HASH_BYTE_CEILING (honest, bounded compute). */
|
|
54
|
+
sha256: string | null;
|
|
55
|
+
/** ISO — DISPLAY-ONLY, never a decision key (§3.1). */
|
|
56
|
+
mtime: string;
|
|
57
|
+
tooLarge?: boolean;
|
|
58
|
+
secretFlagged?: boolean;
|
|
59
|
+
liveSource?: boolean;
|
|
60
|
+
}
|
|
61
|
+
export interface WorkingSetManifestResult {
|
|
62
|
+
topic: number;
|
|
63
|
+
computedAt: string;
|
|
64
|
+
entries: WorkingSetEntry[];
|
|
65
|
+
/** The topic's own journal shows a still-active autonomous run. */
|
|
66
|
+
liveRun: boolean;
|
|
67
|
+
/** Journal evidence was byte/archive-bounded — older artifacts may be missing. */
|
|
68
|
+
evidenceTruncated: boolean;
|
|
69
|
+
/** Candidates dropped past maxFiles (counted, never silent — §3.1). */
|
|
70
|
+
filesTruncated: number;
|
|
71
|
+
/** Candidates rejected by the compute-time jail. */
|
|
72
|
+
jailRejected: number;
|
|
73
|
+
/** Journal-evidenced paths no longer on disk (rotated/deleted/never durable). */
|
|
74
|
+
goneFromDisk: number;
|
|
75
|
+
/** Sum of bytes the pull layer may actually move (excludes tooLarge /
|
|
76
|
+
* secretFlagged / liveSource entries). */
|
|
77
|
+
transferableBytes: number;
|
|
78
|
+
}
|
|
79
|
+
/** Minimal fs seam (tests). */
|
|
80
|
+
export interface WorkingSetFs {
|
|
81
|
+
readdirSync: (dir: string) => string[];
|
|
82
|
+
lstatSync: (p: string) => {
|
|
83
|
+
isFile(): boolean;
|
|
84
|
+
isSymbolicLink(): boolean;
|
|
85
|
+
size: number;
|
|
86
|
+
mtimeMs: number;
|
|
87
|
+
};
|
|
88
|
+
existsSync: (p: string) => boolean;
|
|
89
|
+
realpathSync: (p: string) => string;
|
|
90
|
+
readFileSync: (p: string) => Buffer;
|
|
91
|
+
}
|
|
92
|
+
export interface ComputeWorkingSetOpts {
|
|
93
|
+
/** Absolute path to the agent's `.instar/` directory. */
|
|
94
|
+
stateDir: string;
|
|
95
|
+
topic: number;
|
|
96
|
+
/** Own-stream journal evidence, injected by the caller (keeps this pure). */
|
|
97
|
+
runs: OwnAutonomousRuns;
|
|
98
|
+
caps?: Partial<WorkingSetCaps>;
|
|
99
|
+
now?: () => Date;
|
|
100
|
+
fsImpl?: WorkingSetFs;
|
|
101
|
+
/** Secret-content scan seam; defaults to the versioned credential-shape enum. */
|
|
102
|
+
secretScan?: (content: Buffer) => boolean;
|
|
103
|
+
}
|
|
104
|
+
export declare function computeWorkingSet(opts: ComputeWorkingSetOpts): WorkingSetManifestResult;
|
|
105
|
+
//# sourceMappingURL=WorkingSetManifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkingSetManifest.d.ts","sourceRoot":"","sources":["../../src/core/WorkingSetManifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAOH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,EAAE,cAKtC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QAAmB,CAAC;AAElD,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB;oEACgE;IAChE,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,mEAAmE;IACnE,OAAO,EAAE,OAAO,CAAC;IACjB,kFAAkF;IAClF,iBAAiB,EAAE,OAAO,CAAC;IAC3B,uEAAuE;IACvE,cAAc,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,YAAY,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,YAAY,EAAE,MAAM,CAAC;IACrB;+CAC2C;IAC3C,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,+BAA+B;AAC/B,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK;QAAE,MAAM,IAAI,OAAO,CAAC;QAAC,cAAc,IAAI,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1G,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,qBAAqB;IACpC,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,iFAAiF;IACjF,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;CAC3C;AAsBD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,wBAAwB,CA8IvF"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WorkingSetManifest — P2.1 of multi-machine coherence: pure, on-demand
|
|
3
|
+
* computation of "what files make up this topic's workspace on THIS machine".
|
|
4
|
+
*
|
|
5
|
+
* Spec: docs/specs/WORKING-SET-HANDOFF-SPEC.md §3.1 (manifest — computed,
|
|
6
|
+
* never declared). No new persistent store; no willpower-dependent
|
|
7
|
+
* declarations. Sources, deduped:
|
|
8
|
+
* 1. Filesystem convention: `autonomous/<topic>.local.md` + `autonomous/
|
|
9
|
+
* <topic>.*` (bounded readdir of the convention dir — never recursion).
|
|
10
|
+
* 2. Journal evidence: jailed `artifactPaths` from the topic's OWN-stream
|
|
11
|
+
* autonomous-run entries (CoherenceJournalReader.readOwnAutonomousRuns —
|
|
12
|
+
* injected by the caller so this module stays pure).
|
|
13
|
+
*
|
|
14
|
+
* Discipline (§3.1):
|
|
15
|
+
* - Every candidate is canonicalized + re-jailed HERE even though journal
|
|
16
|
+
* paths were jailed at write time (jails are enforced at the data's birth
|
|
17
|
+
* AND at every serve boundary — defense in depth, P1 invariant).
|
|
18
|
+
* - `mtime` is DISPLAY-ONLY (P1's `ts` treatment): every diff/skip decision
|
|
19
|
+
* downstream keys on sha256 exclusively.
|
|
20
|
+
* - The credential-shape scan runs over each candidate file's BYTES; a
|
|
21
|
+
* flagged file is LISTED `secretFlagged: true` and never transferred — an
|
|
22
|
+
* honest, surfaced refusal, never a silent skip. The scan is a
|
|
23
|
+
* LEAK-REDUCTION filter, not the security boundary (the boundary is the
|
|
24
|
+
* same-operator peer posture — §3.1/§5).
|
|
25
|
+
* - When the topic's own journal shows a live autonomous run, EVERY entry is
|
|
26
|
+
* `liveSource: true` (any of them is plausibly mid-write) — the pull
|
|
27
|
+
* re-fires on the run's `stopped` (§3.4).
|
|
28
|
+
* - Bounded everywhere: per-file caps (headline exemption for the topic's
|
|
29
|
+
* `.local.md`), maxFiles, hash ceiling. Over-cap entries are LISTED
|
|
30
|
+
* `tooLarge: true` — observability is not delivery.
|
|
31
|
+
*/
|
|
32
|
+
import crypto from 'node:crypto';
|
|
33
|
+
import fs from 'node:fs';
|
|
34
|
+
import path from 'node:path';
|
|
35
|
+
import { redactForLiveTail } from './liveTailRedaction.js';
|
|
36
|
+
/** §3.7 defaults (mirrored in ConfigDefaults.coherenceJournal.workingSet). */
|
|
37
|
+
export const DEFAULT_WORKING_SET_CAPS = {
|
|
38
|
+
maxFileBytes: 4 * 1024 * 1024,
|
|
39
|
+
headlineFileBytes: 16 * 1024 * 1024,
|
|
40
|
+
maxFiles: 64,
|
|
41
|
+
maxTotalBytes: 32 * 1024 * 1024,
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Above this, a file's sha256 is reported `null` rather than paying an
|
|
45
|
+
* unbounded hash at manifest time (a tooLarge file never transfers anyway,
|
|
46
|
+
* so the hash is disclosure metadata, not verification material).
|
|
47
|
+
*/
|
|
48
|
+
export const HASH_BYTE_CEILING = 64 * 1024 * 1024;
|
|
49
|
+
function realFs() {
|
|
50
|
+
return {
|
|
51
|
+
readdirSync: (dir) => fs.readdirSync(dir),
|
|
52
|
+
lstatSync: (p) => fs.lstatSync(p),
|
|
53
|
+
existsSync: (p) => fs.existsSync(p),
|
|
54
|
+
realpathSync: (p) => fs.realpathSync(p),
|
|
55
|
+
readFileSync: (p) => fs.readFileSync(p),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function defaultSecretScan(content) {
|
|
59
|
+
return redactForLiveTail(content.toString('utf-8')).redactedCount > 0;
|
|
60
|
+
}
|
|
61
|
+
export function computeWorkingSet(opts) {
|
|
62
|
+
const io = opts.fsImpl ?? realFs();
|
|
63
|
+
const caps = { ...DEFAULT_WORKING_SET_CAPS, ...opts.caps };
|
|
64
|
+
const now = opts.now ?? (() => new Date());
|
|
65
|
+
const scan = opts.secretScan ?? defaultSecretScan;
|
|
66
|
+
// Realpath the stateDir itself so the jail roots and the realpathed
|
|
67
|
+
// candidates live in one namespace (macOS: /var/folders → /private/var).
|
|
68
|
+
let stateDir = path.resolve(opts.stateDir);
|
|
69
|
+
try {
|
|
70
|
+
stateDir = io.realpathSync(stateDir);
|
|
71
|
+
}
|
|
72
|
+
catch { /* @silent-fallback-ok: a not-yet-existing stateDir keeps its lexical path; containment still bounds it (WORKING-SET-HANDOFF-SPEC §3.1) */
|
|
73
|
+
}
|
|
74
|
+
const conventionDir = path.join(stateDir, 'autonomous');
|
|
75
|
+
// Same roots as the journal writer's artifactRoots default (§3.1).
|
|
76
|
+
const jailRoots = [conventionDir, stateDir];
|
|
77
|
+
let jailRejected = 0;
|
|
78
|
+
let goneFromDisk = 0;
|
|
79
|
+
// ---- gather candidates (deduped on canonical absolute path) -------------
|
|
80
|
+
const candidates = new Map();
|
|
81
|
+
// Source 1: filesystem convention — bounded readdir, no recursion. Names
|
|
82
|
+
// are matched with a `<topic>.` prefix so topic 134 never matches 13481.
|
|
83
|
+
let names = [];
|
|
84
|
+
try {
|
|
85
|
+
names = io.readdirSync(conventionDir);
|
|
86
|
+
}
|
|
87
|
+
catch { /* @silent-fallback-ok: convention dir absent = no convention files; journal evidence still applies (WORKING-SET-HANDOFF-SPEC §3.1) */
|
|
88
|
+
names = [];
|
|
89
|
+
}
|
|
90
|
+
const prefix = `${opts.topic}.`;
|
|
91
|
+
for (const name of names) {
|
|
92
|
+
if (!name.startsWith(prefix))
|
|
93
|
+
continue;
|
|
94
|
+
candidates.set(path.join(conventionDir, name), {
|
|
95
|
+
abs: path.join(conventionDir, name),
|
|
96
|
+
fromJournal: false,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
// Source 2: journal evidence (already write-time jailed; re-jailed below).
|
|
100
|
+
for (const p of opts.runs.artifactPaths) {
|
|
101
|
+
const abs = path.isAbsolute(p) ? path.resolve(p) : path.resolve(stateDir, p);
|
|
102
|
+
if (!candidates.has(abs))
|
|
103
|
+
candidates.set(abs, { abs, fromJournal: true });
|
|
104
|
+
}
|
|
105
|
+
// ---- jail + stat + hash + scan -------------------------------------------
|
|
106
|
+
const headlineAbs = path.join(conventionDir, `${opts.topic}.local.md`);
|
|
107
|
+
const surviving = [];
|
|
108
|
+
const seenJailed = new Set();
|
|
109
|
+
for (const cand of candidates.values()) {
|
|
110
|
+
// Jail FIRST (works on nonexistent paths too) — an escape-shaped path is
|
|
111
|
+
// jailRejected even when nothing exists at it; only an in-jail path that
|
|
112
|
+
// has vanished counts as benign goneFromDisk.
|
|
113
|
+
const jailed = jailContained(io, jailRoots, cand.abs);
|
|
114
|
+
if (jailed === null) {
|
|
115
|
+
jailRejected++;
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
// Regular files only — lstat the ORIGINAL path (not the realpathed one) so
|
|
119
|
+
// a symlink at the FINAL component is refused even when its target
|
|
120
|
+
// realpaths inside the jail (serve-time O_NOFOLLOW will refuse it anyway;
|
|
121
|
+
// the manifest must not promise what serve refuses).
|
|
122
|
+
let st;
|
|
123
|
+
try {
|
|
124
|
+
st = io.lstatSync(cand.abs);
|
|
125
|
+
}
|
|
126
|
+
catch { /* @silent-fallback-ok: a journal-evidenced path that vanished is benign evolution, counted as goneFromDisk — never an error (WORKING-SET-HANDOFF-SPEC §3.1) */
|
|
127
|
+
goneFromDisk++;
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
if (st.isSymbolicLink() || !st.isFile()) {
|
|
131
|
+
jailRejected++;
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
// Dedupe on the CANONICAL path — a journal path and a convention hit that
|
|
135
|
+
// resolve to the same file are one entry, whatever spelling each used.
|
|
136
|
+
if (seenJailed.has(jailed))
|
|
137
|
+
continue;
|
|
138
|
+
seenJailed.add(jailed);
|
|
139
|
+
const isHeadline = jailed === headlineAbs;
|
|
140
|
+
const cap = isHeadline ? caps.headlineFileBytes : caps.maxFileBytes;
|
|
141
|
+
const tooLarge = st.size > cap;
|
|
142
|
+
let sha256 = null;
|
|
143
|
+
let secretFlagged = false;
|
|
144
|
+
if (st.size <= HASH_BYTE_CEILING) {
|
|
145
|
+
try {
|
|
146
|
+
const content = io.readFileSync(jailed);
|
|
147
|
+
sha256 = crypto.createHash('sha256').update(content).digest('hex');
|
|
148
|
+
// Scan only what could transfer — a tooLarge file never moves, so the
|
|
149
|
+
// read above is its last touch.
|
|
150
|
+
if (!tooLarge)
|
|
151
|
+
secretFlagged = scan(content);
|
|
152
|
+
}
|
|
153
|
+
catch { /* @silent-fallback-ok: file vanished between lstat and read — benign evolution, counted as goneFromDisk (WORKING-SET-HANDOFF-SPEC §3.1) */
|
|
154
|
+
goneFromDisk++;
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
surviving.push({
|
|
159
|
+
relPath: path.relative(stateDir, jailed),
|
|
160
|
+
bytes: st.size,
|
|
161
|
+
sha256,
|
|
162
|
+
mtime: new Date(st.mtimeMs).toISOString(),
|
|
163
|
+
...(tooLarge ? { tooLarge: true } : {}),
|
|
164
|
+
...(secretFlagged ? { secretFlagged: true } : {}),
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
// ---- deterministic order + maxFiles ---------------------------------------
|
|
168
|
+
// Headline first, then alpha on relPath — so truncation at maxFiles never
|
|
169
|
+
// drops the headline and is stable across recomputations.
|
|
170
|
+
const headlineRel = path.relative(stateDir, headlineAbs);
|
|
171
|
+
surviving.sort((a, b) => {
|
|
172
|
+
if (a.relPath === headlineRel)
|
|
173
|
+
return -1;
|
|
174
|
+
if (b.relPath === headlineRel)
|
|
175
|
+
return 1;
|
|
176
|
+
return a.relPath < b.relPath ? -1 : a.relPath > b.relPath ? 1 : 0;
|
|
177
|
+
});
|
|
178
|
+
const filesTruncated = Math.max(0, surviving.length - caps.maxFiles);
|
|
179
|
+
const kept = surviving.slice(0, caps.maxFiles);
|
|
180
|
+
// ---- liveSource (§3.2 live-source honesty — ALL of a live run's entries) --
|
|
181
|
+
if (opts.runs.liveRun) {
|
|
182
|
+
for (const e of kept)
|
|
183
|
+
e.liveSource = true;
|
|
184
|
+
}
|
|
185
|
+
let transferableBytes = 0;
|
|
186
|
+
for (const e of kept) {
|
|
187
|
+
if (!e.tooLarge && !e.secretFlagged && !e.liveSource)
|
|
188
|
+
transferableBytes += e.bytes;
|
|
189
|
+
}
|
|
190
|
+
return {
|
|
191
|
+
topic: opts.topic,
|
|
192
|
+
computedAt: now().toISOString(),
|
|
193
|
+
entries: kept,
|
|
194
|
+
liveRun: opts.runs.liveRun,
|
|
195
|
+
evidenceTruncated: opts.runs.truncated,
|
|
196
|
+
filesTruncated,
|
|
197
|
+
jailRejected,
|
|
198
|
+
goneFromDisk,
|
|
199
|
+
transferableBytes,
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Compute-time jail: realpath the deepest existing ancestor (symlink-escape
|
|
204
|
+
* protection on the existing prefix), require containment under one of the
|
|
205
|
+
* allowlisted roots for BOTH the resolved ancestor and the final path.
|
|
206
|
+
* Mirrors CoherenceJournal's write-time jail (§3.1 — same rules at every
|
|
207
|
+
* boundary).
|
|
208
|
+
*/
|
|
209
|
+
function jailContained(io, roots, candidate) {
|
|
210
|
+
let existing = candidate;
|
|
211
|
+
const tail = [];
|
|
212
|
+
while (!io.existsSync(existing)) {
|
|
213
|
+
const parent = path.dirname(existing);
|
|
214
|
+
if (parent === existing)
|
|
215
|
+
break;
|
|
216
|
+
tail.unshift(path.basename(existing));
|
|
217
|
+
existing = parent;
|
|
218
|
+
}
|
|
219
|
+
let realExisting;
|
|
220
|
+
try {
|
|
221
|
+
realExisting = io.realpathSync(existing);
|
|
222
|
+
}
|
|
223
|
+
catch { /* @silent-fallback-ok: realpath failure on a vanishing path falls back to the lexical path, which containment still bounds (WORKING-SET-HANDOFF-SPEC §3.1) */
|
|
224
|
+
realExisting = existing;
|
|
225
|
+
}
|
|
226
|
+
const finalPath = tail.length ? path.join(realExisting, ...tail) : realExisting;
|
|
227
|
+
for (const root of roots) {
|
|
228
|
+
if (isContained(root, realExisting) && isContained(root, finalPath))
|
|
229
|
+
return finalPath;
|
|
230
|
+
}
|
|
231
|
+
return null;
|
|
232
|
+
}
|
|
233
|
+
function isContained(root, p) {
|
|
234
|
+
const rel = path.relative(root, p);
|
|
235
|
+
return rel === '' || (!rel.startsWith('..') && !path.isAbsolute(rel));
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=WorkingSetManifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkingSetManifest.js","sourceRoot":"","sources":["../../src/core/WorkingSetManifest.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./builtin-manifest.schema.json",
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"generatedAt": "2026-06-06T11:
|
|
5
|
-
"instarVersion": "1.3.
|
|
4
|
+
"generatedAt": "2026-06-06T11:39:33.936Z",
|
|
5
|
+
"instarVersion": "1.3.365",
|
|
6
6
|
"entryCount": 199,
|
|
7
7
|
"entries": {
|
|
8
8
|
"hook:session-start": {
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Upgrade Guide — vNEXT
|
|
2
|
+
|
|
3
|
+
<!-- assembled-by: assemble-next-md -->
|
|
4
|
+
<!-- bump: patch -->
|
|
5
|
+
|
|
6
|
+
## What Changed
|
|
7
|
+
|
|
8
|
+
First slice of the converged Working-Set Handoff spec (P2 of multi-machine
|
|
9
|
+
coherence): a machine can now compute, on demand and from durable evidence,
|
|
10
|
+
"what files make up topic T's workspace here" — never from anyone remembering
|
|
11
|
+
to declare anything.
|
|
12
|
+
|
|
13
|
+
- `src/core/WorkingSetManifest.ts` — `computeWorkingSet()`: candidates from
|
|
14
|
+
the filesystem convention (`autonomous/<topic>.*`, bounded readdir, exact
|
|
15
|
+
topic-prefix so 134 never matches 13481) + the topic's own-stream journal
|
|
16
|
+
`artifactPaths`; every candidate compute-time jailed (realpath containment,
|
|
17
|
+
final-component symlinks refused), sha256-hashed, scanned for credential
|
|
18
|
+
shapes via the versioned redaction enum, and capped (4MiB per file, 16MiB
|
|
19
|
+
headline exemption for `<topic>.local.md`, 64 files). Over-cap and flagged
|
|
20
|
+
entries are LISTED with honest flags (`tooLarge` / `secretFlagged` /
|
|
21
|
+
`liveSource`) — never silently skipped. `mtime` is display-only; sha256 is
|
|
22
|
+
the only decision key.
|
|
23
|
+
- `CoherenceJournalReader.readOwnAutonomousRuns(topic, ownMachineId)` — the
|
|
24
|
+
own-stream-only evidence source (replicas nominate; they never feed THIS
|
|
25
|
+
machine's manifest). `liveRun` derives from the newest run's state, so a
|
|
26
|
+
still-writing run marks every entry "still being written" rather than
|
|
27
|
+
serving a torn snapshot.
|
|
28
|
+
|
|
29
|
+
Pure module — nothing constructs it at boot yet. The P2.2 transfer verb,
|
|
30
|
+
receiver trigger, and pending-pull ledger wire it into the move path next.
|
|
31
|
+
|
|
32
|
+
## What to Tell Your User
|
|
33
|
+
|
|
34
|
+
Nothing user-visible yet. This is the foundation slice of "moving a
|
|
35
|
+
conversation between your machines moves its working files too" — the part
|
|
36
|
+
that lets a machine reliably answer what those files are. The transfer itself
|
|
37
|
+
lands in the next slice.
|
|
38
|
+
|
|
39
|
+
## Summary of New Capabilities
|
|
40
|
+
|
|
41
|
+
- `computeWorkingSet(opts)` (`src/core/WorkingSetManifest.ts`) — pure,
|
|
42
|
+
bounded, jailed manifest computation for one topic's working files, with
|
|
43
|
+
honest per-entry flags and counted degradations (`jailRejected`,
|
|
44
|
+
`goneFromDisk`, `filesTruncated`).
|
|
45
|
+
- `CoherenceJournalReader.readOwnAutonomousRuns(topic, ownMachineId)` —
|
|
46
|
+
own-stream autonomous-run evidence: newest-first entries, `liveRun`,
|
|
47
|
+
deduped `artifactPaths`, bounded with `truncated` honesty.
|
|
48
|
+
- Spec: `docs/specs/WORKING-SET-HANDOFF-SPEC.md` (converged 2026-06-06,
|
|
49
|
+
4 rounds, cross-model codex-cli:gpt-5.5; report at
|
|
50
|
+
`docs/specs/reports/working-set-handoff-convergence.md`).
|
|
51
|
+
|
|
52
|
+
## Evidence
|
|
53
|
+
|
|
54
|
+
- `tests/unit/WorkingSetManifest.test.ts` — 18 passing: sources + canonical
|
|
55
|
+
dedupe, jail matrix (escape-shaped path, final-component symlink,
|
|
56
|
+
symlinked-parent escape), caps (tooLarge listed+hashed, headline exemption,
|
|
57
|
+
maxFiles truncation keeps the headline), secretFlagged honest listing +
|
|
58
|
+
transferableBytes exclusion, mtime display-only, liveSource covers ALL of a
|
|
59
|
+
live run's entries, reader own-stream-only + liveRun semantics.
|
|
60
|
+
- `tests/unit/CoherenceJournalReader.test.ts` — 15 passing unchanged.
|
|
61
|
+
- Full typecheck clean.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Side-Effects Review — Working-Set Manifest (P2.1 of multi-machine coherence)
|
|
2
|
+
|
|
3
|
+
**Version / slug:** `working-set-manifest-p21`
|
|
4
|
+
**Date:** `2026-06-06`
|
|
5
|
+
**Author:** `echo`
|
|
6
|
+
**Second-pass reviewer:** `not required (pure read-only module + reader method; no actuation, no routes, no persistence)`
|
|
7
|
+
|
|
8
|
+
## Summary of the change
|
|
9
|
+
|
|
10
|
+
P2.1 of the converged WORKING-SET-HANDOFF-SPEC: the pure, on-demand computation
|
|
11
|
+
of "what files make up topic T's workspace on THIS machine". Two pieces:
|
|
12
|
+
|
|
13
|
+
1. `src/core/WorkingSetManifest.ts` — `computeWorkingSet()`: candidates from the
|
|
14
|
+
filesystem convention (`autonomous/<topic>.*`, bounded readdir) + the topic's
|
|
15
|
+
own-stream journal `artifactPaths`; every candidate compute-time jailed
|
|
16
|
+
(realpath containment + final-component symlink refusal), hashed, scanned for
|
|
17
|
+
credential shapes (reusing the versioned `redactForLiveTail` enum), capped
|
|
18
|
+
(per-file / headline-exempt / maxFiles), and listed with honest flags
|
|
19
|
+
(`tooLarge`, `secretFlagged`, `liveSource`) — never silently skipped.
|
|
20
|
+
2. `CoherenceJournalReader.readOwnAutonomousRuns(topic, ownMachineId)` — the
|
|
21
|
+
own-stream-only journal evidence source (replicas nominate, they never feed
|
|
22
|
+
this machine's manifest), with `liveRun` derived from the NEWEST run's state.
|
|
23
|
+
|
|
24
|
+
Ships as a pure module: nothing constructs it at boot yet (the P2.2 verb +
|
|
25
|
+
trigger wire it). Zero behavior change for any running agent.
|
|
26
|
+
|
|
27
|
+
## Decision-point inventory
|
|
28
|
+
|
|
29
|
+
- **Jail verdict** (escape vs contained): mirrored from the P1 write-time jail;
|
|
30
|
+
both the realpathed ancestor AND the final path must sit under
|
|
31
|
+
`[autonomous/, stateDir]`. Jail runs BEFORE existence checks so an
|
|
32
|
+
escape-shaped path is `jailRejected` even when nothing exists at it; only an
|
|
33
|
+
in-jail vanished path counts `goneFromDisk` (benign evolution, never an attack
|
|
34
|
+
log).
|
|
35
|
+
- **Final-component symlink**: refused via lstat on the ORIGINAL path even when
|
|
36
|
+
its target realpaths inside the jail — the manifest must not promise what the
|
|
37
|
+
serve-side `O_NOFOLLOW` will refuse.
|
|
38
|
+
- **liveRun**: the NEWEST runId's first-seen action decides (started→live,
|
|
39
|
+
stopped→not). An older crashed run (started, never stopped) does NOT
|
|
40
|
+
resurrect liveness — newest evidence wins; the §3.4 pending-pull re-fire on
|
|
41
|
+
`stopped` covers the re-arm.
|
|
42
|
+
- **secretFlagged**: scan only what could transfer (tooLarge files never move,
|
|
43
|
+
so they are hashed for disclosure but not scanned).
|
|
44
|
+
|
|
45
|
+
## 1. Over-block
|
|
46
|
+
|
|
47
|
+
**What legitimate inputs does this change reject?** A symlink whose target is a
|
|
48
|
+
legitimate in-jail file is refused (deliberate — serve-time parity). A topic's
|
|
49
|
+
file larger than its cap is listed-not-transferable (deliberate; headline gets
|
|
50
|
+
the 16MiB exemption + the §3.1 Agent-Health notice lands with P2.2). Files past
|
|
51
|
+
maxFiles=64 are dropped from the manifest with a count — deterministic order
|
|
52
|
+
keeps the headline always inside the cap.
|
|
53
|
+
|
|
54
|
+
## 2. Under-block
|
|
55
|
+
|
|
56
|
+
**What does this still miss?** The credential-shape scan is a LEAK-REDUCTION
|
|
57
|
+
filter, not a boundary (stated in spec §3.1/§5) — content-shaped secrets pass
|
|
58
|
+
it; acceptable strictly under the same-operator peer posture. `sha256: null`
|
|
59
|
+
above the 64MiB hash ceiling keeps compute bounded at the cost of disclosure
|
|
60
|
+
completeness for absurd files (which never transfer anyway). TOCTOU between
|
|
61
|
+
manifest compute and serve-time read is NOT this module's job — §3.2's
|
|
62
|
+
O_NOFOLLOW + fd-verify at the verb layer (P2.2) is.
|
|
63
|
+
|
|
64
|
+
## 3. Level-of-abstraction fit
|
|
65
|
+
|
|
66
|
+
**Right layer?** Yes. The manifest is a pure function over (stateDir, topic,
|
|
67
|
+
injected journal evidence) — the reader call happens at the caller so the
|
|
68
|
+
module has no journal dependency; the jail logic mirrors `CoherenceJournal`'s
|
|
69
|
+
write-time jail (same rules at every boundary, P1 invariant). The reader
|
|
70
|
+
method lives on `CoherenceJournalReader` because that is the ONLY module the
|
|
71
|
+
§3.9 actuation-ban lint tracks for journal reads.
|
|
72
|
+
|
|
73
|
+
## 4. Blast radius
|
|
74
|
+
|
|
75
|
+
Nothing imports either addition yet. No routes, no config, no persistence, no
|
|
76
|
+
hooks, no migrations. A bug here can only mis-list files once P2.2 wires it —
|
|
77
|
+
and the pull layer re-verifies every byte against served hashes.
|
|
78
|
+
|
|
79
|
+
## Evidence
|
|
80
|
+
|
|
81
|
+
- `tests/unit/WorkingSetManifest.test.ts` — 18 passing: sources+dedupe (incl.
|
|
82
|
+
topic-prefix exactness: 134 never matches 13481), jail matrix (escape,
|
|
83
|
+
final-component symlink, symlinked-parent), caps (tooLarge, headline
|
|
84
|
+
exemption, maxFiles keeps headline), secretFlagged honest listing, mtime
|
|
85
|
+
display-only, liveSource covers ALL live-run entries, reader own-stream-only
|
|
86
|
+
+ liveRun semantics + artifactPaths union.
|
|
87
|
+
- `tests/unit/CoherenceJournalReader.test.ts` — 15 passing unchanged (no
|
|
88
|
+
regression from the new method).
|
|
89
|
+
- Full typecheck clean.
|