xytara 3.4.0 → 3.5.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/README.md CHANGED
@@ -135,8 +135,23 @@ POST /v1/credits/agents/:id/revoke owner key only; immediate; { reason } is stor
135
135
  GET /v1/credits/activity?limit=100&since=<iso>
136
136
  recent spends with agent id/label, units, task_ref, tool_name,
137
137
  credit_spend_id; owner sees the account, an agent sees its own
138
+ GET /v1/credits/agents/log the delegation log: every mint and revoke of the account's agent
139
+ keys (full events); an agent key sees only its own
140
+ GET /v1/credits/agents/:id/proof delegation proof for one key: its events, the hash-only chain to
141
+ the head, the signed checkpoint, how to verify
142
+ GET /v1/delegation-log/head public: event count, head hash, chain continuity
143
+ GET /v1/delegation-log/feed public: seq, type, time and hashes only (never an account or key)
144
+ GET /v1/delegation-log/checkpoint public: naxytra-attestation/1 over the head (+ ctp/1 binding
145
+ while anchoring); POST .../checkpoint/verify is a free check
138
146
  ```
139
147
 
148
+ Every mint and revoke is an append-only, hash-chained event (`naxytra-delegation-log/1`:
149
+ `event_sha256 = sha256(JCS(event))`, `chain_hash = sha256(previous chain_hash + event_sha256)`).
150
+ A relying party holding a key's delegation proof and a checkpoint can establish, without asking
151
+ this runtime, that the key was minted with these caps before T and not revoked before a head
152
+ anchored after T. Set `XYTARA_EXTERNAL_BINDING_JSON` while a chronology anchoring session is open
153
+ and every checkpoint carries the binding inside its signed bytes.
154
+
140
155
  An agent key spends exactly like the owner key (`/v1/economics/rails/credits/consume`, or
141
156
  `credits_first` execution), but every spend is checked against its per-call, per-UTC-day and
142
157
  lifetime caps, its tool allow-list, its expiry and revocation. Refusals are explicit and never
package/RELEASE_NOTES.md CHANGED
@@ -1,9 +1,7 @@
1
- `xytara` 3.4.0 makes the open provider network pay correctly at the current price, anchors attestations in time, and gives buyers a console.
1
+ `xytara` 3.5.0 makes delegated authority provable at a point in time: the delegation log.
2
2
 
3
- - **Provider revenue at the $0.01 price** — a provider's exact share (`settled × bps / 10000`) is now credited in whole cents with the sub-cent remainder carried into its next settlement (`rollup.share_carry_bp`; ledger rows record `share_carry_before_bp` / `share_carry_after_bp`), so a 70% provider earns 7 cents over ten $0.01 calls instead of flooring to zero on every call. Nothing changes for whole-cent amounts.
4
- - **Payout sweep** — `POST /v1/provider-network/payouts/sweep` (operator) pays every active provider whose available balance reaches `XYTARA_PROVIDER_PAYOUT_MIN_MINOR` (default 100 cents) through the signer, one idempotent dispatch each; a weekly job runs it (Mondays, `state-backup.yml`). Activation through the operator route now requires a `payout_address` on the record (`payout_address_required_for_activation`).
5
- - **Delivery rule** — a provider's 2xx without `result.output`, `output_payload` or `output` is `external_execution_empty_output`: not charged, nothing accrues, not retried elsewhere. Routing prefers the most specific capability match (tool name over task ref over integration), then reputation. Providers rotate their `owner_secret` at `POST /v1/provider-network/providers/:id/rotate-secret`. The public contract (`/v1/provider-network/contract`) states all of this.
6
- - **Operator visibility** — the daily report lists pending provider registrations (and flags a missing payout address) and the network's owed/accrued/paid totals, and fails (emails) while a registration waits.
7
- - **Attestation external bindings** — `bindings[]` inside the signed bytes may carry `{ scheme: "ctp/1", system_id, tag }`, a chronology-protocol binding tag set with `MCP_EXECUTOR_EXTERNAL_BINDING_JSON` on the MCP executor while an anchoring session is open; the active binding is shown on `/.well-known/delivery-receipt-keys` and `/health`. `GET /attestations/<id>` and `POST /attestations/verify` return `attestation_sha256` (SHA-256 of the JCS form, signatures included), the digest an external anchor commits to.
8
- - **Buyer console** — `https://www.naxytra.com/console`: paste a spend key to read the balance, the credit activity and the agent keys straight from the runtime, and mint or revoke agent keys; the key stays in the browser.
9
- - Client package (thin): adds `attestationSha256`, `normalizeExternalBinding`, `EXTERNAL_BINDING_SCHEMES`; tarball otherwise unchanged.
3
+ - **Delegation log (`naxytra-delegation-log/1`)** — every agent-key mint (delegatee, key fingerprint, caps, expiry) and revoke (stated time, reason) is an append-only, hash-chained event: `event_sha256 = sha256(JCS(event))`, `chain_hash = sha256(previous chain_hash + event_sha256)`. Mint and revoke responses return the event reference (`delegation_event`).
4
+ - **Public, key-less surface** — `GET /v1/delegation-log/head` (count, head hash, chain continuity), `GET /v1/delegation-log/feed?since_seq=&limit=` (seq, type, time and hashes only — never an account, a key or a label), `GET /v1/delegation-log/checkpoint` (a `naxytra-attestation/1` over the head, signed with the delivery-receipt keys; `POST /v1/delegation-log/checkpoint/verify` is a free check). The keys endpoint announces the log.
5
+ - **Owner and agent views** — `GET /v1/credits/agents/log` (owner key: the account's full events; agent key: its own) and `GET /v1/credits/agents/:id/proof`: the key's events, the hash-only chain from its first event to the head, the current checkpoint and its digest, plus the verification recipe. A relying party holding a proof and a checkpoint establishes, without asking the runtime, that a key was minted with these caps before T and not revoked before a head anchored after T.
6
+ - **Chronology binding on checkpoints** — `XYTARA_EXTERNAL_BINDING_JSON` (the `{scheme, system_id, tag}` object or the bare 64-hex tag, scheme `ctp/1`, system id `NAXYTRA-DELEGATION-LOG/1`) is carried inside every checkpoint's signed bytes while an anchoring session is open; `attestation_sha256` of the checkpoint is the digest an external anchor commits to.
7
+ - Client package (thin): unchanged.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xytara",
3
- "version": "3.4.0",
3
+ "version": "3.5.0",
4
4
  "description": "Client for the hosted naxytra runtime: discover a capability, pay per call with x402 (gasless USDC on Base) or credits, get the deliverable and a signed delivery receipt you can verify offline. The runtime is a hosted service; this package is the client.",
5
5
  "main": "client.js",
6
6
  "exports": {
@@ -95,7 +95,7 @@
95
95
  "verify:production-readiness": "node scripts/verify_production_readiness.js",
96
96
  "verify:final-activation": "node scripts/verify_final_activation.js",
97
97
  "verify:x402-facilitator": "node scripts/verify_x402_facilitator.js",
98
- "verify:all": "node scripts/verify_all.js && node scripts/verify_integrations.js && node scripts/verify_adapters.js && node scripts/verify_control_plane_contracts.js && node scripts/verify_control_plane_routes.js && node scripts/verify_framework_provider_promotion.js && node scripts/verify_operator_observability_boundary.js && node scripts/verify_pricing_experiment_plan.js && node scripts/verify_treasury_public_boundary.js && node scripts/verify_market_lanes.js && node scripts/verify_market_lane_depth.js && node scripts/verify_market_lane_traces.js && node scripts/verify_market_lane_promotion.js && node scripts/verify_provider_runtime_breadth.js && node scripts/verify_provider_runtime_journeys.js && node scripts/verify_lifecycle_continuity.js && node scripts/verify_first_run_conversions.js && node scripts/verify_delivery_summary.js && node scripts/verify_runtime_durability.js && node scripts/verify_revenue_launch_paths.js && node scripts/verify_full_catalog.js && node scripts/verify_tooling.js && node scripts/verify_examples.js && node scripts/verify_service.js && node scripts/verify_x402_facilitator.js && node scripts/verify_cdp_facilitator.js && node scripts/verify_a2a_rpc.js && node scripts/verify_checkout_processor.js && node scripts/verify_l402_adapter.js && node scripts/verify_bolt_adapter.js && node scripts/verify_mpp_adapter.js && node scripts/verify_rate_limiter.js && node scripts/verify_execution_surfacing.js && node scripts/verify_agent_identity.js && node scripts/verify_verify_execute_settle.js && node scripts/verify_execution_dedupe.js && node scripts/verify_refund_credit.js && node scripts/verify_commerce_bridge.js && node scripts/verify_settlement.js && node scripts/verify_provider_network.js && node scripts/verify_external_execution_retry.js && node scripts/verify_runtime_state_guard.js && node scripts/state_backup_offsite.js selftest && node scripts/verify_lifecycle_spend_binding.js && node scripts/verify_buyer_safety.js && node scripts/verify_buyer_event_log.js && node scripts/verify_x402_settlement_recovery.js && node scripts/verify_team_spend.js",
98
+ "verify:all": "node scripts/verify_all.js && node scripts/verify_integrations.js && node scripts/verify_adapters.js && node scripts/verify_control_plane_contracts.js && node scripts/verify_control_plane_routes.js && node scripts/verify_framework_provider_promotion.js && node scripts/verify_operator_observability_boundary.js && node scripts/verify_pricing_experiment_plan.js && node scripts/verify_treasury_public_boundary.js && node scripts/verify_market_lanes.js && node scripts/verify_market_lane_depth.js && node scripts/verify_market_lane_traces.js && node scripts/verify_market_lane_promotion.js && node scripts/verify_provider_runtime_breadth.js && node scripts/verify_provider_runtime_journeys.js && node scripts/verify_lifecycle_continuity.js && node scripts/verify_first_run_conversions.js && node scripts/verify_delivery_summary.js && node scripts/verify_runtime_durability.js && node scripts/verify_revenue_launch_paths.js && node scripts/verify_full_catalog.js && node scripts/verify_tooling.js && node scripts/verify_examples.js && node scripts/verify_service.js && node scripts/verify_x402_facilitator.js && node scripts/verify_cdp_facilitator.js && node scripts/verify_a2a_rpc.js && node scripts/verify_checkout_processor.js && node scripts/verify_l402_adapter.js && node scripts/verify_bolt_adapter.js && node scripts/verify_mpp_adapter.js && node scripts/verify_rate_limiter.js && node scripts/verify_execution_surfacing.js && node scripts/verify_agent_identity.js && node scripts/verify_verify_execute_settle.js && node scripts/verify_execution_dedupe.js && node scripts/verify_refund_credit.js && node scripts/verify_commerce_bridge.js && node scripts/verify_settlement.js && node scripts/verify_provider_network.js && node scripts/verify_external_execution_retry.js && node scripts/verify_runtime_state_guard.js && node scripts/state_backup_offsite.js selftest && node scripts/verify_lifecycle_spend_binding.js && node scripts/verify_buyer_safety.js && node scripts/verify_buyer_event_log.js && node scripts/verify_x402_settlement_recovery.js && node scripts/verify_team_spend.js && node scripts/verify_delegation_log.js",
99
99
  "prepublishOnly": "npm run verify:release-candidate",
100
100
  "verify:cdp-facilitator": "node scripts/verify_cdp_facilitator.js",
101
101
  "verify:a2a-rpc": "node scripts/verify_a2a_rpc.js",
@@ -120,6 +120,7 @@
120
120
  "verify:buyer-event-log": "node scripts/verify_buyer_event_log.js",
121
121
  "verify:x402-settlement-recovery": "node scripts/verify_x402_settlement_recovery.js",
122
122
  "verify:team-spend": "node scripts/verify_team_spend.js",
123
+ "verify:delegation-log": "node scripts/verify_delegation_log.js",
123
124
  "verify:client": "node scripts/verify_client.js"
124
125
  }
125
126
  }