@framers/agentos 0.1.120 → 0.1.121

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 (405) hide show
  1. package/README.md +21 -0
  2. package/dist/api/agency.d.ts.map +1 -1
  3. package/dist/api/agency.js +227 -84
  4. package/dist/api/agency.js.map +1 -1
  5. package/dist/api/analyzeVideo.d.ts +127 -0
  6. package/dist/api/analyzeVideo.d.ts.map +1 -0
  7. package/dist/api/analyzeVideo.js +136 -0
  8. package/dist/api/analyzeVideo.js.map +1 -0
  9. package/dist/api/detectScenes.d.ts +82 -0
  10. package/dist/api/detectScenes.d.ts.map +1 -0
  11. package/dist/api/detectScenes.js +67 -0
  12. package/dist/api/detectScenes.js.map +1 -0
  13. package/dist/api/generateImage.d.ts +7 -0
  14. package/dist/api/generateImage.d.ts.map +1 -1
  15. package/dist/api/generateImage.js +133 -9
  16. package/dist/api/generateImage.js.map +1 -1
  17. package/dist/api/generateMusic.d.ts +98 -0
  18. package/dist/api/generateMusic.d.ts.map +1 -0
  19. package/dist/api/generateMusic.js +319 -0
  20. package/dist/api/generateMusic.js.map +1 -0
  21. package/dist/api/generateSFX.d.ts +96 -0
  22. package/dist/api/generateSFX.d.ts.map +1 -0
  23. package/dist/api/generateSFX.js +317 -0
  24. package/dist/api/generateSFX.js.map +1 -0
  25. package/dist/api/generateVideo.d.ts +113 -0
  26. package/dist/api/generateVideo.d.ts.map +1 -0
  27. package/dist/api/generateVideo.js +342 -0
  28. package/dist/api/generateVideo.js.map +1 -0
  29. package/dist/api/model.d.ts.map +1 -1
  30. package/dist/api/model.js +8 -4
  31. package/dist/api/model.js.map +1 -1
  32. package/dist/api/performOCR.d.ts +169 -0
  33. package/dist/api/performOCR.d.ts.map +1 -0
  34. package/dist/api/performOCR.js +198 -0
  35. package/dist/api/performOCR.js.map +1 -0
  36. package/dist/api/provider-defaults.d.ts +7 -5
  37. package/dist/api/provider-defaults.d.ts.map +1 -1
  38. package/dist/api/provider-defaults.js +32 -10
  39. package/dist/api/provider-defaults.js.map +1 -1
  40. package/dist/api/strategies/debate.d.ts.map +1 -1
  41. package/dist/api/strategies/debate.js +1 -0
  42. package/dist/api/strategies/debate.js.map +1 -1
  43. package/dist/api/strategies/graph.d.ts.map +1 -1
  44. package/dist/api/strategies/graph.js +69 -13
  45. package/dist/api/strategies/graph.js.map +1 -1
  46. package/dist/api/strategies/hierarchical.d.ts.map +1 -1
  47. package/dist/api/strategies/hierarchical.js +1 -0
  48. package/dist/api/strategies/hierarchical.js.map +1 -1
  49. package/dist/api/strategies/parallel.d.ts.map +1 -1
  50. package/dist/api/strategies/parallel.js +1 -0
  51. package/dist/api/strategies/parallel.js.map +1 -1
  52. package/dist/api/strategies/review-loop.d.ts.map +1 -1
  53. package/dist/api/strategies/review-loop.js +1 -0
  54. package/dist/api/strategies/review-loop.js.map +1 -1
  55. package/dist/api/strategies/sequential.d.ts.map +1 -1
  56. package/dist/api/strategies/sequential.js +54 -48
  57. package/dist/api/strategies/sequential.js.map +1 -1
  58. package/dist/api/streamBuffer.d.ts +20 -0
  59. package/dist/api/streamBuffer.d.ts.map +1 -0
  60. package/dist/api/streamBuffer.js +81 -0
  61. package/dist/api/streamBuffer.js.map +1 -0
  62. package/dist/api/types.d.ts +145 -5
  63. package/dist/api/types.d.ts.map +1 -1
  64. package/dist/api/types.js.map +1 -1
  65. package/dist/channels/adapters/RedditChannelAdapter.js.map +1 -1
  66. package/dist/core/audio/AudioProcessor.d.ts.map +1 -1
  67. package/dist/core/audio/AudioProcessor.js +1 -0
  68. package/dist/core/audio/AudioProcessor.js.map +1 -1
  69. package/dist/core/audio/EnvironmentalCalibrator.d.ts.map +1 -1
  70. package/dist/core/audio/EnvironmentalCalibrator.js +1 -0
  71. package/dist/core/audio/EnvironmentalCalibrator.js.map +1 -1
  72. package/dist/core/audio/FallbackAudioProxy.d.ts +169 -0
  73. package/dist/core/audio/FallbackAudioProxy.d.ts.map +1 -0
  74. package/dist/core/audio/FallbackAudioProxy.js +236 -0
  75. package/dist/core/audio/FallbackAudioProxy.js.map +1 -0
  76. package/dist/core/audio/IAudioGenerator.d.ts +103 -0
  77. package/dist/core/audio/IAudioGenerator.d.ts.map +1 -0
  78. package/dist/core/audio/IAudioGenerator.js +24 -0
  79. package/dist/core/audio/IAudioGenerator.js.map +1 -0
  80. package/dist/core/audio/index.d.ts +54 -0
  81. package/dist/core/audio/index.d.ts.map +1 -1
  82. package/dist/core/audio/index.js +93 -0
  83. package/dist/core/audio/index.js.map +1 -1
  84. package/dist/core/audio/providers/AudioGenLocalProvider.d.ts +136 -0
  85. package/dist/core/audio/providers/AudioGenLocalProvider.d.ts.map +1 -0
  86. package/dist/core/audio/providers/AudioGenLocalProvider.js +235 -0
  87. package/dist/core/audio/providers/AudioGenLocalProvider.js.map +1 -0
  88. package/dist/core/audio/providers/ElevenLabsSFXProvider.d.ts +107 -0
  89. package/dist/core/audio/providers/ElevenLabsSFXProvider.d.ts.map +1 -0
  90. package/dist/core/audio/providers/ElevenLabsSFXProvider.js +154 -0
  91. package/dist/core/audio/providers/ElevenLabsSFXProvider.js.map +1 -0
  92. package/dist/core/audio/providers/FalAudioProvider.d.ts +207 -0
  93. package/dist/core/audio/providers/FalAudioProvider.d.ts.map +1 -0
  94. package/dist/core/audio/providers/FalAudioProvider.js +315 -0
  95. package/dist/core/audio/providers/FalAudioProvider.js.map +1 -0
  96. package/dist/core/audio/providers/MusicGenLocalProvider.d.ts +136 -0
  97. package/dist/core/audio/providers/MusicGenLocalProvider.d.ts.map +1 -0
  98. package/dist/core/audio/providers/MusicGenLocalProvider.js +235 -0
  99. package/dist/core/audio/providers/MusicGenLocalProvider.js.map +1 -0
  100. package/dist/core/audio/providers/ReplicateAudioProvider.d.ts +200 -0
  101. package/dist/core/audio/providers/ReplicateAudioProvider.d.ts.map +1 -0
  102. package/dist/core/audio/providers/ReplicateAudioProvider.js +346 -0
  103. package/dist/core/audio/providers/ReplicateAudioProvider.js.map +1 -0
  104. package/dist/core/audio/providers/StableAudioProvider.d.ts +138 -0
  105. package/dist/core/audio/providers/StableAudioProvider.d.ts.map +1 -0
  106. package/dist/core/audio/providers/StableAudioProvider.js +192 -0
  107. package/dist/core/audio/providers/StableAudioProvider.js.map +1 -0
  108. package/dist/core/audio/providers/SunoProvider.d.ts +182 -0
  109. package/dist/core/audio/providers/SunoProvider.d.ts.map +1 -0
  110. package/dist/core/audio/providers/SunoProvider.js +312 -0
  111. package/dist/core/audio/providers/SunoProvider.js.map +1 -0
  112. package/dist/core/audio/providers/UdioProvider.d.ts +177 -0
  113. package/dist/core/audio/providers/UdioProvider.d.ts.map +1 -0
  114. package/dist/core/audio/providers/UdioProvider.js +305 -0
  115. package/dist/core/audio/providers/UdioProvider.js.map +1 -0
  116. package/dist/core/audio/types.d.ts +257 -0
  117. package/dist/core/audio/types.d.ts.map +1 -0
  118. package/dist/core/audio/types.js +21 -0
  119. package/dist/core/audio/types.js.map +1 -0
  120. package/dist/core/images/FallbackImageProxy.d.ts +183 -0
  121. package/dist/core/images/FallbackImageProxy.d.ts.map +1 -0
  122. package/dist/core/images/FallbackImageProxy.js +283 -0
  123. package/dist/core/images/FallbackImageProxy.js.map +1 -0
  124. package/dist/core/images/IImageProvider.d.ts +1 -1
  125. package/dist/core/images/IImageProvider.d.ts.map +1 -1
  126. package/dist/core/images/index.d.ts +1 -0
  127. package/dist/core/images/index.d.ts.map +1 -1
  128. package/dist/core/images/index.js +1 -0
  129. package/dist/core/images/index.js.map +1 -1
  130. package/dist/core/llm/providers/AIModelProviderManager.d.ts +3 -1
  131. package/dist/core/llm/providers/AIModelProviderManager.d.ts.map +1 -1
  132. package/dist/core/llm/providers/AIModelProviderManager.js +8 -0
  133. package/dist/core/llm/providers/AIModelProviderManager.js.map +1 -1
  134. package/dist/core/llm/providers/errors/ClaudeCodeProviderError.d.ts +52 -0
  135. package/dist/core/llm/providers/errors/ClaudeCodeProviderError.d.ts.map +1 -0
  136. package/dist/core/llm/providers/errors/ClaudeCodeProviderError.js +36 -0
  137. package/dist/core/llm/providers/errors/ClaudeCodeProviderError.js.map +1 -0
  138. package/dist/core/llm/providers/errors/GeminiCLIProviderError.d.ts +32 -0
  139. package/dist/core/llm/providers/errors/GeminiCLIProviderError.d.ts.map +1 -0
  140. package/dist/core/llm/providers/errors/GeminiCLIProviderError.js +27 -0
  141. package/dist/core/llm/providers/errors/GeminiCLIProviderError.js.map +1 -0
  142. package/dist/core/llm/providers/implementations/ClaudeCodeCLIBridge.d.ts +38 -0
  143. package/dist/core/llm/providers/implementations/ClaudeCodeCLIBridge.d.ts.map +1 -0
  144. package/dist/core/llm/providers/implementations/ClaudeCodeCLIBridge.js +128 -0
  145. package/dist/core/llm/providers/implementations/ClaudeCodeCLIBridge.js.map +1 -0
  146. package/dist/core/llm/providers/implementations/ClaudeCodeProvider.d.ts +107 -0
  147. package/dist/core/llm/providers/implementations/ClaudeCodeProvider.d.ts.map +1 -0
  148. package/dist/core/llm/providers/implementations/ClaudeCodeProvider.js +504 -0
  149. package/dist/core/llm/providers/implementations/ClaudeCodeProvider.js.map +1 -0
  150. package/dist/core/llm/providers/implementations/GeminiCLIBridge.d.ts +60 -0
  151. package/dist/core/llm/providers/implementations/GeminiCLIBridge.d.ts.map +1 -0
  152. package/dist/core/llm/providers/implementations/GeminiCLIBridge.js +177 -0
  153. package/dist/core/llm/providers/implementations/GeminiCLIBridge.js.map +1 -0
  154. package/dist/core/llm/providers/implementations/GeminiCLIProvider.d.ts +55 -0
  155. package/dist/core/llm/providers/implementations/GeminiCLIProvider.d.ts.map +1 -0
  156. package/dist/core/llm/providers/implementations/GeminiCLIProvider.js +447 -0
  157. package/dist/core/llm/providers/implementations/GeminiCLIProvider.js.map +1 -0
  158. package/dist/core/media/ProviderPreferences.d.ts +158 -0
  159. package/dist/core/media/ProviderPreferences.d.ts.map +1 -0
  160. package/dist/core/media/ProviderPreferences.js +183 -0
  161. package/dist/core/media/ProviderPreferences.js.map +1 -0
  162. package/dist/core/subprocess/CLIRegistry.d.ts +71 -0
  163. package/dist/core/subprocess/CLIRegistry.d.ts.map +1 -0
  164. package/dist/core/subprocess/CLIRegistry.js +210 -0
  165. package/dist/core/subprocess/CLIRegistry.js.map +1 -0
  166. package/dist/core/subprocess/CLISubprocessBridge.d.ts +117 -0
  167. package/dist/core/subprocess/CLISubprocessBridge.d.ts.map +1 -0
  168. package/dist/core/subprocess/CLISubprocessBridge.js +199 -0
  169. package/dist/core/subprocess/CLISubprocessBridge.js.map +1 -0
  170. package/dist/core/subprocess/errors.d.ts +76 -0
  171. package/dist/core/subprocess/errors.d.ts.map +1 -0
  172. package/dist/core/subprocess/errors.js +75 -0
  173. package/dist/core/subprocess/errors.js.map +1 -0
  174. package/dist/core/subprocess/index.d.ts +11 -0
  175. package/dist/core/subprocess/index.d.ts.map +1 -0
  176. package/dist/core/subprocess/index.js +10 -0
  177. package/dist/core/subprocess/index.js.map +1 -0
  178. package/dist/core/subprocess/types.d.ts +100 -0
  179. package/dist/core/subprocess/types.d.ts.map +1 -0
  180. package/dist/core/subprocess/types.js +9 -0
  181. package/dist/core/subprocess/types.js.map +1 -0
  182. package/dist/core/video/FallbackVideoProxy.d.ts +166 -0
  183. package/dist/core/video/FallbackVideoProxy.d.ts.map +1 -0
  184. package/dist/core/video/FallbackVideoProxy.js +228 -0
  185. package/dist/core/video/FallbackVideoProxy.js.map +1 -0
  186. package/dist/core/video/IVideoAnalyzer.d.ts +29 -0
  187. package/dist/core/video/IVideoAnalyzer.d.ts.map +1 -0
  188. package/dist/core/video/IVideoAnalyzer.js +12 -0
  189. package/dist/core/video/IVideoAnalyzer.js.map +1 -0
  190. package/dist/core/video/IVideoGenerator.d.ts +76 -0
  191. package/dist/core/video/IVideoGenerator.d.ts.map +1 -0
  192. package/dist/core/video/IVideoGenerator.js +13 -0
  193. package/dist/core/video/IVideoGenerator.js.map +1 -0
  194. package/dist/core/video/VideoAnalyzer.d.ts +278 -0
  195. package/dist/core/video/VideoAnalyzer.d.ts.map +1 -0
  196. package/dist/core/video/VideoAnalyzer.js +648 -0
  197. package/dist/core/video/VideoAnalyzer.js.map +1 -0
  198. package/dist/core/video/index.d.ts +55 -0
  199. package/dist/core/video/index.d.ts.map +1 -0
  200. package/dist/core/video/index.js +78 -0
  201. package/dist/core/video/index.js.map +1 -0
  202. package/dist/core/video/providers/FalVideoProvider.d.ts +195 -0
  203. package/dist/core/video/providers/FalVideoProvider.d.ts.map +1 -0
  204. package/dist/core/video/providers/FalVideoProvider.js +322 -0
  205. package/dist/core/video/providers/FalVideoProvider.js.map +1 -0
  206. package/dist/core/video/providers/ReplicateVideoProvider.d.ts +194 -0
  207. package/dist/core/video/providers/ReplicateVideoProvider.d.ts.map +1 -0
  208. package/dist/core/video/providers/ReplicateVideoProvider.js +356 -0
  209. package/dist/core/video/providers/ReplicateVideoProvider.js.map +1 -0
  210. package/dist/core/video/providers/RunwayVideoProvider.d.ts +175 -0
  211. package/dist/core/video/providers/RunwayVideoProvider.d.ts.map +1 -0
  212. package/dist/core/video/providers/RunwayVideoProvider.js +293 -0
  213. package/dist/core/video/providers/RunwayVideoProvider.js.map +1 -0
  214. package/dist/core/video/types.d.ts +441 -0
  215. package/dist/core/video/types.d.ts.map +1 -0
  216. package/dist/core/video/types.js +10 -0
  217. package/dist/core/video/types.js.map +1 -0
  218. package/dist/core/vision/SceneDetector.d.ts +180 -0
  219. package/dist/core/vision/SceneDetector.d.ts.map +1 -0
  220. package/dist/core/vision/SceneDetector.js +366 -0
  221. package/dist/core/vision/SceneDetector.js.map +1 -0
  222. package/dist/core/vision/index.d.ts +2 -1
  223. package/dist/core/vision/index.d.ts.map +1 -1
  224. package/dist/core/vision/index.js +1 -0
  225. package/dist/core/vision/index.js.map +1 -1
  226. package/dist/core/vision/types.d.ts +125 -0
  227. package/dist/core/vision/types.d.ts.map +1 -1
  228. package/dist/discovery/CapabilityDiscoveryEngine.d.ts +32 -0
  229. package/dist/discovery/CapabilityDiscoveryEngine.d.ts.map +1 -1
  230. package/dist/discovery/CapabilityDiscoveryEngine.js +46 -0
  231. package/dist/discovery/CapabilityDiscoveryEngine.js.map +1 -1
  232. package/dist/extensions/MultiRegistryLoader.js.map +1 -1
  233. package/dist/index.d.ts +17 -2
  234. package/dist/index.d.ts.map +1 -1
  235. package/dist/index.js +12 -0
  236. package/dist/index.js.map +1 -1
  237. package/dist/memory/CognitiveMemoryManager.d.ts +40 -0
  238. package/dist/memory/CognitiveMemoryManager.d.ts.map +1 -1
  239. package/dist/memory/CognitiveMemoryManager.js +54 -1
  240. package/dist/memory/CognitiveMemoryManager.js.map +1 -1
  241. package/dist/memory/facade/Memory.d.ts +4 -0
  242. package/dist/memory/facade/Memory.d.ts.map +1 -1
  243. package/dist/memory/facade/Memory.js +140 -4
  244. package/dist/memory/facade/Memory.js.map +1 -1
  245. package/dist/memory/facade/types.d.ts +30 -2
  246. package/dist/memory/facade/types.d.ts.map +1 -1
  247. package/dist/memory/index.d.ts +1 -0
  248. package/dist/memory/index.d.ts.map +1 -1
  249. package/dist/memory/index.js +1 -0
  250. package/dist/memory/index.js.map +1 -1
  251. package/dist/memory/types.d.ts +15 -0
  252. package/dist/memory/types.d.ts.map +1 -1
  253. package/dist/query-router/QueryClassifier.d.ts +192 -21
  254. package/dist/query-router/QueryClassifier.d.ts.map +1 -1
  255. package/dist/query-router/QueryClassifier.js +604 -23
  256. package/dist/query-router/QueryClassifier.js.map +1 -1
  257. package/dist/query-router/QueryDispatcher.d.ts +106 -8
  258. package/dist/query-router/QueryDispatcher.d.ts.map +1 -1
  259. package/dist/query-router/QueryDispatcher.js +387 -8
  260. package/dist/query-router/QueryDispatcher.js.map +1 -1
  261. package/dist/query-router/QueryRouter.d.ts +198 -14
  262. package/dist/query-router/QueryRouter.d.ts.map +1 -1
  263. package/dist/query-router/QueryRouter.js +738 -50
  264. package/dist/query-router/QueryRouter.js.map +1 -1
  265. package/dist/query-router/index.d.ts +1 -1
  266. package/dist/query-router/index.d.ts.map +1 -1
  267. package/dist/query-router/index.js +1 -1
  268. package/dist/query-router/index.js.map +1 -1
  269. package/dist/query-router/types.d.ts +396 -3
  270. package/dist/query-router/types.d.ts.map +1 -1
  271. package/dist/query-router/types.js +35 -0
  272. package/dist/query-router/types.js.map +1 -1
  273. package/dist/rag/HydeRetriever.d.ts +108 -0
  274. package/dist/rag/HydeRetriever.d.ts.map +1 -1
  275. package/dist/rag/HydeRetriever.js +184 -0
  276. package/dist/rag/HydeRetriever.js.map +1 -1
  277. package/dist/rag/IRetrievalAugmentor.d.ts +15 -0
  278. package/dist/rag/IRetrievalAugmentor.d.ts.map +1 -1
  279. package/dist/rag/RetrievalAugmentor.d.ts +58 -0
  280. package/dist/rag/RetrievalAugmentor.d.ts.map +1 -1
  281. package/dist/rag/RetrievalAugmentor.js +200 -32
  282. package/dist/rag/RetrievalAugmentor.js.map +1 -1
  283. package/dist/rag/VectorStoreManager.js +1 -1
  284. package/dist/rag/audit/RAGAuditCollector.d.ts +7 -0
  285. package/dist/rag/audit/RAGAuditCollector.d.ts.map +1 -1
  286. package/dist/rag/audit/RAGAuditCollector.js +10 -0
  287. package/dist/rag/audit/RAGAuditCollector.js.map +1 -1
  288. package/dist/rag/audit/RAGAuditTypes.d.ts +10 -1
  289. package/dist/rag/audit/RAGAuditTypes.d.ts.map +1 -1
  290. package/dist/rag/chunking/SemanticChunker.d.ts +210 -0
  291. package/dist/rag/chunking/SemanticChunker.d.ts.map +1 -0
  292. package/dist/rag/chunking/SemanticChunker.js +460 -0
  293. package/dist/rag/chunking/SemanticChunker.js.map +1 -0
  294. package/dist/rag/chunking/index.d.ts +10 -0
  295. package/dist/rag/chunking/index.d.ts.map +1 -0
  296. package/dist/rag/chunking/index.js +10 -0
  297. package/dist/rag/chunking/index.js.map +1 -0
  298. package/dist/rag/implementations/vector_stores/PineconeVectorStore.d.ts +103 -0
  299. package/dist/rag/implementations/vector_stores/PineconeVectorStore.d.ts.map +1 -0
  300. package/dist/rag/implementations/vector_stores/PineconeVectorStore.js +315 -0
  301. package/dist/rag/implementations/vector_stores/PineconeVectorStore.js.map +1 -0
  302. package/dist/rag/implementations/vector_stores/PostgresVectorStore.d.ts +107 -0
  303. package/dist/rag/implementations/vector_stores/PostgresVectorStore.d.ts.map +1 -0
  304. package/dist/rag/implementations/vector_stores/PostgresVectorStore.js +438 -0
  305. package/dist/rag/implementations/vector_stores/PostgresVectorStore.js.map +1 -0
  306. package/dist/rag/index.d.ts +15 -1
  307. package/dist/rag/index.d.ts.map +1 -1
  308. package/dist/rag/index.js +32 -0
  309. package/dist/rag/index.js.map +1 -1
  310. package/dist/rag/migration/MigrationEngine.d.ts +47 -0
  311. package/dist/rag/migration/MigrationEngine.d.ts.map +1 -0
  312. package/dist/rag/migration/MigrationEngine.js +168 -0
  313. package/dist/rag/migration/MigrationEngine.js.map +1 -0
  314. package/dist/rag/migration/adapters/PineconeSourceAdapter.d.ts +23 -0
  315. package/dist/rag/migration/adapters/PineconeSourceAdapter.d.ts.map +1 -0
  316. package/dist/rag/migration/adapters/PineconeSourceAdapter.js +63 -0
  317. package/dist/rag/migration/adapters/PineconeSourceAdapter.js.map +1 -0
  318. package/dist/rag/migration/adapters/PostgresSourceAdapter.d.ts +30 -0
  319. package/dist/rag/migration/adapters/PostgresSourceAdapter.d.ts.map +1 -0
  320. package/dist/rag/migration/adapters/PostgresSourceAdapter.js +71 -0
  321. package/dist/rag/migration/adapters/PostgresSourceAdapter.js.map +1 -0
  322. package/dist/rag/migration/adapters/PostgresTargetAdapter.d.ts +38 -0
  323. package/dist/rag/migration/adapters/PostgresTargetAdapter.d.ts.map +1 -0
  324. package/dist/rag/migration/adapters/PostgresTargetAdapter.js +114 -0
  325. package/dist/rag/migration/adapters/PostgresTargetAdapter.js.map +1 -0
  326. package/dist/rag/migration/adapters/QdrantSourceAdapter.d.ts +36 -0
  327. package/dist/rag/migration/adapters/QdrantSourceAdapter.d.ts.map +1 -0
  328. package/dist/rag/migration/adapters/QdrantSourceAdapter.js +109 -0
  329. package/dist/rag/migration/adapters/QdrantSourceAdapter.js.map +1 -0
  330. package/dist/rag/migration/adapters/QdrantTargetAdapter.d.ts +35 -0
  331. package/dist/rag/migration/adapters/QdrantTargetAdapter.d.ts.map +1 -0
  332. package/dist/rag/migration/adapters/QdrantTargetAdapter.js +110 -0
  333. package/dist/rag/migration/adapters/QdrantTargetAdapter.js.map +1 -0
  334. package/dist/rag/migration/adapters/SqliteSourceAdapter.d.ts +37 -0
  335. package/dist/rag/migration/adapters/SqliteSourceAdapter.d.ts.map +1 -0
  336. package/dist/rag/migration/adapters/SqliteSourceAdapter.js +72 -0
  337. package/dist/rag/migration/adapters/SqliteSourceAdapter.js.map +1 -0
  338. package/dist/rag/migration/adapters/SqliteTargetAdapter.d.ts +47 -0
  339. package/dist/rag/migration/adapters/SqliteTargetAdapter.d.ts.map +1 -0
  340. package/dist/rag/migration/adapters/SqliteTargetAdapter.js +93 -0
  341. package/dist/rag/migration/adapters/SqliteTargetAdapter.js.map +1 -0
  342. package/dist/rag/migration/types.d.ts +108 -0
  343. package/dist/rag/migration/types.d.ts.map +1 -0
  344. package/dist/rag/migration/types.js +11 -0
  345. package/dist/rag/migration/types.js.map +1 -0
  346. package/dist/rag/multimodal/MultimodalIndexer.d.ts +35 -0
  347. package/dist/rag/multimodal/MultimodalIndexer.d.ts.map +1 -1
  348. package/dist/rag/multimodal/MultimodalIndexer.js +66 -1
  349. package/dist/rag/multimodal/MultimodalIndexer.js.map +1 -1
  350. package/dist/rag/multimodal/types.d.ts +24 -0
  351. package/dist/rag/multimodal/types.d.ts.map +1 -1
  352. package/dist/rag/raptor/RaptorTree.d.ts +268 -0
  353. package/dist/rag/raptor/RaptorTree.d.ts.map +1 -0
  354. package/dist/rag/raptor/RaptorTree.js +443 -0
  355. package/dist/rag/raptor/RaptorTree.js.map +1 -0
  356. package/dist/rag/raptor/index.d.ts +11 -0
  357. package/dist/rag/raptor/index.d.ts.map +1 -0
  358. package/dist/rag/raptor/index.js +11 -0
  359. package/dist/rag/raptor/index.js.map +1 -0
  360. package/dist/rag/reranking/providers/CohereReranker.js.map +1 -1
  361. package/dist/rag/search/BM25Index.d.ts +282 -0
  362. package/dist/rag/search/BM25Index.d.ts.map +1 -0
  363. package/dist/rag/search/BM25Index.js +344 -0
  364. package/dist/rag/search/BM25Index.js.map +1 -0
  365. package/dist/rag/search/HybridSearcher.d.ts +198 -0
  366. package/dist/rag/search/HybridSearcher.d.ts.map +1 -0
  367. package/dist/rag/search/HybridSearcher.js +316 -0
  368. package/dist/rag/search/HybridSearcher.js.map +1 -0
  369. package/dist/rag/search/index.d.ts +12 -0
  370. package/dist/rag/search/index.d.ts.map +1 -0
  371. package/dist/rag/search/index.js +12 -0
  372. package/dist/rag/search/index.js.map +1 -0
  373. package/dist/rag/setup/DockerDetector.d.ts +67 -0
  374. package/dist/rag/setup/DockerDetector.d.ts.map +1 -0
  375. package/dist/rag/setup/DockerDetector.js +125 -0
  376. package/dist/rag/setup/DockerDetector.js.map +1 -0
  377. package/dist/rag/setup/PostgresSetup.d.ts +20 -0
  378. package/dist/rag/setup/PostgresSetup.d.ts.map +1 -0
  379. package/dist/rag/setup/PostgresSetup.js +133 -0
  380. package/dist/rag/setup/PostgresSetup.js.map +1 -0
  381. package/dist/rag/setup/QdrantSetup.d.ts +26 -0
  382. package/dist/rag/setup/QdrantSetup.d.ts.map +1 -0
  383. package/dist/rag/setup/QdrantSetup.js +96 -0
  384. package/dist/rag/setup/QdrantSetup.js.map +1 -0
  385. package/dist/rag/setup/types.d.ts +55 -0
  386. package/dist/rag/setup/types.d.ts.map +1 -0
  387. package/dist/rag/setup/types.js +6 -0
  388. package/dist/rag/setup/types.js.map +1 -0
  389. package/dist/rag/unified/UnifiedRetriever.d.ts +472 -0
  390. package/dist/rag/unified/UnifiedRetriever.d.ts.map +1 -0
  391. package/dist/rag/unified/UnifiedRetriever.js +887 -0
  392. package/dist/rag/unified/UnifiedRetriever.js.map +1 -0
  393. package/dist/rag/unified/index.d.ts +24 -0
  394. package/dist/rag/unified/index.d.ts.map +1 -0
  395. package/dist/rag/unified/index.js +23 -0
  396. package/dist/rag/unified/index.js.map +1 -0
  397. package/dist/rag/unified/types.d.ts +546 -0
  398. package/dist/rag/unified/types.d.ts.map +1 -0
  399. package/dist/rag/unified/types.js +177 -0
  400. package/dist/rag/unified/types.js.map +1 -0
  401. package/dist/speech/providers/AssemblyAISTTProvider.js.map +1 -1
  402. package/dist/speech/providers/AzureSpeechSTTProvider.js.map +1 -1
  403. package/dist/speech/providers/BuiltInAdaptiveVadProvider.d.ts +1 -1
  404. package/dist/speech/providers/DeepgramBatchSTTProvider.js.map +1 -1
  405. package/package.json +5 -2
@@ -0,0 +1,136 @@
1
+ import { VideoAnalyzer } from '../core/video/VideoAnalyzer.js';
2
+ import { createVisionPipeline } from '../core/vision/index.js';
3
+ import { recordAgentOSUsage } from './usageLedger.js';
4
+ import { recordAgentOSTurnMetrics, withAgentOSSpan } from '../core/observability/otel.js';
5
+ async function createAutoSpeechToTextProvider() {
6
+ if (process.env.OPENAI_API_KEY) {
7
+ const { OpenAIWhisperSpeechToTextProvider } = await import('../speech/providers/OpenAIWhisperSpeechToTextProvider.js');
8
+ return new OpenAIWhisperSpeechToTextProvider({
9
+ apiKey: process.env.OPENAI_API_KEY,
10
+ });
11
+ }
12
+ if (process.env.DEEPGRAM_API_KEY) {
13
+ const { DeepgramBatchSTTProvider } = await import('../speech/providers/DeepgramBatchSTTProvider.js');
14
+ return new DeepgramBatchSTTProvider({
15
+ apiKey: process.env.DEEPGRAM_API_KEY,
16
+ });
17
+ }
18
+ if (process.env.ASSEMBLYAI_API_KEY) {
19
+ const { AssemblyAISTTProvider } = await import('../speech/providers/AssemblyAISTTProvider.js');
20
+ return new AssemblyAISTTProvider({
21
+ apiKey: process.env.ASSEMBLYAI_API_KEY,
22
+ });
23
+ }
24
+ if (process.env.AZURE_SPEECH_KEY && process.env.AZURE_SPEECH_REGION) {
25
+ const { AzureSpeechSTTProvider } = await import('../speech/providers/AzureSpeechSTTProvider.js');
26
+ return new AzureSpeechSTTProvider({
27
+ key: process.env.AZURE_SPEECH_KEY,
28
+ region: process.env.AZURE_SPEECH_REGION,
29
+ });
30
+ }
31
+ return undefined;
32
+ }
33
+ // ---------------------------------------------------------------------------
34
+ // Main API function
35
+ // ---------------------------------------------------------------------------
36
+ /**
37
+ * Analyses a video and returns structured understanding results.
38
+ *
39
+ * Creates a {@link VideoAnalyzer} (backed by auto-detected
40
+ * VisionPipeline + STT when available), dispatches the analysis
41
+ * request, and returns a normalised {@link AnalyzeVideoResult}.
42
+ *
43
+ * @param opts - Video analysis options.
44
+ * @returns A promise resolving to the analysis result with description,
45
+ * scenes, objects, text, and optional RAG indexing metadata.
46
+ *
47
+ * @example
48
+ * ```ts
49
+ * const analysis = await analyzeVideo({
50
+ * videoUrl: 'https://example.com/demo.mp4',
51
+ * prompt: 'What products are shown in this video?',
52
+ * transcribeAudio: true,
53
+ * descriptionDetail: 'detailed',
54
+ * });
55
+ * console.log(analysis.description);
56
+ * for (const scene of analysis.scenes ?? []) {
57
+ * console.log(`[${scene.startSec}s] ${scene.description}`);
58
+ * }
59
+ * ```
60
+ */
61
+ export async function analyzeVideo(opts) {
62
+ const startedAt = Date.now();
63
+ let metricStatus = 'ok';
64
+ if (!opts.videoUrl && !opts.videoBuffer) {
65
+ throw new Error('Either videoUrl or videoBuffer is required for video analysis.');
66
+ }
67
+ try {
68
+ return await withAgentOSSpan('agentos.api.analyze_video', async (span) => {
69
+ if (opts.model)
70
+ span?.setAttribute('llm.model', opts.model);
71
+ const [visionPipeline, sttProvider] = await Promise.all([
72
+ createVisionPipeline(opts.model
73
+ ? { cloudModel: opts.model }
74
+ : undefined),
75
+ opts.transcribeAudio === false
76
+ ? Promise.resolve(undefined)
77
+ : createAutoSpeechToTextProvider(),
78
+ ]);
79
+ if (sttProvider) {
80
+ span?.setAttribute('agentos.api.stt_provider', sttProvider.id);
81
+ }
82
+ const analyzer = new VideoAnalyzer({
83
+ visionPipeline,
84
+ ...(sttProvider ? { sttProvider } : {}),
85
+ });
86
+ const result = await analyzer.analyze({
87
+ video: opts.videoBuffer ?? opts.videoUrl,
88
+ prompt: opts.prompt,
89
+ sceneThreshold: opts.sceneThreshold,
90
+ transcribeAudio: opts.transcribeAudio,
91
+ descriptionDetail: opts.descriptionDetail,
92
+ maxFrames: opts.maxFrames,
93
+ maxScenes: opts.maxScenes,
94
+ indexForRAG: opts.indexForRAG,
95
+ onProgress: opts.onProgress,
96
+ });
97
+ span?.setAttribute('agentos.api.scene_count', result.scenes.length);
98
+ return {
99
+ description: result.summary,
100
+ scenes: result.scenes,
101
+ durationSec: result.durationSec,
102
+ model: opts.model,
103
+ provider: 'agentos-video-analyzer',
104
+ text: result.fullTranscript ? [result.fullTranscript] : undefined,
105
+ fullTranscript: result.fullTranscript,
106
+ ragChunkIds: result.ragChunkIds,
107
+ providerMetadata: {
108
+ ...result.metadata,
109
+ sttProviderId: sttProvider?.id,
110
+ },
111
+ };
112
+ });
113
+ }
114
+ catch (error) {
115
+ metricStatus = 'error';
116
+ throw error;
117
+ }
118
+ finally {
119
+ try {
120
+ await recordAgentOSUsage({
121
+ options: {
122
+ ...opts.usageLedger,
123
+ source: opts.usageLedger?.source ?? 'analyzeVideo',
124
+ },
125
+ });
126
+ }
127
+ catch {
128
+ // Usage persistence is best-effort.
129
+ }
130
+ recordAgentOSTurnMetrics({
131
+ durationMs: Date.now() - startedAt,
132
+ status: metricStatus,
133
+ });
134
+ }
135
+ }
136
+ //# sourceMappingURL=analyzeVideo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzeVideo.js","sourceRoot":"","sources":["../../src/api/analyzeVideo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import type { Frame, SceneBoundary, SceneDetectionMethod } from '../core/vision/types.js';
2
+ /**
3
+ * Options for a {@link detectScenes} call.
4
+ *
5
+ * At minimum, a `frames` async iterable must be provided. All other
6
+ * options are optional and map to {@link SceneDetectorConfig} fields.
7
+ */
8
+ export interface DetectScenesOptions {
9
+ /**
10
+ * Async iterable of decoded video frames in time order.
11
+ * Each frame must contain a raw RGB pixel buffer, a timestamp,
12
+ * and a sequential index.
13
+ */
14
+ frames: AsyncIterable<Frame>;
15
+ /**
16
+ * Detection methods to use. Multiple methods are combined by
17
+ * taking the maximum diff score across all methods.
18
+ * @default ['histogram', 'ssim']
19
+ */
20
+ methods?: SceneDetectionMethod[];
21
+ /**
22
+ * Diff score threshold above which a frame transition is classified
23
+ * as a hard cut. Applied to histogram chi-squared distance (0-1).
24
+ * @default 0.3
25
+ */
26
+ hardCutThreshold?: number;
27
+ /**
28
+ * Diff score threshold for gradual transitions (dissolves, fades).
29
+ * Transitions with scores between this and `hardCutThreshold`
30
+ * are classified as gradual cuts.
31
+ * @default 0.15
32
+ */
33
+ gradualThreshold?: number;
34
+ /**
35
+ * Minimum scene duration in seconds. Scene boundaries that would
36
+ * create scenes shorter than this are suppressed.
37
+ * @default 1.0
38
+ */
39
+ minSceneDurationSec?: number;
40
+ /**
41
+ * CLIP embedding provider for semantic scene detection.
42
+ * Only used when `methods` includes `'clip'`.
43
+ * @default 'local'
44
+ */
45
+ clipProvider?: 'local' | 'openai';
46
+ }
47
+ /**
48
+ * Detects scene boundaries in a stream of video frames.
49
+ *
50
+ * Creates a {@link SceneDetector} with the supplied configuration and
51
+ * yields {@link SceneBoundary} objects as visual discontinuities are
52
+ * detected. The generator completes when the input frame stream is
53
+ * exhausted.
54
+ *
55
+ * Suitable for both pre-recorded video (extract frames via ffmpeg, then
56
+ * pipe as an async iterable) and live streams (webcam, security camera,
57
+ * screen capture).
58
+ *
59
+ * @param opts - Scene detection options including the frame source.
60
+ * @returns An AsyncGenerator yielding scene boundaries as they are detected.
61
+ *
62
+ * @example
63
+ * ```ts
64
+ * // Pre-recorded video
65
+ * const boundaries: SceneBoundary[] = [];
66
+ * for await (const boundary of detectScenes({ frames: extractFrames('video.mp4') })) {
67
+ * console.log(`Scene ${boundary.index} at ${boundary.startTimeSec}s (${boundary.cutType})`);
68
+ * boundaries.push(boundary);
69
+ * }
70
+ *
71
+ * // Live webcam with custom thresholds
72
+ * for await (const boundary of detectScenes({
73
+ * frames: webcamFrameStream,
74
+ * hardCutThreshold: 0.4,
75
+ * minSceneDurationSec: 2.0,
76
+ * })) {
77
+ * console.log(`Motion detected at ${boundary.startTimeSec}s`);
78
+ * }
79
+ * ```
80
+ */
81
+ export declare function detectScenes(opts: DetectScenesOptions): AsyncGenerator<SceneBoundary>;
82
+ //# sourceMappingURL=detectScenes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectScenes.d.ts","sourceRoot":"","sources":["../../src/api/detectScenes.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,KAAK,EACL,aAAa,EAEb,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AAMjC;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAE7B;;;;OAIG;IACH,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAEjC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CACnC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAuB,YAAY,CACjC,IAAI,EAAE,mBAAmB,GACxB,cAAc,CAAC,aAAa,CAAC,CAY/B"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * @file detectScenes.ts
3
+ * Provider-agnostic scene detection for the AgentOS high-level API.
4
+ *
5
+ * Creates a {@link SceneDetector} with the supplied configuration and
6
+ * returns an AsyncGenerator that yields {@link SceneBoundary} objects
7
+ * as visual discontinuities are detected in the frame stream.
8
+ *
9
+ * This is the high-level companion to the lower-level
10
+ * {@link SceneDetector.detectScenes} method. It handles construction
11
+ * and configuration so callers only need to supply frames and optional
12
+ * thresholds.
13
+ */
14
+ import { SceneDetector } from '../core/vision/SceneDetector.js';
15
+ // ---------------------------------------------------------------------------
16
+ // Main API function
17
+ // ---------------------------------------------------------------------------
18
+ /**
19
+ * Detects scene boundaries in a stream of video frames.
20
+ *
21
+ * Creates a {@link SceneDetector} with the supplied configuration and
22
+ * yields {@link SceneBoundary} objects as visual discontinuities are
23
+ * detected. The generator completes when the input frame stream is
24
+ * exhausted.
25
+ *
26
+ * Suitable for both pre-recorded video (extract frames via ffmpeg, then
27
+ * pipe as an async iterable) and live streams (webcam, security camera,
28
+ * screen capture).
29
+ *
30
+ * @param opts - Scene detection options including the frame source.
31
+ * @returns An AsyncGenerator yielding scene boundaries as they are detected.
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * // Pre-recorded video
36
+ * const boundaries: SceneBoundary[] = [];
37
+ * for await (const boundary of detectScenes({ frames: extractFrames('video.mp4') })) {
38
+ * console.log(`Scene ${boundary.index} at ${boundary.startTimeSec}s (${boundary.cutType})`);
39
+ * boundaries.push(boundary);
40
+ * }
41
+ *
42
+ * // Live webcam with custom thresholds
43
+ * for await (const boundary of detectScenes({
44
+ * frames: webcamFrameStream,
45
+ * hardCutThreshold: 0.4,
46
+ * minSceneDurationSec: 2.0,
47
+ * })) {
48
+ * console.log(`Motion detected at ${boundary.startTimeSec}s`);
49
+ * }
50
+ * ```
51
+ */
52
+ export async function* detectScenes(opts) {
53
+ const config = {};
54
+ if (opts.methods !== undefined)
55
+ config.methods = opts.methods;
56
+ if (opts.hardCutThreshold !== undefined)
57
+ config.hardCutThreshold = opts.hardCutThreshold;
58
+ if (opts.gradualThreshold !== undefined)
59
+ config.gradualThreshold = opts.gradualThreshold;
60
+ if (opts.minSceneDurationSec !== undefined)
61
+ config.minSceneDurationSec = opts.minSceneDurationSec;
62
+ if (opts.clipProvider !== undefined)
63
+ config.clipProvider = opts.clipProvider;
64
+ const detector = new SceneDetector(config);
65
+ yield* detector.detectScenes(opts.frames);
66
+ }
67
+ //# sourceMappingURL=detectScenes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectScenes.js","sourceRoot":"","sources":["../../src/api/detectScenes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AA+DhE,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,YAAY,CACjC,IAAyB;IAEzB,MAAM,MAAM,GAAwB,EAAE,CAAC;IAEvC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;QAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9D,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS;QAAE,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;IACzF,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS;QAAE,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;IACzF,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS;QAAE,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;IAClG,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;QAAE,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IAE7E,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IAE3C,KAAK,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { GeneratedImage, ImageGenerationResult, ImageProviderOptionBag, ImageResponseFormat, ImageBackground, ImageModality, ImageOutputFormat } from '../core/images/IImageProvider.js';
2
+ import { type MediaProviderPreference } from '../core/media/ProviderPreferences.js';
2
3
  import { type AgentOSUsageLedgerOptions } from './usageLedger.js';
3
4
  /**
4
5
  * Options for a {@link generateImage} call.
@@ -50,6 +51,12 @@ export interface GenerateImageOptions {
50
51
  negativePrompt?: string;
51
52
  /** Arbitrary provider-specific options not covered by the standard fields. */
52
53
  providerOptions?: ImageProviderOptionBag | Record<string, unknown>;
54
+ /**
55
+ * Provider preferences for reordering or filtering the fallback chain.
56
+ * When supplied, the available image providers are reordered according to
57
+ * `preferred` and filtered by `blocked` before building the chain.
58
+ */
59
+ providerPreferences?: MediaProviderPreference;
53
60
  /** Optional durable usage ledger configuration for helper-level accounting. */
54
61
  usageLedger?: AgentOSUsageLedgerOptions;
55
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generateImage.d.ts","sourceRoot":"","sources":["../../src/api/generateImage.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,iBAAiB,EAClB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAsB,KAAK,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAGtF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,wEAAwE;IACxE,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,qEAAqE;IACrE,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uEAAuE;IACvE,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,eAAe,CAAC,EAAE,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnE,+EAA+E;IAC/E,WAAW,CAAC,EAAE,yBAAyB,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,qEAAqE;IACrE,KAAK,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC;CACxC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAsG5F"}
1
+ {"version":3,"file":"generateImage.d.ts","sourceRoot":"","sources":["../../src/api/generateImage.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAEV,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,iBAAiB,EAClB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAsB,KAAK,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAiHtF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,wEAAwE;IACxE,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,qEAAqE;IACrE,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uEAAuE;IACvE,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,eAAe,CAAC,EAAE,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnE;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;IAC9C,+EAA+E;IAC/E,WAAW,CAAC,EAAE,yBAAyB,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,qEAAqE;IACrE,KAAK,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC;CACxC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA4H5F"}
@@ -5,12 +5,121 @@
5
5
  * Parses a `provider:model` string, resolves media-provider credentials, and
6
6
  * dispatches the request to the appropriate image provider implementation
7
7
  * (e.g. OpenAI DALL-E, Stability AI, Replicate).
8
+ *
9
+ * When multiple image-capable providers are configured (via env vars), the
10
+ * primary provider is wrapped in a {@link FallbackImageProxy} so that a
11
+ * transient failure automatically retries on the next available provider.
8
12
  */
9
- import { createImageProvider } from '../core/images/index.js';
13
+ import { EventEmitter } from 'events';
14
+ import { createImageProvider, hasImageProviderFactory } from '../core/images/index.js';
15
+ import { FallbackImageProxy } from '../core/images/FallbackImageProxy.js';
10
16
  import { resolveModelOption, resolveMediaProvider } from './model.js';
17
+ import { resolveProviderChain, resolveProviderOrder, } from '../core/media/ProviderPreferences.js';
11
18
  import { attachUsageAttributes, toTurnMetricUsage } from './observability.js';
12
19
  import { recordAgentOSUsage } from './usageLedger.js';
13
20
  import { recordAgentOSTurnMetrics, withAgentOSSpan } from '../core/observability/otel.js';
21
+ // ---------------------------------------------------------------------------
22
+ // Image provider fallback chain builder
23
+ // ---------------------------------------------------------------------------
24
+ /**
25
+ * Env-var to provider-id mapping used to detect which image providers have
26
+ * credentials configured in the current environment. Order determines
27
+ * fallback priority (first = highest priority).
28
+ */
29
+ const IMAGE_PROVIDER_ENV_MAP = [
30
+ { envKey: 'OPENAI_API_KEY', providerId: 'openai' },
31
+ { envKey: 'STABILITY_API_KEY', providerId: 'stability' },
32
+ { envKey: 'REPLICATE_API_TOKEN', providerId: 'replicate' },
33
+ { envKey: 'BFL_API_KEY', providerId: 'bfl' },
34
+ { envKey: 'FAL_API_KEY', providerId: 'fal' },
35
+ { envKey: 'OPENROUTER_API_KEY', providerId: 'openrouter' },
36
+ { envKey: 'STABLE_DIFFUSION_LOCAL_BASE_URL', providerId: 'stable-diffusion-local' },
37
+ ];
38
+ /** Shared emitter for image fallback events (singleton per process). */
39
+ const imageFallbackEmitter = new EventEmitter();
40
+ /**
41
+ * Detects all image providers with valid credentials in the environment
42
+ * and returns their provider IDs in priority order, excluding the primary.
43
+ *
44
+ * @param primaryProviderId - The provider that was explicitly selected; it
45
+ * is excluded from the fallback list since it is already the first in line.
46
+ * @returns An array of provider IDs suitable for fallback, in priority order.
47
+ */
48
+ function detectFallbackImageProviders(primaryProviderId) {
49
+ const fallbacks = [];
50
+ for (const { envKey, providerId } of IMAGE_PROVIDER_ENV_MAP) {
51
+ if (providerId === primaryProviderId)
52
+ continue;
53
+ if (!process.env[envKey])
54
+ continue;
55
+ if (!hasImageProviderFactory(providerId))
56
+ continue;
57
+ fallbacks.push(providerId);
58
+ }
59
+ return fallbacks;
60
+ }
61
+ /**
62
+ * Detects all image providers with valid credentials in the environment.
63
+ *
64
+ * @returns Provider IDs in priority order.
65
+ */
66
+ function detectAvailableImageProviders() {
67
+ const available = [];
68
+ for (const { envKey, providerId } of IMAGE_PROVIDER_ENV_MAP) {
69
+ if (!process.env[envKey])
70
+ continue;
71
+ if (!hasImageProviderFactory(providerId))
72
+ continue;
73
+ available.push(providerId);
74
+ }
75
+ return available;
76
+ }
77
+ /**
78
+ * Creates an {@link IImageProvider} for the resolved primary provider,
79
+ * optionally wrapped in a {@link FallbackImageProxy} when an ordered
80
+ * provider chain contains additional image-capable fallbacks.
81
+ *
82
+ * @param resolved - The primary resolved provider credentials.
83
+ * @param providerChain - Optional ordered provider IDs with the primary first.
84
+ * @returns An initialised image provider (possibly a fallback proxy).
85
+ */
86
+ async function createImageProviderWithFallback(resolved, providerChain) {
87
+ const primary = createImageProvider(resolved.providerId);
88
+ await primary.initialize({
89
+ apiKey: resolved.apiKey,
90
+ baseURL: resolved.baseUrl,
91
+ defaultModelId: resolved.modelId,
92
+ });
93
+ const fallbackIds = providerChain
94
+ ? providerChain.filter((id) => id !== resolved.providerId)
95
+ : detectFallbackImageProviders(resolved.providerId);
96
+ if (fallbackIds.length === 0) {
97
+ return primary;
98
+ }
99
+ // Build and initialise fallback providers. Failures during init are
100
+ // silently skipped — the provider simply won't be part of the chain.
101
+ const chain = [primary];
102
+ for (const fbId of fallbackIds) {
103
+ try {
104
+ const { modelId: fallbackModelId } = resolveModelOption({ provider: fbId }, 'image');
105
+ const fbResolved = resolveMediaProvider(fbId, fallbackModelId);
106
+ const fb = createImageProvider(fbId);
107
+ await fb.initialize({
108
+ apiKey: fbResolved.apiKey,
109
+ baseURL: fbResolved.baseUrl,
110
+ defaultModelId: fbResolved.modelId,
111
+ });
112
+ chain.push(fb);
113
+ }
114
+ catch {
115
+ // Skip providers that fail to initialise (missing creds, etc.).
116
+ }
117
+ }
118
+ if (chain.length <= 1) {
119
+ return primary;
120
+ }
121
+ return new FallbackImageProxy(chain, imageFallbackEmitter);
122
+ }
14
123
  /**
15
124
  * Generates one or more images using a provider-agnostic `provider:model` string.
16
125
  *
@@ -38,7 +147,25 @@ export async function generateImage(opts) {
38
147
  let metricModelId;
39
148
  try {
40
149
  return await withAgentOSSpan('agentos.api.generate_image', async (span) => {
41
- const { providerId, modelId } = resolveModelOption(opts, 'image');
150
+ let providerChain;
151
+ let providerId;
152
+ let modelId;
153
+ if (!opts.provider && !opts.model) {
154
+ providerChain = resolveProviderChain(detectAvailableImageProviders(), opts.providerPreferences);
155
+ if (providerChain.length === 0) {
156
+ throw new Error('No image provider configured. Set OPENAI_API_KEY, STABILITY_API_KEY, REPLICATE_API_TOKEN, BFL_API_KEY, FAL_API_KEY, OPENROUTER_API_KEY, or STABLE_DIFFUSION_LOCAL_BASE_URL.');
157
+ }
158
+ ({ providerId, modelId } = resolveModelOption({ provider: providerChain[0] }, 'image'));
159
+ }
160
+ else {
161
+ ({ providerId, modelId } = resolveModelOption(opts, 'image'));
162
+ let fallbackIds = detectFallbackImageProviders(providerId);
163
+ if (opts.providerPreferences) {
164
+ const ordered = resolveProviderOrder([providerId, ...fallbackIds], opts.providerPreferences);
165
+ fallbackIds = ordered.filter((id) => id !== providerId);
166
+ }
167
+ providerChain = [providerId, ...fallbackIds];
168
+ }
42
169
  const resolved = resolveMediaProvider(providerId, modelId, {
43
170
  apiKey: opts.apiKey,
44
171
  baseUrl: opts.baseUrl,
@@ -47,14 +174,11 @@ export async function generateImage(opts) {
47
174
  metricModelId = resolved.modelId;
48
175
  span?.setAttribute('llm.provider', resolved.providerId);
49
176
  span?.setAttribute('llm.model', resolved.modelId);
50
- const provider = createImageProvider(resolved.providerId);
51
- await provider.initialize({
52
- apiKey: resolved.apiKey,
53
- baseURL: resolved.baseUrl,
54
- defaultModelId: resolved.modelId,
55
- });
177
+ const provider = await createImageProviderWithFallback(resolved, providerChain);
56
178
  const result = await provider.generateImage({
57
- modelId: resolved.modelId,
179
+ modelId: provider instanceof FallbackImageProxy
180
+ ? undefined
181
+ : resolved.modelId,
58
182
  prompt: opts.prompt,
59
183
  modalities: opts.modalities,
60
184
  n: opts.n,
@@ -1 +1 @@
1
- {"version":3,"file":"generateImage.js","sourceRoot":"","sources":["../../src/api/generateImage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generateImage.js","sourceRoot":"","sources":["../../src/api/generateImage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAW1E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GAErB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAkC,MAAM,kBAAkB,CAAC;AACtF,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAE1F,8EAA8E;AAC9E,wCAAwC;AACxC,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,sBAAsB,GAAkD;IAC5E,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE;IAClD,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,WAAW,EAAE;IACxD,EAAE,MAAM,EAAE,qBAAqB,EAAE,UAAU,EAAE,WAAW,EAAE;IAC1D,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE;IAC5C,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE;IAC5C,EAAE,MAAM,EAAE,oBAAoB,EAAE,UAAU,EAAE,YAAY,EAAE;IAC1D,EAAE,MAAM,EAAE,iCAAiC,EAAE,UAAU,EAAE,wBAAwB,EAAE;CACpF,CAAC;AAEF,wEAAwE;AACxE,MAAM,oBAAoB,GAAG,IAAI,YAAY,EAAE,CAAC;AAEhD;;;;;;;GAOG;AACH,SAAS,4BAA4B,CAAC,iBAAyB;IAC7D,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,sBAAsB,EAAE,CAAC;QAC5D,IAAI,UAAU,KAAK,iBAAiB;YAAE,SAAS;QAC/C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,SAAS;QACnC,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC;YAAE,SAAS;QACnD,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,SAAS,6BAA6B;IACpC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,sBAAsB,EAAE,CAAC;QAC5D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,SAAS;QACnC,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC;YAAE,SAAS;QACnD,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,+BAA+B,CAC5C,QAAoF,EACpF,aAAwB;IAExB,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACzD,MAAM,OAAO,CAAC,UAAU,CAAC;QACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,cAAc,EAAE,QAAQ,CAAC,OAAO;KACjC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,aAAa;QAC/B,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,UAAU,CAAC;QAC1D,CAAC,CAAC,4BAA4B,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAEtD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,oEAAoE;IACpE,qEAAqE;IACrE,MAAM,KAAK,GAAqB,CAAC,OAAO,CAAC,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,kBAAkB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;YACrF,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;YAC/D,MAAM,EAAE,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,EAAE,CAAC,UAAU,CAAC;gBAClB,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,cAAc,EAAE,UAAU,CAAC,OAAO;aACnC,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAAC,MAAM,CAAC;YACP,gEAAgE;QAClE,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;AAC7D,CAAC;AAgFD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAA0B;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,YAAY,GAAmB,IAAI,CAAC;IACxC,IAAI,WAA2C,CAAC;IAChD,IAAI,gBAAoC,CAAC;IACzC,IAAI,aAAiC,CAAC;IAEtC,IAAI,CAAC;QACH,OAAO,MAAM,eAAe,CAAC,4BAA4B,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACxE,IAAI,aAAmC,CAAC;YACxC,IAAI,UAAkB,CAAC;YACvB,IAAI,OAAe,CAAC;YAEpB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAClC,aAAa,GAAG,oBAAoB,CAClC,6BAA6B,EAAE,EAC/B,IAAI,CAAC,mBAAmB,CACzB,CAAC;gBACF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/B,MAAM,IAAI,KAAK,CACb,6KAA6K,CAC9K,CAAC;gBACJ,CAAC;gBACD,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;YAC1F,CAAC;iBAAM,CAAC;gBACN,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC9D,IAAI,WAAW,GAAG,4BAA4B,CAAC,UAAU,CAAC,CAAC;gBAC3D,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC7B,MAAM,OAAO,GAAG,oBAAoB,CAAC,CAAC,UAAU,EAAE,GAAG,WAAW,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;oBAC7F,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;gBAC1D,CAAC;gBACD,aAAa,GAAG,CAAC,UAAU,EAAE,GAAG,WAAW,CAAC,CAAC;YAC/C,CAAC;YAED,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,EAAE,OAAO,EAAE;gBACzD,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;YACH,gBAAgB,GAAG,QAAQ,CAAC,UAAU,CAAC;YACvC,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC;YAEjC,IAAI,EAAE,YAAY,CAAC,cAAc,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;YACxD,IAAI,EAAE,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;YAElD,MAAM,QAAQ,GAAG,MAAM,+BAA+B,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;YAEhF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC;gBAC1C,OAAO,EACL,QAAQ,YAAY,kBAAkB;oBACpC,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,QAAQ,CAAC,OAAO;gBACtB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gBACzC,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,eAAe,EAAE,IAAI,CAAC,eAAe;aACtC,CAAC,CAAC;YAEH,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,IAAI,EAAE,YAAY,CAAC,0BAA0B,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACrE,qBAAqB,CAAC,IAAI,EAAE;gBAC1B,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,YAAY;gBACxC,gBAAgB,EAAE,MAAM,CAAC,KAAK,EAAE,gBAAgB;gBAChD,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,WAAW;gBACtC,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,YAAY;aACzC,CAAC,CAAC;YAEH,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,OAAO;gBACrB,QAAQ,EAAE,MAAM,CAAC,UAAU;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,YAAY,GAAG,OAAO,CAAC;QACvB,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YACH,MAAM,kBAAkB,CAAC;gBACvB,UAAU,EAAE,gBAAgB;gBAC5B,OAAO,EAAE,aAAa;gBACtB,KAAK,EAAE,WAAW;oBAChB,CAAC,CAAC;wBACE,YAAY,EAAE,WAAW,CAAC,YAAY;wBACtC,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;wBAC9C,WAAW,EAAE,WAAW,CAAC,WAAW;wBACpC,OAAO,EAAE,WAAW,CAAC,YAAY;qBAClC;oBACH,CAAC,CAAC,SAAS;gBACb,OAAO,EAAE;oBACP,GAAG,IAAI,CAAC,WAAW;oBACnB,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,eAAe;iBACpD;aACF,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,iFAAiF;QACnF,CAAC;QACD,wBAAwB,CAAC;YACvB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YAClC,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,iBAAiB,CACtB,WAAW;gBACT,CAAC,CAAC;oBACE,YAAY,EAAE,WAAW,CAAC,YAAY;oBACtC,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;oBAC9C,WAAW,EAAE,WAAW,CAAC,WAAW;oBACpC,YAAY,EAAE,WAAW,CAAC,YAAY;iBACvC;gBACH,CAAC,CAAC,SAAS,CACd;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -0,0 +1,98 @@
1
+ import type { AudioResult, AudioOutputFormat, AudioProgressEvent } from '../core/audio/types.js';
2
+ import { type MediaProviderPreference } from '../core/media/ProviderPreferences.js';
3
+ import { type AgentOSUsageLedgerOptions } from './usageLedger.js';
4
+ /**
5
+ * Options for a {@link generateMusic} call.
6
+ *
7
+ * At minimum, a `prompt` is required. The provider is resolved from
8
+ * `opts.provider`, `opts.apiKey`, or the first music-capable env var found
9
+ * (`SUNO_API_KEY` -> `STABILITY_API_KEY` -> `REPLICATE_API_TOKEN` ->
10
+ * `FAL_API_KEY` -> local MusicGen).
11
+ */
12
+ export interface GenerateMusicOptions {
13
+ /** Text prompt describing the desired musical composition. */
14
+ prompt: string;
15
+ /**
16
+ * Explicit provider identifier (e.g. `"suno"`, `"stable-audio"`, `"musicgen-local"`).
17
+ * When omitted, auto-detection from environment variables is used.
18
+ */
19
+ provider?: string;
20
+ /**
21
+ * Model identifier within the provider (e.g. `"suno-v3.5"`,
22
+ * `"stable-audio-open-1.0"`). When omitted, the provider's default
23
+ * model is used.
24
+ */
25
+ model?: string;
26
+ /** Desired output duration in seconds. Provider limits vary. */
27
+ durationSec?: number;
28
+ /** Negative prompt describing musical elements to avoid. */
29
+ negativePrompt?: string;
30
+ /** Output audio format (e.g. `"mp3"`, `"wav"`). Defaults to provider default. */
31
+ outputFormat?: AudioOutputFormat;
32
+ /** Random seed for reproducible generation (provider-dependent). */
33
+ seed?: number;
34
+ /**
35
+ * Maximum time in milliseconds to wait for generation to complete.
36
+ * Provider-dependent — polling providers enforce this directly.
37
+ */
38
+ timeoutMs?: number;
39
+ /** Number of audio clips to generate. Defaults to 1. */
40
+ n?: number;
41
+ /**
42
+ * Optional progress callback invoked during long-running generation.
43
+ * Called with an {@link AudioProgressEvent} at each status transition.
44
+ */
45
+ onProgress?: (event: AudioProgressEvent) => void;
46
+ /** Override the provider API key instead of reading from env vars. */
47
+ apiKey?: string;
48
+ /** Optional user identifier forwarded to the provider for billing. */
49
+ userId?: string;
50
+ /** Arbitrary provider-specific options. */
51
+ providerOptions?: Record<string, unknown>;
52
+ /**
53
+ * Provider preferences for reordering or filtering the fallback chain.
54
+ * When supplied, the available providers are reordered according to
55
+ * `preferred` and filtered by `blocked` before building the chain.
56
+ */
57
+ providerPreferences?: MediaProviderPreference;
58
+ /** Optional durable usage ledger configuration for accounting. */
59
+ usageLedger?: AgentOSUsageLedgerOptions;
60
+ }
61
+ /**
62
+ * The result returned by {@link generateMusic}.
63
+ *
64
+ * Wraps the core {@link AudioResult} with a simpler, AI-SDK-style shape.
65
+ */
66
+ export interface GenerateMusicResult {
67
+ /** Model identifier reported by the provider. */
68
+ model: string;
69
+ /** Provider identifier (e.g. `"suno"`, `"stable-audio"`). */
70
+ provider: string;
71
+ /** Unix timestamp (seconds) when the audio was created. */
72
+ created: number;
73
+ /** Array of generated audio objects containing URLs or base64 data. */
74
+ audio: AudioResult['audio'];
75
+ /** Usage / billing information, if available. */
76
+ usage?: AudioResult['usage'];
77
+ }
78
+ /**
79
+ * Generates music using a provider-agnostic interface.
80
+ *
81
+ * Resolves provider credentials via explicit options or environment variable
82
+ * auto-detection, initialises the matching audio provider (optionally wrapped
83
+ * in a fallback chain), and returns a normalised {@link GenerateMusicResult}.
84
+ *
85
+ * @param opts - Music generation options.
86
+ * @returns A promise resolving to the generation result with audio data and metadata.
87
+ *
88
+ * @example
89
+ * ```ts
90
+ * const result = await generateMusic({
91
+ * prompt: 'Upbeat lo-fi hip hop beat with vinyl crackle and mellow piano',
92
+ * durationSec: 60,
93
+ * });
94
+ * console.log(result.audio[0].url);
95
+ * ```
96
+ */
97
+ export declare function generateMusic(opts: GenerateMusicOptions): Promise<GenerateMusicResult>;
98
+ //# sourceMappingURL=generateMusic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateMusic.d.ts","sourceRoot":"","sources":["../../src/api/generateMusic.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAsB,KAAK,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAyKtF;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,iFAAiF;IACjF,YAAY,CAAC,EAAE,iBAAiB,CAAC;IAEjC,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,wDAAwD;IACxD,CAAC,CAAC,EAAE,MAAM,CAAC;IAEX;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAEjD,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,2CAA2C;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE1C;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;IAE9C,kEAAkE;IAClE,WAAW,CAAC,EAAE,yBAAyB,CAAC;CACzC;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,iDAAiD;IACjD,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CAC9B;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAoJ5F"}