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
@@ -1,170 +1,170 @@
1
- "use strict";
2
-
3
- const assert = require("assert");
4
- const stagedPartnerVerifierRegistrationRecord = require("../integrations/examples/example-third-party-verifier-registration.record.json");
5
- const root = require("../index.js");
6
-
7
- async function main() {
8
- const integrations = root.listIntegrations();
9
- assert.ok(Array.isArray(integrations), "proof integrations list missing");
10
- assert.ok(integrations.length >= 4, "proof integration breadth missing");
11
- assert.ok(integrations.some((integration) => integration.integration_id === "builtin.identity.legacy_material"), "legacy identity integration missing");
12
- assert.ok(integrations.some((integration) => integration.integration_id === "builtin.verifier.registry_profile"), "registry verifier integration missing");
13
- assert.ok(integrations.some((integration) => integration.integration_id === stagedPartnerVerifierRegistrationRecord.integration_id), "staged proof verifier integration missing");
14
- assert.ok(integrations.some((integration) => integration.certification_state === "certified"), "proof integration certification metadata missing");
15
-
16
- const summary = root.summarizeIntegrations();
17
- assert.strictEqual(summary.ok, true, "proof integration summary ok mismatch");
18
- assert.ok(summary.integration_count >= integrations.length, "proof integration count mismatch");
19
- assert.strictEqual(summary.certified_integration_count >= 5, true, "proof integration certified count mismatch");
20
- assert.strictEqual(summary.production_default_count >= 5, true, "proof integration production-default count mismatch");
21
- assert.strictEqual(summary.staged_registration_count >= 1, true, "proof integration staged registration count mismatch");
22
-
23
- const detail = root.getIntegration("builtin.verifier.economic_profile");
24
- assert.ok(detail, "proof integration detail missing");
25
- assert.strictEqual(detail.integration_class, "verification_helper_adapter", "proof integration class mismatch");
26
- assert.strictEqual(detail.integration_maturity, "production_default", "proof integration maturity mismatch");
27
-
28
- const bundledFiltered = root.listIntegrations({
29
- source: "builtin",
30
- certification_state: "certified",
31
- integration_maturity: "production_default",
32
- bundled: "true"
33
- });
34
- assert.ok(bundledFiltered.length >= 5, "proof builtin integration filtering mismatch");
35
-
36
- const stagedFiltered = root.listIntegrations({
37
- source: "third_party_example",
38
- registration_state: "staging_registered",
39
- proof_scope: "profile_verification",
40
- bundled: "false"
41
- });
42
- assert.strictEqual(stagedFiltered.length, 1, "proof staged integration filtering mismatch");
43
- assert.strictEqual(stagedFiltered[0].registration.requires_explicit_selection, true, "proof staged integration explicit-selection mismatch");
44
-
45
- const validation = root.validateIntegrationRegistration({
46
- integration_id: stagedPartnerVerifierRegistrationRecord.integration_id,
47
- integration_class: stagedPartnerVerifierRegistrationRecord.integration_class,
48
- proof_scope: stagedPartnerVerifierRegistrationRecord.proof_scope
49
- }, stagedPartnerVerifierRegistrationRecord);
50
- assert.strictEqual(validation.ok, true, "proof integration registration validation failed");
51
-
52
- const imported = root.importRegisteredIntegration({
53
- integration_id: "partner.verifier.memory_canary",
54
- integration_class: "verification_helper_adapter",
55
- display_name: "Memory Canary Verifier",
56
- description: "Imported proof-side verifier used to validate normalization.",
57
- proof_scope: "profile_verification",
58
- capabilities: ["memory_canary.verify"],
59
- public_surfaces: ["sdk"],
60
- required_inputs: ["profile"],
61
- emitted_artifacts: [],
62
- verification_targets: ["memory_canary_profile"]
63
- }, {
64
- integration_id: "partner.verifier.memory_canary",
65
- integration_class: "verification_helper_adapter",
66
- proof_scope: "profile_verification",
67
- registration_state: "local_only",
68
- integration_maturity: "reference_example",
69
- certification_state: "reference_example",
70
- bundled: false,
71
- default_selection_enabled: false,
72
- requires_explicit_selection: true,
73
- registered_at: "2026-03-20T00:00:00Z"
74
- }, {
75
- source: "verification_import_test",
76
- certification_scope: ["contract_shape"],
77
- operational_readiness: "reference"
78
- });
79
- assert.strictEqual(imported.integration_id, "partner.verifier.memory_canary", "proof imported integration id mismatch");
80
- assert.strictEqual(imported.registration.registration_state, "local_only", "proof imported integration registration state mismatch");
81
-
82
- const snapshot = root.exportIntegrationRegistrySnapshot({
83
- registration_state: "staging_registered"
84
- });
85
- assert.strictEqual(snapshot.integration_count >= 1, true, "proof integration snapshot count mismatch");
86
- assert.strictEqual(root.validateIntegrationRegistrySnapshot(snapshot).ok, true, "proof integration snapshot validation mismatch");
87
-
88
- const builtinPromotion = root.summarizeIntegrationPromotionReadiness("builtin.verifier.registry_profile");
89
- assert.strictEqual(builtinPromotion.ok, true, "proof builtin promotion readiness mismatch");
90
- assert.strictEqual(builtinPromotion.promotion_readiness.default_eligible, true, "proof builtin default eligibility mismatch");
91
- assert.strictEqual(builtinPromotion.promotion_readiness.production_default_ready, true, "proof builtin production-default readiness mismatch");
92
-
93
- const stagedPromotion = root.summarizeIntegrationPromotionReadiness("partner.verifier.lattice_notary");
94
- assert.strictEqual(stagedPromotion.ok, true, "proof staged promotion readiness mismatch");
95
- assert.strictEqual(stagedPromotion.promotion_readiness.review_ready, true, "proof staged review-ready mismatch");
96
- assert.strictEqual(stagedPromotion.promotion_readiness.default_eligible, false, "proof staged default eligibility mismatch");
97
- assert.strictEqual(stagedPromotion.promotion_readiness.production_default_ready, false, "proof staged production-default readiness mismatch");
98
- assert.ok(stagedPromotion.promotion_readiness.blockers.includes("not_certified"), "proof staged certification blocker missing");
99
-
100
- const builtinPromotionWorkflow = root.summarizeIntegrationPromotionWorkflow("builtin.verifier.registry_profile");
101
- assert.strictEqual(builtinPromotionWorkflow.ok, true, "proof builtin promotion workflow mismatch");
102
- assert.strictEqual(
103
- builtinPromotionWorkflow.next_transition.action,
104
- "maintain_production_default",
105
- "proof builtin promotion workflow next-transition mismatch"
106
- );
107
- assert.strictEqual(
108
- builtinPromotionWorkflow.promotion_recommendation.recommendation,
109
- "eligible_for_production_default",
110
- "proof builtin promotion workflow recommendation mismatch"
111
- );
112
-
113
- const stagedPromotionWorkflow = root.summarizeIntegrationPromotionWorkflow("partner.verifier.lattice_notary");
114
- assert.strictEqual(stagedPromotionWorkflow.ok, true, "proof staged promotion workflow mismatch");
115
- assert.strictEqual(
116
- stagedPromotionWorkflow.next_transition.action,
117
- "complete_certification",
118
- "proof staged promotion workflow next-transition mismatch"
119
- );
120
- assert.strictEqual(
121
- stagedPromotionWorkflow.next_transition.later_actions.includes("promote_maturity"),
122
- true,
123
- "proof staged promotion workflow later-actions mismatch"
124
- );
125
- assert.strictEqual(
126
- stagedPromotionWorkflow.promotion_recommendation.recommendation,
127
- "keep_staged_until_requirements_clear",
128
- "proof staged promotion workflow recommendation mismatch"
129
- );
130
- assert.strictEqual(
131
- stagedPromotionWorkflow.certification_gaps.missing_requirements.includes("certification_state"),
132
- true,
133
- "proof staged promotion workflow certification gap mismatch"
134
- );
135
- assert.strictEqual(
136
- stagedPromotionWorkflow.blocker_categories.some((entry) => entry.category === "certification"),
137
- true,
138
- "proof staged promotion workflow blocker-category mismatch"
139
- );
140
-
141
- const promotionWorkflowList = root.summarizeIntegrationPromotionWorkflowList({
142
- source: "third_party_example",
143
- registration_state: "staging_registered",
144
- bundled: "false"
145
- });
146
- assert.strictEqual(promotionWorkflowList.ok, true, "proof promotion workflow list mismatch");
147
- assert.strictEqual(promotionWorkflowList.integration_count >= 1, true, "proof promotion workflow list breadth mismatch");
148
- assert.strictEqual(
149
- promotionWorkflowList.next_actions.some((entry) => entry.action === "complete_certification"),
150
- true,
151
- "proof promotion workflow list next-action mismatch"
152
- );
153
- assert.strictEqual(
154
- promotionWorkflowList.recommendations.some((entry) => entry.recommendation === "keep_staged_until_requirements_clear"),
155
- true,
156
- "proof promotion workflow list recommendation mismatch"
157
- );
158
- assert.strictEqual(
159
- promotionWorkflowList.blocker_categories.some((entry) => entry.category === "certification"),
160
- true,
161
- "proof promotion workflow list blocker-category mismatch"
162
- );
163
-
164
- console.log("xoonya verify:integrations passed");
165
- }
166
-
167
- main().catch((error) => {
168
- console.error(error);
169
- process.exit(1);
170
- });
1
+ "use strict";
2
+
3
+ const assert = require("assert");
4
+ const stagedPartnerVerifierRegistrationRecord = require("../integrations/examples/example-third-party-verifier-registration.record.json");
5
+ const root = require("../index.js");
6
+
7
+ async function main() {
8
+ const integrations = root.listIntegrations();
9
+ assert.ok(Array.isArray(integrations), "proof integrations list missing");
10
+ assert.ok(integrations.length >= 4, "proof integration breadth missing");
11
+ assert.ok(integrations.some((integration) => integration.integration_id === "builtin.identity.legacy_material"), "legacy identity integration missing");
12
+ assert.ok(integrations.some((integration) => integration.integration_id === "builtin.verifier.registry_profile"), "registry verifier integration missing");
13
+ assert.ok(integrations.some((integration) => integration.integration_id === stagedPartnerVerifierRegistrationRecord.integration_id), "staged proof verifier integration missing");
14
+ assert.ok(integrations.some((integration) => integration.certification_state === "certified"), "proof integration certification metadata missing");
15
+
16
+ const summary = root.summarizeIntegrations();
17
+ assert.strictEqual(summary.ok, true, "proof integration summary ok mismatch");
18
+ assert.ok(summary.integration_count >= integrations.length, "proof integration count mismatch");
19
+ assert.strictEqual(summary.certified_integration_count >= 5, true, "proof integration certified count mismatch");
20
+ assert.strictEqual(summary.production_default_count >= 5, true, "proof integration production-default count mismatch");
21
+ assert.strictEqual(summary.staged_registration_count >= 1, true, "proof integration staged registration count mismatch");
22
+
23
+ const detail = root.getIntegration("builtin.verifier.economic_profile");
24
+ assert.ok(detail, "proof integration detail missing");
25
+ assert.strictEqual(detail.integration_class, "verification_helper_adapter", "proof integration class mismatch");
26
+ assert.strictEqual(detail.integration_maturity, "production_default", "proof integration maturity mismatch");
27
+
28
+ const bundledFiltered = root.listIntegrations({
29
+ source: "builtin",
30
+ certification_state: "certified",
31
+ integration_maturity: "production_default",
32
+ bundled: "true"
33
+ });
34
+ assert.ok(bundledFiltered.length >= 5, "proof builtin integration filtering mismatch");
35
+
36
+ const stagedFiltered = root.listIntegrations({
37
+ source: "third_party_example",
38
+ registration_state: "staging_registered",
39
+ proof_scope: "profile_verification",
40
+ bundled: "false"
41
+ });
42
+ assert.strictEqual(stagedFiltered.length, 1, "proof staged integration filtering mismatch");
43
+ assert.strictEqual(stagedFiltered[0].registration.requires_explicit_selection, true, "proof staged integration explicit-selection mismatch");
44
+
45
+ const validation = root.validateIntegrationRegistration({
46
+ integration_id: stagedPartnerVerifierRegistrationRecord.integration_id,
47
+ integration_class: stagedPartnerVerifierRegistrationRecord.integration_class,
48
+ proof_scope: stagedPartnerVerifierRegistrationRecord.proof_scope
49
+ }, stagedPartnerVerifierRegistrationRecord);
50
+ assert.strictEqual(validation.ok, true, "proof integration registration validation failed");
51
+
52
+ const imported = root.importRegisteredIntegration({
53
+ integration_id: "partner.verifier.memory_canary",
54
+ integration_class: "verification_helper_adapter",
55
+ display_name: "Memory Canary Verifier",
56
+ description: "Imported proof-side verifier used to validate normalization.",
57
+ proof_scope: "profile_verification",
58
+ capabilities: ["memory_canary.verify"],
59
+ public_surfaces: ["sdk"],
60
+ required_inputs: ["profile"],
61
+ emitted_artifacts: [],
62
+ verification_targets: ["memory_canary_profile"]
63
+ }, {
64
+ integration_id: "partner.verifier.memory_canary",
65
+ integration_class: "verification_helper_adapter",
66
+ proof_scope: "profile_verification",
67
+ registration_state: "local_only",
68
+ integration_maturity: "reference_example",
69
+ certification_state: "reference_example",
70
+ bundled: false,
71
+ default_selection_enabled: false,
72
+ requires_explicit_selection: true,
73
+ registered_at: "2026-03-20T00:00:00Z"
74
+ }, {
75
+ source: "verification_import_test",
76
+ certification_scope: ["contract_shape"],
77
+ operational_readiness: "reference"
78
+ });
79
+ assert.strictEqual(imported.integration_id, "partner.verifier.memory_canary", "proof imported integration id mismatch");
80
+ assert.strictEqual(imported.registration.registration_state, "local_only", "proof imported integration registration state mismatch");
81
+
82
+ const snapshot = root.exportIntegrationRegistrySnapshot({
83
+ registration_state: "staging_registered"
84
+ });
85
+ assert.strictEqual(snapshot.integration_count >= 1, true, "proof integration snapshot count mismatch");
86
+ assert.strictEqual(root.validateIntegrationRegistrySnapshot(snapshot).ok, true, "proof integration snapshot validation mismatch");
87
+
88
+ const builtinPromotion = root.summarizeIntegrationPromotionReadiness("builtin.verifier.registry_profile");
89
+ assert.strictEqual(builtinPromotion.ok, true, "proof builtin promotion readiness mismatch");
90
+ assert.strictEqual(builtinPromotion.promotion_readiness.default_eligible, true, "proof builtin default eligibility mismatch");
91
+ assert.strictEqual(builtinPromotion.promotion_readiness.production_default_ready, true, "proof builtin production-default readiness mismatch");
92
+
93
+ const stagedPromotion = root.summarizeIntegrationPromotionReadiness("partner.verifier.lattice_notary");
94
+ assert.strictEqual(stagedPromotion.ok, true, "proof staged promotion readiness mismatch");
95
+ assert.strictEqual(stagedPromotion.promotion_readiness.review_ready, true, "proof staged review-ready mismatch");
96
+ assert.strictEqual(stagedPromotion.promotion_readiness.default_eligible, false, "proof staged default eligibility mismatch");
97
+ assert.strictEqual(stagedPromotion.promotion_readiness.production_default_ready, false, "proof staged production-default readiness mismatch");
98
+ assert.ok(stagedPromotion.promotion_readiness.blockers.includes("not_certified"), "proof staged certification blocker missing");
99
+
100
+ const builtinPromotionWorkflow = root.summarizeIntegrationPromotionWorkflow("builtin.verifier.registry_profile");
101
+ assert.strictEqual(builtinPromotionWorkflow.ok, true, "proof builtin promotion workflow mismatch");
102
+ assert.strictEqual(
103
+ builtinPromotionWorkflow.next_transition.action,
104
+ "maintain_production_default",
105
+ "proof builtin promotion workflow next-transition mismatch"
106
+ );
107
+ assert.strictEqual(
108
+ builtinPromotionWorkflow.promotion_recommendation.recommendation,
109
+ "eligible_for_production_default",
110
+ "proof builtin promotion workflow recommendation mismatch"
111
+ );
112
+
113
+ const stagedPromotionWorkflow = root.summarizeIntegrationPromotionWorkflow("partner.verifier.lattice_notary");
114
+ assert.strictEqual(stagedPromotionWorkflow.ok, true, "proof staged promotion workflow mismatch");
115
+ assert.strictEqual(
116
+ stagedPromotionWorkflow.next_transition.action,
117
+ "complete_certification",
118
+ "proof staged promotion workflow next-transition mismatch"
119
+ );
120
+ assert.strictEqual(
121
+ stagedPromotionWorkflow.next_transition.later_actions.includes("promote_maturity"),
122
+ true,
123
+ "proof staged promotion workflow later-actions mismatch"
124
+ );
125
+ assert.strictEqual(
126
+ stagedPromotionWorkflow.promotion_recommendation.recommendation,
127
+ "keep_staged_until_requirements_clear",
128
+ "proof staged promotion workflow recommendation mismatch"
129
+ );
130
+ assert.strictEqual(
131
+ stagedPromotionWorkflow.certification_gaps.missing_requirements.includes("certification_state"),
132
+ true,
133
+ "proof staged promotion workflow certification gap mismatch"
134
+ );
135
+ assert.strictEqual(
136
+ stagedPromotionWorkflow.blocker_categories.some((entry) => entry.category === "certification"),
137
+ true,
138
+ "proof staged promotion workflow blocker-category mismatch"
139
+ );
140
+
141
+ const promotionWorkflowList = root.summarizeIntegrationPromotionWorkflowList({
142
+ source: "third_party_example",
143
+ registration_state: "staging_registered",
144
+ bundled: "false"
145
+ });
146
+ assert.strictEqual(promotionWorkflowList.ok, true, "proof promotion workflow list mismatch");
147
+ assert.strictEqual(promotionWorkflowList.integration_count >= 1, true, "proof promotion workflow list breadth mismatch");
148
+ assert.strictEqual(
149
+ promotionWorkflowList.next_actions.some((entry) => entry.action === "complete_certification"),
150
+ true,
151
+ "proof promotion workflow list next-action mismatch"
152
+ );
153
+ assert.strictEqual(
154
+ promotionWorkflowList.recommendations.some((entry) => entry.recommendation === "keep_staged_until_requirements_clear"),
155
+ true,
156
+ "proof promotion workflow list recommendation mismatch"
157
+ );
158
+ assert.strictEqual(
159
+ promotionWorkflowList.blocker_categories.some((entry) => entry.category === "certification"),
160
+ true,
161
+ "proof promotion workflow list blocker-category mismatch"
162
+ );
163
+
164
+ console.log("xoonya verify:integrations passed");
165
+ }
166
+
167
+ main().catch((error) => {
168
+ console.error(error);
169
+ process.exit(1);
170
+ });
@@ -1,114 +1,114 @@
1
- "use strict";
2
-
3
- const assert = require("assert");
4
- const crypto = require("crypto");
5
- const sdk = require("..");
6
-
7
- function runNativeHybridVerification() {
8
- const readiness = sdk.summarizexoonyaNativeHybridReadinessPack();
9
- assert.strictEqual(readiness.status, "implemented", "hybrid readiness must be implemented");
10
- assert.strictEqual(readiness.implemented_hybrid_suite_count >= 1, true, "hybrid readiness must expose implemented suites");
11
- assert.strictEqual(
12
- readiness.current_decision.includes("runtime_supported"),
13
- true,
14
- "hybrid readiness must describe runtime-supported suites"
15
- );
16
-
17
- const event = sdk.canonicalizeEvent({
18
- version: "canonical-event-bundle/v1",
19
- domain_id: "hybrid.live",
20
- sequence: "1",
21
- actor_id: "agent-hybrid",
22
- adapter_source: "verify_native_hybrid_design_gate",
23
- event_type: "native.hybrid.verify",
24
- event_hash: "89".repeat(32)
25
- });
26
-
27
- const classical = crypto.generateKeyPairSync("ed25519");
28
- const pq = crypto.generateKeyPairSync("ml-dsa-65");
29
- const receipt = sdk.emitReceipt(event, {
30
- agent_identity: "agent-hybrid-signing",
31
- algorithm: "xoonya-native-hybrid-v1",
32
- identity_ref: "did:xoonya:agent-hybrid-signing",
33
- classical_signature_suite: "ed25519",
34
- pq_signature_suite: "ml-dsa-65",
35
- classical_public_key_pem: classical.publicKey.export({ type: "spki", format: "pem" }),
36
- classical_private_key_pem: classical.privateKey.export({ type: "pkcs8", format: "pem" }),
37
- pq_public_key_pem: pq.publicKey.export({ type: "spki", format: "pem" }),
38
- pq_private_key_pem: pq.privateKey.export({ type: "pkcs8", format: "pem" })
39
- });
40
-
41
- const verification = sdk.verifyProofBundle(sdk.buildProofBundle({
42
- ceb: event,
43
- receipt
44
- }));
45
- assert.strictEqual(verification.valid, true, "hybrid method must verify");
46
- assert.strictEqual(
47
- verification.verification_state,
48
- "verified_native_hybrid_signature",
49
- "hybrid method verification state mismatch"
50
- );
51
-
52
- const downgradeEvent = sdk.canonicalizeEvent({
53
- version: "canonical-event-bundle/v1",
54
- domain_id: "hybrid.downgrade",
55
- sequence: "1",
56
- actor_id: "agent-hybrid",
57
- adapter_source: "verify_native_hybrid_design_gate",
58
- event_type: "native.hybrid.downgrade",
59
- event_hash: "90".repeat(32)
60
- });
61
- const detachedReceipt = sdk.emitReceipt(downgradeEvent, {
62
- agent_identity: "agent-hybrid-signing",
63
- algorithm: "detached-assertion-v1",
64
- signature: receipt.signature
65
- });
66
- const downgradeVerification = sdk.verifyProofBundle(sdk.buildProofBundle({
67
- ceb: downgradeEvent,
68
- receipt: detachedReceipt
69
- }));
70
- assert.strictEqual(downgradeVerification.valid, false, "hybrid-looking signature must not verify as detached");
71
- assert.strictEqual(
72
- downgradeVerification.reason,
73
- "signature_method_mismatch",
74
- "hybrid-looking external signature must fail as method mismatch"
75
- );
76
-
77
- return {
78
- ok: true,
79
- product: "xoonya",
80
- category: "xoonya-native-hybrid-verification",
81
- method: "xoonya-native-hybrid-v1",
82
- readiness_status: readiness.status,
83
- implemented_hybrid_suites: readiness.implemented_hybrid_suites,
84
- verification_state: verification.verification_state,
85
- downgrade_reject_reason: downgradeVerification.reason,
86
- boundary: "registered_runtime_supported_vector_covered_hybrid_suites_may_be_claimed"
87
- };
88
- }
89
-
90
- function main() {
91
- const json = process.argv.includes("--json");
92
- const summary = runNativeHybridVerification();
93
- if (json) {
94
- process.stdout.write(`${JSON.stringify(summary, null, 2)}\n`);
95
- return;
96
- }
97
- process.stdout.write(
98
- [
99
- "xoonya verify:native-hybrid-gate passed",
100
- `method: ${summary.method}`,
101
- `readiness: ${summary.readiness_status}`,
102
- `verification state: ${summary.verification_state}`,
103
- `downgrade reject: ${summary.downgrade_reject_reason}`
104
- ].join("\n") + "\n"
105
- );
106
- }
107
-
108
- if (require.main === module) {
109
- main();
110
- }
111
-
112
- module.exports = {
113
- runNativeHybridVerification
114
- };
1
+ "use strict";
2
+
3
+ const assert = require("assert");
4
+ const crypto = require("crypto");
5
+ const sdk = require("..");
6
+
7
+ function runNativeHybridVerification() {
8
+ const readiness = sdk.summarizexoonyaNativeHybridReadinessPack();
9
+ assert.strictEqual(readiness.status, "implemented", "hybrid readiness must be implemented");
10
+ assert.strictEqual(readiness.implemented_hybrid_suite_count >= 1, true, "hybrid readiness must expose implemented suites");
11
+ assert.strictEqual(
12
+ readiness.current_decision.includes("runtime_supported"),
13
+ true,
14
+ "hybrid readiness must describe runtime-supported suites"
15
+ );
16
+
17
+ const event = sdk.canonicalizeEvent({
18
+ version: "canonical-event-bundle/v1",
19
+ domain_id: "hybrid.live",
20
+ sequence: "1",
21
+ actor_id: "agent-hybrid",
22
+ adapter_source: "verify_native_hybrid_design_gate",
23
+ event_type: "native.hybrid.verify",
24
+ event_hash: "89".repeat(32)
25
+ });
26
+
27
+ const classical = crypto.generateKeyPairSync("ed25519");
28
+ const pq = crypto.generateKeyPairSync("ml-dsa-65");
29
+ const receipt = sdk.emitReceipt(event, {
30
+ agent_identity: "agent-hybrid-signing",
31
+ algorithm: "xoonya-native-hybrid-v1",
32
+ identity_ref: "did:xoonya:agent-hybrid-signing",
33
+ classical_signature_suite: "ed25519",
34
+ pq_signature_suite: "ml-dsa-65",
35
+ classical_public_key_pem: classical.publicKey.export({ type: "spki", format: "pem" }),
36
+ classical_private_key_pem: classical.privateKey.export({ type: "pkcs8", format: "pem" }),
37
+ pq_public_key_pem: pq.publicKey.export({ type: "spki", format: "pem" }),
38
+ pq_private_key_pem: pq.privateKey.export({ type: "pkcs8", format: "pem" })
39
+ });
40
+
41
+ const verification = sdk.verifyProofBundle(sdk.buildProofBundle({
42
+ ceb: event,
43
+ receipt
44
+ }));
45
+ assert.strictEqual(verification.valid, true, "hybrid method must verify");
46
+ assert.strictEqual(
47
+ verification.verification_state,
48
+ "verified_native_hybrid_signature",
49
+ "hybrid method verification state mismatch"
50
+ );
51
+
52
+ const downgradeEvent = sdk.canonicalizeEvent({
53
+ version: "canonical-event-bundle/v1",
54
+ domain_id: "hybrid.downgrade",
55
+ sequence: "1",
56
+ actor_id: "agent-hybrid",
57
+ adapter_source: "verify_native_hybrid_design_gate",
58
+ event_type: "native.hybrid.downgrade",
59
+ event_hash: "90".repeat(32)
60
+ });
61
+ const detachedReceipt = sdk.emitReceipt(downgradeEvent, {
62
+ agent_identity: "agent-hybrid-signing",
63
+ algorithm: "detached-assertion-v1",
64
+ signature: receipt.signature
65
+ });
66
+ const downgradeVerification = sdk.verifyProofBundle(sdk.buildProofBundle({
67
+ ceb: downgradeEvent,
68
+ receipt: detachedReceipt
69
+ }));
70
+ assert.strictEqual(downgradeVerification.valid, false, "hybrid-looking signature must not verify as detached");
71
+ assert.strictEqual(
72
+ downgradeVerification.reason,
73
+ "signature_method_mismatch",
74
+ "hybrid-looking external signature must fail as method mismatch"
75
+ );
76
+
77
+ return {
78
+ ok: true,
79
+ product: "xoonya",
80
+ category: "xoonya-native-hybrid-verification",
81
+ method: "xoonya-native-hybrid-v1",
82
+ readiness_status: readiness.status,
83
+ implemented_hybrid_suites: readiness.implemented_hybrid_suites,
84
+ verification_state: verification.verification_state,
85
+ downgrade_reject_reason: downgradeVerification.reason,
86
+ boundary: "registered_runtime_supported_vector_covered_hybrid_suites_may_be_claimed"
87
+ };
88
+ }
89
+
90
+ function main() {
91
+ const json = process.argv.includes("--json");
92
+ const summary = runNativeHybridVerification();
93
+ if (json) {
94
+ process.stdout.write(`${JSON.stringify(summary, null, 2)}\n`);
95
+ return;
96
+ }
97
+ process.stdout.write(
98
+ [
99
+ "xoonya verify:native-hybrid-gate passed",
100
+ `method: ${summary.method}`,
101
+ `readiness: ${summary.readiness_status}`,
102
+ `verification state: ${summary.verification_state}`,
103
+ `downgrade reject: ${summary.downgrade_reject_reason}`
104
+ ].join("\n") + "\n"
105
+ );
106
+ }
107
+
108
+ if (require.main === module) {
109
+ main();
110
+ }
111
+
112
+ module.exports = {
113
+ runNativeHybridVerification
114
+ };