xytara 2.1.0 → 2.3.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/.env.example +5 -1
- package/ADAPTER_START_HERE.md +56 -0
- package/CARRIED_HANDOFF_DEMO.md +60 -0
- package/EXAMPLE_PATHS.md +53 -0
- package/OPERATIONS_RUNBOOK.md +65 -0
- package/OPERATOR_START_HERE.md +63 -0
- package/PARTNER_READY_PATH.md +71 -0
- package/PROGRAM_COMPLETE_RELEASE.md +63 -0
- package/PROGRAM_STATUS.md +57 -0
- package/PUBLIC_DEMO_SCRIPT.md +78 -0
- package/PUBLISH_PLAN.md +7 -5
- package/README.md +66 -0
- package/RELEASE_CHECKLIST.md +8 -2
- package/RELEASE_NOTES.md +19 -8
- package/START_HERE.md +32 -0
- package/SUPABASE_RUNTIME_STATE_SETUP.md +61 -0
- package/WHY_XYTARA_XOONYA.md +63 -0
- package/adapters/examples/minimal-third-party-execution-adapter.js +61 -0
- package/adapters/examples/minimal-third-party-execution-adapter.manifest.json +79 -0
- package/adapters/examples/minimal-third-party-execution-registration.record.json +26 -0
- package/adapters/examples/minimal-third-party-execution.certification-pack.json +22 -0
- package/adapters/examples/minimal-third-party-execution.submission-bundle.json +126 -0
- package/bin/xytara-release.js +1251 -1
- package/examples/adapter_review_walkthrough.js +53 -0
- package/examples/export_carried_handoff.js +80 -0
- package/examples/funded_runtime_walkthrough.js +70 -0
- package/examples/partner_launch_walkthrough.js +43 -0
- package/examples/quickstart.js +3255 -0
- package/index.js +7 -1
- package/lib/adapter_pack.js +118 -0
- package/lib/adapter_partner_pack.js +89 -0
- package/lib/adapter_promotion_pack.js +89 -0
- package/lib/commerce_client.js +38 -0
- package/lib/commerce_economics.js +304 -0
- package/lib/operator_intelligence.js +90 -0
- package/lib/outreach_copy_pack.js +51 -0
- package/lib/outreach_message_pack.js +71 -0
- package/lib/outreach_target_pack.js +60 -0
- package/lib/partner_intelligence.js +105 -0
- package/lib/phase_10_closeout_pack.js +45 -0
- package/lib/phase_10_completion_pack.js +76 -0
- package/lib/phase_10_decision_record_pack.js +54 -0
- package/lib/phase_10_decision_resolution_pack.js +53 -0
- package/lib/phase_10_demand_signal_adapters_runtime_pack.js +74 -0
- package/lib/phase_10_ecosystem_backlog_triage_runtime_pack.js +74 -0
- package/lib/phase_10_freeze_baseline_pack.js +67 -0
- package/lib/phase_10_freeze_review_pack.js +64 -0
- package/lib/phase_10_gate_pack.js +57 -0
- package/lib/phase_10_long_tail_continuity_pack.js +80 -0
- package/lib/phase_10_long_tail_ecosystem_pack.js +66 -0
- package/lib/phase_10_niche_extension_registry_runtime_pack.js +74 -0
- package/lib/phase_1_claude_mcp_pack.js +60 -0
- package/lib/phase_1_claude_mcp_runtime_pack.js +52 -0
- package/lib/phase_1_ecosystem_pack.js +67 -0
- package/lib/phase_1_openai_codex_pack.js +60 -0
- package/lib/phase_1_openai_codex_runtime_pack.js +52 -0
- package/lib/phase_2_base_runtime_pack.js +71 -0
- package/lib/phase_2_base_usdc_runtime_pack.js +72 -0
- package/lib/phase_2_closeout_pack.js +65 -0
- package/lib/phase_2_completion_pack.js +113 -0
- package/lib/phase_2_decision_record_pack.js +66 -0
- package/lib/phase_2_decision_resolution_pack.js +69 -0
- package/lib/phase_2_eth_runtime_pack.js +70 -0
- package/lib/phase_2_evm_base_runtime_pack.js +73 -0
- package/lib/phase_2_evm_runtime_pack.js +71 -0
- package/lib/phase_2_flip_preview_pack.js +60 -0
- package/lib/phase_2_freeze_review_pack.js +99 -0
- package/lib/phase_2_gate_pack.js +77 -0
- package/lib/phase_2_payment_rails_pack.js +71 -0
- package/lib/phase_2_usdc_runtime_pack.js +71 -0
- package/lib/phase_3_brc_runtime_pack.js +81 -0
- package/lib/phase_3_bsv_teranode_runtime_pack.js +83 -0
- package/lib/phase_3_closeout_pack.js +62 -0
- package/lib/phase_3_completion_pack.js +94 -0
- package/lib/phase_3_decision_record_pack.js +64 -0
- package/lib/phase_3_decision_resolution_pack.js +69 -0
- package/lib/phase_3_freeze_baseline_pack.js +67 -0
- package/lib/phase_3_freeze_review_pack.js +80 -0
- package/lib/phase_3_gate_pack.js +76 -0
- package/lib/phase_3_metanet_runtime_pack.js +81 -0
- package/lib/phase_3_native_bsv_pack.js +91 -0
- package/lib/phase_3_native_continuity_pack.js +82 -0
- package/lib/phase_4_attestation_runtime_pack.js +75 -0
- package/lib/phase_4_closeout_pack.js +45 -0
- package/lib/phase_4_completion_pack.js +94 -0
- package/lib/phase_4_decision_record_pack.js +54 -0
- package/lib/phase_4_decision_resolution_pack.js +45 -0
- package/lib/phase_4_erc8004_runtime_pack.js +76 -0
- package/lib/phase_4_freeze_baseline_pack.js +67 -0
- package/lib/phase_4_freeze_review_pack.js +68 -0
- package/lib/phase_4_gate_pack.js +58 -0
- package/lib/phase_4_identity_registry_runtime_pack.js +75 -0
- package/lib/phase_4_identity_trust_pack.js +73 -0
- package/lib/phase_4_trust_continuity_pack.js +86 -0
- package/lib/phase_5_antelope_runtime_pack.js +76 -0
- package/lib/phase_5_closeout_pack.js +44 -0
- package/lib/phase_5_completion_pack.js +82 -0
- package/lib/phase_5_decision_record_pack.js +54 -0
- package/lib/phase_5_decision_resolution_pack.js +45 -0
- package/lib/phase_5_freeze_baseline_pack.js +67 -0
- package/lib/phase_5_freeze_review_pack.js +68 -0
- package/lib/phase_5_gate_pack.js +58 -0
- package/lib/phase_5_major_rails_continuity_pack.js +86 -0
- package/lib/phase_5_major_rails_pack.js +74 -0
- package/lib/phase_5_proton_xpr_runtime_pack.js +76 -0
- package/lib/phase_5_solana_runtime_pack.js +76 -0
- package/lib/phase_6_autogen_runtime_pack.js +72 -0
- package/lib/phase_6_closeout_pack.js +46 -0
- package/lib/phase_6_completion_pack.js +77 -0
- package/lib/phase_6_decision_record_pack.js +54 -0
- package/lib/phase_6_decision_resolution_pack.js +53 -0
- package/lib/phase_6_framework_continuity_pack.js +81 -0
- package/lib/phase_6_framework_runtime_pack.js +68 -0
- package/lib/phase_6_freeze_baseline_pack.js +68 -0
- package/lib/phase_6_freeze_review_pack.js +65 -0
- package/lib/phase_6_gate_pack.js +59 -0
- package/lib/phase_6_langchain_runtime_pack.js +72 -0
- package/lib/phase_6_langgraph_runtime_pack.js +72 -0
- package/lib/phase_6_semantic_kernel_runtime_pack.js +72 -0
- package/lib/phase_7_closeout_pack.js +45 -0
- package/lib/phase_7_completion_pack.js +85 -0
- package/lib/phase_7_decision_record_pack.js +53 -0
- package/lib/phase_7_decision_resolution_pack.js +53 -0
- package/lib/phase_7_event_system_continuity_pack.js +89 -0
- package/lib/phase_7_event_system_pack.js +76 -0
- package/lib/phase_7_freeze_baseline_pack.js +74 -0
- package/lib/phase_7_freeze_review_pack.js +65 -0
- package/lib/phase_7_gate_pack.js +58 -0
- package/lib/phase_7_kafka_runtime_pack.js +74 -0
- package/lib/phase_7_mqtt_runtime_pack.js +74 -0
- package/lib/phase_7_nats_runtime_pack.js +74 -0
- package/lib/phase_7_webhook_event_bus_runtime_pack.js +74 -0
- package/lib/phase_8_closeout_pack.js +46 -0
- package/lib/phase_8_completion_pack.js +82 -0
- package/lib/phase_8_decision_record_pack.js +54 -0
- package/lib/phase_8_decision_resolution_pack.js +53 -0
- package/lib/phase_8_external_receipt_import_runtime_pack.js +74 -0
- package/lib/phase_8_external_result_import_runtime_pack.js +74 -0
- package/lib/phase_8_freeze_baseline_pack.js +71 -0
- package/lib/phase_8_freeze_review_pack.js +64 -0
- package/lib/phase_8_gate_pack.js +58 -0
- package/lib/phase_8_proof_bridge_continuity_pack.js +86 -0
- package/lib/phase_8_proof_bridges_pack.js +72 -0
- package/lib/phase_8_proof_bundle_normalization_runtime_pack.js +74 -0
- package/lib/phase_9_closeout_pack.js +46 -0
- package/lib/phase_9_completion_pack.js +82 -0
- package/lib/phase_9_custody_refs_runtime_pack.js +74 -0
- package/lib/phase_9_decision_record_pack.js +54 -0
- package/lib/phase_9_decision_resolution_pack.js +53 -0
- package/lib/phase_9_freeze_baseline_pack.js +71 -0
- package/lib/phase_9_freeze_review_pack.js +64 -0
- package/lib/phase_9_gate_pack.js +58 -0
- package/lib/phase_9_operator_accounting_bridges_runtime_pack.js +74 -0
- package/lib/phase_9_treasury_connectivity_pack.js +72 -0
- package/lib/phase_9_treasury_continuity_pack.js +86 -0
- package/lib/phase_9_treasury_destinations_runtime_pack.js +74 -0
- package/lib/phase_program_pack.js +120 -0
- package/lib/release_center.js +970 -0
- package/lib/release_history.js +1 -1
- package/lib/runtime_state_store.js +212 -27
- package/lib/soft_launch_pack.js +78 -0
- package/package.json +13 -1
- package/server.js +2110 -235
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildPhase2CloseoutPack() {
|
|
6
|
+
return {
|
|
7
|
+
ok: true,
|
|
8
|
+
product: packageJson.name,
|
|
9
|
+
category: "machine-commerce-phase-2-closeout-pack",
|
|
10
|
+
phase_ref: "phase_2",
|
|
11
|
+
posture: "closeout_complete",
|
|
12
|
+
closeout: {
|
|
13
|
+
current_decision: "ready_for_phase_3",
|
|
14
|
+
blocking_actions: [],
|
|
15
|
+
action_sequence: [
|
|
16
|
+
"review phase-2 completion summary",
|
|
17
|
+
"review phase-2 freeze-review summary",
|
|
18
|
+
"confirm the current runtime lane shape as frozen baseline",
|
|
19
|
+
"record the gate review outcome",
|
|
20
|
+
"flip ready_for_next_phase deliberately"
|
|
21
|
+
],
|
|
22
|
+
completion_signals: [
|
|
23
|
+
"freeze decision has been recorded",
|
|
24
|
+
"gate review has been recorded",
|
|
25
|
+
"phase-2 gate summary shows zero unsatisfied gate conditions"
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
sources: {
|
|
29
|
+
completion_summary: "/v1/phases/phase-2/completion/summary",
|
|
30
|
+
freeze_review_summary: "/v1/phases/phase-2/freeze-review/summary",
|
|
31
|
+
gate_summary: "/v1/phases/phase-2/gate/summary"
|
|
32
|
+
},
|
|
33
|
+
first_path: {
|
|
34
|
+
purpose: "show the recorded closeout path that moved Phase 2 into ready-for-next-phase state",
|
|
35
|
+
first_http_sequence: [
|
|
36
|
+
"/v1/phases/phase-2/gate/summary",
|
|
37
|
+
"/v1/phases/phase-2/closeout/summary",
|
|
38
|
+
"/v1/release-center/summary"
|
|
39
|
+
],
|
|
40
|
+
first_cli_sequence: [
|
|
41
|
+
"xytara-release --phase-2-closeout --summary",
|
|
42
|
+
"xytara-release --phase-2-gate --summary"
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function summarizePhase2CloseoutPack() {
|
|
49
|
+
const pack = buildPhase2CloseoutPack();
|
|
50
|
+
return {
|
|
51
|
+
ok: true,
|
|
52
|
+
product: pack.product,
|
|
53
|
+
category: pack.category,
|
|
54
|
+
phase_ref: pack.phase_ref,
|
|
55
|
+
blocking_action_count: pack.closeout.blocking_actions.length,
|
|
56
|
+
action_step_count: pack.closeout.action_sequence.length,
|
|
57
|
+
completion_signal_count: pack.closeout.completion_signals.length,
|
|
58
|
+
current_decision: pack.closeout.current_decision
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
module.exports = {
|
|
63
|
+
buildPhase2CloseoutPack,
|
|
64
|
+
summarizePhase2CloseoutPack
|
|
65
|
+
};
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildPhase2CompletionPack() {
|
|
6
|
+
return {
|
|
7
|
+
ok: true,
|
|
8
|
+
product: packageJson.name,
|
|
9
|
+
category: "machine-commerce-phase-2-completion-pack",
|
|
10
|
+
phase_ref: "phase_2",
|
|
11
|
+
posture: "completion_complete",
|
|
12
|
+
coverage: {
|
|
13
|
+
ecosystem_refs: ["evm", "base", "eth", "usdc"],
|
|
14
|
+
lane_refs: [
|
|
15
|
+
"/v1/phases/phase-2/evm/summary",
|
|
16
|
+
"/v1/phases/phase-2/evm-base/summary",
|
|
17
|
+
"/v1/phases/phase-2/base/summary",
|
|
18
|
+
"/v1/phases/phase-2/usdc/summary",
|
|
19
|
+
"/v1/phases/phase-2/base-usdc/summary",
|
|
20
|
+
"/v1/phases/phase-2/eth/summary"
|
|
21
|
+
],
|
|
22
|
+
payment_assets: ["evm-native-or-tokenized-value", "base-native-or-tokenized-value", "eth", "usdc"],
|
|
23
|
+
settlement_modes: ["ethereum_evm"],
|
|
24
|
+
operator_surfaces: [
|
|
25
|
+
"/v1/integrations/settlement-modes",
|
|
26
|
+
"/v1/release-center/summary",
|
|
27
|
+
"/v1/publish-plan/summary"
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
completion: {
|
|
31
|
+
checks: [
|
|
32
|
+
"broad Phase 2 rail pack is public and inspectable",
|
|
33
|
+
"all current Phase 2 runtime lanes are public and inspectable",
|
|
34
|
+
"combined Base plus USDC lane remains public alongside standalone Base and USDC lanes",
|
|
35
|
+
"payment-asset coverage is visible at phase level and on the combined lane",
|
|
36
|
+
"settlement-mode and operator surfaces remain attached to the rail family",
|
|
37
|
+
"release-center summary reflects Phase 2 breadth and completion coverage"
|
|
38
|
+
],
|
|
39
|
+
readiness_criteria: [
|
|
40
|
+
{
|
|
41
|
+
ref: "criterion.phase_surface_public",
|
|
42
|
+
label: "Phase 2 broad summary is live and inspectable",
|
|
43
|
+
satisfied: true
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
ref: "criterion.runtime_lane_coverage",
|
|
47
|
+
label: "All planned current runtime lanes are live and inspectable",
|
|
48
|
+
satisfied: true
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
ref: "criterion.asset_coverage_visible",
|
|
52
|
+
label: "Asset coverage is visible at both phase and combined-lane level",
|
|
53
|
+
satisfied: true
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
ref: "criterion.operator_surfaces_attached",
|
|
57
|
+
label: "Settlement and operator surfaces remain attached to the rail family",
|
|
58
|
+
satisfied: true
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
ref: "criterion.freeze_shape_confirmed",
|
|
62
|
+
label: "The final Phase 2 lane shape is explicitly frozen",
|
|
63
|
+
satisfied: true
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
ref: "criterion.next_phase_gate_reviewed",
|
|
67
|
+
label: "A final freeze review has been recorded before opening Phase 3",
|
|
68
|
+
satisfied: true
|
|
69
|
+
}
|
|
70
|
+
],
|
|
71
|
+
ready_for_next_phase: true,
|
|
72
|
+
remaining_focus: []
|
|
73
|
+
},
|
|
74
|
+
first_path: {
|
|
75
|
+
purpose: "review whether Phase 2 is complete as a machine-commerce program slice rather than just enumerated",
|
|
76
|
+
first_http_sequence: [
|
|
77
|
+
"/v1/phases/phase-2/summary",
|
|
78
|
+
"/v1/phases/phase-2/completion/summary",
|
|
79
|
+
"/v1/release-center/summary"
|
|
80
|
+
],
|
|
81
|
+
first_cli_sequence: [
|
|
82
|
+
"xytara-release --phase-2-completion --summary",
|
|
83
|
+
"xytara-release --phase-2 --summary"
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function summarizePhase2CompletionPack() {
|
|
90
|
+
const pack = buildPhase2CompletionPack();
|
|
91
|
+
return {
|
|
92
|
+
ok: true,
|
|
93
|
+
product: pack.product,
|
|
94
|
+
category: pack.category,
|
|
95
|
+
phase_ref: pack.phase_ref,
|
|
96
|
+
ecosystem_count: pack.coverage.ecosystem_refs.length,
|
|
97
|
+
lane_count: pack.coverage.lane_refs.length,
|
|
98
|
+
payment_asset_count: pack.coverage.payment_assets.length,
|
|
99
|
+
settlement_mode_count: pack.coverage.settlement_modes.length,
|
|
100
|
+
operator_surface_count: pack.coverage.operator_surfaces.length,
|
|
101
|
+
completion_check_count: pack.completion.checks.length,
|
|
102
|
+
readiness_criteria_count: pack.completion.readiness_criteria.length,
|
|
103
|
+
satisfied_criteria_count: pack.completion.readiness_criteria.filter((criterion) => criterion.satisfied === true).length,
|
|
104
|
+
unsatisfied_criteria_count: pack.completion.readiness_criteria.filter((criterion) => criterion.satisfied !== true).length,
|
|
105
|
+
remaining_focus_count: pack.completion.remaining_focus.length,
|
|
106
|
+
ready_for_next_phase: pack.completion.ready_for_next_phase
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
module.exports = {
|
|
111
|
+
buildPhase2CompletionPack,
|
|
112
|
+
summarizePhase2CompletionPack
|
|
113
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildPhase2DecisionRecordPack() {
|
|
6
|
+
return {
|
|
7
|
+
ok: true,
|
|
8
|
+
product: packageJson.name,
|
|
9
|
+
category: "machine-commerce-phase-2-decision-record-pack",
|
|
10
|
+
phase_ref: "phase_2",
|
|
11
|
+
posture: "decision_recorded",
|
|
12
|
+
records: {
|
|
13
|
+
freeze_decision: {
|
|
14
|
+
status: "recorded",
|
|
15
|
+
description: "record the final runtime lane shape as the frozen Phase 2 baseline"
|
|
16
|
+
},
|
|
17
|
+
gate_review: {
|
|
18
|
+
status: "recorded",
|
|
19
|
+
description: "record the final review that authorizes the move to Phase 3"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
record_steps: [
|
|
23
|
+
"confirm the current runtime lane family is the final Phase 2 shape",
|
|
24
|
+
"record the freeze decision",
|
|
25
|
+
"record the gate review outcome",
|
|
26
|
+
"recheck phase-2 gate summary for zero unsatisfied conditions"
|
|
27
|
+
],
|
|
28
|
+
outputs: [
|
|
29
|
+
"freeze decision status is recorded",
|
|
30
|
+
"gate review status is recorded",
|
|
31
|
+
"phase-2 gate is ready to stay flipped deliberately"
|
|
32
|
+
],
|
|
33
|
+
first_path: {
|
|
34
|
+
purpose: "show the two recorded decisions that allow the Phase 2 gate to stay flipped",
|
|
35
|
+
first_http_sequence: [
|
|
36
|
+
"/v1/phases/phase-2/closeout/summary",
|
|
37
|
+
"/v1/phases/phase-2/decision-record/summary",
|
|
38
|
+
"/v1/phases/phase-2/gate/summary"
|
|
39
|
+
],
|
|
40
|
+
first_cli_sequence: [
|
|
41
|
+
"xytara-release --phase-2-decision-record --summary",
|
|
42
|
+
"xytara-release --phase-2-closeout --summary"
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function summarizePhase2DecisionRecordPack() {
|
|
49
|
+
const pack = buildPhase2DecisionRecordPack();
|
|
50
|
+
return {
|
|
51
|
+
ok: true,
|
|
52
|
+
product: pack.product,
|
|
53
|
+
category: pack.category,
|
|
54
|
+
phase_ref: pack.phase_ref,
|
|
55
|
+
pending_record_count: Object.values(pack.records).filter((record) => record.status === "pending_record").length,
|
|
56
|
+
record_step_count: pack.record_steps.length,
|
|
57
|
+
output_count: pack.outputs.length,
|
|
58
|
+
freeze_decision_status: pack.records.freeze_decision.status,
|
|
59
|
+
gate_review_status: pack.records.gate_review.status
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
module.exports = {
|
|
64
|
+
buildPhase2DecisionRecordPack,
|
|
65
|
+
summarizePhase2DecisionRecordPack
|
|
66
|
+
};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildPhase2DecisionResolutionPack() {
|
|
6
|
+
return {
|
|
7
|
+
ok: true,
|
|
8
|
+
product: packageJson.name,
|
|
9
|
+
category: "machine-commerce-phase-2-decision-resolution-pack",
|
|
10
|
+
phase_ref: "phase_2",
|
|
11
|
+
posture: "decision_resolution",
|
|
12
|
+
transitions: [
|
|
13
|
+
{
|
|
14
|
+
record_ref: "freeze_decision",
|
|
15
|
+
from: "pending_record",
|
|
16
|
+
to: "recorded",
|
|
17
|
+
resolution_action: "record the final runtime lane freeze decision"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
record_ref: "gate_review",
|
|
21
|
+
from: "pending_record",
|
|
22
|
+
to: "recorded",
|
|
23
|
+
resolution_action: "record the final gate review authorizing Phase 3"
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
resolution_sequence: [
|
|
27
|
+
"confirm the final Phase 2 runtime lane shape",
|
|
28
|
+
"change freeze_decision from pending_record to recorded",
|
|
29
|
+
"change gate_review from pending_record to recorded",
|
|
30
|
+
"recheck the phase-2 gate for zero unsatisfied conditions",
|
|
31
|
+
"flip ready_for_next_phase deliberately"
|
|
32
|
+
],
|
|
33
|
+
completion_result: {
|
|
34
|
+
target_gate_decision: "ready_for_phase_3",
|
|
35
|
+
target_ready_for_next_phase: true
|
|
36
|
+
},
|
|
37
|
+
first_path: {
|
|
38
|
+
purpose: "show the exact status transitions still needed before the phase gate can flip",
|
|
39
|
+
first_http_sequence: [
|
|
40
|
+
"/v1/phases/phase-2/decision-record/summary",
|
|
41
|
+
"/v1/phases/phase-2/decision-resolution/summary",
|
|
42
|
+
"/v1/phases/phase-2/gate/summary"
|
|
43
|
+
],
|
|
44
|
+
first_cli_sequence: [
|
|
45
|
+
"xytara-release --phase-2-decision-resolution --summary",
|
|
46
|
+
"xytara-release --phase-2-decision-record --summary"
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function summarizePhase2DecisionResolutionPack() {
|
|
53
|
+
const pack = buildPhase2DecisionResolutionPack();
|
|
54
|
+
return {
|
|
55
|
+
ok: true,
|
|
56
|
+
product: pack.product,
|
|
57
|
+
category: pack.category,
|
|
58
|
+
phase_ref: pack.phase_ref,
|
|
59
|
+
transition_count: pack.transitions.length,
|
|
60
|
+
resolution_step_count: pack.resolution_sequence.length,
|
|
61
|
+
target_gate_decision: pack.completion_result.target_gate_decision,
|
|
62
|
+
target_ready_for_next_phase: pack.completion_result.target_ready_for_next_phase
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
module.exports = {
|
|
67
|
+
buildPhase2DecisionResolutionPack,
|
|
68
|
+
summarizePhase2DecisionResolutionPack
|
|
69
|
+
};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildPhase2EthRuntimePack() {
|
|
6
|
+
return {
|
|
7
|
+
ok: true,
|
|
8
|
+
product: packageJson.name,
|
|
9
|
+
category: "machine-commerce-phase-2-eth-runtime-pack",
|
|
10
|
+
phase_ref: "phase_2",
|
|
11
|
+
ecosystem_refs: ["eth"],
|
|
12
|
+
posture: "runtime_path",
|
|
13
|
+
settlement_shape: {
|
|
14
|
+
payment_asset: "eth",
|
|
15
|
+
rail_family: "evm",
|
|
16
|
+
settlement_focus: "chain-native value transfer with runtime-side settlement inspection",
|
|
17
|
+
operator_surfaces: [
|
|
18
|
+
"/v1/integrations/settlement-modes",
|
|
19
|
+
"/v1/release-center/summary"
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
completion_shape: {
|
|
23
|
+
completion_checks: [
|
|
24
|
+
"ETH runtime lane is public and inspectable",
|
|
25
|
+
"chain-native settlement posture stays visible at the lane level",
|
|
26
|
+
"operator surfaces remain available from the ETH lane",
|
|
27
|
+
"the lane stays consistent with the broader EVM family"
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
first_path: {
|
|
31
|
+
purpose: "show the first ETH-specific machine-commerce runtime lane inside the broader EVM phase",
|
|
32
|
+
first_http_sequence: [
|
|
33
|
+
"/v1/phases/phase-2/evm-base/summary",
|
|
34
|
+
"/v1/phases/phase-2/eth/summary",
|
|
35
|
+
"/v1/integrations/settlement-modes"
|
|
36
|
+
],
|
|
37
|
+
first_cli_sequence: [
|
|
38
|
+
"xytara-release --phase-2-eth-runtime --summary",
|
|
39
|
+
"xytara-release --phase-2-evm-base-runtime --summary"
|
|
40
|
+
],
|
|
41
|
+
expected_signals: [
|
|
42
|
+
"ETH has a dedicated runtime-facing rail slice rather than living only inside the generic EVM bucket",
|
|
43
|
+
"settlement-shape detail is visible alongside the entry path",
|
|
44
|
+
"Phase 2 is getting more specific without breaking the shared multi-rail model"
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function summarizePhase2EthRuntimePack() {
|
|
51
|
+
const pack = buildPhase2EthRuntimePack();
|
|
52
|
+
return {
|
|
53
|
+
ok: true,
|
|
54
|
+
product: pack.product,
|
|
55
|
+
category: pack.category,
|
|
56
|
+
phase_ref: pack.phase_ref,
|
|
57
|
+
ecosystem_count: pack.ecosystem_refs.length,
|
|
58
|
+
completion_check_count: pack.completion_shape.completion_checks.length,
|
|
59
|
+
http_step_count: pack.first_path.first_http_sequence.length,
|
|
60
|
+
cli_step_count: pack.first_path.first_cli_sequence.length,
|
|
61
|
+
signal_count: pack.first_path.expected_signals.length,
|
|
62
|
+
operator_surface_count: pack.settlement_shape.operator_surfaces.length,
|
|
63
|
+
first_http_step: pack.first_path.first_http_sequence[0] || null
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
module.exports = {
|
|
68
|
+
buildPhase2EthRuntimePack,
|
|
69
|
+
summarizePhase2EthRuntimePack
|
|
70
|
+
};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildPhase2EvmBaseRuntimePack() {
|
|
6
|
+
return {
|
|
7
|
+
ok: true,
|
|
8
|
+
product: packageJson.name,
|
|
9
|
+
category: "machine-commerce-phase-2-evm-base-runtime-pack",
|
|
10
|
+
phase_ref: "phase_2",
|
|
11
|
+
ecosystem_refs: ["evm", "base", "eth", "usdc"],
|
|
12
|
+
posture: "runtime_path",
|
|
13
|
+
settlement_shape: {
|
|
14
|
+
payment_assets: ["evm-native-or-tokenized-value", "base-native-or-tokenized-value", "eth", "usdc"],
|
|
15
|
+
rail_family: "evm_and_l2_with_stablecoin",
|
|
16
|
+
settlement_modes: ["ethereum_evm"],
|
|
17
|
+
operator_surfaces: [
|
|
18
|
+
"/v1/integrations/settlement-modes",
|
|
19
|
+
"/v1/release-center/summary",
|
|
20
|
+
"/v1/publish-plan/summary"
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
completion_shape: {
|
|
24
|
+
completion_checks: [
|
|
25
|
+
"the broad EVM/Base/ETH/USDC lane is public and inspectable",
|
|
26
|
+
"asset coverage is visible inside one shared runtime lane",
|
|
27
|
+
"settlement mode stays attached to the combined lane",
|
|
28
|
+
"operator surfaces stay available while narrower child lanes split out"
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
first_path: {
|
|
32
|
+
purpose: "show the first public runtime lane for broadly legible EVM/Base/ETH/USDC settlement-aware machine commerce",
|
|
33
|
+
first_http_sequence: [
|
|
34
|
+
"/v1/release-center/summary",
|
|
35
|
+
"/v1/integrations/settlement-modes",
|
|
36
|
+
"/v1/release-pack/summary"
|
|
37
|
+
],
|
|
38
|
+
first_cli_sequence: [
|
|
39
|
+
"xytara-release --phase-2-evm-base-runtime --summary",
|
|
40
|
+
"xytara-release --center --summary"
|
|
41
|
+
],
|
|
42
|
+
expected_signals: [
|
|
43
|
+
"EVM/Base/ETH/USDC are visible as explicit settlement-facing expansion targets",
|
|
44
|
+
"settlement mode breadth is inspectable from a stable public route",
|
|
45
|
+
"Phase 2 starts from runtime and settlement legibility instead of hidden internal work"
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function summarizePhase2EvmBaseRuntimePack() {
|
|
52
|
+
const pack = buildPhase2EvmBaseRuntimePack();
|
|
53
|
+
return {
|
|
54
|
+
ok: true,
|
|
55
|
+
product: pack.product,
|
|
56
|
+
category: pack.category,
|
|
57
|
+
phase_ref: pack.phase_ref,
|
|
58
|
+
ecosystem_count: pack.ecosystem_refs.length,
|
|
59
|
+
settlement_mode_count: pack.settlement_shape.settlement_modes.length,
|
|
60
|
+
payment_asset_count: pack.settlement_shape.payment_assets.length,
|
|
61
|
+
completion_check_count: pack.completion_shape.completion_checks.length,
|
|
62
|
+
http_step_count: pack.first_path.first_http_sequence.length,
|
|
63
|
+
cli_step_count: pack.first_path.first_cli_sequence.length,
|
|
64
|
+
signal_count: pack.first_path.expected_signals.length,
|
|
65
|
+
operator_surface_count: pack.settlement_shape.operator_surfaces.length,
|
|
66
|
+
first_http_step: pack.first_path.first_http_sequence[0] || null
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
module.exports = {
|
|
71
|
+
buildPhase2EvmBaseRuntimePack,
|
|
72
|
+
summarizePhase2EvmBaseRuntimePack
|
|
73
|
+
};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildPhase2EvmRuntimePack() {
|
|
6
|
+
return {
|
|
7
|
+
ok: true,
|
|
8
|
+
product: packageJson.name,
|
|
9
|
+
category: "machine-commerce-phase-2-evm-runtime-pack",
|
|
10
|
+
phase_ref: "phase_2",
|
|
11
|
+
ecosystem_refs: ["evm"],
|
|
12
|
+
posture: "runtime_path",
|
|
13
|
+
settlement_shape: {
|
|
14
|
+
payment_asset: "evm-native-or-tokenized-value",
|
|
15
|
+
rail_family: "evm",
|
|
16
|
+
settlement_modes: ["ethereum_evm"],
|
|
17
|
+
operator_surfaces: [
|
|
18
|
+
"/v1/integrations/settlement-modes",
|
|
19
|
+
"/v1/release-center/summary"
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
completion_shape: {
|
|
23
|
+
completion_checks: [
|
|
24
|
+
"generic EVM runtime lane is public and inspectable",
|
|
25
|
+
"settlement mode stays attached to the lane",
|
|
26
|
+
"operator surfaces stay available from the lane",
|
|
27
|
+
"more specific Base and ETH lanes remain consistent with the generic EVM parent"
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
first_path: {
|
|
31
|
+
purpose: "show the general EVM-specific runtime lane that sits beneath the more concrete Base/USDC and ETH splits",
|
|
32
|
+
first_http_sequence: [
|
|
33
|
+
"/v1/phases/phase-2/summary",
|
|
34
|
+
"/v1/phases/phase-2/evm/summary",
|
|
35
|
+
"/v1/integrations/settlement-modes"
|
|
36
|
+
],
|
|
37
|
+
first_cli_sequence: [
|
|
38
|
+
"xytara-release --phase-2-evm-runtime --summary",
|
|
39
|
+
"xytara-release --phase-2 --summary"
|
|
40
|
+
],
|
|
41
|
+
expected_signals: [
|
|
42
|
+
"the generic EVM lane is visible as its own runtime surface rather than implied only by downstream splits",
|
|
43
|
+
"rail-level settlement-shape metadata is starting to accumulate inside Phase 2",
|
|
44
|
+
"the broader EVM posture stays compatible with more specific Base/USDC and ETH lanes"
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function summarizePhase2EvmRuntimePack() {
|
|
51
|
+
const pack = buildPhase2EvmRuntimePack();
|
|
52
|
+
return {
|
|
53
|
+
ok: true,
|
|
54
|
+
product: pack.product,
|
|
55
|
+
category: pack.category,
|
|
56
|
+
phase_ref: pack.phase_ref,
|
|
57
|
+
ecosystem_count: pack.ecosystem_refs.length,
|
|
58
|
+
settlement_mode_count: pack.settlement_shape.settlement_modes.length,
|
|
59
|
+
completion_check_count: pack.completion_shape.completion_checks.length,
|
|
60
|
+
http_step_count: pack.first_path.first_http_sequence.length,
|
|
61
|
+
cli_step_count: pack.first_path.first_cli_sequence.length,
|
|
62
|
+
signal_count: pack.first_path.expected_signals.length,
|
|
63
|
+
operator_surface_count: pack.settlement_shape.operator_surfaces.length,
|
|
64
|
+
first_http_step: pack.first_path.first_http_sequence[0] || null
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
module.exports = {
|
|
69
|
+
buildPhase2EvmRuntimePack,
|
|
70
|
+
summarizePhase2EvmRuntimePack
|
|
71
|
+
};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildPhase2FlipPreviewPack() {
|
|
6
|
+
return {
|
|
7
|
+
ok: true,
|
|
8
|
+
product: packageJson.name,
|
|
9
|
+
category: "machine-commerce-phase-2-flip-preview-pack",
|
|
10
|
+
phase_ref: "phase_2",
|
|
11
|
+
posture: "flip_preview",
|
|
12
|
+
preview: {
|
|
13
|
+
freeze_decision_status: "recorded",
|
|
14
|
+
gate_review_status: "recorded",
|
|
15
|
+
gate_decision: "ready_for_phase_3",
|
|
16
|
+
ready_for_next_phase: true,
|
|
17
|
+
satisfied_gate_count: 10,
|
|
18
|
+
unsatisfied_gate_count: 0
|
|
19
|
+
},
|
|
20
|
+
changed_signals: [
|
|
21
|
+
"freeze_decision moves from pending_record to recorded",
|
|
22
|
+
"gate_review moves from pending_record to recorded",
|
|
23
|
+
"phase-2 gate moves from hold_phase_2 to ready_for_phase_3",
|
|
24
|
+
"unsatisfied gate count drops to zero"
|
|
25
|
+
],
|
|
26
|
+
first_path: {
|
|
27
|
+
purpose: "preview the exact post-record state before deliberately flipping the Phase 2 gate",
|
|
28
|
+
first_http_sequence: [
|
|
29
|
+
"/v1/phases/phase-2/decision-record/summary",
|
|
30
|
+
"/v1/phases/phase-2/decision-resolution/summary",
|
|
31
|
+
"/v1/phases/phase-2/flip-preview/summary"
|
|
32
|
+
],
|
|
33
|
+
first_cli_sequence: [
|
|
34
|
+
"xytara-release --phase-2-flip-preview --summary",
|
|
35
|
+
"xytara-release --phase-2-gate --summary"
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function summarizePhase2FlipPreviewPack() {
|
|
42
|
+
const pack = buildPhase2FlipPreviewPack();
|
|
43
|
+
return {
|
|
44
|
+
ok: true,
|
|
45
|
+
product: pack.product,
|
|
46
|
+
category: pack.category,
|
|
47
|
+
phase_ref: pack.phase_ref,
|
|
48
|
+
freeze_decision_status: pack.preview.freeze_decision_status,
|
|
49
|
+
gate_review_status: pack.preview.gate_review_status,
|
|
50
|
+
gate_decision: pack.preview.gate_decision,
|
|
51
|
+
ready_for_next_phase: pack.preview.ready_for_next_phase,
|
|
52
|
+
changed_signal_count: pack.changed_signals.length,
|
|
53
|
+
unsatisfied_gate_count: pack.preview.unsatisfied_gate_count
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
module.exports = {
|
|
58
|
+
buildPhase2FlipPreviewPack,
|
|
59
|
+
summarizePhase2FlipPreviewPack
|
|
60
|
+
};
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildPhase2FreezeReviewPack() {
|
|
6
|
+
return {
|
|
7
|
+
ok: true,
|
|
8
|
+
product: packageJson.name,
|
|
9
|
+
category: "machine-commerce-phase-2-freeze-review-pack",
|
|
10
|
+
phase_ref: "phase_2",
|
|
11
|
+
posture: "freeze_recorded",
|
|
12
|
+
current_shape: {
|
|
13
|
+
lane_refs: [
|
|
14
|
+
"/v1/phases/phase-2/evm/summary",
|
|
15
|
+
"/v1/phases/phase-2/evm-base/summary",
|
|
16
|
+
"/v1/phases/phase-2/base/summary",
|
|
17
|
+
"/v1/phases/phase-2/usdc/summary",
|
|
18
|
+
"/v1/phases/phase-2/base-usdc/summary",
|
|
19
|
+
"/v1/phases/phase-2/eth/summary"
|
|
20
|
+
],
|
|
21
|
+
payment_assets: ["evm-native-or-tokenized-value", "base-native-or-tokenized-value", "eth", "usdc"],
|
|
22
|
+
settlement_modes: ["ethereum_evm"]
|
|
23
|
+
},
|
|
24
|
+
freeze_review: {
|
|
25
|
+
decision_posture: "freeze_recorded",
|
|
26
|
+
review_questions: [
|
|
27
|
+
"Is the current runtime lane split the exact shape we want to preserve for Phase 2?",
|
|
28
|
+
"Do the combined and standalone lanes communicate the rail family clearly without overlap confusion?",
|
|
29
|
+
"Is the current operator and settlement coverage sufficient before opening the next phase?",
|
|
30
|
+
"Would adding more EVM-family lanes materially improve Phase 2, or just create sprawl?"
|
|
31
|
+
],
|
|
32
|
+
resolution_criteria: [
|
|
33
|
+
{
|
|
34
|
+
ref: "criterion.freeze_review_surface_public",
|
|
35
|
+
label: "Freeze-review surface is public and inspectable",
|
|
36
|
+
satisfied: true
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
ref: "criterion.blockers_explicit",
|
|
40
|
+
label: "Current blockers are explicit and bounded",
|
|
41
|
+
satisfied: true
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
ref: "criterion.freeze_decision_recorded",
|
|
45
|
+
label: "Final lane-shape freeze has been explicitly recorded",
|
|
46
|
+
satisfied: true
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
ref: "criterion.gate_review_recorded",
|
|
50
|
+
label: "Next-phase gate review has been explicitly recorded",
|
|
51
|
+
satisfied: true
|
|
52
|
+
}
|
|
53
|
+
],
|
|
54
|
+
blockers: [],
|
|
55
|
+
freeze_outputs: [
|
|
56
|
+
"freeze decision recorded",
|
|
57
|
+
"ready_for_next_phase flipped deliberately",
|
|
58
|
+
"Phase 2 shape treated as stable baseline going forward"
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
first_path: {
|
|
62
|
+
purpose: "inspect the recorded freeze state for the machine-commerce Phase 2 rail family",
|
|
63
|
+
first_http_sequence: [
|
|
64
|
+
"/v1/phases/phase-2/completion/summary",
|
|
65
|
+
"/v1/phases/phase-2/freeze-review/summary",
|
|
66
|
+
"/v1/release-center/summary"
|
|
67
|
+
],
|
|
68
|
+
first_cli_sequence: [
|
|
69
|
+
"xytara-release --phase-2-freeze-review --summary",
|
|
70
|
+
"xytara-release --phase-2-completion --summary"
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function summarizePhase2FreezeReviewPack() {
|
|
77
|
+
const pack = buildPhase2FreezeReviewPack();
|
|
78
|
+
return {
|
|
79
|
+
ok: true,
|
|
80
|
+
product: pack.product,
|
|
81
|
+
category: pack.category,
|
|
82
|
+
phase_ref: pack.phase_ref,
|
|
83
|
+
lane_count: pack.current_shape.lane_refs.length,
|
|
84
|
+
payment_asset_count: pack.current_shape.payment_assets.length,
|
|
85
|
+
settlement_mode_count: pack.current_shape.settlement_modes.length,
|
|
86
|
+
review_question_count: pack.freeze_review.review_questions.length,
|
|
87
|
+
resolution_criteria_count: pack.freeze_review.resolution_criteria.length,
|
|
88
|
+
satisfied_resolution_count: pack.freeze_review.resolution_criteria.filter((criterion) => criterion.satisfied === true).length,
|
|
89
|
+
unsatisfied_resolution_count: pack.freeze_review.resolution_criteria.filter((criterion) => criterion.satisfied !== true).length,
|
|
90
|
+
blocker_count: pack.freeze_review.blockers.length,
|
|
91
|
+
freeze_output_count: pack.freeze_review.freeze_outputs.length,
|
|
92
|
+
decision_posture: pack.freeze_review.decision_posture
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
module.exports = {
|
|
97
|
+
buildPhase2FreezeReviewPack,
|
|
98
|
+
summarizePhase2FreezeReviewPack
|
|
99
|
+
};
|