@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
@@ -0,0 +1,212 @@
1
+ export declare const modelEvents: import("drizzle-orm/pg-core").PgTableWithColumns<{
2
+ name: "model_events";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/pg-core").PgColumn<{
6
+ name: "id";
7
+ tableName: "model_events";
8
+ dataType: "number";
9
+ columnType: "PgBigSerial53";
10
+ data: number;
11
+ driverParam: number;
12
+ notNull: true;
13
+ hasDefault: true;
14
+ isPrimaryKey: true;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: false;
17
+ enumValues: undefined;
18
+ baseColumn: never;
19
+ identity: undefined;
20
+ generated: undefined;
21
+ }, {}, {}>;
22
+ at: import("drizzle-orm/pg-core").PgColumn<{
23
+ name: "at";
24
+ tableName: "model_events";
25
+ dataType: "date";
26
+ columnType: "PgTimestamp";
27
+ data: Date;
28
+ driverParam: string;
29
+ notNull: true;
30
+ hasDefault: false;
31
+ isPrimaryKey: false;
32
+ isAutoincrement: false;
33
+ hasRuntimeDefault: false;
34
+ enumValues: undefined;
35
+ baseColumn: never;
36
+ identity: undefined;
37
+ generated: undefined;
38
+ }, {}, {}>;
39
+ instance: import("drizzle-orm/pg-core").PgColumn<{
40
+ name: "instance";
41
+ tableName: "model_events";
42
+ dataType: "string";
43
+ columnType: "PgText";
44
+ data: string;
45
+ driverParam: string;
46
+ notNull: true;
47
+ hasDefault: true;
48
+ isPrimaryKey: false;
49
+ isAutoincrement: false;
50
+ hasRuntimeDefault: false;
51
+ enumValues: [string, ...string[]];
52
+ baseColumn: never;
53
+ identity: undefined;
54
+ generated: undefined;
55
+ }, {}, {}>;
56
+ key: import("drizzle-orm/pg-core").PgColumn<{
57
+ name: "key";
58
+ tableName: "model_events";
59
+ dataType: "string";
60
+ columnType: "PgText";
61
+ data: string;
62
+ driverParam: string;
63
+ notNull: false;
64
+ hasDefault: false;
65
+ isPrimaryKey: false;
66
+ isAutoincrement: false;
67
+ hasRuntimeDefault: false;
68
+ enumValues: [string, ...string[]];
69
+ baseColumn: never;
70
+ identity: undefined;
71
+ generated: undefined;
72
+ }, {}, {}>;
73
+ sessionId: import("drizzle-orm/pg-core").PgColumn<{
74
+ name: "session_id";
75
+ tableName: "model_events";
76
+ dataType: "string";
77
+ columnType: "PgText";
78
+ data: string;
79
+ driverParam: string;
80
+ notNull: false;
81
+ hasDefault: false;
82
+ isPrimaryKey: false;
83
+ isAutoincrement: false;
84
+ hasRuntimeDefault: false;
85
+ enumValues: [string, ...string[]];
86
+ baseColumn: never;
87
+ identity: undefined;
88
+ generated: undefined;
89
+ }, {}, {}>;
90
+ rootId: import("drizzle-orm/pg-core").PgColumn<{
91
+ name: "root_id";
92
+ tableName: "model_events";
93
+ dataType: "string";
94
+ columnType: "PgText";
95
+ data: string;
96
+ driverParam: string;
97
+ notNull: false;
98
+ hasDefault: false;
99
+ isPrimaryKey: false;
100
+ isAutoincrement: false;
101
+ hasRuntimeDefault: false;
102
+ enumValues: [string, ...string[]];
103
+ baseColumn: never;
104
+ identity: undefined;
105
+ generated: undefined;
106
+ }, {}, {}>;
107
+ main: import("drizzle-orm/pg-core").PgColumn<{
108
+ name: "main";
109
+ tableName: "model_events";
110
+ dataType: "string";
111
+ columnType: "PgText";
112
+ data: string;
113
+ driverParam: string;
114
+ notNull: false;
115
+ hasDefault: false;
116
+ isPrimaryKey: false;
117
+ isAutoincrement: false;
118
+ hasRuntimeDefault: false;
119
+ enumValues: [string, ...string[]];
120
+ baseColumn: never;
121
+ identity: undefined;
122
+ generated: undefined;
123
+ }, {}, {}>;
124
+ errorCode: import("drizzle-orm/pg-core").PgColumn<{
125
+ name: "error_code";
126
+ tableName: "model_events";
127
+ dataType: "string";
128
+ columnType: "PgText";
129
+ data: string;
130
+ driverParam: string;
131
+ notNull: false;
132
+ hasDefault: false;
133
+ isPrimaryKey: false;
134
+ isAutoincrement: false;
135
+ hasRuntimeDefault: false;
136
+ enumValues: [string, ...string[]];
137
+ baseColumn: never;
138
+ identity: undefined;
139
+ generated: undefined;
140
+ }, {}, {}>;
141
+ error: import("drizzle-orm/pg-core").PgColumn<{
142
+ name: "error";
143
+ tableName: "model_events";
144
+ dataType: "string";
145
+ columnType: "PgText";
146
+ data: string;
147
+ driverParam: string;
148
+ notNull: true;
149
+ hasDefault: false;
150
+ isPrimaryKey: false;
151
+ isAutoincrement: false;
152
+ hasRuntimeDefault: false;
153
+ enumValues: [string, ...string[]];
154
+ baseColumn: never;
155
+ identity: undefined;
156
+ generated: undefined;
157
+ }, {}, {}>;
158
+ elapsedMs: import("drizzle-orm/pg-core").PgColumn<{
159
+ name: "elapsed_ms";
160
+ tableName: "model_events";
161
+ dataType: "number";
162
+ columnType: "PgInteger";
163
+ data: number;
164
+ driverParam: string | number;
165
+ notNull: false;
166
+ hasDefault: false;
167
+ isPrimaryKey: false;
168
+ isAutoincrement: false;
169
+ hasRuntimeDefault: false;
170
+ enumValues: undefined;
171
+ baseColumn: never;
172
+ identity: undefined;
173
+ generated: undefined;
174
+ }, {}, {}>;
175
+ outcome: import("drizzle-orm/pg-core").PgColumn<{
176
+ name: "outcome";
177
+ tableName: "model_events";
178
+ dataType: "string";
179
+ columnType: "PgText";
180
+ data: string;
181
+ driverParam: string;
182
+ notNull: true;
183
+ hasDefault: false;
184
+ isPrimaryKey: false;
185
+ isAutoincrement: false;
186
+ hasRuntimeDefault: false;
187
+ enumValues: [string, ...string[]];
188
+ baseColumn: never;
189
+ identity: undefined;
190
+ generated: undefined;
191
+ }, {}, {}>;
192
+ legModel: import("drizzle-orm/pg-core").PgColumn<{
193
+ name: "leg_model";
194
+ tableName: "model_events";
195
+ dataType: "string";
196
+ columnType: "PgText";
197
+ data: string;
198
+ driverParam: string;
199
+ notNull: false;
200
+ hasDefault: false;
201
+ isPrimaryKey: false;
202
+ isAutoincrement: false;
203
+ hasRuntimeDefault: false;
204
+ enumValues: [string, ...string[]];
205
+ baseColumn: never;
206
+ identity: undefined;
207
+ generated: undefined;
208
+ }, {}, {}>;
209
+ };
210
+ dialect: "pg";
211
+ }>;
212
+ //# sourceMappingURL=observability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../../../src/db/schema/observability.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBvB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { bigserial, index, integer, pgTable, text, timestamp } from "drizzle-orm/pg-core";
2
+ export const modelEvents = pgTable("model_events", {
3
+ id: bigserial("id", { mode: "number" }).primaryKey(),
4
+ at: timestamp("at", { withTimezone: true }).notNull(),
5
+ instance: text("instance").notNull().default("eve"),
6
+ key: text("key"),
7
+ sessionId: text("session_id"),
8
+ rootId: text("root_id"),
9
+ main: text("main"),
10
+ errorCode: text("error_code"),
11
+ error: text("error").notNull(),
12
+ elapsedMs: integer("elapsed_ms"),
13
+ outcome: text("outcome").notNull(),
14
+ legModel: text("leg_model"),
15
+ }, (t) => [index("model_events_at_idx").on(t.at), index("model_events_root_idx").on(t.rootId)]);
16
+ //# sourceMappingURL=observability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observability.js","sourceRoot":"","sources":["../../../src/db/schema/observability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAI1F,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAChC,cAAc,EACd;IACE,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,UAAU,EAAE;IACpD,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;IACrD,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnD,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;IAC7B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;IACvB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;IAC7B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE;IAC9B,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC;IAChC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;IAClC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC;CAC5B,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAC5F,CAAC"}
@@ -0,0 +1,116 @@
1
+ export declare function workflowRunsReadTable(qualifiedName: string): import("drizzle-orm/pg-core").PgTableWithColumns<{
2
+ name: string;
3
+ schema: string;
4
+ columns: {
5
+ id: import("drizzle-orm/pg-core").PgColumn<{
6
+ name: "id";
7
+ tableName: string;
8
+ dataType: "string";
9
+ columnType: "PgText";
10
+ data: string;
11
+ driverParam: string;
12
+ notNull: false;
13
+ hasDefault: false;
14
+ isPrimaryKey: false;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: false;
17
+ enumValues: [string, ...string[]];
18
+ baseColumn: never;
19
+ identity: undefined;
20
+ generated: undefined;
21
+ }, {}, {}>;
22
+ status: import("drizzle-orm/pg-core").PgColumn<{
23
+ name: "status";
24
+ tableName: string;
25
+ dataType: "string";
26
+ columnType: "PgText";
27
+ data: string;
28
+ driverParam: string;
29
+ notNull: false;
30
+ hasDefault: false;
31
+ isPrimaryKey: false;
32
+ isAutoincrement: false;
33
+ hasRuntimeDefault: false;
34
+ enumValues: [string, ...string[]];
35
+ baseColumn: never;
36
+ identity: undefined;
37
+ generated: undefined;
38
+ }, {}, {}>;
39
+ attributes: import("drizzle-orm/pg-core").PgColumn<{
40
+ name: "attributes";
41
+ tableName: string;
42
+ dataType: "json";
43
+ columnType: "PgJsonb";
44
+ data: unknown;
45
+ driverParam: unknown;
46
+ notNull: false;
47
+ hasDefault: false;
48
+ isPrimaryKey: false;
49
+ isAutoincrement: false;
50
+ hasRuntimeDefault: false;
51
+ enumValues: undefined;
52
+ baseColumn: never;
53
+ identity: undefined;
54
+ generated: undefined;
55
+ }, {}, {}>;
56
+ };
57
+ dialect: "pg";
58
+ }> | import("drizzle-orm/pg-core").PgTableWithColumns<{
59
+ name: string;
60
+ schema: undefined;
61
+ columns: {
62
+ id: import("drizzle-orm/pg-core").PgColumn<{
63
+ name: "id";
64
+ tableName: string;
65
+ dataType: "string";
66
+ columnType: "PgText";
67
+ data: string;
68
+ driverParam: string;
69
+ notNull: false;
70
+ hasDefault: false;
71
+ isPrimaryKey: false;
72
+ isAutoincrement: false;
73
+ hasRuntimeDefault: false;
74
+ enumValues: [string, ...string[]];
75
+ baseColumn: never;
76
+ identity: undefined;
77
+ generated: undefined;
78
+ }, {}, {}>;
79
+ status: import("drizzle-orm/pg-core").PgColumn<{
80
+ name: "status";
81
+ tableName: string;
82
+ dataType: "string";
83
+ columnType: "PgText";
84
+ data: string;
85
+ driverParam: string;
86
+ notNull: false;
87
+ hasDefault: false;
88
+ isPrimaryKey: false;
89
+ isAutoincrement: false;
90
+ hasRuntimeDefault: false;
91
+ enumValues: [string, ...string[]];
92
+ baseColumn: never;
93
+ identity: undefined;
94
+ generated: undefined;
95
+ }, {}, {}>;
96
+ attributes: import("drizzle-orm/pg-core").PgColumn<{
97
+ name: "attributes";
98
+ tableName: string;
99
+ dataType: "json";
100
+ columnType: "PgJsonb";
101
+ data: unknown;
102
+ driverParam: unknown;
103
+ notNull: false;
104
+ hasDefault: false;
105
+ isPrimaryKey: false;
106
+ isAutoincrement: false;
107
+ hasRuntimeDefault: false;
108
+ enumValues: undefined;
109
+ baseColumn: never;
110
+ identity: undefined;
111
+ generated: undefined;
112
+ }, {}, {}>;
113
+ };
114
+ dialect: "pg";
115
+ }>;
116
+ //# sourceMappingURL=workflow-read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-read.d.ts","sourceRoot":"","sources":["../../../src/db/schema/workflow-read.ts"],"names":[],"mappings":"AAIA,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAS1D"}
@@ -0,0 +1,13 @@
1
+ import { jsonb, pgSchema, pgTable, text } from "drizzle-orm/pg-core";
2
+ export function workflowRunsReadTable(qualifiedName) {
3
+ const parts = qualifiedName.split(".");
4
+ if (parts.length > 2 || parts.some((part) => !/^[a-z_][a-z0-9_]*$/.test(part))) {
5
+ throw new Error(`Invalid workflow runs table: ${qualifiedName}`);
6
+ }
7
+ const columns = { id: text("id"), status: text("status"), attributes: jsonb("attributes") };
8
+ const [first, second] = parts;
9
+ if (!first)
10
+ throw new Error("Workflow runs table is empty");
11
+ return second ? pgSchema(first).table(second, columns) : pgTable(first, columns);
12
+ }
13
+ //# sourceMappingURL=workflow-read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-read.js","sourceRoot":"","sources":["../../../src/db/schema/workflow-read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAIrE,MAAM,UAAU,qBAAqB,CAAC,aAAqB;IACzD,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,IAAI,KAAK,CAAC,gCAAgC,aAAa,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,OAAO,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;IAC5F,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;IAC9B,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC5D,OAAO,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACnF,CAAC"}
@@ -0,0 +1,12 @@
1
+ export declare const UNKNOWN_ACCOUNT = "unknown";
2
+ export declare function accountKey(kind: string, org: string, name?: string): string;
3
+ export declare function githubAccount(fullName: string | null | undefined): string | null;
4
+ export declare function isAccountKey(value: unknown): value is string;
5
+ export declare function accountGroup(key: string | null | undefined): string;
6
+ export declare function accountMatches(key: string, account: string | null | undefined): boolean;
7
+ export declare function accountFilterRoots(key: string, index: Map<string, string>): string[];
8
+ export declare function bindAccount(rootId: string, key: string | null | undefined): void;
9
+ export declare function resetAccountBindings(): void;
10
+ export declare function resolveAccount(rootId: string): string | null;
11
+ export declare function accountIndex(): Map<string, string>;
12
+ //# sourceMappingURL=account.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/lib/budgets/account.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,eAAe,YAAY,CAAC;AAKzC,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAM3E;AAID,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAIhF;AAGD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE5D;AAID,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAInE;AAMD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAEvF;AAMD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,CAMpF;AAYD,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAQhF;AAGD,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AASD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ5D;AAKD,wBAAgB,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAYlD"}
@@ -0,0 +1,84 @@
1
+ import { indexedSession, readSessionsIndexed } from "../observability/recorder.js";
2
+ export const UNKNOWN_ACCOUNT = "unknown";
3
+ const KEY_RE = /^[a-z][a-z0-9_-]*:[^\s/:][^\s:]*$/;
4
+ export function accountKey(kind, org, name) {
5
+ const k = kind.trim().toLowerCase();
6
+ const o = org.trim();
7
+ const n = name?.trim();
8
+ if (!k || !o || (name != null && !n))
9
+ throw new Error("accountKey: empty segment");
10
+ return n ? `${k}:${o}/${n}` : `${k}:${o}`;
11
+ }
12
+ export function githubAccount(fullName) {
13
+ const parts = (fullName ?? "").split("/");
14
+ if (parts.length !== 2 || !parts[0] || !parts[1])
15
+ return null;
16
+ return accountKey("github", parts[0], parts[1]);
17
+ }
18
+ export function isAccountKey(value) {
19
+ return typeof value === "string" && KEY_RE.test(value);
20
+ }
21
+ export function accountGroup(key) {
22
+ if (!key || key === UNKNOWN_ACCOUNT)
23
+ return UNKNOWN_ACCOUNT;
24
+ const slash = key.lastIndexOf("/");
25
+ return slash > key.indexOf(":") ? key.slice(0, slash) : key;
26
+ }
27
+ export function accountMatches(key, account) {
28
+ return !!account && (account === key || account.startsWith(`${key}/`));
29
+ }
30
+ export function accountFilterRoots(key, index) {
31
+ const out = [];
32
+ for (const [rootId, account] of index) {
33
+ if (key === UNKNOWN_ACCOUNT || accountMatches(key, account))
34
+ out.push(rootId);
35
+ }
36
+ return out;
37
+ }
38
+ const MAX_BINDINGS = 4096;
39
+ const bindings = new Map();
40
+ export function bindAccount(rootId, key) {
41
+ if (!rootId || !isAccountKey(key))
42
+ return;
43
+ if (bindings.has(rootId))
44
+ bindings.delete(rootId);
45
+ bindings.set(rootId, key);
46
+ if (bindings.size > MAX_BINDINGS) {
47
+ const oldest = bindings.keys().next().value;
48
+ if (oldest !== undefined)
49
+ bindings.delete(oldest);
50
+ }
51
+ }
52
+ export function resetAccountBindings() {
53
+ bindings.clear();
54
+ }
55
+ function fromIndexRow(row) {
56
+ return row ? githubAccount(row.source.repo) : null;
57
+ }
58
+ export function resolveAccount(rootId) {
59
+ const bound = bindings.get(rootId);
60
+ if (bound)
61
+ return bound;
62
+ try {
63
+ return fromIndexRow(indexedSession(rootId));
64
+ }
65
+ catch {
66
+ return null;
67
+ }
68
+ }
69
+ export function accountIndex() {
70
+ const m = new Map();
71
+ try {
72
+ for (const row of readSessionsIndexed()) {
73
+ const key = fromIndexRow(row);
74
+ if (key)
75
+ m.set(row.id, key);
76
+ }
77
+ }
78
+ catch {
79
+ }
80
+ for (const [rootId, key] of bindings)
81
+ m.set(rootId, key);
82
+ return m;
83
+ }
84
+ //# sourceMappingURL=account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/lib/budgets/account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAyBnF,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC;AAEzC,MAAM,MAAM,GAAG,mCAAmC,CAAC;AAGnD,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,GAAW,EAAE,IAAa;IACjE,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACrB,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACvB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACnF,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AAC5C,CAAC;AAID,MAAM,UAAU,aAAa,CAAC,QAAmC;IAC/D,MAAM,KAAK,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9D,OAAO,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAGD,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzD,CAAC;AAID,MAAM,UAAU,YAAY,CAAC,GAA8B;IACzD,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,eAAe;QAAE,OAAO,eAAe,CAAC;IAC5D,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9D,CAAC;AAMD,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,OAAkC;IAC5E,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,KAAK,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;AACzE,CAAC;AAMD,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,KAA0B;IACxE,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC;QACtC,IAAI,GAAG,KAAK,eAAe,IAAI,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAMD,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;AAK3C,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,GAA8B;IACxE,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;QAAE,OAAO;IAC1C,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClD,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,IAAI,QAAQ,CAAC,IAAI,GAAG,YAAY,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS;YAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAGD,MAAM,UAAU,oBAAoB;IAClC,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CAAC,GAAoD;IACxE,OAAO,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC;AAKD,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAKD,MAAM,UAAU,YAAY;IAC1B,MAAM,CAAC,GAAG,IAAI,GAAG,EAAkB,CAAC;IACpC,IAAI,CAAC;QACH,KAAK,MAAM,GAAG,IAAI,mBAAmB,EAAE,EAAE,CAAC;YACxC,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,GAAG;gBAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IACD,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,QAAQ;QAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACzD,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -1,4 +1,4 @@
1
- import { accessSync, constants, closeSync, existsSync, fsyncSync, mkdirSync, openSync, readFileSync, renameSync, writeFileSync, } from "node:fs";
1
+ import { accessSync, closeSync, constants, existsSync, fsyncSync, mkdirSync, openSync, readFileSync, renameSync, writeFileSync, } from "node:fs";
2
2
  import { join } from "node:path";
3
3
  export class PrepaidResponseStore {
4
4
  directory;
@@ -9,6 +9,7 @@ export interface CallTokens {
9
9
  export interface CallUsageArgs {
10
10
  model: string;
11
11
  flow: string;
12
+ scope?: string;
12
13
  tokens: CallTokens;
13
14
  at?: string;
14
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"record-call-usage.d.ts","sourceRoot":"","sources":["../../../src/lib/budgets/record-call-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAsB,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAUjE,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAGD,wBAAgB,YAAY,CAC1B,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,WAAW,GAAG,SAAS,EAC5B,EAAE,EAAE,MAAM,GACT,QAAQ,CAgBV;AAMD,wBAAgB,cAAc,CAC5B,KAAK,EACD;IACE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7E,GACD,SAAS,GACZ,UAAU,CAOZ;AAQD,wBAAgB,mBAAmB,CACjC,KAAK,EACD;IACE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC,GACD,SAAS,GACZ,UAAU,CAYZ;AAGD,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAGzD"}
1
+ {"version":3,"file":"record-call-usage.d.ts","sourceRoot":"","sources":["../../../src/lib/budgets/record-call-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAsB,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAUjE,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IAIb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAGD,wBAAgB,YAAY,CAC1B,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,WAAW,GAAG,SAAS,EAC5B,EAAE,EAAE,MAAM,GACT,QAAQ,CAiBV;AAMD,wBAAgB,cAAc,CAC5B,KAAK,EACD;IACE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7E,GACD,SAAS,GACZ,UAAU,CAOZ;AAQD,wBAAgB,mBAAmB,CACjC,KAAK,EACD;IACE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC,GACD,SAAS,GACZ,UAAU,CAYZ;AAGD,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAGzD"}
@@ -9,6 +9,7 @@ export function callUsageRow(args, ctx, at) {
9
9
  model: args.model,
10
10
  turnId: null,
11
11
  stepIndex: null,
12
+ scope: args.scope ?? null,
12
13
  at,
13
14
  input: args.tokens.input ?? 0,
14
15
  output: args.tokens.output ?? 0,
@@ -1 +1 @@
1
- {"version":3,"file":"record-call-usage.js","sourceRoot":"","sources":["../../../src/lib/budgets/record-call-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAE,WAAW,EAAiB,MAAM,qBAAqB,CAAC;AAyBjE,MAAM,UAAU,YAAY,CAC1B,IAAmB,EACnB,GAA4B,EAC5B,EAAU;IAEV,MAAM,SAAS,GAAG,GAAG,EAAE,SAAS,IAAI,UAAU,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1D,OAAO;QACL,SAAS;QACT,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,SAAS;QAChC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,IAAI;QACf,EAAE;QACF,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;QAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC;QAC/B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC;QACrC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC;QACvC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,KAAK;KAC5C,CAAC;AACJ,CAAC;AAMD,MAAM,UAAU,cAAc,CAC5B,KAMa;IAEb,OAAO;QACL,KAAK,EAAE,KAAK,EAAE,WAAW;QACzB,MAAM,EAAE,KAAK,EAAE,YAAY;QAC3B,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,eAAe;QACpD,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,gBAAgB;KACvD,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,mBAAmB,CACjC,KAOa;IAEb,MAAM,SAAS,GAAG,KAAK,EAAE,uBAAuB,CAAC;IACjD,MAAM,UAAU,GAAG,KAAK,EAAE,2BAA2B,CAAC;IACtD,OAAO;QACL,KAAK,EACH,KAAK,EAAE,YAAY,KAAK,SAAS;YAC/B,CAAC,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC;YAC3D,CAAC,CAAC,SAAS;QACf,MAAM,EAAE,KAAK,EAAE,aAAa;QAC5B,SAAS;QACT,UAAU;KACX,CAAC;AACJ,CAAC;AAGD,MAAM,UAAU,eAAe,CAAC,IAAmB;IACjD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/C,KAAK,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"record-call-usage.js","sourceRoot":"","sources":["../../../src/lib/budgets/record-call-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAE,WAAW,EAAiB,MAAM,qBAAqB,CAAC;AA6BjE,MAAM,UAAU,YAAY,CAC1B,IAAmB,EACnB,GAA4B,EAC5B,EAAU;IAEV,MAAM,SAAS,GAAG,GAAG,EAAE,SAAS,IAAI,UAAU,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1D,OAAO;QACL,SAAS;QACT,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,SAAS;QAChC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;QACzB,EAAE;QACF,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;QAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC;QAC/B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC;QACrC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC;QACvC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,KAAK;KAC5C,CAAC;AACJ,CAAC;AAMD,MAAM,UAAU,cAAc,CAC5B,KAMa;IAEb,OAAO;QACL,KAAK,EAAE,KAAK,EAAE,WAAW;QACzB,MAAM,EAAE,KAAK,EAAE,YAAY;QAC3B,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,eAAe;QACpD,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,gBAAgB;KACvD,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,mBAAmB,CACjC,KAOa;IAEb,MAAM,SAAS,GAAG,KAAK,EAAE,uBAAuB,CAAC;IACjD,MAAM,UAAU,GAAG,KAAK,EAAE,2BAA2B,CAAC;IACtD,OAAO;QACL,KAAK,EACH,KAAK,EAAE,YAAY,KAAK,SAAS;YAC/B,CAAC,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC;YAC3D,CAAC,CAAC,SAAS;QACf,MAAM,EAAE,KAAK,EAAE,aAAa;QAC5B,SAAS;QACT,UAAU;KACX,CAAC;AACJ,CAAC;AAGD,MAAM,UAAU,eAAe,CAAC,IAAmB;IACjD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/C,KAAK,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC"}
@@ -4,6 +4,7 @@ export declare const TOKEN_BUDGET_CODE = "TOKEN_BUDGET_EXCEEDED";
4
4
  export interface TokenBudgetConfig {
5
5
  defaultBudget?: number;
6
6
  byFlow?: Record<string, number>;
7
+ byAccount?: Record<string, number>;
7
8
  }
8
9
  export declare class TokenBudgetExceededError extends Error {
9
10
  readonly code = "TOKEN_BUDGET_EXCEEDED";
@@ -11,20 +12,27 @@ export declare class TokenBudgetExceededError extends Error {
11
12
  readonly rootId: string;
12
13
  readonly total: number;
13
14
  readonly budget: number;
15
+ readonly account: string | undefined;
14
16
  constructor(args: {
15
17
  flow?: string;
16
18
  rootId: string;
17
19
  total: number;
18
20
  budget: number;
21
+ account?: string;
19
22
  });
20
23
  }
21
24
  export declare function isTokenBudgetError(err: unknown): boolean;
22
25
  export declare function tokenBudgetsPath(): string;
23
26
  export declare function readTokenBudgetConfig(): TokenBudgetConfig;
27
+ export declare function effectiveAccountBudget(account: string, cfg?: TokenBudgetConfig): {
28
+ key: string;
29
+ budget: number;
30
+ } | undefined;
24
31
  export declare function effectiveTokenBudget(flow: string | undefined, cfg?: TokenBudgetConfig): number;
25
32
  export interface TokenBudgetsView {
26
33
  defaultBudget: number | null;
27
34
  byFlow: Record<string, number>;
35
+ byAccount: Record<string, number>;
28
36
  hardDefault: number;
29
37
  }
30
38
  export declare function tokenBudgetView(cfg?: TokenBudgetConfig): TokenBudgetsView;
@@ -38,6 +46,7 @@ export type TokenBudgetPatch = {
38
46
  export declare function applyTokenBudgetPatch(cur: TokenBudgetConfig, body: {
39
47
  defaultBudget?: unknown;
40
48
  byFlow?: unknown;
49
+ byAccount?: unknown;
41
50
  }): TokenBudgetPatch;
42
51
  export declare function writeTokenBudgetConfig(cfg: TokenBudgetConfig): TokenBudgetConfig;
43
52
  export interface TokenBudgetStatus {
@@ -45,6 +54,12 @@ export interface TokenBudgetStatus {
45
54
  total: number;
46
55
  budget: number;
47
56
  exceeded: boolean;
57
+ account?: {
58
+ key: string;
59
+ total: number;
60
+ budget: number;
61
+ exceeded: boolean;
62
+ };
48
63
  }
49
64
  export declare function tokenBudgetStatus(args: {
50
65
  sessionId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"token-budget.d.ts","sourceRoot":"","sources":["../../../src/lib/budgets/token-budget.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAqC,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAIvF,eAAO,MAAM,oBAAoB,WAAa,CAAC;AAC/C,eAAO,MAAM,iBAAiB,0BAA0B,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IAGhC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,QAAQ,CAAC,IAAI,2BAAqB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBACZ,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAenF;AAKD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAcxD;AAID,wBAAgB,gBAAgB,IAAI,MAAM,CAKzC;AAOD,wBAAgB,qBAAqB,IAAI,iBAAiB,CAezD;AAsBD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,GAAG,oBAA0B,GAC5B,MAAM,CAYR;AAID,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,eAAe,CAC7B,GAAG,GAAE,iBAA2C,GAC/C,gBAAgB,CAMlB;AAQD,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,iBAAiB,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAInG,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,iBAAiB,EACtB,IAAI,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAClD,gBAAgB,CA2BlB;AAKD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,iBAAiB,GAAG,iBAAiB,CAShF;AAqED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IAInB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,iBAAiB,CAcpB;AAMD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,IAAI,CAwBP;AAID,wBAAgB,iBAAiB,IAAI,IAAI,CAMxC;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAErD"}
1
+ {"version":3,"file":"token-budget.d.ts","sourceRoot":"","sources":["../../../src/lib/budgets/token-budget.ts"],"names":[],"mappings":"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"}