xytara 2.4.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/OPERATIONS_RUNBOOK.md +1 -0
  2. package/README.md +16 -0
  3. package/RELEASE_NOTES.md +16 -16
  4. package/SERVICE_CONTRACT.md +75 -0
  5. package/START_HERE.md +40 -0
  6. package/bin/xytara.js +55 -0
  7. package/index.js +1 -1
  8. package/lib/a2a_lane_contract.js +104 -0
  9. package/lib/a2c_lane_contract.js +111 -0
  10. package/lib/artifact_distribution_lane_contract.js +54 -0
  11. package/lib/asyncapi_contract.js +150 -0
  12. package/lib/auth_interop_contract.js +80 -0
  13. package/lib/cloudevents_contract.js +80 -0
  14. package/lib/commerce_client.js +32 -0
  15. package/lib/erc8004_lane_contract.js +65 -0
  16. package/lib/event_system_lane_contract.js +75 -0
  17. package/lib/feature_control_lane_contract.js +54 -0
  18. package/lib/framework_lane_contract.js +89 -0
  19. package/lib/identity_interop_contract.js +82 -0
  20. package/lib/integration_matrix_contract.js +93 -0
  21. package/lib/major_rails_lane_contract.js +90 -0
  22. package/lib/mcp_lane_contract.js +110 -0
  23. package/lib/openapi_contract.js +296 -0
  24. package/lib/protocol_lane_contract.js +114 -0
  25. package/lib/provenance_lane_contract.js +54 -0
  26. package/lib/provider_lane_contract.js +72 -0
  27. package/lib/release_history.js +16 -0
  28. package/lib/settlement_lane_contract.js +111 -0
  29. package/lib/shared_signals_lane_contract.js +54 -0
  30. package/lib/stablecoin_lane_contract.js +76 -0
  31. package/lib/stripe_mpp_lane_contract.js +93 -0
  32. package/lib/telemetry_lane_contract.js +54 -0
  33. package/lib/treasury_lane_contract.js +84 -0
  34. package/lib/x402_lane_contract.js +118 -0
  35. package/package.json +5 -3
  36. package/server.js +367 -0
@@ -34,6 +34,7 @@ Run:
34
34
  ```bash
35
35
  npm run verify:examples
36
36
  npm run verify:release-candidate
37
+ npm run verify:production-readiness
37
38
  ```
38
39
 
39
40
  ## Partner-facing checks
package/README.md CHANGED
@@ -18,6 +18,22 @@ This repo is the hot-state commerce layer. It does not define base proof semanti
18
18
 
19
19
  The 10-phase public program is now complete. `xytara` is in terminal closeout posture rather than active milestone build posture.
20
20
 
21
+ ## One-Line After Install
22
+
23
+ If you only run two commands after install, use:
24
+
25
+ - `xytara start-here`
26
+ - `xytara release --summary`
27
+
28
+ If you want the shortest machine-readable discovery path, inspect:
29
+
30
+ - `GET /v1/providers`
31
+ - `GET /v1/frameworks`
32
+ - `GET /v1/protocols`
33
+ - `GET /v1/integration-matrix`
34
+ - `GET /v1/telemetry`
35
+ - `GET /v1/provenance`
36
+
21
37
  ## Start Here
22
38
 
23
39
  If you are new to the public stack, use this order:
package/RELEASE_NOTES.md CHANGED
@@ -1,29 +1,29 @@
1
- # xytara 2.4.0 Release Notes
1
+ # xytara 2.5.0 Release Notes
2
2
 
3
- `xytara` 2.4.0 is the foundation-convergence line for runtime wallet, authority, identity, trust, registry, and participation.
3
+ `xytara` 2.5.0 is the adoption-surface line for contracts, providers, frameworks, protocols, payment lanes, settlement lanes, observability, provenance, artifact distribution, and rollout portability.
4
4
 
5
5
  Highlights:
6
6
 
7
- - direct one-line machine execution with `xytara-run`
8
- - first-class wallet / ledger / lifecycle / reserve / commit / reversal inspection
9
- - first-class authority bindings with scoped and bounded contract enforcement
10
- - first-class machine-identity bindings, review, rotation, and operator bundle surfaces
11
- - explicit capability-registry, pricing-policy, quote-policy, trust-input, and trust-layer packages
12
- - multi-operator and external network participation packages with bounded admission flows
13
- - credits-first reusable spend posture with durable runtime economics state
14
- - native settlement-aware runtime inspection and proof-compatible handoff into `xoonya`
15
- - partner-ready onboarding, launch docs, and public example paths remain in place
7
+ - umbrella CLI entrypoint with `xytara start-here`, plus `xytara run` and `xytara release`
8
+ - first-class public contract lanes for `OpenAPI`, `AsyncAPI`, and `CloudEvents`
9
+ - first-class provider, framework, protocol, and integration-matrix discovery surfaces
10
+ - surfaced runtime breadth across `MCP`, `A2A`, `A2C`, `x402`, `Stripe MPP`, stablecoins, major rails, treasury, and registry-backed integrations
11
+ - surfaced framework and ecosystem breadth including `LangGraph`, `LangChain`, `AutoGen`, `Semantic Kernel`, `CrewAI`, and `LlamaIndex`
12
+ - surfaced protocol and transport breadth including `ACP`, `gRPC`, `Kafka`, `NATS`, `MQTT`, `ROS2`, and webhook event bus posture
13
+ - first-class observability, provenance, artifact-distribution, shared-signals, and feature-control lanes
14
+ - clearer install-and-use posture for humans, developers, and agents without widening the native runtime core
15
+ - existing wallet / authority / identity / trust / capability / pricing / participation foundations remain in place
16
16
 
17
17
  Recommended first checks:
18
18
 
19
19
  1. `npm install xytara`
20
- 2. `xytara-release --candidate --summary`
20
+ 2. `xytara start-here`
21
21
  3. `npm run verify:release-candidate`
22
22
  4. `node examples/partner_launch_walkthrough.js`
23
- 5. inspect `/v1/economics/accounts/:account_id/wallet-ledger-bundle`
24
- 6. inspect `/v1/economics/accounts/:account_id/authority-bundle`
25
- 7. inspect `/v1/economics/accounts/:account_id/machine-identity-operator-bundle`
26
- 8. inspect `/v1/capability-registry/package`
23
+ 5. inspect `/v1/providers`, `/v1/frameworks`, `/v1/protocols`, and `/v1/integration-matrix`
24
+ 6. inspect `/v1/mcp`, `/v1/a2a`, `/v1/a2c`, `/v1/x402`, and `/v1/settlement`
25
+ 7. inspect `/v1/telemetry`, `/v1/provenance`, `/v1/artifact-distribution`, `/v1/shared-signals`, and `/v1/feature-control`
26
+ 8. inspect `/v1/economics/accounts/:account_id/wallet-ledger-bundle`
27
27
  9. inspect `/v1/economics/accounts/:account_id/network-participation-package`
28
28
 
29
29
  Recommended first docs:
@@ -7,6 +7,60 @@ This file freezes the public service contract for `xytara`.
7
7
  Core routes:
8
8
 
9
9
  - `GET /health`
10
+ - `GET /openapi.json`
11
+ - `GET /v1/openapi`
12
+ - `GET /v1/openapi/summary`
13
+ - `GET /asyncapi.json`
14
+ - `GET /v1/asyncapi`
15
+ - `GET /v1/asyncapi/summary`
16
+ - `GET /cloudevents.json`
17
+ - `GET /v1/cloudevents`
18
+ - `GET /v1/cloudevents/summary`
19
+ - `GET /v1/auth-profiles`
20
+ - `GET /v1/auth-profiles/summary`
21
+ - `GET /v1/identity-interop`
22
+ - `GET /v1/identity-interop/summary`
23
+ - `GET /v1/providers`
24
+ - `GET /v1/providers/summary`
25
+ - `GET /v1/frameworks`
26
+ - `GET /v1/frameworks/summary`
27
+ - `GET /v1/protocols`
28
+ - `GET /v1/protocols/summary`
29
+ - `GET /v1/integration-matrix`
30
+ - `GET /v1/integration-matrix/summary`
31
+ - `GET /v1/mcp`
32
+ - `GET /v1/mcp/summary`
33
+ - `GET /v1/mcp/tools`
34
+ - `GET /v1/a2a`
35
+ - `GET /v1/a2a/summary`
36
+ - `GET /v1/a2c`
37
+ - `GET /v1/a2c/summary`
38
+ - `GET /v1/x402`
39
+ - `GET /v1/x402/summary`
40
+ - `GET /v1/settlement`
41
+ - `GET /v1/settlement/summary`
42
+ - `GET /v1/stripe-mpp`
43
+ - `GET /v1/stripe-mpp/summary`
44
+ - `GET /v1/stablecoins`
45
+ - `GET /v1/stablecoins/summary`
46
+ - `GET /v1/major-rails`
47
+ - `GET /v1/major-rails/summary`
48
+ - `GET /v1/treasury`
49
+ - `GET /v1/treasury/summary`
50
+ - `GET /v1/erc8004`
51
+ - `GET /v1/erc8004/summary`
52
+ - `GET /v1/event-systems`
53
+ - `GET /v1/event-systems/summary`
54
+ - `GET /v1/telemetry`
55
+ - `GET /v1/telemetry/summary`
56
+ - `GET /v1/provenance`
57
+ - `GET /v1/provenance/summary`
58
+ - `GET /v1/artifact-distribution`
59
+ - `GET /v1/artifact-distribution/summary`
60
+ - `GET /v1/shared-signals`
61
+ - `GET /v1/shared-signals/summary`
62
+ - `GET /v1/feature-control`
63
+ - `GET /v1/feature-control/summary`
10
64
  - `GET /v1/catalog`
11
65
  - `GET /v1/catalog/summary`
12
66
  - `GET /v1/catalog/task?ref=<task_ref_or_alias>`
@@ -15,6 +69,11 @@ Core routes:
15
69
  - `GET /v1/credit-packs`
16
70
  - `GET /v1/credit-packs/summary`
17
71
  - `GET /v1/credit-pack?ref=<pack_id>`
72
+ - `GET /v1/integrations`
73
+ - `GET /v1/integrations/summary`
74
+ - `GET /v1/integrations/classes`
75
+ - `GET /v1/integrations/protocols`
76
+ - `GET /v1/integrations/settlement-modes`
18
77
  - `GET /v1/account-auth/spend-credentials`
19
78
  - `POST /v1/account-auth/spend-credentials`
20
79
  - `GET /v1/account-auth/spend-credentials/:credential_id`
@@ -26,6 +85,22 @@ Core routes:
26
85
  Operational note:
27
86
 
28
87
  - for production acceptance, `POST /x402/commands/execute` and `POST /x402/mcp/tools/invoke` should normally run with `XYTARA_PAYMENT_VERIFICATION_MODE=local_signed` or a stronger verifier mode
88
+ - `GET /v1/identity-interop` exposes how native authority and machine identity map to `JWT`, `DID/VC`, and `SD-JWT VC` interop lanes without replacing the native runtime authority model
89
+ - `GET /v1/x402` exposes the first-class quote -> challenge -> pay -> execute lane for paid machine execution
90
+ - `GET /v1/settlement` exposes the settlement family map across native BSV/Teranode, EVM/Base/USDC, and the major-rails family
91
+ - `GET /v1/stripe-mpp` exposes the hosted-checkout and external-funding entry lane without making provider-specific checkout semantics the center of the stack
92
+ - `GET /v1/stablecoins` exposes the current USDC/Base runtime family and marks Circle Nanopayments/CCTP as adapter-ready extensions instead of pretending they are already core first-party rails
93
+ - `GET /v1/major-rails` exposes Solana plus the Antelope/Proton XPR/Metal family as one practical non-default settlement lane
94
+ - `GET /v1/treasury` exposes the treasury-connectivity posture and the internal reserve doctrine of BSV/Teranode plus DAI/USDC, with Monero retained only as an optional hidden privacy reserve
95
+ - `GET /v1/providers` exposes the OpenAI Codex and Claude/MCP family as first-class provider entry lanes
96
+ - `GET /v1/frameworks` exposes LangGraph, LangChain, AutoGen, and Semantic Kernel as the primary runtime framework lanes, with CrewAI and LlamaIndex surfaced as registry-backed framework breadth
97
+ - `GET /v1/protocols` exposes the canonical protocol and transport family across MCP, A2A, A2C, ACP, gRPC, Kafka, NATS, MQTT, ROS2, and webhook-event-bus posture
98
+ - `GET /v1/integration-matrix` exposes the canonical public view across providers, frameworks, protocols, payments, settlement families, and registry-backed integrations
99
+ - `GET /v1/telemetry` exposes the OpenTelemetry-aligned observability posture across runtime traces, metrics, logs, and event carry
100
+ - `GET /v1/provenance` exposes the SLSA-aligned release and execution provenance posture for runtime trust and adoption
101
+ - `GET /v1/artifact-distribution` exposes OCI-style artifact distribution posture for adapters, submission bundles, registry snapshots, and release artifacts
102
+ - `GET /v1/shared-signals` exposes OpenID Shared Signals and CAEP-aligned risk and identity event exchange posture without replacing native runtime decisions
103
+ - `GET /v1/feature-control` exposes OpenFeature/OFREP-aligned rollout and policy portability posture across pricing, authority, identity, trust, and release gates
29
104
  - accepted payments then flow into payment-ledger, treasury-summary, rail-summary, and reconciliation surfaces
30
105
  - the default first-party settlement posture is now `bsv_teranode`, and `x402` challenge quotes carry native BSV/Teranode settlement hints when that default path is in use
31
106
  - in production, `POST /v1/credit-bridge/grants` should normally require `authorization: Bearer <token>` backed by `XYTARA_CREDIT_BRIDGE_BEARER_TOKEN`
package/START_HERE.md CHANGED
@@ -47,12 +47,46 @@ npm run verify:all
47
47
 
48
48
  This is the production-confidence check for the published package surface.
49
49
 
50
+ If you are evaluating a real deployment that will use grants, credits, entitlements, or usage meters, also run:
51
+
52
+ ```bash
53
+ npm run verify:production-readiness
54
+ ```
55
+
56
+ That gate is stricter than local verification and expects runtime persistence to be configured through `XYTARA_STATE_FILE` on persistent disk or `XYTARA_SUPABASE_*`.
57
+
50
58
  ## 4. Read The Durable Contract
51
59
 
52
60
  For long-term product understanding, read:
53
61
 
54
62
  - [FINAL_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/FINAL_CONTRACT.md)
55
63
  - [SERVICE_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/SERVICE_CONTRACT.md)
64
+ - `GET /openapi.json`
65
+ - `GET /asyncapi.json`
66
+ - `GET /cloudevents.json`
67
+ - `GET /v1/auth-profiles`
68
+ - `GET /v1/identity-interop`
69
+ - `GET /v1/providers`
70
+ - `GET /v1/frameworks`
71
+ - `GET /v1/protocols`
72
+ - `GET /v1/integration-matrix`
73
+ - `GET /v1/telemetry`
74
+ - `GET /v1/provenance`
75
+ - `GET /v1/artifact-distribution`
76
+ - `GET /v1/shared-signals`
77
+ - `GET /v1/feature-control`
78
+ - `GET /v1/mcp`
79
+ - `GET /v1/a2a`
80
+ - `GET /v1/a2c`
81
+ - `GET /v1/x402`
82
+ - `GET /v1/settlement`
83
+ - `GET /v1/stripe-mpp`
84
+ - `GET /v1/stablecoins`
85
+ - `GET /v1/major-rails`
86
+ - `GET /v1/treasury`
87
+ - `GET /v1/erc8004`
88
+ - `GET /v1/event-systems`
89
+ - `GET /v1/integrations`
56
90
  - [PROGRAM_STATUS.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/PROGRAM_STATUS.md)
57
91
  - [OPERATOR_START_HERE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/OPERATOR_START_HERE.md)
58
92
  - [OPERATIONS_RUNBOOK.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/OPERATIONS_RUNBOOK.md)
@@ -83,6 +117,12 @@ It is:
83
117
 
84
118
  discover -> preview/quote -> execute -> inspect -> hand off to `xoonya`
85
119
 
120
+ If you want the shortest CLI-first read of the package after install, use:
121
+
122
+ - `xytara start-here`
123
+ - `xytara release --summary`
124
+ - `xytara run --help`
125
+
86
126
  ## 7. If You Are Operating The Closed Program
87
127
 
88
128
  Use:
package/bin/xytara.js ADDED
@@ -0,0 +1,55 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+
4
+ const path = require("path");
5
+ const { spawnSync } = require("child_process");
6
+
7
+ function printUsage() {
8
+ process.stdout.write([
9
+ "Usage: xytara <command> [options]",
10
+ "",
11
+ "Commands:",
12
+ " release [args] Open the release/adoption/reporting surface",
13
+ " run [args] Execute the paid runtime command path",
14
+ " start-here Print the shortest first-run path",
15
+ " help Show this help message",
16
+ "",
17
+ "Fastest first run:",
18
+ " xytara start-here",
19
+ " xytara release --summary",
20
+ " xytara run --help"
21
+ ].join("\n"));
22
+ }
23
+
24
+ function printStartHere() {
25
+ process.stdout.write([
26
+ "xytara start-here",
27
+ "",
28
+ "1. xytara release --summary",
29
+ "2. node examples/quickstart.js",
30
+ "3. npm run verify:all",
31
+ "4. Inspect /v1/providers, /v1/frameworks, /v1/protocols, /v1/integration-matrix",
32
+ "5. Continue into MCP/A2A/A2C/x402/settlement lanes as needed"
33
+ ].join("\n"));
34
+ }
35
+
36
+ function delegate(scriptName, args) {
37
+ const scriptPath = path.join(__dirname, scriptName);
38
+ const result = spawnSync(process.execPath, [scriptPath, ...args], { stdio: "inherit" });
39
+ process.exitCode = typeof result.status === "number" ? result.status : 1;
40
+ }
41
+
42
+ const [command, ...rest] = process.argv.slice(2);
43
+
44
+ if (!command || command === "help" || command === "--help" || command === "-h") {
45
+ printUsage();
46
+ } else if (command === "start-here" || command === "--start-here") {
47
+ printStartHere();
48
+ } else if (command === "release") {
49
+ delegate("xytara-release.js", rest);
50
+ } else if (command === "run") {
51
+ delegate("xytara-run.js", rest);
52
+ } else {
53
+ printUsage();
54
+ process.exitCode = 1;
55
+ }
package/index.js CHANGED
@@ -94,7 +94,7 @@ const {
94
94
  } = require("./integrations/registry");
95
95
 
96
96
  const COMMERCE_SDK_NAME = "xytara";
97
- const COMMERCE_SDK_VERSION = "2.2.0";
97
+ const COMMERCE_SDK_VERSION = "2.5.0";
98
98
  const COMMERCE_API_VERSION = "v1";
99
99
 
100
100
  function createClient(options) {
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+
3
+ const {
4
+ buildPrecommitInteractionPackCatalog,
5
+ buildInteractionSpinePathCatalog,
6
+ buildTransactionClassPackCatalog,
7
+ summarizePrecommitInteractionPacks,
8
+ summarizeInteractionSpinePaths,
9
+ summarizeTransactionClassPacks,
10
+ buildDefaultTransactionCenter,
11
+ summarizeDefaultTransactionCenter
12
+ } = require("./catalog_contract");
13
+
14
+ function buildA2ALanePack() {
15
+ const center = buildDefaultTransactionCenter();
16
+ const centerSummary = summarizeDefaultTransactionCenter();
17
+ const precommitCatalog = buildPrecommitInteractionPackCatalog();
18
+ const spineCatalog = buildInteractionSpinePathCatalog();
19
+ const classCatalog = buildTransactionClassPackCatalog();
20
+ const precommitPacks = Array.isArray(precommitCatalog.packs) ? precommitCatalog.packs : [];
21
+ const spinePaths = Array.isArray(spineCatalog.paths) ? spineCatalog.paths : [];
22
+ const classPacks = Array.isArray(classCatalog.class_packs) ? classCatalog.class_packs : [];
23
+
24
+ const readinessPack = precommitPacks.find((entry) => entry.precommit_pack_ref === "precommit.a2a.settlement.readiness") || null;
25
+ const settlementSpine = spinePaths.find((entry) => entry.spine_path_ref === "spine.a2a.settlement") || null;
26
+ const committedClass = classPacks.find((entry) => entry.class_pack_ref === "transaction.admission.settlement") || null;
27
+
28
+ return {
29
+ product: "xytara",
30
+ category: "machine-commerce-a2a-lane-pack",
31
+ pack_version: "xytara-a2a-lane-pack-v1",
32
+ lane_state: "first_party_a2a_present",
33
+ default_protocol: "a2a",
34
+ default_payment_protocol: centerSummary.default_payment_protocol,
35
+ default_settlement_mode: centerSummary.default_settlement_mode,
36
+ default_transaction_center: center,
37
+ readiness_pack: readinessPack,
38
+ settlement_spine: settlementSpine,
39
+ committed_class_pack: committedClass,
40
+ precommit_summary: summarizePrecommitInteractionPacks(),
41
+ spine_summary: summarizeInteractionSpinePaths(),
42
+ class_summary: summarizeTransactionClassPacks(),
43
+ first_run_flows: [
44
+ {
45
+ flow_ref: "precommit.a2a.settlement.readiness",
46
+ recommended_reason: "best first A2A readiness and negotiation view",
47
+ example_surfaces: {
48
+ negotiate_ref: "/v1/a2a/negotiate",
49
+ admission_preview_ref: "/v1/admission/preview",
50
+ commit_ref: "/v1/a2a/commit"
51
+ }
52
+ },
53
+ {
54
+ flow_ref: "spine.a2a.settlement",
55
+ recommended_reason: "best first full A2A settlement path",
56
+ example_surfaces: {
57
+ flow_ref: "/v1/a2a",
58
+ settlement_flow_ref: "/v1/a2a/flows/settlement",
59
+ cross_zone_preview_ref: "/v1/coordination-center/cross-zone-preview"
60
+ }
61
+ }
62
+ ],
63
+ supported_surfaces: {
64
+ negotiate_ref: "/v1/a2a/negotiate",
65
+ commit_ref: "/v1/a2a/commit",
66
+ settlement_flow_ref: "/v1/a2a/flows/settlement",
67
+ admission_preview_ref: "/v1/admission/preview",
68
+ handshake_preview_ref: "/v1/coordination-center/handshake-preview",
69
+ cross_zone_preview_ref: "/v1/coordination-center/cross-zone-preview",
70
+ auth_profile_ref: "/v1/auth-profiles",
71
+ openapi_ref: "/openapi.json",
72
+ asyncapi_ref: "/asyncapi.json",
73
+ cloudevents_ref: "/cloudevents.json"
74
+ },
75
+ recommended_sequence: [
76
+ "preview_counterparty_and_task_pack_intent",
77
+ "negotiate_a2a",
78
+ "preview_admission_posture",
79
+ "commit_a2a",
80
+ "run_settlement_spine_or_committed_class",
81
+ "inspect_transaction_and_proof_followthrough"
82
+ ]
83
+ };
84
+ }
85
+
86
+ function summarizeA2ALanePack() {
87
+ const pack = buildA2ALanePack();
88
+ return {
89
+ product: "xytara",
90
+ category: "machine-commerce-a2a-lane-pack-summary",
91
+ summary_version: "xytara-a2a-lane-pack-summary-v1",
92
+ lane_state: pack.lane_state,
93
+ default_payment_protocol: pack.default_payment_protocol,
94
+ default_settlement_mode: pack.default_settlement_mode,
95
+ first_run_flow_count: pack.first_run_flows.length,
96
+ settlement_spine_ref: pack.settlement_spine ? pack.settlement_spine.spine_path_ref : null,
97
+ linked_surfaces: pack.supported_surfaces
98
+ };
99
+ }
100
+
101
+ module.exports = {
102
+ buildA2ALanePack,
103
+ summarizeA2ALanePack
104
+ };
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+
3
+ const {
4
+ buildDefaultTransactionTaskPackCatalog,
5
+ buildDefaultTransactionGuidedLoopCatalog,
6
+ buildPrecommitInteractionPackCatalog,
7
+ buildInteractionSpinePathCatalog,
8
+ summarizeDefaultTransactionTaskPacks,
9
+ summarizeDefaultTransactionGuidedLoops,
10
+ summarizePrecommitInteractionPacks,
11
+ summarizeInteractionSpinePaths,
12
+ buildDefaultTransactionCenter,
13
+ summarizeDefaultTransactionCenter
14
+ } = require("./catalog_contract");
15
+
16
+ function buildA2CLanePack() {
17
+ const center = buildDefaultTransactionCenter();
18
+ const centerSummary = summarizeDefaultTransactionCenter();
19
+ const taskPackCatalog = buildDefaultTransactionTaskPackCatalog();
20
+ const guidedLoopCatalog = buildDefaultTransactionGuidedLoopCatalog();
21
+ const precommitCatalog = buildPrecommitInteractionPackCatalog();
22
+ const spineCatalog = buildInteractionSpinePathCatalog();
23
+
24
+ const taskPacks = Array.isArray(taskPackCatalog.packs) ? taskPackCatalog.packs : [];
25
+ const guidedLoops = Array.isArray(guidedLoopCatalog.loops) ? guidedLoopCatalog.loops : [];
26
+ const precommitPacks = Array.isArray(precommitCatalog.packs) ? precommitCatalog.packs : [];
27
+ const spinePaths = Array.isArray(spineCatalog.paths) ? spineCatalog.paths : [];
28
+
29
+ const defaultTaskPack = taskPacks.find((entry) => entry.pack_ref === "default.a2c.tooling.run") || null;
30
+ const defaultGuidedLoop = guidedLoops.find((entry) => entry.loop_ref === "default.a2c.tooling.loop") || null;
31
+ const readinessPack = precommitPacks.find((entry) => entry.precommit_pack_ref === "precommit.a2c.tooling.readiness") || null;
32
+ const toolingSpine = spinePaths.find((entry) => entry.spine_path_ref === "spine.a2c.tooling") || null;
33
+
34
+ return {
35
+ product: "xytara",
36
+ category: "machine-commerce-a2c-lane-pack",
37
+ pack_version: "xytara-a2c-lane-pack-v1",
38
+ lane_state: "first_party_a2c_present",
39
+ default_protocol: "a2c",
40
+ default_payment_protocol: centerSummary.default_payment_protocol,
41
+ default_settlement_mode: centerSummary.default_settlement_mode,
42
+ default_transaction_center: center,
43
+ default_task_pack: defaultTaskPack,
44
+ default_guided_loop: defaultGuidedLoop,
45
+ readiness_pack: readinessPack,
46
+ tooling_spine: toolingSpine,
47
+ task_pack_summary: summarizeDefaultTransactionTaskPacks(),
48
+ guided_loop_summary: summarizeDefaultTransactionGuidedLoops(),
49
+ precommit_summary: summarizePrecommitInteractionPacks(),
50
+ spine_summary: summarizeInteractionSpinePaths(),
51
+ first_run_flows: [
52
+ {
53
+ flow_ref: "precommit.a2c.tooling.readiness",
54
+ recommended_reason: "best first A2C readiness and session-preview path",
55
+ example_surfaces: {
56
+ session_open_ref: "/v1/a2c/sessions/open",
57
+ pack_preview_ref: "/v1/a2c/packs/preview",
58
+ admission_preview_ref: "/v1/admission/preview"
59
+ }
60
+ },
61
+ {
62
+ flow_ref: "default.a2c.tooling.run",
63
+ recommended_reason: "best first committed A2C-to-MCP tooling path",
64
+ example_surfaces: {
65
+ lane_ref: "/v1/a2c",
66
+ tooling_flow_ref: "/v1/a2c/flows/tooling",
67
+ mcp_lane_ref: "/v1/mcp"
68
+ }
69
+ }
70
+ ],
71
+ supported_surfaces: {
72
+ session_open_ref: "/v1/a2c/sessions/open",
73
+ pack_preview_ref: "/v1/a2c/packs/preview",
74
+ tooling_flow_ref: "/v1/a2c/flows/tooling",
75
+ admission_preview_ref: "/v1/admission/preview",
76
+ mcp_lane_ref: "/v1/mcp",
77
+ auth_profile_ref: "/v1/auth-profiles",
78
+ openapi_ref: "/openapi.json",
79
+ asyncapi_ref: "/asyncapi.json",
80
+ cloudevents_ref: "/cloudevents.json"
81
+ },
82
+ recommended_sequence: [
83
+ "open_a2c_session",
84
+ "preview_a2c_pack",
85
+ "inspect_admission_posture",
86
+ "run_default_a2c_tooling_flow",
87
+ "invoke_the_underlying_mcp_tool_path",
88
+ "inspect_transaction_and_proof_followthrough"
89
+ ]
90
+ };
91
+ }
92
+
93
+ function summarizeA2CLanePack() {
94
+ const pack = buildA2CLanePack();
95
+ return {
96
+ product: "xytara",
97
+ category: "machine-commerce-a2c-lane-pack-summary",
98
+ summary_version: "xytara-a2c-lane-pack-summary-v1",
99
+ lane_state: pack.lane_state,
100
+ default_payment_protocol: pack.default_payment_protocol,
101
+ default_settlement_mode: pack.default_settlement_mode,
102
+ first_run_flow_count: pack.first_run_flows.length,
103
+ default_task_pack_ref: pack.default_task_pack ? pack.default_task_pack.pack_ref : null,
104
+ linked_surfaces: pack.supported_surfaces
105
+ };
106
+ }
107
+
108
+ module.exports = {
109
+ buildA2CLanePack,
110
+ summarizeA2CLanePack
111
+ };
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ function buildArtifactDistributionLanePack() {
4
+ return {
5
+ product: "xytara",
6
+ category: "machine-commerce-artifact-distribution-lane-pack",
7
+ pack_version: "xytara-artifact-distribution-lane-pack-v1",
8
+ lane_state: "first_party_artifact_distribution_lane_present",
9
+ posture: "oci_style_distribution_and_export_lane",
10
+ standards: ["oci_artifacts", "oras_style_distribution"],
11
+ artifact_families: ["adapter_packs", "submission_bundles", "registry_snapshots", "release_artifacts"],
12
+ supported_surfaces: {
13
+ integrations_ref: "/v1/integrations",
14
+ integration_snapshot_ref: "/v1/integrations/review/registry-snapshot",
15
+ adapter_pack_ref: "/v1/adapter-pack",
16
+ release_center_ref: "/v1/release-center",
17
+ release_pack_ref: "/v1/release-pack"
18
+ },
19
+ first_run_flows: [
20
+ {
21
+ flow_ref: "artifact_distribution_alignment",
22
+ recommended_reason: "best path for teams that want portable adapter, registry, and release artifacts instead of ad hoc zip-and-doc distribution",
23
+ sequence: [
24
+ "inspect_artifact_distribution_lane_summary",
25
+ "inspect_adapter_and_registry_export_surfaces",
26
+ "treat_release_and_submission bundles as distribution-ready artifacts",
27
+ "publish_or_transfer_artifacts through standard registries later without changing canonical shapes"
28
+ ]
29
+ }
30
+ ],
31
+ guardrails: [
32
+ "artifact portability should preserve canonical bundle shapes instead of inventing a second artifact model",
33
+ "distribution posture should remain subordinate to runtime, proof, and integration truth"
34
+ ]
35
+ };
36
+ }
37
+
38
+ function summarizeArtifactDistributionLanePack() {
39
+ const pack = buildArtifactDistributionLanePack();
40
+ return {
41
+ product: "xytara",
42
+ category: "machine-commerce-artifact-distribution-lane-pack-summary",
43
+ summary_version: "xytara-artifact-distribution-lane-pack-summary-v1",
44
+ lane_state: pack.lane_state,
45
+ standard_count: pack.standards.length,
46
+ artifact_family_count: pack.artifact_families.length,
47
+ linked_surfaces: pack.supported_surfaces
48
+ };
49
+ }
50
+
51
+ module.exports = {
52
+ buildArtifactDistributionLanePack,
53
+ summarizeArtifactDistributionLanePack
54
+ };