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
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const pkg = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildAsyncApiDocument() {
|
|
6
|
+
return {
|
|
7
|
+
asyncapi: "3.0.0",
|
|
8
|
+
info: {
|
|
9
|
+
title: "xytara Event Contract",
|
|
10
|
+
version: pkg.version,
|
|
11
|
+
summary: "Machine-commerce runtime event and handoff contract.",
|
|
12
|
+
description: "This AsyncAPI document describes the stable runtime event and handoff surfaces that outside builders and partners should rely on first."
|
|
13
|
+
},
|
|
14
|
+
servers: {
|
|
15
|
+
httpRuntime: {
|
|
16
|
+
host: "127.0.0.1:4320",
|
|
17
|
+
protocol: "http",
|
|
18
|
+
description: "Local xytara HTTP event and handoff entrypoint"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
channels: {
|
|
22
|
+
"runtime/events/emit": {
|
|
23
|
+
address: "/v1/runtime/emit",
|
|
24
|
+
messages: {
|
|
25
|
+
runtimeEmitRequest: {
|
|
26
|
+
name: "runtimeEmitRequest",
|
|
27
|
+
title: "Runtime emit request",
|
|
28
|
+
summary: "Append a runtime event record."
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"runtime/events/anchor": {
|
|
33
|
+
address: "/v1/runtime/anchor",
|
|
34
|
+
messages: {
|
|
35
|
+
runtimeAnchorRequest: {
|
|
36
|
+
name: "runtimeAnchorRequest",
|
|
37
|
+
title: "Runtime anchor request",
|
|
38
|
+
summary: "Anchor a runtime event into registry/anchor posture."
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"runtime/events/emit-anchor": {
|
|
43
|
+
address: "/v1/runtime/emit-anchor",
|
|
44
|
+
messages: {
|
|
45
|
+
runtimeEmitAnchorRequest: {
|
|
46
|
+
name: "runtimeEmitAnchorRequest",
|
|
47
|
+
title: "Runtime emit-anchor request",
|
|
48
|
+
summary: "Emit and anchor a runtime event in one call."
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"handoffs/trust/emit": {
|
|
53
|
+
address: "/v1/trust/handoffs/emit",
|
|
54
|
+
messages: {
|
|
55
|
+
trustHandoffEmitRequest: {
|
|
56
|
+
name: "trustHandoffEmitRequest",
|
|
57
|
+
title: "Trust handoff emit request",
|
|
58
|
+
summary: "Emit a trust-compatible handoff bundle."
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"handoffs/execution-receipts/emit": {
|
|
63
|
+
address: "/v1/execution-receipts/handoffs/emit",
|
|
64
|
+
messages: {
|
|
65
|
+
executionReceiptHandoffEmitRequest: {
|
|
66
|
+
name: "executionReceiptHandoffEmitRequest",
|
|
67
|
+
title: "Execution receipt handoff emit request",
|
|
68
|
+
summary: "Emit an execution receipt handoff bundle."
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"handoffs/receipt-ledger/emit": {
|
|
73
|
+
address: "/v1/receipt-ledger/handoffs/emit",
|
|
74
|
+
messages: {
|
|
75
|
+
receiptLedgerHandoffEmitRequest: {
|
|
76
|
+
name: "receiptLedgerHandoffEmitRequest",
|
|
77
|
+
title: "Receipt ledger handoff emit request",
|
|
78
|
+
summary: "Emit a receipt-ledger handoff bundle."
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
operations: {
|
|
84
|
+
publishRuntimeEvent: {
|
|
85
|
+
action: "send",
|
|
86
|
+
channel: { $ref: "#/channels/runtime/events/emit" },
|
|
87
|
+
summary: "Publish runtime event data through the stable emit surface."
|
|
88
|
+
},
|
|
89
|
+
publishRuntimeAnchor: {
|
|
90
|
+
action: "send",
|
|
91
|
+
channel: { $ref: "#/channels/runtime/events/anchor" },
|
|
92
|
+
summary: "Publish anchoring data through the stable anchor surface."
|
|
93
|
+
},
|
|
94
|
+
publishRuntimeEmitAnchor: {
|
|
95
|
+
action: "send",
|
|
96
|
+
channel: { $ref: "#/channels/runtime/events/emit-anchor" },
|
|
97
|
+
summary: "Publish combined emit-anchor data through the stable combined surface."
|
|
98
|
+
},
|
|
99
|
+
publishTrustHandoff: {
|
|
100
|
+
action: "send",
|
|
101
|
+
channel: { $ref: "#/channels/handoffs/trust/emit" },
|
|
102
|
+
summary: "Publish trust handoff data for proof followthrough."
|
|
103
|
+
},
|
|
104
|
+
publishExecutionReceiptHandoff: {
|
|
105
|
+
action: "send",
|
|
106
|
+
channel: { $ref: "#/channels/handoffs/execution-receipts/emit" },
|
|
107
|
+
summary: "Publish execution receipt handoff data."
|
|
108
|
+
},
|
|
109
|
+
publishReceiptLedgerHandoff: {
|
|
110
|
+
action: "send",
|
|
111
|
+
channel: { $ref: "#/channels/handoffs/receipt-ledger/emit" },
|
|
112
|
+
summary: "Publish receipt-ledger handoff data."
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
"x-naxytra-contract": {
|
|
116
|
+
product: "xytara",
|
|
117
|
+
stability: "stable_public_event_layer",
|
|
118
|
+
channel_count: 6,
|
|
119
|
+
linked_docs: [
|
|
120
|
+
"SERVICE_CONTRACT.md",
|
|
121
|
+
"FINAL_CONTRACT.md",
|
|
122
|
+
"START_HERE.md"
|
|
123
|
+
]
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
function summarizeAsyncApiDocument() {
|
|
129
|
+
const document = buildAsyncApiDocument();
|
|
130
|
+
return {
|
|
131
|
+
product: "xytara",
|
|
132
|
+
category: "machine-commerce-asyncapi-contract-summary",
|
|
133
|
+
summary_version: "xytara-asyncapi-contract-summary-v1",
|
|
134
|
+
asyncapi_version: document.asyncapi,
|
|
135
|
+
info_version: document.info.version,
|
|
136
|
+
channel_count: Object.keys(document.channels).length,
|
|
137
|
+
operation_count: Object.keys(document.operations).length,
|
|
138
|
+
primary_event_lanes: ["runtime", "handoff"],
|
|
139
|
+
linked_surfaces: {
|
|
140
|
+
asyncapi_ref: "/asyncapi.json",
|
|
141
|
+
service_contract_ref: "SERVICE_CONTRACT.md",
|
|
142
|
+
openapi_ref: "/openapi.json"
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
module.exports = {
|
|
148
|
+
buildAsyncApiDocument,
|
|
149
|
+
summarizeAsyncApiDocument
|
|
150
|
+
};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const pkg = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildAuthInteropContract() {
|
|
6
|
+
return {
|
|
7
|
+
product: "xytara",
|
|
8
|
+
category: "machine-commerce-auth-interop-contract",
|
|
9
|
+
contract_version: "xytara-auth-interop-contract-v1",
|
|
10
|
+
service_version: pkg.version,
|
|
11
|
+
primary_posture: "native_authority_with_oauth_oidc_token_exchange_interop",
|
|
12
|
+
supported_interop_profiles: [
|
|
13
|
+
{
|
|
14
|
+
profile_id: "oauth_client_credentials_runtime",
|
|
15
|
+
standards: ["oauth_2_0", "oidc_optional"],
|
|
16
|
+
intended_use: "machine-to-machine runtime invocation",
|
|
17
|
+
primary_routes: ["/v1/commands/execute", "/v1/mcp/tools/invoke"]
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
profile_id: "bounded_delegation_token_exchange",
|
|
21
|
+
standards: ["oauth_2_0_token_exchange", "jwt_bearer_optional"],
|
|
22
|
+
intended_use: "map upstream bearer posture into bounded delegated authority",
|
|
23
|
+
primary_routes: [
|
|
24
|
+
"/v1/account-auth/spend-credentials",
|
|
25
|
+
"/v1/account-auth/authority-bindings",
|
|
26
|
+
"/v1/commands/execute"
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
profile_id: "mcp_a2a_a2c_interop_auth",
|
|
31
|
+
standards: ["oauth_2_0", "oidc", "token_exchange_optional"],
|
|
32
|
+
intended_use: "protocol-lane authentication for MCP, A2A, and A2C usage",
|
|
33
|
+
primary_routes: ["/v1/mcp/tools/invoke", "/x402/mcp/tools/invoke", "/v1/commands/execute"]
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
profile_id: "x402_payment_plus_bounded_auth",
|
|
37
|
+
standards: ["oauth_2_0_optional", "x402"],
|
|
38
|
+
intended_use: "combine payment challenge posture with bounded authenticated execution",
|
|
39
|
+
primary_routes: ["/x402/mcp/tools/invoke", "/x402/commands/execute"]
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
native_authority_mapping: {
|
|
43
|
+
authority_bindings: "/v1/account-auth/authority-bindings",
|
|
44
|
+
spend_credentials: "/v1/account-auth/spend-credentials",
|
|
45
|
+
execution_entry: "/v1/commands/execute",
|
|
46
|
+
mcp_entry: "/v1/mcp/tools/invoke"
|
|
47
|
+
},
|
|
48
|
+
guardrails: [
|
|
49
|
+
"native authority bindings remain canonical for bounded execution",
|
|
50
|
+
"oauth or oidc interop must not replace native consequence bounds",
|
|
51
|
+
"token exchange may map into delegation but must not bypass authority contracts",
|
|
52
|
+
"payment verification and auth posture remain separate concerns even when combined in one flow"
|
|
53
|
+
],
|
|
54
|
+
linked_surfaces: {
|
|
55
|
+
openapi_ref: "/openapi.json",
|
|
56
|
+
asyncapi_ref: "/asyncapi.json",
|
|
57
|
+
cloudevents_ref: "/cloudevents.json",
|
|
58
|
+
service_contract_ref: "SERVICE_CONTRACT.md"
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function summarizeAuthInteropContract() {
|
|
64
|
+
const contract = buildAuthInteropContract();
|
|
65
|
+
return {
|
|
66
|
+
product: "xytara",
|
|
67
|
+
category: "machine-commerce-auth-interop-contract-summary",
|
|
68
|
+
summary_version: "xytara-auth-interop-contract-summary-v1",
|
|
69
|
+
contract_version: contract.contract_version,
|
|
70
|
+
profile_count: contract.supported_interop_profiles.length,
|
|
71
|
+
primary_posture: contract.primary_posture,
|
|
72
|
+
primary_protocol_lanes: ["mcp", "a2a", "a2c", "x402"],
|
|
73
|
+
linked_surfaces: contract.linked_surfaces
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
module.exports = {
|
|
78
|
+
buildAuthInteropContract,
|
|
79
|
+
summarizeAuthInteropContract
|
|
80
|
+
};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const pkg = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildCloudEventsContract() {
|
|
6
|
+
return {
|
|
7
|
+
product: "xytara",
|
|
8
|
+
category: "machine-commerce-cloudevents-contract",
|
|
9
|
+
contract_version: "xytara-cloudevents-contract-v1",
|
|
10
|
+
specversion: "1.0",
|
|
11
|
+
service_version: pkg.version,
|
|
12
|
+
envelope: {
|
|
13
|
+
required_attributes: ["specversion", "id", "source", "type", "time", "subject", "datacontenttype", "data"],
|
|
14
|
+
datacontenttype_default: "application/json",
|
|
15
|
+
source_prefix: "urn:naxytra:xytara",
|
|
16
|
+
id_shape: "evt_<opaque_id>",
|
|
17
|
+
time_format: "RFC3339"
|
|
18
|
+
},
|
|
19
|
+
event_families: [
|
|
20
|
+
{
|
|
21
|
+
type: "io.naxytra.xytara.runtime.emitted",
|
|
22
|
+
source: "urn:naxytra:xytara:runtime",
|
|
23
|
+
subject: "runtime.event"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
type: "io.naxytra.xytara.runtime.anchored",
|
|
27
|
+
source: "urn:naxytra:xytara:runtime",
|
|
28
|
+
subject: "runtime.anchor"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
type: "io.naxytra.xytara.handoff.trust.emitted",
|
|
32
|
+
source: "urn:naxytra:xytara:handoff",
|
|
33
|
+
subject: "handoff.trust"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
type: "io.naxytra.xytara.handoff.execution_receipt.emitted",
|
|
37
|
+
source: "urn:naxytra:xytara:handoff",
|
|
38
|
+
subject: "handoff.execution_receipt"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
type: "io.naxytra.xytara.handoff.receipt_ledger.emitted",
|
|
42
|
+
source: "urn:naxytra:xytara:handoff",
|
|
43
|
+
subject: "handoff.receipt_ledger"
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
stable_http_surfaces: [
|
|
47
|
+
"/v1/runtime/emit",
|
|
48
|
+
"/v1/runtime/anchor",
|
|
49
|
+
"/v1/runtime/emit-anchor",
|
|
50
|
+
"/v1/trust/handoffs/emit",
|
|
51
|
+
"/v1/execution-receipts/handoffs/emit",
|
|
52
|
+
"/v1/receipt-ledger/handoffs/emit"
|
|
53
|
+
],
|
|
54
|
+
linked_surfaces: {
|
|
55
|
+
openapi_ref: "/openapi.json",
|
|
56
|
+
asyncapi_ref: "/asyncapi.json",
|
|
57
|
+
service_contract_ref: "SERVICE_CONTRACT.md"
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function summarizeCloudEventsContract() {
|
|
63
|
+
const contract = buildCloudEventsContract();
|
|
64
|
+
return {
|
|
65
|
+
product: "xytara",
|
|
66
|
+
category: "machine-commerce-cloudevents-contract-summary",
|
|
67
|
+
summary_version: "xytara-cloudevents-contract-summary-v1",
|
|
68
|
+
specversion: contract.specversion,
|
|
69
|
+
contract_version: contract.contract_version,
|
|
70
|
+
event_family_count: contract.event_families.length,
|
|
71
|
+
stable_surface_count: contract.stable_http_surfaces.length,
|
|
72
|
+
primary_event_lanes: ["runtime", "handoff"],
|
|
73
|
+
linked_surfaces: contract.linked_surfaces
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
module.exports = {
|
|
78
|
+
buildCloudEventsContract,
|
|
79
|
+
summarizeCloudEventsContract
|
|
80
|
+
};
|
package/lib/commerce_client.js
CHANGED
|
@@ -2003,6 +2003,38 @@ class CommerceClient {
|
|
|
2003
2003
|
return result && result.data ? result.data : { ok: false, reason: "invalid_promotion_action_request" };
|
|
2004
2004
|
}
|
|
2005
2005
|
|
|
2006
|
+
async getProviderLane() {
|
|
2007
|
+
return this.getJson("/v1/providers");
|
|
2008
|
+
}
|
|
2009
|
+
|
|
2010
|
+
async getProviderLaneSummary() {
|
|
2011
|
+
return this.getJson("/v1/providers/summary");
|
|
2012
|
+
}
|
|
2013
|
+
|
|
2014
|
+
async getFrameworkLane() {
|
|
2015
|
+
return this.getJson("/v1/frameworks");
|
|
2016
|
+
}
|
|
2017
|
+
|
|
2018
|
+
async getFrameworkLaneSummary() {
|
|
2019
|
+
return this.getJson("/v1/frameworks/summary");
|
|
2020
|
+
}
|
|
2021
|
+
|
|
2022
|
+
async getProtocolLane() {
|
|
2023
|
+
return this.getJson("/v1/protocols");
|
|
2024
|
+
}
|
|
2025
|
+
|
|
2026
|
+
async getProtocolLaneSummary() {
|
|
2027
|
+
return this.getJson("/v1/protocols/summary");
|
|
2028
|
+
}
|
|
2029
|
+
|
|
2030
|
+
async getIntegrationMatrix() {
|
|
2031
|
+
return this.getJson("/v1/integration-matrix");
|
|
2032
|
+
}
|
|
2033
|
+
|
|
2034
|
+
async getIntegrationMatrixSummary() {
|
|
2035
|
+
return this.getJson("/v1/integration-matrix/summary");
|
|
2036
|
+
}
|
|
2037
|
+
|
|
2006
2038
|
async getTaskExecutionModeSummaries(forceRefresh) {
|
|
2007
2039
|
const tasks = await this.listTasks(forceRefresh);
|
|
2008
2040
|
return summarizeFacetCounts(
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const {
|
|
4
|
+
buildPhase4Erc8004RuntimePack,
|
|
5
|
+
summarizePhase4Erc8004RuntimePack
|
|
6
|
+
} = require("./phase_4_erc8004_runtime_pack");
|
|
7
|
+
|
|
8
|
+
function buildErc8004LanePack() {
|
|
9
|
+
const phasePack = buildPhase4Erc8004RuntimePack();
|
|
10
|
+
return {
|
|
11
|
+
product: "xytara",
|
|
12
|
+
category: "machine-commerce-erc8004-lane-pack",
|
|
13
|
+
pack_version: "xytara-erc8004-lane-pack-v1",
|
|
14
|
+
lane_state: "first_party_erc8004_runtime_present",
|
|
15
|
+
posture: "identity_and_attestation_runtime_interop_lane",
|
|
16
|
+
phase_alignment: {
|
|
17
|
+
phase_ref: phasePack.phase_ref,
|
|
18
|
+
phase_runtime_pack: phasePack,
|
|
19
|
+
phase_runtime_summary: summarizePhase4Erc8004RuntimePack()
|
|
20
|
+
},
|
|
21
|
+
supported_surfaces: {
|
|
22
|
+
phase_runtime_ref: "/v1/phases/phase-4/erc8004",
|
|
23
|
+
phase_runtime_summary_ref: "/v1/phases/phase-4/erc8004/summary",
|
|
24
|
+
identity_interop_ref: "/v1/identity-interop",
|
|
25
|
+
machine_identity_summary_ref_template: "/v1/economics/accounts/:account_id/machine-identity-summary",
|
|
26
|
+
machine_identity_profile_ref_template: "/v1/economics/accounts/:account_id/machine-identity-profile",
|
|
27
|
+
authority_summary_ref_template: "/v1/economics/accounts/:account_id/authority-summary"
|
|
28
|
+
},
|
|
29
|
+
first_run_flows: [
|
|
30
|
+
{
|
|
31
|
+
flow_ref: "erc8004.identity_attestation_runtime_view",
|
|
32
|
+
recommended_reason: "best first runtime-facing trust lane for identity, policy carry, and wallet resolution posture",
|
|
33
|
+
sequence: [
|
|
34
|
+
"inspect_erc8004_lane_summary",
|
|
35
|
+
"inspect_identity_interop_contract",
|
|
36
|
+
"inspect_machine_identity_summary",
|
|
37
|
+
"inspect_authority_and_policy_carry"
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
guardrails: [
|
|
42
|
+
"erc8004 is an interop lane rather than the canonical source of runtime authority truth",
|
|
43
|
+
"native machine identity and authority remain canonical inside xytara",
|
|
44
|
+
"erc8004 posture should improve partner trust and portability without bloating the runtime core"
|
|
45
|
+
]
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function summarizeErc8004LanePack() {
|
|
50
|
+
const pack = buildErc8004LanePack();
|
|
51
|
+
return {
|
|
52
|
+
product: "xytara",
|
|
53
|
+
category: "machine-commerce-erc8004-lane-pack-summary",
|
|
54
|
+
summary_version: "xytara-erc8004-lane-pack-summary-v1",
|
|
55
|
+
lane_state: pack.lane_state,
|
|
56
|
+
posture: pack.posture,
|
|
57
|
+
first_run_flow_count: pack.first_run_flows.length,
|
|
58
|
+
linked_surfaces: pack.supported_surfaces
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
module.exports = {
|
|
63
|
+
buildErc8004LanePack,
|
|
64
|
+
summarizeErc8004LanePack
|
|
65
|
+
};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const {
|
|
4
|
+
buildPhase7EventSystemPack,
|
|
5
|
+
summarizePhase7EventSystemPack
|
|
6
|
+
} = require("./phase_7_event_system_pack");
|
|
7
|
+
const {
|
|
8
|
+
buildPhase7NatsRuntimePack,
|
|
9
|
+
summarizePhase7NatsRuntimePack
|
|
10
|
+
} = require("./phase_7_nats_runtime_pack");
|
|
11
|
+
|
|
12
|
+
function buildEventSystemLanePack() {
|
|
13
|
+
const phasePack = buildPhase7EventSystemPack();
|
|
14
|
+
const natsPack = buildPhase7NatsRuntimePack();
|
|
15
|
+
return {
|
|
16
|
+
product: "xytara",
|
|
17
|
+
category: "machine-commerce-event-system-lane-pack",
|
|
18
|
+
pack_version: "xytara-event-system-lane-pack-v1",
|
|
19
|
+
lane_state: "first_party_event_system_family_present",
|
|
20
|
+
posture: "event_and_system_integration_runtime_lane",
|
|
21
|
+
phase_alignment: {
|
|
22
|
+
phase_ref: phasePack.phase_ref,
|
|
23
|
+
phase_pack: phasePack,
|
|
24
|
+
phase_summary: summarizePhase7EventSystemPack(),
|
|
25
|
+
featured_lane: {
|
|
26
|
+
pack: natsPack,
|
|
27
|
+
summary: summarizePhase7NatsRuntimePack()
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
supported_surfaces: {
|
|
31
|
+
phase_summary_ref: "/v1/phases/phase-7/summary",
|
|
32
|
+
nats_runtime_summary_ref: "/v1/phases/phase-7/nats/summary",
|
|
33
|
+
kafka_runtime_summary_ref: "/v1/phases/phase-7/kafka/summary",
|
|
34
|
+
mqtt_runtime_summary_ref: "/v1/phases/phase-7/mqtt/summary",
|
|
35
|
+
webhook_runtime_summary_ref: "/v1/phases/phase-7/webhook-event-bus/summary",
|
|
36
|
+
continuity_summary_ref: "/v1/phases/phase-7/event-system-continuity/summary",
|
|
37
|
+
asyncapi_ref: "/asyncapi.json",
|
|
38
|
+
cloudevents_ref: "/cloudevents.json"
|
|
39
|
+
},
|
|
40
|
+
first_run_flows: [
|
|
41
|
+
{
|
|
42
|
+
flow_ref: "nats_subject_mesh_runtime",
|
|
43
|
+
recommended_reason: "best first durable event/system lane for subject-oriented machine coordination with NATS plus JetStream-style persistence posture",
|
|
44
|
+
sequence: [
|
|
45
|
+
"inspect_event_system_lane_summary",
|
|
46
|
+
"inspect_nats_runtime_summary",
|
|
47
|
+
"inspect_asyncapi_and_cloudevents_contracts",
|
|
48
|
+
"choose_broker_or_callback_family_for_the_integration"
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
],
|
|
52
|
+
guardrails: [
|
|
53
|
+
"event-system lanes extend runtime coordination rather than replace the default transaction flow",
|
|
54
|
+
"nats and jetstream style durability should improve integration fit without widening the public runtime core into a generic bus platform"
|
|
55
|
+
]
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function summarizeEventSystemLanePack() {
|
|
60
|
+
const pack = buildEventSystemLanePack();
|
|
61
|
+
return {
|
|
62
|
+
product: "xytara",
|
|
63
|
+
category: "machine-commerce-event-system-lane-pack-summary",
|
|
64
|
+
summary_version: "xytara-event-system-lane-pack-summary-v1",
|
|
65
|
+
lane_state: pack.lane_state,
|
|
66
|
+
posture: pack.posture,
|
|
67
|
+
first_run_flow_count: pack.first_run_flows.length,
|
|
68
|
+
linked_surfaces: pack.supported_surfaces
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
module.exports = {
|
|
73
|
+
buildEventSystemLanePack,
|
|
74
|
+
summarizeEventSystemLanePack
|
|
75
|
+
};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function buildFeatureControlLanePack() {
|
|
4
|
+
return {
|
|
5
|
+
product: "xytara",
|
|
6
|
+
category: "machine-commerce-feature-control-lane-pack",
|
|
7
|
+
pack_version: "xytara-feature-control-lane-pack-v1",
|
|
8
|
+
lane_state: "first_party_feature_control_lane_present",
|
|
9
|
+
posture: "portable_policy_and_rollout_control_lane",
|
|
10
|
+
standards: ["openfeature", "ofrep"],
|
|
11
|
+
focal_controls: ["pricing_policy", "authority_policy", "machine_identity_policy", "trust_policy", "release_candidate_gates"],
|
|
12
|
+
supported_surfaces: {
|
|
13
|
+
pricing_policy_ref: "/v1/economics/accounts/:account_id/pricing-policy-package",
|
|
14
|
+
authority_policy_ref: "/v1/economics/accounts/:account_id/authority-policy-pack",
|
|
15
|
+
machine_identity_policy_ref: "/v1/economics/accounts/:account_id/machine-identity-policy-pack",
|
|
16
|
+
trust_policy_ref: "/v1/economics/accounts/:account_id/trust-layer-policy-pack",
|
|
17
|
+
release_candidate_ref: "/v1/release-candidate"
|
|
18
|
+
},
|
|
19
|
+
first_run_flows: [
|
|
20
|
+
{
|
|
21
|
+
flow_ref: "portable_rollout_control_alignment",
|
|
22
|
+
recommended_reason: "best path for teams that need portable rollout and policy posture without inventing a second control plane around the runtime",
|
|
23
|
+
sequence: [
|
|
24
|
+
"inspect_feature_control_lane_summary",
|
|
25
|
+
"map native policy packs to portable feature-control posture",
|
|
26
|
+
"use release and trust gates as rollout-compatible control surfaces",
|
|
27
|
+
"keep xytara policy truth canonical beneath external control adapters"
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
guardrails: [
|
|
32
|
+
"feature control should expose rollout posture without replacing native pricing, authority, identity, or trust truth",
|
|
33
|
+
"policy portability should remain bounded to avoid accidental split-brain control semantics"
|
|
34
|
+
]
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function summarizeFeatureControlLanePack() {
|
|
39
|
+
const pack = buildFeatureControlLanePack();
|
|
40
|
+
return {
|
|
41
|
+
product: "xytara",
|
|
42
|
+
category: "machine-commerce-feature-control-lane-pack-summary",
|
|
43
|
+
summary_version: "xytara-feature-control-lane-pack-summary-v1",
|
|
44
|
+
lane_state: pack.lane_state,
|
|
45
|
+
standard_count: pack.standards.length,
|
|
46
|
+
focal_control_count: pack.focal_controls.length,
|
|
47
|
+
linked_surfaces: pack.supported_surfaces
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
module.exports = {
|
|
52
|
+
buildFeatureControlLanePack,
|
|
53
|
+
summarizeFeatureControlLanePack
|
|
54
|
+
};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const {
|
|
4
|
+
buildPhase6FrameworkRuntimePack,
|
|
5
|
+
summarizePhase6FrameworkRuntimePack
|
|
6
|
+
} = require("./phase_6_framework_runtime_pack");
|
|
7
|
+
const {
|
|
8
|
+
summarizePhase6LanggraphRuntimePack
|
|
9
|
+
} = require("./phase_6_langgraph_runtime_pack");
|
|
10
|
+
const {
|
|
11
|
+
summarizePhase6LangchainRuntimePack
|
|
12
|
+
} = require("./phase_6_langchain_runtime_pack");
|
|
13
|
+
const {
|
|
14
|
+
summarizePhase6AutogenRuntimePack
|
|
15
|
+
} = require("./phase_6_autogen_runtime_pack");
|
|
16
|
+
const {
|
|
17
|
+
summarizePhase6SemanticKernelRuntimePack
|
|
18
|
+
} = require("./phase_6_semantic_kernel_runtime_pack");
|
|
19
|
+
|
|
20
|
+
function buildFrameworkLanePack() {
|
|
21
|
+
return {
|
|
22
|
+
product: "xytara",
|
|
23
|
+
category: "machine-commerce-framework-lane-pack",
|
|
24
|
+
pack_version: "xytara-framework-lane-pack-v1",
|
|
25
|
+
lane_state: "first_party_framework_family_present",
|
|
26
|
+
posture: "framework_orchestration_and_execution_family",
|
|
27
|
+
framework_family: {
|
|
28
|
+
pack: buildPhase6FrameworkRuntimePack(),
|
|
29
|
+
summary: summarizePhase6FrameworkRuntimePack()
|
|
30
|
+
},
|
|
31
|
+
featured_frameworks: {
|
|
32
|
+
langgraph: summarizePhase6LanggraphRuntimePack(),
|
|
33
|
+
langchain: summarizePhase6LangchainRuntimePack(),
|
|
34
|
+
autogen: summarizePhase6AutogenRuntimePack(),
|
|
35
|
+
semantic_kernel: summarizePhase6SemanticKernelRuntimePack()
|
|
36
|
+
},
|
|
37
|
+
registry_backed_frameworks: {
|
|
38
|
+
crewai: {
|
|
39
|
+
framework_id: "crewai",
|
|
40
|
+
posture: "registry-backed multi-agent workflow interoperability lane",
|
|
41
|
+
integration_ref: "builtin.execution.crewai"
|
|
42
|
+
},
|
|
43
|
+
llamaindex: {
|
|
44
|
+
framework_id: "llamaindex",
|
|
45
|
+
posture: "registry-backed retrieval and agent interoperability lane",
|
|
46
|
+
integration_ref: "builtin.execution.llamaindex"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
supported_surfaces: {
|
|
50
|
+
phase_6_summary_ref: "/v1/phases/phase-6/summary",
|
|
51
|
+
langgraph_summary_ref: "/v1/phases/phase-6/langgraph/summary",
|
|
52
|
+
langchain_summary_ref: "/v1/phases/phase-6/langchain/summary",
|
|
53
|
+
autogen_summary_ref: "/v1/phases/phase-6/autogen/summary",
|
|
54
|
+
semantic_kernel_summary_ref: "/v1/phases/phase-6/semantic-kernel/summary",
|
|
55
|
+
integrations_ref: "/v1/integrations",
|
|
56
|
+
integration_matrix_ref: "/v1/integration-matrix"
|
|
57
|
+
},
|
|
58
|
+
first_run_flows: [
|
|
59
|
+
{
|
|
60
|
+
flow_ref: "framework_family_selection",
|
|
61
|
+
recommended_reason: "best first path for understanding how orchestration frameworks map into the canonical runtime instead of sitting as disconnected side examples",
|
|
62
|
+
sequence: [
|
|
63
|
+
"inspect_framework_lane_summary",
|
|
64
|
+
"inspect_phase_6_framework_summary",
|
|
65
|
+
"inspect_named_framework_profiles",
|
|
66
|
+
"choose_framework_shape_that_best_matches_runtime_carry_needs"
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function summarizeFrameworkLanePack() {
|
|
74
|
+
const pack = buildFrameworkLanePack();
|
|
75
|
+
return {
|
|
76
|
+
product: "xytara",
|
|
77
|
+
category: "machine-commerce-framework-lane-pack-summary",
|
|
78
|
+
summary_version: "xytara-framework-lane-pack-summary-v1",
|
|
79
|
+
lane_state: pack.lane_state,
|
|
80
|
+
featured_framework_count: Object.keys(pack.featured_frameworks).length + Object.keys(pack.registry_backed_frameworks).length,
|
|
81
|
+
first_run_flow_count: pack.first_run_flows.length,
|
|
82
|
+
linked_surfaces: pack.supported_surfaces
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
module.exports = {
|
|
87
|
+
buildFrameworkLanePack,
|
|
88
|
+
summarizeFrameworkLanePack
|
|
89
|
+
};
|