xoonya 3.0.0 → 3.1.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 (246) hide show
  1. package/.env.example +2 -2
  2. package/CARRIED_HANDOFF_DEMO.md +60 -60
  3. package/COMPATIBILITY_NOTE.md +27 -27
  4. package/CROSS_RUNTIME_POSTURE.md +77 -77
  5. package/EXAMPLE_PATHS.md +53 -53
  6. package/FINAL_CONTRACT.md +445 -445
  7. package/LICENSE +201 -201
  8. package/NOTICE +3 -3
  9. package/OPERATIONS_RUNBOOK.md +50 -0
  10. package/OPERATOR_START_HERE.md +67 -0
  11. package/PARTNER_READY_PATH.md +67 -67
  12. package/PROGRAM_COMPLETE_RELEASE.md +52 -0
  13. package/PROGRAM_STATUS.md +57 -0
  14. package/PUBLIC_DEMO_SCRIPT.md +79 -79
  15. package/PUBLISH_PLAN.md +25 -0
  16. package/README.md +807 -732
  17. package/RELEASE_CHECKLIST.md +16 -0
  18. package/RELEASE_NOTES.md +15 -15
  19. package/SERVICE_CONTRACT.md +207 -195
  20. package/START_HERE.md +159 -150
  21. package/TERMINOLOGY.md +55 -55
  22. package/WHY_XYTARA_XOONYA.md +43 -43
  23. package/XNYA_CONFORMANCE_MARK.md +78 -78
  24. package/XNYA_REFERENCE_IMPLEMENTATIONS.md +157 -157
  25. package/XOONYA_DEFAULT_PATH_MODEL.md +63 -63
  26. package/XOONYA_FOLLOWTHROUGH_TRUTH_MODEL.md +63 -63
  27. package/XOONYA_NATIVE_ATOM_SPEC.md +184 -184
  28. package/XOONYA_NATIVE_PROOF_FORMAT.md +527 -527
  29. package/XOONYA_NATIVE_STANDARD_GOVERNANCE.md +119 -119
  30. package/XOONYA_PROOF_TRUTH_MODEL.md +58 -58
  31. package/bin/xoonya-first-run.js +184 -184
  32. package/bin/xoonya-release.js +1367 -1367
  33. package/bin/xoonya-review.js +70 -70
  34. package/bin/xoonya.js +82 -82
  35. package/examples/integration_boundary_walkthrough.js +37 -37
  36. package/examples/package_quickstart.js +1007 -1007
  37. package/examples/partner_proof_walkthrough.js +68 -68
  38. package/examples/proof_review_walkthrough.js +66 -66
  39. package/examples/review_carried_handoff.js +72 -72
  40. package/index.js +31 -22
  41. package/integrations/PROOF_INTEGRATION_PROCESS.md +45 -45
  42. package/integrations/examples/example-third-party-verifier-registration.record.json +22 -22
  43. package/integrations/registration-record.schema.json +99 -99
  44. package/integrations/registry-snapshot.schema.json +36 -36
  45. package/integrations/registry.js +636 -636
  46. package/integrations/views.js +36 -36
  47. package/lib/adapter_certification_contract.js +90 -0
  48. package/lib/announcement_pack.js +61 -61
  49. package/lib/artifact_distribution_lane_contract.js +54 -54
  50. package/lib/asyncapi_contract.js +135 -135
  51. package/lib/auth_interop_contract.js +69 -69
  52. package/lib/authority_binding_lifecycle_contract.js +182 -0
  53. package/lib/bridge_intelligence.js +102 -102
  54. package/lib/cloudevents_contract.js +79 -79
  55. package/lib/crypto_agility_matrix.js +125 -0
  56. package/lib/default_path_contract.js +380 -380
  57. package/lib/ecosystem_entry.js +64 -64
  58. package/lib/erc8004_proof_lane_contract.js +64 -64
  59. package/lib/event_system_lane_contract.js +76 -76
  60. package/lib/external_proof_import_lane_contract.js +87 -87
  61. package/lib/feature_control_lane_contract.js +54 -54
  62. package/lib/followthrough_truth_contract.js +214 -214
  63. package/lib/framework_lane_contract.js +76 -76
  64. package/lib/governance_disputes_summary.js +36 -36
  65. package/lib/governance_intelligence.js +108 -108
  66. package/lib/identity_interop_contract.js +83 -83
  67. package/lib/integration_matrix_contract.js +81 -81
  68. package/lib/launch_narrative.js +53 -53
  69. package/lib/machine_identity_registry_contract.js +199 -0
  70. package/lib/major_rails_proof_lane_contract.js +87 -87
  71. package/lib/offline_verifiability_recovery_contract.js +155 -0
  72. package/lib/openapi_contract.js +227 -227
  73. package/lib/operational_receipt_contract.js +165 -0
  74. package/lib/outreach_proof.js +71 -71
  75. package/lib/phase_10_closeout_pack.js +45 -45
  76. package/lib/phase_10_completion_pack.js +76 -76
  77. package/lib/phase_10_decision_record_pack.js +54 -54
  78. package/lib/phase_10_decision_resolution_pack.js +53 -53
  79. package/lib/phase_10_demand_signal_adapters_proof_pack.js +74 -74
  80. package/lib/phase_10_ecosystem_backlog_triage_proof_pack.js +74 -74
  81. package/lib/phase_10_freeze_baseline_pack.js +67 -67
  82. package/lib/phase_10_freeze_review_pack.js +64 -64
  83. package/lib/phase_10_gate_pack.js +57 -57
  84. package/lib/phase_10_long_tail_continuity_pack.js +80 -80
  85. package/lib/phase_10_long_tail_ecosystem_pack.js +68 -68
  86. package/lib/phase_10_niche_extension_registry_proof_pack.js +74 -74
  87. package/lib/phase_1_claude_mcp_pack.js +60 -60
  88. package/lib/phase_1_claude_mcp_proof_pack.js +57 -57
  89. package/lib/phase_1_ecosystem_pack.js +51 -51
  90. package/lib/phase_1_openai_codex_pack.js +60 -60
  91. package/lib/phase_1_openai_codex_proof_pack.js +57 -57
  92. package/lib/phase_2_base_proof_pack.js +71 -71
  93. package/lib/phase_2_base_usdc_proof_pack.js +72 -72
  94. package/lib/phase_2_closeout_pack.js +65 -65
  95. package/lib/phase_2_completion_pack.js +113 -113
  96. package/lib/phase_2_decision_record_pack.js +66 -66
  97. package/lib/phase_2_decision_resolution_pack.js +69 -69
  98. package/lib/phase_2_eth_proof_pack.js +70 -70
  99. package/lib/phase_2_evm_base_proof_pack.js +73 -73
  100. package/lib/phase_2_evm_proof_pack.js +71 -71
  101. package/lib/phase_2_flip_preview_pack.js +60 -60
  102. package/lib/phase_2_freeze_review_pack.js +99 -99
  103. package/lib/phase_2_gate_pack.js +77 -77
  104. package/lib/phase_2_payment_rails_pack.js +71 -71
  105. package/lib/phase_2_usdc_proof_pack.js +71 -71
  106. package/lib/phase_3_brc_proof_pack.js +81 -81
  107. package/lib/phase_3_bsv_teranode_proof_pack.js +81 -81
  108. package/lib/phase_3_closeout_pack.js +62 -62
  109. package/lib/phase_3_completion_pack.js +92 -92
  110. package/lib/phase_3_decision_record_pack.js +64 -64
  111. package/lib/phase_3_decision_resolution_pack.js +69 -69
  112. package/lib/phase_3_freeze_baseline_pack.js +67 -67
  113. package/lib/phase_3_freeze_review_pack.js +80 -80
  114. package/lib/phase_3_gate_pack.js +76 -76
  115. package/lib/phase_3_metanet_proof_pack.js +81 -81
  116. package/lib/phase_3_native_bsv_pack.js +89 -89
  117. package/lib/phase_3_native_continuity_pack.js +82 -82
  118. package/lib/phase_4_attestation_proof_pack.js +75 -75
  119. package/lib/phase_4_closeout_pack.js +45 -45
  120. package/lib/phase_4_completion_pack.js +82 -82
  121. package/lib/phase_4_decision_record_pack.js +54 -54
  122. package/lib/phase_4_decision_resolution_pack.js +45 -45
  123. package/lib/phase_4_erc8004_proof_pack.js +76 -76
  124. package/lib/phase_4_freeze_baseline_pack.js +67 -67
  125. package/lib/phase_4_freeze_review_pack.js +68 -68
  126. package/lib/phase_4_gate_pack.js +58 -58
  127. package/lib/phase_4_identity_registry_proof_pack.js +75 -75
  128. package/lib/phase_4_identity_trust_pack.js +73 -73
  129. package/lib/phase_4_trust_continuity_pack.js +86 -86
  130. package/lib/phase_5_antelope_proof_pack.js +76 -76
  131. package/lib/phase_5_closeout_pack.js +44 -44
  132. package/lib/phase_5_completion_pack.js +82 -82
  133. package/lib/phase_5_decision_record_pack.js +54 -54
  134. package/lib/phase_5_decision_resolution_pack.js +45 -45
  135. package/lib/phase_5_freeze_baseline_pack.js +67 -67
  136. package/lib/phase_5_freeze_review_pack.js +68 -68
  137. package/lib/phase_5_gate_pack.js +58 -58
  138. package/lib/phase_5_major_rails_continuity_pack.js +86 -86
  139. package/lib/phase_5_major_rails_pack.js +74 -74
  140. package/lib/phase_5_proton_xpr_proof_pack.js +76 -76
  141. package/lib/phase_5_solana_proof_pack.js +76 -76
  142. package/lib/phase_6_autogen_proof_pack.js +74 -74
  143. package/lib/phase_6_closeout_pack.js +46 -46
  144. package/lib/phase_6_completion_pack.js +77 -77
  145. package/lib/phase_6_decision_record_pack.js +54 -54
  146. package/lib/phase_6_decision_resolution_pack.js +53 -53
  147. package/lib/phase_6_framework_continuity_pack.js +81 -81
  148. package/lib/phase_6_framework_runtime_pack.js +68 -68
  149. package/lib/phase_6_freeze_baseline_pack.js +68 -68
  150. package/lib/phase_6_freeze_review_pack.js +65 -65
  151. package/lib/phase_6_gate_pack.js +59 -59
  152. package/lib/phase_6_langchain_proof_pack.js +74 -74
  153. package/lib/phase_6_langgraph_proof_pack.js +74 -74
  154. package/lib/phase_6_semantic_kernel_proof_pack.js +74 -74
  155. package/lib/phase_7_closeout_pack.js +45 -45
  156. package/lib/phase_7_completion_pack.js +85 -85
  157. package/lib/phase_7_decision_record_pack.js +53 -53
  158. package/lib/phase_7_decision_resolution_pack.js +53 -53
  159. package/lib/phase_7_event_system_continuity_pack.js +89 -89
  160. package/lib/phase_7_event_system_pack.js +76 -76
  161. package/lib/phase_7_freeze_baseline_pack.js +74 -74
  162. package/lib/phase_7_freeze_review_pack.js +65 -65
  163. package/lib/phase_7_gate_pack.js +58 -58
  164. package/lib/phase_7_kafka_proof_pack.js +76 -76
  165. package/lib/phase_7_mqtt_proof_pack.js +76 -76
  166. package/lib/phase_7_nats_proof_pack.js +76 -76
  167. package/lib/phase_7_webhook_event_bus_proof_pack.js +76 -76
  168. package/lib/phase_8_closeout_pack.js +46 -46
  169. package/lib/phase_8_completion_pack.js +82 -82
  170. package/lib/phase_8_decision_record_pack.js +54 -54
  171. package/lib/phase_8_decision_resolution_pack.js +53 -53
  172. package/lib/phase_8_external_receipt_import_proof_pack.js +74 -74
  173. package/lib/phase_8_external_result_import_proof_pack.js +74 -74
  174. package/lib/phase_8_freeze_baseline_pack.js +71 -71
  175. package/lib/phase_8_freeze_review_pack.js +64 -64
  176. package/lib/phase_8_gate_pack.js +58 -58
  177. package/lib/phase_8_proof_bridge_continuity_pack.js +86 -86
  178. package/lib/phase_8_proof_bridges_pack.js +72 -72
  179. package/lib/phase_8_proof_bundle_normalization_proof_pack.js +74 -74
  180. package/lib/phase_9_closeout_pack.js +46 -46
  181. package/lib/phase_9_completion_pack.js +82 -82
  182. package/lib/phase_9_custody_refs_proof_pack.js +74 -74
  183. package/lib/phase_9_decision_record_pack.js +54 -54
  184. package/lib/phase_9_decision_resolution_pack.js +53 -53
  185. package/lib/phase_9_freeze_baseline_pack.js +71 -71
  186. package/lib/phase_9_freeze_review_pack.js +64 -64
  187. package/lib/phase_9_gate_pack.js +58 -58
  188. package/lib/phase_9_operator_accounting_bridges_proof_pack.js +74 -74
  189. package/lib/phase_9_treasury_connectivity_pack.js +72 -72
  190. package/lib/phase_9_treasury_continuity_pack.js +86 -86
  191. package/lib/phase_9_treasury_destinations_proof_pack.js +74 -74
  192. package/lib/phase_program_pack.js +47 -47
  193. package/lib/proof_bridge_lane_contract.js +82 -82
  194. package/lib/proof_truth_contract.js +224 -224
  195. package/lib/provenance_lane_contract.js +54 -54
  196. package/lib/provider_lane_contract.js +67 -67
  197. package/lib/public_surface_policy_contract.js +111 -0
  198. package/lib/publish_plan.js +51 -51
  199. package/lib/release_candidate.js +50 -50
  200. package/lib/release_center.js +1037 -1037
  201. package/lib/release_history.js +206 -206
  202. package/lib/release_manifest.js +114 -114
  203. package/lib/release_pack.js +391 -391
  204. package/lib/result_package_trust_lane_contract.js +74 -74
  205. package/lib/review_intelligence.js +100 -100
  206. package/lib/role_freeze.js +436 -436
  207. package/lib/shared_signals_lane_contract.js +54 -54
  208. package/lib/signed_audit_provenance_contract.js +93 -0
  209. package/lib/telemetry_lane_contract.js +54 -54
  210. package/lib/treasury_proof_lane_contract.js +83 -83
  211. package/lib/trust_intelligence.js +106 -106
  212. package/lib/trust_portability_boundary_contract.js +66 -0
  213. package/lib/trust_portability_pack.js +224 -224
  214. package/lib/verification_service_pack.js +149 -149
  215. package/package.json +97 -95
  216. package/proof_sdk.js +6265 -6265
  217. package/reference/python/README.md +35 -35
  218. package/reference/python/requirements-optional.txt +1 -1
  219. package/reference/python/verify_vectors.py +223 -223
  220. package/reference/python/xnya_reference.py +810 -810
  221. package/reference/rust/Cargo.toml +11 -11
  222. package/reference/rust/README.md +28 -28
  223. package/reference/rust/src/lib.rs +87 -87
  224. package/scripts/registry_cli.js +157 -157
  225. package/scripts/verify_all.js +603 -603
  226. package/scripts/verify_control_plane_contracts.js +34 -0
  227. package/scripts/verify_control_plane_routes.js +70 -0
  228. package/scripts/verify_examples.js +19 -19
  229. package/scripts/verify_external_proof_import_gate.js +84 -84
  230. package/scripts/verify_integrations.js +170 -170
  231. package/scripts/verify_native_hybrid_design_gate.js +114 -114
  232. package/scripts/verify_reference_promotion_gate.js +74 -74
  233. package/scripts/verify_reference_python.js +49 -49
  234. package/scripts/verify_reference_python_crypto.js +87 -87
  235. package/scripts/verify_reference_rust_scaffold.js +50 -50
  236. package/scripts/verify_release_candidate.js +131 -131
  237. package/scripts/verify_service.js +2940 -2940
  238. package/scripts/verify_tooling.js +1251 -1251
  239. package/scripts/verify_trust_portability.js +56 -56
  240. package/scripts/verify_vectors.js +192 -192
  241. package/scripts/verify_verification_services.js +56 -56
  242. package/server.js +4099 -3997
  243. package/vectors/adversarial-vectors.json +552 -552
  244. package/vectors/conformance-vectors.json +446 -446
  245. package/vectors/native-atom-vectors.json +101 -101
  246. package/vectors/native-payload-profile-vectors.json +50 -50
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+
3
+ const packageJson = require("../package.json");
4
+
5
+ function buildOfflineVerifiabilityRecoveryContractPack() {
6
+ return {
7
+ ok: true,
8
+ product: packageJson.name,
9
+ category: "naxytra-offline-verifiability-recovery-contract",
10
+ pack_version: "naxytra-offline-verifiability-recovery-contract-v1",
11
+ doctrine: "xoonya_keeps_evidence_verifiable_and_recoverable_when_live_provider_paths_are_unavailable",
12
+ model_state: "core_now",
13
+ core_claim: "offline mode remains a bounded operational mode with explicit verification restore and evidence lineage rules",
14
+ offline_states: [
15
+ { state: "online", description: "normal live operation" },
16
+ { state: "degraded", description: "limited live capability but still operational" },
17
+ { state: "offline_verify_only", description: "local evidence verification without live provider dependence" },
18
+ { state: "restore_pending", description: "durable data is being restored or validated" },
19
+ { state: "restored", description: "state has been restored and revalidated" }
20
+ ],
21
+ verifiable_offline_inputs: [
22
+ "operational_receipts",
23
+ "proof_bundles",
24
+ "registry_records",
25
+ "identity_or_authority_bindings",
26
+ "release_and_provenance_artifacts",
27
+ "checksum_or_hash_manifests"
28
+ ],
29
+ recovery_inputs: [
30
+ "receipts",
31
+ "proof_bundles",
32
+ "registry_snapshots",
33
+ "operator_notes_where_required",
34
+ "release_evidence",
35
+ "backup_manifests"
36
+ ],
37
+ recovery_rules: [
38
+ "backups_must_be_versioned",
39
+ "restore_targets_must_be_explicit",
40
+ "restore_actions_must_be_replayable_or_at_least_auditable",
41
+ "restored_state_must_preserve_evidence_lineage",
42
+ "restore_procedures_must_not_silently_rewrite_the_canonical_record"
43
+ ],
44
+ offline_verification_rules: [
45
+ "local_verification_must_not_depend_on_live_provider_truth_for_the_base_evidence_record",
46
+ "imported_evidence_must_keep_its_source_boundary_explicit",
47
+ "cryptographic_checks_must_be_deterministic",
48
+ "if_an_external_claim_cannot_be_verified_locally_that_limitation_must_be_recorded"
49
+ ],
50
+ canonical_objects: [
51
+ {
52
+ object_id: "offline_verification_record",
53
+ role: "local_verification_or_restore_state_record",
54
+ required_fields: [
55
+ "version",
56
+ "state",
57
+ "record_id",
58
+ "created_at_iso",
59
+ "actor_id",
60
+ "evidence_refs"
61
+ ],
62
+ recommended_fields: [
63
+ "backup_ref",
64
+ "restore_ref",
65
+ "proof_ref",
66
+ "registry_snapshot_ref",
67
+ "hash_manifest_ref"
68
+ ],
69
+ optional_fields: [
70
+ "limitation_notes",
71
+ "metadata"
72
+ ],
73
+ primary_surfaces: [
74
+ "/v1/proof-truth",
75
+ "/v1/proof-truth/summary",
76
+ "/v1/provenance",
77
+ "/v1/provenance/summary",
78
+ "/v1/security-reliability-drills"
79
+ ]
80
+ }
81
+ ],
82
+ lineage_model: [
83
+ {
84
+ layer_id: "offline_verification",
85
+ order_index: 1,
86
+ objects: ["offline_verification_record"],
87
+ invariants: [
88
+ "local_verification_can_run_without_live_provider_truth",
89
+ "evidence_boundary_remains_explicit"
90
+ ]
91
+ },
92
+ {
93
+ layer_id: "restore_and_replay",
94
+ order_index: 2,
95
+ objects: ["offline_verification_record"],
96
+ invariants: [
97
+ "restores_preserve_lineage",
98
+ "restore_state_is_auditable"
99
+ ]
100
+ },
101
+ {
102
+ layer_id: "post_restore_followthrough",
103
+ order_index: 3,
104
+ objects: ["offline_verification_record"],
105
+ invariants: [
106
+ "restored_state_can_rejoin_live_operation_after_revalidation",
107
+ "offline_verification_does_not_redefine_core_truth"
108
+ ]
109
+ }
110
+ ],
111
+ invariants: [
112
+ "offline_mode_is_bounded",
113
+ "restore_events_are_evidence_events",
114
+ "local_verification_does_not_require_live_provider_truth_for_base_evidence",
115
+ "restore_procedures_preserve_lineage",
116
+ "offline_verification_is_a_proof_followthrough_mode_not_a_new_proof_standard"
117
+ ],
118
+ linked_surfaces: {
119
+ proof_truth_ref: "/v1/proof-truth",
120
+ proof_truth_summary_ref: "/v1/proof-truth/summary",
121
+ provenance_ref: "/v1/provenance",
122
+ security_reliability_drills_ref: "/v1/security-reliability-drills",
123
+ release_verification_receipt_ref: "/v1/release-verification-receipt"
124
+ },
125
+ claim_boundary: "claim_the_offline_verification_and_recovery_followthrough_only_without_claiming_live_provider_truth_or_universal_availability"
126
+ };
127
+ }
128
+
129
+ function summarizeOfflineVerifiabilityRecoveryContractPack() {
130
+ const pack = buildOfflineVerifiabilityRecoveryContractPack();
131
+ return {
132
+ ok: true,
133
+ product: pack.product,
134
+ category: pack.category,
135
+ summary_version: "naxytra-offline-verifiability-recovery-contract-summary-v1",
136
+ pack_version: pack.pack_version,
137
+ model_state: pack.model_state,
138
+ offline_state_count: pack.offline_states.length,
139
+ offline_input_count: pack.verifiable_offline_inputs.length,
140
+ recovery_input_count: pack.recovery_inputs.length,
141
+ rule_count: pack.recovery_rules.length,
142
+ linked_surfaces: pack.linked_surfaces
143
+ };
144
+ }
145
+
146
+ function getOfflineStateDetail(state) {
147
+ const normalized = String(state || "").trim().toLowerCase();
148
+ return (buildOfflineVerifiabilityRecoveryContractPack().offline_states || []).find((entry) => entry.state === normalized) || null;
149
+ }
150
+
151
+ module.exports = {
152
+ buildOfflineVerifiabilityRecoveryContractPack,
153
+ summarizeOfflineVerifiabilityRecoveryContractPack,
154
+ getOfflineStateDetail
155
+ };
@@ -1,227 +1,227 @@
1
- "use strict";
2
-
3
- const pkg = require("../package.json");
4
-
5
- function buildOpenApiDocument() {
6
- return {
7
- openapi: "3.1.0",
8
- info: {
9
- title: "xoonya Public HTTP Contract",
10
- version: pkg.version,
11
- summary: "Proof and review contract for the stable public HTTP layer.",
12
- description: "This OpenAPI document exposes the stable builder-facing proof, review, and compatibility surfaces that outside builders should rely on first.",
13
- contact: {
14
- name: "naxytra"
15
- }
16
- },
17
- jsonSchemaDialect: "https://spec.openapis.org/oas/3.1/dialect/base",
18
- servers: [
19
- {
20
- url: "http://127.0.0.1:4340",
21
- description: "Local xoonya service"
22
- }
23
- ],
24
- tags: [
25
- { name: "health", description: "Service health and readiness." },
26
- { name: "proof-center", description: "Core proof and review surfaces." },
27
- { name: "events", description: "Canonicalization, hashing, and receipt emission." },
28
- { name: "proof-bundles", description: "Proof bundle build and verify surfaces." },
29
- { name: "compatibility", description: "Compatibility verification surfaces." },
30
- { name: "intelligence", description: "Proof-side intelligence and role surfaces." }
31
- ],
32
- paths: {
33
- "/health": {
34
- get: {
35
- tags: ["health"],
36
- summary: "Health check",
37
- operationId: "getHealth",
38
- responses: {
39
- "200": { description: "Service health response" }
40
- }
41
- }
42
- },
43
- "/v1/proof-center": {
44
- get: {
45
- tags: ["proof-center"],
46
- summary: "Get proof center bundle",
47
- operationId: "getProofCenter",
48
- responses: {
49
- "200": { description: "Proof center bundle" }
50
- }
51
- }
52
- },
53
- "/v1/proof-center/summary": {
54
- get: {
55
- tags: ["proof-center"],
56
- summary: "Get proof center summary",
57
- operationId: "getProofCenterSummary",
58
- responses: {
59
- "200": { description: "Proof center summary" }
60
- }
61
- }
62
- },
63
- "/v1/events/canonicalize": {
64
- post: {
65
- tags: ["events"],
66
- summary: "Canonicalize event payload",
67
- operationId: "canonicalizeEvent",
68
- responses: {
69
- "200": { description: "Canonical event response" },
70
- "400": { description: "Invalid event payload" }
71
- }
72
- }
73
- },
74
- "/v1/events/hash": {
75
- post: {
76
- tags: ["events"],
77
- summary: "Hash canonical event payload",
78
- operationId: "hashEvent",
79
- responses: {
80
- "200": { description: "Event hash response" },
81
- "400": { description: "Invalid event payload" }
82
- }
83
- }
84
- },
85
- "/v1/receipts/emit": {
86
- post: {
87
- tags: ["events"],
88
- summary: "Emit proof receipt",
89
- operationId: "emitReceipt",
90
- responses: {
91
- "200": { description: "Receipt emission response" },
92
- "400": { description: "Invalid receipt emission request" }
93
- }
94
- }
95
- },
96
- "/v1/proof-bundles/build": {
97
- post: {
98
- tags: ["proof-bundles"],
99
- summary: "Build proof bundle",
100
- operationId: "buildProofBundle",
101
- responses: {
102
- "200": { description: "Proof bundle created" },
103
- "400": { description: "Invalid proof bundle request" }
104
- }
105
- }
106
- },
107
- "/v1/proof-bundles/verify": {
108
- post: {
109
- tags: ["proof-bundles"],
110
- summary: "Verify proof bundle",
111
- operationId: "verifyProofBundle",
112
- responses: {
113
- "200": { description: "Proof bundle verification result" },
114
- "400": { description: "Invalid proof verification request" }
115
- }
116
- }
117
- },
118
- "/v1/receipts/verify": {
119
- post: {
120
- tags: ["compatibility"],
121
- summary: "Verify receipt",
122
- operationId: "verifyReceipt",
123
- responses: {
124
- "200": { description: "Receipt verification result" },
125
- "400": { description: "Invalid receipt verification request" }
126
- }
127
- }
128
- },
129
- "/v1/proof-center/bridge/economic-handoff": {
130
- post: {
131
- tags: ["proof-center"],
132
- summary: "Bridge economic handoff into proof review",
133
- operationId: "bridgeEconomicHandoff",
134
- responses: {
135
- "200": { description: "Economic handoff bridge result" },
136
- "400": { description: "Invalid handoff payload" }
137
- }
138
- }
139
- },
140
- "/v1/trust-intelligence/summary": {
141
- get: {
142
- tags: ["intelligence"],
143
- summary: "Get trust intelligence summary",
144
- operationId: "getTrustIntelligenceSummary",
145
- responses: {
146
- "200": { description: "Trust intelligence summary" }
147
- }
148
- }
149
- },
150
- "/v1/governance-intelligence/summary": {
151
- get: {
152
- tags: ["intelligence"],
153
- summary: "Get governance intelligence summary",
154
- operationId: "getGovernanceIntelligenceSummary",
155
- responses: {
156
- "200": { description: "Governance intelligence summary" }
157
- }
158
- }
159
- },
160
- "/v1/role-freeze/package": {
161
- get: {
162
- tags: ["intelligence"],
163
- summary: "Get canonical role-freeze package",
164
- operationId: "getRoleFreezePackage",
165
- responses: {
166
- "200": { description: "Role-freeze package" }
167
- }
168
- }
169
- },
170
- "/v1/role-transition": {
171
- get: {
172
- tags: ["intelligence"],
173
- summary: "Get role transition direction package",
174
- operationId: "getRoleTransition",
175
- responses: {
176
- "200": { description: "Role transition package" }
177
- }
178
- }
179
- },
180
- "/v1/capability-registry-home": {
181
- get: {
182
- tags: ["intelligence"],
183
- summary: "Get capability registry home direction package",
184
- operationId: "getCapabilityRegistryHome",
185
- responses: {
186
- "200": { description: "Capability registry home package" }
187
- }
188
- }
189
- }
190
- },
191
- "x-naxytra-contract": {
192
- product: "xoonya",
193
- stability: "stable_public_http_layer",
194
- route_count: 14,
195
- target_audience: ["builders", "partners", "reviewers"],
196
- linked_docs: [
197
- "SERVICE_CONTRACT.md",
198
- "FINAL_CONTRACT.md",
199
- "START_HERE.md"
200
- ]
201
- }
202
- };
203
- }
204
-
205
- function summarizeOpenApiDocument() {
206
- const document = buildOpenApiDocument();
207
- return {
208
- product: "xoonya",
209
- category: "proof-openapi-contract-summary",
210
- summary_version: "xoonya-openapi-contract-summary-v1",
211
- openapi_version: document.openapi,
212
- info_version: document.info.version,
213
- path_count: Object.keys(document.paths).length,
214
- server_count: document.servers.length,
215
- primary_protocol_lanes: ["http", "proof", "bridge"],
216
- linked_surfaces: {
217
- openapi_ref: "/openapi.json",
218
- service_contract_ref: "SERVICE_CONTRACT.md",
219
- final_contract_ref: "FINAL_CONTRACT.md"
220
- }
221
- };
222
- }
223
-
224
- module.exports = {
225
- buildOpenApiDocument,
226
- summarizeOpenApiDocument
227
- };
1
+ "use strict";
2
+
3
+ const pkg = require("../package.json");
4
+
5
+ function buildOpenApiDocument() {
6
+ return {
7
+ openapi: "3.1.0",
8
+ info: {
9
+ title: "xoonya Public HTTP Contract",
10
+ version: pkg.version,
11
+ summary: "Proof and review contract for the stable public HTTP layer.",
12
+ description: "This OpenAPI document exposes the stable builder-facing proof, review, and compatibility surfaces that outside builders should rely on first.",
13
+ contact: {
14
+ name: "naxytra"
15
+ }
16
+ },
17
+ jsonSchemaDialect: "https://spec.openapis.org/oas/3.1/dialect/base",
18
+ servers: [
19
+ {
20
+ url: "http://127.0.0.1:4340",
21
+ description: "Local xoonya service"
22
+ }
23
+ ],
24
+ tags: [
25
+ { name: "health", description: "Service health and readiness." },
26
+ { name: "proof-center", description: "Core proof and review surfaces." },
27
+ { name: "events", description: "Canonicalization, hashing, and receipt emission." },
28
+ { name: "proof-bundles", description: "Proof bundle build and verify surfaces." },
29
+ { name: "compatibility", description: "Compatibility verification surfaces." },
30
+ { name: "intelligence", description: "Proof-side intelligence and role surfaces." }
31
+ ],
32
+ paths: {
33
+ "/health": {
34
+ get: {
35
+ tags: ["health"],
36
+ summary: "Health check",
37
+ operationId: "getHealth",
38
+ responses: {
39
+ "200": { description: "Service health response" }
40
+ }
41
+ }
42
+ },
43
+ "/v1/proof-center": {
44
+ get: {
45
+ tags: ["proof-center"],
46
+ summary: "Get proof center bundle",
47
+ operationId: "getProofCenter",
48
+ responses: {
49
+ "200": { description: "Proof center bundle" }
50
+ }
51
+ }
52
+ },
53
+ "/v1/proof-center/summary": {
54
+ get: {
55
+ tags: ["proof-center"],
56
+ summary: "Get proof center summary",
57
+ operationId: "getProofCenterSummary",
58
+ responses: {
59
+ "200": { description: "Proof center summary" }
60
+ }
61
+ }
62
+ },
63
+ "/v1/events/canonicalize": {
64
+ post: {
65
+ tags: ["events"],
66
+ summary: "Canonicalize event payload",
67
+ operationId: "canonicalizeEvent",
68
+ responses: {
69
+ "200": { description: "Canonical event response" },
70
+ "400": { description: "Invalid event payload" }
71
+ }
72
+ }
73
+ },
74
+ "/v1/events/hash": {
75
+ post: {
76
+ tags: ["events"],
77
+ summary: "Hash canonical event payload",
78
+ operationId: "hashEvent",
79
+ responses: {
80
+ "200": { description: "Event hash response" },
81
+ "400": { description: "Invalid event payload" }
82
+ }
83
+ }
84
+ },
85
+ "/v1/receipts/emit": {
86
+ post: {
87
+ tags: ["events"],
88
+ summary: "Emit proof receipt",
89
+ operationId: "emitReceipt",
90
+ responses: {
91
+ "200": { description: "Receipt emission response" },
92
+ "400": { description: "Invalid receipt emission request" }
93
+ }
94
+ }
95
+ },
96
+ "/v1/proof-bundles/build": {
97
+ post: {
98
+ tags: ["proof-bundles"],
99
+ summary: "Build proof bundle",
100
+ operationId: "buildProofBundle",
101
+ responses: {
102
+ "200": { description: "Proof bundle created" },
103
+ "400": { description: "Invalid proof bundle request" }
104
+ }
105
+ }
106
+ },
107
+ "/v1/proof-bundles/verify": {
108
+ post: {
109
+ tags: ["proof-bundles"],
110
+ summary: "Verify proof bundle",
111
+ operationId: "verifyProofBundle",
112
+ responses: {
113
+ "200": { description: "Proof bundle verification result" },
114
+ "400": { description: "Invalid proof verification request" }
115
+ }
116
+ }
117
+ },
118
+ "/v1/receipts/verify": {
119
+ post: {
120
+ tags: ["compatibility"],
121
+ summary: "Verify receipt",
122
+ operationId: "verifyReceipt",
123
+ responses: {
124
+ "200": { description: "Receipt verification result" },
125
+ "400": { description: "Invalid receipt verification request" }
126
+ }
127
+ }
128
+ },
129
+ "/v1/proof-center/bridge/economic-handoff": {
130
+ post: {
131
+ tags: ["proof-center"],
132
+ summary: "Bridge economic handoff into proof review",
133
+ operationId: "bridgeEconomicHandoff",
134
+ responses: {
135
+ "200": { description: "Economic handoff bridge result" },
136
+ "400": { description: "Invalid handoff payload" }
137
+ }
138
+ }
139
+ },
140
+ "/v1/trust-intelligence/summary": {
141
+ get: {
142
+ tags: ["intelligence"],
143
+ summary: "Get trust intelligence summary",
144
+ operationId: "getTrustIntelligenceSummary",
145
+ responses: {
146
+ "200": { description: "Trust intelligence summary" }
147
+ }
148
+ }
149
+ },
150
+ "/v1/governance-intelligence/summary": {
151
+ get: {
152
+ tags: ["intelligence"],
153
+ summary: "Get governance intelligence summary",
154
+ operationId: "getGovernanceIntelligenceSummary",
155
+ responses: {
156
+ "200": { description: "Governance intelligence summary" }
157
+ }
158
+ }
159
+ },
160
+ "/v1/role-freeze/package": {
161
+ get: {
162
+ tags: ["intelligence"],
163
+ summary: "Get canonical role-freeze package",
164
+ operationId: "getRoleFreezePackage",
165
+ responses: {
166
+ "200": { description: "Role-freeze package" }
167
+ }
168
+ }
169
+ },
170
+ "/v1/role-transition": {
171
+ get: {
172
+ tags: ["intelligence"],
173
+ summary: "Get role transition direction package",
174
+ operationId: "getRoleTransition",
175
+ responses: {
176
+ "200": { description: "Role transition package" }
177
+ }
178
+ }
179
+ },
180
+ "/v1/capability-registry-home": {
181
+ get: {
182
+ tags: ["intelligence"],
183
+ summary: "Get capability registry home direction package",
184
+ operationId: "getCapabilityRegistryHome",
185
+ responses: {
186
+ "200": { description: "Capability registry home package" }
187
+ }
188
+ }
189
+ }
190
+ },
191
+ "x-naxytra-contract": {
192
+ product: "xoonya",
193
+ stability: "stable_public_http_layer",
194
+ route_count: 14,
195
+ target_audience: ["builders", "partners", "reviewers"],
196
+ linked_docs: [
197
+ "SERVICE_CONTRACT.md",
198
+ "FINAL_CONTRACT.md",
199
+ "START_HERE.md"
200
+ ]
201
+ }
202
+ };
203
+ }
204
+
205
+ function summarizeOpenApiDocument() {
206
+ const document = buildOpenApiDocument();
207
+ return {
208
+ product: "xoonya",
209
+ category: "proof-openapi-contract-summary",
210
+ summary_version: "xoonya-openapi-contract-summary-v1",
211
+ openapi_version: document.openapi,
212
+ info_version: document.info.version,
213
+ path_count: Object.keys(document.paths).length,
214
+ server_count: document.servers.length,
215
+ primary_protocol_lanes: ["http", "proof", "bridge"],
216
+ linked_surfaces: {
217
+ openapi_ref: "/openapi.json",
218
+ service_contract_ref: "SERVICE_CONTRACT.md",
219
+ final_contract_ref: "FINAL_CONTRACT.md"
220
+ }
221
+ };
222
+ }
223
+
224
+ module.exports = {
225
+ buildOpenApiDocument,
226
+ summarizeOpenApiDocument
227
+ };