xoonya 1.17.0 → 1.18.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
@@ -147,6 +147,9 @@ Primary proof-model routes:
147
147
  - `POST /v1/proof-center/result-package-handoff/review/handoff-intake`
148
148
  - `POST /v1/proof-center/result-package-handoff/review/handoff-intake-boundary`
149
149
  - `POST /v1/proof-center/result-package-handoff/review/handoff-intake-carry`
150
+ - `POST /v1/proof-center/result-package-handoff/review/handoff-package-intake`
151
+ - `POST /v1/proof-center/result-package-handoff/review/handoff-package-carry`
152
+ - `POST /v1/proof-center/result-package-handoff/review/handoff-package-run`
150
153
  - `POST /v1/proof-center/result-package-handoff/review/handoff-run`
151
154
  - `POST /v1/proof-center/result-package-handoff/run`
152
155
 
@@ -162,6 +165,15 @@ It now also exposes a handoff-continuity summary so the proof-side bridge can be
162
165
  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
166
  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
167
  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.
168
+
169
+ The current `1.18.0` line starts turning that adapter-consumable handoff surface into a clearer adapter-usable handoff package:
170
+
171
+ - proof-side handoff-package intake summaries on top of the intake surface
172
+ - proof-side handoff-package carry for compact usable package carry
173
+ - proof-side handoff-package run summaries for direct default run posture
174
+ - clearer handoff-package ids across intake, carry, and proof-native run posture
175
+
176
+ This is intended to make the proof-side continuation path easier to use directly as a stable public handoff package instead of only a proof-native intake surface.
165
177
  - `POST /v1/events/canonicalize`
166
178
  - `POST /v1/events/hash`
167
179
  - `POST /v1/receipts/emit`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xoonya",
3
- "version": "1.17.0",
3
+ "version": "1.18.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
@@ -1636,6 +1636,45 @@ function summarizeReviewHandoffIntakeCarry(input) {
1636
1636
  };
1637
1637
  }
1638
1638
 
1639
+ function summarizeReviewHandoffPackageIntake(input) {
1640
+ const intake = summarizeReviewHandoffIntake(input);
1641
+ return {
1642
+ ok: intake.ok === true,
1643
+ handoff_surface_ref: intake.handoff_surface_ref || null,
1644
+ handoff_package_ref: intake.handoff_surface_ref ? `package.${intake.handoff_surface_ref}` : null,
1645
+ stable_handoff_package_ids: Array.isArray(intake.stable_handoff_surface_ids) ? intake.stable_handoff_surface_ids : [],
1646
+ adapter_usable: intake.adapter_consumable === true,
1647
+ run_surface: intake.run_surface || null,
1648
+ intake_path_ids: Array.isArray(intake.intake_path_ids) ? intake.intake_path_ids : []
1649
+ };
1650
+ }
1651
+
1652
+ function summarizeReviewHandoffPackageCarry(input) {
1653
+ const handoffPackage = summarizeReviewHandoffPackageIntake(input);
1654
+ return {
1655
+ ok: handoffPackage.ok === true,
1656
+ handoff_package_ref: handoffPackage.handoff_package_ref || null,
1657
+ stable_handoff_package_ids: Array.isArray(handoffPackage.stable_handoff_package_ids) ? handoffPackage.stable_handoff_package_ids : [],
1658
+ usable_handoff_package_carry: {
1659
+ run_surface: handoffPackage.run_surface || null,
1660
+ intake_path_ids: Array.isArray(handoffPackage.intake_path_ids) ? handoffPackage.intake_path_ids : []
1661
+ },
1662
+ adapter_usable: handoffPackage.adapter_usable === true
1663
+ };
1664
+ }
1665
+
1666
+ function summarizeReviewHandoffPackageRun(input) {
1667
+ const handoffPackage = summarizeReviewHandoffPackageIntake(input);
1668
+ return {
1669
+ ok: handoffPackage.ok === true,
1670
+ handoff_package_ref: handoffPackage.handoff_package_ref || null,
1671
+ accepted_handoff_package_ids: Array.isArray(handoffPackage.stable_handoff_package_ids) ? handoffPackage.stable_handoff_package_ids : [],
1672
+ adapter_usable: handoffPackage.adapter_usable === true,
1673
+ run_surface: handoffPackage.run_surface || null,
1674
+ run_path_ids: Array.isArray(handoffPackage.intake_path_ids) ? handoffPackage.intake_path_ids : []
1675
+ };
1676
+ }
1677
+
1639
1678
  function runDefaultProofLoop(loopRef, input) {
1640
1679
  const loop = getDefaultProofLoop(loopRef);
1641
1680
  if (!loop) {
@@ -1707,6 +1746,9 @@ module.exports = {
1707
1746
  summarizeReviewHandoffIntake,
1708
1747
  summarizeReviewHandoffIntakeBoundary,
1709
1748
  summarizeReviewHandoffIntakeCarry,
1749
+ summarizeReviewHandoffPackageIntake,
1750
+ summarizeReviewHandoffPackageCarry,
1751
+ summarizeReviewHandoffPackageRun,
1710
1752
  summarizeReviewHandoffRun,
1711
1753
  runInteractionResultPackageHandoff,
1712
1754
  runInteractionSpineProofHandoff,
package/server.js CHANGED
@@ -369,6 +369,39 @@ async function routeRequest(req, res) {
369
369
  return;
370
370
  }
371
371
 
372
+ if (req.method === 'POST' && url.pathname === '/v1/proof-center/result-package-handoff/review/handoff-package-intake') {
373
+ try {
374
+ const body = await readJsonBody(req);
375
+ const result = proofSdk.summarizeReviewHandoffPackageIntake(body);
376
+ sendJson(res, 200, result);
377
+ } catch (error) {
378
+ sendJson(res, 400, { ok: false, reason: error.message });
379
+ }
380
+ return;
381
+ }
382
+
383
+ if (req.method === 'POST' && url.pathname === '/v1/proof-center/result-package-handoff/review/handoff-package-carry') {
384
+ try {
385
+ const body = await readJsonBody(req);
386
+ const result = proofSdk.summarizeReviewHandoffPackageCarry(body);
387
+ sendJson(res, 200, result);
388
+ } catch (error) {
389
+ sendJson(res, 400, { ok: false, reason: error.message });
390
+ }
391
+ return;
392
+ }
393
+
394
+ if (req.method === 'POST' && url.pathname === '/v1/proof-center/result-package-handoff/review/handoff-package-run') {
395
+ try {
396
+ const body = await readJsonBody(req);
397
+ const result = proofSdk.summarizeReviewHandoffPackageRun(body);
398
+ sendJson(res, 200, result);
399
+ } catch (error) {
400
+ sendJson(res, 400, { ok: false, reason: error.message });
401
+ }
402
+ return;
403
+ }
404
+
372
405
  if (req.method === 'POST' && url.pathname === '/v1/proof-center/result-package-handoff/review/handoff-run') {
373
406
  try {
374
407
  const body = await readJsonBody(req);