debutly 0.0.0-stage → 0.2.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 (93) hide show
  1. package/LICENSE +662 -0
  2. package/README.md +192 -2
  3. package/bin/debutly.mjs +8 -0
  4. package/drizzle/0000_init.sql +107 -0
  5. package/drizzle/0001_predictions.sql +14 -0
  6. package/drizzle/0002_dashboard.sql +15 -0
  7. package/drizzle/meta/0000_snapshot.json +722 -0
  8. package/drizzle/meta/0001_snapshot.json +821 -0
  9. package/drizzle/meta/0002_snapshot.json +942 -0
  10. package/drizzle/meta/_journal.json +27 -0
  11. package/package.json +83 -4
  12. package/src/agent/describe.ts +29 -0
  13. package/src/agent/effect.ts +94 -0
  14. package/src/agent/give-up.ts +42 -0
  15. package/src/agent/label.ts +19 -0
  16. package/src/agent/loop.ts +302 -0
  17. package/src/agent/parse-reply.ts +127 -0
  18. package/src/agent/prompt.ts +85 -0
  19. package/src/agent/run-agent.ts +68 -0
  20. package/src/artifacts/db.ts +55 -0
  21. package/src/artifacts/s3.ts +36 -0
  22. package/src/artifacts/store.ts +26 -0
  23. package/src/bin.ts +140 -0
  24. package/src/browser/ax.ts +77 -0
  25. package/src/browser/execute.ts +401 -0
  26. package/src/browser/observe.ts +62 -0
  27. package/src/browser/reflow.ts +73 -0
  28. package/src/browser/samples.ts +119 -0
  29. package/src/browser/scan-script.ts +108 -0
  30. package/src/browser/settle.ts +32 -0
  31. package/src/browser/signals.ts +73 -0
  32. package/src/cancel.ts +20 -0
  33. package/src/cli.ts +281 -0
  34. package/src/config.ts +62 -0
  35. package/src/cost/estimate.ts +32 -0
  36. package/src/cost/prices.ts +32 -0
  37. package/src/cost/tiers.ts +27 -0
  38. package/src/costs.ts +96 -0
  39. package/src/crew/run-unit.ts +62 -0
  40. package/src/detect/findings.ts +649 -0
  41. package/src/detect/wcag.ts +38 -0
  42. package/src/doctor.ts +145 -0
  43. package/src/hear-cli.ts +137 -0
  44. package/src/hear.ts +309 -0
  45. package/src/import.ts +108 -0
  46. package/src/inbox/mailpit.ts +46 -0
  47. package/src/inbox/types.ts +10 -0
  48. package/src/init.ts +184 -0
  49. package/src/llm/anthropic.ts +41 -0
  50. package/src/llm/credits.ts +35 -0
  51. package/src/llm/factory.ts +65 -0
  52. package/src/llm/meter.ts +39 -0
  53. package/src/llm/openai-compatible.ts +90 -0
  54. package/src/llm/openrouter.ts +9 -0
  55. package/src/llm/scripted.ts +18 -0
  56. package/src/llm/types.ts +36 -0
  57. package/src/perceive.ts +150 -0
  58. package/src/perception/aggregate.ts +111 -0
  59. package/src/perception/compare.ts +77 -0
  60. package/src/perception/evaluate.ts +83 -0
  61. package/src/perception/exhibits.ts +146 -0
  62. package/src/perception/market-context.ts +50 -0
  63. package/src/perception/run-perception.ts +178 -0
  64. package/src/persona/generate.ts +92 -0
  65. package/src/persona/inclusion.ts +53 -0
  66. package/src/persona/language.ts +59 -0
  67. package/src/persona/people.ts +32 -0
  68. package/src/predictions.ts +33 -0
  69. package/src/queue/dispatch.ts +18 -0
  70. package/src/queue/jobs.ts +28 -0
  71. package/src/queue/processor.ts +42 -0
  72. package/src/report/fix-first.ts +121 -0
  73. package/src/report/launch-readiness.ts +106 -0
  74. package/src/report/markdown.ts +202 -0
  75. package/src/run.ts +141 -0
  76. package/src/sandbox/outbox.ts +65 -0
  77. package/src/store/db.ts +40 -0
  78. package/src/store/import-run.ts +116 -0
  79. package/src/store/pg-run-store.ts +163 -0
  80. package/src/store/predictions.ts +70 -0
  81. package/src/store/run-store.ts +78 -0
  82. package/src/store/schema.ts +193 -0
  83. package/src/store/url.ts +15 -0
  84. package/src/types.ts +201 -0
  85. package/src/util/chromium.ts +20 -0
  86. package/src/util/json.ts +7 -0
  87. package/src/util/key-defaults.ts +34 -0
  88. package/src/util/legacy-env.ts +14 -0
  89. package/src/util/load-env.ts +28 -0
  90. package/src/util/pool.ts +12 -0
  91. package/src/util/run-origin.ts +27 -0
  92. package/src/worker.ts +53 -0
  93. package/tsconfig.json +13 -0
@@ -0,0 +1,942 @@
1
+ {
2
+ "id": "a6024bd4-f892-4c56-aa14-e5d0dad33055",
3
+ "prevId": "b56530de-e9fa-41ed-aa37-1d911f474d5d",
4
+ "version": "7",
5
+ "dialect": "postgresql",
6
+ "tables": {
7
+ "public.agents": {
8
+ "name": "agents",
9
+ "schema": "",
10
+ "columns": {
11
+ "run_id": {
12
+ "name": "run_id",
13
+ "type": "uuid",
14
+ "primaryKey": false,
15
+ "notNull": true
16
+ },
17
+ "id": {
18
+ "name": "id",
19
+ "type": "text",
20
+ "primaryKey": false,
21
+ "notNull": true
22
+ },
23
+ "unit_id": {
24
+ "name": "unit_id",
25
+ "type": "text",
26
+ "primaryKey": false,
27
+ "notNull": true
28
+ },
29
+ "name": {
30
+ "name": "name",
31
+ "type": "text",
32
+ "primaryKey": false,
33
+ "notNull": true
34
+ },
35
+ "role": {
36
+ "name": "role",
37
+ "type": "text",
38
+ "primaryKey": false,
39
+ "notNull": false
40
+ },
41
+ "inclusion": {
42
+ "name": "inclusion",
43
+ "type": "text",
44
+ "primaryKey": false,
45
+ "notNull": false
46
+ },
47
+ "persona": {
48
+ "name": "persona",
49
+ "type": "jsonb",
50
+ "primaryKey": false,
51
+ "notNull": true
52
+ }
53
+ },
54
+ "indexes": {},
55
+ "foreignKeys": {
56
+ "agents_run_id_runs_id_fk": {
57
+ "name": "agents_run_id_runs_id_fk",
58
+ "tableFrom": "agents",
59
+ "tableTo": "runs",
60
+ "columnsFrom": [
61
+ "run_id"
62
+ ],
63
+ "columnsTo": [
64
+ "id"
65
+ ],
66
+ "onDelete": "cascade",
67
+ "onUpdate": "no action"
68
+ }
69
+ },
70
+ "compositePrimaryKeys": {
71
+ "agents_run_id_id_pk": {
72
+ "name": "agents_run_id_id_pk",
73
+ "columns": [
74
+ "run_id",
75
+ "id"
76
+ ]
77
+ }
78
+ },
79
+ "uniqueConstraints": {},
80
+ "policies": {},
81
+ "checkConstraints": {},
82
+ "isRLSEnabled": false
83
+ },
84
+ "public.customer_units": {
85
+ "name": "customer_units",
86
+ "schema": "",
87
+ "columns": {
88
+ "run_id": {
89
+ "name": "run_id",
90
+ "type": "uuid",
91
+ "primaryKey": false,
92
+ "notNull": true
93
+ },
94
+ "id": {
95
+ "name": "id",
96
+ "type": "text",
97
+ "primaryKey": false,
98
+ "notNull": true
99
+ },
100
+ "kind": {
101
+ "name": "kind",
102
+ "type": "text",
103
+ "primaryKey": false,
104
+ "notNull": true
105
+ },
106
+ "business": {
107
+ "name": "business",
108
+ "type": "jsonb",
109
+ "primaryKey": false,
110
+ "notNull": false
111
+ }
112
+ },
113
+ "indexes": {},
114
+ "foreignKeys": {
115
+ "customer_units_run_id_runs_id_fk": {
116
+ "name": "customer_units_run_id_runs_id_fk",
117
+ "tableFrom": "customer_units",
118
+ "tableTo": "runs",
119
+ "columnsFrom": [
120
+ "run_id"
121
+ ],
122
+ "columnsTo": [
123
+ "id"
124
+ ],
125
+ "onDelete": "cascade",
126
+ "onUpdate": "no action"
127
+ }
128
+ },
129
+ "compositePrimaryKeys": {
130
+ "customer_units_run_id_id_pk": {
131
+ "name": "customer_units_run_id_id_pk",
132
+ "columns": [
133
+ "run_id",
134
+ "id"
135
+ ]
136
+ }
137
+ },
138
+ "uniqueConstraints": {},
139
+ "policies": {},
140
+ "checkConstraints": {},
141
+ "isRLSEnabled": false
142
+ },
143
+ "public.findings": {
144
+ "name": "findings",
145
+ "schema": "",
146
+ "columns": {
147
+ "run_id": {
148
+ "name": "run_id",
149
+ "type": "uuid",
150
+ "primaryKey": false,
151
+ "notNull": true
152
+ },
153
+ "signature": {
154
+ "name": "signature",
155
+ "type": "text",
156
+ "primaryKey": false,
157
+ "notNull": true
158
+ },
159
+ "kind": {
160
+ "name": "kind",
161
+ "type": "text",
162
+ "primaryKey": false,
163
+ "notNull": true
164
+ },
165
+ "severity": {
166
+ "name": "severity",
167
+ "type": "text",
168
+ "primaryKey": false,
169
+ "notNull": true
170
+ },
171
+ "confidence": {
172
+ "name": "confidence",
173
+ "type": "text",
174
+ "primaryKey": false,
175
+ "notNull": true
176
+ },
177
+ "title": {
178
+ "name": "title",
179
+ "type": "text",
180
+ "primaryKey": false,
181
+ "notNull": true
182
+ },
183
+ "detail": {
184
+ "name": "detail",
185
+ "type": "text",
186
+ "primaryKey": false,
187
+ "notNull": true
188
+ },
189
+ "page_path": {
190
+ "name": "page_path",
191
+ "type": "text",
192
+ "primaryKey": false,
193
+ "notNull": true
194
+ },
195
+ "hit_by": {
196
+ "name": "hit_by",
197
+ "type": "text[]",
198
+ "primaryKey": false,
199
+ "notNull": true
200
+ },
201
+ "visitors": {
202
+ "name": "visitors",
203
+ "type": "integer",
204
+ "primaryKey": false,
205
+ "notNull": true
206
+ },
207
+ "evidence": {
208
+ "name": "evidence",
209
+ "type": "jsonb",
210
+ "primaryKey": false,
211
+ "notNull": true
212
+ },
213
+ "sandbox_cause": {
214
+ "name": "sandbox_cause",
215
+ "type": "text[]",
216
+ "primaryKey": false,
217
+ "notNull": false
218
+ }
219
+ },
220
+ "indexes": {},
221
+ "foreignKeys": {
222
+ "findings_run_id_runs_id_fk": {
223
+ "name": "findings_run_id_runs_id_fk",
224
+ "tableFrom": "findings",
225
+ "tableTo": "runs",
226
+ "columnsFrom": [
227
+ "run_id"
228
+ ],
229
+ "columnsTo": [
230
+ "id"
231
+ ],
232
+ "onDelete": "cascade",
233
+ "onUpdate": "no action"
234
+ }
235
+ },
236
+ "compositePrimaryKeys": {
237
+ "findings_run_id_signature_pk": {
238
+ "name": "findings_run_id_signature_pk",
239
+ "columns": [
240
+ "run_id",
241
+ "signature"
242
+ ]
243
+ }
244
+ },
245
+ "uniqueConstraints": {},
246
+ "policies": {},
247
+ "checkConstraints": {},
248
+ "isRLSEnabled": false
249
+ },
250
+ "public.predictions": {
251
+ "name": "predictions",
252
+ "schema": "",
253
+ "columns": {
254
+ "id": {
255
+ "name": "id",
256
+ "type": "uuid",
257
+ "primaryKey": true,
258
+ "notNull": true,
259
+ "default": "gen_random_uuid()"
260
+ },
261
+ "run_id": {
262
+ "name": "run_id",
263
+ "type": "uuid",
264
+ "primaryKey": false,
265
+ "notNull": true
266
+ },
267
+ "metric": {
268
+ "name": "metric",
269
+ "type": "text",
270
+ "primaryKey": false,
271
+ "notNull": true
272
+ },
273
+ "claim": {
274
+ "name": "claim",
275
+ "type": "text",
276
+ "primaryKey": false,
277
+ "notNull": true
278
+ },
279
+ "predicted": {
280
+ "name": "predicted",
281
+ "type": "jsonb",
282
+ "primaryKey": false,
283
+ "notNull": true
284
+ },
285
+ "actual": {
286
+ "name": "actual",
287
+ "type": "jsonb",
288
+ "primaryKey": false,
289
+ "notNull": false
290
+ },
291
+ "correct": {
292
+ "name": "correct",
293
+ "type": "boolean",
294
+ "primaryKey": false,
295
+ "notNull": false
296
+ },
297
+ "created_at": {
298
+ "name": "created_at",
299
+ "type": "timestamp with time zone",
300
+ "primaryKey": false,
301
+ "notNull": true,
302
+ "default": "now()"
303
+ },
304
+ "checked_at": {
305
+ "name": "checked_at",
306
+ "type": "timestamp with time zone",
307
+ "primaryKey": false,
308
+ "notNull": false
309
+ }
310
+ },
311
+ "indexes": {
312
+ "predictions_run_idx": {
313
+ "name": "predictions_run_idx",
314
+ "columns": [
315
+ {
316
+ "expression": "run_id",
317
+ "isExpression": false,
318
+ "asc": true,
319
+ "nulls": "last"
320
+ }
321
+ ],
322
+ "isUnique": false,
323
+ "concurrently": false,
324
+ "method": "btree",
325
+ "with": {}
326
+ }
327
+ },
328
+ "foreignKeys": {
329
+ "predictions_run_id_runs_id_fk": {
330
+ "name": "predictions_run_id_runs_id_fk",
331
+ "tableFrom": "predictions",
332
+ "tableTo": "runs",
333
+ "columnsFrom": [
334
+ "run_id"
335
+ ],
336
+ "columnsTo": [
337
+ "id"
338
+ ],
339
+ "onDelete": "cascade",
340
+ "onUpdate": "no action"
341
+ }
342
+ },
343
+ "compositePrimaryKeys": {},
344
+ "uniqueConstraints": {},
345
+ "policies": {},
346
+ "checkConstraints": {},
347
+ "isRLSEnabled": false
348
+ },
349
+ "public.runs": {
350
+ "name": "runs",
351
+ "schema": "",
352
+ "columns": {
353
+ "id": {
354
+ "name": "id",
355
+ "type": "uuid",
356
+ "primaryKey": true,
357
+ "notNull": true,
358
+ "default": "gen_random_uuid()"
359
+ },
360
+ "app": {
361
+ "name": "app",
362
+ "type": "text",
363
+ "primaryKey": false,
364
+ "notNull": false
365
+ },
366
+ "trigger": {
367
+ "name": "trigger",
368
+ "type": "text",
369
+ "primaryKey": false,
370
+ "notNull": false
371
+ },
372
+ "ci_url": {
373
+ "name": "ci_url",
374
+ "type": "text",
375
+ "primaryKey": false,
376
+ "notNull": false
377
+ },
378
+ "target_url": {
379
+ "name": "target_url",
380
+ "type": "text",
381
+ "primaryKey": false,
382
+ "notNull": true
383
+ },
384
+ "goal": {
385
+ "name": "goal",
386
+ "type": "text",
387
+ "primaryKey": false,
388
+ "notNull": true
389
+ },
390
+ "icp": {
391
+ "name": "icp",
392
+ "type": "text",
393
+ "primaryKey": false,
394
+ "notNull": false
395
+ },
396
+ "tier": {
397
+ "name": "tier",
398
+ "type": "text",
399
+ "primaryKey": false,
400
+ "notNull": false
401
+ },
402
+ "unit_kind": {
403
+ "name": "unit_kind",
404
+ "type": "text",
405
+ "primaryKey": false,
406
+ "notNull": false
407
+ },
408
+ "status": {
409
+ "name": "status",
410
+ "type": "text",
411
+ "primaryKey": false,
412
+ "notNull": true,
413
+ "default": "'queued'"
414
+ },
415
+ "model": {
416
+ "name": "model",
417
+ "type": "text",
418
+ "primaryKey": false,
419
+ "notNull": false
420
+ },
421
+ "estimate_low_usd": {
422
+ "name": "estimate_low_usd",
423
+ "type": "double precision",
424
+ "primaryKey": false,
425
+ "notNull": false
426
+ },
427
+ "estimate_high_usd": {
428
+ "name": "estimate_high_usd",
429
+ "type": "double precision",
430
+ "primaryKey": false,
431
+ "notNull": false
432
+ },
433
+ "cost_usd": {
434
+ "name": "cost_usd",
435
+ "type": "double precision",
436
+ "primaryKey": false,
437
+ "notNull": false
438
+ },
439
+ "input_tokens": {
440
+ "name": "input_tokens",
441
+ "type": "integer",
442
+ "primaryKey": false,
443
+ "notNull": false
444
+ },
445
+ "output_tokens": {
446
+ "name": "output_tokens",
447
+ "type": "integer",
448
+ "primaryKey": false,
449
+ "notNull": false
450
+ },
451
+ "report_md": {
452
+ "name": "report_md",
453
+ "type": "text",
454
+ "primaryKey": false,
455
+ "notNull": false
456
+ },
457
+ "created_at": {
458
+ "name": "created_at",
459
+ "type": "timestamp with time zone",
460
+ "primaryKey": false,
461
+ "notNull": true,
462
+ "default": "now()"
463
+ },
464
+ "started_at": {
465
+ "name": "started_at",
466
+ "type": "timestamp with time zone",
467
+ "primaryKey": false,
468
+ "notNull": false
469
+ },
470
+ "finished_at": {
471
+ "name": "finished_at",
472
+ "type": "timestamp with time zone",
473
+ "primaryKey": false,
474
+ "notNull": false
475
+ }
476
+ },
477
+ "indexes": {
478
+ "runs_created_at_idx": {
479
+ "name": "runs_created_at_idx",
480
+ "columns": [
481
+ {
482
+ "expression": "created_at",
483
+ "isExpression": false,
484
+ "asc": false,
485
+ "nulls": "last"
486
+ }
487
+ ],
488
+ "isUnique": false,
489
+ "concurrently": false,
490
+ "method": "btree",
491
+ "with": {}
492
+ },
493
+ "runs_app_created_at_idx": {
494
+ "name": "runs_app_created_at_idx",
495
+ "columns": [
496
+ {
497
+ "expression": "app",
498
+ "isExpression": false,
499
+ "asc": true,
500
+ "nulls": "last"
501
+ },
502
+ {
503
+ "expression": "created_at",
504
+ "isExpression": false,
505
+ "asc": false,
506
+ "nulls": "last"
507
+ }
508
+ ],
509
+ "isUnique": false,
510
+ "concurrently": false,
511
+ "method": "btree",
512
+ "with": {}
513
+ }
514
+ },
515
+ "foreignKeys": {},
516
+ "compositePrimaryKeys": {},
517
+ "uniqueConstraints": {},
518
+ "policies": {},
519
+ "checkConstraints": {},
520
+ "isRLSEnabled": false
521
+ },
522
+ "public.screenshots": {
523
+ "name": "screenshots",
524
+ "schema": "",
525
+ "columns": {
526
+ "run_id": {
527
+ "name": "run_id",
528
+ "type": "uuid",
529
+ "primaryKey": false,
530
+ "notNull": true
531
+ },
532
+ "key": {
533
+ "name": "key",
534
+ "type": "text",
535
+ "primaryKey": false,
536
+ "notNull": true
537
+ },
538
+ "content_type": {
539
+ "name": "content_type",
540
+ "type": "text",
541
+ "primaryKey": false,
542
+ "notNull": true
543
+ },
544
+ "data": {
545
+ "name": "data",
546
+ "type": "bytea",
547
+ "primaryKey": false,
548
+ "notNull": true
549
+ },
550
+ "created_at": {
551
+ "name": "created_at",
552
+ "type": "timestamp with time zone",
553
+ "primaryKey": false,
554
+ "notNull": true,
555
+ "default": "now()"
556
+ }
557
+ },
558
+ "indexes": {
559
+ "screenshots_created_at_idx": {
560
+ "name": "screenshots_created_at_idx",
561
+ "columns": [
562
+ {
563
+ "expression": "created_at",
564
+ "isExpression": false,
565
+ "asc": true,
566
+ "nulls": "last"
567
+ }
568
+ ],
569
+ "isUnique": false,
570
+ "concurrently": false,
571
+ "method": "btree",
572
+ "with": {}
573
+ }
574
+ },
575
+ "foreignKeys": {
576
+ "screenshots_run_id_runs_id_fk": {
577
+ "name": "screenshots_run_id_runs_id_fk",
578
+ "tableFrom": "screenshots",
579
+ "tableTo": "runs",
580
+ "columnsFrom": [
581
+ "run_id"
582
+ ],
583
+ "columnsTo": [
584
+ "id"
585
+ ],
586
+ "onDelete": "cascade",
587
+ "onUpdate": "no action"
588
+ }
589
+ },
590
+ "compositePrimaryKeys": {
591
+ "screenshots_run_id_key_pk": {
592
+ "name": "screenshots_run_id_key_pk",
593
+ "columns": [
594
+ "run_id",
595
+ "key"
596
+ ]
597
+ }
598
+ },
599
+ "uniqueConstraints": {},
600
+ "policies": {},
601
+ "checkConstraints": {},
602
+ "isRLSEnabled": false
603
+ },
604
+ "public.sessions": {
605
+ "name": "sessions",
606
+ "schema": "",
607
+ "columns": {
608
+ "run_id": {
609
+ "name": "run_id",
610
+ "type": "uuid",
611
+ "primaryKey": false,
612
+ "notNull": true
613
+ },
614
+ "agent_id": {
615
+ "name": "agent_id",
616
+ "type": "text",
617
+ "primaryKey": false,
618
+ "notNull": true
619
+ },
620
+ "goal": {
621
+ "name": "goal",
622
+ "type": "text",
623
+ "primaryKey": false,
624
+ "notNull": true
625
+ },
626
+ "outcome": {
627
+ "name": "outcome",
628
+ "type": "text",
629
+ "primaryKey": false,
630
+ "notNull": false
631
+ },
632
+ "outcome_note": {
633
+ "name": "outcome_note",
634
+ "type": "text",
635
+ "primaryKey": false,
636
+ "notNull": false
637
+ },
638
+ "input_tokens": {
639
+ "name": "input_tokens",
640
+ "type": "integer",
641
+ "primaryKey": false,
642
+ "notNull": false
643
+ },
644
+ "output_tokens": {
645
+ "name": "output_tokens",
646
+ "type": "integer",
647
+ "primaryKey": false,
648
+ "notNull": false
649
+ },
650
+ "cost_usd": {
651
+ "name": "cost_usd",
652
+ "type": "double precision",
653
+ "primaryKey": false,
654
+ "notNull": false
655
+ },
656
+ "started_at": {
657
+ "name": "started_at",
658
+ "type": "timestamp with time zone",
659
+ "primaryKey": false,
660
+ "notNull": true,
661
+ "default": "now()"
662
+ },
663
+ "finished_at": {
664
+ "name": "finished_at",
665
+ "type": "timestamp with time zone",
666
+ "primaryKey": false,
667
+ "notNull": false
668
+ }
669
+ },
670
+ "indexes": {},
671
+ "foreignKeys": {
672
+ "sessions_run_id_runs_id_fk": {
673
+ "name": "sessions_run_id_runs_id_fk",
674
+ "tableFrom": "sessions",
675
+ "tableTo": "runs",
676
+ "columnsFrom": [
677
+ "run_id"
678
+ ],
679
+ "columnsTo": [
680
+ "id"
681
+ ],
682
+ "onDelete": "cascade",
683
+ "onUpdate": "no action"
684
+ }
685
+ },
686
+ "compositePrimaryKeys": {
687
+ "sessions_run_id_agent_id_pk": {
688
+ "name": "sessions_run_id_agent_id_pk",
689
+ "columns": [
690
+ "run_id",
691
+ "agent_id"
692
+ ]
693
+ }
694
+ },
695
+ "uniqueConstraints": {},
696
+ "policies": {},
697
+ "checkConstraints": {},
698
+ "isRLSEnabled": false
699
+ },
700
+ "public.side_effects": {
701
+ "name": "side_effects",
702
+ "schema": "",
703
+ "columns": {
704
+ "id": {
705
+ "name": "id",
706
+ "type": "integer",
707
+ "primaryKey": true,
708
+ "notNull": true,
709
+ "identity": {
710
+ "type": "always",
711
+ "name": "side_effects_id_seq",
712
+ "schema": "public",
713
+ "increment": "1",
714
+ "startWith": "1",
715
+ "minValue": "1",
716
+ "maxValue": "2147483647",
717
+ "cache": "1",
718
+ "cycle": false
719
+ }
720
+ },
721
+ "run_id": {
722
+ "name": "run_id",
723
+ "type": "uuid",
724
+ "primaryKey": false,
725
+ "notNull": true
726
+ },
727
+ "outcome": {
728
+ "name": "outcome",
729
+ "type": "text",
730
+ "primaryKey": false,
731
+ "notNull": true
732
+ },
733
+ "rule": {
734
+ "name": "rule",
735
+ "type": "text",
736
+ "primaryKey": false,
737
+ "notNull": false
738
+ },
739
+ "channel": {
740
+ "name": "channel",
741
+ "type": "text",
742
+ "primaryKey": false,
743
+ "notNull": true
744
+ },
745
+ "host": {
746
+ "name": "host",
747
+ "type": "text",
748
+ "primaryKey": false,
749
+ "notNull": true
750
+ },
751
+ "url": {
752
+ "name": "url",
753
+ "type": "text",
754
+ "primaryKey": false,
755
+ "notNull": true
756
+ },
757
+ "recipient": {
758
+ "name": "recipient",
759
+ "type": "text",
760
+ "primaryKey": false,
761
+ "notNull": false
762
+ },
763
+ "summary": {
764
+ "name": "summary",
765
+ "type": "text",
766
+ "primaryKey": false,
767
+ "notNull": false
768
+ },
769
+ "at": {
770
+ "name": "at",
771
+ "type": "timestamp with time zone",
772
+ "primaryKey": false,
773
+ "notNull": true,
774
+ "default": "now()"
775
+ }
776
+ },
777
+ "indexes": {
778
+ "side_effects_run_idx": {
779
+ "name": "side_effects_run_idx",
780
+ "columns": [
781
+ {
782
+ "expression": "run_id",
783
+ "isExpression": false,
784
+ "asc": true,
785
+ "nulls": "last"
786
+ }
787
+ ],
788
+ "isUnique": false,
789
+ "concurrently": false,
790
+ "method": "btree",
791
+ "with": {}
792
+ }
793
+ },
794
+ "foreignKeys": {
795
+ "side_effects_run_id_runs_id_fk": {
796
+ "name": "side_effects_run_id_runs_id_fk",
797
+ "tableFrom": "side_effects",
798
+ "tableTo": "runs",
799
+ "columnsFrom": [
800
+ "run_id"
801
+ ],
802
+ "columnsTo": [
803
+ "id"
804
+ ],
805
+ "onDelete": "cascade",
806
+ "onUpdate": "no action"
807
+ }
808
+ },
809
+ "compositePrimaryKeys": {},
810
+ "uniqueConstraints": {},
811
+ "policies": {},
812
+ "checkConstraints": {},
813
+ "isRLSEnabled": false
814
+ },
815
+ "public.steps": {
816
+ "name": "steps",
817
+ "schema": "",
818
+ "columns": {
819
+ "run_id": {
820
+ "name": "run_id",
821
+ "type": "uuid",
822
+ "primaryKey": false,
823
+ "notNull": true
824
+ },
825
+ "agent_id": {
826
+ "name": "agent_id",
827
+ "type": "text",
828
+ "primaryKey": false,
829
+ "notNull": true
830
+ },
831
+ "index": {
832
+ "name": "index",
833
+ "type": "integer",
834
+ "primaryKey": false,
835
+ "notNull": true
836
+ },
837
+ "url": {
838
+ "name": "url",
839
+ "type": "text",
840
+ "primaryKey": false,
841
+ "notNull": true
842
+ },
843
+ "title": {
844
+ "name": "title",
845
+ "type": "text",
846
+ "primaryKey": false,
847
+ "notNull": false
848
+ },
849
+ "action": {
850
+ "name": "action",
851
+ "type": "jsonb",
852
+ "primaryKey": false,
853
+ "notNull": true
854
+ },
855
+ "reasoning": {
856
+ "name": "reasoning",
857
+ "type": "text",
858
+ "primaryKey": false,
859
+ "notNull": false
860
+ },
861
+ "observation": {
862
+ "name": "observation",
863
+ "type": "jsonb",
864
+ "primaryKey": false,
865
+ "notNull": true
866
+ },
867
+ "signals": {
868
+ "name": "signals",
869
+ "type": "jsonb",
870
+ "primaryKey": false,
871
+ "notNull": true
872
+ },
873
+ "error": {
874
+ "name": "error",
875
+ "type": "text",
876
+ "primaryKey": false,
877
+ "notNull": false
878
+ },
879
+ "blocked": {
880
+ "name": "blocked",
881
+ "type": "text",
882
+ "primaryKey": false,
883
+ "notNull": false
884
+ },
885
+ "screenshot_url": {
886
+ "name": "screenshot_url",
887
+ "type": "text",
888
+ "primaryKey": false,
889
+ "notNull": false
890
+ },
891
+ "created_at": {
892
+ "name": "created_at",
893
+ "type": "timestamp with time zone",
894
+ "primaryKey": false,
895
+ "notNull": true,
896
+ "default": "now()"
897
+ }
898
+ },
899
+ "indexes": {},
900
+ "foreignKeys": {
901
+ "steps_run_id_runs_id_fk": {
902
+ "name": "steps_run_id_runs_id_fk",
903
+ "tableFrom": "steps",
904
+ "tableTo": "runs",
905
+ "columnsFrom": [
906
+ "run_id"
907
+ ],
908
+ "columnsTo": [
909
+ "id"
910
+ ],
911
+ "onDelete": "cascade",
912
+ "onUpdate": "no action"
913
+ }
914
+ },
915
+ "compositePrimaryKeys": {
916
+ "steps_run_id_agent_id_index_pk": {
917
+ "name": "steps_run_id_agent_id_index_pk",
918
+ "columns": [
919
+ "run_id",
920
+ "agent_id",
921
+ "index"
922
+ ]
923
+ }
924
+ },
925
+ "uniqueConstraints": {},
926
+ "policies": {},
927
+ "checkConstraints": {},
928
+ "isRLSEnabled": false
929
+ }
930
+ },
931
+ "enums": {},
932
+ "schemas": {},
933
+ "sequences": {},
934
+ "roles": {},
935
+ "policies": {},
936
+ "views": {},
937
+ "_meta": {
938
+ "columns": {},
939
+ "schemas": {},
940
+ "tables": {}
941
+ }
942
+ }