xytara 3.0.1 → 3.1.1
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 +3 -1
- package/README.md +76 -7
- package/REAL_PAYMENT_SETUP.md +17 -12
- package/RELEASE_NOTES.md +13 -11
- package/SERVICE_CONTRACT.md +17 -1
- package/START_HERE.md +27 -24
- package/examples/_demo_env.js +40 -0
- package/examples/adapter_review_walkthrough.js +1 -0
- package/examples/export_carried_handoff.js +1 -0
- package/examples/funded_runtime_walkthrough.js +2 -1
- package/examples/partner_launch_walkthrough.js +1 -0
- package/examples/quickstart.js +1341 -1340
- package/fixtures/catalog.js +64 -0
- package/index.js +76 -0
- package/integrations/dispatch.js +3 -1
- package/lib/acp_lane_contract.js +54 -0
- package/lib/adapter_certification_contract.js +130 -0
- package/lib/adapter_depth_contract.js +1 -1
- package/lib/authority_binding_lifecycle_contract.js +182 -0
- package/lib/business_cockpit.js +378 -0
- package/lib/capability_execution_truth.js +4 -1
- package/lib/catalog_family_model.js +3 -0
- package/lib/commerce_client.js +14 -3
- package/lib/commerce_economics.js +2 -1
- package/lib/crypto_agility_matrix.js +125 -0
- package/lib/http_transport.js +3 -2
- package/lib/integration_matrix_contract.js +3 -0
- package/lib/machine_identity_registry_contract.js +199 -0
- package/lib/mcp_lane_contract.js +27 -0
- package/lib/offline_verifiability_recovery_contract.js +155 -0
- package/lib/operational_receipt_contract.js +165 -0
- package/lib/payment_config.js +3 -1
- package/lib/protocol_lane_contract.js +3 -0
- package/lib/public_surface_policy_contract.js +111 -0
- package/lib/signed_audit_provenance_contract.js +83 -0
- package/lib/trust_portability_boundary_contract.js +72 -0
- package/package.json +103 -101
- package/scripts/verify_control_plane_contracts.js +34 -0
- package/scripts/verify_control_plane_routes.js +70 -0
- package/scripts/verify_service.js +222 -24
- package/server.js +370 -15
package/.env.example
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
XYTARA_HOST=127.0.0.1
|
|
2
2
|
XYTARA_PORT=4320
|
|
3
3
|
XYTARA_BASE_URL=http://127.0.0.1:4320
|
|
4
|
-
|
|
4
|
+
# local_signed is the default; set presence only for local demos (accepts any non-empty payment header)
|
|
5
|
+
XYTARA_PAYMENT_VERIFICATION_MODE=local_signed
|
|
5
6
|
XYTARA_PAYMENT_MAX_AGE_SECONDS=300
|
|
6
7
|
XYTARA_WALLET_REGISTRY_JSON=[]
|
|
7
8
|
XYTARA_TREASURY_DESTINATION_ID=
|
|
@@ -19,6 +20,7 @@ XYTARA_BSV_TERANODE_MERCHANT_LABEL=naxytra-runtime
|
|
|
19
20
|
XYTARA_BSV_TERANODE_USE_METANET=false
|
|
20
21
|
XYTARA_BSV_TERANODE_SATS_PER_USD_CENT=100
|
|
21
22
|
XYTARA_BSV_TERANODE_SETTLEMENT_RUNTIME_MODE=mock
|
|
23
|
+
# operator write surfaces fail closed until both tokens are set
|
|
22
24
|
XYTARA_CREDIT_BRIDGE_BEARER_TOKEN=
|
|
23
25
|
XYTARA_ACCOUNT_AUTH_BEARER_TOKEN=
|
|
24
26
|
XYTARA_CALLBACK_DELIVERY_ENABLED=true
|
package/README.md
CHANGED
|
@@ -62,6 +62,15 @@ The frozen runtime-side fact model for that loop is documented in:
|
|
|
62
62
|
|
|
63
63
|
- [XYTARA_EXECUTION_TRUTH_MODEL.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/XYTARA_EXECUTION_TRUTH_MODEL.md)
|
|
64
64
|
- [XT1_EXECUTION_TRUTH_STANDARD.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/XT1_EXECUTION_TRUTH_STANDARD.md)
|
|
65
|
+
- [OPERATIONAL_RECEIPT_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/docs/architecture/OPERATIONAL_RECEIPT_CONTRACT.md)
|
|
66
|
+
- [MACHINE_IDENTITY_REGISTRY_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/docs/architecture/MACHINE_IDENTITY_REGISTRY_CONTRACT.md)
|
|
67
|
+
- [CRYPTO_AGILITY_MATRIX.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/docs/architecture/CRYPTO_AGILITY_MATRIX.md)
|
|
68
|
+
- [AUTHORITY_BINDING_LIFECYCLE_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/docs/architecture/AUTHORITY_BINDING_LIFECYCLE_CONTRACT.md)
|
|
69
|
+
- [PUBLIC_SURFACE_POLICY_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/docs/architecture/PUBLIC_SURFACE_POLICY_CONTRACT.md)
|
|
70
|
+
- [OFFLINE_VERIFIABILITY_AND_RECOVERY_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/docs/architecture/OFFLINE_VERIFIABILITY_AND_RECOVERY_CONTRACT.md)
|
|
71
|
+
- [ADAPTER_CERTIFICATION_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/docs/architecture/ADAPTER_CERTIFICATION_CONTRACT.md)
|
|
72
|
+
- [TRUST_PORTABILITY_BOUNDARY_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/docs/architecture/TRUST_PORTABILITY_BOUNDARY_CONTRACT.md)
|
|
73
|
+
- [SIGNED_AUDIT_PROVENANCE_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/docs/architecture/SIGNED_AUDIT_PROVENANCE_CONTRACT.md)
|
|
65
74
|
|
|
66
75
|
`XT1` is the coined public name for the `xytara` execution-truth standard, just as `XNYA` is the coined public name for the `xoonya` native proof primitive.
|
|
67
76
|
|
|
@@ -140,6 +149,9 @@ If you want the broadest machine-readable census for these already-core runtime
|
|
|
140
149
|
- `GET /v1/artifact-distribution`
|
|
141
150
|
- `GET /v1/shared-signals`
|
|
142
151
|
- `GET /v1/feature-control`
|
|
152
|
+
- `GET /v1/adapter-certification`
|
|
153
|
+
- `GET /v1/trust-portability-boundary`
|
|
154
|
+
- `GET /v1/signed-audit-provenance`
|
|
143
155
|
|
|
144
156
|
## One-Line After Install
|
|
145
157
|
|
|
@@ -159,6 +171,54 @@ If you want the shortest machine-readable discovery path, inspect:
|
|
|
159
171
|
- `GET /v1/integration-matrix`
|
|
160
172
|
- `GET /v1/telemetry`
|
|
161
173
|
- `GET /v1/provenance`
|
|
174
|
+
- `GET /v1/adapter-certification`
|
|
175
|
+
- `GET /v1/trust-portability-boundary`
|
|
176
|
+
- `GET /v1/signed-audit-provenance`
|
|
177
|
+
|
|
178
|
+
If you are working on shared evidence, inspect the operational receipt contract pack:
|
|
179
|
+
|
|
180
|
+
- `buildOperationalReceiptContractPack()`
|
|
181
|
+
- `summarizeOperationalReceiptContractPack()`
|
|
182
|
+
|
|
183
|
+
If you are working on machine identity, inspect the registry contract pack:
|
|
184
|
+
|
|
185
|
+
- `buildMachineIdentityRegistryContractPack()`
|
|
186
|
+
- `summarizeMachineIdentityRegistryContractPack()`
|
|
187
|
+
|
|
188
|
+
If you are working on crypto agility, inspect the matrix pack:
|
|
189
|
+
|
|
190
|
+
- `buildCryptoAgilityMatrixPack()`
|
|
191
|
+
- `summarizeCryptoAgilityMatrixPack()`
|
|
192
|
+
|
|
193
|
+
If you are working on binding lifecycle, inspect the lifecycle pack:
|
|
194
|
+
|
|
195
|
+
- `buildAuthorityBindingLifecycleContractPack()`
|
|
196
|
+
- `summarizeAuthorityBindingLifecycleContractPack()`
|
|
197
|
+
|
|
198
|
+
If you are working on public route policy, inspect the surface policy pack:
|
|
199
|
+
|
|
200
|
+
- `buildPublicSurfacePolicyContractPack()`
|
|
201
|
+
- `summarizePublicSurfacePolicyContractPack()`
|
|
202
|
+
|
|
203
|
+
If you are working on offline recovery, inspect the recovery pack:
|
|
204
|
+
|
|
205
|
+
- `buildOfflineVerifiabilityRecoveryContractPack()`
|
|
206
|
+
- `summarizeOfflineVerifiabilityRecoveryContractPack()`
|
|
207
|
+
|
|
208
|
+
If you are working on adapter certification, inspect the certification pack:
|
|
209
|
+
|
|
210
|
+
- `buildAdapterCertificationContractPack()`
|
|
211
|
+
- `summarizeAdapterCertificationContractPack()`
|
|
212
|
+
|
|
213
|
+
If you are working on trust portability boundaries, inspect the boundary pack:
|
|
214
|
+
|
|
215
|
+
- `buildTrustPortabilityBoundaryContractPack()`
|
|
216
|
+
- `summarizeTrustPortabilityBoundaryContractPack()`
|
|
217
|
+
|
|
218
|
+
If you are working on signed audit and provenance, inspect the audit/provenance pack:
|
|
219
|
+
|
|
220
|
+
- `buildSignedAuditProvenanceContractPack()`
|
|
221
|
+
- `summarizeSignedAuditProvenanceContractPack()`
|
|
162
222
|
|
|
163
223
|
## Start Here
|
|
164
224
|
|
|
@@ -209,12 +269,20 @@ The fastest copy-and-adapt third-party starter now lives under:
|
|
|
209
269
|
- `adapters/examples/langchain-reference-execution-adapter.manifest.json`
|
|
210
270
|
- `adapters/examples/langchain-reference-execution-adapter.js`
|
|
211
271
|
|
|
212
|
-
If you are wiring treasury, settlement, or payment activation, continue with:
|
|
213
|
-
|
|
214
|
-
- [REAL_PAYMENT_SETUP.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/REAL_PAYMENT_SETUP.md)
|
|
215
|
-
- [BSV_TERANODE_PLATFORM_DISCONTINUITY_RUNBOOK.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/BSV_TERANODE_PLATFORM_DISCONTINUITY_RUNBOOK.md)
|
|
216
|
-
|
|
217
|
-
Production treasury and multi-rail payment activation are now centralized in `REAL_PAYMENT_SETUP.md` plus your private treasury source of truth outside the repos.
|
|
272
|
+
If you are wiring treasury, settlement, or payment activation, continue with:
|
|
273
|
+
|
|
274
|
+
- [REAL_PAYMENT_SETUP.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/REAL_PAYMENT_SETUP.md)
|
|
275
|
+
- [BSV_TERANODE_PLATFORM_DISCONTINUITY_RUNBOOK.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/BSV_TERANODE_PLATFORM_DISCONTINUITY_RUNBOOK.md)
|
|
276
|
+
|
|
277
|
+
Production treasury and multi-rail payment activation are now centralized in `REAL_PAYMENT_SETUP.md` plus your private treasury source of truth outside the repos.
|
|
278
|
+
|
|
279
|
+
If you want one private operator page that rolls up release posture, treasury landing, runtime activity, delivery, settlement readiness, and linked proof-facing health, use:
|
|
280
|
+
|
|
281
|
+
- `GET /v1/business-cockpit`
|
|
282
|
+
- `GET /v1/business-cockpit/summary`
|
|
283
|
+
- `GET /business-cockpit`
|
|
284
|
+
|
|
285
|
+
Those surfaces are private and are intended to be opened with the same operator bearer token used for other protected runtime views.
|
|
218
286
|
|
|
219
287
|
If you are wiring external checkout or hosted funding paths, continue with:
|
|
220
288
|
|
|
@@ -941,7 +1009,8 @@ Environment example:
|
|
|
941
1009
|
|
|
942
1010
|
Production payment note:
|
|
943
1011
|
|
|
944
|
-
-
|
|
1012
|
+
- `XYTARA_PAYMENT_VERIFICATION_MODE` defaults to `local_signed` (verifiable signed payment acceptance); `presence` must be opted into explicitly and only accepts plain header presence for local development
|
|
1013
|
+
- operator write surfaces (`/v1/economics/*` ledger mutations, `/v1/agent-accounts`, `/v1/operator-shell/admin-pack`, `/v1/credit-bridge/grants`, business cockpit) fail closed with `operator_auth_not_configured` until `XYTARA_ACCOUNT_AUTH_BEARER_TOKEN` and `XYTARA_CREDIT_BRIDGE_BEARER_TOKEN` are set; send `Authorization: Bearer <token>`; query-string tokens are not accepted
|
|
945
1014
|
- provide buyer wallet verification material through `XYTARA_WALLET_REGISTRY_JSON` or `XYTARA_WALLET_REGISTRY_PATH`
|
|
946
1015
|
- 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
|
|
947
1016
|
- 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
|
package/REAL_PAYMENT_SETUP.md
CHANGED
|
@@ -4,14 +4,15 @@ This guide explains how to move `xytara` from local placeholder payment acceptan
|
|
|
4
4
|
|
|
5
5
|
## What Changed
|
|
6
6
|
|
|
7
|
-
`xytara`
|
|
7
|
+
`xytara` supports two payment-acceptance modes. `local_signed` is the default; `presence` has to be opted into explicitly.
|
|
8
8
|
|
|
9
9
|
- `presence`
|
|
10
|
-
- development/demo mode
|
|
10
|
+
- development/demo mode only, enabled with `XYTARA_PAYMENT_VERIFICATION_MODE=presence`
|
|
11
11
|
- payment headers are required, but not cryptographically verified
|
|
12
|
+
- the server logs a warning at startup when this mode is active
|
|
12
13
|
|
|
13
14
|
- `local_signed`
|
|
14
|
-
- production-oriented built-in mode
|
|
15
|
+
- the default and the production-oriented built-in mode
|
|
15
16
|
- signed payment payloads are cryptographically verified against a configured wallet registry
|
|
16
17
|
- quote replay and nonce replay are blocked
|
|
17
18
|
- accepted payments are routed into your configured merchant treasury destination posture
|
|
@@ -89,6 +90,7 @@ XYTARA_TREASURY_DESTINATIONS_PATH=./TREASURY_DESTINATIONS.production.json
|
|
|
89
90
|
GET /v1/treasury-destinations/summary
|
|
90
91
|
GET /v1/payment-rail-truth/summary
|
|
91
92
|
GET /v1/autonomous-entry/summary
|
|
93
|
+
GET /v1/business-cockpit/summary
|
|
92
94
|
```
|
|
93
95
|
|
|
94
96
|
You can automate that launch-truth check with:
|
|
@@ -115,6 +117,9 @@ XYTARA_VERIFY_ACCOUNT_ID=<the same internal xytara account_id you use for live q
|
|
|
115
117
|
|
|
116
118
|
What you want to see:
|
|
117
119
|
|
|
120
|
+
- a healthy `GET /business-cockpit` page once operator auth is in place
|
|
121
|
+
- a healthy `GET /v1/business-cockpit/summary` machine summary alongside the treasury and payment truth summaries
|
|
122
|
+
|
|
118
123
|
- `public_claimable_profile_count > 0`
|
|
119
124
|
- `public_live_landing_rail_count > 0`
|
|
120
125
|
- the desired rail family changes from readiness-only to live claimable
|
|
@@ -198,15 +203,15 @@ Use the stack like this:
|
|
|
198
203
|
- configured treasury destination = merchant-facing landing posture in the runtime
|
|
199
204
|
- external rail / settlement integration = actual custody and payout layer
|
|
200
205
|
|
|
201
|
-
If you want the native BSV continuity path specifically, continue with [BSV_TERANODE_PLATFORM_DISCONTINUITY_RUNBOOK.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/BSV_TERANODE_PLATFORM_DISCONTINUITY_RUNBOOK.md).
|
|
202
|
-
|
|
203
|
-
All activated treasury rails now follow one centralized operator path:
|
|
204
|
-
|
|
205
|
-
- maintain the real receive destinations in your private treasury source of truth outside the repos
|
|
206
|
-
- expose only public-safe claim/readiness truth through `xytara`
|
|
207
|
-
- verify the live activation boundary with `npm run verify:final-activation`
|
|
208
|
-
|
|
209
|
-
That means the treasury activation path for `hedera_hbar`, `kaspa_kas`, `polkadot_dot`, `digibyte_dgb`, `constellation_dag`, `xpr_payment`, `metal_payment`, and `antelope_payment` is now centralized here rather than split across separate per-rail setup files.
|
|
206
|
+
If you want the native BSV continuity path specifically, continue with [BSV_TERANODE_PLATFORM_DISCONTINUITY_RUNBOOK.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/BSV_TERANODE_PLATFORM_DISCONTINUITY_RUNBOOK.md).
|
|
207
|
+
|
|
208
|
+
All activated treasury rails now follow one centralized operator path:
|
|
209
|
+
|
|
210
|
+
- maintain the real receive destinations in your private treasury source of truth outside the repos
|
|
211
|
+
- expose only public-safe claim/readiness truth through `xytara`
|
|
212
|
+
- verify the live activation boundary with `npm run verify:final-activation`
|
|
213
|
+
|
|
214
|
+
That means the treasury activation path for `hedera_hbar`, `kaspa_kas`, `polkadot_dot`, `digibyte_dgb`, `constellation_dag`, `xpr_payment`, `metal_payment`, and `antelope_payment` is now centralized here rather than split across separate per-rail setup files.
|
|
210
215
|
|
|
211
216
|
## Operator Visibility
|
|
212
217
|
|
package/RELEASE_NOTES.md
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
`xytara` 3.
|
|
1
|
+
`xytara` 3.1.1 is the synchronized security and stability release for the live runtime, payment, execution, delivery, and public first-contact line.
|
|
2
2
|
|
|
3
|
-
This release
|
|
3
|
+
This release closes the authorization and payment-verification gaps found in the post-launch review while keeping the public runtime truth models, catalog, first-run path, and naxytra contract surfaces unchanged.
|
|
4
4
|
|
|
5
5
|
Highlights:
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
7
|
+
- operator write surfaces now fail closed: credit minting, allocation reversal, rail-credit application, budgets, agents, economics receipts, job operator actions, participant admission, the operator-shell admin pack, and agent-account issuance all require `Authorization: Bearer` with `XYTARA_ACCOUNT_AUTH_BEARER_TOKEN`, and return `operator_auth_not_configured` instead of opening up when the token is unset
|
|
8
|
+
- credit consumption requires either the operator bearer or a valid delegated spend credential
|
|
9
|
+
- bearer and credit-bridge token comparisons use constant-time comparison, and the business cockpit no longer accepts query-string tokens
|
|
10
|
+
- `XYTARA_PAYMENT_VERIFICATION_MODE` now defaults to `local_signed`; `presence` must be opted into explicitly and logs a startup warning
|
|
11
|
+
- the MCP execution target verifies and settles x402 payments through a facilitator before serving paid methods, returns `PAYMENT-RESPONSE` on paid responses, rejects malformed or unadvertised payment payloads, and fails closed when the facilitator is unreachable; `initialize`, `ping`, and `tools/list` stay free so MCP clients can connect
|
|
12
|
+
- the credit allocation ledger is no longer truncated, so account balances derived from allocation events stay correct beyond 200 events
|
|
13
|
+
- the client binds every paid quote to its account and uses collision-free payment nonces, which strict verification previously rejected as account mismatches or replayed nonces
|
|
14
|
+
- `/health` reports restore status honestly and a new `/ready` route returns `503` when runtime state restore or the last snapshot flush failed
|
|
15
|
+
- the service verifier now covers unauthenticated mint, wrong operator tokens, credit overdraw, forged and unsigned checkout webhooks, replayed payment nonces, forged payment signatures, unregistered wallets, and query-token rejection; the MCP executor verifier runs against a mock facilitator
|
|
16
|
+
- the MCP executor publish workflow skips publishing when the registry already carries the current version
|
|
17
|
+
- bundled examples configure a local demo wallet and demo operator tokens explicitly instead of relying on open defaults
|
package/SERVICE_CONTRACT.md
CHANGED
|
@@ -58,6 +58,9 @@ Core routes:
|
|
|
58
58
|
- `GET /v1/activity-ledger/summary`
|
|
59
59
|
- `GET /v1/operator-observability`
|
|
60
60
|
- `GET /v1/operator-observability/summary`
|
|
61
|
+
- `GET /v1/business-cockpit`
|
|
62
|
+
- `GET /v1/business-cockpit/summary`
|
|
63
|
+
- `GET /business-cockpit`
|
|
61
64
|
- `GET /v1/treasury-destinations`
|
|
62
65
|
- `GET /v1/treasury-destinations/summary`
|
|
63
66
|
- `GET /v1/treasury-destinations/operator-pack`
|
|
@@ -79,6 +82,15 @@ Core routes:
|
|
|
79
82
|
- `GET /v1/shared-signals/summary`
|
|
80
83
|
- `GET /v1/feature-control`
|
|
81
84
|
- `GET /v1/feature-control/summary`
|
|
85
|
+
- `GET /v1/adapter-certification`
|
|
86
|
+
- `GET /v1/adapter-certification/summary`
|
|
87
|
+
- `GET /v1/adapter-certification/:front_id`
|
|
88
|
+
- `GET /v1/trust-portability-boundary`
|
|
89
|
+
- `GET /v1/trust-portability-boundary/summary`
|
|
90
|
+
- `GET /v1/trust-portability-boundary/:axis_id`
|
|
91
|
+
- `GET /v1/signed-audit-provenance`
|
|
92
|
+
- `GET /v1/signed-audit-provenance/summary`
|
|
93
|
+
- `GET /v1/signed-audit-provenance/:surface_id`
|
|
82
94
|
- `GET /v1/catalog`
|
|
83
95
|
- `GET /v1/catalog/summary`
|
|
84
96
|
- `GET /v1/catalog/task?ref=<task_ref_or_alias>`
|
|
@@ -115,11 +127,12 @@ Operational note:
|
|
|
115
127
|
- `GET /v1/pricing-optimization/quote-cohorts` and `GET /v1/pricing-optimization/recommendations` expose how quote conversion and abandonment behave by pricing band, payment protocol, and settlement mode so monetization tuning can be data-shaped rather than guessed
|
|
116
128
|
- `GET /v1/activity-ledger` exposes one operator-grade ledger across quote, payment, settlement, delivery, dispute, refund, credit-grant, bridge, and integration-admission activity so operators can answer who did what, paid what, received what, and through which route
|
|
117
129
|
- `GET /v1/operator-observability` exposes a protected read-only pack across activity, payment, delivery, settlement, adapter failure, credit-grant, and pricing telemetry posture without moving funds or submitting settlements
|
|
130
|
+
- `GET /v1/business-cockpit` and `GET /business-cockpit` expose one protected operator analytics surface that bundles release posture, treasury landing truth, runtime activity, settlement readiness, and linked proof-facing health into a single private JSON or HTML cockpit
|
|
118
131
|
- `GET /v1/treasury-destinations` is public-readiness only: it shows which rails are operationally configured without exposing actual landing references
|
|
119
132
|
- `GET /v1/treasury-destinations/operator-pack` is the operator-only custody surface and is where real destination references belong
|
|
120
133
|
- `POST /v1/treasury-destinations/validate-preview` lets operators preview per-rail custody readiness before they claim a rail as operational
|
|
121
134
|
- `GET /v1/treasury-egress-policy` makes the treasury black-hole posture explicit: funds can come in easily through configured rails, but treasury release remains blocked until manual operator review with explicit reason and signoff
|
|
122
|
-
- when `XYTARA_ACCOUNT_AUTH_BEARER_TOKEN` is configured, `GET /v1/activity-ledger`, `GET /v1/operator-observability`, `GET /v1/treasury-destinations/operator-pack`, `POST /v1/treasury-destinations/validate-preview`, and `GET /v1/treasury-egress-policy` require that bearer token
|
|
135
|
+
- when `XYTARA_ACCOUNT_AUTH_BEARER_TOKEN` is configured, `GET /v1/activity-ledger`, `GET /v1/operator-observability`, `GET /v1/business-cockpit`, `GET /v1/business-cockpit/summary`, `GET /business-cockpit`, `GET /v1/treasury-destinations/operator-pack`, `POST /v1/treasury-destinations/validate-preview`, and `GET /v1/treasury-egress-policy` require that bearer token
|
|
123
136
|
- `GET /v1/providers` exposes the OpenAI Codex and Claude/MCP family as first-class provider entry lanes
|
|
124
137
|
- `GET /v1/frameworks` exposes LangGraph, LangChain, AutoGen, and Semantic Kernel as the primary runtime framework lanes, with CrewAI and LlamaIndex surfaced as registry-backed framework breadth
|
|
125
138
|
- `GET /v1/protocols` exposes the canonical protocol and transport family across MCP, A2A, A2C, ACP, gRPC, Kafka, NATS, MQTT, ROS2, and webhook-event-bus posture
|
|
@@ -129,6 +142,9 @@ Operational note:
|
|
|
129
142
|
- `GET /v1/artifact-distribution` exposes OCI-style artifact distribution posture for adapters, submission bundles, registry snapshots, and release artifacts
|
|
130
143
|
- `GET /v1/shared-signals` exposes OpenID Shared Signals and CAEP-aligned risk and identity event exchange posture without replacing native runtime decisions
|
|
131
144
|
- `GET /v1/feature-control` exposes OpenFeature/OFREP-aligned rollout and policy portability posture across pricing, authority, identity, trust, and release gates
|
|
145
|
+
- `GET /v1/adapter-certification` exposes the front-specific adapter certification contract and its machine-readable compatibility states
|
|
146
|
+
- `GET /v1/trust-portability-boundary` exposes the bounded trust portability contract for identity, delegation, delivery, and settlement-linked followthrough
|
|
147
|
+
- `GET /v1/signed-audit-provenance` exposes the signed audit and provenance surface map for selected evidence-bearing runtime and release lanes
|
|
132
148
|
- accepted payments then flow into payment-ledger, treasury-summary, rail-summary, and reconciliation surfaces
|
|
133
149
|
- the default first-party settlement posture is now `bsv_teranode`, and `x402` challenge quotes carry native BSV/Teranode settlement hints when that default path is in use
|
|
134
150
|
- the default machine-payment lane remains `x402`, while credits and `stripe_mpp` provide repeat-use and human-funding paths, and future protocol expansion should normally enter through the payment front rather than replacing the default machine lane
|
package/START_HERE.md
CHANGED
|
@@ -4,7 +4,7 @@ This is the shortest reliable path for understanding and using the public `xytar
|
|
|
4
4
|
|
|
5
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
6
|
|
|
7
|
-
The
|
|
7
|
+
The synchronized `3.0.0` launch line shipped and is live. The current public line is the synchronized security and stability release described in [RELEASE_NOTES.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/RELEASE_NOTES.md); operator write surfaces fail closed and payment acceptance defaults to signed verification, so configure the operator tokens and a wallet registry before expecting paid or operator flows to work.
|
|
8
8
|
|
|
9
9
|
## 1. Understand The Role
|
|
10
10
|
|
|
@@ -97,13 +97,13 @@ This is the fastest way to see the intended package story end-to-end.
|
|
|
97
97
|
|
|
98
98
|
If you want the clearest cross-repo adoption path instead of the broad package tour, continue with:
|
|
99
99
|
|
|
100
|
-
- [CARRIED_HANDOFF_DEMO.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/CARRIED_HANDOFF_DEMO.md)
|
|
100
|
+
- [CARRIED_HANDOFF_DEMO.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/CARRIED_HANDOFF_DEMO.md)
|
|
101
101
|
|
|
102
102
|
If you want the shortest neutral external-adoption bundle, continue with:
|
|
103
103
|
|
|
104
|
-
- [PARTNER_READY_PATH.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/PARTNER_READY_PATH.md)
|
|
105
|
-
- [PUBLIC_DEMO_SCRIPT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/PUBLIC_DEMO_SCRIPT.md)
|
|
106
|
-
- [EXAMPLE_PATHS.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/EXAMPLE_PATHS.md)
|
|
104
|
+
- [PARTNER_READY_PATH.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/PARTNER_READY_PATH.md)
|
|
105
|
+
- [PUBLIC_DEMO_SCRIPT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/PUBLIC_DEMO_SCRIPT.md)
|
|
106
|
+
- [EXAMPLE_PATHS.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/EXAMPLE_PATHS.md)
|
|
107
107
|
- `node examples/partner_launch_walkthrough.js`
|
|
108
108
|
|
|
109
109
|
## 4. Verify The Whole Package
|
|
@@ -141,8 +141,8 @@ That gate is stricter than local verification and expects:
|
|
|
141
141
|
|
|
142
142
|
For long-term product understanding, read:
|
|
143
143
|
|
|
144
|
-
- [FINAL_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/FINAL_CONTRACT.md)
|
|
145
|
-
- [SERVICE_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/SERVICE_CONTRACT.md)
|
|
144
|
+
- [FINAL_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/FINAL_CONTRACT.md)
|
|
145
|
+
- [SERVICE_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/SERVICE_CONTRACT.md)
|
|
146
146
|
- `GET /openapi.json`
|
|
147
147
|
- `GET /asyncapi.json`
|
|
148
148
|
- `GET /cloudevents.json`
|
|
@@ -157,6 +157,9 @@ For long-term product understanding, read:
|
|
|
157
157
|
- `GET /v1/artifact-distribution`
|
|
158
158
|
- `GET /v1/shared-signals`
|
|
159
159
|
- `GET /v1/feature-control`
|
|
160
|
+
- `GET /v1/adapter-certification`
|
|
161
|
+
- `GET /v1/trust-portability-boundary`
|
|
162
|
+
- `GET /v1/signed-audit-provenance`
|
|
160
163
|
- `GET /v1/mcp`
|
|
161
164
|
- `GET /v1/a2a`
|
|
162
165
|
- `GET /v1/a2c`
|
|
@@ -195,26 +198,26 @@ For long-term product understanding, read:
|
|
|
195
198
|
- `GET /v1/capability-registry/commercialization-summary`
|
|
196
199
|
- `GET /v1/go-live`
|
|
197
200
|
- `GET /v1/go-live/summary`
|
|
198
|
-
- [PROGRAM_STATUS.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/PROGRAM_STATUS.md)
|
|
199
|
-
- [OPERATOR_START_HERE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/OPERATOR_START_HERE.md)
|
|
200
|
-
- [OPERATIONS_RUNBOOK.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/OPERATIONS_RUNBOOK.md)
|
|
201
|
-
- [PROGRAM_COMPLETE_RELEASE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/PROGRAM_COMPLETE_RELEASE.md)
|
|
202
|
-
- [WHY_XYTARA_XOONYA.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/WHY_XYTARA_XOONYA.md)
|
|
203
|
-
- [CARRIED_HANDOFF_DEMO.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/CARRIED_HANDOFF_DEMO.md)
|
|
204
|
-
- [PARTNER_READY_PATH.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/PARTNER_READY_PATH.md)
|
|
205
|
-
- [BSV_TERANODE_PLATFORM_DISCONTINUITY_RUNBOOK.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/BSV_TERANODE_PLATFORM_DISCONTINUITY_RUNBOOK.md)
|
|
206
|
-
- [REAL_PAYMENT_SETUP.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/REAL_PAYMENT_SETUP.md)
|
|
201
|
+
- [PROGRAM_STATUS.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/PROGRAM_STATUS.md)
|
|
202
|
+
- [OPERATOR_START_HERE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/OPERATOR_START_HERE.md)
|
|
203
|
+
- [OPERATIONS_RUNBOOK.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/OPERATIONS_RUNBOOK.md)
|
|
204
|
+
- [PROGRAM_COMPLETE_RELEASE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/PROGRAM_COMPLETE_RELEASE.md)
|
|
205
|
+
- [WHY_XYTARA_XOONYA.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/WHY_XYTARA_XOONYA.md)
|
|
206
|
+
- [CARRIED_HANDOFF_DEMO.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/CARRIED_HANDOFF_DEMO.md)
|
|
207
|
+
- [PARTNER_READY_PATH.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/PARTNER_READY_PATH.md)
|
|
208
|
+
- [BSV_TERANODE_PLATFORM_DISCONTINUITY_RUNBOOK.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/BSV_TERANODE_PLATFORM_DISCONTINUITY_RUNBOOK.md)
|
|
209
|
+
- [REAL_PAYMENT_SETUP.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/REAL_PAYMENT_SETUP.md)
|
|
207
210
|
- private treasury source of truth: `your private treasury source-of-truth file outside the repos`
|
|
208
|
-
- [TERMINOLOGY.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/TERMINOLOGY.md)
|
|
211
|
+
- [TERMINOLOGY.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/TERMINOLOGY.md)
|
|
209
212
|
|
|
210
213
|
## 6. If You Are Building Adapters
|
|
211
214
|
|
|
212
215
|
Continue with:
|
|
213
216
|
|
|
214
|
-
- [ADAPTER_START_HERE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/ADAPTER_START_HERE.md)
|
|
215
|
-
- [adapters/AUTHORING_GUIDE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/adapters/AUTHORING_GUIDE.md)
|
|
216
|
-
- [adapters/ONBOARDING_POSTURE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/adapters/ONBOARDING_POSTURE.md)
|
|
217
|
-
- [adapters/THIRD_PARTY_SUBMISSION_PROCESS.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/adapters/THIRD_PARTY_SUBMISSION_PROCESS.md)
|
|
217
|
+
- [ADAPTER_START_HERE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/ADAPTER_START_HERE.md)
|
|
218
|
+
- [adapters/AUTHORING_GUIDE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/adapters/AUTHORING_GUIDE.md)
|
|
219
|
+
- [adapters/ONBOARDING_POSTURE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/adapters/ONBOARDING_POSTURE.md)
|
|
220
|
+
- [adapters/THIRD_PARTY_SUBMISSION_PROCESS.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/adapters/THIRD_PARTY_SUBMISSION_PROCESS.md)
|
|
218
221
|
|
|
219
222
|
## 7. Production Reading Rule
|
|
220
223
|
|
|
@@ -261,9 +264,9 @@ Public/private rule:
|
|
|
261
264
|
|
|
262
265
|
Use:
|
|
263
266
|
|
|
264
|
-
- [PROGRAM_STATUS.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/PROGRAM_STATUS.md)
|
|
265
|
-
- [OPERATOR_START_HERE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/OPERATOR_START_HERE.md)
|
|
267
|
+
- [PROGRAM_STATUS.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/PROGRAM_STATUS.md)
|
|
268
|
+
- [OPERATOR_START_HERE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/OPERATOR_START_HERE.md)
|
|
266
269
|
|
|
267
270
|
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.
|
|
268
271
|
|
|
269
|
-
If your host does not provide persistent disk, use [SUPABASE_RUNTIME_STATE_SETUP.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/SUPABASE_RUNTIME_STATE_SETUP.md) instead.
|
|
272
|
+
If your host does not provide persistent disk, use [SUPABASE_RUNTIME_STATE_SETUP.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/SUPABASE_RUNTIME_STATE_SETUP.md) instead.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// Local demo environment for the bundled examples.
|
|
4
|
+
//
|
|
5
|
+
// The runtime is fail-closed by default: signed payment acceptance (`local_signed`) and
|
|
6
|
+
// operator write surfaces that require bearer tokens. The examples therefore register a
|
|
7
|
+
// demo wallet and demo operator tokens before the in-process server is created. Every value
|
|
8
|
+
// here is only applied when the corresponding variable is not already set, so a real
|
|
9
|
+
// configuration always wins.
|
|
10
|
+
|
|
11
|
+
function setDefault(name, value) {
|
|
12
|
+
if (typeof process.env[name] !== "string" || !process.env[name].trim()) {
|
|
13
|
+
process.env[name] = value;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
setDefault("XYTARA_PAYMENT_VERIFICATION_MODE", "local_signed");
|
|
18
|
+
setDefault(
|
|
19
|
+
"XYTARA_WALLET_REGISTRY_JSON",
|
|
20
|
+
JSON.stringify([
|
|
21
|
+
{
|
|
22
|
+
wallet_id: "demo-wallet",
|
|
23
|
+
secret: "demo-wallet-secret",
|
|
24
|
+
account_id: "acct_demo",
|
|
25
|
+
enabled: true
|
|
26
|
+
}
|
|
27
|
+
])
|
|
28
|
+
);
|
|
29
|
+
setDefault("XYTARA_CREDIT_BRIDGE_BEARER_TOKEN", "demo-credit-bridge-token");
|
|
30
|
+
setDefault("XYTARA_ACCOUNT_AUTH_BEARER_TOKEN", "demo-account-auth-token");
|
|
31
|
+
setDefault("XYTARA_BSV_TERANODE_MERCHANT_ADDRESS", "1MerchantBsvAddressExample");
|
|
32
|
+
setDefault("XYTARA_BSV_TERANODE_SETTLEMENT_RUNTIME_MODE", "mock");
|
|
33
|
+
|
|
34
|
+
module.exports = {
|
|
35
|
+
demoWalletId: "demo-wallet",
|
|
36
|
+
demoWalletSecret: "demo-wallet-secret",
|
|
37
|
+
demoAccountId: "acct_demo",
|
|
38
|
+
demoCreditBridgeToken: process.env.XYTARA_CREDIT_BRIDGE_BEARER_TOKEN,
|
|
39
|
+
demoAccountAuthToken: process.env.XYTARA_ACCOUNT_AUTH_BEARER_TOKEN
|
|
40
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
const assert = require("assert");
|
|
4
|
+
const demoEnv = require("./_demo_env");
|
|
4
5
|
const { createServer } = require("../server");
|
|
5
6
|
|
|
6
7
|
async function fetchJson(url, options) {
|
|
@@ -42,7 +43,7 @@ async function main() {
|
|
|
42
43
|
external_ref: "external-funded-runtime-demo-1"
|
|
43
44
|
},
|
|
44
45
|
{
|
|
45
|
-
authorization:
|
|
46
|
+
authorization: `Bearer ${demoEnv.demoCreditBridgeToken}`
|
|
46
47
|
}
|
|
47
48
|
);
|
|
48
49
|
assert.strictEqual(grant.ok, true, "credit bridge grant missing");
|