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.
Files changed (41) hide show
  1. package/.env.example +3 -1
  2. package/README.md +76 -7
  3. package/REAL_PAYMENT_SETUP.md +17 -12
  4. package/RELEASE_NOTES.md +13 -11
  5. package/SERVICE_CONTRACT.md +17 -1
  6. package/START_HERE.md +27 -24
  7. package/examples/_demo_env.js +40 -0
  8. package/examples/adapter_review_walkthrough.js +1 -0
  9. package/examples/export_carried_handoff.js +1 -0
  10. package/examples/funded_runtime_walkthrough.js +2 -1
  11. package/examples/partner_launch_walkthrough.js +1 -0
  12. package/examples/quickstart.js +1341 -1340
  13. package/fixtures/catalog.js +64 -0
  14. package/index.js +76 -0
  15. package/integrations/dispatch.js +3 -1
  16. package/lib/acp_lane_contract.js +54 -0
  17. package/lib/adapter_certification_contract.js +130 -0
  18. package/lib/adapter_depth_contract.js +1 -1
  19. package/lib/authority_binding_lifecycle_contract.js +182 -0
  20. package/lib/business_cockpit.js +378 -0
  21. package/lib/capability_execution_truth.js +4 -1
  22. package/lib/catalog_family_model.js +3 -0
  23. package/lib/commerce_client.js +14 -3
  24. package/lib/commerce_economics.js +2 -1
  25. package/lib/crypto_agility_matrix.js +125 -0
  26. package/lib/http_transport.js +3 -2
  27. package/lib/integration_matrix_contract.js +3 -0
  28. package/lib/machine_identity_registry_contract.js +199 -0
  29. package/lib/mcp_lane_contract.js +27 -0
  30. package/lib/offline_verifiability_recovery_contract.js +155 -0
  31. package/lib/operational_receipt_contract.js +165 -0
  32. package/lib/payment_config.js +3 -1
  33. package/lib/protocol_lane_contract.js +3 -0
  34. package/lib/public_surface_policy_contract.js +111 -0
  35. package/lib/signed_audit_provenance_contract.js +83 -0
  36. package/lib/trust_portability_boundary_contract.js +72 -0
  37. package/package.json +103 -101
  38. package/scripts/verify_control_plane_contracts.js +34 -0
  39. package/scripts/verify_control_plane_routes.js +70 -0
  40. package/scripts/verify_service.js +222 -24
  41. 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
- XYTARA_PAYMENT_VERIFICATION_MODE=presence
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
- - set `XYTARA_PAYMENT_VERIFICATION_MODE=local_signed` to enforce verifiable signed payment acceptance instead of plain header presence
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
@@ -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` now supports two payment-acceptance modes:
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.0.1 is the synchronized stability patch for the live runtime, payment, execution, delivery, treasury activation, and public first-contact line.
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 keeps the public runtime line synchronized after the major cut by preserving the same live runtime truth models, widened finish-line scope, and naxytra public contract, proof, release, and gate surfaces while tightening the installable package experience for outside agents and builders.
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
- - keeps `/v1/execution-truth` and `/v1/execution-truth/summary` as the named runtime fact boundary
8
- - keeps `/v1/default-path` and `/v1/default-path/summary` as the named multi-surface runtime entry boundary
9
- - keeps `/v1/payment-rail-truth` and `/v1/payment-rail-truth/summary` as the named payment and settlement-claim boundary
10
- - keeps `/v1/adapter-protocol-truth` and `/v1/adapter-protocol-truth/summary` as the named first-party front and bounded bridge boundary
11
- - keeps provider-runtime journeys, delivery summary, runtime durability, revenue-launch paths, market-lane depth surfaces, and the fully activated treasury landing truth publicly inspectable inside the final runtime story
12
- - preserves adapter-depth boundaries, pricing guardrails, treasury public-claim safety, read-only operator observability boundaries, and the widened live rail family as part of the launch-grade runtime posture
13
- - keeps the live public catalog, full-catalog claim, first-run path, release kit, public proof surfaces, and final `3.0.1` contract/gate references aligned with the release line so operators and outside builders see the same truth
14
- - keeps the canonical `https://naxytra.com/xytara` public product URL and synchronized naxytra release posture intact
15
- - verifies the release candidate, full package verifier, umbrella pre-deploy gates, and clean-consumer release smoke before the synchronized stability patch
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
@@ -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 product-side implementation and treasury activation work for the widened `3.0.0` finish line are now complete. The remaining step is the synchronized public `3.0.0` release cut, publish, deploy, and verification sequence documented in [NAXYTRA_3_0_0_RELEASE_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/docs/release/NAXYTRA_3_0_0_RELEASE_CONTRACT.md) and [PUBLISH_PLAN.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xytara/PUBLISH_PLAN.md).
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
+ require("./_demo_env");
4
5
  const { createServer } = require("../server");
5
6
 
6
7
  async function fetchJson(url) {
@@ -3,6 +3,7 @@
3
3
  const assert = require("assert");
4
4
  const fs = require("fs");
5
5
  const path = require("path");
6
+ require("./_demo_env");
6
7
  const { createServer } = require("../server");
7
8
  const { createClient } = require("../index.js");
8
9
 
@@ -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: "Bearer demo-credit-bridge-token"
46
+ authorization: `Bearer ${demoEnv.demoCreditBridgeToken}`
46
47
  }
47
48
  );
48
49
  assert.strictEqual(grant.ok, true, "credit bridge grant missing");
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  const assert = require("assert");
4
+ require("./_demo_env");
4
5
  const { createServer } = require("../server");
5
6
 
6
7
  async function fetchJson(url, options) {