@framers/agentos 0.1.120 → 0.1.122

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 (436) 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/emergent/AdaptPersonalityTool.d.ts +158 -0
  233. package/dist/emergent/AdaptPersonalityTool.d.ts.map +1 -0
  234. package/dist/emergent/AdaptPersonalityTool.js +190 -0
  235. package/dist/emergent/AdaptPersonalityTool.js.map +1 -0
  236. package/dist/emergent/CreateWorkflowTool.d.ts +181 -0
  237. package/dist/emergent/CreateWorkflowTool.d.ts.map +1 -0
  238. package/dist/emergent/CreateWorkflowTool.js +307 -0
  239. package/dist/emergent/CreateWorkflowTool.js.map +1 -0
  240. package/dist/emergent/ManageSkillsTool.d.ts +154 -0
  241. package/dist/emergent/ManageSkillsTool.d.ts.map +1 -0
  242. package/dist/emergent/ManageSkillsTool.js +241 -0
  243. package/dist/emergent/ManageSkillsTool.js.map +1 -0
  244. package/dist/emergent/PersonalityMutationStore.d.ts +183 -0
  245. package/dist/emergent/PersonalityMutationStore.d.ts.map +1 -0
  246. package/dist/emergent/PersonalityMutationStore.js +222 -0
  247. package/dist/emergent/PersonalityMutationStore.js.map +1 -0
  248. package/dist/emergent/SelfEvaluateTool.d.ts +189 -0
  249. package/dist/emergent/SelfEvaluateTool.d.ts.map +1 -0
  250. package/dist/emergent/SelfEvaluateTool.js +353 -0
  251. package/dist/emergent/SelfEvaluateTool.js.map +1 -0
  252. package/dist/emergent/SelfImprovementConfig.d.ts +166 -0
  253. package/dist/emergent/SelfImprovementConfig.d.ts.map +1 -0
  254. package/dist/emergent/SelfImprovementConfig.js +43 -0
  255. package/dist/emergent/SelfImprovementConfig.js.map +1 -0
  256. package/dist/emergent/index.d.ts +1 -0
  257. package/dist/emergent/index.d.ts.map +1 -1
  258. package/dist/emergent/index.js +1 -0
  259. package/dist/emergent/index.js.map +1 -1
  260. package/dist/emergent/types.d.ts +9 -0
  261. package/dist/emergent/types.d.ts.map +1 -1
  262. package/dist/emergent/types.js.map +1 -1
  263. package/dist/extensions/MultiRegistryLoader.js.map +1 -1
  264. package/dist/index.d.ts +17 -2
  265. package/dist/index.d.ts.map +1 -1
  266. package/dist/index.js +12 -0
  267. package/dist/index.js.map +1 -1
  268. package/dist/memory/CognitiveMemoryManager.d.ts +40 -0
  269. package/dist/memory/CognitiveMemoryManager.d.ts.map +1 -1
  270. package/dist/memory/CognitiveMemoryManager.js +54 -1
  271. package/dist/memory/CognitiveMemoryManager.js.map +1 -1
  272. package/dist/memory/facade/Memory.d.ts +4 -0
  273. package/dist/memory/facade/Memory.d.ts.map +1 -1
  274. package/dist/memory/facade/Memory.js +140 -4
  275. package/dist/memory/facade/Memory.js.map +1 -1
  276. package/dist/memory/facade/types.d.ts +30 -2
  277. package/dist/memory/facade/types.d.ts.map +1 -1
  278. package/dist/memory/index.d.ts +1 -0
  279. package/dist/memory/index.d.ts.map +1 -1
  280. package/dist/memory/index.js +1 -0
  281. package/dist/memory/index.js.map +1 -1
  282. package/dist/memory/types.d.ts +15 -0
  283. package/dist/memory/types.d.ts.map +1 -1
  284. package/dist/query-router/QueryClassifier.d.ts +192 -21
  285. package/dist/query-router/QueryClassifier.d.ts.map +1 -1
  286. package/dist/query-router/QueryClassifier.js +604 -23
  287. package/dist/query-router/QueryClassifier.js.map +1 -1
  288. package/dist/query-router/QueryDispatcher.d.ts +106 -8
  289. package/dist/query-router/QueryDispatcher.d.ts.map +1 -1
  290. package/dist/query-router/QueryDispatcher.js +387 -8
  291. package/dist/query-router/QueryDispatcher.js.map +1 -1
  292. package/dist/query-router/QueryRouter.d.ts +198 -14
  293. package/dist/query-router/QueryRouter.d.ts.map +1 -1
  294. package/dist/query-router/QueryRouter.js +738 -50
  295. package/dist/query-router/QueryRouter.js.map +1 -1
  296. package/dist/query-router/index.d.ts +1 -1
  297. package/dist/query-router/index.d.ts.map +1 -1
  298. package/dist/query-router/index.js +1 -1
  299. package/dist/query-router/index.js.map +1 -1
  300. package/dist/query-router/types.d.ts +396 -3
  301. package/dist/query-router/types.d.ts.map +1 -1
  302. package/dist/query-router/types.js +35 -0
  303. package/dist/query-router/types.js.map +1 -1
  304. package/dist/rag/HydeRetriever.d.ts +108 -0
  305. package/dist/rag/HydeRetriever.d.ts.map +1 -1
  306. package/dist/rag/HydeRetriever.js +184 -0
  307. package/dist/rag/HydeRetriever.js.map +1 -1
  308. package/dist/rag/IRetrievalAugmentor.d.ts +15 -0
  309. package/dist/rag/IRetrievalAugmentor.d.ts.map +1 -1
  310. package/dist/rag/RetrievalAugmentor.d.ts +58 -0
  311. package/dist/rag/RetrievalAugmentor.d.ts.map +1 -1
  312. package/dist/rag/RetrievalAugmentor.js +200 -32
  313. package/dist/rag/RetrievalAugmentor.js.map +1 -1
  314. package/dist/rag/VectorStoreManager.js +1 -1
  315. package/dist/rag/audit/RAGAuditCollector.d.ts +7 -0
  316. package/dist/rag/audit/RAGAuditCollector.d.ts.map +1 -1
  317. package/dist/rag/audit/RAGAuditCollector.js +10 -0
  318. package/dist/rag/audit/RAGAuditCollector.js.map +1 -1
  319. package/dist/rag/audit/RAGAuditTypes.d.ts +10 -1
  320. package/dist/rag/audit/RAGAuditTypes.d.ts.map +1 -1
  321. package/dist/rag/chunking/SemanticChunker.d.ts +210 -0
  322. package/dist/rag/chunking/SemanticChunker.d.ts.map +1 -0
  323. package/dist/rag/chunking/SemanticChunker.js +460 -0
  324. package/dist/rag/chunking/SemanticChunker.js.map +1 -0
  325. package/dist/rag/chunking/index.d.ts +10 -0
  326. package/dist/rag/chunking/index.d.ts.map +1 -0
  327. package/dist/rag/chunking/index.js +10 -0
  328. package/dist/rag/chunking/index.js.map +1 -0
  329. package/dist/rag/implementations/vector_stores/PineconeVectorStore.d.ts +103 -0
  330. package/dist/rag/implementations/vector_stores/PineconeVectorStore.d.ts.map +1 -0
  331. package/dist/rag/implementations/vector_stores/PineconeVectorStore.js +315 -0
  332. package/dist/rag/implementations/vector_stores/PineconeVectorStore.js.map +1 -0
  333. package/dist/rag/implementations/vector_stores/PostgresVectorStore.d.ts +107 -0
  334. package/dist/rag/implementations/vector_stores/PostgresVectorStore.d.ts.map +1 -0
  335. package/dist/rag/implementations/vector_stores/PostgresVectorStore.js +438 -0
  336. package/dist/rag/implementations/vector_stores/PostgresVectorStore.js.map +1 -0
  337. package/dist/rag/index.d.ts +15 -1
  338. package/dist/rag/index.d.ts.map +1 -1
  339. package/dist/rag/index.js +32 -0
  340. package/dist/rag/index.js.map +1 -1
  341. package/dist/rag/migration/MigrationEngine.d.ts +47 -0
  342. package/dist/rag/migration/MigrationEngine.d.ts.map +1 -0
  343. package/dist/rag/migration/MigrationEngine.js +168 -0
  344. package/dist/rag/migration/MigrationEngine.js.map +1 -0
  345. package/dist/rag/migration/adapters/PineconeSourceAdapter.d.ts +23 -0
  346. package/dist/rag/migration/adapters/PineconeSourceAdapter.d.ts.map +1 -0
  347. package/dist/rag/migration/adapters/PineconeSourceAdapter.js +63 -0
  348. package/dist/rag/migration/adapters/PineconeSourceAdapter.js.map +1 -0
  349. package/dist/rag/migration/adapters/PostgresSourceAdapter.d.ts +30 -0
  350. package/dist/rag/migration/adapters/PostgresSourceAdapter.d.ts.map +1 -0
  351. package/dist/rag/migration/adapters/PostgresSourceAdapter.js +71 -0
  352. package/dist/rag/migration/adapters/PostgresSourceAdapter.js.map +1 -0
  353. package/dist/rag/migration/adapters/PostgresTargetAdapter.d.ts +38 -0
  354. package/dist/rag/migration/adapters/PostgresTargetAdapter.d.ts.map +1 -0
  355. package/dist/rag/migration/adapters/PostgresTargetAdapter.js +114 -0
  356. package/dist/rag/migration/adapters/PostgresTargetAdapter.js.map +1 -0
  357. package/dist/rag/migration/adapters/QdrantSourceAdapter.d.ts +36 -0
  358. package/dist/rag/migration/adapters/QdrantSourceAdapter.d.ts.map +1 -0
  359. package/dist/rag/migration/adapters/QdrantSourceAdapter.js +109 -0
  360. package/dist/rag/migration/adapters/QdrantSourceAdapter.js.map +1 -0
  361. package/dist/rag/migration/adapters/QdrantTargetAdapter.d.ts +35 -0
  362. package/dist/rag/migration/adapters/QdrantTargetAdapter.d.ts.map +1 -0
  363. package/dist/rag/migration/adapters/QdrantTargetAdapter.js +110 -0
  364. package/dist/rag/migration/adapters/QdrantTargetAdapter.js.map +1 -0
  365. package/dist/rag/migration/adapters/SqliteSourceAdapter.d.ts +37 -0
  366. package/dist/rag/migration/adapters/SqliteSourceAdapter.d.ts.map +1 -0
  367. package/dist/rag/migration/adapters/SqliteSourceAdapter.js +72 -0
  368. package/dist/rag/migration/adapters/SqliteSourceAdapter.js.map +1 -0
  369. package/dist/rag/migration/adapters/SqliteTargetAdapter.d.ts +47 -0
  370. package/dist/rag/migration/adapters/SqliteTargetAdapter.d.ts.map +1 -0
  371. package/dist/rag/migration/adapters/SqliteTargetAdapter.js +93 -0
  372. package/dist/rag/migration/adapters/SqliteTargetAdapter.js.map +1 -0
  373. package/dist/rag/migration/types.d.ts +108 -0
  374. package/dist/rag/migration/types.d.ts.map +1 -0
  375. package/dist/rag/migration/types.js +11 -0
  376. package/dist/rag/migration/types.js.map +1 -0
  377. package/dist/rag/multimodal/MultimodalIndexer.d.ts +35 -0
  378. package/dist/rag/multimodal/MultimodalIndexer.d.ts.map +1 -1
  379. package/dist/rag/multimodal/MultimodalIndexer.js +66 -1
  380. package/dist/rag/multimodal/MultimodalIndexer.js.map +1 -1
  381. package/dist/rag/multimodal/types.d.ts +24 -0
  382. package/dist/rag/multimodal/types.d.ts.map +1 -1
  383. package/dist/rag/raptor/RaptorTree.d.ts +268 -0
  384. package/dist/rag/raptor/RaptorTree.d.ts.map +1 -0
  385. package/dist/rag/raptor/RaptorTree.js +443 -0
  386. package/dist/rag/raptor/RaptorTree.js.map +1 -0
  387. package/dist/rag/raptor/index.d.ts +11 -0
  388. package/dist/rag/raptor/index.d.ts.map +1 -0
  389. package/dist/rag/raptor/index.js +11 -0
  390. package/dist/rag/raptor/index.js.map +1 -0
  391. package/dist/rag/reranking/providers/CohereReranker.js.map +1 -1
  392. package/dist/rag/search/BM25Index.d.ts +282 -0
  393. package/dist/rag/search/BM25Index.d.ts.map +1 -0
  394. package/dist/rag/search/BM25Index.js +344 -0
  395. package/dist/rag/search/BM25Index.js.map +1 -0
  396. package/dist/rag/search/HybridSearcher.d.ts +198 -0
  397. package/dist/rag/search/HybridSearcher.d.ts.map +1 -0
  398. package/dist/rag/search/HybridSearcher.js +316 -0
  399. package/dist/rag/search/HybridSearcher.js.map +1 -0
  400. package/dist/rag/search/index.d.ts +12 -0
  401. package/dist/rag/search/index.d.ts.map +1 -0
  402. package/dist/rag/search/index.js +12 -0
  403. package/dist/rag/search/index.js.map +1 -0
  404. package/dist/rag/setup/DockerDetector.d.ts +67 -0
  405. package/dist/rag/setup/DockerDetector.d.ts.map +1 -0
  406. package/dist/rag/setup/DockerDetector.js +125 -0
  407. package/dist/rag/setup/DockerDetector.js.map +1 -0
  408. package/dist/rag/setup/PostgresSetup.d.ts +20 -0
  409. package/dist/rag/setup/PostgresSetup.d.ts.map +1 -0
  410. package/dist/rag/setup/PostgresSetup.js +133 -0
  411. package/dist/rag/setup/PostgresSetup.js.map +1 -0
  412. package/dist/rag/setup/QdrantSetup.d.ts +26 -0
  413. package/dist/rag/setup/QdrantSetup.d.ts.map +1 -0
  414. package/dist/rag/setup/QdrantSetup.js +96 -0
  415. package/dist/rag/setup/QdrantSetup.js.map +1 -0
  416. package/dist/rag/setup/types.d.ts +55 -0
  417. package/dist/rag/setup/types.d.ts.map +1 -0
  418. package/dist/rag/setup/types.js +6 -0
  419. package/dist/rag/setup/types.js.map +1 -0
  420. package/dist/rag/unified/UnifiedRetriever.d.ts +472 -0
  421. package/dist/rag/unified/UnifiedRetriever.d.ts.map +1 -0
  422. package/dist/rag/unified/UnifiedRetriever.js +887 -0
  423. package/dist/rag/unified/UnifiedRetriever.js.map +1 -0
  424. package/dist/rag/unified/index.d.ts +24 -0
  425. package/dist/rag/unified/index.d.ts.map +1 -0
  426. package/dist/rag/unified/index.js +23 -0
  427. package/dist/rag/unified/index.js.map +1 -0
  428. package/dist/rag/unified/types.d.ts +546 -0
  429. package/dist/rag/unified/types.d.ts.map +1 -0
  430. package/dist/rag/unified/types.js +177 -0
  431. package/dist/rag/unified/types.js.map +1 -0
  432. package/dist/speech/providers/AssemblyAISTTProvider.js.map +1 -1
  433. package/dist/speech/providers/AzureSpeechSTTProvider.js.map +1 -1
  434. package/dist/speech/providers/BuiltInAdaptiveVadProvider.d.ts +1 -1
  435. package/dist/speech/providers/DeepgramBatchSTTProvider.js.map +1 -1
  436. package/package.json +5 -2
@@ -0,0 +1,307 @@
1
+ /**
2
+ * @fileoverview CreateWorkflowTool — ITool implementation that enables agents
3
+ * to compose multi-step tool workflows at runtime and execute them as a unit.
4
+ *
5
+ * @module @framers/agentos/emergent/CreateWorkflowTool
6
+ *
7
+ * Agents call `create_workflow` to define, run, and list workflows. A workflow
8
+ * is a named sequence of tool invocations with reference resolution:
9
+ * - `$input` — the workflow's input argument
10
+ * - `$prev` — the output of the immediately preceding step
11
+ * - `$steps[N]` — the output of the Nth step (zero-indexed)
12
+ *
13
+ * Constraints:
14
+ * - Maximum step count is enforced via `config.maxSteps`.
15
+ * - Only tools from `config.allowedTools` may be used in steps.
16
+ * - Recursive workflow creation is blocked (`create_workflow` cannot appear in steps).
17
+ * - Each step execution has a 30-second timeout enforced via `Promise.race`.
18
+ */
19
+ // ============================================================================
20
+ // TOOL IMPLEMENTATION
21
+ // ============================================================================
22
+ /** Default per-step execution timeout in milliseconds. */
23
+ const STEP_TIMEOUT_MS = 30000;
24
+ /**
25
+ * ITool implementation enabling agents to compose, execute, and list
26
+ * multi-step tool workflows at runtime.
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * const tool = new CreateWorkflowTool({
31
+ * config: { maxSteps: 10, allowedTools: ['web_search', 'summarize'] },
32
+ * executeTool: (name, args) => orchestrator.execute(name, args),
33
+ * listTools: () => orchestrator.listToolNames(),
34
+ * });
35
+ *
36
+ * // Create a workflow
37
+ * const createResult = await tool.execute({
38
+ * action: 'create',
39
+ * name: 'search-and-summarize',
40
+ * description: 'Search the web and summarize results.',
41
+ * steps: [
42
+ * { tool: 'web_search', args: { query: '$input' } },
43
+ * { tool: 'summarize', args: { text: '$prev' } },
44
+ * ],
45
+ * }, context);
46
+ * ```
47
+ */
48
+ export class CreateWorkflowTool {
49
+ /**
50
+ * Create a new CreateWorkflowTool.
51
+ *
52
+ * @param deps - Injected dependencies including config, tool executor,
53
+ * and tool lister.
54
+ */
55
+ constructor(deps) {
56
+ /** @inheritdoc */
57
+ this.id = 'com.framers.emergent.create-workflow';
58
+ /** @inheritdoc */
59
+ this.name = 'create_workflow';
60
+ /** @inheritdoc */
61
+ this.displayName = 'Create Workflow';
62
+ /** @inheritdoc */
63
+ this.description = 'Create, run, or list multi-step tool workflows. Steps execute sequentially ' +
64
+ 'with reference resolution ($input, $prev, $steps[N]).';
65
+ /** @inheritdoc */
66
+ this.category = 'emergent';
67
+ /** @inheritdoc */
68
+ this.hasSideEffects = true;
69
+ /** @inheritdoc */
70
+ this.inputSchema = {
71
+ type: 'object',
72
+ properties: {
73
+ action: {
74
+ type: 'string',
75
+ enum: ['create', 'run', 'list'],
76
+ description: 'The workflow action to perform.',
77
+ },
78
+ name: {
79
+ type: 'string',
80
+ description: 'Workflow name (required for create).',
81
+ },
82
+ description: {
83
+ type: 'string',
84
+ description: 'Workflow description (required for create).',
85
+ },
86
+ steps: {
87
+ type: 'array',
88
+ description: 'Ordered list of workflow steps (required for create).',
89
+ items: {
90
+ type: 'object',
91
+ properties: {
92
+ tool: { type: 'string' },
93
+ args: { type: 'object' },
94
+ },
95
+ required: ['tool', 'args'],
96
+ },
97
+ },
98
+ workflowId: {
99
+ type: 'string',
100
+ description: 'Workflow ID (required for run).',
101
+ },
102
+ input: {
103
+ description: 'Input data passed to the workflow when running.',
104
+ },
105
+ },
106
+ required: ['action'],
107
+ };
108
+ /** Session-scoped workflow storage. */
109
+ this.workflows = new Map();
110
+ /** Monotonic counter for generating workflow IDs. */
111
+ this.nextId = 1;
112
+ this.deps = deps;
113
+ }
114
+ // --------------------------------------------------------------------------
115
+ // EXECUTE
116
+ // --------------------------------------------------------------------------
117
+ /**
118
+ * Execute the requested workflow action.
119
+ *
120
+ * @param args - Action type and associated parameters.
121
+ * @param _context - Tool execution context (unused but required by ITool).
122
+ * @returns A {@link ToolExecutionResult} wrapping the action outcome.
123
+ */
124
+ async execute(args, _context) {
125
+ switch (args.action) {
126
+ case 'create':
127
+ return this.handleCreate(args);
128
+ case 'run':
129
+ return this.handleRun(args);
130
+ case 'list':
131
+ return this.handleList();
132
+ default:
133
+ return {
134
+ success: false,
135
+ error: `Unknown action "${args.action}". Must be one of: create, run, list`,
136
+ };
137
+ }
138
+ }
139
+ // --------------------------------------------------------------------------
140
+ // ACTION HANDLERS
141
+ // --------------------------------------------------------------------------
142
+ /**
143
+ * Create and store a new workflow definition.
144
+ *
145
+ * Validates:
146
+ * - Required fields (name, description, steps) are present
147
+ * - Step count does not exceed maxSteps
148
+ * - No step references `create_workflow` (prevent recursion)
149
+ * - All step tools exist in the available tool list
150
+ */
151
+ async handleCreate(args) {
152
+ const { name, description, steps } = args;
153
+ if (!name || typeof name !== 'string') {
154
+ return { success: false, error: 'name is required for the create action' };
155
+ }
156
+ if (!description || typeof description !== 'string') {
157
+ return { success: false, error: 'description is required for the create action' };
158
+ }
159
+ if (!steps || !Array.isArray(steps) || steps.length === 0) {
160
+ return { success: false, error: 'steps is required and must be a non-empty array' };
161
+ }
162
+ // Check maxSteps
163
+ if (steps.length > this.deps.config.maxSteps) {
164
+ return {
165
+ success: false,
166
+ error: `Workflow exceeds maxSteps limit (${steps.length} > ${this.deps.config.maxSteps})`,
167
+ };
168
+ }
169
+ // Block recursive workflow creation
170
+ for (const step of steps) {
171
+ if (step.tool === 'create_workflow') {
172
+ return {
173
+ success: false,
174
+ error: 'Workflows cannot contain create_workflow steps (recursion not allowed)',
175
+ };
176
+ }
177
+ }
178
+ // Validate all tools exist
179
+ const availableTools = this.deps.listTools();
180
+ for (const step of steps) {
181
+ if (!availableTools.includes(step.tool)) {
182
+ return {
183
+ success: false,
184
+ error: `Tool "${step.tool}" referenced in step is not available`,
185
+ };
186
+ }
187
+ }
188
+ const id = `workflow-${this.nextId++}`;
189
+ const workflow = {
190
+ id,
191
+ name,
192
+ description,
193
+ steps,
194
+ createdAt: new Date().toISOString(),
195
+ runCount: 0,
196
+ };
197
+ this.workflows.set(id, workflow);
198
+ return {
199
+ success: true,
200
+ output: { workflowId: id, name, stepCount: steps.length },
201
+ };
202
+ }
203
+ /**
204
+ * Run a stored workflow, executing steps sequentially with reference resolution.
205
+ *
206
+ * Reference resolution:
207
+ * - `$input` — the workflow's input argument
208
+ * - `$prev` — the output of the immediately preceding step
209
+ * - `$steps[N]` — the output of the Nth step (zero-indexed)
210
+ *
211
+ * Each step has a 30-second timeout enforced via Promise.race.
212
+ */
213
+ async handleRun(args) {
214
+ const { workflowId, input } = args;
215
+ if (!workflowId) {
216
+ return { success: false, error: 'workflowId is required for the run action' };
217
+ }
218
+ const workflow = this.workflows.get(workflowId);
219
+ if (!workflow) {
220
+ return { success: false, error: `Workflow "${workflowId}" not found` };
221
+ }
222
+ const stepResults = [];
223
+ let prev = undefined;
224
+ for (let i = 0; i < workflow.steps.length; i++) {
225
+ const step = workflow.steps[i];
226
+ // Resolve references in step args
227
+ const resolvedArgs = this.resolveReferences(step.args, input, prev, stepResults);
228
+ try {
229
+ // 30-second timeout per step via Promise.race
230
+ const result = await Promise.race([
231
+ this.deps.executeTool(step.tool, resolvedArgs),
232
+ new Promise((_, reject) => setTimeout(() => reject(new Error(`Step ${i} ("${step.tool}") timed out after ${STEP_TIMEOUT_MS}ms`)), STEP_TIMEOUT_MS)),
233
+ ]);
234
+ stepResults.push(result);
235
+ prev = result;
236
+ }
237
+ catch (err) {
238
+ return {
239
+ success: false,
240
+ error: `Workflow failed at step ${i} ("${step.tool}"): ${err.message ?? String(err)}`,
241
+ output: { completedSteps: i, stepResults },
242
+ };
243
+ }
244
+ }
245
+ workflow.runCount++;
246
+ return {
247
+ success: true,
248
+ output: {
249
+ workflowId: workflow.id,
250
+ runCount: workflow.runCount,
251
+ stepResults,
252
+ finalOutput: prev,
253
+ },
254
+ };
255
+ }
256
+ /**
257
+ * List all stored workflows.
258
+ */
259
+ async handleList() {
260
+ const workflows = Array.from(this.workflows.values()).map((w) => ({
261
+ id: w.id,
262
+ name: w.name,
263
+ description: w.description,
264
+ stepCount: w.steps.length,
265
+ runCount: w.runCount,
266
+ createdAt: w.createdAt,
267
+ }));
268
+ return { success: true, output: { workflows } };
269
+ }
270
+ // --------------------------------------------------------------------------
271
+ // REFERENCE RESOLUTION
272
+ // --------------------------------------------------------------------------
273
+ /**
274
+ * Resolve `$input`, `$prev`, and `$steps[N]` references in step arguments.
275
+ *
276
+ * Uses JSON.stringify → string replacement → JSON.parse cycle for simple
277
+ * reference resolution. References appearing as standalone string values
278
+ * are replaced with the actual object; references embedded in larger strings
279
+ * are serialized inline.
280
+ *
281
+ * @param args - The step arguments potentially containing references.
282
+ * @param input - The workflow input value.
283
+ * @param prev - The output of the previous step.
284
+ * @param stepResults - Array of all completed step outputs.
285
+ * @returns Resolved arguments with references replaced by actual values.
286
+ */
287
+ resolveReferences(args, input, prev, stepResults) {
288
+ const serialized = JSON.stringify(args);
289
+ // Replace $steps[N] references first (more specific pattern)
290
+ let resolved = serialized.replace(/"\$steps\[(\d+)\]"/g, (_match, idx) => {
291
+ const index = parseInt(idx, 10);
292
+ return JSON.stringify(stepResults[index] ?? null);
293
+ });
294
+ // Replace $input references
295
+ resolved = resolved.replace(/"\$input"/g, JSON.stringify(input ?? null));
296
+ // Replace $prev references
297
+ resolved = resolved.replace(/"\$prev"/g, JSON.stringify(prev ?? null));
298
+ try {
299
+ return JSON.parse(resolved);
300
+ }
301
+ catch {
302
+ // If parsing fails (unlikely), return original args
303
+ return args;
304
+ }
305
+ }
306
+ }
307
+ //# sourceMappingURL=CreateWorkflowTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateWorkflowTool.js","sourceRoot":"","sources":["../../src/emergent/CreateWorkflowTool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * @fileoverview ManageSkillsTool — ITool implementation that enables agents to
3
+ * dynamically enable, disable, and search for skills at runtime.
4
+ *
5
+ * @module @framers/agentos/emergent/ManageSkillsTool
6
+ *
7
+ * Agents call `manage_skills` to self-modify their active skill set. The tool
8
+ * enforces an allowlist-based permission model:
9
+ * - Wildcard (`'*'`) allows all skills unconditionally.
10
+ * - Exact skill ID matches are always permitted.
11
+ * - Category-based allowlist entries (`'category:X'`) permit any skill in that category.
12
+ * - Same-category expansion: if any skill in category X is already active, other
13
+ * skills in X are also permitted without explicit allowlist entry.
14
+ * - New categories may require approval when `requireApprovalForNewCategories` is set.
15
+ *
16
+ * Locked skills cannot be disabled.
17
+ */
18
+ import type { ITool, ToolExecutionResult, ToolExecutionContext, JSONSchemaObject } from '../core/tools/ITool.js';
19
+ /**
20
+ * Minimal skill descriptor used for active skill listing and search results.
21
+ */
22
+ export interface SkillDescriptor {
23
+ /** Unique skill identifier. */
24
+ skillId: string;
25
+ /** Human-readable skill name. */
26
+ name: string;
27
+ /** Category the skill belongs to. */
28
+ category: string;
29
+ }
30
+ /**
31
+ * Extended skill descriptor returned by search, including a description.
32
+ */
33
+ export interface SkillSearchResult extends SkillDescriptor {
34
+ /** Natural language description of the skill's purpose. */
35
+ description: string;
36
+ }
37
+ /**
38
+ * Input arguments accepted by the `manage_skills` tool.
39
+ * Discriminated on the `action` field.
40
+ */
41
+ export interface ManageSkillsInput extends Record<string, any> {
42
+ /** The action to perform: enable, disable, search, or list. */
43
+ action: 'enable' | 'disable' | 'search' | 'list';
44
+ /** Skill ID to enable or disable (required for enable/disable). */
45
+ skillId?: string;
46
+ /** Search query string (required for search). */
47
+ query?: string;
48
+ }
49
+ /**
50
+ * Dependencies injected into the {@link ManageSkillsTool} constructor.
51
+ */
52
+ export interface ManageSkillsDeps {
53
+ /** Configuration controlling allowlist and approval requirements. */
54
+ config: {
55
+ /**
56
+ * Allowlist of permitted skill IDs or patterns.
57
+ * - `['*']` → all skills allowed.
58
+ * - Exact skill IDs are matched literally.
59
+ * - `'category:X'` → any skill in category X is allowed.
60
+ */
61
+ allowlist: string[];
62
+ /** Whether enabling skills in new categories requires approval. */
63
+ requireApprovalForNewCategories: boolean;
64
+ };
65
+ /** Returns the currently active skills for the agent. */
66
+ getActiveSkills: () => SkillDescriptor[];
67
+ /** Returns the list of skill IDs that cannot be disabled. */
68
+ getLockedSkills: () => string[];
69
+ /** Load and activate a skill by its ID. Returns the skill descriptor. */
70
+ loadSkill: (id: string) => Promise<SkillDescriptor>;
71
+ /** Unload and deactivate a skill by its ID. */
72
+ unloadSkill: (id: string) => void;
73
+ /** Search for available skills matching a query string. */
74
+ searchSkills: (query: string) => SkillSearchResult[];
75
+ }
76
+ /**
77
+ * ITool implementation enabling agents to dynamically manage their skill set
78
+ * at runtime, subject to allowlist and lock constraints.
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * const tool = new ManageSkillsTool({
83
+ * config: { allowlist: ['*'], requireApprovalForNewCategories: false },
84
+ * getActiveSkills: () => agent.skills,
85
+ * getLockedSkills: () => ['core-reasoning'],
86
+ * loadSkill: (id) => skillRegistry.load(id),
87
+ * unloadSkill: (id) => skillRegistry.unload(id),
88
+ * searchSkills: (q) => skillRegistry.search(q),
89
+ * });
90
+ * ```
91
+ */
92
+ export declare class ManageSkillsTool implements ITool<ManageSkillsInput> {
93
+ /** @inheritdoc */
94
+ readonly id = "com.framers.emergent.manage-skills";
95
+ /** @inheritdoc */
96
+ readonly name = "manage_skills";
97
+ /** @inheritdoc */
98
+ readonly displayName = "Manage Skills";
99
+ /** @inheritdoc */
100
+ readonly description: string;
101
+ /** @inheritdoc */
102
+ readonly category = "emergent";
103
+ /** @inheritdoc */
104
+ readonly hasSideEffects = true;
105
+ /** @inheritdoc */
106
+ readonly inputSchema: JSONSchemaObject;
107
+ /** Injected dependencies. */
108
+ private readonly deps;
109
+ /**
110
+ * Create a new ManageSkillsTool.
111
+ *
112
+ * @param deps - Injected dependencies including config, skill accessors,
113
+ * and loader/unloader functions.
114
+ */
115
+ constructor(deps: ManageSkillsDeps);
116
+ /**
117
+ * Execute the requested skill management action.
118
+ *
119
+ * @param args - Action type and associated parameters.
120
+ * @param _context - Tool execution context (unused but required by ITool).
121
+ * @returns A {@link ToolExecutionResult} wrapping the action outcome.
122
+ */
123
+ execute(args: ManageSkillsInput, _context: ToolExecutionContext): Promise<ToolExecutionResult>;
124
+ /**
125
+ * Enable a skill after checking allowlist permissions.
126
+ *
127
+ * Allowlist resolution order:
128
+ * 1. `['*']` → always allowed
129
+ * 2. Exact skillId match → allowed
130
+ * 3. `'category:X'` in allowlist and skill.category === X → allowed
131
+ * 4. Skill's category already represented in active skills → allowed (same-category expansion)
132
+ * 5. Otherwise → `requires_approval` if requireApprovalForNewCategories, else `denied`
133
+ */
134
+ private handleEnable;
135
+ /**
136
+ * Resolve whether a skill is permitted by the allowlist configuration.
137
+ *
138
+ * @returns `'allowed'`, `'requires_approval'`, or `'denied'`
139
+ */
140
+ private resolvePermission;
141
+ /**
142
+ * Disable a skill, rejecting if it is locked.
143
+ */
144
+ private handleDisable;
145
+ /**
146
+ * Search for available skills by query string.
147
+ */
148
+ private handleSearch;
149
+ /**
150
+ * List currently active skills.
151
+ */
152
+ private handleList;
153
+ }
154
+ //# sourceMappingURL=ManageSkillsTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ManageSkillsTool.d.ts","sourceRoot":"","sources":["../../src/emergent/ManageSkillsTool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EACV,KAAK,EACL,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAMhC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC5D,+DAA+D;IAC/D,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IACjD,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,MAAM,EAAE;QACN;;;;;WAKG;QACH,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,mEAAmE;QACnE,+BAA+B,EAAE,OAAO,CAAC;KAC1C,CAAC;IACF,yDAAyD;IACzD,eAAe,EAAE,MAAM,eAAe,EAAE,CAAC;IACzC,6DAA6D;IAC7D,eAAe,EAAE,MAAM,MAAM,EAAE,CAAC;IAChC,yEAAyE;IACzE,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACpD,+CAA+C;IAC/C,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,2DAA2D;IAC3D,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,iBAAiB,EAAE,CAAC;CACtD;AAMD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,gBAAiB,YAAW,KAAK,CAAC,iBAAiB,CAAC;IAC/D,kBAAkB;IAClB,QAAQ,CAAC,EAAE,wCAAwC;IAEnD,kBAAkB;IAClB,QAAQ,CAAC,IAAI,mBAAmB;IAEhC,kBAAkB;IAClB,QAAQ,CAAC,WAAW,mBAAmB;IAEvC,kBAAkB;IAClB,QAAQ,CAAC,WAAW,SAE2B;IAE/C,kBAAkB;IAClB,QAAQ,CAAC,QAAQ,cAAc;IAE/B,kBAAkB;IAClB,QAAQ,CAAC,cAAc,QAAQ;IAE/B,kBAAkB;IAClB,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAkBpC;IAEF,6BAA6B;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;IAExC;;;;;OAKG;gBACS,IAAI,EAAE,gBAAgB;IAQlC;;;;;;OAMG;IACG,OAAO,CACX,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC;IAsB/B;;;;;;;;;OASG;YACW,YAAY;IAwD1B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IA+BzB;;OAEG;YACW,aAAa;IAuB3B;;OAEG;YACW,YAAY;IAe1B;;OAEG;YACW,UAAU;CAQzB"}