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.
- package/.env.example +6 -0
- package/ADAPTER_START_HERE.md +56 -0
- package/BSV_TERANODE_SETUP.md +30 -1
- package/CARRIED_HANDOFF_DEMO.md +60 -0
- package/EXAMPLE_PATHS.md +53 -0
- package/FINAL_CONTRACT.md +6 -6
- 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 +14 -0
- package/README.md +142 -6
- package/RELEASE_CHECKLIST.md +16 -0
- package/RELEASE_NOTES.md +28 -0
- package/SERVICE_CONTRACT.md +4 -4
- 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 +1419 -0
- package/bin/xytara-run.js +186 -0
- 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 +87 -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/announcement_pack.js +61 -0
- package/lib/commerce_artifacts.js +3 -0
- package/lib/commerce_economics.js +14 -0
- package/lib/commerce_reports.js +26 -1
- package/lib/commerce_shell.js +18 -2
- package/lib/ecosystem_entry.js +64 -0
- package/lib/launch_narrative.js +53 -0
- package/lib/outreach_copy_pack.js +51 -0
- package/lib/outreach_message_pack.js +71 -0
- package/lib/outreach_proof.js +71 -0
- package/lib/outreach_target_pack.js +60 -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/publish_plan.js +51 -0
- package/lib/release_candidate.js +50 -0
- package/lib/release_center.js +1085 -0
- package/lib/release_history.js +72 -0
- package/lib/release_manifest.js +114 -0
- package/lib/release_pack.js +454 -0
- package/lib/runtime_state_store.js +354 -0
- package/lib/settlement_bsv_live.js +262 -13
- package/lib/soft_launch_pack.js +78 -0
- package/package.json +24 -2
- package/server.js +2562 -220
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,18 +27,51 @@ 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)
|
|
37
72
|
- [REAL_PAYMENT_SETUP.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/REAL_PAYMENT_SETUP.md)
|
|
38
73
|
|
|
39
|
-
If you are wiring
|
|
74
|
+
If you are wiring external checkout or hosted funding paths, continue with:
|
|
40
75
|
|
|
41
76
|
- [HUMAN_CHECKOUT_AND_RUNTIME_BRIDGE_PATTERN.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/HUMAN_CHECKOUT_AND_RUNTIME_BRIDGE_PATTERN.md)
|
|
42
77
|
- [RUNTIME_BRIDGE_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/RUNTIME_BRIDGE_CONTRACT.md)
|
|
@@ -120,23 +155,23 @@ This keeps one-off usage and repeat usage on the same public spine:
|
|
|
120
155
|
- credit balance when the caller is already funded and wants low-friction repeat execution
|
|
121
156
|
- optional agent and budget controls can still bound that spend without changing the execution surface
|
|
122
157
|
|
|
123
|
-
It also keeps the
|
|
158
|
+
It also keeps the external funding boundary clean:
|
|
124
159
|
|
|
125
160
|
- an external merchant-facing system can verify a purchase and issue a bounded credit grant into `xytara`
|
|
126
161
|
- `xytara` records the granted value and consumes it during later runtime operations
|
|
127
162
|
- the runtime does not need to absorb provider-specific checkout semantics to support repeat usage
|
|
128
163
|
- in production, `POST /v1/credit-bridge/grants` should normally be protected with `XYTARA_CREDIT_BRIDGE_BEARER_TOKEN`
|
|
129
164
|
|
|
130
|
-
The first
|
|
165
|
+
The first external checkout convenience path now follows a parallel narrow route:
|
|
131
166
|
|
|
132
167
|
1. create hosted purchase intent
|
|
133
168
|
2. create checkout session
|
|
134
169
|
3. normalize payment success
|
|
135
170
|
4. issue credits or entitlement
|
|
136
|
-
5. dispatch through the runtime
|
|
171
|
+
5. dispatch through the runtime path when needed
|
|
137
172
|
6. converge back into the same `xytara` and `xoonya` spine
|
|
138
173
|
|
|
139
|
-
The first direct hosted execution path now also has a public runtime
|
|
174
|
+
The first direct hosted execution path now also has a public runtime dispatch surface:
|
|
140
175
|
|
|
141
176
|
- `POST /v1/runtime-bridge/dispatch`
|
|
142
177
|
- `GET /v1/runtime-bridge/dispatches`
|
|
@@ -153,6 +188,82 @@ The operator shell now also carries hosted checkout visibility so purchase, disp
|
|
|
153
188
|
|
|
154
189
|
The rest of this README explains the full surface area and milestone trail, but the public starting posture should now be understandable from that one default path.
|
|
155
190
|
|
|
191
|
+
For release-grade adoption posture, inspect:
|
|
192
|
+
|
|
193
|
+
- `GET /v1/release-pack`
|
|
194
|
+
- `GET /v1/release-pack/summary`
|
|
195
|
+
- `GET /v1/release-pack/comparison`
|
|
196
|
+
- `GET /v1/release-pack/comparison/summary`
|
|
197
|
+
- `GET /v1/release-pack/adoption`
|
|
198
|
+
- `GET /v1/release-pack/adoption/summary`
|
|
199
|
+
- `GET /v1/release-pack/scenarios`
|
|
200
|
+
- `GET /v1/release-pack/scenarios/summary`
|
|
201
|
+
- `GET /v1/release-pack/launch`
|
|
202
|
+
- `GET /v1/release-pack/launch/summary`
|
|
203
|
+
- `GET /v1/release-manifest`
|
|
204
|
+
- `GET /v1/release-manifest/summary`
|
|
205
|
+
- `GET /v1/release-notes`
|
|
206
|
+
- `GET /v1/release-notes/summary`
|
|
207
|
+
- `GET /v1/release-center`
|
|
208
|
+
- `GET /v1/release-center/summary`
|
|
209
|
+
- `GET /v1/release-history`
|
|
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`
|
|
229
|
+
- `GET /v1/publish-plan`
|
|
230
|
+
- `GET /v1/publish-plan/summary`
|
|
231
|
+
- `GET /v1/ecosystem-entry`
|
|
232
|
+
- `GET /v1/ecosystem-entry/summary`
|
|
233
|
+
- `GET /v1/launch-narrative`
|
|
234
|
+
- `GET /v1/launch-narrative/summary`
|
|
235
|
+
- `GET /v1/outreach-proof`
|
|
236
|
+
- `GET /v1/outreach-proof/summary`
|
|
237
|
+
- `GET /v1/announcement-pack`
|
|
238
|
+
- `GET /v1/announcement-pack/summary`
|
|
239
|
+
- `GET /v1/release-candidate`
|
|
240
|
+
- `GET /v1/release-candidate/summary`
|
|
241
|
+
- `xytara-release --summary`
|
|
242
|
+
- `xytara-release --comparison --summary`
|
|
243
|
+
- `xytara-release --adoption --summary`
|
|
244
|
+
- `xytara-release --scenarios --summary`
|
|
245
|
+
- `xytara-release --launch --summary`
|
|
246
|
+
- `xytara-release --manifest --summary`
|
|
247
|
+
- `xytara-release --notes --summary`
|
|
248
|
+
- `xytara-release --center --summary`
|
|
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`
|
|
259
|
+
- `xytara-release --ecosystem --summary`
|
|
260
|
+
- `xytara-release --narrative --summary`
|
|
261
|
+
- `xytara-release --outreach-proof --summary`
|
|
262
|
+
- `xytara-release --announcement --summary`
|
|
263
|
+
- `xytara-release --candidate --summary`
|
|
264
|
+
|
|
265
|
+
These surfaces package the current machine-commerce value story, first-contact CLI path, default transaction posture, catalog/task-pack coverage, credit-pack posture, and integration/settlement breadth into one machine-readable launch boundary.
|
|
266
|
+
|
|
156
267
|
## Commerce Loop
|
|
157
268
|
|
|
158
269
|
The public product loop is:
|
|
@@ -589,6 +700,12 @@ Run:
|
|
|
589
700
|
node examples/quickstart.js
|
|
590
701
|
```
|
|
591
702
|
|
|
703
|
+
For a direct one-line machine run against a live service, use the bundled CLI:
|
|
704
|
+
|
|
705
|
+
```bash
|
|
706
|
+
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
|
|
707
|
+
```
|
|
708
|
+
|
|
592
709
|
The quickstart exercises:
|
|
593
710
|
|
|
594
711
|
- health and catalog
|
|
@@ -675,6 +792,9 @@ Production payment note:
|
|
|
675
792
|
- provide buyer wallet verification material through `XYTARA_WALLET_REGISTRY_JSON` or `XYTARA_WALLET_REGISTRY_PATH`
|
|
676
793
|
- set `XYTARA_TREASURY_DESTINATION_ID` and related treasury env vars so accepted payments land in your merchant treasury posture instead of the default local account placeholder
|
|
677
794
|
- built-in `x402` is the admission lane; real external payout/custody still depends on the payment rail and treasury destination you configure behind that lane
|
|
795
|
+
- for native BSV/Teranode live follow-through, set `XYTARA_BSV_TERANODE_SETTLEMENT_RUNTIME_MODE` to `observe` or `arc`
|
|
796
|
+
- use `XYTARA_BSV_TERANODE_RPC_URL` plus optional ARC auth envs when the live runtime needs ARC submission
|
|
797
|
+
- use `XYTARA_BSV_TERANODE_OBSERVER_URL` if you want to override the default live observer base
|
|
678
798
|
|
|
679
799
|
Primary service routes:
|
|
680
800
|
|
|
@@ -752,6 +872,7 @@ Primary service routes:
|
|
|
752
872
|
- `GET /v1/receipts/:receipt_id`
|
|
753
873
|
- `GET /v1/payment-ledger`
|
|
754
874
|
- `GET /v1/payment-ledger/:payment_id`
|
|
875
|
+
- `GET /v1/payment-ledger/:payment_id/operator-pack`
|
|
755
876
|
- `GET /v1/deliveries`
|
|
756
877
|
- `GET /v1/deliveries/:delivery_id`
|
|
757
878
|
- `GET /v1/disputes`
|
|
@@ -770,6 +891,7 @@ Primary service routes:
|
|
|
770
891
|
- `GET /v1/operator-export-pack`
|
|
771
892
|
- `GET /v1/operations/dashboard`
|
|
772
893
|
- `GET /v1/operations/attention-records`
|
|
894
|
+
- `GET /v1/runtime/durability`
|
|
773
895
|
- `GET /v1/operator-shell`
|
|
774
896
|
- `GET /v1/operator-shell/summary`
|
|
775
897
|
- `POST /v1/operator-shell/summary`
|
|
@@ -815,6 +937,8 @@ Primary service routes:
|
|
|
815
937
|
- `GET /v1/economics/evidence/receipts/:receipt_ref`
|
|
816
938
|
- `GET /v1/economics/evidence/jobs/:job_id`
|
|
817
939
|
- `GET /v1/economics/integration/jobs/:job_id`
|
|
940
|
+
- `GET /v1/settlement/bsv-teranode/readiness`
|
|
941
|
+
- `GET /v1/settlement/bsv-teranode/:settlement_id/operator-pack`
|
|
818
942
|
|
|
819
943
|
The Wave C coordination carry-over line adds a bounded coordination center on top of the public transaction spine:
|
|
820
944
|
|
|
@@ -834,9 +958,21 @@ The Wave F shell carry-over line adds a bounded operator shell inside public `xy
|
|
|
834
958
|
|
|
835
959
|
- self-serve agent account issuance for the public runtime path
|
|
836
960
|
- a unified operator shell summary across operations, economics, and coordination
|
|
961
|
+
- explicit runtime durability visibility for snapshot-backed recovery posture
|
|
962
|
+
- explicit native BSV/Teranode readiness visibility for merchant identity, transport, and verification posture
|
|
837
963
|
- compact workflow/admin shell exports that point cleanly into proof-side follow-through when needed
|
|
838
964
|
|
|
839
|
-
This keeps the public product centered on `naxytra` while
|
|
965
|
+
This keeps the public product centered on `naxytra` while preserving the useful operator-shell capability directly inside `xytara` instead of splitting it into a separate surface.
|
|
966
|
+
|
|
967
|
+
The durability and native-settlement readiness surfaces are also intended to make the remaining production boundary explicit:
|
|
968
|
+
|
|
969
|
+
- `/v1/runtime/durability` exposes whether runtime snapshots are enabled, whether a recoverable snapshot exists yet, and any current durability blockers
|
|
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
|
|
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
|
|
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).
|
|
840
976
|
|
|
841
977
|
## Verification
|
|
842
978
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# xytara Release Checklist
|
|
2
|
+
|
|
3
|
+
1. Run `npm run verify:release-candidate`.
|
|
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`.
|
|
6
|
+
3. Redeploy the service and verify:
|
|
7
|
+
- `/v1/release-center/summary`
|
|
8
|
+
- `/v1/announcement-pack/summary`
|
|
9
|
+
- `/v1/outreach-proof/summary`
|
|
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
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# xytara 2.2.0 Release Notes
|
|
2
|
+
|
|
3
|
+
`xytara` 2.2.0 is the public machine-commerce program-complete line.
|
|
4
|
+
|
|
5
|
+
Highlights:
|
|
6
|
+
|
|
7
|
+
- direct one-line machine execution with `xytara-run`
|
|
8
|
+
- release, comparison, adoption, scenario, and launch packs over HTTP and CLI
|
|
9
|
+
- release-center, announcement-pack, and release-candidate surfaces for public launch readiness
|
|
10
|
+
- credits-first reusable spend posture
|
|
11
|
+
- native settlement-aware runtime inspection
|
|
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
|
|
15
|
+
|
|
16
|
+
Recommended first checks:
|
|
17
|
+
|
|
18
|
+
1. `npm install xytara`
|
|
19
|
+
2. `xytara-release --candidate --summary`
|
|
20
|
+
3. `npm run verify:release-candidate`
|
|
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/SERVICE_CONTRACT.md
CHANGED
|
@@ -237,7 +237,7 @@ Deterministic usage metering should use:
|
|
|
237
237
|
|
|
238
238
|
External top-up and pack issuance should use:
|
|
239
239
|
|
|
240
|
-
1. verify the
|
|
240
|
+
1. verify the purchase outside the runtime
|
|
241
241
|
2. issue a bounded grant through `POST /v1/credit-bridge/grants`
|
|
242
242
|
3. inspect grants through `GET /v1/credit-bridge/grants`
|
|
243
243
|
4. rely on the same account credit balance and credit-first execution path afterward
|
|
@@ -257,7 +257,7 @@ Delegated spend should use:
|
|
|
257
257
|
5. use `payment_preference: "credits_first"` for the repeat-use path
|
|
258
258
|
6. revoke the credential without affecting account ownership or payout posture
|
|
259
259
|
|
|
260
|
-
The first
|
|
260
|
+
The first hosted purchase path now follows:
|
|
261
261
|
|
|
262
262
|
1. create purchase intent
|
|
263
263
|
2. create checkout session
|
|
@@ -269,7 +269,7 @@ Direct single-task hosted execution should use:
|
|
|
269
269
|
|
|
270
270
|
1. hosted checkout purchase intent
|
|
271
271
|
2. normalized `paid` event
|
|
272
|
-
3. runtime
|
|
272
|
+
3. runtime dispatch
|
|
273
273
|
4. normal transaction, receipt, treasury, and proof follow-through
|
|
274
274
|
|
|
275
275
|
Hosted checkout payout posture should use:
|
|
@@ -284,7 +284,7 @@ Provider or customer refund-shaped signals may be recorded, but they should not
|
|
|
284
284
|
Operator-shell posture should now also expose hosted checkout visibility:
|
|
285
285
|
|
|
286
286
|
- purchase intent counts
|
|
287
|
-
- runtime
|
|
287
|
+
- runtime dispatch counts
|
|
288
288
|
- refund review queue counts
|
|
289
289
|
|
|
290
290
|
so the human payment path remains operationally visible without introducing a second control plane.
|
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
|
+
}
|