usertrust 1.3.0 → 1.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.
Files changed (94) hide show
  1. package/README.md +9 -9
  2. package/dist/anomaly/detector.d.ts.map +1 -1
  3. package/dist/anomaly/detector.js +36 -11
  4. package/dist/anomaly/detector.js.map +1 -1
  5. package/dist/anomaly/signals/spend-velocity.d.ts +39 -12
  6. package/dist/anomaly/signals/spend-velocity.d.ts.map +1 -1
  7. package/dist/anomaly/signals/spend-velocity.js +66 -43
  8. package/dist/anomaly/signals/spend-velocity.js.map +1 -1
  9. package/dist/anomaly/signals/token-rate.d.ts +33 -13
  10. package/dist/anomaly/signals/token-rate.d.ts.map +1 -1
  11. package/dist/anomaly/signals/token-rate.js +124 -38
  12. package/dist/anomaly/signals/token-rate.js.map +1 -1
  13. package/dist/anomaly/types.d.ts +28 -6
  14. package/dist/anomaly/types.d.ts.map +1 -1
  15. package/dist/audit/chain.d.ts +9 -0
  16. package/dist/audit/chain.d.ts.map +1 -1
  17. package/dist/audit/chain.js +65 -9
  18. package/dist/audit/chain.js.map +1 -1
  19. package/dist/audit/verify.d.ts +19 -0
  20. package/dist/audit/verify.d.ts.map +1 -1
  21. package/dist/audit/verify.js +216 -14
  22. package/dist/audit/verify.js.map +1 -1
  23. package/dist/cli/init.d.ts.map +1 -1
  24. package/dist/cli/init.js +107 -2
  25. package/dist/cli/init.js.map +1 -1
  26. package/dist/cli/main.js +0 -0
  27. package/dist/cli/skill.d.ts.map +1 -1
  28. package/dist/cli/skill.js +35 -5
  29. package/dist/cli/skill.js.map +1 -1
  30. package/dist/cli/snapshot.d.ts.map +1 -1
  31. package/dist/cli/snapshot.js +20 -2
  32. package/dist/cli/snapshot.js.map +1 -1
  33. package/dist/cli/verify.d.ts.map +1 -1
  34. package/dist/cli/verify.js +20 -11
  35. package/dist/cli/verify.js.map +1 -1
  36. package/dist/detect.d.ts +34 -1
  37. package/dist/detect.d.ts.map +1 -1
  38. package/dist/detect.js +124 -0
  39. package/dist/detect.js.map +1 -1
  40. package/dist/govern.d.ts +13 -2
  41. package/dist/govern.d.ts.map +1 -1
  42. package/dist/govern.js +475 -127
  43. package/dist/govern.js.map +1 -1
  44. package/dist/headless.d.ts +41 -2
  45. package/dist/headless.d.ts.map +1 -1
  46. package/dist/headless.js +203 -35
  47. package/dist/headless.js.map +1 -1
  48. package/dist/index.d.ts +4 -3
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +3 -1
  51. package/dist/index.js.map +1 -1
  52. package/dist/ledger/client.d.ts +14 -0
  53. package/dist/ledger/client.d.ts.map +1 -1
  54. package/dist/ledger/client.js +56 -0
  55. package/dist/ledger/client.js.map +1 -1
  56. package/dist/ledger/pricing.d.ts +54 -0
  57. package/dist/ledger/pricing.d.ts.map +1 -1
  58. package/dist/ledger/pricing.js +134 -8
  59. package/dist/ledger/pricing.js.map +1 -1
  60. package/dist/policy/default-rules.d.ts +18 -3
  61. package/dist/policy/default-rules.d.ts.map +1 -1
  62. package/dist/policy/default-rules.js +33 -15
  63. package/dist/policy/default-rules.js.map +1 -1
  64. package/dist/policy/gate.d.ts.map +1 -1
  65. package/dist/policy/gate.js +114 -16
  66. package/dist/policy/gate.js.map +1 -1
  67. package/dist/policy/injection.d.ts.map +1 -1
  68. package/dist/policy/injection.js +25 -16
  69. package/dist/policy/injection.js.map +1 -1
  70. package/dist/policy/pii.d.ts +20 -0
  71. package/dist/policy/pii.d.ts.map +1 -1
  72. package/dist/policy/pii.js +45 -2
  73. package/dist/policy/pii.js.map +1 -1
  74. package/dist/shared/types.d.ts +191 -0
  75. package/dist/shared/types.d.ts.map +1 -1
  76. package/dist/shared/types.js +67 -6
  77. package/dist/shared/types.js.map +1 -1
  78. package/dist/snapshot/checkpoint.d.ts +18 -2
  79. package/dist/snapshot/checkpoint.d.ts.map +1 -1
  80. package/dist/snapshot/checkpoint.js +101 -17
  81. package/dist/snapshot/checkpoint.js.map +1 -1
  82. package/dist/streaming.d.ts +8 -3
  83. package/dist/streaming.d.ts.map +1 -1
  84. package/dist/streaming.js +75 -31
  85. package/dist/streaming.js.map +1 -1
  86. package/dist/supply-chain/permissions.d.ts +16 -3
  87. package/dist/supply-chain/permissions.d.ts.map +1 -1
  88. package/dist/supply-chain/permissions.js +59 -9
  89. package/dist/supply-chain/permissions.js.map +1 -1
  90. package/dist/supply-chain/sign.d.ts +5 -2
  91. package/dist/supply-chain/sign.d.ts.map +1 -1
  92. package/dist/supply-chain/sign.js +10 -2
  93. package/dist/supply-chain/sign.js.map +1 -1
  94. package/package.json +2 -4
package/dist/headless.js CHANGED
@@ -35,24 +35,39 @@
35
35
  * await governor.destroy();
36
36
  * ```
37
37
  */
38
- import { createHash } from "node:crypto";
38
+ import { createHash, randomUUID } from "node:crypto";
39
39
  import { existsSync, mkdirSync } from "node:fs";
40
- import { readFile, rename, writeFile } from "node:fs/promises";
40
+ import { readFile, rename, unlink, writeFile } from "node:fs/promises";
41
41
  import { join } from "node:path";
42
+ import { CreateTransferError } from "tigerbeetle-node";
42
43
  import { createAuditWriter } from "./audit/chain.js";
43
44
  import { writeReceipt } from "./audit/rotation.js";
44
- import { TrustTBClient, XFER_SPEND } from "./ledger/client.js";
45
- import { estimateCost, estimateInputTokens } from "./ledger/pricing.js";
45
+ import { TBTransferError, TrustTBClient, XFER_SPEND } from "./ledger/client.js";
46
+ import { costFromRates, estimateCost, estimateInputTokens, resolveRates, warnUnknownModel, } from "./ledger/pricing.js";
46
47
  import { recordPattern } from "./memory/patterns.js";
48
+ import { DEFAULT_RULES, mergePolicies } from "./policy/default-rules.js";
47
49
  import { evaluatePolicy, loadPolicies } from "./policy/gate.js";
48
50
  import { detectPII } from "./policy/pii.js";
49
51
  import { CircuitBreakerRegistry } from "./resilience/circuit.js";
50
52
  import { DEFAULT_BUDGET, VAULT_DIR } from "./shared/constants.js";
51
- import { LedgerUnavailableError, PolicyDeniedError } from "./shared/errors.js";
53
+ import { InsufficientBalanceError, LedgerUnavailableError, PolicyDeniedError, } from "./shared/errors.js";
52
54
  import { trustId } from "./shared/ids.js";
53
55
  import { TrustConfigSchema } from "./shared/types.js";
54
56
  // ── Verify URL base ──
55
57
  const VERIFY_URL_BASE = "https://verify.usertrust.dev";
58
+ // ── M2 endpoint scope helpers ──
59
+ /**
60
+ * Normalize a (possibly partial, e.g. untyped-JS-caller) endpoint shape into a
61
+ * full EndpointInfo. Missing class defaults to "cloud" — the fail-EXPENSIVE
62
+ * safe default — and missing runtime to "unknown".
63
+ */
64
+ function normalizeEndpoint(endpoint) {
65
+ return {
66
+ class: endpoint?.class ?? "cloud",
67
+ runtime: endpoint?.runtime ?? "unknown",
68
+ ...(endpoint?.baseURL !== undefined ? { baseURL: endpoint.baseURL } : {}),
69
+ };
70
+ }
56
71
  // ── Async mutex (same as govern.ts AUD-453) ──
57
72
  class AsyncMutex {
58
73
  queue = Promise.resolve();
@@ -90,52 +105,111 @@ async function loadSpendLedger(vaultBase) {
90
105
  async function persistSpendLedger(vaultBase, budgetSpent) {
91
106
  const dir = join(vaultBase, VAULT_DIR);
92
107
  const ledgerPath = join(dir, "spend-ledger.json");
93
- const tmpPath = join(dir, "spend-ledger.json.tmp");
94
- const data = {
95
- budgetSpent,
96
- updatedAt: new Date().toISOString(),
97
- };
108
+ // AUD-457 hardening (RECON #4): UNIQUE tmp path per write. A fixed
109
+ // `spend-ledger.json.tmp` lets two concurrent writers clobber each other's
110
+ // staging file, so a half-written record can be renamed into place. A pid +
111
+ // uuid suffix isolates every writer's staging file.
112
+ const tmpPath = join(dir, `spend-ledger.json.${process.pid}.${randomUUID()}.tmp`);
98
113
  try {
114
+ // Ensure vault dir exists
99
115
  if (!existsSync(dir)) {
100
116
  mkdirSync(dir, { recursive: true });
101
117
  }
118
+ // MONOTONIC guard (RECON #4): cumulative spend must never regress on disk.
119
+ // A stale/racing writer carrying a lower budgetSpent must not "un-spend"
120
+ // money that another writer (a concurrent settle, another process, or a
121
+ // prior run) already recorded. Skip the write if the persisted value is
122
+ // already >= ours.
123
+ const existing = await loadSpendLedger(vaultBase);
124
+ if (existing > budgetSpent) {
125
+ return;
126
+ }
127
+ const data = {
128
+ budgetSpent,
129
+ updatedAt: new Date().toISOString(),
130
+ };
131
+ // Atomic write: write UNIQUE tmp then rename over the target.
102
132
  await writeFile(tmpPath, JSON.stringify(data), "utf-8");
103
133
  await rename(tmpPath, ledgerPath);
104
134
  }
105
135
  catch {
106
- // Best-effort — do not fail the LLM call over ledger persistence
136
+ // Best-effort — do not fail the LLM call over ledger persistence. Clean up
137
+ // our unique staging file if the rename never happened.
138
+ await unlink(tmpPath).catch(() => { });
107
139
  }
108
140
  }
109
- // ── TigerBeetle engine factory (same as govern.ts) ──
110
- async function createTBEngine(config) {
141
+ // ── TigerBeetle engine factory (mirrors govern.ts) ──
142
+ /** TigerBeetle codes that mean "this debit would exceed the account's credits". */
143
+ function isTBInsufficientBalance(err) {
144
+ if (!(err instanceof TBTransferError))
145
+ return false;
146
+ return (err.code === CreateTransferError.exceeds_credits ||
147
+ err.code === CreateTransferError.overflows_debits ||
148
+ err.code === CreateTransferError.overflows_debits_pending);
149
+ }
150
+ /**
151
+ * Create a balance-enforcing TrustEngine backed by a real TigerBeetle client.
152
+ *
153
+ * P1-LEDGER-ENFORCE (RECON #3): the holding account is created with
154
+ * `debits_must_not_exceed_credits` and FUNDED with `seedBudget` usertokens, so a
155
+ * pending debit (hold) whose cumulative amount would exceed the remaining budget
156
+ * is REJECTED atomically by TigerBeetle. That rejection is surfaced as an
157
+ * {@link InsufficientBalanceError}, which the governor re-throws as a hard budget
158
+ * DENY (never as a ledger outage).
159
+ *
160
+ * NOTE (cross-domain): RECON #3 designates `createLedgerEngine` /
161
+ * `createFundedBudgetWallet` (LEDGER-owned, in `ledger/engine.ts`) as the eventual
162
+ * home for this factory. Those symbols do not yet exist on disk, so this
163
+ * HEADLESS-local factory implements the same funded-enforcing contract using the
164
+ * existing `TrustTBClient` primitives — identical to the GOVERN-local factory in
165
+ * `govern.ts`. When LEDGER ships `createLedgerEngine`, BOTH `trust()` and
166
+ * `createGovernor()` should switch to it in lockstep.
167
+ */
168
+ async function createTBEngine(config, seedBudget) {
111
169
  const tbAddresses = config.tigerbeetle.addresses;
112
170
  const tbClusterId = BigInt(config.tigerbeetle.clusterId);
113
171
  const tbClient = new TrustTBClient({
114
172
  addresses: tbAddresses,
115
173
  clusterId: tbClusterId,
116
174
  });
175
+ // Treasury (unconstrained) funds a per-session enforcing holding wallet.
117
176
  await tbClient.createTreasury();
118
- await tbClient.ensureEscrowAccount("trust:escrow");
177
+ const treasury = tbClient.getTreasuryId();
178
+ // Enforcing holding wallet (debits_must_not_exceed_credits), funded with the
179
+ // remaining session budget so cumulative pending debits cannot exceed it.
180
+ // A FRESH account id per session prevents double-funding a deterministic
181
+ // account across restarts (which would inflate the TB-enforced budget).
182
+ const holdingId = await tbClient.createFundedBudgetWallet(seedBudget);
119
183
  const pendingMap = new Map();
120
184
  return {
121
185
  async spendPending(params) {
122
- const treasury = tbClient.getTreasuryId();
123
- const escrowId = TrustTBClient.deriveAccountId("trust:escrow");
124
- const tbTransferId = await tbClient.createPendingTransfer({
125
- debitAccountId: escrowId,
126
- creditAccountId: treasury,
127
- amount: params.amount,
128
- code: XFER_SPEND,
129
- });
130
- pendingMap.set(params.transferId, tbTransferId);
131
- return { transferId: params.transferId };
186
+ try {
187
+ const tbTransferId = await tbClient.createPendingTransfer({
188
+ debitAccountId: holdingId,
189
+ creditAccountId: treasury,
190
+ amount: params.amount,
191
+ code: XFER_SPEND,
192
+ });
193
+ pendingMap.set(params.transferId, tbTransferId);
194
+ return { transferId: params.transferId };
195
+ }
196
+ catch (err) {
197
+ // Over-budget reservation → TB rejects the pending debit. Surface as a
198
+ // budget error so the governor reports a hard DENY, not an outage.
199
+ if (isTBInsufficientBalance(err)) {
200
+ throw new InsufficientBalanceError("trust:hold", params.amount, seedBudget);
201
+ }
202
+ throw err;
203
+ }
132
204
  },
133
- async postPendingSpend(transferId) {
205
+ async postPendingSpend(transferId, actualAmount) {
134
206
  const tbId = pendingMap.get(transferId);
135
207
  if (tbId === undefined) {
136
208
  throw new Error(`No pending transfer found for ${transferId}`);
137
209
  }
138
- await tbClient.postTransfer(tbId);
210
+ // Post the ACTUAL consumed amount (≤ the reserved estimate); omitting it
211
+ // posts the full pending amount.
212
+ await tbClient.postTransfer(tbId, actualAmount);
139
213
  pendingMap.delete(transferId);
140
214
  },
141
215
  async voidPendingSpend(transferId) {
@@ -190,13 +264,23 @@ export async function createGovernor(opts) {
190
264
  });
191
265
  }
192
266
  const customRates = config.pricing === "custom" ? config.customRates : undefined;
267
+ // M2: governor-wide default endpoint scope; per-call AuthorizeParams.endpoint
268
+ // overrides it (A3). Defaults to cloud — pre-M2 metering exactly.
269
+ const defaultEndpoint = normalizeEndpoint(opts?.endpoint);
193
270
  const isDryRun = opts?.dryRun ?? process.env.USERTRUST_DRY_RUN === "true";
194
271
  const isTestEnv = process.env.USERTRUST_TEST === "1" || process.env.NODE_ENV === "test";
195
272
  // 2. Initialize subsystems
196
273
  const vaultPath = vaultBase;
197
274
  const audit = (isTestEnv ? opts?._audit : undefined) ?? createAuditWriter(vaultPath);
198
275
  const policiesPath = join(vaultPath, VAULT_DIR, config.policies);
199
- const policyRules = existsSync(policiesPath) ? loadPolicies(policiesPath) : [];
276
+ const loadedRules = existsSync(policiesPath) ? loadPolicies(policiesPath) : [];
277
+ // P1-CUSTOM-POLICY-REPLACES (RECON #2): platform DEFAULT_RULES are ALWAYS
278
+ // enforced (parity with trust()). mergePolicies is a safe concat — a custom
279
+ // policy file can only ADD deny/warn rules, never remove the
280
+ // budget/overshoot/exhausted guarantees. Before this, headless dropped the
281
+ // defaults entirely when no policies file existed, so authorize() granted
282
+ // unbounded spend with no budget gate at all.
283
+ const policyRules = mergePolicies(DEFAULT_RULES, loadedRules);
200
284
  const breaker = new CircuitBreakerRegistry({
201
285
  failureThreshold: config.circuitBreaker.failureThreshold,
202
286
  resetTimeoutMs: config.circuitBreaker.resetTimeout,
@@ -209,6 +293,9 @@ export async function createGovernor(opts) {
209
293
  // AUD-456: proxyConn is always null now — proxy mode throws above.
210
294
  // Cast keeps dead code paths type-safe for future re-enablement.
211
295
  const proxyConn = null;
296
+ // AUD-457: restore cumulative spend from disk BEFORE building the engine so the
297
+ // enforcing holding account can be seeded with the REMAINING budget.
298
+ let budgetSpent = await loadSpendLedger(vaultBase);
212
299
  // 4. Engine
213
300
  let engine;
214
301
  if (isTestEnv && opts?._engine !== undefined) {
@@ -216,7 +303,9 @@ export async function createGovernor(opts) {
216
303
  }
217
304
  else if (!isDryRun && proxyConn == null) {
218
305
  try {
219
- engine = await createTBEngine(config);
306
+ // P1-LEDGER-ENFORCE (RECON #3): seed the enforcing holding account with the
307
+ // remaining budget so TigerBeetle atomically REJECTS an over-budget hold.
308
+ engine = await createTBEngine(config, Math.max(0, config.budget - budgetSpent));
220
309
  }
221
310
  catch (err) {
222
311
  throw new LedgerUnavailableError(err instanceof Error ? err.message : String(err));
@@ -227,10 +316,37 @@ export async function createGovernor(opts) {
227
316
  }
228
317
  // 5. State
229
318
  let destroyed = false;
230
- let budgetSpent = await loadSpendLedger(vaultBase);
231
319
  const budgetMutex = new AsyncMutex();
232
320
  let inFlightHoldTotal = 0;
233
321
  const activeAuths = new Map();
322
+ // Finding-2 (RECON #4): serialized, monotonic spend-ledger persistence.
323
+ // budgetSpent only ever increases (settle adds actualCost >= 0; authorize and
324
+ // abort never mutate it). Persisting OUTSIDE the budget mutex means two
325
+ // concurrent settles can race the read-check-write inside persistSpendLedger:
326
+ // a settle carrying a LOWER cumulative can rename its file AFTER a settle
327
+ // carrying a HIGHER one, regressing the on-disk total and silently
328
+ // under-counting spend on restart (→ overspend). Serializing persistence on a
329
+ // dedicated mutex and refusing to write a value that does not exceed the last
330
+ // value we persisted closes that same-instance race atomically. The disk-read
331
+ // guard + unique tmp inside persistSpendLedger remain as the cross-instance /
332
+ // prior-run defence.
333
+ const persistMutex = new AsyncMutex();
334
+ let lastPersistedSpent = budgetSpent;
335
+ async function persistSpend() {
336
+ const release = await persistMutex.acquire();
337
+ try {
338
+ // Read the LIVE cumulative under the persist mutex — never a stale
339
+ // snapshot captured at an earlier call site.
340
+ const current = budgetSpent;
341
+ if (current <= lastPersistedSpent)
342
+ return;
343
+ lastPersistedSpent = current;
344
+ await persistSpendLedger(vaultBase, current);
345
+ }
346
+ finally {
347
+ release();
348
+ }
349
+ }
234
350
  // 6. Governor implementation
235
351
  const governor = {
236
352
  config,
@@ -244,23 +360,47 @@ export async function createGovernor(opts) {
244
360
  // Circuit breaker — key on "headless" since we don't have a client kind
245
361
  const cb = breaker.get("headless");
246
362
  cb.allowRequest();
363
+ // M2: effective endpoint scope — per-call override wins over the
364
+ // governor-wide default (A3). Captured on the Authorization below so
365
+ // settle() meters with the AUTHORIZE-time scope.
366
+ const endpoint = params.endpoint !== undefined ? normalizeEndpoint(params.endpoint) : defaultEndpoint;
367
+ // Scope-aware rate resolution. resolveRates never throws;
368
+ // unknownModelPolicy is enforced HERE, at authorize time. `unknown` is
369
+ // only ever true for cloud scope — local misses resolve to
370
+ // "local-default" by definition (A5), so local calls never deny/warn.
371
+ const rateInfo = resolveRates(model, endpoint.class, config);
372
+ if (rateInfo.unknown) {
373
+ if (config.unknownModelPolicy === "deny") {
374
+ throw new PolicyDeniedError(`unknown_model: ${model} not in pricing table`);
375
+ }
376
+ if (config.unknownModelPolicy === "warn") {
377
+ // Shared once-per-process helper — identical wording to trust() (F5).
378
+ warnUnknownModel(model);
379
+ }
380
+ }
247
381
  // Estimate cost
248
382
  const transferId = trustId("tx");
249
383
  const estInputTokens = params.estimatedInputTokens ?? estimateInputTokens(messages);
250
384
  const maxOutputTokens = params.maxOutputTokens ?? 4096;
251
- const estCost = estimateCost(model, estInputTokens, maxOutputTokens, customRates);
385
+ const estCost = costFromRates(rateInfo.rates, estInputTokens, maxOutputTokens);
252
386
  // Acquire mutex for budget atomicity (AUD-453)
253
387
  const releaseBudgetLock = await budgetMutex.acquire();
254
388
  let proxyTransferId;
255
389
  try {
256
- // Policy gate — caller params spread FIRST so governance
257
- // fields cannot be shadowed (prevents budget_remaining injection).
390
+ // Policy gate — caller params spread FIRST so trusted governance
391
+ // fields (tier/estimated_cost/budget_remaining/budget_remaining_after)
392
+ // CANNOT be shadowed by attacker-controlled params.
393
+ // P1-BUDGET-PREFLIGHT (RECON #1): budget_remaining_after is the derived
394
+ // field the block-budget-overshoot default rule compares against zero to
395
+ // deny a single overshooting call PRE-spend. As a HARD rule it fails
396
+ // CLOSED if omitted, so it MUST be supplied on every evaluation.
258
397
  const policyResult = evaluatePolicy(policyRules, {
259
398
  ...(params.params ?? {}),
260
399
  model,
261
400
  tier: config.tier,
262
401
  estimated_cost: estCost,
263
402
  budget_remaining: config.budget - budgetSpent - inFlightHoldTotal,
403
+ budget_remaining_after: config.budget - budgetSpent - inFlightHoldTotal - estCost,
264
404
  });
265
405
  if (policyResult.decision === "deny") {
266
406
  const reason = policyResult.reasons.length > 0 ? policyResult.reasons.join("; ") : "Policy denied";
@@ -292,6 +432,14 @@ export async function createGovernor(opts) {
292
432
  await engine.spendPending({ transferId, amount: estCost });
293
433
  }
294
434
  catch (holdErr) {
435
+ // P1-LEDGER-ENFORCE: an over-budget reservation is rejected
436
+ // atomically by the ledger. Surface it as a hard budget DENY —
437
+ // NOT as "ledger unavailable" (which would misreport a budget cap
438
+ // as an outage).
439
+ if (holdErr instanceof InsufficientBalanceError) {
440
+ throw holdErr;
441
+ }
442
+ // Genuine ledger outage — do NOT forward to provider.
295
443
  throw new LedgerUnavailableError(holdErr instanceof Error ? holdErr.message : String(holdErr));
296
444
  }
297
445
  }
@@ -306,6 +454,7 @@ export async function createGovernor(opts) {
306
454
  model,
307
455
  proxyTransferId,
308
456
  createdAt: Date.now(),
457
+ endpoint,
309
458
  };
310
459
  activeAuths.set(transferId, auth);
311
460
  return auth;
@@ -317,11 +466,15 @@ export async function createGovernor(opts) {
317
466
  activeAuths.delete(auth.transferId);
318
467
  const model = auth.model;
319
468
  let callAuditDegraded = false;
469
+ // A3: settlement meters with the endpoint scope CAPTURED AT AUTHORIZE —
470
+ // SettleParams carries no endpoint field by design.
471
+ const endpoint = auth.endpoint ?? defaultEndpoint;
472
+ const rateInfo = resolveRates(model, endpoint.class, config);
320
473
  // Determine actual cost
321
474
  let actualCost;
322
475
  let usageSource;
323
476
  if (params?.inputTokens != null || params?.outputTokens != null) {
324
- actualCost = estimateCost(model, params.inputTokens ?? 0, params.outputTokens ?? 0, customRates);
477
+ actualCost = costFromRates(rateInfo.rates, params.inputTokens ?? 0, params.outputTokens ?? 0);
325
478
  usageSource = params.usageSource ?? "provider";
326
479
  }
327
480
  else {
@@ -338,7 +491,8 @@ export async function createGovernor(opts) {
338
491
  finally {
339
492
  releaseLock();
340
493
  }
341
- await persistSpendLedger(vaultBase, budgetSpent);
494
+ // Finding-2 (RECON #4): serialized monotonic persist — never regresses.
495
+ await persistSpend();
342
496
  // Circuit breaker: success
343
497
  const cb = breaker.get("headless");
344
498
  cb.recordSuccess();
@@ -370,7 +524,9 @@ export async function createGovernor(opts) {
370
524
  }
371
525
  else if (engine != null && !isDryRun) {
372
526
  try {
373
- await engine.postPendingSpend(auth.transferId);
527
+ // Post the ACTUAL consumed cost (RECON #3) — which may be less than
528
+ // the reserved estimate.
529
+ await engine.postPendingSpend(auth.transferId, actualCost);
374
530
  }
375
531
  catch (postErr) {
376
532
  settled = false;
@@ -450,6 +606,18 @@ export async function createGovernor(opts) {
450
606
  provider: "headless",
451
607
  timestamp: new Date().toISOString(),
452
608
  usageSource,
609
+ // M2: endpoint classification + metering provenance (A6: computeMs is
610
+ // OMITTED, never undefined, when absent/invalid).
611
+ endpoint: { class: endpoint.class, runtime: endpoint.runtime },
612
+ meter: {
613
+ costBasis: rateInfo.costBasis,
614
+ rateSource: rateInfo.rateSource,
615
+ ...(params?.computeMs != null &&
616
+ Number.isFinite(params.computeMs) &&
617
+ params.computeMs >= 0
618
+ ? { computeMs: params.computeMs }
619
+ : {}),
620
+ },
453
621
  ...(params?.chunksDelivered != null ? { chunksDelivered: params.chunksDelivered } : {}),
454
622
  ...(callAuditDegraded ? { auditDegraded: true } : {}),
455
623
  ...(proxyConn != null ? { proxyStub: true } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"headless.js","sourceRoot":"","sources":["../src/headless.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"headless.js","sourceRoot":"","sources":["../src/headless.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,7 +3,8 @@ export type { TrustOpts, TrustedClient } from "./govern.js";
3
3
  export { createGovernor } from "./headless.js";
4
4
  export type { Governor, Authorization, AuthorizeParams, SettleParams } from "./headless.js";
5
5
  export { loadConfig, defineConfig } from "./config.js";
6
- export type { TrustedResponse, TrustReceipt, TrustConfig, PolicyRule, FieldCondition, FieldOperator, PolicyEffect, PolicyEnforcement, PolicySeverity, BoardDecision, AuditEvent, LLMClientKind, ActionKind, ActionDescriptor, GovernedActionResult, InjectionDetection, CanaryToken, SkillPermission, SkillManifest, SkillVerification, CredentialScope, CredentialEntry, CredentialAccessResult, } from "./shared/types.js";
6
+ export { classifyEndpoint } from "./detect.js";
7
+ export type { TrustedResponse, TrustReceipt, TrustConfig, EndpointClass, EndpointInfo, LocalRuntime, CostBasis, RateSource, PolicyRule, FieldCondition, FieldOperator, PolicyEffect, PolicyEnforcement, PolicySeverity, BoardDecision, AuditEvent, LLMClientKind, ActionKind, ActionDescriptor, GovernedActionResult, InjectionDetection, CanaryToken, SkillPermission, SkillManifest, SkillVerification, CredentialScope, CredentialEntry, CredentialAccessResult, } from "./shared/types.js";
7
8
  export { detectInjection } from "./policy/injection.js";
8
9
  export { generateCanary, injectCanary, detectCanaryLeak } from "./policy/canary.js";
9
10
  export { validateManifest, createUnsignedManifest, hashManifest } from "./supply-chain/manifest.js";
@@ -19,8 +20,8 @@ export type { PIIDetection } from "./policy/pii.js";
19
20
  export { hashPrompt, recordPattern, suggestModel, getPatternStats } from "./memory/patterns.js";
20
21
  export { buildMerkleTree, generateInclusionProof, verifyInclusionProof, generateConsistencyProof, verifyConsistencyProof, hashLeaf, hashInternal, } from "./audit/merkle.js";
21
22
  export type { MerkleInclusionProof, MerkleConsistencyProof, MerkleSibling, } from "./audit/merkle.js";
22
- export { getModelRates, estimateCost, estimateInputTokens } from "./ledger/pricing.js";
23
- export type { ModelRates } from "./ledger/pricing.js";
23
+ export { getModelRates, estimateCost, estimateInputTokens, resolveRates, } from "./ledger/pricing.js";
24
+ export type { ModelRates, RateResolution } from "./ledger/pricing.js";
24
25
  export { createBoard } from "./board/board.js";
25
26
  export type { BoardStats, BoardReviewResult } from "./board/board.js";
26
27
  export { CircuitBreaker, CircuitBreakerRegistry, CircuitOpenError } from "./resilience/circuit.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -7,6 +7,8 @@ export { trust } from "./govern.js";
7
7
  export { createGovernor } from "./headless.js";
8
8
  // Config
9
9
  export { loadConfig, defineConfig } from "./config.js";
10
+ // Endpoint classification
11
+ export { classifyEndpoint } from "./detect.js";
10
12
  // Injection detection
11
13
  export { detectInjection } from "./policy/injection.js";
12
14
  export { generateCanary, injectCanary, detectCanaryLeak } from "./policy/canary.js";
@@ -26,7 +28,7 @@ export { hashPrompt, recordPattern, suggestModel, getPatternStats } from "./memo
26
28
  // Merkle proofs
27
29
  export { buildMerkleTree, generateInclusionProof, verifyInclusionProof, generateConsistencyProof, verifyConsistencyProof, hashLeaf, hashInternal, } from "./audit/merkle.js";
28
30
  // Pricing
29
- export { getModelRates, estimateCost, estimateInputTokens } from "./ledger/pricing.js";
31
+ export { getModelRates, estimateCost, estimateInputTokens, resolveRates, } from "./ledger/pricing.js";
30
32
  // Board
31
33
  export { createBoard } from "./board/board.js";
32
34
  // Circuit breaker
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC,0CAA0C;AAE1C,OAAO;AACP,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,6CAA6C;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,SAAS;AACT,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA6BvD,sBAAsB;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEpF,eAAe;AACf,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACpG,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEnF,mBAAmB;AACnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,SAAS;AACT,OAAO,EACN,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,2BAA2B,EAC3B,YAAY,GACZ,MAAM,oBAAoB,CAAC;AAK5B,gBAAgB;AAChB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,iBAAiB;AACjB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEhG,gBAAgB;AAChB,OAAO,EACN,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,QAAQ,EACR,YAAY,GACZ,MAAM,mBAAmB,CAAC;AAO3B,UAAU;AACV,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAGvF,QAAQ;AACR,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,kBAAkB;AAClB,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGnG,+BAA+B;AAC/B,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC,0CAA0C;AAE1C,OAAO;AACP,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,6CAA6C;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,SAAS;AACT,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvD,0BAA0B;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAkC/C,sBAAsB;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEpF,eAAe;AACf,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACpG,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEnF,mBAAmB;AACnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,SAAS;AACT,OAAO,EACN,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,2BAA2B,EAC3B,YAAY,GACZ,MAAM,oBAAoB,CAAC;AAK5B,gBAAgB;AAChB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,iBAAiB;AACjB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEhG,gBAAgB;AAChB,OAAO,EACN,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,QAAQ,EACR,YAAY,GACZ,MAAM,mBAAmB,CAAC;AAO3B,UAAU;AACV,OAAO,EACN,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,YAAY,GACZ,MAAM,qBAAqB,CAAC;AAG7B,QAAQ;AACR,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,kBAAkB;AAClB,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGnG,+BAA+B;AAC/B,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -46,6 +46,20 @@ export declare class TrustTBClient {
46
46
  setTreasuryId(id: bigint): void;
47
47
  createTreasury(): Promise<bigint>;
48
48
  ensureEscrowAccount(label: string): Promise<bigint>;
49
+ /**
50
+ * Create a per-session budget wallet that TigerBeetle balance-enforces.
51
+ *
52
+ * The account carries `debits_must_not_exceed_credits` and is seeded with
53
+ * `seedCredits` usertokens via an ALLOCATION transfer from the treasury (the
54
+ * mint). Any pending debit against this wallet is atomically REJECTED by TB
55
+ * once cumulative (debits_pending + debits_posted) would exceed the seed —
56
+ * surfaced by createPendingTransfer as a {@link TBTransferError}.
57
+ *
58
+ * Returns a FRESH, non-deterministic account id (tbId()) every call, so
59
+ * re-initialising across processes never double-funds a shared deterministic
60
+ * account (which would inflate the enforced budget on every restart).
61
+ */
62
+ createFundedBudgetWallet(seedCredits: number): Promise<bigint>;
49
63
  setAccountMapping(userId: string, accountId: bigint): void;
50
64
  getAccountId(userId: string): bigint;
51
65
  getTreasuryId(): bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/ledger/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/ledger/client.ts"],"names":[],"mappings":"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"}