vidspotai-shared 1.0.68 → 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 -30
  5. package/lib/globals/aiModels/index.d.ts.map +1 -1
  6. package/lib/globals/aiModels/index.js +7 -35
  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 +76 -11
  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 -8
  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 -19
  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 +128 -5
  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,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.classifyProviderError = classifyProviderError;
4
+ exports.shouldFallback = shouldFallback;
5
+ const errors_1 = require("../../../utils/errors");
6
+ /** Match raw provider error messages to a class. Lowercase, regex-free where possible. */
7
+ function classifyByMessage(msg) {
8
+ const m = msg.toLowerCase();
9
+ // Auth / config
10
+ if (/\b(401|403)\b|unauthori[sz]ed|forbidden|invalid api key|missing api key/.test(m)) {
11
+ return "auth";
12
+ }
13
+ // Safety / content policy
14
+ if (/content[ _-]?policy|safety|moderation|nsfw|violates? .* polic|prohibited|inappropriate|blocked by safety/.test(m)) {
15
+ return "safety";
16
+ }
17
+ // Quota (account-level) — explicit "quota exceeded" / "billing"
18
+ if (/quota exceeded|billing|insufficient (credits|balance)|account .* limit/.test(m)) {
19
+ return "quota";
20
+ }
21
+ // Rate limit (short window)
22
+ if (/\b429\b|rate ?limit|too many requests|throttl/.test(m)) {
23
+ return "rate_limit";
24
+ }
25
+ // Capability mismatch. AG-23: also catch Runway-style "Invalid value for
26
+ // aspectRatio" / "Validation failed: Invalid value for duration" — these mean
27
+ // the provider can't do this aspect/duration, not that the user's prompt is
28
+ // bad. Treating them as `capability` lets the chain walk to a model that can.
29
+ if (/unsupported|not supported|invalid aspect|invalid duration|invalid resolution|cannot generate audio|model does not support|invalid value for (aspect ?ratio|duration|resolution|ratio)|validation failed.*(aspect ?ratio|duration|resolution|ratio)/.test(m)) {
30
+ return "capability";
31
+ }
32
+ // Input
33
+ if (/prompt (too long|invalid)|invalid prompt|image rejected|invalid image|invalid input|invalid parameter|bad request|\b400\b/.test(m)) {
34
+ return "input";
35
+ }
36
+ // Transient / network / 5xx
37
+ if (/\b(408|425|500|502|503|504)\b|timeout|timed out|socket|econnreset|econnrefused|etimedout|eai_again|fetch failed|network|temporarily unavailable|high demand|service unavailable/.test(m)) {
38
+ return "transient";
39
+ }
40
+ return "unknown";
41
+ }
42
+ /** Map a known UserFacingError code to our classification. */
43
+ function classifyByCode(code) {
44
+ switch (code) {
45
+ case errors_1.USER_FACING_ERROR_CODES.VIDEO_PROVIDER_RATE_LIMITED:
46
+ return "rate_limit";
47
+ case errors_1.USER_FACING_ERROR_CODES.VIDEO_PROVIDER_HIGH_DEMAND:
48
+ case errors_1.USER_FACING_ERROR_CODES.VIDEO_PROVIDER_TIMEOUT:
49
+ case errors_1.USER_FACING_ERROR_CODES.TTS_PROVIDER_TIMEOUT:
50
+ case errors_1.USER_FACING_ERROR_CODES.TTS_PROVIDER_UNAVAILABLE:
51
+ case errors_1.USER_FACING_ERROR_CODES.PROVIDER_UNAVAILABLE:
52
+ return "transient";
53
+ case errors_1.USER_FACING_ERROR_CODES.PROMPT_TOO_LONG:
54
+ case errors_1.USER_FACING_ERROR_CODES.PROMPT_INVALID:
55
+ case errors_1.USER_FACING_ERROR_CODES.INPUT_IMAGE_REJECTED:
56
+ return "input";
57
+ case errors_1.USER_FACING_ERROR_CODES.CONTENT_POLICY_VIOLATION:
58
+ return "safety";
59
+ case errors_1.USER_FACING_ERROR_CODES.PROVIDER_AUTH_ERROR:
60
+ return "auth";
61
+ case errors_1.USER_FACING_ERROR_CODES.ACCOUNT_QUOTA_EXCEEDED:
62
+ return "quota";
63
+ case errors_1.USER_FACING_ERROR_CODES.CAPABILITY_MISMATCH:
64
+ return "capability";
65
+ default:
66
+ return undefined;
67
+ }
68
+ }
69
+ const TERMINAL_CLASSES = new Set([
70
+ "auth",
71
+ "safety",
72
+ "input",
73
+ ]);
74
+ const REPLAN_CLASSES = new Set([
75
+ "safety",
76
+ "input",
77
+ ]);
78
+ function classifyProviderError(err) {
79
+ const rawMsg = err instanceof Error ? err.message : typeof err === "string" ? err : String(err);
80
+ const message = rawMsg.slice(0, 500);
81
+ let classification = "unknown";
82
+ let originalCode;
83
+ if (err instanceof errors_1.UserFacingError && err.code) {
84
+ originalCode = err.code;
85
+ classification = classifyByCode(err.code) ?? classifyByMessage(rawMsg);
86
+ }
87
+ else {
88
+ classification = classifyByMessage(rawMsg);
89
+ }
90
+ return {
91
+ classification,
92
+ isTerminal: TERMINAL_CLASSES.has(classification),
93
+ needsReplan: REPLAN_CLASSES.has(classification),
94
+ originalCode,
95
+ message,
96
+ };
97
+ }
98
+ /** Decide whether to try the next provider in a chain for a given class. */
99
+ function shouldFallback(c) {
100
+ // transient / rate_limit / capability / quota / unknown → try next provider
101
+ // auth / safety / input → terminal, no fallback
102
+ return !TERMINAL_CLASSES.has(c);
103
+ }
@@ -0,0 +1,4 @@
1
+ export * from "./classifier";
2
+ export * from "./withFallback";
3
+ export * from "./chains";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/agent/providerFallback/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC"}
@@ -0,0 +1,19 @@
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("./classifier"), exports);
18
+ __exportStar(require("./withFallback"), exports);
19
+ __exportStar(require("./chains"), exports);
@@ -0,0 +1,60 @@
1
+ import { ProviderFailureClass, ProviderFailureClassification } from "./classifier";
2
+ /**
3
+ * Thrown by tool handlers after `withProviderFallback` returns ok:false.
4
+ * The tool-registry layer translates this into a rich `ToolError` so the
5
+ * executor can decide whether to escalate to the agent for re-plan.
6
+ */
7
+ export declare class ProviderFallbackExhaustedError extends Error {
8
+ readonly classification: ProviderFailureClass;
9
+ readonly needsReplan: boolean;
10
+ readonly attemptedProviders: string[];
11
+ readonly isProviderFallbackExhaustedError = true;
12
+ constructor(classification: ProviderFailureClass, needsReplan: boolean, attemptedProviders: string[], message: string);
13
+ }
14
+ /**
15
+ * Generic provider-fallback wrapper. Given an ordered chain of providers and
16
+ * a `call(provider)` function, walks the chain on recoverable failures and
17
+ * returns a structured outcome. The agent / executor uses the outcome to
18
+ * decide whether to re-plan, degrade, or fail the scene.
19
+ *
20
+ * Each provider's OWN internal transient retries (already implemented in
21
+ * Google/Kling/MiniMax services) run before we move to the next provider.
22
+ * That is intentional — short network blips are handled at the provider
23
+ * layer; this wrapper only swaps providers on harder failures.
24
+ */
25
+ export interface ProviderAttempt<P> {
26
+ provider: P;
27
+ startedAt: number;
28
+ durationMs: number;
29
+ classification?: ProviderFailureClassification;
30
+ error?: string;
31
+ }
32
+ export type FallbackOutcome<P, T> = {
33
+ ok: true;
34
+ value: T;
35
+ provider: P;
36
+ attempts: ProviderAttempt<P>[];
37
+ usedFallback: boolean;
38
+ } | {
39
+ ok: false;
40
+ classification: ProviderFailureClassification;
41
+ attempts: ProviderAttempt<P>[];
42
+ /** True when the agent should re-plan the scene (safety / input class). */
43
+ needsReplan: boolean;
44
+ };
45
+ export interface WithFallbackOptions<P, T> {
46
+ /** Ordered provider chain — primary first, fallbacks after. */
47
+ providers: readonly P[];
48
+ /** Function that runs the actual call against one provider. */
49
+ call: (provider: P) => Promise<T>;
50
+ /**
51
+ * Optional pre-flight filter: skip providers in the chain that cannot
52
+ * fulfil this request (e.g. wrong aspect ratio). Returning false skips
53
+ * the provider without an attempt entry.
54
+ */
55
+ capable?: (provider: P) => boolean;
56
+ /** Trace hook — fires once per attempt (success or failure). */
57
+ onAttempt?: (attempt: ProviderAttempt<P>) => void;
58
+ }
59
+ export declare function withProviderFallback<P, T>(opts: WithFallbackOptions<P, T>): Promise<FallbackOutcome<P, T>>;
60
+ //# sourceMappingURL=withFallback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withFallback.d.ts","sourceRoot":"","sources":["../../../../src/services/agent/providerFallback/withFallback.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,oBAAoB,EACpB,6BAA6B,EAE9B,MAAM,cAAc,CAAC;AAEtB;;;;GAIG;AACH,qBAAa,8BAA+B,SAAQ,KAAK;IAGrD,QAAQ,CAAC,cAAc,EAAE,oBAAoB;IAC7C,QAAQ,CAAC,WAAW,EAAE,OAAO;IAC7B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,EAAE;IAJvC,QAAQ,CAAC,gCAAgC,QAAQ;gBAEtC,cAAc,EAAE,oBAAoB,EACpC,WAAW,EAAE,OAAO,EACpB,kBAAkB,EAAE,MAAM,EAAE,EACrC,OAAO,EAAE,MAAM;CAKlB;AAED;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,QAAQ,EAAE,CAAC,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,6BAA6B,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,EAAE,CAAC,IAC5B;IACE,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,CAAC,CAAC;IACZ,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC;CACvB,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,cAAc,EAAE,6BAA6B,CAAC;IAC9C,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/B,2EAA2E;IAC3E,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEN,MAAM,WAAW,mBAAmB,CAAC,CAAC,EAAE,CAAC;IACvC,+DAA+D;IAC/D,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;IACxB,+DAA+D;IAC/D,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAClC;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,OAAO,CAAC;IACnC,gEAAgE;IAChE,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CACnD;AAED,wBAAsB,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAC7C,IAAI,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC9B,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAyEhC"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProviderFallbackExhaustedError = void 0;
4
+ exports.withProviderFallback = withProviderFallback;
5
+ const logger_1 = require("../../../utils/logger");
6
+ const classifier_1 = require("./classifier");
7
+ /**
8
+ * Thrown by tool handlers after `withProviderFallback` returns ok:false.
9
+ * The tool-registry layer translates this into a rich `ToolError` so the
10
+ * executor can decide whether to escalate to the agent for re-plan.
11
+ */
12
+ class ProviderFallbackExhaustedError extends Error {
13
+ constructor(classification, needsReplan, attemptedProviders, message) {
14
+ super(message);
15
+ this.classification = classification;
16
+ this.needsReplan = needsReplan;
17
+ this.attemptedProviders = attemptedProviders;
18
+ this.isProviderFallbackExhaustedError = true;
19
+ this.name = "ProviderFallbackExhaustedError";
20
+ }
21
+ }
22
+ exports.ProviderFallbackExhaustedError = ProviderFallbackExhaustedError;
23
+ async function withProviderFallback(opts) {
24
+ const attempts = [];
25
+ let lastClassification;
26
+ for (let i = 0; i < opts.providers.length; i++) {
27
+ const provider = opts.providers[i];
28
+ if (opts.capable && !opts.capable(provider)) {
29
+ // AG-42: previously skipped silently — when the planner-picked primary
30
+ // (index 0) gets filtered out, callers couldn't tell why a different
31
+ // provider ended up running. Log enough for grep + trace.
32
+ logger_1.logger.warn("providerFallback: filtered out by capability gate", {
33
+ provider: String(provider),
34
+ position: i,
35
+ isPrimary: i === 0,
36
+ });
37
+ continue;
38
+ }
39
+ const startedAt = Date.now();
40
+ try {
41
+ const value = await opts.call(provider);
42
+ const attempt = {
43
+ provider,
44
+ startedAt,
45
+ durationMs: Date.now() - startedAt,
46
+ };
47
+ attempts.push(attempt);
48
+ opts.onAttempt?.(attempt);
49
+ return { ok: true, value, provider, attempts, usedFallback: i > 0 };
50
+ }
51
+ catch (err) {
52
+ const classification = (0, classifier_1.classifyProviderError)(err);
53
+ lastClassification = classification;
54
+ const attempt = {
55
+ provider,
56
+ startedAt,
57
+ durationMs: Date.now() - startedAt,
58
+ classification,
59
+ error: classification.message,
60
+ };
61
+ attempts.push(attempt);
62
+ opts.onAttempt?.(attempt);
63
+ // Terminal class (auth / safety / input) — stop the chain immediately.
64
+ if (!(0, classifier_1.shouldFallback)(classification.classification)) {
65
+ return {
66
+ ok: false,
67
+ classification,
68
+ attempts,
69
+ needsReplan: classification.needsReplan,
70
+ };
71
+ }
72
+ // Otherwise loop to next provider in chain.
73
+ }
74
+ }
75
+ // Chain exhausted.
76
+ logger_1.logger.error("providerFallback: chain exhausted", {
77
+ providers: opts.providers.map((p) => String(p)),
78
+ classification: lastClassification?.classification,
79
+ attempts: attempts.length,
80
+ lastErr: lastClassification?.message ?? null,
81
+ });
82
+ return {
83
+ ok: false,
84
+ classification: lastClassification ?? {
85
+ classification: "unknown",
86
+ isTerminal: false,
87
+ needsReplan: false,
88
+ message: "No providers in chain were attempted (all filtered).",
89
+ },
90
+ attempts,
91
+ needsReplan: lastClassification?.needsReplan ?? false,
92
+ };
93
+ }
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Stage 7 slice 1 — provider task-id cache.
3
+ *
4
+ * Background: every debug rerun of an agent project re-submits the same AI
5
+ * gen tasks (animate_image, generate_video, generate_avatar_video) for the
6
+ * same scene inputs, burning $0.50-$3 per scene with no new signal. The
7
+ * providers retain task results for 14-30 days, so when the upstream inputs
8
+ * are unchanged we can replay the prior taskId through the poller and skip
9
+ * the gen call entirely.
10
+ *
11
+ * The cache lives on AgentProject.providerTaskCache (Firestore map) keyed by
12
+ * canonical clip id (e.g. "scene-3-visual"). The executor checks it before
13
+ * the three task-id-producing tool calls; on hit it short-circuits with the
14
+ * cached taskId + modelKey. On miss it runs the tool, then mints a fresh
15
+ * entry via the onTaskMint callback.
16
+ */
17
+ export declare const TASK_CACHE_TTL_MS: number;
18
+ export interface ProviderTaskCacheEntry {
19
+ /** Tool that minted this task — animate_image | generate_video | generate_avatar_video. */
20
+ tool: string;
21
+ /** Provider task id; poller resolves this to the final MP4. */
22
+ taskId: string;
23
+ /** Model the task was minted on; poller needs this to route via getAiGenProviderService. */
24
+ modelKey: string;
25
+ /** Optional friendly provider name for logs/trace. */
26
+ providerName?: string;
27
+ /** Deterministic hash of the upstream inputs the executor would send. */
28
+ inputsHash: string;
29
+ /** Mint timestamp (ms epoch). Compared against TASK_CACHE_TTL_MS. */
30
+ createdAt: number;
31
+ }
32
+ export type ProviderTaskCache = Record<string, ProviderTaskCacheEntry>;
33
+ /**
34
+ * Deterministic hash of executor tool inputs. Used as the cache key tiebreaker:
35
+ * a cache entry is only reused when its hash matches the would-be input hash.
36
+ * Returns first 16 hex chars of sha256 — collision space ~2^64, plenty for
37
+ * a per-project clip-id-scoped cache.
38
+ */
39
+ export declare function hashTaskInputs(input: Record<string, unknown>): string;
40
+ /**
41
+ * Return the cached entry for clipId iff it exists, its inputsHash matches,
42
+ * and it has not exceeded the TTL. Returns null on miss, mismatch, or expiry.
43
+ */
44
+ export declare function getCachedTask(cache: ProviderTaskCache | undefined, clipId: string, inputsHash: string, now?: number): ProviderTaskCacheEntry | null;
45
+ /**
46
+ * Drop entries older than TTL. Used by callers that snapshot the cache before
47
+ * passing it to the executor so we don't carry stale hashes around in memory.
48
+ */
49
+ export declare function pruneExpiredCache(cache: ProviderTaskCache | undefined, now?: number): ProviderTaskCache;
50
+ //# sourceMappingURL=providerTaskCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providerTaskCache.d.ts","sourceRoot":"","sources":["../../../src/services/agent/providerTaskCache.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AAEH,eAAO,MAAM,iBAAiB,QAA2B,CAAC;AAE1D,MAAM,WAAW,sBAAsB;IACrC,2FAA2F;IAC3F,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf,4FAA4F;IAC5F,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;AAmCvE;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAGrE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,iBAAiB,GAAG,SAAS,EACpC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAmB,GACvB,sBAAsB,GAAG,IAAI,CAO/B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,iBAAiB,GAAG,SAAS,EACpC,GAAG,GAAE,MAAmB,GACvB,iBAAiB,CASnB"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TASK_CACHE_TTL_MS = void 0;
4
+ exports.hashTaskInputs = hashTaskInputs;
5
+ exports.getCachedTask = getCachedTask;
6
+ exports.pruneExpiredCache = pruneExpiredCache;
7
+ const node_crypto_1 = require("node:crypto");
8
+ /**
9
+ * Stage 7 slice 1 — provider task-id cache.
10
+ *
11
+ * Background: every debug rerun of an agent project re-submits the same AI
12
+ * gen tasks (animate_image, generate_video, generate_avatar_video) for the
13
+ * same scene inputs, burning $0.50-$3 per scene with no new signal. The
14
+ * providers retain task results for 14-30 days, so when the upstream inputs
15
+ * are unchanged we can replay the prior taskId through the poller and skip
16
+ * the gen call entirely.
17
+ *
18
+ * The cache lives on AgentProject.providerTaskCache (Firestore map) keyed by
19
+ * canonical clip id (e.g. "scene-3-visual"). The executor checks it before
20
+ * the three task-id-producing tool calls; on hit it short-circuits with the
21
+ * cached taskId + modelKey. On miss it runs the tool, then mints a fresh
22
+ * entry via the onTaskMint callback.
23
+ */
24
+ exports.TASK_CACHE_TTL_MS = 14 * 24 * 60 * 60 * 1000;
25
+ /**
26
+ * Canonicalize a record into a stable string for hashing. Keys sorted at
27
+ * every depth; arrays preserve order (order matters semantically for things
28
+ * like inputImageUrls). undefined values dropped; null preserved. NaN/Infinity
29
+ * collapse to null (matches JSON.stringify behavior).
30
+ */
31
+ function canonicalize(value) {
32
+ if (value === undefined)
33
+ return "null";
34
+ if (value === null)
35
+ return "null";
36
+ if (typeof value === "number") {
37
+ if (!Number.isFinite(value))
38
+ return "null";
39
+ return JSON.stringify(value);
40
+ }
41
+ if (typeof value === "string" || typeof value === "boolean") {
42
+ return JSON.stringify(value);
43
+ }
44
+ if (Array.isArray(value)) {
45
+ return "[" + value.map(canonicalize).join(",") + "]";
46
+ }
47
+ if (typeof value === "object") {
48
+ const obj = value;
49
+ const keys = Object.keys(obj).filter((k) => obj[k] !== undefined).sort();
50
+ return ("{" +
51
+ keys
52
+ .map((k) => JSON.stringify(k) + ":" + canonicalize(obj[k]))
53
+ .join(",") +
54
+ "}");
55
+ }
56
+ return "null";
57
+ }
58
+ /**
59
+ * Deterministic hash of executor tool inputs. Used as the cache key tiebreaker:
60
+ * a cache entry is only reused when its hash matches the would-be input hash.
61
+ * Returns first 16 hex chars of sha256 — collision space ~2^64, plenty for
62
+ * a per-project clip-id-scoped cache.
63
+ */
64
+ function hashTaskInputs(input) {
65
+ const canonical = canonicalize(input);
66
+ return (0, node_crypto_1.createHash)("sha256").update(canonical).digest("hex").slice(0, 16);
67
+ }
68
+ /**
69
+ * Return the cached entry for clipId iff it exists, its inputsHash matches,
70
+ * and it has not exceeded the TTL. Returns null on miss, mismatch, or expiry.
71
+ */
72
+ function getCachedTask(cache, clipId, inputsHash, now = Date.now()) {
73
+ if (!cache)
74
+ return null;
75
+ const entry = cache[clipId];
76
+ if (!entry)
77
+ return null;
78
+ if (entry.inputsHash !== inputsHash)
79
+ return null;
80
+ if (now - entry.createdAt > exports.TASK_CACHE_TTL_MS)
81
+ return null;
82
+ return entry;
83
+ }
84
+ /**
85
+ * Drop entries older than TTL. Used by callers that snapshot the cache before
86
+ * passing it to the executor so we don't carry stale hashes around in memory.
87
+ */
88
+ function pruneExpiredCache(cache, now = Date.now()) {
89
+ if (!cache)
90
+ return {};
91
+ const out = {};
92
+ for (const [clipId, entry] of Object.entries(cache)) {
93
+ if (now - entry.createdAt <= exports.TASK_CACHE_TTL_MS) {
94
+ out[clipId] = entry;
95
+ }
96
+ }
97
+ return out;
98
+ }
@@ -0,0 +1,82 @@
1
+ /**
2
+ * AG-45 — quality gate. Decides whether a generated video (per-scene or
3
+ * stitched) is ship-worthy, needs a cheap re-mux, needs a surgical re-gen on
4
+ * specific scenes, or needs a full replan.
5
+ *
6
+ * Why this exists: the original critic-driven loop in `repairTrace.ts` treated
7
+ * any `severity: 'fail'` finding as a regen trigger. That cost Test 1 4×
8
+ * scene regenerations (~16 credits) over a SINGLE prompt-vs-reference-image
9
+ * misalignment that didn't actually break the video — the bottle was just a
10
+ * different shade of green than the brief said. The user's point was sharp:
11
+ * "if the result was too bad then only regenerate", and the natural rule is
12
+ * a score band + severity floor:
13
+ *
14
+ * per-scene score
15
+ * ≥ 7 ship as-is
16
+ * 5.0–6.9 ship-with-caveats (no auto-regen)
17
+ * 3.0–4.9 surgical regen (scenes the critic flagged)
18
+ * < 3.0 critical — bypass cost-confirmation if cheap
19
+ *
20
+ * stitched score
21
+ * ≥ 7 + shippable deliver
22
+ * 5.0–6.9 no FAIL text/music re-mux only ($0)
23
+ * < 5.0 or FAIL surgical regen on flagged scenes
24
+ * < 3.0 replan (very rare; last resort)
25
+ *
26
+ * guardrails (orthogonal to score):
27
+ * - WARN severity is informational; only FAIL counts toward actions
28
+ * - actionPlausibility FAIL is always actionable, regardless of score —
29
+ * sealed-cap-while-drinking type errors break user trust at any score
30
+ * - max 2 regen attempts per scene per run (`scene.regenCount`)
31
+ * - cumulative cost budget: stop retrying when retry $ > 1.5× original $
32
+ *
33
+ * Every decision is returned as a structured object so the caller (repairTrace,
34
+ * videoJobProcessor, or any future UI) can log it to trace under
35
+ * `qualityGate: GateDecision[]` and let us tune the thresholds from data.
36
+ */
37
+ import type { PerSceneReview } from "./perSceneCritic";
38
+ import type { StitchedVideoReview } from "./stitchedVideoCritic";
39
+ export interface BudgetState {
40
+ /** Sum of credits already spent on this run (initial + retries). */
41
+ totalCreditsSpent: number;
42
+ /** Credits estimated for the original generation. Used as the budget anchor. */
43
+ originalCreditsBudget: number;
44
+ /** Per-scene regen attempts so far (sceneIndex -> count). */
45
+ regenCountByScene: Record<number, number>;
46
+ /** Hard cap on retries per scene. Default 2 in factory below. */
47
+ maxRegenPerScene: number;
48
+ /** Multiplier on originalCreditsBudget that caps retry cost. Default 1.5. */
49
+ retryBudgetMultiplier: number;
50
+ }
51
+ export declare function makeBudgetState(initial: Partial<BudgetState> & {
52
+ originalCreditsBudget: number;
53
+ }): BudgetState;
54
+ export type GateAction = "ship" | "ship-with-caveats" | "remix" | "regen-scenes" | "replan";
55
+ export interface GateDecision {
56
+ action: GateAction;
57
+ /** Score at the gate (0–10), preserved for telemetry / dashboards. */
58
+ score: number;
59
+ /** Human-readable why; surfaced in trace + (eventually) UI. */
60
+ reason: string;
61
+ /** When action = regen-scenes / remix: the affected scene indices. */
62
+ sceneIndices?: number[];
63
+ /** When action = regen-scenes: estimated retry cost in credits. */
64
+ estimatedRegenCredits?: number;
65
+ /** Notable findings that drove the decision; for telemetry / debugging. */
66
+ drivingFindings?: Array<{
67
+ sceneIndex?: number;
68
+ dimension: string;
69
+ severity: "warn" | "fail";
70
+ message: string;
71
+ }>;
72
+ /** Caveats to surface to the user when action = ship-with-caveats. */
73
+ caveats?: string[];
74
+ }
75
+ export declare function decidePerSceneAction(review: PerSceneReview, budget: BudgetState, opts?: {
76
+ perSceneRegenCostCredits?: number;
77
+ }): GateDecision;
78
+ export declare function decideStitchedAction(stitched: StitchedVideoReview, perScene: PerSceneReview[], budget: BudgetState, opts?: {
79
+ perSceneRegenCostCredits?: number;
80
+ userIntentScope?: number[];
81
+ }): GateDecision;
82
+ //# sourceMappingURL=qualityGate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qualityGate.d.ts","sourceRoot":"","sources":["../../../src/services/agent/qualityGate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,kBAAkB,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,MAAM,WAAW,WAAW;IAC1B,oEAAoE;IACpE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,qBAAqB,EAAE,MAAM,CAAC;IAC9B,6DAA6D;IAC7D,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,iEAAiE;IACjE,gBAAgB,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG;IAAE,qBAAqB,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,CAQ9G;AAED,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,mBAAmB,GACnB,OAAO,GACP,cAAc,GACd,QAAQ,CAAC;AAEb,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,mEAAmE;IACnE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,2EAA2E;IAC3E,eAAe,CAAC,EAAE,KAAK,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAyBD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE;IAAE,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/C,YAAY,CAiEd;AAMD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,mBAAmB,EAC7B,QAAQ,EAAE,cAAc,EAAE,EAC1B,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE;IAAE,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;CAAO,GAC3E,YAAY,CA8Fd"}