vidspotai-shared 1.0.67 → 1.0.69-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (502) hide show
  1. package/lib/globals/aiModels/enums.d.ts +63 -6
  2. package/lib/globals/aiModels/enums.d.ts.map +1 -1
  3. package/lib/globals/aiModels/enums.js +78 -9
  4. package/lib/globals/aiModels/index.d.ts +2 -0
  5. package/lib/globals/aiModels/index.d.ts.map +1 -1
  6. package/lib/globals/aiModels/index.js +6 -0
  7. package/lib/globals/aiModels/providers/alibaba.d.ts +4 -0
  8. package/lib/globals/aiModels/providers/alibaba.d.ts.map +1 -0
  9. package/lib/globals/aiModels/providers/alibaba.js +194 -0
  10. package/lib/globals/aiModels/providers/bytedance.d.ts.map +1 -1
  11. package/lib/globals/aiModels/providers/bytedance.js +19 -0
  12. package/lib/globals/aiModels/providers/elevenlabs.d.ts +14 -0
  13. package/lib/globals/aiModels/providers/elevenlabs.d.ts.map +1 -0
  14. package/lib/globals/aiModels/providers/elevenlabs.js +29 -0
  15. package/lib/globals/aiModels/providers/google.d.ts.map +1 -1
  16. package/lib/globals/aiModels/providers/google.js +150 -2
  17. package/lib/globals/aiModels/providers/kling.d.ts.map +1 -1
  18. package/lib/globals/aiModels/providers/kling.js +280 -37
  19. package/lib/globals/aiModels/providers/minimax.d.ts.map +1 -1
  20. package/lib/globals/aiModels/providers/minimax.js +73 -2
  21. package/lib/globals/aiModels/providers/openai.d.ts.map +1 -1
  22. package/lib/globals/aiModels/providers/openai.js +90 -6
  23. package/lib/globals/aiModels/providers/pixverse.d.ts.map +1 -1
  24. package/lib/globals/aiModels/providers/pixverse.js +111 -29
  25. package/lib/globals/aiModels/providers/pixverseTemplates.d.ts +36 -0
  26. package/lib/globals/aiModels/providers/pixverseTemplates.d.ts.map +1 -0
  27. package/lib/globals/aiModels/providers/pixverseTemplates.js +42 -0
  28. package/lib/globals/aiModels/providers/runway.d.ts.map +1 -1
  29. package/lib/globals/aiModels/providers/runway.js +64 -2
  30. package/lib/globals/aiModels/tierHelpers.d.ts +33 -0
  31. package/lib/globals/aiModels/tierHelpers.d.ts.map +1 -0
  32. package/lib/globals/aiModels/tierHelpers.js +109 -0
  33. package/lib/globals/aiModels/types.d.ts +20 -1
  34. package/lib/globals/aiModels/types.d.ts.map +1 -1
  35. package/lib/globals/ttsModels/index.d.ts +2 -0
  36. package/lib/globals/ttsModels/index.d.ts.map +1 -1
  37. package/lib/globals/ttsModels/index.js +9 -1
  38. package/lib/globals/ttsModels/providers/minimax.d.ts +8 -0
  39. package/lib/globals/ttsModels/providers/minimax.d.ts.map +1 -0
  40. package/lib/globals/ttsModels/providers/minimax.js +18 -0
  41. package/lib/globals/ttsModels/providers/openai.d.ts +12 -0
  42. package/lib/globals/ttsModels/providers/openai.d.ts.map +1 -0
  43. package/lib/globals/ttsModels/providers/openai.js +22 -0
  44. package/lib/globals/ttsModels/types.d.ts +1 -1
  45. package/lib/globals/ttsModels/types.d.ts.map +1 -1
  46. package/lib/globals/ttsModels/voices.d.ts +39 -4
  47. package/lib/globals/ttsModels/voices.d.ts.map +1 -1
  48. package/lib/globals/ttsModels/voices.js +273 -26
  49. package/lib/globals/types.d.ts +59 -1
  50. package/lib/globals/types.d.ts.map +1 -1
  51. package/lib/globals/types.js +81 -2
  52. package/lib/index.d.ts +1 -0
  53. package/lib/index.d.ts.map +1 -1
  54. package/lib/index.js +1 -0
  55. package/lib/models/agent.model.d.ts +357 -0
  56. package/lib/models/agent.model.d.ts.map +1 -0
  57. package/lib/models/agent.model.js +21 -0
  58. package/lib/models/cachedAsset.model.d.ts +18 -0
  59. package/lib/models/cachedAsset.model.d.ts.map +1 -0
  60. package/lib/models/cachedAsset.model.js +2 -0
  61. package/lib/models/cachedRawAsset.model.d.ts +20 -0
  62. package/lib/models/cachedRawAsset.model.d.ts.map +1 -0
  63. package/lib/models/cachedRawAsset.model.js +2 -0
  64. package/lib/models/image.model.d.ts +47 -0
  65. package/lib/models/image.model.d.ts.map +1 -0
  66. package/lib/models/image.model.js +2 -0
  67. package/lib/models/index.d.ts +6 -0
  68. package/lib/models/index.d.ts.map +1 -1
  69. package/lib/models/index.js +6 -0
  70. package/lib/models/notification.model.d.ts +25 -0
  71. package/lib/models/notification.model.d.ts.map +1 -0
  72. package/lib/models/notification.model.js +2 -0
  73. package/lib/models/ref.model.d.ts +80 -0
  74. package/lib/models/ref.model.d.ts.map +1 -0
  75. package/lib/models/ref.model.js +13 -0
  76. package/lib/models/share.model.d.ts +29 -0
  77. package/lib/models/share.model.d.ts.map +1 -0
  78. package/lib/models/share.model.js +2 -0
  79. package/lib/models/user.model.d.ts +12 -1
  80. package/lib/models/user.model.d.ts.map +1 -1
  81. package/lib/models/video.model.d.ts +120 -0
  82. package/lib/models/video.model.d.ts.map +1 -1
  83. package/lib/models/video.model.js +10 -0
  84. package/lib/schemas/agentPersona.schema.d.ts +10 -0
  85. package/lib/schemas/agentPersona.schema.d.ts.map +1 -0
  86. package/lib/schemas/agentPersona.schema.js +11 -0
  87. package/lib/schemas/agentRunJob.schema.d.ts +105 -0
  88. package/lib/schemas/agentRunJob.schema.d.ts.map +1 -0
  89. package/lib/schemas/agentRunJob.schema.js +88 -0
  90. package/lib/schemas/brandKit.schema.d.ts +113 -0
  91. package/lib/schemas/brandKit.schema.d.ts.map +1 -0
  92. package/lib/schemas/brandKit.schema.js +46 -0
  93. package/lib/schemas/brief.schema.d.ts +263 -0
  94. package/lib/schemas/brief.schema.d.ts.map +1 -0
  95. package/lib/schemas/brief.schema.js +157 -0
  96. package/lib/schemas/index.d.ts +7 -0
  97. package/lib/schemas/index.d.ts.map +1 -0
  98. package/lib/schemas/index.js +22 -0
  99. package/lib/schemas/project.schema.d.ts +1025 -0
  100. package/lib/schemas/project.schema.d.ts.map +1 -0
  101. package/lib/schemas/project.schema.js +256 -0
  102. package/lib/schemas/videoPlan.schema.d.ts +590 -0
  103. package/lib/schemas/videoPlan.schema.d.ts.map +1 -0
  104. package/lib/schemas/videoPlan.schema.js +412 -0
  105. package/lib/services/agent/beatSnap.d.ts +10 -0
  106. package/lib/services/agent/beatSnap.d.ts.map +1 -0
  107. package/lib/services/agent/beatSnap.js +128 -0
  108. package/lib/services/agent/bibleBuilder.d.ts +43 -0
  109. package/lib/services/agent/bibleBuilder.d.ts.map +1 -0
  110. package/lib/services/agent/bibleBuilder.js +102 -0
  111. package/lib/services/agent/bibleImageVision.d.ts +45 -0
  112. package/lib/services/agent/bibleImageVision.d.ts.map +1 -0
  113. package/lib/services/agent/bibleImageVision.js +169 -0
  114. package/lib/services/agent/chatAgent.d.ts +79 -0
  115. package/lib/services/agent/chatAgent.d.ts.map +1 -0
  116. package/lib/services/agent/chatAgent.js +136 -0
  117. package/lib/services/agent/costPreflight.d.ts +61 -0
  118. package/lib/services/agent/costPreflight.d.ts.map +1 -0
  119. package/lib/services/agent/costPreflight.js +143 -0
  120. package/lib/services/agent/critic.d.ts +103 -0
  121. package/lib/services/agent/critic.d.ts.map +1 -0
  122. package/lib/services/agent/critic.js +139 -0
  123. package/lib/services/agent/editClassifier.d.ts +262 -0
  124. package/lib/services/agent/editClassifier.d.ts.map +1 -0
  125. package/lib/services/agent/editClassifier.js +186 -0
  126. package/lib/services/agent/eval/index.d.ts +5 -0
  127. package/lib/services/agent/eval/index.d.ts.map +1 -0
  128. package/lib/services/agent/eval/index.js +20 -0
  129. package/lib/services/agent/eval/judge.d.ts +14 -0
  130. package/lib/services/agent/eval/judge.d.ts.map +1 -0
  131. package/lib/services/agent/eval/judge.js +96 -0
  132. package/lib/services/agent/eval/recorder.d.ts +28 -0
  133. package/lib/services/agent/eval/recorder.d.ts.map +1 -0
  134. package/lib/services/agent/eval/recorder.js +100 -0
  135. package/lib/services/agent/eval/seedBriefs.d.ts +16 -0
  136. package/lib/services/agent/eval/seedBriefs.d.ts.map +1 -0
  137. package/lib/services/agent/eval/seedBriefs.js +1188 -0
  138. package/lib/services/agent/eval/types.d.ts +230 -0
  139. package/lib/services/agent/eval/types.d.ts.map +1 -0
  140. package/lib/services/agent/eval/types.js +73 -0
  141. package/lib/services/agent/executor.d.ts +141 -0
  142. package/lib/services/agent/executor.d.ts.map +1 -0
  143. package/lib/services/agent/executor.js +561 -0
  144. package/lib/services/agent/globalActions.d.ts +49 -0
  145. package/lib/services/agent/globalActions.d.ts.map +1 -0
  146. package/lib/services/agent/globalActions.js +328 -0
  147. package/lib/services/agent/index.d.ts +38 -0
  148. package/lib/services/agent/index.d.ts.map +1 -0
  149. package/lib/services/agent/index.js +53 -0
  150. package/lib/services/agent/llmCaller.d.ts +144 -0
  151. package/lib/services/agent/llmCaller.d.ts.map +1 -0
  152. package/lib/services/agent/llmCaller.js +16 -0
  153. package/lib/services/agent/llmCallerAnthropic.d.ts +90 -0
  154. package/lib/services/agent/llmCallerAnthropic.d.ts.map +1 -0
  155. package/lib/services/agent/llmCallerAnthropic.js +255 -0
  156. package/lib/services/agent/llmCallerGateway.d.ts +61 -0
  157. package/lib/services/agent/llmCallerGateway.d.ts.map +1 -0
  158. package/lib/services/agent/llmCallerGateway.js +360 -0
  159. package/lib/services/agent/llmCallerRegistry.d.ts +6 -0
  160. package/lib/services/agent/llmCallerRegistry.d.ts.map +1 -0
  161. package/lib/services/agent/llmCallerRegistry.js +39 -0
  162. package/lib/services/agent/modelQualityNotes.d.ts +100 -0
  163. package/lib/services/agent/modelQualityNotes.d.ts.map +1 -0
  164. package/lib/services/agent/modelQualityNotes.js +248 -0
  165. package/lib/services/agent/modelRouter.d.ts +41 -0
  166. package/lib/services/agent/modelRouter.d.ts.map +1 -0
  167. package/lib/services/agent/modelRouter.js +65 -0
  168. package/lib/services/agent/musicSelect.d.ts +23 -0
  169. package/lib/services/agent/musicSelect.d.ts.map +1 -0
  170. package/lib/services/agent/musicSelect.js +109 -0
  171. package/lib/services/agent/overlayRenderer.d.ts +67 -0
  172. package/lib/services/agent/overlayRenderer.d.ts.map +1 -0
  173. package/lib/services/agent/overlayRenderer.js +253 -0
  174. package/lib/services/agent/perSceneCritic.d.ts +90 -0
  175. package/lib/services/agent/perSceneCritic.d.ts.map +1 -0
  176. package/lib/services/agent/perSceneCritic.js +125 -0
  177. package/lib/services/agent/personas.d.ts +78 -0
  178. package/lib/services/agent/personas.d.ts.map +1 -0
  179. package/lib/services/agent/personas.js +177 -0
  180. package/lib/services/agent/planDiff.d.ts +76 -0
  181. package/lib/services/agent/planDiff.d.ts.map +1 -0
  182. package/lib/services/agent/planDiff.js +182 -0
  183. package/lib/services/agent/planMutations.d.ts +46 -0
  184. package/lib/services/agent/planMutations.d.ts.map +1 -0
  185. package/lib/services/agent/planMutations.js +120 -0
  186. package/lib/services/agent/planner/Planner.d.ts +107 -0
  187. package/lib/services/agent/planner/Planner.d.ts.map +1 -0
  188. package/lib/services/agent/planner/Planner.js +591 -0
  189. package/lib/services/agent/planner/overlaySanity.d.ts +7 -0
  190. package/lib/services/agent/planner/overlaySanity.d.ts.map +1 -0
  191. package/lib/services/agent/planner/overlaySanity.js +86 -0
  192. package/lib/services/agent/planner/promptSections.d.ts +25 -0
  193. package/lib/services/agent/planner/promptSections.d.ts.map +1 -0
  194. package/lib/services/agent/planner/promptSections.js +174 -0
  195. package/lib/services/agent/planner/repair.d.ts +16 -0
  196. package/lib/services/agent/planner/repair.d.ts.map +1 -0
  197. package/lib/services/agent/planner/repair.js +51 -0
  198. package/lib/services/agent/planner/structuralRules.d.ts +10 -0
  199. package/lib/services/agent/planner/structuralRules.d.ts.map +1 -0
  200. package/lib/services/agent/planner/structuralRules.js +111 -0
  201. package/lib/services/agent/planner/validators.d.ts +65 -0
  202. package/lib/services/agent/planner/validators.d.ts.map +1 -0
  203. package/lib/services/agent/planner/validators.js +284 -0
  204. package/lib/services/agent/planner.d.ts +3 -0
  205. package/lib/services/agent/planner.d.ts.map +1 -0
  206. package/lib/services/agent/planner.js +14 -0
  207. package/lib/services/agent/providerFallback/chains.d.ts +100 -0
  208. package/lib/services/agent/providerFallback/chains.d.ts.map +1 -0
  209. package/lib/services/agent/providerFallback/chains.js +198 -0
  210. package/lib/services/agent/providerFallback/classifier.d.ts +36 -0
  211. package/lib/services/agent/providerFallback/classifier.d.ts.map +1 -0
  212. package/lib/services/agent/providerFallback/classifier.js +103 -0
  213. package/lib/services/agent/providerFallback/index.d.ts +4 -0
  214. package/lib/services/agent/providerFallback/index.d.ts.map +1 -0
  215. package/lib/services/agent/providerFallback/index.js +19 -0
  216. package/lib/services/agent/providerFallback/withFallback.d.ts +60 -0
  217. package/lib/services/agent/providerFallback/withFallback.d.ts.map +1 -0
  218. package/lib/services/agent/providerFallback/withFallback.js +93 -0
  219. package/lib/services/agent/providerTaskCache.d.ts +50 -0
  220. package/lib/services/agent/providerTaskCache.d.ts.map +1 -0
  221. package/lib/services/agent/providerTaskCache.js +98 -0
  222. package/lib/services/agent/qualityGate.d.ts +82 -0
  223. package/lib/services/agent/qualityGate.d.ts.map +1 -0
  224. package/lib/services/agent/qualityGate.js +232 -0
  225. package/lib/services/agent/referenceImageRenderer.d.ts +37 -0
  226. package/lib/services/agent/referenceImageRenderer.d.ts.map +1 -0
  227. package/lib/services/agent/referenceImageRenderer.js +92 -0
  228. package/lib/services/agent/regenCore.d.ts +60 -0
  229. package/lib/services/agent/regenCore.d.ts.map +1 -0
  230. package/lib/services/agent/regenCore.js +487 -0
  231. package/lib/services/agent/runHelpers.d.ts +44 -0
  232. package/lib/services/agent/runHelpers.d.ts.map +1 -0
  233. package/lib/services/agent/runHelpers.js +196 -0
  234. package/lib/services/agent/sceneLayoutVision.d.ts +90 -0
  235. package/lib/services/agent/sceneLayoutVision.d.ts.map +1 -0
  236. package/lib/services/agent/sceneLayoutVision.js +212 -0
  237. package/lib/services/agent/stitchedVideoCritic.d.ts +136 -0
  238. package/lib/services/agent/stitchedVideoCritic.d.ts.map +1 -0
  239. package/lib/services/agent/stitchedVideoCritic.gemini.d.ts +26 -0
  240. package/lib/services/agent/stitchedVideoCritic.gemini.d.ts.map +1 -0
  241. package/lib/services/agent/stitchedVideoCritic.gemini.js +198 -0
  242. package/lib/services/agent/stitchedVideoCritic.js +162 -0
  243. package/lib/services/agent/taskPoller.d.ts +65 -0
  244. package/lib/services/agent/taskPoller.d.ts.map +1 -0
  245. package/lib/services/agent/taskPoller.js +176 -0
  246. package/lib/services/agent/textOverlayStyles.d.ts +60 -0
  247. package/lib/services/agent/textOverlayStyles.d.ts.map +1 -0
  248. package/lib/services/agent/textOverlayStyles.js +174 -0
  249. package/lib/services/agent/toolRegistry.d.ts +73 -0
  250. package/lib/services/agent/toolRegistry.d.ts.map +1 -0
  251. package/lib/services/agent/toolRegistry.js +95 -0
  252. package/lib/services/agent/tools/analyzeReference.tool.d.ts +36 -0
  253. package/lib/services/agent/tools/analyzeReference.tool.d.ts.map +1 -0
  254. package/lib/services/agent/tools/analyzeReference.tool.js +44 -0
  255. package/lib/services/agent/tools/animateImage.tool.d.ts +24 -0
  256. package/lib/services/agent/tools/animateImage.tool.d.ts.map +1 -0
  257. package/lib/services/agent/tools/animateImage.tool.js +115 -0
  258. package/lib/services/agent/tools/animateImageWithMotionBrush.tool.d.ts +32 -0
  259. package/lib/services/agent/tools/animateImageWithMotionBrush.tool.d.ts.map +1 -0
  260. package/lib/services/agent/tools/animateImageWithMotionBrush.tool.js +135 -0
  261. package/lib/services/agent/tools/composeScene.tool.d.ts +978 -0
  262. package/lib/services/agent/tools/composeScene.tool.d.ts.map +1 -0
  263. package/lib/services/agent/tools/composeScene.tool.js +90 -0
  264. package/lib/services/agent/tools/estimateCost.tool.d.ts +352 -0
  265. package/lib/services/agent/tools/estimateCost.tool.d.ts.map +1 -0
  266. package/lib/services/agent/tools/estimateCost.tool.js +62 -0
  267. package/lib/services/agent/tools/generateAvatarVideo.tool.d.ts +32 -0
  268. package/lib/services/agent/tools/generateAvatarVideo.tool.d.ts.map +1 -0
  269. package/lib/services/agent/tools/generateAvatarVideo.tool.js +143 -0
  270. package/lib/services/agent/tools/generateCaptions.tool.d.ts +42 -0
  271. package/lib/services/agent/tools/generateCaptions.tool.d.ts.map +1 -0
  272. package/lib/services/agent/tools/generateCaptions.tool.js +196 -0
  273. package/lib/services/agent/tools/generateImage.tool.d.ts +74 -0
  274. package/lib/services/agent/tools/generateImage.tool.d.ts.map +1 -0
  275. package/lib/services/agent/tools/generateImage.tool.js +206 -0
  276. package/lib/services/agent/tools/generateVideo.tool.d.ts +31 -0
  277. package/lib/services/agent/tools/generateVideo.tool.d.ts.map +1 -0
  278. package/lib/services/agent/tools/generateVideo.tool.js +153 -0
  279. package/lib/services/agent/tools/generateVoiceover.tool.d.ts +44 -0
  280. package/lib/services/agent/tools/generateVoiceover.tool.d.ts.map +1 -0
  281. package/lib/services/agent/tools/generateVoiceover.tool.js +206 -0
  282. package/lib/services/agent/tools/index.d.ts +20 -0
  283. package/lib/services/agent/tools/index.d.ts.map +1 -0
  284. package/lib/services/agent/tools/index.js +35 -0
  285. package/lib/services/agent/tools/planVideo.tool.d.ts +343 -0
  286. package/lib/services/agent/tools/planVideo.tool.d.ts.map +1 -0
  287. package/lib/services/agent/tools/planVideo.tool.js +46 -0
  288. package/lib/services/agent/tools/render.tool.d.ts +367 -0
  289. package/lib/services/agent/tools/render.tool.d.ts.map +1 -0
  290. package/lib/services/agent/tools/render.tool.js +48 -0
  291. package/lib/services/agent/tools/searchMusic.tool.d.ts +49 -0
  292. package/lib/services/agent/tools/searchMusic.tool.d.ts.map +1 -0
  293. package/lib/services/agent/tools/searchMusic.tool.js +74 -0
  294. package/lib/services/agent/tools/searchStock.tool.d.ts +41 -0
  295. package/lib/services/agent/tools/searchStock.tool.d.ts.map +1 -0
  296. package/lib/services/agent/tools/searchStock.tool.js +314 -0
  297. package/lib/services/agent/tools/searchUserLibrary.tool.d.ts +59 -0
  298. package/lib/services/agent/tools/searchUserLibrary.tool.d.ts.map +1 -0
  299. package/lib/services/agent/tools/searchUserLibrary.tool.js +58 -0
  300. package/lib/services/agent/ttsDuration.d.ts +29 -0
  301. package/lib/services/agent/ttsDuration.d.ts.map +1 -0
  302. package/lib/services/agent/ttsDuration.js +60 -0
  303. package/lib/services/aiGen/aiGenFactory.service.d.ts +21 -1
  304. package/lib/services/aiGen/aiGenFactory.service.d.ts.map +1 -1
  305. package/lib/services/aiGen/aiGenFactory.service.js +84 -21
  306. package/lib/services/aiGen/canonicalAdapters/cameraControl.types.d.ts +31 -0
  307. package/lib/services/aiGen/canonicalAdapters/cameraControl.types.d.ts.map +1 -0
  308. package/lib/services/aiGen/canonicalAdapters/cameraControl.types.js +2 -0
  309. package/lib/services/aiGen/canonicalAdapters/index.d.ts +3 -0
  310. package/lib/services/aiGen/canonicalAdapters/index.d.ts.map +1 -0
  311. package/lib/services/aiGen/canonicalAdapters/index.js +18 -0
  312. package/lib/services/aiGen/canonicalAdapters/multiShot.types.d.ts +23 -0
  313. package/lib/services/aiGen/canonicalAdapters/multiShot.types.d.ts.map +1 -0
  314. package/lib/services/aiGen/canonicalAdapters/multiShot.types.js +12 -0
  315. package/lib/services/aiGen/helpers.d.ts.map +1 -1
  316. package/lib/services/aiGen/helpers.js +10 -0
  317. package/lib/services/aiGen/providers/alibaba/alibaba.d.ts +14 -3
  318. package/lib/services/aiGen/providers/alibaba/alibaba.d.ts.map +1 -1
  319. package/lib/services/aiGen/providers/alibaba/alibaba.js +155 -22
  320. package/lib/services/aiGen/providers/baseAiGenProvider.service.d.ts +22 -4
  321. package/lib/services/aiGen/providers/baseAiGenProvider.service.d.ts.map +1 -1
  322. package/lib/services/aiGen/providers/baseAiGenProvider.service.js +32 -0
  323. package/lib/services/aiGen/providers/bytedance/bytedance.service.d.ts.map +1 -1
  324. package/lib/services/aiGen/providers/bytedance/bytedance.service.js +13 -13
  325. package/lib/services/aiGen/providers/elevenlabs/elevenlabs.service.d.ts +18 -0
  326. package/lib/services/aiGen/providers/elevenlabs/elevenlabs.service.d.ts.map +1 -0
  327. package/lib/services/aiGen/providers/elevenlabs/elevenlabs.service.js +102 -0
  328. package/lib/services/aiGen/providers/fal/falImage.service.d.ts +15 -0
  329. package/lib/services/aiGen/providers/fal/falImage.service.d.ts.map +1 -0
  330. package/lib/services/aiGen/providers/fal/falImage.service.js +141 -0
  331. package/lib/services/aiGen/providers/fal/index.d.ts +2 -0
  332. package/lib/services/aiGen/providers/fal/index.d.ts.map +1 -0
  333. package/lib/services/aiGen/providers/fal/index.js +17 -0
  334. package/lib/services/aiGen/providers/google/google.service.d.ts +11 -2
  335. package/lib/services/aiGen/providers/google/google.service.d.ts.map +1 -1
  336. package/lib/services/aiGen/providers/google/google.service.js +245 -28
  337. package/lib/services/aiGen/providers/index.d.ts +3 -0
  338. package/lib/services/aiGen/providers/index.d.ts.map +1 -1
  339. package/lib/services/aiGen/providers/index.js +3 -0
  340. package/lib/services/aiGen/providers/kling/cameraAdapter.d.ts +4 -0
  341. package/lib/services/aiGen/providers/kling/cameraAdapter.d.ts.map +1 -0
  342. package/lib/services/aiGen/providers/kling/cameraAdapter.js +53 -0
  343. package/lib/services/aiGen/providers/kling/index.d.ts +1 -0
  344. package/lib/services/aiGen/providers/kling/index.d.ts.map +1 -1
  345. package/lib/services/aiGen/providers/kling/index.js +1 -0
  346. package/lib/services/aiGen/providers/kling/kling.service.d.ts +12 -1
  347. package/lib/services/aiGen/providers/kling/kling.service.d.ts.map +1 -1
  348. package/lib/services/aiGen/providers/kling/kling.service.js +357 -26
  349. package/lib/services/aiGen/providers/kling/klingImage.service.d.ts +21 -0
  350. package/lib/services/aiGen/providers/kling/klingImage.service.d.ts.map +1 -0
  351. package/lib/services/aiGen/providers/kling/klingImage.service.js +208 -0
  352. package/lib/services/aiGen/providers/kling/types.d.ts +105 -0
  353. package/lib/services/aiGen/providers/kling/types.d.ts.map +1 -1
  354. package/lib/services/aiGen/providers/minimax/minimax.service.d.ts +15 -2
  355. package/lib/services/aiGen/providers/minimax/minimax.service.d.ts.map +1 -1
  356. package/lib/services/aiGen/providers/minimax/minimax.service.js +127 -1
  357. package/lib/services/aiGen/providers/minimax/types.d.ts +10 -1
  358. package/lib/services/aiGen/providers/minimax/types.d.ts.map +1 -1
  359. package/lib/services/aiGen/providers/openai/openai.service.d.ts +8 -2
  360. package/lib/services/aiGen/providers/openai/openai.service.d.ts.map +1 -1
  361. package/lib/services/aiGen/providers/openai/openai.service.js +184 -7
  362. package/lib/services/aiGen/providers/pexels/index.d.ts +2 -0
  363. package/lib/services/aiGen/providers/pexels/index.d.ts.map +1 -0
  364. package/lib/services/aiGen/providers/{azure → pexels}/index.js +1 -1
  365. package/lib/services/aiGen/providers/pexels/pexels.service.d.ts +11 -0
  366. package/lib/services/aiGen/providers/pexels/pexels.service.d.ts.map +1 -0
  367. package/lib/services/aiGen/providers/pexels/pexels.service.js +150 -0
  368. package/lib/services/aiGen/providers/pixabay/index.d.ts +2 -0
  369. package/lib/services/aiGen/providers/pixabay/index.d.ts.map +1 -0
  370. package/lib/services/aiGen/providers/pixabay/index.js +17 -0
  371. package/lib/services/aiGen/providers/pixabay/pixabay.service.d.ts +12 -0
  372. package/lib/services/aiGen/providers/pixabay/pixabay.service.d.ts.map +1 -0
  373. package/lib/services/aiGen/providers/pixabay/pixabay.service.js +156 -0
  374. package/lib/services/aiGen/providers/pixverse/pixverse.service.d.ts.map +1 -1
  375. package/lib/services/aiGen/providers/pixverse/pixverse.service.js +125 -2
  376. package/lib/services/aiGen/providers/runway/cameraAdapter.d.ts +3 -0
  377. package/lib/services/aiGen/providers/runway/cameraAdapter.d.ts.map +1 -0
  378. package/lib/services/aiGen/providers/runway/cameraAdapter.js +46 -0
  379. package/lib/services/aiGen/providers/runway/runway.service.d.ts +12 -2
  380. package/lib/services/aiGen/providers/runway/runway.service.d.ts.map +1 -1
  381. package/lib/services/aiGen/providers/runway/runway.service.js +224 -21
  382. package/lib/services/aiGen/providers/types.d.ts +263 -6
  383. package/lib/services/aiGen/providers/types.d.ts.map +1 -1
  384. package/lib/services/aiGen/providers/unsplash/index.d.ts +2 -0
  385. package/lib/services/aiGen/providers/unsplash/index.d.ts.map +1 -0
  386. package/lib/services/aiGen/providers/unsplash/index.js +17 -0
  387. package/lib/services/aiGen/providers/unsplash/unsplash.service.d.ts +16 -0
  388. package/lib/services/aiGen/providers/unsplash/unsplash.service.d.ts.map +1 -0
  389. package/lib/services/aiGen/providers/unsplash/unsplash.service.js +131 -0
  390. package/lib/services/analytics.service.js +2 -4
  391. package/lib/services/apiUsageCounter.service.d.ts +20 -0
  392. package/lib/services/apiUsageCounter.service.d.ts.map +1 -0
  393. package/lib/services/apiUsageCounter.service.js +84 -0
  394. package/lib/services/asr/assemblyai.service.d.ts +72 -0
  395. package/lib/services/asr/assemblyai.service.d.ts.map +1 -0
  396. package/lib/services/asr/assemblyai.service.js +89 -0
  397. package/lib/services/asr/index.d.ts +3 -0
  398. package/lib/services/asr/index.d.ts.map +1 -0
  399. package/lib/services/asr/index.js +18 -0
  400. package/lib/services/asr/whisper.service.d.ts +18 -0
  401. package/lib/services/asr/whisper.service.d.ts.map +1 -0
  402. package/lib/services/asr/whisper.service.js +151 -0
  403. package/lib/services/assetCache.service.d.ts +54 -0
  404. package/lib/services/assetCache.service.d.ts.map +1 -0
  405. package/lib/services/assetCache.service.js +109 -0
  406. package/lib/services/audioAnalysis/index.d.ts +2 -0
  407. package/lib/services/audioAnalysis/index.d.ts.map +1 -0
  408. package/lib/services/audioAnalysis/index.js +17 -0
  409. package/lib/services/audioAnalysis/onsetDetection.service.d.ts +50 -0
  410. package/lib/services/audioAnalysis/onsetDetection.service.d.ts.map +1 -0
  411. package/lib/services/audioAnalysis/onsetDetection.service.js +140 -0
  412. package/lib/services/bullmq.service.d.ts +6 -1
  413. package/lib/services/bullmq.service.d.ts.map +1 -1
  414. package/lib/services/bullmq.service.js +62 -14
  415. package/lib/services/credit.service.d.ts.map +1 -1
  416. package/lib/services/credit.service.js +45 -7
  417. package/lib/services/credits/pricing.d.ts +58 -0
  418. package/lib/services/credits/pricing.d.ts.map +1 -0
  419. package/lib/services/credits/pricing.js +111 -0
  420. package/lib/services/editor/designToProject.d.ts +75 -0
  421. package/lib/services/editor/designToProject.d.ts.map +1 -0
  422. package/lib/services/editor/designToProject.js +295 -0
  423. package/lib/services/editor/planToProject.d.ts +84 -0
  424. package/lib/services/editor/planToProject.d.ts.map +1 -0
  425. package/lib/services/editor/planToProject.js +395 -0
  426. package/lib/services/editor/projectToDesign.d.ts +4 -0
  427. package/lib/services/editor/projectToDesign.d.ts.map +1 -0
  428. package/lib/services/editor/projectToDesign.js +186 -0
  429. package/lib/services/firestore.service.d.ts +17 -0
  430. package/lib/services/firestore.service.d.ts.map +1 -1
  431. package/lib/services/firestore.service.js +30 -0
  432. package/lib/services/gcp/index.d.ts +1 -0
  433. package/lib/services/gcp/index.d.ts.map +1 -1
  434. package/lib/services/gcp/index.js +1 -0
  435. package/lib/services/gcp/uploadAudioBuffer.d.ts +13 -0
  436. package/lib/services/gcp/uploadAudioBuffer.d.ts.map +1 -0
  437. package/lib/services/gcp/uploadAudioBuffer.js +28 -0
  438. package/lib/services/index.d.ts +13 -0
  439. package/lib/services/index.d.ts.map +1 -1
  440. package/lib/services/index.js +13 -0
  441. package/lib/services/musicGen/index.d.ts +6 -0
  442. package/lib/services/musicGen/index.d.ts.map +1 -0
  443. package/lib/services/musicGen/index.js +26 -0
  444. package/lib/services/musicGen/musicSearchFactory.service.d.ts +14 -0
  445. package/lib/services/musicGen/musicSearchFactory.service.d.ts.map +1 -0
  446. package/lib/services/musicGen/musicSearchFactory.service.js +59 -0
  447. package/lib/services/musicGen/providers/curated.service.d.ts +24 -0
  448. package/lib/services/musicGen/providers/curated.service.d.ts.map +1 -0
  449. package/lib/services/musicGen/providers/curated.service.js +173 -0
  450. package/lib/services/musicGen/providers/jamendo.service.d.ts +8 -0
  451. package/lib/services/musicGen/providers/jamendo.service.d.ts.map +1 -0
  452. package/lib/services/musicGen/providers/jamendo.service.js +113 -0
  453. package/lib/services/musicGen/providers/mubert.service.d.ts +10 -0
  454. package/lib/services/musicGen/providers/mubert.service.d.ts.map +1 -0
  455. package/lib/services/musicGen/providers/mubert.service.js +128 -0
  456. package/lib/services/musicGen/types.d.ts +46 -0
  457. package/lib/services/musicGen/types.d.ts.map +1 -0
  458. package/lib/services/musicGen/types.js +10 -0
  459. package/lib/services/notification.service.d.ts +22 -0
  460. package/lib/services/notification.service.d.ts.map +1 -0
  461. package/lib/services/notification.service.js +76 -0
  462. package/lib/services/rateLimiter/distributedRateLimiter.service.d.ts +78 -0
  463. package/lib/services/rateLimiter/distributedRateLimiter.service.d.ts.map +1 -0
  464. package/lib/services/rateLimiter/distributedRateLimiter.service.js +269 -0
  465. package/lib/services/rateLimiter/index.d.ts +2 -0
  466. package/lib/services/rateLimiter/index.d.ts.map +1 -0
  467. package/lib/services/rateLimiter/index.js +17 -0
  468. package/lib/services/redis.service.d.ts +9 -0
  469. package/lib/services/redis.service.d.ts.map +1 -1
  470. package/lib/services/redis.service.js +20 -11
  471. package/lib/services/redisOptions.d.ts +22 -0
  472. package/lib/services/redisOptions.d.ts.map +1 -0
  473. package/lib/services/redisOptions.js +51 -0
  474. package/lib/services/tts/index.d.ts +2 -0
  475. package/lib/services/tts/index.d.ts.map +1 -1
  476. package/lib/services/tts/index.js +2 -0
  477. package/lib/services/tts/providers/elevenlabs.service.d.ts.map +1 -1
  478. package/lib/services/tts/providers/elevenlabs.service.js +91 -24
  479. package/lib/services/tts/providers/minimax.service.d.ts +14 -0
  480. package/lib/services/tts/providers/minimax.service.d.ts.map +1 -0
  481. package/lib/services/tts/providers/minimax.service.js +78 -0
  482. package/lib/services/tts/providers/openai.service.d.ts +14 -0
  483. package/lib/services/tts/providers/openai.service.d.ts.map +1 -0
  484. package/lib/services/tts/providers/openai.service.js +73 -0
  485. package/lib/services/tts/ttsFactory.service.d.ts.map +1 -1
  486. package/lib/services/tts/ttsFactory.service.js +6 -0
  487. package/lib/services/tts/types.d.ts +33 -0
  488. package/lib/services/tts/types.d.ts.map +1 -1
  489. package/lib/utils/errors.d.ts +8 -0
  490. package/lib/utils/errors.d.ts.map +1 -1
  491. package/lib/utils/errors.js +8 -0
  492. package/lib/utils/helpers.d.ts +13 -0
  493. package/lib/utils/helpers.d.ts.map +1 -1
  494. package/lib/utils/helpers.js +48 -11
  495. package/lib/utils/logger.d.ts.map +1 -1
  496. package/lib/utils/logger.js +37 -1
  497. package/package.json +5 -1
  498. package/lib/services/aiGen/providers/azure/azure.service.d.ts +0 -14
  499. package/lib/services/aiGen/providers/azure/azure.service.d.ts.map +0 -1
  500. package/lib/services/aiGen/providers/azure/azure.service.js +0 -108
  501. package/lib/services/aiGen/providers/azure/index.d.ts +0 -2
  502. package/lib/services/aiGen/providers/azure/index.d.ts.map +0 -1
@@ -0,0 +1,328 @@
1
+ "use strict";
2
+ /**
3
+ * Session K (Stage 7) — global project-level regen actions.
4
+ *
5
+ * Pairs with `AgentRegenTargetSchema.kind === "global"`. The worker dispatches
6
+ * here instead of through `executeRegenTarget` (which is per-scene / per-
7
+ * component) because these actions mutate project-wide state:
8
+ *
9
+ * - "soften-music" — drop volume + mood + bpm, refetch a mellower track
10
+ * via selectMusicForPlan, swap the "music" clip src.
11
+ * - "add-cta" — bias the closing scene's overlays toward a strong
12
+ * CTA via planner.regenerateOverlaysForScene; splice
13
+ * new overlay clips on top of the existing visual.
14
+ * - "switch-persona" — re-run Planner.plan() with the new persona. Project
15
+ * status reverts to "planned" — visuals are stale
16
+ * relative to the new plan, the user must /execute
17
+ * again. projectJson is left intact for inspection.
18
+ *
19
+ * Pure logic; never touches Firestore. Caller persists the returned
20
+ * `projectPatch` as one merge update.
21
+ */
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.estimateGlobalActionCost = estimateGlobalActionCost;
24
+ exports.executeGlobalAction = executeGlobalAction;
25
+ const zod_1 = require("zod");
26
+ const agentPersona_schema_1 = require("../../schemas/agentPersona.schema");
27
+ const pricing_1 = require("../credits/pricing");
28
+ const musicSelect_1 = require("./musicSelect");
29
+ const planner_1 = require("./planner");
30
+ const llmCallerRegistry_1 = require("./llmCallerRegistry");
31
+ const planToProject_1 = require("../editor/planToProject");
32
+ const personas_1 = require("./personas");
33
+ const logger_1 = require("../../utils/logger");
34
+ const isoNow = () => new Date().toISOString();
35
+ const AddCtaParamsSchema = zod_1.z.object({
36
+ ctaText: zod_1.z.string().min(1).max(60).optional(),
37
+ });
38
+ const SwitchPersonaParamsSchema = zod_1.z.object({
39
+ persona: agentPersona_schema_1.AgentPersonaSchema,
40
+ });
41
+ /**
42
+ * Per-action cost estimate. Mirrors what `estimateRegenCost` does for the
43
+ * per-component path so the controller's pre-flight preview and the
44
+ * worker's refund-on-failure path agree on a number.
45
+ */
46
+ function estimateGlobalActionCost(action, _params) {
47
+ switch (action) {
48
+ case "soften-music":
49
+ // Music search is free; same cost as a /regenerate-music call.
50
+ return (0, pricing_1.estimateRegenCost)({ component: "music" });
51
+ case "add-cta":
52
+ // One planner LLM call + overlay splice — same as overlays regen.
53
+ return (0, pricing_1.estimateRegenCost)({ component: "overlays" });
54
+ case "switch-persona": {
55
+ // Full re-plan: a single mid-sized planner LLM call (no executor
56
+ // spend, no provider calls). Flat $0.12 ≈ 12 credits keeps the
57
+ // budget-guard meaningful without forcing a confirmation modal for
58
+ // what is just an LLM call. Cost goes up the next time the user
59
+ // /executes against the new plan — those scenes go through the
60
+ // normal per-scene credit deduct.
61
+ const amountUsd = 0.12;
62
+ return {
63
+ component: "overlays",
64
+ amountUsd,
65
+ amountCredits: Math.ceil(amountUsd * pricing_1.CREDITS_PER_USD),
66
+ breakdown: { planner: amountUsd },
67
+ exceedsBudgetGuard: amountUsd > pricing_1.BUDGET_GUARD_THRESHOLD_USD,
68
+ budgetGuardThresholdUsd: pricing_1.BUDGET_GUARD_THRESHOLD_USD,
69
+ };
70
+ }
71
+ }
72
+ }
73
+ async function executeGlobalAction(action, params, project, _ctx) {
74
+ const plan = project.plan;
75
+ if (!plan)
76
+ return { ok: false, status: 422, error: "plan required" };
77
+ switch (action) {
78
+ case "soften-music": {
79
+ const currentProjectJson = project.projectJson;
80
+ if (!currentProjectJson) {
81
+ return {
82
+ ok: false,
83
+ status: 409,
84
+ error: "project not yet rendered — run /execute first",
85
+ };
86
+ }
87
+ const personaPack = personas_1.PERSONA_PACKS[plan.persona];
88
+ const baseBpm = plan.music?.bpm ?? personaPack?.defaultBpm ?? 100;
89
+ const softenedBpm = Math.max(60, Math.round(baseBpm * 0.75));
90
+ const planForReselect = {
91
+ ...plan,
92
+ music: {
93
+ strategy: plan.music?.strategy ?? "stock-track",
94
+ query: plan.music?.query ?? "calm ambient background instrumental",
95
+ moodTag: "mellow",
96
+ bpm: softenedBpm,
97
+ // Force reselect — drop everything the selector previously filled.
98
+ url: undefined,
99
+ durationSec: undefined,
100
+ source: undefined,
101
+ attribution: undefined,
102
+ onsets: undefined,
103
+ },
104
+ };
105
+ let refreshedPlan;
106
+ try {
107
+ refreshedPlan = await (0, musicSelect_1.selectMusicForPlan)(planForReselect);
108
+ }
109
+ catch (err) {
110
+ logger_1.logger.error("globalActions: soften-music failed", {
111
+ projectId: _ctx.projectId,
112
+ userId: _ctx.userId,
113
+ err: err instanceof Error ? err.stack ?? err.message : String(err),
114
+ });
115
+ return { ok: false, status: 502, error: err.message };
116
+ }
117
+ const newMusicUrl = refreshedPlan.music?.url;
118
+ const existingMusic = currentProjectJson.clips.find((c) => c.id === "music");
119
+ let updatedClips;
120
+ if (newMusicUrl && existingMusic) {
121
+ updatedClips = currentProjectJson.clips.map((c) => {
122
+ if (c.id !== "music")
123
+ return c;
124
+ const patched = {
125
+ ...c,
126
+ src: newMusicUrl,
127
+ provenance: {
128
+ ...(c.provenance ?? {}),
129
+ source: refreshedPlan.music?.source ?? "music",
130
+ regeneratedAt: isoNow(),
131
+ softenedFromBpm: baseBpm,
132
+ },
133
+ };
134
+ return patched;
135
+ });
136
+ }
137
+ else if (!newMusicUrl && existingMusic) {
138
+ updatedClips = currentProjectJson.clips.filter((c) => c.id !== "music");
139
+ }
140
+ else {
141
+ updatedClips = currentProjectJson.clips;
142
+ }
143
+ const cost = estimateGlobalActionCost("soften-music");
144
+ const baseProject = {
145
+ ...currentProjectJson,
146
+ clips: updatedClips,
147
+ updatedAt: isoNow(),
148
+ };
149
+ const nextProjectJson = (0, pricing_1.appendRegenHistory)(baseProject, {
150
+ ts: isoNow(),
151
+ action: "regenerate",
152
+ component: "music",
153
+ estimatedCreditsSpent: cost.amountCredits,
154
+ estimatedUsd: cost.amountUsd,
155
+ });
156
+ return {
157
+ ok: true,
158
+ projectPatch: {
159
+ plan: refreshedPlan,
160
+ projectJson: nextProjectJson,
161
+ updatedAt: isoNow(),
162
+ },
163
+ cost,
164
+ details: {
165
+ previousBpm: baseBpm,
166
+ newBpm: refreshedPlan.music?.bpm ?? softenedBpm,
167
+ musicUrl: newMusicUrl ?? null,
168
+ },
169
+ };
170
+ }
171
+ case "add-cta": {
172
+ if (!project.brief) {
173
+ return { ok: false, status: 422, error: "brief required" };
174
+ }
175
+ const currentProjectJson = project.projectJson;
176
+ if (!currentProjectJson) {
177
+ return {
178
+ ok: false,
179
+ status: 409,
180
+ error: "project not yet rendered — run /execute first",
181
+ };
182
+ }
183
+ const lastIndex = plan.scenes.length - 1;
184
+ const closingScene = plan.scenes[lastIndex];
185
+ const parsedParams = AddCtaParamsSchema.safeParse(params ?? {});
186
+ const ctaText = parsedParams.success
187
+ ? parsedParams.data.ctaText
188
+ : undefined;
189
+ const instruction = ctaText
190
+ ? `Add a strong closing CTA. Use the verbatim CTA copy "${ctaText}" (role=cta, max 5 words). Preserve any existing watermark overlay; replace headline / body if needed to make space.`
191
+ : `Add a strong closing CTA overlay (role=cta, brand + verb, max 5 words). Preserve any existing watermark overlay; replace headline / body if needed to make space.`;
192
+ const planner = new planner_1.Planner({ llm: (0, llmCallerRegistry_1.getLlmCaller)() });
193
+ let newOverlays;
194
+ try {
195
+ newOverlays = await planner.regenerateOverlaysForScene(closingScene, project.brief, {
196
+ persona: plan.persona,
197
+ bible: plan.bible,
198
+ isClosingScene: true,
199
+ instruction,
200
+ });
201
+ }
202
+ catch (err) {
203
+ logger_1.logger.error("globalActions: add-cta failed", {
204
+ projectId: _ctx.projectId,
205
+ userId: _ctx.userId,
206
+ sceneIndex: lastIndex,
207
+ err: err instanceof Error ? err.stack ?? err.message : String(err),
208
+ });
209
+ return { ok: false, status: 502, error: err.message };
210
+ }
211
+ // Splice new overlay clips for the closing scene. Mirrors the
212
+ // overlays-regen path in regenCore.
213
+ const visualClip = currentProjectJson.clips.find((c) => c.id === `scene-${lastIndex}-visual`);
214
+ const offsetMs = visualClip?.display?.from ?? 0;
215
+ const sceneDurationMs = visualClip?.display
216
+ ? visualClip.display.to - visualClip.display.from
217
+ : closingScene.durationMs;
218
+ const replacementClips = (0, planToProject_1.buildOverlayClipsForScene)(lastIndex, offsetMs, sceneDurationMs, newOverlays, currentProjectJson.size.height);
219
+ const overlayPrefix = `scene-${lastIndex}-overlay-`;
220
+ const survivors = currentProjectJson.clips.filter((c) => !c.id.startsWith(overlayPrefix));
221
+ const updatedClips = [...survivors, ...replacementClips];
222
+ const cost = estimateGlobalActionCost("add-cta");
223
+ const baseProject = {
224
+ ...currentProjectJson,
225
+ clips: updatedClips,
226
+ updatedAt: isoNow(),
227
+ };
228
+ const nextProjectJson = (0, pricing_1.appendRegenHistory)(baseProject, {
229
+ ts: isoNow(),
230
+ action: "regenerate",
231
+ component: "overlays",
232
+ sceneIndex: lastIndex,
233
+ estimatedCreditsSpent: cost.amountCredits,
234
+ estimatedUsd: cost.amountUsd,
235
+ });
236
+ const nextPlan = {
237
+ ...plan,
238
+ scenes: plan.scenes.map((s) => s.sceneIndex === lastIndex ? { ...s, overlays: newOverlays } : s),
239
+ };
240
+ return {
241
+ ok: true,
242
+ projectPatch: {
243
+ plan: nextPlan,
244
+ projectJson: nextProjectJson,
245
+ updatedAt: isoNow(),
246
+ },
247
+ cost,
248
+ details: {
249
+ sceneIndex: lastIndex,
250
+ overlayCount: newOverlays.length,
251
+ ctaTextOverride: ctaText ?? null,
252
+ },
253
+ };
254
+ }
255
+ case "switch-persona": {
256
+ if (!project.brief) {
257
+ return { ok: false, status: 422, error: "brief required" };
258
+ }
259
+ const parsedParams = SwitchPersonaParamsSchema.safeParse(params ?? {});
260
+ if (!parsedParams.success) {
261
+ return {
262
+ ok: false,
263
+ status: 400,
264
+ error: "switch-persona requires params.persona (AgentPersona enum)",
265
+ };
266
+ }
267
+ const newPersona = parsedParams.data.persona;
268
+ if (newPersona === plan.persona) {
269
+ return {
270
+ ok: false,
271
+ status: 422,
272
+ error: `persona already set to "${newPersona}"`,
273
+ };
274
+ }
275
+ const planner = new planner_1.Planner({ llm: (0, llmCallerRegistry_1.getLlmCaller)() });
276
+ let newPlanRaw;
277
+ try {
278
+ newPlanRaw = await planner.plan(project.brief, {
279
+ persona: newPersona,
280
+ bible: plan.bible ?? null,
281
+ });
282
+ }
283
+ catch (err) {
284
+ logger_1.logger.error("globalActions: switch-persona failed", {
285
+ projectId: _ctx.projectId,
286
+ userId: _ctx.userId,
287
+ newPersona,
288
+ err: err instanceof Error ? err.stack ?? err.message : String(err),
289
+ });
290
+ return { ok: false, status: 502, error: err.message };
291
+ }
292
+ // Mirror plan.controller.ts: run music select after replan so the new
293
+ // plan ships with a track URL ready for the next /execute. Best-effort
294
+ // — if it throws we still keep the new plan and let the user soften /
295
+ // regenerate music separately.
296
+ let newPlan = newPlanRaw;
297
+ try {
298
+ newPlan = await (0, musicSelect_1.selectMusicForPlan)(newPlanRaw);
299
+ }
300
+ catch (err) {
301
+ // intentional: music selection is enhancement, not blocking.
302
+ logger_1.logger.warn("globalActions: selectMusicForPlan failed (non-blocking)", {
303
+ projectId: _ctx.projectId,
304
+ err: err instanceof Error ? err.stack ?? err.message : String(err),
305
+ });
306
+ }
307
+ const cost = estimateGlobalActionCost("switch-persona");
308
+ // Visuals are stale relative to the new plan. Revert project status to
309
+ // "planned" so the UI prompts the user to /execute against the new
310
+ // plan. projectJson left intact for diff inspection / rollback.
311
+ return {
312
+ ok: true,
313
+ projectPatch: {
314
+ plan: newPlan,
315
+ persona: newPersona,
316
+ status: "planned",
317
+ updatedAt: isoNow(),
318
+ },
319
+ cost,
320
+ details: {
321
+ previousPersona: plan.persona,
322
+ newPersona,
323
+ newSceneCount: newPlan.scenes.length,
324
+ },
325
+ };
326
+ }
327
+ }
328
+ }
@@ -0,0 +1,38 @@
1
+ export * from "./toolRegistry";
2
+ export * from "./tools";
3
+ export * from "./modelRouter";
4
+ export * from "./llmCaller";
5
+ export * from "./llmCallerGateway";
6
+ export * from "./llmCallerAnthropic";
7
+ export * from "./personas";
8
+ export * from "./llmCallerRegistry";
9
+ export * from "./costPreflight";
10
+ export * from "./planner";
11
+ export * from "./planMutations";
12
+ export * from "./bibleBuilder";
13
+ export * from "./referenceImageRenderer";
14
+ export * from "./bibleImageVision";
15
+ export * from "./sceneLayoutVision";
16
+ export * from "./beatSnap";
17
+ export * from "./musicSelect";
18
+ export * from "./executor";
19
+ export * from "./providerTaskCache";
20
+ export * from "./planDiff";
21
+ export * from "./taskPoller";
22
+ export * from "./critic";
23
+ export * from "./eval";
24
+ export * from "./providerFallback/chains";
25
+ export * from "./stitchedVideoCritic";
26
+ export * from "./stitchedVideoCritic.gemini";
27
+ export * from "./perSceneCritic";
28
+ export * from "./textOverlayStyles";
29
+ export * from "./overlayRenderer";
30
+ export * from "./editClassifier";
31
+ export * from "./qualityGate";
32
+ export * from "./ttsDuration";
33
+ export * from "./modelQualityNotes";
34
+ export * from "./runHelpers";
35
+ export * from "./regenCore";
36
+ export * from "./globalActions";
37
+ export * from "./chatAgent";
38
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/agent/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./toolRegistry"), exports);
18
+ __exportStar(require("./tools"), exports);
19
+ __exportStar(require("./modelRouter"), exports);
20
+ __exportStar(require("./llmCaller"), exports);
21
+ __exportStar(require("./llmCallerGateway"), exports);
22
+ __exportStar(require("./llmCallerAnthropic"), exports);
23
+ __exportStar(require("./personas"), exports);
24
+ __exportStar(require("./llmCallerRegistry"), exports);
25
+ __exportStar(require("./costPreflight"), exports);
26
+ __exportStar(require("./planner"), exports);
27
+ __exportStar(require("./planMutations"), exports);
28
+ __exportStar(require("./bibleBuilder"), exports);
29
+ __exportStar(require("./referenceImageRenderer"), exports);
30
+ __exportStar(require("./bibleImageVision"), exports);
31
+ __exportStar(require("./sceneLayoutVision"), exports);
32
+ __exportStar(require("./beatSnap"), exports);
33
+ __exportStar(require("./musicSelect"), exports);
34
+ __exportStar(require("./executor"), exports);
35
+ __exportStar(require("./providerTaskCache"), exports);
36
+ __exportStar(require("./planDiff"), exports);
37
+ __exportStar(require("./taskPoller"), exports);
38
+ __exportStar(require("./critic"), exports);
39
+ __exportStar(require("./eval"), exports);
40
+ __exportStar(require("./providerFallback/chains"), exports);
41
+ __exportStar(require("./stitchedVideoCritic"), exports);
42
+ __exportStar(require("./stitchedVideoCritic.gemini"), exports);
43
+ __exportStar(require("./perSceneCritic"), exports);
44
+ __exportStar(require("./textOverlayStyles"), exports);
45
+ __exportStar(require("./overlayRenderer"), exports);
46
+ __exportStar(require("./editClassifier"), exports);
47
+ __exportStar(require("./qualityGate"), exports);
48
+ __exportStar(require("./ttsDuration"), exports);
49
+ __exportStar(require("./modelQualityNotes"), exports);
50
+ __exportStar(require("./runHelpers"), exports);
51
+ __exportStar(require("./regenCore"), exports);
52
+ __exportStar(require("./globalActions"), exports);
53
+ __exportStar(require("./chatAgent"), exports);
@@ -0,0 +1,144 @@
1
+ import { z } from "zod";
2
+ import { ModelChoice } from "./modelRouter";
3
+ /**
4
+ * Provider-agnostic LLM caller. The host (Express server / Firebase Functions)
5
+ * wires a concrete implementation backed by Vercel AI Gateway, OpenRouter, or
6
+ * direct SDKs. Agent code only ever sees this interface, which keeps it
7
+ * portable and lets us A/B-test models against the eval set without code changes.
8
+ */
9
+ export interface LlmCaller {
10
+ /** Free-form chat completion. */
11
+ chat(req: ChatRequest): Promise<ChatResponse>;
12
+ /** Structured-output completion: result is validated against the provided Zod schema. */
13
+ structured<T extends z.ZodTypeAny>(req: StructuredRequest<T>): Promise<StructuredResponse<T>>;
14
+ /**
15
+ * Streaming structured completion. Returns an async iterable of raw text
16
+ * chunks AND a final promise that resolves to the validated structured
17
+ * response. Callers typically forward the chunks to a UI channel (SSE)
18
+ * for token-by-token rendering and await `result` for the parsed payload.
19
+ *
20
+ * Implementations that don't natively support streaming may fall back to
21
+ * a single chunk emission of the full text — the contract is unchanged.
22
+ */
23
+ structuredStream?<T extends z.ZodTypeAny>(req: StructuredRequest<T>): {
24
+ tokens: AsyncIterable<string>;
25
+ result: Promise<StructuredResponse<T>>;
26
+ };
27
+ /**
28
+ * Structured completion that may invoke server-side tools (Anthropic
29
+ * built-ins like `web_search`) and/or custom client-side tools before
30
+ * emitting the final structured payload.
31
+ *
32
+ * Only implemented by callers that natively support tool-use loops (today:
33
+ * `AnthropicLlmCaller`). `GatewayLlmCaller` does NOT implement this because
34
+ * Anthropic's built-in server tools are not exposable through the OpenAI-
35
+ * compatible Vercel AI Gateway. If a future need warrants it, we can add
36
+ * a custom-tools-only variant on the gateway (e.g. Tavily passed as a
37
+ * regular OpenAI-format tool) — see deferred work in `llmCallerAnthropic.ts`.
38
+ */
39
+ structuredWithTools?<T extends z.ZodTypeAny>(req: StructuredWithToolsRequest<T>): Promise<StructuredResponse<T>>;
40
+ }
41
+ export interface ChatMessage {
42
+ role: "system" | "user" | "assistant";
43
+ content: string;
44
+ /** Optional inline images for vision-capable models. */
45
+ imageUrls?: string[];
46
+ }
47
+ export interface ChatRequest {
48
+ model: ModelChoice;
49
+ messages: ChatMessage[];
50
+ temperature?: number;
51
+ maxTokens?: number;
52
+ /** Stop sequences. */
53
+ stop?: string[];
54
+ /**
55
+ * Optional fallback model. When primary exhausts retries on a transient/transport
56
+ * error, the caller will attempt the fallback once (with its own retry budget).
57
+ * Schema-validation and other non-transient errors do NOT trigger fallback.
58
+ */
59
+ fallbackModel?: ModelChoice;
60
+ }
61
+ export interface ChatResponse {
62
+ text: string;
63
+ /** Token counts when reported by the provider. */
64
+ usage?: {
65
+ promptTokens?: number;
66
+ completionTokens?: number;
67
+ };
68
+ /** Provider request id, for tracing/replay. */
69
+ requestId?: string;
70
+ /** True if the response came from the fallback model rather than the primary. */
71
+ usedFallback?: boolean;
72
+ /** Models attempted, in order (primary first, fallback last). */
73
+ attemptedModels?: ModelChoice[];
74
+ }
75
+ export interface StructuredRequest<T extends z.ZodTypeAny> {
76
+ model: ModelChoice;
77
+ messages: ChatMessage[];
78
+ schema: T;
79
+ /** Human-readable schema name shown to the model in the prompt. */
80
+ schemaName: string;
81
+ temperature?: number;
82
+ maxTokens?: number;
83
+ /** See ChatRequest.fallbackModel. */
84
+ fallbackModel?: ModelChoice;
85
+ }
86
+ export interface StructuredWithToolsRequest<T extends z.ZodTypeAny> extends StructuredRequest<T> {
87
+ /**
88
+ * Server-side tools the LLM provider can execute on the caller's behalf
89
+ * (e.g. Anthropic's `web_search_20260209`). These do NOT need a local
90
+ * handler — the provider runs them and injects results back into the
91
+ * model's context automatically.
92
+ */
93
+ serverTools?: Array<{
94
+ type: "web_search";
95
+ /** Cap the number of web searches per call to bound cost. */
96
+ maxUses?: number;
97
+ /** Optional domain allowlist / blocklist. */
98
+ allowedDomains?: string[];
99
+ blockedDomains?: string[];
100
+ }>;
101
+ /**
102
+ * Hard cap on tool-use round-trips before we give up. Defaults to 6 — high
103
+ * enough for a multi-search planner pass, low enough to bound latency/cost
104
+ * if the model gets stuck.
105
+ */
106
+ maxToolRounds?: number;
107
+ /**
108
+ * Apply `cache_control: ephemeral` to the system prompt + tools block so
109
+ * Anthropic charges ~90% off on cached reads. Right for hot paths where
110
+ * the same system + tools are re-sent (planner retries, multi-tool
111
+ * rounds). No-op on non-Anthropic callers.
112
+ */
113
+ cachePrompt?: boolean;
114
+ /**
115
+ * Enable Anthropic extended thinking. Required for stronger reasoning on
116
+ * complex planning briefs (T3 premium). `budgetTokens` ≥ 1024 and must be
117
+ * < maxTokens. Implementations that don't support thinking ignore this
118
+ * field. When enabled, temperature is forced to 1 (Anthropic requirement).
119
+ */
120
+ thinking?: {
121
+ budgetTokens: number;
122
+ };
123
+ }
124
+ export interface StructuredResponse<T extends z.ZodTypeAny> {
125
+ data: z.infer<T>;
126
+ usage?: {
127
+ promptTokens?: number;
128
+ completionTokens?: number;
129
+ };
130
+ requestId?: string;
131
+ /** True if the response came from the fallback model rather than the primary. */
132
+ usedFallback?: boolean;
133
+ /** Models attempted, in order (primary first, fallback last). */
134
+ attemptedModels?: ModelChoice[];
135
+ }
136
+ /**
137
+ * Stub LlmCaller for tests and offline development. Throws if anyone calls it
138
+ * without the host having injected a real implementation.
139
+ */
140
+ export declare class UnconfiguredLlmCaller implements LlmCaller {
141
+ chat(): Promise<ChatResponse>;
142
+ structured<T extends z.ZodTypeAny>(): Promise<StructuredResponse<T>>;
143
+ }
144
+ //# sourceMappingURL=llmCaller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llmCaller.d.ts","sourceRoot":"","sources":["../../../src/services/agent/llmCaller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnconfiguredLlmCaller = void 0;
4
+ /**
5
+ * Stub LlmCaller for tests and offline development. Throws if anyone calls it
6
+ * without the host having injected a real implementation.
7
+ */
8
+ class UnconfiguredLlmCaller {
9
+ chat() {
10
+ throw new Error("LlmCaller not configured. Inject a concrete implementation at host boot.");
11
+ }
12
+ structured() {
13
+ throw new Error("LlmCaller not configured. Inject a concrete implementation at host boot.");
14
+ }
15
+ }
16
+ exports.UnconfiguredLlmCaller = UnconfiguredLlmCaller;