@happyvertical/smrt-voice 0.57.35 → 0.57.37
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.
- package/AGENTS.md +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +178 -53
- package/dist/index.js.map +1 -1
- package/dist/manifest.json +387 -24
- package/dist/recipes.d.ts +225 -0
- package/dist/recipes.d.ts.map +1 -0
- package/dist/smrt-knowledge.json +316 -32
- package/dist/voice-output.d.ts.map +1 -1
- package/dist/voice-profile.d.ts.map +1 -1
- package/dist/voice-sample.d.ts.map +1 -1
- package/package.json +11 -11
package/AGENTS.md
CHANGED
|
@@ -7,6 +7,7 @@ TTS voice profiles with two creation modes: AI design or audio cloning. Word-lev
|
|
|
7
7
|
- **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).
|
|
8
8
|
- **VoiceSample**: audio training data. `duration`, `transcription`, `quality` (low/medium/high), `sampleRate`, `format`. Validation: `meetsMinDuration` (≥3 sec), `isSuitableForCloning` (≥3 sec AND quality ≠ low).
|
|
9
9
|
- **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)`.
|
|
10
|
+
- **Recipe `voice.profiles`** (`src/recipes.ts`, help in `src/profiles.recipe.md`): lists voices, sample clips and generated speech for the planner and other catalog hosts. Fields it shows carry `@field({ description })` in plain words; keep them when editing the models. Voice outputs are made by the speech service, so the help describes reading and removing them, not writing them.
|
|
10
11
|
|
|
11
12
|
## Gotchas
|
|
12
13
|
|
package/dist/index.d.ts
CHANGED
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
*/
|
|
35
35
|
import './__smrt-register__.js';
|
|
36
36
|
export type { AudioInput, Speech, SpeechAdapterAvailability, SpeechSynthesizer, SpeechSynthesizerType, SpeechVoice, SpeechVoiceInput, SynthesisRequest, SynthesizedSpeech, Transcriber, TranscriberType, TranscriptionRequest, TranscriptResult, TranscriptSegment, WordTiming as SpeechWordTiming, } from '@happyvertical/speech';
|
|
37
|
+
export { VoiceProfilesRecipe } from './recipes.js';
|
|
37
38
|
export { metadataFromSynthesizedSpeech, VoiceOutput, type VoiceOutputFromSynthesizedSpeechOptions, type VoiceOutputMetadata, type VoiceOutputOptions, type WordTiming, wordTimingsFromSpeech, } from './voice-output.js';
|
|
38
39
|
export { type VoiceGender, VoiceProfile, type VoiceProfileOptions, type VoiceProfileStatus, } from './voice-profile.js';
|
|
39
40
|
export { type SampleQuality, VoiceSample, type VoiceSampleOptions, } from './voice-sample.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAKH,OAAO,wBAAwB,CAAC;AAEhC,YAAY,EACV,UAAU,EACV,MAAM,EACN,yBAAyB,EACzB,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,IAAI,gBAAgB,GAC/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,6BAA6B,EAC7B,WAAW,EACX,KAAK,uCAAuC,EAC5C,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,KAAK,WAAW,EAChB,YAAY,EACZ,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,aAAa,EAClB,WAAW,EACX,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAKH,OAAO,wBAAwB,CAAC;AAEhC,YAAY,EACV,UAAU,EACV,MAAM,EACN,yBAAyB,EACzB,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,IAAI,gBAAgB,GAC/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EACL,6BAA6B,EAC7B,WAAW,EACX,KAAK,uCAAuC,EAC5C,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,KAAK,WAAW,EAChB,YAAY,EACZ,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,aAAa,EAClB,WAAW,EACX,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ObjectRegistry, SmrtObject, crossPackageRef, foreignKey, smrt } from "@happyvertical/smrt-core";
|
|
1
|
+
import { ObjectRegistry, SmrtObject, SmrtRecipe, crossPackageRef, field, foreignKey, smrt } from "@happyvertical/smrt-core";
|
|
2
2
|
import { Content } from "@happyvertical/smrt-content";
|
|
3
3
|
import { TenantScoped, tenantId } from "@happyvertical/smrt-tenancy";
|
|
4
4
|
//#region src/__smrt-register__.ts
|
|
5
|
-
ObjectRegistry.registerPackageManifest(JSON.parse(`{"version":"1.0.0","timestamp":0,"packageName":"@happyvertical/smrt-voice","packageVersion":"0.57.35","objects":{"@happyvertical/smrt-voice:VoiceOutput":{"name":"voiceoutput","className":"VoiceOutput","qualifiedName":"@happyvertical/smrt-voice:VoiceOutput","collection":"contents","description":"Generated audio output from text-to-speech synthesis","filePath":"/home/runner/work/smrt/smrt/packages/voice/src/voice-output.ts","packageName":"@happyvertical/smrt-voice","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"tenantId":{"type":"text","required":false,"_meta":{"generated":true,"source":"tenantScoped_decorator","sqlType":"UUID","__tenancy":{"isTenantIdField":true,"mode":"optional","field":"tenantId","autoFilter":true,"autoPopulate":true,"allowSuperAdminBypass":false}}},"type":{"type":"text","required":false},"variant":{"type":"text","required":false},"fileKey":{"type":"text","required":false},"author":{"type":"text","required":false},"name":{"type":"text","required":true,"default":"","_meta":{"required":true}},"title":{"type":"text","required":false},"description":{"type":"text","required":false},"body":{"type":"text","required":false},"bodyFormat":{"type":"text","required":false,"enum":["markdown","html"]},"publish_date":{"type":"datetime","required":false},"url":{"type":"text","required":false},"source":{"type":"text","required":false},"original_url":{"type":"text","required":false},"language":{"type":"text","required":false},"tags":{"type":"json","required":false,"default":[]},"category":{"type":"text","required":false},"status":{"type":"text","required":false,"default":"draft","enum":["published","draft","review","archived","deleted"]},"state":{"type":"text","required":false,"default":"active","enum":["deprecated","active","highlighted"]},"metadata":{"type":"json","required":false,"default":{}},"thumbnailAssetId":{"type":"crossPackageRef","required":false,"related":"@happyvertical/smrt-assets:Asset"},"voiceProfileId":{"type":"foreignKey","required":false,"related":"VoiceProfile"},"sourceText":{"type":"text","required":false,"default":""},"audioAssetId":{"type":"crossPackageRef","required":false,"related":"@happyvertical/smrt-assets:Asset"},"duration":{"type":"integer","required":false,"default":0},"wordTimings":{"type":"json","required":false,"default":[]},"audioMetadata":{"type":"json","required":false}},"methods":{"initialize":{"name":"initialize","async":true,"parameters":[],"returnType":"Promise<this>","isStatic":false,"isPublic":true},"save":{"name":"save","async":true,"parameters":[{"name":"options","type":"SmrtSaveOptions","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"resolveGovernance":{"name":"resolveGovernance","async":true,"parameters":[],"returnType":"Promise<ResolvedContentGovernance>","isStatic":false,"isPublic":true},"loadReferences":{"name":"loadReferences","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"addReference":{"name":"addReference","async":true,"parameters":[{"name":"content","type":"Content | string","optional":false,"unionBranches":[{"type":"Content"},{"type":"string"}]},{"name":"options","type":"object","optional":true,"memberTypes":["number | null"]}],"returnType":"any","isStatic":false,"isPublic":true},"removeReference":{"name":"removeReference","async":true,"parameters":[{"name":"targetId","type":"string","optional":false}],"returnType":"any","isStatic":false,"isPublic":true},"getReferences":{"name":"getReferences","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"getReferenceEdges":{"name":"getReferenceEdges","async":true,"parameters":[],"returnType":"Promise<Array<object>>","isStatic":false,"isPublic":true},"getReferenceDrift":{"name":"getReferenceDrift","async":true,"parameters":[],"returnType":"Promise<Array<object>>","isStatic":false,"isPublic":true},"isGoverned":{"name":"isGoverned","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"getFactLinks":{"name":"getFactLinks","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["FactContentRelationship"]}],"returnType":"any","isStatic":false,"isPublic":true},"getFacts":{"name":"getFacts","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["FactContentRelationship","boolean"]}],"returnType":"Promise<Fact[]>","isStatic":false,"isPublic":true},"addFact":{"name":"addFact","async":true,"parameters":[{"name":"fact","type":"Fact | string","optional":false,"unionBranches":[{"type":"Fact"},{"type":"string"}]},{"name":"relationship","type":"FactContentRelationship","optional":true},{"name":"metadata","type":"Record<string, unknown>","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"removeFact":{"name":"removeFact","async":true,"parameters":[{"name":"factId","type":"string","optional":false},{"name":"relationship","type":"FactContentRelationship","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"syncFacts":{"name":"syncFacts","async":true,"parameters":[{"name":"factIds","type":"string[]","optional":false},{"name":"relationship","type":"FactContentRelationship","optional":true}],"returnType":"Promise<object>","isStatic":false,"isPublic":true},"browseFacts":{"name":"browseFacts","async":true,"parameters":[{"name":"query","type":"any","optional":true,"default":""},{"name":"options","type":"object","optional":true,"memberTypes":["number","boolean"]}],"returnType":"Promise<Fact[]>","isStatic":false,"isPublic":true},"repairFactAudit":{"name":"repairFactAudit","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["number","string"]}],"returnType":"any","isStatic":false,"isPublic":true},"repairFactAuditAction":{"name":"repairFactAuditAction","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["number","string"]}],"returnType":"any","isStatic":false,"isPublic":true},"repairFactEvidence":{"name":"repairFactEvidence","async":true,"parameters":[{"name":"options","type":"FactAuditResourceRepairOptions","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"repairFactEvidenceAction":{"name":"repairFactEvidenceAction","async":true,"parameters":[{"name":"options","type":"FactAuditResourceRepairOptions","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"recheckFactClaims":{"name":"recheckFactClaims","async":true,"parameters":[{"name":"options","type":"FactAuditClaimRecheckOptions","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"recheckFactClaimsAction":{"name":"recheckFactClaimsAction","async":true,"parameters":[{"name":"options","type":"FactAuditClaimRecheckOptions","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"updateFactEvidenceStatus":{"name":"updateFactEvidenceStatus","async":true,"parameters":[{"name":"options","type":"FactEvidenceStatusUpdateOptions","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"updateFactEvidenceStatusAction":{"name":"updateFactEvidenceStatusAction","async":true,"parameters":[{"name":"options","type":"FactEvidenceStatusUpdateOptions","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"getFactAuditState":{"name":"getFactAuditState","async":true,"parameters":[],"returnType":"Promise<FactAuditState>","isStatic":false,"isPublic":true},"getFactAuditStateAction":{"name":"getFactAuditStateAction","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"getFactsState":{"name":"getFactsState","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["FactContentRelationship"]}],"returnType":"any","isStatic":false,"isPublic":true},"syncFactsState":{"name":"syncFactsState","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["string[]","FactContentRelationship"]}],"returnType":"any","isStatic":false,"isPublic":true},"createVersion":{"name":"createVersion","async":true,"parameters":[{"name":"options","type":"CreateContentVersionOptions","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"getVersions":{"name":"getVersions","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"restoreFromVersion":{"name":"restoreFromVersion","async":true,"parameters":[{"name":"versionNumber","type":"number","optional":false}],"returnType":"any","isStatic":false,"isPublic":true},"getReviews":{"name":"getReviews","async":true,"parameters":[{"name":"kind","type":"any","optional":true,"typeUnresolved":true}],"returnType":"any","isStatic":false,"isPublic":true},"listReviews":{"name":"listReviews","async":true,"parameters":[{"name":"options","type":"object","optional":true,"typeUnresolved":true}],"returnType":"any","isStatic":false,"isPublic":true},"getReviewRequirements":{"name":"getReviewRequirements","async":true,"parameters":[{"name":"profileKey","type":"string","optional":false},{"name":"governance","type":"ResolvedContentGovernance","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"getGovernanceState":{"name":"getGovernanceState","async":true,"parameters":[],"returnType":"Promise<ContentGovernanceState>","isStatic":false,"isPublic":true},"getGovernanceStateAction":{"name":"getGovernanceStateAction","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"listReviewProfilesAction":{"name":"listReviewProfilesAction","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"evaluateReviewProfile":{"name":"evaluateReviewProfile","async":true,"parameters":[{"name":"profileKey","type":"string","optional":false}],"returnType":"Promise<ContentReviewProfileEvaluation>","isStatic":false,"isPublic":true},"evaluateReviewProfileAction":{"name":"evaluateReviewProfileAction","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["string"]}],"returnType":"any","isStatic":false,"isPublic":true},"isReadyForReviewProfile":{"name":"isReadyForReviewProfile","async":true,"parameters":[{"name":"profileKey","type":"string","optional":false}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"getPublishedTransparency":{"name":"getPublishedTransparency","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"getPublishedTransparencyAction":{"name":"getPublishedTransparencyAction","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"previewTransparency":{"name":"previewTransparency","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"previewTransparencyAction":{"name":"previewTransparencyAction","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"runReview":{"name":"runReview","async":true,"parameters":[{"name":"options","type":"RunContentReviewOptions","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"runReviewAction":{"name":"runReviewAction","async":true,"parameters":[{"name":"options","type":"RunContentReviewOptions","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"reviewFacts":{"name":"reviewFacts","async":true,"parameters":[{"name":"options","type":"Omit<RunContentReviewOptions, 'kind'>","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"reviewSafety":{"name":"reviewSafety","async":true,"parameters":[{"name":"options","type":"Omit<RunContentReviewOptions, 'kind'>","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"getCorrections":{"name":"getCorrections","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"listCorrections":{"name":"listCorrections","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"issueCorrection":{"name":"issueCorrection","async":true,"parameters":[{"name":"options","type":"IssueContentCorrectionOptions","optional":false}],"returnType":"any","isStatic":false,"isPublic":true},"issueCorrectionAction":{"name":"issueCorrectionAction","async":true,"parameters":[{"name":"options","type":"IssueContentCorrectionOptions","optional":false}],"returnType":"any","isStatic":false,"isPublic":true},"listVersions":{"name":"listVersions","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"mutateVersionAction":{"name":"mutateVersionAction","async":true,"parameters":[{"name":"options","type":"any","optional":true,"typeUnresolved":true}],"returnType":"any","isStatic":false,"isPublic":true},"getCategorySegments":{"name":"getCategorySegments","async":false,"parameters":[],"returnType":"string[]","isStatic":false,"isPublic":true},"getParentCategory":{"name":"getParentCategory","async":false,"parameters":[],"returnType":"string | null","isStatic":false,"isPublic":true},"getRootCategory":{"name":"getRootCategory","async":false,"parameters":[],"returnType":"string | null","isStatic":false,"isPublic":true},"getAncestorPaths":{"name":"getAncestorPaths","async":false,"parameters":[],"returnType":"string[]","isStatic":false,"isPublic":true},"isInCategory":{"name":"isInCategory","async":false,"parameters":[{"name":"categoryPath","type":"string","optional":false},{"name":"includeChildren","type":"any","optional":true}],"returnType":"boolean","isStatic":false,"isPublic":true},"getAssets":{"name":"getAssets","async":true,"parameters":[{"name":"relationship","type":"string","optional":true},{"name":"options","type":"object","optional":true,"typeUnresolved":true}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"getAssetIds":{"name":"getAssetIds","async":true,"parameters":[{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<string[]>","isStatic":false,"isPublic":true},"addAsset":{"name":"addAsset","async":true,"parameters":[{"name":"asset","type":"Asset","optional":false},{"name":"relationship","type":"any","optional":true,"default":"attachment"},{"name":"sortOrder","type":"any","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"removeAsset":{"name":"removeAsset","async":true,"parameters":[{"name":"assetId","type":"string","optional":false},{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getMetadata":{"name":"getMetadata","async":false,"parameters":[],"returnType":"Record<string, unknown>","isStatic":false,"isPublic":true},"setMetadata":{"name":"setMetadata","async":false,"parameters":[{"name":"metadata","type":"Record<string, unknown> | null | undefined","optional":false,"unionBranches":[{"type":"Record<string, unknown>"},{"type":"null"},{"type":"undefined"}]}],"returnType":"void","isStatic":false,"isPublic":true},"updateMetadata":{"name":"updateMetadata","async":false,"parameters":[{"name":"patch","type":"Partial<Record<string, unknown>>","optional":false}],"returnType":"Record<string, unknown>","isStatic":false,"isPublic":true},"getThumbnail":{"name":"getThumbnail","async":true,"parameters":[],"returnType":"Promise<Image | null>","isStatic":false,"isPublic":true},"setThumbnail":{"name":"setThumbnail","async":true,"parameters":[{"name":"image","type":"Image","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"generateThumbnail":{"name":"generateThumbnail","async":true,"parameters":[{"name":"options","type":"ThumbnailOptions","optional":false}],"returnType":"Promise<Image>","isStatic":false,"isPublic":true},"getWordAtTime":{"name":"getWordAtTime","async":false,"parameters":[{"name":"seconds","type":"number","optional":false}],"returnType":"WordTiming | null","isStatic":false,"isPublic":true},"fromSynthesizedSpeech":{"name":"fromSynthesizedSpeech","async":false,"parameters":[{"name":"options","type":"VoiceOutputFromSynthesizedSpeechOptions","optional":false}],"returnType":"VoiceOutput","isStatic":true,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","delete"]},"mcp":{"include":["list","get"]},"cli":true,"tenantScoped":{"mode":"optional"},"tableName":"contents"},"extends":"Content","extendsQualified":"@happyvertical/smrt-content:Content","exportName":"VoiceOutput","collectionExportName":"VoiceOutputCollection","displayLabelField":"name","validationRules":[{"field":"name","rule":"required","fieldType":"text"}],"schema":{"tableName":"contents","ddl":"CREATE TABLE IF NOT EXISTS \\"contents\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"type\\" TEXT,\\n \\"variant\\" TEXT,\\n \\"file_key\\" TEXT,\\n \\"author\\" TEXT,\\n \\"name\\" TEXT DEFAULT '',\\n \\"title\\" TEXT,\\n \\"description\\" TEXT,\\n \\"body\\" TEXT,\\n \\"body_format\\" TEXT,\\n \\"publish_date\\" TIMESTAMP,\\n \\"url\\" TEXT,\\n \\"source\\" TEXT,\\n \\"original_url\\" TEXT,\\n \\"language\\" TEXT,\\n \\"tags\\" JSON DEFAULT '[]',\\n \\"category\\" TEXT,\\n \\"status\\" TEXT DEFAULT 'draft',\\n \\"state\\" TEXT DEFAULT 'active',\\n \\"metadata\\" JSON DEFAULT '{}',\\n \\"thumbnail_asset_id\\" UUID,\\n \\"voice_profile_id\\" UUID,\\n \\"source_text\\" TEXT DEFAULT '',\\n \\"audio_asset_id\\" UUID,\\n \\"duration\\" INTEGER DEFAULT 0,\\n \\"word_timings\\" JSON DEFAULT '[]',\\n \\"audio_metadata\\" JSON,\\n \\"feed_source_id\\" UUID,\\n \\"source_guid\\" TEXT,\\n \\"source_name\\" TEXT,\\n \\"source_homepage_url\\" TEXT,\\n \\"external_url\\" TEXT,\\n \\"original_published_at\\" TIMESTAMP,\\n \\"dedupe_key\\" TEXT\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"type":{"type":"TEXT","notNull":false},"variant":{"type":"TEXT","notNull":false},"file_key":{"type":"TEXT","notNull":false},"author":{"type":"TEXT","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"title":{"type":"TEXT","notNull":false},"description":{"type":"TEXT","notNull":false},"body":{"type":"TEXT","notNull":false},"body_format":{"type":"TEXT","notNull":false},"publish_date":{"type":"TIMESTAMP","notNull":false},"url":{"type":"TEXT","notNull":false},"source":{"type":"TEXT","notNull":false},"original_url":{"type":"TEXT","notNull":false},"language":{"type":"TEXT","notNull":false},"tags":{"type":"JSON","notNull":false,"default":[]},"category":{"type":"TEXT","notNull":false},"status":{"type":"TEXT","notNull":false,"default":"draft"},"state":{"type":"TEXT","notNull":false,"default":"active"},"metadata":{"type":"JSON","notNull":false,"default":{}},"thumbnail_asset_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":false},"voice_profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"voice_profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"source_text":{"type":"TEXT","notNull":false,"default":""},"audio_asset_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":false},"duration":{"type":"INTEGER","notNull":false,"default":0},"word_timings":{"type":"JSON","notNull":false,"default":[]},"audio_metadata":{"type":"JSON","notNull":false},"feed_source_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false},"source_guid":{"type":"TEXT","notNull":false},"source_name":{"type":"TEXT","notNull":false},"source_homepage_url":{"type":"TEXT","notNull":false},"external_url":{"type":"TEXT","notNull":false},"original_published_at":{"type":"TIMESTAMP","notNull":false},"dedupe_key":{"type":"TEXT","notNull":false}},"indexes":[{"name":"contents_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"contents_meta_type_idx","columns":["_meta_type"]},{"name":"contents_tenant_id_publish_date_idx","columns":["tenant_id","publish_date"]},{"name":"contents_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"contents_thumbnail_asset_id_idx","columns":["thumbnail_asset_id"]},{"name":"contents_voice_profile_id_idx","columns":["voice_profile_id"]},{"name":"contents_audio_asset_id_idx","columns":["audio_asset_id"]},{"name":"contents_feed_source_id_idx","columns":["feed_source_id"]}],"version":"ee1272af"},"importPath":"@happyvertical/smrt-voice"},"@happyvertical/smrt-voice:VoiceProfile":{"name":"voiceprofile","className":"VoiceProfile","qualifiedName":"@happyvertical/smrt-voice:VoiceProfile","collection":"voiceprofiles","description":"Voice profile for AI-powered speech synthesis","filePath":"/home/runner/work/smrt/smrt/packages/voice/src/voice-profile.ts","packageName":"@happyvertical/smrt-voice","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true,"mode":"optional","field":"tenantId","allowSuperAdminBypass":false}}},"name":{"type":"text","required":false,"default":""},"description":{"type":"text","required":false},"language":{"type":"text","required":false,"default":"en-US"},"gender":{"type":"text","required":false,"default":"neutral","enum":["male","female","neutral"]},"designPrompt":{"type":"text","required":false},"sampleAssetId":{"type":"crossPackageRef","required":false,"related":"@happyvertical/smrt-assets:Asset"},"voiceData":{"type":"json","required":false,"default":{}},"defaultSpeed":{"type":"decimal","required":false,"default":1},"defaultPitch":{"type":"integer","required":false,"default":0},"status":{"type":"text","required":false,"default":"pending","enum":["pending","processing","ready","failed"]},"provider":{"type":"text","required":false,"default":"qwen3-tts"},"errorMessage":{"type":"text","required":false}},"methods":{"toSpeechVoice":{"name":"toSpeechVoice","async":false,"parameters":[],"returnType":"SpeechVoice","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"VoiceProfile","collectionExportName":"VoiceProfileCollection","displayLabelField":"name","schema":{"tableName":"voice_profiles","ddl":"CREATE TABLE IF NOT EXISTS \\"voice_profiles\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"name\\" TEXT DEFAULT '',\\n \\"description\\" TEXT,\\n \\"language\\" TEXT DEFAULT 'en-US',\\n \\"gender\\" TEXT DEFAULT 'neutral',\\n \\"design_prompt\\" TEXT,\\n \\"sample_asset_id\\" UUID,\\n \\"voice_data\\" JSON DEFAULT '{}',\\n \\"default_speed\\" REAL DEFAULT 1,\\n \\"default_pitch\\" INTEGER DEFAULT 0,\\n \\"status\\" TEXT DEFAULT 'pending',\\n \\"provider\\" TEXT DEFAULT 'qwen3-tts',\\n \\"error_message\\" TEXT\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"description":{"type":"TEXT","notNull":false},"language":{"type":"TEXT","notNull":false,"default":"en-US"},"gender":{"type":"TEXT","notNull":false,"default":"neutral"},"design_prompt":{"type":"TEXT","notNull":false},"sample_asset_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":false},"voice_data":{"type":"JSON","notNull":false,"default":{}},"default_speed":{"type":"REAL","notNull":false,"default":1},"default_pitch":{"type":"INTEGER","notNull":false,"default":0},"status":{"type":"TEXT","notNull":false,"default":"pending"},"provider":{"type":"TEXT","notNull":false,"default":"qwen3-tts"},"error_message":{"type":"TEXT","notNull":false}},"indexes":[{"name":"voice_profiles_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"voice_profiles_meta_type_idx","columns":["_meta_type"]},{"name":"voice_profiles_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"voice_profiles_sample_asset_id_idx","columns":["sample_asset_id"]}],"version":"b3717c47"},"importPath":"@happyvertical/smrt-voice"},"@happyvertical/smrt-voice:VoiceSample":{"name":"voicesample","className":"VoiceSample","qualifiedName":"@happyvertical/smrt-voice:VoiceSample","collection":"voicesamples","description":"Audio sample for voice cloning","filePath":"/home/runner/work/smrt/smrt/packages/voice/src/voice-sample.ts","packageName":"@happyvertical/smrt-voice","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true,"mode":"optional","field":"tenantId","allowSuperAdminBypass":false}}},"voiceProfileId":{"type":"foreignKey","required":false,"related":"VoiceProfile"},"assetId":{"type":"crossPackageRef","required":false,"related":"@happyvertical/smrt-assets:Asset"},"duration":{"type":"integer","required":false,"default":0},"transcription":{"type":"text","required":false},"quality":{"type":"text","required":false,"default":"medium","enum":["low","medium","high"]},"sampleRate":{"type":"integer","required":false},"channels":{"type":"integer","required":false},"format":{"type":"text","required":false},"isPrimary":{"type":"boolean","required":false,"default":false}},"methods":{},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","delete"]},"mcp":{"include":["list","get"]},"cli":true,"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"VoiceSample","collectionExportName":"VoiceSampleCollection","schema":{"tableName":"voice_samples","ddl":"CREATE TABLE IF NOT EXISTS \\"voice_samples\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"voice_profile_id\\" UUID,\\n \\"asset_id\\" UUID,\\n \\"duration\\" INTEGER DEFAULT 0,\\n \\"transcription\\" TEXT,\\n \\"quality\\" TEXT DEFAULT 'medium',\\n \\"sample_rate\\" INTEGER,\\n \\"channels\\" INTEGER,\\n \\"format\\" TEXT,\\n \\"is_primary\\" BOOLEAN DEFAULT FALSE\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"voice_profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"voice_profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"asset_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":false},"duration":{"type":"INTEGER","notNull":false,"default":0},"transcription":{"type":"TEXT","notNull":false},"quality":{"type":"TEXT","notNull":false,"default":"medium"},"sample_rate":{"type":"INTEGER","notNull":false},"channels":{"type":"INTEGER","notNull":false},"format":{"type":"TEXT","notNull":false},"is_primary":{"type":"BOOLEAN","notNull":false,"default":false}},"indexes":[{"name":"voice_samples_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"voice_samples_meta_type_idx","columns":["_meta_type"]},{"name":"voice_samples_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"voice_samples_voice_profile_id_idx","columns":["voice_profile_id"]},{"name":"voice_samples_asset_id_idx","columns":["asset_id"]}],"version":"cbb4acc4"},"importPath":"@happyvertical/smrt-voice"}},"moduleType":"smrt","smrtDependencies":["@happyvertical/smrt-assets","@happyvertical/smrt-content","@happyvertical/smrt-core","@happyvertical/smrt-tenancy"],"browser":{"status":"server-only","issues":["#3615","#3617","#3624","#3625","#3626","#3627","#3628"],"reason":"documents/spider SDK graph; CJS parse error","via":["@happyvertical/smrt-agents","@happyvertical/smrt-chat","@happyvertical/smrt-content","@happyvertical/smrt-images","@happyvertical/smrt-jobs","@happyvertical/smrt-profiles","@happyvertical/smrt-reports","@happyvertical/smrt-secrets","@happyvertical/smrt-tenancy","@happyvertical/smrt-users"]},"stampsConstructors":true}`));
|
|
5
|
+
ObjectRegistry.registerPackageManifest(JSON.parse(`{"version":"1.0.0","timestamp":0,"packageName":"@happyvertical/smrt-voice","packageVersion":"0.57.37","objects":{"@happyvertical/smrt-voice:VoiceOutput":{"name":"voiceoutput","className":"VoiceOutput","qualifiedName":"@happyvertical/smrt-voice:VoiceOutput","collection":"contents","description":"Generated audio output from text-to-speech synthesis","filePath":"/home/runner/work/smrt/smrt/packages/voice/src/voice-output.ts","packageName":"@happyvertical/smrt-voice","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"tenantId":{"type":"text","required":false,"_meta":{"generated":true,"source":"tenantScoped_decorator","sqlType":"UUID","__tenancy":{"isTenantIdField":true,"mode":"optional","field":"tenantId","autoFilter":true,"autoPopulate":true,"allowSuperAdminBypass":false}}},"type":{"type":"text","required":false,"description":"What kind of piece this is, such as an article or a document.","_meta":{"description":"What kind of piece this is, such as an article or a document."}},"variant":{"type":"text","required":false},"fileKey":{"type":"text","required":false},"author":{"type":"text","required":false,"description":"Who wrote this piece.","_meta":{"description":"Who wrote this piece."}},"name":{"type":"text","required":true,"default":"","description":"A short name used to find this piece in lists.","_meta":{"required":true,"description":"A short name used to find this piece in lists."}},"title":{"type":"text","required":false,"description":"The headline readers see.","_meta":{"description":"The headline readers see."}},"description":{"type":"text","required":false,"description":"A one or two sentence summary of the piece.","_meta":{"description":"A one or two sentence summary of the piece."}},"body":{"type":"text","required":false,"description":"The full text of the piece.","_meta":{"description":"The full text of the piece."}},"bodyFormat":{"type":"text","required":false,"enum":["markdown","html"]},"publish_date":{"type":"datetime","required":false,"description":"The date the piece went out, or is due to go out.","_meta":{"description":"The date the piece went out, or is due to go out."}},"url":{"type":"text","required":false},"source":{"type":"text","required":false},"original_url":{"type":"text","required":false},"language":{"type":"text","required":false},"tags":{"type":"json","required":false,"default":[],"description":"Words that group pieces by subject.","_meta":{"description":"Words that group pieces by subject."}},"category":{"type":"text","required":false,"description":"The one section the piece belongs to, such as news or local.","_meta":{"description":"The one section the piece belongs to, such as news or local."}},"status":{"type":"text","required":false,"default":"draft","description":"Where the piece stands: draft, in review, published or archived.","_meta":{"description":"Where the piece stands: draft, in review, published or archived."},"enum":["published","draft","review","archived","deleted"]},"state":{"type":"text","required":false,"default":"active","enum":["deprecated","active","highlighted"]},"metadata":{"type":"json","required":false,"default":{}},"thumbnailAssetId":{"type":"crossPackageRef","required":false,"related":"@happyvertical/smrt-assets:Asset"},"voiceProfileId":{"type":"foreignKey","required":false,"related":"VoiceProfile","description":"The voice that read the text.","_meta":{"description":"The voice that read the text."}},"sourceText":{"type":"text","required":false,"default":"","description":"The text that was read aloud.","_meta":{"description":"The text that was read aloud."}},"audioAssetId":{"type":"crossPackageRef","required":false,"related":"@happyvertical/smrt-assets:Asset","description":"The audio file of the recording.","_meta":{"description":"The audio file of the recording."}},"duration":{"type":"integer","required":false,"default":0,"description":"How long the recording runs, in seconds.","_meta":{"description":"How long the recording runs, in seconds."}},"wordTimings":{"type":"json","required":false,"default":[]},"audioMetadata":{"type":"json","required":false}},"methods":{"initialize":{"name":"initialize","async":true,"parameters":[],"returnType":"Promise<this>","isStatic":false,"isPublic":true},"save":{"name":"save","async":true,"parameters":[{"name":"options","type":"SmrtSaveOptions","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"resolveGovernance":{"name":"resolveGovernance","async":true,"parameters":[],"returnType":"Promise<ResolvedContentGovernance>","isStatic":false,"isPublic":true},"loadReferences":{"name":"loadReferences","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"addReference":{"name":"addReference","async":true,"parameters":[{"name":"content","type":"Content | string","optional":false,"unionBranches":[{"type":"Content"},{"type":"string"}]},{"name":"options","type":"object","optional":true,"memberTypes":["number | null"]}],"returnType":"any","isStatic":false,"isPublic":true},"removeReference":{"name":"removeReference","async":true,"parameters":[{"name":"targetId","type":"string","optional":false}],"returnType":"any","isStatic":false,"isPublic":true},"getReferences":{"name":"getReferences","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"getReferenceEdges":{"name":"getReferenceEdges","async":true,"parameters":[],"returnType":"Promise<Array<object>>","isStatic":false,"isPublic":true},"getReferenceDrift":{"name":"getReferenceDrift","async":true,"parameters":[],"returnType":"Promise<Array<object>>","isStatic":false,"isPublic":true},"isGoverned":{"name":"isGoverned","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"getFactLinks":{"name":"getFactLinks","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["FactContentRelationship"]}],"returnType":"any","isStatic":false,"isPublic":true},"getFacts":{"name":"getFacts","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["FactContentRelationship","boolean"]}],"returnType":"Promise<Fact[]>","isStatic":false,"isPublic":true},"addFact":{"name":"addFact","async":true,"parameters":[{"name":"fact","type":"Fact | string","optional":false,"unionBranches":[{"type":"Fact"},{"type":"string"}]},{"name":"relationship","type":"FactContentRelationship","optional":true},{"name":"metadata","type":"Record<string, unknown>","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"removeFact":{"name":"removeFact","async":true,"parameters":[{"name":"factId","type":"string","optional":false},{"name":"relationship","type":"FactContentRelationship","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"syncFacts":{"name":"syncFacts","async":true,"parameters":[{"name":"factIds","type":"string[]","optional":false},{"name":"relationship","type":"FactContentRelationship","optional":true}],"returnType":"Promise<object>","isStatic":false,"isPublic":true},"browseFacts":{"name":"browseFacts","async":true,"parameters":[{"name":"query","type":"any","optional":true,"default":""},{"name":"options","type":"object","optional":true,"memberTypes":["number","boolean"]}],"returnType":"Promise<Fact[]>","isStatic":false,"isPublic":true},"repairFactAudit":{"name":"repairFactAudit","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["number","string"]}],"returnType":"any","isStatic":false,"isPublic":true},"repairFactAuditAction":{"name":"repairFactAuditAction","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["number","string"]}],"returnType":"any","isStatic":false,"isPublic":true},"repairFactEvidence":{"name":"repairFactEvidence","async":true,"parameters":[{"name":"options","type":"FactAuditResourceRepairOptions","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"repairFactEvidenceAction":{"name":"repairFactEvidenceAction","async":true,"parameters":[{"name":"options","type":"FactAuditResourceRepairOptions","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"recheckFactClaims":{"name":"recheckFactClaims","async":true,"parameters":[{"name":"options","type":"FactAuditClaimRecheckOptions","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"recheckFactClaimsAction":{"name":"recheckFactClaimsAction","async":true,"parameters":[{"name":"options","type":"FactAuditClaimRecheckOptions","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"updateFactEvidenceStatus":{"name":"updateFactEvidenceStatus","async":true,"parameters":[{"name":"options","type":"FactEvidenceStatusUpdateOptions","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"updateFactEvidenceStatusAction":{"name":"updateFactEvidenceStatusAction","async":true,"parameters":[{"name":"options","type":"FactEvidenceStatusUpdateOptions","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"getFactAuditState":{"name":"getFactAuditState","async":true,"parameters":[],"returnType":"Promise<FactAuditState>","isStatic":false,"isPublic":true},"getFactAuditStateAction":{"name":"getFactAuditStateAction","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"getFactsState":{"name":"getFactsState","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["FactContentRelationship"]}],"returnType":"any","isStatic":false,"isPublic":true},"syncFactsState":{"name":"syncFactsState","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["string[]","FactContentRelationship"]}],"returnType":"any","isStatic":false,"isPublic":true},"createVersion":{"name":"createVersion","async":true,"parameters":[{"name":"options","type":"CreateContentVersionOptions","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"getVersions":{"name":"getVersions","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"restoreFromVersion":{"name":"restoreFromVersion","async":true,"parameters":[{"name":"versionNumber","type":"number","optional":false}],"returnType":"any","isStatic":false,"isPublic":true},"getReviews":{"name":"getReviews","async":true,"parameters":[{"name":"kind","type":"any","optional":true,"typeUnresolved":true}],"returnType":"any","isStatic":false,"isPublic":true},"listReviews":{"name":"listReviews","async":true,"parameters":[{"name":"options","type":"object","optional":true,"typeUnresolved":true}],"returnType":"any","isStatic":false,"isPublic":true},"getReviewRequirements":{"name":"getReviewRequirements","async":true,"parameters":[{"name":"profileKey","type":"string","optional":false},{"name":"governance","type":"ResolvedContentGovernance","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"getGovernanceState":{"name":"getGovernanceState","async":true,"parameters":[],"returnType":"Promise<ContentGovernanceState>","isStatic":false,"isPublic":true},"getGovernanceStateAction":{"name":"getGovernanceStateAction","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"listReviewProfilesAction":{"name":"listReviewProfilesAction","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"evaluateReviewProfile":{"name":"evaluateReviewProfile","async":true,"parameters":[{"name":"profileKey","type":"string","optional":false}],"returnType":"Promise<ContentReviewProfileEvaluation>","isStatic":false,"isPublic":true},"evaluateReviewProfileAction":{"name":"evaluateReviewProfileAction","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["string"]}],"returnType":"any","isStatic":false,"isPublic":true},"isReadyForReviewProfile":{"name":"isReadyForReviewProfile","async":true,"parameters":[{"name":"profileKey","type":"string","optional":false}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"getPublishedTransparency":{"name":"getPublishedTransparency","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"getPublishedTransparencyAction":{"name":"getPublishedTransparencyAction","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"previewTransparency":{"name":"previewTransparency","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"previewTransparencyAction":{"name":"previewTransparencyAction","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"runReview":{"name":"runReview","async":true,"parameters":[{"name":"options","type":"RunContentReviewOptions","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"runReviewAction":{"name":"runReviewAction","async":true,"parameters":[{"name":"options","type":"RunContentReviewOptions","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"reviewFacts":{"name":"reviewFacts","async":true,"parameters":[{"name":"options","type":"Omit<RunContentReviewOptions, 'kind'>","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"reviewSafety":{"name":"reviewSafety","async":true,"parameters":[{"name":"options","type":"Omit<RunContentReviewOptions, 'kind'>","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"getCorrections":{"name":"getCorrections","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"listCorrections":{"name":"listCorrections","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"issueCorrection":{"name":"issueCorrection","async":true,"parameters":[{"name":"options","type":"IssueContentCorrectionOptions","optional":false}],"returnType":"any","isStatic":false,"isPublic":true},"issueCorrectionAction":{"name":"issueCorrectionAction","async":true,"parameters":[{"name":"options","type":"IssueContentCorrectionOptions","optional":false}],"returnType":"any","isStatic":false,"isPublic":true},"listVersions":{"name":"listVersions","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"mutateVersionAction":{"name":"mutateVersionAction","async":true,"parameters":[{"name":"options","type":"any","optional":true,"typeUnresolved":true}],"returnType":"any","isStatic":false,"isPublic":true},"getCategorySegments":{"name":"getCategorySegments","async":false,"parameters":[],"returnType":"string[]","isStatic":false,"isPublic":true},"getParentCategory":{"name":"getParentCategory","async":false,"parameters":[],"returnType":"string | null","isStatic":false,"isPublic":true},"getRootCategory":{"name":"getRootCategory","async":false,"parameters":[],"returnType":"string | null","isStatic":false,"isPublic":true},"getAncestorPaths":{"name":"getAncestorPaths","async":false,"parameters":[],"returnType":"string[]","isStatic":false,"isPublic":true},"isInCategory":{"name":"isInCategory","async":false,"parameters":[{"name":"categoryPath","type":"string","optional":false},{"name":"includeChildren","type":"any","optional":true}],"returnType":"boolean","isStatic":false,"isPublic":true},"getAssets":{"name":"getAssets","async":true,"parameters":[{"name":"relationship","type":"string","optional":true},{"name":"options","type":"object","optional":true,"typeUnresolved":true}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"getAssetIds":{"name":"getAssetIds","async":true,"parameters":[{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<string[]>","isStatic":false,"isPublic":true},"addAsset":{"name":"addAsset","async":true,"parameters":[{"name":"asset","type":"Asset","optional":false},{"name":"relationship","type":"any","optional":true,"default":"attachment"},{"name":"sortOrder","type":"any","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"removeAsset":{"name":"removeAsset","async":true,"parameters":[{"name":"assetId","type":"string","optional":false},{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getMetadata":{"name":"getMetadata","async":false,"parameters":[],"returnType":"Record<string, unknown>","isStatic":false,"isPublic":true},"setMetadata":{"name":"setMetadata","async":false,"parameters":[{"name":"metadata","type":"Record<string, unknown> | null | undefined","optional":false,"unionBranches":[{"type":"Record<string, unknown>"},{"type":"null"},{"type":"undefined"}]}],"returnType":"void","isStatic":false,"isPublic":true},"updateMetadata":{"name":"updateMetadata","async":false,"parameters":[{"name":"patch","type":"Partial<Record<string, unknown>>","optional":false}],"returnType":"Record<string, unknown>","isStatic":false,"isPublic":true},"getThumbnail":{"name":"getThumbnail","async":true,"parameters":[],"returnType":"Promise<Image | null>","isStatic":false,"isPublic":true},"setThumbnail":{"name":"setThumbnail","async":true,"parameters":[{"name":"image","type":"Image","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"generateThumbnail":{"name":"generateThumbnail","async":true,"parameters":[{"name":"options","type":"ThumbnailOptions","optional":false}],"returnType":"Promise<Image>","isStatic":false,"isPublic":true},"getWordAtTime":{"name":"getWordAtTime","async":false,"parameters":[{"name":"seconds","type":"number","optional":false}],"returnType":"WordTiming | null","isStatic":false,"isPublic":true},"fromSynthesizedSpeech":{"name":"fromSynthesizedSpeech","async":false,"parameters":[{"name":"options","type":"VoiceOutputFromSynthesizedSpeechOptions","optional":false}],"returnType":"VoiceOutput","isStatic":true,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","delete"]},"mcp":{"include":["list","get"]},"cli":true,"tenantScoped":{"mode":"optional"},"tableName":"contents"},"extends":"Content","extendsQualified":"@happyvertical/smrt-content:Content","exportName":"VoiceOutput","collectionExportName":"VoiceOutputCollection","displayLabelField":"name","validationRules":[{"field":"name","rule":"required","fieldType":"text"}],"schema":{"tableName":"contents","ddl":"CREATE TABLE IF NOT EXISTS \\"contents\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"type\\" TEXT,\\n \\"variant\\" TEXT,\\n \\"file_key\\" TEXT,\\n \\"author\\" TEXT,\\n \\"name\\" TEXT DEFAULT '',\\n \\"title\\" TEXT,\\n \\"description\\" TEXT,\\n \\"body\\" TEXT,\\n \\"body_format\\" TEXT,\\n \\"publish_date\\" TIMESTAMP,\\n \\"url\\" TEXT,\\n \\"source\\" TEXT,\\n \\"original_url\\" TEXT,\\n \\"language\\" TEXT,\\n \\"tags\\" JSON DEFAULT '[]',\\n \\"category\\" TEXT,\\n \\"status\\" TEXT DEFAULT 'draft',\\n \\"state\\" TEXT DEFAULT 'active',\\n \\"metadata\\" JSON DEFAULT '{}',\\n \\"thumbnail_asset_id\\" UUID,\\n \\"voice_profile_id\\" UUID,\\n \\"source_text\\" TEXT DEFAULT '',\\n \\"audio_asset_id\\" UUID,\\n \\"duration\\" INTEGER DEFAULT 0,\\n \\"word_timings\\" JSON DEFAULT '[]',\\n \\"audio_metadata\\" JSON,\\n \\"feed_source_id\\" UUID,\\n \\"source_guid\\" TEXT,\\n \\"source_name\\" TEXT,\\n \\"source_homepage_url\\" TEXT,\\n \\"external_url\\" TEXT,\\n \\"original_published_at\\" TIMESTAMP,\\n \\"dedupe_key\\" TEXT\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"type":{"type":"TEXT","notNull":false},"variant":{"type":"TEXT","notNull":false},"file_key":{"type":"TEXT","notNull":false},"author":{"type":"TEXT","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"title":{"type":"TEXT","notNull":false},"description":{"type":"TEXT","notNull":false},"body":{"type":"TEXT","notNull":false},"body_format":{"type":"TEXT","notNull":false},"publish_date":{"type":"TIMESTAMP","notNull":false},"url":{"type":"TEXT","notNull":false},"source":{"type":"TEXT","notNull":false},"original_url":{"type":"TEXT","notNull":false},"language":{"type":"TEXT","notNull":false},"tags":{"type":"JSON","notNull":false,"default":[]},"category":{"type":"TEXT","notNull":false},"status":{"type":"TEXT","notNull":false,"default":"draft"},"state":{"type":"TEXT","notNull":false,"default":"active"},"metadata":{"type":"JSON","notNull":false,"default":{}},"thumbnail_asset_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":false},"voice_profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"voice_profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"source_text":{"type":"TEXT","notNull":false,"default":""},"audio_asset_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":false},"duration":{"type":"INTEGER","notNull":false,"default":0},"word_timings":{"type":"JSON","notNull":false,"default":[]},"audio_metadata":{"type":"JSON","notNull":false},"feed_source_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false},"source_guid":{"type":"TEXT","notNull":false},"source_name":{"type":"TEXT","notNull":false},"source_homepage_url":{"type":"TEXT","notNull":false},"external_url":{"type":"TEXT","notNull":false},"original_published_at":{"type":"TIMESTAMP","notNull":false},"dedupe_key":{"type":"TEXT","notNull":false}},"indexes":[{"name":"contents_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"contents_meta_type_idx","columns":["_meta_type"]},{"name":"contents_tenant_id_publish_date_idx","columns":["tenant_id","publish_date"]},{"name":"contents_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"contents_thumbnail_asset_id_idx","columns":["thumbnail_asset_id"]},{"name":"contents_voice_profile_id_idx","columns":["voice_profile_id"]},{"name":"contents_audio_asset_id_idx","columns":["audio_asset_id"]},{"name":"contents_feed_source_id_idx","columns":["feed_source_id"]}],"version":"ee1272af"},"importPath":"@happyvertical/smrt-voice"},"@happyvertical/smrt-voice:VoiceProfile":{"name":"voiceprofile","className":"VoiceProfile","qualifiedName":"@happyvertical/smrt-voice:VoiceProfile","collection":"voiceprofiles","description":"Voice profile for AI-powered speech synthesis","filePath":"/home/runner/work/smrt/smrt/packages/voice/src/voice-profile.ts","packageName":"@happyvertical/smrt-voice","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true,"mode":"optional","field":"tenantId","allowSuperAdminBypass":false}}},"name":{"type":"text","required":false,"default":"","description":"What you call this voice, such as \\"Warm narrator\\".","_meta":{"description":"What you call this voice, such as \\"Warm narrator\\"."}},"description":{"type":"text","required":false,"description":"A note on how the voice sounds and what you use it for.","_meta":{"description":"A note on how the voice sounds and what you use it for."}},"language":{"type":"text","required":false,"default":"en-US","description":"The language the voice speaks.","_meta":{"description":"The language the voice speaks."}},"gender":{"type":"text","required":false,"default":"neutral","description":"Whether the voice sounds male, female or neutral.","_meta":{"description":"Whether the voice sounds male, female or neutral."},"enum":["male","female","neutral"]},"designPrompt":{"type":"text","required":false,"description":"Describe the voice you want in your own words, when there is no clip to copy.","_meta":{"description":"Describe the voice you want in your own words, when there is no clip to copy."}},"sampleAssetId":{"type":"crossPackageRef","required":false,"related":"@happyvertical/smrt-assets:Asset","description":"The recorded clip the voice is copied from, when there is one. Leave it empty for a described voice.","_meta":{"description":"The recorded clip the voice is copied from, when there is one. Leave it empty for a described voice."}},"voiceData":{"type":"json","required":false,"default":{}},"defaultSpeed":{"type":"decimal","required":false,"default":1},"defaultPitch":{"type":"integer","required":false,"default":0},"status":{"type":"text","required":false,"default":"pending","description":"Where the voice stands: waiting, being prepared, ready to use, or failed. The speech service updates it.","_meta":{"description":"Where the voice stands: waiting, being prepared, ready to use, or failed. The speech service updates it."},"enum":["pending","processing","ready","failed"]},"provider":{"type":"text","required":false,"default":"qwen3-tts"},"errorMessage":{"type":"text","required":false}},"methods":{"toSpeechVoice":{"name":"toSpeechVoice","async":false,"parameters":[],"returnType":"SpeechVoice","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"VoiceProfile","collectionExportName":"VoiceProfileCollection","displayLabelField":"name","schema":{"tableName":"voice_profiles","ddl":"CREATE TABLE IF NOT EXISTS \\"voice_profiles\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"name\\" TEXT DEFAULT '',\\n \\"description\\" TEXT,\\n \\"language\\" TEXT DEFAULT 'en-US',\\n \\"gender\\" TEXT DEFAULT 'neutral',\\n \\"design_prompt\\" TEXT,\\n \\"sample_asset_id\\" UUID,\\n \\"voice_data\\" JSON DEFAULT '{}',\\n \\"default_speed\\" REAL DEFAULT 1,\\n \\"default_pitch\\" INTEGER DEFAULT 0,\\n \\"status\\" TEXT DEFAULT 'pending',\\n \\"provider\\" TEXT DEFAULT 'qwen3-tts',\\n \\"error_message\\" TEXT\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"description":{"type":"TEXT","notNull":false},"language":{"type":"TEXT","notNull":false,"default":"en-US"},"gender":{"type":"TEXT","notNull":false,"default":"neutral"},"design_prompt":{"type":"TEXT","notNull":false},"sample_asset_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":false},"voice_data":{"type":"JSON","notNull":false,"default":{}},"default_speed":{"type":"REAL","notNull":false,"default":1},"default_pitch":{"type":"INTEGER","notNull":false,"default":0},"status":{"type":"TEXT","notNull":false,"default":"pending"},"provider":{"type":"TEXT","notNull":false,"default":"qwen3-tts"},"error_message":{"type":"TEXT","notNull":false}},"indexes":[{"name":"voice_profiles_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"voice_profiles_meta_type_idx","columns":["_meta_type"]},{"name":"voice_profiles_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"voice_profiles_sample_asset_id_idx","columns":["sample_asset_id"]}],"version":"b3717c47"},"importPath":"@happyvertical/smrt-voice"},"@happyvertical/smrt-voice:VoiceSample":{"name":"voicesample","className":"VoiceSample","qualifiedName":"@happyvertical/smrt-voice:VoiceSample","collection":"voicesamples","description":"Audio sample for voice cloning","filePath":"/home/runner/work/smrt/smrt/packages/voice/src/voice-sample.ts","packageName":"@happyvertical/smrt-voice","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true,"mode":"optional","field":"tenantId","allowSuperAdminBypass":false}}},"voiceProfileId":{"type":"foreignKey","required":false,"related":"VoiceProfile","description":"The voice this clip belongs to.","_meta":{"description":"The voice this clip belongs to."}},"assetId":{"type":"crossPackageRef","required":false,"related":"@happyvertical/smrt-assets:Asset","description":"The audio file of the recording.","_meta":{"description":"The audio file of the recording."}},"duration":{"type":"integer","required":false,"default":0,"description":"How long the clip runs, in seconds. At least three is needed.","_meta":{"description":"How long the clip runs, in seconds. At least three is needed."}},"transcription":{"type":"text","required":false,"description":"The words spoken in the clip, written out.","_meta":{"description":"The words spoken in the clip, written out."}},"quality":{"type":"text","required":false,"default":"medium","description":"How clean the recording is: low, medium or high. A low one cannot be used to copy a voice.","_meta":{"description":"How clean the recording is: low, medium or high. A low one cannot be used to copy a voice."},"enum":["low","medium","high"]},"sampleRate":{"type":"integer","required":false},"channels":{"type":"integer","required":false},"format":{"type":"text","required":false},"isPrimary":{"type":"boolean","required":false,"default":false,"description":"Tick the one clip that best represents the voice.","_meta":{"description":"Tick the one clip that best represents the voice."}}},"methods":{},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","delete"]},"mcp":{"include":["list","get"]},"cli":true,"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"VoiceSample","collectionExportName":"VoiceSampleCollection","schema":{"tableName":"voice_samples","ddl":"CREATE TABLE IF NOT EXISTS \\"voice_samples\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"voice_profile_id\\" UUID,\\n \\"asset_id\\" UUID,\\n \\"duration\\" INTEGER DEFAULT 0,\\n \\"transcription\\" TEXT,\\n \\"quality\\" TEXT DEFAULT 'medium',\\n \\"sample_rate\\" INTEGER,\\n \\"channels\\" INTEGER,\\n \\"format\\" TEXT,\\n \\"is_primary\\" BOOLEAN DEFAULT FALSE\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"voice_profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"voice_profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"asset_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":false},"duration":{"type":"INTEGER","notNull":false,"default":0},"transcription":{"type":"TEXT","notNull":false},"quality":{"type":"TEXT","notNull":false,"default":"medium"},"sample_rate":{"type":"INTEGER","notNull":false},"channels":{"type":"INTEGER","notNull":false},"format":{"type":"TEXT","notNull":false},"is_primary":{"type":"BOOLEAN","notNull":false,"default":false}},"indexes":[{"name":"voice_samples_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"voice_samples_meta_type_idx","columns":["_meta_type"]},{"name":"voice_samples_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"voice_samples_voice_profile_id_idx","columns":["voice_profile_id"]},{"name":"voice_samples_asset_id_idx","columns":["asset_id"]}],"version":"cbb4acc4"},"importPath":"@happyvertical/smrt-voice"}},"moduleType":"smrt","recipes":[{"id":"voice.profiles","className":"VoiceProfilesRecipe","label":"Voice","summary":"Set up the voices your app can speak in, from a description or a recorded clip, and keep the speech it generates.","synonyms":["voices","text to speech","read aloud","voice cloning","narration","speech"],"models":["@happyvertical/smrt-voice:VoiceProfile","@happyvertical/smrt-voice:VoiceSample","@happyvertical/smrt-voice:VoiceOutput"],"nav":[{"label":"Voices","model":"@happyvertical/smrt-voice:VoiceProfile","icon":"users","description":"The voices your app can speak in, described in words or copied from a clip.","noun":"voice"},{"label":"Samples","model":"@happyvertical/smrt-voice:VoiceSample","icon":"folder","description":"The recorded clips a voice is copied from.","noun":"sample"},{"label":"Generated speech","model":"@happyvertical/smrt-voice:VoiceOutput","icon":"fileText","description":"Every recording the app has read aloud, with its text.","noun":"recording"}],"requires":[],"section":{"id":"publish","label":"Publish","icon":"fileText","description":"What you write, record and put out."},"options":{"@happyvertical/smrt-voice:VoiceProfile":{"fields":{"name":{"order":1},"description":{"order":2},"language":{"order":3},"gender":{"order":4},"designPrompt":{"label":"Describe the voice","order":5},"sampleAssetId":{"label":"Sample clip","order":6},"status":{"order":7},"defaultSpeed":{"label":"Speed","visibility":"advanced"},"defaultPitch":{"label":"Pitch","visibility":"advanced"},"provider":{"label":"Speech service","visibility":"advanced"},"errorMessage":{"label":"What went wrong","visibility":"advanced"},"voiceData":{"visibility":"hidden"},"tenantId":{"visibility":"hidden"}}},"@happyvertical/smrt-voice:VoiceSample":{"fields":{"voiceProfileId":{"label":"Voice","order":1},"assetId":{"label":"Audio file","order":2},"duration":{"label":"Length in seconds","order":3},"transcription":{"label":"What is said","order":4},"quality":{"order":5},"isPrimary":{"label":"Main clip","order":6},"sampleRate":{"visibility":"advanced"},"channels":{"visibility":"advanced"},"format":{"visibility":"advanced"},"tenantId":{"visibility":"hidden"}}},"@happyvertical/smrt-voice:VoiceOutput":{"fields":{"name":{"label":"Title","order":1},"sourceText":{"label":"Text","order":2},"voiceProfileId":{"label":"Voice","order":3},"audioAssetId":{"label":"Audio file","order":4},"duration":{"label":"Length in seconds","order":5},"description":{"visibility":"advanced"},"author":{"visibility":"advanced"},"publish_date":{"label":"Date","visibility":"advanced"},"language":{"visibility":"advanced"},"wordTimings":{"visibility":"hidden"},"audioMetadata":{"visibility":"hidden"},"type":{"visibility":"hidden"},"variant":{"visibility":"hidden"},"fileKey":{"visibility":"hidden"},"body":{"visibility":"hidden"},"bodyFormat":{"visibility":"hidden"},"url":{"visibility":"hidden"},"source":{"visibility":"hidden"},"original_url":{"visibility":"hidden"},"tags":{"visibility":"hidden"},"category":{"visibility":"hidden"},"status":{"visibility":"hidden"},"state":{"visibility":"hidden"},"metadata":{"visibility":"hidden"},"thumbnailAssetId":{"visibility":"hidden"},"tenantId":{"visibility":"hidden"}}}},"help":{"markdown":"## Overview\\n\\nVoice is where you set up the voices your app can speak in and keep the speech\\nit has read aloud. A voice is either described in your own words, such as \\"a\\nwarm, unhurried narrator\\", or copied from a recorded clip of a real person. The\\nspeech service prepares the voice and shows where it stands, from waiting to\\nready. Once a voice is ready, the app can read any text aloud in it, and each\\nrecording it makes is kept here with the text it came from.\\n\\n## Tasks\\n\\n### Create a voice\\n\\n1. Open the list of voices and choose **New**.\\n2. Give the voice a **{field:VoiceProfile.name}** your team will recognise.\\n3. Pick the **{field:VoiceProfile.language}** it speaks and, if you like, the **{field:VoiceProfile.gender}** it should sound like.\\n4. Do one of the following, not both: write what you want to hear in **{field:VoiceProfile.designPrompt}**, or pick a recorded clip in **{field:VoiceProfile.sampleAssetId}** to copy a real voice.\\n5. Save. The **{field:VoiceProfile.status}** shows whether the speech service is still preparing the voice, has it ready, or could not make it. You do not set it yourself.\\n\\n### Add a sample clip\\n\\nA clip can only be used to copy a voice when it runs at least three seconds and\\nits quality is not low. One clear speaker with no background noise works best.\\n\\n1. Open the list of samples and choose **New**.\\n2. Pick the **{field:VoiceSample.voiceProfileId}** the clip is for and the **{field:VoiceSample.assetId}** holding the recording.\\n3. Enter the **{field:VoiceSample.duration}** and, if you know it, the **{field:VoiceSample.quality}** of the recording.\\n4. Write out **{field:VoiceSample.transcription}** so the words can be matched to the sound.\\n5. Tick **{field:VoiceSample.isPrimary}** on the clip that best represents the voice.\\n6. Save. To take a clip out, open it and remove it.\\n\\n### Find a recording the app has made\\n\\nRecordings are made by the speech service whenever the app reads text aloud in\\none of your voices. The sound itself always comes from the service; here you\\nfind, listen to and tidy up what it has made.\\n\\n1. Open the list of generated speech.\\n2. Look at the **{field:VoiceOutput.name}** and the **{field:VoiceOutput.voiceProfileId}** to find the one you want.\\n3. Open it to read the **{field:VoiceOutput.sourceText}** and play the **{field:VoiceOutput.audioAssetId}**; the **{field:VoiceOutput.duration}** tells you how long it runs.\\n4. To clear out a recording you no longer need, open it and remove it.\\n","fieldRefs":["VoiceOutput.audioAssetId","VoiceOutput.duration","VoiceOutput.name","VoiceOutput.sourceText","VoiceOutput.voiceProfileId","VoiceProfile.designPrompt","VoiceProfile.gender","VoiceProfile.language","VoiceProfile.name","VoiceProfile.sampleAssetId","VoiceProfile.status","VoiceSample.assetId","VoiceSample.duration","VoiceSample.isPrimary","VoiceSample.quality","VoiceSample.transcription","VoiceSample.voiceProfileId"]},"demo":{"mode":"server","reasons":["Needs a server because its package does not build for a browser: documents/spider SDK graph; CJS parse error; and its package depends on @happyvertical/smrt-agents, @happyvertical/smrt-chat, @happyvertical/smrt-content, @happyvertical/smrt-images, @happyvertical/smrt-jobs, @happyvertical/smrt-profiles, @happyvertical/smrt-reports, @happyvertical/smrt-secrets, @happyvertical/smrt-tenancy, @happyvertical/smrt-users, which do not build for a browser (#3615, #3617, #3624, #3625, #3626, #3627, #3628)."]}}],"smrtDependencies":["@happyvertical/smrt-assets","@happyvertical/smrt-content","@happyvertical/smrt-core","@happyvertical/smrt-tenancy"],"browser":{"status":"server-only","issues":["#3615","#3617","#3624","#3625","#3626","#3627","#3628"],"reason":"documents/spider SDK graph; CJS parse error","via":["@happyvertical/smrt-agents","@happyvertical/smrt-chat","@happyvertical/smrt-content","@happyvertical/smrt-images","@happyvertical/smrt-jobs","@happyvertical/smrt-profiles","@happyvertical/smrt-reports","@happyvertical/smrt-secrets","@happyvertical/smrt-tenancy","@happyvertical/smrt-users"]},"stampsConstructors":true}`));
|
|
6
6
|
//#endregion
|
|
7
7
|
//#region src/voice-profile.ts
|
|
8
8
|
var __defProp$2 = Object.defineProperty;
|
|
@@ -22,26 +22,10 @@ var __decorateClass$2 = (decorators, target, key, kind) => {
|
|
|
22
22
|
var __publicField$2 = (obj, key, value) => __defNormalProp$2(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
23
23
|
var VoiceProfile = class extends SmrtObject {
|
|
24
24
|
tenantId = null;
|
|
25
|
-
/**
|
|
26
|
-
* Human-readable name for the voice profile
|
|
27
|
-
*/
|
|
28
25
|
name = "";
|
|
29
|
-
/**
|
|
30
|
-
* Description of the voice characteristics
|
|
31
|
-
*/
|
|
32
26
|
description = null;
|
|
33
|
-
/**
|
|
34
|
-
* ISO language code (e.g., 'en-US', 'zh-CN')
|
|
35
|
-
*/
|
|
36
27
|
language = "en-US";
|
|
37
|
-
/**
|
|
38
|
-
* Voice gender classification
|
|
39
|
-
*/
|
|
40
28
|
gender = "neutral";
|
|
41
|
-
/**
|
|
42
|
-
* Natural language description for voice design
|
|
43
|
-
* Used when creating a voice from scratch via AI
|
|
44
|
-
*/
|
|
45
29
|
designPrompt = null;
|
|
46
30
|
sampleAssetId = null;
|
|
47
31
|
/**
|
|
@@ -59,13 +43,6 @@ var VoiceProfile = class extends SmrtObject {
|
|
|
59
43
|
* 0 = no adjustment
|
|
60
44
|
*/
|
|
61
45
|
defaultPitch = 0;
|
|
62
|
-
/**
|
|
63
|
-
* Voice profile status
|
|
64
|
-
* - pending: Profile created but voice not yet generated
|
|
65
|
-
* - processing: Voice generation/cloning in progress
|
|
66
|
-
* - ready: Voice is ready for use
|
|
67
|
-
* - failed: Voice generation failed
|
|
68
|
-
*/
|
|
69
46
|
status = "pending";
|
|
70
47
|
/**
|
|
71
48
|
* TTS provider that created/manages this voice
|
|
@@ -140,7 +117,13 @@ var VoiceProfile = class extends SmrtObject {
|
|
|
140
117
|
};
|
|
141
118
|
__publicField$2(VoiceProfile, "__smrtPackage__", "@happyvertical/smrt-voice");
|
|
142
119
|
__decorateClass$2([tenantId({ nullable: true })], VoiceProfile.prototype, "tenantId", 2);
|
|
143
|
-
__decorateClass$2([
|
|
120
|
+
__decorateClass$2([field({ description: "What you call this voice, such as \"Warm narrator\"." })], VoiceProfile.prototype, "name", 2);
|
|
121
|
+
__decorateClass$2([field({ description: "A note on how the voice sounds and what you use it for." })], VoiceProfile.prototype, "description", 2);
|
|
122
|
+
__decorateClass$2([field({ description: "The language the voice speaks." })], VoiceProfile.prototype, "language", 2);
|
|
123
|
+
__decorateClass$2([field({ description: "Whether the voice sounds male, female or neutral." })], VoiceProfile.prototype, "gender", 2);
|
|
124
|
+
__decorateClass$2([field({ description: "Describe the voice you want in your own words, when there is no clip to copy." })], VoiceProfile.prototype, "designPrompt", 2);
|
|
125
|
+
__decorateClass$2([field({ description: "The recorded clip the voice is copied from, when there is one. Leave it empty for a described voice." }), crossPackageRef("@happyvertical/smrt-assets:Asset")], VoiceProfile.prototype, "sampleAssetId", 2);
|
|
126
|
+
__decorateClass$2([field({ description: "Where the voice stands: waiting, being prepared, ready to use, or failed. The speech service updates it." })], VoiceProfile.prototype, "status", 2);
|
|
144
127
|
VoiceProfile = __decorateClass$2([TenantScoped({ mode: "optional" }), smrt({
|
|
145
128
|
tableStrategy: "sti",
|
|
146
129
|
api: { include: [
|
|
@@ -178,14 +161,8 @@ var __decorateClass$1 = (decorators, target, key, kind) => {
|
|
|
178
161
|
var __publicField$1 = (obj, key, value) => __defNormalProp$1(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
179
162
|
var VoiceOutput = class extends Content {
|
|
180
163
|
voiceProfileId = null;
|
|
181
|
-
/**
|
|
182
|
-
* Original text that was synthesized
|
|
183
|
-
*/
|
|
184
164
|
sourceText = "";
|
|
185
165
|
audioAssetId = null;
|
|
186
|
-
/**
|
|
187
|
-
* Duration of the generated audio in seconds
|
|
188
|
-
*/
|
|
189
166
|
duration = 0;
|
|
190
167
|
/**
|
|
191
168
|
* Word-level timing information for lip-sync alignment
|
|
@@ -253,8 +230,10 @@ var VoiceOutput = class extends Content {
|
|
|
253
230
|
}
|
|
254
231
|
};
|
|
255
232
|
__publicField$1(VoiceOutput, "__smrtPackage__", "@happyvertical/smrt-voice");
|
|
256
|
-
__decorateClass$1([foreignKey(() => VoiceProfile)], VoiceOutput.prototype, "voiceProfileId", 2);
|
|
257
|
-
__decorateClass$1([
|
|
233
|
+
__decorateClass$1([field({ description: "The voice that read the text." }), foreignKey(() => VoiceProfile)], VoiceOutput.prototype, "voiceProfileId", 2);
|
|
234
|
+
__decorateClass$1([field({ description: "The text that was read aloud." })], VoiceOutput.prototype, "sourceText", 2);
|
|
235
|
+
__decorateClass$1([field({ description: "The audio file of the recording." }), crossPackageRef("@happyvertical/smrt-assets:Asset")], VoiceOutput.prototype, "audioAssetId", 2);
|
|
236
|
+
__decorateClass$1([field({ description: "How long the recording runs, in seconds." })], VoiceOutput.prototype, "duration", 2);
|
|
258
237
|
VoiceOutput = __decorateClass$1([TenantScoped({ mode: "optional" }), smrt({
|
|
259
238
|
tableStrategy: "sti",
|
|
260
239
|
api: { include: [
|
|
@@ -313,21 +292,8 @@ var VoiceSample = class extends SmrtObject {
|
|
|
313
292
|
tenantId = null;
|
|
314
293
|
voiceProfileId = null;
|
|
315
294
|
assetId = null;
|
|
316
|
-
/**
|
|
317
|
-
* Sample duration in seconds
|
|
318
|
-
*/
|
|
319
295
|
duration = 0;
|
|
320
|
-
/**
|
|
321
|
-
* Transcription of what was said in the sample
|
|
322
|
-
* Used for alignment and quality verification
|
|
323
|
-
*/
|
|
324
296
|
transcription = null;
|
|
325
|
-
/**
|
|
326
|
-
* Quality rating based on audio analysis
|
|
327
|
-
* - low: Noisy or short samples
|
|
328
|
-
* - medium: Acceptable quality
|
|
329
|
-
* - high: Clear audio, good length
|
|
330
|
-
*/
|
|
331
297
|
quality = "medium";
|
|
332
298
|
/**
|
|
333
299
|
* Sample rate in Hz
|
|
@@ -341,9 +307,6 @@ var VoiceSample = class extends SmrtObject {
|
|
|
341
307
|
* Audio format
|
|
342
308
|
*/
|
|
343
309
|
format = null;
|
|
344
|
-
/**
|
|
345
|
-
* Whether this is the primary sample for the voice profile
|
|
346
|
-
*/
|
|
347
310
|
isPrimary = false;
|
|
348
311
|
constructor(options = {}) {
|
|
349
312
|
super(options);
|
|
@@ -373,8 +336,12 @@ var VoiceSample = class extends SmrtObject {
|
|
|
373
336
|
};
|
|
374
337
|
__publicField(VoiceSample, "__smrtPackage__", "@happyvertical/smrt-voice");
|
|
375
338
|
__decorateClass([tenantId({ nullable: true })], VoiceSample.prototype, "tenantId", 2);
|
|
376
|
-
__decorateClass([foreignKey(() => VoiceProfile)], VoiceSample.prototype, "voiceProfileId", 2);
|
|
377
|
-
__decorateClass([crossPackageRef("@happyvertical/smrt-assets:Asset")], VoiceSample.prototype, "assetId", 2);
|
|
339
|
+
__decorateClass([field({ description: "The voice this clip belongs to." }), foreignKey(() => VoiceProfile)], VoiceSample.prototype, "voiceProfileId", 2);
|
|
340
|
+
__decorateClass([field({ description: "The audio file of the recording." }), crossPackageRef("@happyvertical/smrt-assets:Asset")], VoiceSample.prototype, "assetId", 2);
|
|
341
|
+
__decorateClass([field({ description: "How long the clip runs, in seconds. At least three is needed." })], VoiceSample.prototype, "duration", 2);
|
|
342
|
+
__decorateClass([field({ description: "The words spoken in the clip, written out." })], VoiceSample.prototype, "transcription", 2);
|
|
343
|
+
__decorateClass([field({ description: "How clean the recording is: low, medium or high. A low one cannot be used to copy a voice." })], VoiceSample.prototype, "quality", 2);
|
|
344
|
+
__decorateClass([field({ description: "Tick the one clip that best represents the voice." })], VoiceSample.prototype, "isPrimary", 2);
|
|
378
345
|
VoiceSample = __decorateClass([TenantScoped({ mode: "optional" }), smrt({
|
|
379
346
|
tableStrategy: "sti",
|
|
380
347
|
api: { include: [
|
|
@@ -387,6 +354,164 @@ VoiceSample = __decorateClass([TenantScoped({ mode: "optional" }), smrt({
|
|
|
387
354
|
cli: true
|
|
388
355
|
})], VoiceSample);
|
|
389
356
|
//#endregion
|
|
390
|
-
|
|
357
|
+
//#region src/recipes.ts
|
|
358
|
+
var VoiceProfilesRecipe = class extends SmrtRecipe {
|
|
359
|
+
static id = "voice.profiles";
|
|
360
|
+
static help = "./profiles.recipe.md";
|
|
361
|
+
static label = "Voice";
|
|
362
|
+
static summary = "Set up the voices your app can speak in, from a description or a recorded clip, and keep the speech it generates.";
|
|
363
|
+
static synonyms = [
|
|
364
|
+
"voices",
|
|
365
|
+
"text to speech",
|
|
366
|
+
"read aloud",
|
|
367
|
+
"voice cloning",
|
|
368
|
+
"narration",
|
|
369
|
+
"speech"
|
|
370
|
+
];
|
|
371
|
+
static section = {
|
|
372
|
+
id: "publish",
|
|
373
|
+
label: "Publish",
|
|
374
|
+
icon: "fileText",
|
|
375
|
+
description: "What you write, record and put out."
|
|
376
|
+
};
|
|
377
|
+
static models = [
|
|
378
|
+
VoiceProfile,
|
|
379
|
+
VoiceSample,
|
|
380
|
+
VoiceOutput
|
|
381
|
+
];
|
|
382
|
+
static nav = [
|
|
383
|
+
{
|
|
384
|
+
label: "Voices",
|
|
385
|
+
model: VoiceProfile,
|
|
386
|
+
icon: "users",
|
|
387
|
+
description: "The voices your app can speak in, described in words or copied from a clip.",
|
|
388
|
+
noun: "voice"
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
label: "Samples",
|
|
392
|
+
model: VoiceSample,
|
|
393
|
+
icon: "folder",
|
|
394
|
+
description: "The recorded clips a voice is copied from.",
|
|
395
|
+
noun: "sample"
|
|
396
|
+
},
|
|
397
|
+
{
|
|
398
|
+
label: "Generated speech",
|
|
399
|
+
model: VoiceOutput,
|
|
400
|
+
icon: "fileText",
|
|
401
|
+
description: "Every recording the app has read aloud, with its text.",
|
|
402
|
+
noun: "recording"
|
|
403
|
+
}
|
|
404
|
+
];
|
|
405
|
+
static options = {
|
|
406
|
+
VoiceProfile: { fields: {
|
|
407
|
+
name: { order: 1 },
|
|
408
|
+
description: { order: 2 },
|
|
409
|
+
language: { order: 3 },
|
|
410
|
+
gender: { order: 4 },
|
|
411
|
+
designPrompt: {
|
|
412
|
+
label: "Describe the voice",
|
|
413
|
+
order: 5
|
|
414
|
+
},
|
|
415
|
+
sampleAssetId: {
|
|
416
|
+
label: "Sample clip",
|
|
417
|
+
order: 6
|
|
418
|
+
},
|
|
419
|
+
status: { order: 7 },
|
|
420
|
+
defaultSpeed: {
|
|
421
|
+
label: "Speed",
|
|
422
|
+
visibility: "advanced"
|
|
423
|
+
},
|
|
424
|
+
defaultPitch: {
|
|
425
|
+
label: "Pitch",
|
|
426
|
+
visibility: "advanced"
|
|
427
|
+
},
|
|
428
|
+
provider: {
|
|
429
|
+
label: "Speech service",
|
|
430
|
+
visibility: "advanced"
|
|
431
|
+
},
|
|
432
|
+
errorMessage: {
|
|
433
|
+
label: "What went wrong",
|
|
434
|
+
visibility: "advanced"
|
|
435
|
+
},
|
|
436
|
+
voiceData: { visibility: "hidden" },
|
|
437
|
+
tenantId: { visibility: "hidden" }
|
|
438
|
+
} },
|
|
439
|
+
VoiceSample: { fields: {
|
|
440
|
+
voiceProfileId: {
|
|
441
|
+
label: "Voice",
|
|
442
|
+
order: 1
|
|
443
|
+
},
|
|
444
|
+
assetId: {
|
|
445
|
+
label: "Audio file",
|
|
446
|
+
order: 2
|
|
447
|
+
},
|
|
448
|
+
duration: {
|
|
449
|
+
label: "Length in seconds",
|
|
450
|
+
order: 3
|
|
451
|
+
},
|
|
452
|
+
transcription: {
|
|
453
|
+
label: "What is said",
|
|
454
|
+
order: 4
|
|
455
|
+
},
|
|
456
|
+
quality: { order: 5 },
|
|
457
|
+
isPrimary: {
|
|
458
|
+
label: "Main clip",
|
|
459
|
+
order: 6
|
|
460
|
+
},
|
|
461
|
+
sampleRate: { visibility: "advanced" },
|
|
462
|
+
channels: { visibility: "advanced" },
|
|
463
|
+
format: { visibility: "advanced" },
|
|
464
|
+
tenantId: { visibility: "hidden" }
|
|
465
|
+
} },
|
|
466
|
+
VoiceOutput: { fields: {
|
|
467
|
+
name: {
|
|
468
|
+
label: "Title",
|
|
469
|
+
order: 1
|
|
470
|
+
},
|
|
471
|
+
sourceText: {
|
|
472
|
+
label: "Text",
|
|
473
|
+
order: 2
|
|
474
|
+
},
|
|
475
|
+
voiceProfileId: {
|
|
476
|
+
label: "Voice",
|
|
477
|
+
order: 3
|
|
478
|
+
},
|
|
479
|
+
audioAssetId: {
|
|
480
|
+
label: "Audio file",
|
|
481
|
+
order: 4
|
|
482
|
+
},
|
|
483
|
+
duration: {
|
|
484
|
+
label: "Length in seconds",
|
|
485
|
+
order: 5
|
|
486
|
+
},
|
|
487
|
+
description: { visibility: "advanced" },
|
|
488
|
+
author: { visibility: "advanced" },
|
|
489
|
+
publish_date: {
|
|
490
|
+
label: "Date",
|
|
491
|
+
visibility: "advanced"
|
|
492
|
+
},
|
|
493
|
+
language: { visibility: "advanced" },
|
|
494
|
+
wordTimings: { visibility: "hidden" },
|
|
495
|
+
audioMetadata: { visibility: "hidden" },
|
|
496
|
+
type: { visibility: "hidden" },
|
|
497
|
+
variant: { visibility: "hidden" },
|
|
498
|
+
fileKey: { visibility: "hidden" },
|
|
499
|
+
body: { visibility: "hidden" },
|
|
500
|
+
bodyFormat: { visibility: "hidden" },
|
|
501
|
+
url: { visibility: "hidden" },
|
|
502
|
+
source: { visibility: "hidden" },
|
|
503
|
+
original_url: { visibility: "hidden" },
|
|
504
|
+
tags: { visibility: "hidden" },
|
|
505
|
+
category: { visibility: "hidden" },
|
|
506
|
+
status: { visibility: "hidden" },
|
|
507
|
+
state: { visibility: "hidden" },
|
|
508
|
+
metadata: { visibility: "hidden" },
|
|
509
|
+
thumbnailAssetId: { visibility: "hidden" },
|
|
510
|
+
tenantId: { visibility: "hidden" }
|
|
511
|
+
} }
|
|
512
|
+
};
|
|
513
|
+
};
|
|
514
|
+
//#endregion
|
|
515
|
+
export { VoiceOutput, VoiceProfile, VoiceProfilesRecipe, VoiceSample, metadataFromSynthesizedSpeech, wordTimingsFromSpeech };
|
|
391
516
|
|
|
392
517
|
//# sourceMappingURL=index.js.map
|