@openprose/reactor-cradle 0.1.0-rc.1 → 0.1.0-rc.2

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
@@ -1,25 +1,33 @@
1
1
  # @openprose/reactor-cradle
2
2
 
3
- `@openprose/reactor-cradle` is the deterministic test harness for the local
4
- OpenProse Reactor package. It is where Reactor behavior is replayed, compared,
5
- projected, and packaged into release evidence without requiring live services
6
- for the normal test path.
3
+ `@openprose/reactor-cradle` is the deterministic evidence harness for
4
+ [`@openprose/reactor`][reactor] the runtime whose thesis is that fresh model
5
+ spend scales with surprise, not the clock. The Cradle is where Reactor behavior
6
+ is replayed, measured against no-memo and naive-loop controls, and packaged into
7
+ release evidence — no live services needed for the normal test path.
8
+
9
+ ```bash
10
+ npm install @openprose/reactor-cradle
11
+ ```
7
12
 
8
13
  The Cradle is a test and evidence package, not the production Reactor runtime.
9
- This README describes the `0.1.0-rc.1` package surface. It is an OSS release
10
- candidate; the stable `0.1.0` launch waits for provenance publication and
11
- stranger-run verification.
14
+ This README describes the `0.1.0-rc.2` package surface an OSS release
15
+ candidate published on npm. For install commands, supported boundaries, and the
16
+ golden path, start with the [Reactor v0.1 adoption contract][adoption].
17
+
18
+ [reactor]: https://www.npmjs.com/package/@openprose/reactor
19
+ [adoption]: https://github.com/openprose/prose/blob/main/packages/reactor/ADOPTION.md
12
20
 
13
21
  ## v0.1 Status
14
22
 
15
23
  What v0.1 demonstrates:
16
24
 
17
- - The static-world cost thesis is measured and locally runnable: the
18
- package-backed `skills/open-prose/examples/flat-tokens` run drives four real
19
- `createReactor().ingest()` turns and prints `tokens.fresh=46`,
20
- `tokens.reused=46`, and `ratio=46:46`. The Cradle C5 summary also compares
21
- that Reactor run with the no-memo deterministic control (`92:0`) and the
22
- naive-loop control (`256:0`).
25
+ - The cost thesis is measured and locally runnable: the package-backed
26
+ `flat-tokens` example drives four checks of a single responsibility and
27
+ prints `memoization cut fresh model spend 50% (2 model calls, not 4)` — with
28
+ the raw counters `tokens.fresh=46`, `tokens.reused=46`, `ratio=46:46`,
29
+ `no-memo-fresh=92`. The Cradle's C5 summary independently confirms via the
30
+ no-memo control (`92:0`) and the same-unit naive-loop control (`92:0`).
23
31
  - Receipts, owner/subscriber/public projections, and SDK exit-bundle
24
32
  export/import are exercised by release-candidate evidence helpers without
25
33
  exposing private replay payloads.
@@ -40,14 +48,10 @@ What is designed and partial:
40
48
  - Provider parity is recorded, not a live runtime matrix. Cradle carries
41
49
  deterministic provider parity doubles and one live-recorded K1 cassette, but
42
50
  the runtime does not perform variable-depth live ensemble judging.
43
- - The tagged publish gate is wired for provenance publication, but no npm
44
- publication has been run for this worktree.
51
+ - The tagged publish gate is wired for trusted publishing with npm provenance.
45
52
 
46
- Deferred to v0.2 or external gates:
53
+ Roadmap after v0.1:
47
54
 
48
- - Actual npm publication and provenance until a release tag and npm auth or
49
- trusted publishing are available.
50
- - The stranger run that verifies both local demos outside the authoring team.
51
55
  - Production ingress, fulfillment, and oracle layers.
52
56
  - Runtime variable-depth ensemble judging, Postgres parity, and a non-null
53
57
  signer adapter.
@@ -88,6 +92,7 @@ The packed artifact exposes these CommonJS entrypoints:
88
92
  - `@openprose/reactor-cradle/rollback`
89
93
  - `@openprose/reactor-cradle/replay/model-gateway`
90
94
  - `@openprose/reactor-cradle/replay/parity`
95
+ - `@openprose/reactor-cradle/scenario`
91
96
  - `@openprose/reactor-cradle/scenario/parser`
92
97
  - `@openprose/reactor-cradle/scenario/runner`
93
98
  - `@openprose/reactor-cradle/scenario/time`
@@ -204,8 +209,8 @@ node .github/scripts/build-reactor-release-candidate-evidence.mjs \
204
209
  --branch main \
205
210
  --commit <local-commit-sha> \
206
211
  --worktreeStatus clean \
207
- --reactorTarball /tmp/openprose-reactor-pack/openprose-reactor-0.1.0-rc.1.tgz \
208
- --cradleTarball /tmp/openprose-reactor-pack/openprose-reactor-cradle-0.1.0-rc.1.tgz \
212
+ --reactorTarball /tmp/openprose-reactor-pack/openprose-reactor-0.1.0-rc.2.tgz \
213
+ --cradleTarball /tmp/openprose-reactor-pack/openprose-reactor-cradle-0.1.0-rc.2.tgz \
209
214
  --verifierSmokeTests <verifier-smoke-passed/total> \
210
215
  --exampleSmokeTests <example-smoke-passed/total> \
211
216
  --reactorTests <reactor-tests-passed/total> \
@@ -224,11 +229,11 @@ observed counts for the current worktree instead of reusing stale numbers.
224
229
  It does not publish, push, contact a registry, run a live provider/model
225
230
  matrix, or claim remote CI provenance.
226
231
 
227
- ## Explicit Deferred Rows
232
+ ## Explicit Roadmap Rows
228
233
 
229
234
  The current release-candidate evidence keeps these rows unrepresented:
230
235
 
231
- - `down-after-budget-exhaustion`: deferred until typed retry-budget and
236
+ - `down-after-budget-exhaustion`: roadmap until typed retry-budget and
232
237
  pressure-dispatch primitives exist.
233
238
  - `postgres-parity`: future work; memory and filesystem parity rows are the
234
239
  represented rows today.
@@ -244,11 +249,11 @@ pnpm --filter @openprose/reactor-cradle test
244
249
  pnpm --dir packages/reactor pack --pack-destination /tmp/openprose-reactor-pack
245
250
  pnpm --dir packages/reactor-cradle pack --pack-destination /tmp/openprose-reactor-pack
246
251
  node .github/scripts/smoke-reactor-cradle-tarball-import.mjs \
247
- --reactorTarball /tmp/openprose-reactor-pack/openprose-reactor-0.1.0-rc.1.tgz \
248
- --cradleTarball /tmp/openprose-reactor-pack/openprose-reactor-cradle-0.1.0-rc.1.tgz
252
+ --reactorTarball /tmp/openprose-reactor-pack/openprose-reactor-0.1.0-rc.2.tgz \
253
+ --cradleTarball /tmp/openprose-reactor-pack/openprose-reactor-cradle-0.1.0-rc.2.tgz
249
254
  node .github/scripts/smoke-reactor-flat-tokens-example.mjs \
250
- --reactorTarball /tmp/openprose-reactor-pack/openprose-reactor-0.1.0-rc.1.tgz \
251
- --cradleTarball /tmp/openprose-reactor-pack/openprose-reactor-cradle-0.1.0-rc.1.tgz \
255
+ --reactorTarball /tmp/openprose-reactor-pack/openprose-reactor-0.1.0-rc.2.tgz \
256
+ --cradleTarball /tmp/openprose-reactor-pack/openprose-reactor-cradle-0.1.0-rc.2.tgz \
252
257
  --exampleDir skills/open-prose/examples/flat-tokens
253
258
  ```
254
259
 
@@ -259,8 +264,7 @@ flat-tokens smoke runs from the same packed artifacts and expects
259
264
 
260
265
  ## Current Boundaries
261
266
 
262
- - This README describes the release-candidate package surface; the stable npm
263
- release waits for registry-visible provenance and stranger-run evidence.
267
+ - This README describes the published release-candidate package surface.
264
268
  - The Cradle is a deterministic harness and evidence package, not a production
265
269
  hosted service.
266
270
  - The package does not include the CLI implementation; local CLI
@@ -98,6 +98,6 @@ export declare function createC5EventChangingCostThesisScenarioV0(input: {
98
98
  readonly status: "measured";
99
99
  }>;
100
100
  export declare function normalizeNoMemoCostRowV0(summary: NoMemoBaselineSummaryV0, expectedScenario?: CostThesisScenarioRefV0): CostThesisReportRowV0;
101
- export declare function normalizeNaiveLoopCostRowV0(summary: NaiveLoopBaselineSummaryV0, expectedScenario?: CostThesisScenarioRefV0): CostThesisReportRowV0;
101
+ export declare function normalizeNaiveLoopCostRowV0(summary: NaiveLoopBaselineSummaryV0, expectedScenario?: CostThesisScenarioRefV0, runtimeTurns?: readonly CostThesisTurnDetailV0[]): CostThesisReportRowV0;
102
102
  export declare function missingEventChangingScenarioV0(): CostThesisEventChangingStatusV0;
103
103
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/baselines/cost-thesis/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EAEd,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EACV,uBAAuB,EAExB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACV,0BAA0B,EAE3B,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEzF,eAAO,MAAM,6BAA6B,EACxC,uDAAgE,CAAC;AACnE,eAAO,MAAM,8BAA8B,EAAG,CAAU,CAAC;AACzD,eAAO,MAAM,2BAA2B,EACtC,0BAAmC,CAAC;AAEtC,MAAM,MAAM,sBAAsB,GAC9B,SAAS,GACT,iBAAiB,GACjB,YAAY,CAAC;AACjB,MAAM,MAAM,yBAAyB,GACjC,kBAAkB,GAClB,WAAW,GACX,SAAS,CAAC;AACd,MAAM,MAAM,sBAAsB,GAC9B,cAAc,GACd,oBAAoB,GACpB,oBAAoB,CAAC;AACzB,MAAM,MAAM,uBAAuB,GAC/B,kBAAkB,GAClB,iBAAiB,GACjB,UAAU,GACV,aAAa,GACb,gBAAgB,CAAC;AAErB,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;IAC/C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAClD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,aAAa,CAAC;CAC9C;AAED,MAAM,MAAM,+BAA+B,GACvC;IACE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;IAC5D,QAAQ,CAAC,IAAI,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,CAAC;AAEN,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,OAAO,6BAA6B,CAAC;IACtD,QAAQ,CAAC,CAAC,EAAE,OAAO,8BAA8B,CAAC;IAClD,QAAQ,CAAC,YAAY,EAAE,OAAO,2BAA2B,CAAC;IAC1D,QAAQ,CAAC,eAAe,EAAE,iCAAiC,CAAC;IAC5D,QAAQ,CAAC,uBAAuB,CAAC,EAAE,+BAA+B,CAAC;IACnE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC;CACtC;AAED,MAAM,WAAW,oCAAoC;IACnD,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,0BAA0B,CAAC;IAChD,QAAQ,CAAC,uBAAuB,CAAC,EAAE,+BAA+B,CAAC;CACpE;AAID,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,oCAAoC,GAC1C,mBAAmB,CAoCrB;AAED,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,oBAAoB,GACxB,qBAAqB,CAQvB;AAED,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,oBAAoB,GACxB,qBAAqB,CAyBvB;AAED,wBAAgB,yCAAyC,CAAC,KAAK,EAAE;IAC/D,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;CAC5C,GAAG,OAAO,CAAC,+BAA+B,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC,CAiB5E;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,uBAAuB,EAChC,gBAAgB,CAAC,EAAE,uBAAuB,GACzC,qBAAqB,CA0BvB;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,0BAA0B,EACnC,gBAAgB,CAAC,EAAE,uBAAuB,GACzC,qBAAqB,CA2BvB;AAED,wBAAgB,8BAA8B,IAAI,+BAA+B,CAShF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/baselines/cost-thesis/index.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ exports.COST_THESIS_GENERATED_AT_V0 = "2026-05-20T00:00:00.000Z";
15
15
  function createC5StaticCostThesisSummaryV0(input) {
16
16
  const reactorRow = measureReactorStaticCostRowV0(input.reactor_run);
17
17
  const noMemoRow = normalizeNoMemoCostRowV0(input.no_memo, reactorRow.scenario);
18
- const naiveLoopRow = normalizeNaiveLoopCostRowV0(input.naive_loop, reactorRow.scenario);
18
+ const naiveLoopRow = normalizeNaiveLoopCostRowV0(input.naive_loop, reactorRow.scenario, reactorRow.turns);
19
19
  const payload = {
20
20
  schema: exports.COST_THESIS_SUMMARY_SCHEMA_V0,
21
21
  v: exports.COST_THESIS_SUMMARY_VERSION_V0,
@@ -115,7 +115,7 @@ function normalizeNoMemoCostRowV0(summary, expectedScenario) {
115
115
  source_summary_hash: summary.content_hash,
116
116
  });
117
117
  }
118
- function normalizeNaiveLoopCostRowV0(summary, expectedScenario) {
118
+ function normalizeNaiveLoopCostRowV0(summary, expectedScenario, runtimeTurns) {
119
119
  const scenario = {
120
120
  id: summary.scenario_id,
121
121
  profile: summary.world_profile,
@@ -123,8 +123,19 @@ function normalizeNaiveLoopCostRowV0(summary, expectedScenario) {
123
123
  final_instant: expectedScenario?.final_instant ?? "",
124
124
  };
125
125
  assertSameScenario(scenario, expectedScenario, "naive-loop");
126
- const turns = summary.review_turns.map((turn) => naiveLoopTurnDetail(turn, summary));
127
- const tokens = tokensFromFreshReused(summary.tokens.fresh, summary.tokens.reused);
126
+ const turns = runtimeTurns === undefined
127
+ ? summary.review_turns.map((turn) => naiveLoopTurnDetail(turn, summary))
128
+ : sameUnitNaiveLoopTurns(summary.review_turns, runtimeTurns);
129
+ const tokens = runtimeTurns === undefined
130
+ ? tokensFromFreshReused(summary.tokens.fresh, summary.tokens.reused)
131
+ : sumTurnTokens(turns);
132
+ const notes = runtimeTurns === undefined
133
+ ? summary.notes
134
+ : [
135
+ "Static naive-loop control over the same receipt-bearing schedule.",
136
+ "Every review turn rereads the current evidence and spends the runtime row's per-turn total as fresh work.",
137
+ "The control has no receipts, memo keys, forecast policy, stable content identity, or reusable verdict architecture.",
138
+ ];
128
139
  return Object.freeze({
129
140
  variant: "naive-loop",
130
141
  label: "Naive loop",
@@ -135,7 +146,7 @@ function normalizeNaiveLoopCostRowV0(summary, expectedScenario) {
135
146
  model_invocation_count: summary.model_invocation_count,
136
147
  tokens,
137
148
  ratio: tokenRatio(tokens),
138
- notes: Object.freeze([...summary.notes]),
149
+ notes: Object.freeze([...notes]),
139
150
  turns: Object.freeze([...turns]),
140
151
  });
141
152
  }
@@ -207,6 +218,30 @@ function naiveLoopTurnDetail(turn, summary) {
207
218
  note: `${turn.review_kind} over ${turn.source_ids.join(", ")} with no receipt or memo reuse.`,
208
219
  });
209
220
  }
221
+ function sameUnitNaiveLoopTurns(reviewTurns, runtimeTurns) {
222
+ if (reviewTurns.length !== runtimeTurns.length) {
223
+ throw new Error(`naive-loop same-unit control requires ${reviewTurns.length} runtime turns; received ${runtimeTurns.length}`);
224
+ }
225
+ return Object.freeze(reviewTurns.map((turn, index) => {
226
+ const runtimeTurn = runtimeTurns[index];
227
+ if (runtimeTurn === undefined) {
228
+ throw new Error(`missing runtime turn ${index} for naive-loop same-unit control`);
229
+ }
230
+ const tokens = tokensFromFreshReused(runtimeTurn.tokens.total, 0);
231
+ return Object.freeze({
232
+ index: turn.index,
233
+ as_of: turn.as_of,
234
+ source: "naive-loop-control",
235
+ outcome: "control-review",
236
+ tokens,
237
+ model_invocation_count: 1,
238
+ ...(turn.recheck_kind === undefined ? {} : { recheck_kind: turn.recheck_kind }),
239
+ review_kind: turn.review_kind,
240
+ source_ids: Object.freeze([...turn.source_ids]),
241
+ note: `${turn.review_kind} over ${turn.source_ids.join(", ")} charged from runtime turn ${index}'s token unit.`,
242
+ });
243
+ }));
244
+ }
210
245
  function simulateNoMemoEventChangingRowV0(reactorRow) {
211
246
  const turns = reactorRow.turns.map((turn) => simulateNoMemoEventTurnV0(turn));
212
247
  const tokens = sumTurnTokens(turns);
@@ -4,7 +4,7 @@ import { type RecordedR6ReleaseParityProofV0 } from "../release-parity";
4
4
  export declare const R7_RELEASE_CANDIDATE_EVIDENCE_BUNDLE_SCHEMA_V0: "openprose.reactor-cradle.release-candidate-evidence-bundle";
5
5
  export declare const R7_RELEASE_CANDIDATE_EVIDENCE_BUNDLE_VERSION_V0: 0;
6
6
  export declare const R7_REACTOR_PUBLIC_IMPORT_SPECIFIERS_V0: readonly ["@openprose/reactor", "@openprose/reactor/receipt", "@openprose/reactor/cost", "@openprose/reactor/kernel", "@openprose/reactor/evidence-plan", "@openprose/reactor/memo", "@openprose/reactor/forecast", "@openprose/reactor/sdk", "@openprose/reactor/policy", "@openprose/reactor/composition", "@openprose/reactor/projection"];
7
- export declare const R7_CRADLE_PUBLIC_IMPORT_SPECIFIERS_V0: readonly ["@openprose/reactor-cradle", "@openprose/reactor-cradle/assert", "@openprose/reactor-cradle/eval", "@openprose/reactor-cradle/spikes", "@openprose/reactor-cradle/spikes/live-refresh", "@openprose/reactor-cradle/spikes/k1-ensemble-spread", "@openprose/reactor-cradle/spikes/k2-policy-author", "@openprose/reactor-cradle/doubles/clock", "@openprose/reactor-cradle/doubles/storage", "@openprose/reactor-cradle/policy-author", "@openprose/reactor-cradle/policy-drift", "@openprose/reactor-cradle/policy-replay", "@openprose/reactor-cradle/recompile", "@openprose/reactor-cradle/release-parity", "@openprose/reactor-cradle/release-candidate", "@openprose/reactor-cradle/rollback", "@openprose/reactor-cradle/replay/model-gateway", "@openprose/reactor-cradle/replay/parity", "@openprose/reactor-cradle/scenario/parser", "@openprose/reactor-cradle/scenario/runner", "@openprose/reactor-cradle/scenario/time", "@openprose/reactor-cradle/scenario/types", "@openprose/reactor-cradle/world"];
7
+ export declare const R7_CRADLE_PUBLIC_IMPORT_SPECIFIERS_V0: readonly ["@openprose/reactor-cradle", "@openprose/reactor-cradle/assert", "@openprose/reactor-cradle/eval", "@openprose/reactor-cradle/spikes", "@openprose/reactor-cradle/spikes/live-refresh", "@openprose/reactor-cradle/spikes/k1-ensemble-spread", "@openprose/reactor-cradle/spikes/k2-policy-author", "@openprose/reactor-cradle/doubles/clock", "@openprose/reactor-cradle/doubles/storage", "@openprose/reactor-cradle/policy-author", "@openprose/reactor-cradle/policy-drift", "@openprose/reactor-cradle/policy-replay", "@openprose/reactor-cradle/recompile", "@openprose/reactor-cradle/release-parity", "@openprose/reactor-cradle/release-candidate", "@openprose/reactor-cradle/rollback", "@openprose/reactor-cradle/replay/model-gateway", "@openprose/reactor-cradle/replay/parity", "@openprose/reactor-cradle/scenario/parser", "@openprose/reactor-cradle/scenario", "@openprose/reactor-cradle/scenario/runner", "@openprose/reactor-cradle/scenario/time", "@openprose/reactor-cradle/scenario/types", "@openprose/reactor-cradle/world"];
8
8
  export declare const R7_REQUIRED_COMMAND_IDS_V0: readonly ["verifier-smoke-tests", "reactor-tests", "cradle-tests", "local-pack", "pin-verify", "tarball-import-smoke", "release-readiness-example-smoke", "diff-check", "dependency-scan", "secret-scan"];
9
9
  export declare const R7_REQUIRED_DEFERRED_ROW_IDS_V0: readonly ["down-after-budget-exhaustion", "postgres-parity", "live-provider-model-matrix"];
10
10
  export type R7ReleaseCandidateCommandIdV0 = (typeof R7_REQUIRED_COMMAND_IDS_V0)[number];
@@ -86,22 +86,22 @@ export interface R7ReleaseCandidateBuildMetadataV0 {
86
86
  }
87
87
  export interface R7ReleaseCandidatePackagePinEvidenceV0 {
88
88
  readonly package_name: "@openprose/reactor";
89
- readonly version: "0.1.0-rc.1";
89
+ readonly version: "0.1.0-rc.2";
90
90
  readonly consumer_name: "@openprose/reactor-cradle";
91
- readonly consumer_dependency: "workspace:0.1.0-rc.1";
91
+ readonly consumer_dependency: "workspace:0.1.0-rc.2";
92
92
  readonly package_tree_sha256: string;
93
93
  readonly checked_file_count: number;
94
94
  readonly checked_files_hash: ContentHashV0;
95
95
  }
96
96
  export interface R7ReleaseCandidateTarballSmokeEvidenceV0 {
97
97
  readonly package_name: "@openprose/reactor";
98
- readonly version: "0.1.0-rc.1";
98
+ readonly version: "0.1.0-rc.2";
99
99
  readonly imported_entrypoint_count: number;
100
100
  readonly imported_entrypoints: readonly string[];
101
101
  }
102
102
  export interface R7ReleaseCandidateCradleTarballSmokeEvidenceV0 {
103
103
  readonly package_name: "@openprose/reactor-cradle";
104
- readonly version: "0.1.0-rc.1";
104
+ readonly version: "0.1.0-rc.2";
105
105
  readonly imported_entrypoint_count: number;
106
106
  readonly imported_entrypoints: readonly string[];
107
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/release-candidate/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/release-candidate/index.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,7 @@ exports.R7_CRADLE_PUBLIC_IMPORT_SPECIFIERS_V0 = [
42
42
  "@openprose/reactor-cradle/replay/model-gateway",
43
43
  "@openprose/reactor-cradle/replay/parity",
44
44
  "@openprose/reactor-cradle/scenario/parser",
45
+ "@openprose/reactor-cradle/scenario",
45
46
  "@openprose/reactor-cradle/scenario/runner",
46
47
  "@openprose/reactor-cradle/scenario/time",
47
48
  "@openprose/reactor-cradle/scenario/types",
@@ -214,21 +215,21 @@ function normalizePackagePin(input) {
214
215
  if (input.package_name !== "@openprose/reactor") {
215
216
  throw new Error("package_pin.package_name must be @openprose/reactor");
216
217
  }
217
- if (input.version !== "0.1.0-rc.1") {
218
- throw new Error("package_pin.version must be 0.1.0-rc.1");
218
+ if (input.version !== "0.1.0-rc.2") {
219
+ throw new Error("package_pin.version must be 0.1.0-rc.2");
219
220
  }
220
221
  if (input.consumer_name !== "@openprose/reactor-cradle") {
221
222
  throw new Error("package_pin.consumer_name must be @openprose/reactor-cradle");
222
223
  }
223
- if (input.consumer_dependency !== "workspace:0.1.0-rc.1") {
224
- throw new Error("package_pin.consumer_dependency must be workspace:0.1.0-rc.1");
224
+ if (input.consumer_dependency !== "workspace:0.1.0-rc.2") {
225
+ throw new Error("package_pin.consumer_dependency must be workspace:0.1.0-rc.2");
225
226
  }
226
227
  const checkedFiles = normalizeCheckedFiles(input.checked_files);
227
228
  return Object.freeze({
228
229
  package_name: "@openprose/reactor",
229
- version: "0.1.0-rc.1",
230
+ version: "0.1.0-rc.2",
230
231
  consumer_name: "@openprose/reactor-cradle",
231
- consumer_dependency: "workspace:0.1.0-rc.1",
232
+ consumer_dependency: "workspace:0.1.0-rc.2",
232
233
  package_tree_sha256: assertHexSha256(input.package_tree_sha256, "package_pin.package_tree_sha256"),
233
234
  checked_file_count: checkedFiles.length,
234
235
  checked_files_hash: hashCanonicalValue(checkedFiles),
@@ -238,8 +239,8 @@ function normalizeTarballSmoke(input) {
238
239
  if (input.package_name !== "@openprose/reactor") {
239
240
  throw new Error("tarball_smoke.package_name must be @openprose/reactor");
240
241
  }
241
- if (input.version !== "0.1.0-rc.1") {
242
- throw new Error("tarball_smoke.version must be 0.1.0-rc.1");
242
+ if (input.version !== "0.1.0-rc.2") {
243
+ throw new Error("tarball_smoke.version must be 0.1.0-rc.2");
243
244
  }
244
245
  const imports = [...input.imported_entrypoints].sort((left, right) => left.localeCompare(right));
245
246
  const expected = [...exports.R7_REACTOR_PUBLIC_IMPORT_SPECIFIERS_V0].sort((left, right) => left.localeCompare(right));
@@ -253,7 +254,7 @@ function normalizeTarballSmoke(input) {
253
254
  }
254
255
  return Object.freeze({
255
256
  package_name: "@openprose/reactor",
256
- version: "0.1.0-rc.1",
257
+ version: "0.1.0-rc.2",
257
258
  imported_entrypoint_count: imports.length,
258
259
  imported_entrypoints: Object.freeze(imports),
259
260
  });
@@ -262,8 +263,8 @@ function normalizeCradleTarballSmoke(input) {
262
263
  if (input.package_name !== "@openprose/reactor-cradle") {
263
264
  throw new Error("cradle_tarball_smoke.package_name must be @openprose/reactor-cradle");
264
265
  }
265
- if (input.version !== "0.1.0-rc.1") {
266
- throw new Error("cradle_tarball_smoke.version must be 0.1.0-rc.1");
266
+ if (input.version !== "0.1.0-rc.2") {
267
+ throw new Error("cradle_tarball_smoke.version must be 0.1.0-rc.2");
267
268
  }
268
269
  const imports = [...input.imported_entrypoints].sort((left, right) => left.localeCompare(right));
269
270
  const expected = [...exports.R7_CRADLE_PUBLIC_IMPORT_SPECIFIERS_V0].sort((left, right) => left.localeCompare(right));
@@ -277,7 +278,7 @@ function normalizeCradleTarballSmoke(input) {
277
278
  }
278
279
  return Object.freeze({
279
280
  package_name: "@openprose/reactor-cradle",
280
- version: "0.1.0-rc.1",
281
+ version: "0.1.0-rc.2",
281
282
  imported_entrypoint_count: imports.length,
282
283
  imported_entrypoints: Object.freeze(imports),
283
284
  });
@@ -0,0 +1,5 @@
1
+ export * from "./parser";
2
+ export * from "./runner";
3
+ export * from "./time";
4
+ export * from "./types";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scenario/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./parser"), exports);
18
+ __exportStar(require("./runner"), exports);
19
+ __exportStar(require("./time"), exports);
20
+ __exportStar(require("./types"), exports);
@@ -128,9 +128,10 @@ class SyntheticWorldConnectorV0 {
128
128
  payload: payload.value,
129
129
  payload_canonical: payload.canonical,
130
130
  };
131
- const revision = seed.payload_hash === undefined
132
- ? revisionBase
133
- : { ...revisionBase, payload_hash: seed.payload_hash };
131
+ const revision = {
132
+ ...revisionBase,
133
+ payload_hash: seed.payload_hash ?? payloadContentHash(payload.canonical),
134
+ };
134
135
  this.#sources.set(seed.source_id, {
135
136
  source_id: seed.source_id,
136
137
  revisions: [revision],
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@openprose/reactor-cradle",
3
- "version": "0.1.0-rc.1",
4
- "description": "Deterministic Cradle test harness for the OpenProse Reactor.",
3
+ "version": "0.1.0-rc.2",
4
+ "description": "Deterministic evidence harness for OpenProse Reactor cost and receipt claims.",
5
5
  "type": "commonjs",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
@@ -82,6 +82,10 @@
82
82
  "types": "./dist/scenario/parser.d.ts",
83
83
  "default": "./dist/scenario/parser.js"
84
84
  },
85
+ "./scenario": {
86
+ "types": "./dist/scenario/index.d.ts",
87
+ "default": "./dist/scenario/index.js"
88
+ },
85
89
  "./scenario/runner": {
86
90
  "types": "./dist/scenario/runner.d.ts",
87
91
  "default": "./dist/scenario/runner.js"
@@ -117,7 +121,7 @@
117
121
  "directory": "packages/reactor-cradle"
118
122
  },
119
123
  "dependencies": {
120
- "@openprose/reactor": "0.1.0-rc.1"
124
+ "@openprose/reactor": "0.1.0-rc.2"
121
125
  },
122
126
  "devDependencies": {
123
127
  "@types/node": "^22.10.7",