@evelinka-ai/core 0.3.0 → 0.4.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 (211) hide show
  1. package/README.md +14 -0
  2. package/dist/agent-lib/llm-semaphore.d.ts.map +1 -1
  3. package/dist/agent-lib/llm-semaphore.js +2 -34
  4. package/dist/agent-lib/llm-semaphore.js.map +1 -1
  5. package/dist/channels/capabilities.d.ts +14 -0
  6. package/dist/channels/capabilities.d.ts.map +1 -0
  7. package/dist/channels/capabilities.js +16 -0
  8. package/dist/channels/capabilities.js.map +1 -0
  9. package/dist/channels/catalog.js +1 -1
  10. package/dist/channels/catalog.js.map +1 -1
  11. package/dist/channels/model-provider-ids.d.ts +3 -0
  12. package/dist/channels/model-provider-ids.d.ts.map +1 -0
  13. package/dist/channels/model-provider-ids.js +2 -0
  14. package/dist/channels/model-provider-ids.js.map +1 -0
  15. package/dist/channels/model-providers.d.ts +10 -0
  16. package/dist/channels/model-providers.d.ts.map +1 -1
  17. package/dist/channels/model-providers.js +34 -0
  18. package/dist/channels/model-providers.js.map +1 -1
  19. package/dist/channels/providers.d.ts +7 -0
  20. package/dist/channels/providers.d.ts.map +1 -1
  21. package/dist/channels/providers.js +62 -39
  22. package/dist/channels/providers.js.map +1 -1
  23. package/dist/channels/token-budgets.d.ts +3 -0
  24. package/dist/channels/token-budgets.d.ts.map +1 -0
  25. package/dist/channels/token-budgets.js +33 -0
  26. package/dist/channels/token-budgets.js.map +1 -0
  27. package/dist/channels/usage.d.ts.map +1 -1
  28. package/dist/channels/usage.js +9 -1
  29. package/dist/channels/usage.js.map +1 -1
  30. package/dist/db/connection-pool.d.ts +18 -0
  31. package/dist/db/connection-pool.d.ts.map +1 -0
  32. package/dist/db/connection-pool.js +125 -0
  33. package/dist/db/connection-pool.js.map +1 -0
  34. package/dist/db/migrate.d.ts +33 -0
  35. package/dist/db/migrate.d.ts.map +1 -0
  36. package/dist/db/migrate.js +183 -0
  37. package/dist/db/migrate.js.map +1 -0
  38. package/dist/db/migrations/0000_core_ledgers.sql +118 -0
  39. package/dist/db/migrations/0001_memory.sql +47 -0
  40. package/dist/db/migrations/0002_memory_search.sql +21 -0
  41. package/dist/db/migrations/0003_token_usage_account.sql +1 -0
  42. package/dist/db/migrations/meta/0000_snapshot.json +729 -0
  43. package/dist/db/migrations/meta/0001_snapshot.json +1069 -0
  44. package/dist/db/migrations/meta/0002_snapshot.json +1100 -0
  45. package/dist/db/migrations/meta/0003_snapshot.json +1106 -0
  46. package/dist/db/migrations/meta/_journal.json +34 -0
  47. package/dist/db/pool.d.ts +9 -0
  48. package/dist/db/pool.d.ts.map +1 -0
  49. package/dist/db/pool.js +44 -0
  50. package/dist/db/pool.js.map +1 -0
  51. package/dist/db/schema/auth.d.ts +195 -0
  52. package/dist/db/schema/auth.d.ts.map +1 -0
  53. package/dist/db/schema/auth.js +15 -0
  54. package/dist/db/schema/auth.js.map +1 -0
  55. package/dist/db/schema/budgets.d.ts +372 -0
  56. package/dist/db/schema/budgets.d.ts.map +1 -0
  57. package/dist/db/schema/budgets.js +32 -0
  58. package/dist/db/schema/budgets.js.map +1 -0
  59. package/dist/db/schema/bugs.d.ts +314 -0
  60. package/dist/db/schema/bugs.d.ts.map +1 -0
  61. package/dist/db/schema/bugs.js +26 -0
  62. package/dist/db/schema/bugs.js.map +1 -0
  63. package/dist/db/schema/control-plane.d.ts +110 -0
  64. package/dist/db/schema/control-plane.d.ts.map +1 -0
  65. package/dist/db/schema/control-plane.js +10 -0
  66. package/dist/db/schema/control-plane.js.map +1 -0
  67. package/dist/db/schema/coordination.d.ts +231 -0
  68. package/dist/db/schema/coordination.d.ts.map +1 -0
  69. package/dist/db/schema/coordination.js +81 -0
  70. package/dist/db/schema/coordination.js.map +1 -0
  71. package/dist/db/schema/delivery.d.ts +192 -0
  72. package/dist/db/schema/delivery.d.ts.map +1 -0
  73. package/dist/db/schema/delivery.js +18 -0
  74. package/dist/db/schema/delivery.js.map +1 -0
  75. package/dist/db/schema/index.d.ts +8 -0
  76. package/dist/db/schema/index.d.ts.map +1 -0
  77. package/dist/db/schema/index.js +8 -0
  78. package/dist/db/schema/index.js.map +1 -0
  79. package/dist/db/schema/memory.d.ts +581 -0
  80. package/dist/db/schema/memory.d.ts.map +1 -0
  81. package/dist/db/schema/memory.js +54 -0
  82. package/dist/db/schema/memory.js.map +1 -0
  83. package/dist/db/schema/observability.d.ts +212 -0
  84. package/dist/db/schema/observability.d.ts.map +1 -0
  85. package/dist/db/schema/observability.js +16 -0
  86. package/dist/db/schema/observability.js.map +1 -0
  87. package/dist/db/schema/workflow-read.d.ts +116 -0
  88. package/dist/db/schema/workflow-read.d.ts.map +1 -0
  89. package/dist/db/schema/workflow-read.js +13 -0
  90. package/dist/db/schema/workflow-read.js.map +1 -0
  91. package/dist/lib/budgets/account.d.ts +12 -0
  92. package/dist/lib/budgets/account.d.ts.map +1 -0
  93. package/dist/lib/budgets/account.js +84 -0
  94. package/dist/lib/budgets/account.js.map +1 -0
  95. package/dist/lib/budgets/prepaid-response-store.js +1 -1
  96. package/dist/lib/budgets/record-call-usage.d.ts +1 -0
  97. package/dist/lib/budgets/record-call-usage.d.ts.map +1 -1
  98. package/dist/lib/budgets/record-call-usage.js +1 -0
  99. package/dist/lib/budgets/record-call-usage.js.map +1 -1
  100. package/dist/lib/budgets/token-budget.d.ts +15 -0
  101. package/dist/lib/budgets/token-budget.d.ts.map +1 -1
  102. package/dist/lib/budgets/token-budget.js +145 -14
  103. package/dist/lib/budgets/token-budget.js.map +1 -1
  104. package/dist/lib/budgets/token-usage-pg.d.ts +20 -1
  105. package/dist/lib/budgets/token-usage-pg.d.ts.map +1 -1
  106. package/dist/lib/budgets/token-usage-pg.js +219 -225
  107. package/dist/lib/budgets/token-usage-pg.js.map +1 -1
  108. package/dist/lib/budgets/usage.d.ts +37 -8
  109. package/dist/lib/budgets/usage.d.ts.map +1 -1
  110. package/dist/lib/budgets/usage.js +90 -5
  111. package/dist/lib/budgets/usage.js.map +1 -1
  112. package/dist/lib/control-plane/ambient-session.d.ts +3 -0
  113. package/dist/lib/control-plane/ambient-session.d.ts.map +1 -0
  114. package/dist/lib/control-plane/ambient-session.js +34 -0
  115. package/dist/lib/control-plane/ambient-session.js.map +1 -0
  116. package/dist/lib/control-plane/catalog.d.ts +2 -0
  117. package/dist/lib/control-plane/catalog.d.ts.map +1 -1
  118. package/dist/lib/control-plane/catalog.js +15 -12
  119. package/dist/lib/control-plane/catalog.js.map +1 -1
  120. package/dist/lib/control-plane/console-caps.d.ts +8 -0
  121. package/dist/lib/control-plane/console-caps.d.ts.map +1 -0
  122. package/dist/lib/control-plane/console-caps.js +45 -0
  123. package/dist/lib/control-plane/console-caps.js.map +1 -0
  124. package/dist/lib/control-plane/flow-settings.d.ts +81 -1
  125. package/dist/lib/control-plane/flow-settings.d.ts.map +1 -1
  126. package/dist/lib/control-plane/flow-settings.js +181 -24
  127. package/dist/lib/control-plane/flow-settings.js.map +1 -1
  128. package/dist/lib/control-plane/tools-config.d.ts.map +1 -1
  129. package/dist/lib/control-plane/tools-config.js.map +1 -1
  130. package/dist/lib/coordination/checkpoints.d.ts +0 -1
  131. package/dist/lib/coordination/checkpoints.d.ts.map +1 -1
  132. package/dist/lib/coordination/checkpoints.js +54 -39
  133. package/dist/lib/coordination/checkpoints.js.map +1 -1
  134. package/dist/lib/coordination/head-lease.d.ts +6 -6
  135. package/dist/lib/coordination/head-lease.d.ts.map +1 -1
  136. package/dist/lib/coordination/head-lease.js +149 -85
  137. package/dist/lib/coordination/head-lease.js.map +1 -1
  138. package/dist/lib/coordination/pg.d.ts +1 -2
  139. package/dist/lib/coordination/pg.d.ts.map +1 -1
  140. package/dist/lib/coordination/pg.js +3 -22
  141. package/dist/lib/coordination/pg.js.map +1 -1
  142. package/dist/lib/coordination/work-queue.d.ts +0 -1
  143. package/dist/lib/coordination/work-queue.d.ts.map +1 -1
  144. package/dist/lib/coordination/work-queue.js +159 -142
  145. package/dist/lib/coordination/work-queue.js.map +1 -1
  146. package/dist/lib/delivery/host-operation-store.d.ts +10 -0
  147. package/dist/lib/delivery/host-operation-store.d.ts.map +1 -0
  148. package/dist/lib/delivery/host-operation-store.js +68 -0
  149. package/dist/lib/delivery/host-operation-store.js.map +1 -0
  150. package/dist/lib/delivery/push.js +1 -1
  151. package/dist/lib/delivery/push.js.map +1 -1
  152. package/dist/lib/delivery/schedule-lock.d.ts.map +1 -1
  153. package/dist/lib/delivery/schedule-lock.js +2 -5
  154. package/dist/lib/delivery/schedule-lock.js.map +1 -1
  155. package/dist/lib/media/webp.d.ts +4 -0
  156. package/dist/lib/media/webp.d.ts.map +1 -1
  157. package/dist/lib/media/webp.js +7 -0
  158. package/dist/lib/media/webp.js.map +1 -1
  159. package/dist/lib/memory/memory-events.d.ts +25 -0
  160. package/dist/lib/memory/memory-events.d.ts.map +1 -0
  161. package/dist/lib/memory/memory-events.js +135 -0
  162. package/dist/lib/memory/memory-events.js.map +1 -0
  163. package/dist/lib/memory/memory-vault-git.js.map +1 -1
  164. package/dist/lib/memory/vault-explorer.d.ts.map +1 -1
  165. package/dist/lib/memory/vault-explorer.js +3 -2
  166. package/dist/lib/memory/vault-explorer.js.map +1 -1
  167. package/dist/lib/models/ai-settings.d.ts +38 -0
  168. package/dist/lib/models/ai-settings.d.ts.map +1 -0
  169. package/dist/lib/models/ai-settings.js +204 -0
  170. package/dist/lib/models/ai-settings.js.map +1 -0
  171. package/dist/lib/models/custom-providers.d.ts +6 -0
  172. package/dist/lib/models/custom-providers.d.ts.map +1 -1
  173. package/dist/lib/models/custom-providers.js +13 -3
  174. package/dist/lib/models/custom-providers.js.map +1 -1
  175. package/dist/lib/models/lane-uses.d.ts +10 -0
  176. package/dist/lib/models/lane-uses.d.ts.map +1 -0
  177. package/dist/lib/models/lane-uses.js +64 -0
  178. package/dist/lib/models/lane-uses.js.map +1 -0
  179. package/dist/lib/models/model-catalog.d.ts.map +1 -1
  180. package/dist/lib/models/model-catalog.js.map +1 -1
  181. package/dist/lib/models/model-config.d.ts.map +1 -1
  182. package/dist/lib/models/model-config.js +15 -2
  183. package/dist/lib/models/model-config.js.map +1 -1
  184. package/dist/lib/models/slots.d.ts +19 -0
  185. package/dist/lib/models/slots.d.ts.map +1 -0
  186. package/dist/lib/models/slots.js +77 -0
  187. package/dist/lib/models/slots.js.map +1 -0
  188. package/dist/lib/observability/console-read.d.ts +32 -0
  189. package/dist/lib/observability/console-read.d.ts.map +1 -0
  190. package/dist/lib/observability/console-read.js +84 -0
  191. package/dist/lib/observability/console-read.js.map +1 -0
  192. package/dist/lib/observability/logger.d.ts +4 -1
  193. package/dist/lib/observability/logger.d.ts.map +1 -1
  194. package/dist/lib/observability/logger.js +98 -7
  195. package/dist/lib/observability/logger.js.map +1 -1
  196. package/dist/lib/observability/model-events.d.ts +54 -0
  197. package/dist/lib/observability/model-events.d.ts.map +1 -0
  198. package/dist/lib/observability/model-events.js +111 -0
  199. package/dist/lib/observability/model-events.js.map +1 -0
  200. package/dist/lib/observability/recorder-hook.d.ts +1 -1
  201. package/dist/lib/observability/recorder-hook.d.ts.map +1 -1
  202. package/dist/lib/observability/recorder-hook.js +16 -3
  203. package/dist/lib/observability/recorder-hook.js.map +1 -1
  204. package/dist/lib/observability/recorder.d.ts +6 -0
  205. package/dist/lib/observability/recorder.d.ts.map +1 -1
  206. package/dist/lib/observability/recorder.js +10 -1
  207. package/dist/lib/observability/recorder.js.map +1 -1
  208. package/dist/tenant.d.ts +16 -7
  209. package/dist/tenant.d.ts.map +1 -1
  210. package/dist/tenant.js.map +1 -1
  211. package/package.json +43 -3
@@ -1,7 +1,8 @@
1
1
  import { mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
2
2
  import { dirname, join } from "node:path";
3
3
  import { logger } from "../observability/logger.js";
4
- import { onUsageRecorded, readRootDayTotal } from "./token-usage-pg.js";
4
+ import { accountGroup, isAccountKey, resolveAccount } from "./account.js";
5
+ import { onUsageRecorded, readAccountDayTotal, readRootDayTotal, } from "./token-usage-pg.js";
5
6
  const log = logger.child({ module: "token-budget" });
6
7
  export const DEFAULT_TOKEN_BUDGET = 10_000_000;
7
8
  export const TOKEN_BUDGET_CODE = "TOKEN_BUDGET_EXCEEDED";
@@ -11,15 +12,21 @@ export class TokenBudgetExceededError extends Error {
11
12
  rootId;
12
13
  total;
13
14
  budget;
15
+ account;
14
16
  constructor(args) {
15
- super(`${TOKEN_BUDGET_CODE}: run ${args.rootId} spent ${args.total.toLocaleString("en-US")} tokens today` +
16
- ` (budget ${args.budget.toLocaleString("en-US")}${args.flow ? `, flow ${args.flow}` : ""})` +
17
- " stopping before the next model call. Raise the budget in the console (Budgets) to resume.");
17
+ super(args.account
18
+ ? `${TOKEN_BUDGET_CODE}: account ${args.account} spent ${args.total.toLocaleString("en-US")} tokens today` +
19
+ ` (ceiling ${args.budget.toLocaleString("en-US")}, run ${args.rootId}${args.flow ? `, flow ${args.flow}` : ""})` +
20
+ " — stopping before the next model call. Raise the account ceiling in the console (Budgets) to resume."
21
+ : `${TOKEN_BUDGET_CODE}: run ${args.rootId} spent ${args.total.toLocaleString("en-US")} tokens today` +
22
+ ` (budget ${args.budget.toLocaleString("en-US")}${args.flow ? `, flow ${args.flow}` : ""})` +
23
+ " — stopping before the next model call. Raise the budget in the console (Budgets) to resume.");
18
24
  this.name = "TokenBudgetExceededError";
19
25
  this.flow = args.flow;
20
26
  this.rootId = args.rootId;
21
27
  this.total = args.total;
22
28
  this.budget = args.budget;
29
+ this.account = args.account;
23
30
  }
24
31
  }
25
32
  export function isTokenBudgetError(err) {
@@ -83,8 +90,28 @@ function sanitize(raw) {
83
90
  if (Object.keys(byFlow).length)
84
91
  out.byFlow = byFlow;
85
92
  }
93
+ if (raw.byAccount && typeof raw.byAccount === "object") {
94
+ const byAccount = {};
95
+ for (const [k, v] of Object.entries(raw.byAccount)) {
96
+ const n = budgetValue(v);
97
+ if (n !== undefined && isAccountKey(k))
98
+ byAccount[k] = n;
99
+ }
100
+ if (Object.keys(byAccount).length)
101
+ out.byAccount = byAccount;
102
+ }
86
103
  return out;
87
104
  }
105
+ export function effectiveAccountBudget(account, cfg = readTokenBudgetConfig()) {
106
+ if (!cfg.byAccount)
107
+ return undefined;
108
+ if (account in cfg.byAccount)
109
+ return { key: account, budget: cfg.byAccount[account] };
110
+ const org = accountGroup(account);
111
+ if (org !== account && org in cfg.byAccount)
112
+ return { key: org, budget: cfg.byAccount[org] };
113
+ return undefined;
114
+ }
88
115
  export function effectiveTokenBudget(flow, cfg = readTokenBudgetConfig()) {
89
116
  if (flow && cfg.byFlow) {
90
117
  if (flow in cfg.byFlow)
@@ -99,6 +126,7 @@ export function tokenBudgetView(cfg = readTokenBudgetConfig()) {
99
126
  return {
100
127
  defaultBudget: cfg.defaultBudget ?? null,
101
128
  byFlow: cfg.byFlow ?? {},
129
+ byAccount: cfg.byAccount ?? {},
102
130
  hardDefault: DEFAULT_TOKEN_BUDGET,
103
131
  };
104
132
  }
@@ -112,7 +140,32 @@ export function applyTokenBudgetPatch(cur, body) {
112
140
  const next = {
113
141
  ...(cur.defaultBudget !== undefined ? { defaultBudget: cur.defaultBudget } : {}),
114
142
  ...(cur.byFlow ? { byFlow: { ...cur.byFlow } } : {}),
143
+ ...(cur.byAccount ? { byAccount: { ...cur.byAccount } } : {}),
115
144
  };
145
+ if (body.byAccount !== undefined) {
146
+ if (!body.byAccount || typeof body.byAccount !== "object" || Array.isArray(body.byAccount)) {
147
+ return { ok: false, error: "byAccount must be an object" };
148
+ }
149
+ const byAccount = { ...(next.byAccount ?? {}) };
150
+ for (const [key, raw] of Object.entries(body.byAccount)) {
151
+ if (!isAccountKey(key))
152
+ return {
153
+ ok: false,
154
+ error: `byAccount.${key} is not an account key (<kind>:<org>[/<name>])`,
155
+ };
156
+ const v = budgetOrNull(raw);
157
+ if (v === undefined)
158
+ return { ok: false, error: `byAccount.${key} must be a number ≥ 0 or null` };
159
+ if (v === null)
160
+ delete byAccount[key];
161
+ else
162
+ byAccount[key] = v;
163
+ }
164
+ if (Object.keys(byAccount).length)
165
+ next.byAccount = byAccount;
166
+ else
167
+ delete next.byAccount;
168
+ }
116
169
  if ("defaultBudget" in body) {
117
170
  const v = budgetOrNull(body.defaultBudget);
118
171
  if (v === undefined)
@@ -181,6 +234,34 @@ function noteUsage(row) {
181
234
  const key = keyFor(row.rootId, dayOf(row.at));
182
235
  totals.set(key, (totals.get(key) ?? 0) + row.input + row.output);
183
236
  prune(totals, TOTALS_CAP);
237
+ if (row.account) {
238
+ const day = dayOf(row.at);
239
+ const org = accountGroup(row.account);
240
+ for (const k of org === row.account ? [row.account] : [row.account, org]) {
241
+ const ak = keyFor(k, day);
242
+ accountTotals.set(ak, (accountTotals.get(ak) ?? 0) + row.input + row.output);
243
+ }
244
+ prune(accountTotals, TOTALS_CAP);
245
+ }
246
+ }
247
+ const accountTotals = new Map();
248
+ const accountHydrated = new Set();
249
+ function hydrateAccount(key, day) {
250
+ const ak = keyFor(key, day);
251
+ if (accountHydrated.has(ak))
252
+ return;
253
+ accountHydrated.add(ak);
254
+ void readAccountDayTotal(key, day)
255
+ .then((pgTotal) => {
256
+ if (pgTotal <= 0)
257
+ return;
258
+ const cur = accountTotals.get(ak) ?? 0;
259
+ if (pgTotal > cur) {
260
+ accountTotals.set(ak, pgTotal);
261
+ prune(accountTotals, TOTALS_CAP);
262
+ }
263
+ })
264
+ .catch(() => undefined);
184
265
  }
185
266
  onUsageRecorded(noteUsage);
186
267
  function hydrate(rootId, day) {
@@ -201,17 +282,40 @@ function hydrate(rootId, day) {
201
282
  .catch(() => undefined);
202
283
  }
203
284
  export function tokenBudgetStatus(args) {
204
- const budget = effectiveTokenBudget(args.flow);
205
- if (budget <= 0 || !(args.sessionId || args.rootId)) {
285
+ const cfg = readTokenBudgetConfig();
286
+ const budget = effectiveTokenBudget(args.flow, cfg);
287
+ if (!(args.sessionId || args.rootId)) {
206
288
  return { rootId: undefined, total: 0, budget, exceeded: false };
207
289
  }
208
290
  const rootId = args.rootId ?? (args.sessionId ? (rootOf.get(args.sessionId) ?? args.sessionId) : undefined);
209
291
  if (!rootId)
210
292
  return { rootId: undefined, total: 0, budget, exceeded: false };
211
293
  const day = dayOf(new Date().toISOString());
212
- hydrate(rootId, day);
213
- const total = totals.get(keyFor(rootId, day)) ?? 0;
214
- return { rootId, total, budget, exceeded: total >= budget };
294
+ let total = 0;
295
+ let exceeded = false;
296
+ if (budget > 0) {
297
+ hydrate(rootId, day);
298
+ total = totals.get(keyFor(rootId, day)) ?? 0;
299
+ exceeded = total >= budget;
300
+ }
301
+ const accountKey = resolveAccount(rootId);
302
+ const ceiling = accountKey ? effectiveAccountBudget(accountKey, cfg) : undefined;
303
+ if (!ceiling || ceiling.budget <= 0)
304
+ return { rootId, total, budget, exceeded };
305
+ hydrateAccount(ceiling.key, day);
306
+ const accountTotal = accountTotals.get(keyFor(ceiling.key, day)) ?? 0;
307
+ return {
308
+ rootId,
309
+ total,
310
+ budget,
311
+ exceeded,
312
+ account: {
313
+ key: ceiling.key,
314
+ total: accountTotal,
315
+ budget: ceiling.budget,
316
+ exceeded: accountTotal >= ceiling.budget,
317
+ },
318
+ };
215
319
  }
216
320
  export function assertTokenBudget(args) {
217
321
  let status;
@@ -222,25 +326,52 @@ export function assertTokenBudget(args) {
222
326
  log.warn({ err: String(err) }, "token budget check failed — failing open");
223
327
  return;
224
328
  }
225
- if (!status.exceeded || !status.rootId)
329
+ if (!status.rootId)
330
+ return;
331
+ const day = dayOf(new Date().toISOString());
332
+ if (status.exceeded) {
333
+ const key = keyFor(status.rootId, day);
334
+ if (!screamed.has(key)) {
335
+ screamed.add(key);
336
+ prune(screamed, 1_024);
337
+ log.error({ rootId: status.rootId, flow: args.flow, total: status.total, budget: status.budget }, "TOKEN BUDGET EXCEEDED — refusing further model calls for this run today");
338
+ }
339
+ throw new TokenBudgetExceededError({
340
+ ...(args.flow ? { flow: args.flow } : {}),
341
+ rootId: status.rootId,
342
+ total: status.total,
343
+ budget: status.budget,
344
+ });
345
+ }
346
+ const acct = status.account;
347
+ if (!acct?.exceeded)
226
348
  return;
227
- const key = keyFor(status.rootId, dayOf(new Date().toISOString()));
349
+ const key = keyFor(acct.key, day);
228
350
  if (!screamed.has(key)) {
229
351
  screamed.add(key);
230
352
  prune(screamed, 1_024);
231
- log.error({ rootId: status.rootId, flow: args.flow, total: status.total, budget: status.budget }, "TOKEN BUDGET EXCEEDED — refusing further model calls for this run today");
353
+ log.error({
354
+ account: acct.key,
355
+ rootId: status.rootId,
356
+ flow: args.flow,
357
+ total: acct.total,
358
+ budget: acct.budget,
359
+ }, "ACCOUNT CEILING EXCEEDED — refusing further model calls for this account today");
232
360
  }
233
361
  throw new TokenBudgetExceededError({
234
362
  ...(args.flow ? { flow: args.flow } : {}),
235
363
  rootId: status.rootId,
236
- total: status.total,
237
- budget: status.budget,
364
+ total: acct.total,
365
+ budget: acct.budget,
366
+ account: acct.key,
238
367
  });
239
368
  }
240
369
  export function _resetTokenBudget() {
241
370
  totals.clear();
242
371
  rootOf.clear();
243
372
  hydrated.clear();
373
+ accountTotals.clear();
374
+ accountHydrated.clear();
244
375
  screamed.clear();
245
376
  cfgCache = null;
246
377
  }
@@ -1 +1 @@
1
- {"version":3,"file":"token-budget.js","sourceRoot":"","sources":["../../../src/lib/budgets/token-budget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-budget.js","sourceRoot":"","sources":["../../../src/lib/budgets/token-budget.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
+ import type { Pool } from "pg";
2
+ export declare function usageDbUrl(): string | undefined;
3
+ export declare function getUsagePool(): Pool | undefined;
1
4
  export interface UsageRow {
2
5
  sessionId: string;
3
6
  rootId: string;
@@ -5,6 +8,8 @@ export interface UsageRow {
5
8
  model: string;
6
9
  turnId: string | null;
7
10
  stepIndex: number | null;
11
+ scope?: string | null;
12
+ account?: string | null;
8
13
  at: string;
9
14
  input: number;
10
15
  output: number;
@@ -14,12 +19,18 @@ export interface UsageRow {
14
19
  }
15
20
  type UsageListener = (row: UsageRow) => void;
16
21
  export declare function onUsageRecorded(fn: UsageListener): () => void;
17
- export declare function recordUsage(r: UsageRow): Promise<void>;
22
+ export declare function withAccount(r: UsageRow): UsageRow;
23
+ export declare function recordUsage(row: UsageRow): Promise<void>;
24
+ export interface AccountFilter {
25
+ key: string;
26
+ roots: string[];
27
+ }
18
28
  export interface AggregateQuery {
19
29
  from: string;
20
30
  to: string;
21
31
  bucket: "day" | "hour";
22
32
  instance?: string;
33
+ account?: AccountFilter;
23
34
  }
24
35
  export interface UsageBreakdownRow {
25
36
  key: string | null;
@@ -32,6 +43,7 @@ export interface UsageBreakdownRow {
32
43
  }
33
44
  export interface UsageRootRow {
34
45
  rootId: string;
46
+ account: string | null;
35
47
  input: number;
36
48
  output: number;
37
49
  total: number;
@@ -60,18 +72,22 @@ export interface UsageAggregate {
60
72
  }[];
61
73
  byModel: UsageBreakdownRow[];
62
74
  byFlow: UsageBreakdownRow[];
75
+ byScope: UsageBreakdownRow[];
63
76
  byInstance: UsageBreakdownRow[];
64
77
  byRoot: UsageRootRow[];
65
78
  }
66
79
  export declare function readUsageAggregate(q: AggregateQuery): Promise<UsageAggregate>;
67
80
  export declare function readRunUsageByModel(rootId: string, flow?: string): Promise<UsageBreakdownRow[]>;
68
81
  export declare function readRootDayTotal(rootId: string, dayIso: string): Promise<number>;
82
+ export declare function readAccountDayTotal(key: string, dayIso: string): Promise<number>;
69
83
  export interface LogsQuery {
70
84
  limit: number;
71
85
  before?: number;
72
86
  flow?: string;
73
87
  model?: string;
88
+ scope?: string;
74
89
  instance?: string;
90
+ account?: AccountFilter;
75
91
  }
76
92
  export interface UsageLogRow {
77
93
  id: number;
@@ -79,6 +95,9 @@ export interface UsageLogRow {
79
95
  rootId: string;
80
96
  flow: string | null;
81
97
  model: string;
98
+ origin: "step" | "call";
99
+ scope: string | null;
100
+ account: string | null;
82
101
  at: string;
83
102
  input: number;
84
103
  output: number;
@@ -1 +1 @@
1
- {"version":3,"file":"token-usage-pg.d.ts","sourceRoot":"","sources":["../../../src/lib/budgets/token-usage-pg.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-usage-pg.d.ts","sourceRoot":"","sources":["../../../src/lib/budgets/token-usage-pg.ts"],"names":[],"mappings":"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"}