agentic-flow 1.10.0 → 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 (580) 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/adaptive-pool-sizing.js +414 -0
  480. package/dist/utils/agentBoosterPreprocessor.d.ts +72 -0
  481. package/dist/utils/agentBoosterPreprocessor.d.ts.map +1 -0
  482. package/dist/utils/agentBoosterPreprocessor.js +1 -0
  483. package/dist/utils/agentBoosterPreprocessor.js.map +1 -0
  484. package/dist/utils/agentLoader.d.ts +22 -0
  485. package/dist/utils/agentLoader.d.ts.map +1 -0
  486. package/dist/utils/agentLoader.js +1 -0
  487. package/dist/utils/agentLoader.js.map +1 -0
  488. package/dist/utils/agentdb-runtime-patch.d.ts +28 -0
  489. package/dist/utils/agentdb-runtime-patch.d.ts.map +1 -0
  490. package/dist/utils/agentdb-runtime-patch.js +1 -0
  491. package/dist/utils/agentdb-runtime-patch.js.map +1 -0
  492. package/dist/utils/auth.d.ts +13 -0
  493. package/dist/utils/auth.d.ts.map +1 -0
  494. package/dist/utils/auth.js +1 -0
  495. package/dist/utils/auth.js.map +1 -0
  496. package/dist/utils/circular-rate-limiter.js +391 -0
  497. package/dist/utils/cli.d.ts +31 -0
  498. package/dist/utils/cli.d.ts.map +1 -0
  499. package/dist/utils/cli.js +1 -0
  500. package/dist/utils/cli.js.map +1 -0
  501. package/dist/utils/compression-middleware.d.ts +55 -0
  502. package/dist/utils/compression-middleware.d.ts.map +1 -0
  503. package/dist/utils/compression-middleware.js +1 -0
  504. package/dist/utils/compression-middleware.js.map +1 -0
  505. package/dist/utils/connection-pool.d.ts +30 -0
  506. package/dist/utils/connection-pool.d.ts.map +1 -0
  507. package/dist/utils/connection-pool.js +1 -0
  508. package/dist/utils/connection-pool.js.map +1 -0
  509. package/dist/utils/dynamic-compression.js +298 -0
  510. package/dist/utils/http2-multiplexing.js +319 -0
  511. package/dist/utils/lazy-auth.js +311 -0
  512. package/dist/utils/logger.d.ts +19 -0
  513. package/dist/utils/logger.d.ts.map +1 -0
  514. package/dist/utils/logger.js +1 -0
  515. package/dist/utils/logger.js.map +1 -0
  516. package/dist/utils/math.d.ts +12 -0
  517. package/dist/utils/math.d.ts.map +1 -0
  518. package/dist/utils/math.js +1 -0
  519. package/dist/utils/math.js.map +1 -0
  520. package/dist/utils/mcpCommands.d.ts +2 -0
  521. package/dist/utils/mcpCommands.d.ts.map +1 -0
  522. package/dist/utils/mcpCommands.js +1 -0
  523. package/dist/utils/mcpCommands.js.map +1 -0
  524. package/dist/utils/model-downloader.d.ts +63 -0
  525. package/dist/utils/model-downloader.d.ts.map +1 -0
  526. package/dist/utils/model-downloader.js +1 -0
  527. package/dist/utils/model-downloader.js.map +1 -0
  528. package/dist/utils/modelCapabilities.d.ts +30 -0
  529. package/dist/utils/modelCapabilities.d.ts.map +1 -0
  530. package/dist/utils/modelCapabilities.js +1 -0
  531. package/dist/utils/modelCapabilities.js.map +1 -0
  532. package/dist/utils/modelOptimizer.d.ts +207 -0
  533. package/dist/utils/modelOptimizer.d.ts.map +1 -0
  534. package/dist/utils/modelOptimizer.js +1 -0
  535. package/dist/utils/modelOptimizer.js.map +1 -0
  536. package/dist/utils/rate-limiter.d.ts +17 -0
  537. package/dist/utils/rate-limiter.d.ts.map +1 -0
  538. package/dist/utils/rate-limiter.js +1 -0
  539. package/dist/utils/rate-limiter.js.map +1 -0
  540. package/dist/utils/reasoningbankCommands.d.ts +6 -0
  541. package/dist/utils/reasoningbankCommands.d.ts.map +1 -0
  542. package/dist/utils/reasoningbankCommands.js +1 -0
  543. package/dist/utils/reasoningbankCommands.js.map +1 -0
  544. package/dist/utils/response-cache.d.ts +94 -0
  545. package/dist/utils/response-cache.d.ts.map +1 -0
  546. package/dist/utils/response-cache.js +1 -0
  547. package/dist/utils/response-cache.js.map +1 -0
  548. package/dist/utils/retry.d.ts +9 -0
  549. package/dist/utils/retry.d.ts.map +1 -0
  550. package/dist/utils/retry.js +1 -0
  551. package/dist/utils/retry.js.map +1 -0
  552. package/dist/utils/server-push.js +251 -0
  553. package/dist/utils/streaming-optimizer.d.ts +37 -0
  554. package/dist/utils/streaming-optimizer.d.ts.map +1 -0
  555. package/dist/utils/streaming-optimizer.js +1 -0
  556. package/dist/utils/streaming-optimizer.js.map +1 -0
  557. package/dist/utils/zero-copy-buffer.js +286 -0
  558. package/docs/DOCKER-VERIFICATION.md +207 -0
  559. package/docs/ISSUE-55-VALIDATION.md +25 -6
  560. package/docs/NPX_AGENTDB_SETUP.md +175 -0
  561. package/docs/PUBLISH_GUIDE.md +438 -0
  562. package/docs/RELEASE-v1.10.0-COMPLETE.md +382 -0
  563. package/docs/archive/.agentdb-instructions.md +66 -0
  564. package/docs/archive/AGENT-BOOSTER-STATUS.md +292 -0
  565. package/docs/archive/CHANGELOG-v1.3.0.md +120 -0
  566. package/docs/archive/COMPLETION_REPORT_v1.7.1.md +335 -0
  567. package/docs/archive/IMPLEMENTATION_SUMMARY_v1.7.1.md +241 -0
  568. package/docs/archive/SUPABASE-INTEGRATION-COMPLETE.md +357 -0
  569. package/docs/archive/TESTING_QUICK_START.md +223 -0
  570. package/docs/archive/TOOL-EMULATION-INTEGRATION-ISSUE.md +669 -0
  571. package/docs/archive/VALIDATION_v1.7.1.md +234 -0
  572. package/docs/releases/PUBLISH_CHECKLIST_v1.10.0.md +396 -0
  573. package/docs/releases/PUBLISH_SUMMARY_v1.7.1.md +198 -0
  574. package/docs/releases/RELEASE_NOTES_v1.10.0.md +464 -0
  575. package/docs/releases/RELEASE_NOTES_v1.7.0.md +297 -0
  576. package/docs/releases/RELEASE_v1.7.1.md +327 -0
  577. package/package.json +1 -1
  578. package/validation/docker-npm-validation.sh +170 -0
  579. package/validation/simple-npm-validation.sh +131 -0
  580. package/validation/test-gemini-models.ts +200 -0
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Simple API key authentication for proxy
3
+ */
4
+ export declare class AuthManager {
5
+ private validKeys;
6
+ constructor(apiKeys?: string[]);
7
+ authenticate(headers: Record<string, string | string[] | undefined>): boolean;
8
+ private extractApiKey;
9
+ addKey(key: string): void;
10
+ removeKey(key: string): void;
11
+ hasKeys(): boolean;
12
+ }
13
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/utils/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAc;gBAEnB,OAAO,CAAC,EAAE,MAAM,EAAE;IAa9B,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,OAAO;IAgB7E,OAAO,CAAC,aAAa;IAmBrB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIzB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI5B,OAAO,IAAI,OAAO;CAGnB"}
@@ -50,3 +50,4 @@ export class AuthManager {
50
50
  return this.validKeys.size > 0;
51
51
  }
52
52
  }
53
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/utils/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,OAAO,WAAW;IACd,SAAS,CAAc;IAE/B,YAAY,OAAkB;QAC5B,yCAAyC;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAChG,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC;QAEjD,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAElC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IAED,YAAY,CAAC,OAAsD;QACjE,sDAAsD;QACtD,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,yBAAyB;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAEO,aAAa,CAAC,OAAsD;QAC1E,uBAAuB;QACvB,IAAI,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QAE/B,0CAA0C;QAC1C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;YACtC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3D,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACf,CAAC;QAED,OAAO,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAClE,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;IACjC,CAAC;CACF","sourcesContent":["/**\n * Simple API key authentication for proxy\n */\n\nexport class AuthManager {\n private validKeys: Set<string>;\n\n constructor(apiKeys?: string[]) {\n // Load from environment or provided keys\n const envKeys = process.env.PROXY_API_KEYS?.split(',').map(k => k.trim()).filter(Boolean) || [];\n const allKeys = [...(apiKeys || []), ...envKeys];\n\n this.validKeys = new Set(allKeys);\n\n if (this.validKeys.size === 0) {\n console.warn('⚠️ Warning: No API keys configured for authentication');\n console.warn(' Set PROXY_API_KEYS environment variable or pass keys to constructor');\n }\n }\n\n authenticate(headers: Record<string, string | string[] | undefined>): boolean {\n // If no keys configured, allow all (development mode)\n if (this.validKeys.size === 0) {\n return true;\n }\n\n // Check x-api-key header\n const apiKey = this.extractApiKey(headers);\n\n if (!apiKey) {\n return false;\n }\n\n return this.validKeys.has(apiKey);\n }\n\n private extractApiKey(headers: Record<string, string | string[] | undefined>): string | null {\n // Try x-api-key header\n let key = headers['x-api-key'];\n\n // Try authorization header (Bearer token)\n if (!key) {\n const auth = headers['authorization'];\n if (typeof auth === 'string' && auth.startsWith('Bearer ')) {\n key = auth.substring(7);\n }\n }\n\n if (Array.isArray(key)) {\n key = key[0];\n }\n\n return (typeof key === 'string' && key.length > 0) ? key : null;\n }\n\n addKey(key: string): void {\n this.validKeys.add(key);\n }\n\n removeKey(key: string): void {\n this.validKeys.delete(key);\n }\n\n hasKeys(): boolean {\n return this.validKeys.size > 0;\n }\n}\n"]}
@@ -0,0 +1,391 @@
1
+ /**
2
+ * Optimized Rate Limiter with Circular Buffers
3
+ * 2-5% CPU reduction through efficient circular buffer implementation
4
+ * Phase 3 Optimization
5
+ */
6
+ /**
7
+ * Circular Buffer for efficient timestamp storage
8
+ * Avoids array shifts and allocations
9
+ */
10
+ class CircularBuffer {
11
+ buffer;
12
+ head = 0;
13
+ tail = 0;
14
+ count = 0;
15
+ size;
16
+ constructor(size) {
17
+ this.size = size;
18
+ this.buffer = new Array(size);
19
+ }
20
+ /**
21
+ * Add timestamp to buffer
22
+ */
23
+ add(timestamp) {
24
+ this.buffer[this.tail] = timestamp;
25
+ this.tail = (this.tail + 1) % this.size;
26
+ if (this.count < this.size) {
27
+ this.count++;
28
+ }
29
+ else {
30
+ // Buffer is full, move head forward
31
+ this.head = (this.head + 1) % this.size;
32
+ }
33
+ }
34
+ /**
35
+ * Remove timestamps older than cutoff
36
+ */
37
+ removeOlderThan(cutoff) {
38
+ let removed = 0;
39
+ while (this.count > 0) {
40
+ const timestamp = this.buffer[this.head];
41
+ if (timestamp >= cutoff) {
42
+ break;
43
+ }
44
+ this.head = (this.head + 1) % this.size;
45
+ this.count--;
46
+ removed++;
47
+ }
48
+ return removed;
49
+ }
50
+ /**
51
+ * Get current count
52
+ */
53
+ getCount() {
54
+ return this.count;
55
+ }
56
+ /**
57
+ * Get oldest timestamp
58
+ */
59
+ getOldest() {
60
+ return this.count > 0 ? this.buffer[this.head] : null;
61
+ }
62
+ /**
63
+ * Clear buffer
64
+ */
65
+ clear() {
66
+ this.head = 0;
67
+ this.tail = 0;
68
+ this.count = 0;
69
+ }
70
+ /**
71
+ * Check if buffer is full
72
+ */
73
+ isFull() {
74
+ return this.count === this.size;
75
+ }
76
+ /**
77
+ * Get buffer utilization
78
+ */
79
+ getUtilization() {
80
+ return (this.count / this.size) * 100;
81
+ }
82
+ }
83
+ /**
84
+ * Circular Rate Limiter
85
+ * Uses circular buffers for efficient rate limiting with minimal CPU overhead
86
+ */
87
+ export class CircularRateLimiter {
88
+ config;
89
+ clients = new Map();
90
+ stats;
91
+ constructor(config) {
92
+ this.config = {
93
+ enabled: config.enabled,
94
+ windowMs: config.windowMs || 60000, // 1 minute default
95
+ maxRequests: config.maxRequests || 100,
96
+ bufferSize: config.bufferSize || 200 // 2x maxRequests for safety
97
+ };
98
+ this.stats = {
99
+ totalRequests: 0,
100
+ allowedRequests: 0,
101
+ blockedRequests: 0,
102
+ uniqueClients: 0,
103
+ avgCheckTime: 0
104
+ };
105
+ }
106
+ /**
107
+ * Check if request is allowed
108
+ */
109
+ checkLimit(clientId) {
110
+ if (!this.config.enabled) {
111
+ return {
112
+ allowed: true,
113
+ remaining: this.config.maxRequests,
114
+ resetAt: Date.now() + this.config.windowMs
115
+ };
116
+ }
117
+ const startTime = performance.now();
118
+ const now = Date.now();
119
+ const windowStart = now - this.config.windowMs;
120
+ // Get or create buffer for client
121
+ let buffer = this.clients.get(clientId);
122
+ if (!buffer) {
123
+ buffer = new CircularBuffer(this.config.bufferSize);
124
+ this.clients.set(clientId, buffer);
125
+ this.stats.uniqueClients = this.clients.size;
126
+ }
127
+ // Remove expired timestamps
128
+ buffer.removeOlderThan(windowStart);
129
+ const currentCount = buffer.getCount();
130
+ const allowed = currentCount < this.config.maxRequests;
131
+ if (allowed) {
132
+ buffer.add(now);
133
+ this.stats.allowedRequests++;
134
+ }
135
+ else {
136
+ this.stats.blockedRequests++;
137
+ }
138
+ this.stats.totalRequests++;
139
+ // Update average check time
140
+ const checkTime = performance.now() - startTime;
141
+ this.updateAvgCheckTime(checkTime);
142
+ const oldest = buffer.getOldest();
143
+ const resetAt = oldest ? oldest + this.config.windowMs : now + this.config.windowMs;
144
+ const retryAfter = allowed ? undefined : resetAt - now;
145
+ return {
146
+ allowed,
147
+ remaining: Math.max(0, this.config.maxRequests - currentCount - (allowed ? 1 : 0)),
148
+ resetAt,
149
+ retryAfter
150
+ };
151
+ }
152
+ /**
153
+ * Update average check time
154
+ */
155
+ updateAvgCheckTime(newTime) {
156
+ const total = this.stats.totalRequests;
157
+ const currentAvg = this.stats.avgCheckTime;
158
+ this.stats.avgCheckTime = (currentAvg * (total - 1) + newTime) / total;
159
+ }
160
+ /**
161
+ * Reset limit for a client
162
+ */
163
+ reset(clientId) {
164
+ const buffer = this.clients.get(clientId);
165
+ if (buffer) {
166
+ buffer.clear();
167
+ return true;
168
+ }
169
+ return false;
170
+ }
171
+ /**
172
+ * Remove a client
173
+ */
174
+ removeClient(clientId) {
175
+ const removed = this.clients.delete(clientId);
176
+ if (removed) {
177
+ this.stats.uniqueClients = this.clients.size;
178
+ }
179
+ return removed;
180
+ }
181
+ /**
182
+ * Clean up expired clients
183
+ */
184
+ cleanup() {
185
+ const now = Date.now();
186
+ const windowStart = now - this.config.windowMs;
187
+ let cleaned = 0;
188
+ for (const [clientId, buffer] of this.clients) {
189
+ buffer.removeOlderThan(windowStart);
190
+ // Remove clients with no recent activity
191
+ if (buffer.getCount() === 0) {
192
+ this.clients.delete(clientId);
193
+ cleaned++;
194
+ }
195
+ }
196
+ this.stats.uniqueClients = this.clients.size;
197
+ return cleaned;
198
+ }
199
+ /**
200
+ * Get statistics
201
+ */
202
+ getStats() {
203
+ return { ...this.stats };
204
+ }
205
+ /**
206
+ * Get block rate
207
+ */
208
+ getBlockRate() {
209
+ return this.stats.totalRequests > 0
210
+ ? (this.stats.blockedRequests / this.stats.totalRequests) * 100
211
+ : 0;
212
+ }
213
+ /**
214
+ * Get client info
215
+ */
216
+ getClientInfo(clientId) {
217
+ const buffer = this.clients.get(clientId);
218
+ if (!buffer) {
219
+ return null;
220
+ }
221
+ return {
222
+ count: buffer.getCount(),
223
+ utilization: buffer.getUtilization(),
224
+ oldest: buffer.getOldest()
225
+ };
226
+ }
227
+ /**
228
+ * Reset statistics
229
+ */
230
+ resetStats() {
231
+ this.stats = {
232
+ totalRequests: 0,
233
+ allowedRequests: 0,
234
+ blockedRequests: 0,
235
+ uniqueClients: this.clients.size,
236
+ avgCheckTime: 0
237
+ };
238
+ }
239
+ /**
240
+ * Clear all clients
241
+ */
242
+ clear() {
243
+ this.clients.clear();
244
+ this.stats.uniqueClients = 0;
245
+ }
246
+ /**
247
+ * Get configuration (for subclasses)
248
+ */
249
+ getConfig() {
250
+ return this.config;
251
+ }
252
+ }
253
+ /**
254
+ * Sliding Window Rate Limiter
255
+ * More accurate than fixed window, uses circular buffers
256
+ */
257
+ export class SlidingWindowRateLimiter extends CircularRateLimiter {
258
+ /**
259
+ * Check with sliding window algorithm
260
+ */
261
+ checkLimitSliding(clientId) {
262
+ const result = this.checkLimit(clientId);
263
+ // Sliding window provides more accurate rate limiting
264
+ // by continuously cleaning up old timestamps
265
+ const clientInfo = this.getClientInfo(clientId);
266
+ if (clientInfo && clientInfo.oldest) {
267
+ const now = Date.now();
268
+ const config = this.getConfig();
269
+ const windowStart = now - config.windowMs;
270
+ // More accurate remaining calculation
271
+ const timeInWindow = now - Math.max(clientInfo.oldest, windowStart);
272
+ const weightedCount = (clientInfo.count * timeInWindow) / config.windowMs;
273
+ result.remaining = Math.max(0, Math.floor(config.maxRequests - weightedCount));
274
+ }
275
+ return result;
276
+ }
277
+ }
278
+ /**
279
+ * Token Bucket Rate Limiter
280
+ * Allows burst traffic while maintaining average rate
281
+ */
282
+ export class TokenBucketRateLimiter {
283
+ config;
284
+ buckets = new Map();
285
+ stats;
286
+ constructor(config) {
287
+ this.config = {
288
+ capacity: config.capacity,
289
+ refillRate: config.refillRate,
290
+ refillInterval: config.refillInterval || 1000
291
+ };
292
+ this.stats = {
293
+ totalRequests: 0,
294
+ allowedRequests: 0,
295
+ blockedRequests: 0,
296
+ uniqueClients: 0,
297
+ avgCheckTime: 0
298
+ };
299
+ }
300
+ /**
301
+ * Check if tokens available
302
+ */
303
+ checkLimit(clientId, tokens = 1) {
304
+ let bucket = this.buckets.get(clientId);
305
+ if (!bucket) {
306
+ bucket = new TokenBucket(this.config.capacity, this.config.refillRate, this.config.refillInterval);
307
+ this.buckets.set(clientId, bucket);
308
+ this.stats.uniqueClients = this.buckets.size;
309
+ }
310
+ const allowed = bucket.consume(tokens);
311
+ this.stats.totalRequests++;
312
+ if (allowed) {
313
+ this.stats.allowedRequests++;
314
+ }
315
+ else {
316
+ this.stats.blockedRequests++;
317
+ }
318
+ return {
319
+ allowed,
320
+ remaining: Math.floor(bucket.getTokens()),
321
+ resetAt: Date.now() + this.config.refillInterval
322
+ };
323
+ }
324
+ /**
325
+ * Get statistics
326
+ */
327
+ getStats() {
328
+ return { ...this.stats };
329
+ }
330
+ }
331
+ /**
332
+ * Token Bucket implementation
333
+ */
334
+ class TokenBucket {
335
+ tokens;
336
+ capacity;
337
+ refillRate;
338
+ lastRefill;
339
+ refillInterval;
340
+ constructor(capacity, refillRate, refillInterval) {
341
+ this.capacity = capacity;
342
+ this.tokens = capacity;
343
+ this.refillRate = refillRate;
344
+ this.refillInterval = refillInterval;
345
+ this.lastRefill = Date.now();
346
+ }
347
+ /**
348
+ * Consume tokens
349
+ */
350
+ consume(tokens) {
351
+ this.refill();
352
+ if (this.tokens >= tokens) {
353
+ this.tokens -= tokens;
354
+ return true;
355
+ }
356
+ return false;
357
+ }
358
+ /**
359
+ * Refill tokens
360
+ */
361
+ refill() {
362
+ const now = Date.now();
363
+ const elapsed = now - this.lastRefill;
364
+ const intervals = Math.floor(elapsed / this.refillInterval);
365
+ if (intervals > 0) {
366
+ this.tokens = Math.min(this.capacity, this.tokens + intervals * this.refillRate);
367
+ this.lastRefill = now;
368
+ }
369
+ }
370
+ /**
371
+ * Get current tokens
372
+ */
373
+ getTokens() {
374
+ this.refill();
375
+ return this.tokens;
376
+ }
377
+ }
378
+ /**
379
+ * Calculate CPU savings from circular buffer optimization
380
+ */
381
+ export function calculateRateLimiterSavings(oldAvgTime, newAvgTime, totalRequests) {
382
+ const savings = oldAvgTime - newAvgTime;
383
+ const savingsPercentage = (savings / oldAvgTime) * 100;
384
+ const totalTimeSaved = savings * totalRequests;
385
+ const cpuReduction = savingsPercentage;
386
+ return {
387
+ savingsPercentage,
388
+ totalTimeSaved,
389
+ cpuReduction
390
+ };
391
+ }
@@ -0,0 +1,31 @@
1
+ export interface CliOptions {
2
+ mode: 'agent' | 'parallel' | 'list' | 'mcp' | 'mcp-manager' | 'config' | 'agent-manager' | 'proxy' | 'quic' | 'claude-code' | 'reasoningbank' | 'federation';
3
+ agent?: string;
4
+ task?: string;
5
+ model?: string;
6
+ provider?: string;
7
+ anthropicApiKey?: string;
8
+ openrouterApiKey?: string;
9
+ stream?: boolean;
10
+ temperature?: number;
11
+ maxTokens?: number;
12
+ agentsDir?: string;
13
+ outputFormat?: 'text' | 'json' | 'markdown';
14
+ verbose?: boolean;
15
+ timeout?: number;
16
+ retryOnError?: boolean;
17
+ optimize?: boolean;
18
+ optimizePriority?: 'quality' | 'balanced' | 'cost' | 'speed' | 'privacy';
19
+ maxCost?: number;
20
+ claudeCode?: boolean;
21
+ agentBooster?: boolean;
22
+ boosterThreshold?: number;
23
+ help?: boolean;
24
+ version?: boolean;
25
+ mcpCommand?: string;
26
+ mcpServer?: string;
27
+ }
28
+ export declare function parseArgs(): CliOptions;
29
+ export declare function printHelp(): void;
30
+ export declare function validateOptions(options: CliOptions): string | null;
31
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/utils/cli.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,KAAK,GAAG,aAAa,GAAG,QAAQ,GAAG,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,aAAa,GAAG,eAAe,GAAG,YAAY,CAAC;IAC7J,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAG1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IAGvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,SAAS,IAAI,UAAU,CA4LtC;AAED,wBAAgB,SAAS,IAAI,IAAI,CAiLhC;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAWlE"}
package/dist/utils/cli.js CHANGED
@@ -341,3 +341,4 @@ export function validateOptions(options) {
341
341
  }
342
342
  return null;
343
343
  }
344
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/utils/cli.ts"],"names":[],"mappings":"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","sourcesContent":["// CLI argument parsing and help utilities\n\nexport interface CliOptions {\n mode: 'agent' | 'parallel' | 'list' | 'mcp' | 'mcp-manager' | 'config' | 'agent-manager' | 'proxy' | 'quic' | 'claude-code' | 'reasoningbank' | 'federation';\n agent?: string;\n task?: string;\n\n // Provider Configuration\n model?: string;\n provider?: string;\n\n // API Configuration\n anthropicApiKey?: string;\n openrouterApiKey?: string;\n\n // Agent Behavior\n stream?: boolean;\n temperature?: number;\n maxTokens?: number;\n\n // Directory Configuration\n agentsDir?: string;\n\n // Output Options\n outputFormat?: 'text' | 'json' | 'markdown';\n verbose?: boolean;\n\n // Execution Control\n timeout?: number;\n retryOnError?: boolean;\n\n // Model Optimization\n optimize?: boolean;\n optimizePriority?: 'quality' | 'balanced' | 'cost' | 'speed' | 'privacy';\n maxCost?: number;\n\n // Agent Booster Integration\n claudeCode?: boolean; // Use Agent Booster for 57x faster code edits\n agentBooster?: boolean; // Enable Agent Booster pre-processing\n boosterThreshold?: number; // Confidence threshold for Agent Booster\n\n help?: boolean;\n version?: boolean;\n mcpCommand?: string; // start, stop, status, list\n mcpServer?: string; // claude-flow, flow-nexus, agentic-payments, all\n}\n\nexport function parseArgs(): CliOptions {\n const args = process.argv.slice(2);\n const options: CliOptions = {\n mode: 'parallel'\n };\n\n // Check for proxy command first\n if (args[0] === 'proxy') {\n options.mode = 'proxy';\n return options;\n }\n\n // Check for claude-code command\n if (args[0] === 'claude-code') {\n options.mode = 'claude-code';\n return options;\n }\n\n // Check for quic command\n if (args[0] === 'quic') {\n options.mode = 'quic';\n return options;\n }\n\n // Check for MCP command\n if (args[0] === 'mcp') {\n const mcpSubcommand = args[1];\n\n // MCP Manager commands (CLI configuration)\n const managerCommands = ['add', 'list', 'remove', 'enable', 'disable', 'update', 'test', 'info', 'export', 'import'];\n\n if (managerCommands.includes(mcpSubcommand)) {\n options.mode = 'mcp-manager';\n return options;\n }\n\n // MCP Server commands (start/stop server)\n options.mode = 'mcp';\n options.mcpCommand = mcpSubcommand || 'start'; // default to start\n options.mcpServer = args[2] || 'all'; // default to all servers\n return options;\n }\n\n // Check for config command\n if (args[0] === 'config') {\n options.mode = 'config';\n return options;\n }\n\n // Check for agent management command\n if (args[0] === 'agent') {\n options.mode = 'agent-manager';\n return options;\n }\n\n // Check for federation command\n if (args[0] === 'federation') {\n options.mode = 'federation';\n return options;\n }\n\n // Check for reasoningbank command\n if (args[0] === 'reasoningbank') {\n options.mode = 'reasoningbank';\n return options;\n }\n\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n\n switch (arg) {\n case '--help':\n case '-h':\n options.help = true;\n break;\n\n case '--version':\n case '-v':\n options.version = true;\n break;\n\n case '--agent':\n case '-a':\n options.mode = 'agent';\n options.agent = args[++i];\n break;\n\n case '--task':\n case '-t':\n options.task = args[++i];\n break;\n\n case '--model':\n case '-m':\n options.model = args[++i];\n break;\n\n case '--provider':\n case '-p':\n options.provider = args[++i];\n break;\n\n case '--stream':\n case '-s':\n options.stream = true;\n break;\n\n case '--list':\n case '-l':\n options.mode = 'list';\n break;\n\n // API Configuration\n case '--anthropic-key':\n options.anthropicApiKey = args[++i];\n break;\n\n case '--openrouter-key':\n options.openrouterApiKey = args[++i];\n break;\n\n // Agent Behavior\n case '--temperature':\n options.temperature = parseFloat(args[++i]);\n break;\n\n case '--max-tokens':\n options.maxTokens = parseInt(args[++i], 10);\n break;\n\n // Directory Configuration\n case '--agents-dir':\n options.agentsDir = args[++i];\n break;\n\n // Output Options\n case '--output':\n options.outputFormat = args[++i] as 'text' | 'json' | 'markdown';\n break;\n\n case '--verbose':\n options.verbose = true;\n break;\n\n // Execution Control\n case '--timeout':\n options.timeout = parseInt(args[++i], 10);\n break;\n\n case '--retry':\n options.retryOnError = true;\n break;\n\n // Model Optimization\n case '--optimize':\n case '-O':\n options.optimize = true;\n break;\n\n case '--priority':\n options.optimizePriority = args[++i] as 'quality' | 'balanced' | 'cost' | 'speed' | 'privacy';\n break;\n\n case '--max-cost':\n options.maxCost = parseFloat(args[++i]);\n break;\n\n // Agent Booster\n case '--agent-booster':\n case '--booster':\n options.agentBooster = true;\n break;\n\n case '--booster-threshold':\n options.boosterThreshold = parseFloat(args[++i]);\n break;\n }\n }\n\n // Check environment variable for Agent Booster\n if (process.env.AGENTIC_FLOW_AGENT_BOOSTER === 'true') {\n options.agentBooster = true;\n }\n if (process.env.AGENTIC_FLOW_BOOSTER_THRESHOLD) {\n options.boosterThreshold = parseFloat(process.env.AGENTIC_FLOW_BOOSTER_THRESHOLD);\n }\n\n return options;\n}\n\nexport function printHelp(): void {\n console.log(`\n🤖 Agentic Flow - AI Agent Orchestration CLI\n\nUSAGE:\n npx agentic-flow [COMMAND] [OPTIONS]\n\nCOMMANDS:\n reasoningbank <cmd> Memory system that learns from experience (demo, test, init)\n claude-code [options] Spawn Claude Code with proxy + Agent Booster (57x faster edits)\n mcp <command> [server] Manage MCP servers (start, stop, status, list)\n config [command] Configuration wizard (set, get, list, delete, reset)\n agent <command> Agent management (list, create, info, conflicts)\n --list, -l List all available agents\n --agent, -a <name> Run specific agent mode\n (default) Run parallel mode (3 agents)\n\nREASONINGBANK COMMANDS:\n npx agentic-flow reasoningbank demo Run interactive demo comparison\n npx agentic-flow reasoningbank test Run validation tests\n npx agentic-flow reasoningbank init Initialize database\n npx agentic-flow reasoningbank benchmark Run performance benchmarks\n npx agentic-flow reasoningbank status Show memory statistics\n\nMCP COMMANDS:\n npx agentic-flow mcp start [server] Start MCP server(s)\n npx agentic-flow mcp stop [server] Stop MCP server(s)\n npx agentic-flow mcp status [server] Check MCP server status\n npx agentic-flow mcp list List all available MCP tools\n\n Available servers: claude-flow, flow-nexus, agentic-payments, all (default)\n\nOPTIONS:\n --task, -t <task> Task description for agent mode\n --model, -m <model> Model to use (supports OpenRouter models)\n --provider, -p <name> Provider (anthropic, openrouter, onnx)\n --stream, -s Enable real-time streaming output\n\n API CONFIGURATION:\n --anthropic-key <key> Override ANTHROPIC_API_KEY\n --openrouter-key <key> Override OPENROUTER_API_KEY\n\n AGENT BEHAVIOR:\n --temperature <0.0-1.0> Sampling temperature (creativity)\n --max-tokens <number> Maximum response tokens\n\n DIRECTORY:\n --agents-dir <path> Custom agents directory\n\n OUTPUT:\n --output <text|json|md> Output format\n --verbose Enable verbose logging\n\n EXECUTION:\n --timeout <ms> Execution timeout\n --retry Auto-retry on errors\n\n MODEL OPTIMIZATION:\n --optimize, -O Auto-select best model for agent/task\n --priority <type> Optimization priority (quality|balanced|cost|speed|privacy)\n --max-cost <dollars> Maximum cost per task in dollars\n\n AGENT BOOSTER (200x faster code edits!):\n --agent-booster Enable Agent Booster pre-processing\n --booster-threshold <0-1> Confidence threshold (default: 0.7)\n\n --help, -h Show this help message\n\nEXAMPLES:\n # ReasoningBank (Learn from agent experience!)\n npx agentic-flow reasoningbank demo # See 0% → 100% success transformation\n npx agentic-flow reasoningbank test # Run 27 validation tests\n npx agentic-flow reasoningbank init # Setup memory database\n export ANTHROPIC_API_KEY=sk-ant-... # Enable LLM-based learning\n\n # Agent Booster Integration (200x faster code edits!)\n npx agentic-flow --agent coder --task \"Convert var to const in utils.js\" --agent-booster\n npx agentic-flow --agent coder --task \"Add types to api.ts\" --agent-booster --provider openrouter\n export AGENTIC_FLOW_AGENT_BOOSTER=true # Enable for all tasks\n\n # Claude Code with Agent Booster\n npx agentic-flow claude-code --provider openrouter --agent-booster\n npx agentic-flow claude-code --provider gemini \"Write a REST API\"\n npx agentic-flow claude-code --help # See all claude-code options\n\n # Agent Management\n npx agentic-flow agent list # List all agents with sources\n npx agentic-flow agent create # Interactive agent creator\n npx agentic-flow agent info coder # Get agent details\n npx agentic-flow agent conflicts # Check for conflicts\n\n # Configuration\n npx agentic-flow config # Interactive config wizard\n npx agentic-flow config set PROVIDER openrouter\n npx agentic-flow config list # View all settings\n\n # MCP Server Management\n npx agentic-flow mcp start # Start all MCP servers\n npx agentic-flow mcp list # List all 209+ MCP tools\n\n # Agent Execution (Basic)\n npx agentic-flow --list # List all agents\n npx agentic-flow --agent coder --task \"Build REST API\"\n\n # Agent Execution (Advanced)\n npx agentic-flow --agent coder --task \"Build API\" \\\\\n --provider openrouter \\\\\n --model \"meta-llama/llama-3.1-8b-instruct\" \\\\\n --temperature 0.7 \\\\\n --max-tokens 2000 \\\\\n --output json \\\\\n --verbose\n\n # Agent Execution (Custom)\n npx agentic-flow --agent my-custom-agent --task \"Your task\" \\\\\n --agents-dir ./my-agents\n\n # Parallel Mode\n npx agentic-flow # Run 3 agents in parallel\n\n # Model Optimization (Auto-select best model)\n npx agentic-flow --agent coder --task \"Build API\" --optimize\n npx agentic-flow --agent coder --task \"Build API\" --optimize --priority cost\n npx agentic-flow --agent researcher --task \"Analyze data\" --optimize --priority quality\n npx agentic-flow --agent coder --task \"Simple function\" --optimize --max-cost 0.001\n\nENVIRONMENT VARIABLES:\n ANTHROPIC_API_KEY Anthropic API key (for Claude models)\n OPENROUTER_API_KEY OpenRouter API key (for alternative models)\n USE_ONNX Set to 'true' to force ONNX local inference\n AGENT Agent name for agent mode\n TASK Task description for agent mode\n MODEL Model override for agent mode\n PROVIDER Provider to use (anthropic, openrouter, onnx)\n TOPIC Research topic for parallel mode\n DIFF Code diff for parallel mode\n DATASET Dataset hint for parallel mode\n ENABLE_STREAMING Enable streaming (true/false)\n HEALTH_PORT Health check port (default: 8080)\n\nMCP TOOLS (209+ available):\n • agentic-flow: 6 tools (agent execution, creation, management)\n • claude-flow: 101 tools (neural networks, GitHub, workflows, DAA)\n • flow-nexus: 96 cloud tools (sandboxes, distributed swarms, templates)\n • agentic-payments: 6 tools (payment authorization, multi-agent consensus)\n\nPARALLEL EXECUTION & SWARM OPTIMIZATION (v2.0):\n • Automatic Topology Selection: AI recommends optimal swarm configuration\n • Self-Learning System: Learns from 100+ execution patterns (0.6 → 0.95 confidence)\n • Pattern Recognition: ReasoningBank stores & retrieves successful strategies\n • Performance Tracking: 3.5-5.0x speedup with hierarchical topology\n • Reward System: Multi-factor scoring (speedup, success rate, efficiency)\n • Adaptive Optimization: Improves recommendations over time\n\n Supported Topologies:\n - Mesh (1-10 agents): Full peer-to-peer coordination (2.5x speedup)\n - Hierarchical (6-50 agents): Coordinator delegation (3.5-4.0x speedup) ⭐ BEST\n - Ring (1-20 agents): Sequential token passing + parallel processing\n - Star (1-30 agents): Central coordinator pattern\n\n Usage Example (CLI subprocess spawning):\n const results = await Promise.all([\n exec('npx agentic-flow --agent researcher --task \"domain1\"'),\n exec('npx agentic-flow --agent researcher --task \"domain2\"'),\n exec('npx agentic-flow --agent coder --task \"implement\"')\n ]);\n\n Auto-Optimization Example:\n import { autoSelectSwarmConfig } from './hooks/swarm-learning-optimizer';\n const config = await autoSelectSwarmConfig(reasoningBank, taskDesc, options);\n // Returns: recommendedTopology, expectedSpeedup, confidence, reasoning\n\n See: /agentic-flow/src/prompts/parallel-execution-guide.md (v2.0)\n /docs/swarm-optimization-report.md\n\nFor more information, visit: https://github.com/ruvnet/agentic-flow\n `);\n}\n\nexport function validateOptions(options: CliOptions): string | null {\n if (options.mode === 'agent') {\n if (!options.agent && !process.env.AGENT) {\n return 'Agent mode requires --agent <name> or AGENT env variable';\n }\n if (!options.task && !process.env.TASK) {\n return 'Agent mode requires --task <description> or TASK env variable';\n }\n }\n\n return null;\n}\n"]}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Compression Middleware for Proxy Responses
3
+ * Provides 30-70% bandwidth reduction with Brotli/Gzip
4
+ */
5
+ export type CompressionEncoding = 'br' | 'gzip' | 'identity';
6
+ export interface CompressionConfig {
7
+ minSize: number;
8
+ level?: number;
9
+ preferredEncoding: CompressionEncoding;
10
+ enableBrotli: boolean;
11
+ enableGzip: boolean;
12
+ }
13
+ export interface CompressionResult {
14
+ compressed: Buffer;
15
+ encoding: CompressionEncoding;
16
+ originalSize: number;
17
+ compressedSize: number;
18
+ ratio: number;
19
+ duration: number;
20
+ }
21
+ export declare class CompressionMiddleware {
22
+ private config;
23
+ constructor(config?: Partial<CompressionConfig>);
24
+ /**
25
+ * Compress data using best available algorithm
26
+ */
27
+ compress(data: Buffer, acceptedEncodings?: string): Promise<CompressionResult>;
28
+ /**
29
+ * Compress using Brotli (best compression ratio)
30
+ */
31
+ private compressBrotli;
32
+ /**
33
+ * Compress using Gzip (faster, broader support)
34
+ */
35
+ private compressGzip;
36
+ /**
37
+ * Select best encoding based on client support
38
+ */
39
+ private selectEncoding;
40
+ /**
41
+ * Check if compression is recommended for content type
42
+ */
43
+ shouldCompress(contentType?: string): boolean;
44
+ /**
45
+ * Get compression statistics
46
+ */
47
+ getStats(): {
48
+ config: Required<CompressionConfig>;
49
+ capabilities: {
50
+ brotli: boolean;
51
+ gzip: boolean;
52
+ };
53
+ };
54
+ }
55
+ //# sourceMappingURL=compression-middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compression-middleware.d.ts","sourceRoot":"","sources":["../../src/utils/compression-middleware.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,MAAM,GAAG,UAAU,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,mBAAmB,CAAC;IACvC,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAA8B;gBAEhC,MAAM,GAAE,OAAO,CAAC,iBAAiB,CAAM;IAUnD;;OAEG;IACG,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,iBAAiB,CAAC;IA6D7B;;OAEG;YACW,cAAc;IAS5B;;OAEG;YACW,YAAY;IAM1B;;OAEG;IACH,OAAO,CAAC,cAAc;IAwBtB;;OAEG;IACH,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO;IAiB7C;;OAEG;IACH,QAAQ,IAAI;QACV,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QACpC,YAAY,EAAE;YACZ,MAAM,EAAE,OAAO,CAAC;YAChB,IAAI,EAAE,OAAO,CAAC;SACf,CAAC;KACH;CASF"}
@@ -147,3 +147,4 @@ export class CompressionMiddleware {
147
147
  };
148
148
  }
149
149
  }
150
+ //# sourceMappingURL=compression-middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compression-middleware.js","sourceRoot":"","sources":["../../src/utils/compression-middleware.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,mBAAmB,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;AACtD,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAqBlC,MAAM,OAAO,qBAAqB;IACxB,MAAM,CAA8B;IAE5C,YAAY,SAAqC,EAAE;QACjD,IAAI,CAAC,MAAM,GAAG;YACZ,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI,EAAE,cAAc;YAC/C,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC,sBAAsB;YACvD,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,IAAI;YACnD,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,IAAI;YACzC,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI;SACtC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CACZ,IAAY,EACZ,iBAA0B;QAE1B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;QAEjC,sCAAsC;QACtC,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACvC,OAAO;gBACL,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,UAAU;gBACpB,YAAY;gBACZ,cAAc,EAAE,YAAY;gBAC5B,KAAK,EAAE,GAAG;gBACV,QAAQ,EAAE,CAAC;aACZ,CAAC;QACJ,CAAC;QAED,qDAAqD;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QAExD,IAAI,UAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,QAAQ,EAAE,CAAC;gBACjB,KAAK,IAAI;oBACP,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;oBAC7C,MAAM;gBACR,KAAK,MAAM;oBACT,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;oBAC3C,MAAM;gBACR;oBACE,UAAU,GAAG,IAAI,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE;gBACrD,KAAK,EAAG,KAAe,CAAC,OAAO;aAChC,CAAC,CAAC;YACH,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC;QACzC,MAAM,KAAK,GAAG,cAAc,GAAG,YAAY,CAAC;QAE5C,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE;YACnC,QAAQ;YACR,YAAY;YACZ,cAAc;YACd,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;YACrC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;YAC7C,QAAQ;SACT,CAAC,CAAC;QAEH,OAAO;YACL,UAAU;YACV,QAAQ;YACR,YAAY;YACZ,cAAc;YACd,KAAK;YACL,QAAQ;SACT,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAAC,IAAY;QACvC,OAAO,mBAAmB,CAAC,IAAI,EAAE;YAC/B,MAAM,EAAE;gBACN,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;gBACnD,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,SAAS,CAAC,gBAAgB;aAC1D;SACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CAAC,IAAY;QACrC,OAAO,SAAS,CAAC,IAAI,EAAE;YACrB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,sBAAsB;SAC7D,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,iBAA0B;QAC/C,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY;gBACvE,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;oBACxB,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,UAAU,CAAC;QACjB,CAAC;QAED,MAAM,SAAS,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAEhF,yCAAyC;QACzC,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YACzD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,6CAA6C;QAC7C,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACzD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,WAAoB;QACjC,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QAE9B,MAAM,IAAI,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;QAEvC,qBAAqB;QACrB,MAAM,YAAY,GAAG;YACnB,OAAO;YACP,kBAAkB;YAClB,wBAAwB;YACxB,iBAAiB;YACjB,mCAAmC;SACpC,CAAC;QAEF,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,QAAQ;QAON,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE;gBACZ,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;gBAChC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;aAC7B;SACF,CAAC;IACJ,CAAC;CACF","sourcesContent":["/**\n * Compression Middleware for Proxy Responses\n * Provides 30-70% bandwidth reduction with Brotli/Gzip\n */\n\nimport { brotliCompress, gzip, constants } from 'zlib';\nimport { promisify } from 'util';\nimport { logger } from './logger.js';\n\nconst brotliCompressAsync = promisify(brotliCompress);\nconst gzipAsync = promisify(gzip);\n\nexport type CompressionEncoding = 'br' | 'gzip' | 'identity';\n\nexport interface CompressionConfig {\n minSize: number; // Minimum size to compress (bytes)\n level?: number; // Compression level (0-11 for Brotli, 0-9 for Gzip)\n preferredEncoding: CompressionEncoding;\n enableBrotli: boolean;\n enableGzip: boolean;\n}\n\nexport interface CompressionResult {\n compressed: Buffer;\n encoding: CompressionEncoding;\n originalSize: number;\n compressedSize: number;\n ratio: number;\n duration: number;\n}\n\nexport class CompressionMiddleware {\n private config: Required<CompressionConfig>;\n\n constructor(config: Partial<CompressionConfig> = {}) {\n this.config = {\n minSize: config.minSize || 1024, // 1KB minimum\n level: config.level ?? constants.BROTLI_DEFAULT_QUALITY,\n preferredEncoding: config.preferredEncoding || 'br',\n enableBrotli: config.enableBrotli ?? true,\n enableGzip: config.enableGzip ?? true\n };\n }\n\n /**\n * Compress data using best available algorithm\n */\n async compress(\n data: Buffer,\n acceptedEncodings?: string\n ): Promise<CompressionResult> {\n const startTime = Date.now();\n const originalSize = data.length;\n\n // Skip compression for small payloads\n if (originalSize < this.config.minSize) {\n return {\n compressed: data,\n encoding: 'identity',\n originalSize,\n compressedSize: originalSize,\n ratio: 1.0,\n duration: 0\n };\n }\n\n // Determine encoding based on accept-encoding header\n const encoding = this.selectEncoding(acceptedEncodings);\n\n let compressed: Buffer;\n try {\n switch (encoding) {\n case 'br':\n compressed = await this.compressBrotli(data);\n break;\n case 'gzip':\n compressed = await this.compressGzip(data);\n break;\n default:\n compressed = data;\n }\n } catch (error) {\n logger.error('Compression failed, using uncompressed', {\n error: (error as Error).message\n });\n compressed = data;\n }\n\n const duration = Date.now() - startTime;\n const compressedSize = compressed.length;\n const ratio = compressedSize / originalSize;\n\n logger.debug('Compression complete', {\n encoding,\n originalSize,\n compressedSize,\n ratio: `${(ratio * 100).toFixed(2)}%`,\n savings: `${((1 - ratio) * 100).toFixed(2)}%`,\n duration\n });\n\n return {\n compressed,\n encoding,\n originalSize,\n compressedSize,\n ratio,\n duration\n };\n }\n\n /**\n * Compress using Brotli (best compression ratio)\n */\n private async compressBrotli(data: Buffer): Promise<Buffer> {\n return brotliCompressAsync(data, {\n params: {\n [constants.BROTLI_PARAM_QUALITY]: this.config.level,\n [constants.BROTLI_PARAM_MODE]: constants.BROTLI_MODE_TEXT\n }\n });\n }\n\n /**\n * Compress using Gzip (faster, broader support)\n */\n private async compressGzip(data: Buffer): Promise<Buffer> {\n return gzipAsync(data, {\n level: Math.min(this.config.level, 9) // Gzip max level is 9\n });\n }\n\n /**\n * Select best encoding based on client support\n */\n private selectEncoding(acceptedEncodings?: string): CompressionEncoding {\n if (!acceptedEncodings) {\n return this.config.preferredEncoding === 'br' && this.config.enableBrotli\n ? 'br'\n : this.config.enableGzip\n ? 'gzip'\n : 'identity';\n }\n\n const encodings = acceptedEncodings.toLowerCase().split(',').map(e => e.trim());\n\n // Prefer Brotli if supported and enabled\n if (encodings.includes('br') && this.config.enableBrotli) {\n return 'br';\n }\n\n // Fall back to Gzip if supported and enabled\n if (encodings.includes('gzip') && this.config.enableGzip) {\n return 'gzip';\n }\n\n return 'identity';\n }\n\n /**\n * Check if compression is recommended for content type\n */\n shouldCompress(contentType?: string): boolean {\n if (!contentType) return true;\n\n const type = contentType.toLowerCase();\n\n // Compressible types\n const compressible = [\n 'text/',\n 'application/json',\n 'application/javascript',\n 'application/xml',\n 'application/x-www-form-urlencoded'\n ];\n\n return compressible.some(prefix => type.includes(prefix));\n }\n\n /**\n * Get compression statistics\n */\n getStats(): {\n config: Required<CompressionConfig>;\n capabilities: {\n brotli: boolean;\n gzip: boolean;\n };\n } {\n return {\n config: this.config,\n capabilities: {\n brotli: this.config.enableBrotli,\n gzip: this.config.enableGzip\n }\n };\n }\n}\n"]}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Connection Pool for HTTP/2 and HTTP/3 Proxies
3
+ * Provides connection reuse to reduce latency by 20-30%
4
+ */
5
+ import http2 from 'http2';
6
+ export interface PoolConfig {
7
+ maxSize: number;
8
+ maxIdleTime: number;
9
+ acquireTimeout: number;
10
+ }
11
+ export declare class ConnectionPool {
12
+ private pools;
13
+ private config;
14
+ private cleanupInterval;
15
+ constructor(config?: Partial<PoolConfig>);
16
+ acquire(host: string): Promise<http2.ClientHttp2Session>;
17
+ release(session: http2.ClientHttp2Session, host: string): Promise<void>;
18
+ private createConnection;
19
+ private waitForConnection;
20
+ private isExpired;
21
+ private removeConnection;
22
+ private cleanup;
23
+ destroy(): void;
24
+ getStats(): Record<string, {
25
+ total: number;
26
+ busy: number;
27
+ idle: number;
28
+ }>;
29
+ }
30
+ //# sourceMappingURL=connection-pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-pool.d.ts","sourceRoot":"","sources":["../../src/utils/connection-pool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAUD,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,eAAe,CAAiB;gBAE5B,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM;IAatC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC;IA+CxD,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,kBAAkB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAY/D,gBAAgB;YAuBhB,iBAAiB;IAmC/B,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,OAAO;IAgCf,OAAO,IAAI,IAAI;IAef,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAc1E"}
@@ -182,3 +182,4 @@ export class ConnectionPool {
182
182
  return stats;
183
183
  }
184
184
  }
185
+ //# sourceMappingURL=connection-pool.js.map