@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,241 @@
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
+ // ============================================================================
19
+ // TOOL IMPLEMENTATION
20
+ // ============================================================================
21
+ /**
22
+ * ITool implementation enabling agents to dynamically manage their skill set
23
+ * at runtime, subject to allowlist and lock constraints.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * const tool = new ManageSkillsTool({
28
+ * config: { allowlist: ['*'], requireApprovalForNewCategories: false },
29
+ * getActiveSkills: () => agent.skills,
30
+ * getLockedSkills: () => ['core-reasoning'],
31
+ * loadSkill: (id) => skillRegistry.load(id),
32
+ * unloadSkill: (id) => skillRegistry.unload(id),
33
+ * searchSkills: (q) => skillRegistry.search(q),
34
+ * });
35
+ * ```
36
+ */
37
+ export class ManageSkillsTool {
38
+ /**
39
+ * Create a new ManageSkillsTool.
40
+ *
41
+ * @param deps - Injected dependencies including config, skill accessors,
42
+ * and loader/unloader functions.
43
+ */
44
+ constructor(deps) {
45
+ /** @inheritdoc */
46
+ this.id = 'com.framers.emergent.manage-skills';
47
+ /** @inheritdoc */
48
+ this.name = 'manage_skills';
49
+ /** @inheritdoc */
50
+ this.displayName = 'Manage Skills';
51
+ /** @inheritdoc */
52
+ this.description = 'Enable, disable, search, or list skills available to this agent. ' +
53
+ 'Subject to allowlist and lock constraints.';
54
+ /** @inheritdoc */
55
+ this.category = 'emergent';
56
+ /** @inheritdoc */
57
+ this.hasSideEffects = true;
58
+ /** @inheritdoc */
59
+ this.inputSchema = {
60
+ type: 'object',
61
+ properties: {
62
+ action: {
63
+ type: 'string',
64
+ enum: ['enable', 'disable', 'search', 'list'],
65
+ description: 'The skill management action to perform.',
66
+ },
67
+ skillId: {
68
+ type: 'string',
69
+ description: 'Skill ID to enable or disable.',
70
+ },
71
+ query: {
72
+ type: 'string',
73
+ description: 'Search query for finding skills.',
74
+ },
75
+ },
76
+ required: ['action'],
77
+ };
78
+ this.deps = deps;
79
+ }
80
+ // --------------------------------------------------------------------------
81
+ // EXECUTE
82
+ // --------------------------------------------------------------------------
83
+ /**
84
+ * Execute the requested skill management action.
85
+ *
86
+ * @param args - Action type and associated parameters.
87
+ * @param _context - Tool execution context (unused but required by ITool).
88
+ * @returns A {@link ToolExecutionResult} wrapping the action outcome.
89
+ */
90
+ async execute(args, _context) {
91
+ switch (args.action) {
92
+ case 'enable':
93
+ return this.handleEnable(args.skillId);
94
+ case 'disable':
95
+ return this.handleDisable(args.skillId);
96
+ case 'search':
97
+ return this.handleSearch(args.query);
98
+ case 'list':
99
+ return this.handleList();
100
+ default:
101
+ return {
102
+ success: false,
103
+ error: `Unknown action "${args.action}". Must be one of: enable, disable, search, list`,
104
+ };
105
+ }
106
+ }
107
+ // --------------------------------------------------------------------------
108
+ // ACTION HANDLERS
109
+ // --------------------------------------------------------------------------
110
+ /**
111
+ * Enable a skill after checking allowlist permissions.
112
+ *
113
+ * Allowlist resolution order:
114
+ * 1. `['*']` → always allowed
115
+ * 2. Exact skillId match → allowed
116
+ * 3. `'category:X'` in allowlist and skill.category === X → allowed
117
+ * 4. Skill's category already represented in active skills → allowed (same-category expansion)
118
+ * 5. Otherwise → `requires_approval` if requireApprovalForNewCategories, else `denied`
119
+ */
120
+ async handleEnable(skillId) {
121
+ if (!skillId) {
122
+ return { success: false, error: 'skillId is required for the enable action' };
123
+ }
124
+ // Load the skill first to get its metadata
125
+ let skill;
126
+ try {
127
+ skill = await this.deps.loadSkill(skillId);
128
+ }
129
+ catch (err) {
130
+ return {
131
+ success: false,
132
+ error: `Failed to load skill "${skillId}": ${err.message ?? String(err)}`,
133
+ };
134
+ }
135
+ // Resolve allowlist permission
136
+ const permissionResult = this.resolvePermission(skill);
137
+ if (permissionResult === 'allowed') {
138
+ return {
139
+ success: true,
140
+ output: {
141
+ status: 'enabled',
142
+ skill: { skillId: skill.skillId, name: skill.name, category: skill.category },
143
+ },
144
+ };
145
+ }
146
+ // Not allowed — unload the skill we speculatively loaded
147
+ try {
148
+ this.deps.unloadSkill(skillId);
149
+ }
150
+ catch {
151
+ // Best-effort unload; skill may not have been fully registered
152
+ }
153
+ if (permissionResult === 'requires_approval') {
154
+ return {
155
+ success: true,
156
+ output: {
157
+ status: 'requires_approval',
158
+ skillId,
159
+ category: skill.category,
160
+ reason: `Skill category "${skill.category}" is new and requires approval.`,
161
+ },
162
+ };
163
+ }
164
+ return {
165
+ success: false,
166
+ error: `Skill "${skillId}" is not permitted by the allowlist.`,
167
+ };
168
+ }
169
+ /**
170
+ * Resolve whether a skill is permitted by the allowlist configuration.
171
+ *
172
+ * @returns `'allowed'`, `'requires_approval'`, or `'denied'`
173
+ */
174
+ resolvePermission(skill) {
175
+ const { allowlist, requireApprovalForNewCategories } = this.deps.config;
176
+ // 1. Wildcard
177
+ if (allowlist.includes('*')) {
178
+ return 'allowed';
179
+ }
180
+ // 2. Exact skill ID match
181
+ if (allowlist.includes(skill.skillId)) {
182
+ return 'allowed';
183
+ }
184
+ // 3. Category-based allowlist entry
185
+ if (allowlist.includes(`category:${skill.category}`)) {
186
+ return 'allowed';
187
+ }
188
+ // 4. Same-category expansion: category already represented in active skills
189
+ const activeSkills = this.deps.getActiveSkills();
190
+ const activeCategories = new Set(activeSkills.map((s) => s.category));
191
+ if (activeCategories.has(skill.category)) {
192
+ return 'allowed';
193
+ }
194
+ // 5. Otherwise — requires approval or denied
195
+ return requireApprovalForNewCategories ? 'requires_approval' : 'denied';
196
+ }
197
+ /**
198
+ * Disable a skill, rejecting if it is locked.
199
+ */
200
+ async handleDisable(skillId) {
201
+ if (!skillId) {
202
+ return { success: false, error: 'skillId is required for the disable action' };
203
+ }
204
+ const lockedSkills = this.deps.getLockedSkills();
205
+ if (lockedSkills.includes(skillId)) {
206
+ return {
207
+ success: false,
208
+ error: `Skill "${skillId}" is locked and cannot be disabled.`,
209
+ };
210
+ }
211
+ this.deps.unloadSkill(skillId);
212
+ return {
213
+ success: true,
214
+ output: { status: 'disabled', skillId },
215
+ };
216
+ }
217
+ /**
218
+ * Search for available skills by query string.
219
+ */
220
+ async handleSearch(query) {
221
+ if (!query) {
222
+ return { success: false, error: 'query is required for the search action' };
223
+ }
224
+ const results = this.deps.searchSkills(query);
225
+ return {
226
+ success: true,
227
+ output: { results },
228
+ };
229
+ }
230
+ /**
231
+ * List currently active skills.
232
+ */
233
+ async handleList() {
234
+ const skills = this.deps.getActiveSkills();
235
+ return {
236
+ success: true,
237
+ output: { skills },
238
+ };
239
+ }
240
+ }
241
+ //# sourceMappingURL=ManageSkillsTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ManageSkillsTool.js","sourceRoot":"","sources":["../../src/emergent/ManageSkillsTool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAkFH,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,gBAAgB;IA6C3B;;;;;OAKG;IACH,YAAY,IAAsB;QAlDlC,kBAAkB;QACT,OAAE,GAAG,oCAAoC,CAAC;QAEnD,kBAAkB;QACT,SAAI,GAAG,eAAe,CAAC;QAEhC,kBAAkB;QACT,gBAAW,GAAG,eAAe,CAAC;QAEvC,kBAAkB;QACT,gBAAW,GAClB,mEAAmE;YACnE,4CAA4C,CAAC;QAE/C,kBAAkB;QACT,aAAQ,GAAG,UAAU,CAAC;QAE/B,kBAAkB;QACT,mBAAc,GAAG,IAAI,CAAC;QAE/B,kBAAkB;QACT,gBAAW,GAAqB;YACvC,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC;oBAC7C,WAAW,EAAE,yCAAyC;iBACvD;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gCAAgC;iBAC9C;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kCAAkC;iBAChD;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB,CAAC;QAYA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,6EAA6E;IAC7E,UAAU;IACV,6EAA6E;IAE7E;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CACX,IAAuB,EACvB,QAA8B;QAE9B,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzC,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvC,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3B;gBACE,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,mBAAmB,IAAI,CAAC,MAAM,kDAAkD;iBACxF,CAAC;QACN,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,kBAAkB;IAClB,6EAA6E;IAE7E;;;;;;;;;OASG;IACK,KAAK,CAAC,YAAY,CACxB,OAA2B;QAE3B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,2CAA2C,EAAE,CAAC;QAChF,CAAC;QAED,2CAA2C;QAC3C,IAAI,KAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,yBAAyB,OAAO,MAAM,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE;aAC1E,CAAC;QACJ,CAAC;QAED,+BAA+B;QAC/B,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAEvD,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACnC,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACN,MAAM,EAAE,SAAS;oBACjB,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;iBAC9E;aACF,CAAC;QACJ,CAAC;QAED,yDAAyD;QACzD,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,+DAA+D;QACjE,CAAC;QAED,IAAI,gBAAgB,KAAK,mBAAmB,EAAE,CAAC;YAC7C,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACN,MAAM,EAAE,mBAAmB;oBAC3B,OAAO;oBACP,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,MAAM,EAAE,mBAAmB,KAAK,CAAC,QAAQ,iCAAiC;iBAC3E;aACF,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,UAAU,OAAO,sCAAsC;SAC/D,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CACvB,KAAsB;QAEtB,MAAM,EAAE,SAAS,EAAE,+BAA+B,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAExE,cAAc;QACd,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,0BAA0B;QAC1B,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,oCAAoC;QACpC,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YACrD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,4EAA4E;QAC5E,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QACjD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtE,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,6CAA6C;QAC7C,OAAO,+BAA+B,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC1E,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CACzB,OAA2B;QAE3B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,4CAA4C,EAAE,CAAC;QACjF,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QACjD,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,UAAU,OAAO,qCAAqC;aAC9D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE/B,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE;SACxC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CACxB,KAAyB;QAEzB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,yCAAyC,EAAE,CAAC;QAC9E,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAE9C,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,EAAE,OAAO,EAAE;SACpB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,UAAU;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QAE3C,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,EAAE,MAAM,EAAE;SACnB,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,183 @@
1
+ /**
2
+ * @fileoverview SQLite persistence for personality mutations with
3
+ * Ebbinghaus-style strength decay.
4
+ *
5
+ * Mutations persist across sessions and gradually fade toward baseline
6
+ * unless reinforced by repeated adaptation. The ConsolidationLoop calls
7
+ * {@link PersonalityMutationStore.decayAll} each cycle to reduce mutation
8
+ * strengths; mutations whose strength drops below the 0.1 threshold are
9
+ * pruned automatically.
10
+ *
11
+ * Uses the same {@link IStorageAdapter} interface as EmergentToolRegistry,
12
+ * keeping storage concerns decoupled from specific SQLite drivers.
13
+ *
14
+ * @module @framers/agentos/emergent/PersonalityMutationStore
15
+ */
16
+ import type { IStorageAdapter } from './EmergentToolRegistry.js';
17
+ /**
18
+ * A single persisted personality mutation record.
19
+ *
20
+ * Represents a specific HEXACO trait adjustment made by the agent, along with
21
+ * its current strength (which decays over time) and the reasoning that
22
+ * motivated the change.
23
+ */
24
+ export interface PersonalityMutation {
25
+ /** Unique mutation identifier (format: `pm_<timestamp>_<random>`). */
26
+ id: string;
27
+ /** The agent that made this mutation. */
28
+ agentId: string;
29
+ /** The HEXACO trait that was mutated (e.g., `'openness'`, `'conscientiousness'`). */
30
+ trait: string;
31
+ /** The signed delta applied to the trait value. Positive = increase, negative = decrease. */
32
+ delta: number;
33
+ /** Free-text reasoning explaining why the agent chose to mutate this trait. */
34
+ reasoning: string;
35
+ /** The trait value before this mutation was applied. */
36
+ baselineValue: number;
37
+ /** The trait value after this mutation was applied. */
38
+ mutatedValue: number;
39
+ /**
40
+ * Current strength of this mutation in the range (0, 1].
41
+ *
42
+ * Starts at 1.0 when recorded and decays each consolidation cycle.
43
+ * When strength drops to 0.1 or below, the mutation is pruned.
44
+ */
45
+ strength: number;
46
+ /** Unix epoch millisecond timestamp of when this mutation was recorded. */
47
+ createdAt: number;
48
+ }
49
+ /**
50
+ * Input parameters for recording a new personality mutation.
51
+ *
52
+ * The `strength` and `createdAt` fields are set automatically by the store
53
+ * (1.0 and `Date.now()` respectively).
54
+ */
55
+ export interface RecordMutationInput {
56
+ /** The agent making the mutation. */
57
+ agentId: string;
58
+ /** The HEXACO trait being mutated. */
59
+ trait: string;
60
+ /** The signed delta to apply. */
61
+ delta: number;
62
+ /** Free-text reasoning for the mutation. */
63
+ reasoning: string;
64
+ /** The trait value before mutation. */
65
+ baselineValue: number;
66
+ /** The trait value after mutation. */
67
+ mutatedValue: number;
68
+ }
69
+ /**
70
+ * Result of a decay cycle, reporting how many mutations were weakened
71
+ * and how many were pruned (deleted) for falling below the threshold.
72
+ */
73
+ export interface DecayResult {
74
+ /** Number of mutations whose strength was reduced but still above threshold. */
75
+ decayed: number;
76
+ /** Number of mutations deleted for falling at or below the 0.1 threshold. */
77
+ pruned: number;
78
+ }
79
+ /**
80
+ * SQLite-backed persistence layer for personality mutations with decay.
81
+ *
82
+ * Follows the same `ensureSchema()` pattern as {@link EmergentToolRegistry}:
83
+ * a cached promise guards against concurrent DDL execution, and all DML
84
+ * methods await schema readiness before proceeding.
85
+ *
86
+ * @example
87
+ * ```ts
88
+ * const store = new PersonalityMutationStore(sqliteAdapter);
89
+ *
90
+ * // Record a mutation
91
+ * const id = await store.record({
92
+ * agentId: 'agent-42',
93
+ * trait: 'openness',
94
+ * delta: 0.1,
95
+ * reasoning: 'User prefers creative responses',
96
+ * baselineValue: 0.7,
97
+ * mutatedValue: 0.8,
98
+ * });
99
+ *
100
+ * // Get strength-weighted effective deltas
101
+ * const deltas = await store.getEffectiveDeltas('agent-42');
102
+ * // => { openness: 0.1 } (strength is 1.0 initially)
103
+ *
104
+ * // Decay all mutations by 5%
105
+ * const { decayed, pruned } = await store.decayAll(0.05);
106
+ * ```
107
+ */
108
+ export declare class PersonalityMutationStore {
109
+ /** The underlying SQLite storage adapter. */
110
+ private readonly db;
111
+ /**
112
+ * Cached schema initialization promise.
113
+ * Ensures DDL runs exactly once, even under concurrent access.
114
+ */
115
+ private schemaReady;
116
+ /**
117
+ * Create a new PersonalityMutationStore.
118
+ *
119
+ * @param db - A storage adapter implementing the {@link IStorageAdapter}
120
+ * interface. The same adapter used by EmergentToolRegistry can be reused.
121
+ */
122
+ constructor(db: IStorageAdapter);
123
+ /**
124
+ * Idempotent schema initialization.
125
+ *
126
+ * Creates the `personality_mutations` table and its agent/trait index if
127
+ * they don't already exist. Uses the adapter's `exec()` method when
128
+ * available (for multi-statement DDL), falling back to individual `run()`
129
+ * calls for adapters that don't support it.
130
+ *
131
+ * @returns A promise that resolves when the schema is ready.
132
+ */
133
+ private ensureSchema;
134
+ /**
135
+ * Record a new personality mutation.
136
+ *
137
+ * Inserts a mutation record with initial strength of 1.0 and the current
138
+ * timestamp. The mutation ID is generated deterministically from the
139
+ * current time and a random suffix.
140
+ *
141
+ * @param input - The mutation parameters (agent, trait, delta, reasoning, values).
142
+ * @returns The generated mutation ID.
143
+ */
144
+ record(input: RecordMutationInput): Promise<string>;
145
+ /**
146
+ * Load all active mutations for a given agent.
147
+ *
148
+ * Returns only mutations whose strength is above the 0.1 pruning threshold,
149
+ * ordered by creation time (newest first).
150
+ *
151
+ * @param agentId - The agent whose mutations to load.
152
+ * @returns An array of {@link PersonalityMutation} records.
153
+ */
154
+ loadForAgent(agentId: string): Promise<PersonalityMutation[]>;
155
+ /**
156
+ * Compute the effective (strength-weighted) delta for each trait.
157
+ *
158
+ * For each active mutation, multiplies the raw delta by the mutation's
159
+ * current strength, then sums per trait. This gives a realistic picture
160
+ * of how much each trait has drifted from baseline, accounting for decay.
161
+ *
162
+ * @param agentId - The agent whose effective deltas to compute.
163
+ * @returns A map of trait name to effective delta (sum of `delta * strength`).
164
+ */
165
+ getEffectiveDeltas(agentId: string): Promise<Record<string, number>>;
166
+ /**
167
+ * Decay all active mutations by the given rate and prune expired ones.
168
+ *
169
+ * For each mutation with strength above 0.1:
170
+ * - Subtracts `rate` from its strength.
171
+ * - If the new strength is at or below 0.1, the mutation is deleted (pruned).
172
+ * - Otherwise, the strength is updated in place.
173
+ *
174
+ * This implements Ebbinghaus-style forgetting: mutations that aren't
175
+ * reinforced by repeated adaptation gradually fade away.
176
+ *
177
+ * @param rate - The amount to subtract from each mutation's strength.
178
+ * Typically 0.05 (the default from SelfImprovementConfig).
179
+ * @returns A {@link DecayResult} with counts of decayed and pruned mutations.
180
+ */
181
+ decayAll(rate: number): Promise<DecayResult>;
182
+ }
183
+ //# sourceMappingURL=PersonalityMutationStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PersonalityMutationStore.d.ts","sourceRoot":"","sources":["../../src/emergent/PersonalityMutationStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAMjE;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,EAAE,EAAE,MAAM,CAAC;IAEX,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAEhB,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAC;IAEd,6FAA6F;IAC7F,KAAK,EAAE,MAAM,CAAC;IAEd,+EAA+E;IAC/E,SAAS,EAAE,MAAM,CAAC;IAElB,wDAAwD;IACxD,aAAa,EAAE,MAAM,CAAC;IAEtB,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAEhB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IAEd,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IAEd,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;IAElB,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;IAEtB,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,gFAAgF;IAChF,OAAO,EAAE,MAAM,CAAC;IAEhB,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,wBAAwB;IACnC,6CAA6C;IAC7C,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAkB;IAErC;;;OAGG;IACH,OAAO,CAAC,WAAW,CAA8B;IAEjD;;;;;OAKG;gBACS,EAAE,EAAE,eAAe;IAQ/B;;;;;;;;;OASG;YACW,YAAY;IAoC1B;;;;;;;;;OASG;IACG,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BzD;;;;;;;;OAQG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAyBnE;;;;;;;;;OASG;IACG,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAe1E;;;;;;;;;;;;;;OAcG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CA4BnD"}
@@ -0,0 +1,222 @@
1
+ /**
2
+ * @fileoverview SQLite persistence for personality mutations with
3
+ * Ebbinghaus-style strength decay.
4
+ *
5
+ * Mutations persist across sessions and gradually fade toward baseline
6
+ * unless reinforced by repeated adaptation. The ConsolidationLoop calls
7
+ * {@link PersonalityMutationStore.decayAll} each cycle to reduce mutation
8
+ * strengths; mutations whose strength drops below the 0.1 threshold are
9
+ * pruned automatically.
10
+ *
11
+ * Uses the same {@link IStorageAdapter} interface as EmergentToolRegistry,
12
+ * keeping storage concerns decoupled from specific SQLite drivers.
13
+ *
14
+ * @module @framers/agentos/emergent/PersonalityMutationStore
15
+ */
16
+ // ============================================================================
17
+ // STORE
18
+ // ============================================================================
19
+ /**
20
+ * SQLite-backed persistence layer for personality mutations with decay.
21
+ *
22
+ * Follows the same `ensureSchema()` pattern as {@link EmergentToolRegistry}:
23
+ * a cached promise guards against concurrent DDL execution, and all DML
24
+ * methods await schema readiness before proceeding.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * const store = new PersonalityMutationStore(sqliteAdapter);
29
+ *
30
+ * // Record a mutation
31
+ * const id = await store.record({
32
+ * agentId: 'agent-42',
33
+ * trait: 'openness',
34
+ * delta: 0.1,
35
+ * reasoning: 'User prefers creative responses',
36
+ * baselineValue: 0.7,
37
+ * mutatedValue: 0.8,
38
+ * });
39
+ *
40
+ * // Get strength-weighted effective deltas
41
+ * const deltas = await store.getEffectiveDeltas('agent-42');
42
+ * // => { openness: 0.1 } (strength is 1.0 initially)
43
+ *
44
+ * // Decay all mutations by 5%
45
+ * const { decayed, pruned } = await store.decayAll(0.05);
46
+ * ```
47
+ */
48
+ export class PersonalityMutationStore {
49
+ /**
50
+ * Create a new PersonalityMutationStore.
51
+ *
52
+ * @param db - A storage adapter implementing the {@link IStorageAdapter}
53
+ * interface. The same adapter used by EmergentToolRegistry can be reused.
54
+ */
55
+ constructor(db) {
56
+ /**
57
+ * Cached schema initialization promise.
58
+ * Ensures DDL runs exactly once, even under concurrent access.
59
+ */
60
+ this.schemaReady = null;
61
+ this.db = db;
62
+ }
63
+ // --------------------------------------------------------------------------
64
+ // SCHEMA
65
+ // --------------------------------------------------------------------------
66
+ /**
67
+ * Idempotent schema initialization.
68
+ *
69
+ * Creates the `personality_mutations` table and its agent/trait index if
70
+ * they don't already exist. Uses the adapter's `exec()` method when
71
+ * available (for multi-statement DDL), falling back to individual `run()`
72
+ * calls for adapters that don't support it.
73
+ *
74
+ * @returns A promise that resolves when the schema is ready.
75
+ */
76
+ async ensureSchema() {
77
+ if (!this.schemaReady) {
78
+ this.schemaReady = (async () => {
79
+ const ddl = `
80
+ CREATE TABLE IF NOT EXISTS personality_mutations (
81
+ id TEXT PRIMARY KEY,
82
+ agent_id TEXT NOT NULL,
83
+ trait TEXT NOT NULL,
84
+ delta REAL NOT NULL,
85
+ reasoning TEXT NOT NULL,
86
+ baseline_value REAL NOT NULL,
87
+ mutated_value REAL NOT NULL,
88
+ strength REAL NOT NULL DEFAULT 1.0,
89
+ created_at BIGINT NOT NULL
90
+ );
91
+ CREATE INDEX IF NOT EXISTS idx_personality_mutations_agent
92
+ ON personality_mutations(agent_id, trait);
93
+ `;
94
+ if (this.db.exec) {
95
+ await this.db.exec(ddl);
96
+ }
97
+ else {
98
+ // Split on semicolons and execute each non-empty statement individually.
99
+ for (const stmt of ddl.split(';').filter((s) => s.trim())) {
100
+ await this.db.run(stmt);
101
+ }
102
+ }
103
+ })();
104
+ }
105
+ return this.schemaReady;
106
+ }
107
+ // --------------------------------------------------------------------------
108
+ // RECORD
109
+ // --------------------------------------------------------------------------
110
+ /**
111
+ * Record a new personality mutation.
112
+ *
113
+ * Inserts a mutation record with initial strength of 1.0 and the current
114
+ * timestamp. The mutation ID is generated deterministically from the
115
+ * current time and a random suffix.
116
+ *
117
+ * @param input - The mutation parameters (agent, trait, delta, reasoning, values).
118
+ * @returns The generated mutation ID.
119
+ */
120
+ async record(input) {
121
+ await this.ensureSchema();
122
+ const id = `pm_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
123
+ await this.db.run(`INSERT INTO personality_mutations
124
+ (id, agent_id, trait, delta, reasoning, baseline_value, mutated_value, strength, created_at)
125
+ VALUES (?, ?, ?, ?, ?, ?, ?, 1.0, ?)`, [
126
+ id,
127
+ input.agentId,
128
+ input.trait,
129
+ input.delta,
130
+ input.reasoning,
131
+ input.baselineValue,
132
+ input.mutatedValue,
133
+ Date.now(),
134
+ ]);
135
+ return id;
136
+ }
137
+ // --------------------------------------------------------------------------
138
+ // LOAD
139
+ // --------------------------------------------------------------------------
140
+ /**
141
+ * Load all active mutations for a given agent.
142
+ *
143
+ * Returns only mutations whose strength is above the 0.1 pruning threshold,
144
+ * ordered by creation time (newest first).
145
+ *
146
+ * @param agentId - The agent whose mutations to load.
147
+ * @returns An array of {@link PersonalityMutation} records.
148
+ */
149
+ async loadForAgent(agentId) {
150
+ await this.ensureSchema();
151
+ const rows = await this.db.all('SELECT * FROM personality_mutations WHERE agent_id = ? AND strength > 0.1 ORDER BY created_at DESC', [agentId]);
152
+ return rows.map((r) => ({
153
+ id: r.id,
154
+ agentId: r.agent_id,
155
+ trait: r.trait,
156
+ delta: r.delta,
157
+ reasoning: r.reasoning,
158
+ baselineValue: r.baseline_value,
159
+ mutatedValue: r.mutated_value,
160
+ strength: r.strength,
161
+ createdAt: r.created_at,
162
+ }));
163
+ }
164
+ // --------------------------------------------------------------------------
165
+ // EFFECTIVE DELTAS
166
+ // --------------------------------------------------------------------------
167
+ /**
168
+ * Compute the effective (strength-weighted) delta for each trait.
169
+ *
170
+ * For each active mutation, multiplies the raw delta by the mutation's
171
+ * current strength, then sums per trait. This gives a realistic picture
172
+ * of how much each trait has drifted from baseline, accounting for decay.
173
+ *
174
+ * @param agentId - The agent whose effective deltas to compute.
175
+ * @returns A map of trait name to effective delta (sum of `delta * strength`).
176
+ */
177
+ async getEffectiveDeltas(agentId) {
178
+ const mutations = await this.loadForAgent(agentId);
179
+ const deltas = {};
180
+ for (const m of mutations) {
181
+ deltas[m.trait] = (deltas[m.trait] ?? 0) + m.delta * m.strength;
182
+ }
183
+ return deltas;
184
+ }
185
+ // --------------------------------------------------------------------------
186
+ // DECAY
187
+ // --------------------------------------------------------------------------
188
+ /**
189
+ * Decay all active mutations by the given rate and prune expired ones.
190
+ *
191
+ * For each mutation with strength above 0.1:
192
+ * - Subtracts `rate` from its strength.
193
+ * - If the new strength is at or below 0.1, the mutation is deleted (pruned).
194
+ * - Otherwise, the strength is updated in place.
195
+ *
196
+ * This implements Ebbinghaus-style forgetting: mutations that aren't
197
+ * reinforced by repeated adaptation gradually fade away.
198
+ *
199
+ * @param rate - The amount to subtract from each mutation's strength.
200
+ * Typically 0.05 (the default from SelfImprovementConfig).
201
+ * @returns A {@link DecayResult} with counts of decayed and pruned mutations.
202
+ */
203
+ async decayAll(rate) {
204
+ await this.ensureSchema();
205
+ const all = await this.db.all('SELECT id, strength FROM personality_mutations WHERE strength > 0.1', []);
206
+ let decayed = 0;
207
+ let pruned = 0;
208
+ for (const row of all) {
209
+ const newStrength = row.strength - rate;
210
+ if (newStrength <= 0.1) {
211
+ await this.db.run('DELETE FROM personality_mutations WHERE id = ?', [row.id]);
212
+ pruned++;
213
+ }
214
+ else {
215
+ await this.db.run('UPDATE personality_mutations SET strength = ? WHERE id = ?', [newStrength, row.id]);
216
+ decayed++;
217
+ }
218
+ }
219
+ return { decayed, pruned };
220
+ }
221
+ }
222
+ //# sourceMappingURL=PersonalityMutationStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PersonalityMutationStore.js","sourceRoot":"","sources":["../../src/emergent/PersonalityMutationStore.ts"],"names":[],"mappings":"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"}