@sensigo/realm-testing 0.37.0 → 0.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -10,6 +10,46 @@ npm install --save-dev @sensigo/realm-testing
10
10
 
11
11
  Requires `@sensigo/realm` at the same version to be installed in your project.
12
12
 
13
+ > **Version note (issue #367).** This release grows the published conformance suites, so a custom
14
+ > `RunStore` that passed the previous version can fail this one — by design.
15
+ >
16
+ > A store declaring `settleStep` must now also declare and round-trip `sealed_by` (the recorded
17
+ > seal arm), and must REFUSE five classes of write-integrity violation: an unstamped fresh seal, a
18
+ > resume that keeps the stamp, a terminal rewrite that drops it, an arm outside `SEAL_ARMS`, and an
19
+ > unlawful rewrite of a stored arm. The laws are `SEAL_FRESH_WRITE_REFUSED`, `SEAL_ORPHAN_REFUSED`,
20
+ > `SEAL_ERASE_REFUSED`, `SEAL_UNKNOWN_ARM_REFUSED`, `SEAL_REWRITE_REFUSED` and
21
+ > `SEALED_BY_ROUNDTRIP`. They bind DECLARING stores only — a store that declares neither
22
+ > `settleStep` nor the field passes them vacuously, exactly as before.
23
+ >
24
+ > `SEAL_REWRITE_REFUSED` covers eight directions, not one. A stored arm cannot be rewritten while
25
+ > the run is terminal, with ONE lawful exception: an adjudication write carrying fresh, truthful
26
+ > provenance — who ruled, when, and which arm it replaced. What is refused around that exception:
27
+ > provenance that misnames the arm it overwrote; a same-arm write whose provenance LIES (a truthful
28
+ > same-arm ruling is legal — it is how an operator closes out a record they have examined); a
29
+ > ruling claimed on a live run's first seal; a first stamp claiming a non-null previous arm
30
+ > (`previous_arm: null` is the truthful form there, and only on a record that was already
31
+ > terminal); an arm change riding a PRIOR ruling's provenance rather than a fresh one; and a
32
+ > rewrite that drops a stored ruling.
33
+ >
34
+ > **A ruling supersedes the record's own prose.** A seal carrying one is exempt from the coherence
35
+ > audit permanently — not just on the write that records it — because that audit catches SILENT
36
+ > drift and a ruling is loud, attributed, and erase-proof while terminal. Prose is never rewritten
37
+ > to match. A ruling's identity is judged FIELD-WISE, never by serialisation bytes: a store whose
38
+ > round trip reorders JSON keys must not treat an honest spread as a fresh claim.
39
+ >
40
+ > A store that also declares `stampSeal` (the migration verb behind
41
+ > `realm run migrate --stamp-seals`) must honour six more: `STAMP_PRESERVES_UPDATED_AT`,
42
+ > `STAMP_BUMPS_VERSION_ONCE`, `STAMP_REFUSES_ON_VERSION_MOVE`,
43
+ > `STAMP_RETURNS_NOT_THROWS_PREDICATES`, `STAMP_IDEMPOTENT` and `STAMP_CLASSIFIED_ROUNDTRIP`. In
44
+ > short: the stamp lands and its `classified` provenance marker survives the round trip, `version`
45
+ > bumps so a stale writer loses its compare-and-swap, `updated_at` does NOT move because stamping
46
+ > is not activity, and predicate refusals RETURN rather than throw. Declaring `stampSeal` also
47
+ > means supplying the adapter's `seedLegacyTerminal` hook — without it the laws can only observe
48
+ > refusals, and a store that never writes at all would conform.
49
+ >
50
+ > `assertFinalState` also now DERIVES the run phase instead of reading the persisted `run_phase`,
51
+ > so a test whose fixture carried a stale label may start failing honestly.
52
+
13
53
  ## Usage — YAML Fixture Tests
14
54
 
15
55
  Fixture tests are the fastest way to test a complete workflow. Each fixture file declares the initial params, mock service responses, agent step outputs, and the expected final state. The `runFixtureTests` runner loads your workflow, drives it to completion using the fixture data, and returns a result for each fixture.
@@ -1 +1 @@
1
- {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../src/assertions/evidence.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE5E;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAMvF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAOtF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAOnF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,IAAI,CAcN;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,GACnB,IAAI,CAWN"}
1
+ {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../src/assertions/evidence.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE5E;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAUvF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAOtF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAOnF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,IAAI,CAcN;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,GACnB,IAAI,CAWN"}
@@ -1,10 +1,16 @@
1
+ // Evidence assertion helpers — throw Error on failure (framework-agnostic).
2
+ import { deriveRunPhase } from '@sensigo/realm';
1
3
  /**
2
4
  * Throws if run.run_phase !== expectedPhase.
3
5
  * Use to verify the workflow reached the expected terminal phase.
4
6
  */
5
7
  export function assertFinalState(run, expectedPhase) {
6
- if (run.run_phase !== expectedPhase) {
7
- throw new Error(`assertFinalState: expected phase '${expectedPhase}' but run is in phase '${run.run_phase}'`);
8
+ // Ride-along (boy-scout, not the reported problem): this published assertion used to read the
9
+ // PERSISTED `run_phase`, which the disposal rule forbids a persisted phase can be stale, and
10
+ // a test asserting on it can pass while the run's real phase is something else. Derive instead.
11
+ const phase = deriveRunPhase(run);
12
+ if (phase !== expectedPhase) {
13
+ throw new Error(`assertFinalState: expected phase '${expectedPhase}' but run is in phase '${phase}'`);
8
14
  }
9
15
  }
10
16
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/assertions/evidence.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAc,EAAE,aAAgC;IAC/E,IAAI,GAAG,CAAC,SAAS,KAAK,aAAa,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CACb,qCAAqC,aAAa,0BAA0B,GAAG,CAAC,SAAS,GAAG,CAC7F,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAA4B,EAAE,MAAc;IAC9E,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CACzB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CACpF,CAAC;IACF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,8DAA8D,MAAM,GAAG,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAA4B,EAAE,MAAc;IAC3E,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CACzB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,CAClF,CAAC;IACF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,yDAAyD,MAAM,GAAG,CAAC,CAAC;IACtF,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAA4B,EAC5B,MAAc,EACd,QAAiC;IAEjC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;IACzF,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,iDAAiD,MAAM,GAAG,CAAC,CAAC;IAC9E,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACb,2BAA2B,MAAM,oBAAoB,GAAG,aAAa,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG;gBAC3F,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CACxD,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAA4B,EAC5B,MAAc,EACd,YAAoB;IAEpB,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;IACzF,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,mDAAmD,MAAM,GAAG,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,IAAI,CAAC,aAAa,KAAK,YAAY,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,6BAA6B,MAAM,oBAAoB,YAAY,cAAc,IAAI,CAAC,aAAa,GAAG,CACvG,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/assertions/evidence.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -21,5 +21,5 @@ export { runFixtureTests } from './runner/test-runner.js';
21
21
  export type { TestResult, RunFixtureTestsOptions } from './runner/test-runner.js';
22
22
  export { startGitHubMockServer } from './servers/github-mock-server.js';
23
23
  export type { GitHubMockServerHandle } from './servers/github-mock-server.js';
24
- export declare const VERSION = "0.37.0";
24
+ export declare const VERSION = "0.39.0";
25
25
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -21,5 +21,5 @@ export { testAdapter } from './helpers/test-adapter.js';
21
21
  export { runFixtureTests } from './runner/test-runner.js';
22
22
  // Servers
23
23
  export { startGitHubMockServer } from './servers/github-mock-server.js';
24
- export const VERSION = '0.37.0';
24
+ export const VERSION = '0.39.0';
25
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-runner.d.ts","sourceRoot":"","sources":["../../src/runner/test-runner.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,iBAAiB,EAIjB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EAGvB,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAOtF,2CAA2C;AAC3C,MAAM,WAAW,UAAU;IACzB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,mCAAmC;AACnC,MAAM,WAAW,sBAAsB;IACrC,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE;QAAE,QAAQ,EAAE,iBAAiB,CAAC;QAAC,QAAQ,EAAE,iBAAiB,CAAA;KAAE,CAAC;CAC3E;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,kBAAkB,EAC9B,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,UAAU,GAAG,YAAY,CAAC,GAC/D;IAAE,eAAe,EAAE,iBAAiB,CAAC;IAAC,gBAAgB,EAAE,iBAAiB,GAAG,SAAS,CAAA;CAAE,CA6FzF;AAiLD;;;GAGG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAY5F;AAED,2CAA2C"}
1
+ {"version":3,"file":"test-runner.d.ts","sourceRoot":"","sources":["../../src/runner/test-runner.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,iBAAiB,EAIjB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EAGvB,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAOtF,2CAA2C;AAC3C,MAAM,WAAW,UAAU;IACzB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,mCAAmC;AACnC,MAAM,WAAW,sBAAsB;IACrC,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE;QAAE,QAAQ,EAAE,iBAAiB,CAAC;QAAC,QAAQ,EAAE,iBAAiB,CAAA;KAAE,CAAC;CAC3E;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,kBAAkB,EAC9B,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,UAAU,GAAG,YAAY,CAAC,GAC/D;IAAE,eAAe,EAAE,iBAAiB,CAAC;IAAC,gBAAgB,EAAE,iBAAiB,GAAG,SAAS,CAAA;CAAE,CA6FzF;AAoLD;;;GAGG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAY5F;AAED,2CAA2C"}
@@ -179,7 +179,10 @@ async function runSingleFixture(fixture, definition, options) {
179
179
  if (mockErrors !== undefined && resumesDone < mockErrors.length) {
180
180
  stepResumeCount[nextStep] = resumesDone + 1;
181
181
  const failedRun = await store.get(runId);
182
- const { terminal_reason: _tr, ...rest } = failedRun;
182
+ // issue #367: `sealed_by` joins the strip — this simulated resume flips the run live
183
+ // again, so the seal fact must leave in the same write (the ORPHANED boundary clause
184
+ // would otherwise refuse the update below).
185
+ const { terminal_reason: _tr, sealed_by: _sb, ...rest } = failedRun;
183
186
  const newFailedSteps = rest.failed_steps.filter((s) => s !== nextStep);
184
187
  // Recompute skipped_steps: the old skips were derived with nextStep in
185
188
  // failed_steps. Re-derive from scratch so steps that were only skipped
@@ -1 +1 @@
1
- {"version":3,"file":"test-runner.js","sourceRoot":"","sources":["../../src/runner/test-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-runner.js","sourceRoot":"","sources":["../../src/runner/test-runner.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type RunStore, type RunRecord, type CreateRunOptions, type WorkflowDefinition, type LoadBearingRunRecordField, type SettlementDelta, type SettlementResult } from '@sensigo/realm';
1
+ import { type RunStore, type SealedBy, type StampSealResult, type RunRecord, type CreateRunOptions, type WorkflowDefinition, type LoadBearingRunRecordField, type SettlementDelta, type SettlementResult } from '@sensigo/realm';
2
2
  /** In-memory implementation of RunStore. Uses a Map keyed by run ID. No I/O, no locking. */
3
3
  export declare class InMemoryStore implements RunStore {
4
4
  private readonly runs;
@@ -30,6 +30,12 @@ export declare class InMemoryStore implements RunStore {
30
30
  settleStep(runId: string, delta: SettlementDelta, definition: WorkflowDefinition, options?: {
31
31
  now?: Date;
32
32
  }): Promise<SettlementResult>;
33
+ /**
34
+ * Issue #367 (part 3): the stamp verb — see `RunStore.stampSeal` for the contract. Same shape as
35
+ * JsonFileStore's, including the one thing that makes this verb exist: `updated_at` is carried
36
+ * through byte-for-byte, because stamping is not activity.
37
+ */
38
+ stampSeal(runId: string, sealedBy: SealedBy, expectedVersion: number): Promise<StampSealResult>;
33
39
  list(workflowId?: string): Promise<RunRecord[]>;
34
40
  }
35
41
  //# sourceMappingURL=in-memory-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-store.d.ts","sourceRoot":"","sources":["../../src/store/in-memory-store.ts"],"names":[],"mappings":"AACA,OAAO,EAQL,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAExB,4FAA4F;AAC5F,qBAAa,aAAc,YAAW,QAAQ;IAC5C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgC;IACrD,sGAAsG;IACtG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IAEtD,iGAAiG;IACjG,QAAQ,CAAC,cAAc,QAAQ;IAE/B;wGACoG;IACpG,QAAQ,CAAC,wBAAwB,EAAE,WAAW,CAAC,yBAAyB,CAAC,CAStE;IAEG,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAmDhF,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAatC,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IA6B7C,SAAS,CACb,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,kBAAkB,GAC7B,OAAO,CAAC,SAAS,CAAC;IA8DrB;;;;;;;;;;OAUG;IACG,UAAU,CACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,kBAAkB,EAC9B,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,IAAI,CAAA;KAAE,GACvB,OAAO,CAAC,gBAAgB,CAAC;IAwBtB,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAOtD"}
1
+ {"version":3,"file":"in-memory-store.d.ts","sourceRoot":"","sources":["../../src/store/in-memory-store.ts"],"names":[],"mappings":"AACA,OAAO,EASL,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAExB,4FAA4F;AAC5F,qBAAa,aAAc,YAAW,QAAQ;IAC5C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgC;IACrD,sGAAsG;IACtG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IAEtD,iGAAiG;IACjG,QAAQ,CAAC,cAAc,QAAQ;IAE/B;wGACoG;IACpG,QAAQ,CAAC,wBAAwB,EAAE,WAAW,CAAC,yBAAyB,CAAC,CAUtE;IAEG,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAmDhF,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAatC,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAgC7C,SAAS,CACb,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,kBAAkB,GAC7B,OAAO,CAAC,SAAS,CAAC;IA8DrB;;;;;;;;;;OAUG;IACG,UAAU,CACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,kBAAkB,EAC9B,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,IAAI,CAAA;KAAE,GACvB,OAAO,CAAC,gBAAgB,CAAC;IA2B5B;;;;OAIG;IACG,SAAS,CACb,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,eAAe,CAAC;IAqCrB,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAOtD"}
@@ -1,5 +1,5 @@
1
1
  // InMemoryStore — in-memory implementation of RunStore for use in tests.
2
- import { WorkflowError, findEligibleSteps, deriveRunPhase, decideIdempotencyPolicy, computeClaimDeadline, isStepSettledOrInFlight, applySettlement, } from '@sensigo/realm';
2
+ import { WorkflowError, findEligibleSteps, deriveRunPhase, decideIdempotencyPolicy, computeClaimDeadline, isStepSettledOrInFlight, applySettlement, assertSealIntegrity, } from '@sensigo/realm';
3
3
  /** In-memory implementation of RunStore. Uses a Map keyed by run ID. No I/O, no locking. */
4
4
  export class InMemoryStore {
5
5
  runs = new Map();
@@ -18,6 +18,7 @@ export class InMemoryStore {
18
18
  // issue #279 (increment 1, PR-A): declared alongside settleStep — declaration-coherence.
19
19
  'settled',
20
20
  'finalizer_ledger',
21
+ 'sealed_by', // issue #367 — declaration-coherence with settleStep
21
22
  ]);
22
23
  async create(options) {
23
24
  // Idempotency: a key match applies the re-encounter policy, like JsonFileStore.
@@ -94,6 +95,9 @@ export class InMemoryStore {
94
95
  details: { runId: record.id, expected: record.version, actual: existing.version },
95
96
  });
96
97
  }
98
+ // issue #367: the seal-integrity boundary — identical to JsonFileStore's update tail (the
99
+ // measured update/settle asymmetry closed; the listen/run-attach suites drive THIS store).
100
+ assertSealIntegrity(existing, record);
97
101
  const updated = {
98
102
  ...record,
99
103
  run_phase: deriveRunPhase(record),
@@ -189,6 +193,9 @@ export class InMemoryStore {
189
193
  if (!outcome.applied) {
190
194
  return outcome; // refusal/noop — fresh state, NO write (version unchanged)
191
195
  }
196
+ // issue #367: the boundary on the settle tail too (both stores, both tails).
197
+ // `assertSealIntegrity` is pure and synchronous — the documented no-await stretch above holds.
198
+ assertSealIntegrity(fresh, outcome.run);
192
199
  const updated = {
193
200
  ...outcome.run,
194
201
  run_phase: deriveRunPhase(outcome.run),
@@ -198,6 +205,47 @@ export class InMemoryStore {
198
205
  this.runs.set(updated.id, updated);
199
206
  return { ...outcome, run: updated };
200
207
  }
208
+ /**
209
+ * Issue #367 (part 3): the stamp verb — see `RunStore.stampSeal` for the contract. Same shape as
210
+ * JsonFileStore's, including the one thing that makes this verb exist: `updated_at` is carried
211
+ * through byte-for-byte, because stamping is not activity.
212
+ */
213
+ async stampSeal(runId, sealedBy, expectedVersion) {
214
+ const fresh = this.runs.get(runId);
215
+ if (fresh === undefined) {
216
+ throw new WorkflowError(`Run '${runId}' not found`, {
217
+ code: 'STATE_RUN_NOT_FOUND',
218
+ category: 'STATE',
219
+ agentAction: 'report_to_user',
220
+ retryable: false,
221
+ });
222
+ }
223
+ if (fresh.version !== expectedVersion) {
224
+ throw new WorkflowError('Version conflict — run was modified by another process', {
225
+ code: 'STATE_SNAPSHOT_MISMATCH',
226
+ category: 'STATE',
227
+ agentAction: 'report_to_user',
228
+ retryable: true,
229
+ details: { runId, expected: expectedVersion, actual: fresh.version },
230
+ });
231
+ }
232
+ if (fresh.sealed_by !== undefined) {
233
+ return { stamped: false, reason: 'already_stamped', run: fresh };
234
+ }
235
+ if (fresh.terminal_state !== true) {
236
+ return { stamped: false, reason: 'not_terminal', run: fresh };
237
+ }
238
+ const stamped = { ...fresh, sealed_by: sealedBy };
239
+ assertSealIntegrity(fresh, stamped);
240
+ const written = {
241
+ ...stamped,
242
+ run_phase: deriveRunPhase(stamped),
243
+ version: fresh.version + 1,
244
+ updated_at: fresh.updated_at, // DELIBERATELY unchanged.
245
+ };
246
+ this.runs.set(runId, written);
247
+ return { stamped: true, run: written };
248
+ }
201
249
  async list(workflowId) {
202
250
  const all = [...this.runs.values()];
203
251
  if (workflowId !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-store.js","sourceRoot":"","sources":["../../src/store/in-memory-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"in-memory-store.js","sourceRoot":"","sources":["../../src/store/in-memory-store.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { type RunStore, type WorkflowDefinition } from '@sensigo/realm';
2
2
  /** One of the two laws every `RunStore` implementation should be run against (issue #188). */
3
- export type RunStoreFidelityLaw = 'FIDELITY_HONESTY' | 'CLAIM_SINGLE_OWNER';
3
+ export type RunStoreFidelityLaw = 'FIDELITY_HONESTY' | 'CLAIM_SINGLE_OWNER'
4
+ /** issue #367 — the seal arm survives a proper terminal write byte-for-byte. */
5
+ | 'SEALED_BY_ROUNDTRIP';
4
6
  /**
5
7
  * A single, framework-agnostic contract case. `run()` throws (rejects) on failure — any test
6
8
  * framework's `await run()` (rejecting fails the test) or `expect(run()).resolves...` /
@@ -1 +1 @@
1
- {"version":3,"file":"run-store-fidelity-contract.d.ts","sourceRoot":"","sources":["../../src/store/run-store-fidelity-contract.ts"],"names":[],"mappings":"AAcA,OAAO,EAEL,KAAK,QAAQ,EAGb,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAExB,8FAA8F;AAC9F,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG,oBAAoB,CAAC;AAE5E;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C,GAAG,EAAE,mBAAmB,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,oGAAoG;AACpG,MAAM,WAAW,+BAA+B;IAC9C,4BAA4B;IAC5B,KAAK,EAAE,QAAQ,CAAC;IAChB;;;;OAIG;IACH,UAAU,EAAE,kBAAkB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAwDD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,+BAA+B,GACvC,4BAA4B,EAAE,CAoEhC"}
1
+ {"version":3,"file":"run-store-fidelity-contract.d.ts","sourceRoot":"","sources":["../../src/store/run-store-fidelity-contract.ts"],"names":[],"mappings":"AAcA,OAAO,EAEL,KAAK,QAAQ,EAGb,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAExB,8FAA8F;AAC9F,MAAM,MAAM,mBAAmB,GAC3B,kBAAkB,GAClB,oBAAoB;AACtB,gFAAgF;GAC9E,qBAAqB,CAAC;AAE1B;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C,GAAG,EAAE,mBAAmB,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,oGAAoG;AACpG,MAAM,WAAW,+BAA+B;IAC9C,4BAA4B;IAC5B,KAAK,EAAE,QAAQ,CAAC;IAChB;;;;OAIG;IACH,UAAU,EAAE,kBAAkB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;CAClB;AA4DD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,+BAA+B,GACvC,4BAA4B,EAAE,CA2GhC"}
@@ -27,6 +27,10 @@ import { WorkflowError, } from '@sensigo/realm';
27
27
  * see that file's own header for why it needs no edit).
28
28
  */
29
29
  const SAMPLE_VALUES = {
30
+ // issue #367: present so the closed-map compile check stays satisfied. The GENERIC loop below
31
+ // deliberately skips this field — see SEALED_BY_ROUNDTRIP for why writing it the generic way
32
+ // would violate the boundary it shares a package with.
33
+ sealed_by: { arm: 'complete' },
30
34
  capability_blocks: {
31
35
  'tck-step': {
32
36
  requirement: { kind: 'handler', name: 'tck-handler' },
@@ -91,6 +95,13 @@ export function runStoreFidelityContract(adapter) {
91
95
  const cases = [];
92
96
  const declaredFields = adapter.store.persistedRunRecordFields ?? new Set();
93
97
  for (const field of declaredFields) {
98
+ // issue #367: `sealed_by` cannot ride the generic loop. That loop writes its sample onto a
99
+ // LIVE record, and a live record carrying a seal is an orphan — the store boundary refuses it
100
+ // (STATE_SEAL_ORPHANED), so the case would red for a reason that has nothing to do with
101
+ // fidelity. It gets the dedicated SEALED_BY_ROUNDTRIP case below, which seals the run properly
102
+ // first and then asserts the arm survives byte-for-byte.
103
+ if (field === 'sealed_by')
104
+ continue;
94
105
  cases.push({
95
106
  law: 'FIDELITY_HONESTY',
96
107
  name: `a store declaring '${field}' actually round-trips it (create → update → get)`,
@@ -114,6 +125,36 @@ export function runStoreFidelityContract(adapter) {
114
125
  },
115
126
  });
116
127
  }
128
+ if (declaredFields.has('sealed_by')) {
129
+ cases.push({
130
+ law: 'SEALED_BY_ROUNDTRIP',
131
+ name: 'a store declaring sealed_by round-trips the seal arm through a PROPER terminal write',
132
+ run: async () => {
133
+ const { run } = await adapter.store.create({
134
+ workflowId: 'tck-fidelity-sealed-by',
135
+ workflowVersion: 1,
136
+ params: {},
137
+ });
138
+ // A real seal: terminal_state and sealed_by in the same write, exactly as every engine
139
+ // seal site does it.
140
+ await adapter.store.update({
141
+ ...run,
142
+ completed_steps: ['tck-step'],
143
+ terminal_state: true,
144
+ sealed_by: { arm: 'complete', step: 'tck-step' },
145
+ terminal_reason: 'Workflow completed.',
146
+ });
147
+ const reread = await adapter.store.get(run.id);
148
+ const wrote = JSON.stringify({ arm: 'complete', step: 'tck-step' });
149
+ const read = JSON.stringify(reread.sealed_by);
150
+ if (read !== wrote) {
151
+ throw new Error(`store declares persistedRunRecordFields includes 'sealed_by' but a terminal ` +
152
+ `round-trip did NOT preserve it — the run's recorded outcome silently changed ` +
153
+ `(issue #367). wrote: ${wrote}, read back: ${read}`);
154
+ }
155
+ },
156
+ });
157
+ }
117
158
  cases.push({
118
159
  law: 'CLAIM_SINGLE_OWNER',
119
160
  name: 'two concurrent claimStep calls for the same (runId, step) — exactly one succeeds',
@@ -1 +1 @@
1
- {"version":3,"file":"run-store-fidelity-contract.js","sourceRoot":"","sources":["../../src/store/run-store-fidelity-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-store-fidelity-contract.js","sourceRoot":"","sources":["../../src/store/run-store-fidelity-contract.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type RunStore, type WorkflowDefinition, type StepDefinition } from '@sensigo/realm';
1
+ import { type RunStore, type RunRecord, type WorkflowDefinition, type StepDefinition } from '@sensigo/realm';
2
2
  /** One of the PR-A-runnable settlement laws (design record §8, narrowed to the PR-A subset named
3
3
  * in the hand-off prompt's D4 section — see this module's own header). */
4
4
  export type SettlementLaw = 'FRESH_APPLICATION' | 'CONDITIONAL_NOOP' | 'CONDITIONAL_NOOP_GRANDFATHERED' | 'OWNERSHIP_REFUSAL' | 'LEDGER_MINT_ATOMICITY' | 'DRAIN_MARK_DEDUP' | 'TERMINAL_REFUSAL' | 'TERMINAL_STATE_ONLY' | 'CS_PURITY' | 'NEVER_DOWNGRADE' | 'SETTLE_OUTCOME_INTEGRITY' | 'SETTLED_ORPHAN_OVERWRITE' | 'TRANSFORM_FIDELITY' | 'RESULT_AS_APPLIED' | 'MARK_MEMBERSHIP' | 'REFUSAL_SWEEP' | 'MINT_FRESH' | 'SELF_IMAGE_IDEMPOTENCE' | 'TERMINAL_GATE_EXCLUSION' | 'COMPLETE_SEAL_PHASE' | 'WHEN_ROUTED_TERMINALIZATION' | 'G1_GATE_COEXISTENCE' | 'GATE_OPEN_IDEMPOTENT' | 'GATE_RESOLUTION_CONFLICT' | 'GATE_MISMATCH' | 'GUARD_OUTCOME_DIVERGENCE' | 'GUARD_WAITS_ON_OPEN_GATE' | 'GUARD_PASS_COMPLETE_OUTCOME' | 'GUARD_ABORT_CASCADE' | 'GUARD_NO_ENTRY' | 'RELEASE_IDEMPOTENT'
@@ -14,6 +14,35 @@ export type SettlementLaw = 'FRESH_APPLICATION' | 'CONDITIONAL_NOOP' | 'CONDITIO
14
14
  /** The new trigger never over-fires: a CLEAN complete (no `failed_steps`) does not select it;
15
15
  * a PURE fail seal (never reaches `complete`) does not select it either. */
16
16
  | 'CWFS_NEGATIVES'
17
+ /** issue #367 — a fresh seal (non-terminal → terminal write) that names no arm is REFUSED
18
+ * (`STATE_SEAL_UNSTAMPED`). Transition-scoped: re-writing an already-terminal legacy record
19
+ * passes untouched, which is what keeps the pre-#367 population usable. */
20
+ | 'SEAL_FRESH_WRITE_REFUSED'
21
+ /** issue #367 — a terminal → live write that RETAINS the seal is REFUSED
22
+ * (`STATE_SEAL_ORPHANED`): every resume/strip path must drop the fact in the same write. */
23
+ | 'SEAL_ORPHAN_REFUSED'
24
+ /** issue #367 — a terminal rewrite that DROPS a stored seal is REFUSED (`STATE_SEAL_ERASED`),
25
+ * so a field-enumerating rewriter cannot silently drain the stamped population back to prose. */
26
+ | 'SEAL_ERASE_REFUSED'
27
+ /** issue #367 — an arm outside `SEAL_ARMS` never persists (`STATE_SEAL_UNKNOWN_ARM`). */
28
+ | 'SEAL_UNKNOWN_ARM_REFUSED'
29
+ /** issue #367 part 3 — `stampSeal` leaves `updated_at` byte-identical. Stamping is not
30
+ * activity, and the retention clock must not move because a migration ran. */
31
+ | 'STAMP_PRESERVES_UPDATED_AT'
32
+ /** issue #367 part 3 — `stampSeal` bumps `version` exactly once, so a writer holding a
33
+ * pre-stamp snapshot loses its CAS instead of silently erasing the stamp. */
34
+ | 'STAMP_BUMPS_VERSION_ONCE'
35
+ /** issue #367 part 3 — a stale `expectedVersion` THROWS `STATE_SNAPSHOT_MISMATCH`. */
36
+ | 'STAMP_REFUSES_ON_VERSION_MOVE'
37
+ /** issue #367 part 3 — predicate refusals RETURN. A throw-shaped implementation fails. */
38
+ | 'STAMP_RETURNS_NOT_THROWS_PREDICATES'
39
+ /** issue #367 part 3 — re-stamping is byte-identical: no second write, no clock move. */
40
+ | 'STAMP_IDEMPOTENT'
41
+ /** issue #367 part 3 — a `classified: true` stamp survives write → read byte-for-byte, so a
42
+ * classifier-minted stamp stays distinguishable from a writer-asserted one forever. */
43
+ | 'STAMP_CLASSIFIED_ROUNDTRIP'
44
+ /** issue #367 part 3 — a stored arm may not be CHANGED while the run stays terminal. */
45
+ | 'SEAL_REWRITE_REFUSED'
17
46
  /** Uniform-predicate pin (design record M1): a second-epoch complete seal whose ONLY
18
47
  * `failed_steps` scar is a PRIOR epoch's finalizer self-failure (unresumable, so it never
19
48
  * leaves `failed_steps`) still fires — no exclusion of finalizer-declared step names. */
@@ -100,6 +129,15 @@ export interface SettlementContractAdapter {
100
129
  * shapes may supply its own.
101
130
  */
102
131
  settlementFixture?: SettlementFixture;
132
+ /**
133
+ * Issue #367 (part 3): raw-seed an UNSTAMPED terminal record and return it — the shape the
134
+ * migration vehicle actually meets, and one the store's own boundary would refuse if written
135
+ * through it. Each store supplies its sanctioned channel (a direct file write, a direct map
136
+ * insert). The ADAPTER_WIRING idiom applies: a `stampSeal`-declaring store that omits this gets
137
+ * a failing wiring case rather than a silent pass, because the stamp laws' SUCCESS legs are
138
+ * unobservable without it — and a store that never writes at all would otherwise conform.
139
+ */
140
+ seedLegacyTerminal?: (id: string) => Promise<RunRecord>;
103
141
  }
104
142
  /** Default settlement fixture — builds minimal agent-step / finalizer-step / guard-step
105
143
  * definitions with no store-specific requirements beyond `RunStore.create` never validating
@@ -1 +1 @@
1
- {"version":3,"file":"settlement-contract.d.ts","sourceRoot":"","sources":["../../src/store/settlement-contract.ts"],"names":[],"mappings":"AAoBA,OAAO,EAGL,KAAK,QAAQ,EAEb,KAAK,kBAAkB,EACvB,KAAK,cAAc,EAKpB,MAAM,gBAAgB,CAAC;AAExB;2EAC2E;AAC3E,MAAM,MAAM,aAAa,GACrB,mBAAmB,GACnB,kBAAkB,GAClB,gCAAgC,GAChC,mBAAmB,GACnB,uBAAuB,GACvB,kBAAkB,GAClB,kBAAkB,GAClB,qBAAqB,GACrB,WAAW,GACX,iBAAiB,GACjB,0BAA0B,GAC1B,0BAA0B,GAC1B,oBAAoB,GACpB,mBAAmB,GACnB,iBAAiB,GACjB,eAAe,GACf,YAAY,GACZ,wBAAwB,GACxB,yBAAyB,GACzB,qBAAqB,GACrB,6BAA6B,GAC7B,qBAAqB,GAGrB,sBAAsB,GACtB,0BAA0B,GAC1B,eAAe,GACf,0BAA0B,GAC1B,0BAA0B,GAC1B,6BAA6B,GAC7B,qBAAqB,GACrB,gBAAgB,GAChB,oBAAoB;AACtB;;+BAE+B;GAC7B,oBAAoB;AAEtB;;;yCAGyC;GACvC,oBAAoB;AACtB;6EAC6E;GAC3E,gBAAgB;AAClB;;0FAE0F;GACxF,mBAAmB;AACrB;;;yFAGyF;GACvF,iBAAiB;AACnB;;;4FAG4F;GAC1F,yBAAyB;AAK3B;;;;8BAI8B;GAC5B,mBAAmB;AACrB;;;iEAGiE;GAC/D,sBAAsB;AACxB;;;;2BAI2B;GACzB,wBAAwB;AAC1B;;yDAEyD;GACvD,gBAAgB,CAAC;AAErB;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,aAAa,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,2FAA2F;IAC3F,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAAC;IAC3D,sFAAsF;IACtF,aAAa,CACX,GAAG,EAAE,kBAAkB,EACvB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,GACnD,kBAAkB,CAAC;IACtB;;;;;;;OAOG;IACH,SAAS,CAAC,CACR,GAAG,EAAE,kBAAkB,EACvB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,EAC9B,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC/B,kBAAkB,CAAC;CACvB;AAED,oGAAoG;AACpG,MAAM,WAAW,yBAAyB;IACxC;;sEAEkE;IAClE,KAAK,EAAE,QAAQ,CAAC;IAChB,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AA+DD;;;uEAGuE;AACvE,eAAO,MAAM,wBAAwB,EAAE,iBAItC,CAAC;AAu7HF;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,sBAAsB,EAAE,CA2D/F"}
1
+ {"version":3,"file":"settlement-contract.d.ts","sourceRoot":"","sources":["../../src/store/settlement-contract.ts"],"names":[],"mappings":"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"}