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