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.
- package/.env.example +2 -2
- package/CARRIED_HANDOFF_DEMO.md +60 -60
- package/COMPATIBILITY_NOTE.md +27 -27
- package/CROSS_RUNTIME_POSTURE.md +77 -77
- package/EXAMPLE_PATHS.md +53 -53
- package/FINAL_CONTRACT.md +445 -445
- package/LICENSE +201 -201
- package/NOTICE +3 -3
- package/OPERATIONS_RUNBOOK.md +50 -0
- package/OPERATOR_START_HERE.md +67 -0
- package/PARTNER_READY_PATH.md +67 -67
- package/PROGRAM_COMPLETE_RELEASE.md +52 -0
- package/PROGRAM_STATUS.md +57 -0
- package/PUBLIC_DEMO_SCRIPT.md +79 -79
- package/PUBLISH_PLAN.md +25 -0
- package/README.md +807 -732
- package/RELEASE_CHECKLIST.md +16 -0
- package/RELEASE_NOTES.md +15 -15
- package/SERVICE_CONTRACT.md +207 -195
- package/START_HERE.md +159 -150
- package/TERMINOLOGY.md +55 -55
- package/WHY_XYTARA_XOONYA.md +43 -43
- package/XNYA_CONFORMANCE_MARK.md +78 -78
- package/XNYA_REFERENCE_IMPLEMENTATIONS.md +157 -157
- package/XOONYA_DEFAULT_PATH_MODEL.md +63 -63
- package/XOONYA_FOLLOWTHROUGH_TRUTH_MODEL.md +63 -63
- package/XOONYA_NATIVE_ATOM_SPEC.md +184 -184
- package/XOONYA_NATIVE_PROOF_FORMAT.md +527 -527
- package/XOONYA_NATIVE_STANDARD_GOVERNANCE.md +119 -119
- package/XOONYA_PROOF_TRUTH_MODEL.md +58 -58
- package/bin/xoonya-first-run.js +184 -184
- package/bin/xoonya-release.js +1367 -1367
- package/bin/xoonya-review.js +70 -70
- package/bin/xoonya.js +82 -82
- package/examples/integration_boundary_walkthrough.js +37 -37
- package/examples/package_quickstart.js +1007 -1007
- package/examples/partner_proof_walkthrough.js +68 -68
- package/examples/proof_review_walkthrough.js +66 -66
- package/examples/review_carried_handoff.js +72 -72
- package/index.js +31 -22
- package/integrations/PROOF_INTEGRATION_PROCESS.md +45 -45
- package/integrations/examples/example-third-party-verifier-registration.record.json +22 -22
- package/integrations/registration-record.schema.json +99 -99
- package/integrations/registry-snapshot.schema.json +36 -36
- package/integrations/registry.js +636 -636
- package/integrations/views.js +36 -36
- package/lib/adapter_certification_contract.js +90 -0
- package/lib/announcement_pack.js +61 -61
- package/lib/artifact_distribution_lane_contract.js +54 -54
- package/lib/asyncapi_contract.js +135 -135
- package/lib/auth_interop_contract.js +69 -69
- package/lib/authority_binding_lifecycle_contract.js +182 -0
- package/lib/bridge_intelligence.js +102 -102
- package/lib/cloudevents_contract.js +79 -79
- package/lib/crypto_agility_matrix.js +125 -0
- package/lib/default_path_contract.js +380 -380
- package/lib/ecosystem_entry.js +64 -64
- package/lib/erc8004_proof_lane_contract.js +64 -64
- package/lib/event_system_lane_contract.js +76 -76
- package/lib/external_proof_import_lane_contract.js +87 -87
- package/lib/feature_control_lane_contract.js +54 -54
- package/lib/followthrough_truth_contract.js +214 -214
- package/lib/framework_lane_contract.js +76 -76
- package/lib/governance_disputes_summary.js +36 -36
- package/lib/governance_intelligence.js +108 -108
- package/lib/identity_interop_contract.js +83 -83
- package/lib/integration_matrix_contract.js +81 -81
- package/lib/launch_narrative.js +53 -53
- package/lib/machine_identity_registry_contract.js +199 -0
- package/lib/major_rails_proof_lane_contract.js +87 -87
- package/lib/offline_verifiability_recovery_contract.js +155 -0
- package/lib/openapi_contract.js +227 -227
- package/lib/operational_receipt_contract.js +165 -0
- package/lib/outreach_proof.js +71 -71
- package/lib/phase_10_closeout_pack.js +45 -45
- package/lib/phase_10_completion_pack.js +76 -76
- package/lib/phase_10_decision_record_pack.js +54 -54
- package/lib/phase_10_decision_resolution_pack.js +53 -53
- package/lib/phase_10_demand_signal_adapters_proof_pack.js +74 -74
- package/lib/phase_10_ecosystem_backlog_triage_proof_pack.js +74 -74
- package/lib/phase_10_freeze_baseline_pack.js +67 -67
- package/lib/phase_10_freeze_review_pack.js +64 -64
- package/lib/phase_10_gate_pack.js +57 -57
- package/lib/phase_10_long_tail_continuity_pack.js +80 -80
- package/lib/phase_10_long_tail_ecosystem_pack.js +68 -68
- package/lib/phase_10_niche_extension_registry_proof_pack.js +74 -74
- package/lib/phase_1_claude_mcp_pack.js +60 -60
- package/lib/phase_1_claude_mcp_proof_pack.js +57 -57
- package/lib/phase_1_ecosystem_pack.js +51 -51
- package/lib/phase_1_openai_codex_pack.js +60 -60
- package/lib/phase_1_openai_codex_proof_pack.js +57 -57
- package/lib/phase_2_base_proof_pack.js +71 -71
- package/lib/phase_2_base_usdc_proof_pack.js +72 -72
- package/lib/phase_2_closeout_pack.js +65 -65
- package/lib/phase_2_completion_pack.js +113 -113
- package/lib/phase_2_decision_record_pack.js +66 -66
- package/lib/phase_2_decision_resolution_pack.js +69 -69
- package/lib/phase_2_eth_proof_pack.js +70 -70
- package/lib/phase_2_evm_base_proof_pack.js +73 -73
- package/lib/phase_2_evm_proof_pack.js +71 -71
- package/lib/phase_2_flip_preview_pack.js +60 -60
- package/lib/phase_2_freeze_review_pack.js +99 -99
- package/lib/phase_2_gate_pack.js +77 -77
- package/lib/phase_2_payment_rails_pack.js +71 -71
- package/lib/phase_2_usdc_proof_pack.js +71 -71
- package/lib/phase_3_brc_proof_pack.js +81 -81
- package/lib/phase_3_bsv_teranode_proof_pack.js +81 -81
- package/lib/phase_3_closeout_pack.js +62 -62
- package/lib/phase_3_completion_pack.js +92 -92
- package/lib/phase_3_decision_record_pack.js +64 -64
- package/lib/phase_3_decision_resolution_pack.js +69 -69
- package/lib/phase_3_freeze_baseline_pack.js +67 -67
- package/lib/phase_3_freeze_review_pack.js +80 -80
- package/lib/phase_3_gate_pack.js +76 -76
- package/lib/phase_3_metanet_proof_pack.js +81 -81
- package/lib/phase_3_native_bsv_pack.js +89 -89
- package/lib/phase_3_native_continuity_pack.js +82 -82
- package/lib/phase_4_attestation_proof_pack.js +75 -75
- package/lib/phase_4_closeout_pack.js +45 -45
- package/lib/phase_4_completion_pack.js +82 -82
- package/lib/phase_4_decision_record_pack.js +54 -54
- package/lib/phase_4_decision_resolution_pack.js +45 -45
- package/lib/phase_4_erc8004_proof_pack.js +76 -76
- package/lib/phase_4_freeze_baseline_pack.js +67 -67
- package/lib/phase_4_freeze_review_pack.js +68 -68
- package/lib/phase_4_gate_pack.js +58 -58
- package/lib/phase_4_identity_registry_proof_pack.js +75 -75
- package/lib/phase_4_identity_trust_pack.js +73 -73
- package/lib/phase_4_trust_continuity_pack.js +86 -86
- package/lib/phase_5_antelope_proof_pack.js +76 -76
- package/lib/phase_5_closeout_pack.js +44 -44
- package/lib/phase_5_completion_pack.js +82 -82
- package/lib/phase_5_decision_record_pack.js +54 -54
- package/lib/phase_5_decision_resolution_pack.js +45 -45
- package/lib/phase_5_freeze_baseline_pack.js +67 -67
- package/lib/phase_5_freeze_review_pack.js +68 -68
- package/lib/phase_5_gate_pack.js +58 -58
- package/lib/phase_5_major_rails_continuity_pack.js +86 -86
- package/lib/phase_5_major_rails_pack.js +74 -74
- package/lib/phase_5_proton_xpr_proof_pack.js +76 -76
- package/lib/phase_5_solana_proof_pack.js +76 -76
- package/lib/phase_6_autogen_proof_pack.js +74 -74
- package/lib/phase_6_closeout_pack.js +46 -46
- package/lib/phase_6_completion_pack.js +77 -77
- package/lib/phase_6_decision_record_pack.js +54 -54
- package/lib/phase_6_decision_resolution_pack.js +53 -53
- package/lib/phase_6_framework_continuity_pack.js +81 -81
- package/lib/phase_6_framework_runtime_pack.js +68 -68
- package/lib/phase_6_freeze_baseline_pack.js +68 -68
- package/lib/phase_6_freeze_review_pack.js +65 -65
- package/lib/phase_6_gate_pack.js +59 -59
- package/lib/phase_6_langchain_proof_pack.js +74 -74
- package/lib/phase_6_langgraph_proof_pack.js +74 -74
- package/lib/phase_6_semantic_kernel_proof_pack.js +74 -74
- package/lib/phase_7_closeout_pack.js +45 -45
- package/lib/phase_7_completion_pack.js +85 -85
- package/lib/phase_7_decision_record_pack.js +53 -53
- package/lib/phase_7_decision_resolution_pack.js +53 -53
- package/lib/phase_7_event_system_continuity_pack.js +89 -89
- package/lib/phase_7_event_system_pack.js +76 -76
- package/lib/phase_7_freeze_baseline_pack.js +74 -74
- package/lib/phase_7_freeze_review_pack.js +65 -65
- package/lib/phase_7_gate_pack.js +58 -58
- package/lib/phase_7_kafka_proof_pack.js +76 -76
- package/lib/phase_7_mqtt_proof_pack.js +76 -76
- package/lib/phase_7_nats_proof_pack.js +76 -76
- package/lib/phase_7_webhook_event_bus_proof_pack.js +76 -76
- package/lib/phase_8_closeout_pack.js +46 -46
- package/lib/phase_8_completion_pack.js +82 -82
- package/lib/phase_8_decision_record_pack.js +54 -54
- package/lib/phase_8_decision_resolution_pack.js +53 -53
- package/lib/phase_8_external_receipt_import_proof_pack.js +74 -74
- package/lib/phase_8_external_result_import_proof_pack.js +74 -74
- package/lib/phase_8_freeze_baseline_pack.js +71 -71
- package/lib/phase_8_freeze_review_pack.js +64 -64
- package/lib/phase_8_gate_pack.js +58 -58
- package/lib/phase_8_proof_bridge_continuity_pack.js +86 -86
- package/lib/phase_8_proof_bridges_pack.js +72 -72
- package/lib/phase_8_proof_bundle_normalization_proof_pack.js +74 -74
- package/lib/phase_9_closeout_pack.js +46 -46
- package/lib/phase_9_completion_pack.js +82 -82
- package/lib/phase_9_custody_refs_proof_pack.js +74 -74
- package/lib/phase_9_decision_record_pack.js +54 -54
- package/lib/phase_9_decision_resolution_pack.js +53 -53
- package/lib/phase_9_freeze_baseline_pack.js +71 -71
- package/lib/phase_9_freeze_review_pack.js +64 -64
- package/lib/phase_9_gate_pack.js +58 -58
- package/lib/phase_9_operator_accounting_bridges_proof_pack.js +74 -74
- package/lib/phase_9_treasury_connectivity_pack.js +72 -72
- package/lib/phase_9_treasury_continuity_pack.js +86 -86
- package/lib/phase_9_treasury_destinations_proof_pack.js +74 -74
- package/lib/phase_program_pack.js +47 -47
- package/lib/proof_bridge_lane_contract.js +82 -82
- package/lib/proof_truth_contract.js +224 -224
- package/lib/provenance_lane_contract.js +54 -54
- package/lib/provider_lane_contract.js +67 -67
- package/lib/public_surface_policy_contract.js +111 -0
- package/lib/publish_plan.js +51 -51
- package/lib/release_candidate.js +50 -50
- package/lib/release_center.js +1037 -1037
- package/lib/release_history.js +206 -206
- package/lib/release_manifest.js +114 -114
- package/lib/release_pack.js +391 -391
- package/lib/result_package_trust_lane_contract.js +74 -74
- package/lib/review_intelligence.js +100 -100
- package/lib/role_freeze.js +436 -436
- package/lib/shared_signals_lane_contract.js +54 -54
- package/lib/signed_audit_provenance_contract.js +93 -0
- package/lib/telemetry_lane_contract.js +54 -54
- package/lib/treasury_proof_lane_contract.js +83 -83
- package/lib/trust_intelligence.js +106 -106
- package/lib/trust_portability_boundary_contract.js +66 -0
- package/lib/trust_portability_pack.js +224 -224
- package/lib/verification_service_pack.js +149 -149
- package/package.json +97 -95
- package/proof_sdk.js +6265 -6265
- package/reference/python/README.md +35 -35
- package/reference/python/requirements-optional.txt +1 -1
- package/reference/python/verify_vectors.py +223 -223
- package/reference/python/xnya_reference.py +810 -810
- package/reference/rust/Cargo.toml +11 -11
- package/reference/rust/README.md +28 -28
- package/reference/rust/src/lib.rs +87 -87
- package/scripts/registry_cli.js +157 -157
- package/scripts/verify_all.js +603 -603
- package/scripts/verify_control_plane_contracts.js +34 -0
- package/scripts/verify_control_plane_routes.js +70 -0
- package/scripts/verify_examples.js +19 -19
- package/scripts/verify_external_proof_import_gate.js +84 -84
- package/scripts/verify_integrations.js +170 -170
- package/scripts/verify_native_hybrid_design_gate.js +114 -114
- package/scripts/verify_reference_promotion_gate.js +74 -74
- package/scripts/verify_reference_python.js +49 -49
- package/scripts/verify_reference_python_crypto.js +87 -87
- package/scripts/verify_reference_rust_scaffold.js +50 -50
- package/scripts/verify_release_candidate.js +131 -131
- package/scripts/verify_service.js +2940 -2940
- package/scripts/verify_tooling.js +1251 -1251
- package/scripts/verify_trust_portability.js +56 -56
- package/scripts/verify_vectors.js +192 -192
- package/scripts/verify_verification_services.js +56 -56
- package/server.js +4099 -3997
- package/vectors/adversarial-vectors.json +552 -552
- package/vectors/conformance-vectors.json +446 -446
- package/vectors/native-atom-vectors.json +101 -101
- 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
|
+
};
|
package/lib/openapi_contract.js
CHANGED
|
@@ -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
|
+
};
|