xoonya 1.16.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
@@ -144,6 +144,9 @@ Primary proof-model routes:
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
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`
147
150
  - `POST /v1/proof-center/result-package-handoff/review/handoff-run`
148
151
  - `POST /v1/proof-center/result-package-handoff/run`
149
152
 
@@ -156,6 +159,8 @@ It now also exposes compact contract-carry summaries so the stable proof-side co
156
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.
157
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.
158
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.
159
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.
160
165
  - `POST /v1/events/canonicalize`
161
166
  - `POST /v1/events/hash`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xoonya",
3
- "version": "1.16.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
@@ -1597,6 +1597,45 @@ function summarizeReviewHandoffRun(input) {
1597
1597
  };
1598
1598
  }
1599
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
+
1600
1639
  function runDefaultProofLoop(loopRef, input) {
1601
1640
  const loop = getDefaultProofLoop(loopRef);
1602
1641
  if (!loop) {
@@ -1665,6 +1704,9 @@ module.exports = {
1665
1704
  summarizeReviewBridgeCarry,
1666
1705
  summarizeReviewBridgeRun,
1667
1706
  summarizeReviewHandoffContinuity,
1707
+ summarizeReviewHandoffIntake,
1708
+ summarizeReviewHandoffIntakeBoundary,
1709
+ summarizeReviewHandoffIntakeCarry,
1668
1710
  summarizeReviewHandoffRun,
1669
1711
  runInteractionResultPackageHandoff,
1670
1712
  runInteractionSpineProofHandoff,
package/server.js CHANGED
@@ -336,6 +336,39 @@ async function routeRequest(req, res) {
336
336
  return;
337
337
  }
338
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
+
339
372
  if (req.method === 'POST' && url.pathname === '/v1/proof-center/result-package-handoff/review/handoff-run') {
340
373
  try {
341
374
  const body = await readJsonBody(req);