@sentropic/h2a 0.98.1 → 0.98.3

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.
Files changed (93) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codex-plugin/plugin.json +1 -1
  3. package/dist/cli-command-map.d.ts.map +1 -1
  4. package/dist/cli-command-map.js +1 -0
  5. package/dist/cli-command-map.js.map +1 -1
  6. package/dist/cli-contract.d.ts.map +1 -1
  7. package/dist/cli-contract.js +8 -0
  8. package/dist/cli-contract.js.map +1 -1
  9. package/dist/cli.d.ts.map +1 -1
  10. package/dist/cli.js +79 -12
  11. package/dist/cli.js.map +1 -1
  12. package/dist/hosts/plugin.d.ts +2 -2
  13. package/dist/hosts/plugin.d.ts.map +1 -1
  14. package/dist/hosts/plugin.js +16 -1
  15. package/dist/hosts/plugin.js.map +1 -1
  16. package/dist/hosts/vibe.d.ts +15 -0
  17. package/dist/hosts/vibe.d.ts.map +1 -0
  18. package/dist/hosts/vibe.js +40 -0
  19. package/dist/hosts/vibe.js.map +1 -0
  20. package/dist/index.d.ts +2 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +2 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/runtime/identity/bindings.d.ts.map +1 -1
  25. package/dist/runtime/identity/bindings.js +13 -3
  26. package/dist/runtime/identity/bindings.js.map +1 -1
  27. package/dist/runtime/identity/migration.d.ts +2 -0
  28. package/dist/runtime/identity/migration.d.ts.map +1 -1
  29. package/dist/runtime/identity/migration.js +19 -3
  30. package/dist/runtime/identity/migration.js.map +1 -1
  31. package/dist/runtime/local-files/launch-index.d.ts +14 -0
  32. package/dist/runtime/local-files/launch-index.d.ts.map +1 -0
  33. package/dist/runtime/local-files/launch-index.js +279 -0
  34. package/dist/runtime/local-files/launch-index.js.map +1 -0
  35. package/dist/runtime/local-files/store.d.ts.map +1 -1
  36. package/dist/runtime/local-files/store.js +29 -15
  37. package/dist/runtime/local-files/store.js.map +1 -1
  38. package/dist/runtime/loop/index.d.ts +1 -1
  39. package/dist/runtime/loop/index.d.ts.map +1 -1
  40. package/dist/runtime/loop/index.js.map +1 -1
  41. package/dist/runtime/mcp/agent-launch.d.ts +1 -1
  42. package/dist/runtime/mcp/agent-launch.d.ts.map +1 -1
  43. package/dist/runtime/mcp/agent-launch.js +9 -3
  44. package/dist/runtime/mcp/agent-launch.js.map +1 -1
  45. package/dist/runtime/mcp/handlers.js +1 -1
  46. package/dist/runtime/mcp/handlers.js.map +1 -1
  47. package/dist/runtime/mcp/tools.js +5 -5
  48. package/dist/runtime/mcp/tools.js.map +1 -1
  49. package/dist/runtime/version/agent-version.d.ts.map +1 -1
  50. package/dist/runtime/version/agent-version.js +2 -1
  51. package/dist/runtime/version/agent-version.js.map +1 -1
  52. package/focus-app/client/_app/immutable/chunks/unQroC_0.js +2 -0
  53. package/focus-app/client/_app/immutable/chunks/unQroC_0.js.br +0 -0
  54. package/focus-app/client/_app/immutable/chunks/unQroC_0.js.gz +0 -0
  55. package/focus-app/client/_app/immutable/entry/{app.Dfo3Ymae.js → app.75Uzo4oj.js} +2 -2
  56. package/focus-app/client/_app/immutable/entry/app.75Uzo4oj.js.br +0 -0
  57. package/focus-app/client/_app/immutable/entry/app.75Uzo4oj.js.gz +0 -0
  58. package/focus-app/client/_app/immutable/entry/start.BmwiFFoe.js +1 -0
  59. package/focus-app/client/_app/immutable/entry/start.BmwiFFoe.js.br +2 -0
  60. package/focus-app/client/_app/immutable/entry/start.BmwiFFoe.js.gz +0 -0
  61. package/focus-app/client/_app/immutable/nodes/{1.B83XRsuv.js → 1.hqfmE-jM.js} +1 -1
  62. package/focus-app/client/_app/immutable/nodes/1.hqfmE-jM.js.br +3 -0
  63. package/focus-app/client/_app/immutable/nodes/1.hqfmE-jM.js.gz +0 -0
  64. package/focus-app/client/_app/version.json +1 -1
  65. package/focus-app/client/_app/version.json.br +0 -0
  66. package/focus-app/client/_app/version.json.gz +0 -0
  67. package/focus-app/h2a-focus.json +29 -29
  68. package/focus-app/handler.js +4 -4
  69. package/focus-app/index.js +4 -4
  70. package/focus-app/server/chunks/chunks/{internal.js-BDHE9Kn1.js → internal.js-vq85iWAx.js} +2 -2
  71. package/focus-app/server/chunks/chunks/{internal.js-BDHE9Kn1.js.map → internal.js-vq85iWAx.js.map} +1 -1
  72. package/focus-app/server/chunks/{handler-BidpBSFZ.js → handler-f-0S9j72.js} +3 -3
  73. package/focus-app/server/chunks/{handler-BidpBSFZ.js.map → handler-f-0S9j72.js.map} +1 -1
  74. package/focus-app/server/chunks/{index.js-BNQ-AMZE.js → index.js-DlbaFcic.js} +2 -2
  75. package/focus-app/server/chunks/{index.js-BNQ-AMZE.js.map → index.js-DlbaFcic.js.map} +1 -1
  76. package/focus-app/server/chunks/{manifest.js-CAtvBIjA.js → manifest.js-CxrShg-z.js} +3 -3
  77. package/focus-app/server/chunks/{manifest.js-CAtvBIjA.js.map → manifest.js-CxrShg-z.js.map} +1 -1
  78. package/focus-app/server/chunks/nodes/{1.js-C16cgDY2.js → 1.js-O2SZgyXK.js} +2 -2
  79. package/focus-app/server/chunks/nodes/{1.js-C16cgDY2.js.map → 1.js-O2SZgyXK.js.map} +1 -1
  80. package/package.json +4 -4
  81. package/skills/h2a/SKILL.md +4 -0
  82. package/skills/h2a-run/SKILL.md +11 -9
  83. package/skills/harness/review/SKILL.md +8 -4
  84. package/focus-app/client/_app/immutable/chunks/zL3j6erO.js +0 -2
  85. package/focus-app/client/_app/immutable/chunks/zL3j6erO.js.br +0 -0
  86. package/focus-app/client/_app/immutable/chunks/zL3j6erO.js.gz +0 -0
  87. package/focus-app/client/_app/immutable/entry/app.Dfo3Ymae.js.br +0 -0
  88. package/focus-app/client/_app/immutable/entry/app.Dfo3Ymae.js.gz +0 -0
  89. package/focus-app/client/_app/immutable/entry/start.BSQLtKUn.js +0 -1
  90. package/focus-app/client/_app/immutable/entry/start.BSQLtKUn.js.br +0 -0
  91. package/focus-app/client/_app/immutable/entry/start.BSQLtKUn.js.gz +0 -0
  92. package/focus-app/client/_app/immutable/nodes/1.B83XRsuv.js.br +0 -0
  93. package/focus-app/client/_app/immutable/nodes/1.B83XRsuv.js.gz +0 -0
@@ -0,0 +1,279 @@
1
+ /**
2
+ * Reversible point indexes for the append-only launch logs. Offsets reference
3
+ * the ORIGINAL records: no registration, binding, alias or audit is rewritten.
4
+ * Old writers remain compatible: bytes after the indexed prefix are replayed.
5
+ * Replacing a log or observing a truncation invalidates its index; corruption falls back to
6
+ * the original reader. Immutable bucket generations and tail replay give a
7
+ * complete snapshot even when another writer publishes a newer manifest.
8
+ */
9
+ import { createHash, randomUUID } from "node:crypto";
10
+ import { appendFileSync, closeSync, existsSync, fstatSync, mkdirSync, openSync, readFileSync, readSync, renameSync, statSync, writeFileSync } from "node:fs";
11
+ import { join } from "node:path";
12
+ import { withLockSync } from "./locks.js";
13
+ import { getActiveMcpTrace } from "../mcp/phase-trace.js";
14
+ const digest = (text) => createHash("sha256").update(text).digest("hex");
15
+ const directory = (file) => `${file}.launch-index-v1`;
16
+ const manifestPath = (file) => join(directory(file), "current.json");
17
+ export const launchLookupKey = (...parts) => JSON.stringify(parts);
18
+ function parseManifest(raw) {
19
+ const envelope = JSON.parse(raw);
20
+ if (!envelope.data || digest(JSON.stringify(envelope.data)) !== envelope.hash)
21
+ throw new Error("corrupt launch manifest");
22
+ return envelope.data;
23
+ }
24
+ function keys(kind, row) {
25
+ switch (kind) {
26
+ case "instances": return [launchLookupKey(row.id)];
27
+ case "bindings": return [launchLookupKey(row.host, row.providerSessionId)];
28
+ case "keys": return [launchLookupKey(row.instance)];
29
+ case "aliases": return [
30
+ launchLookupKey("instance", row.instance),
31
+ launchLookupKey("pair", row.instance, row.legacyInstance),
32
+ launchLookupKey("owner", row.legacyInstance),
33
+ ...(row.adoptedKeyring ? [launchLookupKey("adopted", row.legacyInstance)] : [])
34
+ ];
35
+ }
36
+ }
37
+ function decode(kind, line) {
38
+ if (!line.trim())
39
+ return undefined;
40
+ let row;
41
+ try {
42
+ row = JSON.parse(line);
43
+ }
44
+ catch (error) {
45
+ if (kind === "instances" || kind === "keys")
46
+ throw error;
47
+ return undefined;
48
+ }
49
+ // Do not silently index away a valid JSON primitive that the authoritative
50
+ // reader might reject. Refuse the derived view and retain its original policy.
51
+ if (row === null || typeof row !== "object" || Array.isArray(row))
52
+ throw new Error("invalid launch row shape");
53
+ return row;
54
+ }
55
+ function prefixValid(manifest, kind, st) {
56
+ return manifest.version === 1 && manifest.kind === kind &&
57
+ manifest.dev === st.dev && manifest.ino === st.ino &&
58
+ Number.isSafeInteger(manifest.size) && manifest.size >= 0 && st.size >= manifest.size &&
59
+ // Same-size rewrites (including a truncate/regrow) are not appends.
60
+ (st.size > manifest.size || st.mtimeMs === manifest.mtimeMs && st.ctimeMs === manifest.ctimeMs);
61
+ }
62
+ function readRange(fd, start, end) {
63
+ const buffer = Buffer.alloc(end - start);
64
+ let read = 0;
65
+ while (read < buffer.length) {
66
+ const n = readSync(fd, buffer, read, buffer.length - read, start + read);
67
+ if (!n)
68
+ throw new Error("launch log changed during read");
69
+ read += n;
70
+ }
71
+ return buffer;
72
+ }
73
+ function scan(buffer, start, kind) {
74
+ const rows = [];
75
+ let begin = 0;
76
+ for (let end = buffer.indexOf(10); end !== -1; end = buffer.indexOf(10, begin)) {
77
+ const row = decode(kind, buffer.subarray(begin, end).toString("utf8"));
78
+ if (row)
79
+ rows.push({ row, offset: start + begin });
80
+ begin = end + 1;
81
+ }
82
+ return rows;
83
+ }
84
+ function readRow(fd, offset, end, kind) {
85
+ if (!Number.isSafeInteger(offset) || offset < 0 || offset >= end)
86
+ throw new Error("invalid launch offset");
87
+ const chunks = [];
88
+ for (let pos = offset; pos < end;) {
89
+ const chunk = readRange(fd, pos, Math.min(pos + 4096, end));
90
+ const lf = chunk.indexOf(10);
91
+ chunks.push(lf === -1 ? chunk : chunk.subarray(0, lf));
92
+ if (lf !== -1)
93
+ return decode(kind, Buffer.concat(chunks).toString("utf8"));
94
+ pos += chunk.length;
95
+ }
96
+ throw new Error("incomplete indexed launch row");
97
+ }
98
+ function readBucket(file, manifest, shard) {
99
+ const entry = manifest.buckets[shard];
100
+ if (!entry)
101
+ return Object.create(null);
102
+ if (!/^[0-9a-f-]+\.json$/.test(entry.file))
103
+ throw new Error("invalid launch bucket path");
104
+ const text = readFileSync(join(directory(file), entry.file), "utf8");
105
+ if (digest(text) !== entry.hash)
106
+ throw new Error("corrupt launch bucket");
107
+ return JSON.parse(text);
108
+ }
109
+ /** undefined means no valid index: callers retain their original read policy. */
110
+ export function lookupLaunchRows(file, kind, key) {
111
+ const trace = getActiveMcpTrace();
112
+ const read = () => {
113
+ let fd;
114
+ try {
115
+ {
116
+ const raw = readFileSync(manifestPath(file), "utf8");
117
+ const manifest = parseManifest(raw);
118
+ fd = openSync(file, "r");
119
+ const st = fstatSync(fd);
120
+ if (!prefixValid(manifest, kind, st))
121
+ return undefined;
122
+ if (kind === "aliases" && JSON.parse(key)[0] === "owner" && !manifest.aliasOwner)
123
+ return undefined;
124
+ const bucket = readBucket(file, manifest, digest(key).slice(0, 2));
125
+ const offsets = bucket[key] ?? [];
126
+ if (!Array.isArray(offsets))
127
+ throw new Error("invalid launch offsets");
128
+ const result = new Map();
129
+ // Binding routing is last-wins; registration is first-wins. Repeated
130
+ // rows for one conversation/agent must not recreate the historical
131
+ // scan, even when reading an older index containing every offset.
132
+ const selected = kind === "bindings" ? offsets.slice(-1) : kind === "instances" ? offsets.slice(0, 1) : offsets;
133
+ for (const offset of selected) {
134
+ if (offset >= manifest.size)
135
+ throw new Error("offset outside indexed prefix");
136
+ const row = readRow(fd, offset, st.size, kind);
137
+ if (!row || !keys(kind, row).includes(key))
138
+ throw new Error("launch offset/key mismatch");
139
+ result.set(offset, row);
140
+ }
141
+ // A partial trailing append is not published yet. Replay only complete
142
+ // lines, and retain the original log's source order / first-last policy.
143
+ const tail = readRange(fd, manifest.size, st.size);
144
+ if (tail.length && tail.at(-1) !== 10)
145
+ return undefined;
146
+ for (const { row, offset } of scan(tail, manifest.size, kind)) {
147
+ if (!keys(kind, row).includes(key))
148
+ continue;
149
+ if (kind === "instances" && result.size > 0)
150
+ continue;
151
+ if (kind === "bindings")
152
+ result.clear();
153
+ if (kind === "aliases" && JSON.parse(key)[0] === "owner" && result.size > 0) {
154
+ const previous = result.values().next().value;
155
+ if (!(row.at < previous.at))
156
+ continue;
157
+ result.clear();
158
+ }
159
+ result.set(offset, row);
160
+ }
161
+ closeSync(fd);
162
+ fd = undefined;
163
+ // Bucket generations are immutable and retained. A newer manifest
164
+ // cannot invalidate this view: we replayed every complete row through
165
+ // st.size from the same original fd. Retrying unrelated publications
166
+ // caused bursts to exhaust the retries and fall back to a full scan.
167
+ const current = statSync(file);
168
+ if (current.dev !== st.dev || current.ino !== st.ino || current.size < st.size ||
169
+ current.size === st.size && (current.mtimeMs !== st.mtimeMs || current.ctimeMs !== st.ctimeMs))
170
+ return undefined;
171
+ return [...result.entries()].sort(([a], [b]) => a - b).map(([, row]) => row);
172
+ }
173
+ }
174
+ catch { /* derived data unavailable: original log is authoritative */ }
175
+ finally {
176
+ if (fd !== undefined)
177
+ closeSync(fd);
178
+ }
179
+ return undefined;
180
+ };
181
+ return trace ? trace.span(`${kind}_lookup`, read) : read();
182
+ }
183
+ /**
184
+ * Build/refresh only derived files. Publication is atomic; previous bucket
185
+ * generations remain available for in-flight readers and rollback. A repeated
186
+ * command on unchanged logs is a no-op. Must not be called under registry or
187
+ * identity locks: the initial scan belongs to explicit maintenance.
188
+ */
189
+ export function buildLaunchIndex(file, kind, incremental = false) {
190
+ mkdirSync(directory(file), { recursive: true, mode: 0o700 });
191
+ withLockSync(join(directory(file), ".lock"), () => {
192
+ const fd = openSync(file, "r");
193
+ try {
194
+ const st = fstatSync(fd);
195
+ let previous;
196
+ try {
197
+ const candidate = parseManifest(readFileSync(manifestPath(file), "utf8"));
198
+ if (prefixValid(candidate, kind, st))
199
+ previous = candidate;
200
+ }
201
+ catch { /* first build / invalidated derived data */ }
202
+ if (kind === "aliases" && !previous?.aliasOwner)
203
+ previous = undefined;
204
+ if (!incremental && previous) {
205
+ try {
206
+ for (const shard of Object.keys(previous.buckets))
207
+ readBucket(file, previous, shard);
208
+ }
209
+ catch {
210
+ previous = undefined;
211
+ }
212
+ }
213
+ if (previous?.size === st.size)
214
+ return;
215
+ // The append path never initiates a full scan under the caller's lock.
216
+ if (incremental && (!previous || st.size - previous.size > 1024 * 1024))
217
+ return;
218
+ const start = previous?.size ?? 0;
219
+ const tail = readRange(fd, start, st.size);
220
+ const size = start + tail.lastIndexOf(10) + 1;
221
+ if (previous && size === previous.size)
222
+ return; // unchanged partial trailing row
223
+ const rows = scan(tail.subarray(0, size - start), start, kind);
224
+ const changed = new Map();
225
+ for (const { row, offset } of rows)
226
+ for (const key of keys(kind, row)) {
227
+ const shard = digest(key).slice(0, 2);
228
+ let bucket = changed.get(shard);
229
+ if (!bucket) {
230
+ bucket = previous ? readBucket(file, previous, shard) : Object.create(null);
231
+ changed.set(shard, bucket);
232
+ }
233
+ if (kind === "bindings")
234
+ bucket[key] = [offset];
235
+ else if (kind === "instances")
236
+ bucket[key] ??= [offset];
237
+ else if (kind === "aliases" && JSON.parse(key)[0] === "owner") {
238
+ const prior = bucket[key]?.[0];
239
+ if (prior === undefined || row.at < readRow(fd, prior, st.size, kind).at)
240
+ bucket[key] = [offset];
241
+ }
242
+ else
243
+ (bucket[key] ??= []).push(offset);
244
+ }
245
+ const current = statSync(file);
246
+ if (current.dev !== st.dev || current.ino !== st.ino || current.size < st.size ||
247
+ current.size === st.size && (current.mtimeMs !== st.mtimeMs || current.ctimeMs !== st.ctimeMs))
248
+ throw new Error("launch log replaced during indexing; retry maintenance");
249
+ const generation = randomUUID();
250
+ const manifest = { version: 1, kind, generation,
251
+ ...(kind === "aliases" ? { aliasOwner: true } : {}),
252
+ dev: st.dev, ino: st.ino, size, mtimeMs: st.mtimeMs, ctimeMs: st.ctimeMs,
253
+ buckets: { ...previous?.buckets } };
254
+ for (const [shard, bucket] of changed) {
255
+ const text = JSON.stringify(bucket);
256
+ const name = `${generation}-${shard}.json`;
257
+ writeFileSync(join(directory(file), name), text, { mode: 0o600 });
258
+ manifest.buckets[shard] = { file: name, hash: digest(text) };
259
+ }
260
+ const temp = join(directory(file), `${generation}.tmp`);
261
+ writeFileSync(temp, JSON.stringify({ data: manifest, hash: digest(JSON.stringify(manifest)) }), { mode: 0o600 });
262
+ renameSync(temp, manifestPath(file));
263
+ }
264
+ finally {
265
+ closeSync(fd);
266
+ }
267
+ }, incremental ? { timeoutMs: 0, reclaimStale: false } : {});
268
+ }
269
+ /** Append audit first. A crash/failed index update is recovered by tail replay. */
270
+ export function appendLaunchRow(file, kind, row) {
271
+ appendFileSync(file, `${JSON.stringify(row)}\n`, "utf8");
272
+ if (existsSync(manifestPath(file))) {
273
+ try {
274
+ buildLaunchIndex(file, kind, true);
275
+ }
276
+ catch { /* index failure must not roll back an already published audit row */ }
277
+ }
278
+ }
279
+ //# sourceMappingURL=launch-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch-index.js","sourceRoot":"","sources":["../../../src/runtime/local-files/launch-index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/runtime/local-files/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/runtime/local-files/store.ts"],"names":[],"mappings":"AAcA,OAAO,EAoBL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EAEvB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EAErB,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EAAgG,KAAK,iBAAiB,EAAwB,MAAM,qBAAqB,CAAC;AACjL,OAAO,EAAkB,KAAK,uBAAuB,EAAE,KAAK,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAKlH,OAAO,EASL,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAUpB,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,6FAA6F;IAC7F,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IAC3B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,oEAAoE;AACpE,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,sBAAsB;gBACvB,SAAS,EAAE,MAAM;CAI9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAErD;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,EAAE,EAAE,MAAM,CAAC;CACZ;AAKD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,aAAa,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,eAAe,CAAC;IACvB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5E,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC;IAC5E,0BAA0B,CAAC,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC;IAC/F,2BAA2B,CAAC,OAAO,EAAE,0BAA0B,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,uBAAuB,GAAG;QAAC,EAAE,EAAC,KAAK,CAAC;QAAA,MAAM,EAAC,UAAU,GAAG,eAAe,CAAA;KAAC,CAAC;IAClL,gBAAgB,CAAC,GAAG,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAClD,aAAa,IAAI,oBAAoB,EAAE,CAAC;IACxC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAAC;IAC3D,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/D,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/C,aAAa,IAAI,WAAW,EAAE,CAAC;IAC/B,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAClE,mFAAmF;IACnF,kBAAkB,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACvD,iBAAiB,IAAI,qBAAqB,EAAE,CAAC;IAC7C,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAAC;IAC5E,aAAa,IAAI,oBAAoB,EAAE,CAAC;IACxC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACpD,aAAa,IAAI,kBAAkB,EAAE,CAAC;IACtC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAAC;IACzD,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAAC;IAC9D,eAAe,CAAC,MAAM,EAAE,oBAAoB,GAAG,oBAAoB,CAAC;IACpE,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAAC;IAC9D,uBAAuB,CACrB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GACrC,oBAAoB,CAAC;IACxB,sBAAsB,CAAC,KAAK,GAAG,OAAO,EACpC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAChC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC1B,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1E,qBAAqB,CACnB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,qBAAqB,EAClC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7B,eAAe,CAAC,qBAAqB,CAAC,CAAC;IAC1C,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,uBAAuB,EAAE,CAAC;IACxE,qBAAqB,CACnB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GACzE,yBAAyB,CAAC;IAC7B,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,yBAAyB,CAAC;IACzE,oBAAoB,CAClB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7B;QACD,MAAM,EAAE,oBAAoB,CAAC;QAC7B,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;QACrC,cAAc,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5D,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IACxC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5E,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7D,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IACzC,eAAe,CACb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,WAAW,EACrB,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,GAC3B,IAAI,CAAC;IACR,mBAAmB,CACjB,cAAc,EAAE,MAAM,GACrB,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,WAAW,EAAE,CAAA;KAAE,CAAC,CAAC;IACzD,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAAC;IAC/D,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAAC;IACrE,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACtD,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3D;AAkJD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,UAAU,CAs6C7E"}
@@ -1,4 +1,4 @@
1
- import { appendFileSync, openSync, closeSync, fsyncSync, existsSync, mkdirSync, readFileSync, readdirSync, statSync, unlinkSync, writeFileSync } from "node:fs";
1
+ import { appendFileSync, openSync, closeSync, fsyncSync, existsSync, mkdirSync, readFileSync, readdirSync, renameSync, statSync, unlinkSync, writeFileSync } from "node:fs";
2
2
  import { dirname, join } from "node:path";
3
3
  import { H2A_ARTIFACT_KINDS, H2A_AUTHORITY_MATRIX, H2A_DECLARATION_INTERET_BODY_KIND, H2A_DEFAULT_MAX_SKEW_MS, appendJournalEntry, assertValidNegotiationState, canSignArtifactKind, computeHash, createJournalEntry, deriveDecisionDossier as deriveDecisionDossierCore, derivePostureConflit, derivePostureConfiance as derivePostureConfianceCore, evaluatePresenterBias, isH2AEnvelope, validateH2AEnvelope, isH2ADeclarationInteret, validateSubagentBinding, verifyCanonical, verifyJournalChain } from "@sentropic/h2a";
4
4
  import { MCP_IDENTITY_TIMEOUT_MS } from '../mcp/identity-state.js';
@@ -7,9 +7,10 @@ import { authorizeDrive } from '../drive/index.js';
7
7
  import { withLockSync } from "./locks.js";
8
8
  import { withLeaseSync } from "./lease.js";
9
9
  import { getActiveMcpTrace } from "../mcp/phase-trace.js";
10
+ import { appendLaunchRow, launchLookupKey, lookupLaunchRows } from "./launch-index.js";
10
11
  import { inboxDir, inboxDirRaw, localStorePaths, negotiationDir, negotiationJournalFile, outboxDir, outboxDirRaw, safePathSegment } from "./paths.js";
11
12
  import { H2A_STORE_SCHEMA_FILE, H2A_STORE_SCHEMA_VERSION, StoreSchemaMismatchError, readCliPackageVersion } from "./schema.js";
12
- import { listIdentityAliases, mergeInboxDedup } from "../identity/migration.js";
13
+ import { listIdentityAliases, legacyAliasOwner, mergeInboxDedup } from "../identity/migration.js";
13
14
  /** L2: a mutator refused because the store was opened read-only. */
14
15
  export class StorageReadonlyError extends Error {
15
16
  code = "storage_readonly";
@@ -92,7 +93,18 @@ function ensureSchemaSentinel(root, options) {
92
93
  createdAt: new Date().toISOString(),
93
94
  createdBy: readCliPackageVersion()
94
95
  };
95
- writeFileSync(sentinelPath, `${JSON.stringify(payload, null, 2)}\n`, "utf8");
96
+ // Atomic create, not a plain writeFileSync: on a fresh store root several
97
+ // concurrent processes (e.g. the F2 mixed sync-CLI + async-MCP writer
98
+ // burst) all pass the existsSync check together, and the first writer's
99
+ // truncate-then-write is observable mid-write by the others — an empty
100
+ // or partial JSON read lands here as StoreSchemaMismatchError
101
+ // "<unparseable>". A pid-suffixed temp file in the SAME directory plus
102
+ // rename(2) is atomic: a reader either sees no file or the complete
103
+ // sentinel, never a torn one. Losers of the create race overwrite the
104
+ // winner with equivalent content, which is idempotent.
105
+ const tmpPath = `${sentinelPath}.${process.pid}.tmp`;
106
+ writeFileSync(tmpPath, `${JSON.stringify(payload, null, 2)}\n`, "utf8");
107
+ renameSync(tmpPath, sentinelPath);
96
108
  return;
97
109
  }
98
110
  let parsed;
@@ -236,6 +248,11 @@ export function createLocalStore(options) {
236
248
  }));
237
249
  }
238
250
  function findInstance(id) {
251
+ const indexed = lookupLaunchRows(paths.instances, "instances", launchLookupKey(id));
252
+ if (indexed !== undefined) {
253
+ const reg = indexed[0];
254
+ return reg ? { ...reg, roles: toArray(reg.roles), scopes: toArray(reg.scopes) } : undefined;
255
+ }
239
256
  return listInstances().find((entry) => entry.id === id);
240
257
  }
241
258
  function registerInstance(reg) {
@@ -244,7 +261,7 @@ export function createLocalStore(options) {
244
261
  if (findInstance(reg.id)) {
245
262
  return;
246
263
  }
247
- appendJsonl(paths.instances, reg);
264
+ appendLaunchRow(paths.instances, "instances", reg);
248
265
  }, lockOpts);
249
266
  }
250
267
  // DEC-078: the active public keys for an instance = the keys baked into its
@@ -252,7 +269,7 @@ export function createLocalStore(options) {
252
269
  // from append-only sources so a rotation never rewrites a registration.
253
270
  function listInstanceKeys(instanceId) {
254
271
  const fromRegistration = findInstance(instanceId)?.publicKeys ?? [];
255
- const events = readJsonl(paths.keys).filter((e) => e.instance === instanceId);
272
+ const events = (lookupLaunchRows(paths.keys, "keys", launchLookupKey(instanceId)) ?? readJsonl(paths.keys)).filter((e) => e.instance === instanceId);
256
273
  const revoked = new Set(events.filter((e) => e.type === "revoked").map((e) => e.publicKey));
257
274
  const active = new Set();
258
275
  for (const pem of fromRegistration)
@@ -279,7 +296,7 @@ export function createLocalStore(options) {
279
296
  if (listInstanceKeys(instanceId).includes(publicKeyPem)) {
280
297
  throw new Error(`Key already registered for ${instanceId}`);
281
298
  }
282
- appendJsonl(paths.keys, {
299
+ appendLaunchRow(paths.keys, "keys", {
283
300
  instance: instanceId,
284
301
  publicKey: publicKeyPem,
285
302
  type: "added",
@@ -295,7 +312,7 @@ export function createLocalStore(options) {
295
312
  if (!listInstanceKeys(instanceId).includes(publicKeyPem)) {
296
313
  throw new Error(`Key not active for ${instanceId}`);
297
314
  }
298
- appendJsonl(paths.keys, {
315
+ appendLaunchRow(paths.keys, "keys", {
299
316
  instance: instanceId,
300
317
  publicKey: publicKeyPem,
301
318
  type: "revoked",
@@ -1282,14 +1299,11 @@ export function createLocalStore(options) {
1282
1299
  // legacyInstance (earliest alias `at`). `adoptedKeyring` can't gate this — a
1283
1300
  // fresh first connect has adoptedKeyring:false too. This keeps the legit
1284
1301
  // "read your own migrated inbox" while closing the cross-read.
1285
- const allAliases = listIdentityAliases(paths.root);
1286
- const ownedLegacy = allAliases
1287
- .filter((a) => a.instance === actor)
1288
- .filter((a) => {
1289
- const claimants = allAliases.filter((x) => x.legacyInstance === a.legacyInstance);
1290
- const earliest = claimants.reduce((m, x) => (x.at < m.at ? x : m), claimants[0]);
1291
- return earliest.instance === actor;
1292
- })
1302
+ const indexedAliases = lookupLaunchRows(join(paths.root, "identity", "aliases.jsonl"), "aliases", launchLookupKey("instance", actor));
1303
+ // Without an index, retain the original single full read for both filters.
1304
+ const allAliases = indexedAliases === undefined ? listIdentityAliases(paths.root) : undefined;
1305
+ const ownedLegacy = (indexedAliases ?? allAliases.filter(a => a.instance === actor))
1306
+ .filter((a) => legacyAliasOwner(paths.root, a.legacyInstance, allAliases)?.instance === actor)
1293
1307
  .map((a) => a.legacyInstance);
1294
1308
  const dirs = new Set();
1295
1309
  for (const handle of [actor, ...ownedLegacy]) {