xytara 2.4.0 → 2.6.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 +29 -0
- package/BSV_TERANODE_SETUP.md +43 -0
- package/README.md +82 -7
- package/REAL_PAYMENT_SETUP.md +61 -0
- package/RELEASE_NOTES.md +23 -17
- package/SERVICE_CONTRACT.md +106 -0
- package/START_HERE.md +146 -5
- package/TREASURY_DESTINATIONS.example.json +66 -0
- package/TREASURY_DESTINATIONS.production.template.json +108 -0
- package/adapters/examples/langchain-reference-execution-adapter.js +81 -0
- package/adapters/examples/langchain-reference-execution-adapter.manifest.json +79 -0
- package/adapters/examples/langgraph-reference-execution-adapter.js +81 -0
- package/adapters/examples/langgraph-reference-execution-adapter.manifest.json +79 -0
- package/bin/xytara-first-run.js +244 -0
- package/bin/xytara.js +80 -0
- package/index.js +1 -1
- package/integrations/dispatch.js +7 -2
- package/integrations/registry.js +123 -2
- package/lib/a2a_lane_contract.js +104 -0
- package/lib/a2c_lane_contract.js +111 -0
- package/lib/activity_audit_contract.js +322 -0
- package/lib/adapter_depth_contract.js +156 -0
- package/lib/artifact_distribution_lane_contract.js +54 -0
- package/lib/asyncapi_contract.js +150 -0
- package/lib/auth_interop_contract.js +80 -0
- package/lib/bolt_lane_contract.js +55 -0
- package/lib/bolt_payment_front.js +172 -0
- package/lib/capability_execution_truth.js +269 -0
- package/lib/capability_registry.js +39 -2
- package/lib/checkout_event_security.js +142 -0
- package/lib/cloudevents_contract.js +80 -0
- package/lib/command_flow.js +169 -36
- package/lib/commerce_artifacts.js +23 -4
- package/lib/commerce_checkout.js +134 -4
- package/lib/commerce_client.js +52 -0
- package/lib/commerce_economics.js +109 -9
- package/lib/commerce_runtime.js +38 -2
- package/lib/commerce_shell.js +4 -2
- package/lib/erc8004_lane_contract.js +65 -0
- package/lib/event_system_lane_contract.js +75 -0
- package/lib/external_execution_runtime.js +132 -0
- package/lib/feature_control_lane_contract.js +54 -0
- package/lib/framework_lane_contract.js +89 -0
- package/lib/go_live_operator_pack.js +339 -0
- package/lib/http_transport.js +32 -0
- package/lib/identity_interop_contract.js +82 -0
- package/lib/integration_matrix_contract.js +99 -0
- package/lib/l402_lane_contract.js +55 -0
- package/lib/l402_payment_front.js +192 -0
- package/lib/major_rails_lane_contract.js +90 -0
- package/lib/mcp_lane_contract.js +110 -0
- package/lib/network_transport.js +110 -0
- package/lib/openapi_contract.js +296 -0
- package/lib/operator_intelligence.js +215 -1
- package/lib/payment_config.js +80 -3
- package/lib/payment_front_registry.js +53 -0
- package/lib/payment_protocol_contract.js +165 -0
- package/lib/payment_verification.js +23 -3
- package/lib/pricing_optimization_contract.js +556 -0
- package/lib/protocol_lane_contract.js +114 -0
- package/lib/provenance_lane_contract.js +54 -0
- package/lib/provider_lane_contract.js +72 -0
- package/lib/release_history.js +31 -0
- package/lib/request_rate_limit.js +144 -0
- package/lib/runtime_bridge.js +10 -2
- package/lib/runtime_operations_worker.js +282 -0
- package/lib/settlement_bsv_live.js +79 -4
- package/lib/settlement_lane_contract.js +111 -0
- package/lib/shared_signals_lane_contract.js +54 -0
- package/lib/stablecoin_lane_contract.js +76 -0
- package/lib/stripe_mpp_lane_contract.js +96 -0
- package/lib/stripe_mpp_payment_front.js +158 -0
- package/lib/telemetry_lane_contract.js +54 -0
- package/lib/treasury_destinations_contract.js +543 -0
- package/lib/treasury_egress_policy_contract.js +91 -0
- package/lib/treasury_lane_contract.js +84 -0
- package/lib/x402_lane_contract.js +118 -0
- package/package.json +18 -23
- package/server.js +994 -88
- package/OPERATIONS_RUNBOOK.md +0 -65
- package/OPERATOR_START_HERE.md +0 -63
- package/PROGRAM_COMPLETE_RELEASE.md +0 -63
- package/PROGRAM_STATUS.md +0 -57
- package/PUBLISH_PLAN.md +0 -14
- package/RELEASE_CHECKLIST.md +0 -16
package/.env.example
CHANGED
|
@@ -21,6 +21,35 @@ XYTARA_BSV_TERANODE_SATS_PER_USD_CENT=100
|
|
|
21
21
|
XYTARA_BSV_TERANODE_SETTLEMENT_RUNTIME_MODE=mock
|
|
22
22
|
XYTARA_CREDIT_BRIDGE_BEARER_TOKEN=
|
|
23
23
|
XYTARA_ACCOUNT_AUTH_BEARER_TOKEN=
|
|
24
|
+
XYTARA_CALLBACK_DELIVERY_ENABLED=true
|
|
25
|
+
XYTARA_CALLBACK_SIGNING_SECRET=
|
|
26
|
+
XYTARA_CALLBACK_TIMEOUT_MS=5000
|
|
27
|
+
XYTARA_CALLBACK_MAX_ATTEMPTS=5
|
|
28
|
+
XYTARA_CALLBACK_RETRY_BASE_MS=2000
|
|
29
|
+
XYTARA_RUNTIME_WORKER_INTERVAL_MS=500
|
|
30
|
+
XYTARA_SETTLEMENT_REFRESH_INTERVAL_MS=1500
|
|
31
|
+
XYTARA_RATE_LIMIT_ENABLED=true
|
|
32
|
+
XYTARA_RATE_LIMIT_WINDOW_MS=60000
|
|
33
|
+
XYTARA_RATE_LIMIT_MAX_REQUESTS=600
|
|
34
|
+
XYTARA_EXTERNAL_EXECUTION_REQUIRED=false
|
|
35
|
+
XYTARA_EXECUTION_TARGETS_JSON=[]
|
|
36
|
+
XYTARA_L402_ENABLED=false
|
|
37
|
+
XYTARA_L402_SHARED_SECRET=
|
|
38
|
+
XYTARA_BOLT_ENABLED=false
|
|
39
|
+
XYTARA_BOLT_SHARED_SECRET=
|
|
40
|
+
XYTARA_BOLT_NETWORK=mainnet
|
|
41
|
+
XYTARA_BOLT_PROOF_MODE=spv_or_block_header_verifiable
|
|
42
|
+
XYTARA_BOLT_MAX_AGE_SECONDS=300
|
|
43
|
+
XYTARA_MPP_ENABLED=false
|
|
44
|
+
XYTARA_MPP_SHARED_SECRET=
|
|
45
|
+
XYTARA_MPP_PROVIDER=stripe_tempo_compatible
|
|
46
|
+
XYTARA_MPP_SETTLEMENT_FAMILY=cards_or_stablecoin_or_lightning
|
|
47
|
+
XYTARA_MPP_MAX_AGE_SECONDS=300
|
|
48
|
+
XYTARA_NETWORK_DNS_RESULT_ORDER=verbatim
|
|
49
|
+
XYTARA_NETWORK_PREFERRED_IP_FAMILY=auto
|
|
50
|
+
XYTARA_EXTERNAL_EXECUTION_IP_FAMILY=auto
|
|
51
|
+
XYTARA_CALLBACK_IP_FAMILY=auto
|
|
52
|
+
XYTARA_SETTLEMENT_IP_FAMILY=auto
|
|
24
53
|
XYTARA_STATE_FILE=./var/xytara/runtime-state.json
|
|
25
54
|
XYTARA_STATE_SNAPSHOT_INTERVAL_MS=5000
|
|
26
55
|
XYTARA_SUPABASE_URL=
|
package/BSV_TERANODE_SETUP.md
CHANGED
|
@@ -13,6 +13,8 @@ Use this guide when you want the public package to emit BSV/Teranode-aware payme
|
|
|
13
13
|
|
|
14
14
|
This is still a runtime-side settlement contract, not a bundled bank or broadcaster. Real external custody still depends on the BSV/Teranode infrastructure you configure behind it.
|
|
15
15
|
|
|
16
|
+
The runtime worker now also auto-submits and auto-refreshes settlement records after payment acceptance, so a configured live rail can progress without manual operator calls.
|
|
17
|
+
|
|
16
18
|
## Recommended Environment
|
|
17
19
|
|
|
18
20
|
```env
|
|
@@ -31,6 +33,7 @@ XYTARA_BSV_TERANODE_RPC_API_KEY=
|
|
|
31
33
|
XYTARA_BSV_TERANODE_RPC_AUTH_HEADER=authorization
|
|
32
34
|
XYTARA_BSV_TERANODE_RPC_AUTH_SCHEME=
|
|
33
35
|
XYTARA_BSV_TERANODE_OBSERVER_URL=
|
|
36
|
+
XYTARA_SETTLEMENT_REFRESH_INTERVAL_MS=1500
|
|
34
37
|
```
|
|
35
38
|
|
|
36
39
|
Optional:
|
|
@@ -63,9 +66,20 @@ then `xytara` can derive a BSV/Teranode treasury destination automatically for `
|
|
|
63
66
|
If you need more explicit destination control, use:
|
|
64
67
|
|
|
65
68
|
- `XYTARA_TREASURY_DESTINATIONS_JSON`
|
|
69
|
+
- `XYTARA_TREASURY_DESTINATIONS_PATH`
|
|
70
|
+
|
|
71
|
+
For a file-driven example, use:
|
|
72
|
+
|
|
73
|
+
- [TREASURY_DESTINATIONS.example.json](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/TREASURY_DESTINATIONS.example.json)
|
|
66
74
|
|
|
67
75
|
with a `bsv_teranode` entry.
|
|
68
76
|
|
|
77
|
+
For `bsv_teranode`, the key real landing field is:
|
|
78
|
+
|
|
79
|
+
- `external_ref`
|
|
80
|
+
|
|
81
|
+
That should hold the actual BSV address or paymail you want accepted funds to land on.
|
|
82
|
+
|
|
69
83
|
## Runtime Behavior
|
|
70
84
|
|
|
71
85
|
For a native `bsv_teranode` quote:
|
|
@@ -84,9 +98,16 @@ For live settlement follow-through after payment acceptance, use:
|
|
|
84
98
|
|
|
85
99
|
- `GET /v1/settlement/bsv-teranode`
|
|
86
100
|
- `GET /v1/settlement/bsv-teranode/:settlement_id`
|
|
101
|
+
- `POST /v1/settlement/bsv-teranode/:settlement_id/submission-material`
|
|
87
102
|
- `POST /v1/settlement/bsv-teranode/:settlement_id/submit`
|
|
88
103
|
- `POST /v1/settlement/bsv-teranode/:settlement_id/refresh`
|
|
89
104
|
|
|
105
|
+
In current runtime posture:
|
|
106
|
+
|
|
107
|
+
- the background runtime worker auto-submits newly created settlement records
|
|
108
|
+
- the same worker auto-refreshes pending live settlements on the configured interval
|
|
109
|
+
- the manual `submit` and `refresh` routes still exist for operator override and debugging
|
|
110
|
+
|
|
90
111
|
If the signed payment payload already carries:
|
|
91
112
|
|
|
92
113
|
- `bsv_teranode.txid`
|
|
@@ -99,6 +120,28 @@ If the signed payment payload also carries:
|
|
|
99
120
|
|
|
100
121
|
then `arc` mode can submit the raw transaction through ARC before refresh.
|
|
101
122
|
|
|
123
|
+
If a settlement record already exists but was created before the payment payload carried finality material, attach the material through the operator route before calling `submit`:
|
|
124
|
+
|
|
125
|
+
```powershell
|
|
126
|
+
$headers = @{
|
|
127
|
+
Authorization = "Bearer $env:XYTARA_ACCOUNT_AUTH_BEARER_TOKEN"
|
|
128
|
+
"Content-Type" = "application/json"
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
$body = @{
|
|
132
|
+
txid = "64_HEX_CHARACTER_BSV_TXID"
|
|
133
|
+
# or raw_tx = "RAW_TRANSACTION_HEX_FOR_ARC_SUBMISSION"
|
|
134
|
+
provider_ref = "operator-finality-material"
|
|
135
|
+
} | ConvertTo-Json
|
|
136
|
+
|
|
137
|
+
Invoke-RestMethod "https://xytara.onrender.com/v1/settlement/bsv-teranode/SETTLEMENT_ID/submission-material" `
|
|
138
|
+
-Method Post `
|
|
139
|
+
-Headers $headers `
|
|
140
|
+
-Body $body
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
The route only accepts a 64-character hex `txid` or raw transaction hex, preserves the existing settlement status, clears prior submission-material errors, and leaves finality to the normal `submit` and `refresh` path.
|
|
144
|
+
|
|
102
145
|
## Notes
|
|
103
146
|
|
|
104
147
|
- `bsv_teranode` is the canonical public settlement name
|
package/README.md
CHANGED
|
@@ -1,23 +1,95 @@
|
|
|
1
1
|
# xytara
|
|
2
2
|
|
|
3
|
-
`xytara` is the
|
|
3
|
+
`xytara` is the runtime and payment layer for the public two-repo stack.
|
|
4
4
|
|
|
5
5
|
It exists to let agents, developers, and systems:
|
|
6
6
|
|
|
7
7
|
- discover tasks and workflows
|
|
8
8
|
- quote work before execution
|
|
9
9
|
- pay through supported payment paths
|
|
10
|
+
- fund reusable balances and credits
|
|
10
11
|
- execute tasks and workflows
|
|
12
|
+
- dispatch runtime work
|
|
11
13
|
- receive deliverables
|
|
14
|
+
- inspect usage, metering, and lifecycle state
|
|
15
|
+
- reconcile payment and settlement outcomes
|
|
12
16
|
- inspect lifecycle state
|
|
13
17
|
- operate through summaries and dashboards
|
|
18
|
+
- review disputes, refunds, and remediation flows
|
|
14
19
|
- integrate third-party adapters
|
|
15
20
|
- emit proof-compatible facts for `xoonya` verification
|
|
16
21
|
|
|
17
|
-
This repo is the
|
|
22
|
+
This repo is the runtime layer. It does not define base proof semantics. It references and emits proof-compatible facts, while `xoonya` owns canonical proof.
|
|
18
23
|
|
|
19
24
|
The 10-phase public program is now complete. `xytara` is in terminal closeout posture rather than active milestone build posture.
|
|
20
25
|
|
|
26
|
+
## Public Boundary
|
|
27
|
+
|
|
28
|
+
The public adoption story is intentionally simple:
|
|
29
|
+
|
|
30
|
+
- install
|
|
31
|
+
- discover
|
|
32
|
+
- quote
|
|
33
|
+
- pay or spend credits
|
|
34
|
+
- execute
|
|
35
|
+
- receive deliverables
|
|
36
|
+
- hand off to `xoonya` when proof or review is needed
|
|
37
|
+
|
|
38
|
+
Public docs and package surfaces should help builders integrate and pay for useful work. Real treasury destinations, custody details, and operator-only controls belong in private runtime configuration and operator handling, not in public marketing surfaces.
|
|
39
|
+
|
|
40
|
+
## Universal Runtime Shape
|
|
41
|
+
|
|
42
|
+
`xytara` is intended to be usable from:
|
|
43
|
+
|
|
44
|
+
- CLI and terminal
|
|
45
|
+
- direct API calls
|
|
46
|
+
- chat and agent environments that can issue HTTP calls
|
|
47
|
+
- browsers and hosted checkout flows
|
|
48
|
+
- operating-system or service wrappers
|
|
49
|
+
- partner systems that need to add adapters or registry integrations
|
|
50
|
+
|
|
51
|
+
The shortest public runtime loop is:
|
|
52
|
+
|
|
53
|
+
- discover
|
|
54
|
+
- quote
|
|
55
|
+
- pay or spend credits
|
|
56
|
+
- execute
|
|
57
|
+
- receive deliverables
|
|
58
|
+
- inspect results and economic state
|
|
59
|
+
- hand off into `xoonya` when proof or review is required
|
|
60
|
+
|
|
61
|
+
The current runtime breadth already includes:
|
|
62
|
+
|
|
63
|
+
- discovery and workflow lookup
|
|
64
|
+
- pricing and quote generation
|
|
65
|
+
- direct machine payment
|
|
66
|
+
- credits, grants, entitlements, and delegated spend
|
|
67
|
+
- execution, result packages, and delivery
|
|
68
|
+
- usage metering and account economics
|
|
69
|
+
- hosted checkout and runtime-bridge dispatch surfaces
|
|
70
|
+
- disputes, refunds, and remediation
|
|
71
|
+
- activity ledger, reconciliation, and treasury-control visibility
|
|
72
|
+
- adapter registration, review, and promotion surfaces
|
|
73
|
+
|
|
74
|
+
## One-Line After Install
|
|
75
|
+
|
|
76
|
+
If you only run two commands after install, use:
|
|
77
|
+
|
|
78
|
+
- `xytara start-here`
|
|
79
|
+
- `xytara first-run`
|
|
80
|
+
- `xytara first-run --run-quote --account ACCOUNT_REF --pretty`
|
|
81
|
+
- `xytara first-run --execute-with-credits --account ACCOUNT_REF --pretty`
|
|
82
|
+
- `xytara release --summary`
|
|
83
|
+
|
|
84
|
+
If you want the shortest machine-readable discovery path, inspect:
|
|
85
|
+
|
|
86
|
+
- `GET /v1/providers`
|
|
87
|
+
- `GET /v1/frameworks`
|
|
88
|
+
- `GET /v1/protocols`
|
|
89
|
+
- `GET /v1/integration-matrix`
|
|
90
|
+
- `GET /v1/telemetry`
|
|
91
|
+
- `GET /v1/provenance`
|
|
92
|
+
|
|
21
93
|
## Start Here
|
|
22
94
|
|
|
23
95
|
If you are new to the public stack, use this order:
|
|
@@ -27,13 +99,10 @@ If you are new to the public stack, use this order:
|
|
|
27
99
|
3. run `npm run verify:all`
|
|
28
100
|
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
|
|
29
101
|
|
|
30
|
-
If you are
|
|
102
|
+
If you are reading the GitHub repo and want deeper product context beyond the npm starter path, continue with:
|
|
31
103
|
|
|
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
104
|
- [WHY_XYTARA_XOONYA.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/WHY_XYTARA_XOONYA.md)
|
|
105
|
+
- [PARTNER_READY_PATH.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/PARTNER_READY_PATH.md)
|
|
37
106
|
|
|
38
107
|
If you want one concrete cross-repo adoption story, start with:
|
|
39
108
|
|
|
@@ -65,6 +134,10 @@ The fastest copy-and-adapt third-party starter now lives under:
|
|
|
65
134
|
- `adapters/examples/minimal-third-party-execution-registration.record.json`
|
|
66
135
|
- `adapters/examples/minimal-third-party-execution.certification-pack.json`
|
|
67
136
|
- `adapters/examples/minimal-third-party-execution.submission-bundle.json`
|
|
137
|
+
- `adapters/examples/langgraph-reference-execution-adapter.manifest.json`
|
|
138
|
+
- `adapters/examples/langgraph-reference-execution-adapter.js`
|
|
139
|
+
- `adapters/examples/langchain-reference-execution-adapter.manifest.json`
|
|
140
|
+
- `adapters/examples/langchain-reference-execution-adapter.js`
|
|
68
141
|
|
|
69
142
|
If you are wiring the native BSV settlement base, continue with:
|
|
70
143
|
|
|
@@ -567,6 +640,8 @@ Initial certification starts with:
|
|
|
567
640
|
npm run verify:adapters
|
|
568
641
|
```
|
|
569
642
|
|
|
643
|
+
The LangGraph and LangChain reference adapters are local contract adapters. They normalize framework-style graph, chain, checkpoint, trace, and context payloads and emit proof-compatible execution facts. They do not claim live external framework-provider execution.
|
|
644
|
+
|
|
570
645
|
The current seed freezes the starter contract for:
|
|
571
646
|
|
|
572
647
|
- adapter identity
|
package/REAL_PAYMENT_SETUP.md
CHANGED
|
@@ -35,6 +35,36 @@ You can also load the wallet registry and treasury map from files through:
|
|
|
35
35
|
- `XYTARA_WALLET_REGISTRY_PATH`
|
|
36
36
|
- `XYTARA_TREASURY_DESTINATIONS_PATH`
|
|
37
37
|
|
|
38
|
+
For multi-rail treasury landings, use:
|
|
39
|
+
|
|
40
|
+
- [TREASURY_DESTINATIONS.example.json](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/TREASURY_DESTINATIONS.example.json)
|
|
41
|
+
- [TREASURY_DESTINATIONS.production.template.json](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xytara/TREASURY_DESTINATIONS.production.template.json)
|
|
42
|
+
|
|
43
|
+
Important:
|
|
44
|
+
|
|
45
|
+
- yes, for rails you actually want to receive and store value on, you should enter real receiving destinations
|
|
46
|
+
- in `xytara`, that is the `external_ref` field for each rail
|
|
47
|
+
- for practical purposes, `external_ref` is where the real landing address / paymail / custody account / external receiving reference goes
|
|
48
|
+
|
|
49
|
+
Examples:
|
|
50
|
+
|
|
51
|
+
- `bsv_teranode`
|
|
52
|
+
- BSV address or paymail
|
|
53
|
+
- `evm` / `base`
|
|
54
|
+
- EVM address
|
|
55
|
+
- `usdc` / `dai`
|
|
56
|
+
- the stablecoin receiving address on the intended chain
|
|
57
|
+
- `monero`
|
|
58
|
+
- Monero address, only if you are explicitly enabling the internal optional privacy reserve
|
|
59
|
+
|
|
60
|
+
Recommended file-driven setup:
|
|
61
|
+
|
|
62
|
+
```env
|
|
63
|
+
XYTARA_TREASURY_DESTINATIONS_PATH=./TREASURY_DESTINATIONS.production.json
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Then create `TREASURY_DESTINATIONS.production.json` from the production template and replace every placeholder `external_ref` with the real destination you control.
|
|
67
|
+
|
|
38
68
|
## What This Gives You
|
|
39
69
|
|
|
40
70
|
With `local_signed` enabled:
|
|
@@ -53,8 +83,10 @@ With `local_signed` enabled:
|
|
|
53
83
|
- nonce uniqueness
|
|
54
84
|
- accepted payments are recorded into:
|
|
55
85
|
- `payment-ledger`
|
|
86
|
+
- `activity-ledger`
|
|
56
87
|
- `treasury-summary`
|
|
57
88
|
- `rail-summary`
|
|
89
|
+
- `treasury-egress-policy`
|
|
58
90
|
- `reconciliation-report`
|
|
59
91
|
|
|
60
92
|
## What It Does Not Do By Itself
|
|
@@ -77,6 +109,23 @@ That is where:
|
|
|
77
109
|
|
|
78
110
|
become the actual real-world landing point for accepted funds.
|
|
79
111
|
|
|
112
|
+
For native `bsv_teranode`, the runtime can now:
|
|
113
|
+
|
|
114
|
+
- create settlement records automatically when payment is accepted
|
|
115
|
+
- auto-submit them when settlement runtime material is available
|
|
116
|
+
- auto-refresh them toward observed or confirmed state through the background runtime worker
|
|
117
|
+
|
|
118
|
+
That still does not remove the need for real merchant identity, real transport, and real operator-controlled destinations.
|
|
119
|
+
|
|
120
|
+
So the short operational rule is:
|
|
121
|
+
|
|
122
|
+
- no, you should not leave treasury rails as abstract names only
|
|
123
|
+
- yes, you should configure real landing destinations for each rail you claim is operational
|
|
124
|
+
- if a rail does not yet have a real destination, keep it visible as supported architecture, but do not claim it as an active treasury landing path
|
|
125
|
+
- public treasury surfaces now expose `public_claim_status`, `public_claim_allowed`, and `public_claim_boundary`; only rails with `public_claim_allowed: true` should be described as live landing paths
|
|
126
|
+
- rails with `readiness_template_only`, `partial_configuration_not_public_claim`, or `fallback_not_public_multi-rail_claim` are architecture/readiness surfaces until real per-rail destinations exist
|
|
127
|
+
- `internal_policy_gated_not_public` rails must stay out of public live-landing claims
|
|
128
|
+
|
|
80
129
|
## Best Current Public Model
|
|
81
130
|
|
|
82
131
|
Use the stack like this:
|
|
@@ -94,8 +143,20 @@ If you want the native BSV path specifically, continue with [BSV_TERANODE_SETUP.
|
|
|
94
143
|
After acceptance, inspect:
|
|
95
144
|
|
|
96
145
|
- `GET /v1/payment-ledger`
|
|
146
|
+
- `GET /v1/activity-ledger`
|
|
97
147
|
- `GET /v1/economics/accounts/:account_id/treasury-summary`
|
|
98
148
|
- `GET /v1/economics/accounts/:account_id/rail-summary`
|
|
149
|
+
- `GET /v1/treasury-destinations`
|
|
150
|
+
- `GET /v1/treasury-destinations/operator-pack`
|
|
151
|
+
- `GET /v1/treasury-egress-policy`
|
|
99
152
|
- `GET /v1/reconciliation-report`
|
|
100
153
|
|
|
101
154
|
These tell you what was accepted, where it was routed in the runtime model, and what still needs reconciliation against the underlying real-world rail.
|
|
155
|
+
|
|
156
|
+
If `XYTARA_ACCOUNT_AUTH_BEARER_TOKEN` is configured, the operator-only routes above require that bearer token.
|
|
157
|
+
|
|
158
|
+
Public/private boundary:
|
|
159
|
+
|
|
160
|
+
- `GET /v1/treasury-destinations` is the safe readiness surface
|
|
161
|
+
- `GET /v1/treasury-destinations/operator-pack` is where real landing refs belong
|
|
162
|
+
- public website and public catalog surfaces should never expose actual treasury destination refs or custody-provider refs
|
package/RELEASE_NOTES.md
CHANGED
|
@@ -1,30 +1,36 @@
|
|
|
1
|
-
# xytara 2.
|
|
1
|
+
# xytara 2.6.0 Release Notes
|
|
2
2
|
|
|
3
|
-
`xytara` 2.
|
|
3
|
+
`xytara` 2.6.0 is the expansion release line for first-run execution polish, provider-backed adapter depth, and framework reference adapters while preserving the existing machine-commerce, settlement, observability, and release surfaces.
|
|
4
4
|
|
|
5
5
|
Highlights:
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
- first-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
7
|
+
- umbrella CLI entrypoint with `xytara start-here`, plus `xytara run` and `xytara release`
|
|
8
|
+
- public first-run quote and credits-first execution posture for outside builders
|
|
9
|
+
- provider-backed `adapter.mcp.invoke` depth with concrete MCP tool binding
|
|
10
|
+
- executable LangGraph and LangChain reference framework adapters with manifests and proof-compatible execution facts
|
|
11
|
+
- adapter verifier coverage for provider and framework execution posture
|
|
12
|
+
- read-only operator observability across activity, payment, delivery, settlement, external credit grants, adapter failures, and pricing telemetry
|
|
13
|
+
- first-class public contract lanes for `OpenAPI`, `AsyncAPI`, and `CloudEvents`
|
|
14
|
+
- first-class provider, framework, protocol, and integration-matrix discovery surfaces
|
|
15
|
+
- surfaced runtime breadth across `MCP`, `A2A`, `A2C`, `x402`, `Stripe MPP`, stablecoins, major rails, treasury, and registry-backed integrations
|
|
16
|
+
- surfaced framework and ecosystem breadth including `LangGraph`, `LangChain`, `AutoGen`, `Semantic Kernel`, `CrewAI`, and `LlamaIndex`
|
|
17
|
+
- surfaced protocol and transport breadth including `ACP`, `gRPC`, `Kafka`, `NATS`, `MQTT`, `ROS2`, and webhook event bus posture
|
|
18
|
+
- first-class observability, provenance, artifact-distribution, shared-signals, and feature-control lanes
|
|
19
|
+
- clearer install-and-use posture for humans, developers, and agents without widening the native runtime core
|
|
20
|
+
- existing wallet / authority / identity / trust / capability / pricing / participation foundations remain in place
|
|
16
21
|
|
|
17
22
|
Recommended first checks:
|
|
18
23
|
|
|
19
24
|
1. `npm install xytara`
|
|
20
|
-
2. `xytara-
|
|
25
|
+
2. `xytara start-here`
|
|
21
26
|
3. `npm run verify:release-candidate`
|
|
22
27
|
4. `node examples/partner_launch_walkthrough.js`
|
|
23
|
-
5. inspect `/v1/
|
|
24
|
-
6. inspect `/v1/
|
|
25
|
-
7. inspect `/v1/
|
|
26
|
-
8. inspect `/v1/
|
|
27
|
-
9. inspect `/v1/economics/accounts/:account_id/
|
|
28
|
+
5. inspect `/v1/providers`, `/v1/frameworks`, `/v1/protocols`, and `/v1/integration-matrix`
|
|
29
|
+
6. inspect `/v1/adapter-depth/summary` and `/v1/operator-observability/summary`
|
|
30
|
+
7. inspect `/v1/mcp`, `/v1/a2a`, `/v1/a2c`, `/v1/x402`, and `/v1/settlement`
|
|
31
|
+
8. inspect `/v1/telemetry`, `/v1/provenance`, `/v1/artifact-distribution`, `/v1/shared-signals`, and `/v1/feature-control`
|
|
32
|
+
9. inspect `/v1/economics/accounts/:account_id/wallet-ledger-bundle`
|
|
33
|
+
10. inspect `/v1/economics/accounts/:account_id/network-participation-package`
|
|
28
34
|
|
|
29
35
|
Recommended first docs:
|
|
30
36
|
|
package/SERVICE_CONTRACT.md
CHANGED
|
@@ -7,6 +7,78 @@ This file freezes the public service contract for `xytara`.
|
|
|
7
7
|
Core routes:
|
|
8
8
|
|
|
9
9
|
- `GET /health`
|
|
10
|
+
- `GET /openapi.json`
|
|
11
|
+
- `GET /v1/openapi`
|
|
12
|
+
- `GET /v1/openapi/summary`
|
|
13
|
+
- `GET /asyncapi.json`
|
|
14
|
+
- `GET /v1/asyncapi`
|
|
15
|
+
- `GET /v1/asyncapi/summary`
|
|
16
|
+
- `GET /cloudevents.json`
|
|
17
|
+
- `GET /v1/cloudevents`
|
|
18
|
+
- `GET /v1/cloudevents/summary`
|
|
19
|
+
- `GET /v1/auth-profiles`
|
|
20
|
+
- `GET /v1/auth-profiles/summary`
|
|
21
|
+
- `GET /v1/identity-interop`
|
|
22
|
+
- `GET /v1/identity-interop/summary`
|
|
23
|
+
- `GET /v1/providers`
|
|
24
|
+
- `GET /v1/providers/summary`
|
|
25
|
+
- `GET /v1/frameworks`
|
|
26
|
+
- `GET /v1/frameworks/summary`
|
|
27
|
+
- `GET /v1/protocols`
|
|
28
|
+
- `GET /v1/protocols/summary`
|
|
29
|
+
- `GET /v1/integration-matrix`
|
|
30
|
+
- `GET /v1/integration-matrix/summary`
|
|
31
|
+
- `GET /v1/mcp`
|
|
32
|
+
- `GET /v1/mcp/summary`
|
|
33
|
+
- `GET /v1/mcp/tools`
|
|
34
|
+
- `GET /v1/a2a`
|
|
35
|
+
- `GET /v1/a2a/summary`
|
|
36
|
+
- `GET /v1/a2c`
|
|
37
|
+
- `GET /v1/a2c/summary`
|
|
38
|
+
- `GET /v1/x402`
|
|
39
|
+
- `GET /v1/x402/summary`
|
|
40
|
+
- `GET /v1/payment-protocols`
|
|
41
|
+
- `GET /v1/payment-protocols/summary`
|
|
42
|
+
- `GET /v1/settlement`
|
|
43
|
+
- `GET /v1/settlement/summary`
|
|
44
|
+
- `GET /v1/stripe-mpp`
|
|
45
|
+
- `GET /v1/stripe-mpp/summary`
|
|
46
|
+
- `GET /v1/stablecoins`
|
|
47
|
+
- `GET /v1/stablecoins/summary`
|
|
48
|
+
- `GET /v1/major-rails`
|
|
49
|
+
- `GET /v1/major-rails/summary`
|
|
50
|
+
- `GET /v1/treasury`
|
|
51
|
+
- `GET /v1/treasury/summary`
|
|
52
|
+
- `GET /v1/pricing-optimization`
|
|
53
|
+
- `GET /v1/pricing-optimization/summary`
|
|
54
|
+
- `GET /v1/pricing-optimization/quote-abandonment-summary`
|
|
55
|
+
- `GET /v1/pricing-optimization/quote-cohorts`
|
|
56
|
+
- `GET /v1/pricing-optimization/recommendations`
|
|
57
|
+
- `GET /v1/activity-ledger`
|
|
58
|
+
- `GET /v1/activity-ledger/summary`
|
|
59
|
+
- `GET /v1/operator-observability`
|
|
60
|
+
- `GET /v1/operator-observability/summary`
|
|
61
|
+
- `GET /v1/treasury-destinations`
|
|
62
|
+
- `GET /v1/treasury-destinations/summary`
|
|
63
|
+
- `GET /v1/treasury-destinations/operator-pack`
|
|
64
|
+
- `GET /v1/treasury-destinations/operator-pack/summary`
|
|
65
|
+
- `POST /v1/treasury-destinations/validate-preview`
|
|
66
|
+
- `GET /v1/treasury-egress-policy`
|
|
67
|
+
- `GET /v1/treasury-egress-policy/summary`
|
|
68
|
+
- `GET /v1/erc8004`
|
|
69
|
+
- `GET /v1/erc8004/summary`
|
|
70
|
+
- `GET /v1/event-systems`
|
|
71
|
+
- `GET /v1/event-systems/summary`
|
|
72
|
+
- `GET /v1/telemetry`
|
|
73
|
+
- `GET /v1/telemetry/summary`
|
|
74
|
+
- `GET /v1/provenance`
|
|
75
|
+
- `GET /v1/provenance/summary`
|
|
76
|
+
- `GET /v1/artifact-distribution`
|
|
77
|
+
- `GET /v1/artifact-distribution/summary`
|
|
78
|
+
- `GET /v1/shared-signals`
|
|
79
|
+
- `GET /v1/shared-signals/summary`
|
|
80
|
+
- `GET /v1/feature-control`
|
|
81
|
+
- `GET /v1/feature-control/summary`
|
|
10
82
|
- `GET /v1/catalog`
|
|
11
83
|
- `GET /v1/catalog/summary`
|
|
12
84
|
- `GET /v1/catalog/task?ref=<task_ref_or_alias>`
|
|
@@ -15,6 +87,11 @@ Core routes:
|
|
|
15
87
|
- `GET /v1/credit-packs`
|
|
16
88
|
- `GET /v1/credit-packs/summary`
|
|
17
89
|
- `GET /v1/credit-pack?ref=<pack_id>`
|
|
90
|
+
- `GET /v1/integrations`
|
|
91
|
+
- `GET /v1/integrations/summary`
|
|
92
|
+
- `GET /v1/integrations/classes`
|
|
93
|
+
- `GET /v1/integrations/protocols`
|
|
94
|
+
- `GET /v1/integrations/settlement-modes`
|
|
18
95
|
- `GET /v1/account-auth/spend-credentials`
|
|
19
96
|
- `POST /v1/account-auth/spend-credentials`
|
|
20
97
|
- `GET /v1/account-auth/spend-credentials/:credential_id`
|
|
@@ -26,8 +103,37 @@ Core routes:
|
|
|
26
103
|
Operational note:
|
|
27
104
|
|
|
28
105
|
- for production acceptance, `POST /x402/commands/execute` and `POST /x402/mcp/tools/invoke` should normally run with `XYTARA_PAYMENT_VERIFICATION_MODE=local_signed` or a stronger verifier mode
|
|
106
|
+
- `GET /v1/identity-interop` exposes how native authority and machine identity map to `JWT`, `DID/VC`, and `SD-JWT VC` interop lanes without replacing the native runtime authority model
|
|
107
|
+
- `GET /v1/x402` exposes the first-class quote -> challenge -> pay -> execute lane for paid machine execution
|
|
108
|
+
- `GET /v1/payment-protocols` makes the charging boundary explicit: keep auth, discovery, docs, catalog, and lightweight preview free while keeping execution, credit consumption, and consequence-bearing runtime work paid
|
|
109
|
+
- `GET /v1/settlement` exposes the settlement family map across native BSV/Teranode, EVM/Base/USDC, and the major-rails family
|
|
110
|
+
- `GET /v1/stripe-mpp` exposes the hosted-checkout and external-funding entry lane without making provider-specific checkout semantics the center of the stack
|
|
111
|
+
- `GET /v1/stablecoins` exposes the current USDC/Base runtime family and marks Circle Nanopayments/CCTP as adapter-ready extensions instead of pretending they are already core first-party rails
|
|
112
|
+
- `GET /v1/major-rails` exposes Solana plus the Antelope/Proton XPR/Metal family as one practical non-default settlement lane
|
|
113
|
+
- `GET /v1/treasury` exposes the treasury-connectivity posture and the internal reserve doctrine of BSV/Teranode plus DAI/USDC, with Monero retained only as an optional hidden privacy reserve
|
|
114
|
+
- `GET /v1/pricing-optimization` exposes minimum charge floors, starter pricing posture, credit-pack breakpoints, high-consequence premium multipliers, and quote abandonment visibility so revenue posture is reviewable instead of implicit
|
|
115
|
+
- `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
|
+
- `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
|
+
- `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
|
|
118
|
+
- `GET /v1/treasury-destinations` is public-readiness only: it shows which rails are operationally configured without exposing actual landing references
|
|
119
|
+
- `GET /v1/treasury-destinations/operator-pack` is the operator-only custody surface and is where real destination references belong
|
|
120
|
+
- `POST /v1/treasury-destinations/validate-preview` lets operators preview per-rail custody readiness before they claim a rail as operational
|
|
121
|
+
- `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
|
|
123
|
+
- `GET /v1/providers` exposes the OpenAI Codex and Claude/MCP family as first-class provider entry lanes
|
|
124
|
+
- `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
|
+
- `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
|
|
126
|
+
- `GET /v1/integration-matrix` exposes the canonical public view across providers, frameworks, protocols, payments, settlement families, and registry-backed integrations
|
|
127
|
+
- `GET /v1/telemetry` exposes the OpenTelemetry-aligned observability posture across runtime traces, metrics, logs, and event carry
|
|
128
|
+
- `GET /v1/provenance` exposes the SLSA-aligned release and execution provenance posture for runtime trust and adoption
|
|
129
|
+
- `GET /v1/artifact-distribution` exposes OCI-style artifact distribution posture for adapters, submission bundles, registry snapshots, and release artifacts
|
|
130
|
+
- `GET /v1/shared-signals` exposes OpenID Shared Signals and CAEP-aligned risk and identity event exchange posture without replacing native runtime decisions
|
|
131
|
+
- `GET /v1/feature-control` exposes OpenFeature/OFREP-aligned rollout and policy portability posture across pricing, authority, identity, trust, and release gates
|
|
29
132
|
- accepted payments then flow into payment-ledger, treasury-summary, rail-summary, and reconciliation surfaces
|
|
30
133
|
- 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
|
+
- 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
|
|
135
|
+
- quote-based pricing is intentionally preferred over flat pricing because it protects margin on high-consequence work without overpricing small utility flows, but quote abandonment and conversion should still be monitored through the pricing-optimization layer
|
|
136
|
+
- production acceptance on `bsv_teranode`, `evm`, `base`, `usdc`, `dai`, or `monero` should only be claimed once the corresponding treasury destination is explicitly configured and visible through `GET /v1/treasury-destinations`, with real custody details limited to `GET /v1/treasury-destinations/operator-pack`
|
|
31
137
|
- in production, `POST /v1/credit-bridge/grants` should normally require `authorization: Bearer <token>` backed by `XYTARA_CREDIT_BRIDGE_BEARER_TOKEN`
|
|
32
138
|
- in production, spend-credential issuance/revoke should normally require `authorization: Bearer <token>` backed by `XYTARA_ACCOUNT_AUTH_BEARER_TOKEN`
|
|
33
139
|
|