c0de-agent 1.11.0 → 1.13.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 (177) hide show
  1. package/README.md +63 -16
  2. package/dist/cli/commands/acp.js +26 -8
  3. package/dist/cli/commands/chat.js +151 -1
  4. package/dist/cli/commands/config.d.ts +2 -0
  5. package/dist/cli/commands/config.js +63 -3
  6. package/dist/cli/commands/serve.js +11 -2
  7. package/dist/cli/commands/sessions.js +109 -3
  8. package/dist/cli/commands/trust.d.ts +11 -0
  9. package/dist/cli/commands/trust.js +31 -0
  10. package/dist/cli/commands/update.js +4 -0
  11. package/dist/cli/deps.d.ts +9 -6
  12. package/dist/cli/deps.js +66 -19
  13. package/dist/cli/index.d.ts +4 -1
  14. package/dist/cli/index.js +110 -11
  15. package/dist/cli/modes/acp.js +39 -8
  16. package/dist/cli/modes/print.d.ts +3 -0
  17. package/dist/cli/modes/print.js +78 -8
  18. package/dist/core/agent.d.ts +1 -1
  19. package/dist/core/agent.js +9 -4
  20. package/dist/core/agents/builtin.js +2 -2
  21. package/dist/core/agents/index.d.ts +0 -1
  22. package/dist/core/agents/index.js +0 -1
  23. package/dist/core/compact.d.ts +2 -0
  24. package/dist/core/compact.js +1 -0
  25. package/dist/core/config.d.ts +53 -2
  26. package/dist/core/config.js +235 -19
  27. package/dist/core/loop/compaction.d.ts +2 -1
  28. package/dist/core/loop/compaction.js +19 -6
  29. package/dist/core/loop/segment.d.ts +3 -1
  30. package/dist/core/loop/segment.js +24 -1
  31. package/dist/core/loop/stream-collect.js +9 -1
  32. package/dist/core/loop/subagent.js +88 -37
  33. package/dist/core/loop.d.ts +7 -0
  34. package/dist/core/loop.js +90 -6
  35. package/dist/core/redact.d.ts +11 -0
  36. package/dist/core/redact.js +49 -0
  37. package/dist/core/slash.d.ts +10 -0
  38. package/dist/core/slash.js +237 -65
  39. package/dist/core/title.js +7 -1
  40. package/dist/core/types.d.ts +22 -1
  41. package/dist/core/workflows/context.js +44 -4
  42. package/dist/core/workflows/discovery.d.ts +2 -2
  43. package/dist/core/workflows/discovery.js +5 -7
  44. package/dist/core/workflows/index.d.ts +2 -1
  45. package/dist/core/workflows/index.js +2 -1
  46. package/dist/core/workflows/registry.d.ts +13 -3
  47. package/dist/core/workflows/registry.js +14 -9
  48. package/dist/core/workflows/resolve.d.ts +22 -0
  49. package/dist/core/workflows/resolve.js +23 -0
  50. package/dist/core/workflows/runtime.d.ts +6 -1
  51. package/dist/core/workflows/runtime.js +19 -2
  52. package/dist/db/schema.d.ts +373 -1
  53. package/dist/db/schema.js +60 -4
  54. package/dist/kanban/index.d.ts +2 -1
  55. package/dist/kanban/index.js +1 -1
  56. package/dist/kanban/store.d.ts +87 -1
  57. package/dist/kanban/store.js +429 -22
  58. package/dist/llm/index.d.ts +1 -1
  59. package/dist/llm/index.js +1 -1
  60. package/dist/llm/provider.js +1 -1
  61. package/dist/llm/registry.d.ts +7 -1
  62. package/dist/llm/registry.js +7 -1
  63. package/dist/llm/retry.d.ts +5 -2
  64. package/dist/llm/retry.js +6 -5
  65. package/dist/llm/routing.d.ts +24 -1
  66. package/dist/llm/routing.js +29 -1
  67. package/dist/plugins/init.d.ts +7 -0
  68. package/dist/plugins/init.js +22 -1
  69. package/dist/plugins/loader.d.ts +7 -1
  70. package/dist/plugins/loader.js +12 -4
  71. package/dist/project/index.d.ts +1 -1
  72. package/dist/project/index.js +1 -1
  73. package/dist/project/project.d.ts +37 -0
  74. package/dist/project/project.js +142 -1
  75. package/dist/project/trust.d.ts +65 -0
  76. package/dist/project/trust.js +328 -0
  77. package/dist/server/agent-manager.d.ts +15 -2
  78. package/dist/server/agent-manager.js +18 -3
  79. package/dist/server/app.js +45 -30
  80. package/dist/server/auth-manager.d.ts +26 -9
  81. package/dist/server/auth-manager.js +78 -42
  82. package/dist/server/context.js +14 -1
  83. package/dist/server/index.d.ts +1 -1
  84. package/dist/server/index.js +1 -1
  85. package/dist/server/middleware/auth.d.ts +11 -1
  86. package/dist/server/middleware/auth.js +25 -3
  87. package/dist/server/permission/interactive.d.ts +11 -3
  88. package/dist/server/permission/interactive.js +23 -4
  89. package/dist/server/permission/store.d.ts +14 -2
  90. package/dist/server/permission/store.js +39 -3
  91. package/dist/server/registry-config.d.ts +14 -0
  92. package/dist/server/registry-config.js +44 -0
  93. package/dist/server/routes/auth.js +66 -10
  94. package/dist/server/routes/chat.d.ts +21 -0
  95. package/dist/server/routes/chat.js +685 -52
  96. package/dist/server/routes/commands.d.ts +4 -2
  97. package/dist/server/routes/commands.js +9 -4
  98. package/dist/server/routes/config.js +180 -23
  99. package/dist/server/routes/files.js +142 -28
  100. package/dist/server/routes/kanban.js +218 -26
  101. package/dist/server/routes/permissions.d.ts +0 -4
  102. package/dist/server/routes/permissions.js +140 -7
  103. package/dist/server/routes/project.js +132 -29
  104. package/dist/server/routes/provider.js +54 -3
  105. package/dist/server/routes/session.js +463 -23
  106. package/dist/server/routes/tool.js +24 -5
  107. package/dist/server/routes/update.d.ts +11 -5
  108. package/dist/server/routes/update.js +145 -29
  109. package/dist/server/routes/usage.d.ts +4 -0
  110. package/dist/server/routes/usage.js +133 -0
  111. package/dist/server/routes/workflows.js +476 -87
  112. package/dist/server/server.d.ts +16 -13
  113. package/dist/server/server.js +364 -107
  114. package/dist/server/terminal/pty-manager.d.ts +12 -0
  115. package/dist/server/terminal/pty-manager.js +63 -7
  116. package/dist/server/types.d.ts +16 -0
  117. package/dist/session/archive.d.ts +3 -1
  118. package/dist/session/archive.js +13 -1
  119. package/dist/session/branch.d.ts +2 -1
  120. package/dist/session/branch.js +92 -9
  121. package/dist/session/context.js +28 -2
  122. package/dist/session/import.d.ts +44 -0
  123. package/dist/session/import.js +83 -0
  124. package/dist/session/index.d.ts +1 -1
  125. package/dist/session/index.js +1 -1
  126. package/dist/session/jobs.d.ts +12 -0
  127. package/dist/session/jobs.js +53 -0
  128. package/dist/session/message.d.ts +7 -1
  129. package/dist/session/message.js +21 -1
  130. package/dist/session/session.d.ts +186 -12
  131. package/dist/session/session.js +577 -33
  132. package/dist/session/snapshot.d.ts +5 -2
  133. package/dist/session/snapshot.js +10 -2
  134. package/dist/session/types.d.ts +13 -1
  135. package/dist/session/usage.d.ts +62 -0
  136. package/dist/session/usage.js +194 -0
  137. package/dist/shared/types/agent.d.ts +29 -2
  138. package/dist/shared/types/config.d.ts +64 -5
  139. package/dist/shared/types/kanban.d.ts +17 -2
  140. package/dist/shared/types/message.d.ts +23 -0
  141. package/dist/tools/builtin/kanban.js +13 -2
  142. package/dist/tools/index.d.ts +14 -3
  143. package/dist/tools/index.js +23 -5
  144. package/dist/tools/websearch/index.d.ts +5 -1
  145. package/dist/tools/websearch/index.js +46 -7
  146. package/dist/tools/websearch/providers/brave.js +2 -2
  147. package/dist/tools/websearch/providers/duckduckgo.js +2 -1
  148. package/dist/tools/websearch/providers/tavily.js +2 -2
  149. package/dist/tools/websearch/types.d.ts +5 -1
  150. package/dist/tools/websearch/types.js +7 -1
  151. package/dist/update/index.d.ts +3 -3
  152. package/dist/update/index.js +2 -2
  153. package/dist/update/ipc.d.ts +13 -2
  154. package/dist/update/ipc.js +36 -2
  155. package/dist/update/scheduler.js +5 -2
  156. package/dist/update/snapshot.d.ts +18 -3
  157. package/dist/update/snapshot.js +5 -2
  158. package/dist/update/updater.d.ts +17 -1
  159. package/dist/update/updater.js +47 -18
  160. package/dist/update/version.d.ts +3 -0
  161. package/dist/update/version.js +9 -3
  162. package/drizzle/0008_tranquil_lily_hollister.sql +1 -0
  163. package/drizzle/0010_usage_events_ledger.sql +17 -0
  164. package/drizzle/0011_slow_slapstick.sql +12 -0
  165. package/drizzle/0012_chief_timeslip.sql +1 -0
  166. package/drizzle/0013_swift_zeigeist.sql +1 -0
  167. package/drizzle/0014_flimsy_legion.sql +1 -0
  168. package/drizzle/meta/0008_snapshot.json +875 -0
  169. package/drizzle/meta/0010_snapshot.json +1010 -0
  170. package/drizzle/meta/0011_snapshot.json +1055 -0
  171. package/drizzle/meta/0012_snapshot.json +1062 -0
  172. package/drizzle/meta/0013_snapshot.json +1068 -0
  173. package/drizzle/meta/0014_snapshot.json +1075 -0
  174. package/drizzle/meta/_journal.json +42 -0
  175. package/package.json +42 -42
  176. package/dist/core/agents/discovery.d.ts +0 -6
  177. package/dist/core/agents/discovery.js +0 -96
@@ -0,0 +1,1062 @@
1
+ {
2
+ "id": "1b9178ba-c66a-4112-8232-6c1ceb2169dc",
3
+ "prevId": "6106a615-3cf2-4d16-a445-1b9354ad2e6b",
4
+ "version": "7",
5
+ "dialect": "postgresql",
6
+ "tables": {
7
+ "public.app_meta": {
8
+ "name": "app_meta",
9
+ "schema": "",
10
+ "columns": {
11
+ "key": {
12
+ "name": "key",
13
+ "type": "text",
14
+ "primaryKey": true,
15
+ "notNull": true
16
+ },
17
+ "value": {
18
+ "name": "value",
19
+ "type": "text",
20
+ "primaryKey": false,
21
+ "notNull": true
22
+ }
23
+ },
24
+ "indexes": {},
25
+ "foreignKeys": {},
26
+ "compositePrimaryKeys": {},
27
+ "uniqueConstraints": {},
28
+ "policies": {},
29
+ "checkConstraints": {},
30
+ "isRLSEnabled": false
31
+ },
32
+ "public.compaction_archives": {
33
+ "name": "compaction_archives",
34
+ "schema": "",
35
+ "columns": {
36
+ "id": {
37
+ "name": "id",
38
+ "type": "uuid",
39
+ "primaryKey": true,
40
+ "notNull": true,
41
+ "default": "gen_random_uuid()"
42
+ },
43
+ "session_id": {
44
+ "name": "session_id",
45
+ "type": "uuid",
46
+ "primaryKey": false,
47
+ "notNull": true
48
+ },
49
+ "compaction_id": {
50
+ "name": "compaction_id",
51
+ "type": "uuid",
52
+ "primaryKey": false,
53
+ "notNull": true
54
+ },
55
+ "archive_type": {
56
+ "name": "archive_type",
57
+ "type": "text",
58
+ "primaryKey": false,
59
+ "notNull": true
60
+ },
61
+ "original_entries": {
62
+ "name": "original_entries",
63
+ "type": "jsonb",
64
+ "primaryKey": false,
65
+ "notNull": true
66
+ },
67
+ "file_snapshots": {
68
+ "name": "file_snapshots",
69
+ "type": "jsonb",
70
+ "primaryKey": false,
71
+ "notNull": false,
72
+ "default": "'[]'::jsonb"
73
+ },
74
+ "summary": {
75
+ "name": "summary",
76
+ "type": "text",
77
+ "primaryKey": false,
78
+ "notNull": true
79
+ },
80
+ "token_count": {
81
+ "name": "token_count",
82
+ "type": "integer",
83
+ "primaryKey": false,
84
+ "notNull": false
85
+ },
86
+ "searchable_text": {
87
+ "name": "searchable_text",
88
+ "type": "text",
89
+ "primaryKey": false,
90
+ "notNull": false
91
+ },
92
+ "created_at": {
93
+ "name": "created_at",
94
+ "type": "timestamp with time zone",
95
+ "primaryKey": false,
96
+ "notNull": true,
97
+ "default": "now()"
98
+ }
99
+ },
100
+ "indexes": {
101
+ "idx_archives_session": {
102
+ "name": "idx_archives_session",
103
+ "columns": [
104
+ {
105
+ "expression": "session_id",
106
+ "isExpression": false,
107
+ "asc": true,
108
+ "nulls": "last"
109
+ }
110
+ ],
111
+ "isUnique": false,
112
+ "concurrently": false,
113
+ "method": "btree",
114
+ "with": {}
115
+ }
116
+ },
117
+ "foreignKeys": {
118
+ "compaction_archives_session_id_sessions_id_fk": {
119
+ "name": "compaction_archives_session_id_sessions_id_fk",
120
+ "tableFrom": "compaction_archives",
121
+ "tableTo": "sessions",
122
+ "columnsFrom": [
123
+ "session_id"
124
+ ],
125
+ "columnsTo": [
126
+ "id"
127
+ ],
128
+ "onDelete": "cascade",
129
+ "onUpdate": "no action"
130
+ }
131
+ },
132
+ "compositePrimaryKeys": {},
133
+ "uniqueConstraints": {},
134
+ "policies": {},
135
+ "checkConstraints": {},
136
+ "isRLSEnabled": false
137
+ },
138
+ "public.file_snapshots": {
139
+ "name": "file_snapshots",
140
+ "schema": "",
141
+ "columns": {
142
+ "id": {
143
+ "name": "id",
144
+ "type": "uuid",
145
+ "primaryKey": true,
146
+ "notNull": true,
147
+ "default": "gen_random_uuid()"
148
+ },
149
+ "session_id": {
150
+ "name": "session_id",
151
+ "type": "uuid",
152
+ "primaryKey": false,
153
+ "notNull": true
154
+ },
155
+ "entry_id": {
156
+ "name": "entry_id",
157
+ "type": "uuid",
158
+ "primaryKey": false,
159
+ "notNull": false
160
+ },
161
+ "file_path": {
162
+ "name": "file_path",
163
+ "type": "text",
164
+ "primaryKey": false,
165
+ "notNull": true
166
+ },
167
+ "content": {
168
+ "name": "content",
169
+ "type": "text",
170
+ "primaryKey": false,
171
+ "notNull": true
172
+ },
173
+ "content_hash": {
174
+ "name": "content_hash",
175
+ "type": "text",
176
+ "primaryKey": false,
177
+ "notNull": true
178
+ },
179
+ "token_count": {
180
+ "name": "token_count",
181
+ "type": "integer",
182
+ "primaryKey": false,
183
+ "notNull": false,
184
+ "default": 0
185
+ },
186
+ "version": {
187
+ "name": "version",
188
+ "type": "integer",
189
+ "primaryKey": false,
190
+ "notNull": false,
191
+ "default": 1
192
+ },
193
+ "mtime_ms": {
194
+ "name": "mtime_ms",
195
+ "type": "bigint",
196
+ "primaryKey": false,
197
+ "notNull": false
198
+ },
199
+ "created_at": {
200
+ "name": "created_at",
201
+ "type": "timestamp with time zone",
202
+ "primaryKey": false,
203
+ "notNull": true,
204
+ "default": "now()"
205
+ }
206
+ },
207
+ "indexes": {
208
+ "idx_snapshots_session_path": {
209
+ "name": "idx_snapshots_session_path",
210
+ "columns": [
211
+ {
212
+ "expression": "session_id",
213
+ "isExpression": false,
214
+ "asc": true,
215
+ "nulls": "last"
216
+ },
217
+ {
218
+ "expression": "file_path",
219
+ "isExpression": false,
220
+ "asc": true,
221
+ "nulls": "last"
222
+ }
223
+ ],
224
+ "isUnique": false,
225
+ "concurrently": false,
226
+ "method": "btree",
227
+ "with": {}
228
+ },
229
+ "idx_snapshots_latest": {
230
+ "name": "idx_snapshots_latest",
231
+ "columns": [
232
+ {
233
+ "expression": "session_id",
234
+ "isExpression": false,
235
+ "asc": true,
236
+ "nulls": "last"
237
+ },
238
+ {
239
+ "expression": "file_path",
240
+ "isExpression": false,
241
+ "asc": true,
242
+ "nulls": "last"
243
+ },
244
+ {
245
+ "expression": "version",
246
+ "isExpression": false,
247
+ "asc": true,
248
+ "nulls": "last"
249
+ }
250
+ ],
251
+ "isUnique": true,
252
+ "concurrently": false,
253
+ "method": "btree",
254
+ "with": {}
255
+ }
256
+ },
257
+ "foreignKeys": {
258
+ "file_snapshots_session_id_sessions_id_fk": {
259
+ "name": "file_snapshots_session_id_sessions_id_fk",
260
+ "tableFrom": "file_snapshots",
261
+ "tableTo": "sessions",
262
+ "columnsFrom": [
263
+ "session_id"
264
+ ],
265
+ "columnsTo": [
266
+ "id"
267
+ ],
268
+ "onDelete": "cascade",
269
+ "onUpdate": "no action"
270
+ }
271
+ },
272
+ "compositePrimaryKeys": {},
273
+ "uniqueConstraints": {},
274
+ "policies": {},
275
+ "checkConstraints": {},
276
+ "isRLSEnabled": false
277
+ },
278
+ "public.kanban_boards": {
279
+ "name": "kanban_boards",
280
+ "schema": "",
281
+ "columns": {
282
+ "id": {
283
+ "name": "id",
284
+ "type": "uuid",
285
+ "primaryKey": true,
286
+ "notNull": true,
287
+ "default": "gen_random_uuid()"
288
+ },
289
+ "project_id": {
290
+ "name": "project_id",
291
+ "type": "text",
292
+ "primaryKey": false,
293
+ "notNull": false
294
+ },
295
+ "columns": {
296
+ "name": "columns",
297
+ "type": "jsonb",
298
+ "primaryKey": false,
299
+ "notNull": true
300
+ },
301
+ "labels": {
302
+ "name": "labels",
303
+ "type": "jsonb",
304
+ "primaryKey": false,
305
+ "notNull": true,
306
+ "default": "'[]'::jsonb"
307
+ },
308
+ "deleted_at": {
309
+ "name": "deleted_at",
310
+ "type": "timestamp with time zone",
311
+ "primaryKey": false,
312
+ "notNull": false,
313
+ "default": "null"
314
+ },
315
+ "deleted_project_name": {
316
+ "name": "deleted_project_name",
317
+ "type": "text",
318
+ "primaryKey": false,
319
+ "notNull": false
320
+ },
321
+ "purge_pending_at": {
322
+ "name": "purge_pending_at",
323
+ "type": "timestamp with time zone",
324
+ "primaryKey": false,
325
+ "notNull": false,
326
+ "default": "null"
327
+ },
328
+ "created_at": {
329
+ "name": "created_at",
330
+ "type": "timestamp with time zone",
331
+ "primaryKey": false,
332
+ "notNull": true,
333
+ "default": "now()"
334
+ },
335
+ "updated_at": {
336
+ "name": "updated_at",
337
+ "type": "timestamp with time zone",
338
+ "primaryKey": false,
339
+ "notNull": true,
340
+ "default": "now()"
341
+ }
342
+ },
343
+ "indexes": {
344
+ "uq_kanban_boards_project": {
345
+ "name": "uq_kanban_boards_project",
346
+ "columns": [
347
+ {
348
+ "expression": "project_id",
349
+ "isExpression": false,
350
+ "asc": true,
351
+ "nulls": "last"
352
+ }
353
+ ],
354
+ "isUnique": true,
355
+ "concurrently": false,
356
+ "method": "btree",
357
+ "with": {}
358
+ }
359
+ },
360
+ "foreignKeys": {
361
+ "kanban_boards_project_id_projects_id_fk": {
362
+ "name": "kanban_boards_project_id_projects_id_fk",
363
+ "tableFrom": "kanban_boards",
364
+ "tableTo": "projects",
365
+ "columnsFrom": [
366
+ "project_id"
367
+ ],
368
+ "columnsTo": [
369
+ "id"
370
+ ],
371
+ "onDelete": "set null",
372
+ "onUpdate": "no action"
373
+ }
374
+ },
375
+ "compositePrimaryKeys": {},
376
+ "uniqueConstraints": {},
377
+ "policies": {},
378
+ "checkConstraints": {},
379
+ "isRLSEnabled": false
380
+ },
381
+ "public.kanban_cards": {
382
+ "name": "kanban_cards",
383
+ "schema": "",
384
+ "columns": {
385
+ "id": {
386
+ "name": "id",
387
+ "type": "uuid",
388
+ "primaryKey": true,
389
+ "notNull": true,
390
+ "default": "gen_random_uuid()"
391
+ },
392
+ "board_id": {
393
+ "name": "board_id",
394
+ "type": "uuid",
395
+ "primaryKey": false,
396
+ "notNull": true
397
+ },
398
+ "title": {
399
+ "name": "title",
400
+ "type": "text",
401
+ "primaryKey": false,
402
+ "notNull": true
403
+ },
404
+ "description": {
405
+ "name": "description",
406
+ "type": "text",
407
+ "primaryKey": false,
408
+ "notNull": false
409
+ },
410
+ "column_id": {
411
+ "name": "column_id",
412
+ "type": "text",
413
+ "primaryKey": false,
414
+ "notNull": true
415
+ },
416
+ "priority": {
417
+ "name": "priority",
418
+ "type": "text",
419
+ "primaryKey": false,
420
+ "notNull": true,
421
+ "default": "'medium'"
422
+ },
423
+ "position": {
424
+ "name": "position",
425
+ "type": "real",
426
+ "primaryKey": false,
427
+ "notNull": true,
428
+ "default": 0
429
+ },
430
+ "labels": {
431
+ "name": "labels",
432
+ "type": "jsonb",
433
+ "primaryKey": false,
434
+ "notNull": true,
435
+ "default": "'[]'::jsonb"
436
+ },
437
+ "created_at": {
438
+ "name": "created_at",
439
+ "type": "timestamp with time zone",
440
+ "primaryKey": false,
441
+ "notNull": true,
442
+ "default": "now()"
443
+ },
444
+ "updated_at": {
445
+ "name": "updated_at",
446
+ "type": "timestamp with time zone",
447
+ "primaryKey": false,
448
+ "notNull": true,
449
+ "default": "now()"
450
+ }
451
+ },
452
+ "indexes": {
453
+ "idx_kanban_cards_board": {
454
+ "name": "idx_kanban_cards_board",
455
+ "columns": [
456
+ {
457
+ "expression": "board_id",
458
+ "isExpression": false,
459
+ "asc": true,
460
+ "nulls": "last"
461
+ },
462
+ {
463
+ "expression": "column_id",
464
+ "isExpression": false,
465
+ "asc": true,
466
+ "nulls": "last"
467
+ },
468
+ {
469
+ "expression": "position",
470
+ "isExpression": false,
471
+ "asc": true,
472
+ "nulls": "last"
473
+ }
474
+ ],
475
+ "isUnique": false,
476
+ "concurrently": false,
477
+ "method": "btree",
478
+ "with": {}
479
+ }
480
+ },
481
+ "foreignKeys": {
482
+ "kanban_cards_board_id_kanban_boards_id_fk": {
483
+ "name": "kanban_cards_board_id_kanban_boards_id_fk",
484
+ "tableFrom": "kanban_cards",
485
+ "tableTo": "kanban_boards",
486
+ "columnsFrom": [
487
+ "board_id"
488
+ ],
489
+ "columnsTo": [
490
+ "id"
491
+ ],
492
+ "onDelete": "cascade",
493
+ "onUpdate": "no action"
494
+ }
495
+ },
496
+ "compositePrimaryKeys": {},
497
+ "uniqueConstraints": {},
498
+ "policies": {},
499
+ "checkConstraints": {},
500
+ "isRLSEnabled": false
501
+ },
502
+ "public.projects": {
503
+ "name": "projects",
504
+ "schema": "",
505
+ "columns": {
506
+ "id": {
507
+ "name": "id",
508
+ "type": "text",
509
+ "primaryKey": true,
510
+ "notNull": true
511
+ },
512
+ "worktree": {
513
+ "name": "worktree",
514
+ "type": "text",
515
+ "primaryKey": false,
516
+ "notNull": true
517
+ },
518
+ "vcs": {
519
+ "name": "vcs",
520
+ "type": "text",
521
+ "primaryKey": false,
522
+ "notNull": false
523
+ },
524
+ "name": {
525
+ "name": "name",
526
+ "type": "text",
527
+ "primaryKey": false,
528
+ "notNull": false
529
+ },
530
+ "git_remote": {
531
+ "name": "git_remote",
532
+ "type": "text",
533
+ "primaryKey": false,
534
+ "notNull": false
535
+ },
536
+ "created_at": {
537
+ "name": "created_at",
538
+ "type": "timestamp with time zone",
539
+ "primaryKey": false,
540
+ "notNull": true,
541
+ "default": "now()"
542
+ },
543
+ "updated_at": {
544
+ "name": "updated_at",
545
+ "type": "timestamp with time zone",
546
+ "primaryKey": false,
547
+ "notNull": true,
548
+ "default": "now()"
549
+ },
550
+ "trusted_at": {
551
+ "name": "trusted_at",
552
+ "type": "timestamp with time zone",
553
+ "primaryKey": false,
554
+ "notNull": false,
555
+ "default": "null"
556
+ }
557
+ },
558
+ "indexes": {},
559
+ "foreignKeys": {},
560
+ "compositePrimaryKeys": {},
561
+ "uniqueConstraints": {},
562
+ "policies": {},
563
+ "checkConstraints": {},
564
+ "isRLSEnabled": false
565
+ },
566
+ "public.session_entries": {
567
+ "name": "session_entries",
568
+ "schema": "",
569
+ "columns": {
570
+ "id": {
571
+ "name": "id",
572
+ "type": "uuid",
573
+ "primaryKey": true,
574
+ "notNull": true,
575
+ "default": "gen_random_uuid()"
576
+ },
577
+ "session_id": {
578
+ "name": "session_id",
579
+ "type": "uuid",
580
+ "primaryKey": false,
581
+ "notNull": true
582
+ },
583
+ "tag": {
584
+ "name": "tag",
585
+ "type": "text",
586
+ "primaryKey": false,
587
+ "notNull": true
588
+ },
589
+ "role": {
590
+ "name": "role",
591
+ "type": "text",
592
+ "primaryKey": false,
593
+ "notNull": false
594
+ },
595
+ "content": {
596
+ "name": "content",
597
+ "type": "jsonb",
598
+ "primaryKey": false,
599
+ "notNull": true
600
+ },
601
+ "tool_name": {
602
+ "name": "tool_name",
603
+ "type": "text",
604
+ "primaryKey": false,
605
+ "notNull": false
606
+ },
607
+ "token_count": {
608
+ "name": "token_count",
609
+ "type": "integer",
610
+ "primaryKey": false,
611
+ "notNull": false,
612
+ "default": 0
613
+ },
614
+ "created_at": {
615
+ "name": "created_at",
616
+ "type": "timestamp with time zone",
617
+ "primaryKey": false,
618
+ "notNull": true,
619
+ "default": "now()"
620
+ }
621
+ },
622
+ "indexes": {
623
+ "idx_entries_session": {
624
+ "name": "idx_entries_session",
625
+ "columns": [
626
+ {
627
+ "expression": "session_id",
628
+ "isExpression": false,
629
+ "asc": true,
630
+ "nulls": "last"
631
+ },
632
+ {
633
+ "expression": "created_at",
634
+ "isExpression": false,
635
+ "asc": true,
636
+ "nulls": "last"
637
+ }
638
+ ],
639
+ "isUnique": false,
640
+ "concurrently": false,
641
+ "method": "btree",
642
+ "with": {}
643
+ }
644
+ },
645
+ "foreignKeys": {
646
+ "session_entries_session_id_sessions_id_fk": {
647
+ "name": "session_entries_session_id_sessions_id_fk",
648
+ "tableFrom": "session_entries",
649
+ "tableTo": "sessions",
650
+ "columnsFrom": [
651
+ "session_id"
652
+ ],
653
+ "columnsTo": [
654
+ "id"
655
+ ],
656
+ "onDelete": "cascade",
657
+ "onUpdate": "no action"
658
+ }
659
+ },
660
+ "compositePrimaryKeys": {},
661
+ "uniqueConstraints": {},
662
+ "policies": {},
663
+ "checkConstraints": {},
664
+ "isRLSEnabled": false
665
+ },
666
+ "public.sessions": {
667
+ "name": "sessions",
668
+ "schema": "",
669
+ "columns": {
670
+ "id": {
671
+ "name": "id",
672
+ "type": "uuid",
673
+ "primaryKey": true,
674
+ "notNull": true,
675
+ "default": "gen_random_uuid()"
676
+ },
677
+ "title": {
678
+ "name": "title",
679
+ "type": "text",
680
+ "primaryKey": false,
681
+ "notNull": true
682
+ },
683
+ "parent_id": {
684
+ "name": "parent_id",
685
+ "type": "uuid",
686
+ "primaryKey": false,
687
+ "notNull": false
688
+ },
689
+ "project_id": {
690
+ "name": "project_id",
691
+ "type": "text",
692
+ "primaryKey": false,
693
+ "notNull": false
694
+ },
695
+ "branch_point": {
696
+ "name": "branch_point",
697
+ "type": "integer",
698
+ "primaryKey": false,
699
+ "notNull": false
700
+ },
701
+ "metadata": {
702
+ "name": "metadata",
703
+ "type": "jsonb",
704
+ "primaryKey": false,
705
+ "notNull": true,
706
+ "default": "'{}'::jsonb"
707
+ },
708
+ "agent_type": {
709
+ "name": "agent_type",
710
+ "type": "text",
711
+ "primaryKey": false,
712
+ "notNull": false
713
+ },
714
+ "worktree_path": {
715
+ "name": "worktree_path",
716
+ "type": "text",
717
+ "primaryKey": false,
718
+ "notNull": false
719
+ },
720
+ "source": {
721
+ "name": "source",
722
+ "type": "text",
723
+ "primaryKey": false,
724
+ "notNull": false,
725
+ "default": "null"
726
+ },
727
+ "deleted_at": {
728
+ "name": "deleted_at",
729
+ "type": "timestamp with time zone",
730
+ "primaryKey": false,
731
+ "notNull": false,
732
+ "default": "null"
733
+ },
734
+ "deleted_batch_id": {
735
+ "name": "deleted_batch_id",
736
+ "type": "uuid",
737
+ "primaryKey": false,
738
+ "notNull": false
739
+ },
740
+ "created_at": {
741
+ "name": "created_at",
742
+ "type": "timestamp with time zone",
743
+ "primaryKey": false,
744
+ "notNull": true,
745
+ "default": "now()"
746
+ },
747
+ "updated_at": {
748
+ "name": "updated_at",
749
+ "type": "timestamp with time zone",
750
+ "primaryKey": false,
751
+ "notNull": true,
752
+ "default": "now()"
753
+ }
754
+ },
755
+ "indexes": {
756
+ "idx_sessions_parent": {
757
+ "name": "idx_sessions_parent",
758
+ "columns": [
759
+ {
760
+ "expression": "parent_id",
761
+ "isExpression": false,
762
+ "asc": true,
763
+ "nulls": "last"
764
+ }
765
+ ],
766
+ "isUnique": false,
767
+ "concurrently": false,
768
+ "method": "btree",
769
+ "with": {}
770
+ },
771
+ "idx_sessions_project": {
772
+ "name": "idx_sessions_project",
773
+ "columns": [
774
+ {
775
+ "expression": "project_id",
776
+ "isExpression": false,
777
+ "asc": true,
778
+ "nulls": "last"
779
+ }
780
+ ],
781
+ "isUnique": false,
782
+ "concurrently": false,
783
+ "method": "btree",
784
+ "with": {}
785
+ }
786
+ },
787
+ "foreignKeys": {
788
+ "sessions_parent_id_sessions_id_fk": {
789
+ "name": "sessions_parent_id_sessions_id_fk",
790
+ "tableFrom": "sessions",
791
+ "tableTo": "sessions",
792
+ "columnsFrom": [
793
+ "parent_id"
794
+ ],
795
+ "columnsTo": [
796
+ "id"
797
+ ],
798
+ "onDelete": "no action",
799
+ "onUpdate": "no action"
800
+ },
801
+ "sessions_project_id_projects_id_fk": {
802
+ "name": "sessions_project_id_projects_id_fk",
803
+ "tableFrom": "sessions",
804
+ "tableTo": "projects",
805
+ "columnsFrom": [
806
+ "project_id"
807
+ ],
808
+ "columnsTo": [
809
+ "id"
810
+ ],
811
+ "onDelete": "set null",
812
+ "onUpdate": "no action"
813
+ }
814
+ },
815
+ "compositePrimaryKeys": {},
816
+ "uniqueConstraints": {},
817
+ "policies": {},
818
+ "checkConstraints": {},
819
+ "isRLSEnabled": false
820
+ },
821
+ "public.tool_metrics": {
822
+ "name": "tool_metrics",
823
+ "schema": "",
824
+ "columns": {
825
+ "model": {
826
+ "name": "model",
827
+ "type": "text",
828
+ "primaryKey": false,
829
+ "notNull": true
830
+ },
831
+ "tool": {
832
+ "name": "tool",
833
+ "type": "text",
834
+ "primaryKey": false,
835
+ "notNull": true
836
+ },
837
+ "mode": {
838
+ "name": "mode",
839
+ "type": "text",
840
+ "primaryKey": false,
841
+ "notNull": true
842
+ },
843
+ "attempts": {
844
+ "name": "attempts",
845
+ "type": "integer",
846
+ "primaryKey": false,
847
+ "notNull": true,
848
+ "default": 0
849
+ },
850
+ "successes": {
851
+ "name": "successes",
852
+ "type": "integer",
853
+ "primaryKey": false,
854
+ "notNull": true,
855
+ "default": 0
856
+ },
857
+ "failures": {
858
+ "name": "failures",
859
+ "type": "integer",
860
+ "primaryKey": false,
861
+ "notNull": true,
862
+ "default": 0
863
+ },
864
+ "avg_latency_ms": {
865
+ "name": "avg_latency_ms",
866
+ "type": "real",
867
+ "primaryKey": false,
868
+ "notNull": true,
869
+ "default": 0
870
+ },
871
+ "last_used": {
872
+ "name": "last_used",
873
+ "type": "timestamp with time zone",
874
+ "primaryKey": false,
875
+ "notNull": true,
876
+ "default": "now()"
877
+ }
878
+ },
879
+ "indexes": {
880
+ "uq_tool_metrics_model_tool_mode": {
881
+ "name": "uq_tool_metrics_model_tool_mode",
882
+ "columns": [
883
+ {
884
+ "expression": "model",
885
+ "isExpression": false,
886
+ "asc": true,
887
+ "nulls": "last"
888
+ },
889
+ {
890
+ "expression": "tool",
891
+ "isExpression": false,
892
+ "asc": true,
893
+ "nulls": "last"
894
+ },
895
+ {
896
+ "expression": "mode",
897
+ "isExpression": false,
898
+ "asc": true,
899
+ "nulls": "last"
900
+ }
901
+ ],
902
+ "isUnique": true,
903
+ "concurrently": false,
904
+ "method": "btree",
905
+ "with": {}
906
+ }
907
+ },
908
+ "foreignKeys": {},
909
+ "compositePrimaryKeys": {},
910
+ "uniqueConstraints": {},
911
+ "policies": {},
912
+ "checkConstraints": {},
913
+ "isRLSEnabled": false
914
+ },
915
+ "public.usage_events": {
916
+ "name": "usage_events",
917
+ "schema": "",
918
+ "columns": {
919
+ "id": {
920
+ "name": "id",
921
+ "type": "uuid",
922
+ "primaryKey": true,
923
+ "notNull": true,
924
+ "default": "gen_random_uuid()"
925
+ },
926
+ "call_id": {
927
+ "name": "call_id",
928
+ "type": "uuid",
929
+ "primaryKey": false,
930
+ "notNull": true
931
+ },
932
+ "session_id": {
933
+ "name": "session_id",
934
+ "type": "uuid",
935
+ "primaryKey": false,
936
+ "notNull": false
937
+ },
938
+ "project_id": {
939
+ "name": "project_id",
940
+ "type": "text",
941
+ "primaryKey": false,
942
+ "notNull": false
943
+ },
944
+ "provider": {
945
+ "name": "provider",
946
+ "type": "text",
947
+ "primaryKey": false,
948
+ "notNull": true
949
+ },
950
+ "model": {
951
+ "name": "model",
952
+ "type": "text",
953
+ "primaryKey": false,
954
+ "notNull": true
955
+ },
956
+ "input_tokens": {
957
+ "name": "input_tokens",
958
+ "type": "bigint",
959
+ "primaryKey": false,
960
+ "notNull": true,
961
+ "default": 0
962
+ },
963
+ "output_tokens": {
964
+ "name": "output_tokens",
965
+ "type": "bigint",
966
+ "primaryKey": false,
967
+ "notNull": true,
968
+ "default": 0
969
+ },
970
+ "cache_read": {
971
+ "name": "cache_read",
972
+ "type": "bigint",
973
+ "primaryKey": false,
974
+ "notNull": false,
975
+ "default": 0
976
+ },
977
+ "cost": {
978
+ "name": "cost",
979
+ "type": "real",
980
+ "primaryKey": false,
981
+ "notNull": false
982
+ },
983
+ "timestamp": {
984
+ "name": "timestamp",
985
+ "type": "bigint",
986
+ "primaryKey": false,
987
+ "notNull": true
988
+ }
989
+ },
990
+ "indexes": {
991
+ "uq_usage_events_call": {
992
+ "name": "uq_usage_events_call",
993
+ "columns": [
994
+ {
995
+ "expression": "call_id",
996
+ "isExpression": false,
997
+ "asc": true,
998
+ "nulls": "last"
999
+ }
1000
+ ],
1001
+ "isUnique": true,
1002
+ "concurrently": false,
1003
+ "method": "btree",
1004
+ "with": {}
1005
+ },
1006
+ "idx_usage_events_project_ts": {
1007
+ "name": "idx_usage_events_project_ts",
1008
+ "columns": [
1009
+ {
1010
+ "expression": "project_id",
1011
+ "isExpression": false,
1012
+ "asc": true,
1013
+ "nulls": "last"
1014
+ },
1015
+ {
1016
+ "expression": "timestamp",
1017
+ "isExpression": false,
1018
+ "asc": true,
1019
+ "nulls": "last"
1020
+ }
1021
+ ],
1022
+ "isUnique": false,
1023
+ "concurrently": false,
1024
+ "method": "btree",
1025
+ "with": {}
1026
+ },
1027
+ "idx_usage_events_ts": {
1028
+ "name": "idx_usage_events_ts",
1029
+ "columns": [
1030
+ {
1031
+ "expression": "timestamp",
1032
+ "isExpression": false,
1033
+ "asc": true,
1034
+ "nulls": "last"
1035
+ }
1036
+ ],
1037
+ "isUnique": false,
1038
+ "concurrently": false,
1039
+ "method": "btree",
1040
+ "with": {}
1041
+ }
1042
+ },
1043
+ "foreignKeys": {},
1044
+ "compositePrimaryKeys": {},
1045
+ "uniqueConstraints": {},
1046
+ "policies": {},
1047
+ "checkConstraints": {},
1048
+ "isRLSEnabled": false
1049
+ }
1050
+ },
1051
+ "enums": {},
1052
+ "schemas": {},
1053
+ "sequences": {},
1054
+ "roles": {},
1055
+ "policies": {},
1056
+ "views": {},
1057
+ "_meta": {
1058
+ "columns": {},
1059
+ "schemas": {},
1060
+ "tables": {}
1061
+ }
1062
+ }