xytara 3.1.0 → 3.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +67 -58
- package/ADAPTER_START_HERE.md +56 -56
- package/CARRIED_HANDOFF_DEMO.md +60 -60
- package/EXAMPLE_PATHS.md +53 -53
- package/FINAL_CONTRACT.md +498 -498
- package/LICENSE +201 -201
- package/NOTICE +3 -3
- package/PARTNER_READY_PATH.md +71 -71
- package/PUBLIC_DEMO_SCRIPT.md +78 -78
- package/README.md +6 -1
- package/REAL_PAYMENT_SETUP.md +32 -3
- package/RELEASE_NOTES.md +14 -14
- package/SERVICE_CONTRACT.md +419 -419
- package/START_HERE.md +1 -1
- package/SUPABASE_RUNTIME_STATE_SETUP.md +61 -61
- package/TERMINOLOGY.md +50 -50
- package/WHY_XYTARA_XOONYA.md +63 -63
- package/XT1_EXECUTION_TRUTH_STANDARD.md +78 -78
- package/XYTARA_ADAPTER_PROTOCOL_TRUTH_MODEL.md +75 -75
- package/XYTARA_AUTONOMOUS_ENTRY_MODEL.md +124 -124
- package/XYTARA_DEFAULT_PATH_MODEL.md +84 -84
- package/XYTARA_EXECUTION_TRUTH_MODEL.md +171 -171
- package/XYTARA_PAYMENT_RAIL_TRUTH_MODEL.md +68 -68
- package/adapters/AUTHORING_GUIDE.md +243 -243
- package/adapters/ONBOARDING_POSTURE.md +61 -61
- package/adapters/THIRD_PARTY_SUBMISSION_PROCESS.md +84 -84
- package/adapters/adapter-manifest.schema.json +283 -283
- package/adapters/examples/example-execution-adapter.js +61 -61
- package/adapters/examples/example-execution-adapter.manifest.json +81 -81
- package/adapters/examples/example-settlement-adapter.js +55 -55
- package/adapters/examples/example-settlement-adapter.manifest.json +78 -78
- package/adapters/examples/example-third-party-acp-registration.submission-bundle.json +124 -124
- package/adapters/examples/example-third-party-erc8004-registration.submission-bundle.json +121 -121
- package/adapters/examples/example-third-party-identity-registration.certification-pack.json +22 -22
- package/adapters/examples/example-third-party-identity-registration.record.json +26 -26
- package/adapters/examples/example-third-party-identity-registration.submission-bundle.json +126 -126
- package/adapters/examples/example-third-party-langchain-registration.submission-bundle.json +124 -124
- package/adapters/examples/example-third-party-mpp-registration.submission-bundle.json +120 -120
- package/adapters/examples/example-third-party-registration.certification-pack.json +22 -22
- package/adapters/examples/example-third-party-registration.record.json +28 -28
- package/adapters/examples/example-third-party-registration.submission-bundle.json +126 -126
- package/adapters/examples/example-third-party-settlement-registration.certification-pack.json +22 -22
- package/adapters/examples/example-third-party-settlement-registration.record.json +26 -26
- package/adapters/examples/example-third-party-settlement-registration.submission-bundle.json +127 -127
- package/adapters/examples/langchain-reference-execution-adapter.js +81 -81
- package/adapters/examples/langchain-reference-execution-adapter.manifest.json +79 -79
- package/adapters/examples/langgraph-reference-execution-adapter.js +81 -81
- package/adapters/examples/langgraph-reference-execution-adapter.manifest.json +79 -79
- package/adapters/examples/minimal-third-party-execution-adapter.js +61 -61
- package/adapters/examples/minimal-third-party-execution-adapter.manifest.json +79 -79
- package/adapters/examples/minimal-third-party-execution-registration.record.json +26 -26
- package/adapters/examples/minimal-third-party-execution.certification-pack.json +22 -22
- package/adapters/examples/minimal-third-party-execution.submission-bundle.json +126 -126
- package/adapters/integration-certification-pack.schema.json +82 -82
- package/adapters/integration-registration-record.schema.json +114 -114
- package/adapters/integration-submission-bundle-set.schema.json +39 -39
- package/adapters/integration-submission-bundle.schema.json +34 -34
- package/adapters/interfaces.js +56 -56
- package/bin/xytara-first-run.js +244 -244
- package/bin/xytara-release.js +1429 -1429
- package/bin/xytara-run.js +186 -186
- package/bin/xytara.js +80 -80
- package/client.js +3 -3
- package/examples/_demo_env.js +40 -0
- package/examples/adapter_review_walkthrough.js +54 -53
- package/examples/export_carried_handoff.js +81 -80
- package/examples/funded_runtime_walkthrough.js +71 -70
- package/examples/generated.carried-handoff.json +30 -0
- package/examples/partner_launch_walkthrough.js +44 -43
- package/examples/quickstart.js +3256 -3255
- package/fixtures/catalog.js +1134 -1134
- package/index.js +395 -395
- package/integrations/dispatch.js +276 -276
- package/integrations/registry-snapshot.schema.json +36 -36
- package/integrations/registry.js +2261 -2261
- package/integrations/views.js +28 -28
- package/lib/a2a_lane_contract.js +104 -104
- package/lib/a2c_lane_contract.js +111 -111
- package/lib/account_auth.js +518 -518
- package/lib/acp_lane_contract.js +54 -54
- package/lib/activity_audit_contract.js +322 -322
- package/lib/adapter_certification_contract.js +130 -130
- package/lib/adapter_depth_contract.js +156 -156
- package/lib/adapter_pack.js +118 -118
- package/lib/adapter_partner_pack.js +89 -89
- package/lib/adapter_promotion_pack.js +89 -89
- package/lib/adapter_protocol_truth_contract.js +229 -229
- package/lib/announcement_pack.js +61 -61
- package/lib/artifact_distribution_lane_contract.js +54 -54
- package/lib/asyncapi_contract.js +150 -150
- package/lib/auth_interop_contract.js +80 -80
- package/lib/authority_binding_lifecycle_contract.js +182 -182
- package/lib/autonomous_entry_contract.js +409 -409
- package/lib/bolt_lane_contract.js +55 -55
- package/lib/bolt_payment_front.js +172 -172
- package/lib/business_cockpit.js +378 -378
- package/lib/capability_execution_truth.js +272 -272
- package/lib/capability_registry.js +633 -633
- package/lib/catalog_contract.js +966 -966
- package/lib/catalog_family_model.js +193 -193
- package/lib/catalog_views.js +55 -55
- package/lib/checkout_event_security.js +142 -142
- package/lib/cloudevents_contract.js +80 -80
- package/lib/command_flow.js +411 -406
- package/lib/commerce_artifacts.js +503 -503
- package/lib/commerce_authority.js +449 -449
- package/lib/commerce_cases.js +317 -317
- package/lib/commerce_checkout.js +509 -509
- package/lib/commerce_client.js +7687 -7676
- package/lib/commerce_coordination.js +346 -346
- package/lib/commerce_economics.js +4017 -4016
- package/lib/commerce_identity.js +578 -578
- package/lib/commerce_quotes.js +237 -237
- package/lib/commerce_reports.js +14461 -14461
- package/lib/commerce_runtime.js +315 -315
- package/lib/commerce_shell.js +257 -257
- package/lib/crypto_agility_matrix.js +125 -125
- package/lib/default_path_contract.js +412 -412
- package/lib/delivery_summary_contract.js +95 -95
- package/lib/ecosystem_entry.js +64 -64
- package/lib/erc8004_lane_contract.js +65 -65
- package/lib/event_system_lane_contract.js +75 -75
- package/lib/execution_truth_contract.js +234 -234
- package/lib/external_credit_bridge.js +142 -142
- package/lib/external_execution_runtime.js +132 -132
- package/lib/feature_control_lane_contract.js +54 -54
- package/lib/first_run_conversion_contract.js +290 -290
- package/lib/framework_lane_contract.js +89 -89
- package/lib/framework_provider_promotion.js +235 -235
- package/lib/full_catalog_contract.js +525 -525
- package/lib/go_live_operator_pack.js +391 -391
- package/lib/http_transport.js +73 -73
- package/lib/identity_auth.js +175 -175
- package/lib/identity_interop_contract.js +82 -82
- package/lib/integration_matrix_contract.js +102 -102
- package/lib/l402_lane_contract.js +55 -55
- package/lib/l402_payment_front.js +192 -192
- package/lib/launch_narrative.js +53 -53
- package/lib/lifecycle_continuity_contract.js +115 -115
- package/lib/machine_identity_registry_contract.js +199 -199
- package/lib/major_rails_lane_contract.js +150 -150
- package/lib/market_lane_contract.js +467 -467
- package/lib/market_lane_depth_contract.js +182 -182
- package/lib/market_lane_promotion_contract.js +210 -210
- package/lib/market_lane_trace_contract.js +278 -278
- package/lib/mcp_lane_contract.js +137 -137
- package/lib/network_transport.js +110 -110
- package/lib/offline_verifiability_recovery_contract.js +155 -155
- package/lib/openapi_contract.js +296 -296
- package/lib/operational_receipt_contract.js +165 -165
- package/lib/operator_intelligence.js +407 -407
- package/lib/outreach_copy_pack.js +51 -51
- package/lib/outreach_message_pack.js +71 -71
- package/lib/outreach_proof.js +71 -71
- package/lib/outreach_target_pack.js +60 -60
- package/lib/partner_intelligence.js +105 -105
- package/lib/payment_config.js +239 -191
- package/lib/payment_front_registry.js +53 -53
- package/lib/payment_protocol_contract.js +165 -165
- package/lib/payment_rail_truth_contract.js +324 -324
- package/lib/payment_verification.js +312 -264
- package/lib/phase_10_closeout_pack.js +45 -45
- package/lib/phase_10_completion_pack.js +76 -76
- package/lib/phase_10_decision_record_pack.js +54 -54
- package/lib/phase_10_decision_resolution_pack.js +53 -53
- package/lib/phase_10_demand_signal_adapters_runtime_pack.js +74 -74
- package/lib/phase_10_ecosystem_backlog_triage_runtime_pack.js +74 -74
- package/lib/phase_10_freeze_baseline_pack.js +67 -67
- package/lib/phase_10_freeze_review_pack.js +64 -64
- package/lib/phase_10_gate_pack.js +57 -57
- package/lib/phase_10_long_tail_continuity_pack.js +80 -80
- package/lib/phase_10_long_tail_ecosystem_pack.js +66 -66
- package/lib/phase_10_niche_extension_registry_runtime_pack.js +74 -74
- package/lib/phase_1_claude_mcp_pack.js +60 -60
- package/lib/phase_1_claude_mcp_runtime_pack.js +52 -52
- package/lib/phase_1_ecosystem_pack.js +67 -67
- package/lib/phase_1_openai_codex_pack.js +60 -60
- package/lib/phase_1_openai_codex_runtime_pack.js +52 -52
- package/lib/phase_2_base_runtime_pack.js +71 -71
- package/lib/phase_2_base_usdc_runtime_pack.js +72 -72
- package/lib/phase_2_closeout_pack.js +65 -65
- package/lib/phase_2_completion_pack.js +113 -113
- package/lib/phase_2_decision_record_pack.js +66 -66
- package/lib/phase_2_decision_resolution_pack.js +69 -69
- package/lib/phase_2_eth_runtime_pack.js +70 -70
- package/lib/phase_2_evm_base_runtime_pack.js +73 -73
- package/lib/phase_2_evm_runtime_pack.js +71 -71
- package/lib/phase_2_flip_preview_pack.js +60 -60
- package/lib/phase_2_freeze_review_pack.js +99 -99
- package/lib/phase_2_gate_pack.js +77 -77
- package/lib/phase_2_payment_rails_pack.js +71 -71
- package/lib/phase_2_usdc_runtime_pack.js +71 -71
- package/lib/phase_3_brc_runtime_pack.js +81 -81
- package/lib/phase_3_bsv_teranode_runtime_pack.js +83 -83
- package/lib/phase_3_closeout_pack.js +62 -62
- package/lib/phase_3_completion_pack.js +94 -94
- package/lib/phase_3_decision_record_pack.js +64 -64
- package/lib/phase_3_decision_resolution_pack.js +69 -69
- package/lib/phase_3_freeze_baseline_pack.js +67 -67
- package/lib/phase_3_freeze_review_pack.js +80 -80
- package/lib/phase_3_gate_pack.js +76 -76
- package/lib/phase_3_metanet_runtime_pack.js +81 -81
- package/lib/phase_3_native_bsv_pack.js +91 -91
- package/lib/phase_3_native_continuity_pack.js +82 -82
- package/lib/phase_4_attestation_runtime_pack.js +75 -75
- package/lib/phase_4_closeout_pack.js +45 -45
- package/lib/phase_4_completion_pack.js +94 -94
- package/lib/phase_4_decision_record_pack.js +54 -54
- package/lib/phase_4_decision_resolution_pack.js +45 -45
- package/lib/phase_4_erc8004_runtime_pack.js +76 -76
- package/lib/phase_4_freeze_baseline_pack.js +67 -67
- package/lib/phase_4_freeze_review_pack.js +68 -68
- package/lib/phase_4_gate_pack.js +58 -58
- package/lib/phase_4_identity_registry_runtime_pack.js +75 -75
- package/lib/phase_4_identity_trust_pack.js +73 -73
- package/lib/phase_4_trust_continuity_pack.js +86 -86
- package/lib/phase_5_antelope_runtime_pack.js +76 -76
- package/lib/phase_5_closeout_pack.js +44 -44
- package/lib/phase_5_completion_pack.js +82 -82
- package/lib/phase_5_constellation_dag_runtime_pack.js +76 -76
- package/lib/phase_5_decision_record_pack.js +54 -54
- package/lib/phase_5_decision_resolution_pack.js +45 -45
- package/lib/phase_5_digibyte_dgb_runtime_pack.js +76 -76
- package/lib/phase_5_freeze_baseline_pack.js +67 -67
- package/lib/phase_5_freeze_review_pack.js +68 -68
- package/lib/phase_5_gate_pack.js +58 -58
- package/lib/phase_5_hedera_hbar_runtime_pack.js +76 -76
- package/lib/phase_5_kaspa_kas_runtime_pack.js +76 -76
- package/lib/phase_5_major_rails_continuity_pack.js +86 -86
- package/lib/phase_5_major_rails_pack.js +110 -110
- package/lib/phase_5_metal_runtime_pack.js +76 -76
- package/lib/phase_5_polkadot_dot_runtime_pack.js +76 -76
- package/lib/phase_5_proton_xpr_runtime_pack.js +76 -76
- package/lib/phase_5_solana_runtime_pack.js +76 -76
- package/lib/phase_6_autogen_runtime_pack.js +72 -72
- package/lib/phase_6_closeout_pack.js +46 -46
- package/lib/phase_6_completion_pack.js +77 -77
- package/lib/phase_6_decision_record_pack.js +54 -54
- package/lib/phase_6_decision_resolution_pack.js +53 -53
- package/lib/phase_6_framework_continuity_pack.js +81 -81
- package/lib/phase_6_framework_runtime_pack.js +68 -68
- package/lib/phase_6_freeze_baseline_pack.js +68 -68
- package/lib/phase_6_freeze_review_pack.js +65 -65
- package/lib/phase_6_gate_pack.js +59 -59
- package/lib/phase_6_langchain_runtime_pack.js +72 -72
- package/lib/phase_6_langgraph_runtime_pack.js +72 -72
- package/lib/phase_6_semantic_kernel_runtime_pack.js +72 -72
- package/lib/phase_7_closeout_pack.js +45 -45
- package/lib/phase_7_completion_pack.js +85 -85
- package/lib/phase_7_decision_record_pack.js +53 -53
- package/lib/phase_7_decision_resolution_pack.js +53 -53
- package/lib/phase_7_event_system_continuity_pack.js +89 -89
- package/lib/phase_7_event_system_pack.js +76 -76
- package/lib/phase_7_freeze_baseline_pack.js +74 -74
- package/lib/phase_7_freeze_review_pack.js +65 -65
- package/lib/phase_7_gate_pack.js +58 -58
- package/lib/phase_7_kafka_runtime_pack.js +74 -74
- package/lib/phase_7_mqtt_runtime_pack.js +74 -74
- package/lib/phase_7_nats_runtime_pack.js +74 -74
- package/lib/phase_7_webhook_event_bus_runtime_pack.js +74 -74
- package/lib/phase_8_closeout_pack.js +46 -46
- package/lib/phase_8_completion_pack.js +82 -82
- package/lib/phase_8_decision_record_pack.js +54 -54
- package/lib/phase_8_decision_resolution_pack.js +53 -53
- package/lib/phase_8_external_receipt_import_runtime_pack.js +74 -74
- package/lib/phase_8_external_result_import_runtime_pack.js +74 -74
- package/lib/phase_8_freeze_baseline_pack.js +71 -71
- package/lib/phase_8_freeze_review_pack.js +64 -64
- package/lib/phase_8_gate_pack.js +58 -58
- package/lib/phase_8_proof_bridge_continuity_pack.js +86 -86
- package/lib/phase_8_proof_bridges_pack.js +72 -72
- package/lib/phase_8_proof_bundle_normalization_runtime_pack.js +74 -74
- package/lib/phase_9_closeout_pack.js +46 -46
- package/lib/phase_9_completion_pack.js +82 -82
- package/lib/phase_9_custody_refs_runtime_pack.js +74 -74
- package/lib/phase_9_decision_record_pack.js +54 -54
- package/lib/phase_9_decision_resolution_pack.js +53 -53
- package/lib/phase_9_freeze_baseline_pack.js +71 -71
- package/lib/phase_9_freeze_review_pack.js +64 -64
- package/lib/phase_9_gate_pack.js +58 -58
- package/lib/phase_9_operator_accounting_bridges_runtime_pack.js +74 -74
- package/lib/phase_9_treasury_connectivity_pack.js +72 -72
- package/lib/phase_9_treasury_continuity_pack.js +86 -86
- package/lib/phase_9_treasury_destinations_runtime_pack.js +74 -74
- package/lib/phase_program_pack.js +120 -120
- package/lib/pricing_optimization_contract.js +775 -775
- package/lib/protocol_lane_contract.js +117 -117
- package/lib/provenance_lane_contract.js +54 -54
- package/lib/provider_lane_contract.js +240 -240
- package/lib/provider_runtime_journey_contract.js +183 -183
- package/lib/public_surface_policy_contract.js +111 -111
- package/lib/publish_plan.js +51 -51
- package/lib/record_queries.js +48 -48
- package/lib/release_candidate.js +50 -50
- package/lib/release_center.js +1093 -1093
- package/lib/release_history.js +205 -205
- package/lib/release_manifest.js +113 -113
- package/lib/release_pack.js +453 -453
- package/lib/request_rate_limit.js +144 -144
- package/lib/resource_views.js +31 -31
- package/lib/revenue_launch_path_contract.js +326 -326
- package/lib/route_matchers.js +34 -34
- package/lib/route_params.js +19 -19
- package/lib/runtime_bridge.js +124 -124
- package/lib/runtime_operations_worker.js +282 -282
- package/lib/runtime_state_store.js +354 -354
- package/lib/settlement_lane_contract.js +111 -111
- package/lib/shared_signals_lane_contract.js +54 -54
- package/lib/signed_audit_provenance_contract.js +83 -83
- package/lib/soft_launch_pack.js +78 -78
- package/lib/stablecoin_lane_contract.js +76 -76
- package/lib/stripe_mpp_lane_contract.js +96 -96
- package/lib/stripe_mpp_payment_front.js +158 -158
- package/lib/telemetry_lane_contract.js +54 -54
- package/lib/treasury_destinations_contract.js +764 -764
- package/lib/treasury_egress_policy_contract.js +91 -91
- package/lib/treasury_lane_contract.js +84 -84
- package/lib/trust_portability_boundary_contract.js +72 -72
- package/lib/x402_facilitator.js +155 -0
- package/lib/x402_lane_contract.js +118 -118
- package/package.json +106 -105
- package/scripts/registry_cli.js +275 -275
- package/scripts/verify_adapters.js +554 -554
- package/scripts/verify_all.js +4962 -4962
- package/scripts/verify_control_plane_contracts.js +34 -34
- package/scripts/verify_control_plane_routes.js +70 -70
- package/scripts/verify_delivery_summary.js +112 -112
- package/scripts/verify_examples.js +19 -19
- package/scripts/verify_first_run_conversions.js +81 -81
- package/scripts/verify_framework_provider_promotion.js +152 -152
- package/scripts/verify_full_catalog.js +174 -174
- package/scripts/verify_integrations.js +620 -620
- package/scripts/verify_lifecycle_continuity.js +96 -96
- package/scripts/verify_market_lane_depth.js +94 -94
- package/scripts/verify_market_lane_promotion.js +103 -103
- package/scripts/verify_market_lane_traces.js +98 -98
- package/scripts/verify_market_lanes.js +102 -102
- package/scripts/verify_operator_observability_boundary.js +83 -83
- package/scripts/verify_pricing_experiment_plan.js +124 -124
- package/scripts/verify_provider_runtime_breadth.js +109 -109
- package/scripts/verify_provider_runtime_journeys.js +111 -111
- package/scripts/verify_revenue_launch_paths.js +105 -105
- package/scripts/verify_runtime_durability.js +52 -52
- package/scripts/verify_service.js +15410 -15250
- package/scripts/verify_tooling.js +1412 -1412
- package/scripts/verify_treasury_public_boundary.js +97 -97
- package/scripts/verify_x402_facilitator.js +174 -0
- package/server.js +11117 -11006
- package/.env.production.checklist +0 -77
- package/.env.production.template +0 -54
- package/.github/workflows/publish-mcp-executor.yml +0 -43
- package/ADAPTER_PARTNER_PATH.md +0 -47
- package/ADAPTER_PROMOTION_START_HERE.md +0 -44
- package/BOLT_BINDINGS.production.worksheet.json +0 -31
- package/EXECUTION_TARGETS.production.worksheet.json +0 -73
- package/GO_LIVE_OPERATOR_PACK.md +0 -412
- package/L402_BINDINGS.production.worksheet.json +0 -30
- package/OPERATIONS_RUNBOOK.md +0 -115
- package/OPERATOR_START_HERE.md +0 -63
- package/OUTREACH_MESSAGES.md +0 -19
- package/OUTREACH_START_HERE.md +0 -36
- package/PRODUCTION_MANUAL_CLOSEOUT_SEQUENCE.md +0 -172
- package/PROGRAM_COMPLETE_RELEASE.md +0 -63
- package/PROGRAM_STATUS.md +0 -57
- package/PUBLISH_PLAN.md +0 -26
- package/RELEASE_CHECKLIST.md +0 -16
- package/SOFT_LAUNCH_KIT.md +0 -47
- package/services/mcp-execution-target/DISCOVERY_REGISTRY_PLAYBOOK.md +0 -141
- package/services/mcp-execution-target/README.md +0 -319
- package/services/mcp-execution-target/package.json +0 -14
- package/services/mcp-execution-target/server.js +0 -1031
- package/services/mcp-execution-target/server.json +0 -16
- package/services/mcp-execution-target/verify.js +0 -308
|
@@ -1,130 +1,130 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
const packageJson = require("../package.json");
|
|
4
|
-
|
|
5
|
-
function buildAdapterCertificationContractPack() {
|
|
6
|
-
return {
|
|
7
|
-
ok: true,
|
|
8
|
-
product: packageJson.name,
|
|
9
|
-
category: "naxytra-adapter-certification-contract",
|
|
10
|
-
pack_version: "naxytra-adapter-certification-contract-v1",
|
|
11
|
-
doctrine: "xytara_certifies_adapters_by_front_specific_normalized_contracts_without_leaking_vendor_truth_into_core_logic",
|
|
12
|
-
model_state: "core_now",
|
|
13
|
-
core_claim: "adapter certification is the machine-readable gate for manifest, capability, health, idempotency, failure, proof, and front-specific compatibility claims",
|
|
14
|
-
certification_states: [
|
|
15
|
-
{ state: "pass", description: "the adapter satisfies the declared front contract without material constraints" },
|
|
16
|
-
{ state: "pass_with_constraints", description: "the adapter is usable but only within declared constraints" },
|
|
17
|
-
{ state: "needs_retest", description: "the adapter needs a fresh run against updated vectors or interface versions" },
|
|
18
|
-
{ state: "blocked", description: "the adapter cannot be certified until a required dependency or vector exists" },
|
|
19
|
-
{ state: "fail", description: "the adapter does not satisfy the declared front contract" }
|
|
20
|
-
],
|
|
21
|
-
certification_fronts: [
|
|
22
|
-
{
|
|
23
|
-
front_id: "protocol_front",
|
|
24
|
-
required_tests: ["protocol negotiation", "surface discovery", "normalized request translation"],
|
|
25
|
-
required_evidence: ["manifest", "protocol compatibility result", "failure mapping result"],
|
|
26
|
-
claim_boundary: "only_claim_listed_protocol_front_compatibility"
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
front_id: "execution_front",
|
|
30
|
-
required_tests: ["task dispatch", "idempotency", "execution result normalization"],
|
|
31
|
-
required_evidence: ["manifest", "task vector results", "proof-compatible output facts"],
|
|
32
|
-
claim_boundary: "only_claim_listed_execution_front_compatibility"
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
front_id: "payment_front",
|
|
36
|
-
required_tests: ["quote to pay compatibility", "payment admission", "reversal or refund posture"],
|
|
37
|
-
required_evidence: ["payment state result", "receipt compatibility result", "failure mapping result"],
|
|
38
|
-
claim_boundary: "only_claim_listed_payment_front_compatibility"
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
front_id: "settlement_front",
|
|
42
|
-
required_tests: ["settlement target translation", "finality reference capture", "batch or direct settlement posture"],
|
|
43
|
-
required_evidence: ["settlement reference", "finality state", "reconciliation evidence"],
|
|
44
|
-
claim_boundary: "only_claim_listed_settlement_front_compatibility"
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
front_id: "identity_trust_front",
|
|
48
|
-
required_tests: ["identity schema compatibility", "registry linkage", "attestation or trust-state roundtrip"],
|
|
49
|
-
required_evidence: ["identity record", "registry proof", "trust-state result"],
|
|
50
|
-
claim_boundary: "only_claim_listed_identity_trust_front_compatibility"
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
front_id: "proof_front",
|
|
54
|
-
required_tests: ["receipt compatibility", "proof import or export compatibility", "verification hook compatibility"],
|
|
55
|
-
required_evidence: ["proof contract result", "receipt result", "verification evidence"],
|
|
56
|
-
claim_boundary: "only_claim_listed_proof_front_compatibility"
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
front_id: "treasury_front",
|
|
60
|
-
required_tests: ["destination routing", "balance model compatibility", "payout landing compatibility"],
|
|
61
|
-
required_evidence: ["treasury route result", "account abstraction result", "operator review note"],
|
|
62
|
-
claim_boundary: "only_claim_listed_treasury_front_compatibility"
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
front_id: "operator_front",
|
|
66
|
-
required_tests: ["review surface visibility", "promotion posture", "reporting export compatibility"],
|
|
67
|
-
required_evidence: ["review summary", "promotion readiness result", "operator export"],
|
|
68
|
-
claim_boundary: "only_claim_listed_operator_front_compatibility"
|
|
69
|
-
}
|
|
70
|
-
],
|
|
71
|
-
harness_requirements: {
|
|
72
|
-
test_categories: [
|
|
73
|
-
"manifest_validity",
|
|
74
|
-
"interface_conformance",
|
|
75
|
-
"capability_declaration",
|
|
76
|
-
"health_reporting",
|
|
77
|
-
"failure_mapping",
|
|
78
|
-
"idempotency_behavior",
|
|
79
|
-
"proof_compatibility",
|
|
80
|
-
"front_specific_lifecycle_compatibility"
|
|
81
|
-
],
|
|
82
|
-
required_result_fields: [
|
|
83
|
-
"certification_state",
|
|
84
|
-
"interface_version",
|
|
85
|
-
"tested_fronts",
|
|
86
|
-
"tested_capabilities",
|
|
87
|
-
"failed_cases",
|
|
88
|
-
"warnings",
|
|
89
|
-
"evidence_refs"
|
|
90
|
-
]
|
|
91
|
-
},
|
|
92
|
-
linked_surfaces: {
|
|
93
|
-
integrations_summary_ref: "/v1/integrations/summary",
|
|
94
|
-
promotion_readiness_ref: "/v1/integrations/promotion-readiness",
|
|
95
|
-
promotion_actions_ref: "/v1/integrations/promotion-actions",
|
|
96
|
-
submission_bundle_review_ref: "/v1/integrations/review/submission-bundle",
|
|
97
|
-
submission_bundle_set_review_ref: "/v1/integrations/review/submission-bundle-set",
|
|
98
|
-
registry_snapshot_review_ref: "/v1/integrations/review/registry-snapshot"
|
|
99
|
-
},
|
|
100
|
-
claim_boundary: "claim_adapter_certification_as_front_specific_compatibility_and_review_gate_without_claiming_vendor_default_or_runtime_truth"
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
function summarizeAdapterCertificationContractPack() {
|
|
105
|
-
const pack = buildAdapterCertificationContractPack();
|
|
106
|
-
return {
|
|
107
|
-
ok: true,
|
|
108
|
-
product: pack.product,
|
|
109
|
-
category: pack.category,
|
|
110
|
-
summary_version: "naxytra-adapter-certification-contract-summary-v1",
|
|
111
|
-
pack_version: pack.pack_version,
|
|
112
|
-
model_state: pack.model_state,
|
|
113
|
-
certification_state_count: pack.certification_states.length,
|
|
114
|
-
certification_front_count: pack.certification_fronts.length,
|
|
115
|
-
required_test_category_count: pack.harness_requirements.test_categories.length,
|
|
116
|
-
linked_surfaces: pack.linked_surfaces
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
function getAdapterCertificationFrontDetail(frontId) {
|
|
121
|
-
const normalized = String(frontId || "").trim().toLowerCase();
|
|
122
|
-
return (buildAdapterCertificationContractPack().certification_fronts || []).find((entry) => entry.front_id === normalized) || null;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
module.exports = {
|
|
126
|
-
buildAdapterCertificationContractPack,
|
|
127
|
-
summarizeAdapterCertificationContractPack,
|
|
128
|
-
getAdapterCertificationFrontDetail
|
|
129
|
-
};
|
|
130
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildAdapterCertificationContractPack() {
|
|
6
|
+
return {
|
|
7
|
+
ok: true,
|
|
8
|
+
product: packageJson.name,
|
|
9
|
+
category: "naxytra-adapter-certification-contract",
|
|
10
|
+
pack_version: "naxytra-adapter-certification-contract-v1",
|
|
11
|
+
doctrine: "xytara_certifies_adapters_by_front_specific_normalized_contracts_without_leaking_vendor_truth_into_core_logic",
|
|
12
|
+
model_state: "core_now",
|
|
13
|
+
core_claim: "adapter certification is the machine-readable gate for manifest, capability, health, idempotency, failure, proof, and front-specific compatibility claims",
|
|
14
|
+
certification_states: [
|
|
15
|
+
{ state: "pass", description: "the adapter satisfies the declared front contract without material constraints" },
|
|
16
|
+
{ state: "pass_with_constraints", description: "the adapter is usable but only within declared constraints" },
|
|
17
|
+
{ state: "needs_retest", description: "the adapter needs a fresh run against updated vectors or interface versions" },
|
|
18
|
+
{ state: "blocked", description: "the adapter cannot be certified until a required dependency or vector exists" },
|
|
19
|
+
{ state: "fail", description: "the adapter does not satisfy the declared front contract" }
|
|
20
|
+
],
|
|
21
|
+
certification_fronts: [
|
|
22
|
+
{
|
|
23
|
+
front_id: "protocol_front",
|
|
24
|
+
required_tests: ["protocol negotiation", "surface discovery", "normalized request translation"],
|
|
25
|
+
required_evidence: ["manifest", "protocol compatibility result", "failure mapping result"],
|
|
26
|
+
claim_boundary: "only_claim_listed_protocol_front_compatibility"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
front_id: "execution_front",
|
|
30
|
+
required_tests: ["task dispatch", "idempotency", "execution result normalization"],
|
|
31
|
+
required_evidence: ["manifest", "task vector results", "proof-compatible output facts"],
|
|
32
|
+
claim_boundary: "only_claim_listed_execution_front_compatibility"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
front_id: "payment_front",
|
|
36
|
+
required_tests: ["quote to pay compatibility", "payment admission", "reversal or refund posture"],
|
|
37
|
+
required_evidence: ["payment state result", "receipt compatibility result", "failure mapping result"],
|
|
38
|
+
claim_boundary: "only_claim_listed_payment_front_compatibility"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
front_id: "settlement_front",
|
|
42
|
+
required_tests: ["settlement target translation", "finality reference capture", "batch or direct settlement posture"],
|
|
43
|
+
required_evidence: ["settlement reference", "finality state", "reconciliation evidence"],
|
|
44
|
+
claim_boundary: "only_claim_listed_settlement_front_compatibility"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
front_id: "identity_trust_front",
|
|
48
|
+
required_tests: ["identity schema compatibility", "registry linkage", "attestation or trust-state roundtrip"],
|
|
49
|
+
required_evidence: ["identity record", "registry proof", "trust-state result"],
|
|
50
|
+
claim_boundary: "only_claim_listed_identity_trust_front_compatibility"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
front_id: "proof_front",
|
|
54
|
+
required_tests: ["receipt compatibility", "proof import or export compatibility", "verification hook compatibility"],
|
|
55
|
+
required_evidence: ["proof contract result", "receipt result", "verification evidence"],
|
|
56
|
+
claim_boundary: "only_claim_listed_proof_front_compatibility"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
front_id: "treasury_front",
|
|
60
|
+
required_tests: ["destination routing", "balance model compatibility", "payout landing compatibility"],
|
|
61
|
+
required_evidence: ["treasury route result", "account abstraction result", "operator review note"],
|
|
62
|
+
claim_boundary: "only_claim_listed_treasury_front_compatibility"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
front_id: "operator_front",
|
|
66
|
+
required_tests: ["review surface visibility", "promotion posture", "reporting export compatibility"],
|
|
67
|
+
required_evidence: ["review summary", "promotion readiness result", "operator export"],
|
|
68
|
+
claim_boundary: "only_claim_listed_operator_front_compatibility"
|
|
69
|
+
}
|
|
70
|
+
],
|
|
71
|
+
harness_requirements: {
|
|
72
|
+
test_categories: [
|
|
73
|
+
"manifest_validity",
|
|
74
|
+
"interface_conformance",
|
|
75
|
+
"capability_declaration",
|
|
76
|
+
"health_reporting",
|
|
77
|
+
"failure_mapping",
|
|
78
|
+
"idempotency_behavior",
|
|
79
|
+
"proof_compatibility",
|
|
80
|
+
"front_specific_lifecycle_compatibility"
|
|
81
|
+
],
|
|
82
|
+
required_result_fields: [
|
|
83
|
+
"certification_state",
|
|
84
|
+
"interface_version",
|
|
85
|
+
"tested_fronts",
|
|
86
|
+
"tested_capabilities",
|
|
87
|
+
"failed_cases",
|
|
88
|
+
"warnings",
|
|
89
|
+
"evidence_refs"
|
|
90
|
+
]
|
|
91
|
+
},
|
|
92
|
+
linked_surfaces: {
|
|
93
|
+
integrations_summary_ref: "/v1/integrations/summary",
|
|
94
|
+
promotion_readiness_ref: "/v1/integrations/promotion-readiness",
|
|
95
|
+
promotion_actions_ref: "/v1/integrations/promotion-actions",
|
|
96
|
+
submission_bundle_review_ref: "/v1/integrations/review/submission-bundle",
|
|
97
|
+
submission_bundle_set_review_ref: "/v1/integrations/review/submission-bundle-set",
|
|
98
|
+
registry_snapshot_review_ref: "/v1/integrations/review/registry-snapshot"
|
|
99
|
+
},
|
|
100
|
+
claim_boundary: "claim_adapter_certification_as_front_specific_compatibility_and_review_gate_without_claiming_vendor_default_or_runtime_truth"
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
function summarizeAdapterCertificationContractPack() {
|
|
105
|
+
const pack = buildAdapterCertificationContractPack();
|
|
106
|
+
return {
|
|
107
|
+
ok: true,
|
|
108
|
+
product: pack.product,
|
|
109
|
+
category: pack.category,
|
|
110
|
+
summary_version: "naxytra-adapter-certification-contract-summary-v1",
|
|
111
|
+
pack_version: pack.pack_version,
|
|
112
|
+
model_state: pack.model_state,
|
|
113
|
+
certification_state_count: pack.certification_states.length,
|
|
114
|
+
certification_front_count: pack.certification_fronts.length,
|
|
115
|
+
required_test_category_count: pack.harness_requirements.test_categories.length,
|
|
116
|
+
linked_surfaces: pack.linked_surfaces
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
function getAdapterCertificationFrontDetail(frontId) {
|
|
121
|
+
const normalized = String(frontId || "").trim().toLowerCase();
|
|
122
|
+
return (buildAdapterCertificationContractPack().certification_fronts || []).find((entry) => entry.front_id === normalized) || null;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
module.exports = {
|
|
126
|
+
buildAdapterCertificationContractPack,
|
|
127
|
+
summarizeAdapterCertificationContractPack,
|
|
128
|
+
getAdapterCertificationFrontDetail
|
|
129
|
+
};
|
|
130
|
+
|
|
@@ -1,156 +1,156 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
const packageJson = require("../package.json");
|
|
4
|
-
const { catalog } = require("../fixtures/catalog");
|
|
5
|
-
const { loadExecutionTargetRegistry } = require("./external_execution_runtime");
|
|
6
|
-
|
|
7
|
-
function normalizeString(value, fallback = "") {
|
|
8
|
-
const raw = typeof value === "string" ? value.trim() : "";
|
|
9
|
-
return raw || fallback;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
function listAdapterTasks() {
|
|
13
|
-
return (Array.isArray(catalog.tasks) ? catalog.tasks : [])
|
|
14
|
-
.filter((task) => normalizeString(task && task.public_category) === "adapter")
|
|
15
|
-
.map((task) => ({
|
|
16
|
-
task_ref: task.public_task_ref,
|
|
17
|
-
internal_task_ref: task.task_ref,
|
|
18
|
-
public_title: task.public_title,
|
|
19
|
-
execution_mode: task.execution_mode,
|
|
20
|
-
latency_class: task.latency_class
|
|
21
|
-
}));
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function listTargetsForTask(taskRef) {
|
|
25
|
-
const normalizedTaskRef = normalizeString(taskRef);
|
|
26
|
-
return loadExecutionTargetRegistry().filter((target) => {
|
|
27
|
-
if (!target || target.enabled === false) return false;
|
|
28
|
-
if (normalizeString(target.task_ref) === normalizedTaskRef) return true;
|
|
29
|
-
if (normalizedTaskRef === "adapter.mcp.invoke" || normalizedTaskRef.startsWith("adapter.mcp.")) {
|
|
30
|
-
return Boolean(normalizeString(target.tool_name) || normalizeString(target.integration_id));
|
|
31
|
-
}
|
|
32
|
-
return false;
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
function summarizeTarget(target) {
|
|
37
|
-
const provider = normalizeString(target && target.provider, "external_execution");
|
|
38
|
-
const toolName = normalizeString(target && target.tool_name);
|
|
39
|
-
return {
|
|
40
|
-
target_id: target.target_id,
|
|
41
|
-
provider,
|
|
42
|
-
task_ref: target.task_ref || null,
|
|
43
|
-
tool_name: toolName || null,
|
|
44
|
-
integration_id: target.integration_id || null,
|
|
45
|
-
enabled: target.enabled !== false,
|
|
46
|
-
timeout_ms: target.timeout_ms,
|
|
47
|
-
endpoint_configured: Boolean(normalizeString(target.endpoint_url)),
|
|
48
|
-
auth_configured: Boolean(normalizeString(target.auth_token)),
|
|
49
|
-
operational_coverage: {
|
|
50
|
-
execute_endpoint: Boolean(normalizeString(target.endpoint_url)),
|
|
51
|
-
bearer_auth: Boolean(normalizeString(target.auth_token)),
|
|
52
|
-
bounded_timeout: Number(target.timeout_ms || 0) >= 500,
|
|
53
|
-
proof_fact_compatible: provider === "xytara_mcp_executor" || toolName === "summarize" || toolName === "zones.lookup",
|
|
54
|
-
deterministic_retry_surface: true,
|
|
55
|
-
tool_level_binding: Boolean(toolName),
|
|
56
|
-
operator_health_surface: provider === "xytara_mcp_executor" ? "/health" : null,
|
|
57
|
-
operator_tool_catalog_surface: provider === "xytara_mcp_executor" ? "/tools" : null
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
function summarizeAdapterTaskDepth(task) {
|
|
63
|
-
const targets = listTargetsForTask(task.task_ref).map(summarizeTarget);
|
|
64
|
-
const enabledTargets = targets.filter((target) => target.enabled);
|
|
65
|
-
const toolNames = Array.from(new Set(enabledTargets.map((target) => target.tool_name).filter(Boolean))).sort();
|
|
66
|
-
const allTargetsCovered = enabledTargets.length > 0 && enabledTargets.every((target) =>
|
|
67
|
-
target.operational_coverage.execute_endpoint
|
|
68
|
-
&& target.operational_coverage.bounded_timeout
|
|
69
|
-
&& target.operational_coverage.proof_fact_compatible
|
|
70
|
-
);
|
|
71
|
-
const depthState = enabledTargets.length >= 2 && allTargetsCovered
|
|
72
|
-
? "provider_live_path_deepened"
|
|
73
|
-
: enabledTargets.length > 0
|
|
74
|
-
? "initial_provider_live_path"
|
|
75
|
-
: "provider_wiring_required";
|
|
76
|
-
|
|
77
|
-
return {
|
|
78
|
-
...task,
|
|
79
|
-
provider_depth_state: depthState,
|
|
80
|
-
provider_live: enabledTargets.length > 0,
|
|
81
|
-
configured_target_count: targets.length,
|
|
82
|
-
enabled_target_count: enabledTargets.length,
|
|
83
|
-
configured_tool_count: toolNames.length,
|
|
84
|
-
configured_tools: toolNames,
|
|
85
|
-
execution_targets: targets,
|
|
86
|
-
operator_claim_boundary: enabledTargets.length > 0
|
|
87
|
-
? "claim_only_the_listed_task_and_tool_bindings_as_provider_live"
|
|
88
|
-
: "do_not_claim_provider_live_until_execution_targets_are_configured"
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
function buildAdapterDepthPack() {
|
|
93
|
-
const adapterTasks = listAdapterTasks().map(summarizeAdapterTaskDepth);
|
|
94
|
-
const providerLiveTasks = adapterTasks.filter((task) => task.provider_live);
|
|
95
|
-
const deepenedTasks = adapterTasks.filter((task) => task.provider_depth_state === "provider_live_path_deepened");
|
|
96
|
-
const configuredTargets = loadExecutionTargetRegistry().filter((target) => target && target.enabled !== false);
|
|
97
|
-
return {
|
|
98
|
-
ok: true,
|
|
99
|
-
product: packageJson.name,
|
|
100
|
-
category: "machine-commerce-adapter-depth-pack",
|
|
101
|
-
pack_version: "xytara-adapter-depth-pack-v1",
|
|
102
|
-
adapter_depth_state: deepenedTasks.length > 0
|
|
103
|
-
? "provider_live_path_deepened"
|
|
104
|
-
: providerLiveTasks.length > 0
|
|
105
|
-
? "initial_provider_live_path"
|
|
106
|
-
: "provider_wiring_required",
|
|
107
|
-
counts: {
|
|
108
|
-
adapter_task_count: adapterTasks.length,
|
|
109
|
-
provider_live_task_count: providerLiveTasks.length,
|
|
110
|
-
deepened_provider_live_task_count: deepenedTasks.length,
|
|
111
|
-
configured_execution_target_count: configuredTargets.length,
|
|
112
|
-
configured_provider_count: new Set(configuredTargets.map((target) => normalizeString(target.provider))).size,
|
|
113
|
-
configured_tool_count: new Set(configuredTargets.map((target) => normalizeString(target.tool_name)).filter(Boolean)).size
|
|
114
|
-
},
|
|
115
|
-
adapter_tasks: adapterTasks,
|
|
116
|
-
production_depth_requirements: [
|
|
117
|
-
"at_least_one_enabled_execution_target_for_provider_backed_task",
|
|
118
|
-
"tool_or_integration_level_binding_for_claimed_provider_lane",
|
|
119
|
-
"bounded_timeout_and_retry_observability",
|
|
120
|
-
"proof_fact_compatible_result_shape",
|
|
121
|
-
"operator_health_or_catalog_surface_for_target_service"
|
|
122
|
-
],
|
|
123
|
-
public_claim_boundary: {
|
|
124
|
-
live_provider_claim_allowed: providerLiveTasks.length > 0,
|
|
125
|
-
deep_provider_claim_allowed: deepenedTasks.length > 0,
|
|
126
|
-
live_task_refs: providerLiveTasks.map((task) => task.task_ref),
|
|
127
|
-
deepened_task_refs: deepenedTasks.map((task) => task.task_ref),
|
|
128
|
-
rule: "only_claim_provider_depth_for_task_refs_and_tool_bindings_listed_in_this_pack"
|
|
129
|
-
},
|
|
130
|
-
linked_surfaces: {
|
|
131
|
-
execution_truth_ref: "/v1/capability-registry/execution-truth",
|
|
132
|
-
adapter_depth_summary_ref: "/v1/adapter-depth/summary",
|
|
133
|
-
integrations_ref: "/v1/integrations",
|
|
134
|
-
runtime_bridge_ref: "/v1/runtime-bridge/dispatches"
|
|
135
|
-
}
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
function summarizeAdapterDepthPack() {
|
|
140
|
-
const pack = buildAdapterDepthPack();
|
|
141
|
-
return {
|
|
142
|
-
ok: true,
|
|
143
|
-
product: pack.product,
|
|
144
|
-
category: "machine-commerce-adapter-depth-summary",
|
|
145
|
-
summary_version: "xytara-adapter-depth-summary-v1",
|
|
146
|
-
adapter_depth_state: pack.adapter_depth_state,
|
|
147
|
-
counts: pack.counts,
|
|
148
|
-
public_claim_boundary: pack.public_claim_boundary,
|
|
149
|
-
linked_surfaces: pack.linked_surfaces
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
module.exports = {
|
|
154
|
-
buildAdapterDepthPack,
|
|
155
|
-
summarizeAdapterDepthPack
|
|
156
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
const { catalog } = require("../fixtures/catalog");
|
|
5
|
+
const { loadExecutionTargetRegistry } = require("./external_execution_runtime");
|
|
6
|
+
|
|
7
|
+
function normalizeString(value, fallback = "") {
|
|
8
|
+
const raw = typeof value === "string" ? value.trim() : "";
|
|
9
|
+
return raw || fallback;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function listAdapterTasks() {
|
|
13
|
+
return (Array.isArray(catalog.tasks) ? catalog.tasks : [])
|
|
14
|
+
.filter((task) => normalizeString(task && task.public_category) === "adapter")
|
|
15
|
+
.map((task) => ({
|
|
16
|
+
task_ref: task.public_task_ref,
|
|
17
|
+
internal_task_ref: task.task_ref,
|
|
18
|
+
public_title: task.public_title,
|
|
19
|
+
execution_mode: task.execution_mode,
|
|
20
|
+
latency_class: task.latency_class
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function listTargetsForTask(taskRef) {
|
|
25
|
+
const normalizedTaskRef = normalizeString(taskRef);
|
|
26
|
+
return loadExecutionTargetRegistry().filter((target) => {
|
|
27
|
+
if (!target || target.enabled === false) return false;
|
|
28
|
+
if (normalizeString(target.task_ref) === normalizedTaskRef) return true;
|
|
29
|
+
if (normalizedTaskRef === "adapter.mcp.invoke" || normalizedTaskRef.startsWith("adapter.mcp.")) {
|
|
30
|
+
return Boolean(normalizeString(target.tool_name) || normalizeString(target.integration_id));
|
|
31
|
+
}
|
|
32
|
+
return false;
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function summarizeTarget(target) {
|
|
37
|
+
const provider = normalizeString(target && target.provider, "external_execution");
|
|
38
|
+
const toolName = normalizeString(target && target.tool_name);
|
|
39
|
+
return {
|
|
40
|
+
target_id: target.target_id,
|
|
41
|
+
provider,
|
|
42
|
+
task_ref: target.task_ref || null,
|
|
43
|
+
tool_name: toolName || null,
|
|
44
|
+
integration_id: target.integration_id || null,
|
|
45
|
+
enabled: target.enabled !== false,
|
|
46
|
+
timeout_ms: target.timeout_ms,
|
|
47
|
+
endpoint_configured: Boolean(normalizeString(target.endpoint_url)),
|
|
48
|
+
auth_configured: Boolean(normalizeString(target.auth_token)),
|
|
49
|
+
operational_coverage: {
|
|
50
|
+
execute_endpoint: Boolean(normalizeString(target.endpoint_url)),
|
|
51
|
+
bearer_auth: Boolean(normalizeString(target.auth_token)),
|
|
52
|
+
bounded_timeout: Number(target.timeout_ms || 0) >= 500,
|
|
53
|
+
proof_fact_compatible: provider === "xytara_mcp_executor" || toolName === "summarize" || toolName === "zones.lookup",
|
|
54
|
+
deterministic_retry_surface: true,
|
|
55
|
+
tool_level_binding: Boolean(toolName),
|
|
56
|
+
operator_health_surface: provider === "xytara_mcp_executor" ? "/health" : null,
|
|
57
|
+
operator_tool_catalog_surface: provider === "xytara_mcp_executor" ? "/tools" : null
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function summarizeAdapterTaskDepth(task) {
|
|
63
|
+
const targets = listTargetsForTask(task.task_ref).map(summarizeTarget);
|
|
64
|
+
const enabledTargets = targets.filter((target) => target.enabled);
|
|
65
|
+
const toolNames = Array.from(new Set(enabledTargets.map((target) => target.tool_name).filter(Boolean))).sort();
|
|
66
|
+
const allTargetsCovered = enabledTargets.length > 0 && enabledTargets.every((target) =>
|
|
67
|
+
target.operational_coverage.execute_endpoint
|
|
68
|
+
&& target.operational_coverage.bounded_timeout
|
|
69
|
+
&& target.operational_coverage.proof_fact_compatible
|
|
70
|
+
);
|
|
71
|
+
const depthState = enabledTargets.length >= 2 && allTargetsCovered
|
|
72
|
+
? "provider_live_path_deepened"
|
|
73
|
+
: enabledTargets.length > 0
|
|
74
|
+
? "initial_provider_live_path"
|
|
75
|
+
: "provider_wiring_required";
|
|
76
|
+
|
|
77
|
+
return {
|
|
78
|
+
...task,
|
|
79
|
+
provider_depth_state: depthState,
|
|
80
|
+
provider_live: enabledTargets.length > 0,
|
|
81
|
+
configured_target_count: targets.length,
|
|
82
|
+
enabled_target_count: enabledTargets.length,
|
|
83
|
+
configured_tool_count: toolNames.length,
|
|
84
|
+
configured_tools: toolNames,
|
|
85
|
+
execution_targets: targets,
|
|
86
|
+
operator_claim_boundary: enabledTargets.length > 0
|
|
87
|
+
? "claim_only_the_listed_task_and_tool_bindings_as_provider_live"
|
|
88
|
+
: "do_not_claim_provider_live_until_execution_targets_are_configured"
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function buildAdapterDepthPack() {
|
|
93
|
+
const adapterTasks = listAdapterTasks().map(summarizeAdapterTaskDepth);
|
|
94
|
+
const providerLiveTasks = adapterTasks.filter((task) => task.provider_live);
|
|
95
|
+
const deepenedTasks = adapterTasks.filter((task) => task.provider_depth_state === "provider_live_path_deepened");
|
|
96
|
+
const configuredTargets = loadExecutionTargetRegistry().filter((target) => target && target.enabled !== false);
|
|
97
|
+
return {
|
|
98
|
+
ok: true,
|
|
99
|
+
product: packageJson.name,
|
|
100
|
+
category: "machine-commerce-adapter-depth-pack",
|
|
101
|
+
pack_version: "xytara-adapter-depth-pack-v1",
|
|
102
|
+
adapter_depth_state: deepenedTasks.length > 0
|
|
103
|
+
? "provider_live_path_deepened"
|
|
104
|
+
: providerLiveTasks.length > 0
|
|
105
|
+
? "initial_provider_live_path"
|
|
106
|
+
: "provider_wiring_required",
|
|
107
|
+
counts: {
|
|
108
|
+
adapter_task_count: adapterTasks.length,
|
|
109
|
+
provider_live_task_count: providerLiveTasks.length,
|
|
110
|
+
deepened_provider_live_task_count: deepenedTasks.length,
|
|
111
|
+
configured_execution_target_count: configuredTargets.length,
|
|
112
|
+
configured_provider_count: new Set(configuredTargets.map((target) => normalizeString(target.provider))).size,
|
|
113
|
+
configured_tool_count: new Set(configuredTargets.map((target) => normalizeString(target.tool_name)).filter(Boolean)).size
|
|
114
|
+
},
|
|
115
|
+
adapter_tasks: adapterTasks,
|
|
116
|
+
production_depth_requirements: [
|
|
117
|
+
"at_least_one_enabled_execution_target_for_provider_backed_task",
|
|
118
|
+
"tool_or_integration_level_binding_for_claimed_provider_lane",
|
|
119
|
+
"bounded_timeout_and_retry_observability",
|
|
120
|
+
"proof_fact_compatible_result_shape",
|
|
121
|
+
"operator_health_or_catalog_surface_for_target_service"
|
|
122
|
+
],
|
|
123
|
+
public_claim_boundary: {
|
|
124
|
+
live_provider_claim_allowed: providerLiveTasks.length > 0,
|
|
125
|
+
deep_provider_claim_allowed: deepenedTasks.length > 0,
|
|
126
|
+
live_task_refs: providerLiveTasks.map((task) => task.task_ref),
|
|
127
|
+
deepened_task_refs: deepenedTasks.map((task) => task.task_ref),
|
|
128
|
+
rule: "only_claim_provider_depth_for_task_refs_and_tool_bindings_listed_in_this_pack"
|
|
129
|
+
},
|
|
130
|
+
linked_surfaces: {
|
|
131
|
+
execution_truth_ref: "/v1/capability-registry/execution-truth",
|
|
132
|
+
adapter_depth_summary_ref: "/v1/adapter-depth/summary",
|
|
133
|
+
integrations_ref: "/v1/integrations",
|
|
134
|
+
runtime_bridge_ref: "/v1/runtime-bridge/dispatches"
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
function summarizeAdapterDepthPack() {
|
|
140
|
+
const pack = buildAdapterDepthPack();
|
|
141
|
+
return {
|
|
142
|
+
ok: true,
|
|
143
|
+
product: pack.product,
|
|
144
|
+
category: "machine-commerce-adapter-depth-summary",
|
|
145
|
+
summary_version: "xytara-adapter-depth-summary-v1",
|
|
146
|
+
adapter_depth_state: pack.adapter_depth_state,
|
|
147
|
+
counts: pack.counts,
|
|
148
|
+
public_claim_boundary: pack.public_claim_boundary,
|
|
149
|
+
linked_surfaces: pack.linked_surfaces
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
module.exports = {
|
|
154
|
+
buildAdapterDepthPack,
|
|
155
|
+
summarizeAdapterDepthPack
|
|
156
|
+
};
|