xytara 2.0.0 → 2.2.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 (176) hide show
  1. package/.env.example +6 -0
  2. package/ADAPTER_START_HERE.md +56 -0
  3. package/BSV_TERANODE_SETUP.md +30 -1
  4. package/CARRIED_HANDOFF_DEMO.md +60 -0
  5. package/EXAMPLE_PATHS.md +53 -0
  6. package/FINAL_CONTRACT.md +6 -6
  7. package/OPERATIONS_RUNBOOK.md +65 -0
  8. package/OPERATOR_START_HERE.md +63 -0
  9. package/PARTNER_READY_PATH.md +71 -0
  10. package/PROGRAM_COMPLETE_RELEASE.md +63 -0
  11. package/PROGRAM_STATUS.md +57 -0
  12. package/PUBLIC_DEMO_SCRIPT.md +78 -0
  13. package/PUBLISH_PLAN.md +14 -0
  14. package/README.md +142 -6
  15. package/RELEASE_CHECKLIST.md +16 -0
  16. package/RELEASE_NOTES.md +28 -0
  17. package/SERVICE_CONTRACT.md +4 -4
  18. package/START_HERE.md +32 -0
  19. package/SUPABASE_RUNTIME_STATE_SETUP.md +61 -0
  20. package/WHY_XYTARA_XOONYA.md +63 -0
  21. package/adapters/examples/minimal-third-party-execution-adapter.js +61 -0
  22. package/adapters/examples/minimal-third-party-execution-adapter.manifest.json +79 -0
  23. package/adapters/examples/minimal-third-party-execution-registration.record.json +26 -0
  24. package/adapters/examples/minimal-third-party-execution.certification-pack.json +22 -0
  25. package/adapters/examples/minimal-third-party-execution.submission-bundle.json +126 -0
  26. package/bin/xytara-release.js +1419 -0
  27. package/bin/xytara-run.js +186 -0
  28. package/examples/adapter_review_walkthrough.js +53 -0
  29. package/examples/export_carried_handoff.js +80 -0
  30. package/examples/funded_runtime_walkthrough.js +70 -0
  31. package/examples/partner_launch_walkthrough.js +43 -0
  32. package/examples/quickstart.js +3255 -0
  33. package/index.js +87 -1
  34. package/lib/adapter_pack.js +118 -0
  35. package/lib/adapter_partner_pack.js +89 -0
  36. package/lib/adapter_promotion_pack.js +89 -0
  37. package/lib/announcement_pack.js +61 -0
  38. package/lib/commerce_artifacts.js +3 -0
  39. package/lib/commerce_economics.js +14 -0
  40. package/lib/commerce_reports.js +26 -1
  41. package/lib/commerce_shell.js +18 -2
  42. package/lib/ecosystem_entry.js +64 -0
  43. package/lib/launch_narrative.js +53 -0
  44. package/lib/outreach_copy_pack.js +51 -0
  45. package/lib/outreach_message_pack.js +71 -0
  46. package/lib/outreach_proof.js +71 -0
  47. package/lib/outreach_target_pack.js +60 -0
  48. package/lib/phase_10_closeout_pack.js +45 -0
  49. package/lib/phase_10_completion_pack.js +76 -0
  50. package/lib/phase_10_decision_record_pack.js +54 -0
  51. package/lib/phase_10_decision_resolution_pack.js +53 -0
  52. package/lib/phase_10_demand_signal_adapters_runtime_pack.js +74 -0
  53. package/lib/phase_10_ecosystem_backlog_triage_runtime_pack.js +74 -0
  54. package/lib/phase_10_freeze_baseline_pack.js +67 -0
  55. package/lib/phase_10_freeze_review_pack.js +64 -0
  56. package/lib/phase_10_gate_pack.js +57 -0
  57. package/lib/phase_10_long_tail_continuity_pack.js +80 -0
  58. package/lib/phase_10_long_tail_ecosystem_pack.js +66 -0
  59. package/lib/phase_10_niche_extension_registry_runtime_pack.js +74 -0
  60. package/lib/phase_1_claude_mcp_pack.js +60 -0
  61. package/lib/phase_1_claude_mcp_runtime_pack.js +52 -0
  62. package/lib/phase_1_ecosystem_pack.js +67 -0
  63. package/lib/phase_1_openai_codex_pack.js +60 -0
  64. package/lib/phase_1_openai_codex_runtime_pack.js +52 -0
  65. package/lib/phase_2_base_runtime_pack.js +71 -0
  66. package/lib/phase_2_base_usdc_runtime_pack.js +72 -0
  67. package/lib/phase_2_closeout_pack.js +65 -0
  68. package/lib/phase_2_completion_pack.js +113 -0
  69. package/lib/phase_2_decision_record_pack.js +66 -0
  70. package/lib/phase_2_decision_resolution_pack.js +69 -0
  71. package/lib/phase_2_eth_runtime_pack.js +70 -0
  72. package/lib/phase_2_evm_base_runtime_pack.js +73 -0
  73. package/lib/phase_2_evm_runtime_pack.js +71 -0
  74. package/lib/phase_2_flip_preview_pack.js +60 -0
  75. package/lib/phase_2_freeze_review_pack.js +99 -0
  76. package/lib/phase_2_gate_pack.js +77 -0
  77. package/lib/phase_2_payment_rails_pack.js +71 -0
  78. package/lib/phase_2_usdc_runtime_pack.js +71 -0
  79. package/lib/phase_3_brc_runtime_pack.js +81 -0
  80. package/lib/phase_3_bsv_teranode_runtime_pack.js +83 -0
  81. package/lib/phase_3_closeout_pack.js +62 -0
  82. package/lib/phase_3_completion_pack.js +94 -0
  83. package/lib/phase_3_decision_record_pack.js +64 -0
  84. package/lib/phase_3_decision_resolution_pack.js +69 -0
  85. package/lib/phase_3_freeze_baseline_pack.js +67 -0
  86. package/lib/phase_3_freeze_review_pack.js +80 -0
  87. package/lib/phase_3_gate_pack.js +76 -0
  88. package/lib/phase_3_metanet_runtime_pack.js +81 -0
  89. package/lib/phase_3_native_bsv_pack.js +91 -0
  90. package/lib/phase_3_native_continuity_pack.js +82 -0
  91. package/lib/phase_4_attestation_runtime_pack.js +75 -0
  92. package/lib/phase_4_closeout_pack.js +45 -0
  93. package/lib/phase_4_completion_pack.js +94 -0
  94. package/lib/phase_4_decision_record_pack.js +54 -0
  95. package/lib/phase_4_decision_resolution_pack.js +45 -0
  96. package/lib/phase_4_erc8004_runtime_pack.js +76 -0
  97. package/lib/phase_4_freeze_baseline_pack.js +67 -0
  98. package/lib/phase_4_freeze_review_pack.js +68 -0
  99. package/lib/phase_4_gate_pack.js +58 -0
  100. package/lib/phase_4_identity_registry_runtime_pack.js +75 -0
  101. package/lib/phase_4_identity_trust_pack.js +73 -0
  102. package/lib/phase_4_trust_continuity_pack.js +86 -0
  103. package/lib/phase_5_antelope_runtime_pack.js +76 -0
  104. package/lib/phase_5_closeout_pack.js +44 -0
  105. package/lib/phase_5_completion_pack.js +82 -0
  106. package/lib/phase_5_decision_record_pack.js +54 -0
  107. package/lib/phase_5_decision_resolution_pack.js +45 -0
  108. package/lib/phase_5_freeze_baseline_pack.js +67 -0
  109. package/lib/phase_5_freeze_review_pack.js +68 -0
  110. package/lib/phase_5_gate_pack.js +58 -0
  111. package/lib/phase_5_major_rails_continuity_pack.js +86 -0
  112. package/lib/phase_5_major_rails_pack.js +74 -0
  113. package/lib/phase_5_proton_xpr_runtime_pack.js +76 -0
  114. package/lib/phase_5_solana_runtime_pack.js +76 -0
  115. package/lib/phase_6_autogen_runtime_pack.js +72 -0
  116. package/lib/phase_6_closeout_pack.js +46 -0
  117. package/lib/phase_6_completion_pack.js +77 -0
  118. package/lib/phase_6_decision_record_pack.js +54 -0
  119. package/lib/phase_6_decision_resolution_pack.js +53 -0
  120. package/lib/phase_6_framework_continuity_pack.js +81 -0
  121. package/lib/phase_6_framework_runtime_pack.js +68 -0
  122. package/lib/phase_6_freeze_baseline_pack.js +68 -0
  123. package/lib/phase_6_freeze_review_pack.js +65 -0
  124. package/lib/phase_6_gate_pack.js +59 -0
  125. package/lib/phase_6_langchain_runtime_pack.js +72 -0
  126. package/lib/phase_6_langgraph_runtime_pack.js +72 -0
  127. package/lib/phase_6_semantic_kernel_runtime_pack.js +72 -0
  128. package/lib/phase_7_closeout_pack.js +45 -0
  129. package/lib/phase_7_completion_pack.js +85 -0
  130. package/lib/phase_7_decision_record_pack.js +53 -0
  131. package/lib/phase_7_decision_resolution_pack.js +53 -0
  132. package/lib/phase_7_event_system_continuity_pack.js +89 -0
  133. package/lib/phase_7_event_system_pack.js +76 -0
  134. package/lib/phase_7_freeze_baseline_pack.js +74 -0
  135. package/lib/phase_7_freeze_review_pack.js +65 -0
  136. package/lib/phase_7_gate_pack.js +58 -0
  137. package/lib/phase_7_kafka_runtime_pack.js +74 -0
  138. package/lib/phase_7_mqtt_runtime_pack.js +74 -0
  139. package/lib/phase_7_nats_runtime_pack.js +74 -0
  140. package/lib/phase_7_webhook_event_bus_runtime_pack.js +74 -0
  141. package/lib/phase_8_closeout_pack.js +46 -0
  142. package/lib/phase_8_completion_pack.js +82 -0
  143. package/lib/phase_8_decision_record_pack.js +54 -0
  144. package/lib/phase_8_decision_resolution_pack.js +53 -0
  145. package/lib/phase_8_external_receipt_import_runtime_pack.js +74 -0
  146. package/lib/phase_8_external_result_import_runtime_pack.js +74 -0
  147. package/lib/phase_8_freeze_baseline_pack.js +71 -0
  148. package/lib/phase_8_freeze_review_pack.js +64 -0
  149. package/lib/phase_8_gate_pack.js +58 -0
  150. package/lib/phase_8_proof_bridge_continuity_pack.js +86 -0
  151. package/lib/phase_8_proof_bridges_pack.js +72 -0
  152. package/lib/phase_8_proof_bundle_normalization_runtime_pack.js +74 -0
  153. package/lib/phase_9_closeout_pack.js +46 -0
  154. package/lib/phase_9_completion_pack.js +82 -0
  155. package/lib/phase_9_custody_refs_runtime_pack.js +74 -0
  156. package/lib/phase_9_decision_record_pack.js +54 -0
  157. package/lib/phase_9_decision_resolution_pack.js +53 -0
  158. package/lib/phase_9_freeze_baseline_pack.js +71 -0
  159. package/lib/phase_9_freeze_review_pack.js +64 -0
  160. package/lib/phase_9_gate_pack.js +58 -0
  161. package/lib/phase_9_operator_accounting_bridges_runtime_pack.js +74 -0
  162. package/lib/phase_9_treasury_connectivity_pack.js +72 -0
  163. package/lib/phase_9_treasury_continuity_pack.js +86 -0
  164. package/lib/phase_9_treasury_destinations_runtime_pack.js +74 -0
  165. package/lib/phase_program_pack.js +120 -0
  166. package/lib/publish_plan.js +51 -0
  167. package/lib/release_candidate.js +50 -0
  168. package/lib/release_center.js +1085 -0
  169. package/lib/release_history.js +72 -0
  170. package/lib/release_manifest.js +114 -0
  171. package/lib/release_pack.js +454 -0
  172. package/lib/runtime_state_store.js +354 -0
  173. package/lib/settlement_bsv_live.js +262 -13
  174. package/lib/soft_launch_pack.js +78 -0
  175. package/package.json +24 -2
  176. package/server.js +2562 -220
package/index.js CHANGED
@@ -5,6 +5,60 @@ const {
5
5
  ADAPTER_INTERFACE_VERSION,
6
6
  validateAdapterImplementation
7
7
  } = require("./adapters/interfaces");
8
+ const {
9
+ buildReleasePack,
10
+ summarizeReleasePack,
11
+ buildComparisonPack,
12
+ summarizeComparisonPack,
13
+ buildAdoptionPack,
14
+ summarizeAdoptionPack,
15
+ buildScenarioPack,
16
+ summarizeScenarioPack,
17
+ buildLaunchPack,
18
+ summarizeLaunchPack
19
+ } = require("./lib/release_pack");
20
+ const {
21
+ buildReleaseManifest,
22
+ summarizeReleaseManifest,
23
+ buildLaunchNotes,
24
+ summarizeLaunchNotes
25
+ } = require("./lib/release_manifest");
26
+ const {
27
+ buildReleaseCenter,
28
+ summarizeReleaseCenter
29
+ } = require("./lib/release_center");
30
+ const {
31
+ buildReleaseHistory,
32
+ summarizeReleaseHistory
33
+ } = require("./lib/release_history");
34
+ const {
35
+ buildAdapterPack,
36
+ summarizeAdapterPack
37
+ } = require("./lib/adapter_pack");
38
+ const {
39
+ buildPublishPlan,
40
+ summarizePublishPlan
41
+ } = require("./lib/publish_plan");
42
+ const {
43
+ buildEcosystemEntryPack,
44
+ summarizeEcosystemEntryPack
45
+ } = require("./lib/ecosystem_entry");
46
+ const {
47
+ buildLaunchNarrativePack,
48
+ summarizeLaunchNarrativePack
49
+ } = require("./lib/launch_narrative");
50
+ const {
51
+ buildOutreachProofPack,
52
+ summarizeOutreachProofPack
53
+ } = require("./lib/outreach_proof");
54
+ const {
55
+ buildAnnouncementPack,
56
+ summarizeAnnouncementPack
57
+ } = require("./lib/announcement_pack");
58
+ const {
59
+ buildReleaseCandidatePack,
60
+ summarizeReleaseCandidatePack
61
+ } = require("./lib/release_candidate");
8
62
  const {
9
63
  getIntegration,
10
64
  listIntegrations,
@@ -40,7 +94,7 @@ const {
40
94
  } = require("./integrations/registry");
41
95
 
42
96
  const COMMERCE_SDK_NAME = "xytara";
43
- const COMMERCE_SDK_VERSION = "2.0.0";
97
+ const COMMERCE_SDK_VERSION = "2.2.0";
44
98
  const COMMERCE_API_VERSION = "v1";
45
99
 
46
100
  function createClient(options) {
@@ -85,5 +139,37 @@ module.exports = {
85
139
  summarizeIntegrationPromotionActionPreview,
86
140
  summarizeIntegrationPromotionActionSet,
87
141
  summarizeIntegrationPromotionActionSetList,
142
+ buildReleasePack,
143
+ summarizeReleasePack,
144
+ buildComparisonPack,
145
+ summarizeComparisonPack,
146
+ buildAdoptionPack,
147
+ summarizeAdoptionPack,
148
+ buildScenarioPack,
149
+ summarizeScenarioPack,
150
+ buildLaunchPack,
151
+ summarizeLaunchPack,
152
+ buildReleaseManifest,
153
+ summarizeReleaseManifest,
154
+ buildLaunchNotes,
155
+ summarizeLaunchNotes,
156
+ buildReleaseCenter,
157
+ summarizeReleaseCenter,
158
+ buildReleaseHistory,
159
+ summarizeReleaseHistory,
160
+ buildAdapterPack,
161
+ summarizeAdapterPack,
162
+ buildPublishPlan,
163
+ summarizePublishPlan,
164
+ buildEcosystemEntryPack,
165
+ summarizeEcosystemEntryPack,
166
+ buildLaunchNarrativePack,
167
+ summarizeLaunchNarrativePack,
168
+ buildOutreachProofPack,
169
+ summarizeOutreachProofPack,
170
+ buildAnnouncementPack,
171
+ summarizeAnnouncementPack,
172
+ buildReleaseCandidatePack,
173
+ summarizeReleaseCandidatePack,
88
174
  validateAdapterImplementation
89
175
  };
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+
3
+ const packageJson = require("../package.json");
4
+
5
+ function buildAdapterPack() {
6
+ return {
7
+ ok: true,
8
+ product: packageJson.name,
9
+ category: "machine-commerce-adapter-pack",
10
+ positioning: {
11
+ line: "adapter-first machine commerce for third-party execution, settlement, protocol, and identity surfaces",
12
+ intended_for: [
13
+ "adapter_authors",
14
+ "protocol_bridge_builders",
15
+ "settlement_integrators",
16
+ "identity_and_registry_integrators"
17
+ ]
18
+ },
19
+ onboarding: {
20
+ first_docs: [
21
+ "ADAPTER_START_HERE.md",
22
+ "adapters/AUTHORING_GUIDE.md",
23
+ "adapters/ONBOARDING_POSTURE.md",
24
+ "adapters/THIRD_PARTY_SUBMISSION_PROCESS.md"
25
+ ],
26
+ starter_classes: [
27
+ "execution_adapter",
28
+ "payment_rail_adapter",
29
+ "settlement_adapter",
30
+ "agent_protocol_adapter",
31
+ "identity_registry_adapter"
32
+ ],
33
+ first_commands: [
34
+ "npm run verify:adapters",
35
+ "node scripts/registry_cli.js validate-bundle --example protocol",
36
+ "node scripts/registry_cli.js review-bundle --example protocol",
37
+ "node scripts/registry_cli.js promotion-readiness --integration partner.protocol.acme_mcp"
38
+ ]
39
+ },
40
+ artifact_stack: [
41
+ "adapter_manifest",
42
+ "registration_record",
43
+ "certification_pack",
44
+ "submission_bundle",
45
+ "submission_bundle_set",
46
+ "registry_snapshot"
47
+ ],
48
+ promotion_posture: {
49
+ explicit_states: [
50
+ "review_ready",
51
+ "default_eligible",
52
+ "production_default_ready"
53
+ ],
54
+ default_third_party_posture: {
55
+ discoverable: true,
56
+ reviewable: true,
57
+ explicitly_selectable: true,
58
+ default_eligible: false,
59
+ production_default_ready: false
60
+ }
61
+ },
62
+ examples: {
63
+ canonical_examples: [
64
+ "adapters/examples/minimal-third-party-execution-adapter.manifest.json",
65
+ "adapters/examples/minimal-third-party-execution-adapter.js",
66
+ "adapters/examples/minimal-third-party-execution.submission-bundle.json",
67
+ "adapters/examples/example-execution-adapter.manifest.json",
68
+ "adapters/examples/example-execution-adapter.js",
69
+ "adapters/examples/example-settlement-adapter.manifest.json",
70
+ "adapters/examples/example-settlement-adapter.js",
71
+ "adapters/examples/example-third-party-registration.submission-bundle.json",
72
+ "adapters/examples/example-third-party-identity-registration.submission-bundle.json",
73
+ "adapters/examples/example-third-party-settlement-registration.submission-bundle.json"
74
+ ],
75
+ review_examples: [
76
+ "minimal_third_party_execution",
77
+ "protocol",
78
+ "identity",
79
+ "settlement"
80
+ ]
81
+ },
82
+ public_surfaces: {
83
+ integrations_summary: "/v1/integrations/summary",
84
+ promotion_readiness: "/v1/integrations/promotion-readiness",
85
+ promotion_actions: "/v1/integrations/promotion-actions",
86
+ submission_bundle_review: "/v1/integrations/review/submission-bundle",
87
+ submission_bundle_set_review: "/v1/integrations/review/submission-bundle-set",
88
+ registry_snapshot_review: "/v1/integrations/review/registry-snapshot"
89
+ },
90
+ why_it_matters: [
91
+ "third-party integrations can be staged and reviewed without becoming defaults",
92
+ "promotion posture is inspectable as data rather than private process",
93
+ "submission artifacts stay normalized across adapter classes",
94
+ "machine-commerce flexibility does not require vendor lock-in"
95
+ ]
96
+ };
97
+ }
98
+
99
+ function summarizeAdapterPack() {
100
+ const pack = buildAdapterPack();
101
+ return {
102
+ ok: true,
103
+ product: pack.product,
104
+ category: pack.category,
105
+ audience_count: pack.positioning.intended_for.length,
106
+ starter_class_count: pack.onboarding.starter_classes.length,
107
+ first_command_count: pack.onboarding.first_commands.length,
108
+ artifact_count: pack.artifact_stack.length,
109
+ example_count: pack.examples.canonical_examples.length,
110
+ review_example_count: pack.examples.review_examples.length,
111
+ first_doc: pack.onboarding.first_docs[0]
112
+ };
113
+ }
114
+
115
+ module.exports = {
116
+ buildAdapterPack,
117
+ summarizeAdapterPack
118
+ };
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ const packageJson = require("../package.json");
4
+
5
+ function buildAdapterPartnerPack() {
6
+ return {
7
+ ok: true,
8
+ product: packageJson.name,
9
+ category: "machine-commerce-adapter-partner-pack",
10
+ positioning: {
11
+ line: "build, review, and promote third-party adapters on top of xytara without giving up explicit trust posture",
12
+ intended_for: [
13
+ "ecosystem_partners",
14
+ "adapter_authors",
15
+ "marketplace_integrators",
16
+ "review_operators"
17
+ ]
18
+ },
19
+ partner_value: [
20
+ "adapter authors can start from a public minimal example instead of reverse-engineering internal flows",
21
+ "review posture is inspectable through explicit readiness and action surfaces",
22
+ "default-selection trust is earned through promotion data, not hidden exceptions",
23
+ "xytara stays flexible without forcing partners into one vendor-specific runtime story"
24
+ ],
25
+ start_path: {
26
+ first_docs: [
27
+ "ADAPTER_START_HERE.md",
28
+ "ADAPTER_PROMOTION_START_HERE.md"
29
+ ],
30
+ first_commands: [
31
+ "npm run verify:adapters",
32
+ "node scripts/registry_cli.js review-bundle --file adapters/examples/minimal-third-party-execution.submission-bundle.json",
33
+ "node scripts/registry_cli.js promotion-workflow --integration partner.execution.minimal_echo",
34
+ "xytara-release --adapter-promotion --summary"
35
+ ],
36
+ first_examples: [
37
+ "adapters/examples/minimal-third-party-execution-adapter.manifest.json",
38
+ "adapters/examples/minimal-third-party-execution.submission-bundle.json"
39
+ ]
40
+ },
41
+ trust_path: {
42
+ maturity_path: [
43
+ "starter_example",
44
+ "staging_registered",
45
+ "review_ready",
46
+ "default_eligible",
47
+ "production_default_ready"
48
+ ],
49
+ key_questions: [
50
+ "what is valid to ship now?",
51
+ "what still blocks trust or default selection?",
52
+ "what evidence is still missing?",
53
+ "what action moves the integration forward next?"
54
+ ]
55
+ },
56
+ public_surfaces: {
57
+ adapter_pack: "/v1/adapter-pack/summary",
58
+ adapter_promotion: "/v1/adapter-promotion/summary",
59
+ promotion_readiness: "/v1/integrations/promotion-readiness",
60
+ promotion_workflow: "/v1/integrations/promotion-workflow",
61
+ promotion_actions: "/v1/integrations/promotion-actions",
62
+ release_center: "/v1/release-center/summary"
63
+ },
64
+ adoption_message: {
65
+ why_build_here: "partners get a machine-commerce spine with explicit review and promotion posture instead of opaque integration trust",
66
+ first_partner_type: "adapter_author",
67
+ first_success: "a partner can copy the minimal starter, validate it locally, review the submission bundle, and inspect the next promotion action without private coordination"
68
+ }
69
+ };
70
+ }
71
+
72
+ function summarizeAdapterPartnerPack() {
73
+ const pack = buildAdapterPartnerPack();
74
+ return {
75
+ ok: true,
76
+ product: pack.product,
77
+ category: pack.category,
78
+ audience_count: pack.positioning.intended_for.length,
79
+ value_count: pack.partner_value.length,
80
+ first_command_count: pack.start_path.first_commands.length,
81
+ maturity_step_count: pack.trust_path.maturity_path.length,
82
+ first_partner_type: pack.adoption_message.first_partner_type
83
+ };
84
+ }
85
+
86
+ module.exports = {
87
+ buildAdapterPartnerPack,
88
+ summarizeAdapterPartnerPack
89
+ };
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ const packageJson = require("../package.json");
4
+
5
+ function buildAdapterPromotionPack() {
6
+ return {
7
+ ok: true,
8
+ product: packageJson.name,
9
+ category: "machine-commerce-adapter-promotion-pack",
10
+ positioning: {
11
+ line: "promotion-first adapter maturity for third-party integrations that need explicit review, certification, and default-selection trust",
12
+ intended_for: [
13
+ "adapter_authors",
14
+ "review_operators",
15
+ "integration_owners",
16
+ "ecosystem_partners"
17
+ ]
18
+ },
19
+ maturity_path: [
20
+ "starter_example",
21
+ "staging_registered",
22
+ "review_ready",
23
+ "default_eligible",
24
+ "production_default_ready"
25
+ ],
26
+ first_docs: [
27
+ "ADAPTER_PROMOTION_START_HERE.md",
28
+ "ADAPTER_START_HERE.md",
29
+ "adapters/ONBOARDING_POSTURE.md",
30
+ "adapters/THIRD_PARTY_SUBMISSION_PROCESS.md"
31
+ ],
32
+ first_commands: [
33
+ "node scripts/registry_cli.js review-bundle --file adapters/examples/minimal-third-party-execution.submission-bundle.json",
34
+ "node scripts/registry_cli.js promotion-readiness --integration partner.execution.minimal_echo",
35
+ "node scripts/registry_cli.js promotion-workflow --integration partner.execution.minimal_echo",
36
+ "node scripts/registry_cli.js promotion-action-set --integration partner.execution.minimal_echo",
37
+ "node scripts/registry_cli.js promotion-action-preview --integration partner.execution.minimal_echo --action complete_certification"
38
+ ],
39
+ canonical_examples: {
40
+ starter_bundle: "adapters/examples/minimal-third-party-execution.submission-bundle.json",
41
+ staged_protocol_bundle: "adapters/examples/example-third-party-registration.submission-bundle.json",
42
+ staged_identity_bundle: "adapters/examples/example-third-party-identity-registration.submission-bundle.json",
43
+ staged_settlement_bundle: "adapters/examples/example-third-party-settlement-registration.submission-bundle.json",
44
+ staged_integration_id: "partner.protocol.acme_mcp",
45
+ starter_integration_id: "partner.execution.minimal_echo"
46
+ },
47
+ public_surfaces: {
48
+ promotion_readiness_list: "/v1/integrations/promotion-readiness",
49
+ promotion_workflow_list: "/v1/integrations/promotion-workflow",
50
+ promotion_action_list: "/v1/integrations/promotion-actions",
51
+ promotion_readiness_detail: "/v1/integrations/:integration_id/promotion-readiness",
52
+ promotion_workflow_detail: "/v1/integrations/:integration_id/promotion-workflow",
53
+ promotion_action_detail: "/v1/integrations/:integration_id/promotion-actions",
54
+ promotion_action_preview: "/v1/integrations/promotion-actions/preview"
55
+ },
56
+ review_questions: [
57
+ "is the integration review-ready?",
58
+ "what blockers still prevent default eligibility?",
59
+ "what certification gaps remain?",
60
+ "what promotion action is valid now?"
61
+ ],
62
+ why_it_matters: [
63
+ "third-party integrations can advance through explicit review states instead of private judgment",
64
+ "default selection stays gated behind visible posture and certification data",
65
+ "review operators and adapter authors can inspect the same promotion model",
66
+ "adapter flexibility stays compatible with trust and production-default discipline"
67
+ ]
68
+ };
69
+ }
70
+
71
+ function summarizeAdapterPromotionPack() {
72
+ const pack = buildAdapterPromotionPack();
73
+ return {
74
+ ok: true,
75
+ product: pack.product,
76
+ category: pack.category,
77
+ audience_count: pack.positioning.intended_for.length,
78
+ maturity_step_count: pack.maturity_path.length,
79
+ first_command_count: pack.first_commands.length,
80
+ review_question_count: pack.review_questions.length,
81
+ first_doc: pack.first_docs[0],
82
+ starter_integration_id: pack.canonical_examples.starter_integration_id
83
+ };
84
+ }
85
+
86
+ module.exports = {
87
+ buildAdapterPromotionPack,
88
+ summarizeAdapterPromotionPack
89
+ };
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ const packageJson = require("../package.json");
4
+
5
+ function buildAnnouncementPack() {
6
+ return {
7
+ ok: true,
8
+ product: packageJson.name,
9
+ category: "machine-commerce-announcement-pack",
10
+ public_quickstart: {
11
+ install: "npm install xytara",
12
+ first_cli: "xytara-run --url https://xytara.onrender.com --account acct_demo --command \"cli-run\" --task trust.verify --body-json '{\"subject_id\":\"subject-1\"}' --wallet-id merchant_wallet_main --wallet-secret YOUR_LOCAL_SIGNED_SECRET --txid YOUR_BSV_TXID",
13
+ first_release_view: "xytara-release --center --summary",
14
+ first_http: "/v1/release-center/summary"
15
+ },
16
+ release_candidate: {
17
+ checks: [
18
+ "install the package on a clean machine",
19
+ "run xytara-release --center --summary",
20
+ "run npm run verify:all",
21
+ "verify /v1/release-center/summary on the deployed service",
22
+ "verify /v1/outreach-proof/summary on the deployed service"
23
+ ]
24
+ },
25
+ publish_day: {
26
+ sequence: [
27
+ "publish the npm package",
28
+ "redeploy the service and docs surfaces",
29
+ "verify release-center, launch-narrative, and outreach-proof summaries live",
30
+ "run the first public proof path",
31
+ "share the announcement artifact with the target ecosystem audience"
32
+ ]
33
+ },
34
+ public_message: {
35
+ headline: "governed machine commerce with direct paid execution, reusable credits, and proof-aware followthrough",
36
+ who_should_try_first: [
37
+ "agent builders",
38
+ "tool and marketplace authors",
39
+ "repeat-use runtime operators"
40
+ ]
41
+ }
42
+ };
43
+ }
44
+
45
+ function summarizeAnnouncementPack() {
46
+ const pack = buildAnnouncementPack();
47
+ return {
48
+ ok: true,
49
+ product: pack.product,
50
+ category: pack.category,
51
+ rc_check_count: pack.release_candidate.checks.length,
52
+ publish_step_count: pack.publish_day.sequence.length,
53
+ first_cli: pack.public_quickstart.first_cli,
54
+ audience_count: pack.public_message.who_should_try_first.length
55
+ };
56
+ }
57
+
58
+ module.exports = {
59
+ buildAnnouncementPack,
60
+ summarizeAnnouncementPack
61
+ };
@@ -222,6 +222,9 @@ function createCommandArtifacts(payload, quote, options) {
222
222
  network: bsvHints ? bsvHints.network : null,
223
223
  hints: bsvHints,
224
224
  txid: bsvPaymentReference && bsvPaymentReference.txid ? bsvPaymentReference.txid : null,
225
+ raw_tx: bsvPaymentReference && (bsvPaymentReference.raw_tx || bsvPaymentReference.rawTx)
226
+ ? (bsvPaymentReference.raw_tx || bsvPaymentReference.rawTx)
227
+ : null,
225
228
  status: deferredCompletion ? "pending_completion" : "recorded",
226
229
  recorded_at_iso: deferredCompletion ? null : completedAt.toISOString()
227
230
  };
@@ -638,6 +638,13 @@ function buildEconomicConsequenceHandoffBundle(state, body) {
638
638
  };
639
639
  }
640
640
  const meterProfileRef = normalizeString(payload.meter_profile_ref, `meter-profile.${usageMeter.pricing_band || "utility"}.v1`);
641
+ const paymentRef = normalizeString(payload.payment_ref, null);
642
+ const settlementRef = normalizeString(payload.settlement_ref, null);
643
+ const settlementTxid = normalizeString(payload.settlement_txid, null);
644
+ const settlementStatus = normalizeString(payload.settlement_status, null);
645
+ const settlementFinalityStatus = normalizeString(payload.settlement_finality_status, null);
646
+ const treasuryReceiptRef = normalizeString(payload.treasury_receipt_ref, null);
647
+ const proofRef = normalizeString(payload.proof_ref, null);
641
648
  const handoffBundle = {
642
649
  contract_version: "naxytra-economic-consequence-handoff-v1",
643
650
  source_system: "xytara",
@@ -647,6 +654,13 @@ function buildEconomicConsequenceHandoffBundle(state, body) {
647
654
  credit_spend_ref: creditSpend.credit_spend_id,
648
655
  usage_meter: usageMeter,
649
656
  credit_spend: creditSpend,
657
+ payment_ref: paymentRef,
658
+ settlement_ref: settlementRef,
659
+ settlement_txid: settlementTxid,
660
+ settlement_status: settlementStatus,
661
+ settlement_finality_status: settlementFinalityStatus,
662
+ treasury_receipt_ref: treasuryReceiptRef,
663
+ proof_ref: proofRef,
650
664
  handoff_surfaces: {
651
665
  proof_bridge_surface: "/v1/proof-center/bridge/economic-handoff",
652
666
  proof_conformance_surface: "/v1/proof-center/bridge/economic-conformance-pack"
@@ -13690,12 +13690,18 @@ function buildReconciliationReport(state, filters, listRecords) {
13690
13690
  };
13691
13691
  }
13692
13692
 
13693
- function buildOperatorExportPack(state, filters, listRecords) {
13693
+ function buildOperatorExportPack(state, filters, listRecords, options = {}) {
13694
13694
  const report = buildReconciliationReport(state, filters, listRecords);
13695
13695
  const accountId = report.summary && report.summary.account_id ? report.summary.account_id : null;
13696
13696
  const transactions = Array.from(state.transactions.values()).map((item) => item.transaction);
13697
13697
  const receipts = Array.from(state.receipts.values()).map((item) => item.receipt);
13698
13698
  const paymentLedger = Array.isArray(state.paymentLedger) ? state.paymentLedger.slice(0, 20) : [];
13699
+ const runtimeDurability = options.runtime_durability && typeof options.runtime_durability === "object"
13700
+ ? options.runtime_durability
13701
+ : null;
13702
+ const nativeSettlementReadiness = options.native_settlement_readiness && typeof options.native_settlement_readiness === "object"
13703
+ ? options.native_settlement_readiness
13704
+ : null;
13699
13705
  return {
13700
13706
  ok: true,
13701
13707
  export_version: "commerce-operator-export-pack-v1",
@@ -13729,6 +13735,25 @@ function buildOperatorExportPack(state, filters, listRecords) {
13729
13735
  metering_summary_ref: report.summary && report.summary.linked_surfaces ? report.summary.linked_surfaces.metering_summary : null,
13730
13736
  usage_meters_ref: report.summary && report.summary.linked_surfaces ? report.summary.linked_surfaces.usage_meters : null
13731
13737
  },
13738
+ runtime_center: {
13739
+ snapshot_enabled: runtimeDurability ? runtimeDurability.enabled === true : false,
13740
+ snapshot_exists: runtimeDurability ? runtimeDurability.snapshot_exists === true : false,
13741
+ snapshot_updated_at_iso: runtimeDurability ? runtimeDurability.snapshot_updated_at_iso || null : null,
13742
+ last_persisted_at_iso: runtimeDurability ? runtimeDurability.last_persisted_at_iso || null : null,
13743
+ last_flush_succeeded: runtimeDurability ? runtimeDurability.last_flush_succeeded === true : false,
13744
+ recovery_posture: runtimeDurability ? runtimeDurability.recovery_posture || null : null,
13745
+ blockers: runtimeDurability ? runtimeDurability.blockers || [] : [],
13746
+ inspect_ref: runtimeDurability ? runtimeDurability.inspect_ref || "/v1/runtime/durability" : "/v1/runtime/durability"
13747
+ },
13748
+ native_settlement_center: {
13749
+ ready: nativeSettlementReadiness ? nativeSettlementReadiness.ready === true : false,
13750
+ runtime_mode: nativeSettlementReadiness ? nativeSettlementReadiness.runtime_mode || null : null,
13751
+ receiving_identity_kind: nativeSettlementReadiness ? nativeSettlementReadiness.receiving_identity_kind || null : null,
13752
+ verification_mode: nativeSettlementReadiness ? nativeSettlementReadiness.payment_verification_mode || null : null,
13753
+ blockers: nativeSettlementReadiness ? nativeSettlementReadiness.blockers || [] : [],
13754
+ next_manual_inputs: nativeSettlementReadiness ? nativeSettlementReadiness.next_manual_inputs || [] : [],
13755
+ readiness_ref: nativeSettlementReadiness ? nativeSettlementReadiness.readiness_ref || "/v1/settlement/bsv-teranode/readiness" : "/v1/settlement/bsv-teranode/readiness"
13756
+ },
13732
13757
  coordination_center: {
13733
13758
  zone_count: report.coordination ? report.coordination.zone_count : 0,
13734
13759
  handoff_count: report.coordination ? report.coordination.handoff_count : 0,
@@ -132,6 +132,8 @@ function buildOperatorShellSummary(input) {
132
132
  const coordinationAdminView = body.coordination_admin_view || {};
133
133
  const hostedCheckoutOperatorSummary = body.hosted_checkout_operator_summary || {};
134
134
  const entitlementReplenishmentSummary = body.entitlement_replenishment_summary || {};
135
+ const runtimeDurability = body.runtime_durability || {};
136
+ const nativeSettlementReadiness = body.native_settlement_readiness || {};
135
137
 
136
138
  return {
137
139
  ok: true,
@@ -150,6 +152,8 @@ function buildOperatorShellSummary(input) {
150
152
  coordination_admin_view: "/v1/coordination-center/admin-view",
151
153
  hosted_checkout_purchase_intents: `/v1/checkout/purchase-intents?account_id=${encodeURIComponent(accountId)}`,
152
154
  hosted_checkout_runtime_bridge_dispatches: `/v1/runtime-bridge/dispatches?account_id=${encodeURIComponent(accountId)}`,
155
+ runtime_durability: "/v1/runtime/durability",
156
+ native_settlement_readiness: "/v1/settlement/bsv-teranode/readiness",
153
157
  proof_governance_dashboard: "/v1/proof-center/governance/dashboard",
154
158
  proof_bridge_admin_pack: "/v1/proof-center/bridge/admin-pack"
155
159
  },
@@ -166,7 +170,17 @@ function buildOperatorShellSummary(input) {
166
170
  hosted_checkout_execution_dispatched_count: Number(hostedCheckoutOperatorSummary.execution_dispatched_count || 0)
167
171
  ,
168
172
  low_balance_entitlement_count: Number(entitlementReplenishmentSummary.low_balance_count || 0),
169
- depleted_entitlement_count: Number(entitlementReplenishmentSummary.depleted_count || 0)
173
+ depleted_entitlement_count: Number(entitlementReplenishmentSummary.depleted_count || 0),
174
+ runtime_snapshot_enabled: runtimeDurability.enabled === true,
175
+ runtime_snapshot_exists: runtimeDurability.snapshot_exists === true,
176
+ runtime_recovery_posture: runtimeDurability.recovery_posture || null,
177
+ native_settlement_runtime_mode: runtimeDurability.enabled === true || nativeSettlementReadiness.runtime_mode
178
+ ? nativeSettlementReadiness.runtime_mode || null
179
+ : null,
180
+ native_settlement_ready: nativeSettlementReadiness.ready === true,
181
+ native_settlement_blocker_count: Array.isArray(nativeSettlementReadiness.blockers)
182
+ ? nativeSettlementReadiness.blockers.length
183
+ : 0
170
184
  },
171
185
  linked_refs: {
172
186
  operations_dashboard_ref: buildShellRef("operator-shell.operations-dashboard", {
@@ -182,7 +196,9 @@ function buildOperatorShellSummary(input) {
182
196
  ,
183
197
  entitlement_replenishment_summary_ref: entitlementReplenishmentSummary.entitlement_count != null
184
198
  ? `/v1/economics/accounts/${encodeURIComponent(accountId)}/entitlements/replenishment-summary`
185
- : null
199
+ : null,
200
+ runtime_durability_ref: runtimeDurability.inspect_ref || "/v1/runtime/durability",
201
+ native_settlement_readiness_ref: nativeSettlementReadiness.readiness_ref || "/v1/settlement/bsv-teranode/readiness"
186
202
  }
187
203
  };
188
204
  }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ const packageJson = require("../package.json");
4
+
5
+ function buildEcosystemEntryPack() {
6
+ return {
7
+ ok: true,
8
+ product: packageJson.name,
9
+ category: "machine-commerce-ecosystem-entry",
10
+ audiences: [
11
+ {
12
+ audience_ref: "agent_builder",
13
+ why_now: "needs a first paid machine capability path with governed execution and proof-aware followthrough",
14
+ first_path_ref: "scenario.direct_pay.trust_verify",
15
+ first_http_entrypoint: "/v1/release-pack/scenarios/summary",
16
+ first_cli_entrypoint: "xytara-run --url https://xytara.onrender.com --account acct_demo --command \"cli-run\" --task trust.verify --body-json '{\"subject_id\":\"subject-1\"}' --wallet-id merchant_wallet_main --wallet-secret YOUR_LOCAL_SIGNED_SECRET --txid YOUR_BSV_TXID"
17
+ },
18
+ {
19
+ audience_ref: "marketplace_or_tool_author",
20
+ why_now: "needs a neutral default path for quoting, payment admission, execution, and operator inspection",
21
+ first_path_ref: "scenario.direct_pay.trust_verify",
22
+ first_http_entrypoint: "/v1/release-pack/launch/summary",
23
+ first_cli_entrypoint: "xytara-release --launch --summary"
24
+ },
25
+ {
26
+ audience_ref: "repeat_usage_operator",
27
+ why_now: "needs reusable account balance posture without redesigning the public execution surface",
28
+ first_path_ref: "scenario.credits_first.repeat_run",
29
+ first_http_entrypoint: "/v1/economics/accounts/:account_id/credit-balance",
30
+ first_cli_entrypoint: "xytara-release --scenarios --summary"
31
+ },
32
+ {
33
+ audience_ref: "proof_aware_runtime_team",
34
+ why_now: "needs a runtime result that can continue directly into proof review instead of ending as logs",
35
+ first_path_ref: "scenario.runtime_to_proof.followthrough",
36
+ first_http_entrypoint: "/v1/transaction-center/result-packages",
37
+ first_cli_entrypoint: "xytara-release --center --summary"
38
+ }
39
+ ],
40
+ public_lead_sequence: [
41
+ "identify the audience and first success path",
42
+ "show the one-line cli or one-http-entrypoint path",
43
+ "show the matching comparison and adoption summary",
44
+ "show the release center when credibility and breadth need one compact artifact"
45
+ ]
46
+ };
47
+ }
48
+
49
+ function summarizeEcosystemEntryPack() {
50
+ const pack = buildEcosystemEntryPack();
51
+ return {
52
+ ok: true,
53
+ product: pack.product,
54
+ category: pack.category,
55
+ audience_count: pack.audiences.length,
56
+ first_audience: pack.audiences[0] ? pack.audiences[0].audience_ref : null,
57
+ lead_step_count: pack.public_lead_sequence.length
58
+ };
59
+ }
60
+
61
+ module.exports = {
62
+ buildEcosystemEntryPack,
63
+ summarizeEcosystemEntryPack
64
+ };