c0de-agent 1.12.0 → 1.13.1

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,1075 @@
1
+ {
2
+ "id": "d64375d7-790e-48fe-bbb4-c5e9f54b0bce",
3
+ "prevId": "0a0a77f3-09b5-4155-bf21-6ecec3b9a161",
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
+ "risk_fingerprint": {
564
+ "name": "risk_fingerprint",
565
+ "type": "text",
566
+ "primaryKey": false,
567
+ "notNull": false,
568
+ "default": "null"
569
+ }
570
+ },
571
+ "indexes": {},
572
+ "foreignKeys": {},
573
+ "compositePrimaryKeys": {},
574
+ "uniqueConstraints": {},
575
+ "policies": {},
576
+ "checkConstraints": {},
577
+ "isRLSEnabled": false
578
+ },
579
+ "public.session_entries": {
580
+ "name": "session_entries",
581
+ "schema": "",
582
+ "columns": {
583
+ "id": {
584
+ "name": "id",
585
+ "type": "uuid",
586
+ "primaryKey": true,
587
+ "notNull": true,
588
+ "default": "gen_random_uuid()"
589
+ },
590
+ "session_id": {
591
+ "name": "session_id",
592
+ "type": "uuid",
593
+ "primaryKey": false,
594
+ "notNull": true
595
+ },
596
+ "tag": {
597
+ "name": "tag",
598
+ "type": "text",
599
+ "primaryKey": false,
600
+ "notNull": true
601
+ },
602
+ "role": {
603
+ "name": "role",
604
+ "type": "text",
605
+ "primaryKey": false,
606
+ "notNull": false
607
+ },
608
+ "content": {
609
+ "name": "content",
610
+ "type": "jsonb",
611
+ "primaryKey": false,
612
+ "notNull": true
613
+ },
614
+ "tool_name": {
615
+ "name": "tool_name",
616
+ "type": "text",
617
+ "primaryKey": false,
618
+ "notNull": false
619
+ },
620
+ "token_count": {
621
+ "name": "token_count",
622
+ "type": "integer",
623
+ "primaryKey": false,
624
+ "notNull": false,
625
+ "default": 0
626
+ },
627
+ "created_at": {
628
+ "name": "created_at",
629
+ "type": "timestamp with time zone",
630
+ "primaryKey": false,
631
+ "notNull": true,
632
+ "default": "now()"
633
+ }
634
+ },
635
+ "indexes": {
636
+ "idx_entries_session": {
637
+ "name": "idx_entries_session",
638
+ "columns": [
639
+ {
640
+ "expression": "session_id",
641
+ "isExpression": false,
642
+ "asc": true,
643
+ "nulls": "last"
644
+ },
645
+ {
646
+ "expression": "created_at",
647
+ "isExpression": false,
648
+ "asc": true,
649
+ "nulls": "last"
650
+ }
651
+ ],
652
+ "isUnique": false,
653
+ "concurrently": false,
654
+ "method": "btree",
655
+ "with": {}
656
+ }
657
+ },
658
+ "foreignKeys": {
659
+ "session_entries_session_id_sessions_id_fk": {
660
+ "name": "session_entries_session_id_sessions_id_fk",
661
+ "tableFrom": "session_entries",
662
+ "tableTo": "sessions",
663
+ "columnsFrom": [
664
+ "session_id"
665
+ ],
666
+ "columnsTo": [
667
+ "id"
668
+ ],
669
+ "onDelete": "cascade",
670
+ "onUpdate": "no action"
671
+ }
672
+ },
673
+ "compositePrimaryKeys": {},
674
+ "uniqueConstraints": {},
675
+ "policies": {},
676
+ "checkConstraints": {},
677
+ "isRLSEnabled": false
678
+ },
679
+ "public.sessions": {
680
+ "name": "sessions",
681
+ "schema": "",
682
+ "columns": {
683
+ "id": {
684
+ "name": "id",
685
+ "type": "uuid",
686
+ "primaryKey": true,
687
+ "notNull": true,
688
+ "default": "gen_random_uuid()"
689
+ },
690
+ "title": {
691
+ "name": "title",
692
+ "type": "text",
693
+ "primaryKey": false,
694
+ "notNull": true
695
+ },
696
+ "parent_id": {
697
+ "name": "parent_id",
698
+ "type": "uuid",
699
+ "primaryKey": false,
700
+ "notNull": false
701
+ },
702
+ "project_id": {
703
+ "name": "project_id",
704
+ "type": "text",
705
+ "primaryKey": false,
706
+ "notNull": false
707
+ },
708
+ "branch_point": {
709
+ "name": "branch_point",
710
+ "type": "integer",
711
+ "primaryKey": false,
712
+ "notNull": false
713
+ },
714
+ "metadata": {
715
+ "name": "metadata",
716
+ "type": "jsonb",
717
+ "primaryKey": false,
718
+ "notNull": true,
719
+ "default": "'{}'::jsonb"
720
+ },
721
+ "agent_type": {
722
+ "name": "agent_type",
723
+ "type": "text",
724
+ "primaryKey": false,
725
+ "notNull": false
726
+ },
727
+ "worktree_path": {
728
+ "name": "worktree_path",
729
+ "type": "text",
730
+ "primaryKey": false,
731
+ "notNull": false
732
+ },
733
+ "source": {
734
+ "name": "source",
735
+ "type": "text",
736
+ "primaryKey": false,
737
+ "notNull": false,
738
+ "default": "null"
739
+ },
740
+ "deleted_at": {
741
+ "name": "deleted_at",
742
+ "type": "timestamp with time zone",
743
+ "primaryKey": false,
744
+ "notNull": false,
745
+ "default": "null"
746
+ },
747
+ "deleted_batch_id": {
748
+ "name": "deleted_batch_id",
749
+ "type": "uuid",
750
+ "primaryKey": false,
751
+ "notNull": false
752
+ },
753
+ "created_at": {
754
+ "name": "created_at",
755
+ "type": "timestamp with time zone",
756
+ "primaryKey": false,
757
+ "notNull": true,
758
+ "default": "now()"
759
+ },
760
+ "updated_at": {
761
+ "name": "updated_at",
762
+ "type": "timestamp with time zone",
763
+ "primaryKey": false,
764
+ "notNull": true,
765
+ "default": "now()"
766
+ }
767
+ },
768
+ "indexes": {
769
+ "idx_sessions_parent": {
770
+ "name": "idx_sessions_parent",
771
+ "columns": [
772
+ {
773
+ "expression": "parent_id",
774
+ "isExpression": false,
775
+ "asc": true,
776
+ "nulls": "last"
777
+ }
778
+ ],
779
+ "isUnique": false,
780
+ "concurrently": false,
781
+ "method": "btree",
782
+ "with": {}
783
+ },
784
+ "idx_sessions_project": {
785
+ "name": "idx_sessions_project",
786
+ "columns": [
787
+ {
788
+ "expression": "project_id",
789
+ "isExpression": false,
790
+ "asc": true,
791
+ "nulls": "last"
792
+ }
793
+ ],
794
+ "isUnique": false,
795
+ "concurrently": false,
796
+ "method": "btree",
797
+ "with": {}
798
+ }
799
+ },
800
+ "foreignKeys": {
801
+ "sessions_parent_id_sessions_id_fk": {
802
+ "name": "sessions_parent_id_sessions_id_fk",
803
+ "tableFrom": "sessions",
804
+ "tableTo": "sessions",
805
+ "columnsFrom": [
806
+ "parent_id"
807
+ ],
808
+ "columnsTo": [
809
+ "id"
810
+ ],
811
+ "onDelete": "no action",
812
+ "onUpdate": "no action"
813
+ },
814
+ "sessions_project_id_projects_id_fk": {
815
+ "name": "sessions_project_id_projects_id_fk",
816
+ "tableFrom": "sessions",
817
+ "tableTo": "projects",
818
+ "columnsFrom": [
819
+ "project_id"
820
+ ],
821
+ "columnsTo": [
822
+ "id"
823
+ ],
824
+ "onDelete": "set null",
825
+ "onUpdate": "no action"
826
+ }
827
+ },
828
+ "compositePrimaryKeys": {},
829
+ "uniqueConstraints": {},
830
+ "policies": {},
831
+ "checkConstraints": {},
832
+ "isRLSEnabled": false
833
+ },
834
+ "public.tool_metrics": {
835
+ "name": "tool_metrics",
836
+ "schema": "",
837
+ "columns": {
838
+ "model": {
839
+ "name": "model",
840
+ "type": "text",
841
+ "primaryKey": false,
842
+ "notNull": true
843
+ },
844
+ "tool": {
845
+ "name": "tool",
846
+ "type": "text",
847
+ "primaryKey": false,
848
+ "notNull": true
849
+ },
850
+ "mode": {
851
+ "name": "mode",
852
+ "type": "text",
853
+ "primaryKey": false,
854
+ "notNull": true
855
+ },
856
+ "attempts": {
857
+ "name": "attempts",
858
+ "type": "integer",
859
+ "primaryKey": false,
860
+ "notNull": true,
861
+ "default": 0
862
+ },
863
+ "successes": {
864
+ "name": "successes",
865
+ "type": "integer",
866
+ "primaryKey": false,
867
+ "notNull": true,
868
+ "default": 0
869
+ },
870
+ "failures": {
871
+ "name": "failures",
872
+ "type": "integer",
873
+ "primaryKey": false,
874
+ "notNull": true,
875
+ "default": 0
876
+ },
877
+ "avg_latency_ms": {
878
+ "name": "avg_latency_ms",
879
+ "type": "real",
880
+ "primaryKey": false,
881
+ "notNull": true,
882
+ "default": 0
883
+ },
884
+ "last_used": {
885
+ "name": "last_used",
886
+ "type": "timestamp with time zone",
887
+ "primaryKey": false,
888
+ "notNull": true,
889
+ "default": "now()"
890
+ }
891
+ },
892
+ "indexes": {
893
+ "uq_tool_metrics_model_tool_mode": {
894
+ "name": "uq_tool_metrics_model_tool_mode",
895
+ "columns": [
896
+ {
897
+ "expression": "model",
898
+ "isExpression": false,
899
+ "asc": true,
900
+ "nulls": "last"
901
+ },
902
+ {
903
+ "expression": "tool",
904
+ "isExpression": false,
905
+ "asc": true,
906
+ "nulls": "last"
907
+ },
908
+ {
909
+ "expression": "mode",
910
+ "isExpression": false,
911
+ "asc": true,
912
+ "nulls": "last"
913
+ }
914
+ ],
915
+ "isUnique": true,
916
+ "concurrently": false,
917
+ "method": "btree",
918
+ "with": {}
919
+ }
920
+ },
921
+ "foreignKeys": {},
922
+ "compositePrimaryKeys": {},
923
+ "uniqueConstraints": {},
924
+ "policies": {},
925
+ "checkConstraints": {},
926
+ "isRLSEnabled": false
927
+ },
928
+ "public.usage_events": {
929
+ "name": "usage_events",
930
+ "schema": "",
931
+ "columns": {
932
+ "id": {
933
+ "name": "id",
934
+ "type": "uuid",
935
+ "primaryKey": true,
936
+ "notNull": true,
937
+ "default": "gen_random_uuid()"
938
+ },
939
+ "call_id": {
940
+ "name": "call_id",
941
+ "type": "uuid",
942
+ "primaryKey": false,
943
+ "notNull": true
944
+ },
945
+ "session_id": {
946
+ "name": "session_id",
947
+ "type": "uuid",
948
+ "primaryKey": false,
949
+ "notNull": false
950
+ },
951
+ "project_id": {
952
+ "name": "project_id",
953
+ "type": "text",
954
+ "primaryKey": false,
955
+ "notNull": false
956
+ },
957
+ "provider": {
958
+ "name": "provider",
959
+ "type": "text",
960
+ "primaryKey": false,
961
+ "notNull": true
962
+ },
963
+ "model": {
964
+ "name": "model",
965
+ "type": "text",
966
+ "primaryKey": false,
967
+ "notNull": true
968
+ },
969
+ "input_tokens": {
970
+ "name": "input_tokens",
971
+ "type": "bigint",
972
+ "primaryKey": false,
973
+ "notNull": true,
974
+ "default": 0
975
+ },
976
+ "output_tokens": {
977
+ "name": "output_tokens",
978
+ "type": "bigint",
979
+ "primaryKey": false,
980
+ "notNull": true,
981
+ "default": 0
982
+ },
983
+ "cache_read": {
984
+ "name": "cache_read",
985
+ "type": "bigint",
986
+ "primaryKey": false,
987
+ "notNull": false,
988
+ "default": 0
989
+ },
990
+ "cost": {
991
+ "name": "cost",
992
+ "type": "real",
993
+ "primaryKey": false,
994
+ "notNull": false
995
+ },
996
+ "timestamp": {
997
+ "name": "timestamp",
998
+ "type": "bigint",
999
+ "primaryKey": false,
1000
+ "notNull": true
1001
+ }
1002
+ },
1003
+ "indexes": {
1004
+ "uq_usage_events_call": {
1005
+ "name": "uq_usage_events_call",
1006
+ "columns": [
1007
+ {
1008
+ "expression": "call_id",
1009
+ "isExpression": false,
1010
+ "asc": true,
1011
+ "nulls": "last"
1012
+ }
1013
+ ],
1014
+ "isUnique": true,
1015
+ "concurrently": false,
1016
+ "method": "btree",
1017
+ "with": {}
1018
+ },
1019
+ "idx_usage_events_project_ts": {
1020
+ "name": "idx_usage_events_project_ts",
1021
+ "columns": [
1022
+ {
1023
+ "expression": "project_id",
1024
+ "isExpression": false,
1025
+ "asc": true,
1026
+ "nulls": "last"
1027
+ },
1028
+ {
1029
+ "expression": "timestamp",
1030
+ "isExpression": false,
1031
+ "asc": true,
1032
+ "nulls": "last"
1033
+ }
1034
+ ],
1035
+ "isUnique": false,
1036
+ "concurrently": false,
1037
+ "method": "btree",
1038
+ "with": {}
1039
+ },
1040
+ "idx_usage_events_ts": {
1041
+ "name": "idx_usage_events_ts",
1042
+ "columns": [
1043
+ {
1044
+ "expression": "timestamp",
1045
+ "isExpression": false,
1046
+ "asc": true,
1047
+ "nulls": "last"
1048
+ }
1049
+ ],
1050
+ "isUnique": false,
1051
+ "concurrently": false,
1052
+ "method": "btree",
1053
+ "with": {}
1054
+ }
1055
+ },
1056
+ "foreignKeys": {},
1057
+ "compositePrimaryKeys": {},
1058
+ "uniqueConstraints": {},
1059
+ "policies": {},
1060
+ "checkConstraints": {},
1061
+ "isRLSEnabled": false
1062
+ }
1063
+ },
1064
+ "enums": {},
1065
+ "schemas": {},
1066
+ "sequences": {},
1067
+ "roles": {},
1068
+ "policies": {},
1069
+ "views": {},
1070
+ "_meta": {
1071
+ "columns": {},
1072
+ "schemas": {},
1073
+ "tables": {}
1074
+ }
1075
+ }