xytara 3.1.16 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (390) hide show
  1. package/README.md +120 -92
  2. package/RELEASE_NOTES.md +7 -3
  3. package/START_HERE.md +56 -224
  4. package/bin/xytara.js +21 -8
  5. package/client.js +79 -1
  6. package/lib/{delivery_receipt.js → delivery_receipt_verify.js} +14 -100
  7. package/package.json +25 -35
  8. package/scripts/verify_client.js +418 -0
  9. package/scripts/verify_release_candidate.js +146 -45
  10. package/.env.example +0 -173
  11. package/ADAPTER_START_HERE.md +0 -56
  12. package/BSV_TERANODE_PLATFORM_DISCONTINUITY_RUNBOOK.md +0 -126
  13. package/CARRIED_HANDOFF_DEMO.md +0 -60
  14. package/EXAMPLE_PATHS.md +0 -53
  15. package/FINAL_CONTRACT.md +0 -498
  16. package/PARTNER_READY_PATH.md +0 -71
  17. package/PUBLIC_DEMO_SCRIPT.md +0 -78
  18. package/REAL_PAYMENT_SETUP.md +0 -320
  19. package/SERVICE_CONTRACT.md +0 -419
  20. package/SUPABASE_RUNTIME_STATE_SETUP.md +0 -61
  21. package/TERMINOLOGY.md +0 -50
  22. package/WHY_XYTARA_XOONYA.md +0 -63
  23. package/XT1_EXECUTION_TRUTH_STANDARD.md +0 -78
  24. package/XYTARA_ADAPTER_PROTOCOL_TRUTH_MODEL.md +0 -75
  25. package/XYTARA_AUTONOMOUS_ENTRY_MODEL.md +0 -124
  26. package/XYTARA_DEFAULT_PATH_MODEL.md +0 -84
  27. package/XYTARA_EXECUTION_TRUTH_MODEL.md +0 -171
  28. package/XYTARA_PAYMENT_RAIL_TRUTH_MODEL.md +0 -68
  29. package/adapters/AUTHORING_GUIDE.md +0 -244
  30. package/adapters/ONBOARDING_POSTURE.md +0 -61
  31. package/adapters/THIRD_PARTY_SUBMISSION_PROCESS.md +0 -84
  32. package/adapters/adapter-manifest.schema.json +0 -283
  33. package/adapters/examples/example-execution-adapter.js +0 -61
  34. package/adapters/examples/example-execution-adapter.manifest.json +0 -81
  35. package/adapters/examples/example-settlement-adapter.js +0 -55
  36. package/adapters/examples/example-settlement-adapter.manifest.json +0 -78
  37. package/adapters/examples/example-third-party-acp-registration.submission-bundle.json +0 -124
  38. package/adapters/examples/example-third-party-erc8004-registration.submission-bundle.json +0 -121
  39. package/adapters/examples/example-third-party-identity-registration.certification-pack.json +0 -22
  40. package/adapters/examples/example-third-party-identity-registration.record.json +0 -26
  41. package/adapters/examples/example-third-party-identity-registration.submission-bundle.json +0 -126
  42. package/adapters/examples/example-third-party-langchain-registration.submission-bundle.json +0 -124
  43. package/adapters/examples/example-third-party-mpp-registration.submission-bundle.json +0 -120
  44. package/adapters/examples/example-third-party-registration.certification-pack.json +0 -22
  45. package/adapters/examples/example-third-party-registration.record.json +0 -28
  46. package/adapters/examples/example-third-party-registration.submission-bundle.json +0 -126
  47. package/adapters/examples/example-third-party-settlement-registration.certification-pack.json +0 -22
  48. package/adapters/examples/example-third-party-settlement-registration.record.json +0 -26
  49. package/adapters/examples/example-third-party-settlement-registration.submission-bundle.json +0 -127
  50. package/adapters/examples/langchain-reference-execution-adapter.js +0 -81
  51. package/adapters/examples/langchain-reference-execution-adapter.manifest.json +0 -79
  52. package/adapters/examples/langgraph-reference-execution-adapter.js +0 -81
  53. package/adapters/examples/langgraph-reference-execution-adapter.manifest.json +0 -79
  54. package/adapters/examples/minimal-third-party-execution-adapter.js +0 -61
  55. package/adapters/examples/minimal-third-party-execution-adapter.manifest.json +0 -79
  56. package/adapters/examples/minimal-third-party-execution-registration.record.json +0 -26
  57. package/adapters/examples/minimal-third-party-execution.certification-pack.json +0 -22
  58. package/adapters/examples/minimal-third-party-execution.submission-bundle.json +0 -126
  59. package/adapters/integration-certification-pack.schema.json +0 -82
  60. package/adapters/integration-registration-record.schema.json +0 -114
  61. package/adapters/integration-submission-bundle-set.schema.json +0 -39
  62. package/adapters/integration-submission-bundle.schema.json +0 -34
  63. package/adapters/interfaces.js +0 -56
  64. package/bin/xytara-release.js +0 -1429
  65. package/examples/_demo_env.js +0 -40
  66. package/examples/adapter_review_walkthrough.js +0 -54
  67. package/examples/export_carried_handoff.js +0 -81
  68. package/examples/funded_runtime_walkthrough.js +0 -71
  69. package/examples/partner_launch_walkthrough.js +0 -44
  70. package/examples/quickstart.js +0 -3256
  71. package/fixtures/catalog.js +0 -1156
  72. package/index.js +0 -395
  73. package/integrations/dispatch.js +0 -276
  74. package/integrations/registry-snapshot.schema.json +0 -36
  75. package/integrations/registry.js +0 -2261
  76. package/integrations/views.js +0 -28
  77. package/lib/a2a_lane_contract.js +0 -104
  78. package/lib/a2a_rpc.js +0 -287
  79. package/lib/a2c_lane_contract.js +0 -111
  80. package/lib/account_auth.js +0 -585
  81. package/lib/acp_lane_contract.js +0 -54
  82. package/lib/activity_audit_contract.js +0 -322
  83. package/lib/adapter_certification_contract.js +0 -130
  84. package/lib/adapter_depth_contract.js +0 -218
  85. package/lib/adapter_pack.js +0 -118
  86. package/lib/adapter_partner_pack.js +0 -89
  87. package/lib/adapter_promotion_pack.js +0 -89
  88. package/lib/adapter_protocol_truth_contract.js +0 -229
  89. package/lib/agent_identity.js +0 -162
  90. package/lib/announcement_pack.js +0 -61
  91. package/lib/artifact_distribution_lane_contract.js +0 -54
  92. package/lib/asyncapi_contract.js +0 -150
  93. package/lib/auth_interop_contract.js +0 -80
  94. package/lib/authority_binding_lifecycle_contract.js +0 -182
  95. package/lib/autonomous_entry_contract.js +0 -409
  96. package/lib/bolt_adapter.js +0 -187
  97. package/lib/bolt_lane_contract.js +0 -55
  98. package/lib/bolt_payment_front.js +0 -224
  99. package/lib/business_cockpit.js +0 -378
  100. package/lib/buyer_event_log.js +0 -230
  101. package/lib/buyer_safety_policy.js +0 -132
  102. package/lib/capability_execution_truth.js +0 -276
  103. package/lib/capability_registry.js +0 -633
  104. package/lib/catalog_contract.js +0 -966
  105. package/lib/catalog_family_model.js +0 -193
  106. package/lib/catalog_views.js +0 -55
  107. package/lib/cdp_jwt.js +0 -57
  108. package/lib/checkout_event_security.js +0 -142
  109. package/lib/checkout_processor_adapter.js +0 -217
  110. package/lib/cloudevents_contract.js +0 -80
  111. package/lib/command_flow.js +0 -911
  112. package/lib/commerce_artifacts.js +0 -591
  113. package/lib/commerce_authority.js +0 -449
  114. package/lib/commerce_bridge.js +0 -274
  115. package/lib/commerce_cases.js +0 -399
  116. package/lib/commerce_checkout.js +0 -509
  117. package/lib/commerce_coordination.js +0 -346
  118. package/lib/commerce_economics.js +0 -4017
  119. package/lib/commerce_identity.js +0 -578
  120. package/lib/commerce_quotes.js +0 -266
  121. package/lib/commerce_reports.js +0 -14461
  122. package/lib/commerce_runtime.js +0 -322
  123. package/lib/commerce_shell.js +0 -257
  124. package/lib/crypto_agility_matrix.js +0 -125
  125. package/lib/default_path_contract.js +0 -412
  126. package/lib/delivery_summary_contract.js +0 -95
  127. package/lib/ecosystem_entry.js +0 -64
  128. package/lib/erc8004_lane_contract.js +0 -65
  129. package/lib/event_system_lane_contract.js +0 -75
  130. package/lib/execution_dedupe.js +0 -86
  131. package/lib/execution_truth_contract.js +0 -234
  132. package/lib/external_credit_bridge.js +0 -142
  133. package/lib/external_execution_policy.js +0 -143
  134. package/lib/external_execution_runtime.js +0 -238
  135. package/lib/feature_control_lane_contract.js +0 -54
  136. package/lib/first_run_conversion_contract.js +0 -290
  137. package/lib/framework_lane_contract.js +0 -89
  138. package/lib/framework_provider_promotion.js +0 -235
  139. package/lib/full_catalog_contract.js +0 -525
  140. package/lib/go_live_operator_pack.js +0 -391
  141. package/lib/http_transport.js +0 -99
  142. package/lib/identity_auth.js +0 -175
  143. package/lib/identity_interop_contract.js +0 -82
  144. package/lib/integration_matrix_contract.js +0 -102
  145. package/lib/l402_adapter.js +0 -241
  146. package/lib/l402_lane_contract.js +0 -55
  147. package/lib/l402_payment_front.js +0 -265
  148. package/lib/launch_narrative.js +0 -53
  149. package/lib/lifecycle_continuity_contract.js +0 -115
  150. package/lib/machine_identity_registry_contract.js +0 -199
  151. package/lib/major_rails_lane_contract.js +0 -150
  152. package/lib/market_lane_contract.js +0 -467
  153. package/lib/market_lane_depth_contract.js +0 -182
  154. package/lib/market_lane_promotion_contract.js +0 -210
  155. package/lib/market_lane_trace_contract.js +0 -278
  156. package/lib/mcp_lane_contract.js +0 -137
  157. package/lib/mpp_adapter.js +0 -237
  158. package/lib/network_transport.js +0 -110
  159. package/lib/offline_verifiability_recovery_contract.js +0 -155
  160. package/lib/openapi_contract.js +0 -300
  161. package/lib/operational_receipt_contract.js +0 -165
  162. package/lib/operator_intelligence.js +0 -407
  163. package/lib/outreach_copy_pack.js +0 -51
  164. package/lib/outreach_message_pack.js +0 -71
  165. package/lib/outreach_proof.js +0 -71
  166. package/lib/outreach_target_pack.js +0 -60
  167. package/lib/partner_intelligence.js +0 -105
  168. package/lib/payment_config.js +0 -257
  169. package/lib/payment_front_registry.js +0 -53
  170. package/lib/payment_protocol_contract.js +0 -165
  171. package/lib/payment_rail_truth_contract.js +0 -324
  172. package/lib/payment_verification.js +0 -357
  173. package/lib/phase_10_closeout_pack.js +0 -45
  174. package/lib/phase_10_completion_pack.js +0 -76
  175. package/lib/phase_10_decision_record_pack.js +0 -54
  176. package/lib/phase_10_decision_resolution_pack.js +0 -53
  177. package/lib/phase_10_demand_signal_adapters_runtime_pack.js +0 -74
  178. package/lib/phase_10_ecosystem_backlog_triage_runtime_pack.js +0 -74
  179. package/lib/phase_10_freeze_baseline_pack.js +0 -67
  180. package/lib/phase_10_freeze_review_pack.js +0 -64
  181. package/lib/phase_10_gate_pack.js +0 -57
  182. package/lib/phase_10_long_tail_continuity_pack.js +0 -80
  183. package/lib/phase_10_long_tail_ecosystem_pack.js +0 -66
  184. package/lib/phase_10_niche_extension_registry_runtime_pack.js +0 -74
  185. package/lib/phase_1_claude_mcp_pack.js +0 -60
  186. package/lib/phase_1_claude_mcp_runtime_pack.js +0 -52
  187. package/lib/phase_1_ecosystem_pack.js +0 -67
  188. package/lib/phase_1_openai_codex_pack.js +0 -60
  189. package/lib/phase_1_openai_codex_runtime_pack.js +0 -52
  190. package/lib/phase_2_base_runtime_pack.js +0 -71
  191. package/lib/phase_2_base_usdc_runtime_pack.js +0 -72
  192. package/lib/phase_2_closeout_pack.js +0 -65
  193. package/lib/phase_2_completion_pack.js +0 -113
  194. package/lib/phase_2_decision_record_pack.js +0 -66
  195. package/lib/phase_2_decision_resolution_pack.js +0 -69
  196. package/lib/phase_2_eth_runtime_pack.js +0 -70
  197. package/lib/phase_2_evm_base_runtime_pack.js +0 -73
  198. package/lib/phase_2_evm_runtime_pack.js +0 -71
  199. package/lib/phase_2_flip_preview_pack.js +0 -60
  200. package/lib/phase_2_freeze_review_pack.js +0 -99
  201. package/lib/phase_2_gate_pack.js +0 -77
  202. package/lib/phase_2_payment_rails_pack.js +0 -71
  203. package/lib/phase_2_usdc_runtime_pack.js +0 -71
  204. package/lib/phase_3_brc_runtime_pack.js +0 -81
  205. package/lib/phase_3_bsv_teranode_runtime_pack.js +0 -83
  206. package/lib/phase_3_closeout_pack.js +0 -62
  207. package/lib/phase_3_completion_pack.js +0 -94
  208. package/lib/phase_3_decision_record_pack.js +0 -64
  209. package/lib/phase_3_decision_resolution_pack.js +0 -69
  210. package/lib/phase_3_freeze_baseline_pack.js +0 -67
  211. package/lib/phase_3_freeze_review_pack.js +0 -80
  212. package/lib/phase_3_gate_pack.js +0 -76
  213. package/lib/phase_3_metanet_runtime_pack.js +0 -81
  214. package/lib/phase_3_native_bsv_pack.js +0 -91
  215. package/lib/phase_3_native_continuity_pack.js +0 -82
  216. package/lib/phase_4_attestation_runtime_pack.js +0 -75
  217. package/lib/phase_4_closeout_pack.js +0 -45
  218. package/lib/phase_4_completion_pack.js +0 -94
  219. package/lib/phase_4_decision_record_pack.js +0 -54
  220. package/lib/phase_4_decision_resolution_pack.js +0 -45
  221. package/lib/phase_4_erc8004_runtime_pack.js +0 -76
  222. package/lib/phase_4_freeze_baseline_pack.js +0 -67
  223. package/lib/phase_4_freeze_review_pack.js +0 -68
  224. package/lib/phase_4_gate_pack.js +0 -58
  225. package/lib/phase_4_identity_registry_runtime_pack.js +0 -75
  226. package/lib/phase_4_identity_trust_pack.js +0 -73
  227. package/lib/phase_4_trust_continuity_pack.js +0 -86
  228. package/lib/phase_5_antelope_runtime_pack.js +0 -76
  229. package/lib/phase_5_closeout_pack.js +0 -44
  230. package/lib/phase_5_completion_pack.js +0 -82
  231. package/lib/phase_5_constellation_dag_runtime_pack.js +0 -76
  232. package/lib/phase_5_decision_record_pack.js +0 -54
  233. package/lib/phase_5_decision_resolution_pack.js +0 -45
  234. package/lib/phase_5_digibyte_dgb_runtime_pack.js +0 -76
  235. package/lib/phase_5_freeze_baseline_pack.js +0 -67
  236. package/lib/phase_5_freeze_review_pack.js +0 -68
  237. package/lib/phase_5_gate_pack.js +0 -58
  238. package/lib/phase_5_hedera_hbar_runtime_pack.js +0 -76
  239. package/lib/phase_5_kaspa_kas_runtime_pack.js +0 -76
  240. package/lib/phase_5_major_rails_continuity_pack.js +0 -86
  241. package/lib/phase_5_major_rails_pack.js +0 -110
  242. package/lib/phase_5_metal_runtime_pack.js +0 -76
  243. package/lib/phase_5_polkadot_dot_runtime_pack.js +0 -76
  244. package/lib/phase_5_proton_xpr_runtime_pack.js +0 -76
  245. package/lib/phase_5_solana_runtime_pack.js +0 -76
  246. package/lib/phase_6_autogen_runtime_pack.js +0 -72
  247. package/lib/phase_6_closeout_pack.js +0 -46
  248. package/lib/phase_6_completion_pack.js +0 -77
  249. package/lib/phase_6_decision_record_pack.js +0 -54
  250. package/lib/phase_6_decision_resolution_pack.js +0 -53
  251. package/lib/phase_6_framework_continuity_pack.js +0 -81
  252. package/lib/phase_6_framework_runtime_pack.js +0 -68
  253. package/lib/phase_6_freeze_baseline_pack.js +0 -68
  254. package/lib/phase_6_freeze_review_pack.js +0 -65
  255. package/lib/phase_6_gate_pack.js +0 -59
  256. package/lib/phase_6_langchain_runtime_pack.js +0 -72
  257. package/lib/phase_6_langgraph_runtime_pack.js +0 -72
  258. package/lib/phase_6_semantic_kernel_runtime_pack.js +0 -72
  259. package/lib/phase_7_closeout_pack.js +0 -45
  260. package/lib/phase_7_completion_pack.js +0 -85
  261. package/lib/phase_7_decision_record_pack.js +0 -53
  262. package/lib/phase_7_decision_resolution_pack.js +0 -53
  263. package/lib/phase_7_event_system_continuity_pack.js +0 -89
  264. package/lib/phase_7_event_system_pack.js +0 -76
  265. package/lib/phase_7_freeze_baseline_pack.js +0 -74
  266. package/lib/phase_7_freeze_review_pack.js +0 -65
  267. package/lib/phase_7_gate_pack.js +0 -58
  268. package/lib/phase_7_kafka_runtime_pack.js +0 -74
  269. package/lib/phase_7_mqtt_runtime_pack.js +0 -74
  270. package/lib/phase_7_nats_runtime_pack.js +0 -74
  271. package/lib/phase_7_webhook_event_bus_runtime_pack.js +0 -74
  272. package/lib/phase_8_closeout_pack.js +0 -46
  273. package/lib/phase_8_completion_pack.js +0 -82
  274. package/lib/phase_8_decision_record_pack.js +0 -54
  275. package/lib/phase_8_decision_resolution_pack.js +0 -53
  276. package/lib/phase_8_external_receipt_import_runtime_pack.js +0 -74
  277. package/lib/phase_8_external_result_import_runtime_pack.js +0 -74
  278. package/lib/phase_8_freeze_baseline_pack.js +0 -71
  279. package/lib/phase_8_freeze_review_pack.js +0 -64
  280. package/lib/phase_8_gate_pack.js +0 -58
  281. package/lib/phase_8_proof_bridge_continuity_pack.js +0 -86
  282. package/lib/phase_8_proof_bridges_pack.js +0 -72
  283. package/lib/phase_8_proof_bundle_normalization_runtime_pack.js +0 -74
  284. package/lib/phase_9_closeout_pack.js +0 -46
  285. package/lib/phase_9_completion_pack.js +0 -82
  286. package/lib/phase_9_custody_refs_runtime_pack.js +0 -74
  287. package/lib/phase_9_decision_record_pack.js +0 -54
  288. package/lib/phase_9_decision_resolution_pack.js +0 -53
  289. package/lib/phase_9_freeze_baseline_pack.js +0 -71
  290. package/lib/phase_9_freeze_review_pack.js +0 -64
  291. package/lib/phase_9_gate_pack.js +0 -58
  292. package/lib/phase_9_operator_accounting_bridges_runtime_pack.js +0 -74
  293. package/lib/phase_9_treasury_connectivity_pack.js +0 -72
  294. package/lib/phase_9_treasury_continuity_pack.js +0 -86
  295. package/lib/phase_9_treasury_destinations_runtime_pack.js +0 -74
  296. package/lib/phase_program_pack.js +0 -120
  297. package/lib/pricing_optimization_contract.js +0 -775
  298. package/lib/protocol_lane_contract.js +0 -117
  299. package/lib/provenance_lane_contract.js +0 -54
  300. package/lib/provider_lane_contract.js +0 -240
  301. package/lib/provider_network_contract.js +0 -149
  302. package/lib/provider_payout_execution.js +0 -155
  303. package/lib/provider_registry.js +0 -852
  304. package/lib/provider_runtime_journey_contract.js +0 -183
  305. package/lib/public_surface_policy_contract.js +0 -111
  306. package/lib/publish_plan.js +0 -51
  307. package/lib/rate_limiter.js +0 -81
  308. package/lib/record_queries.js +0 -48
  309. package/lib/release_candidate.js +0 -50
  310. package/lib/release_center.js +0 -1093
  311. package/lib/release_history.js +0 -205
  312. package/lib/release_manifest.js +0 -113
  313. package/lib/release_pack.js +0 -453
  314. package/lib/request_rate_limit.js +0 -144
  315. package/lib/resource_views.js +0 -31
  316. package/lib/revenue_launch_path_contract.js +0 -326
  317. package/lib/route_matchers.js +0 -34
  318. package/lib/route_params.js +0 -19
  319. package/lib/runtime_bridge.js +0 -124
  320. package/lib/runtime_operations_worker.js +0 -282
  321. package/lib/runtime_state_store.js +0 -495
  322. package/lib/settlement_bsv_live.js +0 -600
  323. package/lib/settlement_bsv_teranode.js +0 -117
  324. package/lib/settlement_lane_contract.js +0 -111
  325. package/lib/shared_signals_lane_contract.js +0 -54
  326. package/lib/signed_audit_provenance_contract.js +0 -83
  327. package/lib/soft_launch_pack.js +0 -78
  328. package/lib/stablecoin_lane_contract.js +0 -76
  329. package/lib/stripe_mpp_lane_contract.js +0 -96
  330. package/lib/stripe_mpp_payment_front.js +0 -258
  331. package/lib/telemetry_lane_contract.js +0 -54
  332. package/lib/treasury_destinations_contract.js +0 -764
  333. package/lib/treasury_egress_policy_contract.js +0 -91
  334. package/lib/treasury_lane_contract.js +0 -84
  335. package/lib/trust_portability_boundary_contract.js +0 -72
  336. package/lib/x402_facilitator.js +0 -198
  337. package/lib/x402_lane_contract.js +0 -136
  338. package/lib/x402_settlement_recovery.js +0 -175
  339. package/scripts/buyer_events_daily_report.js +0 -79
  340. package/scripts/registry_cli.js +0 -275
  341. package/scripts/state_backup_offsite.js +0 -196
  342. package/scripts/verify_a2a_rpc.js +0 -131
  343. package/scripts/verify_adapters.js +0 -554
  344. package/scripts/verify_agent_identity.js +0 -153
  345. package/scripts/verify_all.js +0 -4963
  346. package/scripts/verify_bolt_adapter.js +0 -128
  347. package/scripts/verify_buyer_event_log.js +0 -128
  348. package/scripts/verify_buyer_safety.js +0 -141
  349. package/scripts/verify_cdp_facilitator.js +0 -110
  350. package/scripts/verify_checkout_processor.js +0 -109
  351. package/scripts/verify_commerce_bridge.js +0 -177
  352. package/scripts/verify_control_plane_contracts.js +0 -34
  353. package/scripts/verify_control_plane_routes.js +0 -70
  354. package/scripts/verify_delivery_summary.js +0 -112
  355. package/scripts/verify_examples.js +0 -19
  356. package/scripts/verify_execution_dedupe.js +0 -189
  357. package/scripts/verify_execution_surfacing.js +0 -76
  358. package/scripts/verify_external_execution_retry.js +0 -140
  359. package/scripts/verify_final_activation.js +0 -191
  360. package/scripts/verify_first_run_conversions.js +0 -81
  361. package/scripts/verify_framework_provider_promotion.js +0 -152
  362. package/scripts/verify_full_catalog.js +0 -174
  363. package/scripts/verify_integrations.js +0 -620
  364. package/scripts/verify_l402_adapter.js +0 -86
  365. package/scripts/verify_lifecycle_continuity.js +0 -96
  366. package/scripts/verify_lifecycle_spend_binding.js +0 -88
  367. package/scripts/verify_market_lane_depth.js +0 -94
  368. package/scripts/verify_market_lane_promotion.js +0 -103
  369. package/scripts/verify_market_lane_traces.js +0 -98
  370. package/scripts/verify_market_lanes.js +0 -102
  371. package/scripts/verify_mpp_adapter.js +0 -128
  372. package/scripts/verify_operator_observability_boundary.js +0 -83
  373. package/scripts/verify_pricing_experiment_plan.js +0 -124
  374. package/scripts/verify_production_readiness.js +0 -268
  375. package/scripts/verify_provider_network.js +0 -819
  376. package/scripts/verify_provider_runtime_breadth.js +0 -109
  377. package/scripts/verify_provider_runtime_journeys.js +0 -111
  378. package/scripts/verify_rate_limiter.js +0 -52
  379. package/scripts/verify_refund_credit.js +0 -106
  380. package/scripts/verify_revenue_launch_paths.js +0 -105
  381. package/scripts/verify_runtime_durability.js +0 -52
  382. package/scripts/verify_runtime_state_guard.js +0 -117
  383. package/scripts/verify_service.js +0 -15421
  384. package/scripts/verify_settlement.js +0 -116
  385. package/scripts/verify_tooling.js +0 -1412
  386. package/scripts/verify_treasury_public_boundary.js +0 -97
  387. package/scripts/verify_verify_execute_settle.js +0 -209
  388. package/scripts/verify_x402_facilitator.js +0 -307
  389. package/scripts/verify_x402_settlement_recovery.js +0 -153
  390. package/server.js +0 -12245
@@ -1,117 +0,0 @@
1
- "use strict";
2
-
3
- const { summarizeMcpLanePack } = require("./mcp_lane_contract");
4
- const { summarizeA2ALanePack } = require("./a2a_lane_contract");
5
- const { summarizeA2CLanePack } = require("./a2c_lane_contract");
6
- const { summarizeAcpLanePack } = require("./acp_lane_contract");
7
- const { summarizeEventSystemLanePack } = require("./event_system_lane_contract");
8
-
9
- function buildProtocolLanePack() {
10
- return {
11
- product: "xytara",
12
- category: "machine-commerce-protocol-lane-pack",
13
- pack_version: "xytara-protocol-lane-pack-v1",
14
- lane_state: "first_party_protocol_family_present",
15
- posture: "canonical_public_view_of_runtime_protocol_and_transport_breadth",
16
- featured_protocols: {
17
- mcp: {
18
- protocol_id: "mcp",
19
- posture: "primary_tool_and_capability_invocation_lane",
20
- summary: summarizeMcpLanePack(),
21
- route_ref: "/v1/mcp"
22
- },
23
- a2a: {
24
- protocol_id: "a2a",
25
- posture: "agent_to_agent_negotiation_and_settlement_lane",
26
- summary: summarizeA2ALanePack(),
27
- route_ref: "/v1/a2a"
28
- },
29
- a2c: {
30
- protocol_id: "a2c",
31
- posture: "agent_to_client_tooling_and_session_lane",
32
- summary: summarizeA2CLanePack(),
33
- route_ref: "/v1/a2c"
34
- },
35
- acp: {
36
- protocol_id: "acp",
37
- posture: "adapter_ready_agent_coordination_bridge",
38
- summary: summarizeAcpLanePack(),
39
- route_ref: "/v1/integrations/protocols"
40
- },
41
- grpc: {
42
- protocol_id: "grpc",
43
- posture: "adapter_ready_rpc_bridge_for service and system interop",
44
- route_ref: "/v1/integrations/protocols"
45
- },
46
- mqtt: {
47
- protocol_id: "mqtt",
48
- posture: "event_and_device_oriented bridge lane",
49
- route_ref: "/v1/event-systems"
50
- },
51
- kafka: {
52
- protocol_id: "kafka",
53
- posture: "durable stream and event bus lane",
54
- route_ref: "/v1/event-systems"
55
- },
56
- nats: {
57
- protocol_id: "nats",
58
- posture: "subject mesh and jetstream oriented event lane",
59
- summary: summarizeEventSystemLanePack(),
60
- route_ref: "/v1/event-systems"
61
- },
62
- ros2: {
63
- protocol_id: "ros2",
64
- posture: "robotics and embedded coordination bridge",
65
- route_ref: "/v1/integrations/protocols"
66
- },
67
- webhook_event_bus: {
68
- protocol_id: "webhook_event_bus",
69
- posture: "callback friendly ingress and replay lane",
70
- route_ref: "/v1/event-systems"
71
- }
72
- },
73
- supported_surfaces: {
74
- mcp_lane_ref: "/v1/mcp",
75
- a2a_lane_ref: "/v1/a2a",
76
- a2c_lane_ref: "/v1/a2c",
77
- acp_lane_ref: "/v1/acp",
78
- event_system_lane_ref: "/v1/event-systems",
79
- integration_protocols_ref: "/v1/integrations/protocols",
80
- integration_matrix_ref: "/v1/integration-matrix"
81
- },
82
- first_run_flows: [
83
- {
84
- flow_ref: "protocol_family_selection",
85
- recommended_reason: "best first path for callers who need to understand which invocation, coordination, transport, or callback lane fits their system before wiring payment and settlement",
86
- sequence: [
87
- "inspect_protocol_lane_summary",
88
- "choose_mcp_a2a_or_a2c_for_canonical_runtime_entry",
89
- "use_event_or_bridge_protocols_only_when_system_shape_requires_them",
90
- "continue_into_payment_and_settlement_selection"
91
- ]
92
- }
93
- ],
94
- guardrails: [
95
- "protocol breadth should improve fit and adoption without fragmenting the canonical command and payment path",
96
- "transport and event bridges remain subordinate to the default runtime and settlement spine"
97
- ]
98
- };
99
- }
100
-
101
- function summarizeProtocolLanePack() {
102
- const pack = buildProtocolLanePack();
103
- return {
104
- product: "xytara",
105
- category: "machine-commerce-protocol-lane-pack-summary",
106
- summary_version: "xytara-protocol-lane-pack-summary-v1",
107
- lane_state: pack.lane_state,
108
- featured_protocol_count: Object.keys(pack.featured_protocols).length,
109
- first_run_flow_count: pack.first_run_flows.length,
110
- linked_surfaces: pack.supported_surfaces
111
- };
112
- }
113
-
114
- module.exports = {
115
- buildProtocolLanePack,
116
- summarizeProtocolLanePack
117
- };
@@ -1,54 +0,0 @@
1
- "use strict";
2
-
3
- function buildProvenanceLanePack() {
4
- return {
5
- product: "xytara",
6
- category: "machine-commerce-provenance-lane-pack",
7
- pack_version: "xytara-provenance-lane-pack-v1",
8
- lane_state: "first_party_provenance_lane_present",
9
- posture: "release_and_execution_supply_chain_trust_lane",
10
- standards: ["slsa"],
11
- focal_surfaces: ["release_candidate", "release_manifest", "integration_matrix", "adapter_pack"],
12
- supported_surfaces: {
13
- release_candidate_ref: "/v1/release-candidate",
14
- release_manifest_ref: "/v1/release-manifest",
15
- release_center_ref: "/v1/release-center",
16
- adapter_pack_ref: "/v1/adapter-pack",
17
- integration_matrix_ref: "/v1/integration-matrix"
18
- },
19
- first_run_flows: [
20
- {
21
- flow_ref: "release_provenance_review",
22
- recommended_reason: "best path for builders and operators who need artifact and release trust before integrating xytara into production systems",
23
- sequence: [
24
- "inspect_provenance_lane_summary",
25
- "inspect_release_candidate_and_manifest",
26
- "inspect_adapter_and_integration_breadth",
27
- "treat_release_and_adapter posture as provenance-carrying artifacts"
28
- ]
29
- }
30
- ],
31
- guardrails: [
32
- "provenance should strengthen release trust without turning the runtime into a generic attestation service",
33
- "supply-chain trust complements runtime truth and proof truth instead of replacing either"
34
- ]
35
- };
36
- }
37
-
38
- function summarizeProvenanceLanePack() {
39
- const pack = buildProvenanceLanePack();
40
- return {
41
- product: "xytara",
42
- category: "machine-commerce-provenance-lane-pack-summary",
43
- summary_version: "xytara-provenance-lane-pack-summary-v1",
44
- lane_state: pack.lane_state,
45
- standard_count: pack.standards.length,
46
- focal_surface_count: pack.focal_surfaces.length,
47
- linked_surfaces: pack.supported_surfaces
48
- };
49
- }
50
-
51
- module.exports = {
52
- buildProvenanceLanePack,
53
- summarizeProvenanceLanePack
54
- };
@@ -1,240 +0,0 @@
1
- "use strict";
2
-
3
- const {
4
- buildPhase1OpenaiCodexRuntimePack,
5
- summarizePhase1OpenaiCodexRuntimePack
6
- } = require("./phase_1_openai_codex_runtime_pack");
7
- const {
8
- buildPhase1ClaudeMcpRuntimePack,
9
- summarizePhase1ClaudeMcpRuntimePack
10
- } = require("./phase_1_claude_mcp_runtime_pack");
11
- const { buildAdapterDepthPack } = require("./adapter_depth_contract");
12
- const { buildFrameworkProviderPromotionPack } = require("./framework_provider_promotion");
13
- const { summarizeCapabilityExecutionTruthBundle } = require("./capability_execution_truth");
14
- const { summarizeMarketLaneTracePack } = require("./market_lane_trace_contract");
15
- const { summarizeMarketLanePromotionPack } = require("./market_lane_promotion_contract");
16
-
17
- function uniqueSorted(values) {
18
- return Array.from(new Set((Array.isArray(values) ? values : []).filter(Boolean))).sort();
19
- }
20
-
21
- function findAdapterTask(adapterDepth, taskRef) {
22
- return (Array.isArray(adapterDepth && adapterDepth.adapter_tasks) ? adapterDepth.adapter_tasks : []).find((entry) => entry && entry.task_ref === taskRef) || null;
23
- }
24
-
25
- function buildProviderProfiles() {
26
- const adapterDepth = buildAdapterDepthPack();
27
- const frameworkPromotion = buildFrameworkProviderPromotionPack();
28
- const executionTruth = summarizeCapabilityExecutionTruthBundle();
29
- const marketLaneTraceSummary = summarizeMarketLaneTracePack();
30
- const marketLanePromotionSummary = summarizeMarketLanePromotionPack();
31
- const openaiPack = buildPhase1OpenaiCodexRuntimePack();
32
- const openaiSummary = summarizePhase1OpenaiCodexRuntimePack();
33
- const claudePack = buildPhase1ClaudeMcpRuntimePack();
34
- const claudeSummary = summarizePhase1ClaudeMcpRuntimePack();
35
-
36
- const adapterInvokeTask = findAdapterTask(adapterDepth, "adapter.mcp.invoke");
37
- const providerLiveAnchorReady = Boolean(adapterInvokeTask && adapterInvokeTask.provider_live);
38
- const computeTraceReady = Number(marketLaneTraceSummary.provider_live_anchor_trace_count || 0) >= 1;
39
- const computePromotionReady = Number(marketLanePromotionSummary.provider_live_ready_count || 0) >= 1;
40
- const providerLiveTaskCount = Number(executionTruth.counts && executionTruth.counts.provider_live_count || 0);
41
- const frameworkLiveCheckReadyCount = Number(frameworkPromotion.live_check_ready_count || 0);
42
- const configuredToolCount = Number(adapterDepth.counts && adapterDepth.counts.configured_tool_count || 0);
43
-
44
- return [
45
- {
46
- provider_id: "openai_codex",
47
- provider_label: "OpenAI Codex",
48
- posture: "machine_native_quote_pay_execute_entry",
49
- claim_status: "bounded_live",
50
- provider_live_anchor_ready: false,
51
- first_party_callable_ready: true,
52
- revenue_ready: true,
53
- proof_followthrough_ready: typeof openaiPack.first_path.followthrough_ref === "string",
54
- primary_http_sequence: openaiPack.first_path.first_http_sequence.slice(),
55
- primary_cli_sequence: openaiPack.first_path.first_cli_sequence.slice(),
56
- primary_call_surfaces: uniqueSorted([
57
- "/x402/commands/execute",
58
- "/v1/commands/execute",
59
- "/v1/release-center/summary",
60
- "/v1/release-pack/scenarios/summary"
61
- ]),
62
- supporting_surfaces: uniqueSorted([
63
- "/v1/capability-registry/execution-truth/summary",
64
- "/v1/full-catalog/market-lanes/traces/summary",
65
- "/v1/full-catalog/market-lanes/promotion/summary",
66
- "/v1/release-center/summary",
67
- "/v1/x402"
68
- ]),
69
- activation_http_step_count: openaiSummary.http_step_count,
70
- activation_cli_step_count: openaiSummary.cli_step_count,
71
- expected_signal_count: openaiSummary.signal_count,
72
- runtime_gates: {
73
- machine_entry_ready: openaiSummary.http_step_count >= 3,
74
- paid_execution_ready: true,
75
- commercialization_ready: true,
76
- trace_ready: computeTraceReady,
77
- proof_followthrough_ready: typeof openaiPack.first_path.followthrough_ref === "string"
78
- },
79
- followthrough_ref: openaiPack.first_path.followthrough_ref,
80
- claim_boundary: "claim_openai_codex_as_a_bounded_machine_entry_surface_into_xytara_not_as_direct_openai_control_plane_ownership"
81
- },
82
- {
83
- provider_id: "claude_mcp",
84
- provider_label: "Claude MCP",
85
- posture: "adapter_bound_tool_invoke_and_runtime_execution_entry",
86
- claim_status: "bounded_live",
87
- provider_live_anchor_ready: providerLiveAnchorReady,
88
- first_party_callable_ready: true,
89
- revenue_ready: providerLiveAnchorReady && computePromotionReady,
90
- proof_followthrough_ready: typeof claudePack.first_path.followthrough_ref === "string",
91
- primary_http_sequence: claudePack.first_path.first_http_sequence.slice(),
92
- primary_cli_sequence: claudePack.first_path.first_cli_sequence.slice(),
93
- primary_call_surfaces: uniqueSorted([
94
- "/v1/mcp/tools/invoke",
95
- "/v1/transaction-center/task-packs/invoke",
96
- "/v1/adapter-depth/summary",
97
- "/v1/framework-provider-promotion/summary"
98
- ]),
99
- supporting_surfaces: uniqueSorted([
100
- "/v1/adapter-pack/summary",
101
- "/v1/adapter-promotion/summary",
102
- "/v1/capability-registry/execution-truth/summary",
103
- "/v1/full-catalog/market-lanes/depth/summary",
104
- "/v1/full-catalog/market-lanes/traces/summary",
105
- "/v1/full-catalog/market-lanes/promotion/summary",
106
- "/v1/mcp",
107
- "/v1/providers/openai_codex"
108
- ]),
109
- activation_http_step_count: claudeSummary.http_step_count,
110
- activation_cli_step_count: claudeSummary.cli_step_count,
111
- expected_signal_count: claudeSummary.signal_count,
112
- runtime_gates: {
113
- mcp_entry_ready: claudeSummary.http_step_count >= 3,
114
- adapter_depth_ready: providerLiveAnchorReady,
115
- proof_fact_ready: Boolean(adapterInvokeTask && Array.isArray(adapterInvokeTask.execution_targets) && adapterInvokeTask.execution_targets.some((target) => target && target.operational_coverage && target.operational_coverage.proof_fact_compatible)),
116
- tool_binding_ready: configuredToolCount >= 1,
117
- framework_promotion_gate_ready: frameworkPromotion.framework_candidate_count >= 2,
118
- trace_ready: computeTraceReady,
119
- promotion_ready: computePromotionReady
120
- },
121
- live_provider_signals: {
122
- provider_live_task_count: providerLiveTaskCount,
123
- deepened_provider_live_task_count: Number(adapterDepth.counts && adapterDepth.counts.deepened_provider_live_task_count || 0),
124
- configured_execution_target_count: Number(adapterDepth.counts && adapterDepth.counts.configured_execution_target_count || 0),
125
- framework_live_check_ready_count: frameworkLiveCheckReadyCount
126
- },
127
- followthrough_ref: claudePack.first_path.followthrough_ref,
128
- claim_boundary: "claim_claude_mcp_provider_depth_only_for_the_listed_mcp_adapter_tool_bindings_and_public_promotion_gates"
129
- }
130
- ];
131
- }
132
-
133
- function summarizeProviderProfile(profile) {
134
- return {
135
- provider_id: profile.provider_id,
136
- provider_label: profile.provider_label,
137
- posture: profile.posture,
138
- claim_status: profile.claim_status,
139
- provider_live_anchor_ready: profile.provider_live_anchor_ready,
140
- first_party_callable_ready: profile.first_party_callable_ready,
141
- revenue_ready: profile.revenue_ready,
142
- proof_followthrough_ready: profile.proof_followthrough_ready,
143
- activation_http_step_count: profile.activation_http_step_count,
144
- activation_cli_step_count: profile.activation_cli_step_count,
145
- expected_signal_count: profile.expected_signal_count,
146
- primary_call_surface_count: uniqueSorted(profile.primary_call_surfaces).length,
147
- supporting_surface_count: uniqueSorted(profile.supporting_surfaces).length,
148
- claim_boundary: profile.claim_boundary
149
- };
150
- }
151
-
152
- function buildProviderLanePack() {
153
- const profiles = buildProviderProfiles();
154
- const summarizedProfiles = Object.fromEntries(profiles.map((profile) => [profile.provider_id, summarizeProviderProfile(profile)]));
155
- return {
156
- ok: true,
157
- product: "xytara",
158
- category: "machine-commerce-provider-lane-pack",
159
- pack_version: "xytara-provider-lane-pack-v2",
160
- lane_state: "first_party_provider_family_present",
161
- posture: "provider_entry_and_runtime_execution_family",
162
- breadth_state: profiles.some((profile) => profile.provider_live_anchor_ready)
163
- ? "bounded_provider_runtime_breadth_present"
164
- : "provider_entry_family_present_without_live_anchor",
165
- featured_providers: summarizedProfiles,
166
- provider_profile_count: profiles.length,
167
- provider_live_anchor_profile_count: profiles.filter((profile) => profile.provider_live_anchor_ready).length,
168
- first_party_callable_profile_count: profiles.filter((profile) => profile.first_party_callable_ready).length,
169
- revenue_ready_profile_count: profiles.filter((profile) => profile.revenue_ready).length,
170
- proof_followthrough_profile_count: profiles.filter((profile) => profile.proof_followthrough_ready).length,
171
- provider_profiles: profiles,
172
- supported_surfaces: {
173
- phase_1_summary_ref: "/v1/phases/phase-1/summary",
174
- openai_codex_summary_ref: "/v1/phases/phase-1/openai-codex/runtime/summary",
175
- claude_mcp_summary_ref: "/v1/phases/phase-1/claude-mcp/runtime/summary",
176
- providers_summary_ref: "/v1/providers/summary",
177
- adapter_depth_summary_ref: "/v1/adapter-depth/summary",
178
- framework_provider_promotion_summary_ref: "/v1/framework-provider-promotion/summary",
179
- execution_truth_summary_ref: "/v1/capability-registry/execution-truth/summary",
180
- market_lane_trace_summary_ref: "/v1/full-catalog/market-lanes/traces/summary",
181
- market_lane_promotion_summary_ref: "/v1/full-catalog/market-lanes/promotion/summary",
182
- provider_runtime_journeys_ref: "/v1/providers/journeys",
183
- provider_runtime_journeys_summary_ref: "/v1/providers/journeys/summary",
184
- x402_ref: "/v1/x402",
185
- mcp_lane_ref: "/v1/mcp",
186
- integrations_ref: "/v1/integrations"
187
- },
188
- first_run_flows: [
189
- {
190
- flow_ref: "provider_family_selection",
191
- recommended_reason: "best first path for understanding how named provider entry points map into the canonical commerce runtime",
192
- sequence: [
193
- "inspect_provider_lane_summary",
194
- "inspect_provider_runtime_journey_summary",
195
- "inspect_named_provider_runtime_profiles",
196
- "choose_provider_entry_path",
197
- "continue_into_paid_execution_and_proof_followthrough"
198
- ]
199
- }
200
- ],
201
- guardrails: [
202
- "provider lanes should stay entry and interoperability shapes rather than redefine the core runtime model",
203
- "named providers improve adoption only when they remain subordinate to canonical protocol, payment, settlement, and proof lanes",
204
- "named provider journeys must stay publicly inspectable before stronger revenue or go-to-market claims are made",
205
- "claim provider-live runtime breadth only for the listed provider profiles and their public gates",
206
- "do not collapse provider entry readiness into unbounded external-provider platform claims"
207
- ]
208
- };
209
- }
210
-
211
- function getProviderProfileDetail(providerId) {
212
- const normalized = String(providerId || "").trim().toLowerCase();
213
- return buildProviderProfiles().find((profile) => profile.provider_id === normalized) || null;
214
- }
215
-
216
- function summarizeProviderLanePack() {
217
- const pack = buildProviderLanePack();
218
- return {
219
- ok: true,
220
- product: "xytara",
221
- category: "machine-commerce-provider-lane-pack-summary",
222
- summary_version: "xytara-provider-lane-pack-summary-v2",
223
- lane_state: pack.lane_state,
224
- breadth_state: pack.breadth_state,
225
- featured_provider_count: Object.keys(pack.featured_providers).length,
226
- provider_profile_count: pack.provider_profile_count,
227
- provider_live_anchor_profile_count: pack.provider_live_anchor_profile_count,
228
- first_party_callable_profile_count: pack.first_party_callable_profile_count,
229
- revenue_ready_profile_count: pack.revenue_ready_profile_count,
230
- proof_followthrough_profile_count: pack.proof_followthrough_profile_count,
231
- first_run_flow_count: pack.first_run_flows.length,
232
- linked_surfaces: pack.supported_surfaces
233
- };
234
- }
235
-
236
- module.exports = {
237
- buildProviderLanePack,
238
- getProviderProfileDetail,
239
- summarizeProviderLanePack
240
- };
@@ -1,149 +0,0 @@
1
- "use strict";
2
-
3
- // Public, machine-readable integration contract for the open execution-provider network. It
4
- // tells an external provider (or an agent building one) exactly how to plug in: how to
5
- // register, the request/response shape the runtime sends to the provider's /execute endpoint,
6
- // the lifecycle, the routing/health/reputation expectations, and the economics. Read-only; it
7
- // describes the PUBLIC protocol and exposes no secrets. Numeric limits reflect the runtime's
8
- // live configuration (same env + defaults the code uses) so a provider sees the real ceilings.
9
-
10
- function intEnv(name, fallback) {
11
- const n = Number(process.env[name]);
12
- return Number.isFinite(n) ? n : fallback;
13
- }
14
-
15
- function buildProviderNetworkContract() {
16
- const openRegistration = String(process.env.XYTARA_PROVIDER_OPEN_REGISTRATION || "").trim() === "1";
17
- const maxRevenueShareBps = (() => {
18
- const n = Number(process.env.XYTARA_PROVIDER_MAX_REVENUE_SHARE_BPS);
19
- return Number.isInteger(n) && n >= 0 && n <= 10000 ? n : 10000;
20
- })();
21
-
22
- return {
23
- ok: true,
24
- contract_version: "provider-network/v1",
25
- product: "xytara open execution-provider network",
26
- summary:
27
- "Register an execution endpoint that serves one or more capabilities; once an operator activates it, the runtime routes PAID (x402-settled) agent calls to your /execute, surfaces your output as the buyer's deliverable, and accrues your revenue-share for payout.",
28
- lifecycle: [
29
- "1. REGISTER your provider (endpoint_url + the capabilities you serve + your revenue_share_bps + payout_address). You receive an owner_secret (save it — shown once).",
30
- "2. Your provider lands status:'pending' and is NOT routable yet.",
31
- "3. An OPERATOR activates it (status:'active').",
32
- "4. When a buyer pays (x402) for a capability you serve, the runtime POSTs the job to your endpoint_url; you execute and return the deliverable.",
33
- "5. On your success the payment settles on-chain and your revenue_share accrues.",
34
- "6. The operator pays out your accrued balance to your payout_address (manually or via a signer). Track it yourself any time via GET /providers/<id>/earnings with your owner_secret."
35
- ],
36
-
37
- registration: {
38
- endpoint: "POST /v1/provider-network/register",
39
- auth: {
40
- modes: [
41
- "operator-bearer: send Authorization: Bearer <registration token> (obtain from the operator)",
42
- "open (permissionless): no bearer required, but rate-limited and pending-capped"
43
- ],
44
- open_registration_enabled: openRegistration,
45
- note: "A re-registration of an EXISTING provider_id ALWAYS requires its owner_secret, in either mode."
46
- },
47
- body: {
48
- provider_id: "string, optional — stable id; omit to be assigned a random one. Keep it: it is your identity.",
49
- owner_secret: "string, REQUIRED only when updating an existing provider_id (returned once at first registration).",
50
- label: "string, optional display name.",
51
- endpoint_url: "string, REQUIRED — your https /execute URL the runtime will POST jobs to.",
52
- task_refs: "string[] — task refs you serve (e.g. 'adapter.mcp.invoke'). At least one selector across task_refs/tool_names/integration_ids is required.",
53
- tool_names: "string[] — specific tool names you serve (matched against the call's body.tool_name).",
54
- integration_ids: "string[] — integration-family ids you serve.",
55
- revenue_share_bps: `integer 0..${maxRevenueShareBps} — your share of each settled amount in basis points (e.g. 7000 = 70%). Current operator cap: ${maxRevenueShareBps}.`,
56
- payout_address: "string, optional — where your revenue-share is paid (eip155 address shape-checked for eip155 networks).",
57
- payout_network: "string, optional — default 'eip155:8453' (Base).",
58
- payout_asset: "string, optional — default 'USDC'.",
59
- auth_token: "string, optional — a bearer the runtime presents to YOUR /execute (so you can authenticate it)."
60
- },
61
- response: {
62
- ok: true,
63
- provider_id: "<your id>",
64
- status: "pending",
65
- owner_secret: "prvown_… (RETURNED ONLY ON FIRST REGISTRATION — store it securely; required for every future update)",
66
- provider: "{ public view: no auth_token, no owner_secret }"
67
- }
68
- },
69
-
70
- execution_contract: {
71
- description: "When a paid call for a capability you serve is routed to you, the runtime sends an HTTP POST to your endpoint_url. Execute the work and return the deliverable.",
72
- request: {
73
- method: "POST",
74
- headers: {
75
- "content-type": "application/json",
76
- authorization: "Bearer <your auth_token> (only if you registered one)"
77
- },
78
- body: {
79
- command: "string — the command label",
80
- task_ref: "string — the task ref being invoked",
81
- tasks: "array — the task set (when multi-task)",
82
- body: "object — the buyer's input, e.g. { tool_name, arguments }",
83
- account_id: "string — the buyer's account ref",
84
- quote: "object — the priced quote for this call",
85
- authorization_context: "object — SANITIZED payment context: { ok, verification_mode, wallet_id, age_seconds, payment_payload (scalar facts only) }. Never the buyer's signed authorization, signatures, or settlement material."
86
- }
87
- },
88
- endpoint_policy: "endpoint_url must be https and publicly routable on the hosted network (loopback, private, link-local and metadata hosts are refused, re-checked by DNS at dispatch); URLs with embedded credentials are refused; redirects are never followed.",
89
- execution_budget: "One buyer call has a total wall-clock budget (default 50s, inside the x402 authorization window) shared across ride-out retries and failover; your timeout_ms is capped at 30000 ms. Finish well inside it — a call that outlives the authorization cannot settle.",
90
- response: {
91
- on_success: "Return HTTP 2xx with the deliverable. The runtime surfaces your output from result.output OR a top-level output_payload / output_ref.",
92
- example_success_bodies: [
93
- '{ "result": { "output": { "...": "your real result" } } }',
94
- '{ "output_payload": { "...": "your real result" } }'
95
- ],
96
- on_failure: "Return a non-2xx status.",
97
- failure_semantics: {
98
- failover_safe_statuses: [408, 429, 503],
99
- note: "408/429/503 (and connection-refused/DNS) are treated as 'did NOT process' — the runtime may RETRY you and/or FAIL OVER to another provider. Any OTHER failure (5xx, timeout, connection reset, malformed) is treated as AMBIGUOUS: the runtime will NOT retry/fail-over (your side may have executed). Design /execute to be idempotent per request so a safe retry is harmless."
100
- },
101
- timeout_ms_default: intEnv("XYTARA_EXTERNAL_EXECUTION_DEFAULT_TIMEOUT_MS", 10000)
102
- }
103
- },
104
-
105
- routing: {
106
- capability_matching: "A call routes to you if its task_ref is in your task_refs, OR its body.tool_name is in your tool_names, OR an integration id matches your integration_ids. Only ACTIVE providers are routable.",
107
- health: {
108
- description: "Consecutive failures mark you unhealthy and temporarily exclude you from routing; a cooldown then lets you back (half-open) for one retry; a success resets you.",
109
- unhealthy_threshold: intEnv("XYTARA_PROVIDER_UNHEALTHY_THRESHOLD", 3),
110
- unhealthy_cooldown_ms: intEnv("XYTARA_PROVIDER_UNHEALTHY_COOLDOWN_MS", 60000)
111
- },
112
- reputation: {
113
- description: "The runtime tracks your lifetime success rate and prefers higher-reputation providers within the healthy tier. New providers get an optimistic score (a fair first shot); one early failure is recoverable (not disqualifying). The operator may enable recency decay so recent performance outweighs stale history (your raw lifetime counts are still shown either way).",
114
- routing_score: "(success + 2) / (success + failure + 2)",
115
- recency_decay: intEnv("XYTARA_PROVIDER_REPUTATION_DECAY", 1)
116
- },
117
- failover_max_candidates: intEnv("XYTARA_PROVIDER_FAILOVER_MAX", 3),
118
- note: "Operator-pinned execution targets (if any) take precedence over the registry for a given capability."
119
- },
120
-
121
- economics: {
122
- settlement: "Buyers pay via x402 (gasless USDC on Base). The runtime settles on-chain only AFTER your execution succeeds — a failed call does not charge the buyer.",
123
- revenue_share: "Your provider_share = floor(settled_amount * revenue_share_bps / 10000); the platform keeps the remainder (incl. rounding). settled_amount = min(quote, the amount actually settled on-chain for the call) — never money that was not collected; each ledger row records its settlement_basis.",
124
- delivery_receipts: "Every paid call routed to you returns the buyer a signed delivery receipt (naxytra-delivery-receipt/1) naming your provider_id and the sha256 of the request and of the output you returned, bound to the payment (for x402, the settlement tx). Keys: GET /.well-known/delivery-receipt-keys. It attests what you delivered — never whether it was correct.",
125
- payouts: "Your accrued share is paid to your payout_address by the operator (reconciled ledger: create -> on-chain send -> confirm). Amounts are tracked in the quote's minor unit (USD_CENTS). Ledger rows and payouts are scoped to your registration: a removed-and-re-registered provider_id starts a fresh ledger and never inherits another owner's rows."
126
- },
127
-
128
- discovery: {
129
- list: "GET /v1/provider-network/providers — public; lists ACTIVE (vetted) providers with capabilities, status, health, and reputation (never secrets). Pending/suspended records are visible to the operator only.",
130
- self: "GET /v1/provider-network/providers/<provider_id> — your public record.",
131
- earnings:
132
- "GET /v1/provider-network/providers/<provider_id>/earnings — your OWN earnings (read-only): payout_state (accrued/paid/pending/available/owed), your settlement rows, and your payout history. Authenticate with YOUR owner_secret via the 'x-provider-owner-secret' header (or Authorization: Bearer <owner_secret>) — this is the provider side, it needs no operator bearer."
133
- },
134
-
135
- operator_gated: [
136
- "activation: POST /v1/provider-network/providers/:id/status { status }",
137
- "payouts: POST /v1/provider-network/providers/:id/payouts (+ /payouts/:id/confirm|cancel, /payouts/execute)",
138
- "removal: POST /v1/provider-network/providers/:id/remove"
139
- ],
140
-
141
- guidance: [
142
- "Be idempotent per request — key on quote.quote_id (unique per buyer call): retries and failover can re-send a provably-not-processed job, and some proxies return 503 after forwarding a request.",
143
- "Be reliable — health and reputation gate your routing and ordering.",
144
- "Return a 429 with Retry-After when overloaded (it is treated as 'did not process' and is safely retried)."
145
- ]
146
- };
147
- }
148
-
149
- module.exports = { buildProviderNetworkContract };