vidspotai-shared 1.0.82 → 1.0.83

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 (442) hide show
  1. package/lib/globals/aiModels/enums.d.ts +11 -1
  2. package/lib/globals/aiModels/enums.d.ts.map +1 -1
  3. package/lib/globals/aiModels/enums.js +24 -1
  4. package/lib/globals/aiModels/index.d.ts.map +1 -1
  5. package/lib/globals/aiModels/index.js +2 -0
  6. package/lib/globals/aiModels/providers/anthropic.d.ts +12 -0
  7. package/lib/globals/aiModels/providers/anthropic.d.ts.map +1 -0
  8. package/lib/globals/aiModels/providers/anthropic.js +88 -0
  9. package/lib/globals/aiModels/providers/google.d.ts.map +1 -1
  10. package/lib/globals/aiModels/providers/google.js +82 -0
  11. package/lib/globals/aiModels/providers/openai.d.ts.map +1 -1
  12. package/lib/globals/aiModels/providers/openai.js +63 -4
  13. package/lib/globals/aiModels/tierHelpers.d.ts +12 -0
  14. package/lib/globals/aiModels/tierHelpers.d.ts.map +1 -1
  15. package/lib/globals/aiModels/tierHelpers.js +83 -0
  16. package/lib/globals/aiModels/types.d.ts +19 -0
  17. package/lib/globals/aiModels/types.d.ts.map +1 -1
  18. package/lib/globals/types.d.ts +120 -1
  19. package/lib/globals/types.d.ts.map +1 -1
  20. package/lib/globals/types.js +135 -1
  21. package/lib/models/agent.model.d.ts +41 -1
  22. package/lib/models/agent.model.d.ts.map +1 -1
  23. package/lib/models/index.d.ts +1 -0
  24. package/lib/models/index.d.ts.map +1 -1
  25. package/lib/models/index.js +1 -0
  26. package/lib/models/social.model.d.ts +180 -0
  27. package/lib/models/social.model.d.ts.map +1 -0
  28. package/lib/models/social.model.js +2 -0
  29. package/lib/models/user.model.d.ts +10 -0
  30. package/lib/models/user.model.d.ts.map +1 -1
  31. package/lib/models/video.model.d.ts +6 -0
  32. package/lib/models/video.model.d.ts.map +1 -1
  33. package/lib/schemas/brief.schema.d.ts +46 -0
  34. package/lib/schemas/brief.schema.d.ts.map +1 -1
  35. package/lib/schemas/brief.schema.js +72 -1
  36. package/lib/schemas/index.d.ts +1 -0
  37. package/lib/schemas/index.d.ts.map +1 -1
  38. package/lib/schemas/index.js +1 -0
  39. package/lib/schemas/project.schema.d.ts +67 -0
  40. package/lib/schemas/project.schema.d.ts.map +1 -1
  41. package/lib/schemas/project.schema.js +12 -0
  42. package/lib/schemas/social.schema.d.ts +91 -0
  43. package/lib/schemas/social.schema.d.ts.map +1 -0
  44. package/lib/schemas/social.schema.js +114 -0
  45. package/lib/schemas/videoPlan.schema.d.ts +114 -0
  46. package/lib/schemas/videoPlan.schema.d.ts.map +1 -1
  47. package/lib/schemas/videoPlan.schema.js +141 -1
  48. package/lib/services/agent/chatAgent.d.ts +25 -1
  49. package/lib/services/agent/chatAgent.d.ts.map +1 -1
  50. package/lib/services/agent/chatAgent.js +145 -9
  51. package/lib/services/agent/costPreflight.d.ts +11 -1
  52. package/lib/services/agent/costPreflight.d.ts.map +1 -1
  53. package/lib/services/agent/costPreflight.js +18 -1
  54. package/lib/services/agent/covers/coverPlanner.d.ts +41 -0
  55. package/lib/services/agent/covers/coverPlanner.d.ts.map +1 -0
  56. package/lib/services/agent/covers/coverPlanner.js +278 -0
  57. package/lib/services/agent/covers/covers.schema.d.ts +158 -0
  58. package/lib/services/agent/covers/covers.schema.d.ts.map +1 -0
  59. package/lib/services/agent/covers/covers.schema.js +166 -0
  60. package/lib/services/agent/covers/index.d.ts +3 -0
  61. package/lib/services/agent/covers/index.d.ts.map +1 -0
  62. package/lib/services/agent/covers/index.js +18 -0
  63. package/lib/services/agent/critic.d.ts +10 -0
  64. package/lib/services/agent/critic.d.ts.map +1 -1
  65. package/lib/services/agent/critic.js +37 -1
  66. package/lib/services/agent/editClassifier.d.ts +2 -2
  67. package/lib/services/agent/editClassifier.js +2 -2
  68. package/lib/services/agent/editExisting/editAssembler.d.ts +78 -0
  69. package/lib/services/agent/editExisting/editAssembler.d.ts.map +1 -0
  70. package/lib/services/agent/editExisting/editAssembler.js +172 -0
  71. package/lib/services/agent/editExisting/editExisting.schema.d.ts +119 -0
  72. package/lib/services/agent/editExisting/editExisting.schema.d.ts.map +1 -0
  73. package/lib/services/agent/editExisting/editExisting.schema.js +157 -0
  74. package/lib/services/agent/editExisting/highlightPicker.d.ts +48 -0
  75. package/lib/services/agent/editExisting/highlightPicker.d.ts.map +1 -0
  76. package/lib/services/agent/editExisting/highlightPicker.js +199 -0
  77. package/lib/services/agent/editExisting/index.d.ts +4 -0
  78. package/lib/services/agent/editExisting/index.d.ts.map +1 -0
  79. package/lib/services/agent/editExisting/index.js +19 -0
  80. package/lib/services/agent/eval/seedBriefs.d.ts +4 -3
  81. package/lib/services/agent/eval/seedBriefs.d.ts.map +1 -1
  82. package/lib/services/agent/eval/seedBriefs.js +283 -3
  83. package/lib/services/agent/eval/types.d.ts +10 -0
  84. package/lib/services/agent/eval/types.d.ts.map +1 -1
  85. package/lib/services/agent/executor/core.d.ts +70 -0
  86. package/lib/services/agent/executor/core.d.ts.map +1 -0
  87. package/lib/services/agent/executor/core.js +250 -0
  88. package/lib/services/agent/executor/duration.d.ts +20 -0
  89. package/lib/services/agent/executor/duration.d.ts.map +1 -0
  90. package/lib/services/agent/executor/duration.js +46 -0
  91. package/lib/services/agent/executor/index.d.ts +15 -0
  92. package/lib/services/agent/executor/index.d.ts.map +1 -0
  93. package/lib/services/agent/executor/index.js +32 -0
  94. package/lib/services/agent/executor/types.d.ts +183 -0
  95. package/lib/services/agent/executor/types.d.ts.map +1 -0
  96. package/lib/services/agent/executor/types.js +29 -0
  97. package/lib/services/agent/executor/visual.d.ts +32 -0
  98. package/lib/services/agent/executor/visual.d.ts.map +1 -0
  99. package/lib/services/agent/executor/visual.js +400 -0
  100. package/lib/services/agent/executor/voice.d.ts +17 -0
  101. package/lib/services/agent/executor/voice.d.ts.map +1 -0
  102. package/lib/services/agent/executor/voice.js +119 -0
  103. package/lib/services/agent/extendChain.d.ts +101 -0
  104. package/lib/services/agent/extendChain.d.ts.map +1 -0
  105. package/lib/services/agent/extendChain.js +177 -0
  106. package/lib/services/agent/index.d.ts +11 -1
  107. package/lib/services/agent/index.d.ts.map +1 -1
  108. package/lib/services/agent/index.js +11 -1
  109. package/lib/services/agent/llmCaller.d.ts +7 -8
  110. package/lib/services/agent/llmCaller.d.ts.map +1 -1
  111. package/lib/services/agent/llmCallerAnthropic.d.ts +44 -31
  112. package/lib/services/agent/llmCallerAnthropic.d.ts.map +1 -1
  113. package/lib/services/agent/llmCallerAnthropic.js +135 -60
  114. package/lib/services/agent/llmCallerFactory.d.ts +34 -0
  115. package/lib/services/agent/llmCallerFactory.d.ts.map +1 -0
  116. package/lib/services/agent/llmCallerFactory.js +31 -0
  117. package/lib/services/agent/llmCallerGemini.d.ts +62 -0
  118. package/lib/services/agent/llmCallerGemini.d.ts.map +1 -0
  119. package/lib/services/agent/llmCallerGemini.js +235 -0
  120. package/lib/services/agent/llmCallerOpenai.d.ts +56 -0
  121. package/lib/services/agent/llmCallerOpenai.d.ts.map +1 -0
  122. package/lib/services/agent/llmCallerOpenai.js +230 -0
  123. package/lib/services/agent/llmCallerRegistry.d.ts.map +1 -1
  124. package/lib/services/agent/llmCallerRegistry.js +7 -7
  125. package/lib/services/agent/llmCallerRouting.d.ts +63 -0
  126. package/lib/services/agent/llmCallerRouting.d.ts.map +1 -0
  127. package/lib/services/agent/llmCallerRouting.js +124 -0
  128. package/lib/services/agent/llmModelRegistry.d.ts +59 -0
  129. package/lib/services/agent/llmModelRegistry.d.ts.map +1 -0
  130. package/lib/services/agent/llmModelRegistry.js +168 -0
  131. package/lib/services/agent/llmRetry.d.ts +57 -0
  132. package/lib/services/agent/llmRetry.d.ts.map +1 -0
  133. package/lib/services/agent/llmRetry.js +102 -0
  134. package/lib/services/agent/modelRouter.d.ts +3 -3
  135. package/lib/services/agent/modelRouter.d.ts.map +1 -1
  136. package/lib/services/agent/modelRouter.js +27 -13
  137. package/lib/services/agent/planMutations.d.ts +54 -1
  138. package/lib/services/agent/planMutations.d.ts.map +1 -1
  139. package/lib/services/agent/planMutations.js +78 -0
  140. package/lib/services/agent/planner/Planner.d.ts +0 -17
  141. package/lib/services/agent/planner/Planner.d.ts.map +1 -1
  142. package/lib/services/agent/planner/Planner.js +67 -303
  143. package/lib/services/agent/planner/overlayRegen.d.ts +38 -0
  144. package/lib/services/agent/planner/overlayRegen.d.ts.map +1 -0
  145. package/lib/services/agent/planner/overlayRegen.js +145 -0
  146. package/lib/services/agent/planner/plannerMessages.d.ts +34 -0
  147. package/lib/services/agent/planner/plannerMessages.d.ts.map +1 -0
  148. package/lib/services/agent/planner/plannerMessages.js +185 -0
  149. package/lib/services/agent/planner/promptSections.d.ts +12 -0
  150. package/lib/services/agent/planner/promptSections.d.ts.map +1 -1
  151. package/lib/services/agent/planner/promptSections.js +57 -0
  152. package/lib/services/agent/planner/scriptFirstPlanner.d.ts +35 -0
  153. package/lib/services/agent/planner/scriptFirstPlanner.d.ts.map +1 -0
  154. package/lib/services/agent/planner/scriptFirstPlanner.js +140 -0
  155. package/lib/services/agent/planner/structuralRules.d.ts +10 -0
  156. package/lib/services/agent/planner/structuralRules.d.ts.map +1 -1
  157. package/lib/services/agent/planner/structuralRules.js +92 -9
  158. package/lib/services/agent/planner/validators.d.ts +18 -0
  159. package/lib/services/agent/planner/validators.d.ts.map +1 -1
  160. package/lib/services/agent/planner/validators.js +97 -0
  161. package/lib/services/agent/planner.d.ts +2 -1
  162. package/lib/services/agent/planner.d.ts.map +1 -1
  163. package/lib/services/agent/planner.js +5 -1
  164. package/lib/services/agent/priorProject.d.ts +26 -0
  165. package/lib/services/agent/priorProject.d.ts.map +1 -0
  166. package/lib/services/agent/priorProject.js +51 -0
  167. package/lib/services/agent/providerFallback/chains.d.ts.map +1 -1
  168. package/lib/services/agent/providerFallback/chains.js +27 -15
  169. package/lib/services/agent/repurpose/index.d.ts +3 -0
  170. package/lib/services/agent/repurpose/index.d.ts.map +1 -0
  171. package/lib/services/agent/repurpose/index.js +18 -0
  172. package/lib/services/agent/repurpose/repurpose.schema.d.ts +132 -0
  173. package/lib/services/agent/repurpose/repurpose.schema.d.ts.map +1 -0
  174. package/lib/services/agent/repurpose/repurpose.schema.js +144 -0
  175. package/lib/services/agent/repurpose/shortsPicker.d.ts +25 -0
  176. package/lib/services/agent/repurpose/shortsPicker.d.ts.map +1 -0
  177. package/lib/services/agent/repurpose/shortsPicker.js +218 -0
  178. package/lib/services/agent/runHelpers.d.ts +21 -2
  179. package/lib/services/agent/runHelpers.d.ts.map +1 -1
  180. package/lib/services/agent/runHelpers.js +71 -2
  181. package/lib/services/agent/tools/animateImage.tool.d.ts +1 -0
  182. package/lib/services/agent/tools/animateImage.tool.d.ts.map +1 -1
  183. package/lib/services/agent/tools/animateImage.tool.js +12 -0
  184. package/lib/services/agent/tools/chapterOutline.tool.d.ts +42 -0
  185. package/lib/services/agent/tools/chapterOutline.tool.d.ts.map +1 -0
  186. package/lib/services/agent/tools/chapterOutline.tool.js +115 -0
  187. package/lib/services/agent/tools/composeScene.tool.d.ts +63 -0
  188. package/lib/services/agent/tools/composeScene.tool.d.ts.map +1 -1
  189. package/lib/services/agent/tools/estimateCost.tool.d.ts +27 -0
  190. package/lib/services/agent/tools/estimateCost.tool.d.ts.map +1 -1
  191. package/lib/services/agent/tools/estimateCost.tool.js +55 -7
  192. package/lib/services/agent/tools/extendVideo.tool.d.ts +26 -0
  193. package/lib/services/agent/tools/extendVideo.tool.d.ts.map +1 -0
  194. package/lib/services/agent/tools/extendVideo.tool.js +149 -0
  195. package/lib/services/agent/tools/generateScript.tool.d.ts +184 -0
  196. package/lib/services/agent/tools/generateScript.tool.d.ts.map +1 -0
  197. package/lib/services/agent/tools/generateScript.tool.js +123 -0
  198. package/lib/services/agent/tools/generateVideo.tool.d.ts +1 -0
  199. package/lib/services/agent/tools/generateVideo.tool.d.ts.map +1 -1
  200. package/lib/services/agent/tools/generateVideo.tool.js +20 -1
  201. package/lib/services/agent/tools/index.d.ts +4 -0
  202. package/lib/services/agent/tools/index.d.ts.map +1 -1
  203. package/lib/services/agent/tools/index.js +4 -0
  204. package/lib/services/agent/tools/matchBrollToScript.tool.d.ts +50 -0
  205. package/lib/services/agent/tools/matchBrollToScript.tool.d.ts.map +1 -0
  206. package/lib/services/agent/tools/matchBrollToScript.tool.js +139 -0
  207. package/lib/services/agent/tools/planVideo.tool.d.ts +56 -0
  208. package/lib/services/agent/tools/planVideo.tool.d.ts.map +1 -1
  209. package/lib/services/agent/tools/planVideo.tool.js +3 -3
  210. package/lib/services/agent/tools/render.tool.d.ts +21 -0
  211. package/lib/services/agent/tools/render.tool.d.ts.map +1 -1
  212. package/lib/services/aiGen/aiGenFactory.service.d.ts.map +1 -1
  213. package/lib/services/aiGen/aiGenFactory.service.js +18 -3
  214. package/lib/services/aiGen/providers/anthropic/anthropic.service.d.ts +26 -0
  215. package/lib/services/aiGen/providers/anthropic/anthropic.service.d.ts.map +1 -0
  216. package/lib/services/aiGen/providers/anthropic/anthropic.service.js +95 -0
  217. package/lib/services/aiGen/providers/google/google.service.d.ts +24 -1
  218. package/lib/services/aiGen/providers/google/google.service.d.ts.map +1 -1
  219. package/lib/services/aiGen/providers/google/google.service.js +87 -243
  220. package/lib/services/aiGen/providers/google/googleErrors.d.ts +13 -0
  221. package/lib/services/aiGen/providers/google/googleErrors.d.ts.map +1 -0
  222. package/lib/services/aiGen/providers/google/googleErrors.js +102 -0
  223. package/lib/services/aiGen/providers/google/googleFetch.d.ts +8 -0
  224. package/lib/services/aiGen/providers/google/googleFetch.d.ts.map +1 -0
  225. package/lib/services/aiGen/providers/google/googleFetch.js +96 -0
  226. package/lib/services/aiGen/providers/google/googleMusic.d.ts +15 -0
  227. package/lib/services/aiGen/providers/google/googleMusic.d.ts.map +1 -0
  228. package/lib/services/aiGen/providers/google/googleMusic.js +77 -0
  229. package/lib/services/aiGen/providers/kling/kling.service.d.ts +7 -3
  230. package/lib/services/aiGen/providers/kling/kling.service.d.ts.map +1 -1
  231. package/lib/services/aiGen/providers/kling/kling.service.js +23 -367
  232. package/lib/services/aiGen/providers/kling/klingCredits.d.ts +9 -0
  233. package/lib/services/aiGen/providers/kling/klingCredits.d.ts.map +1 -0
  234. package/lib/services/aiGen/providers/kling/klingCredits.js +63 -0
  235. package/lib/services/aiGen/providers/kling/klingRequests.d.ts +32 -0
  236. package/lib/services/aiGen/providers/kling/klingRequests.d.ts.map +1 -0
  237. package/lib/services/aiGen/providers/kling/klingRequests.js +194 -0
  238. package/lib/services/aiGen/providers/kling/klingStatus.d.ts +16 -0
  239. package/lib/services/aiGen/providers/kling/klingStatus.d.ts.map +1 -0
  240. package/lib/services/aiGen/providers/kling/klingStatus.js +173 -0
  241. package/lib/services/bullmq.service.d.ts +61 -0
  242. package/lib/services/bullmq.service.d.ts.map +1 -1
  243. package/lib/services/bullmq.service.js +101 -1
  244. package/lib/services/crypto/index.d.ts +2 -0
  245. package/lib/services/crypto/index.d.ts.map +1 -0
  246. package/lib/services/crypto/index.js +17 -0
  247. package/lib/services/crypto/tokenVault.d.ts +47 -0
  248. package/lib/services/crypto/tokenVault.d.ts.map +1 -0
  249. package/lib/services/crypto/tokenVault.js +179 -0
  250. package/lib/services/editor/captionStyleHint.d.ts +3 -0
  251. package/lib/services/editor/captionStyleHint.d.ts.map +1 -0
  252. package/lib/services/editor/captionStyleHint.js +112 -0
  253. package/lib/services/editor/planToProject.d.ts +7 -66
  254. package/lib/services/editor/planToProject.d.ts.map +1 -1
  255. package/lib/services/editor/planToProject.helpers.d.ts +40 -0
  256. package/lib/services/editor/planToProject.helpers.d.ts.map +1 -0
  257. package/lib/services/editor/planToProject.helpers.js +177 -0
  258. package/lib/services/editor/planToProject.js +197 -180
  259. package/lib/services/editor/planToProject.types.d.ts +94 -0
  260. package/lib/services/editor/planToProject.types.d.ts.map +1 -0
  261. package/lib/services/editor/planToProject.types.js +2 -0
  262. package/lib/services/firestore.service.d.ts +5 -0
  263. package/lib/services/firestore.service.d.ts.map +1 -1
  264. package/lib/services/firestore.service.js +13 -0
  265. package/lib/services/index.d.ts +12 -0
  266. package/lib/services/index.d.ts.map +1 -1
  267. package/lib/services/index.js +12 -0
  268. package/lib/services/promptEnhancer/index.d.ts +18 -0
  269. package/lib/services/promptEnhancer/index.d.ts.map +1 -0
  270. package/lib/services/promptEnhancer/index.js +33 -0
  271. package/lib/services/promptEnhancer/models.d.ts +54 -0
  272. package/lib/services/promptEnhancer/models.d.ts.map +1 -0
  273. package/lib/services/promptEnhancer/models.js +37 -0
  274. package/lib/services/promptEnhancer/profiles/agent.profile.d.ts +14 -0
  275. package/lib/services/promptEnhancer/profiles/agent.profile.d.ts.map +1 -0
  276. package/lib/services/promptEnhancer/profiles/agent.profile.js +40 -0
  277. package/lib/services/promptEnhancer/profiles/avatar.profile.d.ts +13 -0
  278. package/lib/services/promptEnhancer/profiles/avatar.profile.d.ts.map +1 -0
  279. package/lib/services/promptEnhancer/profiles/avatar.profile.js +40 -0
  280. package/lib/services/promptEnhancer/profiles/base.d.ts +28 -0
  281. package/lib/services/promptEnhancer/profiles/base.d.ts.map +1 -0
  282. package/lib/services/promptEnhancer/profiles/base.js +35 -0
  283. package/lib/services/promptEnhancer/profiles/image.profile.d.ts +11 -0
  284. package/lib/services/promptEnhancer/profiles/image.profile.d.ts.map +1 -0
  285. package/lib/services/promptEnhancer/profiles/image.profile.js +42 -0
  286. package/lib/services/promptEnhancer/profiles/index.d.ts +12 -0
  287. package/lib/services/promptEnhancer/profiles/index.d.ts.map +1 -0
  288. package/lib/services/promptEnhancer/profiles/index.js +33 -0
  289. package/lib/services/promptEnhancer/profiles/video.profile.d.ts +15 -0
  290. package/lib/services/promptEnhancer/profiles/video.profile.d.ts.map +1 -0
  291. package/lib/services/promptEnhancer/profiles/video.profile.js +81 -0
  292. package/lib/services/promptEnhancer/promptEnhancer.service.d.ts +45 -0
  293. package/lib/services/promptEnhancer/promptEnhancer.service.d.ts.map +1 -0
  294. package/lib/services/promptEnhancer/promptEnhancer.service.js +157 -0
  295. package/lib/services/promptEnhancer/schema.d.ts +19 -0
  296. package/lib/services/promptEnhancer/schema.d.ts.map +1 -0
  297. package/lib/services/promptEnhancer/schema.js +43 -0
  298. package/lib/services/promptEnhancer/types.d.ts +112 -0
  299. package/lib/services/promptEnhancer/types.d.ts.map +1 -0
  300. package/lib/services/promptEnhancer/types.js +2 -0
  301. package/lib/services/socialAI/captionGen.d.ts +81 -0
  302. package/lib/services/socialAI/captionGen.d.ts.map +1 -0
  303. package/lib/services/socialAI/captionGen.js +206 -0
  304. package/lib/services/socialAI/hookScore.d.ts +85 -0
  305. package/lib/services/socialAI/hookScore.d.ts.map +1 -0
  306. package/lib/services/socialAI/hookScore.js +170 -0
  307. package/lib/services/socialAI/index.d.ts +3 -0
  308. package/lib/services/socialAI/index.d.ts.map +1 -0
  309. package/lib/services/socialAI/index.js +18 -0
  310. package/lib/services/socialAccounts/index.d.ts +2 -0
  311. package/lib/services/socialAccounts/index.d.ts.map +1 -0
  312. package/lib/services/socialAccounts/index.js +17 -0
  313. package/lib/services/socialAccounts/socialAccountService.d.ts +25 -0
  314. package/lib/services/socialAccounts/socialAccountService.d.ts.map +1 -0
  315. package/lib/services/socialAccounts/socialAccountService.js +105 -0
  316. package/lib/services/socialEngage/factory.d.ts +7 -0
  317. package/lib/services/socialEngage/factory.d.ts.map +1 -0
  318. package/lib/services/socialEngage/factory.js +25 -0
  319. package/lib/services/socialEngage/index.d.ts +6 -0
  320. package/lib/services/socialEngage/index.d.ts.map +1 -0
  321. package/lib/services/socialEngage/index.js +21 -0
  322. package/lib/services/socialEngage/meta.engage.d.ts +17 -0
  323. package/lib/services/socialEngage/meta.engage.d.ts.map +1 -0
  324. package/lib/services/socialEngage/meta.engage.js +128 -0
  325. package/lib/services/socialEngage/metaWebhook.d.ts +50 -0
  326. package/lib/services/socialEngage/metaWebhook.d.ts.map +1 -0
  327. package/lib/services/socialEngage/metaWebhook.js +93 -0
  328. package/lib/services/socialEngage/types.d.ts +72 -0
  329. package/lib/services/socialEngage/types.d.ts.map +1 -0
  330. package/lib/services/socialEngage/types.js +10 -0
  331. package/lib/services/socialEngage/youtube.engage.d.ts +9 -0
  332. package/lib/services/socialEngage/youtube.engage.d.ts.map +1 -0
  333. package/lib/services/socialEngage/youtube.engage.js +87 -0
  334. package/lib/services/socialFormat/aspectGeometry.d.ts +74 -0
  335. package/lib/services/socialFormat/aspectGeometry.d.ts.map +1 -0
  336. package/lib/services/socialFormat/aspectGeometry.js +135 -0
  337. package/lib/services/socialFormat/index.d.ts +2 -0
  338. package/lib/services/socialFormat/index.d.ts.map +1 -0
  339. package/lib/services/socialFormat/index.js +19 -0
  340. package/lib/services/socialInsights/index.d.ts +3 -0
  341. package/lib/services/socialInsights/index.d.ts.map +1 -0
  342. package/lib/services/socialInsights/index.js +18 -0
  343. package/lib/services/socialInsights/recommendations.d.ts +131 -0
  344. package/lib/services/socialInsights/recommendations.d.ts.map +1 -0
  345. package/lib/services/socialInsights/recommendations.js +277 -0
  346. package/lib/services/socialInsights/timeBuckets.d.ts +35 -0
  347. package/lib/services/socialInsights/timeBuckets.d.ts.map +1 -0
  348. package/lib/services/socialInsights/timeBuckets.js +78 -0
  349. package/lib/services/socialMetrics/factory.d.ts +5 -0
  350. package/lib/services/socialMetrics/factory.d.ts.map +1 -0
  351. package/lib/services/socialMetrics/factory.js +24 -0
  352. package/lib/services/socialMetrics/index.d.ts +6 -0
  353. package/lib/services/socialMetrics/index.d.ts.map +1 -0
  354. package/lib/services/socialMetrics/index.js +21 -0
  355. package/lib/services/socialMetrics/meta.metrics.d.ts +22 -0
  356. package/lib/services/socialMetrics/meta.metrics.d.ts.map +1 -0
  357. package/lib/services/socialMetrics/meta.metrics.js +137 -0
  358. package/lib/services/socialMetrics/tiktok.metrics.d.ts +8 -0
  359. package/lib/services/socialMetrics/tiktok.metrics.d.ts.map +1 -0
  360. package/lib/services/socialMetrics/tiktok.metrics.js +43 -0
  361. package/lib/services/socialMetrics/types.d.ts +54 -0
  362. package/lib/services/socialMetrics/types.d.ts.map +1 -0
  363. package/lib/services/socialMetrics/types.js +2 -0
  364. package/lib/services/socialMetrics/youtube.metrics.d.ts +8 -0
  365. package/lib/services/socialMetrics/youtube.metrics.d.ts.map +1 -0
  366. package/lib/services/socialMetrics/youtube.metrics.js +43 -0
  367. package/lib/services/socialOAuth/factory.d.ts +7 -0
  368. package/lib/services/socialOAuth/factory.d.ts.map +1 -0
  369. package/lib/services/socialOAuth/factory.js +42 -0
  370. package/lib/services/socialOAuth/index.d.ts +11 -0
  371. package/lib/services/socialOAuth/index.d.ts.map +1 -0
  372. package/lib/services/socialOAuth/index.js +26 -0
  373. package/lib/services/socialOAuth/linkedin.oauth.d.ts +14 -0
  374. package/lib/services/socialOAuth/linkedin.oauth.d.ts.map +1 -0
  375. package/lib/services/socialOAuth/linkedin.oauth.js +127 -0
  376. package/lib/services/socialOAuth/meta.oauth.d.ts +31 -0
  377. package/lib/services/socialOAuth/meta.oauth.d.ts.map +1 -0
  378. package/lib/services/socialOAuth/meta.oauth.js +214 -0
  379. package/lib/services/socialOAuth/oauthState.d.ts +14 -0
  380. package/lib/services/socialOAuth/oauthState.d.ts.map +1 -0
  381. package/lib/services/socialOAuth/oauthState.js +66 -0
  382. package/lib/services/socialOAuth/pinterest.oauth.d.ts +15 -0
  383. package/lib/services/socialOAuth/pinterest.oauth.d.ts.map +1 -0
  384. package/lib/services/socialOAuth/pinterest.oauth.js +126 -0
  385. package/lib/services/socialOAuth/threads.oauth.d.ts +14 -0
  386. package/lib/services/socialOAuth/threads.oauth.d.ts.map +1 -0
  387. package/lib/services/socialOAuth/threads.oauth.js +129 -0
  388. package/lib/services/socialOAuth/tiktok.oauth.d.ts +15 -0
  389. package/lib/services/socialOAuth/tiktok.oauth.d.ts.map +1 -0
  390. package/lib/services/socialOAuth/tiktok.oauth.js +151 -0
  391. package/lib/services/socialOAuth/types.d.ts +67 -0
  392. package/lib/services/socialOAuth/types.d.ts.map +1 -0
  393. package/lib/services/socialOAuth/types.js +2 -0
  394. package/lib/services/socialOAuth/x.oauth.d.ts +17 -0
  395. package/lib/services/socialOAuth/x.oauth.d.ts.map +1 -0
  396. package/lib/services/socialOAuth/x.oauth.js +134 -0
  397. package/lib/services/socialOAuth/youtube.oauth.d.ts +15 -0
  398. package/lib/services/socialOAuth/youtube.oauth.d.ts.map +1 -0
  399. package/lib/services/socialOAuth/youtube.oauth.js +156 -0
  400. package/lib/services/socialPublish/factory.d.ts +5 -0
  401. package/lib/services/socialPublish/factory.d.ts.map +1 -0
  402. package/lib/services/socialPublish/factory.js +32 -0
  403. package/lib/services/socialPublish/index.d.ts +10 -0
  404. package/lib/services/socialPublish/index.d.ts.map +1 -0
  405. package/lib/services/socialPublish/index.js +25 -0
  406. package/lib/services/socialPublish/linkedin.publish.d.ts +9 -0
  407. package/lib/services/socialPublish/linkedin.publish.d.ts.map +1 -0
  408. package/lib/services/socialPublish/linkedin.publish.js +143 -0
  409. package/lib/services/socialPublish/meta.publish.d.ts +28 -0
  410. package/lib/services/socialPublish/meta.publish.d.ts.map +1 -0
  411. package/lib/services/socialPublish/meta.publish.js +149 -0
  412. package/lib/services/socialPublish/pinterest.publish.d.ts +13 -0
  413. package/lib/services/socialPublish/pinterest.publish.d.ts.map +1 -0
  414. package/lib/services/socialPublish/pinterest.publish.js +130 -0
  415. package/lib/services/socialPublish/threads.publish.d.ts +12 -0
  416. package/lib/services/socialPublish/threads.publish.d.ts.map +1 -0
  417. package/lib/services/socialPublish/threads.publish.js +96 -0
  418. package/lib/services/socialPublish/tiktok.publish.d.ts +13 -0
  419. package/lib/services/socialPublish/tiktok.publish.d.ts.map +1 -0
  420. package/lib/services/socialPublish/tiktok.publish.js +118 -0
  421. package/lib/services/socialPublish/types.d.ts +47 -0
  422. package/lib/services/socialPublish/types.d.ts.map +1 -0
  423. package/lib/services/socialPublish/types.js +2 -0
  424. package/lib/services/socialPublish/x.publish.d.ts +12 -0
  425. package/lib/services/socialPublish/x.publish.d.ts.map +1 -0
  426. package/lib/services/socialPublish/x.publish.js +147 -0
  427. package/lib/services/socialPublish/youtube.publish.d.ts +9 -0
  428. package/lib/services/socialPublish/youtube.publish.d.ts.map +1 -0
  429. package/lib/services/socialPublish/youtube.publish.js +107 -0
  430. package/lib/services/stock/index.d.ts +2 -0
  431. package/lib/services/stock/index.d.ts.map +1 -0
  432. package/lib/services/stock/index.js +17 -0
  433. package/lib/services/stock/realPersonSafety.d.ts +99 -0
  434. package/lib/services/stock/realPersonSafety.d.ts.map +1 -0
  435. package/lib/services/stock/realPersonSafety.js +248 -0
  436. package/lib/utils/index.d.ts +1 -0
  437. package/lib/utils/index.d.ts.map +1 -1
  438. package/lib/utils/index.js +1 -0
  439. package/lib/utils/renderTier.d.ts +26 -0
  440. package/lib/utils/renderTier.d.ts.map +1 -0
  441. package/lib/utils/renderTier.js +34 -0
  442. package/package.json +1 -1
@@ -7,7 +7,8 @@ exports.getAnthropicCaller = getAnthropicCaller;
7
7
  const llmCaller_1 = require("./llmCaller");
8
8
  /**
9
9
  * Singleton LlmCaller accessor. Host wires a concrete impl at boot
10
- * (e.g. GatewayLlmCaller); agent code reads via getLlmCaller().
10
+ * (the native ProviderRoutingLlmCaller via createNativeLlmCaller); agent code
11
+ * reads via getLlmCaller().
11
12
  *
12
13
  * Throwing UnconfiguredLlmCaller is the default so tests fail loud
13
14
  * if the host forgets to wire.
@@ -21,14 +22,13 @@ function getLlmCaller() {
21
22
  }
22
23
  /**
23
24
  * Optional Anthropic-direct caller. Wired only on hosts that have
24
- * ANTHROPIC_API_KEY set and need Anthropic-specific features (server-side
25
- * web_search, prompt caching, extended thinking). The Planner reads this
26
- * only when `useWebResearch` is requested — otherwise the default gateway
27
- * caller is used so provider portability is preserved.
25
+ * ANTHROPIC_API_KEY set and need Anthropic server-side web_search for the
26
+ * planner's research grounding. The Planner reads this only when
27
+ * `useWebResearch` is requested — otherwise it goes through the normal
28
+ * dispatcher (getLlmCaller()), which already routes Anthropic models natively.
28
29
  *
29
30
  * Null when unconfigured rather than throwing — caller code checks and
30
- * gracefully falls back to the gateway path. See AnthropicLlmCaller docstring
31
- * for deferred features (Tavily custom tools, fallback chain, streaming).
31
+ * gracefully falls back to the non-web-research planner path.
32
32
  */
33
33
  let anthropicInstance = null;
34
34
  function setAnthropicCaller(caller) {
@@ -0,0 +1,63 @@
1
+ import { z } from "zod";
2
+ import { ChatRequest, ChatResponse, LlmCaller, StructuredRequest, StructuredResponse, StructuredWithToolsRequest } from "./llmCaller";
3
+ /**
4
+ * Provider-dispatching LlmCaller — the native replacement for GatewayLlmCaller
5
+ * as the wired singleton (LLM_NATIVE_MIGRATION_PLAN Phase 5).
6
+ *
7
+ * It owns the two responsibilities the single gateway endpoint used to give us
8
+ * for free, now that each provider has its own SDK caller:
9
+ * 1. Dispatch by `req.model.provider` → the matching native caller.
10
+ * 2. Cross-provider `fallbackModel` (F2): when the primary exhausts retries on
11
+ * a TRANSIENT error, attempt the fallback once (which may be a different
12
+ * provider). Deterministic errors (schema/auth/4xx) do NOT trigger fallback
13
+ * — identical semantics to the gateway.
14
+ *
15
+ * The native callers each handle ONE provider and do transport retry only; the
16
+ * dispatcher never re-implements backoff.
17
+ *
18
+ * Streaming: delegates to the chosen caller's `structuredStream` when present.
19
+ * All three native callers (Anthropic / OpenAI / Gemini) now implement native
20
+ * incremental streaming, so the dispatcher streams token-by-token on every
21
+ * provider. The single-chunk fallback below remains only as a safety net for
22
+ * any future caller that omits `structuredStream` — the LlmCaller contract
23
+ * explicitly allows a single full-payload emission.
24
+ */
25
+ export interface ProviderCallers {
26
+ anthropic?: LlmCaller;
27
+ openai?: LlmCaller;
28
+ google?: LlmCaller;
29
+ }
30
+ export declare class ProviderRoutingLlmCaller implements LlmCaller {
31
+ private readonly callers;
32
+ constructor(callers: ProviderCallers);
33
+ private pick;
34
+ chat(req: ChatRequest): Promise<ChatResponse>;
35
+ structured<T extends z.ZodTypeAny>(req: StructuredRequest<T>): Promise<StructuredResponse<T>>;
36
+ /**
37
+ * Forward to the chosen caller's native streaming when available; otherwise
38
+ * emit the full validated payload as a single chunk. Streaming does NOT apply
39
+ * cross-provider fallback mid-stream (matches the gateway): once bytes flow, a
40
+ * drop propagates and the planner's own retry loop (which awaits `result`)
41
+ * handles it.
42
+ */
43
+ structuredStream<T extends z.ZodTypeAny>(req: StructuredRequest<T>): {
44
+ tokens: AsyncIterable<string>;
45
+ result: Promise<StructuredResponse<T>>;
46
+ };
47
+ /**
48
+ * Anthropic (and any future non-streaming caller) path: run the blocking
49
+ * `structured` call, then surface its JSON as one token chunk. Failures reject
50
+ * the result promise and return cleanly from the generator rather than
51
+ * throwing — so the caller's token loop completes and its `await result`
52
+ * retry path fires (same contract as the streaming callers).
53
+ */
54
+ private singleChunkStream;
55
+ /**
56
+ * Anthropic-only server-tool path (web_search). Routes to the anthropic caller
57
+ * if it implements `structuredWithTools`; otherwise throws, since no other
58
+ * provider exposes Anthropic's server tools. Preserves the planner's
59
+ * useWebResearch behavior after the gateway is gone.
60
+ */
61
+ structuredWithTools<T extends z.ZodTypeAny>(req: StructuredWithToolsRequest<T>): Promise<StructuredResponse<T>>;
62
+ }
63
+ //# sourceMappingURL=llmCallerRouting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llmCallerRouting.d.ts","sourceRoot":"","sources":["../../../src/services/agent/llmCallerRouting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EAClB,0BAA0B,EAC3B,MAAM,aAAa,CAAC;AAKrB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,qBAAa,wBAAyB,YAAW,SAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,eAAe;IAErD,OAAO,CAAC,IAAI;IAYN,IAAI,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAoB7C,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EACrC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAsBjC;;;;;;OAMG;IACH,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EACrC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,GACxB;QACD,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QAC9B,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;KACxC;IASD;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAgCzB;;;;;OAKG;IACG,mBAAmB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAC9C,GAAG,EAAE,0BAA0B,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;CAUlC"}
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProviderRoutingLlmCaller = void 0;
4
+ const llmModelRegistry_1 = require("./llmModelRegistry");
5
+ const llmRetry_1 = require("./llmRetry");
6
+ class ProviderRoutingLlmCaller {
7
+ constructor(callers) {
8
+ this.callers = callers;
9
+ }
10
+ pick(model) {
11
+ const provider = (0, llmModelRegistry_1.providerFor)(model);
12
+ const caller = this.callers[provider];
13
+ if (!caller) {
14
+ throw new Error(`ProviderRoutingLlmCaller: no caller wired for provider="${provider}" ` +
15
+ `(model=${model.modelId}). Wire it in the host bootstrap.`);
16
+ }
17
+ return caller;
18
+ }
19
+ async chat(req) {
20
+ const attempted = [];
21
+ const run = (model) => {
22
+ attempted.push(model);
23
+ // Strip fallbackModel: the dispatcher owns fallback, the native caller
24
+ // should not attempt its own (it can't reach other providers anyway).
25
+ return this.pick(model).chat({ ...req, model, fallbackModel: undefined });
26
+ };
27
+ try {
28
+ const out = await run(req.model);
29
+ return { ...out, attemptedModels: [...attempted], usedFallback: false };
30
+ }
31
+ catch (err) {
32
+ if (req.fallbackModel && (0, llmRetry_1.isTransientLlmError)(err)) {
33
+ const out = await run(req.fallbackModel);
34
+ return { ...out, attemptedModels: [...attempted], usedFallback: true };
35
+ }
36
+ throw err;
37
+ }
38
+ }
39
+ async structured(req) {
40
+ const attempted = [];
41
+ const run = (model) => {
42
+ attempted.push(model);
43
+ return this.pick(model).structured({
44
+ ...req,
45
+ model,
46
+ fallbackModel: undefined,
47
+ });
48
+ };
49
+ try {
50
+ const out = await run(req.model);
51
+ return { ...out, attemptedModels: [...attempted], usedFallback: false };
52
+ }
53
+ catch (err) {
54
+ if (req.fallbackModel && (0, llmRetry_1.isTransientLlmError)(err)) {
55
+ const out = await run(req.fallbackModel);
56
+ return { ...out, attemptedModels: [...attempted], usedFallback: true };
57
+ }
58
+ throw err;
59
+ }
60
+ }
61
+ /**
62
+ * Forward to the chosen caller's native streaming when available; otherwise
63
+ * emit the full validated payload as a single chunk. Streaming does NOT apply
64
+ * cross-provider fallback mid-stream (matches the gateway): once bytes flow, a
65
+ * drop propagates and the planner's own retry loop (which awaits `result`)
66
+ * handles it.
67
+ */
68
+ structuredStream(req) {
69
+ const caller = this.pick(req.model);
70
+ const streamReq = { ...req, fallbackModel: undefined };
71
+ if (typeof caller.structuredStream === "function") {
72
+ return caller.structuredStream(streamReq);
73
+ }
74
+ return this.singleChunkStream(streamReq, caller);
75
+ }
76
+ /**
77
+ * Anthropic (and any future non-streaming caller) path: run the blocking
78
+ * `structured` call, then surface its JSON as one token chunk. Failures reject
79
+ * the result promise and return cleanly from the generator rather than
80
+ * throwing — so the caller's token loop completes and its `await result`
81
+ * retry path fires (same contract as the streaming callers).
82
+ */
83
+ singleChunkStream(req, caller) {
84
+ let resolveResult;
85
+ let rejectResult;
86
+ const result = new Promise((resolve, reject) => {
87
+ resolveResult = resolve;
88
+ rejectResult = reject;
89
+ });
90
+ const tokens = {
91
+ async *[Symbol.asyncIterator]() {
92
+ try {
93
+ const res = await caller.structured(req);
94
+ yield JSON.stringify(res.data);
95
+ resolveResult({
96
+ ...res,
97
+ attemptedModels: res.attemptedModels ?? [req.model],
98
+ usedFallback: false,
99
+ });
100
+ }
101
+ catch (e) {
102
+ rejectResult(e);
103
+ return;
104
+ }
105
+ },
106
+ };
107
+ return { tokens, result };
108
+ }
109
+ /**
110
+ * Anthropic-only server-tool path (web_search). Routes to the anthropic caller
111
+ * if it implements `structuredWithTools`; otherwise throws, since no other
112
+ * provider exposes Anthropic's server tools. Preserves the planner's
113
+ * useWebResearch behavior after the gateway is gone.
114
+ */
115
+ async structuredWithTools(req) {
116
+ const caller = this.pick(req.model);
117
+ if (typeof caller.structuredWithTools !== "function") {
118
+ throw new Error(`ProviderRoutingLlmCaller: provider for model=${req.model.modelId} ` +
119
+ `does not support server-side tools (structuredWithTools).`);
120
+ }
121
+ return caller.structuredWithTools(req);
122
+ }
123
+ }
124
+ exports.ProviderRoutingLlmCaller = ProviderRoutingLlmCaller;
@@ -0,0 +1,59 @@
1
+ import { ModelChoice } from "./modelRouter";
2
+ /**
3
+ * Per-model capability registry for the native LLM callers.
4
+ *
5
+ * The gateway flattened every model to one OpenAI-compatible shape, so callers
6
+ * never had to know what a model could do. Native callers DO — prompt caching is
7
+ * Anthropic-only, `responseSchema` is Gemini's structured-output knob, etc. This
8
+ * registry is the single place that answers "what can model X do, and what native
9
+ * API id does it map to?" so callers branch on capability, not hardcoded strings.
10
+ *
11
+ * Pure + dependency-free (no SDKs, no env) so it stays unit-testable and cheap to
12
+ * import. Add a row when a new model joins `DEFAULT_MODEL_ROUTING` (modelRouter.ts).
13
+ */
14
+ /** Providers we ship native callers for. */
15
+ export type LlmProvider = "anthropic" | "openai" | "google";
16
+ /** Native model ids we know are valid for their provider's SDK. */
17
+ export interface ModelCapabilities {
18
+ provider: LlmProvider;
19
+ /**
20
+ * The id passed to the provider SDK. Defaults to the logical `modelId` when a
21
+ * model isn't in the table (most ids are pass-through today); listed
22
+ * explicitly so a future rename has one place to fix.
23
+ */
24
+ nativeModelId: string;
25
+ /** Accepts image input. */
26
+ vision: boolean;
27
+ /** Supports Anthropic ephemeral prompt caching (`cache_control`). */
28
+ promptCaching: boolean;
29
+ /**
30
+ * Native strict structured-output: OpenAI `json_schema` strict / Gemini
31
+ * `responseSchema` / Anthropic tool-forcing. All three native callers can
32
+ * always emit structured output one way or another, so this is informational
33
+ * (true for every row today) — kept for symmetry / future opt-outs.
34
+ */
35
+ structuredOutput: boolean;
36
+ /** Anthropic extended-thinking support. */
37
+ extendedThinking: boolean;
38
+ }
39
+ /**
40
+ * Capability rows keyed by the LOGICAL model id used in `DEFAULT_MODEL_ROUTING`.
41
+ * Native ids are pass-through today (proven in AnthropicLlmCaller / the Gemini
42
+ * vision services), so `nativeModelId` mirrors the key unless a provider needs a
43
+ * different wire id.
44
+ */
45
+ export declare const MODEL_CAPABILITIES: Record<string, ModelCapabilities>;
46
+ /**
47
+ * Normalize a `ModelChoice.provider` string to a known `LlmProvider`. Throws on
48
+ * a provider we don't ship a native caller for (e.g. the legacy `deepseek`
49
+ * executor fallback) — loud failure beats silently 404ing against the wrong SDK.
50
+ * See LLM_NATIVE_MIGRATION_PLAN decision #1.
51
+ */
52
+ export declare function normalizeProvider(provider: string): LlmProvider;
53
+ /** Capabilities for a model choice — registry row if known, else provider defaults. */
54
+ export declare function capabilitiesFor(model: ModelChoice): ModelCapabilities;
55
+ /** The native SDK model id to send for a given choice. */
56
+ export declare function nativeModelId(model: ModelChoice): string;
57
+ /** Which native caller a choice routes to. */
58
+ export declare function providerFor(model: ModelChoice): LlmProvider;
59
+ //# sourceMappingURL=llmModelRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llmModelRegistry.d.ts","sourceRoot":"","sources":["../../../src/services/agent/llmModelRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;;;;;;;;;;GAWG;AAEH,4CAA4C;AAC5C,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE5D,mEAAmE;AACnE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,WAAW,CAAC;IACtB;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,2BAA2B;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,qEAAqE;IACrE,aAAa,EAAE,OAAO,CAAC;IACvB;;;;;OAKG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAC1B,2CAA2C;IAC3C,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAwGhE,CAAC;AAeF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAgB/D;AAED,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,iBAAiB,CAOrE;AAED,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAExD;AAED,8CAA8C;AAC9C,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAE3D"}
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MODEL_CAPABILITIES = void 0;
4
+ exports.normalizeProvider = normalizeProvider;
5
+ exports.capabilitiesFor = capabilitiesFor;
6
+ exports.nativeModelId = nativeModelId;
7
+ exports.providerFor = providerFor;
8
+ /**
9
+ * Capability rows keyed by the LOGICAL model id used in `DEFAULT_MODEL_ROUTING`.
10
+ * Native ids are pass-through today (proven in AnthropicLlmCaller / the Gemini
11
+ * vision services), so `nativeModelId` mirrors the key unless a provider needs a
12
+ * different wire id.
13
+ */
14
+ exports.MODEL_CAPABILITIES = {
15
+ // ── Anthropic ──────────────────────────────────────────────────────────
16
+ "claude-haiku-4-5": {
17
+ provider: "anthropic",
18
+ nativeModelId: "claude-haiku-4-5",
19
+ vision: true,
20
+ promptCaching: true,
21
+ structuredOutput: true,
22
+ extendedThinking: true,
23
+ },
24
+ "claude-sonnet-4-6": {
25
+ provider: "anthropic",
26
+ nativeModelId: "claude-sonnet-4-6",
27
+ vision: true,
28
+ promptCaching: true,
29
+ structuredOutput: true,
30
+ extendedThinking: true,
31
+ },
32
+ // Legacy Opus tier — kept for compatibility; prefer claude-opus-4-8.
33
+ "claude-opus-4-7": {
34
+ provider: "anthropic",
35
+ nativeModelId: "claude-opus-4-7",
36
+ vision: true,
37
+ promptCaching: true,
38
+ structuredOutput: true,
39
+ extendedThinking: true,
40
+ },
41
+ // Current top Opus tier (released 2026-05-28). The default high-capability
42
+ // choice; routed as premiumPlanner.
43
+ "claude-opus-4-8": {
44
+ provider: "anthropic",
45
+ nativeModelId: "claude-opus-4-8",
46
+ vision: true,
47
+ promptCaching: true,
48
+ structuredOutput: true,
49
+ extendedThinking: true,
50
+ },
51
+ // ── OpenAI ─────────────────────────────────────────────────────────────
52
+ "gpt-5": {
53
+ provider: "openai",
54
+ nativeModelId: "gpt-5",
55
+ vision: true,
56
+ promptCaching: true,
57
+ structuredOutput: true,
58
+ extendedThinking: false,
59
+ },
60
+ // Legacy fast tier — superseded by gpt-5.4-mini.
61
+ "gpt-5-mini": {
62
+ provider: "openai",
63
+ nativeModelId: "gpt-5-mini",
64
+ vision: true,
65
+ promptCaching: true,
66
+ structuredOutput: true,
67
+ extendedThinking: false,
68
+ },
69
+ // Current OpenAI fast/cheap tier — supersedes gpt-5-mini. Cross-provider
70
+ // fallback for the prompt enhancer's primary (gemini-3.5-flash).
71
+ "gpt-5.4-mini": {
72
+ provider: "openai",
73
+ nativeModelId: "gpt-5.4-mini",
74
+ vision: true,
75
+ promptCaching: true,
76
+ structuredOutput: true,
77
+ extendedThinking: false,
78
+ },
79
+ // ── Google ─────────────────────────────────────────────────────────────
80
+ // Current frontier Flash (stable). The prompt enhancer's default primary —
81
+ // frontier-Flash quality + vision at low cost.
82
+ "gemini-3.5-flash": {
83
+ provider: "google",
84
+ nativeModelId: "gemini-3.5-flash",
85
+ vision: true,
86
+ promptCaching: true,
87
+ structuredOutput: true,
88
+ extendedThinking: false,
89
+ },
90
+ // Latest Pro tier. NOTE: no stable dateless id yet — the callable id is the
91
+ // `-preview` snapshot, so the logical id maps to it here. Cross-provider
92
+ // fallback for the enhancer's premium model.
93
+ "gemini-3.1-pro": {
94
+ provider: "google",
95
+ nativeModelId: "gemini-3.1-pro-preview",
96
+ vision: true,
97
+ promptCaching: true,
98
+ structuredOutput: true,
99
+ extendedThinking: false,
100
+ },
101
+ // Older Gemini tiers — cheapest, kept for cost-sensitive / high-volume paths.
102
+ "gemini-2.5-flash": {
103
+ provider: "google",
104
+ nativeModelId: "gemini-2.5-flash",
105
+ vision: true,
106
+ promptCaching: true,
107
+ structuredOutput: true,
108
+ extendedThinking: false,
109
+ },
110
+ "gemini-2.5-pro": {
111
+ provider: "google",
112
+ nativeModelId: "gemini-2.5-pro",
113
+ vision: true,
114
+ promptCaching: true,
115
+ structuredOutput: true,
116
+ extendedThinking: false,
117
+ },
118
+ };
119
+ /** Default capabilities when a model id isn't in the table — derive from provider. */
120
+ function defaultsFor(model) {
121
+ const provider = normalizeProvider(model.provider);
122
+ return {
123
+ provider,
124
+ nativeModelId: model.modelId,
125
+ vision: model.vision ?? false,
126
+ promptCaching: provider === "anthropic",
127
+ structuredOutput: true,
128
+ extendedThinking: provider === "anthropic",
129
+ };
130
+ }
131
+ /**
132
+ * Normalize a `ModelChoice.provider` string to a known `LlmProvider`. Throws on
133
+ * a provider we don't ship a native caller for (e.g. the legacy `deepseek`
134
+ * executor fallback) — loud failure beats silently 404ing against the wrong SDK.
135
+ * See LLM_NATIVE_MIGRATION_PLAN decision #1.
136
+ */
137
+ function normalizeProvider(provider) {
138
+ switch (provider) {
139
+ case "anthropic":
140
+ return "anthropic";
141
+ case "openai":
142
+ return "openai";
143
+ case "google":
144
+ case "gemini":
145
+ return "google";
146
+ default:
147
+ throw new Error(`llmModelRegistry: no native caller for provider="${provider}". ` +
148
+ `Supported: anthropic, openai, google. Repoint routing/fallback off it ` +
149
+ `(see LLM_NATIVE_MIGRATION_PLAN decision #1).`);
150
+ }
151
+ }
152
+ /** Capabilities for a model choice — registry row if known, else provider defaults. */
153
+ function capabilitiesFor(model) {
154
+ const row = exports.MODEL_CAPABILITIES[model.modelId];
155
+ if (row) {
156
+ // Honor an explicit vision flag from routing even if the row omits it.
157
+ return model.vision !== undefined ? { ...row, vision: model.vision } : row;
158
+ }
159
+ return defaultsFor(model);
160
+ }
161
+ /** The native SDK model id to send for a given choice. */
162
+ function nativeModelId(model) {
163
+ return capabilitiesFor(model).nativeModelId;
164
+ }
165
+ /** Which native caller a choice routes to. */
166
+ function providerFor(model) {
167
+ return capabilitiesFor(model).provider;
168
+ }
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Shared transient-retry primitives for the native LLM callers.
3
+ *
4
+ * Extracted (Phase 1 of LLM_NATIVE_MIGRATION_PLAN) from the duplicated transient
5
+ * logic that lived in the per-caller implementations. All three native callers
6
+ * (OpenAI / Anthropic / Gemini) and the provider-dispatching caller share this so
7
+ * transient classification + backoff behave identically across providers — the
8
+ * single gateway endpoint used to give us this uniformity for free.
9
+ *
10
+ * Contract:
11
+ * - `withRetry(fn)` retries `fn` up to `maxRetries` times on transient errors
12
+ * with exponential backoff (base, base*4, base*16, …). The FINAL failure of a
13
+ * transient error is re-thrown as a `TransientLlmError` so the dispatcher's
14
+ * cross-provider `fallbackModel` path can catch it explicitly. Non-transient
15
+ * errors (4xx other than 408/425/429, schema-validation, malformed JSON)
16
+ * propagate immediately as their original error.
17
+ */
18
+ /**
19
+ * Marks an error worth retrying / falling back on. The provider-dispatching caller
20
+ * catches this specifically to attempt `fallbackModel`; deterministic errors
21
+ * (bad schema, non-JSON, auth) are NOT wrapped and short-circuit the retry loop.
22
+ */
23
+ export declare class TransientLlmError extends Error {
24
+ readonly cause?: unknown | undefined;
25
+ constructor(message: string, cause?: unknown | undefined);
26
+ }
27
+ export declare function isTransientLlmError(err: unknown): err is TransientLlmError;
28
+ /** HTTP statuses we treat as transient (worth a retry / fallback). */
29
+ export declare const TRANSIENT_HTTP_STATUSES: Set<number>;
30
+ /**
31
+ * Classify an arbitrary thrown value as transient. Covers:
32
+ * - SDK errors carrying a numeric `status` in TRANSIENT_HTTP_STATUSES
33
+ * - Node/undici network codes (ECONNRESET, ETIMEDOUT, UND_ERR_*, …)
34
+ * - AbortError from our own per-request timeout (treated as transient so a
35
+ * single slow call gets a retry / fallback instead of sinking the stage)
36
+ * - SDK connection-error class names + common network phrases in the message
37
+ */
38
+ export declare function isTransientError(err: unknown): boolean;
39
+ export interface RetryOptions {
40
+ /** Max attempts on transient errors. Default 3. */
41
+ maxRetries?: number;
42
+ /** Base backoff in ms (exponential: base, base*4, base*16). Default 250. */
43
+ retryBaseMs?: number;
44
+ /**
45
+ * Optional sleep override (tests inject a no-op so retries don't wall-clock).
46
+ * Receives the planned delay in ms.
47
+ */
48
+ sleepImpl?: (ms: number) => Promise<void>;
49
+ }
50
+ /**
51
+ * Run `fn` with transient-error retry + exponential backoff. On the terminal
52
+ * attempt of a transient failure, re-throws as `TransientLlmError`. Errors
53
+ * already classified transient by `isTransientError` but not yet wrapped are
54
+ * wrapped on the final attempt; pre-wrapped `TransientLlmError`s pass through.
55
+ */
56
+ export declare function withRetry<T>(fn: () => Promise<T>, opts?: RetryOptions): Promise<T>;
57
+ //# sourceMappingURL=llmRetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llmRetry.d.ts","sourceRoot":"","sources":["../../../src/services/agent/llmRetry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAGxC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO;gBADxB,OAAO,EAAE,MAAM,EACN,KAAK,CAAC,EAAE,OAAO,YAAA;CAK3B;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,iBAAiB,CAE1E;AAED,sEAAsE;AACtE,eAAO,MAAM,uBAAuB,aAElC,CAAC;AAEH;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CA+BtD;AAED,MAAM,WAAW,YAAY;IAC3B,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C;AAKD;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,CAAC,CAAC,CA6BZ"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ /**
3
+ * Shared transient-retry primitives for the native LLM callers.
4
+ *
5
+ * Extracted (Phase 1 of LLM_NATIVE_MIGRATION_PLAN) from the duplicated transient
6
+ * logic that lived in the per-caller implementations. All three native callers
7
+ * (OpenAI / Anthropic / Gemini) and the provider-dispatching caller share this so
8
+ * transient classification + backoff behave identically across providers — the
9
+ * single gateway endpoint used to give us this uniformity for free.
10
+ *
11
+ * Contract:
12
+ * - `withRetry(fn)` retries `fn` up to `maxRetries` times on transient errors
13
+ * with exponential backoff (base, base*4, base*16, …). The FINAL failure of a
14
+ * transient error is re-thrown as a `TransientLlmError` so the dispatcher's
15
+ * cross-provider `fallbackModel` path can catch it explicitly. Non-transient
16
+ * errors (4xx other than 408/425/429, schema-validation, malformed JSON)
17
+ * propagate immediately as their original error.
18
+ */
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.TRANSIENT_HTTP_STATUSES = exports.TransientLlmError = void 0;
21
+ exports.isTransientLlmError = isTransientLlmError;
22
+ exports.isTransientError = isTransientError;
23
+ exports.withRetry = withRetry;
24
+ /**
25
+ * Marks an error worth retrying / falling back on. The provider-dispatching caller
26
+ * catches this specifically to attempt `fallbackModel`; deterministic errors
27
+ * (bad schema, non-JSON, auth) are NOT wrapped and short-circuit the retry loop.
28
+ */
29
+ class TransientLlmError extends Error {
30
+ constructor(message, cause) {
31
+ super(message);
32
+ this.cause = cause;
33
+ this.name = "TransientLlmError";
34
+ }
35
+ }
36
+ exports.TransientLlmError = TransientLlmError;
37
+ function isTransientLlmError(err) {
38
+ return err instanceof Error && err.name === "TransientLlmError";
39
+ }
40
+ /** HTTP statuses we treat as transient (worth a retry / fallback). */
41
+ exports.TRANSIENT_HTTP_STATUSES = new Set([
42
+ 408, 425, 429, 500, 502, 503, 504,
43
+ ]);
44
+ /**
45
+ * Classify an arbitrary thrown value as transient. Covers:
46
+ * - SDK errors carrying a numeric `status` in TRANSIENT_HTTP_STATUSES
47
+ * - Node/undici network codes (ECONNRESET, ETIMEDOUT, UND_ERR_*, …)
48
+ * - AbortError from our own per-request timeout (treated as transient so a
49
+ * single slow call gets a retry / fallback instead of sinking the stage)
50
+ * - SDK connection-error class names + common network phrases in the message
51
+ */
52
+ function isTransientError(err) {
53
+ if (!err || typeof err !== "object")
54
+ return false;
55
+ const e = err;
56
+ if (typeof e.status === "number" && exports.TRANSIENT_HTTP_STATUSES.has(e.status)) {
57
+ return true;
58
+ }
59
+ const code = e.code ?? e.cause?.code;
60
+ if (code && /^(ECONNRESET|ECONNREFUSED|ETIMEDOUT|EAI_AGAIN|EPIPE|UND_ERR_.*)$/.test(code)) {
61
+ return true;
62
+ }
63
+ if (e.name === "AbortError" ||
64
+ e.name === "APIConnectionError" ||
65
+ e.name === "APIConnectionTimeoutError") {
66
+ return true;
67
+ }
68
+ const msg = String(e.message ?? "");
69
+ return /fetch failed|socket hang up|other side closed|network|timeout|operation was aborted|ECONNRESET|ETIMEDOUT/i.test(msg);
70
+ }
71
+ const defaultSleep = (ms) => new Promise((r) => setTimeout(r, ms));
72
+ /**
73
+ * Run `fn` with transient-error retry + exponential backoff. On the terminal
74
+ * attempt of a transient failure, re-throws as `TransientLlmError`. Errors
75
+ * already classified transient by `isTransientError` but not yet wrapped are
76
+ * wrapped on the final attempt; pre-wrapped `TransientLlmError`s pass through.
77
+ */
78
+ async function withRetry(fn, opts = {}) {
79
+ const maxRetries = opts.maxRetries ?? 3;
80
+ const retryBaseMs = opts.retryBaseMs ?? 250;
81
+ const sleep = opts.sleepImpl ?? defaultSleep;
82
+ let lastErr;
83
+ for (let attempt = 0; attempt < maxRetries; attempt++) {
84
+ try {
85
+ return await fn();
86
+ }
87
+ catch (err) {
88
+ lastErr = err;
89
+ const transient = isTransientLlmError(err) || isTransientError(err);
90
+ if (!transient || attempt === maxRetries - 1) {
91
+ if (transient) {
92
+ throw isTransientLlmError(err)
93
+ ? err
94
+ : new TransientLlmError(`transient LLM error after ${attempt + 1} attempts: ${String(err?.message ?? err)}`, err);
95
+ }
96
+ throw err;
97
+ }
98
+ await sleep(retryBaseMs * Math.pow(4, attempt));
99
+ }
100
+ }
101
+ throw lastErr;
102
+ }
@@ -8,15 +8,15 @@
8
8
  * - critic : vision QA across scenes, rubric-following
9
9
  * - reference : ingest a TikTok/Reel URL, extract structure
10
10
  *
11
- * The actual LLM call is delegated to an injected LlmCaller (wired to
12
- * Vercel AI Gateway / OpenRouter at the host layer) — this keeps the
11
+ * The actual LLM call is delegated to an injected LlmCaller (the native
12
+ * ProviderRoutingLlmCaller wired at the host layer) — this keeps the
13
13
  * agent code provider-agnostic and easy to A/B test against the eval set.
14
14
  */
15
15
  export type AgentRole = "router" | "planner" | "executor" | "critic" | "reference";
16
16
  export interface ModelChoice {
17
17
  /** Logical model id, e.g. "claude-sonnet-4.6", "claude-haiku-4.5", "gpt-5". */
18
18
  modelId: string;
19
- /** Provider key for the LLM gateway, e.g. "anthropic", "openai", "google". */
19
+ /** Provider key for the LLM dispatcher, e.g. "anthropic", "openai", "google". */
20
20
  provider: string;
21
21
  /** Vision input supported. */
22
22
  vision?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"modelRouter.d.ts","sourceRoot":"","sources":["../../../src/services/agent/modelRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,SAAS,GACT,UAAU,GACV,QAAQ,GACR,WAAW,CAAC;AAEhB,MAAM,WAAW,WAAW;IAC1B,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACxC,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IACnD,gFAAgF;IAChF,cAAc,CAAC,EAAE,WAAW,CAAC;CAC9B;AAED,eAAO,MAAM,qBAAqB,EAAE,kBAgCnC,CAAC;AAEF,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,GAAE,kBAA0C;IAE/E,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,WAAW;IAOnE,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS;CAGtD"}
1
+ {"version":3,"file":"modelRouter.d.ts","sourceRoot":"","sources":["../../../src/services/agent/modelRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,SAAS,GACT,UAAU,GACV,QAAQ,GACR,WAAW,CAAC;AAEhB,MAAM,WAAW,WAAW;IAC1B,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACxC,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IACnD,gFAAgF;IAChF,cAAc,CAAC,EAAE,WAAW,CAAC;CAC9B;AAED,eAAO,MAAM,qBAAqB,EAAE,kBA8CnC,CAAC;AAEF,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,GAAE,kBAA0C;IAE/E,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,WAAW;IAOnE,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS;CAGtD"}