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.
@@ -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,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "1.3.364",
3
+ "version": "1.3.365",
4
4
  "description": "Coherence infrastructure for self-evolving AI agents — on the Claude Code or Codex subscription you already have.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "./builtin-manifest.schema.json",
3
3
  "schemaVersion": 1,
4
- "generatedAt": "2026-06-06T11:07:44.851Z",
5
- "instarVersion": "1.3.364",
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.