agentic-flow 1.10.1 → 1.10.2

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 (554) hide show
  1. package/CHANGELOG.md +25 -1338
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/agentdb/index.d.ts +26 -0
  4. package/dist/agentdb/index.d.ts.map +1 -0
  5. package/dist/agentdb/index.js +1 -0
  6. package/dist/agentdb/index.js.map +1 -0
  7. package/dist/agentdb/validate-frontier.cjs +416 -0
  8. package/dist/agentdb/validate-frontier.cjs.map +1 -0
  9. package/dist/agentdb/validate-frontier.d.cts +2 -0
  10. package/dist/agentdb/validate-frontier.d.cts.map +1 -0
  11. package/dist/agents/claudeAgent.d.ts +6 -0
  12. package/dist/agents/claudeAgent.d.ts.map +1 -0
  13. package/dist/agents/claudeAgent.js +22 -3
  14. package/dist/agents/claudeAgent.js.map +1 -0
  15. package/dist/agents/claudeAgentDirect.d.ts +6 -0
  16. package/dist/agents/claudeAgentDirect.d.ts.map +1 -0
  17. package/dist/agents/claudeAgentDirect.js +1 -0
  18. package/dist/agents/claudeAgentDirect.js.map +1 -0
  19. package/dist/agents/claudeFlowAgent.d.ts +32 -0
  20. package/dist/agents/claudeFlowAgent.d.ts.map +1 -0
  21. package/dist/agents/claudeFlowAgent.js +1 -0
  22. package/dist/agents/claudeFlowAgent.js.map +1 -0
  23. package/dist/agents/codeReviewAgent.d.ts +4 -0
  24. package/dist/agents/codeReviewAgent.d.ts.map +1 -0
  25. package/dist/agents/codeReviewAgent.js +1 -0
  26. package/dist/agents/codeReviewAgent.js.map +1 -0
  27. package/dist/agents/dataAgent.d.ts +4 -0
  28. package/dist/agents/dataAgent.d.ts.map +1 -0
  29. package/dist/agents/dataAgent.js +1 -0
  30. package/dist/agents/dataAgent.js.map +1 -0
  31. package/dist/agents/directApiAgent.d.ts +10 -0
  32. package/dist/agents/directApiAgent.d.ts.map +1 -0
  33. package/dist/agents/directApiAgent.js +1 -0
  34. package/dist/agents/directApiAgent.js.map +1 -0
  35. package/dist/agents/webResearchAgent.d.ts +4 -0
  36. package/dist/agents/webResearchAgent.d.ts.map +1 -0
  37. package/dist/agents/webResearchAgent.js +1 -0
  38. package/dist/agents/webResearchAgent.js.map +1 -0
  39. package/dist/cli/agent-manager.d.ts +57 -0
  40. package/dist/cli/agent-manager.d.ts.map +1 -0
  41. package/dist/cli/agent-manager.js +1 -0
  42. package/dist/cli/agent-manager.js.map +1 -0
  43. package/dist/cli/claude-code-wrapper.d.ts +21 -0
  44. package/dist/cli/claude-code-wrapper.d.ts.map +1 -0
  45. package/dist/cli/claude-code-wrapper.js +1 -0
  46. package/dist/cli/claude-code-wrapper.js.map +1 -0
  47. package/dist/cli/config-wizard.d.ts +21 -0
  48. package/dist/cli/config-wizard.d.ts.map +1 -0
  49. package/dist/cli/config-wizard.js +1 -0
  50. package/dist/cli/config-wizard.js.map +1 -0
  51. package/dist/cli/federation-cli.d.ts +1 -0
  52. package/dist/cli/federation-cli.d.ts.map +1 -0
  53. package/dist/cli/federation-cli.js +1 -0
  54. package/dist/cli/federation-cli.js.map +1 -0
  55. package/dist/cli/mcp-manager.d.ts +12 -0
  56. package/dist/cli/mcp-manager.d.ts.map +1 -0
  57. package/dist/cli/mcp-manager.js +1 -0
  58. package/dist/cli/mcp-manager.js.map +1 -0
  59. package/dist/cli/mcp.d.ts +11 -0
  60. package/dist/cli/mcp.d.ts.map +1 -0
  61. package/dist/cli/mcp.js +1 -0
  62. package/dist/cli/mcp.js.map +1 -0
  63. package/dist/cli-proxy.d.ts +7 -0
  64. package/dist/cli-proxy.d.ts.map +1 -0
  65. package/dist/cli-proxy.js +1 -0
  66. package/dist/cli-proxy.js.map +1 -0
  67. package/dist/cli-standalone-proxy.d.ts +17 -0
  68. package/dist/cli-standalone-proxy.d.ts.map +1 -0
  69. package/dist/cli-standalone-proxy.js +1 -0
  70. package/dist/cli-standalone-proxy.js.map +1 -0
  71. package/dist/config/claudeFlow.d.ts +33 -0
  72. package/dist/config/claudeFlow.d.ts.map +1 -0
  73. package/dist/config/claudeFlow.js +1 -0
  74. package/dist/config/claudeFlow.js.map +1 -0
  75. package/dist/config/quic.d.ts +58 -0
  76. package/dist/config/quic.d.ts.map +1 -0
  77. package/dist/config/quic.js +1 -0
  78. package/dist/config/quic.js.map +1 -0
  79. package/dist/config/tools.d.ts +17 -0
  80. package/dist/config/tools.d.ts.map +1 -0
  81. package/dist/config/tools.js +1 -0
  82. package/dist/config/tools.js.map +1 -0
  83. package/dist/core/long-running-agent.d.ts +92 -0
  84. package/dist/core/long-running-agent.d.ts.map +1 -0
  85. package/dist/core/long-running-agent.js +1 -0
  86. package/dist/core/long-running-agent.js.map +1 -0
  87. package/dist/core/provider-manager.d.ts +145 -0
  88. package/dist/core/provider-manager.d.ts.map +1 -0
  89. package/dist/core/provider-manager.js +1 -0
  90. package/dist/core/provider-manager.js.map +1 -0
  91. package/dist/examples/multi-agent-orchestration.d.ts +3 -0
  92. package/dist/examples/multi-agent-orchestration.d.ts.map +1 -0
  93. package/dist/examples/multi-agent-orchestration.js +1 -0
  94. package/dist/examples/multi-agent-orchestration.js.map +1 -0
  95. package/dist/examples/use-goal-planner.d.ts +3 -0
  96. package/dist/examples/use-goal-planner.d.ts.map +1 -0
  97. package/dist/examples/use-goal-planner.js +1 -0
  98. package/dist/examples/use-goal-planner.js.map +1 -0
  99. package/dist/examples/use-provider-fallback.d.ts +13 -0
  100. package/dist/examples/use-provider-fallback.d.ts.map +1 -0
  101. package/dist/examples/use-provider-fallback.js +1 -0
  102. package/dist/examples/use-provider-fallback.js.map +1 -0
  103. package/dist/federation/EphemeralAgent.d.ts +84 -0
  104. package/dist/federation/EphemeralAgent.d.ts.map +1 -0
  105. package/dist/federation/EphemeralAgent.js +1 -0
  106. package/dist/federation/EphemeralAgent.js.map +1 -0
  107. package/dist/federation/FederationHub.d.ts +89 -0
  108. package/dist/federation/FederationHub.d.ts.map +1 -0
  109. package/dist/federation/FederationHub.js +1 -0
  110. package/dist/federation/FederationHub.js.map +1 -0
  111. package/dist/federation/FederationHubClient.d.ts +70 -0
  112. package/dist/federation/FederationHubClient.d.ts.map +1 -0
  113. package/dist/federation/FederationHubClient.js +1 -0
  114. package/dist/federation/FederationHubClient.js.map +1 -0
  115. package/dist/federation/FederationHubServer.d.ts +100 -0
  116. package/dist/federation/FederationHubServer.d.ts.map +1 -0
  117. package/dist/federation/FederationHubServer.js +1 -0
  118. package/dist/federation/FederationHubServer.js.map +1 -0
  119. package/dist/federation/SecurityManager.d.ts +80 -0
  120. package/dist/federation/SecurityManager.d.ts.map +1 -0
  121. package/dist/federation/SecurityManager.js +1 -0
  122. package/dist/federation/SecurityManager.js.map +1 -0
  123. package/dist/federation/debug/agent-debug-stream.d.ts +171 -0
  124. package/dist/federation/debug/agent-debug-stream.d.ts.map +1 -0
  125. package/dist/federation/debug/agent-debug-stream.js +1 -0
  126. package/dist/federation/debug/agent-debug-stream.js.map +1 -0
  127. package/dist/federation/debug/debug-stream.d.ts +157 -0
  128. package/dist/federation/debug/debug-stream.d.ts.map +1 -0
  129. package/dist/federation/debug/debug-stream.js +1 -0
  130. package/dist/federation/debug/debug-stream.js.map +1 -0
  131. package/dist/federation/index.d.ts +13 -0
  132. package/dist/federation/index.d.ts.map +1 -0
  133. package/dist/federation/index.js +1 -0
  134. package/dist/federation/index.js.map +1 -0
  135. package/dist/federation/integrations/realtime-federation.d.ts +144 -0
  136. package/dist/federation/integrations/realtime-federation.d.ts.map +1 -0
  137. package/dist/federation/integrations/realtime-federation.js +1 -0
  138. package/dist/federation/integrations/realtime-federation.js.map +1 -0
  139. package/dist/federation/integrations/supabase-adapter-debug.d.ts +91 -0
  140. package/dist/federation/integrations/supabase-adapter-debug.d.ts.map +1 -0
  141. package/dist/federation/integrations/supabase-adapter-debug.js +1 -0
  142. package/dist/federation/integrations/supabase-adapter-debug.js.map +1 -0
  143. package/dist/federation/integrations/supabase-adapter.d.ts +89 -0
  144. package/dist/federation/integrations/supabase-adapter.d.ts.map +1 -0
  145. package/dist/federation/integrations/supabase-adapter.js +1 -0
  146. package/dist/federation/integrations/supabase-adapter.js.map +1 -0
  147. package/dist/health.d.ts +28 -0
  148. package/dist/health.d.ts.map +1 -0
  149. package/dist/health.js +1 -0
  150. package/dist/health.js.map +1 -0
  151. package/dist/hooks/parallel-validation.d.ts +51 -0
  152. package/dist/hooks/parallel-validation.d.ts.map +1 -0
  153. package/dist/hooks/parallel-validation.js +1 -0
  154. package/dist/hooks/parallel-validation.js.map +1 -0
  155. package/dist/hooks/swarm-learning-optimizer.d.ts +89 -0
  156. package/dist/hooks/swarm-learning-optimizer.d.ts.map +1 -0
  157. package/dist/hooks/swarm-learning-optimizer.js +1 -0
  158. package/dist/hooks/swarm-learning-optimizer.js.map +1 -0
  159. package/dist/index.d.ts +4 -0
  160. package/dist/index.d.ts.map +1 -0
  161. package/dist/index.js +15 -0
  162. package/dist/index.js.map +1 -0
  163. package/dist/mcp/claudeFlowSdkServer.d.ts +6 -0
  164. package/dist/mcp/claudeFlowSdkServer.d.ts.map +1 -0
  165. package/dist/mcp/claudeFlowSdkServer.js +1 -0
  166. package/dist/mcp/claudeFlowSdkServer.js.map +1 -0
  167. package/dist/mcp/fastmcp/servers/claude-flow-sdk.d.ts +3 -0
  168. package/dist/mcp/fastmcp/servers/claude-flow-sdk.d.ts.map +1 -0
  169. package/dist/mcp/fastmcp/servers/claude-flow-sdk.js +1 -0
  170. package/dist/mcp/fastmcp/servers/claude-flow-sdk.js.map +1 -0
  171. package/dist/mcp/fastmcp/servers/http-sse.d.ts +3 -0
  172. package/dist/mcp/fastmcp/servers/http-sse.d.ts.map +1 -0
  173. package/dist/mcp/fastmcp/servers/http-sse.js +1 -0
  174. package/dist/mcp/fastmcp/servers/http-sse.js.map +1 -0
  175. package/dist/mcp/fastmcp/servers/http-streaming-updated.d.ts +3 -0
  176. package/dist/mcp/fastmcp/servers/http-streaming-updated.d.ts.map +1 -0
  177. package/dist/mcp/fastmcp/servers/http-streaming-updated.js +1 -0
  178. package/dist/mcp/fastmcp/servers/http-streaming-updated.js.map +1 -0
  179. package/dist/mcp/fastmcp/servers/poc-stdio.d.ts +3 -0
  180. package/dist/mcp/fastmcp/servers/poc-stdio.d.ts.map +1 -0
  181. package/dist/mcp/fastmcp/servers/poc-stdio.js +1 -0
  182. package/dist/mcp/fastmcp/servers/poc-stdio.js.map +1 -0
  183. package/dist/mcp/fastmcp/servers/stdio-full.d.ts +3 -0
  184. package/dist/mcp/fastmcp/servers/stdio-full.d.ts.map +1 -0
  185. package/dist/mcp/fastmcp/servers/stdio-full.js +1 -0
  186. package/dist/mcp/fastmcp/servers/stdio-full.js.map +1 -0
  187. package/dist/mcp/fastmcp/tools/agent/add-agent.d.ts +3 -0
  188. package/dist/mcp/fastmcp/tools/agent/add-agent.d.ts.map +1 -0
  189. package/dist/mcp/fastmcp/tools/agent/add-agent.js +1 -0
  190. package/dist/mcp/fastmcp/tools/agent/add-agent.js.map +1 -0
  191. package/dist/mcp/fastmcp/tools/agent/add-command.d.ts +3 -0
  192. package/dist/mcp/fastmcp/tools/agent/add-command.d.ts.map +1 -0
  193. package/dist/mcp/fastmcp/tools/agent/add-command.js +1 -0
  194. package/dist/mcp/fastmcp/tools/agent/add-command.js.map +1 -0
  195. package/dist/mcp/fastmcp/tools/agent/execute.d.ts +3 -0
  196. package/dist/mcp/fastmcp/tools/agent/execute.d.ts.map +1 -0
  197. package/dist/mcp/fastmcp/tools/agent/execute.js +1 -0
  198. package/dist/mcp/fastmcp/tools/agent/execute.js.map +1 -0
  199. package/dist/mcp/fastmcp/tools/agent/list.d.ts +3 -0
  200. package/dist/mcp/fastmcp/tools/agent/list.d.ts.map +1 -0
  201. package/dist/mcp/fastmcp/tools/agent/list.js +1 -0
  202. package/dist/mcp/fastmcp/tools/agent/list.js.map +1 -0
  203. package/dist/mcp/fastmcp/tools/agent/parallel.d.ts +3 -0
  204. package/dist/mcp/fastmcp/tools/agent/parallel.d.ts.map +1 -0
  205. package/dist/mcp/fastmcp/tools/agent/parallel.js +1 -0
  206. package/dist/mcp/fastmcp/tools/agent/parallel.js.map +1 -0
  207. package/dist/mcp/fastmcp/tools/swarm/init.d.ts +3 -0
  208. package/dist/mcp/fastmcp/tools/swarm/init.d.ts.map +1 -0
  209. package/dist/mcp/fastmcp/tools/swarm/init.js +1 -0
  210. package/dist/mcp/fastmcp/tools/swarm/init.js.map +1 -0
  211. package/dist/mcp/fastmcp/tools/swarm/orchestrate.d.ts +3 -0
  212. package/dist/mcp/fastmcp/tools/swarm/orchestrate.d.ts.map +1 -0
  213. package/dist/mcp/fastmcp/tools/swarm/orchestrate.js +1 -0
  214. package/dist/mcp/fastmcp/tools/swarm/orchestrate.js.map +1 -0
  215. package/dist/mcp/fastmcp/tools/swarm/spawn.d.ts +3 -0
  216. package/dist/mcp/fastmcp/tools/swarm/spawn.d.ts.map +1 -0
  217. package/dist/mcp/fastmcp/tools/swarm/spawn.js +1 -0
  218. package/dist/mcp/fastmcp/tools/swarm/spawn.js.map +1 -0
  219. package/dist/mcp/fastmcp/types/index.d.ts +33 -0
  220. package/dist/mcp/fastmcp/types/index.d.ts.map +1 -0
  221. package/dist/mcp/fastmcp/types/index.js +1 -0
  222. package/dist/mcp/fastmcp/types/index.js.map +1 -0
  223. package/dist/mcp/standalone-stdio.d.ts +3 -0
  224. package/dist/mcp/standalone-stdio.d.ts.map +1 -0
  225. package/dist/mcp/standalone-stdio.js +1 -0
  226. package/dist/mcp/standalone-stdio.js.map +1 -0
  227. package/dist/memory/SharedMemoryPool.d.ts +116 -0
  228. package/dist/memory/SharedMemoryPool.d.ts.map +1 -0
  229. package/dist/memory/SharedMemoryPool.js +1 -0
  230. package/dist/memory/SharedMemoryPool.js.map +1 -0
  231. package/dist/memory/index.d.ts +8 -0
  232. package/dist/memory/index.d.ts.map +1 -0
  233. package/dist/memory/index.js +1 -0
  234. package/dist/memory/index.js.map +1 -0
  235. package/dist/proxy/adaptive-proxy.d.ts +51 -0
  236. package/dist/proxy/adaptive-proxy.d.ts.map +1 -0
  237. package/dist/proxy/adaptive-proxy.js +1 -0
  238. package/dist/proxy/adaptive-proxy.js.map +1 -0
  239. package/dist/proxy/anthropic-to-gemini.d.ts +20 -0
  240. package/dist/proxy/anthropic-to-gemini.d.ts.map +1 -0
  241. package/dist/proxy/anthropic-to-gemini.js +1 -0
  242. package/dist/proxy/anthropic-to-gemini.js.map +1 -0
  243. package/dist/proxy/anthropic-to-onnx.d.ts +17 -0
  244. package/dist/proxy/anthropic-to-onnx.d.ts.map +1 -0
  245. package/dist/proxy/anthropic-to-onnx.js +1 -0
  246. package/dist/proxy/anthropic-to-onnx.js.map +1 -0
  247. package/dist/proxy/anthropic-to-openrouter.d.ts +28 -0
  248. package/dist/proxy/anthropic-to-openrouter.d.ts.map +1 -0
  249. package/dist/proxy/anthropic-to-openrouter.js +1 -0
  250. package/dist/proxy/anthropic-to-openrouter.js.map +1 -0
  251. package/dist/proxy/anthropic-to-requesty.d.ts +33 -0
  252. package/dist/proxy/anthropic-to-requesty.d.ts.map +1 -0
  253. package/dist/proxy/anthropic-to-requesty.js +1 -0
  254. package/dist/proxy/anthropic-to-requesty.js.map +1 -0
  255. package/dist/proxy/http2-proxy-optimized.d.ts +63 -0
  256. package/dist/proxy/http2-proxy-optimized.d.ts.map +1 -0
  257. package/dist/proxy/http2-proxy-optimized.js +1 -0
  258. package/dist/proxy/http2-proxy-optimized.js.map +1 -0
  259. package/dist/proxy/http2-proxy.d.ts +43 -0
  260. package/dist/proxy/http2-proxy.d.ts.map +1 -0
  261. package/dist/proxy/http2-proxy.js +1 -0
  262. package/dist/proxy/http2-proxy.js.map +1 -0
  263. package/dist/proxy/http3-proxy.d.ts +18 -0
  264. package/dist/proxy/http3-proxy.d.ts.map +1 -0
  265. package/dist/proxy/http3-proxy.js +1 -0
  266. package/dist/proxy/http3-proxy.js.map +1 -0
  267. package/dist/proxy/provider-instructions.d.ts +37 -0
  268. package/dist/proxy/provider-instructions.d.ts.map +1 -0
  269. package/dist/proxy/provider-instructions.js +1 -0
  270. package/dist/proxy/provider-instructions.js.map +1 -0
  271. package/dist/proxy/quic-proxy.d.ts +58 -0
  272. package/dist/proxy/quic-proxy.d.ts.map +1 -0
  273. package/dist/proxy/quic-proxy.js +1 -0
  274. package/dist/proxy/quic-proxy.js.map +1 -0
  275. package/dist/proxy/tool-emulation.d.ts +121 -0
  276. package/dist/proxy/tool-emulation.d.ts.map +1 -0
  277. package/dist/proxy/tool-emulation.js +1 -0
  278. package/dist/proxy/tool-emulation.js.map +1 -0
  279. package/dist/proxy/websocket-proxy.d.ts +39 -0
  280. package/dist/proxy/websocket-proxy.d.ts.map +1 -0
  281. package/dist/proxy/websocket-proxy.js +1 -0
  282. package/dist/proxy/websocket-proxy.js.map +1 -0
  283. package/dist/reasoningbank/AdvancedMemory.d.ts +120 -0
  284. package/dist/reasoningbank/AdvancedMemory.d.ts.map +1 -0
  285. package/dist/reasoningbank/AdvancedMemory.js +1 -0
  286. package/dist/reasoningbank/AdvancedMemory.js.map +1 -0
  287. package/dist/reasoningbank/HybridBackend.d.ts +99 -0
  288. package/dist/reasoningbank/HybridBackend.d.ts.map +1 -0
  289. package/dist/reasoningbank/HybridBackend.js +1 -0
  290. package/dist/reasoningbank/HybridBackend.js.map +1 -0
  291. package/dist/reasoningbank/backend-selector.d.ts +79 -0
  292. package/dist/reasoningbank/backend-selector.d.ts.map +1 -0
  293. package/dist/reasoningbank/backend-selector.js +1 -0
  294. package/dist/reasoningbank/backend-selector.js.map +1 -0
  295. package/dist/reasoningbank/benchmark.d.ts +14 -0
  296. package/dist/reasoningbank/benchmark.d.ts.map +1 -0
  297. package/dist/reasoningbank/benchmark.js +1 -0
  298. package/dist/reasoningbank/benchmark.js.map +1 -0
  299. package/dist/reasoningbank/config/reasoningbank-types.d.ts +57 -0
  300. package/dist/reasoningbank/config/reasoningbank-types.d.ts.map +1 -0
  301. package/dist/reasoningbank/config/reasoningbank-types.js +1 -0
  302. package/dist/reasoningbank/config/reasoningbank-types.js.map +1 -0
  303. package/dist/reasoningbank/core/consolidate.d.ts +21 -0
  304. package/dist/reasoningbank/core/consolidate.d.ts.map +1 -0
  305. package/dist/reasoningbank/core/consolidate.js +1 -0
  306. package/dist/reasoningbank/core/consolidate.js.map +1 -0
  307. package/dist/reasoningbank/core/distill.d.ts +22 -0
  308. package/dist/reasoningbank/core/distill.d.ts.map +1 -0
  309. package/dist/reasoningbank/core/distill.js +1 -0
  310. package/dist/reasoningbank/core/distill.js.map +1 -0
  311. package/dist/reasoningbank/core/judge.d.ts +17 -0
  312. package/dist/reasoningbank/core/judge.d.ts.map +1 -0
  313. package/dist/reasoningbank/core/judge.js +1 -0
  314. package/dist/reasoningbank/core/judge.js.map +1 -0
  315. package/dist/reasoningbank/core/matts.d.ts +46 -0
  316. package/dist/reasoningbank/core/matts.d.ts.map +1 -0
  317. package/dist/reasoningbank/core/matts.js +1 -0
  318. package/dist/reasoningbank/core/matts.js.map +1 -0
  319. package/dist/reasoningbank/core/retrieve.d.ts +35 -0
  320. package/dist/reasoningbank/core/retrieve.d.ts.map +1 -0
  321. package/dist/reasoningbank/core/retrieve.js +1 -0
  322. package/dist/reasoningbank/core/retrieve.js.map +1 -0
  323. package/dist/reasoningbank/db/queries.d.ts +88 -0
  324. package/dist/reasoningbank/db/queries.d.ts.map +1 -0
  325. package/dist/reasoningbank/db/queries.js +1 -0
  326. package/dist/reasoningbank/db/queries.js.map +1 -0
  327. package/dist/reasoningbank/db/schema.d.ts +81 -0
  328. package/dist/reasoningbank/db/schema.d.ts.map +1 -0
  329. package/dist/reasoningbank/db/schema.js +1 -0
  330. package/dist/reasoningbank/db/schema.js.map +1 -0
  331. package/dist/reasoningbank/demo-comparison.d.ts +10 -0
  332. package/dist/reasoningbank/demo-comparison.d.ts.map +1 -0
  333. package/dist/reasoningbank/demo-comparison.js +1 -0
  334. package/dist/reasoningbank/demo-comparison.js.map +1 -0
  335. package/dist/reasoningbank/hooks/post-task.d.ts +9 -0
  336. package/dist/reasoningbank/hooks/post-task.d.ts.map +1 -0
  337. package/dist/reasoningbank/hooks/post-task.js +1 -0
  338. package/dist/reasoningbank/hooks/post-task.js.map +1 -0
  339. package/dist/reasoningbank/hooks/pre-task.d.ts +9 -0
  340. package/dist/reasoningbank/hooks/pre-task.d.ts.map +1 -0
  341. package/dist/reasoningbank/hooks/pre-task.js +1 -0
  342. package/dist/reasoningbank/hooks/pre-task.js.map +1 -0
  343. package/dist/reasoningbank/index-new.d.ts +49 -0
  344. package/dist/reasoningbank/index-new.d.ts.map +1 -0
  345. package/dist/reasoningbank/index-new.js +1 -0
  346. package/dist/reasoningbank/index-new.js.map +1 -0
  347. package/dist/reasoningbank/index.d.ts +50 -0
  348. package/dist/reasoningbank/index.d.ts.map +1 -0
  349. package/dist/reasoningbank/index.js +1 -0
  350. package/dist/reasoningbank/index.js.map +1 -0
  351. package/dist/reasoningbank/test-integration.d.ts +7 -0
  352. package/dist/reasoningbank/test-integration.d.ts.map +1 -0
  353. package/dist/reasoningbank/test-integration.js +1 -0
  354. package/dist/reasoningbank/test-integration.js.map +1 -0
  355. package/dist/reasoningbank/test-retrieval.d.ts +6 -0
  356. package/dist/reasoningbank/test-retrieval.d.ts.map +1 -0
  357. package/dist/reasoningbank/test-retrieval.js +1 -0
  358. package/dist/reasoningbank/test-retrieval.js.map +1 -0
  359. package/dist/reasoningbank/test-validation.d.ts +7 -0
  360. package/dist/reasoningbank/test-validation.d.ts.map +1 -0
  361. package/dist/reasoningbank/test-validation.js +1 -0
  362. package/dist/reasoningbank/test-validation.js.map +1 -0
  363. package/dist/reasoningbank/types/index.d.ts +123 -0
  364. package/dist/reasoningbank/types/index.d.ts.map +1 -0
  365. package/dist/reasoningbank/types/index.js +1 -0
  366. package/dist/reasoningbank/types/index.js.map +1 -0
  367. package/dist/reasoningbank/utils/config.d.ts +61 -0
  368. package/dist/reasoningbank/utils/config.d.ts.map +1 -0
  369. package/dist/reasoningbank/utils/config.js +1 -0
  370. package/dist/reasoningbank/utils/config.js.map +1 -0
  371. package/dist/reasoningbank/utils/embeddings.d.ts +21 -0
  372. package/dist/reasoningbank/utils/embeddings.d.ts.map +1 -0
  373. package/dist/reasoningbank/utils/embeddings.js +1 -0
  374. package/dist/reasoningbank/utils/embeddings.js.map +1 -0
  375. package/dist/reasoningbank/utils/mmr.d.ts +23 -0
  376. package/dist/reasoningbank/utils/mmr.d.ts.map +1 -0
  377. package/dist/reasoningbank/utils/mmr.js +1 -0
  378. package/dist/reasoningbank/utils/mmr.js.map +1 -0
  379. package/dist/reasoningbank/utils/pii-scrubber.d.ts +46 -0
  380. package/dist/reasoningbank/utils/pii-scrubber.d.ts.map +1 -0
  381. package/dist/reasoningbank/utils/pii-scrubber.js +1 -0
  382. package/dist/reasoningbank/utils/pii-scrubber.js.map +1 -0
  383. package/dist/reasoningbank/wasm-adapter.d.ts +104 -0
  384. package/dist/reasoningbank/wasm-adapter.d.ts.map +1 -0
  385. package/dist/reasoningbank/wasm-adapter.js +1 -0
  386. package/dist/reasoningbank/wasm-adapter.js.map +1 -0
  387. package/dist/router/model-mapping.d.ts +31 -0
  388. package/dist/router/model-mapping.d.ts.map +1 -0
  389. package/dist/router/model-mapping.js +1 -0
  390. package/dist/router/model-mapping.js.map +1 -0
  391. package/dist/router/providers/anthropic.d.ts +17 -0
  392. package/dist/router/providers/anthropic.d.ts.map +1 -0
  393. package/dist/router/providers/anthropic.js +1 -0
  394. package/dist/router/providers/anthropic.js.map +1 -0
  395. package/dist/router/providers/gemini.d.ts +17 -0
  396. package/dist/router/providers/gemini.d.ts.map +1 -0
  397. package/dist/router/providers/gemini.js +1 -0
  398. package/dist/router/providers/gemini.js.map +1 -0
  399. package/dist/router/providers/onnx-local-optimized.d.ts +71 -0
  400. package/dist/router/providers/onnx-local-optimized.d.ts.map +1 -0
  401. package/dist/router/providers/onnx-local-optimized.js +1 -0
  402. package/dist/router/providers/onnx-local-optimized.js.map +1 -0
  403. package/dist/router/providers/onnx-local.d.ts +75 -0
  404. package/dist/router/providers/onnx-local.d.ts.map +1 -0
  405. package/dist/router/providers/onnx-local.js +1 -0
  406. package/dist/router/providers/onnx-local.js.map +1 -0
  407. package/dist/router/providers/onnx-phi4.d.ts +64 -0
  408. package/dist/router/providers/onnx-phi4.d.ts.map +1 -0
  409. package/dist/router/providers/onnx-phi4.js +1 -0
  410. package/dist/router/providers/onnx-phi4.js.map +1 -0
  411. package/dist/router/providers/onnx.d.ts +65 -0
  412. package/dist/router/providers/onnx.d.ts.map +1 -0
  413. package/dist/router/providers/onnx.js +1 -0
  414. package/dist/router/providers/onnx.js.map +1 -0
  415. package/dist/router/providers/openrouter.d.ts +21 -0
  416. package/dist/router/providers/openrouter.d.ts.map +1 -0
  417. package/dist/router/providers/openrouter.js +1 -0
  418. package/dist/router/providers/openrouter.js.map +1 -0
  419. package/dist/router/router.d.ts +26 -0
  420. package/dist/router/router.d.ts.map +1 -0
  421. package/dist/router/router.js +1 -0
  422. package/dist/router/router.js.map +1 -0
  423. package/dist/router/test-integration.d.ts +13 -0
  424. package/dist/router/test-integration.d.ts.map +1 -0
  425. package/dist/router/test-integration.js +1 -0
  426. package/dist/router/test-integration.js.map +1 -0
  427. package/dist/router/test-onnx-benchmark.d.ts +7 -0
  428. package/dist/router/test-onnx-benchmark.d.ts.map +1 -0
  429. package/dist/router/test-onnx-benchmark.js +1 -0
  430. package/dist/router/test-onnx-benchmark.js.map +1 -0
  431. package/dist/router/test-onnx-integration.d.ts +8 -0
  432. package/dist/router/test-onnx-integration.d.ts.map +1 -0
  433. package/dist/router/test-onnx-integration.js +1 -0
  434. package/dist/router/test-onnx-integration.js.map +1 -0
  435. package/dist/router/test-onnx-local.d.ts +6 -0
  436. package/dist/router/test-onnx-local.d.ts.map +1 -0
  437. package/dist/router/test-onnx-local.js +1 -0
  438. package/dist/router/test-onnx-local.js.map +1 -0
  439. package/dist/router/test-onnx.d.ts +7 -0
  440. package/dist/router/test-onnx.d.ts.map +1 -0
  441. package/dist/router/test-onnx.js +1 -0
  442. package/dist/router/test-onnx.js.map +1 -0
  443. package/dist/router/test-openrouter.d.ts +3 -0
  444. package/dist/router/test-openrouter.d.ts.map +1 -0
  445. package/dist/router/test-openrouter.js +1 -0
  446. package/dist/router/test-openrouter.js.map +1 -0
  447. package/dist/router/test-phi4.d.ts +6 -0
  448. package/dist/router/test-phi4.d.ts.map +1 -0
  449. package/dist/router/test-phi4.js +1 -0
  450. package/dist/router/test-phi4.js.map +1 -0
  451. package/dist/router/types.d.ts +209 -0
  452. package/dist/router/types.d.ts.map +1 -0
  453. package/dist/router/types.js +1 -0
  454. package/dist/router/types.js.map +1 -0
  455. package/dist/swarm/index.d.ts +51 -0
  456. package/dist/swarm/index.d.ts.map +1 -0
  457. package/dist/swarm/index.js +1 -0
  458. package/dist/swarm/index.js.map +1 -0
  459. package/dist/swarm/quic-coordinator.d.ts +149 -0
  460. package/dist/swarm/quic-coordinator.d.ts.map +1 -0
  461. package/dist/swarm/quic-coordinator.js +1 -0
  462. package/dist/swarm/quic-coordinator.js.map +1 -0
  463. package/dist/swarm/transport-router.d.ts +124 -0
  464. package/dist/swarm/transport-router.d.ts.map +1 -0
  465. package/dist/swarm/transport-router.js +1 -0
  466. package/dist/swarm/transport-router.js.map +1 -0
  467. package/dist/transport/index.d.ts +2 -0
  468. package/dist/transport/index.d.ts.map +1 -0
  469. package/dist/transport/index.js +1 -0
  470. package/dist/transport/index.js.map +1 -0
  471. package/dist/transport/quic-handshake.d.ts +66 -0
  472. package/dist/transport/quic-handshake.d.ts.map +1 -0
  473. package/dist/transport/quic-handshake.js +1 -0
  474. package/dist/transport/quic-handshake.js.map +1 -0
  475. package/dist/transport/quic.d.ts +184 -0
  476. package/dist/transport/quic.d.ts.map +1 -0
  477. package/dist/transport/quic.js +1 -0
  478. package/dist/transport/quic.js.map +1 -0
  479. package/dist/utils/agentBoosterPreprocessor.d.ts +72 -0
  480. package/dist/utils/agentBoosterPreprocessor.d.ts.map +1 -0
  481. package/dist/utils/agentBoosterPreprocessor.js +1 -0
  482. package/dist/utils/agentBoosterPreprocessor.js.map +1 -0
  483. package/dist/utils/agentLoader.d.ts +22 -0
  484. package/dist/utils/agentLoader.d.ts.map +1 -0
  485. package/dist/utils/agentLoader.js +1 -0
  486. package/dist/utils/agentLoader.js.map +1 -0
  487. package/dist/utils/agentdb-runtime-patch.d.ts +28 -0
  488. package/dist/utils/agentdb-runtime-patch.d.ts.map +1 -0
  489. package/dist/utils/agentdb-runtime-patch.js +1 -0
  490. package/dist/utils/agentdb-runtime-patch.js.map +1 -0
  491. package/dist/utils/auth.d.ts +13 -0
  492. package/dist/utils/auth.d.ts.map +1 -0
  493. package/dist/utils/auth.js +1 -0
  494. package/dist/utils/auth.js.map +1 -0
  495. package/dist/utils/cli.d.ts +31 -0
  496. package/dist/utils/cli.d.ts.map +1 -0
  497. package/dist/utils/cli.js +1 -0
  498. package/dist/utils/cli.js.map +1 -0
  499. package/dist/utils/compression-middleware.d.ts +55 -0
  500. package/dist/utils/compression-middleware.d.ts.map +1 -0
  501. package/dist/utils/compression-middleware.js +1 -0
  502. package/dist/utils/compression-middleware.js.map +1 -0
  503. package/dist/utils/connection-pool.d.ts +30 -0
  504. package/dist/utils/connection-pool.d.ts.map +1 -0
  505. package/dist/utils/connection-pool.js +1 -0
  506. package/dist/utils/connection-pool.js.map +1 -0
  507. package/dist/utils/logger.d.ts +19 -0
  508. package/dist/utils/logger.d.ts.map +1 -0
  509. package/dist/utils/logger.js +1 -0
  510. package/dist/utils/logger.js.map +1 -0
  511. package/dist/utils/math.d.ts +12 -0
  512. package/dist/utils/math.d.ts.map +1 -0
  513. package/dist/utils/math.js +1 -0
  514. package/dist/utils/math.js.map +1 -0
  515. package/dist/utils/mcpCommands.d.ts +2 -0
  516. package/dist/utils/mcpCommands.d.ts.map +1 -0
  517. package/dist/utils/mcpCommands.js +1 -0
  518. package/dist/utils/mcpCommands.js.map +1 -0
  519. package/dist/utils/model-downloader.d.ts +63 -0
  520. package/dist/utils/model-downloader.d.ts.map +1 -0
  521. package/dist/utils/model-downloader.js +1 -0
  522. package/dist/utils/model-downloader.js.map +1 -0
  523. package/dist/utils/modelCapabilities.d.ts +30 -0
  524. package/dist/utils/modelCapabilities.d.ts.map +1 -0
  525. package/dist/utils/modelCapabilities.js +1 -0
  526. package/dist/utils/modelCapabilities.js.map +1 -0
  527. package/dist/utils/modelOptimizer.d.ts +207 -0
  528. package/dist/utils/modelOptimizer.d.ts.map +1 -0
  529. package/dist/utils/modelOptimizer.js +1 -0
  530. package/dist/utils/modelOptimizer.js.map +1 -0
  531. package/dist/utils/rate-limiter.d.ts +17 -0
  532. package/dist/utils/rate-limiter.d.ts.map +1 -0
  533. package/dist/utils/rate-limiter.js +1 -0
  534. package/dist/utils/rate-limiter.js.map +1 -0
  535. package/dist/utils/reasoningbankCommands.d.ts +6 -0
  536. package/dist/utils/reasoningbankCommands.d.ts.map +1 -0
  537. package/dist/utils/reasoningbankCommands.js +1 -0
  538. package/dist/utils/reasoningbankCommands.js.map +1 -0
  539. package/dist/utils/response-cache.d.ts +94 -0
  540. package/dist/utils/response-cache.d.ts.map +1 -0
  541. package/dist/utils/response-cache.js +1 -0
  542. package/dist/utils/response-cache.js.map +1 -0
  543. package/dist/utils/retry.d.ts +9 -0
  544. package/dist/utils/retry.d.ts.map +1 -0
  545. package/dist/utils/retry.js +1 -0
  546. package/dist/utils/retry.js.map +1 -0
  547. package/dist/utils/streaming-optimizer.d.ts +37 -0
  548. package/dist/utils/streaming-optimizer.d.ts.map +1 -0
  549. package/dist/utils/streaming-optimizer.js +1 -0
  550. package/dist/utils/streaming-optimizer.js.map +1 -0
  551. package/package.json +1 -1
  552. package/docs/PHASE2-IMPLEMENTATION-SUMMARY.md +0 -275
  553. package/docs/PHASE2-PHASE3-COMPLETE-SUMMARY.md +0 -453
  554. package/docs/PHASE3-IMPLEMENTATION-SUMMARY.md +0 -357
@@ -0,0 +1,123 @@
1
+ /**
2
+ * ReasoningBank Type Definitions
3
+ * Based on arXiv:2509.25140 (Google DeepMind)
4
+ */
5
+ export interface Memory {
6
+ id: string;
7
+ title: string;
8
+ description: string;
9
+ content: string;
10
+ confidence: number;
11
+ usage_count: number;
12
+ created_at: string;
13
+ pattern_data: PatternData;
14
+ }
15
+ export interface PatternData {
16
+ domain: string;
17
+ error_type?: string;
18
+ success_pattern?: boolean;
19
+ failure_guardrail?: boolean;
20
+ [key: string]: any;
21
+ }
22
+ export interface PatternEmbedding {
23
+ pattern_id: string;
24
+ embedding: number[];
25
+ }
26
+ export interface TaskTrajectory {
27
+ id: string;
28
+ task_id: string;
29
+ trajectory: string;
30
+ verdict: 'Success' | 'Failure';
31
+ confidence: number;
32
+ created_at: string;
33
+ }
34
+ export interface MattsRun {
35
+ id: string;
36
+ task_id: string;
37
+ run_index: number;
38
+ result: string;
39
+ verdict: 'Success' | 'Failure';
40
+ confidence: number;
41
+ created_at: string;
42
+ }
43
+ export interface RetrievalOptions {
44
+ query: string;
45
+ domain?: string;
46
+ k?: number;
47
+ minConfidence?: number;
48
+ lambda?: number;
49
+ }
50
+ export interface ScoringWeights {
51
+ alpha: number;
52
+ beta: number;
53
+ gamma: number;
54
+ delta: number;
55
+ }
56
+ export interface JudgmentResult {
57
+ label: 'Success' | 'Failure';
58
+ confidence: number;
59
+ rationale?: string;
60
+ }
61
+ export interface ConsolidationOptions {
62
+ dedupeThreshold?: number;
63
+ prune?: {
64
+ maxAgeDays?: number;
65
+ minConfidence?: number;
66
+ unusedDays?: number;
67
+ };
68
+ }
69
+ export interface ConsolidationStats {
70
+ processed: number;
71
+ duplicates: number;
72
+ contradictions: number;
73
+ pruned: number;
74
+ durationMs: number;
75
+ }
76
+ export interface ReasoningBankConfig {
77
+ dbPath: string;
78
+ embeddings?: {
79
+ provider?: 'openai' | 'anthropic' | 'hash';
80
+ model?: string;
81
+ cache?: {
82
+ l1?: boolean;
83
+ l2?: boolean;
84
+ redisUrl?: string;
85
+ };
86
+ };
87
+ retrieval?: {
88
+ k?: number;
89
+ minConfidence?: number;
90
+ weights?: Partial<ScoringWeights>;
91
+ };
92
+ consolidation?: {
93
+ scheduleEvery?: number;
94
+ autoRun?: boolean;
95
+ };
96
+ piiScrub?: {
97
+ enabled?: boolean;
98
+ };
99
+ }
100
+ export interface TaskExecutionOptions {
101
+ taskId: string;
102
+ agentId: string;
103
+ query: string;
104
+ domain: string;
105
+ executeFn: (memories: Memory[]) => Promise<{
106
+ success: boolean;
107
+ log: string;
108
+ }>;
109
+ }
110
+ export interface TaskResult {
111
+ success: boolean;
112
+ summary: string;
113
+ memories: Memory[];
114
+ verdict: JudgmentResult;
115
+ }
116
+ export interface MemoryCandidate extends Memory {
117
+ score: number;
118
+ similarity: number;
119
+ recency: number;
120
+ reliability: number;
121
+ diversityPenalty: number;
122
+ }
123
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/reasoningbank/types/index.ts"],"names":[],"mappings":"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"}
@@ -3,3 +3,4 @@
3
3
  * Based on arXiv:2509.25140 (Google DeepMind)
4
4
  */
5
5
  export {};
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/reasoningbank/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/**\n * ReasoningBank Type Definitions\n * Based on arXiv:2509.25140 (Google DeepMind)\n */\n\nexport interface Memory {\n id: string;\n title: string;\n description: string;\n content: string;\n confidence: number;\n usage_count: number;\n created_at: string;\n pattern_data: PatternData;\n}\n\nexport interface PatternData {\n domain: string;\n error_type?: string;\n success_pattern?: boolean;\n failure_guardrail?: boolean;\n [key: string]: any;\n}\n\nexport interface PatternEmbedding {\n pattern_id: string;\n embedding: number[];\n}\n\nexport interface TaskTrajectory {\n id: string;\n task_id: string;\n trajectory: string;\n verdict: 'Success' | 'Failure';\n confidence: number;\n created_at: string;\n}\n\nexport interface MattsRun {\n id: string;\n task_id: string;\n run_index: number;\n result: string;\n verdict: 'Success' | 'Failure';\n confidence: number;\n created_at: string;\n}\n\nexport interface RetrievalOptions {\n query: string;\n domain?: string;\n k?: number;\n minConfidence?: number;\n lambda?: number; // MMR diversity parameter\n}\n\nexport interface ScoringWeights {\n alpha: number; // Similarity weight\n beta: number; // Recency weight\n gamma: number; // Reliability weight\n delta: number; // Diversity penalty weight\n}\n\nexport interface JudgmentResult {\n label: 'Success' | 'Failure';\n confidence: number;\n rationale?: string;\n}\n\nexport interface ConsolidationOptions {\n dedupeThreshold?: number;\n prune?: {\n maxAgeDays?: number;\n minConfidence?: number;\n unusedDays?: number;\n };\n}\n\nexport interface ConsolidationStats {\n processed: number;\n duplicates: number;\n contradictions: number;\n pruned: number;\n durationMs: number;\n}\n\nexport interface ReasoningBankConfig {\n dbPath: string;\n embeddings?: {\n provider?: 'openai' | 'anthropic' | 'hash';\n model?: string;\n cache?: {\n l1?: boolean;\n l2?: boolean;\n redisUrl?: string;\n };\n };\n retrieval?: {\n k?: number;\n minConfidence?: number;\n weights?: Partial<ScoringWeights>;\n };\n consolidation?: {\n scheduleEvery?: number;\n autoRun?: boolean;\n };\n piiScrub?: {\n enabled?: boolean;\n };\n}\n\nexport interface TaskExecutionOptions {\n taskId: string;\n agentId: string;\n query: string;\n domain: string;\n executeFn: (memories: Memory[]) => Promise<{ success: boolean; log: string }>;\n}\n\nexport interface TaskResult {\n success: boolean;\n summary: string;\n memories: Memory[];\n verdict: JudgmentResult;\n}\n\nexport interface MemoryCandidate extends Memory {\n score: number;\n similarity: number;\n recency: number;\n reliability: number;\n diversityPenalty: number;\n}\n"]}
@@ -0,0 +1,61 @@
1
+ export interface ReasoningBankConfig {
2
+ retrieve: {
3
+ k: number;
4
+ alpha: number;
5
+ beta: number;
6
+ gamma: number;
7
+ delta: number;
8
+ recency_half_life_days: number;
9
+ min_score: number;
10
+ };
11
+ judge: {
12
+ model: string;
13
+ max_tokens: number;
14
+ temperature: number;
15
+ confidence_threshold?: number;
16
+ };
17
+ distill: {
18
+ model?: string;
19
+ max_tokens?: number;
20
+ temperature?: number;
21
+ max_items_success: number;
22
+ max_items_failure: number;
23
+ confidence_prior_success: number;
24
+ confidence_prior_failure: number;
25
+ };
26
+ consolidate: {
27
+ duplicate_threshold: number;
28
+ contradiction_threshold: number;
29
+ trigger_threshold: number;
30
+ prune_age_days: number;
31
+ prune_min_confidence: number;
32
+ min_confidence_keep: number;
33
+ };
34
+ matts: {
35
+ parallel_k: number;
36
+ sequential_k: number;
37
+ sequential_r: number;
38
+ sequential_stop_on_success: boolean;
39
+ confidence_boost: number;
40
+ };
41
+ embeddings: {
42
+ provider: 'claude' | 'openai';
43
+ model: string;
44
+ dims: number;
45
+ dimensions: number;
46
+ cache_ttl_seconds: number;
47
+ };
48
+ governance: {
49
+ scrub_pii?: boolean;
50
+ pii_scrubber: boolean;
51
+ tenant_scoped?: boolean;
52
+ };
53
+ features?: {
54
+ enable_pre_task_hook?: boolean;
55
+ enable_post_task_hook?: boolean;
56
+ enable_matts_parallel?: boolean;
57
+ };
58
+ }
59
+ export declare function loadConfig(): ReasoningBankConfig;
60
+ export declare function clearConfigCache(): void;
61
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/reasoningbank/utils/config.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE;QACR,CAAC,EAAE,MAAM,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,sBAAsB,EAAE,MAAM,CAAC;QAC/B,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,wBAAwB,EAAE,MAAM,CAAC;QACjC,wBAAwB,EAAE,MAAM,CAAC;KAClC,CAAC;IACF,WAAW,EAAE;QACX,mBAAmB,EAAE,MAAM,CAAC;QAC5B,uBAAuB,EAAE,MAAM,CAAC;QAChC,iBAAiB,EAAE,MAAM,CAAC;QAC1B,cAAc,EAAE,MAAM,CAAC;QACvB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,0BAA0B,EAAE,OAAO,CAAC;QACpC,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,UAAU,EAAE;QACV,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAC9B,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,UAAU,EAAE;QACV,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,YAAY,EAAE,OAAO,CAAC;QACtB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,CAAC;CACH;AAqFD,wBAAgB,UAAU,IAAI,mBAAmB,CAqFhD;AAED,wBAAgB,gBAAgB,SAE/B"}
@@ -167,3 +167,4 @@ export function loadConfig() {
167
167
  export function clearConfigCache() {
168
168
  configCache = null;
169
169
  }
170
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/reasoningbank/utils/config.ts"],"names":[],"mappings":"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","sourcesContent":["import { parse } from 'yaml';\nimport { readFileSync, existsSync } from 'fs';\nimport { join, dirname } from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\nexport interface ReasoningBankConfig {\n retrieve: {\n k: number;\n alpha: number;\n beta: number;\n gamma: number;\n delta: number;\n recency_half_life_days: number;\n min_score: number;\n };\n judge: {\n model: string;\n max_tokens: number;\n temperature: number;\n confidence_threshold?: number;\n };\n distill: {\n model?: string;\n max_tokens?: number;\n temperature?: number;\n max_items_success: number;\n max_items_failure: number;\n confidence_prior_success: number;\n confidence_prior_failure: number;\n };\n consolidate: {\n duplicate_threshold: number;\n contradiction_threshold: number;\n trigger_threshold: number;\n prune_age_days: number;\n prune_min_confidence: number;\n min_confidence_keep: number;\n };\n matts: {\n parallel_k: number;\n sequential_k: number;\n sequential_r: number;\n sequential_stop_on_success: boolean;\n confidence_boost: number;\n };\n embeddings: {\n provider: 'claude' | 'openai';\n model: string;\n dims: number;\n dimensions: number;\n cache_ttl_seconds: number;\n };\n governance: {\n scrub_pii?: boolean;\n pii_scrubber: boolean;\n tenant_scoped?: boolean;\n };\n features?: {\n enable_pre_task_hook?: boolean;\n enable_post_task_hook?: boolean;\n enable_matts_parallel?: boolean;\n };\n}\n\nlet configCache: ReasoningBankConfig | null = null;\n\n// Default configuration\nconst DEFAULT_CONFIG: ReasoningBankConfig = {\n retrieve: {\n k: 3,\n alpha: 0.65,\n beta: 0.15,\n gamma: 0.20,\n delta: 0.10,\n recency_half_life_days: 45,\n min_score: 0.3\n },\n judge: {\n model: 'claude-sonnet-4-5-20250929',\n max_tokens: 512,\n temperature: 0,\n confidence_threshold: 0.5\n },\n distill: {\n model: undefined,\n max_tokens: undefined,\n temperature: undefined,\n max_items_success: 3,\n max_items_failure: 2,\n confidence_prior_success: 0.75,\n confidence_prior_failure: 0.60\n },\n consolidate: {\n duplicate_threshold: 0.95,\n contradiction_threshold: 0.85,\n trigger_threshold: 20,\n prune_age_days: 180,\n prune_min_confidence: 0.3,\n min_confidence_keep: 0.5\n },\n matts: {\n parallel_k: 3,\n sequential_k: 5,\n sequential_r: 5,\n sequential_stop_on_success: true,\n confidence_boost: 0.05\n },\n embeddings: {\n provider: 'claude',\n model: 'claude-sonnet-4-5-20250929',\n dims: 1024,\n dimensions: 1024,\n cache_ttl_seconds: 3600\n },\n governance: {\n scrub_pii: true,\n pii_scrubber: true,\n tenant_scoped: false\n },\n features: {\n enable_pre_task_hook: true,\n enable_post_task_hook: true,\n enable_matts_parallel: true\n }\n};\n\n// Try multiple paths to find config file\nfunction findConfigPath(): string | null {\n const paths = [\n // Development: relative to source file\n join(__dirname, '../config/reasoningbank.yaml'),\n // npm package: relative to dist file\n join(__dirname, '../../config/reasoningbank.yaml'),\n // User override: current working directory\n join(process.cwd(), '.swarm/reasoningbank.yaml'),\n join(process.cwd(), 'reasoningbank.yaml')\n ];\n\n for (const path of paths) {\n if (existsSync(path)) {\n return path;\n }\n }\n\n return null;\n}\n\nexport function loadConfig(): ReasoningBankConfig {\n if (configCache) return configCache;\n\n const configPath = findConfigPath();\n\n // If no config file found, use defaults\n if (!configPath) {\n configCache = DEFAULT_CONFIG;\n return configCache;\n }\n\n try {\n const yamlContent = readFileSync(configPath, 'utf-8');\n const parsed = parse(yamlContent) as any;\n\n // Handle nested reasoningbank: key\n const raw = parsed.reasoningbank || parsed;\n\n // Map the full config to our simplified interface\n configCache = {\n retrieve: {\n k: raw.retrieve?.k ?? 3,\n alpha: raw.retrieve?.alpha ?? 0.65,\n beta: raw.retrieve?.beta ?? 0.15,\n gamma: raw.retrieve?.gamma ?? 0.20,\n delta: raw.retrieve?.delta ?? 0.10,\n recency_half_life_days: raw.retrieve?.recency_half_life_days ?? 45,\n min_score: raw.retrieve?.min_score ?? 0.3\n },\n judge: {\n model: raw.judge?.model ?? 'claude-sonnet-4-5-20250929',\n max_tokens: raw.judge?.max_tokens ?? 512,\n temperature: raw.judge?.temperature ?? 0,\n confidence_threshold: raw.judge?.fallback_confidence ?? 0.5\n },\n distill: {\n model: raw.distill?.model,\n max_tokens: raw.distill?.max_tokens,\n temperature: raw.distill?.temperature,\n max_items_success: raw.distill?.max_items_per_trajectory ?? 3,\n max_items_failure: 2,\n confidence_prior_success: raw.distill?.success_confidence_prior ?? 0.75,\n confidence_prior_failure: raw.distill?.failure_confidence_prior ?? 0.60\n },\n consolidate: {\n duplicate_threshold: raw.consolidate?.dedup_similarity_threshold ?? 0.95,\n contradiction_threshold: raw.consolidate?.contradiction_threshold ?? 0.85,\n trigger_threshold: raw.consolidate?.run_every_new_items ?? 20,\n prune_age_days: raw.consolidate?.prune_age_days ?? 180,\n prune_min_confidence: raw.consolidate?.min_confidence_keep ?? 0.3,\n min_confidence_keep: raw.consolidate?.min_confidence_keep ?? 0.5\n },\n matts: {\n parallel_k: raw.matts?.parallel?.k ?? 3,\n sequential_k: raw.matts?.sequential?.r ?? 5,\n sequential_r: raw.matts?.sequential?.r ?? 5,\n sequential_stop_on_success: raw.matts?.sequential?.stop_on_success ?? true,\n confidence_boost: 0.05\n },\n embeddings: {\n provider: raw.embeddings?.provider ?? 'claude',\n model: raw.embeddings?.model ?? 'claude-sonnet-4-5-20250929',\n dims: raw.embeddings?.dimensions ?? 1024,\n dimensions: raw.embeddings?.dimensions ?? 1024,\n cache_ttl_seconds: raw.embeddings?.cache_ttl_seconds ?? 3600\n },\n governance: {\n scrub_pii: raw.governance?.pii_scrubber ?? true,\n pii_scrubber: raw.governance?.pii_scrubber ?? true,\n tenant_scoped: raw.governance?.tenant_scoped ?? false\n },\n features: {\n enable_pre_task_hook: raw.features?.enable_pre_task_hook ?? true,\n enable_post_task_hook: raw.features?.enable_post_task_hook ?? true,\n enable_matts_parallel: raw.features?.enable_matts_parallel ?? true\n }\n };\n\n return configCache;\n } catch (error) {\n // If config file exists but can't be read, use defaults\n console.warn(`[ReasoningBank] Could not load config from ${configPath}, using defaults:`, error instanceof Error ? error.message : String(error));\n configCache = DEFAULT_CONFIG;\n return configCache;\n }\n}\n\nexport function clearConfigCache() {\n configCache = null;\n}\n"]}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Embedding generation for semantic similarity
3
+ * Uses local transformers.js - no API key required!
4
+ */
5
+ /**
6
+ * Compute embedding for text using local model
7
+ */
8
+ export declare function computeEmbedding(text: string): Promise<Float32Array>;
9
+ /**
10
+ * Batch compute embeddings (more efficient)
11
+ */
12
+ export declare function computeEmbeddingBatch(texts: string[]): Promise<Float32Array[]>;
13
+ /**
14
+ * Get embedding dimensions
15
+ */
16
+ export declare function getEmbeddingDimensions(): number;
17
+ /**
18
+ * Clear embedding cache
19
+ */
20
+ export declare function clearEmbeddingCache(): void;
21
+ //# sourceMappingURL=embeddings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../../src/reasoningbank/utils/embeddings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA2DH;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAiD1E;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAEpF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AA+CD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
@@ -153,3 +153,4 @@ function normalize(vec) {
153
153
  export function clearEmbeddingCache() {
154
154
  embeddingCache.clear();
155
155
  }
156
+ //# sourceMappingURL=embeddings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../../src/reasoningbank/utils/embeddings.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Embedding generation for semantic similarity\n * Uses local transformers.js - no API key required!\n */\n\nimport { pipeline, env } from '@xenova/transformers';\nimport { loadConfig } from './config.js';\n\n// Configure transformers.js to use WASM backend only (avoid ONNX runtime issues)\n// The native ONNX runtime causes \"DefaultLogger not registered\" errors in Node.js\nenv.backends.onnx.wasm.proxy = false; // Disable ONNX runtime proxy\nenv.backends.onnx.wasm.numThreads = 1; // Single thread for stability\n\nlet embeddingPipeline: any = null;\nlet isInitializing = false;\nconst embeddingCache = new Map<string, Float32Array>();\n\n/**\n * Initialize the embedding pipeline (lazy load)\n */\nasync function initializeEmbeddings(): Promise<void> {\n if (embeddingPipeline) return;\n if (isInitializing) {\n // Wait for initialization to complete\n while (isInitializing) {\n await new Promise(resolve => setTimeout(resolve, 100));\n }\n return;\n }\n\n // Detect npx environment (known transformer initialization issues)\n const isNpxEnv = process.env.npm_lifecycle_event === 'npx' ||\n process.env.npm_execpath?.includes('npx') ||\n process.cwd().includes('/_npx/') ||\n process.cwd().includes('\\\\_npx\\\\');\n\n if (isNpxEnv && !process.env.FORCE_TRANSFORMERS) {\n console.log('[Embeddings] NPX environment detected - using hash-based embeddings');\n console.log('[Embeddings] For semantic search, install globally: npm install -g claude-flow');\n isInitializing = false;\n return;\n }\n\n isInitializing = true;\n console.log('[Embeddings] Initializing local embedding model (Xenova/all-MiniLM-L6-v2)...');\n console.log('[Embeddings] First run will download ~23MB model...');\n\n try {\n embeddingPipeline = await pipeline(\n 'feature-extraction',\n 'Xenova/all-MiniLM-L6-v2',\n { quantized: true } // Smaller, faster\n );\n console.log('[Embeddings] Local model ready! (384 dimensions)');\n } catch (error: any) {\n console.error('[Embeddings] Failed to initialize:', error?.message || error);\n console.warn('[Embeddings] Falling back to hash-based embeddings');\n } finally {\n isInitializing = false;\n }\n}\n\n/**\n * Compute embedding for text using local model\n */\nexport async function computeEmbedding(text: string): Promise<Float32Array> {\n const config = loadConfig();\n\n // Check cache\n const cacheKey = `local:${text}`;\n if (embeddingCache.has(cacheKey)) {\n return embeddingCache.get(cacheKey)!;\n }\n\n let embedding: Float32Array;\n\n // Initialize if needed\n await initializeEmbeddings();\n\n if (embeddingPipeline) {\n try {\n // Use transformers.js for real embeddings\n const output = await embeddingPipeline(text, {\n pooling: 'mean',\n normalize: true\n });\n embedding = new Float32Array(output.data);\n } catch (error: any) {\n console.error('[Embeddings] Generation failed:', error?.message || error);\n embedding = hashEmbed(text, 384); // Fallback\n }\n } else {\n // Fallback to hash-based embeddings\n const dims = config?.embeddings?.dimensions || 384;\n embedding = hashEmbed(text, dims);\n }\n\n // Cache with LRU (limit 1000 entries)\n if (embeddingCache.size > 1000) {\n const firstKey = embeddingCache.keys().next().value;\n if (firstKey) {\n embeddingCache.delete(firstKey);\n }\n }\n embeddingCache.set(cacheKey, embedding);\n\n // Set TTL for cache entry\n const ttl = config?.embeddings?.cache_ttl_seconds || 3600;\n setTimeout(\n () => embeddingCache.delete(cacheKey),\n ttl * 1000\n );\n\n return embedding;\n}\n\n/**\n * Batch compute embeddings (more efficient)\n */\nexport async function computeEmbeddingBatch(texts: string[]): Promise<Float32Array[]> {\n return Promise.all(texts.map(text => computeEmbedding(text)));\n}\n\n/**\n * Get embedding dimensions\n */\nexport function getEmbeddingDimensions(): number {\n return 384; // all-MiniLM-L6-v2 uses 384 dimensions\n}\n\n/**\n * Deterministic hash-based embedding (fallback)\n */\nfunction hashEmbed(text: string, dims: number): Float32Array {\n const hash = simpleHash(text);\n const vec = new Float32Array(dims);\n\n // Generate deterministic pseudo-random vector from hash\n for (let i = 0; i < dims; i++) {\n vec[i] = Math.sin(hash * (i + 1) * 0.01) + Math.cos(hash * i * 0.02);\n }\n\n return normalize(vec);\n}\n\n/**\n * Simple string hash function\n */\nfunction simpleHash(str: string): number {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n hash = ((hash << 5) - hash) + str.charCodeAt(i);\n hash |= 0;\n }\n return Math.abs(hash);\n}\n\n/**\n * Normalize vector to unit length\n */\nfunction normalize(vec: Float32Array): Float32Array {\n let mag = 0;\n for (let i = 0; i < vec.length; i++) {\n mag += vec[i] * vec[i];\n }\n mag = Math.sqrt(mag);\n\n if (mag === 0) return vec;\n\n for (let i = 0; i < vec.length; i++) {\n vec[i] /= mag;\n }\n return vec;\n}\n\n/**\n * Clear embedding cache\n */\nexport function clearEmbeddingCache(): void {\n embeddingCache.clear();\n}\n"]}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Maximal Marginal Relevance (MMR) for diversity in retrieval
3
+ * Balances relevance and diversity in top-k selection
4
+ */
5
+ /**
6
+ * Cosine similarity between two vectors
7
+ */
8
+ declare function cosineSimilarity(a: Float32Array, b: Float32Array): number;
9
+ /**
10
+ * MMR selection for diversity-aware top-k retrieval
11
+ *
12
+ * @param candidates - Scored candidates with embeddings
13
+ * @param queryEmbed - Query embedding for relevance scoring
14
+ * @param k - Number of items to select
15
+ * @param lambda - Balance between relevance (1.0) and diversity (0.0)
16
+ * @returns Selected items with maximum marginal relevance
17
+ */
18
+ export declare function mmrSelection<T extends {
19
+ score: number;
20
+ embedding: Float32Array;
21
+ }>(candidates: T[], queryEmbed: Float32Array, k: number, lambda?: number): T[];
22
+ export { cosineSimilarity };
23
+ //# sourceMappingURL=mmr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mmr.d.ts","sourceRoot":"","sources":["../../../src/reasoningbank/utils/mmr.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,iBAAS,gBAAgB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAgBlE;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,YAAY,CAAA;CAAE,EAC/E,UAAU,EAAE,CAAC,EAAE,EACf,UAAU,EAAE,YAAY,EACxB,CAAC,EAAE,MAAM,EACT,MAAM,GAAE,MAAY,GACnB,CAAC,EAAE,CAoCL;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -62,3 +62,4 @@ export function mmrSelection(candidates, queryEmbed, k, lambda = 0.5) {
62
62
  return selected;
63
63
  }
64
64
  export { cosineSimilarity };
65
+ //# sourceMappingURL=mmr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mmr.js","sourceRoot":"","sources":["../../../src/reasoningbank/utils/mmr.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Maximal Marginal Relevance (MMR) for diversity in retrieval\n * Balances relevance and diversity in top-k selection\n */\n\n/**\n * Cosine similarity between two vectors\n */\nfunction cosineSimilarity(a: Float32Array, b: Float32Array): number {\n if (a.length !== b.length) {\n throw new Error(`Vector dimension mismatch: ${a.length} vs ${b.length}`);\n }\n\n let dot = 0, magA = 0, magB = 0;\n for (let i = 0; i < a.length; i++) {\n dot += a[i] * b[i];\n magA += a[i] * a[i];\n magB += b[i] * b[i];\n }\n\n const denominator = Math.sqrt(magA) * Math.sqrt(magB);\n if (denominator === 0) return 0;\n\n return dot / denominator;\n}\n\n/**\n * MMR selection for diversity-aware top-k retrieval\n *\n * @param candidates - Scored candidates with embeddings\n * @param queryEmbed - Query embedding for relevance scoring\n * @param k - Number of items to select\n * @param lambda - Balance between relevance (1.0) and diversity (0.0)\n * @returns Selected items with maximum marginal relevance\n */\nexport function mmrSelection<T extends { score: number; embedding: Float32Array }>(\n candidates: T[],\n queryEmbed: Float32Array,\n k: number,\n lambda: number = 0.5\n): T[] {\n if (candidates.length === 0) return [];\n if (k <= 0) return [];\n if (k >= candidates.length) return [...candidates];\n\n const selected: T[] = [];\n const remaining = [...candidates].sort((a, b) => b.score - a.score);\n\n while (selected.length < k && remaining.length > 0) {\n let bestIdx = 0;\n let bestScore = -Infinity;\n\n for (let i = 0; i < remaining.length; i++) {\n const item = remaining[i];\n\n // Calculate max similarity to already selected items\n let maxSimilarity = 0;\n for (const sel of selected) {\n const sim = cosineSimilarity(item.embedding, sel.embedding);\n maxSimilarity = Math.max(maxSimilarity, sim);\n }\n\n // MMR score balances relevance and diversity\n const mmrScore = lambda * item.score - (1 - lambda) * maxSimilarity;\n\n if (mmrScore > bestScore) {\n bestScore = mmrScore;\n bestIdx = i;\n }\n }\n\n selected.push(remaining[bestIdx]);\n remaining.splice(bestIdx, 1);\n }\n\n return selected;\n}\n\nexport { cosineSimilarity };\n"]}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * PII (Personally Identifiable Information) scrubber
3
+ * Redacts sensitive information before storing memories
4
+ */
5
+ /**
6
+ * Scrub PII from text
7
+ *
8
+ * @param text - Text to scrub
9
+ * @param customPatterns - Additional custom patterns to apply
10
+ * @returns Scrubbed text with PII redacted
11
+ */
12
+ export declare function scrubPII(text: string, customPatterns?: Array<{
13
+ pattern: RegExp;
14
+ replacement: string;
15
+ }>): string;
16
+ /**
17
+ * Check if text contains potential PII
18
+ *
19
+ * @param text - Text to check
20
+ * @returns True if PII patterns are detected
21
+ */
22
+ export declare function containsPII(text: string): boolean;
23
+ /**
24
+ * Get statistics about redacted content
25
+ *
26
+ * @param original - Original text
27
+ * @param scrubbed - Scrubbed text
28
+ * @returns Object with redaction statistics
29
+ */
30
+ export declare function getRedactionStats(original: string, scrubbed: string): {
31
+ redacted: boolean;
32
+ originalLength: number;
33
+ scrubbedLength: number;
34
+ patterns: string[];
35
+ };
36
+ /**
37
+ * Scrub PII from memory object
38
+ * Scrubs title, description, and content fields
39
+ */
40
+ export declare function scrubMemory(memory: {
41
+ title: string;
42
+ description: string;
43
+ content: string;
44
+ [key: string]: any;
45
+ }): typeof memory;
46
+ //# sourceMappingURL=pii-scrubber.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pii-scrubber.d.ts","sourceRoot":"","sources":["../../../src/reasoningbank/utils/pii-scrubber.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqCH;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,cAAc,CAAC,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,GAC/D,MAAM,CAiBR;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOjD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG;IACrE,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAeA;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,GAAG,OAAO,MAAM,CAOhB"}
@@ -96,3 +96,4 @@ export function scrubMemory(memory) {
96
96
  content: scrubPII(memory.content)
97
97
  };
98
98
  }
99
+ //# sourceMappingURL=pii-scrubber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pii-scrubber.js","sourceRoot":"","sources":["../../../src/reasoningbank/utils/pii-scrubber.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * PII (Personally Identifiable Information) scrubber\n * Redacts sensitive information before storing memories\n */\n\nimport { loadConfig } from './config.js';\n\n// Default PII patterns (regex-based)\nconst DEFAULT_PATTERNS = [\n // Email addresses\n { pattern: /\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\\b/g, replacement: '[EMAIL]' },\n\n // US Social Security Numbers\n { pattern: /\\b\\d{3}-\\d{2}-\\d{4}\\b/g, replacement: '[SSN]' },\n { pattern: /\\b\\d{9}\\b/g, replacement: '[SSN]' },\n\n // API Keys (common patterns)\n { pattern: /\\bsk-[a-zA-Z0-9]{48}\\b/g, replacement: '[API_KEY]' }, // Anthropic\n { pattern: /\\bghp_[a-zA-Z0-9]{36}\\b/g, replacement: '[API_KEY]' }, // GitHub\n { pattern: /\\bgho_[a-zA-Z0-9]{36}\\b/g, replacement: '[API_KEY]' }, // GitHub OAuth\n { pattern: /\\bxoxb-[a-zA-Z0-9\\-]+\\b/g, replacement: '[API_KEY]' }, // Slack\n { pattern: /\\bAKIA[0-9A-Z]{16}\\b/g, replacement: '[AWS_KEY]' }, // AWS\n\n // Credit card numbers (basic pattern)\n { pattern: /\\b\\d{4}[\\s-]?\\d{4}[\\s-]?\\d{4}[\\s-]?\\d{4}\\b/g, replacement: '[CREDIT_CARD]' },\n\n // Phone numbers (US format)\n { pattern: /\\b\\d{3}[-.\\s]?\\d{3}[-.\\s]?\\d{4}\\b/g, replacement: '[PHONE]' },\n { pattern: /\\b\\(\\d{3}\\)\\s?\\d{3}[-.\\s]?\\d{4}\\b/g, replacement: '[PHONE]' },\n\n // IP addresses\n { pattern: /\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b/g, replacement: '[IP]' },\n\n // URLs with tokens/keys in query params\n { pattern: /([?&])(token|key|apikey|api_key|secret)=[^&\\s]+/gi, replacement: '$1$2=[REDACTED]' },\n\n // JWT tokens\n { pattern: /\\beyJ[a-zA-Z0-9_-]+\\.eyJ[a-zA-Z0-9_-]+\\.[a-zA-Z0-9_-]+\\b/g, replacement: '[JWT]' }\n];\n\n/**\n * Scrub PII from text\n *\n * @param text - Text to scrub\n * @param customPatterns - Additional custom patterns to apply\n * @returns Scrubbed text with PII redacted\n */\nexport function scrubPII(\n text: string,\n customPatterns?: Array<{ pattern: RegExp; replacement: string }>\n): string {\n const config = loadConfig();\n\n // Check if PII scrubbing is enabled\n if (!config.governance?.pii_scrubber) {\n return text;\n }\n\n let scrubbed = text;\n const patterns = customPatterns || DEFAULT_PATTERNS;\n\n // Apply all redaction patterns\n for (const { pattern, replacement } of patterns) {\n scrubbed = scrubbed.replace(pattern, replacement);\n }\n\n return scrubbed;\n}\n\n/**\n * Check if text contains potential PII\n *\n * @param text - Text to check\n * @returns True if PII patterns are detected\n */\nexport function containsPII(text: string): boolean {\n for (const { pattern } of DEFAULT_PATTERNS) {\n if (pattern.test(text)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Get statistics about redacted content\n *\n * @param original - Original text\n * @param scrubbed - Scrubbed text\n * @returns Object with redaction statistics\n */\nexport function getRedactionStats(original: string, scrubbed: string): {\n redacted: boolean;\n originalLength: number;\n scrubbedLength: number;\n patterns: string[];\n} {\n const patterns: string[] = [];\n\n for (const { pattern, replacement } of DEFAULT_PATTERNS) {\n if (pattern.test(original) && scrubbed.includes(replacement)) {\n patterns.push(replacement);\n }\n }\n\n return {\n redacted: patterns.length > 0,\n originalLength: original.length,\n scrubbedLength: scrubbed.length,\n patterns\n };\n}\n\n/**\n * Scrub PII from memory object\n * Scrubs title, description, and content fields\n */\nexport function scrubMemory(memory: {\n title: string;\n description: string;\n content: string;\n [key: string]: any;\n}): typeof memory {\n return {\n ...memory,\n title: scrubPII(memory.title),\n description: scrubPII(memory.description),\n content: scrubPII(memory.content)\n };\n}\n"]}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * ReasoningBank WASM Adapter
3
+ *
4
+ * TypeScript wrapper for the Rust WASM ReasoningBank implementation.
5
+ * Provides browser and Node.js compatibility with auto-detection of storage backends.
6
+ *
7
+ * Features:
8
+ * - IndexedDB storage (browser preferred)
9
+ * - sql.js fallback (browser backup)
10
+ * - Native performance via WASM
11
+ * - Async/await API
12
+ * - Type-safe interfaces
13
+ */
14
+ export interface PatternInput {
15
+ task_description: string;
16
+ task_category: string;
17
+ strategy: string;
18
+ success_score: number;
19
+ duration_seconds?: number;
20
+ }
21
+ export interface Pattern {
22
+ id: string;
23
+ task_description: string;
24
+ task_category: string;
25
+ strategy: string;
26
+ success_score?: number;
27
+ duration_seconds?: number;
28
+ created_at: string;
29
+ updated_at?: string;
30
+ }
31
+ export interface SimilarPattern {
32
+ pattern: Pattern;
33
+ similarity_score: number;
34
+ }
35
+ export interface StorageStats {
36
+ total_patterns: number;
37
+ categories: number;
38
+ avg_success_score: number;
39
+ storage_backend: string;
40
+ }
41
+ /**
42
+ * ReasoningBank WASM Adapter
43
+ *
44
+ * Provides a TypeScript-friendly interface to the Rust WASM implementation.
45
+ * Automatically selects the best storage backend for the environment.
46
+ */
47
+ export declare class ReasoningBankAdapter {
48
+ private wasmInstance;
49
+ private initPromise;
50
+ /**
51
+ * Create a new ReasoningBank instance
52
+ *
53
+ * @param dbName - Optional database name (default: "reasoningbank")
54
+ */
55
+ constructor(dbName?: string);
56
+ private initialize;
57
+ private ensureInitialized;
58
+ /**
59
+ * Store a reasoning pattern
60
+ *
61
+ * @param pattern - Pattern input data
62
+ * @returns Pattern UUID
63
+ */
64
+ storePattern(pattern: PatternInput): Promise<string>;
65
+ /**
66
+ * Retrieve a pattern by ID
67
+ *
68
+ * @param id - Pattern UUID
69
+ * @returns Pattern or null if not found
70
+ */
71
+ getPattern(id: string): Promise<Pattern | null>;
72
+ /**
73
+ * Search patterns by category
74
+ *
75
+ * @param category - Task category
76
+ * @param limit - Maximum number of results (default: 10)
77
+ * @returns Array of patterns
78
+ */
79
+ searchByCategory(category: string, limit?: number): Promise<Pattern[]>;
80
+ /**
81
+ * Find similar patterns
82
+ *
83
+ * @param taskDescription - Task description to match
84
+ * @param taskCategory - Task category
85
+ * @param topK - Number of similar patterns to return (default: 5)
86
+ * @returns Array of similar patterns with similarity scores
87
+ */
88
+ findSimilar(taskDescription: string, taskCategory: string, topK?: number): Promise<SimilarPattern[]>;
89
+ /**
90
+ * Get storage statistics
91
+ *
92
+ * @returns Storage stats including total patterns, categories, and backend info
93
+ */
94
+ getStats(): Promise<StorageStats>;
95
+ }
96
+ /**
97
+ * Create a new ReasoningBank instance
98
+ *
99
+ * @param dbName - Optional database name
100
+ * @returns ReasoningBank adapter instance
101
+ */
102
+ export declare function createReasoningBank(dbName?: string): Promise<ReasoningBankAdapter>;
103
+ export default ReasoningBankAdapter;
104
+ //# sourceMappingURL=wasm-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasm-adapter.d.ts","sourceRoot":"","sources":["../../src/reasoningbank/wasm-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,YAAY,CAAoD;IACxE,OAAO,CAAC,WAAW,CAAgB;IAEnC;;;;OAIG;gBACS,MAAM,CAAC,EAAE,MAAM;YAIb,UAAU;YAQV,iBAAiB;IAQ/B;;;;;OAKG;IACG,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAM1D;;;;;OAKG;IACG,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAarD;;;;;;OAMG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAMhF;;;;;;;OAOG;IACG,WAAW,CACf,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,IAAI,GAAE,MAAU,GACf,OAAO,CAAC,cAAc,EAAE,CAAC;IAM5B;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC;CAKxC;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAIxF;AAED,eAAe,oBAAoB,CAAC"}
@@ -122,3 +122,4 @@ export async function createReasoningBank(dbName) {
122
122
  return adapter;
123
123
  }
124
124
  export default ReasoningBankAdapter;
125
+ //# sourceMappingURL=wasm-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasm-adapter.js","sourceRoot":"","sources":["../../src/reasoningbank/wasm-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * ReasoningBank WASM Adapter\n *\n * TypeScript wrapper for the Rust WASM ReasoningBank implementation.\n * Provides browser and Node.js compatibility with auto-detection of storage backends.\n *\n * Features:\n * - IndexedDB storage (browser preferred)\n * - sql.js fallback (browser backup)\n * - Native performance via WASM\n * - Async/await API\n * - Type-safe interfaces\n */\n\nimport * as ReasoningBankWasm from '../../wasm/reasoningbank/reasoningbank_wasm.js';\n\nexport interface PatternInput {\n task_description: string;\n task_category: string;\n strategy: string;\n success_score: number;\n duration_seconds?: number;\n}\n\nexport interface Pattern {\n id: string;\n task_description: string;\n task_category: string;\n strategy: string;\n success_score?: number;\n duration_seconds?: number;\n created_at: string;\n updated_at?: string;\n}\n\nexport interface SimilarPattern {\n pattern: Pattern;\n similarity_score: number;\n}\n\nexport interface StorageStats {\n total_patterns: number;\n categories: number;\n avg_success_score: number;\n storage_backend: string;\n}\n\n/**\n * ReasoningBank WASM Adapter\n *\n * Provides a TypeScript-friendly interface to the Rust WASM implementation.\n * Automatically selects the best storage backend for the environment.\n */\nexport class ReasoningBankAdapter {\n private wasmInstance: ReasoningBankWasm.ReasoningBankWasm | null = null;\n private initPromise: Promise<void>;\n\n /**\n * Create a new ReasoningBank instance\n *\n * @param dbName - Optional database name (default: \"reasoningbank\")\n */\n constructor(dbName?: string) {\n this.initPromise = this.initialize(dbName);\n }\n\n private async initialize(dbName?: string): Promise<void> {\n try {\n this.wasmInstance = new ReasoningBankWasm.ReasoningBankWasm(dbName || 'reasoningbank');\n } catch (error) {\n throw new Error(`Failed to initialize ReasoningBank WASM: ${error}`);\n }\n }\n\n private async ensureInitialized(): Promise<ReasoningBankWasm.ReasoningBankWasm> {\n await this.initPromise;\n if (!this.wasmInstance) {\n throw new Error('ReasoningBank WASM not initialized');\n }\n return this.wasmInstance;\n }\n\n /**\n * Store a reasoning pattern\n *\n * @param pattern - Pattern input data\n * @returns Pattern UUID\n */\n async storePattern(pattern: PatternInput): Promise<string> {\n const wasm = await this.ensureInitialized();\n const json = JSON.stringify(pattern);\n return await wasm.storePattern(json);\n }\n\n /**\n * Retrieve a pattern by ID\n *\n * @param id - Pattern UUID\n * @returns Pattern or null if not found\n */\n async getPattern(id: string): Promise<Pattern | null> {\n const wasm = await this.ensureInitialized();\n try {\n const json = await wasm.getPattern(id);\n return json ? JSON.parse(json) : null;\n } catch (error) {\n if (error instanceof Error && error.message.includes('not found')) {\n return null;\n }\n throw error;\n }\n }\n\n /**\n * Search patterns by category\n *\n * @param category - Task category\n * @param limit - Maximum number of results (default: 10)\n * @returns Array of patterns\n */\n async searchByCategory(category: string, limit: number = 10): Promise<Pattern[]> {\n const wasm = await this.ensureInitialized();\n const json = await wasm.searchByCategory(category, limit);\n return JSON.parse(json);\n }\n\n /**\n * Find similar patterns\n *\n * @param taskDescription - Task description to match\n * @param taskCategory - Task category\n * @param topK - Number of similar patterns to return (default: 5)\n * @returns Array of similar patterns with similarity scores\n */\n async findSimilar(\n taskDescription: string,\n taskCategory: string,\n topK: number = 5\n ): Promise<SimilarPattern[]> {\n const wasm = await this.ensureInitialized();\n const json = await wasm.findSimilar(taskDescription, taskCategory, topK);\n return JSON.parse(json);\n }\n\n /**\n * Get storage statistics\n *\n * @returns Storage stats including total patterns, categories, and backend info\n */\n async getStats(): Promise<StorageStats> {\n const wasm = await this.ensureInitialized();\n const json = await wasm.getStats();\n return JSON.parse(json);\n }\n}\n\n/**\n * Create a new ReasoningBank instance\n *\n * @param dbName - Optional database name\n * @returns ReasoningBank adapter instance\n */\nexport async function createReasoningBank(dbName?: string): Promise<ReasoningBankAdapter> {\n const adapter = new ReasoningBankAdapter(dbName);\n await adapter.getStats(); // Ensure initialization\n return adapter;\n}\n\nexport default ReasoningBankAdapter;\n"]}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Model ID Mapping for Multi-Provider Support
3
+ *
4
+ * Different providers use different model ID formats:
5
+ * - Anthropic: "claude-sonnet-4-5-20250929" (dated releases)
6
+ * - OpenRouter: "anthropic/claude-sonnet-4.5" (vendor/model format)
7
+ * - AWS Bedrock: "anthropic.claude-sonnet-4-5-v2:0" (ARN-style)
8
+ */
9
+ export interface ModelMapping {
10
+ anthropic: string;
11
+ openrouter: string;
12
+ bedrock?: string;
13
+ canonical: string;
14
+ }
15
+ /**
16
+ * Claude Model Mappings
17
+ */
18
+ export declare const CLAUDE_MODELS: Record<string, ModelMapping>;
19
+ /**
20
+ * Map a model ID from one provider format to another
21
+ */
22
+ export declare function mapModelId(modelId: string, targetProvider: 'anthropic' | 'openrouter' | 'bedrock'): string;
23
+ /**
24
+ * Get human-readable model name
25
+ */
26
+ export declare function getModelName(modelId: string): string;
27
+ /**
28
+ * List all available model IDs for a provider
29
+ */
30
+ export declare function listModels(provider: 'anthropic' | 'openrouter' | 'bedrock'): string[];
31
+ //# sourceMappingURL=model-mapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-mapping.d.ts","sourceRoot":"","sources":["../../src/router/model-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CA6CtD,CAAC;AAEF;;GAEG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,WAAW,GAAG,YAAY,GAAG,SAAS,GACrD,MAAM,CA8DR;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAYpD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,WAAW,GAAG,YAAY,GAAG,SAAS,GAAG,MAAM,EAAE,CAIrF"}
@@ -129,3 +129,4 @@ export function listModels(provider) {
129
129
  .map(m => m[provider])
130
130
  .filter((id) => id !== undefined);
131
131
  }
132
+ //# sourceMappingURL=model-mapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-mapping.js","sourceRoot":"","sources":["../../src/router/model-mapping.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Model ID Mapping for Multi-Provider Support\n *\n * Different providers use different model ID formats:\n * - Anthropic: \"claude-sonnet-4-5-20250929\" (dated releases)\n * - OpenRouter: \"anthropic/claude-sonnet-4.5\" (vendor/model format)\n * - AWS Bedrock: \"anthropic.claude-sonnet-4-5-v2:0\" (ARN-style)\n */\n\nexport interface ModelMapping {\n anthropic: string;\n openrouter: string;\n bedrock?: string;\n canonical: string; // Human-readable name\n}\n\n/**\n * Claude Model Mappings\n */\nexport const CLAUDE_MODELS: Record<string, ModelMapping> = {\n // Claude Sonnet 4.5 (September 2025 release)\n 'claude-sonnet-4.5': {\n anthropic: 'claude-sonnet-4-5-20250929',\n openrouter: 'anthropic/claude-sonnet-4.5',\n bedrock: 'anthropic.claude-sonnet-4-5-v2:0',\n canonical: 'Claude Sonnet 4.5'\n },\n\n // Claude Sonnet 4 (original release)\n 'claude-sonnet-4': {\n anthropic: 'claude-sonnet-4-20240620',\n openrouter: 'anthropic/claude-sonnet-4',\n bedrock: 'anthropic.claude-sonnet-4-v1:0',\n canonical: 'Claude Sonnet 4'\n },\n\n // Claude 3.7 Sonnet\n 'claude-3.7-sonnet': {\n anthropic: 'claude-3-7-sonnet-20250219',\n openrouter: 'anthropic/claude-3.7-sonnet',\n canonical: 'Claude 3.7 Sonnet'\n },\n\n // Claude 3.5 Sonnet (October 2024)\n 'claude-3.5-sonnet': {\n anthropic: 'claude-3-5-sonnet-20241022',\n openrouter: 'anthropic/claude-3.5-sonnet-20241022',\n bedrock: 'anthropic.claude-3-5-sonnet-20241022-v2:0',\n canonical: 'Claude 3.5 Sonnet'\n },\n\n // Claude 3.5 Haiku\n 'claude-3.5-haiku': {\n anthropic: 'claude-3-5-haiku-20241022',\n openrouter: 'anthropic/claude-3.5-haiku-20241022',\n canonical: 'Claude 3.5 Haiku'\n },\n\n // Claude Opus 4.1\n 'claude-opus-4.1': {\n anthropic: 'claude-opus-4-1-20250514',\n openrouter: 'anthropic/claude-opus-4.1',\n canonical: 'Claude Opus 4.1'\n }\n};\n\n/**\n * Map a model ID from one provider format to another\n */\nexport function mapModelId(\n modelId: string,\n targetProvider: 'anthropic' | 'openrouter' | 'bedrock'\n): string {\n // If already in correct format, return as-is\n if (targetProvider === 'anthropic' && modelId.startsWith('claude-')) {\n // Check if it's already an Anthropic API ID (has date like 20250929)\n if (/claude-.*-\\d{8}/.test(modelId)) {\n return modelId;\n }\n }\n\n if (targetProvider === 'openrouter' && modelId.startsWith('anthropic/')) {\n return modelId;\n }\n\n // Try to find canonical mapping\n for (const [canonical, mapping] of Object.entries(CLAUDE_MODELS)) {\n if (\n modelId === mapping.anthropic ||\n modelId === mapping.openrouter ||\n modelId === mapping.bedrock ||\n modelId === canonical\n ) {\n const mapped = mapping[targetProvider];\n if (mapped) {\n return mapped;\n }\n }\n }\n\n // If no mapping found, try to convert format\n if (targetProvider === 'openrouter') {\n // Convert Anthropic format to OpenRouter format\n // claude-sonnet-4-5-20250929 -> anthropic/claude-sonnet-4.5\n if (modelId.startsWith('claude-')) {\n const withoutDate = modelId.replace(/-\\d{8}$/, '');\n const parts = withoutDate.split('-');\n\n if (parts.length >= 3) {\n const family = parts[0]; // claude\n const tier = parts[1]; // sonnet, opus, haiku\n const version = parts.slice(2).join('.'); // 4.5 or 3.5\n\n return `anthropic/${family}-${tier}-${version}`;\n }\n }\n } else if (targetProvider === 'anthropic') {\n // Convert OpenRouter format to Anthropic format\n // anthropic/claude-sonnet-4.5 -> claude-sonnet-4-5-20250929\n if (modelId.startsWith('anthropic/')) {\n const withoutPrefix = modelId.replace('anthropic/', '');\n\n // Look up in mappings by OpenRouter ID\n for (const mapping of Object.values(CLAUDE_MODELS)) {\n if (mapping.openrouter === modelId) {\n return mapping.anthropic;\n }\n }\n }\n }\n\n // No conversion possible, return original\n console.warn(`⚠️ No model mapping found for '${modelId}' to ${targetProvider}, using original ID`);\n return modelId;\n}\n\n/**\n * Get human-readable model name\n */\nexport function getModelName(modelId: string): string {\n for (const mapping of Object.values(CLAUDE_MODELS)) {\n if (\n modelId === mapping.anthropic ||\n modelId === mapping.openrouter ||\n modelId === mapping.bedrock\n ) {\n return mapping.canonical;\n }\n }\n\n return modelId;\n}\n\n/**\n * List all available model IDs for a provider\n */\nexport function listModels(provider: 'anthropic' | 'openrouter' | 'bedrock'): string[] {\n return Object.values(CLAUDE_MODELS)\n .map(m => m[provider])\n .filter((id): id is string => id !== undefined);\n}\n"]}