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,591 +0,0 @@
1
- "use strict";
2
-
3
- const crypto = require("crypto");
4
- const { findTask } = require("../fixtures/catalog");
5
- const { buildDefaultEconomicPath, buildTreasuryDestination } = require("./commerce_quotes");
6
- const {
7
- buildBsvTeranodeSettlementHints,
8
- extractBsvTeranodePaymentReference,
9
- isBsvTeranodeSettlementMode
10
- } = require("./settlement_bsv_teranode");
11
-
12
- function classifyObservedLatency(durationMs) {
13
- if (durationMs <= 1000) return "instant";
14
- if (durationMs <= 15000) return "near_real_time";
15
- return "governed_async";
16
- }
17
-
18
- function assessLatency(declaredLatencyClass, observedLatencyClass) {
19
- const order = {
20
- instant: 1,
21
- near_real_time: 2,
22
- governed_async: 3
23
- };
24
- const declared = order[declaredLatencyClass] || 99;
25
- const observed = order[observedLatencyClass] || 99;
26
- return observed <= declared ? "within_posture" : "outside_posture";
27
- }
28
-
29
- // The x402 facts of a payment verified (and, once settled, settled) through the facilitator, or
30
- // null for any other lane. For an x402-paid call these replace the quote's default settlement
31
- // rail in the artifacts, so a consumer never reads an unsubmitted placeholder rail as the real one.
32
- function x402PaymentFacts(paymentVerification) {
33
- const verification = paymentVerification && typeof paymentVerification === "object" ? paymentVerification : null;
34
- if (!verification || verification.verification_mode !== "x402_facilitator") return null;
35
- const paymentPayload = verification.payment_payload && typeof verification.payment_payload === "object" ? verification.payment_payload : {};
36
- const settlement = verification.settlement && typeof verification.settlement === "object" ? verification.settlement : null;
37
- const txid = settlement && (settlement.transaction || settlement.txid) ? String(settlement.transaction || settlement.txid) : null;
38
- return {
39
- network: paymentPayload.x402_network || (settlement && settlement.network) || null,
40
- asset: paymentPayload.x402_asset || null,
41
- amount: paymentPayload.x402_amount !== undefined && paymentPayload.x402_amount !== null ? String(paymentPayload.x402_amount) : null,
42
- payer: paymentPayload.x402_payer || (settlement && settlement.payer) || verification.wallet_id || null,
43
- pay_to: paymentPayload.x402_pay_to || null,
44
- txid,
45
- settled: Boolean(settlement && settlement.success !== false && txid)
46
- };
47
- }
48
-
49
- function createCommandArtifacts(payload, quote, options) {
50
- const opts = options || {};
51
- const transactionId = `txn_${crypto.randomBytes(6).toString("hex")}`;
52
- const receiptId = `rcpt_${crypto.randomBytes(6).toString("hex")}`;
53
- const startedAt = new Date();
54
- const durationMs = 250;
55
- const completedAt = new Date(startedAt.getTime() + durationMs);
56
- const requestedTasks = Array.isArray(payload.tasks) && payload.tasks.length > 0
57
- ? payload.tasks.map((task, index) => ({
58
- task_id: task && task.task_id ? String(task.task_id).trim() : `task_${index + 1}`,
59
- task_ref: task && task.task_ref ? String(task.task_ref).trim() : ""
60
- }))
61
- : [{
62
- task_id: "task_1",
63
- task_ref: String(payload.task_ref || "").trim()
64
- }];
65
- const resolvedTasks = requestedTasks
66
- .map((task) => {
67
- const catalogTask = findTask(task.task_ref);
68
- return catalogTask ? { ...task, catalogTask } : null;
69
- })
70
- .filter(Boolean);
71
- const primaryTask = resolvedTasks[0] && resolvedTasks[0].catalogTask ? resolvedTasks[0].catalogTask : null;
72
- const declaredLatencyClass = (primaryTask && primaryTask.latency_class) || "near_real_time";
73
- const observedLatencyClass = classifyObservedLatency(durationMs);
74
- const deferredCompletion = opts.deferredCompletion === true;
75
- const timing = {
76
- declared_latency_class: declaredLatencyClass,
77
- started_at_iso: startedAt.toISOString(),
78
- completed_at_iso: deferredCompletion ? null : completedAt.toISOString(),
79
- duration_ms: deferredCompletion ? null : durationMs,
80
- observed_latency_class: deferredCompletion ? null : observedLatencyClass,
81
- assessment: deferredCompletion ? "pending" : assessLatency(declaredLatencyClass, observedLatencyClass)
82
- };
83
- const resultTasks = resolvedTasks.length > 0 ? resolvedTasks : requestedTasks.map((task) => ({
84
- ...task,
85
- catalogTask: null
86
- }));
87
- const normalizedBody = payload && payload.body && typeof payload.body === "object" && !Array.isArray(payload.body)
88
- ? payload.body
89
- : {};
90
- const externalExecution = opts.externalExecution && typeof opts.externalExecution === "object"
91
- ? opts.externalExecution
92
- : null;
93
- const externalResponse = externalExecution && externalExecution.target_response && typeof externalExecution.target_response === "object"
94
- ? externalExecution.target_response
95
- : null;
96
- // Provider-agnostic extraction of the real deliverable payload an execution
97
- // target returned. Targets may conform to the contract (`output_payload`), or
98
- // nest their result under `result.output` (the bundled MCP execution target),
99
- // or return a bare `output`. Falling back across these shapes ensures a wired
100
- // real call actually surfaces its output to the buyer instead of dropping it.
101
- const externalOutputPayload = !externalResponse
102
- ? null
103
- : externalResponse.output_payload !== undefined && externalResponse.output_payload !== null
104
- ? externalResponse.output_payload
105
- : externalResponse.result && typeof externalResponse.result === "object" && externalResponse.result.output !== undefined
106
- ? externalResponse.result.output
107
- : externalResponse.output !== undefined
108
- ? externalResponse.output
109
- : null;
110
- const resultsByTaskId = Object.fromEntries(resultTasks.map((task, index) => [
111
- task.task_id,
112
- (() => {
113
- const base = {
114
- task_ref: task.task_ref,
115
- status: "completed",
116
- output_ref: `output_${transactionId}_${index + 1}`
117
- };
118
- if (task.task_ref === "admission.preview") {
119
- base.preview_kind = "admission";
120
- base.admission_ref = `admission_${transactionId}_${index + 1}`;
121
- }
122
- if (task.task_ref === "a2a.negotiate") {
123
- base.negotiation_ref = `a2a_negotiation_${transactionId}_${index + 1}`;
124
- base.interaction_front = "a2a";
125
- }
126
- if (task.task_ref === "a2a.commit") {
127
- base.negotiation_ref = `a2a_negotiation_${transactionId}_${index + 1}`;
128
- base.commitment_ref = `a2a_commitment_${transactionId}_${index + 1}`;
129
- base.interaction_front = "a2a";
130
- }
131
- if (task.task_ref === "a2c.session.open") {
132
- base.session_ref = `a2c_session_${transactionId}_${index + 1}`;
133
- base.interaction_front = "a2c";
134
- }
135
- if (task.task_ref === "a2c.pack.preview") {
136
- base.preview_kind = "a2c_pack";
137
- base.pack_preview_ref = `a2c_pack_preview_${transactionId}_${index + 1}`;
138
- base.interaction_front = "a2c";
139
- }
140
- if (task.task_ref === "trust.handoff.emit") {
141
- base.handoff_kind = "trust";
142
- base.handoff_action = "emit";
143
- base.handoff_ref = `trust_handoff_${transactionId}_${index + 1}`;
144
- }
145
- if (task.task_ref === "trust.handoff.validate") {
146
- base.handoff_kind = "trust";
147
- base.handoff_action = "validate";
148
- base.handoff_ref = `trust_handoff_${transactionId}_${index + 1}`;
149
- }
150
- if (task.task_ref === "execution_receipt.handoff.emit") {
151
- base.handoff_kind = "execution_receipt";
152
- base.handoff_action = "emit";
153
- base.handoff_ref = `execution_receipt_handoff_${transactionId}_${index + 1}`;
154
- }
155
- if (task.task_ref === "execution_receipt.handoff.validate") {
156
- base.handoff_kind = "execution_receipt";
157
- base.handoff_action = "validate";
158
- base.handoff_ref = `execution_receipt_handoff_${transactionId}_${index + 1}`;
159
- }
160
- if (task.task_ref === "receipt_ledger.handoff.emit") {
161
- base.handoff_kind = "receipt_ledger";
162
- base.handoff_action = "emit";
163
- base.handoff_ref = `receipt_ledger_handoff_${transactionId}_${index + 1}`;
164
- }
165
- if (task.task_ref === "receipt_ledger.handoff.validate") {
166
- base.handoff_kind = "receipt_ledger";
167
- base.handoff_action = "validate";
168
- base.handoff_ref = `receipt_ledger_handoff_${transactionId}_${index + 1}`;
169
- }
170
- if (task.task_ref === "runtime.emit") {
171
- base.runtime_ref = `runtime_event_${transactionId}_${index + 1}`;
172
- base.runtime_action = "emit";
173
- }
174
- if (task.task_ref === "runtime.anchor") {
175
- base.anchor_ref = `anchor_${transactionId}_${index + 1}`;
176
- base.runtime_action = "anchor";
177
- }
178
- if (task.task_ref === "runtime.emit_anchor") {
179
- base.runtime_ref = `runtime_event_${transactionId}_${index + 1}`;
180
- base.anchor_ref = `anchor_${transactionId}_${index + 1}`;
181
- base.runtime_action = "emit_anchor";
182
- }
183
- if (task.task_ref === "identity.attest.preview") {
184
- base.preview_kind = "identity_attestation";
185
- base.identity_attestation_ref = `identity_attestation_${transactionId}_${index + 1}`;
186
- }
187
- if (task.task_ref === "identity.registry.link") {
188
- base.identity_link_ref = `identity_link_${transactionId}_${index + 1}`;
189
- base.registry_record_ref = `registry_${transactionId}_${index + 1}`;
190
- }
191
- if (task.task_ref === "registry.register") {
192
- base.registry_record_ref = `registry_${transactionId}_${index + 1}`;
193
- }
194
- if (task.task_ref === "registry.pack.bundle") {
195
- base.registry_pack_ref = `registry_pack_${transactionId}_${index + 1}`;
196
- }
197
- if (task.task_ref === "anchoring.submit") {
198
- base.anchor_ref = `anchor_${transactionId}_${index + 1}`;
199
- }
200
- if (task.task_ref === "anchoring.pack.preview") {
201
- base.preview_kind = "anchoring_pack";
202
- base.anchor_preview_ref = `anchor_preview_${transactionId}_${index + 1}`;
203
- }
204
- if (task.task_ref === "adapter.mcp.invoke") {
205
- base.adapter_lane = "mcp";
206
- base.tool_name = normalizedBody.tool_name || null;
207
- base.invocation_status = externalExecution ? "provider_completed" : "simulated";
208
- }
209
- if (externalExecution) {
210
- base.execution_provider = externalExecution.provider || null;
211
- base.execution_target_id = externalExecution.target_id || null;
212
- if (externalResponse && externalResponse.provider_job_id) base.provider_job_id = externalResponse.provider_job_id;
213
- if (externalOutputPayload !== null) base.output_payload = externalOutputPayload;
214
- if (externalResponse && externalResponse.output_ref) base.output_ref = externalResponse.output_ref;
215
- base.provider_status = externalResponse && externalResponse.provider_status
216
- ? externalResponse.provider_status
217
- : "completed";
218
- }
219
- return base;
220
- })()
221
- ]));
222
- const capabilityScopes = Array.from(new Set(resultTasks.flatMap((task) =>
223
- Array.isArray(task.catalogTask && task.catalogTask.capabilities) ? task.catalogTask.capabilities : []
224
- )));
225
- const adaptersUsed = Array.from(new Set(resultTasks.flatMap((task) =>
226
- Array.isArray(task.catalogTask && task.catalogTask.adapters) ? task.catalogTask.adapters : []
227
- )));
228
- const remediation = {
229
- status: "none",
230
- reason_code: null,
231
- active_case_type: null,
232
- active_case_id: null,
233
- compensating_action_status: null,
234
- updated_at_iso: completedAt.toISOString()
235
- };
236
- const payment = {
237
- payment_id: `pay_${quote.quote_id}`,
238
- scheme: quote.payment_scheme || "native",
239
- protocol: quote.payment_protocol || null,
240
- status: deferredCompletion ? "authorized" : "recorded",
241
- amount_minor: quote.amount_minor,
242
- currency: quote.currency,
243
- quote_id: quote.quote_id,
244
- wallet_id: opts.paymentVerification && opts.paymentVerification.wallet_id
245
- ? opts.paymentVerification.wallet_id
246
- : null,
247
- verification_mode: opts.paymentVerification && opts.paymentVerification.verification_mode
248
- ? opts.paymentVerification.verification_mode
249
- : null,
250
- recorded_at_iso: deferredCompletion ? null : completedAt.toISOString()
251
- };
252
- const bsvHints = buildBsvTeranodeSettlementHints({
253
- settlementMode: quote.settlement_mode,
254
- amountMinor: quote.amount_minor,
255
- currency: quote.currency,
256
- settlementBindingHash: quote.settlement_binding_hash,
257
- treasuryDestination: quote.treasury
258
- });
259
- const bsvPaymentReference = extractBsvTeranodePaymentReference(
260
- opts.paymentVerification && opts.paymentVerification.payment_payload
261
- ? opts.paymentVerification.payment_payload
262
- : null
263
- );
264
- const x402 = x402PaymentFacts(opts.paymentVerification);
265
- const settlement = x402
266
- ? {
267
- settlement_id: `settlement_${transactionId}`,
268
- mode: "x402_facilitator",
269
- preference: quote.settlement_preference || null,
270
- adapter: "x402_facilitator",
271
- integration_id: "builtin.payment.x402",
272
- binding_hash: quote.settlement_binding_hash || null,
273
- rail: "x402",
274
- network: x402.network,
275
- asset: x402.asset,
276
- amount: x402.amount,
277
- payer: x402.payer,
278
- pay_to: x402.pay_to,
279
- hints: null,
280
- txid: x402.txid,
281
- raw_tx: null,
282
- status: x402.settled ? "settled" : deferredCompletion ? "pending_completion" : "verified_not_settled",
283
- recorded_at_iso: deferredCompletion ? null : completedAt.toISOString()
284
- }
285
- : {
286
- settlement_id: `settlement_${transactionId}`,
287
- mode: quote.settlement_mode || null,
288
- preference: quote.settlement_preference || null,
289
- adapter: quote.settlement_adapter || null,
290
- integration_id: quote.settlement_integration_id || null,
291
- binding_hash: quote.settlement_binding_hash || null,
292
- rail: isBsvTeranodeSettlementMode(quote.settlement_mode) ? "bsv_teranode" : null,
293
- network: bsvHints ? bsvHints.network : null,
294
- hints: bsvHints,
295
- txid: bsvPaymentReference && bsvPaymentReference.txid ? bsvPaymentReference.txid : null,
296
- raw_tx: bsvPaymentReference && (bsvPaymentReference.raw_tx || bsvPaymentReference.rawTx)
297
- ? (bsvPaymentReference.raw_tx || bsvPaymentReference.rawTx)
298
- : null,
299
- status: deferredCompletion ? "pending_completion" : "recorded",
300
- recorded_at_iso: deferredCompletion ? null : completedAt.toISOString()
301
- };
302
- const treasuryDestination = x402
303
- ? {
304
- destination_id: `x402_${x402.network || "network"}_${x402.pay_to || "pay_to"}`,
305
- destination_kind: "x402_pay_to_address",
306
- account_id: quote.account_id,
307
- settlement_mode: "x402_facilitator",
308
- external_ref: x402.pay_to,
309
- network: x402.network,
310
- rail: "x402"
311
- }
312
- : buildTreasuryDestination(quote.account_id, quote.settlement_mode);
313
- const treasury = {
314
- ...treasuryDestination,
315
- treasury_receipt_id: `treasury_${receiptId}`,
316
- status: x402
317
- ? (x402.settled ? "settled" : deferredCompletion ? "pending_settlement" : "recorded")
318
- : deferredCompletion ? "pending_settlement" : "recorded",
319
- amount_minor: quote.amount_minor,
320
- currency: quote.currency,
321
- payment_id: payment.payment_id,
322
- settlement_id: settlement.settlement_id,
323
- custody_external_ref: treasuryDestination.external_ref || null,
324
- rail: treasuryDestination.rail || settlement.rail || null,
325
- recorded_at_iso: deferredCompletion ? null : completedAt.toISOString()
326
- };
327
- const quotedDefaultPath = quote.default_path || buildDefaultEconomicPath(
328
- Array.isArray(quote.integration_ids)
329
- ? quote.integration_ids.find((integrationId) => typeof integrationId === "string" && integrationId.startsWith("builtin.payment."))
330
- : null,
331
- quote.settlement_integration_id || null,
332
- treasury,
333
- {
334
- paymentProtocol: quote.payment_protocol || null,
335
- settlementMode: quote.settlement_mode || null,
336
- status: deferredCompletion ? "pending_completion" : "recorded"
337
- }
338
- );
339
- const defaultPath = x402
340
- ? {
341
- ...quotedDefaultPath,
342
- payment_protocol: "x402",
343
- settlement_mode: "x402_facilitator",
344
- treasury_destination_id: treasuryDestination.destination_id
345
- }
346
- : quotedDefaultPath;
347
- const transaction = {
348
- transaction_id: transactionId,
349
- account_id: quote.account_id,
350
- status: deferredCompletion ? "accepted" : "completed",
351
- intent: payload.command || "command.execute",
352
- amount_minor: quote.amount_minor,
353
- currency: quote.currency,
354
- quote_id: quote.quote_id,
355
- integration_ids: Array.isArray(quote.integration_ids) ? quote.integration_ids : [],
356
- protocols: Array.isArray(quote.protocols) ? quote.protocols : [],
357
- output_ref: externalResponse && externalResponse.output_ref ? externalResponse.output_ref : `output_${transactionId}`,
358
- callback_url: payload.callback_url || null,
359
- capabilities: quote.capabilities,
360
- adapters: quote.adapters,
361
- payment,
362
- settlement,
363
- treasury,
364
- default_path: {
365
- ...defaultPath,
366
- status: deferredCompletion ? "pending_completion" : "recorded"
367
- },
368
- execution: {
369
- status: deferredCompletion ? "accepted" : "completed",
370
- task_count: resultTasks.length,
371
- capability_scopes: capabilityScopes,
372
- adapters_used: adaptersUsed,
373
- integration_ids: Array.isArray(quote.execution_integration_ids) ? quote.execution_integration_ids : [],
374
- results_by_task_id: resultsByTaskId,
375
- provider: externalExecution ? externalExecution.provider || null : null,
376
- provider_target_id: externalExecution ? externalExecution.target_id || null : null,
377
- provider_job_id: externalResponse && externalResponse.provider_job_id ? externalResponse.provider_job_id : null
378
- },
379
- created_at_iso: startedAt.toISOString(),
380
- completed_at_iso: deferredCompletion ? null : completedAt.toISOString(),
381
- timing,
382
- remediation
383
- };
384
- const receipt = {
385
- receipt_id: receiptId,
386
- transaction_id: transactionId,
387
- account_id: quote.account_id,
388
- status: deferredCompletion ? "pending" : "completed",
389
- amount_minor: quote.amount_minor,
390
- currency: quote.currency,
391
- quote_id: quote.quote_id,
392
- integration_ids: Array.isArray(quote.integration_ids) ? quote.integration_ids : [],
393
- settlement_integration_id: quote.settlement_integration_id || null,
394
- payment,
395
- settlement,
396
- treasury,
397
- default_path: {
398
- ...defaultPath,
399
- status: deferredCompletion ? "pending_completion" : "recorded"
400
- },
401
- proof_ref: externalResponse && externalResponse.proof_ref ? externalResponse.proof_ref : `proof_${receiptId}`,
402
- execution_summary: {
403
- command: payload.command || "command.execute",
404
- task_count: resultTasks.length,
405
- tasks: resultTasks.map((task) => ({
406
- task_id: task.task_id,
407
- task_ref: task.task_ref
408
- }))
409
- },
410
- created_at_iso: deferredCompletion ? startedAt.toISOString() : completedAt.toISOString(),
411
- timing,
412
- remediation
413
- };
414
- const command = {
415
- command: payload.command || "command.execute",
416
- integration_ids: Array.isArray(quote.integration_ids) ? quote.integration_ids : [],
417
- payment,
418
- settlement,
419
- treasury,
420
- default_path: {
421
- ...defaultPath,
422
- status: deferredCompletion ? "pending_completion" : "recorded"
423
- },
424
- deliverables: resultTasks.map((task, index) => ({
425
- kind: task.task_ref === "admission.preview" ? "preview" : "result",
426
- ...(task.task_ref === "a2c.pack.preview"
427
- ? {
428
- kind: "preview"
429
- }
430
- : {}),
431
- task_id: task.task_id,
432
- task_ref: task.task_ref,
433
- ref: `deliverable_${transactionId}_${index + 1}`,
434
- // When a real execution target ran, carry its actual output into the
435
- // buyer-facing deliverable (not just a placeholder ref), so the paid caller
436
- // receives the real result in one response.
437
- ...(externalExecution
438
- ? {
439
- invocation_status: "provider_completed",
440
- execution_provider: externalExecution.provider || null,
441
- execution_target_id: externalExecution.target_id || null,
442
- provider_status: (externalResponse && externalResponse.provider_status) || "completed",
443
- ...(externalResponse && externalResponse.output_ref ? { output_ref: externalResponse.output_ref } : {}),
444
- ...(externalOutputPayload !== null ? { output_payload: externalOutputPayload } : {})
445
- }
446
- : {}),
447
- ...(task.task_ref === "admission.preview"
448
- ? {
449
- admission_ref: `admission_${transactionId}_${index + 1}`
450
- }
451
- : {}),
452
- ...(task.task_ref === "identity.attest.preview"
453
- ? {
454
- kind: "preview",
455
- identity_attestation_ref: `identity_attestation_${transactionId}_${index + 1}`
456
- }
457
- : {}),
458
- ...(task.task_ref === "identity.registry.link"
459
- ? {
460
- identity_link_ref: `identity_link_${transactionId}_${index + 1}`,
461
- registry_record_ref: `registry_${transactionId}_${index + 1}`
462
- }
463
- : {}),
464
- ...(task.task_ref === "a2a.negotiate"
465
- ? {
466
- negotiation_ref: `a2a_negotiation_${transactionId}_${index + 1}`,
467
- interaction_front: "a2a"
468
- }
469
- : {}),
470
- ...(task.task_ref === "a2a.commit"
471
- ? {
472
- negotiation_ref: `a2a_negotiation_${transactionId}_${index + 1}`,
473
- commitment_ref: `a2a_commitment_${transactionId}_${index + 1}`,
474
- interaction_front: "a2a"
475
- }
476
- : {}),
477
- ...(task.task_ref === "a2c.session.open"
478
- ? {
479
- session_ref: `a2c_session_${transactionId}_${index + 1}`,
480
- interaction_front: "a2c"
481
- }
482
- : {}),
483
- ...(task.task_ref === "a2c.pack.preview"
484
- ? {
485
- pack_preview_ref: `a2c_pack_preview_${transactionId}_${index + 1}`,
486
- interaction_front: "a2c"
487
- }
488
- : {}),
489
- ...(task.task_ref === "trust.handoff.emit"
490
- ? {
491
- handoff_kind: "trust",
492
- handoff_action: "emit",
493
- handoff_ref: `trust_handoff_${transactionId}_${index + 1}`
494
- }
495
- : {}),
496
- ...(task.task_ref === "trust.handoff.validate"
497
- ? {
498
- handoff_kind: "trust",
499
- handoff_action: "validate",
500
- handoff_ref: `trust_handoff_${transactionId}_${index + 1}`
501
- }
502
- : {}),
503
- ...(task.task_ref === "execution_receipt.handoff.emit"
504
- ? {
505
- handoff_kind: "execution_receipt",
506
- handoff_action: "emit",
507
- handoff_ref: `execution_receipt_handoff_${transactionId}_${index + 1}`
508
- }
509
- : {}),
510
- ...(task.task_ref === "execution_receipt.handoff.validate"
511
- ? {
512
- handoff_kind: "execution_receipt",
513
- handoff_action: "validate",
514
- handoff_ref: `execution_receipt_handoff_${transactionId}_${index + 1}`
515
- }
516
- : {}),
517
- ...(task.task_ref === "receipt_ledger.handoff.emit"
518
- ? {
519
- handoff_kind: "receipt_ledger",
520
- handoff_action: "emit",
521
- handoff_ref: `receipt_ledger_handoff_${transactionId}_${index + 1}`
522
- }
523
- : {}),
524
- ...(task.task_ref === "receipt_ledger.handoff.validate"
525
- ? {
526
- handoff_kind: "receipt_ledger",
527
- handoff_action: "validate",
528
- handoff_ref: `receipt_ledger_handoff_${transactionId}_${index + 1}`
529
- }
530
- : {}),
531
- ...(task.task_ref === "runtime.emit"
532
- ? {
533
- runtime_ref: `runtime_event_${transactionId}_${index + 1}`,
534
- runtime_action: "emit"
535
- }
536
- : {}),
537
- ...(task.task_ref === "runtime.anchor"
538
- ? {
539
- anchor_ref: `anchor_${transactionId}_${index + 1}`,
540
- runtime_action: "anchor"
541
- }
542
- : {}),
543
- ...(task.task_ref === "runtime.emit_anchor"
544
- ? {
545
- runtime_ref: `runtime_event_${transactionId}_${index + 1}`,
546
- anchor_ref: `anchor_${transactionId}_${index + 1}`,
547
- runtime_action: "emit_anchor"
548
- }
549
- : {}),
550
- ...(task.task_ref === "registry.register"
551
- ? {
552
- registry_record_ref: `registry_${transactionId}_${index + 1}`
553
- }
554
- : {}),
555
- ...(task.task_ref === "registry.pack.bundle"
556
- ? {
557
- registry_pack_ref: `registry_pack_${transactionId}_${index + 1}`
558
- }
559
- : {}),
560
- ...(task.task_ref === "anchoring.submit"
561
- ? {
562
- anchor_ref: `anchor_${transactionId}_${index + 1}`
563
- }
564
- : {}),
565
- ...(task.task_ref === "anchoring.pack.preview"
566
- ? {
567
- kind: "preview",
568
- anchor_preview_ref: `anchor_preview_${transactionId}_${index + 1}`
569
- }
570
- : {}),
571
- ...(task.task_ref === "adapter.mcp.invoke"
572
- ? {
573
- adapter_lane: "mcp",
574
- tool_name: normalizedBody.tool_name || null
575
- }
576
- : {})
577
- })),
578
- monitor: {
579
- transaction_id: transactionId,
580
- status_url: `/v1/governed-transactions/${transactionId}`,
581
- receipt_url: `/v1/receipts/${receiptId}`,
582
- delivery_url: `/v1/deliveries/delivery_${transactionId}`,
583
- payment_url: `/v1/payment-ledger/${payment.payment_id}`
584
- }
585
- };
586
- return { transaction, receipt, command };
587
- }
588
-
589
- module.exports = {
590
- createCommandArtifacts
591
- };