truecourse 0.1.2 → 0.1.5

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 (47) hide show
  1. package/cli.mjs +9417 -712
  2. package/db/migrations/0000_common_guardsmen.sql +227 -0
  3. package/db/migrations/meta/0000_snapshot.json +1101 -87
  4. package/db/migrations/meta/_journal.json +2 -2
  5. package/package.json +8 -8
  6. package/public/404.html +2 -2
  7. package/public/_next/static/chunks/381-85180243c39f893f.js +1 -0
  8. package/public/_next/static/chunks/552-6917726d81ee49a3.js +1 -0
  9. package/public/_next/static/chunks/572-f3883e9a1f12af9b.js +1 -0
  10. package/public/_next/static/chunks/597-bdc49f9b0afbcc65.js +1 -0
  11. package/public/_next/static/chunks/7273c211-cf17e181dbeacc49.js +1 -0
  12. package/public/_next/static/chunks/a51c26f2-8f567e78114a65f0.js +1 -0
  13. package/public/_next/static/chunks/app/_not-found/page-7ce89933d9d660c3.js +1 -0
  14. package/public/_next/static/chunks/app/layout-7b61f0cc08a2b70c.js +1 -0
  15. package/public/_next/static/chunks/app/page-cfec34672a92b197.js +1 -0
  16. package/public/_next/static/chunks/app/repos/[[...slug]]/page-775a75a81164bb72.js +1 -0
  17. package/public/_next/static/chunks/framework-56b72e8a5f911564.js +1 -0
  18. package/public/_next/static/chunks/main-19f32cbfea665136.js +1 -0
  19. package/public/_next/static/chunks/main-app-11a30c55aba12d50.js +1 -0
  20. package/public/_next/static/chunks/pages/_app-23d1cfabc23fb6da.js +1 -0
  21. package/public/_next/static/chunks/pages/{_error-b3f1a96c07a42193.js → _error-647008f4bf4249c2.js} +1 -1
  22. package/public/_next/static/chunks/webpack-f20a7a6e701c70d8.js +1 -0
  23. package/public/_next/static/css/bfb5d4bf473c84ea.css +1 -0
  24. package/public/_next/static/{qkaM-_kJMthFE7DbnSDij → kWvBK3M_UdFRGPFgNFXnS}/_buildManifest.js +1 -1
  25. package/public/index.html +2 -2
  26. package/public/index.txt +10 -10
  27. package/public/logo.svg +29 -0
  28. package/public/repos.html +12 -1
  29. package/public/repos.txt +15 -15
  30. package/server.mjs +6525 -3626
  31. package/db/migrations/0000_daily_paper_doll.sql +0 -82
  32. package/public/_next/static/chunks/414-8318b3e90e55d32a.js +0 -1
  33. package/public/_next/static/chunks/597-63908a91b482ecc2.js +0 -1
  34. package/public/_next/static/chunks/7273c211-8e9085ce5065411a.js +0 -1
  35. package/public/_next/static/chunks/728-8bf3f63c2116a9f4.js +0 -1
  36. package/public/_next/static/chunks/a51c26f2-7912c8e37f20294d.js +0 -1
  37. package/public/_next/static/chunks/app/_not-found/page-fa912e0095c03faf.js +0 -1
  38. package/public/_next/static/chunks/app/layout-8b7c9093ed7416a9.js +0 -1
  39. package/public/_next/static/chunks/app/page-a584f9a9455d99db.js +0 -1
  40. package/public/_next/static/chunks/app/repos/[[...slug]]/page-e5fdcbd6e95a0351.js +0 -1
  41. package/public/_next/static/chunks/framework-cd8a7ea2c29e04e3.js +0 -1
  42. package/public/_next/static/chunks/main-75f848718c47ce7f.js +0 -1
  43. package/public/_next/static/chunks/main-app-6713e5440a400899.js +0 -1
  44. package/public/_next/static/chunks/pages/_app-cbca4c5e73429fb7.js +0 -1
  45. package/public/_next/static/chunks/webpack-2f0ed87fd33e9d1c.js +0 -1
  46. package/public/_next/static/css/49e7ab4429e483d4.css +0 -1
  47. /package/public/_next/static/{qkaM-_kJMthFE7DbnSDij → kWvBK3M_UdFRGPFgNFXnS}/_ssgManifest.js +0 -0
@@ -1,5 +1,5 @@
1
1
  {
2
- "id": "87f88294-7ce5-4a9c-9fd8-15117f103630",
2
+ "id": "f4dea6ea-1724-4f5b-9fbc-e4878737b39d",
3
3
  "prevId": "00000000-0000-0000-0000-000000000000",
4
4
  "version": "7",
5
5
  "dialect": "postgresql",
@@ -135,8 +135,8 @@
135
135
  "checkConstraints": {},
136
136
  "isRLSEnabled": false
137
137
  },
138
- "public.insights": {
139
- "name": "insights",
138
+ "public.database_connections": {
139
+ "name": "database_connections",
140
140
  "schema": "",
141
141
  "columns": {
142
142
  "id": {
@@ -146,51 +146,135 @@
146
146
  "notNull": true,
147
147
  "default": "gen_random_uuid()"
148
148
  },
149
- "repo_id": {
150
- "name": "repo_id",
149
+ "analysis_id": {
150
+ "name": "analysis_id",
151
151
  "type": "uuid",
152
152
  "primaryKey": false,
153
153
  "notNull": true
154
154
  },
155
- "analysis_id": {
156
- "name": "analysis_id",
155
+ "service_id": {
156
+ "name": "service_id",
157
157
  "type": "uuid",
158
158
  "primaryKey": false,
159
159
  "notNull": true
160
160
  },
161
- "type": {
162
- "name": "type",
161
+ "database_id": {
162
+ "name": "database_id",
163
+ "type": "uuid",
164
+ "primaryKey": false,
165
+ "notNull": true
166
+ },
167
+ "driver": {
168
+ "name": "driver",
163
169
  "type": "text",
164
170
  "primaryKey": false,
165
171
  "notNull": true
172
+ }
173
+ },
174
+ "indexes": {},
175
+ "foreignKeys": {
176
+ "database_connections_analysis_id_analyses_id_fk": {
177
+ "name": "database_connections_analysis_id_analyses_id_fk",
178
+ "tableFrom": "database_connections",
179
+ "tableTo": "analyses",
180
+ "columnsFrom": [
181
+ "analysis_id"
182
+ ],
183
+ "columnsTo": [
184
+ "id"
185
+ ],
186
+ "onDelete": "cascade",
187
+ "onUpdate": "no action"
166
188
  },
167
- "title": {
168
- "name": "title",
189
+ "database_connections_service_id_services_id_fk": {
190
+ "name": "database_connections_service_id_services_id_fk",
191
+ "tableFrom": "database_connections",
192
+ "tableTo": "services",
193
+ "columnsFrom": [
194
+ "service_id"
195
+ ],
196
+ "columnsTo": [
197
+ "id"
198
+ ],
199
+ "onDelete": "cascade",
200
+ "onUpdate": "no action"
201
+ },
202
+ "database_connections_database_id_databases_id_fk": {
203
+ "name": "database_connections_database_id_databases_id_fk",
204
+ "tableFrom": "database_connections",
205
+ "tableTo": "databases",
206
+ "columnsFrom": [
207
+ "database_id"
208
+ ],
209
+ "columnsTo": [
210
+ "id"
211
+ ],
212
+ "onDelete": "cascade",
213
+ "onUpdate": "no action"
214
+ }
215
+ },
216
+ "compositePrimaryKeys": {},
217
+ "uniqueConstraints": {},
218
+ "policies": {},
219
+ "checkConstraints": {},
220
+ "isRLSEnabled": false
221
+ },
222
+ "public.databases": {
223
+ "name": "databases",
224
+ "schema": "",
225
+ "columns": {
226
+ "id": {
227
+ "name": "id",
228
+ "type": "uuid",
229
+ "primaryKey": true,
230
+ "notNull": true,
231
+ "default": "gen_random_uuid()"
232
+ },
233
+ "analysis_id": {
234
+ "name": "analysis_id",
235
+ "type": "uuid",
236
+ "primaryKey": false,
237
+ "notNull": true
238
+ },
239
+ "name": {
240
+ "name": "name",
169
241
  "type": "text",
170
242
  "primaryKey": false,
171
243
  "notNull": true
172
244
  },
173
- "content": {
174
- "name": "content",
245
+ "type": {
246
+ "name": "type",
175
247
  "type": "text",
176
248
  "primaryKey": false,
177
249
  "notNull": true
178
250
  },
179
- "severity": {
180
- "name": "severity",
251
+ "driver": {
252
+ "name": "driver",
181
253
  "type": "text",
182
254
  "primaryKey": false,
183
255
  "notNull": true
184
256
  },
185
- "target_service_id": {
186
- "name": "target_service_id",
187
- "type": "uuid",
257
+ "connection_config": {
258
+ "name": "connection_config",
259
+ "type": "jsonb",
188
260
  "primaryKey": false,
189
261
  "notNull": false
190
262
  },
191
- "fix_prompt": {
192
- "name": "fix_prompt",
193
- "type": "text",
263
+ "tables": {
264
+ "name": "tables",
265
+ "type": "jsonb",
266
+ "primaryKey": false,
267
+ "notNull": false
268
+ },
269
+ "db_relations": {
270
+ "name": "db_relations",
271
+ "type": "jsonb",
272
+ "primaryKey": false,
273
+ "notNull": false
274
+ },
275
+ "connected_services": {
276
+ "name": "connected_services",
277
+ "type": "jsonb",
194
278
  "primaryKey": false,
195
279
  "notNull": false
196
280
  },
@@ -204,12 +288,753 @@
204
288
  },
205
289
  "indexes": {},
206
290
  "foreignKeys": {
207
- "insights_repo_id_repos_id_fk": {
208
- "name": "insights_repo_id_repos_id_fk",
209
- "tableFrom": "insights",
210
- "tableTo": "repos",
291
+ "databases_analysis_id_analyses_id_fk": {
292
+ "name": "databases_analysis_id_analyses_id_fk",
293
+ "tableFrom": "databases",
294
+ "tableTo": "analyses",
295
+ "columnsFrom": [
296
+ "analysis_id"
297
+ ],
298
+ "columnsTo": [
299
+ "id"
300
+ ],
301
+ "onDelete": "cascade",
302
+ "onUpdate": "no action"
303
+ }
304
+ },
305
+ "compositePrimaryKeys": {},
306
+ "uniqueConstraints": {},
307
+ "policies": {},
308
+ "checkConstraints": {},
309
+ "isRLSEnabled": false
310
+ },
311
+ "public.diff_checks": {
312
+ "name": "diff_checks",
313
+ "schema": "",
314
+ "columns": {
315
+ "id": {
316
+ "name": "id",
317
+ "type": "uuid",
318
+ "primaryKey": true,
319
+ "notNull": true,
320
+ "default": "gen_random_uuid()"
321
+ },
322
+ "repo_id": {
323
+ "name": "repo_id",
324
+ "type": "uuid",
325
+ "primaryKey": false,
326
+ "notNull": true
327
+ },
328
+ "analysis_id": {
329
+ "name": "analysis_id",
330
+ "type": "uuid",
331
+ "primaryKey": false,
332
+ "notNull": true
333
+ },
334
+ "changed_files": {
335
+ "name": "changed_files",
336
+ "type": "jsonb",
337
+ "primaryKey": false,
338
+ "notNull": true
339
+ },
340
+ "resolved_insight_ids": {
341
+ "name": "resolved_insight_ids",
342
+ "type": "jsonb",
343
+ "primaryKey": false,
344
+ "notNull": true
345
+ },
346
+ "new_insights": {
347
+ "name": "new_insights",
348
+ "type": "jsonb",
349
+ "primaryKey": false,
350
+ "notNull": true
351
+ },
352
+ "affected_node_ids": {
353
+ "name": "affected_node_ids",
354
+ "type": "jsonb",
355
+ "primaryKey": false,
356
+ "notNull": true
357
+ },
358
+ "summary": {
359
+ "name": "summary",
360
+ "type": "jsonb",
361
+ "primaryKey": false,
362
+ "notNull": true
363
+ },
364
+ "created_at": {
365
+ "name": "created_at",
366
+ "type": "timestamp",
367
+ "primaryKey": false,
368
+ "notNull": true,
369
+ "default": "now()"
370
+ }
371
+ },
372
+ "indexes": {},
373
+ "foreignKeys": {
374
+ "diff_checks_repo_id_repos_id_fk": {
375
+ "name": "diff_checks_repo_id_repos_id_fk",
376
+ "tableFrom": "diff_checks",
377
+ "tableTo": "repos",
378
+ "columnsFrom": [
379
+ "repo_id"
380
+ ],
381
+ "columnsTo": [
382
+ "id"
383
+ ],
384
+ "onDelete": "cascade",
385
+ "onUpdate": "no action"
386
+ },
387
+ "diff_checks_analysis_id_analyses_id_fk": {
388
+ "name": "diff_checks_analysis_id_analyses_id_fk",
389
+ "tableFrom": "diff_checks",
390
+ "tableTo": "analyses",
391
+ "columnsFrom": [
392
+ "analysis_id"
393
+ ],
394
+ "columnsTo": [
395
+ "id"
396
+ ],
397
+ "onDelete": "cascade",
398
+ "onUpdate": "no action"
399
+ }
400
+ },
401
+ "compositePrimaryKeys": {},
402
+ "uniqueConstraints": {},
403
+ "policies": {},
404
+ "checkConstraints": {},
405
+ "isRLSEnabled": false
406
+ },
407
+ "public.layer_dependencies": {
408
+ "name": "layer_dependencies",
409
+ "schema": "",
410
+ "columns": {
411
+ "id": {
412
+ "name": "id",
413
+ "type": "uuid",
414
+ "primaryKey": true,
415
+ "notNull": true,
416
+ "default": "gen_random_uuid()"
417
+ },
418
+ "analysis_id": {
419
+ "name": "analysis_id",
420
+ "type": "uuid",
421
+ "primaryKey": false,
422
+ "notNull": true
423
+ },
424
+ "source_service_name": {
425
+ "name": "source_service_name",
426
+ "type": "text",
427
+ "primaryKey": false,
428
+ "notNull": true
429
+ },
430
+ "source_layer": {
431
+ "name": "source_layer",
432
+ "type": "text",
433
+ "primaryKey": false,
434
+ "notNull": true
435
+ },
436
+ "target_service_name": {
437
+ "name": "target_service_name",
438
+ "type": "text",
439
+ "primaryKey": false,
440
+ "notNull": true
441
+ },
442
+ "target_layer": {
443
+ "name": "target_layer",
444
+ "type": "text",
445
+ "primaryKey": false,
446
+ "notNull": true
447
+ },
448
+ "dependency_count": {
449
+ "name": "dependency_count",
450
+ "type": "integer",
451
+ "primaryKey": false,
452
+ "notNull": true
453
+ },
454
+ "is_violation": {
455
+ "name": "is_violation",
456
+ "type": "boolean",
457
+ "primaryKey": false,
458
+ "notNull": true,
459
+ "default": false
460
+ },
461
+ "violation_reason": {
462
+ "name": "violation_reason",
463
+ "type": "text",
464
+ "primaryKey": false,
465
+ "notNull": false
466
+ }
467
+ },
468
+ "indexes": {},
469
+ "foreignKeys": {
470
+ "layer_dependencies_analysis_id_analyses_id_fk": {
471
+ "name": "layer_dependencies_analysis_id_analyses_id_fk",
472
+ "tableFrom": "layer_dependencies",
473
+ "tableTo": "analyses",
474
+ "columnsFrom": [
475
+ "analysis_id"
476
+ ],
477
+ "columnsTo": [
478
+ "id"
479
+ ],
480
+ "onDelete": "cascade",
481
+ "onUpdate": "no action"
482
+ }
483
+ },
484
+ "compositePrimaryKeys": {},
485
+ "uniqueConstraints": {},
486
+ "policies": {},
487
+ "checkConstraints": {},
488
+ "isRLSEnabled": false
489
+ },
490
+ "public.layers": {
491
+ "name": "layers",
492
+ "schema": "",
493
+ "columns": {
494
+ "id": {
495
+ "name": "id",
496
+ "type": "uuid",
497
+ "primaryKey": true,
498
+ "notNull": true,
499
+ "default": "gen_random_uuid()"
500
+ },
501
+ "analysis_id": {
502
+ "name": "analysis_id",
503
+ "type": "uuid",
504
+ "primaryKey": false,
505
+ "notNull": true
506
+ },
507
+ "service_id": {
508
+ "name": "service_id",
509
+ "type": "uuid",
510
+ "primaryKey": false,
511
+ "notNull": true
512
+ },
513
+ "service_name": {
514
+ "name": "service_name",
515
+ "type": "text",
516
+ "primaryKey": false,
517
+ "notNull": true
518
+ },
519
+ "layer": {
520
+ "name": "layer",
521
+ "type": "text",
522
+ "primaryKey": false,
523
+ "notNull": true
524
+ },
525
+ "file_count": {
526
+ "name": "file_count",
527
+ "type": "integer",
528
+ "primaryKey": false,
529
+ "notNull": true
530
+ },
531
+ "file_paths": {
532
+ "name": "file_paths",
533
+ "type": "jsonb",
534
+ "primaryKey": false,
535
+ "notNull": true
536
+ },
537
+ "confidence": {
538
+ "name": "confidence",
539
+ "type": "integer",
540
+ "primaryKey": false,
541
+ "notNull": true
542
+ },
543
+ "evidence": {
544
+ "name": "evidence",
545
+ "type": "jsonb",
546
+ "primaryKey": false,
547
+ "notNull": true
548
+ }
549
+ },
550
+ "indexes": {},
551
+ "foreignKeys": {
552
+ "layers_analysis_id_analyses_id_fk": {
553
+ "name": "layers_analysis_id_analyses_id_fk",
554
+ "tableFrom": "layers",
555
+ "tableTo": "analyses",
556
+ "columnsFrom": [
557
+ "analysis_id"
558
+ ],
559
+ "columnsTo": [
560
+ "id"
561
+ ],
562
+ "onDelete": "cascade",
563
+ "onUpdate": "no action"
564
+ },
565
+ "layers_service_id_services_id_fk": {
566
+ "name": "layers_service_id_services_id_fk",
567
+ "tableFrom": "layers",
568
+ "tableTo": "services",
569
+ "columnsFrom": [
570
+ "service_id"
571
+ ],
572
+ "columnsTo": [
573
+ "id"
574
+ ],
575
+ "onDelete": "cascade",
576
+ "onUpdate": "no action"
577
+ }
578
+ },
579
+ "compositePrimaryKeys": {},
580
+ "uniqueConstraints": {},
581
+ "policies": {},
582
+ "checkConstraints": {},
583
+ "isRLSEnabled": false
584
+ },
585
+ "public.messages": {
586
+ "name": "messages",
587
+ "schema": "",
588
+ "columns": {
589
+ "id": {
590
+ "name": "id",
591
+ "type": "uuid",
592
+ "primaryKey": true,
593
+ "notNull": true,
594
+ "default": "gen_random_uuid()"
595
+ },
596
+ "conversation_id": {
597
+ "name": "conversation_id",
598
+ "type": "uuid",
599
+ "primaryKey": false,
600
+ "notNull": true
601
+ },
602
+ "role": {
603
+ "name": "role",
604
+ "type": "text",
605
+ "primaryKey": false,
606
+ "notNull": true
607
+ },
608
+ "content": {
609
+ "name": "content",
610
+ "type": "text",
611
+ "primaryKey": false,
612
+ "notNull": true
613
+ },
614
+ "node_context": {
615
+ "name": "node_context",
616
+ "type": "jsonb",
617
+ "primaryKey": false,
618
+ "notNull": false
619
+ },
620
+ "created_at": {
621
+ "name": "created_at",
622
+ "type": "timestamp",
623
+ "primaryKey": false,
624
+ "notNull": true,
625
+ "default": "now()"
626
+ }
627
+ },
628
+ "indexes": {},
629
+ "foreignKeys": {
630
+ "messages_conversation_id_conversations_id_fk": {
631
+ "name": "messages_conversation_id_conversations_id_fk",
632
+ "tableFrom": "messages",
633
+ "tableTo": "conversations",
634
+ "columnsFrom": [
635
+ "conversation_id"
636
+ ],
637
+ "columnsTo": [
638
+ "id"
639
+ ],
640
+ "onDelete": "cascade",
641
+ "onUpdate": "no action"
642
+ }
643
+ },
644
+ "compositePrimaryKeys": {},
645
+ "uniqueConstraints": {},
646
+ "policies": {},
647
+ "checkConstraints": {},
648
+ "isRLSEnabled": false
649
+ },
650
+ "public.method_dependencies": {
651
+ "name": "method_dependencies",
652
+ "schema": "",
653
+ "columns": {
654
+ "id": {
655
+ "name": "id",
656
+ "type": "uuid",
657
+ "primaryKey": true,
658
+ "notNull": true,
659
+ "default": "gen_random_uuid()"
660
+ },
661
+ "analysis_id": {
662
+ "name": "analysis_id",
663
+ "type": "uuid",
664
+ "primaryKey": false,
665
+ "notNull": true
666
+ },
667
+ "source_method_id": {
668
+ "name": "source_method_id",
669
+ "type": "uuid",
670
+ "primaryKey": false,
671
+ "notNull": true
672
+ },
673
+ "target_method_id": {
674
+ "name": "target_method_id",
675
+ "type": "uuid",
676
+ "primaryKey": false,
677
+ "notNull": true
678
+ },
679
+ "call_count": {
680
+ "name": "call_count",
681
+ "type": "integer",
682
+ "primaryKey": false,
683
+ "notNull": true,
684
+ "default": 1
685
+ }
686
+ },
687
+ "indexes": {},
688
+ "foreignKeys": {
689
+ "method_dependencies_analysis_id_analyses_id_fk": {
690
+ "name": "method_dependencies_analysis_id_analyses_id_fk",
691
+ "tableFrom": "method_dependencies",
692
+ "tableTo": "analyses",
693
+ "columnsFrom": [
694
+ "analysis_id"
695
+ ],
696
+ "columnsTo": [
697
+ "id"
698
+ ],
699
+ "onDelete": "cascade",
700
+ "onUpdate": "no action"
701
+ },
702
+ "method_dependencies_source_method_id_methods_id_fk": {
703
+ "name": "method_dependencies_source_method_id_methods_id_fk",
704
+ "tableFrom": "method_dependencies",
705
+ "tableTo": "methods",
706
+ "columnsFrom": [
707
+ "source_method_id"
708
+ ],
709
+ "columnsTo": [
710
+ "id"
711
+ ],
712
+ "onDelete": "cascade",
713
+ "onUpdate": "no action"
714
+ },
715
+ "method_dependencies_target_method_id_methods_id_fk": {
716
+ "name": "method_dependencies_target_method_id_methods_id_fk",
717
+ "tableFrom": "method_dependencies",
718
+ "tableTo": "methods",
719
+ "columnsFrom": [
720
+ "target_method_id"
721
+ ],
722
+ "columnsTo": [
723
+ "id"
724
+ ],
725
+ "onDelete": "cascade",
726
+ "onUpdate": "no action"
727
+ }
728
+ },
729
+ "compositePrimaryKeys": {},
730
+ "uniqueConstraints": {},
731
+ "policies": {},
732
+ "checkConstraints": {},
733
+ "isRLSEnabled": false
734
+ },
735
+ "public.methods": {
736
+ "name": "methods",
737
+ "schema": "",
738
+ "columns": {
739
+ "id": {
740
+ "name": "id",
741
+ "type": "uuid",
742
+ "primaryKey": true,
743
+ "notNull": true,
744
+ "default": "gen_random_uuid()"
745
+ },
746
+ "analysis_id": {
747
+ "name": "analysis_id",
748
+ "type": "uuid",
749
+ "primaryKey": false,
750
+ "notNull": true
751
+ },
752
+ "module_id": {
753
+ "name": "module_id",
754
+ "type": "uuid",
755
+ "primaryKey": false,
756
+ "notNull": true
757
+ },
758
+ "name": {
759
+ "name": "name",
760
+ "type": "text",
761
+ "primaryKey": false,
762
+ "notNull": true
763
+ },
764
+ "signature": {
765
+ "name": "signature",
766
+ "type": "text",
767
+ "primaryKey": false,
768
+ "notNull": true
769
+ },
770
+ "param_count": {
771
+ "name": "param_count",
772
+ "type": "integer",
773
+ "primaryKey": false,
774
+ "notNull": true,
775
+ "default": 0
776
+ },
777
+ "return_type": {
778
+ "name": "return_type",
779
+ "type": "text",
780
+ "primaryKey": false,
781
+ "notNull": false
782
+ },
783
+ "is_async": {
784
+ "name": "is_async",
785
+ "type": "boolean",
786
+ "primaryKey": false,
787
+ "notNull": true,
788
+ "default": false
789
+ },
790
+ "is_exported": {
791
+ "name": "is_exported",
792
+ "type": "boolean",
793
+ "primaryKey": false,
794
+ "notNull": true,
795
+ "default": false
796
+ },
797
+ "line_count": {
798
+ "name": "line_count",
799
+ "type": "integer",
800
+ "primaryKey": false,
801
+ "notNull": false
802
+ },
803
+ "statement_count": {
804
+ "name": "statement_count",
805
+ "type": "integer",
806
+ "primaryKey": false,
807
+ "notNull": false
808
+ },
809
+ "max_nesting_depth": {
810
+ "name": "max_nesting_depth",
811
+ "type": "integer",
812
+ "primaryKey": false,
813
+ "notNull": false
814
+ }
815
+ },
816
+ "indexes": {},
817
+ "foreignKeys": {
818
+ "methods_analysis_id_analyses_id_fk": {
819
+ "name": "methods_analysis_id_analyses_id_fk",
820
+ "tableFrom": "methods",
821
+ "tableTo": "analyses",
822
+ "columnsFrom": [
823
+ "analysis_id"
824
+ ],
825
+ "columnsTo": [
826
+ "id"
827
+ ],
828
+ "onDelete": "cascade",
829
+ "onUpdate": "no action"
830
+ },
831
+ "methods_module_id_modules_id_fk": {
832
+ "name": "methods_module_id_modules_id_fk",
833
+ "tableFrom": "methods",
834
+ "tableTo": "modules",
835
+ "columnsFrom": [
836
+ "module_id"
837
+ ],
838
+ "columnsTo": [
839
+ "id"
840
+ ],
841
+ "onDelete": "cascade",
842
+ "onUpdate": "no action"
843
+ }
844
+ },
845
+ "compositePrimaryKeys": {},
846
+ "uniqueConstraints": {},
847
+ "policies": {},
848
+ "checkConstraints": {},
849
+ "isRLSEnabled": false
850
+ },
851
+ "public.module_dependencies": {
852
+ "name": "module_dependencies",
853
+ "schema": "",
854
+ "columns": {
855
+ "id": {
856
+ "name": "id",
857
+ "type": "uuid",
858
+ "primaryKey": true,
859
+ "notNull": true,
860
+ "default": "gen_random_uuid()"
861
+ },
862
+ "analysis_id": {
863
+ "name": "analysis_id",
864
+ "type": "uuid",
865
+ "primaryKey": false,
866
+ "notNull": true
867
+ },
868
+ "source_module_id": {
869
+ "name": "source_module_id",
870
+ "type": "uuid",
871
+ "primaryKey": false,
872
+ "notNull": true
873
+ },
874
+ "target_module_id": {
875
+ "name": "target_module_id",
876
+ "type": "uuid",
877
+ "primaryKey": false,
878
+ "notNull": true
879
+ },
880
+ "imported_names": {
881
+ "name": "imported_names",
882
+ "type": "jsonb",
883
+ "primaryKey": false,
884
+ "notNull": true
885
+ },
886
+ "dependency_count": {
887
+ "name": "dependency_count",
888
+ "type": "integer",
889
+ "primaryKey": false,
890
+ "notNull": true,
891
+ "default": 1
892
+ }
893
+ },
894
+ "indexes": {},
895
+ "foreignKeys": {
896
+ "module_dependencies_analysis_id_analyses_id_fk": {
897
+ "name": "module_dependencies_analysis_id_analyses_id_fk",
898
+ "tableFrom": "module_dependencies",
899
+ "tableTo": "analyses",
900
+ "columnsFrom": [
901
+ "analysis_id"
902
+ ],
903
+ "columnsTo": [
904
+ "id"
905
+ ],
906
+ "onDelete": "cascade",
907
+ "onUpdate": "no action"
908
+ },
909
+ "module_dependencies_source_module_id_modules_id_fk": {
910
+ "name": "module_dependencies_source_module_id_modules_id_fk",
911
+ "tableFrom": "module_dependencies",
912
+ "tableTo": "modules",
913
+ "columnsFrom": [
914
+ "source_module_id"
915
+ ],
916
+ "columnsTo": [
917
+ "id"
918
+ ],
919
+ "onDelete": "cascade",
920
+ "onUpdate": "no action"
921
+ },
922
+ "module_dependencies_target_module_id_modules_id_fk": {
923
+ "name": "module_dependencies_target_module_id_modules_id_fk",
924
+ "tableFrom": "module_dependencies",
925
+ "tableTo": "modules",
926
+ "columnsFrom": [
927
+ "target_module_id"
928
+ ],
929
+ "columnsTo": [
930
+ "id"
931
+ ],
932
+ "onDelete": "cascade",
933
+ "onUpdate": "no action"
934
+ }
935
+ },
936
+ "compositePrimaryKeys": {},
937
+ "uniqueConstraints": {},
938
+ "policies": {},
939
+ "checkConstraints": {},
940
+ "isRLSEnabled": false
941
+ },
942
+ "public.modules": {
943
+ "name": "modules",
944
+ "schema": "",
945
+ "columns": {
946
+ "id": {
947
+ "name": "id",
948
+ "type": "uuid",
949
+ "primaryKey": true,
950
+ "notNull": true,
951
+ "default": "gen_random_uuid()"
952
+ },
953
+ "analysis_id": {
954
+ "name": "analysis_id",
955
+ "type": "uuid",
956
+ "primaryKey": false,
957
+ "notNull": true
958
+ },
959
+ "layer_id": {
960
+ "name": "layer_id",
961
+ "type": "uuid",
962
+ "primaryKey": false,
963
+ "notNull": true
964
+ },
965
+ "service_id": {
966
+ "name": "service_id",
967
+ "type": "uuid",
968
+ "primaryKey": false,
969
+ "notNull": true
970
+ },
971
+ "name": {
972
+ "name": "name",
973
+ "type": "text",
974
+ "primaryKey": false,
975
+ "notNull": true
976
+ },
977
+ "kind": {
978
+ "name": "kind",
979
+ "type": "text",
980
+ "primaryKey": false,
981
+ "notNull": true
982
+ },
983
+ "file_path": {
984
+ "name": "file_path",
985
+ "type": "text",
986
+ "primaryKey": false,
987
+ "notNull": true
988
+ },
989
+ "method_count": {
990
+ "name": "method_count",
991
+ "type": "integer",
992
+ "primaryKey": false,
993
+ "notNull": true,
994
+ "default": 0
995
+ },
996
+ "property_count": {
997
+ "name": "property_count",
998
+ "type": "integer",
999
+ "primaryKey": false,
1000
+ "notNull": true,
1001
+ "default": 0
1002
+ },
1003
+ "import_count": {
1004
+ "name": "import_count",
1005
+ "type": "integer",
1006
+ "primaryKey": false,
1007
+ "notNull": true,
1008
+ "default": 0
1009
+ },
1010
+ "export_count": {
1011
+ "name": "export_count",
1012
+ "type": "integer",
1013
+ "primaryKey": false,
1014
+ "notNull": true,
1015
+ "default": 0
1016
+ },
1017
+ "super_class": {
1018
+ "name": "super_class",
1019
+ "type": "text",
1020
+ "primaryKey": false,
1021
+ "notNull": false
1022
+ },
1023
+ "line_count": {
1024
+ "name": "line_count",
1025
+ "type": "integer",
1026
+ "primaryKey": false,
1027
+ "notNull": false
1028
+ }
1029
+ },
1030
+ "indexes": {},
1031
+ "foreignKeys": {
1032
+ "modules_analysis_id_analyses_id_fk": {
1033
+ "name": "modules_analysis_id_analyses_id_fk",
1034
+ "tableFrom": "modules",
1035
+ "tableTo": "analyses",
211
1036
  "columnsFrom": [
212
- "repo_id"
1037
+ "analysis_id"
213
1038
  ],
214
1039
  "columnsTo": [
215
1040
  "id"
@@ -217,12 +1042,12 @@
217
1042
  "onDelete": "cascade",
218
1043
  "onUpdate": "no action"
219
1044
  },
220
- "insights_analysis_id_analyses_id_fk": {
221
- "name": "insights_analysis_id_analyses_id_fk",
222
- "tableFrom": "insights",
223
- "tableTo": "analyses",
1045
+ "modules_layer_id_layers_id_fk": {
1046
+ "name": "modules_layer_id_layers_id_fk",
1047
+ "tableFrom": "modules",
1048
+ "tableTo": "layers",
224
1049
  "columnsFrom": [
225
- "analysis_id"
1050
+ "layer_id"
226
1051
  ],
227
1052
  "columnsTo": [
228
1053
  "id"
@@ -230,17 +1055,17 @@
230
1055
  "onDelete": "cascade",
231
1056
  "onUpdate": "no action"
232
1057
  },
233
- "insights_target_service_id_services_id_fk": {
234
- "name": "insights_target_service_id_services_id_fk",
235
- "tableFrom": "insights",
1058
+ "modules_service_id_services_id_fk": {
1059
+ "name": "modules_service_id_services_id_fk",
1060
+ "tableFrom": "modules",
236
1061
  "tableTo": "services",
237
1062
  "columnsFrom": [
238
- "target_service_id"
1063
+ "service_id"
239
1064
  ],
240
1065
  "columnsTo": [
241
1066
  "id"
242
1067
  ],
243
- "onDelete": "set null",
1068
+ "onDelete": "cascade",
244
1069
  "onUpdate": "no action"
245
1070
  }
246
1071
  },
@@ -250,8 +1075,8 @@
250
1075
  "checkConstraints": {},
251
1076
  "isRLSEnabled": false
252
1077
  },
253
- "public.messages": {
254
- "name": "messages",
1078
+ "public.repos": {
1079
+ "name": "repos",
255
1080
  "schema": "",
256
1081
  "columns": {
257
1082
  "id": {
@@ -261,27 +1086,21 @@
261
1086
  "notNull": true,
262
1087
  "default": "gen_random_uuid()"
263
1088
  },
264
- "conversation_id": {
265
- "name": "conversation_id",
266
- "type": "uuid",
267
- "primaryKey": false,
268
- "notNull": true
269
- },
270
- "role": {
271
- "name": "role",
1089
+ "name": {
1090
+ "name": "name",
272
1091
  "type": "text",
273
1092
  "primaryKey": false,
274
1093
  "notNull": true
275
1094
  },
276
- "content": {
277
- "name": "content",
1095
+ "path": {
1096
+ "name": "path",
278
1097
  "type": "text",
279
1098
  "primaryKey": false,
280
1099
  "notNull": true
281
1100
  },
282
- "node_context": {
283
- "name": "node_context",
284
- "type": "jsonb",
1101
+ "last_analyzed_at": {
1102
+ "name": "last_analyzed_at",
1103
+ "type": "timestamp",
285
1104
  "primaryKey": false,
286
1105
  "notNull": false
287
1106
  },
@@ -291,40 +1110,46 @@
291
1110
  "primaryKey": false,
292
1111
  "notNull": true,
293
1112
  "default": "now()"
1113
+ },
1114
+ "updated_at": {
1115
+ "name": "updated_at",
1116
+ "type": "timestamp",
1117
+ "primaryKey": false,
1118
+ "notNull": true,
1119
+ "default": "now()"
294
1120
  }
295
1121
  },
296
1122
  "indexes": {},
297
- "foreignKeys": {
298
- "messages_conversation_id_conversations_id_fk": {
299
- "name": "messages_conversation_id_conversations_id_fk",
300
- "tableFrom": "messages",
301
- "tableTo": "conversations",
302
- "columnsFrom": [
303
- "conversation_id"
304
- ],
305
- "columnsTo": [
306
- "id"
307
- ],
308
- "onDelete": "cascade",
309
- "onUpdate": "no action"
1123
+ "foreignKeys": {},
1124
+ "compositePrimaryKeys": {},
1125
+ "uniqueConstraints": {
1126
+ "repos_path_unique": {
1127
+ "name": "repos_path_unique",
1128
+ "nullsNotDistinct": false,
1129
+ "columns": [
1130
+ "path"
1131
+ ]
310
1132
  }
311
1133
  },
312
- "compositePrimaryKeys": {},
313
- "uniqueConstraints": {},
314
1134
  "policies": {},
315
1135
  "checkConstraints": {},
316
1136
  "isRLSEnabled": false
317
1137
  },
318
- "public.repos": {
319
- "name": "repos",
1138
+ "public.rules": {
1139
+ "name": "rules",
320
1140
  "schema": "",
321
1141
  "columns": {
322
- "id": {
323
- "name": "id",
324
- "type": "uuid",
1142
+ "key": {
1143
+ "name": "key",
1144
+ "type": "text",
325
1145
  "primaryKey": true,
326
- "notNull": true,
327
- "default": "gen_random_uuid()"
1146
+ "notNull": true
1147
+ },
1148
+ "category": {
1149
+ "name": "category",
1150
+ "type": "text",
1151
+ "primaryKey": false,
1152
+ "notNull": true
328
1153
  },
329
1154
  "name": {
330
1155
  "name": "name",
@@ -332,18 +1157,37 @@
332
1157
  "primaryKey": false,
333
1158
  "notNull": true
334
1159
  },
335
- "path": {
336
- "name": "path",
1160
+ "description": {
1161
+ "name": "description",
337
1162
  "type": "text",
338
1163
  "primaryKey": false,
339
1164
  "notNull": true
340
1165
  },
341
- "last_analyzed_at": {
342
- "name": "last_analyzed_at",
343
- "type": "timestamp",
1166
+ "prompt": {
1167
+ "name": "prompt",
1168
+ "type": "text",
344
1169
  "primaryKey": false,
345
1170
  "notNull": false
346
1171
  },
1172
+ "enabled": {
1173
+ "name": "enabled",
1174
+ "type": "boolean",
1175
+ "primaryKey": false,
1176
+ "notNull": true,
1177
+ "default": true
1178
+ },
1179
+ "severity": {
1180
+ "name": "severity",
1181
+ "type": "text",
1182
+ "primaryKey": false,
1183
+ "notNull": true
1184
+ },
1185
+ "type": {
1186
+ "name": "type",
1187
+ "type": "text",
1188
+ "primaryKey": false,
1189
+ "notNull": true
1190
+ },
347
1191
  "created_at": {
348
1192
  "name": "created_at",
349
1193
  "type": "timestamp",
@@ -362,15 +1206,7 @@
362
1206
  "indexes": {},
363
1207
  "foreignKeys": {},
364
1208
  "compositePrimaryKeys": {},
365
- "uniqueConstraints": {
366
- "repos_path_unique": {
367
- "name": "repos_path_unique",
368
- "nullsNotDistinct": false,
369
- "columns": [
370
- "path"
371
- ]
372
- }
373
- },
1209
+ "uniqueConstraints": {},
374
1210
  "policies": {},
375
1211
  "checkConstraints": {},
376
1212
  "isRLSEnabled": false
@@ -553,6 +1389,184 @@
553
1389
  "policies": {},
554
1390
  "checkConstraints": {},
555
1391
  "isRLSEnabled": false
1392
+ },
1393
+ "public.violations": {
1394
+ "name": "violations",
1395
+ "schema": "",
1396
+ "columns": {
1397
+ "id": {
1398
+ "name": "id",
1399
+ "type": "uuid",
1400
+ "primaryKey": true,
1401
+ "notNull": true,
1402
+ "default": "gen_random_uuid()"
1403
+ },
1404
+ "repo_id": {
1405
+ "name": "repo_id",
1406
+ "type": "uuid",
1407
+ "primaryKey": false,
1408
+ "notNull": true
1409
+ },
1410
+ "analysis_id": {
1411
+ "name": "analysis_id",
1412
+ "type": "uuid",
1413
+ "primaryKey": false,
1414
+ "notNull": true
1415
+ },
1416
+ "type": {
1417
+ "name": "type",
1418
+ "type": "text",
1419
+ "primaryKey": false,
1420
+ "notNull": true
1421
+ },
1422
+ "title": {
1423
+ "name": "title",
1424
+ "type": "text",
1425
+ "primaryKey": false,
1426
+ "notNull": true
1427
+ },
1428
+ "content": {
1429
+ "name": "content",
1430
+ "type": "text",
1431
+ "primaryKey": false,
1432
+ "notNull": true
1433
+ },
1434
+ "severity": {
1435
+ "name": "severity",
1436
+ "type": "text",
1437
+ "primaryKey": false,
1438
+ "notNull": true
1439
+ },
1440
+ "target_service_id": {
1441
+ "name": "target_service_id",
1442
+ "type": "uuid",
1443
+ "primaryKey": false,
1444
+ "notNull": false
1445
+ },
1446
+ "target_database_id": {
1447
+ "name": "target_database_id",
1448
+ "type": "uuid",
1449
+ "primaryKey": false,
1450
+ "notNull": false
1451
+ },
1452
+ "target_module_id": {
1453
+ "name": "target_module_id",
1454
+ "type": "uuid",
1455
+ "primaryKey": false,
1456
+ "notNull": false
1457
+ },
1458
+ "target_method_id": {
1459
+ "name": "target_method_id",
1460
+ "type": "uuid",
1461
+ "primaryKey": false,
1462
+ "notNull": false
1463
+ },
1464
+ "target_table": {
1465
+ "name": "target_table",
1466
+ "type": "text",
1467
+ "primaryKey": false,
1468
+ "notNull": false
1469
+ },
1470
+ "fix_prompt": {
1471
+ "name": "fix_prompt",
1472
+ "type": "text",
1473
+ "primaryKey": false,
1474
+ "notNull": false
1475
+ },
1476
+ "created_at": {
1477
+ "name": "created_at",
1478
+ "type": "timestamp",
1479
+ "primaryKey": false,
1480
+ "notNull": true,
1481
+ "default": "now()"
1482
+ }
1483
+ },
1484
+ "indexes": {},
1485
+ "foreignKeys": {
1486
+ "violations_repo_id_repos_id_fk": {
1487
+ "name": "violations_repo_id_repos_id_fk",
1488
+ "tableFrom": "violations",
1489
+ "tableTo": "repos",
1490
+ "columnsFrom": [
1491
+ "repo_id"
1492
+ ],
1493
+ "columnsTo": [
1494
+ "id"
1495
+ ],
1496
+ "onDelete": "cascade",
1497
+ "onUpdate": "no action"
1498
+ },
1499
+ "violations_analysis_id_analyses_id_fk": {
1500
+ "name": "violations_analysis_id_analyses_id_fk",
1501
+ "tableFrom": "violations",
1502
+ "tableTo": "analyses",
1503
+ "columnsFrom": [
1504
+ "analysis_id"
1505
+ ],
1506
+ "columnsTo": [
1507
+ "id"
1508
+ ],
1509
+ "onDelete": "cascade",
1510
+ "onUpdate": "no action"
1511
+ },
1512
+ "violations_target_service_id_services_id_fk": {
1513
+ "name": "violations_target_service_id_services_id_fk",
1514
+ "tableFrom": "violations",
1515
+ "tableTo": "services",
1516
+ "columnsFrom": [
1517
+ "target_service_id"
1518
+ ],
1519
+ "columnsTo": [
1520
+ "id"
1521
+ ],
1522
+ "onDelete": "set null",
1523
+ "onUpdate": "no action"
1524
+ },
1525
+ "violations_target_database_id_databases_id_fk": {
1526
+ "name": "violations_target_database_id_databases_id_fk",
1527
+ "tableFrom": "violations",
1528
+ "tableTo": "databases",
1529
+ "columnsFrom": [
1530
+ "target_database_id"
1531
+ ],
1532
+ "columnsTo": [
1533
+ "id"
1534
+ ],
1535
+ "onDelete": "set null",
1536
+ "onUpdate": "no action"
1537
+ },
1538
+ "violations_target_module_id_modules_id_fk": {
1539
+ "name": "violations_target_module_id_modules_id_fk",
1540
+ "tableFrom": "violations",
1541
+ "tableTo": "modules",
1542
+ "columnsFrom": [
1543
+ "target_module_id"
1544
+ ],
1545
+ "columnsTo": [
1546
+ "id"
1547
+ ],
1548
+ "onDelete": "set null",
1549
+ "onUpdate": "no action"
1550
+ },
1551
+ "violations_target_method_id_methods_id_fk": {
1552
+ "name": "violations_target_method_id_methods_id_fk",
1553
+ "tableFrom": "violations",
1554
+ "tableTo": "methods",
1555
+ "columnsFrom": [
1556
+ "target_method_id"
1557
+ ],
1558
+ "columnsTo": [
1559
+ "id"
1560
+ ],
1561
+ "onDelete": "set null",
1562
+ "onUpdate": "no action"
1563
+ }
1564
+ },
1565
+ "compositePrimaryKeys": {},
1566
+ "uniqueConstraints": {},
1567
+ "policies": {},
1568
+ "checkConstraints": {},
1569
+ "isRLSEnabled": false
556
1570
  }
557
1571
  },
558
1572
  "enums": {},