xytara 2.3.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 (44) hide show
  1. package/OPERATIONS_RUNBOOK.md +1 -0
  2. package/README.md +16 -0
  3. package/RELEASE_NOTES.md +18 -14
  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/account_auth.js +347 -1
  11. package/lib/artifact_distribution_lane_contract.js +54 -0
  12. package/lib/asyncapi_contract.js +150 -0
  13. package/lib/auth_interop_contract.js +80 -0
  14. package/lib/capability_registry.js +572 -0
  15. package/lib/cloudevents_contract.js +80 -0
  16. package/lib/command_flow.js +20 -1
  17. package/lib/commerce_authority.js +449 -0
  18. package/lib/commerce_client.js +32 -0
  19. package/lib/commerce_economics.js +2168 -2
  20. package/lib/commerce_identity.js +578 -0
  21. package/lib/commerce_runtime.js +4 -0
  22. package/lib/erc8004_lane_contract.js +65 -0
  23. package/lib/event_system_lane_contract.js +75 -0
  24. package/lib/feature_control_lane_contract.js +54 -0
  25. package/lib/framework_lane_contract.js +89 -0
  26. package/lib/identity_auth.js +175 -0
  27. package/lib/identity_interop_contract.js +82 -0
  28. package/lib/integration_matrix_contract.js +93 -0
  29. package/lib/major_rails_lane_contract.js +90 -0
  30. package/lib/mcp_lane_contract.js +110 -0
  31. package/lib/openapi_contract.js +296 -0
  32. package/lib/protocol_lane_contract.js +114 -0
  33. package/lib/provenance_lane_contract.js +54 -0
  34. package/lib/provider_lane_contract.js +72 -0
  35. package/lib/release_history.js +16 -0
  36. package/lib/settlement_lane_contract.js +111 -0
  37. package/lib/shared_signals_lane_contract.js +54 -0
  38. package/lib/stablecoin_lane_contract.js +76 -0
  39. package/lib/stripe_mpp_lane_contract.js +93 -0
  40. package/lib/telemetry_lane_contract.js +54 -0
  41. package/lib/treasury_lane_contract.js +84 -0
  42. package/lib/x402_lane_contract.js +118 -0
  43. package/package.json +5 -3
  44. package/server.js +1544 -0
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+
3
+ const {
4
+ buildDefaultTransactionCenter,
5
+ buildDefaultTransactionTaskPackCatalog,
6
+ buildDefaultTransactionGuidedLoopCatalog,
7
+ summarizeDefaultTransactionCenter,
8
+ summarizeDefaultTransactionTaskPacks,
9
+ summarizeDefaultTransactionGuidedLoops
10
+ } = require("./catalog_contract");
11
+
12
+ function buildMcpLanePack() {
13
+ const center = buildDefaultTransactionCenter();
14
+ const centerSummary = summarizeDefaultTransactionCenter();
15
+ const taskPackCatalog = buildDefaultTransactionTaskPackCatalog();
16
+ const taskPackSummary = summarizeDefaultTransactionTaskPacks();
17
+ const guidedLoopCatalog = buildDefaultTransactionGuidedLoopCatalog();
18
+ const guidedLoopSummary = summarizeDefaultTransactionGuidedLoops();
19
+ const taskPacks = Array.isArray(taskPackCatalog.packs) ? taskPackCatalog.packs : [];
20
+ const guidedLoops = Array.isArray(guidedLoopCatalog.loops) ? guidedLoopCatalog.loops : [];
21
+ const defaultTaskPack = taskPacks.find((entry) => entry.pack_ref === "default.mcp.tool.invoke") || null;
22
+ const defaultLoop = guidedLoops.find((entry) => entry.loop_ref === "default.mcp.loop") || null;
23
+
24
+ return {
25
+ product: "xytara",
26
+ category: "machine-commerce-mcp-lane-pack",
27
+ pack_version: "xytara-mcp-lane-pack-v1",
28
+ lane_state: "first_party_default_present",
29
+ default_protocol: centerSummary.default_protocol,
30
+ default_payment_protocol: centerSummary.default_payment_protocol,
31
+ default_settlement_mode: centerSummary.default_settlement_mode,
32
+ default_transaction_center: center,
33
+ default_task_pack: defaultTaskPack,
34
+ default_guided_loop: defaultLoop,
35
+ task_pack_summary: taskPackSummary,
36
+ guided_loop_summary: guidedLoopSummary,
37
+ first_run_tools: [
38
+ {
39
+ tool_name: "summarize",
40
+ lane: "default.mcp.tool.invoke",
41
+ recommended_reason: "fastest low-friction example tool for first-run usage",
42
+ example_surfaces: {
43
+ preview_ref: "/v1/mcp/tools?tool_name=summarize",
44
+ invoke_ref: "/v1/mcp/tools/invoke"
45
+ }
46
+ },
47
+ {
48
+ tool_name: "zones.lookup",
49
+ lane: "default.mcp.loop",
50
+ recommended_reason: "best first real infrastructure-shaped tool path",
51
+ example_surfaces: {
52
+ preview_ref: "/v1/mcp/tools?tool_name=zones.lookup",
53
+ invoke_ref: "/v1/mcp/tools/invoke"
54
+ }
55
+ }
56
+ ],
57
+ supported_surfaces: {
58
+ invoke_ref: "/v1/mcp/tools/invoke",
59
+ paid_invoke_ref: "/x402/mcp/tools/invoke",
60
+ auth_profile_ref: "/v1/auth-profiles",
61
+ openapi_ref: "/openapi.json",
62
+ asyncapi_ref: "/asyncapi.json",
63
+ cloudevents_ref: "/cloudevents.json"
64
+ },
65
+ recommended_sequence: [
66
+ "discover_default_mcp_lane",
67
+ "preview_or_quote_default_tool_path",
68
+ "choose_native_or_x402_payment_path",
69
+ "invoke_tool",
70
+ "inspect_transaction_and_handoff_posture"
71
+ ]
72
+ };
73
+ }
74
+
75
+ function summarizeMcpLanePack() {
76
+ const pack = buildMcpLanePack();
77
+ return {
78
+ product: "xytara",
79
+ category: "machine-commerce-mcp-lane-pack-summary",
80
+ summary_version: "xytara-mcp-lane-pack-summary-v1",
81
+ lane_state: pack.lane_state,
82
+ default_payment_protocol: pack.default_payment_protocol,
83
+ default_settlement_mode: pack.default_settlement_mode,
84
+ first_run_tool_count: pack.first_run_tools.length,
85
+ guided_loop_ref: pack.default_guided_loop ? pack.default_guided_loop.loop_ref : null,
86
+ linked_surfaces: pack.supported_surfaces
87
+ };
88
+ }
89
+
90
+ function listMcpTools() {
91
+ return {
92
+ ok: true,
93
+ category: "machine-commerce-mcp-tools-list",
94
+ list_version: "xytara-mcp-tools-list-v1",
95
+ tools: buildMcpLanePack().first_run_tools
96
+ };
97
+ }
98
+
99
+ function getMcpToolDetail(toolName) {
100
+ const normalizedToolName = String(toolName || "").trim();
101
+ const tools = buildMcpLanePack().first_run_tools;
102
+ return tools.find((entry) => entry.tool_name === normalizedToolName) || null;
103
+ }
104
+
105
+ module.exports = {
106
+ buildMcpLanePack,
107
+ summarizeMcpLanePack,
108
+ listMcpTools,
109
+ getMcpToolDetail
110
+ };
@@ -0,0 +1,296 @@
1
+ "use strict";
2
+
3
+ const pkg = require("../package.json");
4
+
5
+ function buildOpenApiDocument() {
6
+ return {
7
+ openapi: "3.1.0",
8
+ info: {
9
+ title: "xytara Public HTTP Contract",
10
+ version: pkg.version,
11
+ summary: "Machine-commerce runtime contract for the stable public HTTP layer.",
12
+ description: "This OpenAPI document exposes the stable builder-facing HTTP surfaces we want outside builders and partners to stand on first.",
13
+ contact: {
14
+ name: "naxytra"
15
+ }
16
+ },
17
+ jsonSchemaDialect: "https://spec.openapis.org/oas/3.1/dialect/base",
18
+ servers: [
19
+ {
20
+ url: "http://127.0.0.1:4320",
21
+ description: "Local xytara service"
22
+ }
23
+ ],
24
+ tags: [
25
+ { name: "health", description: "Service health and readiness." },
26
+ { name: "catalog", description: "Capability discovery surfaces." },
27
+ { name: "payments", description: "Quote and payment execution surfaces." },
28
+ { name: "mcp", description: "Machine invocation surfaces." },
29
+ { name: "authority", description: "Authority and delegation surfaces." },
30
+ { name: "economics", description: "Wallet, trust, and participation surfaces." },
31
+ { name: "registry", description: "Capability registry surfaces." }
32
+ ],
33
+ paths: {
34
+ "/health": {
35
+ get: {
36
+ tags: ["health"],
37
+ summary: "Health check",
38
+ operationId: "getHealth",
39
+ responses: {
40
+ "200": {
41
+ description: "Service health response"
42
+ }
43
+ }
44
+ }
45
+ },
46
+ "/v1/catalog": {
47
+ get: {
48
+ tags: ["catalog"],
49
+ summary: "Get capability catalog",
50
+ operationId: "getCatalog",
51
+ responses: {
52
+ "200": { description: "Catalog bundle" }
53
+ }
54
+ }
55
+ },
56
+ "/v1/catalog/summary": {
57
+ get: {
58
+ tags: ["catalog"],
59
+ summary: "Get capability catalog summary",
60
+ operationId: "getCatalogSummary",
61
+ responses: {
62
+ "200": { description: "Catalog summary" }
63
+ }
64
+ }
65
+ },
66
+ "/v1/account-auth/spend-credentials": {
67
+ get: {
68
+ tags: ["authority"],
69
+ summary: "List spend credentials",
70
+ operationId: "listSpendCredentials",
71
+ responses: {
72
+ "200": { description: "Spend credential list" }
73
+ }
74
+ },
75
+ post: {
76
+ tags: ["authority"],
77
+ summary: "Create spend credential",
78
+ operationId: "createSpendCredential",
79
+ responses: {
80
+ "200": { description: "Spend credential created" }
81
+ }
82
+ }
83
+ },
84
+ "/v1/payment-quotes": {
85
+ post: {
86
+ tags: ["payments"],
87
+ summary: "Create payment quote",
88
+ operationId: "createPaymentQuote",
89
+ responses: {
90
+ "200": { description: "Quote created" },
91
+ "400": { description: "Invalid quote request" }
92
+ }
93
+ }
94
+ },
95
+ "/v1/commands/execute": {
96
+ post: {
97
+ tags: ["payments"],
98
+ summary: "Execute command through the default commerce path",
99
+ operationId: "executeCommand",
100
+ responses: {
101
+ "200": { description: "Execution accepted" },
102
+ "402": { description: "Payment required or payment challenge" }
103
+ }
104
+ }
105
+ },
106
+ "/x402/commands/execute": {
107
+ post: {
108
+ tags: ["payments"],
109
+ summary: "Execute command through the x402 payment path",
110
+ operationId: "executeCommandViaX402",
111
+ responses: {
112
+ "200": { description: "Execution accepted" },
113
+ "402": { description: "x402 payment required" }
114
+ }
115
+ }
116
+ },
117
+ "/v1/mcp/tools/invoke": {
118
+ post: {
119
+ tags: ["mcp"],
120
+ summary: "Invoke an MCP-facing runtime tool",
121
+ operationId: "invokeMcpTool",
122
+ responses: {
123
+ "200": { description: "Tool invocation result" },
124
+ "400": { description: "Invalid invocation request" }
125
+ }
126
+ }
127
+ },
128
+ "/x402/mcp/tools/invoke": {
129
+ post: {
130
+ tags: ["mcp"],
131
+ summary: "Invoke an MCP-facing runtime tool with x402 payment",
132
+ operationId: "invokeMcpToolViaX402",
133
+ responses: {
134
+ "200": { description: "Tool invocation result" },
135
+ "402": { description: "x402 payment required" }
136
+ }
137
+ }
138
+ },
139
+ "/v1/economics/accounts/{account_id}/wallet-ledger-bundle": {
140
+ get: {
141
+ tags: ["economics"],
142
+ summary: "Inspect the canonical wallet-ledger bundle",
143
+ operationId: "getWalletLedgerBundle",
144
+ parameters: [
145
+ {
146
+ name: "account_id",
147
+ in: "path",
148
+ required: true,
149
+ schema: {
150
+ type: "string"
151
+ }
152
+ }
153
+ ],
154
+ responses: {
155
+ "200": { description: "Wallet-ledger bundle" }
156
+ }
157
+ }
158
+ },
159
+ "/v1/economics/accounts/{account_id}/authority-bundle": {
160
+ get: {
161
+ tags: ["authority"],
162
+ summary: "Inspect canonical account authority posture",
163
+ operationId: "getAuthorityBundle",
164
+ parameters: [
165
+ {
166
+ name: "account_id",
167
+ in: "path",
168
+ required: true,
169
+ schema: {
170
+ type: "string"
171
+ }
172
+ }
173
+ ],
174
+ responses: {
175
+ "200": { description: "Authority bundle" }
176
+ }
177
+ }
178
+ },
179
+ "/v1/economics/accounts/{account_id}/machine-identity-operator-bundle": {
180
+ get: {
181
+ tags: ["economics"],
182
+ summary: "Inspect canonical machine identity posture",
183
+ operationId: "getMachineIdentityOperatorBundle",
184
+ parameters: [
185
+ {
186
+ name: "account_id",
187
+ in: "path",
188
+ required: true,
189
+ schema: {
190
+ type: "string"
191
+ }
192
+ }
193
+ ],
194
+ responses: {
195
+ "200": { description: "Machine identity operator bundle" }
196
+ }
197
+ }
198
+ },
199
+ "/v1/capability-registry/package": {
200
+ get: {
201
+ tags: ["registry"],
202
+ summary: "Inspect canonical capability registry package",
203
+ operationId: "getCapabilityRegistryPackage",
204
+ parameters: [
205
+ {
206
+ name: "account_id",
207
+ in: "query",
208
+ required: false,
209
+ schema: {
210
+ type: "string"
211
+ }
212
+ }
213
+ ],
214
+ responses: {
215
+ "200": { description: "Capability registry package" }
216
+ }
217
+ }
218
+ },
219
+ "/v1/economics/accounts/{account_id}/trust-layer-package": {
220
+ get: {
221
+ tags: ["economics"],
222
+ summary: "Inspect canonical trust-layer package",
223
+ operationId: "getTrustLayerPackage",
224
+ parameters: [
225
+ {
226
+ name: "account_id",
227
+ in: "path",
228
+ required: true,
229
+ schema: {
230
+ type: "string"
231
+ }
232
+ }
233
+ ],
234
+ responses: {
235
+ "200": { description: "Trust-layer package" }
236
+ }
237
+ }
238
+ },
239
+ "/v1/economics/accounts/{account_id}/network-participation-package": {
240
+ get: {
241
+ tags: ["economics"],
242
+ summary: "Inspect external network participation package",
243
+ operationId: "getNetworkParticipationPackage",
244
+ parameters: [
245
+ {
246
+ name: "account_id",
247
+ in: "path",
248
+ required: true,
249
+ schema: {
250
+ type: "string"
251
+ }
252
+ }
253
+ ],
254
+ responses: {
255
+ "200": { description: "Network participation package" }
256
+ }
257
+ }
258
+ }
259
+ },
260
+ "x-naxytra-contract": {
261
+ product: "xytara",
262
+ stability: "stable_public_http_layer",
263
+ route_count: 14,
264
+ target_audience: ["builders", "partners", "operators"],
265
+ linked_docs: [
266
+ "SERVICE_CONTRACT.md",
267
+ "FINAL_CONTRACT.md",
268
+ "START_HERE.md"
269
+ ]
270
+ }
271
+ };
272
+ }
273
+
274
+ function summarizeOpenApiDocument() {
275
+ const document = buildOpenApiDocument();
276
+ return {
277
+ product: "xytara",
278
+ category: "machine-commerce-openapi-contract-summary",
279
+ summary_version: "xytara-openapi-contract-summary-v1",
280
+ openapi_version: document.openapi,
281
+ info_version: document.info.version,
282
+ path_count: Object.keys(document.paths).length,
283
+ server_count: document.servers.length,
284
+ primary_protocol_lanes: ["http", "mcp", "x402"],
285
+ linked_surfaces: {
286
+ openapi_ref: "/openapi.json",
287
+ service_contract_ref: "SERVICE_CONTRACT.md",
288
+ final_contract_ref: "FINAL_CONTRACT.md"
289
+ }
290
+ };
291
+ }
292
+
293
+ module.exports = {
294
+ buildOpenApiDocument,
295
+ summarizeOpenApiDocument
296
+ };
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+
3
+ const { summarizeMcpLanePack } = require("./mcp_lane_contract");
4
+ const { summarizeA2ALanePack } = require("./a2a_lane_contract");
5
+ const { summarizeA2CLanePack } = require("./a2c_lane_contract");
6
+ const { summarizeEventSystemLanePack } = require("./event_system_lane_contract");
7
+
8
+ function buildProtocolLanePack() {
9
+ return {
10
+ product: "xytara",
11
+ category: "machine-commerce-protocol-lane-pack",
12
+ pack_version: "xytara-protocol-lane-pack-v1",
13
+ lane_state: "first_party_protocol_family_present",
14
+ posture: "canonical_public_view_of_runtime_protocol_and_transport_breadth",
15
+ featured_protocols: {
16
+ mcp: {
17
+ protocol_id: "mcp",
18
+ posture: "primary_tool_and_capability_invocation_lane",
19
+ summary: summarizeMcpLanePack(),
20
+ route_ref: "/v1/mcp"
21
+ },
22
+ a2a: {
23
+ protocol_id: "a2a",
24
+ posture: "agent_to_agent_negotiation_and_settlement_lane",
25
+ summary: summarizeA2ALanePack(),
26
+ route_ref: "/v1/a2a"
27
+ },
28
+ a2c: {
29
+ protocol_id: "a2c",
30
+ posture: "agent_to_client_tooling_and_session_lane",
31
+ summary: summarizeA2CLanePack(),
32
+ route_ref: "/v1/a2c"
33
+ },
34
+ acp: {
35
+ protocol_id: "acp",
36
+ posture: "adapter_ready_agent_coordination_bridge",
37
+ route_ref: "/v1/integrations/protocols"
38
+ },
39
+ grpc: {
40
+ protocol_id: "grpc",
41
+ posture: "adapter_ready_rpc_bridge_for service and system interop",
42
+ route_ref: "/v1/integrations/protocols"
43
+ },
44
+ mqtt: {
45
+ protocol_id: "mqtt",
46
+ posture: "event_and_device_oriented bridge lane",
47
+ route_ref: "/v1/event-systems"
48
+ },
49
+ kafka: {
50
+ protocol_id: "kafka",
51
+ posture: "durable stream and event bus lane",
52
+ route_ref: "/v1/event-systems"
53
+ },
54
+ nats: {
55
+ protocol_id: "nats",
56
+ posture: "subject mesh and jetstream oriented event lane",
57
+ summary: summarizeEventSystemLanePack(),
58
+ route_ref: "/v1/event-systems"
59
+ },
60
+ ros2: {
61
+ protocol_id: "ros2",
62
+ posture: "robotics and embedded coordination bridge",
63
+ route_ref: "/v1/integrations/protocols"
64
+ },
65
+ webhook_event_bus: {
66
+ protocol_id: "webhook_event_bus",
67
+ posture: "callback friendly ingress and replay lane",
68
+ route_ref: "/v1/event-systems"
69
+ }
70
+ },
71
+ supported_surfaces: {
72
+ mcp_lane_ref: "/v1/mcp",
73
+ a2a_lane_ref: "/v1/a2a",
74
+ a2c_lane_ref: "/v1/a2c",
75
+ event_system_lane_ref: "/v1/event-systems",
76
+ integration_protocols_ref: "/v1/integrations/protocols",
77
+ integration_matrix_ref: "/v1/integration-matrix"
78
+ },
79
+ first_run_flows: [
80
+ {
81
+ flow_ref: "protocol_family_selection",
82
+ recommended_reason: "best first path for callers who need to understand which invocation, coordination, transport, or callback lane fits their system before wiring payment and settlement",
83
+ sequence: [
84
+ "inspect_protocol_lane_summary",
85
+ "choose_mcp_a2a_or_a2c_for_canonical_runtime_entry",
86
+ "use_event_or_bridge_protocols_only_when_system_shape_requires_them",
87
+ "continue_into_payment_and_settlement_selection"
88
+ ]
89
+ }
90
+ ],
91
+ guardrails: [
92
+ "protocol breadth should improve fit and adoption without fragmenting the canonical command and payment path",
93
+ "transport and event bridges remain subordinate to the default runtime and settlement spine"
94
+ ]
95
+ };
96
+ }
97
+
98
+ function summarizeProtocolLanePack() {
99
+ const pack = buildProtocolLanePack();
100
+ return {
101
+ product: "xytara",
102
+ category: "machine-commerce-protocol-lane-pack-summary",
103
+ summary_version: "xytara-protocol-lane-pack-summary-v1",
104
+ lane_state: pack.lane_state,
105
+ featured_protocol_count: Object.keys(pack.featured_protocols).length,
106
+ first_run_flow_count: pack.first_run_flows.length,
107
+ linked_surfaces: pack.supported_surfaces
108
+ };
109
+ }
110
+
111
+ module.exports = {
112
+ buildProtocolLanePack,
113
+ summarizeProtocolLanePack
114
+ };
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ function buildProvenanceLanePack() {
4
+ return {
5
+ product: "xytara",
6
+ category: "machine-commerce-provenance-lane-pack",
7
+ pack_version: "xytara-provenance-lane-pack-v1",
8
+ lane_state: "first_party_provenance_lane_present",
9
+ posture: "release_and_execution_supply_chain_trust_lane",
10
+ standards: ["slsa"],
11
+ focal_surfaces: ["release_candidate", "release_manifest", "integration_matrix", "adapter_pack"],
12
+ supported_surfaces: {
13
+ release_candidate_ref: "/v1/release-candidate",
14
+ release_manifest_ref: "/v1/release-manifest",
15
+ release_center_ref: "/v1/release-center",
16
+ adapter_pack_ref: "/v1/adapter-pack",
17
+ integration_matrix_ref: "/v1/integration-matrix"
18
+ },
19
+ first_run_flows: [
20
+ {
21
+ flow_ref: "release_provenance_review",
22
+ recommended_reason: "best path for builders and operators who need artifact and release trust before integrating xytara into production systems",
23
+ sequence: [
24
+ "inspect_provenance_lane_summary",
25
+ "inspect_release_candidate_and_manifest",
26
+ "inspect_adapter_and_integration_breadth",
27
+ "treat_release_and_adapter posture as provenance-carrying artifacts"
28
+ ]
29
+ }
30
+ ],
31
+ guardrails: [
32
+ "provenance should strengthen release trust without turning the runtime into a generic attestation service",
33
+ "supply-chain trust complements runtime truth and proof truth instead of replacing either"
34
+ ]
35
+ };
36
+ }
37
+
38
+ function summarizeProvenanceLanePack() {
39
+ const pack = buildProvenanceLanePack();
40
+ return {
41
+ product: "xytara",
42
+ category: "machine-commerce-provenance-lane-pack-summary",
43
+ summary_version: "xytara-provenance-lane-pack-summary-v1",
44
+ lane_state: pack.lane_state,
45
+ standard_count: pack.standards.length,
46
+ focal_surface_count: pack.focal_surfaces.length,
47
+ linked_surfaces: pack.supported_surfaces
48
+ };
49
+ }
50
+
51
+ module.exports = {
52
+ buildProvenanceLanePack,
53
+ summarizeProvenanceLanePack
54
+ };
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ const {
4
+ buildPhase1OpenaiCodexRuntimePack,
5
+ summarizePhase1OpenaiCodexRuntimePack
6
+ } = require("./phase_1_openai_codex_runtime_pack");
7
+ const {
8
+ buildPhase1ClaudeMcpRuntimePack,
9
+ summarizePhase1ClaudeMcpRuntimePack
10
+ } = require("./phase_1_claude_mcp_runtime_pack");
11
+
12
+ function buildProviderLanePack() {
13
+ return {
14
+ product: "xytara",
15
+ category: "machine-commerce-provider-lane-pack",
16
+ pack_version: "xytara-provider-lane-pack-v1",
17
+ lane_state: "first_party_provider_family_present",
18
+ posture: "provider_entry_and_runtime_execution_family",
19
+ featured_providers: {
20
+ openai_codex: {
21
+ pack: buildPhase1OpenaiCodexRuntimePack(),
22
+ summary: summarizePhase1OpenaiCodexRuntimePack()
23
+ },
24
+ claude_mcp: {
25
+ pack: buildPhase1ClaudeMcpRuntimePack(),
26
+ summary: summarizePhase1ClaudeMcpRuntimePack()
27
+ }
28
+ },
29
+ supported_surfaces: {
30
+ phase_1_summary_ref: "/v1/phases/phase-1/summary",
31
+ openai_codex_summary_ref: "/v1/phases/phase-1/openai-codex/runtime/summary",
32
+ claude_mcp_summary_ref: "/v1/phases/phase-1/claude-mcp/runtime/summary",
33
+ mcp_lane_ref: "/v1/mcp",
34
+ adapter_pack_ref: "/v1/adapter-pack",
35
+ integrations_ref: "/v1/integrations"
36
+ },
37
+ first_run_flows: [
38
+ {
39
+ flow_ref: "provider_family_selection",
40
+ recommended_reason: "best first path for understanding how named provider entry points map into the canonical commerce runtime",
41
+ sequence: [
42
+ "inspect_provider_lane_summary",
43
+ "inspect_openai_codex_and_claude_mcp_profiles",
44
+ "choose_protocol_and_payment_path",
45
+ "continue_into_mcp_or_command_execution"
46
+ ]
47
+ }
48
+ ],
49
+ guardrails: [
50
+ "provider lanes should stay entry and interoperability shapes rather than redefine the core runtime model",
51
+ "named providers improve adoption only when they remain subordinate to canonical protocol, payment, and settlement lanes"
52
+ ]
53
+ };
54
+ }
55
+
56
+ function summarizeProviderLanePack() {
57
+ const pack = buildProviderLanePack();
58
+ return {
59
+ product: "xytara",
60
+ category: "machine-commerce-provider-lane-pack-summary",
61
+ summary_version: "xytara-provider-lane-pack-summary-v1",
62
+ lane_state: pack.lane_state,
63
+ featured_provider_count: Object.keys(pack.featured_providers).length,
64
+ first_run_flow_count: pack.first_run_flows.length,
65
+ linked_surfaces: pack.supported_surfaces
66
+ };
67
+ }
68
+
69
+ module.exports = {
70
+ buildProviderLanePack,
71
+ summarizeProviderLanePack
72
+ };
@@ -10,6 +10,22 @@ function buildReleaseHistory() {
10
10
  current_version: packageJson.version,
11
11
  release_track: "public_release",
12
12
  history: [
13
+ {
14
+ version: "2.5.0",
15
+ channel: "public_release",
16
+ maturity_posture: "adoption_ready",
17
+ headline: "adoption-surface release with contract lanes, provider and protocol discovery, observability, provenance, artifact distribution, shared signals, and feature-control posture",
18
+ milestone_refs: [
19
+ "openapi_asyncapi_cloudevents_contracts",
20
+ "provider_framework_protocol_lanes",
21
+ "payment_and_settlement_discovery_lanes",
22
+ "integration_matrix_and_registry_surfacing",
23
+ "telemetry_and_provenance_lanes",
24
+ "artifact_distribution_and_shared_signal_lanes",
25
+ "feature_control_portability_lanes",
26
+ "umbrella_cli_entrypoint"
27
+ ]
28
+ },
13
29
  {
14
30
  version: "2.2.0",
15
31
  channel: "public_release",