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.
- package/README.md +120 -92
- package/RELEASE_NOTES.md +7 -3
- package/START_HERE.md +56 -224
- package/bin/xytara.js +21 -8
- package/client.js +79 -1
- package/lib/{delivery_receipt.js → delivery_receipt_verify.js} +14 -100
- package/package.json +25 -35
- package/scripts/verify_client.js +418 -0
- package/scripts/verify_release_candidate.js +146 -45
- package/.env.example +0 -173
- package/ADAPTER_START_HERE.md +0 -56
- package/BSV_TERANODE_PLATFORM_DISCONTINUITY_RUNBOOK.md +0 -126
- package/CARRIED_HANDOFF_DEMO.md +0 -60
- package/EXAMPLE_PATHS.md +0 -53
- package/FINAL_CONTRACT.md +0 -498
- package/PARTNER_READY_PATH.md +0 -71
- package/PUBLIC_DEMO_SCRIPT.md +0 -78
- package/REAL_PAYMENT_SETUP.md +0 -320
- package/SERVICE_CONTRACT.md +0 -419
- package/SUPABASE_RUNTIME_STATE_SETUP.md +0 -61
- package/TERMINOLOGY.md +0 -50
- package/WHY_XYTARA_XOONYA.md +0 -63
- package/XT1_EXECUTION_TRUTH_STANDARD.md +0 -78
- package/XYTARA_ADAPTER_PROTOCOL_TRUTH_MODEL.md +0 -75
- package/XYTARA_AUTONOMOUS_ENTRY_MODEL.md +0 -124
- package/XYTARA_DEFAULT_PATH_MODEL.md +0 -84
- package/XYTARA_EXECUTION_TRUTH_MODEL.md +0 -171
- package/XYTARA_PAYMENT_RAIL_TRUTH_MODEL.md +0 -68
- package/adapters/AUTHORING_GUIDE.md +0 -244
- package/adapters/ONBOARDING_POSTURE.md +0 -61
- package/adapters/THIRD_PARTY_SUBMISSION_PROCESS.md +0 -84
- package/adapters/adapter-manifest.schema.json +0 -283
- package/adapters/examples/example-execution-adapter.js +0 -61
- package/adapters/examples/example-execution-adapter.manifest.json +0 -81
- package/adapters/examples/example-settlement-adapter.js +0 -55
- package/adapters/examples/example-settlement-adapter.manifest.json +0 -78
- package/adapters/examples/example-third-party-acp-registration.submission-bundle.json +0 -124
- package/adapters/examples/example-third-party-erc8004-registration.submission-bundle.json +0 -121
- package/adapters/examples/example-third-party-identity-registration.certification-pack.json +0 -22
- package/adapters/examples/example-third-party-identity-registration.record.json +0 -26
- package/adapters/examples/example-third-party-identity-registration.submission-bundle.json +0 -126
- package/adapters/examples/example-third-party-langchain-registration.submission-bundle.json +0 -124
- package/adapters/examples/example-third-party-mpp-registration.submission-bundle.json +0 -120
- package/adapters/examples/example-third-party-registration.certification-pack.json +0 -22
- package/adapters/examples/example-third-party-registration.record.json +0 -28
- package/adapters/examples/example-third-party-registration.submission-bundle.json +0 -126
- package/adapters/examples/example-third-party-settlement-registration.certification-pack.json +0 -22
- package/adapters/examples/example-third-party-settlement-registration.record.json +0 -26
- package/adapters/examples/example-third-party-settlement-registration.submission-bundle.json +0 -127
- package/adapters/examples/langchain-reference-execution-adapter.js +0 -81
- package/adapters/examples/langchain-reference-execution-adapter.manifest.json +0 -79
- package/adapters/examples/langgraph-reference-execution-adapter.js +0 -81
- package/adapters/examples/langgraph-reference-execution-adapter.manifest.json +0 -79
- package/adapters/examples/minimal-third-party-execution-adapter.js +0 -61
- package/adapters/examples/minimal-third-party-execution-adapter.manifest.json +0 -79
- package/adapters/examples/minimal-third-party-execution-registration.record.json +0 -26
- package/adapters/examples/minimal-third-party-execution.certification-pack.json +0 -22
- package/adapters/examples/minimal-third-party-execution.submission-bundle.json +0 -126
- package/adapters/integration-certification-pack.schema.json +0 -82
- package/adapters/integration-registration-record.schema.json +0 -114
- package/adapters/integration-submission-bundle-set.schema.json +0 -39
- package/adapters/integration-submission-bundle.schema.json +0 -34
- package/adapters/interfaces.js +0 -56
- package/bin/xytara-release.js +0 -1429
- package/examples/_demo_env.js +0 -40
- package/examples/adapter_review_walkthrough.js +0 -54
- package/examples/export_carried_handoff.js +0 -81
- package/examples/funded_runtime_walkthrough.js +0 -71
- package/examples/partner_launch_walkthrough.js +0 -44
- package/examples/quickstart.js +0 -3256
- package/fixtures/catalog.js +0 -1156
- package/index.js +0 -395
- package/integrations/dispatch.js +0 -276
- package/integrations/registry-snapshot.schema.json +0 -36
- package/integrations/registry.js +0 -2261
- package/integrations/views.js +0 -28
- package/lib/a2a_lane_contract.js +0 -104
- package/lib/a2a_rpc.js +0 -287
- package/lib/a2c_lane_contract.js +0 -111
- package/lib/account_auth.js +0 -585
- package/lib/acp_lane_contract.js +0 -54
- package/lib/activity_audit_contract.js +0 -322
- package/lib/adapter_certification_contract.js +0 -130
- package/lib/adapter_depth_contract.js +0 -218
- package/lib/adapter_pack.js +0 -118
- package/lib/adapter_partner_pack.js +0 -89
- package/lib/adapter_promotion_pack.js +0 -89
- package/lib/adapter_protocol_truth_contract.js +0 -229
- package/lib/agent_identity.js +0 -162
- package/lib/announcement_pack.js +0 -61
- package/lib/artifact_distribution_lane_contract.js +0 -54
- package/lib/asyncapi_contract.js +0 -150
- package/lib/auth_interop_contract.js +0 -80
- package/lib/authority_binding_lifecycle_contract.js +0 -182
- package/lib/autonomous_entry_contract.js +0 -409
- package/lib/bolt_adapter.js +0 -187
- package/lib/bolt_lane_contract.js +0 -55
- package/lib/bolt_payment_front.js +0 -224
- package/lib/business_cockpit.js +0 -378
- package/lib/buyer_event_log.js +0 -230
- package/lib/buyer_safety_policy.js +0 -132
- package/lib/capability_execution_truth.js +0 -276
- package/lib/capability_registry.js +0 -633
- package/lib/catalog_contract.js +0 -966
- package/lib/catalog_family_model.js +0 -193
- package/lib/catalog_views.js +0 -55
- package/lib/cdp_jwt.js +0 -57
- package/lib/checkout_event_security.js +0 -142
- package/lib/checkout_processor_adapter.js +0 -217
- package/lib/cloudevents_contract.js +0 -80
- package/lib/command_flow.js +0 -911
- package/lib/commerce_artifacts.js +0 -591
- package/lib/commerce_authority.js +0 -449
- package/lib/commerce_bridge.js +0 -274
- package/lib/commerce_cases.js +0 -399
- package/lib/commerce_checkout.js +0 -509
- package/lib/commerce_coordination.js +0 -346
- package/lib/commerce_economics.js +0 -4017
- package/lib/commerce_identity.js +0 -578
- package/lib/commerce_quotes.js +0 -266
- package/lib/commerce_reports.js +0 -14461
- package/lib/commerce_runtime.js +0 -322
- package/lib/commerce_shell.js +0 -257
- package/lib/crypto_agility_matrix.js +0 -125
- package/lib/default_path_contract.js +0 -412
- package/lib/delivery_summary_contract.js +0 -95
- package/lib/ecosystem_entry.js +0 -64
- package/lib/erc8004_lane_contract.js +0 -65
- package/lib/event_system_lane_contract.js +0 -75
- package/lib/execution_dedupe.js +0 -86
- package/lib/execution_truth_contract.js +0 -234
- package/lib/external_credit_bridge.js +0 -142
- package/lib/external_execution_policy.js +0 -143
- package/lib/external_execution_runtime.js +0 -238
- package/lib/feature_control_lane_contract.js +0 -54
- package/lib/first_run_conversion_contract.js +0 -290
- package/lib/framework_lane_contract.js +0 -89
- package/lib/framework_provider_promotion.js +0 -235
- package/lib/full_catalog_contract.js +0 -525
- package/lib/go_live_operator_pack.js +0 -391
- package/lib/http_transport.js +0 -99
- package/lib/identity_auth.js +0 -175
- package/lib/identity_interop_contract.js +0 -82
- package/lib/integration_matrix_contract.js +0 -102
- package/lib/l402_adapter.js +0 -241
- package/lib/l402_lane_contract.js +0 -55
- package/lib/l402_payment_front.js +0 -265
- package/lib/launch_narrative.js +0 -53
- package/lib/lifecycle_continuity_contract.js +0 -115
- package/lib/machine_identity_registry_contract.js +0 -199
- package/lib/major_rails_lane_contract.js +0 -150
- package/lib/market_lane_contract.js +0 -467
- package/lib/market_lane_depth_contract.js +0 -182
- package/lib/market_lane_promotion_contract.js +0 -210
- package/lib/market_lane_trace_contract.js +0 -278
- package/lib/mcp_lane_contract.js +0 -137
- package/lib/mpp_adapter.js +0 -237
- package/lib/network_transport.js +0 -110
- package/lib/offline_verifiability_recovery_contract.js +0 -155
- package/lib/openapi_contract.js +0 -300
- package/lib/operational_receipt_contract.js +0 -165
- package/lib/operator_intelligence.js +0 -407
- package/lib/outreach_copy_pack.js +0 -51
- package/lib/outreach_message_pack.js +0 -71
- package/lib/outreach_proof.js +0 -71
- package/lib/outreach_target_pack.js +0 -60
- package/lib/partner_intelligence.js +0 -105
- package/lib/payment_config.js +0 -257
- package/lib/payment_front_registry.js +0 -53
- package/lib/payment_protocol_contract.js +0 -165
- package/lib/payment_rail_truth_contract.js +0 -324
- package/lib/payment_verification.js +0 -357
- package/lib/phase_10_closeout_pack.js +0 -45
- package/lib/phase_10_completion_pack.js +0 -76
- package/lib/phase_10_decision_record_pack.js +0 -54
- package/lib/phase_10_decision_resolution_pack.js +0 -53
- package/lib/phase_10_demand_signal_adapters_runtime_pack.js +0 -74
- package/lib/phase_10_ecosystem_backlog_triage_runtime_pack.js +0 -74
- package/lib/phase_10_freeze_baseline_pack.js +0 -67
- package/lib/phase_10_freeze_review_pack.js +0 -64
- package/lib/phase_10_gate_pack.js +0 -57
- package/lib/phase_10_long_tail_continuity_pack.js +0 -80
- package/lib/phase_10_long_tail_ecosystem_pack.js +0 -66
- package/lib/phase_10_niche_extension_registry_runtime_pack.js +0 -74
- package/lib/phase_1_claude_mcp_pack.js +0 -60
- package/lib/phase_1_claude_mcp_runtime_pack.js +0 -52
- package/lib/phase_1_ecosystem_pack.js +0 -67
- package/lib/phase_1_openai_codex_pack.js +0 -60
- package/lib/phase_1_openai_codex_runtime_pack.js +0 -52
- package/lib/phase_2_base_runtime_pack.js +0 -71
- package/lib/phase_2_base_usdc_runtime_pack.js +0 -72
- package/lib/phase_2_closeout_pack.js +0 -65
- package/lib/phase_2_completion_pack.js +0 -113
- package/lib/phase_2_decision_record_pack.js +0 -66
- package/lib/phase_2_decision_resolution_pack.js +0 -69
- package/lib/phase_2_eth_runtime_pack.js +0 -70
- package/lib/phase_2_evm_base_runtime_pack.js +0 -73
- package/lib/phase_2_evm_runtime_pack.js +0 -71
- package/lib/phase_2_flip_preview_pack.js +0 -60
- package/lib/phase_2_freeze_review_pack.js +0 -99
- package/lib/phase_2_gate_pack.js +0 -77
- package/lib/phase_2_payment_rails_pack.js +0 -71
- package/lib/phase_2_usdc_runtime_pack.js +0 -71
- package/lib/phase_3_brc_runtime_pack.js +0 -81
- package/lib/phase_3_bsv_teranode_runtime_pack.js +0 -83
- package/lib/phase_3_closeout_pack.js +0 -62
- package/lib/phase_3_completion_pack.js +0 -94
- package/lib/phase_3_decision_record_pack.js +0 -64
- package/lib/phase_3_decision_resolution_pack.js +0 -69
- package/lib/phase_3_freeze_baseline_pack.js +0 -67
- package/lib/phase_3_freeze_review_pack.js +0 -80
- package/lib/phase_3_gate_pack.js +0 -76
- package/lib/phase_3_metanet_runtime_pack.js +0 -81
- package/lib/phase_3_native_bsv_pack.js +0 -91
- package/lib/phase_3_native_continuity_pack.js +0 -82
- package/lib/phase_4_attestation_runtime_pack.js +0 -75
- package/lib/phase_4_closeout_pack.js +0 -45
- package/lib/phase_4_completion_pack.js +0 -94
- package/lib/phase_4_decision_record_pack.js +0 -54
- package/lib/phase_4_decision_resolution_pack.js +0 -45
- package/lib/phase_4_erc8004_runtime_pack.js +0 -76
- package/lib/phase_4_freeze_baseline_pack.js +0 -67
- package/lib/phase_4_freeze_review_pack.js +0 -68
- package/lib/phase_4_gate_pack.js +0 -58
- package/lib/phase_4_identity_registry_runtime_pack.js +0 -75
- package/lib/phase_4_identity_trust_pack.js +0 -73
- package/lib/phase_4_trust_continuity_pack.js +0 -86
- package/lib/phase_5_antelope_runtime_pack.js +0 -76
- package/lib/phase_5_closeout_pack.js +0 -44
- package/lib/phase_5_completion_pack.js +0 -82
- package/lib/phase_5_constellation_dag_runtime_pack.js +0 -76
- package/lib/phase_5_decision_record_pack.js +0 -54
- package/lib/phase_5_decision_resolution_pack.js +0 -45
- package/lib/phase_5_digibyte_dgb_runtime_pack.js +0 -76
- package/lib/phase_5_freeze_baseline_pack.js +0 -67
- package/lib/phase_5_freeze_review_pack.js +0 -68
- package/lib/phase_5_gate_pack.js +0 -58
- package/lib/phase_5_hedera_hbar_runtime_pack.js +0 -76
- package/lib/phase_5_kaspa_kas_runtime_pack.js +0 -76
- package/lib/phase_5_major_rails_continuity_pack.js +0 -86
- package/lib/phase_5_major_rails_pack.js +0 -110
- package/lib/phase_5_metal_runtime_pack.js +0 -76
- package/lib/phase_5_polkadot_dot_runtime_pack.js +0 -76
- package/lib/phase_5_proton_xpr_runtime_pack.js +0 -76
- package/lib/phase_5_solana_runtime_pack.js +0 -76
- package/lib/phase_6_autogen_runtime_pack.js +0 -72
- package/lib/phase_6_closeout_pack.js +0 -46
- package/lib/phase_6_completion_pack.js +0 -77
- package/lib/phase_6_decision_record_pack.js +0 -54
- package/lib/phase_6_decision_resolution_pack.js +0 -53
- package/lib/phase_6_framework_continuity_pack.js +0 -81
- package/lib/phase_6_framework_runtime_pack.js +0 -68
- package/lib/phase_6_freeze_baseline_pack.js +0 -68
- package/lib/phase_6_freeze_review_pack.js +0 -65
- package/lib/phase_6_gate_pack.js +0 -59
- package/lib/phase_6_langchain_runtime_pack.js +0 -72
- package/lib/phase_6_langgraph_runtime_pack.js +0 -72
- package/lib/phase_6_semantic_kernel_runtime_pack.js +0 -72
- package/lib/phase_7_closeout_pack.js +0 -45
- package/lib/phase_7_completion_pack.js +0 -85
- package/lib/phase_7_decision_record_pack.js +0 -53
- package/lib/phase_7_decision_resolution_pack.js +0 -53
- package/lib/phase_7_event_system_continuity_pack.js +0 -89
- package/lib/phase_7_event_system_pack.js +0 -76
- package/lib/phase_7_freeze_baseline_pack.js +0 -74
- package/lib/phase_7_freeze_review_pack.js +0 -65
- package/lib/phase_7_gate_pack.js +0 -58
- package/lib/phase_7_kafka_runtime_pack.js +0 -74
- package/lib/phase_7_mqtt_runtime_pack.js +0 -74
- package/lib/phase_7_nats_runtime_pack.js +0 -74
- package/lib/phase_7_webhook_event_bus_runtime_pack.js +0 -74
- package/lib/phase_8_closeout_pack.js +0 -46
- package/lib/phase_8_completion_pack.js +0 -82
- package/lib/phase_8_decision_record_pack.js +0 -54
- package/lib/phase_8_decision_resolution_pack.js +0 -53
- package/lib/phase_8_external_receipt_import_runtime_pack.js +0 -74
- package/lib/phase_8_external_result_import_runtime_pack.js +0 -74
- package/lib/phase_8_freeze_baseline_pack.js +0 -71
- package/lib/phase_8_freeze_review_pack.js +0 -64
- package/lib/phase_8_gate_pack.js +0 -58
- package/lib/phase_8_proof_bridge_continuity_pack.js +0 -86
- package/lib/phase_8_proof_bridges_pack.js +0 -72
- package/lib/phase_8_proof_bundle_normalization_runtime_pack.js +0 -74
- package/lib/phase_9_closeout_pack.js +0 -46
- package/lib/phase_9_completion_pack.js +0 -82
- package/lib/phase_9_custody_refs_runtime_pack.js +0 -74
- package/lib/phase_9_decision_record_pack.js +0 -54
- package/lib/phase_9_decision_resolution_pack.js +0 -53
- package/lib/phase_9_freeze_baseline_pack.js +0 -71
- package/lib/phase_9_freeze_review_pack.js +0 -64
- package/lib/phase_9_gate_pack.js +0 -58
- package/lib/phase_9_operator_accounting_bridges_runtime_pack.js +0 -74
- package/lib/phase_9_treasury_connectivity_pack.js +0 -72
- package/lib/phase_9_treasury_continuity_pack.js +0 -86
- package/lib/phase_9_treasury_destinations_runtime_pack.js +0 -74
- package/lib/phase_program_pack.js +0 -120
- package/lib/pricing_optimization_contract.js +0 -775
- package/lib/protocol_lane_contract.js +0 -117
- package/lib/provenance_lane_contract.js +0 -54
- package/lib/provider_lane_contract.js +0 -240
- package/lib/provider_network_contract.js +0 -149
- package/lib/provider_payout_execution.js +0 -155
- package/lib/provider_registry.js +0 -852
- package/lib/provider_runtime_journey_contract.js +0 -183
- package/lib/public_surface_policy_contract.js +0 -111
- package/lib/publish_plan.js +0 -51
- package/lib/rate_limiter.js +0 -81
- package/lib/record_queries.js +0 -48
- package/lib/release_candidate.js +0 -50
- package/lib/release_center.js +0 -1093
- package/lib/release_history.js +0 -205
- package/lib/release_manifest.js +0 -113
- package/lib/release_pack.js +0 -453
- package/lib/request_rate_limit.js +0 -144
- package/lib/resource_views.js +0 -31
- package/lib/revenue_launch_path_contract.js +0 -326
- package/lib/route_matchers.js +0 -34
- package/lib/route_params.js +0 -19
- package/lib/runtime_bridge.js +0 -124
- package/lib/runtime_operations_worker.js +0 -282
- package/lib/runtime_state_store.js +0 -495
- package/lib/settlement_bsv_live.js +0 -600
- package/lib/settlement_bsv_teranode.js +0 -117
- package/lib/settlement_lane_contract.js +0 -111
- package/lib/shared_signals_lane_contract.js +0 -54
- package/lib/signed_audit_provenance_contract.js +0 -83
- package/lib/soft_launch_pack.js +0 -78
- package/lib/stablecoin_lane_contract.js +0 -76
- package/lib/stripe_mpp_lane_contract.js +0 -96
- package/lib/stripe_mpp_payment_front.js +0 -258
- package/lib/telemetry_lane_contract.js +0 -54
- package/lib/treasury_destinations_contract.js +0 -764
- package/lib/treasury_egress_policy_contract.js +0 -91
- package/lib/treasury_lane_contract.js +0 -84
- package/lib/trust_portability_boundary_contract.js +0 -72
- package/lib/x402_facilitator.js +0 -198
- package/lib/x402_lane_contract.js +0 -136
- package/lib/x402_settlement_recovery.js +0 -175
- package/scripts/buyer_events_daily_report.js +0 -79
- package/scripts/registry_cli.js +0 -275
- package/scripts/state_backup_offsite.js +0 -196
- package/scripts/verify_a2a_rpc.js +0 -131
- package/scripts/verify_adapters.js +0 -554
- package/scripts/verify_agent_identity.js +0 -153
- package/scripts/verify_all.js +0 -4963
- package/scripts/verify_bolt_adapter.js +0 -128
- package/scripts/verify_buyer_event_log.js +0 -128
- package/scripts/verify_buyer_safety.js +0 -141
- package/scripts/verify_cdp_facilitator.js +0 -110
- package/scripts/verify_checkout_processor.js +0 -109
- package/scripts/verify_commerce_bridge.js +0 -177
- package/scripts/verify_control_plane_contracts.js +0 -34
- package/scripts/verify_control_plane_routes.js +0 -70
- package/scripts/verify_delivery_summary.js +0 -112
- package/scripts/verify_examples.js +0 -19
- package/scripts/verify_execution_dedupe.js +0 -189
- package/scripts/verify_execution_surfacing.js +0 -76
- package/scripts/verify_external_execution_retry.js +0 -140
- package/scripts/verify_final_activation.js +0 -191
- package/scripts/verify_first_run_conversions.js +0 -81
- package/scripts/verify_framework_provider_promotion.js +0 -152
- package/scripts/verify_full_catalog.js +0 -174
- package/scripts/verify_integrations.js +0 -620
- package/scripts/verify_l402_adapter.js +0 -86
- package/scripts/verify_lifecycle_continuity.js +0 -96
- package/scripts/verify_lifecycle_spend_binding.js +0 -88
- package/scripts/verify_market_lane_depth.js +0 -94
- package/scripts/verify_market_lane_promotion.js +0 -103
- package/scripts/verify_market_lane_traces.js +0 -98
- package/scripts/verify_market_lanes.js +0 -102
- package/scripts/verify_mpp_adapter.js +0 -128
- package/scripts/verify_operator_observability_boundary.js +0 -83
- package/scripts/verify_pricing_experiment_plan.js +0 -124
- package/scripts/verify_production_readiness.js +0 -268
- package/scripts/verify_provider_network.js +0 -819
- package/scripts/verify_provider_runtime_breadth.js +0 -109
- package/scripts/verify_provider_runtime_journeys.js +0 -111
- package/scripts/verify_rate_limiter.js +0 -52
- package/scripts/verify_refund_credit.js +0 -106
- package/scripts/verify_revenue_launch_paths.js +0 -105
- package/scripts/verify_runtime_durability.js +0 -52
- package/scripts/verify_runtime_state_guard.js +0 -117
- package/scripts/verify_service.js +0 -15421
- package/scripts/verify_settlement.js +0 -116
- package/scripts/verify_tooling.js +0 -1412
- package/scripts/verify_treasury_public_boundary.js +0 -97
- package/scripts/verify_verify_execute_settle.js +0 -209
- package/scripts/verify_x402_facilitator.js +0 -307
- package/scripts/verify_x402_settlement_recovery.js +0 -153
- 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 };
|