@framers/agentos 0.1.119 → 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 (409) 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/store/HnswSidecar.d.ts +115 -0
  252. package/dist/memory/store/HnswSidecar.d.ts.map +1 -0
  253. package/dist/memory/store/HnswSidecar.js +256 -0
  254. package/dist/memory/store/HnswSidecar.js.map +1 -0
  255. package/dist/memory/types.d.ts +15 -0
  256. package/dist/memory/types.d.ts.map +1 -1
  257. package/dist/query-router/QueryClassifier.d.ts +192 -21
  258. package/dist/query-router/QueryClassifier.d.ts.map +1 -1
  259. package/dist/query-router/QueryClassifier.js +604 -23
  260. package/dist/query-router/QueryClassifier.js.map +1 -1
  261. package/dist/query-router/QueryDispatcher.d.ts +106 -8
  262. package/dist/query-router/QueryDispatcher.d.ts.map +1 -1
  263. package/dist/query-router/QueryDispatcher.js +387 -8
  264. package/dist/query-router/QueryDispatcher.js.map +1 -1
  265. package/dist/query-router/QueryRouter.d.ts +198 -14
  266. package/dist/query-router/QueryRouter.d.ts.map +1 -1
  267. package/dist/query-router/QueryRouter.js +738 -50
  268. package/dist/query-router/QueryRouter.js.map +1 -1
  269. package/dist/query-router/index.d.ts +1 -1
  270. package/dist/query-router/index.d.ts.map +1 -1
  271. package/dist/query-router/index.js +1 -1
  272. package/dist/query-router/index.js.map +1 -1
  273. package/dist/query-router/types.d.ts +396 -3
  274. package/dist/query-router/types.d.ts.map +1 -1
  275. package/dist/query-router/types.js +35 -0
  276. package/dist/query-router/types.js.map +1 -1
  277. package/dist/rag/HydeRetriever.d.ts +108 -0
  278. package/dist/rag/HydeRetriever.d.ts.map +1 -1
  279. package/dist/rag/HydeRetriever.js +184 -0
  280. package/dist/rag/HydeRetriever.js.map +1 -1
  281. package/dist/rag/IRetrievalAugmentor.d.ts +15 -0
  282. package/dist/rag/IRetrievalAugmentor.d.ts.map +1 -1
  283. package/dist/rag/RetrievalAugmentor.d.ts +58 -0
  284. package/dist/rag/RetrievalAugmentor.d.ts.map +1 -1
  285. package/dist/rag/RetrievalAugmentor.js +200 -32
  286. package/dist/rag/RetrievalAugmentor.js.map +1 -1
  287. package/dist/rag/VectorStoreManager.js +1 -1
  288. package/dist/rag/audit/RAGAuditCollector.d.ts +7 -0
  289. package/dist/rag/audit/RAGAuditCollector.d.ts.map +1 -1
  290. package/dist/rag/audit/RAGAuditCollector.js +10 -0
  291. package/dist/rag/audit/RAGAuditCollector.js.map +1 -1
  292. package/dist/rag/audit/RAGAuditTypes.d.ts +10 -1
  293. package/dist/rag/audit/RAGAuditTypes.d.ts.map +1 -1
  294. package/dist/rag/chunking/SemanticChunker.d.ts +210 -0
  295. package/dist/rag/chunking/SemanticChunker.d.ts.map +1 -0
  296. package/dist/rag/chunking/SemanticChunker.js +460 -0
  297. package/dist/rag/chunking/SemanticChunker.js.map +1 -0
  298. package/dist/rag/chunking/index.d.ts +10 -0
  299. package/dist/rag/chunking/index.d.ts.map +1 -0
  300. package/dist/rag/chunking/index.js +10 -0
  301. package/dist/rag/chunking/index.js.map +1 -0
  302. package/dist/rag/implementations/vector_stores/PineconeVectorStore.d.ts +103 -0
  303. package/dist/rag/implementations/vector_stores/PineconeVectorStore.d.ts.map +1 -0
  304. package/dist/rag/implementations/vector_stores/PineconeVectorStore.js +315 -0
  305. package/dist/rag/implementations/vector_stores/PineconeVectorStore.js.map +1 -0
  306. package/dist/rag/implementations/vector_stores/PostgresVectorStore.d.ts +107 -0
  307. package/dist/rag/implementations/vector_stores/PostgresVectorStore.d.ts.map +1 -0
  308. package/dist/rag/implementations/vector_stores/PostgresVectorStore.js +438 -0
  309. package/dist/rag/implementations/vector_stores/PostgresVectorStore.js.map +1 -0
  310. package/dist/rag/index.d.ts +15 -1
  311. package/dist/rag/index.d.ts.map +1 -1
  312. package/dist/rag/index.js +32 -0
  313. package/dist/rag/index.js.map +1 -1
  314. package/dist/rag/migration/MigrationEngine.d.ts +47 -0
  315. package/dist/rag/migration/MigrationEngine.d.ts.map +1 -0
  316. package/dist/rag/migration/MigrationEngine.js +168 -0
  317. package/dist/rag/migration/MigrationEngine.js.map +1 -0
  318. package/dist/rag/migration/adapters/PineconeSourceAdapter.d.ts +23 -0
  319. package/dist/rag/migration/adapters/PineconeSourceAdapter.d.ts.map +1 -0
  320. package/dist/rag/migration/adapters/PineconeSourceAdapter.js +63 -0
  321. package/dist/rag/migration/adapters/PineconeSourceAdapter.js.map +1 -0
  322. package/dist/rag/migration/adapters/PostgresSourceAdapter.d.ts +30 -0
  323. package/dist/rag/migration/adapters/PostgresSourceAdapter.d.ts.map +1 -0
  324. package/dist/rag/migration/adapters/PostgresSourceAdapter.js +71 -0
  325. package/dist/rag/migration/adapters/PostgresSourceAdapter.js.map +1 -0
  326. package/dist/rag/migration/adapters/PostgresTargetAdapter.d.ts +38 -0
  327. package/dist/rag/migration/adapters/PostgresTargetAdapter.d.ts.map +1 -0
  328. package/dist/rag/migration/adapters/PostgresTargetAdapter.js +114 -0
  329. package/dist/rag/migration/adapters/PostgresTargetAdapter.js.map +1 -0
  330. package/dist/rag/migration/adapters/QdrantSourceAdapter.d.ts +36 -0
  331. package/dist/rag/migration/adapters/QdrantSourceAdapter.d.ts.map +1 -0
  332. package/dist/rag/migration/adapters/QdrantSourceAdapter.js +109 -0
  333. package/dist/rag/migration/adapters/QdrantSourceAdapter.js.map +1 -0
  334. package/dist/rag/migration/adapters/QdrantTargetAdapter.d.ts +35 -0
  335. package/dist/rag/migration/adapters/QdrantTargetAdapter.d.ts.map +1 -0
  336. package/dist/rag/migration/adapters/QdrantTargetAdapter.js +110 -0
  337. package/dist/rag/migration/adapters/QdrantTargetAdapter.js.map +1 -0
  338. package/dist/rag/migration/adapters/SqliteSourceAdapter.d.ts +37 -0
  339. package/dist/rag/migration/adapters/SqliteSourceAdapter.d.ts.map +1 -0
  340. package/dist/rag/migration/adapters/SqliteSourceAdapter.js +72 -0
  341. package/dist/rag/migration/adapters/SqliteSourceAdapter.js.map +1 -0
  342. package/dist/rag/migration/adapters/SqliteTargetAdapter.d.ts +47 -0
  343. package/dist/rag/migration/adapters/SqliteTargetAdapter.d.ts.map +1 -0
  344. package/dist/rag/migration/adapters/SqliteTargetAdapter.js +93 -0
  345. package/dist/rag/migration/adapters/SqliteTargetAdapter.js.map +1 -0
  346. package/dist/rag/migration/types.d.ts +108 -0
  347. package/dist/rag/migration/types.d.ts.map +1 -0
  348. package/dist/rag/migration/types.js +11 -0
  349. package/dist/rag/migration/types.js.map +1 -0
  350. package/dist/rag/multimodal/MultimodalIndexer.d.ts +35 -0
  351. package/dist/rag/multimodal/MultimodalIndexer.d.ts.map +1 -1
  352. package/dist/rag/multimodal/MultimodalIndexer.js +66 -1
  353. package/dist/rag/multimodal/MultimodalIndexer.js.map +1 -1
  354. package/dist/rag/multimodal/types.d.ts +24 -0
  355. package/dist/rag/multimodal/types.d.ts.map +1 -1
  356. package/dist/rag/raptor/RaptorTree.d.ts +268 -0
  357. package/dist/rag/raptor/RaptorTree.d.ts.map +1 -0
  358. package/dist/rag/raptor/RaptorTree.js +443 -0
  359. package/dist/rag/raptor/RaptorTree.js.map +1 -0
  360. package/dist/rag/raptor/index.d.ts +11 -0
  361. package/dist/rag/raptor/index.d.ts.map +1 -0
  362. package/dist/rag/raptor/index.js +11 -0
  363. package/dist/rag/raptor/index.js.map +1 -0
  364. package/dist/rag/reranking/providers/CohereReranker.js.map +1 -1
  365. package/dist/rag/search/BM25Index.d.ts +282 -0
  366. package/dist/rag/search/BM25Index.d.ts.map +1 -0
  367. package/dist/rag/search/BM25Index.js +344 -0
  368. package/dist/rag/search/BM25Index.js.map +1 -0
  369. package/dist/rag/search/HybridSearcher.d.ts +198 -0
  370. package/dist/rag/search/HybridSearcher.d.ts.map +1 -0
  371. package/dist/rag/search/HybridSearcher.js +316 -0
  372. package/dist/rag/search/HybridSearcher.js.map +1 -0
  373. package/dist/rag/search/index.d.ts +12 -0
  374. package/dist/rag/search/index.d.ts.map +1 -0
  375. package/dist/rag/search/index.js +12 -0
  376. package/dist/rag/search/index.js.map +1 -0
  377. package/dist/rag/setup/DockerDetector.d.ts +67 -0
  378. package/dist/rag/setup/DockerDetector.d.ts.map +1 -0
  379. package/dist/rag/setup/DockerDetector.js +125 -0
  380. package/dist/rag/setup/DockerDetector.js.map +1 -0
  381. package/dist/rag/setup/PostgresSetup.d.ts +20 -0
  382. package/dist/rag/setup/PostgresSetup.d.ts.map +1 -0
  383. package/dist/rag/setup/PostgresSetup.js +133 -0
  384. package/dist/rag/setup/PostgresSetup.js.map +1 -0
  385. package/dist/rag/setup/QdrantSetup.d.ts +26 -0
  386. package/dist/rag/setup/QdrantSetup.d.ts.map +1 -0
  387. package/dist/rag/setup/QdrantSetup.js +96 -0
  388. package/dist/rag/setup/QdrantSetup.js.map +1 -0
  389. package/dist/rag/setup/types.d.ts +55 -0
  390. package/dist/rag/setup/types.d.ts.map +1 -0
  391. package/dist/rag/setup/types.js +6 -0
  392. package/dist/rag/setup/types.js.map +1 -0
  393. package/dist/rag/unified/UnifiedRetriever.d.ts +472 -0
  394. package/dist/rag/unified/UnifiedRetriever.d.ts.map +1 -0
  395. package/dist/rag/unified/UnifiedRetriever.js +887 -0
  396. package/dist/rag/unified/UnifiedRetriever.js.map +1 -0
  397. package/dist/rag/unified/index.d.ts +24 -0
  398. package/dist/rag/unified/index.d.ts.map +1 -0
  399. package/dist/rag/unified/index.js +23 -0
  400. package/dist/rag/unified/index.js.map +1 -0
  401. package/dist/rag/unified/types.d.ts +546 -0
  402. package/dist/rag/unified/types.d.ts.map +1 -0
  403. package/dist/rag/unified/types.js +177 -0
  404. package/dist/rag/unified/types.js.map +1 -0
  405. package/dist/speech/providers/AssemblyAISTTProvider.js.map +1 -1
  406. package/dist/speech/providers/AzureSpeechSTTProvider.js.map +1 -1
  407. package/dist/speech/providers/BuiltInAdaptiveVadProvider.d.ts +1 -1
  408. package/dist/speech/providers/DeepgramBatchSTTProvider.js.map +1 -1
  409. package/package.json +5 -1
@@ -0,0 +1,504 @@
1
+ /**
2
+ * @fileoverview IProvider implementation that invokes the Claude Code CLI
3
+ * as a subprocess, allowing users to leverage their personal Max subscription
4
+ * without an API key. Completely separate from the `anthropic` provider
5
+ * (which uses ANTHROPIC_API_KEY for pay-per-token access).
6
+ *
7
+ * Two-class architecture:
8
+ * - **ClaudeCodeProvider** (this file) — IProvider contract, message formatting,
9
+ * tool schema injection, response mapping. Knows nothing about subprocesses.
10
+ * - **ClaudeCodeCLIBridge** — subprocess lifecycle via execa. Knows nothing
11
+ * about LLM semantics.
12
+ *
13
+ * @module agentos/core/llm/providers/implementations/ClaudeCodeProvider
14
+ * @see ClaudeCodeCLIBridge
15
+ */
16
+ import { ClaudeCodeCLIBridge } from './ClaudeCodeCLIBridge.js';
17
+ import { ClaudeCodeProviderError } from '../errors/ClaudeCodeProviderError.js';
18
+ /* ------------------------------------------------------------------ */
19
+ /* Static model catalog */
20
+ /* ------------------------------------------------------------------ */
21
+ /**
22
+ * Static catalog of Claude models available through Claude Code CLI.
23
+ * All prices are $0 because the user is on a subscription.
24
+ */
25
+ const CLAUDE_CODE_MODELS = [
26
+ {
27
+ modelId: 'claude-opus-4-20250514',
28
+ providerId: 'claude-code-cli',
29
+ displayName: 'Claude Opus 4',
30
+ description: 'Most capable Claude model — deep analysis, complex reasoning, nuanced content',
31
+ capabilities: ['chat', 'vision_input', 'tool_use'],
32
+ contextWindowSize: 200000,
33
+ inputTokenLimit: 200000,
34
+ outputTokenLimit: 32000,
35
+ pricePer1MTokensInput: 0,
36
+ pricePer1MTokensOutput: 0,
37
+ supportsStreaming: true,
38
+ isDefaultModel: false,
39
+ },
40
+ {
41
+ modelId: 'claude-sonnet-4-20250514',
42
+ providerId: 'claude-code-cli',
43
+ displayName: 'Claude Sonnet 4',
44
+ description: 'Balanced performance and speed — ideal for most tasks',
45
+ capabilities: ['chat', 'vision_input', 'tool_use'],
46
+ contextWindowSize: 200000,
47
+ inputTokenLimit: 200000,
48
+ outputTokenLimit: 16000,
49
+ pricePer1MTokensInput: 0,
50
+ pricePer1MTokensOutput: 0,
51
+ supportsStreaming: true,
52
+ isDefaultModel: true,
53
+ },
54
+ {
55
+ modelId: 'claude-haiku-4-5-20251001',
56
+ providerId: 'claude-code-cli',
57
+ displayName: 'Claude Haiku 4.5',
58
+ description: 'Fastest Claude model — great for lightweight tasks and high throughput',
59
+ capabilities: ['chat', 'vision_input', 'tool_use'],
60
+ contextWindowSize: 200000,
61
+ inputTokenLimit: 200000,
62
+ outputTokenLimit: 8192,
63
+ pricePer1MTokensInput: 0,
64
+ pricePer1MTokensOutput: 0,
65
+ supportsStreaming: true,
66
+ isDefaultModel: false,
67
+ },
68
+ ];
69
+ /* ------------------------------------------------------------------ */
70
+ /* JSON schema for structured tool-calling responses */
71
+ /* ------------------------------------------------------------------ */
72
+ /**
73
+ * JSON schema passed to `--json-schema` when tools are present.
74
+ * Forces the model to respond with either `{ response_type: "text" }`
75
+ * or `{ response_type: "tool_calls", tool_calls: [...] }`.
76
+ */
77
+ const TOOL_RESPONSE_SCHEMA = {
78
+ type: 'object',
79
+ required: ['response_type'],
80
+ properties: {
81
+ response_type: { enum: ['text', 'tool_calls'] },
82
+ text: { type: 'string' },
83
+ tool_calls: {
84
+ type: 'array',
85
+ items: {
86
+ type: 'object',
87
+ required: ['id', 'name', 'arguments'],
88
+ properties: {
89
+ id: { type: 'string' },
90
+ name: { type: 'string' },
91
+ arguments: { type: 'object' },
92
+ },
93
+ },
94
+ },
95
+ },
96
+ };
97
+ /* ------------------------------------------------------------------ */
98
+ /* Provider */
99
+ /* ------------------------------------------------------------------ */
100
+ /**
101
+ * LLM provider that wraps the locally-installed Claude Code CLI.
102
+ * Users authenticate Claude Code separately (via `claude` in terminal);
103
+ * this provider detects that installation and uses it for completions.
104
+ *
105
+ * No API key required — the user's Max subscription handles billing.
106
+ * `costUSD` is always 0 since there is no per-token charge.
107
+ */
108
+ export class ClaudeCodeProvider {
109
+ constructor() {
110
+ this.providerId = 'claude-code-cli';
111
+ this.isInitialized = false;
112
+ this.bridge = new ClaudeCodeCLIBridge();
113
+ }
114
+ /* ---- Lifecycle ------------------------------------------------- */
115
+ /**
116
+ * Initialize the provider by verifying that Claude Code CLI is
117
+ * installed and authenticated. Fails fast with actionable guidance
118
+ * if either check fails.
119
+ */
120
+ async initialize(config) {
121
+ this.config = {
122
+ defaultModelId: 'claude-sonnet-4-20250514',
123
+ requestTimeout: 120000,
124
+ ...config,
125
+ };
126
+ this.defaultModelId = this.config.defaultModelId;
127
+ /* 1. Check CLI is installed */
128
+ const installCheck = await this.bridge.checkBinaryInstalled();
129
+ if (!installCheck.installed) {
130
+ throw new ClaudeCodeProviderError('Claude Code CLI is not installed.', 'BINARY_NOT_FOUND', 'Install Claude Code: npm install -g @anthropic-ai/claude-code — or download from https://claude.ai/download\n\nThen log in by running "claude" in your terminal.\n\nAlternatively, switch to a different provider:\n wunderland login', false);
131
+ }
132
+ /* 2. Check authentication */
133
+ const isAuth = await this.bridge.checkAuthenticated();
134
+ if (!isAuth) {
135
+ throw new ClaudeCodeProviderError('Claude Code is installed but not logged in.', 'NOT_AUTHENTICATED', 'Open your terminal and run:\n claude\n\nComplete the login flow with your Anthropic account, then restart your agent.', false);
136
+ }
137
+ this.isInitialized = true;
138
+ }
139
+ /** Clean shutdown — marks provider as uninitialized. */
140
+ async shutdown() {
141
+ this.isInitialized = false;
142
+ }
143
+ /* ---- Completions ---------------------------------------------- */
144
+ /**
145
+ * Generate a single completion by spawning `claude --bare -p`.
146
+ *
147
+ * When `options.tools` is provided, tool schemas are injected into the
148
+ * system prompt and `--json-schema` enforces structured output for
149
+ * reliable tool call parsing. Falls back to text on parse failure.
150
+ */
151
+ async generateCompletion(modelId, messages, options) {
152
+ this.ensureInitialized();
153
+ const hasTools = options.tools && options.tools.length > 0 && options.toolChoice !== 'none';
154
+ const { systemPrompt, conversationPrompt } = this.formatMessages(messages);
155
+ const fullSystemPrompt = hasTools
156
+ ? this.injectToolSchemas(systemPrompt, options.tools, options.toolChoice)
157
+ : systemPrompt;
158
+ const bridgeOpts = {
159
+ prompt: conversationPrompt,
160
+ systemPrompt: fullSystemPrompt || undefined,
161
+ model: modelId,
162
+ jsonSchema: hasTools ? TOOL_RESPONSE_SCHEMA : undefined,
163
+ timeout: this.config.requestTimeout,
164
+ abortSignal: options.abortSignal,
165
+ };
166
+ const result = await this.bridge.execute(bridgeOpts);
167
+ if (result.isError) {
168
+ throw new ClaudeCodeProviderError(`Claude Code returned an error: ${result.result}`, 'CRASHED', 'Try running "claude --bare -p test" manually to diagnose.', true);
169
+ }
170
+ /* Parse tool call response if tools were requested */
171
+ if (hasTools) {
172
+ try {
173
+ const parsed = JSON.parse(result.result);
174
+ if (parsed.response_type === 'tool_calls' && Array.isArray(parsed.tool_calls)) {
175
+ return this.buildToolCallResponse(parsed.tool_calls, result, undefined, undefined, modelId);
176
+ }
177
+ /* Model chose text response */
178
+ return this.buildTextResponse(parsed.text ?? result.result, result, undefined, undefined, modelId);
179
+ }
180
+ catch {
181
+ /* SCHEMA_PARSE_FAILED — retry without schema */
182
+ const retryOpts = { ...bridgeOpts, jsonSchema: undefined };
183
+ const retryResult = await this.bridge.execute(retryOpts);
184
+ return this.buildTextResponse(retryResult.result, retryResult, undefined, undefined, modelId);
185
+ }
186
+ }
187
+ return this.buildTextResponse(result.result, result, undefined, undefined, modelId);
188
+ }
189
+ /**
190
+ * Stream a completion by spawning `claude --bare -p --output-format stream-json`.
191
+ *
192
+ * Text-only turns get full token-by-token streaming. Tool-calling turns
193
+ * stream progress events for UX feedback, then yield a single final
194
+ * response with parsed tool calls.
195
+ */
196
+ async *generateCompletionStream(modelId, messages, options) {
197
+ this.ensureInitialized();
198
+ const hasTools = options.tools && options.tools.length > 0 && options.toolChoice !== 'none';
199
+ const { systemPrompt, conversationPrompt } = this.formatMessages(messages);
200
+ const fullSystemPrompt = hasTools
201
+ ? this.injectToolSchemas(systemPrompt, options.tools, options.toolChoice)
202
+ : systemPrompt;
203
+ const bridgeOpts = {
204
+ prompt: conversationPrompt,
205
+ systemPrompt: fullSystemPrompt || undefined,
206
+ model: modelId,
207
+ jsonSchema: hasTools ? TOOL_RESPONSE_SCHEMA : undefined,
208
+ timeout: this.config.requestTimeout,
209
+ abortSignal: options.abortSignal,
210
+ };
211
+ let accumulatedText = '';
212
+ const responseId = `cc-${Date.now()}`;
213
+ let finalUsage;
214
+ let emittedFinal = false;
215
+ try {
216
+ for await (const event of this.bridge.stream(bridgeOpts)) {
217
+ switch (event.type) {
218
+ case 'text_delta':
219
+ accumulatedText += event.text;
220
+ yield {
221
+ id: responseId,
222
+ object: 'chat.completion.chunk',
223
+ created: Date.now(),
224
+ modelId,
225
+ choices: [{
226
+ index: 0,
227
+ message: { role: 'assistant', content: accumulatedText },
228
+ finishReason: null,
229
+ }],
230
+ responseTextDelta: event.text,
231
+ isFinal: false,
232
+ };
233
+ break;
234
+ case 'result': {
235
+ const usage = event.usage;
236
+ finalUsage = usage
237
+ ? { promptTokens: usage.input_tokens, completionTokens: usage.output_tokens, totalTokens: usage.input_tokens + usage.output_tokens, costUSD: 0 }
238
+ : { totalTokens: 0, costUSD: 0 };
239
+ const finalText = event.result || accumulatedText;
240
+ /* Try parsing as tool call response */
241
+ if (hasTools) {
242
+ try {
243
+ const parsed = JSON.parse(finalText);
244
+ if (parsed.response_type === 'tool_calls' && Array.isArray(parsed.tool_calls)) {
245
+ emittedFinal = true;
246
+ yield this.buildToolCallResponse(parsed.tool_calls, { sessionId: event.sessionId, usage: event.usage }, responseId, finalUsage, modelId);
247
+ return;
248
+ }
249
+ }
250
+ catch { /* fall through to text */ }
251
+ }
252
+ emittedFinal = true;
253
+ yield this.buildTextResponse(finalText, { sessionId: event.sessionId, usage: event.usage }, responseId, finalUsage, modelId);
254
+ return;
255
+ }
256
+ case 'error':
257
+ emittedFinal = true;
258
+ yield this.buildStreamErrorResponse(`Claude Code stream error: ${event.error}`, modelId, responseId, finalUsage);
259
+ return;
260
+ }
261
+ }
262
+ }
263
+ catch (error) {
264
+ emittedFinal = true;
265
+ yield this.buildStreamErrorResponse(error?.message ?? 'Claude Code stream failed.', modelId, responseId, finalUsage, error?.code, error);
266
+ return;
267
+ }
268
+ if (!emittedFinal) {
269
+ yield this.buildTextResponse(accumulatedText, {}, responseId, finalUsage, modelId);
270
+ }
271
+ }
272
+ /* ---- Embeddings (not supported) -------------------------------- */
273
+ /** Claude Code CLI does not support embeddings — throws immediately. */
274
+ async generateEmbeddings(_modelId, _texts, _options) {
275
+ throw new ClaudeCodeProviderError('Claude Code CLI does not support embeddings. Use a different provider (OpenAI, Ollama, etc.) for embedding operations.', 'EMBEDDINGS_NOT_SUPPORTED', 'Configure an additional provider with embedding support: wunderland login', false);
276
+ }
277
+ /* ---- Model catalog -------------------------------------------- */
278
+ /** Returns the static Claude model catalog (Opus, Sonnet, Haiku). */
279
+ async listAvailableModels() {
280
+ return [...CLAUDE_CODE_MODELS];
281
+ }
282
+ /** Look up a specific model by ID from the static catalog. */
283
+ async getModelInfo(modelId) {
284
+ return CLAUDE_CODE_MODELS.find(m => m.modelId === modelId);
285
+ }
286
+ /* ---- Health check --------------------------------------------- */
287
+ /**
288
+ * Structured health check for `wunderland doctor`.
289
+ * Returns installation status, version, path, and auth state.
290
+ */
291
+ async checkHealth() {
292
+ const installCheck = await this.bridge.checkBinaryInstalled();
293
+ if (!installCheck.installed) {
294
+ return {
295
+ isHealthy: false,
296
+ details: {
297
+ cliInstalled: false,
298
+ error: 'BINARY_NOT_FOUND',
299
+ guidance: 'Install Claude Code: npm install -g @anthropic-ai/claude-code — or download from https://claude.ai/download',
300
+ },
301
+ };
302
+ }
303
+ const isAuth = await this.bridge.checkAuthenticated();
304
+ return {
305
+ isHealthy: isAuth,
306
+ details: {
307
+ cliInstalled: true,
308
+ cliVersion: installCheck.version,
309
+ cliPath: installCheck.binaryPath,
310
+ authenticated: isAuth,
311
+ ...(isAuth ? {} : {
312
+ error: 'NOT_AUTHENTICATED',
313
+ guidance: 'Run "claude" in your terminal to log in.',
314
+ }),
315
+ },
316
+ };
317
+ }
318
+ /* ---- Private: message formatting ------------------------------ */
319
+ /**
320
+ * Split ChatMessage[] into a system prompt string and a conversation
321
+ * prompt serialized as XML.
322
+ */
323
+ formatMessages(messages) {
324
+ let systemPrompt = '';
325
+ const nonSystemMessages = [];
326
+ for (const msg of messages) {
327
+ if (msg.role === 'system') {
328
+ systemPrompt += (typeof msg.content === 'string' ? msg.content : this.contentPartsToText(msg.content)) + '\n';
329
+ }
330
+ else {
331
+ nonSystemMessages.push(msg);
332
+ }
333
+ }
334
+ const conversationPrompt = this.serializeConversationXml(nonSystemMessages);
335
+ return { systemPrompt: systemPrompt.trim(), conversationPrompt };
336
+ }
337
+ /**
338
+ * Serialize non-system messages as XML for piping to Claude Code stdin.
339
+ * Single user messages are passed through as plain text (no XML wrapper).
340
+ */
341
+ serializeConversationXml(messages) {
342
+ if (messages.length === 0)
343
+ return '';
344
+ if (messages.length === 1 && messages[0].role === 'user') {
345
+ /* Single user message — no XML wrapper needed */
346
+ return typeof messages[0].content === 'string'
347
+ ? messages[0].content
348
+ : this.contentPartsToText(messages[0].content);
349
+ }
350
+ const lines = ['<conversation>'];
351
+ for (const msg of messages) {
352
+ const content = typeof msg.content === 'string'
353
+ ? msg.content
354
+ : this.contentPartsToText(msg.content);
355
+ if (msg.role === 'tool') {
356
+ lines.push(`<message role="tool" tool_call_id="${msg.tool_call_id ?? ''}">${content}</message>`);
357
+ }
358
+ else if (msg.role === 'assistant' && msg.tool_calls?.length) {
359
+ const toolCallXml = msg.tool_calls.map(tc => `<tool_call name="${tc.function.name}">${tc.function.arguments}</tool_call>`).join('');
360
+ lines.push(`<message role="assistant">${toolCallXml}</message>`);
361
+ }
362
+ else {
363
+ lines.push(`<message role="${msg.role}">${content}</message>`);
364
+ }
365
+ }
366
+ lines.push('</conversation>');
367
+ return lines.join('\n');
368
+ }
369
+ /** Convert MessageContentPart[] to plain text (best-effort). */
370
+ contentPartsToText(content) {
371
+ if (!content)
372
+ return '';
373
+ if (typeof content === 'string')
374
+ return content;
375
+ if (Array.isArray(content)) {
376
+ return content
377
+ .filter((p) => p.type === 'text')
378
+ .map((p) => p.text)
379
+ .join('');
380
+ }
381
+ return String(content);
382
+ }
383
+ /* ---- Private: tool schema injection --------------------------- */
384
+ /**
385
+ * Append tool schemas and calling instructions to the system prompt.
386
+ * Tools are formatted as XML blocks that Claude handles natively.
387
+ */
388
+ injectToolSchemas(systemPrompt, tools, toolChoice) {
389
+ const toolsXml = tools.map(t => {
390
+ const fn = t.function ?? t;
391
+ return `<tool name="${fn.name}" description="${fn.description ?? ''}">\n <parameters>${JSON.stringify(fn.parameters ?? {})}</parameters>\n</tool>`;
392
+ }).join('\n');
393
+ const choiceInstruction = this.toolChoiceInstruction(toolChoice);
394
+ return `${systemPrompt}
395
+
396
+ <available_tools>
397
+ ${toolsXml}
398
+ </available_tools>
399
+
400
+ <instructions>
401
+ ${choiceInstruction}
402
+ When calling tools, respond with response_type "tool_calls" and include an array of tool calls.
403
+ When responding with text, respond with response_type "text" and include your response in the "text" field.
404
+ Each tool call must include "id" (unique string), "name" (tool name), and "arguments" (object matching the tool's parameters schema).
405
+ </instructions>`;
406
+ }
407
+ /** Map toolChoice to a natural language instruction. */
408
+ toolChoiceInstruction(toolChoice) {
409
+ if (!toolChoice || toolChoice === 'auto') {
410
+ return 'Use tools if helpful to answer the user, otherwise respond with text.';
411
+ }
412
+ if (toolChoice === 'required') {
413
+ return 'You MUST call at least one tool. Do not respond with text only.';
414
+ }
415
+ if (toolChoice === 'none') {
416
+ return 'Do not use any tools. Respond with text only.';
417
+ }
418
+ if (typeof toolChoice === 'object' && toolChoice.function?.name) {
419
+ return `You MUST call the tool named "${toolChoice.function.name}".`;
420
+ }
421
+ return 'Use tools if helpful to answer the user, otherwise respond with text.';
422
+ }
423
+ /* ---- Private: response builders ------------------------------- */
424
+ /** Build a text-only ModelCompletionResponse. */
425
+ buildTextResponse(text, result, responseId, usage, modelId) {
426
+ const u = usage ?? this.buildUsage(result.usage);
427
+ return {
428
+ id: responseId ?? `cc-${result.sessionId ?? Date.now()}`,
429
+ object: 'chat.completion',
430
+ created: Date.now(),
431
+ modelId: modelId ?? this.defaultModelId ?? 'claude-sonnet-4-20250514',
432
+ choices: [{
433
+ index: 0,
434
+ message: { role: 'assistant', content: text },
435
+ finishReason: 'stop',
436
+ }],
437
+ usage: u,
438
+ isFinal: true,
439
+ };
440
+ }
441
+ /** Build a tool-call ModelCompletionResponse. */
442
+ buildToolCallResponse(toolCalls, result, responseId, usage, modelId) {
443
+ const u = usage ?? this.buildUsage(result.usage);
444
+ return {
445
+ id: responseId ?? `cc-${result.sessionId ?? Date.now()}`,
446
+ object: 'chat.completion',
447
+ created: Date.now(),
448
+ modelId: modelId ?? this.defaultModelId ?? 'claude-sonnet-4-20250514',
449
+ choices: [{
450
+ index: 0,
451
+ message: {
452
+ role: 'assistant',
453
+ content: null,
454
+ tool_calls: toolCalls.map(tc => ({
455
+ id: tc.id,
456
+ type: 'function',
457
+ function: {
458
+ name: tc.name,
459
+ arguments: typeof tc.arguments === 'string' ? tc.arguments : JSON.stringify(tc.arguments),
460
+ },
461
+ })),
462
+ },
463
+ finishReason: 'tool_calls',
464
+ }],
465
+ usage: u,
466
+ isFinal: true,
467
+ };
468
+ }
469
+ /** Build a terminal streaming error chunk instead of throwing mid-stream. */
470
+ buildStreamErrorResponse(message, modelId, responseId, usage, code, details) {
471
+ return {
472
+ id: responseId,
473
+ object: 'chat.completion.chunk',
474
+ created: Date.now(),
475
+ modelId,
476
+ choices: [],
477
+ usage,
478
+ error: {
479
+ message,
480
+ ...(code === undefined ? {} : { code }),
481
+ ...(details === undefined ? {} : { details }),
482
+ },
483
+ isFinal: true,
484
+ };
485
+ }
486
+ /** Convert raw usage from CLI bridge to ModelUsage. Always costUSD: 0. */
487
+ buildUsage(raw) {
488
+ if (!raw)
489
+ return { totalTokens: 0, costUSD: 0 };
490
+ return {
491
+ promptTokens: raw.input_tokens,
492
+ completionTokens: raw.output_tokens,
493
+ totalTokens: raw.input_tokens + raw.output_tokens,
494
+ costUSD: 0,
495
+ };
496
+ }
497
+ /** Guard — throws if provider is not initialized. */
498
+ ensureInitialized() {
499
+ if (!this.isInitialized) {
500
+ throw new ClaudeCodeProviderError('ClaudeCodeProvider is not initialized. Call initialize() first.', 'UNKNOWN', 'Ensure the provider is initialized before making API calls.', false);
501
+ }
502
+ }
503
+ }
504
+ //# sourceMappingURL=ClaudeCodeProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClaudeCodeProvider.js","sourceRoot":"","sources":["../../../../../src/core/llm/providers/implementations/ClaudeCodeProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @fileoverview Gemini CLI bridge — extends the generalized
3
+ * {@link CLISubprocessBridge} with Gemini-specific flag assembly,
4
+ * error classification, stream event parsing, and temp-file system prompts.
5
+ *
6
+ * Key differences from Claude Code:
7
+ * - No `--system-prompt` flag → uses temp file + `GEMINI_SYSTEM_MD` env var
8
+ * - No `--json-schema` flag → tool calling handled at provider level via XML prompts
9
+ * - No `--bare` or `--max-turns` flags
10
+ * - Uses `-p` (same as Claude's `-p`) and `--output-format json|stream-json`
11
+ *
12
+ * @module agentos/core/llm/providers/implementations/GeminiCLIBridge
13
+ * @see CLISubprocessBridge
14
+ * @see GeminiCLIProvider
15
+ */
16
+ import { CLISubprocessBridge } from '../../../../core/subprocess/CLISubprocessBridge';
17
+ import { GeminiCLIProviderError } from '../errors/GeminiCLIProviderError';
18
+ import type { BridgeOptions, BridgeResult, StreamEvent, OutputFormat } from '../../../../core/subprocess/types';
19
+ export type { BridgeOptions, BridgeResult, StreamEvent } from '../../../../core/subprocess/types';
20
+ export type { InstallCheckResult } from '../../../../core/subprocess/types';
21
+ /**
22
+ * Gemini CLI subprocess bridge.
23
+ *
24
+ * Extends {@link CLISubprocessBridge} to implement:
25
+ * - Flag assembly: `-p`, `--output-format`, `-m`
26
+ * - System prompt via temp file + `GEMINI_SYSTEM_MD` env var
27
+ * - Error classification: auth, rate-limit, timeout, quota errors
28
+ * - Stream event parsing: Gemini's stream-json format
29
+ */
30
+ export declare class GeminiCLIBridge extends CLISubprocessBridge {
31
+ protected readonly binaryName = "gemini";
32
+ protected buildArgs(options: BridgeOptions, format: OutputFormat): string[];
33
+ protected buildAuthCheckArgs(): {
34
+ args: string[];
35
+ stdin: string;
36
+ };
37
+ /**
38
+ * Execute with a system prompt injected via a temporary file.
39
+ * Writes the system prompt to a temp .md file, sets `GEMINI_SYSTEM_MD`
40
+ * in the subprocess env, runs the command, and cleans up.
41
+ *
42
+ * @param options — bridge options (systemPrompt will be written to temp file)
43
+ * @returns bridge result
44
+ */
45
+ executeWithSystemPrompt(options: BridgeOptions): Promise<BridgeResult>;
46
+ /**
47
+ * Stream with a system prompt injected via a temporary file.
48
+ *
49
+ * @param options — bridge options (systemPrompt will be written to temp file)
50
+ * @yields stream events
51
+ */
52
+ streamWithSystemPrompt(options: BridgeOptions): AsyncGenerator<StreamEvent, void, undefined>;
53
+ /**
54
+ * Helper: write system prompt to temp file, run callback with env, clean up.
55
+ */
56
+ private withSystemPromptFile;
57
+ protected parseStreamEvent(raw: any): StreamEvent | null;
58
+ protected classifyError(error: any): GeminiCLIProviderError;
59
+ }
60
+ //# sourceMappingURL=GeminiCLIBridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeminiCLIBridge.d.ts","sourceRoot":"","sources":["../../../../../src/core/llm/providers/implementations/GeminiCLIBridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAGhH,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAClG,YAAY,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAE5E;;;;;;;;GAQG;AACH,qBAAa,eAAgB,SAAQ,mBAAmB;IACtD,SAAS,CAAC,QAAQ,CAAC,UAAU,YAAY;IAIzC,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE;IAmB3E,SAAS,CAAC,kBAAkB,IAAI;QAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IASjE;;;;;;;OAOG;IACG,uBAAuB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAU5E;;;;;OAKG;IACI,sBAAsB,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC;IAgBnG;;OAEG;YACW,oBAAoB;IAelC,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,GAAG,IAAI;IA6CxD,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,sBAAsB;CAgF5D"}