xoonya 3.1.17 → 3.2.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.
Files changed (240) hide show
  1. package/README.md +97 -74
  2. package/RELEASE_NOTES.md +7 -1
  3. package/START_HERE.md +38 -134
  4. package/bin/xoonya-first-run.js +22 -10
  5. package/bin/xoonya.js +61 -29
  6. package/lib/native_verify.js +1918 -0
  7. package/package.json +19 -42
  8. package/scripts/verify_release_candidate.js +243 -116
  9. package/scripts/verify_vectors.js +351 -104
  10. package/verify.js +95 -0
  11. package/.env.example +0 -10
  12. package/CARRIED_HANDOFF_DEMO.md +0 -60
  13. package/COMPATIBILITY_NOTE.md +0 -27
  14. package/CROSS_RUNTIME_POSTURE.md +0 -77
  15. package/EXAMPLE_PATHS.md +0 -53
  16. package/FINAL_CONTRACT.md +0 -445
  17. package/PARTNER_READY_PATH.md +0 -67
  18. package/PUBLIC_DEMO_SCRIPT.md +0 -79
  19. package/SERVICE_CONTRACT.md +0 -207
  20. package/TERMINOLOGY.md +0 -55
  21. package/WHY_XYTARA_XOONYA.md +0 -43
  22. package/XNYA_CONFORMANCE_MARK.md +0 -78
  23. package/XNYA_REFERENCE_IMPLEMENTATIONS.md +0 -157
  24. package/XOONYA_DEFAULT_PATH_MODEL.md +0 -63
  25. package/XOONYA_FOLLOWTHROUGH_TRUTH_MODEL.md +0 -63
  26. package/XOONYA_NATIVE_ATOM_SPEC.md +0 -184
  27. package/XOONYA_NATIVE_PROOF_FORMAT.md +0 -570
  28. package/XOONYA_NATIVE_STANDARD_GOVERNANCE.md +0 -119
  29. package/XOONYA_PROOF_TRUTH_MODEL.md +0 -58
  30. package/bin/xoonya-release.js +0 -1367
  31. package/bin/xoonya-review.js +0 -70
  32. package/examples/integration_boundary_walkthrough.js +0 -37
  33. package/examples/package_quickstart.js +0 -1007
  34. package/examples/partner_proof_walkthrough.js +0 -68
  35. package/examples/proof_review_walkthrough.js +0 -66
  36. package/examples/review_carried_handoff.js +0 -72
  37. package/index.js +0 -31
  38. package/integrations/PROOF_INTEGRATION_PROCESS.md +0 -45
  39. package/integrations/examples/example-third-party-verifier-registration.record.json +0 -22
  40. package/integrations/registration-record.schema.json +0 -99
  41. package/integrations/registry-snapshot.schema.json +0 -36
  42. package/integrations/registry.js +0 -636
  43. package/integrations/views.js +0 -36
  44. package/lib/adapter_certification_contract.js +0 -90
  45. package/lib/announcement_pack.js +0 -61
  46. package/lib/artifact_distribution_lane_contract.js +0 -54
  47. package/lib/asyncapi_contract.js +0 -135
  48. package/lib/auth_interop_contract.js +0 -69
  49. package/lib/authority_binding_lifecycle_contract.js +0 -182
  50. package/lib/bridge_intelligence.js +0 -102
  51. package/lib/cloudevents_contract.js +0 -79
  52. package/lib/crypto_agility_matrix.js +0 -131
  53. package/lib/default_path_contract.js +0 -380
  54. package/lib/ecosystem_entry.js +0 -64
  55. package/lib/erc8004_proof_lane_contract.js +0 -64
  56. package/lib/event_system_lane_contract.js +0 -76
  57. package/lib/external_proof_import_lane_contract.js +0 -87
  58. package/lib/feature_control_lane_contract.js +0 -54
  59. package/lib/followthrough_truth_contract.js +0 -214
  60. package/lib/framework_lane_contract.js +0 -76
  61. package/lib/governance_disputes_summary.js +0 -36
  62. package/lib/governance_intelligence.js +0 -108
  63. package/lib/identity_interop_contract.js +0 -83
  64. package/lib/integration_matrix_contract.js +0 -81
  65. package/lib/launch_narrative.js +0 -53
  66. package/lib/machine_identity_registry_contract.js +0 -199
  67. package/lib/major_rails_proof_lane_contract.js +0 -87
  68. package/lib/offline_verifiability_recovery_contract.js +0 -155
  69. package/lib/openapi_contract.js +0 -227
  70. package/lib/operational_receipt_contract.js +0 -165
  71. package/lib/outreach_proof.js +0 -71
  72. package/lib/phase_10_closeout_pack.js +0 -45
  73. package/lib/phase_10_completion_pack.js +0 -76
  74. package/lib/phase_10_decision_record_pack.js +0 -54
  75. package/lib/phase_10_decision_resolution_pack.js +0 -53
  76. package/lib/phase_10_demand_signal_adapters_proof_pack.js +0 -74
  77. package/lib/phase_10_ecosystem_backlog_triage_proof_pack.js +0 -74
  78. package/lib/phase_10_freeze_baseline_pack.js +0 -67
  79. package/lib/phase_10_freeze_review_pack.js +0 -64
  80. package/lib/phase_10_gate_pack.js +0 -57
  81. package/lib/phase_10_long_tail_continuity_pack.js +0 -80
  82. package/lib/phase_10_long_tail_ecosystem_pack.js +0 -68
  83. package/lib/phase_10_niche_extension_registry_proof_pack.js +0 -74
  84. package/lib/phase_1_claude_mcp_pack.js +0 -60
  85. package/lib/phase_1_claude_mcp_proof_pack.js +0 -57
  86. package/lib/phase_1_ecosystem_pack.js +0 -51
  87. package/lib/phase_1_openai_codex_pack.js +0 -60
  88. package/lib/phase_1_openai_codex_proof_pack.js +0 -57
  89. package/lib/phase_2_base_proof_pack.js +0 -71
  90. package/lib/phase_2_base_usdc_proof_pack.js +0 -72
  91. package/lib/phase_2_closeout_pack.js +0 -65
  92. package/lib/phase_2_completion_pack.js +0 -113
  93. package/lib/phase_2_decision_record_pack.js +0 -66
  94. package/lib/phase_2_decision_resolution_pack.js +0 -69
  95. package/lib/phase_2_eth_proof_pack.js +0 -70
  96. package/lib/phase_2_evm_base_proof_pack.js +0 -73
  97. package/lib/phase_2_evm_proof_pack.js +0 -71
  98. package/lib/phase_2_flip_preview_pack.js +0 -60
  99. package/lib/phase_2_freeze_review_pack.js +0 -99
  100. package/lib/phase_2_gate_pack.js +0 -77
  101. package/lib/phase_2_payment_rails_pack.js +0 -71
  102. package/lib/phase_2_usdc_proof_pack.js +0 -71
  103. package/lib/phase_3_brc_proof_pack.js +0 -81
  104. package/lib/phase_3_bsv_teranode_proof_pack.js +0 -81
  105. package/lib/phase_3_closeout_pack.js +0 -62
  106. package/lib/phase_3_completion_pack.js +0 -92
  107. package/lib/phase_3_decision_record_pack.js +0 -64
  108. package/lib/phase_3_decision_resolution_pack.js +0 -69
  109. package/lib/phase_3_freeze_baseline_pack.js +0 -67
  110. package/lib/phase_3_freeze_review_pack.js +0 -80
  111. package/lib/phase_3_gate_pack.js +0 -76
  112. package/lib/phase_3_metanet_proof_pack.js +0 -81
  113. package/lib/phase_3_native_bsv_pack.js +0 -89
  114. package/lib/phase_3_native_continuity_pack.js +0 -82
  115. package/lib/phase_4_attestation_proof_pack.js +0 -75
  116. package/lib/phase_4_closeout_pack.js +0 -45
  117. package/lib/phase_4_completion_pack.js +0 -82
  118. package/lib/phase_4_decision_record_pack.js +0 -54
  119. package/lib/phase_4_decision_resolution_pack.js +0 -45
  120. package/lib/phase_4_erc8004_proof_pack.js +0 -76
  121. package/lib/phase_4_freeze_baseline_pack.js +0 -67
  122. package/lib/phase_4_freeze_review_pack.js +0 -68
  123. package/lib/phase_4_gate_pack.js +0 -58
  124. package/lib/phase_4_identity_registry_proof_pack.js +0 -75
  125. package/lib/phase_4_identity_trust_pack.js +0 -73
  126. package/lib/phase_4_trust_continuity_pack.js +0 -86
  127. package/lib/phase_5_antelope_proof_pack.js +0 -76
  128. package/lib/phase_5_closeout_pack.js +0 -44
  129. package/lib/phase_5_completion_pack.js +0 -82
  130. package/lib/phase_5_decision_record_pack.js +0 -54
  131. package/lib/phase_5_decision_resolution_pack.js +0 -45
  132. package/lib/phase_5_freeze_baseline_pack.js +0 -67
  133. package/lib/phase_5_freeze_review_pack.js +0 -68
  134. package/lib/phase_5_gate_pack.js +0 -58
  135. package/lib/phase_5_major_rails_continuity_pack.js +0 -86
  136. package/lib/phase_5_major_rails_pack.js +0 -74
  137. package/lib/phase_5_proton_xpr_proof_pack.js +0 -76
  138. package/lib/phase_5_solana_proof_pack.js +0 -76
  139. package/lib/phase_6_autogen_proof_pack.js +0 -74
  140. package/lib/phase_6_closeout_pack.js +0 -46
  141. package/lib/phase_6_completion_pack.js +0 -77
  142. package/lib/phase_6_decision_record_pack.js +0 -54
  143. package/lib/phase_6_decision_resolution_pack.js +0 -53
  144. package/lib/phase_6_framework_continuity_pack.js +0 -81
  145. package/lib/phase_6_framework_runtime_pack.js +0 -68
  146. package/lib/phase_6_freeze_baseline_pack.js +0 -68
  147. package/lib/phase_6_freeze_review_pack.js +0 -65
  148. package/lib/phase_6_gate_pack.js +0 -59
  149. package/lib/phase_6_langchain_proof_pack.js +0 -74
  150. package/lib/phase_6_langgraph_proof_pack.js +0 -74
  151. package/lib/phase_6_semantic_kernel_proof_pack.js +0 -74
  152. package/lib/phase_7_closeout_pack.js +0 -45
  153. package/lib/phase_7_completion_pack.js +0 -85
  154. package/lib/phase_7_decision_record_pack.js +0 -53
  155. package/lib/phase_7_decision_resolution_pack.js +0 -53
  156. package/lib/phase_7_event_system_continuity_pack.js +0 -89
  157. package/lib/phase_7_event_system_pack.js +0 -76
  158. package/lib/phase_7_freeze_baseline_pack.js +0 -74
  159. package/lib/phase_7_freeze_review_pack.js +0 -65
  160. package/lib/phase_7_gate_pack.js +0 -58
  161. package/lib/phase_7_kafka_proof_pack.js +0 -76
  162. package/lib/phase_7_mqtt_proof_pack.js +0 -76
  163. package/lib/phase_7_nats_proof_pack.js +0 -76
  164. package/lib/phase_7_webhook_event_bus_proof_pack.js +0 -76
  165. package/lib/phase_8_closeout_pack.js +0 -46
  166. package/lib/phase_8_completion_pack.js +0 -82
  167. package/lib/phase_8_decision_record_pack.js +0 -54
  168. package/lib/phase_8_decision_resolution_pack.js +0 -53
  169. package/lib/phase_8_external_receipt_import_proof_pack.js +0 -74
  170. package/lib/phase_8_external_result_import_proof_pack.js +0 -74
  171. package/lib/phase_8_freeze_baseline_pack.js +0 -71
  172. package/lib/phase_8_freeze_review_pack.js +0 -64
  173. package/lib/phase_8_gate_pack.js +0 -58
  174. package/lib/phase_8_proof_bridge_continuity_pack.js +0 -86
  175. package/lib/phase_8_proof_bridges_pack.js +0 -72
  176. package/lib/phase_8_proof_bundle_normalization_proof_pack.js +0 -74
  177. package/lib/phase_9_closeout_pack.js +0 -46
  178. package/lib/phase_9_completion_pack.js +0 -82
  179. package/lib/phase_9_custody_refs_proof_pack.js +0 -74
  180. package/lib/phase_9_decision_record_pack.js +0 -54
  181. package/lib/phase_9_decision_resolution_pack.js +0 -53
  182. package/lib/phase_9_freeze_baseline_pack.js +0 -71
  183. package/lib/phase_9_freeze_review_pack.js +0 -64
  184. package/lib/phase_9_gate_pack.js +0 -58
  185. package/lib/phase_9_operator_accounting_bridges_proof_pack.js +0 -74
  186. package/lib/phase_9_treasury_connectivity_pack.js +0 -72
  187. package/lib/phase_9_treasury_continuity_pack.js +0 -86
  188. package/lib/phase_9_treasury_destinations_proof_pack.js +0 -74
  189. package/lib/phase_program_pack.js +0 -47
  190. package/lib/proof_bridge_lane_contract.js +0 -82
  191. package/lib/proof_truth_contract.js +0 -224
  192. package/lib/provenance_lane_contract.js +0 -54
  193. package/lib/provider_lane_contract.js +0 -67
  194. package/lib/public_surface_policy_contract.js +0 -111
  195. package/lib/publish_plan.js +0 -51
  196. package/lib/release_candidate.js +0 -50
  197. package/lib/release_center.js +0 -1037
  198. package/lib/release_history.js +0 -206
  199. package/lib/release_manifest.js +0 -114
  200. package/lib/release_pack.js +0 -391
  201. package/lib/result_package_trust_lane_contract.js +0 -74
  202. package/lib/review_intelligence.js +0 -100
  203. package/lib/role_freeze.js +0 -436
  204. package/lib/shared_signals_lane_contract.js +0 -54
  205. package/lib/signed_audit_provenance_contract.js +0 -93
  206. package/lib/telemetry_lane_contract.js +0 -54
  207. package/lib/treasury_proof_lane_contract.js +0 -83
  208. package/lib/trust_intelligence.js +0 -106
  209. package/lib/trust_portability_boundary_contract.js +0 -66
  210. package/lib/trust_portability_pack.js +0 -224
  211. package/lib/verification_service_pack.js +0 -149
  212. package/proof_sdk.js +0 -6692
  213. package/reference/python/README.md +0 -35
  214. package/reference/python/requirements-optional.txt +0 -1
  215. package/reference/python/verify_vectors.py +0 -223
  216. package/reference/python/xnya_reference.py +0 -810
  217. package/reference/rust/Cargo.toml +0 -11
  218. package/reference/rust/README.md +0 -28
  219. package/reference/rust/src/lib.rs +0 -87
  220. package/scripts/registry_cli.js +0 -157
  221. package/scripts/verify_all.js +0 -603
  222. package/scripts/verify_control_plane_contracts.js +0 -34
  223. package/scripts/verify_control_plane_routes.js +0 -70
  224. package/scripts/verify_examples.js +0 -19
  225. package/scripts/verify_external_proof_import_gate.js +0 -84
  226. package/scripts/verify_external_proof_signature.js +0 -142
  227. package/scripts/verify_forgery_resistance.js +0 -281
  228. package/scripts/verify_integrations.js +0 -170
  229. package/scripts/verify_native_hybrid_design_gate.js +0 -114
  230. package/scripts/verify_paid_execute.js +0 -133
  231. package/scripts/verify_paywall_flag.js +0 -86
  232. package/scripts/verify_reference_promotion_gate.js +0 -74
  233. package/scripts/verify_reference_python.js +0 -49
  234. package/scripts/verify_reference_python_crypto.js +0 -87
  235. package/scripts/verify_reference_rust_scaffold.js +0 -50
  236. package/scripts/verify_service.js +0 -3038
  237. package/scripts/verify_tooling.js +0 -1251
  238. package/scripts/verify_trust_portability.js +0 -56
  239. package/scripts/verify_verification_services.js +0 -56
  240. package/server.js +0 -4430
package/README.md CHANGED
@@ -1,111 +1,134 @@
1
1
  # xoonya
2
2
 
3
- **Deterministic proof & review engine with post-quantum verification** — for receipts, handoffs,
4
- governance, and the native **XNYA** machine-evidence format. xoonya is the proof-side half of the
5
- naxytra machine stack; the runtime/payments half is [xytara](https://naxytra.com/xytara).
3
+ **Verifier for xoonya proofs and naxytra delivery evidence.**
6
4
 
7
- It makes machine evidence **deterministic, portable, minimal, verifiable, and replayable**, and
8
- verifies it with both classical and **post-quantum** signatures.
5
+ xoonya is the proof side of the naxytra machine stack: a hosted proof engine that emits
6
+ deterministic, portable machine evidence for paid agent work, plus this public verifier that lets
7
+ anyone check that evidence offline with classical and **post-quantum** signatures.
9
8
 
10
- ## Proven live on Base mainnet
9
+ > The proof engine and server are a hosted service; this package is the verifier. The engine is
10
+ > not distributed.
11
11
 
12
- Post-quantum proof verification is real and demonstrated: a paid x402 call (gasless USDC on Base)
13
- routes to xoonya's `/execute`, which verifies a native **XNYA** proof bundle signed with a hybrid
14
- **Ed25519 + ML-DSA-65 (FIPS-204)** suite and returns a `verified_native_hybrid_signature` verdict.
15
- Adversarially, downgrade-to-classical and the unsigned `none` algorithm are both rejected.
12
+ - Hosted service: https://xoonya.onrender.com
13
+ - Product page: https://www.naxytra.com/xoonya
14
+ - Agent entry points: https://www.naxytra.com/agents
16
15
 
17
- > Scope: XNYA is **machine-evidence verification** — a portable, deterministic check that a proof is
18
- > well-formed and cryptographically signed. It is **not** an identity, custody, settlement,
19
- > transport-security, or chain-finality claim.
16
+ ## What this package verifies
20
17
 
21
- ## What it does
18
+ - **Native proof bundles** (`proof-bundle/v1`) carrying a canonical event bundle and a receipt:
19
+ - `xoonya-native-sha256-v1` — replayable digest (integrity, not authorship)
20
+ - `xoonya-native-signed-v1` — Ed25519 / secp256k1 / P-256 signature bound to the carried public key
21
+ - `xoonya-native-hybrid-v1` — classical + post-quantum dual signature (Ed25519 + ML-DSA-65, FIPS 204)
22
+ - `xoonya-native-anchored-v1` — digest binding to declared chain / batch / finality anchor refs
23
+ - structural acceptance of external envelopes (`detached-assertion`, `jwt-assertion`, `did-vc`,
24
+ `sd-jwt-vc`, `signed-envelope`, `partner-proof-envelope`) and the compatibility `legacy-opreturn` receipt
25
+ - **Detached signatures and compact JWS** — EdDSA, ES256/384/512, ES256K, RS*/PS*, and
26
+ ML-DSA-44/65/87 — with an explicit trusted-key fingerprint model
27
+ - **XNYA machine-evidence atoms**, XNYP payload profiles and line-rate frames
22
28
 
23
- The public proof loop is deliberately narrow:
24
-
25
- 1. **receive** a handoff or canonical event bundle
26
- 2. **review** it
27
- 3. **verify** it
28
- 4. **emit** a durable proof bundle
29
-
30
- xoonya owns proof, review, and continuity. It does not own pricing, catalogs, workflow
31
- orchestration, payment rails, or settlement — those live in [xytara](https://naxytra.com/xytara).
29
+ Everything runs on Node built-ins (`node:crypto`); there are no dependencies.
32
30
 
33
31
  ## Install
34
32
 
35
33
  ```bash
36
- npm install xoonya
34
+ npm install xoonya # Node 24 or newer
37
35
  ```
38
36
 
39
- ## Quickstart — CLI
40
-
41
- ```bash
42
- xoonya start-here # the shortest first-run path
43
- xoonya first-run --verify-native --pretty
44
- xoonya conformance --json # run proof + adversarial vectors
45
- xoonya review --help
46
- ```
37
+ ## Verify a native proof bundle
47
38
 
48
- ## Quickstart — SDK
39
+ A proof bundle is what the hosted service (or a counterparty running it) hands back after a paid
40
+ execution. Verification is deterministic and offline:
49
41
 
50
42
  ```js
51
43
  const xoonya = require("xoonya");
52
-
53
- // 1. emit a signed receipt for a canonical event
54
- const receipt = xoonya.emitReceipt(event, { /* receipt options */ });
55
-
56
- // 2. build a portable proof bundle
57
- const bundle = xoonya.buildProofBundle({ ceb: event, receipt });
58
-
59
- // 3. verify it anywhere, deterministically
60
- const result = xoonya.verifyProofBundle(bundle);
61
- // => { valid: true, verification_method: "xoonya-native-hybrid-v1",
62
- // verification_state: "verified_native_hybrid_signature", ... }
44
+ const bundle = JSON.parse(require("fs").readFileSync("proof-bundle.json", "utf8"));
45
+
46
+ const result = xoonya.verifyNativeBundle(bundle);
47
+ // {
48
+ // valid: true,
49
+ // verification_method: "xoonya-native-hybrid-v1",
50
+ // verification_state: "verified_native_hybrid_signature",
51
+ // verification_class: "cryptographic",
52
+ // cryptographically_verified: true,
53
+ // public_key_ref: "ed25519+ml-dsa-65-hybrid-spki-sha256:...",
54
+ // classical_public_key_ref: "ed25519-spki-sha256:...",
55
+ // pq_public_key_ref: "ml-dsa-65-spki-sha256:...",
56
+ // ...
57
+ // }
63
58
  ```
64
59
 
65
- ## Verification methods
60
+ A valid result says the bundle is well-formed, bound to the canonical event, and (for signed /
61
+ hybrid methods) really signed by the carried public key. It does not say who controls that key.
62
+ Bind the key to an identity you already trust, and refuse digest-only and structural results, with
63
+ options:
66
64
 
67
- xoonya verifies the **native XNYA** family and common **external** formats for interop:
65
+ ```js
66
+ xoonya.verifyNativeBundle(bundle, {
67
+ strict: true, // only cryptographically verified methods pass
68
+ trusted_public_key_refs: {
69
+ "did:xoonya:agent-1": {
70
+ classical: "ed25519-spki-sha256:...",
71
+ pq: "ml-dsa-65-spki-sha256:..."
72
+ }
73
+ }
74
+ });
75
+ // a bundle signed by any other key => { valid: false, reason: "native_hybrid_public_key_not_trusted" }
76
+ ```
68
77
 
69
- - **Native (XNYA):** `xoonya-native-sha256-v1`, `xoonya-native-signed-v1` (Ed25519 / secp256k1 /
70
- P-256), `xoonya-native-hybrid-v1` (**classical + post-quantum**: ML-DSA-65 / FIPS-204,
71
- SLH-DSA / FIPS-205), `xoonya-native-anchored-v1`.
72
- - **External:** `signed-envelope`, `detached-assertion`, `jwt-assertion`, `sd-jwt-vc`, `did-vc`,
73
- `partner-proof-envelope`, `legacy-opreturn`.
78
+ `verifyNativeProof({ event, receipt, anchors })` does the same for a receipt that is not yet wrapped in
79
+ a bundle. `XOONYA_STRICT_VERIFY=1` turns strict mode on for every call.
74
80
 
75
- Conformance and adversarial vectors ship in `vectors/`; the `XNYA-compatible` mark is defined in
76
- [`XNYA_CONFORMANCE_MARK.md`](./XNYA_CONFORMANCE_MARK.md).
81
+ ## Verify a detached ML-DSA signature
77
82
 
78
- ## As a paid service (x402)
83
+ ```js
84
+ const result = xoonya.verifyDetachedSignature({
85
+ material: deliverableBytes, // Buffer or string that was signed
86
+ signature: signatureBase64, // base64 (default), "hex" or "base64url" via signature_encoding
87
+ public_key: signerSpkiPem, // SPKI PEM, base64 DER or public JWK; private material is refused
88
+ algorithm: "ML-DSA-65", // or "EdDSA", "ES256", "ES256K", "RS256", "PS256", ...
89
+ expected_key_ref: "ml-dsa-65-spki-sha256:..." // the fingerprint you already trust (optional)
90
+ });
91
+ // result.signature_valid => the signature verifies under the supplied key
92
+ // result.signing_key_ref => "ml-dsa-65-spki-sha256:..." fingerprint of that key
93
+ // result.trust_anchored => signature_valid AND the key matches expected_key_ref
94
+ ```
79
95
 
80
- xoonya runs as a verification service you can pay per call. An agent pays
81
- [xytara](https://naxytra.com/xytara) with x402 for `adapter.xoonya.invoke` (tool
82
- `proof.verify-signature` / `proof.verify-bundle` / `proof.verify-envelope` / `proof.verify-receipt`);
83
- xytara routes to xoonya's bearer-authed `/execute`, which runs real verification and returns the
84
- verdict. It is billed only on a successful verification.
96
+ `verifyJws(compactJws, { trusted_public_key, expected_key_ref })` verifies a compact JWS the same
97
+ way; `alg: "none"`, `crit` extensions and unencoded payloads are rejected.
85
98
 
86
- Run the server yourself:
99
+ ## CLI
87
100
 
88
101
  ```bash
89
- XOONYA_EXECUTOR_BEARER_TOKEN=... npm start # exposes the paid /execute lane
102
+ xoonya start-here # the shortest verification path
103
+ xoonya first-run --verify-native --pretty # run the shipped vectors, print a JSON verdict
104
+ xoonya conformance --json # conformance + adversarial vectors, full summary
105
+ xoonya verify ./proof-bundle.json --pretty # verify one bundle; add --strict; exit 1 if invalid
90
106
  ```
91
107
 
92
- ## Configuration
108
+ `xoonya release` and `xoonya review` are operator tooling of the hosted service and are not part
109
+ of this package.
93
110
 
94
- - `XOONYA_STRICT_VERIFY=1` — only cryptographically verified (native signed / hybrid) results pass;
95
- digest and structural results are rejected.
96
- - `XOONYA_ACCEPT_PRIVATE_KEY_MATERIAL=false` — refuse private-key material on shared deployments;
97
- sign locally with the SDK/CLI instead.
111
+ ## Conformance
98
112
 
99
- See [`.env.example`](./.env.example) for the full list.
113
+ `vectors/` ships the conformance and adversarial vectors the hosted engine is tested against
114
+ (eleven verification methods, fifteen rejection cases, XNYA atom and payload-profile vectors).
115
+ `xoonya.verifyVectors()` runs them in-process and returns the summary. The same vectors are run by
116
+ both the hosted engine and this verifier before every release, and every result must be identical.
100
117
 
101
- ## Learn more
118
+ ## Honest claims
102
119
 
103
- - Why two packages: [`WHY_XYTARA_XOONYA.md`](./WHY_XYTARA_XOONYA.md)
104
- - Native proof format: [`XOONYA_NATIVE_PROOF_FORMAT.md`](./XOONYA_NATIVE_PROOF_FORMAT.md) ·
105
- atom spec: [`XOONYA_NATIVE_ATOM_SPEC.md`](./XOONYA_NATIVE_ATOM_SPEC.md)
106
- - Start here: [`START_HERE.md`](./START_HERE.md) · terminology: [`TERMINOLOGY.md`](./TERMINOLOGY.md)
107
- - Live: https://naxytra.com/xoonya
120
+ - **Post-quantum means machine-evidence verification.** A `verified_native_hybrid_signature`
121
+ verdict says the proof was signed by the carried Ed25519 and ML-DSA-65 keys. It is not an
122
+ identity, custody, settlement, transport-security or chain-finality claim.
123
+ - **Proven suites:** Ed25519 and Ed25519 + ML-DSA-65 are exercised by the shipped vectors and by a
124
+ live paid verification on Base mainnet through the naxytra runtime. secp256k1, P-256 and
125
+ SLH-DSA are implemented suites but are not covered by shipped vectors.
126
+ - **Digest and anchored methods prove integrity, not authorship.** Anyone can produce a valid
127
+ digest; anchor refs are bound, not checked against the external chain or provider.
128
+ - **Trust in a signing key is yours to declare.** A key carried inside a proof, or supplied in the
129
+ same request, is never treated as trusted by itself.
108
130
 
109
131
  ## License
110
132
 
111
- Apache-2.0. See [`LICENSE`](./LICENSE) and [`NOTICE`](./NOTICE).
133
+ The verifier SDK is Apache-2.0 (see `LICENSE` and `NOTICE`). The hosted xoonya proof engine and
134
+ server are proprietary.
package/RELEASE_NOTES.md CHANGED
@@ -1 +1,7 @@
1
- `xoonya` 3.1.17 is a synchronized-line release with no change to the proof engine, verification behavior, vectors, routes, or package contents. It is published through npm trusted publishing (GitHub OIDC), with no npm token involved.
1
+ `xoonya` 3.2.0 turns the npm package into a thin verifier. The published tarball now carries only what a third party needs to verify xoonya proofs and naxytra delivery evidence: the standalone native verifier (`lib/native_verify.js`), the detached-signature verifier (`lib/external_proof_verify.js`, Ed25519 / ECDSA / RSA / ML-DSA-44/65/87), the `xoonya` CLI (`start-here`, `first-run --verify-native`, `conformance --json`, `verify <bundle.json>`), the conformance and adversarial vectors, and the release-candidate gate.
2
+
3
+ The proof engine, server, review, governance, bridge packs, reference implementations and operator tooling are no longer distributed. They run as the hosted xoonya service (https://xoonya.onrender.com) behind the naxytra runtime; `xoonya release` and `xoonya review` now explain this and exit with code 2.
4
+
5
+ Verification semantics are unchanged. The standalone verifier reproduces the engine's canonicalization, hashing, key-fingerprint and signature-suite rules exactly; the in-repo gate verifies every vector, option variant, freshly emitted bundle and mutation with both the engine and the standalone verifier and requires identical results. All eleven verification methods still pass, including `xoonya-native-hybrid-v1` (Ed25519 + ML-DSA-65).
6
+
7
+ Package entry is now `verify.js` (`verifyNativeBundle`, `verifyNativeProof`, `verifyDetachedSignature`, `verifyJws`, `verifyExternalProofSignature`, `verifyxoonyaNativeAtom`, `verifyVectors`, `version`, `endpoints`). The verifier SDK stays Apache-2.0; the hosted service is proprietary.
package/START_HERE.md CHANGED
@@ -1,159 +1,63 @@
1
1
  # xoonya Start Here
2
2
 
3
- This is the shortest reliable path for understanding and using the public `xoonya` package in production-facing order.
3
+ `xoonya` on npm is the **verifier** for xoonya proofs and naxytra delivery evidence. The proof
4
+ engine and server are a hosted service (https://xoonya.onrender.com); this package is the
5
+ verifier. The engine is not distributed.
4
6
 
5
- The phase program is now complete, so this file is the right starting point for a closed and release-shaped proof system rather than an in-flight milestone build.
6
-
7
- The product-side implementation, proof posture, and bounded hybrid verification work for the widened `3.0.0` finish line are now complete. The remaining step is the synchronized public `3.0.0` release cut, publish, deploy, and verification sequence documented in NAXYTRA_3_0_0_RELEASE_CONTRACT.md and PUBLISH_PLAN.md.
8
-
9
- If you are arriving from the broader public discovery layer, the canonical entry points are:
7
+ If you are arriving from the public discovery layer, the canonical entry points are:
10
8
 
9
+ - https://www.naxytra.com/xoonya
11
10
  - https://www.naxytra.com/agents
12
- - https://www.naxytra.com/v1/agent-discovery-index
13
- - https://www.naxytra.com/.well-known/agent.json
14
-
15
- ## 1. Understand The Role
16
-
17
- `xoonya` is the proof-side half of the public stack.
18
-
19
- Its job is to let a caller:
11
+ - https://www.naxytra.com/v1/first-run-kit
20
12
 
21
- 1. receive the transaction-side handoff from `xytara`
22
- 2. inspect review and run posture
23
- 3. emit proof-native completion artifacts
24
- 4. verify the final proof bundle
13
+ ## 1. The role
25
14
 
26
- For the full public quote -> execute -> prove path, start from:
15
+ The public spine is `quote -> pay/credits -> execute -> prove -> verify`. The naxytra runtime
16
+ (`xytara`) owns quotes, payment and execution; the hosted xoonya engine emits the proof; this
17
+ package lets you verify that proof anywhere, offline, deterministically.
27
18
 
28
- ```text
29
- https://www.naxytra.com/v1/first-run-kit
30
- ```
31
-
32
- Then run the local proof followthrough:
19
+ ## 2. Install and run the shipped vectors
33
20
 
34
21
  ```bash
22
+ npm install xoonya
23
+ xoonya start-here
35
24
  xoonya first-run --verify-native --pretty
25
+ xoonya conformance --json
36
26
  ```
37
27
 
38
- If you want the frozen machine-readable proof-truth contract behind that flow, inspect:
39
-
40
- ```text
41
- GET /v1/proof-truth
42
- GET /v1/proof-truth/summary
43
- ```
44
-
45
- If you want the frozen machine-readable proof default-path contract behind that flow, inspect:
28
+ `first-run --verify-native` must print `"ok": true` and `"required_native_methods_present": true`.
29
+ The verification methods include `xoonya-native-sha256-v1`, `xoonya-native-signed-v1`,
30
+ `xoonya-native-hybrid-v1` (Ed25519 + ML-DSA-65) and `xoonya-native-anchored-v1`.
46
31
 
47
- ```text
48
- GET /v1/default-path
49
- GET /v1/default-path/summary
50
- ```
51
-
52
- If you want the frozen machine-readable followthrough claim boundary behind that flow, inspect:
53
-
54
- ```text
55
- GET /v1/followthrough-truth
56
- GET /v1/followthrough-truth/summary
57
- ```
58
-
59
- ## 2. Run The Fastest Real Example
60
-
61
- Run:
32
+ ## 3. Verify a real bundle
62
33
 
63
34
  ```bash
64
- node examples/package_quickstart.js
35
+ xoonya verify ./proof-bundle.json --pretty # exit 0 if valid, 1 otherwise
36
+ xoonya verify ./proof-bundle.json --strict --pretty # only cryptographically verified methods pass
65
37
  ```
66
38
 
67
- This is the fastest way to see the intended proof-side package story end-to-end.
68
-
69
- If you want the clearest cross-repo adoption path instead of the broad package tour, continue with:
39
+ Or in code:
70
40
 
71
- - CARRIED_HANDOFF_DEMO.md
41
+ ```js
42
+ const xoonya = require("xoonya");
43
+ const result = xoonya.verifyNativeBundle(bundle, { strict: true, trusted_public_key_refs: { ... } });
44
+ ```
72
45
 
73
- If you want the shortest neutral external-adoption bundle, continue with:
46
+ For detached signatures (including ML-DSA) use `xoonya.verifyDetachedSignature(...)`; for compact
47
+ JWS use `xoonya.verifyJws(...)`. See `README.md` for the option model.
74
48
 
75
- - PARTNER_READY_PATH.md
76
- - PUBLIC_DEMO_SCRIPT.md
77
- - EXAMPLE_PATHS.md
78
- - `node examples/partner_proof_walkthrough.js`
49
+ ## 4. Read the boundary
79
50
 
80
- ## 3. Verify The Whole Package
51
+ - A valid result proves binding and signature validity under the carried key, not identity,
52
+ custody, settlement or external chain truth.
53
+ - Digest and anchored methods prove integrity and replayability, not authorship.
54
+ - Trust in a signing key is declared by you (`expected_key_ref`, `trusted_public_key_refs`).
81
55
 
82
- Run:
56
+ ## 5. Hosted surfaces
83
57
 
84
- ```bash
85
- npm run verify:all
86
- ```
58
+ - https://xoonya.onrender.com/v1/proof-center/native-standard/summary
59
+ - https://xoonya.onrender.com/v1/proof-center/native-conformance-mark/summary
60
+ - https://xoonya.onrender.com/v1/proof-center/native-anchor-profile/summary
87
61
 
88
- This is the production-confidence check for the published proof package surface.
89
-
90
- ## 4. Read The Durable Contract
91
-
92
- For long-term product understanding, read:
93
-
94
- - FINAL_CONTRACT.md
95
- - SERVICE_CONTRACT.md
96
- - `GET /openapi.json`
97
- - `GET /asyncapi.json`
98
- - `GET /cloudevents.json`
99
- - `GET /v1/auth-profiles`
100
- - `GET /v1/identity-interop`
101
- - `GET /v1/providers`
102
- - `GET /v1/frameworks`
103
- - `GET /v1/integration-matrix`
104
- - `GET /v1/telemetry`
105
- - `GET /v1/provenance`
106
- - `GET /v1/artifact-distribution`
107
- - `GET /v1/shared-signals`
108
- - `GET /v1/feature-control`
109
- - `GET /v1/adapter-certification`
110
- - `GET /v1/trust-portability-boundary`
111
- - `GET /v1/signed-audit-provenance`
112
- - `GET /v1/major-rails`
113
- - `GET /v1/treasury`
114
- - `GET /v1/erc8004`
115
- - `GET /v1/proof-bridge`
116
- - `GET /v1/external-proof-import`
117
- - `GET /v1/result-package-trust`
118
- - `GET /v1/event-systems`
119
- - `GET /v1/integrations`
120
- - PROGRAM_STATUS.md
121
- - OPERATOR_START_HERE.md
122
- - OPERATIONS_RUNBOOK.md
123
- - PROGRAM_COMPLETE_RELEASE.md
124
- - WHY_XYTARA_XOONYA.md
125
- - CARRIED_HANDOFF_DEMO.md
126
- - PARTNER_READY_PATH.md
127
- - TERMINOLOGY.md
128
-
129
- ## 5. If You Are Integrating From Outside
130
-
131
- Continue with:
132
-
133
- - CROSS_RUNTIME_POSTURE.md
134
- - integrations/PROOF_INTEGRATION_PROCESS.md
135
- - PARTNER_READY_PATH.md
136
- - COMPATIBILITY_NOTE.md
137
-
138
- ## 6. Production Reading Rule
139
-
140
- If you only remember one thing, remember this:
141
-
142
- The main public path is no longer "understand every proof helper first."
143
-
144
- It is:
145
-
146
- receive handoff -> inspect review posture -> confirm run posture -> emit and verify proof
147
-
148
- If you want the shortest CLI-first read of the package after install, use:
149
-
150
- - `xoonya start-here`
151
- - `xoonya release --summary`
152
- - `xoonya review --help`
153
-
154
- ## 7. If You Are Operating The Closed Program
155
-
156
- Use:
157
-
158
- - PROGRAM_STATUS.md
159
- - OPERATOR_START_HERE.md
62
+ `xoonya release` and `xoonya review` belong to the hosted service's operator tooling and are not
63
+ part of this package.
@@ -29,8 +29,9 @@ function buildLocalGuide() {
29
29
  product: "xoonya",
30
30
  category: "xoonya-first-run-proof-guide",
31
31
  guide_version: "xoonya-first-run-proof-guide-v1",
32
+ package_role: "verifier",
32
33
  public_command_kit_url: DEFAULT_KIT_URL,
33
- role: "proof_followthrough_after_xytara_runtime_execution",
34
+ role: "proof_verification_after_xytara_runtime_execution",
34
35
  safe_local_verification_command: "xoonya first-run --verify-native --pretty",
35
36
  proof_modes: [
36
37
  {
@@ -39,7 +40,11 @@ function buildLocalGuide() {
39
40
  },
40
41
  {
41
42
  method: "xoonya-native-signed-v1",
42
- verification: "ed25519_signature"
43
+ verification: "native_signature_ed25519_secp256k1_p256"
44
+ },
45
+ {
46
+ method: "xoonya-native-hybrid-v1",
47
+ verification: "classical_plus_pq_signature_ed25519_ml_dsa_65"
43
48
  },
44
49
  {
45
50
  method: "xoonya-native-anchored-v1",
@@ -58,7 +63,8 @@ function buildLocalGuide() {
58
63
  boundaries: [
59
64
  "xoonya_verifies_proof_bundles_and_native_method_binding",
60
65
  "xoonya_anchor_binding_does_not_claim_external_provider_or_chain_truth",
61
- "xytara_owns_runtime_payment_and_execution_state"
66
+ "xytara_owns_runtime_payment_and_execution_state",
67
+ "the_proof_engine_is_a_hosted_service_and_is_not_distributed"
62
68
  ]
63
69
  };
64
70
  }
@@ -80,12 +86,12 @@ function printUsage() {
80
86
  "Usage: xoonya first-run [options]",
81
87
  "",
82
88
  "Options:",
83
- " --json Print the guided proof followthrough object",
89
+ " --json Print the guided proof verification object",
84
90
  " --offline Do not fetch the public command kit",
85
91
  " --verify-native Run local native/conformance verification",
86
92
  " --pretty Pretty-print JSON output",
87
93
  " --help Show this help message"
88
- ].join("\n"));
94
+ ].join("\n") + "\n");
89
95
  }
90
96
 
91
97
  function runNativeVerification(args) {
@@ -107,6 +113,7 @@ function runNativeVerification(args) {
107
113
  product: "xoonya",
108
114
  category: "xoonya-first-run-native-verification",
109
115
  verification_version: "xoonya-first-run-native-verification-v1",
116
+ package_role: "verifier",
110
117
  proof_bundle_conformance_passed: summary.ok === true,
111
118
  conformance_count: summary.conformance_count,
112
119
  adversarial_count: summary.adversarial_count,
@@ -114,6 +121,8 @@ function runNativeVerification(args) {
114
121
  native_atom_adversarial_count: summary.native_atom_adversarial_count,
115
122
  verification_methods: summary.verification_methods,
116
123
  native_atom_error_codes: summary.native_atom_error_codes,
124
+ external_signature_checks: summary.external_signature_checks,
125
+ engine_parity: summary.engine_parity,
117
126
  required_native_methods_present: [
118
127
  "xoonya-native-sha256-v1",
119
128
  "xoonya-native-signed-v1",
@@ -158,24 +167,27 @@ async function main() {
158
167
  process.stdout.write([
159
168
  "xoonya first-run",
160
169
  "",
161
- "Proof followthrough after xytara execution:",
170
+ "Local proof verification after xytara execution:",
162
171
  " xoonya first-run --verify-native --pretty",
172
+ " xoonya verify ./proof-bundle.json --pretty",
163
173
  "",
164
174
  "Inspect the public command kit:",
165
175
  ` ${DEFAULT_KIT_URL}`,
166
176
  "",
167
- "Native proof modes checked locally:",
177
+ "Native proof methods checked locally:",
168
178
  " xoonya-native-sha256-v1",
169
179
  " xoonya-native-signed-v1",
180
+ " xoonya-native-hybrid-v1",
170
181
  " xoonya-native-anchored-v1",
171
182
  "",
172
- "Public proof surfaces:",
183
+ "Hosted proof surfaces:",
173
184
  " https://xoonya.onrender.com/v1/proof-center/native-standard/summary",
174
185
  " https://xoonya.onrender.com/v1/proof-center/native-anchor-profile/summary",
175
186
  "",
176
187
  "Boundary:",
177
- " xoonya verifies proof and anchor binding; external chain/provider truth stays external."
178
- ].join("\n"));
188
+ " xoonya verifies proof and anchor binding; external chain/provider truth stays external.",
189
+ " The proof engine is a hosted service; this package is the verifier."
190
+ ].join("\n") + "\n");
179
191
  }
180
192
 
181
193
  main().catch((error) => {