@sensigo/realm-mcp 0.45.0 → 0.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/bin-identity.d.ts +11 -0
  2. package/dist/bin-identity.d.ts.map +1 -0
  3. package/dist/bin-identity.js +47 -0
  4. package/dist/bin-identity.js.map +1 -0
  5. package/dist/brand.d.ts +3 -0
  6. package/dist/brand.d.ts.map +1 -0
  7. package/dist/brand.js +7 -0
  8. package/dist/brand.js.map +1 -0
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +1 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/json-trace-buffer-store.d.ts +44 -31
  14. package/dist/json-trace-buffer-store.d.ts.map +1 -1
  15. package/dist/json-trace-buffer-store.js +72 -49
  16. package/dist/json-trace-buffer-store.js.map +1 -1
  17. package/dist/protocol/generator.js +2 -2
  18. package/dist/protocol/generator.js.map +1 -1
  19. package/dist/server.d.ts +13 -2
  20. package/dist/server.d.ts.map +1 -1
  21. package/dist/server.js +30 -4
  22. package/dist/server.js.map +1 -1
  23. package/dist/test-support/declared.d.ts +2 -0
  24. package/dist/test-support/declared.d.ts.map +1 -0
  25. package/dist/test-support/declared.js +9 -0
  26. package/dist/test-support/declared.js.map +1 -0
  27. package/dist/tools/abandon-run.d.ts.map +1 -1
  28. package/dist/tools/abandon-run.js +2 -0
  29. package/dist/tools/abandon-run.js.map +1 -1
  30. package/dist/tools/append-trace.d.ts +2 -0
  31. package/dist/tools/append-trace.d.ts.map +1 -1
  32. package/dist/tools/append-trace.js +18 -70
  33. package/dist/tools/append-trace.js.map +1 -1
  34. package/dist/tools/assert-tool-stores.d.ts +26 -0
  35. package/dist/tools/assert-tool-stores.d.ts.map +1 -0
  36. package/dist/tools/assert-tool-stores.js +54 -0
  37. package/dist/tools/assert-tool-stores.js.map +1 -0
  38. package/dist/tools/create-workflow.d.ts.map +1 -1
  39. package/dist/tools/create-workflow.js +2 -0
  40. package/dist/tools/create-workflow.js.map +1 -1
  41. package/dist/tools/execute-step.d.ts.map +1 -1
  42. package/dist/tools/execute-step.js +15 -0
  43. package/dist/tools/execute-step.js.map +1 -1
  44. package/dist/tools/get-run-state.d.ts +27 -1
  45. package/dist/tools/get-run-state.d.ts.map +1 -1
  46. package/dist/tools/get-run-state.js +59 -2
  47. package/dist/tools/get-run-state.js.map +1 -1
  48. package/dist/tools/get-workflow-protocol.d.ts.map +1 -1
  49. package/dist/tools/get-workflow-protocol.js +2 -0
  50. package/dist/tools/get-workflow-protocol.js.map +1 -1
  51. package/dist/tools/list-workflows.d.ts.map +1 -1
  52. package/dist/tools/list-workflows.js +2 -0
  53. package/dist/tools/list-workflows.js.map +1 -1
  54. package/dist/tools/start-run-batch.d.ts.map +1 -1
  55. package/dist/tools/start-run-batch.js +7 -0
  56. package/dist/tools/start-run-batch.js.map +1 -1
  57. package/dist/tools/start-run.d.ts +8 -1
  58. package/dist/tools/start-run.d.ts.map +1 -1
  59. package/dist/tools/start-run.js +11 -2
  60. package/dist/tools/start-run.js.map +1 -1
  61. package/dist/tools/submit-human-response.d.ts +36 -0
  62. package/dist/tools/submit-human-response.d.ts.map +1 -1
  63. package/dist/tools/submit-human-response.js +101 -12
  64. package/dist/tools/submit-human-response.js.map +1 -1
  65. package/dist/version.d.ts +2 -0
  66. package/dist/version.d.ts.map +1 -0
  67. package/dist/version.js +3 -0
  68. package/dist/version.js.map +1 -0
  69. package/package.json +4 -4
@@ -0,0 +1,11 @@
1
+ import { type Attributed } from '@sensigo/realm';
2
+ export interface BinIdentityDeps {
3
+ osUser?: () => string;
4
+ osHost?: () => string;
5
+ /** `process.env.REALM_OPERATOR`. */
6
+ operator?: string | undefined;
7
+ stderr?: (text: string) => void;
8
+ exit?: (code: number) => never;
9
+ }
10
+ export declare function composeBinIdentity(deps?: BinIdentityDeps): Attributed | undefined;
11
+ //# sourceMappingURL=bin-identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin-identity.d.ts","sourceRoot":"","sources":["../src/bin-identity.ts"],"names":[],"mappings":"AASA,OAAO,EAA+C,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE9F,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;IACtB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC;CAChC;AAED,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,eAAoB,GAAG,UAAU,GAAG,SAAS,CAmCrF"}
@@ -0,0 +1,47 @@
1
+ // The `realm-mcp` bin's own program identity (issue #625, the holder slice): `REALM_OPERATOR` if
2
+ // set, else the OS user and host name, on the channel `mcp-stdio`. One of the two production places
3
+ // that read the OS user (the other is the CLI's helper); core reads none.
4
+ //
5
+ // A name that cannot be USED prints ONE line to stderr and exits 1 before the transport opens —
6
+ // never a stack, never a half-started server. A name that merely cannot be DERIVED prints one notice
7
+ // and the server runs without one. The facts and the two sinks are injectable so a test can make
8
+ // the OS "say" anything; the defaults are the real ones.
9
+ import { hostname, userInfo } from 'node:os';
10
+ import { composeProgramIdentity, identityRefusalLine } from '@sensigo/realm';
11
+ export function composeBinIdentity(deps = {}) {
12
+ const readUser = deps.osUser ?? (() => userInfo().username);
13
+ const readHost = deps.osHost ?? (() => hostname());
14
+ const operator = 'operator' in deps ? deps.operator : process.env['REALM_OPERATOR'];
15
+ const stderr = deps.stderr ?? ((text) => void process.stderr.write(text));
16
+ const exit = deps.exit ?? ((code) => process.exit(code));
17
+ let osUser;
18
+ try {
19
+ osUser = readUser();
20
+ }
21
+ catch {
22
+ osUser = undefined;
23
+ }
24
+ let osHost;
25
+ try {
26
+ osHost = readHost();
27
+ }
28
+ catch {
29
+ osHost = undefined;
30
+ }
31
+ try {
32
+ const composed = composeProgramIdentity({
33
+ ...(operator !== undefined ? { ambient: operator } : {}),
34
+ ...(osUser !== undefined ? { osUser } : {}),
35
+ ...(osHost !== undefined ? { osHost } : {}),
36
+ }, 'mcp-stdio');
37
+ if (composed.driver === undefined && composed.reason !== undefined) {
38
+ stderr(`this program's name cannot be recorded on the steps it takes: ${composed.reason}\n`);
39
+ }
40
+ return composed.driver;
41
+ }
42
+ catch (err) {
43
+ stderr(`${identityRefusalLine('REALM_OPERATOR', err, 'nothing was started')}\n`);
44
+ return exit(1);
45
+ }
46
+ }
47
+ //# sourceMappingURL=bin-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin-identity.js","sourceRoot":"","sources":["../src/bin-identity.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,oGAAoG;AACpG,0EAA0E;AAC1E,EAAE;AACF,gGAAgG;AAChG,qGAAqG;AACrG,iGAAiG;AACjG,yDAAyD;AACzD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAmB,MAAM,gBAAgB,CAAC;AAW9F,MAAM,UAAU,kBAAkB,CAAC,OAAwB,EAAE;IAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,GAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,GAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,IAAY,EAAQ,EAAE,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACxF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAY,EAAS,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxE,IAAI,MAA0B,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,GAAG,QAAQ,EAAE,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,MAA0B,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,GAAG,QAAQ,EAAE,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,sBAAsB,CACrC;YACE,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,EACD,WAAW,CACZ,CAAC;QACF,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACnE,MAAM,CAAC,iEAAiE,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;QAC/F,CAAC;QACD,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,GAAG,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type RealmBrand } from '@sensigo/realm';
2
+ export declare const REALM_MCP_BRAND: RealmBrand;
3
+ //# sourceMappingURL=brand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../src/brand.ts"],"names":[],"mappings":"AAGA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGnE,eAAO,MAAM,eAAe,EAAE,UAI7B,CAAC"}
package/dist/brand.js ADDED
@@ -0,0 +1,7 @@
1
+ // This package's release mark (issue #620 PR-B): what every class `@sensigo/realm-mcp` exports carries on its
2
+ // prototype, so copies of the same release recognise each other's objects. See `brand.ts` in
3
+ // `@sensigo/realm` for what the mark is and how it is checked.
4
+ import { createRealmBrand } from '@sensigo/realm';
5
+ import { VERSION } from './version.js';
6
+ export const REALM_MCP_BRAND = createRealmBrand('@sensigo/realm-mcp', VERSION, typeof import.meta.url === 'string' ? new URL('../', import.meta.url).href : null);
7
+ //# sourceMappingURL=brand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand.js","sourceRoot":"","sources":["../src/brand.ts"],"names":[],"mappings":"AAAA,8GAA8G;AAC9G,6FAA6F;AAC7F,+DAA+D;AAC/D,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,CAAC,MAAM,eAAe,GAAe,gBAAgB,CACzD,oBAAoB,EACpB,OAAO,EACP,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAClF,CAAC"}
package/dist/index.d.ts CHANGED
@@ -3,5 +3,5 @@ export type { RealmMcpServerOptions } from './server.js';
3
3
  export { generateProtocol } from './protocol/generator.js';
4
4
  export type { WorkflowProtocol, ProtocolStep } from './protocol/generator.js';
5
5
  export { JsonTraceBufferStore } from './json-trace-buffer-store.js';
6
- export declare const VERSION = "0.45.0";
6
+ export { VERSION } from './version.js';
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC1E,YAAY,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,eAAO,MAAM,OAAO,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC1E,YAAY,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -4,5 +4,5 @@ export { generateProtocol } from './protocol/generator.js';
4
4
  // issue #107: exported so the operator run-purge CLI command (packages/cli) can construct one
5
5
  // and register it as a PerRunArtifactStore alongside JsonFileStore/FailedAttemptStore.
6
6
  export { JsonTraceBufferStore } from './json-trace-buffer-store.js';
7
- export const VERSION = '0.45.0';
7
+ export { VERSION } from './version.js';
8
8
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,8FAA8F;AAC9F,uFAAuF;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,8FAA8F;AAC9F,uFAAuF;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { type ArtifactDeletionReport, type TraceBufferStore, type BufferedEntry, type AppendResult, type AppendOptions, type TraceCapability, type SealResult, type SealedArtifact, type PerRunArtifactStore, type OrphanSweepableStore, type OrphanArtifact } from '@sensigo/realm';
2
- import type { AgentTraceEntry } from '@sensigo/realm';
2
+ import type { AgentTraceEntry, FencePredicate, FenceRunReader, RunScopedFencePredicate } from '@sensigo/realm';
3
3
  /** A `proper-lockfile` retry policy: either a bare retry count (its own simple default backoff)
4
4
  * or an explicit `retry`-module-compatible options object. `randomize` (issue #191 ride-along —
5
5
  * `json-file-store.ts`'s own `LOCK_RETRIES` doc has the full jitter rationale) is optional so
@@ -12,7 +12,7 @@ type LockRetries = number | {
12
12
  };
13
13
  /** Lock-acquisition profile shared by every `lockWal` call in this file (issue #207).
14
14
  * Constructor-injectable so a conformance suite can inflate the retry budget (e.g. to make a
15
- * deliberately slow/latched guard's lock contention observable instead of exhausting the retry
15
+ * deliberately slow/parked fence read's lock contention observable instead of exhausting the retry
16
16
  * budget too quickly and masking the scenario under test). */
17
17
  export interface TraceBufferLockProfile {
18
18
  retries: LockRetries;
@@ -53,7 +53,23 @@ export declare class JsonTraceBufferStore implements TraceBufferStore, PerRunArt
53
53
  readonly traceCapabilities: ReadonlySet<TraceCapability>;
54
54
  private readonly runsDir;
55
55
  private readonly lockProfile;
56
- constructor(runsDir: string, lockProfile?: Partial<TraceBufferLockProfile>);
56
+ /** The run store every fence predicate is evaluated against (issue #616 PR-0) — the read the
57
+ * former guards made: one lock-free `get`, inside this store's WAL lock. REQUIRED (issue #616
58
+ * PR-0, D2): building the store with nothing that has a `get` method in the reader's place
59
+ * (`isFenceRunReader`) throws at construction — never a silently unfenced write discovered at
60
+ * the first fenced call. */
61
+ private readonly runReader;
62
+ /**
63
+ * `runReader` is REQUIRED (issue #616 PR-0, D2) — it must sit before `lockProfile` because a
64
+ * required parameter cannot follow an optional one. A TypeScript caller that omits it is a
65
+ * compile error; a plain-JavaScript caller (this package is published and consumed from
66
+ * JavaScript too) can reach this constructor with no reader, with `null`, or with the previous
67
+ * release's `(runsDir, lockProfile)` shape — a lock profile where the reader now goes. None of
68
+ * them has a `get` method (`isFenceRunReader`), so each throws `fenceReaderMissingError` here —
69
+ * at construction, not at the first fenced call, where the failure would otherwise surface as a
70
+ * bare `TypeError` (and a lock profile passed that way would be dropped without a word).
71
+ */
72
+ constructor(runsDir: string, runReader: FenceRunReader, lockProfile?: Partial<TraceBufferLockProfile>);
57
73
  private walPath;
58
74
  /** Builds the on-disk path for one sealed artifact — see `SEALED_PREFIX`'s doc for the shape
59
75
  * and why it never collides with a live WAL path. */
@@ -107,31 +123,31 @@ export declare class JsonTraceBufferStore implements TraceBufferStore, PerRunArt
107
123
  private appendWithinCS;
108
124
  append(runId: string, stepId: string, entries: AgentTraceEntry[], options?: AppendOptions): Promise<AppendResult>;
109
125
  /**
110
- * `guard` runs INSIDE the critical section, immediately before the physical write (issue #207)
111
- * — see the interface doc for the full guard contract. NO pre-lock placeholder file: verified
126
+ * The fence is evaluated INSIDE the critical section, immediately before the physical write
127
+ * (issue #207; data since #616 PR-0) — see the interface doc for the full fence contract. NO pre-lock placeholder file: verified
112
128
  * `lockfile.lock(path, { realpath: false })` acquires cleanly against a target that does not yet
113
129
  * exist; the legacy `append()`'s placeholder above predates this and stays byte-identical there,
114
130
  * but is not needed and is not replicated here — `appendFile`'s own `O_CREAT`, inside the
115
131
  * critical section, is the sole creator of the WAL file on this path.
116
132
  */
117
- appendFenced(runId: string, stepId: string, entries: AgentTraceEntry[], guard: () => Promise<void>, options?: AppendOptions): Promise<AppendResult>;
133
+ appendFenced(runId: string, stepId: string, entries: AgentTraceEntry[], fence: FencePredicate, options?: AppendOptions): Promise<AppendResult>;
118
134
  /** `_nonce` is re-attached per-line ONLY when that line actually carried one — via the SAME
119
135
  * `flattenWalBatches` core helper the in-memory store uses, so "never fabricate `_nonce` for a
120
136
  * bare line" is enforced from exactly one shared code path rather than reimplemented twice. */
121
137
  read(runId: string, stepId: string): Promise<BufferedEntry[]>;
122
138
  delete(runId: string, stepId: string): Promise<void>;
123
139
  /**
124
- * `guard` runs INSIDE the same per-path critical section `append`/`appendFenced` use,
125
- * immediately before the delete (issue #207) — see the interface doc for the full guard
126
- * contract. Returns the number of entries actually deleted (`0` = buffer already absent; the
127
- * guard still ran first). Counts via the already-open `readWal` internals — NEVER the public
140
+ * The fence is evaluated INSIDE the same per-path critical section `append`/`appendFenced` use,
141
+ * immediately before the delete (issue #207; data since #616 PR-0) — see the interface doc for
142
+ * the full fence contract. Returns the number of entries actually deleted (`0` = buffer already
143
+ * absent; the fence was still evaluated first). Counts via the already-open `readWal` internals — NEVER the public
128
144
  * `read()`, which would re-acquire this same lock (a critical section must never be re-entered
129
145
  * from within itself — `proper-lockfile` is not reentrant).
130
146
  */
131
- deleteFenced(runId: string, stepId: string, guard: () => Promise<void>): Promise<number>;
147
+ deleteFenced(runId: string, stepId: string, fence: FencePredicate): Promise<number>;
132
148
  /**
133
- * `guard` runs INSIDE the SAME per-path critical section every other operation on this key
134
- * uses (issue #197 PR-1, the `seal` rung — design §4: "no second locking path"), immediately
149
+ * The fence is evaluated INSIDE the SAME per-path critical section every other operation on this
150
+ * key uses (issue #197 PR-1, the `seal` rung — design §4: "no second locking path"), immediately
135
151
  * before the seal-move. Atomically retires the live WAL file to a new sealed artifact via the
136
152
  * no-clobber `link`-then-`unlink` primitive (`linkNoClobberThenUnlink`) — plain `rename()` is
137
153
  * FORBIDDEN here, since it would silently overwrite an existing sealed artifact at the same
@@ -148,7 +164,7 @@ export declare class JsonTraceBufferStore implements TraceBufferStore, PerRunArt
148
164
  * failure. A present-but-empty file (e.g. `append()`'s legacy placeholder) is NOT "absent" — it
149
165
  * gets sealed like any other live WAL (a harmless, if pointless, empty sealed artifact).
150
166
  */
151
- sealFenced(runId: string, stepId: string, guard: () => Promise<void>): Promise<SealResult>;
167
+ sealFenced(runId: string, stepId: string, fence: FencePredicate): Promise<SealResult>;
152
168
  /**
153
169
  * Lock-free point-in-time read of every sealed artifact for `runId`, across all its steps
154
170
  * (issue #197 PR-1, the `seal` rung) — matches `readAllForRun`'s deliberately-unlocked posture.
@@ -190,27 +206,24 @@ export declare class JsonTraceBufferStore implements TraceBufferStore, PerRunArt
190
206
  }>;
191
207
  deleteAllForRun(runId: string, dirEntries?: readonly string[]): Promise<ArtifactDeletionReport>;
192
208
  /**
193
- * `guard` is RE-INVOKED inside EACH per-file critical section, immediately before that file's
194
- * delete (issue #207) — a refusal on any one file aborts the whole sweep with that file's error
195
- * (stop-on-first-error, matching the legacy method's own semantics). When zero files match
196
- * `runId` at all, `guard` is still consulted at least once (issue #207 correction: the scan
197
- * — resolving which files match — necessarily runs FIRST, since there is nothing to invoke a
198
- * per-file guard against otherwise; the guard is then invoked once for the empty case). If it
199
- * throws, the sweep rejects with that error exactly as it would for a non-empty sweep —
200
- * propagation is UNIFORM across the zero-match and non-empty cases (the TCK asserts rejection
201
- * here, not merely invocation count: a refusing guard makes even a zero-match sweep reject). A
202
- * guard rejection, and a per-file lock-contention failure (classified `STATE_RUN_BUSY`,
203
- * mirroring `deleteAllForRun`'s own classification above), both propagate UNWRAPPED — never
204
- * touched by `toArtifactDeleteFailedError`, which still wraps genuine unlink/I-O failures (the
205
- * #183 absence/unreachable/corrupt trichotomy, extended with this third, distinct guard-refusal
206
- * outcome). The guard call itself sits OUTSIDE the try/catch scope that performs this wrapping
207
- * (see the loop body below) — so a guard that happens to throw an `FsIoError` (e.g. its own
208
- * lock-free `runStore.get` hitting EACCES) is never mistaken for `deleteIfExists`'s own failure.
209
+ * The fence is RE-EVALUATED (a fresh run read) inside EACH per-file critical section,
210
+ * immediately before that file's delete (issue #207; data since #616 PR-0) — a refusal on any one
211
+ * file aborts the whole sweep with that file's error (stop-on-first-error, matching the legacy
212
+ * method's own semantics). When zero files match `runId` at all, the fence is still evaluated
213
+ * once (the scan — resolving which files match — necessarily runs FIRST), and a refusal rejects
214
+ * the sweep exactly as it would a non-empty one — propagation is UNIFORM across the zero-match
215
+ * and non-empty cases. A fence refusal, and a per-file lock-contention failure (classified
216
+ * `STATE_RUN_BUSY`, mirroring `deleteAllForRun`'s own classification above), both propagate
217
+ * UNWRAPPED — never touched by `toArtifactDeleteFailedError`, which still wraps genuine
218
+ * unlink/I-O failures (the #183 absence/unreachable/corrupt trichotomy, extended with this third,
219
+ * distinct fence-refusal outcome). The fence check sits OUTSIDE the try/catch scope that performs
220
+ * this wrapping (see the loop body below) — so a run read that happens to throw an `FsIoError`
221
+ * (e.g. EACCES) is never mistaken for `deleteIfExists`'s own failure.
209
222
  *
210
223
  * Issue #197 PR-1: sealed artifacts for this run join the same fenced sweep, same as the
211
224
  * unfenced `deleteAllForRun` above.
212
225
  */
213
- deleteAllForRunFenced(runId: string, guard: () => Promise<void>, dirEntries?: readonly string[]): Promise<ArtifactDeletionReport>;
226
+ deleteAllForRunFenced(runId: string, fence: RunScopedFencePredicate, dirEntries?: readonly string[]): Promise<ArtifactDeletionReport>;
214
227
  /**
215
228
  * Reads every WAL file for `runId` across all steps — the read-only counterpart to
216
229
  * `deleteAllForRun`, for `realm run export`'s evidence assembly (issue #159). Mirrors
@@ -1 +1 @@
1
- {"version":3,"file":"json-trace-buffer-store.d.ts","sourceRoot":"","sources":["../src/json-trace-buffer-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-trace-buffer-store.d.ts","sourceRoot":"","sources":["../src/json-trace-buffer-store.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,9 @@ import { existsSync } from 'node:fs';
3
3
  import { appendFile, readdir } from 'node:fs/promises';
4
4
  import { join, basename } from 'node:path';
5
5
  import lockfile from 'proper-lockfile';
6
- import { normalizeEntryForBuffer, BUFFER_LIMIT_COUNT, BUFFER_LIMIT_BYTES, FINAL_LIMIT_ENTRIES, FINAL_LIMIT_BYTES, BUFFER_BACKSTOP_COUNT, BUFFER_BACKSTOP_BYTES, SEALED_ARTIFACTS_LIMIT_PER_STEP, checkBufferBudget, bufferFullError, flattenWalBatches, readIfExists, deleteIfExists, statIfExists, toArtifactDeleteFailedError, linkNoClobberThenUnlink, errnoCode, FsIoError, } from '@sensigo/realm';
7
- import { WorkflowError } from '@sensigo/realm';
6
+ import { normalizeEntryForBuffer, BUFFER_LIMIT_COUNT, BUFFER_LIMIT_BYTES, FINAL_LIMIT_ENTRIES, FINAL_LIMIT_BYTES, BUFFER_BACKSTOP_COUNT, BUFFER_BACKSTOP_BYTES, SEALED_ARTIFACTS_LIMIT_PER_STEP, checkBufferBudget, bufferFullError, flattenWalBatches, readIfExists, deleteIfExists, statIfExists, toArtifactDeleteFailedError, linkNoClobberThenUnlink, errnoCode, FsIoError, assertFencePredicate, checkFenceWithReader, fenceReaderMissingError, isFenceRunReader, assertReleaseLine, } from '@sensigo/realm';
7
+ import { WorkflowError, brandClass } from '@sensigo/realm';
8
+ import { REALM_MCP_BRAND } from './brand.js';
8
9
  /** WAL filename shape: `trace-buffer-<runId>-<base64url(stepId)>.jsonl`. `runId` is a
9
10
  * server-generated UUIDv4 — always exactly 36 characters (8-4-4-4-12 hex, RFC 4122 string
10
11
  * form) — so it can be recovered by FIXED-LENGTH slicing rather than splitting on `-`, which
@@ -117,9 +118,30 @@ export class JsonTraceBufferStore {
117
118
  ]);
118
119
  runsDir;
119
120
  lockProfile;
120
- constructor(runsDir, lockProfile) {
121
+ /** The run store every fence predicate is evaluated against (issue #616 PR-0) — the read the
122
+ * former guards made: one lock-free `get`, inside this store's WAL lock. REQUIRED (issue #616
123
+ * PR-0, D2): building the store with nothing that has a `get` method in the reader's place
124
+ * (`isFenceRunReader`) throws at construction — never a silently unfenced write discovered at
125
+ * the first fenced call. */
126
+ runReader;
127
+ /**
128
+ * `runReader` is REQUIRED (issue #616 PR-0, D2) — it must sit before `lockProfile` because a
129
+ * required parameter cannot follow an optional one. A TypeScript caller that omits it is a
130
+ * compile error; a plain-JavaScript caller (this package is published and consumed from
131
+ * JavaScript too) can reach this constructor with no reader, with `null`, or with the previous
132
+ * release's `(runsDir, lockProfile)` shape — a lock profile where the reader now goes. None of
133
+ * them has a `get` method (`isFenceRunReader`), so each throws `fenceReaderMissingError` here —
134
+ * at construction, not at the first fenced call, where the failure would otherwise surface as a
135
+ * bare `TypeError` (and a lock profile passed that way would be dropped without a word).
136
+ */
137
+ constructor(runsDir, runReader, lockProfile) {
138
+ if (!isFenceRunReader(runReader)) {
139
+ throw fenceReaderMissingError('JsonTraceBufferStore');
140
+ }
141
+ assertReleaseLine(runReader, 'the run reader handed to JsonTraceBufferStore');
121
142
  this.runsDir = runsDir;
122
143
  this.lockProfile = { ...DEFAULT_LOCK_PROFILE, ...lockProfile };
144
+ this.runReader = runReader;
123
145
  }
124
146
  walPath(runId, stepId) {
125
147
  const safeStepId = Buffer.from(stepId).toString('base64url');
@@ -329,18 +351,19 @@ export class JsonTraceBufferStore {
329
351
  }
330
352
  }
331
353
  /**
332
- * `guard` runs INSIDE the critical section, immediately before the physical write (issue #207)
333
- * — see the interface doc for the full guard contract. NO pre-lock placeholder file: verified
354
+ * The fence is evaluated INSIDE the critical section, immediately before the physical write
355
+ * (issue #207; data since #616 PR-0) — see the interface doc for the full fence contract. NO pre-lock placeholder file: verified
334
356
  * `lockfile.lock(path, { realpath: false })` acquires cleanly against a target that does not yet
335
357
  * exist; the legacy `append()`'s placeholder above predates this and stays byte-identical there,
336
358
  * but is not needed and is not replicated here — `appendFile`'s own `O_CREAT`, inside the
337
359
  * critical section, is the sole creator of the WAL file on this path.
338
360
  */
339
- async appendFenced(runId, stepId, entries, guard, options) {
361
+ async appendFenced(runId, stepId, entries, fence, options) {
362
+ assertFencePredicate(fence, stepId);
340
363
  const walPath = this.walPath(runId, stepId);
341
364
  const release = await this.lockWal(walPath, APPEND_RETRIES);
342
365
  try {
343
- await guard();
366
+ await checkFenceWithReader(this.runReader, runId, fence, stepId);
344
367
  return await this.appendWithinCS(walPath, entries, options?.writerNonce);
345
368
  }
346
369
  finally {
@@ -366,13 +389,12 @@ export class JsonTraceBufferStore {
366
389
  // declaring the fenced trio commits read/delete/deleteAllForRun to the same CS (see the
367
390
  // interface doc).
368
391
  //
369
- // issue #183: this single-step cleanup is best-effort BY CONVENTION at MOST call sites — but
370
- // NOT ALL FOUR: execution-loop.ts's :1857 success-settle call site does NOT wrap this call in
371
- // a try/catch today (a follow-up PR fixes that site directly); the other three
372
- // (execution-loop.ts's other two + reclaim-step.ts's one) do. Converting the raw unlink to
373
- // deleteIfExists here doesn't change that contract — delete() can still fail; it just stops a
374
- // real I/O error from being invisibly swallowed with NO signal at all, which the source-text
375
- // guard (store-fs-guard.test.ts) also requires (no raw unlink in this file).
392
+ // issue #183: this single-step cleanup is best-effort BY CONVENTION — every engine call site
393
+ // (the four settle sites in execution-loop.ts and reclaim-step.ts's `clearStaleWal`) wraps it
394
+ // in a try/catch. Converting the raw unlink to deleteIfExists here doesn't change that
395
+ // contract — delete() can still fail; it just stops a real I/O error from being invisibly
396
+ // swallowed with NO signal at all, which the source-text guard (store-fs-guard.test.ts) also
397
+ // requires (no raw unlink in this file).
376
398
  const walPath = this.walPath(runId, stepId);
377
399
  const release = await this.lockWal(walPath);
378
400
  try {
@@ -383,18 +405,19 @@ export class JsonTraceBufferStore {
383
405
  }
384
406
  }
385
407
  /**
386
- * `guard` runs INSIDE the same per-path critical section `append`/`appendFenced` use,
387
- * immediately before the delete (issue #207) — see the interface doc for the full guard
388
- * contract. Returns the number of entries actually deleted (`0` = buffer already absent; the
389
- * guard still ran first). Counts via the already-open `readWal` internals — NEVER the public
408
+ * The fence is evaluated INSIDE the same per-path critical section `append`/`appendFenced` use,
409
+ * immediately before the delete (issue #207; data since #616 PR-0) — see the interface doc for
410
+ * the full fence contract. Returns the number of entries actually deleted (`0` = buffer already
411
+ * absent; the fence was still evaluated first). Counts via the already-open `readWal` internals — NEVER the public
390
412
  * `read()`, which would re-acquire this same lock (a critical section must never be re-entered
391
413
  * from within itself — `proper-lockfile` is not reentrant).
392
414
  */
393
- async deleteFenced(runId, stepId, guard) {
415
+ async deleteFenced(runId, stepId, fence) {
416
+ assertFencePredicate(fence, stepId);
394
417
  const walPath = this.walPath(runId, stepId);
395
418
  const release = await this.lockWal(walPath);
396
419
  try {
397
- await guard();
420
+ await checkFenceWithReader(this.runReader, runId, fence, stepId);
398
421
  const { count } = await this.readWal(walPath);
399
422
  await deleteIfExists(walPath);
400
423
  return count;
@@ -404,8 +427,8 @@ export class JsonTraceBufferStore {
404
427
  }
405
428
  }
406
429
  /**
407
- * `guard` runs INSIDE the SAME per-path critical section every other operation on this key
408
- * uses (issue #197 PR-1, the `seal` rung — design §4: "no second locking path"), immediately
430
+ * The fence is evaluated INSIDE the SAME per-path critical section every other operation on this
431
+ * key uses (issue #197 PR-1, the `seal` rung — design §4: "no second locking path"), immediately
409
432
  * before the seal-move. Atomically retires the live WAL file to a new sealed artifact via the
410
433
  * no-clobber `link`-then-`unlink` primitive (`linkNoClobberThenUnlink`) — plain `rename()` is
411
434
  * FORBIDDEN here, since it would silently overwrite an existing sealed artifact at the same
@@ -422,11 +445,12 @@ export class JsonTraceBufferStore {
422
445
  * failure. A present-but-empty file (e.g. `append()`'s legacy placeholder) is NOT "absent" — it
423
446
  * gets sealed like any other live WAL (a harmless, if pointless, empty sealed artifact).
424
447
  */
425
- async sealFenced(runId, stepId, guard) {
448
+ async sealFenced(runId, stepId, fence) {
449
+ assertFencePredicate(fence, stepId);
426
450
  const walPath = this.walPath(runId, stepId);
427
451
  const release = await this.lockWal(walPath);
428
452
  try {
429
- await guard();
453
+ await checkFenceWithReader(this.runReader, runId, fence, stepId);
430
454
  const stat = await statIfExists(walPath);
431
455
  if (stat === undefined) {
432
456
  return { sealed: false, reason: 'absent' };
@@ -633,33 +657,31 @@ export class JsonTraceBufferStore {
633
657
  return { bytes_deleted };
634
658
  }
635
659
  /**
636
- * `guard` is RE-INVOKED inside EACH per-file critical section, immediately before that file's
637
- * delete (issue #207) — a refusal on any one file aborts the whole sweep with that file's error
638
- * (stop-on-first-error, matching the legacy method's own semantics). When zero files match
639
- * `runId` at all, `guard` is still consulted at least once (issue #207 correction: the scan
640
- * — resolving which files match — necessarily runs FIRST, since there is nothing to invoke a
641
- * per-file guard against otherwise; the guard is then invoked once for the empty case). If it
642
- * throws, the sweep rejects with that error exactly as it would for a non-empty sweep —
643
- * propagation is UNIFORM across the zero-match and non-empty cases (the TCK asserts rejection
644
- * here, not merely invocation count: a refusing guard makes even a zero-match sweep reject). A
645
- * guard rejection, and a per-file lock-contention failure (classified `STATE_RUN_BUSY`,
646
- * mirroring `deleteAllForRun`'s own classification above), both propagate UNWRAPPED — never
647
- * touched by `toArtifactDeleteFailedError`, which still wraps genuine unlink/I-O failures (the
648
- * #183 absence/unreachable/corrupt trichotomy, extended with this third, distinct guard-refusal
649
- * outcome). The guard call itself sits OUTSIDE the try/catch scope that performs this wrapping
650
- * (see the loop body below) — so a guard that happens to throw an `FsIoError` (e.g. its own
651
- * lock-free `runStore.get` hitting EACCES) is never mistaken for `deleteIfExists`'s own failure.
660
+ * The fence is RE-EVALUATED (a fresh run read) inside EACH per-file critical section,
661
+ * immediately before that file's delete (issue #207; data since #616 PR-0) — a refusal on any one
662
+ * file aborts the whole sweep with that file's error (stop-on-first-error, matching the legacy
663
+ * method's own semantics). When zero files match `runId` at all, the fence is still evaluated
664
+ * once (the scan — resolving which files match — necessarily runs FIRST), and a refusal rejects
665
+ * the sweep exactly as it would a non-empty one — propagation is UNIFORM across the zero-match
666
+ * and non-empty cases. A fence refusal, and a per-file lock-contention failure (classified
667
+ * `STATE_RUN_BUSY`, mirroring `deleteAllForRun`'s own classification above), both propagate
668
+ * UNWRAPPED — never touched by `toArtifactDeleteFailedError`, which still wraps genuine
669
+ * unlink/I-O failures (the #183 absence/unreachable/corrupt trichotomy, extended with this third,
670
+ * distinct fence-refusal outcome). The fence check sits OUTSIDE the try/catch scope that performs
671
+ * this wrapping (see the loop body below) — so a run read that happens to throw an `FsIoError`
672
+ * (e.g. EACCES) is never mistaken for `deleteIfExists`'s own failure.
652
673
  *
653
674
  * Issue #197 PR-1: sealed artifacts for this run join the same fenced sweep, same as the
654
675
  * unfenced `deleteAllForRun` above.
655
676
  */
656
- async deleteAllForRunFenced(runId, guard, dirEntries) {
677
+ async deleteAllForRunFenced(runId, fence, dirEntries) {
678
+ assertFencePredicate(fence);
657
679
  const matching = [
658
680
  ...(await this.matchingWalFiles(runId, dirEntries)),
659
681
  ...(await this.matchingSealedFiles(runId, dirEntries)),
660
682
  ];
661
683
  if (matching.length === 0) {
662
- await guard();
684
+ await checkFenceWithReader(this.runReader, runId, fence);
663
685
  return { bytes_deleted: 0 };
664
686
  }
665
687
  const deleted = [];
@@ -676,13 +698,13 @@ export class JsonTraceBufferStore {
676
698
  throw err;
677
699
  }
678
700
  try {
679
- // issue #207 correction: `guard()` sits OUTSIDE the FsIoError-wrap scope below — a guard
680
- // rejection of ANY type, including one that happens to itself be an FsIoError (a
681
- // realistic case: the guard's lock-free `runStore.get` hitting EACCES), must propagate
682
- // exactly as thrown. The earlier shape wrapped BOTH the guard call and `deleteIfExists`
683
- // in one try/catch keyed only on `err instanceof FsIoError` — which mistook a
684
- // guard-thrown FsIoError for deleteIfExists's own failure and wrapped it too.
685
- await guard();
701
+ // issue #207 correction: the fence check sits OUTSIDE the FsIoError-wrap scope below — a
702
+ // refusal of ANY type, including a read failure that happens to itself be an FsIoError
703
+ // (a realistic case: the fence's lock-free run read hitting EACCES), must propagate
704
+ // exactly as thrown. The earlier shape wrapped BOTH the check and `deleteIfExists` in one
705
+ // try/catch keyed only on `err instanceof FsIoError` — which mistook a check-thrown
706
+ // FsIoError for deleteIfExists's own failure and wrapped it too.
707
+ await checkFenceWithReader(this.runReader, runId, fence);
686
708
  try {
687
709
  const bytes = (await statIfExists(path))?.size ?? 0;
688
710
  const didDelete = await deleteIfExists(path);
@@ -829,4 +851,5 @@ export class JsonTraceBufferStore {
829
851
  return orphans;
830
852
  }
831
853
  }
854
+ brandClass(JsonTraceBufferStore, Symbol.for('@sensigo/realm-mcp/JsonTraceBufferStore'), REALM_MCP_BRAND);
832
855
  //# sourceMappingURL=json-trace-buffer-store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-trace-buffer-store.js","sourceRoot":"","sources":["../src/json-trace-buffer-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-trace-buffer-store.js","sourceRoot":"","sources":["../src/json-trace-buffer-store.ts"],"names":[],"mappings":"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"}