@happyvertical/smrt-voice 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,1158 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "generatedAt": "2026-06-23T01:12:32.146Z",
4
+ "packageName": "@happyvertical/smrt-voice",
5
+ "packageVersion": "0.30.0",
6
+ "sourceManifestPath": "dist/manifest.json",
7
+ "agentDocPath": "AGENTS.md",
8
+ "sourceHashes": {
9
+ "manifest": "aa3da9489d7bc4e8c20434d2e91acaa31dc8396d0d0a9b2cb66e8d3f2aefc531",
10
+ "packageJson": "0feaf4a2ae4e9877d4f9590b771ded413d754ad267c28ecdeebd8f918384bfd6",
11
+ "agents": "49a29e74f9bd018c1141f0d39468ad71d91d4ba078e2e82e828b7bf5a8f775e9"
12
+ },
13
+ "exports": [
14
+ ".",
15
+ "./manifest",
16
+ "./manifest.json"
17
+ ],
18
+ "dependencies": {
19
+ "@happyvertical/smrt-assets": "workspace:*",
20
+ "@happyvertical/smrt-config": "workspace:*",
21
+ "@happyvertical/smrt-content": "workspace:*",
22
+ "@happyvertical/smrt-core": "workspace:*",
23
+ "@happyvertical/smrt-tenancy": "workspace:*",
24
+ "@happyvertical/utils": "catalog:",
25
+ "@happyvertical/logger": "catalog:",
26
+ "@happyvertical/smrt-vitest": "workspace:*",
27
+ "@happyvertical/sql": "catalog:",
28
+ "@types/node": "25.0.9",
29
+ "typescript": "^5.9.3",
30
+ "vite": "^7.3.1",
31
+ "vitest": "^4.0.17",
32
+ "svelte": "^5.0.0"
33
+ },
34
+ "smrtDependencies": [
35
+ "@happyvertical/smrt-assets",
36
+ "@happyvertical/smrt-config",
37
+ "@happyvertical/smrt-content",
38
+ "@happyvertical/smrt-core",
39
+ "@happyvertical/smrt-tenancy",
40
+ "@happyvertical/smrt-vitest"
41
+ ],
42
+ "sdkDependencies": [
43
+ "@happyvertical/logger",
44
+ "@happyvertical/sql",
45
+ "@happyvertical/utils"
46
+ ],
47
+ "tags": [],
48
+ "risks": [],
49
+ "objects": [
50
+ {
51
+ "name": "VoiceOutput",
52
+ "qualifiedName": "@happyvertical/smrt-voice:VoiceOutput",
53
+ "collection": "contents",
54
+ "tableName": "contents",
55
+ "packageName": "@happyvertical/smrt-voice",
56
+ "extends": "Content",
57
+ "fields": [
58
+ {
59
+ "name": "created_at",
60
+ "type": "datetime",
61
+ "required": false,
62
+ "columnType": "TIMESTAMP"
63
+ },
64
+ {
65
+ "name": "updated_at",
66
+ "type": "datetime",
67
+ "required": false,
68
+ "columnType": "TIMESTAMP"
69
+ },
70
+ {
71
+ "name": "tenantId",
72
+ "type": "text",
73
+ "required": false,
74
+ "columnType": "UUID"
75
+ },
76
+ {
77
+ "name": "type",
78
+ "type": "text",
79
+ "required": false,
80
+ "columnType": "TEXT"
81
+ },
82
+ {
83
+ "name": "variant",
84
+ "type": "text",
85
+ "required": false,
86
+ "columnType": "TEXT"
87
+ },
88
+ {
89
+ "name": "fileKey",
90
+ "type": "text",
91
+ "required": false,
92
+ "columnType": "TEXT"
93
+ },
94
+ {
95
+ "name": "author",
96
+ "type": "text",
97
+ "required": false,
98
+ "columnType": "TEXT"
99
+ },
100
+ {
101
+ "name": "name",
102
+ "type": "text",
103
+ "required": true,
104
+ "columnType": "TEXT"
105
+ },
106
+ {
107
+ "name": "title",
108
+ "type": "text",
109
+ "required": false,
110
+ "columnType": "TEXT"
111
+ },
112
+ {
113
+ "name": "description",
114
+ "type": "text",
115
+ "required": false,
116
+ "columnType": "TEXT"
117
+ },
118
+ {
119
+ "name": "body",
120
+ "type": "text",
121
+ "required": false,
122
+ "columnType": "TEXT"
123
+ },
124
+ {
125
+ "name": "bodyFormat",
126
+ "type": "text",
127
+ "required": false,
128
+ "columnType": "TEXT"
129
+ },
130
+ {
131
+ "name": "publish_date",
132
+ "type": "datetime",
133
+ "required": false,
134
+ "columnType": "TIMESTAMP"
135
+ },
136
+ {
137
+ "name": "url",
138
+ "type": "text",
139
+ "required": false,
140
+ "columnType": "TEXT"
141
+ },
142
+ {
143
+ "name": "source",
144
+ "type": "text",
145
+ "required": false,
146
+ "columnType": "TEXT"
147
+ },
148
+ {
149
+ "name": "original_url",
150
+ "type": "text",
151
+ "required": false,
152
+ "columnType": "TEXT"
153
+ },
154
+ {
155
+ "name": "language",
156
+ "type": "text",
157
+ "required": false,
158
+ "columnType": "TEXT"
159
+ },
160
+ {
161
+ "name": "tags",
162
+ "type": "json",
163
+ "required": false,
164
+ "columnType": "JSON"
165
+ },
166
+ {
167
+ "name": "category",
168
+ "type": "text",
169
+ "required": false,
170
+ "columnType": "TEXT"
171
+ },
172
+ {
173
+ "name": "status",
174
+ "type": "text",
175
+ "required": false,
176
+ "columnType": "TEXT"
177
+ },
178
+ {
179
+ "name": "state",
180
+ "type": "text",
181
+ "required": false,
182
+ "columnType": "TEXT"
183
+ },
184
+ {
185
+ "name": "metadata",
186
+ "type": "json",
187
+ "required": false,
188
+ "columnType": "JSON"
189
+ },
190
+ {
191
+ "name": "thumbnailAssetId",
192
+ "type": "crossPackageRef",
193
+ "required": false,
194
+ "related": "@happyvertical/smrt-assets:Asset",
195
+ "columnType": "UUID"
196
+ },
197
+ {
198
+ "name": "voiceProfileId",
199
+ "type": "foreignKey",
200
+ "required": false,
201
+ "related": "() => VoiceProfile",
202
+ "columnType": "UUID"
203
+ },
204
+ {
205
+ "name": "sourceText",
206
+ "type": "text",
207
+ "required": false,
208
+ "columnType": "TEXT"
209
+ },
210
+ {
211
+ "name": "audioAssetId",
212
+ "type": "crossPackageRef",
213
+ "required": false,
214
+ "related": "@happyvertical/smrt-assets:Asset",
215
+ "columnType": "UUID"
216
+ },
217
+ {
218
+ "name": "duration",
219
+ "type": "integer",
220
+ "required": false,
221
+ "columnType": "INTEGER"
222
+ },
223
+ {
224
+ "name": "wordTimings",
225
+ "type": "json",
226
+ "required": false,
227
+ "columnType": "JSON"
228
+ },
229
+ {
230
+ "name": "audioMetadata",
231
+ "type": "json",
232
+ "required": false,
233
+ "columnType": "JSON"
234
+ }
235
+ ],
236
+ "relationships": [
237
+ {
238
+ "name": "thumbnailAssetId",
239
+ "type": "crossPackageRef",
240
+ "required": false,
241
+ "related": "@happyvertical/smrt-assets:Asset",
242
+ "columnType": "UUID"
243
+ },
244
+ {
245
+ "name": "voiceProfileId",
246
+ "type": "foreignKey",
247
+ "required": false,
248
+ "related": "() => VoiceProfile",
249
+ "columnType": "UUID"
250
+ },
251
+ {
252
+ "name": "audioAssetId",
253
+ "type": "crossPackageRef",
254
+ "required": false,
255
+ "related": "@happyvertical/smrt-assets:Asset",
256
+ "columnType": "UUID"
257
+ }
258
+ ],
259
+ "methods": [
260
+ "addAsset",
261
+ "addFact",
262
+ "addReference",
263
+ "browseFacts",
264
+ "classifyConstraintError",
265
+ "clearEmbeddings",
266
+ "createVersion",
267
+ "delete",
268
+ "describe",
269
+ "destroy",
270
+ "do",
271
+ "evaluateReviewProfile",
272
+ "evaluateReviewProfileAction",
273
+ "executeToolCall",
274
+ "forget",
275
+ "forgetScope",
276
+ "generateEmbeddings",
277
+ "generateThumbnail",
278
+ "getAiUsageSnapshot",
279
+ "getAncestorPaths",
280
+ "getAssets",
281
+ "getAvailableTools",
282
+ "getCategorySegments",
283
+ "getCorrections",
284
+ "getEmbedding",
285
+ "getFactAuditState",
286
+ "getFactAuditStateAction",
287
+ "getFactLinks",
288
+ "getFacts",
289
+ "getFactsState",
290
+ "getFields",
291
+ "getGovernanceState",
292
+ "getGovernanceStateAction",
293
+ "getId",
294
+ "getMetadata",
295
+ "getParentCategory",
296
+ "getPublishedTransparency",
297
+ "getPublishedTransparencyAction",
298
+ "getReferenceDrift",
299
+ "getReferences",
300
+ "getRelated",
301
+ "getReviewRequirements",
302
+ "getReviews",
303
+ "getRootCategory",
304
+ "getSavedId",
305
+ "getSlug",
306
+ "getThumbnail",
307
+ "getVersions",
308
+ "getWordAtTime",
309
+ "hasStaleEmbeddings",
310
+ "initialize",
311
+ "is",
312
+ "isGoverned",
313
+ "isInCategory",
314
+ "isReadyForReviewProfile",
315
+ "isRelatedLoaded",
316
+ "isSaved",
317
+ "issueCorrection",
318
+ "issueCorrectionAction",
319
+ "listAiUsage",
320
+ "listCorrections",
321
+ "listReviewProfilesAction",
322
+ "listReviews",
323
+ "listVersions",
324
+ "loadDataFromDb",
325
+ "loadFromId",
326
+ "loadFromSlug",
327
+ "loadReferences",
328
+ "loadRelated",
329
+ "loadRelatedMany",
330
+ "markAsPersisted",
331
+ "mutateVersionAction",
332
+ "previewTransparency",
333
+ "previewTransparencyAction",
334
+ "recall",
335
+ "recallAll",
336
+ "recheckFactClaims",
337
+ "recheckFactClaimsAction",
338
+ "remember",
339
+ "removeAsset",
340
+ "removeFact",
341
+ "removeReference",
342
+ "repairFactAudit",
343
+ "repairFactAuditAction",
344
+ "repairFactEvidence",
345
+ "repairFactEvidenceAction",
346
+ "resetAiUsage",
347
+ "resolveGovernance",
348
+ "restoreFromVersion",
349
+ "reviewFacts",
350
+ "reviewSafety",
351
+ "runReview",
352
+ "runReviewAction",
353
+ "save",
354
+ "setMetadata",
355
+ "setThumbnail",
356
+ "summarizeAiUsage",
357
+ "syncFacts",
358
+ "syncFactsState",
359
+ "toJSON",
360
+ "toPlainObject",
361
+ "toPublicJSON",
362
+ "updateFactEvidenceStatus",
363
+ "updateFactEvidenceStatusAction",
364
+ "updateMetadata"
365
+ ],
366
+ "surfaces": [
367
+ {
368
+ "kind": "api",
369
+ "name": "contents.list",
370
+ "operation": "list",
371
+ "objectName": "@happyvertical/smrt-voice:VoiceOutput",
372
+ "path": "/contents",
373
+ "method": "GET"
374
+ },
375
+ {
376
+ "kind": "api",
377
+ "name": "contents.get",
378
+ "operation": "get",
379
+ "objectName": "@happyvertical/smrt-voice:VoiceOutput",
380
+ "path": "/contents/[id]",
381
+ "method": "GET"
382
+ },
383
+ {
384
+ "kind": "api",
385
+ "name": "contents.create",
386
+ "operation": "create",
387
+ "objectName": "@happyvertical/smrt-voice:VoiceOutput",
388
+ "path": "/contents",
389
+ "method": "POST"
390
+ },
391
+ {
392
+ "kind": "api",
393
+ "name": "contents.delete",
394
+ "operation": "delete",
395
+ "objectName": "@happyvertical/smrt-voice:VoiceOutput",
396
+ "path": "/contents/[id]",
397
+ "method": "DELETE"
398
+ },
399
+ {
400
+ "kind": "cli",
401
+ "name": "voiceoutput_list",
402
+ "operation": "list",
403
+ "objectName": "@happyvertical/smrt-voice:VoiceOutput"
404
+ },
405
+ {
406
+ "kind": "cli",
407
+ "name": "voiceoutput_get",
408
+ "operation": "get",
409
+ "objectName": "@happyvertical/smrt-voice:VoiceOutput"
410
+ },
411
+ {
412
+ "kind": "cli",
413
+ "name": "voiceoutput_create",
414
+ "operation": "create",
415
+ "objectName": "@happyvertical/smrt-voice:VoiceOutput"
416
+ },
417
+ {
418
+ "kind": "cli",
419
+ "name": "voiceoutput_update",
420
+ "operation": "update",
421
+ "objectName": "@happyvertical/smrt-voice:VoiceOutput"
422
+ },
423
+ {
424
+ "kind": "cli",
425
+ "name": "voiceoutput_delete",
426
+ "operation": "delete",
427
+ "objectName": "@happyvertical/smrt-voice:VoiceOutput"
428
+ },
429
+ {
430
+ "kind": "mcp",
431
+ "name": "voiceoutput_list",
432
+ "operation": "list",
433
+ "objectName": "@happyvertical/smrt-voice:VoiceOutput"
434
+ },
435
+ {
436
+ "kind": "mcp",
437
+ "name": "voiceoutput_get",
438
+ "operation": "get",
439
+ "objectName": "@happyvertical/smrt-voice:VoiceOutput"
440
+ }
441
+ ],
442
+ "relationshipFeatures": [
443
+ "crossPackageRef",
444
+ "foreignKey",
445
+ "uuidColumns"
446
+ ],
447
+ "tags": [],
448
+ "risks": []
449
+ },
450
+ {
451
+ "name": "VoiceProfile",
452
+ "qualifiedName": "@happyvertical/smrt-voice:VoiceProfile",
453
+ "collection": "voiceprofiles",
454
+ "tableName": "voice_profiles",
455
+ "packageName": "@happyvertical/smrt-voice",
456
+ "extends": "SmrtObject",
457
+ "fields": [
458
+ {
459
+ "name": "created_at",
460
+ "type": "datetime",
461
+ "required": false,
462
+ "columnType": "TIMESTAMP"
463
+ },
464
+ {
465
+ "name": "updated_at",
466
+ "type": "datetime",
467
+ "required": false,
468
+ "columnType": "TIMESTAMP"
469
+ },
470
+ {
471
+ "name": "tenantId",
472
+ "type": "text",
473
+ "required": false,
474
+ "columnType": "UUID"
475
+ },
476
+ {
477
+ "name": "name",
478
+ "type": "text",
479
+ "required": false,
480
+ "columnType": "TEXT"
481
+ },
482
+ {
483
+ "name": "description",
484
+ "type": "text",
485
+ "required": false,
486
+ "columnType": "TEXT"
487
+ },
488
+ {
489
+ "name": "language",
490
+ "type": "text",
491
+ "required": false,
492
+ "columnType": "TEXT"
493
+ },
494
+ {
495
+ "name": "gender",
496
+ "type": "text",
497
+ "required": false,
498
+ "columnType": "TEXT"
499
+ },
500
+ {
501
+ "name": "designPrompt",
502
+ "type": "text",
503
+ "required": false,
504
+ "columnType": "TEXT"
505
+ },
506
+ {
507
+ "name": "sampleAssetId",
508
+ "type": "crossPackageRef",
509
+ "required": false,
510
+ "related": "@happyvertical/smrt-assets:Asset",
511
+ "columnType": "UUID"
512
+ },
513
+ {
514
+ "name": "voiceData",
515
+ "type": "json",
516
+ "required": false,
517
+ "columnType": "JSON"
518
+ },
519
+ {
520
+ "name": "defaultSpeed",
521
+ "type": "decimal",
522
+ "required": false,
523
+ "columnType": "REAL"
524
+ },
525
+ {
526
+ "name": "defaultPitch",
527
+ "type": "integer",
528
+ "required": false,
529
+ "columnType": "INTEGER"
530
+ },
531
+ {
532
+ "name": "status",
533
+ "type": "text",
534
+ "required": false,
535
+ "columnType": "TEXT"
536
+ },
537
+ {
538
+ "name": "provider",
539
+ "type": "text",
540
+ "required": false,
541
+ "columnType": "TEXT"
542
+ },
543
+ {
544
+ "name": "errorMessage",
545
+ "type": "text",
546
+ "required": false,
547
+ "columnType": "TEXT"
548
+ }
549
+ ],
550
+ "relationships": [
551
+ {
552
+ "name": "sampleAssetId",
553
+ "type": "crossPackageRef",
554
+ "required": false,
555
+ "related": "@happyvertical/smrt-assets:Asset",
556
+ "columnType": "UUID"
557
+ }
558
+ ],
559
+ "methods": [
560
+ "classifyConstraintError",
561
+ "clearEmbeddings",
562
+ "delete",
563
+ "describe",
564
+ "destroy",
565
+ "do",
566
+ "executeToolCall",
567
+ "forget",
568
+ "forgetScope",
569
+ "generateEmbeddings",
570
+ "getAiUsageSnapshot",
571
+ "getAvailableTools",
572
+ "getEmbedding",
573
+ "getFields",
574
+ "getId",
575
+ "getRelated",
576
+ "getSavedId",
577
+ "getSlug",
578
+ "hasStaleEmbeddings",
579
+ "initialize",
580
+ "is",
581
+ "isRelatedLoaded",
582
+ "isSaved",
583
+ "listAiUsage",
584
+ "loadDataFromDb",
585
+ "loadFromId",
586
+ "loadFromSlug",
587
+ "loadRelated",
588
+ "loadRelatedMany",
589
+ "markAsPersisted",
590
+ "recall",
591
+ "recallAll",
592
+ "remember",
593
+ "resetAiUsage",
594
+ "save",
595
+ "summarizeAiUsage",
596
+ "toJSON",
597
+ "toPlainObject",
598
+ "toPublicJSON"
599
+ ],
600
+ "surfaces": [
601
+ {
602
+ "kind": "api",
603
+ "name": "voiceprofiles.list",
604
+ "operation": "list",
605
+ "objectName": "@happyvertical/smrt-voice:VoiceProfile",
606
+ "path": "/voiceprofiles",
607
+ "method": "GET"
608
+ },
609
+ {
610
+ "kind": "api",
611
+ "name": "voiceprofiles.get",
612
+ "operation": "get",
613
+ "objectName": "@happyvertical/smrt-voice:VoiceProfile",
614
+ "path": "/voiceprofiles/[id]",
615
+ "method": "GET"
616
+ },
617
+ {
618
+ "kind": "api",
619
+ "name": "voiceprofiles.create",
620
+ "operation": "create",
621
+ "objectName": "@happyvertical/smrt-voice:VoiceProfile",
622
+ "path": "/voiceprofiles",
623
+ "method": "POST"
624
+ },
625
+ {
626
+ "kind": "api",
627
+ "name": "voiceprofiles.update",
628
+ "operation": "update",
629
+ "objectName": "@happyvertical/smrt-voice:VoiceProfile",
630
+ "path": "/voiceprofiles/[id]",
631
+ "method": "PATCH"
632
+ },
633
+ {
634
+ "kind": "api",
635
+ "name": "voiceprofiles.delete",
636
+ "operation": "delete",
637
+ "objectName": "@happyvertical/smrt-voice:VoiceProfile",
638
+ "path": "/voiceprofiles/[id]",
639
+ "method": "DELETE"
640
+ },
641
+ {
642
+ "kind": "cli",
643
+ "name": "voiceprofile_list",
644
+ "operation": "list",
645
+ "objectName": "@happyvertical/smrt-voice:VoiceProfile"
646
+ },
647
+ {
648
+ "kind": "cli",
649
+ "name": "voiceprofile_get",
650
+ "operation": "get",
651
+ "objectName": "@happyvertical/smrt-voice:VoiceProfile"
652
+ },
653
+ {
654
+ "kind": "cli",
655
+ "name": "voiceprofile_create",
656
+ "operation": "create",
657
+ "objectName": "@happyvertical/smrt-voice:VoiceProfile"
658
+ },
659
+ {
660
+ "kind": "cli",
661
+ "name": "voiceprofile_update",
662
+ "operation": "update",
663
+ "objectName": "@happyvertical/smrt-voice:VoiceProfile"
664
+ },
665
+ {
666
+ "kind": "cli",
667
+ "name": "voiceprofile_delete",
668
+ "operation": "delete",
669
+ "objectName": "@happyvertical/smrt-voice:VoiceProfile"
670
+ },
671
+ {
672
+ "kind": "mcp",
673
+ "name": "voiceprofile_list",
674
+ "operation": "list",
675
+ "objectName": "@happyvertical/smrt-voice:VoiceProfile"
676
+ },
677
+ {
678
+ "kind": "mcp",
679
+ "name": "voiceprofile_get",
680
+ "operation": "get",
681
+ "objectName": "@happyvertical/smrt-voice:VoiceProfile"
682
+ }
683
+ ],
684
+ "relationshipFeatures": [
685
+ "crossPackageRef",
686
+ "uuidColumns"
687
+ ],
688
+ "tags": [],
689
+ "risks": []
690
+ },
691
+ {
692
+ "name": "VoiceSample",
693
+ "qualifiedName": "@happyvertical/smrt-voice:VoiceSample",
694
+ "collection": "voicesamples",
695
+ "tableName": "voice_samples",
696
+ "packageName": "@happyvertical/smrt-voice",
697
+ "extends": "SmrtObject",
698
+ "fields": [
699
+ {
700
+ "name": "created_at",
701
+ "type": "datetime",
702
+ "required": false,
703
+ "columnType": "TIMESTAMP"
704
+ },
705
+ {
706
+ "name": "updated_at",
707
+ "type": "datetime",
708
+ "required": false,
709
+ "columnType": "TIMESTAMP"
710
+ },
711
+ {
712
+ "name": "tenantId",
713
+ "type": "text",
714
+ "required": false,
715
+ "columnType": "UUID"
716
+ },
717
+ {
718
+ "name": "voiceProfileId",
719
+ "type": "foreignKey",
720
+ "required": false,
721
+ "related": "() => VoiceProfile",
722
+ "columnType": "UUID"
723
+ },
724
+ {
725
+ "name": "assetId",
726
+ "type": "crossPackageRef",
727
+ "required": false,
728
+ "related": "@happyvertical/smrt-assets:Asset",
729
+ "columnType": "UUID"
730
+ },
731
+ {
732
+ "name": "duration",
733
+ "type": "integer",
734
+ "required": false,
735
+ "columnType": "INTEGER"
736
+ },
737
+ {
738
+ "name": "transcription",
739
+ "type": "text",
740
+ "required": false,
741
+ "columnType": "TEXT"
742
+ },
743
+ {
744
+ "name": "quality",
745
+ "type": "text",
746
+ "required": false,
747
+ "columnType": "TEXT"
748
+ },
749
+ {
750
+ "name": "sampleRate",
751
+ "type": "integer",
752
+ "required": false,
753
+ "columnType": "INTEGER"
754
+ },
755
+ {
756
+ "name": "channels",
757
+ "type": "integer",
758
+ "required": false,
759
+ "columnType": "INTEGER"
760
+ },
761
+ {
762
+ "name": "format",
763
+ "type": "text",
764
+ "required": false,
765
+ "columnType": "TEXT"
766
+ },
767
+ {
768
+ "name": "isPrimary",
769
+ "type": "boolean",
770
+ "required": false,
771
+ "columnType": "BOOLEAN"
772
+ }
773
+ ],
774
+ "relationships": [
775
+ {
776
+ "name": "voiceProfileId",
777
+ "type": "foreignKey",
778
+ "required": false,
779
+ "related": "() => VoiceProfile",
780
+ "columnType": "UUID"
781
+ },
782
+ {
783
+ "name": "assetId",
784
+ "type": "crossPackageRef",
785
+ "required": false,
786
+ "related": "@happyvertical/smrt-assets:Asset",
787
+ "columnType": "UUID"
788
+ }
789
+ ],
790
+ "methods": [
791
+ "classifyConstraintError",
792
+ "clearEmbeddings",
793
+ "delete",
794
+ "describe",
795
+ "destroy",
796
+ "do",
797
+ "executeToolCall",
798
+ "forget",
799
+ "forgetScope",
800
+ "generateEmbeddings",
801
+ "getAiUsageSnapshot",
802
+ "getAvailableTools",
803
+ "getEmbedding",
804
+ "getFields",
805
+ "getId",
806
+ "getRelated",
807
+ "getSavedId",
808
+ "getSlug",
809
+ "hasStaleEmbeddings",
810
+ "initialize",
811
+ "is",
812
+ "isRelatedLoaded",
813
+ "isSaved",
814
+ "listAiUsage",
815
+ "loadDataFromDb",
816
+ "loadFromId",
817
+ "loadFromSlug",
818
+ "loadRelated",
819
+ "loadRelatedMany",
820
+ "markAsPersisted",
821
+ "recall",
822
+ "recallAll",
823
+ "remember",
824
+ "resetAiUsage",
825
+ "save",
826
+ "summarizeAiUsage",
827
+ "toJSON",
828
+ "toPlainObject",
829
+ "toPublicJSON"
830
+ ],
831
+ "surfaces": [
832
+ {
833
+ "kind": "api",
834
+ "name": "voicesamples.list",
835
+ "operation": "list",
836
+ "objectName": "@happyvertical/smrt-voice:VoiceSample",
837
+ "path": "/voicesamples",
838
+ "method": "GET"
839
+ },
840
+ {
841
+ "kind": "api",
842
+ "name": "voicesamples.get",
843
+ "operation": "get",
844
+ "objectName": "@happyvertical/smrt-voice:VoiceSample",
845
+ "path": "/voicesamples/[id]",
846
+ "method": "GET"
847
+ },
848
+ {
849
+ "kind": "api",
850
+ "name": "voicesamples.create",
851
+ "operation": "create",
852
+ "objectName": "@happyvertical/smrt-voice:VoiceSample",
853
+ "path": "/voicesamples",
854
+ "method": "POST"
855
+ },
856
+ {
857
+ "kind": "api",
858
+ "name": "voicesamples.delete",
859
+ "operation": "delete",
860
+ "objectName": "@happyvertical/smrt-voice:VoiceSample",
861
+ "path": "/voicesamples/[id]",
862
+ "method": "DELETE"
863
+ },
864
+ {
865
+ "kind": "cli",
866
+ "name": "voicesample_list",
867
+ "operation": "list",
868
+ "objectName": "@happyvertical/smrt-voice:VoiceSample"
869
+ },
870
+ {
871
+ "kind": "cli",
872
+ "name": "voicesample_get",
873
+ "operation": "get",
874
+ "objectName": "@happyvertical/smrt-voice:VoiceSample"
875
+ },
876
+ {
877
+ "kind": "cli",
878
+ "name": "voicesample_create",
879
+ "operation": "create",
880
+ "objectName": "@happyvertical/smrt-voice:VoiceSample"
881
+ },
882
+ {
883
+ "kind": "cli",
884
+ "name": "voicesample_update",
885
+ "operation": "update",
886
+ "objectName": "@happyvertical/smrt-voice:VoiceSample"
887
+ },
888
+ {
889
+ "kind": "cli",
890
+ "name": "voicesample_delete",
891
+ "operation": "delete",
892
+ "objectName": "@happyvertical/smrt-voice:VoiceSample"
893
+ },
894
+ {
895
+ "kind": "mcp",
896
+ "name": "voicesample_list",
897
+ "operation": "list",
898
+ "objectName": "@happyvertical/smrt-voice:VoiceSample"
899
+ },
900
+ {
901
+ "kind": "mcp",
902
+ "name": "voicesample_get",
903
+ "operation": "get",
904
+ "objectName": "@happyvertical/smrt-voice:VoiceSample"
905
+ }
906
+ ],
907
+ "relationshipFeatures": [
908
+ "crossPackageRef",
909
+ "foreignKey",
910
+ "uuidColumns"
911
+ ],
912
+ "tags": [],
913
+ "risks": []
914
+ }
915
+ ],
916
+ "surfaces": [
917
+ {
918
+ "kind": "api",
919
+ "name": "contents.list",
920
+ "operation": "list",
921
+ "objectName": "@happyvertical/smrt-voice:VoiceOutput",
922
+ "path": "/contents",
923
+ "method": "GET"
924
+ },
925
+ {
926
+ "kind": "api",
927
+ "name": "contents.get",
928
+ "operation": "get",
929
+ "objectName": "@happyvertical/smrt-voice:VoiceOutput",
930
+ "path": "/contents/[id]",
931
+ "method": "GET"
932
+ },
933
+ {
934
+ "kind": "api",
935
+ "name": "contents.create",
936
+ "operation": "create",
937
+ "objectName": "@happyvertical/smrt-voice:VoiceOutput",
938
+ "path": "/contents",
939
+ "method": "POST"
940
+ },
941
+ {
942
+ "kind": "api",
943
+ "name": "contents.delete",
944
+ "operation": "delete",
945
+ "objectName": "@happyvertical/smrt-voice:VoiceOutput",
946
+ "path": "/contents/[id]",
947
+ "method": "DELETE"
948
+ },
949
+ {
950
+ "kind": "cli",
951
+ "name": "voiceoutput_list",
952
+ "operation": "list",
953
+ "objectName": "@happyvertical/smrt-voice:VoiceOutput"
954
+ },
955
+ {
956
+ "kind": "cli",
957
+ "name": "voiceoutput_get",
958
+ "operation": "get",
959
+ "objectName": "@happyvertical/smrt-voice:VoiceOutput"
960
+ },
961
+ {
962
+ "kind": "cli",
963
+ "name": "voiceoutput_create",
964
+ "operation": "create",
965
+ "objectName": "@happyvertical/smrt-voice:VoiceOutput"
966
+ },
967
+ {
968
+ "kind": "cli",
969
+ "name": "voiceoutput_update",
970
+ "operation": "update",
971
+ "objectName": "@happyvertical/smrt-voice:VoiceOutput"
972
+ },
973
+ {
974
+ "kind": "cli",
975
+ "name": "voiceoutput_delete",
976
+ "operation": "delete",
977
+ "objectName": "@happyvertical/smrt-voice:VoiceOutput"
978
+ },
979
+ {
980
+ "kind": "mcp",
981
+ "name": "voiceoutput_list",
982
+ "operation": "list",
983
+ "objectName": "@happyvertical/smrt-voice:VoiceOutput"
984
+ },
985
+ {
986
+ "kind": "mcp",
987
+ "name": "voiceoutput_get",
988
+ "operation": "get",
989
+ "objectName": "@happyvertical/smrt-voice:VoiceOutput"
990
+ },
991
+ {
992
+ "kind": "api",
993
+ "name": "voiceprofiles.list",
994
+ "operation": "list",
995
+ "objectName": "@happyvertical/smrt-voice:VoiceProfile",
996
+ "path": "/voiceprofiles",
997
+ "method": "GET"
998
+ },
999
+ {
1000
+ "kind": "api",
1001
+ "name": "voiceprofiles.get",
1002
+ "operation": "get",
1003
+ "objectName": "@happyvertical/smrt-voice:VoiceProfile",
1004
+ "path": "/voiceprofiles/[id]",
1005
+ "method": "GET"
1006
+ },
1007
+ {
1008
+ "kind": "api",
1009
+ "name": "voiceprofiles.create",
1010
+ "operation": "create",
1011
+ "objectName": "@happyvertical/smrt-voice:VoiceProfile",
1012
+ "path": "/voiceprofiles",
1013
+ "method": "POST"
1014
+ },
1015
+ {
1016
+ "kind": "api",
1017
+ "name": "voiceprofiles.update",
1018
+ "operation": "update",
1019
+ "objectName": "@happyvertical/smrt-voice:VoiceProfile",
1020
+ "path": "/voiceprofiles/[id]",
1021
+ "method": "PATCH"
1022
+ },
1023
+ {
1024
+ "kind": "api",
1025
+ "name": "voiceprofiles.delete",
1026
+ "operation": "delete",
1027
+ "objectName": "@happyvertical/smrt-voice:VoiceProfile",
1028
+ "path": "/voiceprofiles/[id]",
1029
+ "method": "DELETE"
1030
+ },
1031
+ {
1032
+ "kind": "cli",
1033
+ "name": "voiceprofile_list",
1034
+ "operation": "list",
1035
+ "objectName": "@happyvertical/smrt-voice:VoiceProfile"
1036
+ },
1037
+ {
1038
+ "kind": "cli",
1039
+ "name": "voiceprofile_get",
1040
+ "operation": "get",
1041
+ "objectName": "@happyvertical/smrt-voice:VoiceProfile"
1042
+ },
1043
+ {
1044
+ "kind": "cli",
1045
+ "name": "voiceprofile_create",
1046
+ "operation": "create",
1047
+ "objectName": "@happyvertical/smrt-voice:VoiceProfile"
1048
+ },
1049
+ {
1050
+ "kind": "cli",
1051
+ "name": "voiceprofile_update",
1052
+ "operation": "update",
1053
+ "objectName": "@happyvertical/smrt-voice:VoiceProfile"
1054
+ },
1055
+ {
1056
+ "kind": "cli",
1057
+ "name": "voiceprofile_delete",
1058
+ "operation": "delete",
1059
+ "objectName": "@happyvertical/smrt-voice:VoiceProfile"
1060
+ },
1061
+ {
1062
+ "kind": "mcp",
1063
+ "name": "voiceprofile_list",
1064
+ "operation": "list",
1065
+ "objectName": "@happyvertical/smrt-voice:VoiceProfile"
1066
+ },
1067
+ {
1068
+ "kind": "mcp",
1069
+ "name": "voiceprofile_get",
1070
+ "operation": "get",
1071
+ "objectName": "@happyvertical/smrt-voice:VoiceProfile"
1072
+ },
1073
+ {
1074
+ "kind": "api",
1075
+ "name": "voicesamples.list",
1076
+ "operation": "list",
1077
+ "objectName": "@happyvertical/smrt-voice:VoiceSample",
1078
+ "path": "/voicesamples",
1079
+ "method": "GET"
1080
+ },
1081
+ {
1082
+ "kind": "api",
1083
+ "name": "voicesamples.get",
1084
+ "operation": "get",
1085
+ "objectName": "@happyvertical/smrt-voice:VoiceSample",
1086
+ "path": "/voicesamples/[id]",
1087
+ "method": "GET"
1088
+ },
1089
+ {
1090
+ "kind": "api",
1091
+ "name": "voicesamples.create",
1092
+ "operation": "create",
1093
+ "objectName": "@happyvertical/smrt-voice:VoiceSample",
1094
+ "path": "/voicesamples",
1095
+ "method": "POST"
1096
+ },
1097
+ {
1098
+ "kind": "api",
1099
+ "name": "voicesamples.delete",
1100
+ "operation": "delete",
1101
+ "objectName": "@happyvertical/smrt-voice:VoiceSample",
1102
+ "path": "/voicesamples/[id]",
1103
+ "method": "DELETE"
1104
+ },
1105
+ {
1106
+ "kind": "cli",
1107
+ "name": "voicesample_list",
1108
+ "operation": "list",
1109
+ "objectName": "@happyvertical/smrt-voice:VoiceSample"
1110
+ },
1111
+ {
1112
+ "kind": "cli",
1113
+ "name": "voicesample_get",
1114
+ "operation": "get",
1115
+ "objectName": "@happyvertical/smrt-voice:VoiceSample"
1116
+ },
1117
+ {
1118
+ "kind": "cli",
1119
+ "name": "voicesample_create",
1120
+ "operation": "create",
1121
+ "objectName": "@happyvertical/smrt-voice:VoiceSample"
1122
+ },
1123
+ {
1124
+ "kind": "cli",
1125
+ "name": "voicesample_update",
1126
+ "operation": "update",
1127
+ "objectName": "@happyvertical/smrt-voice:VoiceSample"
1128
+ },
1129
+ {
1130
+ "kind": "cli",
1131
+ "name": "voicesample_delete",
1132
+ "operation": "delete",
1133
+ "objectName": "@happyvertical/smrt-voice:VoiceSample"
1134
+ },
1135
+ {
1136
+ "kind": "mcp",
1137
+ "name": "voicesample_list",
1138
+ "operation": "list",
1139
+ "objectName": "@happyvertical/smrt-voice:VoiceSample"
1140
+ },
1141
+ {
1142
+ "kind": "mcp",
1143
+ "name": "voicesample_get",
1144
+ "operation": "get",
1145
+ "objectName": "@happyvertical/smrt-voice:VoiceSample"
1146
+ }
1147
+ ],
1148
+ "prompts": [],
1149
+ "relationshipsV2": {
1150
+ "foreignKeyFields": 2,
1151
+ "crossPackageRefFields": 4,
1152
+ "junctionCollections": 0,
1153
+ "hierarchicalObjects": 0,
1154
+ "polymorphicAssociations": 0,
1155
+ "uuidColumns": 12
1156
+ },
1157
+ "agentDoc": "# @happyvertical/smrt-voice\n\nTTS voice profiles with two creation modes: AI design or audio cloning. Word-level timing output for lip-sync.\n\n## Models\n\n- **VoiceProfile**: two mutually exclusive modes — `designPrompt` (AI-generated from description) XOR `sampleAssetId` (cloned from audio). Status: `pending → processing → ready/failed`. `voiceData` is opaque provider-specific storage. `defaultSpeed` (0.5-2.0), `defaultPitch` (-20 to 20 semitones).\n- **VoiceSample**: audio training data. `duration`, `transcription`, `quality` (low/medium/high), `sampleRate`, `format`. Validation: `meetsMinDuration` (≥3 sec), `isSuitableForCloning` (≥3 sec AND quality ≠ low).\n- **VoiceOutput** (extends Content): generated TTS audio. `sourceText`, `audioAssetId`, `wordTimings` array `[{word, start, end}]` in seconds for lip-sync. `audioMetadata` (sampleRate, format, channels, bitDepth, provider, model). Computed: `wordCount`, `wordsPerSecond`, `getWordAtTime(seconds)`.\n\n## Gotchas\n\n- **Default provider hardcoded**: 'qwen3-tts' — no provider abstraction layer\n- **Sample minimum not enforced in constructor**: 3-sec minimum documented but not validated on create\n- **WordTiming from external provider**: framework doesn't generate timings — populated by TTS service\n- **Status transitions not enforced**: can manually set status without triggering generation workflow\n- **voiceData is opaque**: `{ [key: string]: any }` — provider-specific, no schema\n- **Optional tenancy**: tenantId=null for global/default voices\n"
1158
+ }