debutly 0.0.0-stage → 0.1.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 (89) 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 +37 -0
  14. package/src/agent/loop.ts +232 -0
  15. package/src/agent/parse-reply.ts +76 -0
  16. package/src/agent/prompt.ts +76 -0
  17. package/src/agent/run-agent.ts +68 -0
  18. package/src/artifacts/db.ts +55 -0
  19. package/src/artifacts/s3.ts +36 -0
  20. package/src/artifacts/store.ts +26 -0
  21. package/src/bin.ts +140 -0
  22. package/src/browser/ax.ts +77 -0
  23. package/src/browser/execute.ts +338 -0
  24. package/src/browser/observe.ts +56 -0
  25. package/src/browser/reflow.ts +73 -0
  26. package/src/browser/samples.ts +119 -0
  27. package/src/browser/scan-script.ts +62 -0
  28. package/src/browser/settle.ts +32 -0
  29. package/src/browser/signals.ts +73 -0
  30. package/src/cancel.ts +20 -0
  31. package/src/cli.ts +265 -0
  32. package/src/config.ts +62 -0
  33. package/src/cost/estimate.ts +32 -0
  34. package/src/cost/prices.ts +32 -0
  35. package/src/cost/tiers.ts +27 -0
  36. package/src/costs.ts +96 -0
  37. package/src/crew/run-unit.ts +62 -0
  38. package/src/detect/findings.ts +617 -0
  39. package/src/detect/wcag.ts +38 -0
  40. package/src/doctor.ts +145 -0
  41. package/src/hear-cli.ts +137 -0
  42. package/src/hear.ts +309 -0
  43. package/src/import.ts +108 -0
  44. package/src/inbox/mailpit.ts +46 -0
  45. package/src/inbox/types.ts +10 -0
  46. package/src/init.ts +183 -0
  47. package/src/llm/anthropic.ts +41 -0
  48. package/src/llm/credits.ts +35 -0
  49. package/src/llm/factory.ts +65 -0
  50. package/src/llm/meter.ts +39 -0
  51. package/src/llm/openai-compatible.ts +90 -0
  52. package/src/llm/openrouter.ts +9 -0
  53. package/src/llm/scripted.ts +18 -0
  54. package/src/llm/types.ts +36 -0
  55. package/src/perceive.ts +150 -0
  56. package/src/perception/aggregate.ts +111 -0
  57. package/src/perception/compare.ts +77 -0
  58. package/src/perception/evaluate.ts +83 -0
  59. package/src/perception/exhibits.ts +146 -0
  60. package/src/perception/market-context.ts +50 -0
  61. package/src/perception/run-perception.ts +178 -0
  62. package/src/persona/generate.ts +92 -0
  63. package/src/persona/inclusion.ts +53 -0
  64. package/src/persona/language.ts +59 -0
  65. package/src/predictions.ts +33 -0
  66. package/src/queue/dispatch.ts +18 -0
  67. package/src/queue/jobs.ts +28 -0
  68. package/src/queue/processor.ts +42 -0
  69. package/src/report/launch-readiness.ts +106 -0
  70. package/src/report/markdown.ts +200 -0
  71. package/src/run.ts +139 -0
  72. package/src/sandbox/outbox.ts +65 -0
  73. package/src/store/db.ts +40 -0
  74. package/src/store/import-run.ts +116 -0
  75. package/src/store/pg-run-store.ts +163 -0
  76. package/src/store/predictions.ts +70 -0
  77. package/src/store/run-store.ts +78 -0
  78. package/src/store/schema.ts +193 -0
  79. package/src/store/url.ts +15 -0
  80. package/src/types.ts +187 -0
  81. package/src/util/chromium.ts +20 -0
  82. package/src/util/json.ts +7 -0
  83. package/src/util/key-defaults.ts +34 -0
  84. package/src/util/legacy-env.ts +14 -0
  85. package/src/util/load-env.ts +28 -0
  86. package/src/util/pool.ts +12 -0
  87. package/src/util/run-origin.ts +27 -0
  88. package/src/worker.ts +53 -0
  89. package/tsconfig.json +13 -0
@@ -0,0 +1,821 @@
1
+ {
2
+ "id": "b56530de-e9fa-41ed-aa37-1d911f474d5d",
3
+ "prevId": "fbf0d3b9-644f-4b50-9876-2f4ca53abad9",
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
+ "target_url": {
361
+ "name": "target_url",
362
+ "type": "text",
363
+ "primaryKey": false,
364
+ "notNull": true
365
+ },
366
+ "goal": {
367
+ "name": "goal",
368
+ "type": "text",
369
+ "primaryKey": false,
370
+ "notNull": true
371
+ },
372
+ "icp": {
373
+ "name": "icp",
374
+ "type": "text",
375
+ "primaryKey": false,
376
+ "notNull": false
377
+ },
378
+ "tier": {
379
+ "name": "tier",
380
+ "type": "text",
381
+ "primaryKey": false,
382
+ "notNull": false
383
+ },
384
+ "unit_kind": {
385
+ "name": "unit_kind",
386
+ "type": "text",
387
+ "primaryKey": false,
388
+ "notNull": false
389
+ },
390
+ "status": {
391
+ "name": "status",
392
+ "type": "text",
393
+ "primaryKey": false,
394
+ "notNull": true,
395
+ "default": "'queued'"
396
+ },
397
+ "model": {
398
+ "name": "model",
399
+ "type": "text",
400
+ "primaryKey": false,
401
+ "notNull": false
402
+ },
403
+ "estimate_low_usd": {
404
+ "name": "estimate_low_usd",
405
+ "type": "double precision",
406
+ "primaryKey": false,
407
+ "notNull": false
408
+ },
409
+ "estimate_high_usd": {
410
+ "name": "estimate_high_usd",
411
+ "type": "double precision",
412
+ "primaryKey": false,
413
+ "notNull": false
414
+ },
415
+ "cost_usd": {
416
+ "name": "cost_usd",
417
+ "type": "double precision",
418
+ "primaryKey": false,
419
+ "notNull": false
420
+ },
421
+ "input_tokens": {
422
+ "name": "input_tokens",
423
+ "type": "integer",
424
+ "primaryKey": false,
425
+ "notNull": false
426
+ },
427
+ "output_tokens": {
428
+ "name": "output_tokens",
429
+ "type": "integer",
430
+ "primaryKey": false,
431
+ "notNull": false
432
+ },
433
+ "report_md": {
434
+ "name": "report_md",
435
+ "type": "text",
436
+ "primaryKey": false,
437
+ "notNull": false
438
+ },
439
+ "created_at": {
440
+ "name": "created_at",
441
+ "type": "timestamp with time zone",
442
+ "primaryKey": false,
443
+ "notNull": true,
444
+ "default": "now()"
445
+ },
446
+ "started_at": {
447
+ "name": "started_at",
448
+ "type": "timestamp with time zone",
449
+ "primaryKey": false,
450
+ "notNull": false
451
+ },
452
+ "finished_at": {
453
+ "name": "finished_at",
454
+ "type": "timestamp with time zone",
455
+ "primaryKey": false,
456
+ "notNull": false
457
+ }
458
+ },
459
+ "indexes": {
460
+ "runs_created_at_idx": {
461
+ "name": "runs_created_at_idx",
462
+ "columns": [
463
+ {
464
+ "expression": "created_at",
465
+ "isExpression": false,
466
+ "asc": false,
467
+ "nulls": "last"
468
+ }
469
+ ],
470
+ "isUnique": false,
471
+ "concurrently": false,
472
+ "method": "btree",
473
+ "with": {}
474
+ }
475
+ },
476
+ "foreignKeys": {},
477
+ "compositePrimaryKeys": {},
478
+ "uniqueConstraints": {},
479
+ "policies": {},
480
+ "checkConstraints": {},
481
+ "isRLSEnabled": false
482
+ },
483
+ "public.sessions": {
484
+ "name": "sessions",
485
+ "schema": "",
486
+ "columns": {
487
+ "run_id": {
488
+ "name": "run_id",
489
+ "type": "uuid",
490
+ "primaryKey": false,
491
+ "notNull": true
492
+ },
493
+ "agent_id": {
494
+ "name": "agent_id",
495
+ "type": "text",
496
+ "primaryKey": false,
497
+ "notNull": true
498
+ },
499
+ "goal": {
500
+ "name": "goal",
501
+ "type": "text",
502
+ "primaryKey": false,
503
+ "notNull": true
504
+ },
505
+ "outcome": {
506
+ "name": "outcome",
507
+ "type": "text",
508
+ "primaryKey": false,
509
+ "notNull": false
510
+ },
511
+ "outcome_note": {
512
+ "name": "outcome_note",
513
+ "type": "text",
514
+ "primaryKey": false,
515
+ "notNull": false
516
+ },
517
+ "input_tokens": {
518
+ "name": "input_tokens",
519
+ "type": "integer",
520
+ "primaryKey": false,
521
+ "notNull": false
522
+ },
523
+ "output_tokens": {
524
+ "name": "output_tokens",
525
+ "type": "integer",
526
+ "primaryKey": false,
527
+ "notNull": false
528
+ },
529
+ "cost_usd": {
530
+ "name": "cost_usd",
531
+ "type": "double precision",
532
+ "primaryKey": false,
533
+ "notNull": false
534
+ },
535
+ "started_at": {
536
+ "name": "started_at",
537
+ "type": "timestamp with time zone",
538
+ "primaryKey": false,
539
+ "notNull": true,
540
+ "default": "now()"
541
+ },
542
+ "finished_at": {
543
+ "name": "finished_at",
544
+ "type": "timestamp with time zone",
545
+ "primaryKey": false,
546
+ "notNull": false
547
+ }
548
+ },
549
+ "indexes": {},
550
+ "foreignKeys": {
551
+ "sessions_run_id_runs_id_fk": {
552
+ "name": "sessions_run_id_runs_id_fk",
553
+ "tableFrom": "sessions",
554
+ "tableTo": "runs",
555
+ "columnsFrom": [
556
+ "run_id"
557
+ ],
558
+ "columnsTo": [
559
+ "id"
560
+ ],
561
+ "onDelete": "cascade",
562
+ "onUpdate": "no action"
563
+ }
564
+ },
565
+ "compositePrimaryKeys": {
566
+ "sessions_run_id_agent_id_pk": {
567
+ "name": "sessions_run_id_agent_id_pk",
568
+ "columns": [
569
+ "run_id",
570
+ "agent_id"
571
+ ]
572
+ }
573
+ },
574
+ "uniqueConstraints": {},
575
+ "policies": {},
576
+ "checkConstraints": {},
577
+ "isRLSEnabled": false
578
+ },
579
+ "public.side_effects": {
580
+ "name": "side_effects",
581
+ "schema": "",
582
+ "columns": {
583
+ "id": {
584
+ "name": "id",
585
+ "type": "integer",
586
+ "primaryKey": true,
587
+ "notNull": true,
588
+ "identity": {
589
+ "type": "always",
590
+ "name": "side_effects_id_seq",
591
+ "schema": "public",
592
+ "increment": "1",
593
+ "startWith": "1",
594
+ "minValue": "1",
595
+ "maxValue": "2147483647",
596
+ "cache": "1",
597
+ "cycle": false
598
+ }
599
+ },
600
+ "run_id": {
601
+ "name": "run_id",
602
+ "type": "uuid",
603
+ "primaryKey": false,
604
+ "notNull": true
605
+ },
606
+ "outcome": {
607
+ "name": "outcome",
608
+ "type": "text",
609
+ "primaryKey": false,
610
+ "notNull": true
611
+ },
612
+ "rule": {
613
+ "name": "rule",
614
+ "type": "text",
615
+ "primaryKey": false,
616
+ "notNull": false
617
+ },
618
+ "channel": {
619
+ "name": "channel",
620
+ "type": "text",
621
+ "primaryKey": false,
622
+ "notNull": true
623
+ },
624
+ "host": {
625
+ "name": "host",
626
+ "type": "text",
627
+ "primaryKey": false,
628
+ "notNull": true
629
+ },
630
+ "url": {
631
+ "name": "url",
632
+ "type": "text",
633
+ "primaryKey": false,
634
+ "notNull": true
635
+ },
636
+ "recipient": {
637
+ "name": "recipient",
638
+ "type": "text",
639
+ "primaryKey": false,
640
+ "notNull": false
641
+ },
642
+ "summary": {
643
+ "name": "summary",
644
+ "type": "text",
645
+ "primaryKey": false,
646
+ "notNull": false
647
+ },
648
+ "at": {
649
+ "name": "at",
650
+ "type": "timestamp with time zone",
651
+ "primaryKey": false,
652
+ "notNull": true,
653
+ "default": "now()"
654
+ }
655
+ },
656
+ "indexes": {
657
+ "side_effects_run_idx": {
658
+ "name": "side_effects_run_idx",
659
+ "columns": [
660
+ {
661
+ "expression": "run_id",
662
+ "isExpression": false,
663
+ "asc": true,
664
+ "nulls": "last"
665
+ }
666
+ ],
667
+ "isUnique": false,
668
+ "concurrently": false,
669
+ "method": "btree",
670
+ "with": {}
671
+ }
672
+ },
673
+ "foreignKeys": {
674
+ "side_effects_run_id_runs_id_fk": {
675
+ "name": "side_effects_run_id_runs_id_fk",
676
+ "tableFrom": "side_effects",
677
+ "tableTo": "runs",
678
+ "columnsFrom": [
679
+ "run_id"
680
+ ],
681
+ "columnsTo": [
682
+ "id"
683
+ ],
684
+ "onDelete": "cascade",
685
+ "onUpdate": "no action"
686
+ }
687
+ },
688
+ "compositePrimaryKeys": {},
689
+ "uniqueConstraints": {},
690
+ "policies": {},
691
+ "checkConstraints": {},
692
+ "isRLSEnabled": false
693
+ },
694
+ "public.steps": {
695
+ "name": "steps",
696
+ "schema": "",
697
+ "columns": {
698
+ "run_id": {
699
+ "name": "run_id",
700
+ "type": "uuid",
701
+ "primaryKey": false,
702
+ "notNull": true
703
+ },
704
+ "agent_id": {
705
+ "name": "agent_id",
706
+ "type": "text",
707
+ "primaryKey": false,
708
+ "notNull": true
709
+ },
710
+ "index": {
711
+ "name": "index",
712
+ "type": "integer",
713
+ "primaryKey": false,
714
+ "notNull": true
715
+ },
716
+ "url": {
717
+ "name": "url",
718
+ "type": "text",
719
+ "primaryKey": false,
720
+ "notNull": true
721
+ },
722
+ "title": {
723
+ "name": "title",
724
+ "type": "text",
725
+ "primaryKey": false,
726
+ "notNull": false
727
+ },
728
+ "action": {
729
+ "name": "action",
730
+ "type": "jsonb",
731
+ "primaryKey": false,
732
+ "notNull": true
733
+ },
734
+ "reasoning": {
735
+ "name": "reasoning",
736
+ "type": "text",
737
+ "primaryKey": false,
738
+ "notNull": false
739
+ },
740
+ "observation": {
741
+ "name": "observation",
742
+ "type": "jsonb",
743
+ "primaryKey": false,
744
+ "notNull": true
745
+ },
746
+ "signals": {
747
+ "name": "signals",
748
+ "type": "jsonb",
749
+ "primaryKey": false,
750
+ "notNull": true
751
+ },
752
+ "error": {
753
+ "name": "error",
754
+ "type": "text",
755
+ "primaryKey": false,
756
+ "notNull": false
757
+ },
758
+ "blocked": {
759
+ "name": "blocked",
760
+ "type": "text",
761
+ "primaryKey": false,
762
+ "notNull": false
763
+ },
764
+ "screenshot_url": {
765
+ "name": "screenshot_url",
766
+ "type": "text",
767
+ "primaryKey": false,
768
+ "notNull": false
769
+ },
770
+ "created_at": {
771
+ "name": "created_at",
772
+ "type": "timestamp with time zone",
773
+ "primaryKey": false,
774
+ "notNull": true,
775
+ "default": "now()"
776
+ }
777
+ },
778
+ "indexes": {},
779
+ "foreignKeys": {
780
+ "steps_run_id_runs_id_fk": {
781
+ "name": "steps_run_id_runs_id_fk",
782
+ "tableFrom": "steps",
783
+ "tableTo": "runs",
784
+ "columnsFrom": [
785
+ "run_id"
786
+ ],
787
+ "columnsTo": [
788
+ "id"
789
+ ],
790
+ "onDelete": "cascade",
791
+ "onUpdate": "no action"
792
+ }
793
+ },
794
+ "compositePrimaryKeys": {
795
+ "steps_run_id_agent_id_index_pk": {
796
+ "name": "steps_run_id_agent_id_index_pk",
797
+ "columns": [
798
+ "run_id",
799
+ "agent_id",
800
+ "index"
801
+ ]
802
+ }
803
+ },
804
+ "uniqueConstraints": {},
805
+ "policies": {},
806
+ "checkConstraints": {},
807
+ "isRLSEnabled": false
808
+ }
809
+ },
810
+ "enums": {},
811
+ "schemas": {},
812
+ "sequences": {},
813
+ "roles": {},
814
+ "policies": {},
815
+ "views": {},
816
+ "_meta": {
817
+ "columns": {},
818
+ "schemas": {},
819
+ "tables": {}
820
+ }
821
+ }