@happyvertical/smrt-facts 0.30.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.
@@ -0,0 +1,1902 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "generatedAt": "2026-06-23T01:11:29.585Z",
4
+ "packageName": "@happyvertical/smrt-facts",
5
+ "packageVersion": "0.30.0",
6
+ "sourceManifestPath": "dist/manifest.json",
7
+ "agentDocPath": "AGENTS.md",
8
+ "sourceHashes": {
9
+ "manifest": "45712be4e3bcc69fb6e7ce88a388ff6c7fdf33e4c44ec2c2e62ae4595ddb9a02",
10
+ "packageJson": "8c60340364726dba5faac3a0ebea415383511aac44ac718072bf91a8191ca17a",
11
+ "agents": "f44effcb7b1f7689941d072f09ebeccbadedcbc1c207555f8a5481a94ef0a350"
12
+ },
13
+ "exports": [
14
+ ".",
15
+ "./manifest",
16
+ "./manifest.json"
17
+ ],
18
+ "dependencies": {
19
+ "@happyvertical/ai": "catalog:",
20
+ "@happyvertical/files": "catalog:",
21
+ "@happyvertical/logger": "catalog:",
22
+ "@happyvertical/smrt-core": "workspace:*",
23
+ "@happyvertical/smrt-prompts": "workspace:*",
24
+ "@happyvertical/smrt-tenancy": "workspace:*",
25
+ "@happyvertical/sql": "catalog:",
26
+ "@happyvertical/utils": "catalog:",
27
+ "@happyvertical/smrt-vitest": "workspace:*",
28
+ "@types/node": "25.0.9",
29
+ "typescript": "^5.9.3",
30
+ "vite": "^7.3.1",
31
+ "vitest": "^4.0.17"
32
+ },
33
+ "smrtDependencies": [
34
+ "@happyvertical/smrt-core",
35
+ "@happyvertical/smrt-prompts",
36
+ "@happyvertical/smrt-tenancy",
37
+ "@happyvertical/smrt-vitest"
38
+ ],
39
+ "sdkDependencies": [
40
+ "@happyvertical/ai",
41
+ "@happyvertical/files",
42
+ "@happyvertical/logger",
43
+ "@happyvertical/sql",
44
+ "@happyvertical/utils"
45
+ ],
46
+ "tags": [],
47
+ "risks": [],
48
+ "objects": [
49
+ {
50
+ "name": "FactContent",
51
+ "qualifiedName": "@happyvertical/smrt-facts:FactContent",
52
+ "collection": "factcontents",
53
+ "tableName": "fact_contents",
54
+ "packageName": "@happyvertical/smrt-facts",
55
+ "extends": "SmrtObject",
56
+ "fields": [
57
+ {
58
+ "name": "factId",
59
+ "type": "foreignKey",
60
+ "required": true,
61
+ "related": "Fact",
62
+ "columnType": "UUID"
63
+ },
64
+ {
65
+ "name": "contentId",
66
+ "type": "crossPackageRef",
67
+ "required": true,
68
+ "related": "@happyvertical/smrt-content:Content",
69
+ "columnType": "UUID"
70
+ },
71
+ {
72
+ "name": "relationship",
73
+ "type": "text",
74
+ "required": true,
75
+ "columnType": "TEXT"
76
+ },
77
+ {
78
+ "name": "metadata",
79
+ "type": "text",
80
+ "required": false,
81
+ "columnType": "TEXT"
82
+ },
83
+ {
84
+ "name": "tenantId",
85
+ "type": "text",
86
+ "required": false,
87
+ "columnType": "UUID"
88
+ },
89
+ {
90
+ "name": "createdAt",
91
+ "type": "datetime",
92
+ "required": false,
93
+ "columnType": "TIMESTAMP"
94
+ },
95
+ {
96
+ "name": "updatedAt",
97
+ "type": "datetime",
98
+ "required": false,
99
+ "columnType": "TIMESTAMP"
100
+ }
101
+ ],
102
+ "relationships": [
103
+ {
104
+ "name": "factId",
105
+ "type": "foreignKey",
106
+ "required": true,
107
+ "related": "Fact",
108
+ "columnType": "UUID"
109
+ },
110
+ {
111
+ "name": "contentId",
112
+ "type": "crossPackageRef",
113
+ "required": true,
114
+ "related": "@happyvertical/smrt-content:Content",
115
+ "columnType": "UUID"
116
+ }
117
+ ],
118
+ "methods": [
119
+ "getFact",
120
+ "getMetadata",
121
+ "getRelationship",
122
+ "setMetadata",
123
+ "updateMetadata"
124
+ ],
125
+ "surfaces": [
126
+ {
127
+ "kind": "api",
128
+ "name": "factcontents.list",
129
+ "operation": "list",
130
+ "objectName": "@happyvertical/smrt-facts:FactContent",
131
+ "path": "/factcontents",
132
+ "method": "GET"
133
+ },
134
+ {
135
+ "kind": "api",
136
+ "name": "factcontents.get",
137
+ "operation": "get",
138
+ "objectName": "@happyvertical/smrt-facts:FactContent",
139
+ "path": "/factcontents/[id]",
140
+ "method": "GET"
141
+ },
142
+ {
143
+ "kind": "api",
144
+ "name": "factcontents.create",
145
+ "operation": "create",
146
+ "objectName": "@happyvertical/smrt-facts:FactContent",
147
+ "path": "/factcontents",
148
+ "method": "POST"
149
+ },
150
+ {
151
+ "kind": "api",
152
+ "name": "factcontents.delete",
153
+ "operation": "delete",
154
+ "objectName": "@happyvertical/smrt-facts:FactContent",
155
+ "path": "/factcontents/[id]",
156
+ "method": "DELETE"
157
+ },
158
+ {
159
+ "kind": "cli",
160
+ "name": "factcontent_list",
161
+ "operation": "list",
162
+ "objectName": "@happyvertical/smrt-facts:FactContent"
163
+ },
164
+ {
165
+ "kind": "cli",
166
+ "name": "factcontent_get",
167
+ "operation": "get",
168
+ "objectName": "@happyvertical/smrt-facts:FactContent"
169
+ },
170
+ {
171
+ "kind": "cli",
172
+ "name": "factcontent_create",
173
+ "operation": "create",
174
+ "objectName": "@happyvertical/smrt-facts:FactContent"
175
+ },
176
+ {
177
+ "kind": "cli",
178
+ "name": "factcontent_update",
179
+ "operation": "update",
180
+ "objectName": "@happyvertical/smrt-facts:FactContent"
181
+ },
182
+ {
183
+ "kind": "cli",
184
+ "name": "factcontent_delete",
185
+ "operation": "delete",
186
+ "objectName": "@happyvertical/smrt-facts:FactContent"
187
+ },
188
+ {
189
+ "kind": "mcp",
190
+ "name": "factcontent_list",
191
+ "operation": "list",
192
+ "objectName": "@happyvertical/smrt-facts:FactContent"
193
+ },
194
+ {
195
+ "kind": "mcp",
196
+ "name": "factcontent_get",
197
+ "operation": "get",
198
+ "objectName": "@happyvertical/smrt-facts:FactContent"
199
+ },
200
+ {
201
+ "kind": "mcp",
202
+ "name": "factcontent_create",
203
+ "operation": "create",
204
+ "objectName": "@happyvertical/smrt-facts:FactContent"
205
+ }
206
+ ],
207
+ "relationshipFeatures": [
208
+ "crossPackageRef",
209
+ "foreignKey",
210
+ "uuidColumns"
211
+ ],
212
+ "tags": [],
213
+ "risks": []
214
+ },
215
+ {
216
+ "name": "FactContentCollection",
217
+ "qualifiedName": "@happyvertical/smrt-facts:FactContentCollection",
218
+ "collection": "factcontents",
219
+ "tableName": "fact_content_collections",
220
+ "packageName": "@happyvertical/smrt-facts",
221
+ "extends": "SmrtJunction",
222
+ "fields": [],
223
+ "relationships": [],
224
+ "methods": [
225
+ "attach",
226
+ "byLeft",
227
+ "byRight",
228
+ "detach",
229
+ "findByTenant",
230
+ "findGlobal",
231
+ "findWithGlobals",
232
+ "setLinks"
233
+ ],
234
+ "surfaces": [],
235
+ "relationshipFeatures": [
236
+ "SmrtJunction",
237
+ "uuidColumns"
238
+ ],
239
+ "tags": [],
240
+ "risks": []
241
+ },
242
+ {
243
+ "name": "FactEvidence",
244
+ "qualifiedName": "@happyvertical/smrt-facts:FactEvidence",
245
+ "collection": "factevidences",
246
+ "tableName": "fact_evidences",
247
+ "packageName": "@happyvertical/smrt-facts",
248
+ "extends": "SmrtObject",
249
+ "fields": [
250
+ {
251
+ "name": "factId",
252
+ "type": "foreignKey",
253
+ "required": true,
254
+ "related": "Fact",
255
+ "columnType": "UUID"
256
+ },
257
+ {
258
+ "name": "evidenceKey",
259
+ "type": "text",
260
+ "required": true,
261
+ "columnType": "TEXT"
262
+ },
263
+ {
264
+ "name": "status",
265
+ "type": "text",
266
+ "required": true,
267
+ "columnType": "TEXT"
268
+ },
269
+ {
270
+ "name": "sourceKind",
271
+ "type": "text",
272
+ "required": false,
273
+ "columnType": "TEXT"
274
+ },
275
+ {
276
+ "name": "sourceId",
277
+ "type": "text",
278
+ "required": false,
279
+ "columnType": "TEXT"
280
+ },
281
+ {
282
+ "name": "sourceUrl",
283
+ "type": "text",
284
+ "required": false,
285
+ "columnType": "TEXT"
286
+ },
287
+ {
288
+ "name": "sourceTitle",
289
+ "type": "text",
290
+ "required": false,
291
+ "columnType": "TEXT"
292
+ },
293
+ {
294
+ "name": "quote",
295
+ "type": "text",
296
+ "required": false,
297
+ "columnType": "TEXT"
298
+ },
299
+ {
300
+ "name": "locator",
301
+ "type": "text",
302
+ "required": false,
303
+ "columnType": "TEXT"
304
+ },
305
+ {
306
+ "name": "extractionMethod",
307
+ "type": "text",
308
+ "required": false,
309
+ "columnType": "TEXT"
310
+ },
311
+ {
312
+ "name": "confidence",
313
+ "type": "integer",
314
+ "required": false,
315
+ "columnType": "INTEGER"
316
+ },
317
+ {
318
+ "name": "metadata",
319
+ "type": "text",
320
+ "required": false,
321
+ "columnType": "TEXT"
322
+ },
323
+ {
324
+ "name": "tenantId",
325
+ "type": "text",
326
+ "required": false,
327
+ "columnType": "UUID"
328
+ },
329
+ {
330
+ "name": "createdAt",
331
+ "type": "datetime",
332
+ "required": false,
333
+ "columnType": "TIMESTAMP"
334
+ },
335
+ {
336
+ "name": "updatedAt",
337
+ "type": "datetime",
338
+ "required": false,
339
+ "columnType": "TIMESTAMP"
340
+ }
341
+ ],
342
+ "relationships": [
343
+ {
344
+ "name": "factId",
345
+ "type": "foreignKey",
346
+ "required": true,
347
+ "related": "Fact",
348
+ "columnType": "UUID"
349
+ }
350
+ ],
351
+ "methods": [
352
+ "getMetadata",
353
+ "setMetadata",
354
+ "updateMetadata"
355
+ ],
356
+ "surfaces": [
357
+ {
358
+ "kind": "api",
359
+ "name": "factevidences.list",
360
+ "operation": "list",
361
+ "objectName": "@happyvertical/smrt-facts:FactEvidence",
362
+ "path": "/factevidences",
363
+ "method": "GET"
364
+ },
365
+ {
366
+ "kind": "api",
367
+ "name": "factevidences.get",
368
+ "operation": "get",
369
+ "objectName": "@happyvertical/smrt-facts:FactEvidence",
370
+ "path": "/factevidences/[id]",
371
+ "method": "GET"
372
+ },
373
+ {
374
+ "kind": "api",
375
+ "name": "factevidences.create",
376
+ "operation": "create",
377
+ "objectName": "@happyvertical/smrt-facts:FactEvidence",
378
+ "path": "/factevidences",
379
+ "method": "POST"
380
+ },
381
+ {
382
+ "kind": "api",
383
+ "name": "factevidences.delete",
384
+ "operation": "delete",
385
+ "objectName": "@happyvertical/smrt-facts:FactEvidence",
386
+ "path": "/factevidences/[id]",
387
+ "method": "DELETE"
388
+ },
389
+ {
390
+ "kind": "cli",
391
+ "name": "factevidence_list",
392
+ "operation": "list",
393
+ "objectName": "@happyvertical/smrt-facts:FactEvidence"
394
+ },
395
+ {
396
+ "kind": "cli",
397
+ "name": "factevidence_get",
398
+ "operation": "get",
399
+ "objectName": "@happyvertical/smrt-facts:FactEvidence"
400
+ },
401
+ {
402
+ "kind": "cli",
403
+ "name": "factevidence_create",
404
+ "operation": "create",
405
+ "objectName": "@happyvertical/smrt-facts:FactEvidence"
406
+ },
407
+ {
408
+ "kind": "cli",
409
+ "name": "factevidence_update",
410
+ "operation": "update",
411
+ "objectName": "@happyvertical/smrt-facts:FactEvidence"
412
+ },
413
+ {
414
+ "kind": "cli",
415
+ "name": "factevidence_delete",
416
+ "operation": "delete",
417
+ "objectName": "@happyvertical/smrt-facts:FactEvidence"
418
+ },
419
+ {
420
+ "kind": "mcp",
421
+ "name": "factevidence_list",
422
+ "operation": "list",
423
+ "objectName": "@happyvertical/smrt-facts:FactEvidence"
424
+ },
425
+ {
426
+ "kind": "mcp",
427
+ "name": "factevidence_get",
428
+ "operation": "get",
429
+ "objectName": "@happyvertical/smrt-facts:FactEvidence"
430
+ },
431
+ {
432
+ "kind": "mcp",
433
+ "name": "factevidence_create",
434
+ "operation": "create",
435
+ "objectName": "@happyvertical/smrt-facts:FactEvidence"
436
+ }
437
+ ],
438
+ "relationshipFeatures": [
439
+ "foreignKey",
440
+ "uuidColumns"
441
+ ],
442
+ "tags": [],
443
+ "risks": []
444
+ },
445
+ {
446
+ "name": "FactEvidenceCollection",
447
+ "qualifiedName": "@happyvertical/smrt-facts:FactEvidenceCollection",
448
+ "collection": "factevidences",
449
+ "tableName": "fact_evidences",
450
+ "packageName": "@happyvertical/smrt-facts",
451
+ "extends": "SmrtCollection",
452
+ "fields": [],
453
+ "relationships": [],
454
+ "methods": [
455
+ "bulkUpdateStatus",
456
+ "getForFact",
457
+ "getForSource",
458
+ "getForSources",
459
+ "replaceGeneratedForSources",
460
+ "upsertEvidence"
461
+ ],
462
+ "surfaces": [],
463
+ "relationshipFeatures": [
464
+ "uuidColumns"
465
+ ],
466
+ "tags": [],
467
+ "risks": []
468
+ },
469
+ {
470
+ "name": "FactSource",
471
+ "qualifiedName": "@happyvertical/smrt-facts:FactSource",
472
+ "collection": "factsources",
473
+ "tableName": "fact_sources",
474
+ "packageName": "@happyvertical/smrt-facts",
475
+ "extends": "SmrtObject",
476
+ "fields": [
477
+ {
478
+ "name": "created_at",
479
+ "type": "datetime",
480
+ "required": false,
481
+ "columnType": "TIMESTAMP"
482
+ },
483
+ {
484
+ "name": "updated_at",
485
+ "type": "datetime",
486
+ "required": false,
487
+ "columnType": "TIMESTAMP"
488
+ },
489
+ {
490
+ "name": "factId",
491
+ "type": "foreignKey",
492
+ "required": true,
493
+ "related": "Fact",
494
+ "columnType": "UUID"
495
+ },
496
+ {
497
+ "name": "sourceType",
498
+ "type": "text",
499
+ "required": false,
500
+ "columnType": "TEXT"
501
+ },
502
+ {
503
+ "name": "sourceUrl",
504
+ "type": "text",
505
+ "required": false,
506
+ "columnType": "TEXT"
507
+ },
508
+ {
509
+ "name": "sourceTitle",
510
+ "type": "text",
511
+ "required": false,
512
+ "columnType": "TEXT"
513
+ },
514
+ {
515
+ "name": "credibility",
516
+ "type": "decimal",
517
+ "required": false,
518
+ "columnType": "REAL"
519
+ },
520
+ {
521
+ "name": "extractedAt",
522
+ "type": "datetime",
523
+ "required": false,
524
+ "columnType": "TIMESTAMP"
525
+ },
526
+ {
527
+ "name": "metadata",
528
+ "type": "text",
529
+ "required": false,
530
+ "columnType": "TEXT"
531
+ },
532
+ {
533
+ "name": "tenantId",
534
+ "type": "text",
535
+ "required": false,
536
+ "columnType": "UUID"
537
+ },
538
+ {
539
+ "name": "createdAt",
540
+ "type": "datetime",
541
+ "required": false,
542
+ "columnType": "TIMESTAMP"
543
+ },
544
+ {
545
+ "name": "updatedAt",
546
+ "type": "datetime",
547
+ "required": false,
548
+ "columnType": "TIMESTAMP"
549
+ }
550
+ ],
551
+ "relationships": [
552
+ {
553
+ "name": "factId",
554
+ "type": "foreignKey",
555
+ "required": true,
556
+ "related": "Fact",
557
+ "columnType": "UUID"
558
+ }
559
+ ],
560
+ "methods": [
561
+ "classifyConstraintError",
562
+ "clearEmbeddings",
563
+ "delete",
564
+ "describe",
565
+ "destroy",
566
+ "do",
567
+ "executeToolCall",
568
+ "forget",
569
+ "forgetScope",
570
+ "generateEmbeddings",
571
+ "getAiUsageSnapshot",
572
+ "getAvailableTools",
573
+ "getEmbedding",
574
+ "getFact",
575
+ "getFields",
576
+ "getId",
577
+ "getMetadata",
578
+ "getRelated",
579
+ "getSavedId",
580
+ "getSlug",
581
+ "hasStaleEmbeddings",
582
+ "initialize",
583
+ "is",
584
+ "isRelatedLoaded",
585
+ "isSaved",
586
+ "listAiUsage",
587
+ "loadDataFromDb",
588
+ "loadFromId",
589
+ "loadFromSlug",
590
+ "loadRelated",
591
+ "loadRelatedMany",
592
+ "markAsPersisted",
593
+ "recall",
594
+ "recallAll",
595
+ "remember",
596
+ "resetAiUsage",
597
+ "save",
598
+ "setMetadata",
599
+ "summarizeAiUsage",
600
+ "toJSON",
601
+ "toPlainObject",
602
+ "toPublicJSON",
603
+ "updateMetadata"
604
+ ],
605
+ "surfaces": [
606
+ {
607
+ "kind": "api",
608
+ "name": "factsources.list",
609
+ "operation": "list",
610
+ "objectName": "@happyvertical/smrt-facts:FactSource",
611
+ "path": "/factsources",
612
+ "method": "GET"
613
+ },
614
+ {
615
+ "kind": "api",
616
+ "name": "factsources.get",
617
+ "operation": "get",
618
+ "objectName": "@happyvertical/smrt-facts:FactSource",
619
+ "path": "/factsources/[id]",
620
+ "method": "GET"
621
+ },
622
+ {
623
+ "kind": "api",
624
+ "name": "factsources.create",
625
+ "operation": "create",
626
+ "objectName": "@happyvertical/smrt-facts:FactSource",
627
+ "path": "/factsources",
628
+ "method": "POST"
629
+ },
630
+ {
631
+ "kind": "api",
632
+ "name": "factsources.delete",
633
+ "operation": "delete",
634
+ "objectName": "@happyvertical/smrt-facts:FactSource",
635
+ "path": "/factsources/[id]",
636
+ "method": "DELETE"
637
+ },
638
+ {
639
+ "kind": "cli",
640
+ "name": "factsource_list",
641
+ "operation": "list",
642
+ "objectName": "@happyvertical/smrt-facts:FactSource"
643
+ },
644
+ {
645
+ "kind": "cli",
646
+ "name": "factsource_get",
647
+ "operation": "get",
648
+ "objectName": "@happyvertical/smrt-facts:FactSource"
649
+ },
650
+ {
651
+ "kind": "cli",
652
+ "name": "factsource_create",
653
+ "operation": "create",
654
+ "objectName": "@happyvertical/smrt-facts:FactSource"
655
+ },
656
+ {
657
+ "kind": "cli",
658
+ "name": "factsource_update",
659
+ "operation": "update",
660
+ "objectName": "@happyvertical/smrt-facts:FactSource"
661
+ },
662
+ {
663
+ "kind": "cli",
664
+ "name": "factsource_delete",
665
+ "operation": "delete",
666
+ "objectName": "@happyvertical/smrt-facts:FactSource"
667
+ },
668
+ {
669
+ "kind": "mcp",
670
+ "name": "factsource_list",
671
+ "operation": "list",
672
+ "objectName": "@happyvertical/smrt-facts:FactSource"
673
+ },
674
+ {
675
+ "kind": "mcp",
676
+ "name": "factsource_get",
677
+ "operation": "get",
678
+ "objectName": "@happyvertical/smrt-facts:FactSource"
679
+ },
680
+ {
681
+ "kind": "mcp",
682
+ "name": "factsource_create",
683
+ "operation": "create",
684
+ "objectName": "@happyvertical/smrt-facts:FactSource"
685
+ }
686
+ ],
687
+ "relationshipFeatures": [
688
+ "foreignKey",
689
+ "uuidColumns"
690
+ ],
691
+ "tags": [],
692
+ "risks": []
693
+ },
694
+ {
695
+ "name": "FactSourceCollection",
696
+ "qualifiedName": "@happyvertical/smrt-facts:FactSourceCollection",
697
+ "collection": "factsources",
698
+ "tableName": "fact_source_collections",
699
+ "packageName": "@happyvertical/smrt-facts",
700
+ "extends": "SmrtCollection",
701
+ "fields": [],
702
+ "relationships": [],
703
+ "methods": [
704
+ "countForFact",
705
+ "findByTenant",
706
+ "findGlobal",
707
+ "findWithGlobals",
708
+ "getAverageCredibility",
709
+ "getByType",
710
+ "getForFact",
711
+ "getHighCredibility"
712
+ ],
713
+ "surfaces": [],
714
+ "relationshipFeatures": [
715
+ "uuidColumns"
716
+ ],
717
+ "tags": [],
718
+ "risks": []
719
+ },
720
+ {
721
+ "name": "FactSubject",
722
+ "qualifiedName": "@happyvertical/smrt-facts:FactSubject",
723
+ "collection": "factsubjects",
724
+ "tableName": "fact_subjects",
725
+ "packageName": "@happyvertical/smrt-facts",
726
+ "extends": "SmrtObject",
727
+ "fields": [
728
+ {
729
+ "name": "factId",
730
+ "type": "foreignKey",
731
+ "required": true,
732
+ "related": "Fact",
733
+ "columnType": "UUID"
734
+ },
735
+ {
736
+ "name": "entityType",
737
+ "type": "text",
738
+ "required": true,
739
+ "columnType": "TEXT"
740
+ },
741
+ {
742
+ "name": "entityId",
743
+ "type": "text",
744
+ "required": true,
745
+ "columnType": "TEXT"
746
+ },
747
+ {
748
+ "name": "role",
749
+ "type": "text",
750
+ "required": false,
751
+ "columnType": "TEXT"
752
+ },
753
+ {
754
+ "name": "metadata",
755
+ "type": "text",
756
+ "required": false,
757
+ "columnType": "TEXT"
758
+ },
759
+ {
760
+ "name": "tenantId",
761
+ "type": "text",
762
+ "required": false,
763
+ "columnType": "UUID"
764
+ },
765
+ {
766
+ "name": "createdAt",
767
+ "type": "datetime",
768
+ "required": false,
769
+ "columnType": "TIMESTAMP"
770
+ },
771
+ {
772
+ "name": "updatedAt",
773
+ "type": "datetime",
774
+ "required": false,
775
+ "columnType": "TIMESTAMP"
776
+ }
777
+ ],
778
+ "relationships": [
779
+ {
780
+ "name": "factId",
781
+ "type": "foreignKey",
782
+ "required": true,
783
+ "related": "Fact",
784
+ "columnType": "UUID"
785
+ }
786
+ ],
787
+ "methods": [
788
+ "getFact",
789
+ "getMetadata",
790
+ "getRole",
791
+ "setMetadata",
792
+ "updateMetadata"
793
+ ],
794
+ "surfaces": [
795
+ {
796
+ "kind": "api",
797
+ "name": "factsubjects.list",
798
+ "operation": "list",
799
+ "objectName": "@happyvertical/smrt-facts:FactSubject",
800
+ "path": "/factsubjects",
801
+ "method": "GET"
802
+ },
803
+ {
804
+ "kind": "api",
805
+ "name": "factsubjects.get",
806
+ "operation": "get",
807
+ "objectName": "@happyvertical/smrt-facts:FactSubject",
808
+ "path": "/factsubjects/[id]",
809
+ "method": "GET"
810
+ },
811
+ {
812
+ "kind": "api",
813
+ "name": "factsubjects.create",
814
+ "operation": "create",
815
+ "objectName": "@happyvertical/smrt-facts:FactSubject",
816
+ "path": "/factsubjects",
817
+ "method": "POST"
818
+ },
819
+ {
820
+ "kind": "api",
821
+ "name": "factsubjects.delete",
822
+ "operation": "delete",
823
+ "objectName": "@happyvertical/smrt-facts:FactSubject",
824
+ "path": "/factsubjects/[id]",
825
+ "method": "DELETE"
826
+ },
827
+ {
828
+ "kind": "cli",
829
+ "name": "factsubject_list",
830
+ "operation": "list",
831
+ "objectName": "@happyvertical/smrt-facts:FactSubject"
832
+ },
833
+ {
834
+ "kind": "cli",
835
+ "name": "factsubject_get",
836
+ "operation": "get",
837
+ "objectName": "@happyvertical/smrt-facts:FactSubject"
838
+ },
839
+ {
840
+ "kind": "cli",
841
+ "name": "factsubject_create",
842
+ "operation": "create",
843
+ "objectName": "@happyvertical/smrt-facts:FactSubject"
844
+ },
845
+ {
846
+ "kind": "cli",
847
+ "name": "factsubject_update",
848
+ "operation": "update",
849
+ "objectName": "@happyvertical/smrt-facts:FactSubject"
850
+ },
851
+ {
852
+ "kind": "cli",
853
+ "name": "factsubject_delete",
854
+ "operation": "delete",
855
+ "objectName": "@happyvertical/smrt-facts:FactSubject"
856
+ },
857
+ {
858
+ "kind": "mcp",
859
+ "name": "factsubject_list",
860
+ "operation": "list",
861
+ "objectName": "@happyvertical/smrt-facts:FactSubject"
862
+ },
863
+ {
864
+ "kind": "mcp",
865
+ "name": "factsubject_get",
866
+ "operation": "get",
867
+ "objectName": "@happyvertical/smrt-facts:FactSubject"
868
+ },
869
+ {
870
+ "kind": "mcp",
871
+ "name": "factsubject_create",
872
+ "operation": "create",
873
+ "objectName": "@happyvertical/smrt-facts:FactSubject"
874
+ }
875
+ ],
876
+ "relationshipFeatures": [
877
+ "foreignKey",
878
+ "uuidColumns"
879
+ ],
880
+ "tags": [],
881
+ "risks": []
882
+ },
883
+ {
884
+ "name": "FactSubjectCollection",
885
+ "qualifiedName": "@happyvertical/smrt-facts:FactSubjectCollection",
886
+ "collection": "factsubjects",
887
+ "tableName": "fact_subject_collections",
888
+ "packageName": "@happyvertical/smrt-facts",
889
+ "extends": "SmrtCollection",
890
+ "fields": [],
891
+ "relationships": [],
892
+ "methods": [
893
+ "countForFact",
894
+ "findByTenant",
895
+ "findGlobal",
896
+ "findWithGlobals",
897
+ "getByRole",
898
+ "getForEntity",
899
+ "getForFact",
900
+ "linkEntity",
901
+ "unlinkEntity"
902
+ ],
903
+ "surfaces": [],
904
+ "relationshipFeatures": [
905
+ "uuidColumns"
906
+ ],
907
+ "tags": [],
908
+ "risks": []
909
+ },
910
+ {
911
+ "name": "FactTag",
912
+ "qualifiedName": "@happyvertical/smrt-facts:FactTag",
913
+ "collection": "facttags",
914
+ "tableName": "fact_tags",
915
+ "packageName": "@happyvertical/smrt-facts",
916
+ "extends": "SmrtObject",
917
+ "fields": [
918
+ {
919
+ "name": "factId",
920
+ "type": "foreignKey",
921
+ "required": true,
922
+ "related": "Fact",
923
+ "columnType": "UUID"
924
+ },
925
+ {
926
+ "name": "tagSlug",
927
+ "type": "text",
928
+ "required": true,
929
+ "columnType": "TEXT"
930
+ },
931
+ {
932
+ "name": "metadata",
933
+ "type": "text",
934
+ "required": false,
935
+ "columnType": "TEXT"
936
+ },
937
+ {
938
+ "name": "tenantId",
939
+ "type": "text",
940
+ "required": false,
941
+ "columnType": "UUID"
942
+ },
943
+ {
944
+ "name": "createdAt",
945
+ "type": "datetime",
946
+ "required": false,
947
+ "columnType": "TIMESTAMP"
948
+ },
949
+ {
950
+ "name": "updatedAt",
951
+ "type": "datetime",
952
+ "required": false,
953
+ "columnType": "TIMESTAMP"
954
+ }
955
+ ],
956
+ "relationships": [
957
+ {
958
+ "name": "factId",
959
+ "type": "foreignKey",
960
+ "required": true,
961
+ "related": "Fact",
962
+ "columnType": "UUID"
963
+ }
964
+ ],
965
+ "methods": [
966
+ "getFact",
967
+ "getMetadata",
968
+ "setMetadata",
969
+ "updateMetadata"
970
+ ],
971
+ "surfaces": [
972
+ {
973
+ "kind": "api",
974
+ "name": "facttags.list",
975
+ "operation": "list",
976
+ "objectName": "@happyvertical/smrt-facts:FactTag",
977
+ "path": "/facttags",
978
+ "method": "GET"
979
+ },
980
+ {
981
+ "kind": "api",
982
+ "name": "facttags.get",
983
+ "operation": "get",
984
+ "objectName": "@happyvertical/smrt-facts:FactTag",
985
+ "path": "/facttags/[id]",
986
+ "method": "GET"
987
+ },
988
+ {
989
+ "kind": "api",
990
+ "name": "facttags.create",
991
+ "operation": "create",
992
+ "objectName": "@happyvertical/smrt-facts:FactTag",
993
+ "path": "/facttags",
994
+ "method": "POST"
995
+ },
996
+ {
997
+ "kind": "api",
998
+ "name": "facttags.delete",
999
+ "operation": "delete",
1000
+ "objectName": "@happyvertical/smrt-facts:FactTag",
1001
+ "path": "/facttags/[id]",
1002
+ "method": "DELETE"
1003
+ },
1004
+ {
1005
+ "kind": "cli",
1006
+ "name": "facttag_list",
1007
+ "operation": "list",
1008
+ "objectName": "@happyvertical/smrt-facts:FactTag"
1009
+ },
1010
+ {
1011
+ "kind": "cli",
1012
+ "name": "facttag_get",
1013
+ "operation": "get",
1014
+ "objectName": "@happyvertical/smrt-facts:FactTag"
1015
+ },
1016
+ {
1017
+ "kind": "cli",
1018
+ "name": "facttag_create",
1019
+ "operation": "create",
1020
+ "objectName": "@happyvertical/smrt-facts:FactTag"
1021
+ },
1022
+ {
1023
+ "kind": "cli",
1024
+ "name": "facttag_update",
1025
+ "operation": "update",
1026
+ "objectName": "@happyvertical/smrt-facts:FactTag"
1027
+ },
1028
+ {
1029
+ "kind": "cli",
1030
+ "name": "facttag_delete",
1031
+ "operation": "delete",
1032
+ "objectName": "@happyvertical/smrt-facts:FactTag"
1033
+ },
1034
+ {
1035
+ "kind": "mcp",
1036
+ "name": "facttag_list",
1037
+ "operation": "list",
1038
+ "objectName": "@happyvertical/smrt-facts:FactTag"
1039
+ },
1040
+ {
1041
+ "kind": "mcp",
1042
+ "name": "facttag_get",
1043
+ "operation": "get",
1044
+ "objectName": "@happyvertical/smrt-facts:FactTag"
1045
+ },
1046
+ {
1047
+ "kind": "mcp",
1048
+ "name": "facttag_create",
1049
+ "operation": "create",
1050
+ "objectName": "@happyvertical/smrt-facts:FactTag"
1051
+ }
1052
+ ],
1053
+ "relationshipFeatures": [
1054
+ "foreignKey",
1055
+ "uuidColumns"
1056
+ ],
1057
+ "tags": [],
1058
+ "risks": []
1059
+ },
1060
+ {
1061
+ "name": "FactTagCollection",
1062
+ "qualifiedName": "@happyvertical/smrt-facts:FactTagCollection",
1063
+ "collection": "facttags",
1064
+ "tableName": "fact_tag_collections",
1065
+ "packageName": "@happyvertical/smrt-facts",
1066
+ "extends": "SmrtCollection",
1067
+ "fields": [],
1068
+ "relationships": [],
1069
+ "methods": [
1070
+ "addTag",
1071
+ "findByTenant",
1072
+ "findGlobal",
1073
+ "findWithGlobals",
1074
+ "getForFact",
1075
+ "getForTag",
1076
+ "getTagSlugs",
1077
+ "removeTag"
1078
+ ],
1079
+ "surfaces": [],
1080
+ "relationshipFeatures": [
1081
+ "uuidColumns"
1082
+ ],
1083
+ "tags": [],
1084
+ "risks": []
1085
+ },
1086
+ {
1087
+ "name": "Fact",
1088
+ "qualifiedName": "@happyvertical/smrt-facts:Fact",
1089
+ "collection": "facts",
1090
+ "tableName": "facts",
1091
+ "packageName": "@happyvertical/smrt-facts",
1092
+ "extends": "SmrtObject",
1093
+ "fields": [
1094
+ {
1095
+ "name": "created_at",
1096
+ "type": "datetime",
1097
+ "required": false,
1098
+ "columnType": "TIMESTAMP"
1099
+ },
1100
+ {
1101
+ "name": "updated_at",
1102
+ "type": "datetime",
1103
+ "required": false,
1104
+ "columnType": "TIMESTAMP"
1105
+ },
1106
+ {
1107
+ "name": "textRefined",
1108
+ "type": "text",
1109
+ "required": true,
1110
+ "columnType": "TEXT"
1111
+ },
1112
+ {
1113
+ "name": "textRaw",
1114
+ "type": "text",
1115
+ "required": false,
1116
+ "columnType": "TEXT"
1117
+ },
1118
+ {
1119
+ "name": "type",
1120
+ "type": "text",
1121
+ "required": true,
1122
+ "columnType": "TEXT"
1123
+ },
1124
+ {
1125
+ "name": "status",
1126
+ "type": "text",
1127
+ "required": true,
1128
+ "columnType": "TEXT"
1129
+ },
1130
+ {
1131
+ "name": "domain",
1132
+ "type": "text",
1133
+ "required": false,
1134
+ "columnType": "TEXT"
1135
+ },
1136
+ {
1137
+ "name": "previousFactId",
1138
+ "type": "foreignKey",
1139
+ "required": false,
1140
+ "related": "Fact",
1141
+ "columnType": "UUID"
1142
+ },
1143
+ {
1144
+ "name": "evolutionType",
1145
+ "type": "text",
1146
+ "required": false,
1147
+ "columnType": "TEXT"
1148
+ },
1149
+ {
1150
+ "name": "sourceCount",
1151
+ "type": "integer",
1152
+ "required": false,
1153
+ "columnType": "INTEGER"
1154
+ },
1155
+ {
1156
+ "name": "confidence",
1157
+ "type": "decimal",
1158
+ "required": false,
1159
+ "columnType": "REAL"
1160
+ },
1161
+ {
1162
+ "name": "metadata",
1163
+ "type": "text",
1164
+ "required": false,
1165
+ "columnType": "TEXT"
1166
+ },
1167
+ {
1168
+ "name": "tenantId",
1169
+ "type": "text",
1170
+ "required": false,
1171
+ "columnType": "UUID"
1172
+ },
1173
+ {
1174
+ "name": "createdAt",
1175
+ "type": "datetime",
1176
+ "required": false,
1177
+ "columnType": "TIMESTAMP"
1178
+ },
1179
+ {
1180
+ "name": "updatedAt",
1181
+ "type": "datetime",
1182
+ "required": false,
1183
+ "columnType": "TIMESTAMP"
1184
+ }
1185
+ ],
1186
+ "relationships": [
1187
+ {
1188
+ "name": "previousFactId",
1189
+ "type": "foreignKey",
1190
+ "required": false,
1191
+ "related": "Fact",
1192
+ "columnType": "UUID"
1193
+ }
1194
+ ],
1195
+ "methods": [
1196
+ "classifyConstraintError",
1197
+ "clearEmbeddings",
1198
+ "delete",
1199
+ "describe",
1200
+ "destroy",
1201
+ "do",
1202
+ "executeToolCall",
1203
+ "forget",
1204
+ "forgetScope",
1205
+ "generateEmbeddings",
1206
+ "getAiUsageSnapshot",
1207
+ "getAvailableTools",
1208
+ "getEmbedding",
1209
+ "getEvolutionType",
1210
+ "getFields",
1211
+ "getId",
1212
+ "getMetadata",
1213
+ "getPredecessor",
1214
+ "getRelated",
1215
+ "getSavedId",
1216
+ "getSlug",
1217
+ "getSources",
1218
+ "getStatus",
1219
+ "getSubjects",
1220
+ "getSuccessors",
1221
+ "getType",
1222
+ "hasPredecessor",
1223
+ "hasStaleEmbeddings",
1224
+ "initialize",
1225
+ "is",
1226
+ "isActive",
1227
+ "isRelatedLoaded",
1228
+ "isSaved",
1229
+ "isSuperseded",
1230
+ "listAiUsage",
1231
+ "loadDataFromDb",
1232
+ "loadFromId",
1233
+ "loadFromSlug",
1234
+ "loadRelated",
1235
+ "loadRelatedMany",
1236
+ "markAsPersisted",
1237
+ "recall",
1238
+ "recallAll",
1239
+ "remember",
1240
+ "resetAiUsage",
1241
+ "save",
1242
+ "setMetadata",
1243
+ "summarizeAiUsage",
1244
+ "toJSON",
1245
+ "toPlainObject",
1246
+ "toPublicJSON",
1247
+ "updateMetadata"
1248
+ ],
1249
+ "surfaces": [
1250
+ {
1251
+ "kind": "api",
1252
+ "name": "facts.list",
1253
+ "operation": "list",
1254
+ "objectName": "@happyvertical/smrt-facts:Fact",
1255
+ "path": "/facts",
1256
+ "method": "GET"
1257
+ },
1258
+ {
1259
+ "kind": "api",
1260
+ "name": "facts.get",
1261
+ "operation": "get",
1262
+ "objectName": "@happyvertical/smrt-facts:Fact",
1263
+ "path": "/facts/[id]",
1264
+ "method": "GET"
1265
+ },
1266
+ {
1267
+ "kind": "api",
1268
+ "name": "facts.create",
1269
+ "operation": "create",
1270
+ "objectName": "@happyvertical/smrt-facts:Fact",
1271
+ "path": "/facts",
1272
+ "method": "POST"
1273
+ },
1274
+ {
1275
+ "kind": "api",
1276
+ "name": "facts.update",
1277
+ "operation": "update",
1278
+ "objectName": "@happyvertical/smrt-facts:Fact",
1279
+ "path": "/facts/[id]",
1280
+ "method": "PATCH"
1281
+ },
1282
+ {
1283
+ "kind": "api",
1284
+ "name": "facts.delete",
1285
+ "operation": "delete",
1286
+ "objectName": "@happyvertical/smrt-facts:Fact",
1287
+ "path": "/facts/[id]",
1288
+ "method": "DELETE"
1289
+ },
1290
+ {
1291
+ "kind": "cli",
1292
+ "name": "fact_list",
1293
+ "operation": "list",
1294
+ "objectName": "@happyvertical/smrt-facts:Fact"
1295
+ },
1296
+ {
1297
+ "kind": "cli",
1298
+ "name": "fact_get",
1299
+ "operation": "get",
1300
+ "objectName": "@happyvertical/smrt-facts:Fact"
1301
+ },
1302
+ {
1303
+ "kind": "cli",
1304
+ "name": "fact_create",
1305
+ "operation": "create",
1306
+ "objectName": "@happyvertical/smrt-facts:Fact"
1307
+ },
1308
+ {
1309
+ "kind": "cli",
1310
+ "name": "fact_update",
1311
+ "operation": "update",
1312
+ "objectName": "@happyvertical/smrt-facts:Fact"
1313
+ },
1314
+ {
1315
+ "kind": "cli",
1316
+ "name": "fact_delete",
1317
+ "operation": "delete",
1318
+ "objectName": "@happyvertical/smrt-facts:Fact"
1319
+ },
1320
+ {
1321
+ "kind": "mcp",
1322
+ "name": "fact_list",
1323
+ "operation": "list",
1324
+ "objectName": "@happyvertical/smrt-facts:Fact"
1325
+ },
1326
+ {
1327
+ "kind": "mcp",
1328
+ "name": "fact_get",
1329
+ "operation": "get",
1330
+ "objectName": "@happyvertical/smrt-facts:Fact"
1331
+ },
1332
+ {
1333
+ "kind": "mcp",
1334
+ "name": "fact_create",
1335
+ "operation": "create",
1336
+ "objectName": "@happyvertical/smrt-facts:Fact"
1337
+ },
1338
+ {
1339
+ "kind": "mcp",
1340
+ "name": "fact_update",
1341
+ "operation": "update",
1342
+ "objectName": "@happyvertical/smrt-facts:Fact"
1343
+ }
1344
+ ],
1345
+ "relationshipFeatures": [
1346
+ "foreignKey",
1347
+ "uuidColumns"
1348
+ ],
1349
+ "tags": [],
1350
+ "risks": []
1351
+ },
1352
+ {
1353
+ "name": "FactCollection",
1354
+ "qualifiedName": "@happyvertical/smrt-facts:FactCollection",
1355
+ "collection": "facts",
1356
+ "tableName": "fact_collections",
1357
+ "packageName": "@happyvertical/smrt-facts",
1358
+ "extends": "SmrtCollection",
1359
+ "fields": [],
1360
+ "relationships": [],
1361
+ "methods": [
1362
+ "assessClaimSupport",
1363
+ "branch",
1364
+ "browseCatalog",
1365
+ "extractArticleClaims",
1366
+ "extractCandidatesFromText",
1367
+ "findByTenant",
1368
+ "findGlobal",
1369
+ "findWithGlobals",
1370
+ "getActive",
1371
+ "getByDomain",
1372
+ "getByStatus",
1373
+ "getByType",
1374
+ "getEntityBriefing",
1375
+ "getEvolutionChain",
1376
+ "getEvolutionTree",
1377
+ "getForContent",
1378
+ "getLatestInChain",
1379
+ "getPending",
1380
+ "getSuccessors",
1381
+ "recalculateConfidence",
1382
+ "reconcile"
1383
+ ],
1384
+ "surfaces": [],
1385
+ "relationshipFeatures": [
1386
+ "uuidColumns"
1387
+ ],
1388
+ "tags": [],
1389
+ "risks": []
1390
+ }
1391
+ ],
1392
+ "surfaces": [
1393
+ {
1394
+ "kind": "api",
1395
+ "name": "factcontents.list",
1396
+ "operation": "list",
1397
+ "objectName": "@happyvertical/smrt-facts:FactContent",
1398
+ "path": "/factcontents",
1399
+ "method": "GET"
1400
+ },
1401
+ {
1402
+ "kind": "api",
1403
+ "name": "factcontents.get",
1404
+ "operation": "get",
1405
+ "objectName": "@happyvertical/smrt-facts:FactContent",
1406
+ "path": "/factcontents/[id]",
1407
+ "method": "GET"
1408
+ },
1409
+ {
1410
+ "kind": "api",
1411
+ "name": "factcontents.create",
1412
+ "operation": "create",
1413
+ "objectName": "@happyvertical/smrt-facts:FactContent",
1414
+ "path": "/factcontents",
1415
+ "method": "POST"
1416
+ },
1417
+ {
1418
+ "kind": "api",
1419
+ "name": "factcontents.delete",
1420
+ "operation": "delete",
1421
+ "objectName": "@happyvertical/smrt-facts:FactContent",
1422
+ "path": "/factcontents/[id]",
1423
+ "method": "DELETE"
1424
+ },
1425
+ {
1426
+ "kind": "cli",
1427
+ "name": "factcontent_list",
1428
+ "operation": "list",
1429
+ "objectName": "@happyvertical/smrt-facts:FactContent"
1430
+ },
1431
+ {
1432
+ "kind": "cli",
1433
+ "name": "factcontent_get",
1434
+ "operation": "get",
1435
+ "objectName": "@happyvertical/smrt-facts:FactContent"
1436
+ },
1437
+ {
1438
+ "kind": "cli",
1439
+ "name": "factcontent_create",
1440
+ "operation": "create",
1441
+ "objectName": "@happyvertical/smrt-facts:FactContent"
1442
+ },
1443
+ {
1444
+ "kind": "cli",
1445
+ "name": "factcontent_update",
1446
+ "operation": "update",
1447
+ "objectName": "@happyvertical/smrt-facts:FactContent"
1448
+ },
1449
+ {
1450
+ "kind": "cli",
1451
+ "name": "factcontent_delete",
1452
+ "operation": "delete",
1453
+ "objectName": "@happyvertical/smrt-facts:FactContent"
1454
+ },
1455
+ {
1456
+ "kind": "mcp",
1457
+ "name": "factcontent_list",
1458
+ "operation": "list",
1459
+ "objectName": "@happyvertical/smrt-facts:FactContent"
1460
+ },
1461
+ {
1462
+ "kind": "mcp",
1463
+ "name": "factcontent_get",
1464
+ "operation": "get",
1465
+ "objectName": "@happyvertical/smrt-facts:FactContent"
1466
+ },
1467
+ {
1468
+ "kind": "mcp",
1469
+ "name": "factcontent_create",
1470
+ "operation": "create",
1471
+ "objectName": "@happyvertical/smrt-facts:FactContent"
1472
+ },
1473
+ {
1474
+ "kind": "api",
1475
+ "name": "factevidences.list",
1476
+ "operation": "list",
1477
+ "objectName": "@happyvertical/smrt-facts:FactEvidence",
1478
+ "path": "/factevidences",
1479
+ "method": "GET"
1480
+ },
1481
+ {
1482
+ "kind": "api",
1483
+ "name": "factevidences.get",
1484
+ "operation": "get",
1485
+ "objectName": "@happyvertical/smrt-facts:FactEvidence",
1486
+ "path": "/factevidences/[id]",
1487
+ "method": "GET"
1488
+ },
1489
+ {
1490
+ "kind": "api",
1491
+ "name": "factevidences.create",
1492
+ "operation": "create",
1493
+ "objectName": "@happyvertical/smrt-facts:FactEvidence",
1494
+ "path": "/factevidences",
1495
+ "method": "POST"
1496
+ },
1497
+ {
1498
+ "kind": "api",
1499
+ "name": "factevidences.delete",
1500
+ "operation": "delete",
1501
+ "objectName": "@happyvertical/smrt-facts:FactEvidence",
1502
+ "path": "/factevidences/[id]",
1503
+ "method": "DELETE"
1504
+ },
1505
+ {
1506
+ "kind": "cli",
1507
+ "name": "factevidence_list",
1508
+ "operation": "list",
1509
+ "objectName": "@happyvertical/smrt-facts:FactEvidence"
1510
+ },
1511
+ {
1512
+ "kind": "cli",
1513
+ "name": "factevidence_get",
1514
+ "operation": "get",
1515
+ "objectName": "@happyvertical/smrt-facts:FactEvidence"
1516
+ },
1517
+ {
1518
+ "kind": "cli",
1519
+ "name": "factevidence_create",
1520
+ "operation": "create",
1521
+ "objectName": "@happyvertical/smrt-facts:FactEvidence"
1522
+ },
1523
+ {
1524
+ "kind": "cli",
1525
+ "name": "factevidence_update",
1526
+ "operation": "update",
1527
+ "objectName": "@happyvertical/smrt-facts:FactEvidence"
1528
+ },
1529
+ {
1530
+ "kind": "cli",
1531
+ "name": "factevidence_delete",
1532
+ "operation": "delete",
1533
+ "objectName": "@happyvertical/smrt-facts:FactEvidence"
1534
+ },
1535
+ {
1536
+ "kind": "mcp",
1537
+ "name": "factevidence_list",
1538
+ "operation": "list",
1539
+ "objectName": "@happyvertical/smrt-facts:FactEvidence"
1540
+ },
1541
+ {
1542
+ "kind": "mcp",
1543
+ "name": "factevidence_get",
1544
+ "operation": "get",
1545
+ "objectName": "@happyvertical/smrt-facts:FactEvidence"
1546
+ },
1547
+ {
1548
+ "kind": "mcp",
1549
+ "name": "factevidence_create",
1550
+ "operation": "create",
1551
+ "objectName": "@happyvertical/smrt-facts:FactEvidence"
1552
+ },
1553
+ {
1554
+ "kind": "api",
1555
+ "name": "factsources.list",
1556
+ "operation": "list",
1557
+ "objectName": "@happyvertical/smrt-facts:FactSource",
1558
+ "path": "/factsources",
1559
+ "method": "GET"
1560
+ },
1561
+ {
1562
+ "kind": "api",
1563
+ "name": "factsources.get",
1564
+ "operation": "get",
1565
+ "objectName": "@happyvertical/smrt-facts:FactSource",
1566
+ "path": "/factsources/[id]",
1567
+ "method": "GET"
1568
+ },
1569
+ {
1570
+ "kind": "api",
1571
+ "name": "factsources.create",
1572
+ "operation": "create",
1573
+ "objectName": "@happyvertical/smrt-facts:FactSource",
1574
+ "path": "/factsources",
1575
+ "method": "POST"
1576
+ },
1577
+ {
1578
+ "kind": "api",
1579
+ "name": "factsources.delete",
1580
+ "operation": "delete",
1581
+ "objectName": "@happyvertical/smrt-facts:FactSource",
1582
+ "path": "/factsources/[id]",
1583
+ "method": "DELETE"
1584
+ },
1585
+ {
1586
+ "kind": "cli",
1587
+ "name": "factsource_list",
1588
+ "operation": "list",
1589
+ "objectName": "@happyvertical/smrt-facts:FactSource"
1590
+ },
1591
+ {
1592
+ "kind": "cli",
1593
+ "name": "factsource_get",
1594
+ "operation": "get",
1595
+ "objectName": "@happyvertical/smrt-facts:FactSource"
1596
+ },
1597
+ {
1598
+ "kind": "cli",
1599
+ "name": "factsource_create",
1600
+ "operation": "create",
1601
+ "objectName": "@happyvertical/smrt-facts:FactSource"
1602
+ },
1603
+ {
1604
+ "kind": "cli",
1605
+ "name": "factsource_update",
1606
+ "operation": "update",
1607
+ "objectName": "@happyvertical/smrt-facts:FactSource"
1608
+ },
1609
+ {
1610
+ "kind": "cli",
1611
+ "name": "factsource_delete",
1612
+ "operation": "delete",
1613
+ "objectName": "@happyvertical/smrt-facts:FactSource"
1614
+ },
1615
+ {
1616
+ "kind": "mcp",
1617
+ "name": "factsource_list",
1618
+ "operation": "list",
1619
+ "objectName": "@happyvertical/smrt-facts:FactSource"
1620
+ },
1621
+ {
1622
+ "kind": "mcp",
1623
+ "name": "factsource_get",
1624
+ "operation": "get",
1625
+ "objectName": "@happyvertical/smrt-facts:FactSource"
1626
+ },
1627
+ {
1628
+ "kind": "mcp",
1629
+ "name": "factsource_create",
1630
+ "operation": "create",
1631
+ "objectName": "@happyvertical/smrt-facts:FactSource"
1632
+ },
1633
+ {
1634
+ "kind": "api",
1635
+ "name": "factsubjects.list",
1636
+ "operation": "list",
1637
+ "objectName": "@happyvertical/smrt-facts:FactSubject",
1638
+ "path": "/factsubjects",
1639
+ "method": "GET"
1640
+ },
1641
+ {
1642
+ "kind": "api",
1643
+ "name": "factsubjects.get",
1644
+ "operation": "get",
1645
+ "objectName": "@happyvertical/smrt-facts:FactSubject",
1646
+ "path": "/factsubjects/[id]",
1647
+ "method": "GET"
1648
+ },
1649
+ {
1650
+ "kind": "api",
1651
+ "name": "factsubjects.create",
1652
+ "operation": "create",
1653
+ "objectName": "@happyvertical/smrt-facts:FactSubject",
1654
+ "path": "/factsubjects",
1655
+ "method": "POST"
1656
+ },
1657
+ {
1658
+ "kind": "api",
1659
+ "name": "factsubjects.delete",
1660
+ "operation": "delete",
1661
+ "objectName": "@happyvertical/smrt-facts:FactSubject",
1662
+ "path": "/factsubjects/[id]",
1663
+ "method": "DELETE"
1664
+ },
1665
+ {
1666
+ "kind": "cli",
1667
+ "name": "factsubject_list",
1668
+ "operation": "list",
1669
+ "objectName": "@happyvertical/smrt-facts:FactSubject"
1670
+ },
1671
+ {
1672
+ "kind": "cli",
1673
+ "name": "factsubject_get",
1674
+ "operation": "get",
1675
+ "objectName": "@happyvertical/smrt-facts:FactSubject"
1676
+ },
1677
+ {
1678
+ "kind": "cli",
1679
+ "name": "factsubject_create",
1680
+ "operation": "create",
1681
+ "objectName": "@happyvertical/smrt-facts:FactSubject"
1682
+ },
1683
+ {
1684
+ "kind": "cli",
1685
+ "name": "factsubject_update",
1686
+ "operation": "update",
1687
+ "objectName": "@happyvertical/smrt-facts:FactSubject"
1688
+ },
1689
+ {
1690
+ "kind": "cli",
1691
+ "name": "factsubject_delete",
1692
+ "operation": "delete",
1693
+ "objectName": "@happyvertical/smrt-facts:FactSubject"
1694
+ },
1695
+ {
1696
+ "kind": "mcp",
1697
+ "name": "factsubject_list",
1698
+ "operation": "list",
1699
+ "objectName": "@happyvertical/smrt-facts:FactSubject"
1700
+ },
1701
+ {
1702
+ "kind": "mcp",
1703
+ "name": "factsubject_get",
1704
+ "operation": "get",
1705
+ "objectName": "@happyvertical/smrt-facts:FactSubject"
1706
+ },
1707
+ {
1708
+ "kind": "mcp",
1709
+ "name": "factsubject_create",
1710
+ "operation": "create",
1711
+ "objectName": "@happyvertical/smrt-facts:FactSubject"
1712
+ },
1713
+ {
1714
+ "kind": "api",
1715
+ "name": "facttags.list",
1716
+ "operation": "list",
1717
+ "objectName": "@happyvertical/smrt-facts:FactTag",
1718
+ "path": "/facttags",
1719
+ "method": "GET"
1720
+ },
1721
+ {
1722
+ "kind": "api",
1723
+ "name": "facttags.get",
1724
+ "operation": "get",
1725
+ "objectName": "@happyvertical/smrt-facts:FactTag",
1726
+ "path": "/facttags/[id]",
1727
+ "method": "GET"
1728
+ },
1729
+ {
1730
+ "kind": "api",
1731
+ "name": "facttags.create",
1732
+ "operation": "create",
1733
+ "objectName": "@happyvertical/smrt-facts:FactTag",
1734
+ "path": "/facttags",
1735
+ "method": "POST"
1736
+ },
1737
+ {
1738
+ "kind": "api",
1739
+ "name": "facttags.delete",
1740
+ "operation": "delete",
1741
+ "objectName": "@happyvertical/smrt-facts:FactTag",
1742
+ "path": "/facttags/[id]",
1743
+ "method": "DELETE"
1744
+ },
1745
+ {
1746
+ "kind": "cli",
1747
+ "name": "facttag_list",
1748
+ "operation": "list",
1749
+ "objectName": "@happyvertical/smrt-facts:FactTag"
1750
+ },
1751
+ {
1752
+ "kind": "cli",
1753
+ "name": "facttag_get",
1754
+ "operation": "get",
1755
+ "objectName": "@happyvertical/smrt-facts:FactTag"
1756
+ },
1757
+ {
1758
+ "kind": "cli",
1759
+ "name": "facttag_create",
1760
+ "operation": "create",
1761
+ "objectName": "@happyvertical/smrt-facts:FactTag"
1762
+ },
1763
+ {
1764
+ "kind": "cli",
1765
+ "name": "facttag_update",
1766
+ "operation": "update",
1767
+ "objectName": "@happyvertical/smrt-facts:FactTag"
1768
+ },
1769
+ {
1770
+ "kind": "cli",
1771
+ "name": "facttag_delete",
1772
+ "operation": "delete",
1773
+ "objectName": "@happyvertical/smrt-facts:FactTag"
1774
+ },
1775
+ {
1776
+ "kind": "mcp",
1777
+ "name": "facttag_list",
1778
+ "operation": "list",
1779
+ "objectName": "@happyvertical/smrt-facts:FactTag"
1780
+ },
1781
+ {
1782
+ "kind": "mcp",
1783
+ "name": "facttag_get",
1784
+ "operation": "get",
1785
+ "objectName": "@happyvertical/smrt-facts:FactTag"
1786
+ },
1787
+ {
1788
+ "kind": "mcp",
1789
+ "name": "facttag_create",
1790
+ "operation": "create",
1791
+ "objectName": "@happyvertical/smrt-facts:FactTag"
1792
+ },
1793
+ {
1794
+ "kind": "api",
1795
+ "name": "facts.list",
1796
+ "operation": "list",
1797
+ "objectName": "@happyvertical/smrt-facts:Fact",
1798
+ "path": "/facts",
1799
+ "method": "GET"
1800
+ },
1801
+ {
1802
+ "kind": "api",
1803
+ "name": "facts.get",
1804
+ "operation": "get",
1805
+ "objectName": "@happyvertical/smrt-facts:Fact",
1806
+ "path": "/facts/[id]",
1807
+ "method": "GET"
1808
+ },
1809
+ {
1810
+ "kind": "api",
1811
+ "name": "facts.create",
1812
+ "operation": "create",
1813
+ "objectName": "@happyvertical/smrt-facts:Fact",
1814
+ "path": "/facts",
1815
+ "method": "POST"
1816
+ },
1817
+ {
1818
+ "kind": "api",
1819
+ "name": "facts.update",
1820
+ "operation": "update",
1821
+ "objectName": "@happyvertical/smrt-facts:Fact",
1822
+ "path": "/facts/[id]",
1823
+ "method": "PATCH"
1824
+ },
1825
+ {
1826
+ "kind": "api",
1827
+ "name": "facts.delete",
1828
+ "operation": "delete",
1829
+ "objectName": "@happyvertical/smrt-facts:Fact",
1830
+ "path": "/facts/[id]",
1831
+ "method": "DELETE"
1832
+ },
1833
+ {
1834
+ "kind": "cli",
1835
+ "name": "fact_list",
1836
+ "operation": "list",
1837
+ "objectName": "@happyvertical/smrt-facts:Fact"
1838
+ },
1839
+ {
1840
+ "kind": "cli",
1841
+ "name": "fact_get",
1842
+ "operation": "get",
1843
+ "objectName": "@happyvertical/smrt-facts:Fact"
1844
+ },
1845
+ {
1846
+ "kind": "cli",
1847
+ "name": "fact_create",
1848
+ "operation": "create",
1849
+ "objectName": "@happyvertical/smrt-facts:Fact"
1850
+ },
1851
+ {
1852
+ "kind": "cli",
1853
+ "name": "fact_update",
1854
+ "operation": "update",
1855
+ "objectName": "@happyvertical/smrt-facts:Fact"
1856
+ },
1857
+ {
1858
+ "kind": "cli",
1859
+ "name": "fact_delete",
1860
+ "operation": "delete",
1861
+ "objectName": "@happyvertical/smrt-facts:Fact"
1862
+ },
1863
+ {
1864
+ "kind": "mcp",
1865
+ "name": "fact_list",
1866
+ "operation": "list",
1867
+ "objectName": "@happyvertical/smrt-facts:Fact"
1868
+ },
1869
+ {
1870
+ "kind": "mcp",
1871
+ "name": "fact_get",
1872
+ "operation": "get",
1873
+ "objectName": "@happyvertical/smrt-facts:Fact"
1874
+ },
1875
+ {
1876
+ "kind": "mcp",
1877
+ "name": "fact_create",
1878
+ "operation": "create",
1879
+ "objectName": "@happyvertical/smrt-facts:Fact"
1880
+ },
1881
+ {
1882
+ "kind": "mcp",
1883
+ "name": "fact_update",
1884
+ "operation": "update",
1885
+ "objectName": "@happyvertical/smrt-facts:Fact"
1886
+ }
1887
+ ],
1888
+ "prompts": [
1889
+ {
1890
+ "filePath": "src/prompts.ts"
1891
+ }
1892
+ ],
1893
+ "relationshipsV2": {
1894
+ "foreignKeyFields": 6,
1895
+ "crossPackageRefFields": 1,
1896
+ "junctionCollections": 1,
1897
+ "hierarchicalObjects": 0,
1898
+ "polymorphicAssociations": 0,
1899
+ "uuidColumns": 25
1900
+ },
1901
+ "agentDoc": "# @happyvertical/smrt-facts\n\nDistributed knowledge base with semantic deduplication, provenance tracking, and evolution chains.\n\n## Models\n\n- **Fact**: atomic knowledge unit with `textRefined`, auto-generated embeddings, status (active/pending/superseded), confidence score. Evolution via `previousFactId` (predecessor→successor with corrections/contradictions/refinements). NOT a structural hierarchy — Fact deliberately does not extend `SmrtHierarchical`; `parentId` is reserved for true structural parents elsewhere in the framework.\n- **FactSource**: provenance — URL, type, `credibility` (0-1), extraction timestamp.\n- **FactSubject**: polymorphic entity linking — `entityType` + `entityId` (no FK, string-based). `conflictColumns: ['fact_id', 'entity_type', 'entity_id']`.\n- **FactContent**: join table linking facts to Content. `conflictColumns: ['fact_id', 'content_id', 'relationship']`.\n\n## Semantic Reconciliation\n\n`reconcile()` uses three zones:\n- **≥0.85 similarity**: auto-merge (same fact, update metadata)\n- **0.60–0.85**: AI disambiguation — asks model to decide create/merge/branch\n- **<0.60**: new fact (no match)\n\n## Evolution Chains\n\n`getEvolutionChain()` (root→current), `getLatestInChain()` (highest confidence leaf), `getEvolutionTree()` (BFS all descendants). All traversals use `visited` Set for cycle detection.\n\n## Confidence Scoring\n\n`recalculateConfidence()`: weighted formula from `sourceCount`, `avgSourceCredibility`, `daysSinceLastSource`, `corroborationScore`.\n\n## Gotchas\n\n- **Embedding failures non-fatal**: try/catch with silent fail — doesn't block fact creation\n- **Metadata auto-stringify**: constructor `JSON.stringify`s objects; getters return parsed objects\n- **AI disambiguation fallback**: if AI fails, defaults to branch (safer than merge)\n- **Embeddings config**: `fields: ['textRefined'], autoGenerate: true, combinedField: {...}`\n- **Optional tenancy** with nullable tenantId. `findWithGlobals(tenantId)` for tenant + global facts\n"
1902
+ }