xytara 2.1.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 (159) hide show
  1. package/.env.example +5 -1
  2. package/ADAPTER_START_HERE.md +56 -0
  3. package/CARRIED_HANDOFF_DEMO.md +60 -0
  4. package/EXAMPLE_PATHS.md +53 -0
  5. package/OPERATIONS_RUNBOOK.md +65 -0
  6. package/OPERATOR_START_HERE.md +63 -0
  7. package/PARTNER_READY_PATH.md +71 -0
  8. package/PROGRAM_COMPLETE_RELEASE.md +63 -0
  9. package/PROGRAM_STATUS.md +57 -0
  10. package/PUBLIC_DEMO_SCRIPT.md +78 -0
  11. package/PUBLISH_PLAN.md +7 -5
  12. package/README.md +66 -0
  13. package/RELEASE_CHECKLIST.md +8 -2
  14. package/RELEASE_NOTES.md +12 -3
  15. package/START_HERE.md +32 -0
  16. package/SUPABASE_RUNTIME_STATE_SETUP.md +61 -0
  17. package/WHY_XYTARA_XOONYA.md +63 -0
  18. package/adapters/examples/minimal-third-party-execution-adapter.js +61 -0
  19. package/adapters/examples/minimal-third-party-execution-adapter.manifest.json +79 -0
  20. package/adapters/examples/minimal-third-party-execution-registration.record.json +26 -0
  21. package/adapters/examples/minimal-third-party-execution.certification-pack.json +22 -0
  22. package/adapters/examples/minimal-third-party-execution.submission-bundle.json +126 -0
  23. package/bin/xytara-release.js +1251 -1
  24. package/examples/adapter_review_walkthrough.js +53 -0
  25. package/examples/export_carried_handoff.js +80 -0
  26. package/examples/funded_runtime_walkthrough.js +70 -0
  27. package/examples/partner_launch_walkthrough.js +43 -0
  28. package/examples/quickstart.js +3255 -0
  29. package/index.js +7 -1
  30. package/lib/adapter_pack.js +118 -0
  31. package/lib/adapter_partner_pack.js +89 -0
  32. package/lib/adapter_promotion_pack.js +89 -0
  33. package/lib/outreach_copy_pack.js +51 -0
  34. package/lib/outreach_message_pack.js +71 -0
  35. package/lib/outreach_target_pack.js +60 -0
  36. package/lib/phase_10_closeout_pack.js +45 -0
  37. package/lib/phase_10_completion_pack.js +76 -0
  38. package/lib/phase_10_decision_record_pack.js +54 -0
  39. package/lib/phase_10_decision_resolution_pack.js +53 -0
  40. package/lib/phase_10_demand_signal_adapters_runtime_pack.js +74 -0
  41. package/lib/phase_10_ecosystem_backlog_triage_runtime_pack.js +74 -0
  42. package/lib/phase_10_freeze_baseline_pack.js +67 -0
  43. package/lib/phase_10_freeze_review_pack.js +64 -0
  44. package/lib/phase_10_gate_pack.js +57 -0
  45. package/lib/phase_10_long_tail_continuity_pack.js +80 -0
  46. package/lib/phase_10_long_tail_ecosystem_pack.js +66 -0
  47. package/lib/phase_10_niche_extension_registry_runtime_pack.js +74 -0
  48. package/lib/phase_1_claude_mcp_pack.js +60 -0
  49. package/lib/phase_1_claude_mcp_runtime_pack.js +52 -0
  50. package/lib/phase_1_ecosystem_pack.js +67 -0
  51. package/lib/phase_1_openai_codex_pack.js +60 -0
  52. package/lib/phase_1_openai_codex_runtime_pack.js +52 -0
  53. package/lib/phase_2_base_runtime_pack.js +71 -0
  54. package/lib/phase_2_base_usdc_runtime_pack.js +72 -0
  55. package/lib/phase_2_closeout_pack.js +65 -0
  56. package/lib/phase_2_completion_pack.js +113 -0
  57. package/lib/phase_2_decision_record_pack.js +66 -0
  58. package/lib/phase_2_decision_resolution_pack.js +69 -0
  59. package/lib/phase_2_eth_runtime_pack.js +70 -0
  60. package/lib/phase_2_evm_base_runtime_pack.js +73 -0
  61. package/lib/phase_2_evm_runtime_pack.js +71 -0
  62. package/lib/phase_2_flip_preview_pack.js +60 -0
  63. package/lib/phase_2_freeze_review_pack.js +99 -0
  64. package/lib/phase_2_gate_pack.js +77 -0
  65. package/lib/phase_2_payment_rails_pack.js +71 -0
  66. package/lib/phase_2_usdc_runtime_pack.js +71 -0
  67. package/lib/phase_3_brc_runtime_pack.js +81 -0
  68. package/lib/phase_3_bsv_teranode_runtime_pack.js +83 -0
  69. package/lib/phase_3_closeout_pack.js +62 -0
  70. package/lib/phase_3_completion_pack.js +94 -0
  71. package/lib/phase_3_decision_record_pack.js +64 -0
  72. package/lib/phase_3_decision_resolution_pack.js +69 -0
  73. package/lib/phase_3_freeze_baseline_pack.js +67 -0
  74. package/lib/phase_3_freeze_review_pack.js +80 -0
  75. package/lib/phase_3_gate_pack.js +76 -0
  76. package/lib/phase_3_metanet_runtime_pack.js +81 -0
  77. package/lib/phase_3_native_bsv_pack.js +91 -0
  78. package/lib/phase_3_native_continuity_pack.js +82 -0
  79. package/lib/phase_4_attestation_runtime_pack.js +75 -0
  80. package/lib/phase_4_closeout_pack.js +45 -0
  81. package/lib/phase_4_completion_pack.js +94 -0
  82. package/lib/phase_4_decision_record_pack.js +54 -0
  83. package/lib/phase_4_decision_resolution_pack.js +45 -0
  84. package/lib/phase_4_erc8004_runtime_pack.js +76 -0
  85. package/lib/phase_4_freeze_baseline_pack.js +67 -0
  86. package/lib/phase_4_freeze_review_pack.js +68 -0
  87. package/lib/phase_4_gate_pack.js +58 -0
  88. package/lib/phase_4_identity_registry_runtime_pack.js +75 -0
  89. package/lib/phase_4_identity_trust_pack.js +73 -0
  90. package/lib/phase_4_trust_continuity_pack.js +86 -0
  91. package/lib/phase_5_antelope_runtime_pack.js +76 -0
  92. package/lib/phase_5_closeout_pack.js +44 -0
  93. package/lib/phase_5_completion_pack.js +82 -0
  94. package/lib/phase_5_decision_record_pack.js +54 -0
  95. package/lib/phase_5_decision_resolution_pack.js +45 -0
  96. package/lib/phase_5_freeze_baseline_pack.js +67 -0
  97. package/lib/phase_5_freeze_review_pack.js +68 -0
  98. package/lib/phase_5_gate_pack.js +58 -0
  99. package/lib/phase_5_major_rails_continuity_pack.js +86 -0
  100. package/lib/phase_5_major_rails_pack.js +74 -0
  101. package/lib/phase_5_proton_xpr_runtime_pack.js +76 -0
  102. package/lib/phase_5_solana_runtime_pack.js +76 -0
  103. package/lib/phase_6_autogen_runtime_pack.js +72 -0
  104. package/lib/phase_6_closeout_pack.js +46 -0
  105. package/lib/phase_6_completion_pack.js +77 -0
  106. package/lib/phase_6_decision_record_pack.js +54 -0
  107. package/lib/phase_6_decision_resolution_pack.js +53 -0
  108. package/lib/phase_6_framework_continuity_pack.js +81 -0
  109. package/lib/phase_6_framework_runtime_pack.js +68 -0
  110. package/lib/phase_6_freeze_baseline_pack.js +68 -0
  111. package/lib/phase_6_freeze_review_pack.js +65 -0
  112. package/lib/phase_6_gate_pack.js +59 -0
  113. package/lib/phase_6_langchain_runtime_pack.js +72 -0
  114. package/lib/phase_6_langgraph_runtime_pack.js +72 -0
  115. package/lib/phase_6_semantic_kernel_runtime_pack.js +72 -0
  116. package/lib/phase_7_closeout_pack.js +45 -0
  117. package/lib/phase_7_completion_pack.js +85 -0
  118. package/lib/phase_7_decision_record_pack.js +53 -0
  119. package/lib/phase_7_decision_resolution_pack.js +53 -0
  120. package/lib/phase_7_event_system_continuity_pack.js +89 -0
  121. package/lib/phase_7_event_system_pack.js +76 -0
  122. package/lib/phase_7_freeze_baseline_pack.js +74 -0
  123. package/lib/phase_7_freeze_review_pack.js +65 -0
  124. package/lib/phase_7_gate_pack.js +58 -0
  125. package/lib/phase_7_kafka_runtime_pack.js +74 -0
  126. package/lib/phase_7_mqtt_runtime_pack.js +74 -0
  127. package/lib/phase_7_nats_runtime_pack.js +74 -0
  128. package/lib/phase_7_webhook_event_bus_runtime_pack.js +74 -0
  129. package/lib/phase_8_closeout_pack.js +46 -0
  130. package/lib/phase_8_completion_pack.js +82 -0
  131. package/lib/phase_8_decision_record_pack.js +54 -0
  132. package/lib/phase_8_decision_resolution_pack.js +53 -0
  133. package/lib/phase_8_external_receipt_import_runtime_pack.js +74 -0
  134. package/lib/phase_8_external_result_import_runtime_pack.js +74 -0
  135. package/lib/phase_8_freeze_baseline_pack.js +71 -0
  136. package/lib/phase_8_freeze_review_pack.js +64 -0
  137. package/lib/phase_8_gate_pack.js +58 -0
  138. package/lib/phase_8_proof_bridge_continuity_pack.js +86 -0
  139. package/lib/phase_8_proof_bridges_pack.js +72 -0
  140. package/lib/phase_8_proof_bundle_normalization_runtime_pack.js +74 -0
  141. package/lib/phase_9_closeout_pack.js +46 -0
  142. package/lib/phase_9_completion_pack.js +82 -0
  143. package/lib/phase_9_custody_refs_runtime_pack.js +74 -0
  144. package/lib/phase_9_decision_record_pack.js +54 -0
  145. package/lib/phase_9_decision_resolution_pack.js +53 -0
  146. package/lib/phase_9_freeze_baseline_pack.js +71 -0
  147. package/lib/phase_9_freeze_review_pack.js +64 -0
  148. package/lib/phase_9_gate_pack.js +58 -0
  149. package/lib/phase_9_operator_accounting_bridges_runtime_pack.js +74 -0
  150. package/lib/phase_9_treasury_connectivity_pack.js +72 -0
  151. package/lib/phase_9_treasury_continuity_pack.js +86 -0
  152. package/lib/phase_9_treasury_destinations_runtime_pack.js +74 -0
  153. package/lib/phase_program_pack.js +120 -0
  154. package/lib/release_center.js +970 -0
  155. package/lib/release_history.js +1 -1
  156. package/lib/runtime_state_store.js +212 -27
  157. package/lib/soft_launch_pack.js +78 -0
  158. package/package.json +13 -1
  159. package/server.js +2055 -252
package/README.md CHANGED
@@ -16,6 +16,8 @@ It exists to let agents, developers, and systems:
16
16
 
17
17
  This repo is the hot-state commerce layer. It does not define base proof semantics. It references and emits proof-compatible facts, while `xoonya` owns canonical proof.
18
18
 
19
+ The 10-phase public program is now complete. `xytara` is in terminal closeout posture rather than active milestone build posture.
20
+
19
21
  ## Start Here
20
22
 
21
23
  If you are new to the public stack, use this order:
@@ -25,12 +27,45 @@ If you are new to the public stack, use this order:
25
27
  3. run `npm run verify:all`
26
28
  4. use [FINAL_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/FINAL_CONTRACT.md) and [SERVICE_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/SERVICE_CONTRACT.md) as the durable public contract
27
29
 
30
+ If you are evaluating the post-program operating posture, read:
31
+
32
+ - [PROGRAM_STATUS.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/PROGRAM_STATUS.md)
33
+ - [OPERATOR_START_HERE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/OPERATOR_START_HERE.md)
34
+ - [OPERATIONS_RUNBOOK.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/OPERATIONS_RUNBOOK.md)
35
+ - [PROGRAM_COMPLETE_RELEASE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/PROGRAM_COMPLETE_RELEASE.md)
36
+ - [WHY_XYTARA_XOONYA.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/WHY_XYTARA_XOONYA.md)
37
+
38
+ If you want one concrete cross-repo adoption story, start with:
39
+
40
+ - [CARRIED_HANDOFF_DEMO.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/CARRIED_HANDOFF_DEMO.md)
41
+
42
+ If you want the shortest neutral external-adoption bundle, continue with:
43
+
44
+ - [PARTNER_READY_PATH.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/PARTNER_READY_PATH.md)
45
+ - [PUBLIC_DEMO_SCRIPT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/PUBLIC_DEMO_SCRIPT.md)
46
+ - [EXAMPLE_PATHS.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/EXAMPLE_PATHS.md)
47
+ - `node examples/partner_launch_walkthrough.js`
48
+
28
49
  If you are building adapters, continue with:
29
50
 
51
+ - [ADAPTER_START_HERE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/ADAPTER_START_HERE.md)
52
+ - [ADAPTER_PROMOTION_START_HERE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/ADAPTER_PROMOTION_START_HERE.md)
53
+ - [ADAPTER_PARTNER_PATH.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/ADAPTER_PARTNER_PATH.md)
54
+ - [SOFT_LAUNCH_KIT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/SOFT_LAUNCH_KIT.md)
55
+ - [OUTREACH_START_HERE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/OUTREACH_START_HERE.md)
56
+ - [OUTREACH_MESSAGES.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/OUTREACH_MESSAGES.md)
30
57
  - [adapters/AUTHORING_GUIDE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/adapters/AUTHORING_GUIDE.md)
31
58
  - [adapters/ONBOARDING_POSTURE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/adapters/ONBOARDING_POSTURE.md)
32
59
  - [adapters/THIRD_PARTY_SUBMISSION_PROCESS.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/adapters/THIRD_PARTY_SUBMISSION_PROCESS.md)
33
60
 
61
+ The fastest copy-and-adapt third-party starter now lives under:
62
+
63
+ - `adapters/examples/minimal-third-party-execution-adapter.manifest.json`
64
+ - `adapters/examples/minimal-third-party-execution-adapter.js`
65
+ - `adapters/examples/minimal-third-party-execution-registration.record.json`
66
+ - `adapters/examples/minimal-third-party-execution.certification-pack.json`
67
+ - `adapters/examples/minimal-third-party-execution.submission-bundle.json`
68
+
34
69
  If you are wiring the native BSV settlement base, continue with:
35
70
 
36
71
  - [BSV_TERANODE_SETUP.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/BSV_TERANODE_SETUP.md)
@@ -173,6 +208,24 @@ For release-grade adoption posture, inspect:
173
208
  - `GET /v1/release-center/summary`
174
209
  - `GET /v1/release-history`
175
210
  - `GET /v1/release-history/summary`
211
+ - `GET /v1/adapter-pack`
212
+ - `GET /v1/adapter-pack/summary`
213
+ - `GET /v1/adapter-promotion`
214
+ - `GET /v1/adapter-promotion/summary`
215
+ - `GET /v1/adapter-partners`
216
+ - `GET /v1/adapter-partners/summary`
217
+ - `GET /v1/soft-launch`
218
+ - `GET /v1/soft-launch/summary`
219
+ - `GET /v1/outreach-copy`
220
+ - `GET /v1/outreach-copy/summary`
221
+ - `GET /v1/outreach-targets`
222
+ - `GET /v1/outreach-targets/summary`
223
+ - `GET /v1/outreach-messages`
224
+ - `GET /v1/outreach-messages/summary`
225
+ - `GET /v1/phases`
226
+ - `GET /v1/phases/summary`
227
+ - `GET /v1/phases/phase-1`
228
+ - `GET /v1/phases/phase-1/summary`
176
229
  - `GET /v1/publish-plan`
177
230
  - `GET /v1/publish-plan/summary`
178
231
  - `GET /v1/ecosystem-entry`
@@ -194,6 +247,15 @@ For release-grade adoption posture, inspect:
194
247
  - `xytara-release --notes --summary`
195
248
  - `xytara-release --center --summary`
196
249
  - `xytara-release --history --summary`
250
+ - `xytara-release --adapters --summary`
251
+ - `xytara-release --adapter-promotion --summary`
252
+ - `xytara-release --adapter-partners --summary`
253
+ - `xytara-release --soft-launch --summary`
254
+ - `xytara-release --outreach-copy --summary`
255
+ - `xytara-release --outreach-targets --summary`
256
+ - `xytara-release --outreach-messages --summary`
257
+ - `xytara-release --phases --summary`
258
+ - `xytara-release --phase-1 --summary`
197
259
  - `xytara-release --ecosystem --summary`
198
260
  - `xytara-release --narrative --summary`
199
261
  - `xytara-release --outreach-proof --summary`
@@ -908,6 +970,10 @@ The durability and native-settlement readiness surfaces are also intended to mak
908
970
  - `/v1/settlement/bsv-teranode/readiness` exposes whether merchant identity, transport, verification mode, and runtime mode are production-ready, plus the next manual inputs still required
909
971
  - `/v1/payment-ledger/:payment_id/operator-pack` and `/v1/settlement/bsv-teranode/:settlement_id/operator-pack` collapse payment, settlement, treasury, proof, and economic-consequence carry into one operator-facing pack so direct-pay and funded-runtime paths are easier to inspect without stitching raw records together
910
972
 
973
+ If you use grants, entitlements, or usage metering in deployed `xytara`, `XYTARA_STATE_FILE` should point at persistent disk rather than ephemeral container storage. Otherwise those economics records will reset across restart.
974
+
975
+ If your host does not provide persistent disk, use the Supabase-backed runtime state path documented in [SUPABASE_RUNTIME_STATE_SETUP.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/SUPABASE_RUNTIME_STATE_SETUP.md).
976
+
911
977
  ## Verification
912
978
 
913
979
  Local verification commands:
@@ -2,9 +2,15 @@
2
2
 
3
3
  1. Run `npm run verify:release-candidate`.
4
4
  2. Confirm `npm pack --dry-run --json` includes the public docs and both CLI entrypoints.
5
+ 3. Run `node examples/partner_launch_walkthrough.js`.
5
6
  3. Redeploy the service and verify:
6
7
  - `/v1/release-center/summary`
7
8
  - `/v1/announcement-pack/summary`
8
9
  - `/v1/outreach-proof/summary`
9
- 4. Run the first public proof path.
10
- 5. Only then publish the npm package.
10
+ - `/v1/runtime/durability`
11
+ 4. Confirm the program-complete docs are packaged:
12
+ - `PROGRAM_COMPLETE_RELEASE.md`
13
+ - `WHY_XYTARA_XOONYA.md`
14
+ - `PARTNER_READY_PATH.md`
15
+ 5. Run the first public proof path.
16
+ 6. Only then publish the npm package.
package/RELEASE_NOTES.md CHANGED
@@ -1,6 +1,6 @@
1
- # xytara 2.1.0 Release Notes
1
+ # xytara 2.2.0 Release Notes
2
2
 
3
- `xytara` 2.1.0 is the public machine-commerce release-candidate line.
3
+ `xytara` 2.2.0 is the public machine-commerce program-complete line.
4
4
 
5
5
  Highlights:
6
6
 
@@ -10,10 +10,19 @@ Highlights:
10
10
  - credits-first reusable spend posture
11
11
  - native settlement-aware runtime inspection
12
12
  - proof-compatible handoff into `xoonya`
13
+ - partner-ready onboarding and launch docs
14
+ - explicit runtime durability posture, including Supabase-backed persistence on hosts without persistent disk
13
15
 
14
16
  Recommended first checks:
15
17
 
16
18
  1. `npm install xytara`
17
19
  2. `xytara-release --candidate --summary`
18
20
  3. `npm run verify:release-candidate`
19
- 4. inspect `/v1/release-candidate/summary` on the deployed service
21
+ 4. `node examples/partner_launch_walkthrough.js`
22
+ 5. inspect `/v1/release-candidate/summary` and `/v1/runtime/durability` on the deployed service
23
+
24
+ Recommended first docs:
25
+
26
+ - `PROGRAM_COMPLETE_RELEASE.md`
27
+ - `WHY_XYTARA_XOONYA.md`
28
+ - `PARTNER_READY_PATH.md`
package/START_HERE.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  This is the shortest reliable path for understanding and using the public `xytara` package in production-facing order.
4
4
 
5
+ The phase program is now complete, so this file is the right starting point for a closed and release-shaped runtime rather than an in-flight milestone build.
6
+
5
7
  ## 1. Understand The Role
6
8
 
7
9
  `xytara` is the transaction-side half of the public stack.
@@ -24,6 +26,17 @@ node examples/quickstart.js
24
26
 
25
27
  This is the fastest way to see the intended package story end-to-end.
26
28
 
29
+ If you want the clearest cross-repo adoption path instead of the broad package tour, continue with:
30
+
31
+ - [CARRIED_HANDOFF_DEMO.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/CARRIED_HANDOFF_DEMO.md)
32
+
33
+ If you want the shortest neutral external-adoption bundle, continue with:
34
+
35
+ - [PARTNER_READY_PATH.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/PARTNER_READY_PATH.md)
36
+ - [PUBLIC_DEMO_SCRIPT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/PUBLIC_DEMO_SCRIPT.md)
37
+ - [EXAMPLE_PATHS.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/EXAMPLE_PATHS.md)
38
+ - `node examples/partner_launch_walkthrough.js`
39
+
27
40
  ## 3. Verify The Whole Package
28
41
 
29
42
  Run:
@@ -40,6 +53,13 @@ For long-term product understanding, read:
40
53
 
41
54
  - [FINAL_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/FINAL_CONTRACT.md)
42
55
  - [SERVICE_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/SERVICE_CONTRACT.md)
56
+ - [PROGRAM_STATUS.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/PROGRAM_STATUS.md)
57
+ - [OPERATOR_START_HERE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/OPERATOR_START_HERE.md)
58
+ - [OPERATIONS_RUNBOOK.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/OPERATIONS_RUNBOOK.md)
59
+ - [PROGRAM_COMPLETE_RELEASE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/PROGRAM_COMPLETE_RELEASE.md)
60
+ - [WHY_XYTARA_XOONYA.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/WHY_XYTARA_XOONYA.md)
61
+ - [CARRIED_HANDOFF_DEMO.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/CARRIED_HANDOFF_DEMO.md)
62
+ - [PARTNER_READY_PATH.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/PARTNER_READY_PATH.md)
43
63
  - [BSV_TERANODE_SETUP.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/BSV_TERANODE_SETUP.md)
44
64
  - [REAL_PAYMENT_SETUP.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/REAL_PAYMENT_SETUP.md)
45
65
  - [TERMINOLOGY.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/TERMINOLOGY.md)
@@ -48,6 +68,7 @@ For long-term product understanding, read:
48
68
 
49
69
  Continue with:
50
70
 
71
+ - [ADAPTER_START_HERE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/ADAPTER_START_HERE.md)
51
72
  - [adapters/AUTHORING_GUIDE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/adapters/AUTHORING_GUIDE.md)
52
73
  - [adapters/ONBOARDING_POSTURE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/adapters/ONBOARDING_POSTURE.md)
53
74
  - [adapters/THIRD_PARTY_SUBMISSION_PROCESS.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/adapters/THIRD_PARTY_SUBMISSION_PROCESS.md)
@@ -61,3 +82,14 @@ The main public path is no longer "read every milestone layer."
61
82
  It is:
62
83
 
63
84
  discover -> preview/quote -> execute -> inspect -> hand off to `xoonya`
85
+
86
+ ## 7. If You Are Operating The Closed Program
87
+
88
+ Use:
89
+
90
+ - [PROGRAM_STATUS.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/PROGRAM_STATUS.md)
91
+ - [OPERATOR_START_HERE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/OPERATOR_START_HERE.md)
92
+
93
+ If you depend on hidden-account grants, credits, or usage meters in production, set `XYTARA_STATE_FILE` to a path on persistent disk before you trust restart durability.
94
+
95
+ If your host does not provide persistent disk, use [SUPABASE_RUNTIME_STATE_SETUP.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/SUPABASE_RUNTIME_STATE_SETUP.md) instead.
@@ -0,0 +1,61 @@
1
+ # xytara Supabase Runtime State Setup
2
+
3
+ Use this when `xytara` runs on infrastructure without persistent disk, such as a free Render service.
4
+
5
+ ## What This Solves
6
+
7
+ This keeps runtime economics state durable across restart:
8
+
9
+ - external credit grants
10
+ - entitlements
11
+ - credit spends
12
+ - usage meters
13
+ - hidden-account economics carry
14
+
15
+ ## 1. Create The Table In Supabase
16
+
17
+ Run this SQL:
18
+
19
+ ```sql
20
+ create table if not exists public.xytara_runtime_state (
21
+ state_key text primary key,
22
+ snapshot jsonb not null,
23
+ persisted_at_iso timestamptz not null default now()
24
+ );
25
+ ```
26
+
27
+ ## 2. Configure xytara
28
+
29
+ Set these environment variables on the deployed service:
30
+
31
+ ```text
32
+ XYTARA_SUPABASE_URL=https://<project-ref>.supabase.co
33
+ XYTARA_SUPABASE_SERVICE_ROLE_KEY=<service-role-key>
34
+ XYTARA_SUPABASE_STATE_TABLE=xytara_runtime_state
35
+ XYTARA_SUPABASE_STATE_KEY=default
36
+ XYTARA_STATE_SNAPSHOT_INTERVAL_MS=5000
37
+ ```
38
+
39
+ If `XYTARA_SUPABASE_URL` and `XYTARA_SUPABASE_SERVICE_ROLE_KEY` are set, `xytara` will use Supabase-backed runtime persistence instead of local file snapshots.
40
+
41
+ ## 3. Verify Runtime Durability
42
+
43
+ Inspect:
44
+
45
+ - `GET /v1/runtime/durability`
46
+
47
+ Expected direction:
48
+
49
+ - `storage_mode: "supabase"`
50
+ - `remote_reachable: true`
51
+ - `remote_table_ready: true`
52
+ - `snapshot_exists: true` after the first persisted mutation
53
+
54
+ ## 4. Verify The Real Economics Path
55
+
56
+ 1. issue a hidden-account grant
57
+ 2. confirm balance and entitlements exist
58
+ 3. restart or redeploy `xytara`
59
+ 4. confirm the same hidden account still has balance and entitlements
60
+ 5. spend once
61
+ 6. confirm usage meter and spend history survive another restart
@@ -0,0 +1,63 @@
1
+ # Why xytara And xoonya
2
+
3
+ The public stack is intentionally split into two repos because runtime commerce and canonical proof have different operating constraints.
4
+
5
+ ## xytara
6
+
7
+ `xytara` owns the transaction-side path:
8
+
9
+ - discover
10
+ - preview or quote
11
+ - fund or spend
12
+ - execute
13
+ - inspect
14
+ - export carry
15
+
16
+ It is the right place for:
17
+
18
+ - payment posture
19
+ - credits and entitlements
20
+ - settlement visibility
21
+ - adapter registration and promotion
22
+ - operator-facing runtime state
23
+
24
+ ## xoonya
25
+
26
+ `xoonya` owns the proof-side path:
27
+
28
+ - receive handoff
29
+ - review preserved context
30
+ - emit proof-native completion
31
+ - verify the final bundle
32
+
33
+ It is the right place for:
34
+
35
+ - canonical event shape
36
+ - receipts
37
+ - proof bundles
38
+ - narrow proof-adjacent integrations
39
+ - reviewable proof followthrough
40
+
41
+ ## Why the split matters
42
+
43
+ If commerce and proof are collapsed together, one side usually becomes muddy:
44
+
45
+ - the runtime becomes too rigid
46
+ - or the proof layer absorbs workflow and settlement semantics it should not own
47
+
48
+ This split keeps both sides legible:
49
+
50
+ - `xytara` stays execution and economics aware
51
+ - `xoonya` stays canonical and proof aware
52
+
53
+ ## What builders get
54
+
55
+ Builders do not need to choose between “commerce first” and “proof first.”
56
+
57
+ They can:
58
+
59
+ 1. run the machine path in `xytara`
60
+ 2. export or carry the result
61
+ 3. complete the proof path in `xoonya`
62
+
63
+ That is the public stack story.
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ const fs = require("fs");
4
+ const path = require("path");
5
+
6
+ const manifest = JSON.parse(
7
+ fs.readFileSync(path.resolve(__dirname, "minimal-third-party-execution-adapter.manifest.json"), "utf8")
8
+ );
9
+
10
+ async function getHealth() {
11
+ return {
12
+ status: "ok",
13
+ readiness: "ready",
14
+ adapter_id: manifest.adapter_id
15
+ };
16
+ }
17
+
18
+ function describeCapabilities() {
19
+ return {
20
+ adapter_id: manifest.adapter_id,
21
+ adapter_class: manifest.adapter_class,
22
+ capabilities: manifest.capabilities.slice(),
23
+ execution_modes: Array.isArray(manifest.execution_modes) ? manifest.execution_modes.slice() : []
24
+ };
25
+ }
26
+
27
+ async function preview(request) {
28
+ return {
29
+ adapter_id: manifest.adapter_id,
30
+ accepted: true,
31
+ preview: {
32
+ task_ref: request && request.task_ref ? request.task_ref : "example.task",
33
+ mode: "preview",
34
+ echoed_body: request && request.body ? request.body : {}
35
+ }
36
+ };
37
+ }
38
+
39
+ async function execute(request) {
40
+ return {
41
+ adapter_id: manifest.adapter_id,
42
+ status: "completed",
43
+ result: {
44
+ task_ref: request && request.task_ref ? request.task_ref : "example.task",
45
+ mode: "execute",
46
+ echoed_body: request && request.body ? request.body : {}
47
+ },
48
+ proof_facts: {
49
+ emits_proof_compatible_facts: manifest.proof_contract.emits_proof_compatible_facts,
50
+ proof_mode: manifest.proof_contract.proof_mode
51
+ }
52
+ };
53
+ }
54
+
55
+ module.exports = {
56
+ manifest,
57
+ getHealth,
58
+ describeCapabilities,
59
+ preview,
60
+ execute
61
+ };
@@ -0,0 +1,79 @@
1
+ {
2
+ "adapter_id": "partner.execution.minimal_echo",
3
+ "adapter_class": "execution_adapter",
4
+ "adapter_version": "0.1.0",
5
+ "interface_version": "commerce-adapter-interface/v1",
6
+ "display_name": "Minimal Third-Party Echo Adapter",
7
+ "description": "Minimal third-party execution adapter starter for external builders copying the public xytara contract.",
8
+ "capabilities": [
9
+ "task.execute",
10
+ "task.preview"
11
+ ],
12
+ "compatibility": {
13
+ "node": ">=18",
14
+ "commerce_contract": "xytara/v1",
15
+ "proof_contract": "xoonya/v1"
16
+ },
17
+ "health_contract": {
18
+ "check_kind": "self_reported",
19
+ "supports_readiness": true
20
+ },
21
+ "idempotency_contract": {
22
+ "strategy": "caller_supplied_key",
23
+ "scope": "task_execution"
24
+ },
25
+ "failure_contract": {
26
+ "categories": [
27
+ "invalid_input",
28
+ "timeout",
29
+ "upstream_unavailable"
30
+ ],
31
+ "retryable_categories": [
32
+ "timeout",
33
+ "upstream_unavailable"
34
+ ]
35
+ },
36
+ "proof_contract": {
37
+ "emits_proof_compatible_facts": true,
38
+ "proof_mode": "execution_facts_only"
39
+ },
40
+ "latency_class": "interactive",
41
+ "pricing_basis": "per_task",
42
+ "execution_modes": [
43
+ "sync"
44
+ ],
45
+ "required_secrets": [
46
+ "MINIMAL_EXECUTION_TOKEN"
47
+ ],
48
+ "required_permissions": [
49
+ "network:outbound"
50
+ ],
51
+ "supported_profiles": [
52
+ "partner"
53
+ ],
54
+ "supported_regions": [
55
+ "global"
56
+ ],
57
+ "supported_settlement_modes": [
58
+ "evm_payment"
59
+ ],
60
+ "registration_contract": {
61
+ "integration_id": "partner.execution.minimal_echo",
62
+ "integration_maturity": "reference_example",
63
+ "bundled": false,
64
+ "default_selection_enabled": false,
65
+ "selection_priority": 600,
66
+ "requires_explicit_selection": true
67
+ },
68
+ "certification_contract": {
69
+ "certification_state": "reference_example",
70
+ "certification_scope": [
71
+ "contract_shape",
72
+ "example_behavior"
73
+ ],
74
+ "verified_with": [
75
+ "npm run verify:adapters"
76
+ ],
77
+ "last_verified_contract_version": "commerce-adapter-interface/v1"
78
+ }
79
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "integration_id": "partner.execution.minimal_echo",
3
+ "adapter_id": "partner.execution.minimal_echo",
4
+ "adapter_class": "execution_adapter",
5
+ "registration_state": "staging_registered",
6
+ "integration_maturity": "staging_candidate",
7
+ "certification_state": "self_attested",
8
+ "bundled": false,
9
+ "default_selection_enabled": false,
10
+ "selection_priority": 600,
11
+ "requires_explicit_selection": true,
12
+ "registered_at": "2026-03-28T00:00:00.000Z",
13
+ "registered_by": "partner:minimal",
14
+ "verified_with": [
15
+ "npm run verify:adapters",
16
+ "minimal_smoke"
17
+ ],
18
+ "task_refs": [
19
+ "task.execute"
20
+ ],
21
+ "protocols": [],
22
+ "settlement_modes": [
23
+ "evm_payment"
24
+ ],
25
+ "notes": "Minimal third-party execution registration record for adapter starter flow."
26
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "integration_id": "partner.execution.minimal_echo",
3
+ "adapter_id": "partner.execution.minimal_echo",
4
+ "adapter_class": "execution_adapter",
5
+ "certification_state": "self_attested",
6
+ "certification_scope": [
7
+ "self_attested_contract_shape",
8
+ "minimal_smoke"
9
+ ],
10
+ "verified_with": [
11
+ "npm run verify:adapters",
12
+ "minimal_smoke"
13
+ ],
14
+ "submitted_at": "2026-03-28T00:00:00Z",
15
+ "submitted_by": "partner:minimal",
16
+ "last_verified_contract_version": "xytara/v1",
17
+ "evidence_refs": [
18
+ "memory://minimal-execution/certification/schema-report",
19
+ "memory://minimal-execution/certification/smoke-report"
20
+ ],
21
+ "notes": "Minimal third-party execution certification pack for adapter starter flow."
22
+ }
@@ -0,0 +1,126 @@
1
+ {
2
+ "bundle_version": "xytara/integration-submission-bundle/v1",
3
+ "manifest": {
4
+ "adapter_id": "partner.execution.minimal_echo",
5
+ "adapter_class": "execution_adapter",
6
+ "adapter_version": "0.1.0",
7
+ "interface_version": "commerce-adapter-interface/v1",
8
+ "display_name": "Minimal Third-Party Echo Adapter",
9
+ "description": "Minimal third-party execution adapter starter for external builders copying the public xytara contract.",
10
+ "capabilities": [
11
+ "task.execute",
12
+ "task.preview"
13
+ ],
14
+ "required_secrets": [
15
+ "MINIMAL_EXECUTION_TOKEN"
16
+ ],
17
+ "required_permissions": [
18
+ "network:outbound"
19
+ ],
20
+ "supported_profiles": [
21
+ "partner"
22
+ ],
23
+ "supported_regions": [
24
+ "global"
25
+ ],
26
+ "supported_settlement_modes": [
27
+ "evm_payment"
28
+ ],
29
+ "pricing_basis": "per_task",
30
+ "latency_class": "interactive",
31
+ "registration_contract": {
32
+ "integration_id": "partner.execution.minimal_echo",
33
+ "integration_maturity": "reference_example",
34
+ "bundled": false,
35
+ "default_selection_enabled": false,
36
+ "requires_explicit_selection": true
37
+ },
38
+ "certification_contract": {
39
+ "certification_state": "reference_example",
40
+ "certification_scope": [
41
+ "contract_shape",
42
+ "example_behavior"
43
+ ],
44
+ "verified_with": [
45
+ "npm run verify:adapters"
46
+ ],
47
+ "last_verified_contract_version": "xytara/v1"
48
+ },
49
+ "compatibility": {
50
+ "node": ">=18",
51
+ "commerce_contract": "xytara/v1",
52
+ "proof_contract": "xoonya/v1"
53
+ },
54
+ "health_contract": {
55
+ "check_kind": "self_reported",
56
+ "supports_readiness": true
57
+ },
58
+ "idempotency_contract": {
59
+ "strategy": "caller_supplied_key",
60
+ "scope": "task_execution"
61
+ },
62
+ "failure_contract": {
63
+ "categories": [
64
+ "invalid_input",
65
+ "timeout",
66
+ "upstream_unavailable"
67
+ ],
68
+ "retryable_categories": [
69
+ "timeout",
70
+ "upstream_unavailable"
71
+ ]
72
+ },
73
+ "proof_contract": {
74
+ "emits_proof_compatible_facts": true,
75
+ "proof_mode": "execution_facts_only"
76
+ }
77
+ },
78
+ "registration_record": {
79
+ "integration_id": "partner.execution.minimal_echo",
80
+ "adapter_id": "partner.execution.minimal_echo",
81
+ "adapter_class": "execution_adapter",
82
+ "registration_state": "staging_registered",
83
+ "integration_maturity": "staging_candidate",
84
+ "certification_state": "self_attested",
85
+ "bundled": false,
86
+ "default_selection_enabled": false,
87
+ "requires_explicit_selection": true,
88
+ "registered_at": "2026-03-28T00:00:00.000Z",
89
+ "registered_by": "partner:minimal",
90
+ "verified_with": [
91
+ "npm run verify:adapters",
92
+ "minimal_smoke"
93
+ ],
94
+ "task_refs": [
95
+ "task.execute"
96
+ ],
97
+ "protocols": [],
98
+ "settlement_modes": [
99
+ "evm_payment"
100
+ ],
101
+ "notes": "Minimal third-party execution registration record for adapter starter flow."
102
+ },
103
+ "certification_pack": {
104
+ "integration_id": "partner.execution.minimal_echo",
105
+ "adapter_id": "partner.execution.minimal_echo",
106
+ "adapter_class": "execution_adapter",
107
+ "certification_state": "self_attested",
108
+ "certification_scope": [
109
+ "self_attested_contract_shape",
110
+ "minimal_smoke"
111
+ ],
112
+ "verified_with": [
113
+ "npm run verify:adapters",
114
+ "minimal_smoke"
115
+ ],
116
+ "submitted_at": "2026-03-28T00:00:00Z",
117
+ "submitted_by": "partner:minimal",
118
+ "last_verified_contract_version": "xytara/v1",
119
+ "evidence_refs": [
120
+ "memory://minimal-execution/certification/schema-report",
121
+ "memory://minimal-execution/certification/smoke-report"
122
+ ],
123
+ "notes": "Minimal third-party execution certification pack for adapter starter flow."
124
+ },
125
+ "notes": "Minimal third-party execution submission bundle for copy-and-adapt onboarding."
126
+ }