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.
- package/OPERATIONS_RUNBOOK.md +1 -0
- package/README.md +16 -0
- package/RELEASE_NOTES.md +16 -16
- package/SERVICE_CONTRACT.md +75 -0
- package/START_HERE.md +40 -0
- package/bin/xytara.js +55 -0
- package/index.js +1 -1
- package/lib/a2a_lane_contract.js +104 -0
- package/lib/a2c_lane_contract.js +111 -0
- package/lib/artifact_distribution_lane_contract.js +54 -0
- package/lib/asyncapi_contract.js +150 -0
- package/lib/auth_interop_contract.js +80 -0
- package/lib/cloudevents_contract.js +80 -0
- package/lib/commerce_client.js +32 -0
- package/lib/erc8004_lane_contract.js +65 -0
- package/lib/event_system_lane_contract.js +75 -0
- package/lib/feature_control_lane_contract.js +54 -0
- package/lib/framework_lane_contract.js +89 -0
- package/lib/identity_interop_contract.js +82 -0
- package/lib/integration_matrix_contract.js +93 -0
- package/lib/major_rails_lane_contract.js +90 -0
- package/lib/mcp_lane_contract.js +110 -0
- package/lib/openapi_contract.js +296 -0
- package/lib/protocol_lane_contract.js +114 -0
- package/lib/provenance_lane_contract.js +54 -0
- package/lib/provider_lane_contract.js +72 -0
- package/lib/release_history.js +16 -0
- package/lib/settlement_lane_contract.js +111 -0
- package/lib/shared_signals_lane_contract.js +54 -0
- package/lib/stablecoin_lane_contract.js +76 -0
- package/lib/stripe_mpp_lane_contract.js +93 -0
- package/lib/telemetry_lane_contract.js +54 -0
- package/lib/treasury_lane_contract.js +84 -0
- package/lib/x402_lane_contract.js +118 -0
- package/package.json +5 -3
- package/server.js +367 -0
package/OPERATIONS_RUNBOOK.md
CHANGED
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.
|
|
1
|
+
# xytara 2.5.0 Release Notes
|
|
2
2
|
|
|
3
|
-
`xytara` 2.
|
|
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
|
-
-
|
|
8
|
-
- first-class
|
|
9
|
-
- first-class
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
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-
|
|
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/
|
|
24
|
-
6. inspect `/v1/
|
|
25
|
-
7. inspect `/v1/
|
|
26
|
-
8. inspect `/v1/
|
|
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:
|
package/SERVICE_CONTRACT.md
CHANGED
|
@@ -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
|
@@ -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
|
+
};
|