xoonya 1.15.0 → 1.17.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
@@ -143,6 +143,11 @@ Primary proof-model routes:
143
143
  - `POST /v1/proof-center/result-package-handoff/review/bridge-boundary`
144
144
  - `POST /v1/proof-center/result-package-handoff/review/bridge-carry`
145
145
  - `POST /v1/proof-center/result-package-handoff/review/bridge-run`
146
+ - `POST /v1/proof-center/result-package-handoff/review/handoff-continuity`
147
+ - `POST /v1/proof-center/result-package-handoff/review/handoff-intake`
148
+ - `POST /v1/proof-center/result-package-handoff/review/handoff-intake-boundary`
149
+ - `POST /v1/proof-center/result-package-handoff/review/handoff-intake-carry`
150
+ - `POST /v1/proof-center/result-package-handoff/review/handoff-run`
146
151
  - `POST /v1/proof-center/result-package-handoff/run`
147
152
 
148
153
  The result-package review surface now also returns a durability summary so the preserved execution, economic, and proof-facing context is easier to inspect before proof-native execution.
@@ -153,6 +158,10 @@ It now also exposes composition-contract summaries so the proof-side default sea
153
158
  It now also exposes compact contract-carry summaries so the stable proof-side contract context is easier to inspect directly without expanding proof scope.
154
159
  It now also exposes bridge summaries, bridge-boundary summaries, and bridge-carry summaries so the proof-side review seam is easier to treat as an adapter-ready bridge without widening proof scope.
155
160
  It now also exposes a bridge-run summary so that same proof-side bridge can be read directly as the final run posture instead of only as review-stage carry.
161
+ It now also exposes a handoff-continuity summary so the proof-side bridge can be treated more clearly as a stable handoff contract into proof-native execution.
162
+ It now also exposes a handoff-intake summary and handoff-intake-boundary summary so that same handoff contract can be consumed more directly as a stable proof-native intake surface for future adapters without widening proof scope.
163
+ It now also exposes a handoff-intake-carry summary so the same proof-side intake surface can be reused more directly as compact consumable carry instead of only summary or boundary posture.
164
+ It now also exposes a handoff-run summary so that same handoff contract can be read directly as the final proof-native run posture instead of only as continuity guidance.
156
165
  - `POST /v1/events/canonicalize`
157
166
  - `POST /v1/events/hash`
158
167
  - `POST /v1/receipts/emit`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xoonya",
3
- "version": "1.15.0",
3
+ "version": "1.17.0",
4
4
  "description": "Deterministic proof SDK for canonical events, receipts, proof bundles, and verification.",
5
5
  "main": "index.js",
6
6
  "type": "commonjs",
package/proof_sdk.js CHANGED
@@ -1572,6 +1572,70 @@ function summarizeReviewBridgeRun(input) {
1572
1572
  };
1573
1573
  }
1574
1574
 
1575
+ function summarizeReviewHandoffContinuity(input) {
1576
+ const bridgeRun = summarizeReviewBridgeRun(input);
1577
+ return {
1578
+ ok: bridgeRun.ok === true,
1579
+ adapter_bridge_ref: bridgeRun.adapter_bridge_ref || null,
1580
+ handoff_contract_ref: bridgeRun.adapter_bridge_ref ? `handoff.${bridgeRun.adapter_bridge_ref}` : null,
1581
+ stable_handoff_ids: Array.isArray(bridgeRun.accepted_bridge_ids) ? bridgeRun.accepted_bridge_ids : [],
1582
+ handoff_ready: bridgeRun.bridge_ready === true,
1583
+ run_surface: bridgeRun.run_surface || null,
1584
+ continuity_path_ids: Array.isArray(bridgeRun.run_path_ids) ? bridgeRun.run_path_ids : []
1585
+ };
1586
+ }
1587
+
1588
+ function summarizeReviewHandoffRun(input) {
1589
+ const continuity = summarizeReviewHandoffContinuity(input);
1590
+ return {
1591
+ ok: continuity.ok === true,
1592
+ handoff_contract_ref: continuity.handoff_contract_ref || null,
1593
+ accepted_handoff_ids: Array.isArray(continuity.stable_handoff_ids) ? continuity.stable_handoff_ids : [],
1594
+ handoff_ready: continuity.handoff_ready === true,
1595
+ run_surface: continuity.run_surface || null,
1596
+ run_path_ids: Array.isArray(continuity.continuity_path_ids) ? continuity.continuity_path_ids : []
1597
+ };
1598
+ }
1599
+
1600
+ function summarizeReviewHandoffIntake(input) {
1601
+ const continuity = summarizeReviewHandoffContinuity(input);
1602
+ return {
1603
+ ok: continuity.ok === true,
1604
+ handoff_contract_ref: continuity.handoff_contract_ref || null,
1605
+ handoff_surface_ref: continuity.handoff_contract_ref ? `surface.${continuity.handoff_contract_ref}` : null,
1606
+ stable_handoff_surface_ids: Array.isArray(continuity.stable_handoff_ids) ? continuity.stable_handoff_ids : [],
1607
+ adapter_consumable: continuity.handoff_ready === true,
1608
+ run_surface: continuity.run_surface || null,
1609
+ intake_path_ids: Array.isArray(continuity.continuity_path_ids) ? continuity.continuity_path_ids : []
1610
+ };
1611
+ }
1612
+
1613
+ function summarizeReviewHandoffIntakeBoundary(input) {
1614
+ const intake = summarizeReviewHandoffIntake(input);
1615
+ return {
1616
+ ok: intake.ok === true,
1617
+ handoff_surface_ref: intake.handoff_surface_ref || null,
1618
+ stable_boundary_ids: Array.isArray(intake.stable_handoff_surface_ids) ? intake.stable_handoff_surface_ids : [],
1619
+ adapter_consumable: intake.adapter_consumable === true,
1620
+ run_surface: intake.run_surface || null,
1621
+ intake_path_ids: Array.isArray(intake.intake_path_ids) ? intake.intake_path_ids : []
1622
+ };
1623
+ }
1624
+
1625
+ function summarizeReviewHandoffIntakeCarry(input) {
1626
+ const intake = summarizeReviewHandoffIntake(input);
1627
+ return {
1628
+ ok: intake.ok === true,
1629
+ handoff_surface_ref: intake.handoff_surface_ref || null,
1630
+ stable_handoff_surface_ids: Array.isArray(intake.stable_handoff_surface_ids) ? intake.stable_handoff_surface_ids : [],
1631
+ consumable_handoff_carry: {
1632
+ run_surface: intake.run_surface || null,
1633
+ intake_path_ids: Array.isArray(intake.intake_path_ids) ? intake.intake_path_ids : []
1634
+ },
1635
+ adapter_consumable: intake.adapter_consumable === true
1636
+ };
1637
+ }
1638
+
1575
1639
  function runDefaultProofLoop(loopRef, input) {
1576
1640
  const loop = getDefaultProofLoop(loopRef);
1577
1641
  if (!loop) {
@@ -1639,6 +1703,11 @@ module.exports = {
1639
1703
  summarizeReviewBridgeBoundary,
1640
1704
  summarizeReviewBridgeCarry,
1641
1705
  summarizeReviewBridgeRun,
1706
+ summarizeReviewHandoffContinuity,
1707
+ summarizeReviewHandoffIntake,
1708
+ summarizeReviewHandoffIntakeBoundary,
1709
+ summarizeReviewHandoffIntakeCarry,
1710
+ summarizeReviewHandoffRun,
1642
1711
  runInteractionResultPackageHandoff,
1643
1712
  runInteractionSpineProofHandoff,
1644
1713
  runTransactionProofHandoff,
package/server.js CHANGED
@@ -325,6 +325,61 @@ async function routeRequest(req, res) {
325
325
  return;
326
326
  }
327
327
 
328
+ if (req.method === 'POST' && url.pathname === '/v1/proof-center/result-package-handoff/review/handoff-continuity') {
329
+ try {
330
+ const body = await readJsonBody(req);
331
+ const result = proofSdk.summarizeReviewHandoffContinuity(body);
332
+ sendJson(res, 200, result);
333
+ } catch (error) {
334
+ sendJson(res, 400, { ok: false, reason: error.message });
335
+ }
336
+ return;
337
+ }
338
+
339
+ if (req.method === 'POST' && url.pathname === '/v1/proof-center/result-package-handoff/review/handoff-intake') {
340
+ try {
341
+ const body = await readJsonBody(req);
342
+ const result = proofSdk.summarizeReviewHandoffIntake(body);
343
+ sendJson(res, 200, result);
344
+ } catch (error) {
345
+ sendJson(res, 400, { ok: false, reason: error.message });
346
+ }
347
+ return;
348
+ }
349
+
350
+ if (req.method === 'POST' && url.pathname === '/v1/proof-center/result-package-handoff/review/handoff-intake-boundary') {
351
+ try {
352
+ const body = await readJsonBody(req);
353
+ const result = proofSdk.summarizeReviewHandoffIntakeBoundary(body);
354
+ sendJson(res, 200, result);
355
+ } catch (error) {
356
+ sendJson(res, 400, { ok: false, reason: error.message });
357
+ }
358
+ return;
359
+ }
360
+
361
+ if (req.method === 'POST' && url.pathname === '/v1/proof-center/result-package-handoff/review/handoff-intake-carry') {
362
+ try {
363
+ const body = await readJsonBody(req);
364
+ const result = proofSdk.summarizeReviewHandoffIntakeCarry(body);
365
+ sendJson(res, 200, result);
366
+ } catch (error) {
367
+ sendJson(res, 400, { ok: false, reason: error.message });
368
+ }
369
+ return;
370
+ }
371
+
372
+ if (req.method === 'POST' && url.pathname === '/v1/proof-center/result-package-handoff/review/handoff-run') {
373
+ try {
374
+ const body = await readJsonBody(req);
375
+ const result = proofSdk.summarizeReviewHandoffRun(body);
376
+ sendJson(res, 200, result);
377
+ } catch (error) {
378
+ sendJson(res, 400, { ok: false, reason: error.message });
379
+ }
380
+ return;
381
+ }
382
+
328
383
  if (req.method === 'POST' && url.pathname === '/v1/receipts/verify') {
329
384
  try {
330
385
  const body = await readJsonBody(req);