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 @@
1
+ {"version":3,"file":"connection-pool.js","sourceRoot":"","sources":["../../src/utils/connection-pool.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Connection Pool for HTTP/2 and HTTP/3 Proxies\n * Provides connection reuse to reduce latency by 20-30%\n */\n\nimport http2 from 'http2';\nimport { logger } from './logger.js';\n\nexport interface PoolConfig {\n maxSize: number;\n maxIdleTime: number;\n acquireTimeout: number;\n}\n\ninterface PooledConnection {\n session: http2.ClientHttp2Session;\n host: string;\n busy: boolean;\n createdAt: number;\n lastUsed: number;\n}\n\nexport class ConnectionPool {\n private pools: Map<string, PooledConnection[]> = new Map();\n private config: PoolConfig;\n private cleanupInterval: NodeJS.Timeout;\n\n constructor(config: Partial<PoolConfig> = {}) {\n this.config = {\n maxSize: config.maxSize || 10,\n maxIdleTime: config.maxIdleTime || 60000, // 60 seconds\n acquireTimeout: config.acquireTimeout || 5000 // 5 seconds\n };\n\n // Cleanup expired connections every 30 seconds\n this.cleanupInterval = setInterval(() => {\n this.cleanup();\n }, 30000);\n }\n\n async acquire(host: string): Promise<http2.ClientHttp2Session> {\n const pool = this.pools.get(host) || [];\n const now = Date.now();\n\n // Find idle, non-expired connection\n const idle = pool.find(c =>\n !c.busy &&\n !this.isExpired(c, now) &&\n !c.session.closed &&\n !c.session.destroyed\n );\n\n if (idle) {\n idle.busy = true;\n idle.lastUsed = now;\n logger.debug('Reusing pooled connection', { host, poolSize: pool.length });\n return idle.session;\n }\n\n // Create new if under limit\n if (pool.length < this.config.maxSize) {\n const session = await this.createConnection(host);\n const conn: PooledConnection = {\n session,\n host,\n busy: true,\n createdAt: now,\n lastUsed: now\n };\n\n pool.push(conn);\n this.pools.set(host, pool);\n\n logger.debug('Created new pooled connection', {\n host,\n poolSize: pool.length,\n maxSize: this.config.maxSize\n });\n\n return session;\n }\n\n // Wait for available connection\n logger.debug('Pool full, waiting for connection', { host, poolSize: pool.length });\n return this.waitForConnection(host);\n }\n\n async release(session: http2.ClientHttp2Session, host: string): Promise<void> {\n const pool = this.pools.get(host);\n if (!pool) return;\n\n const conn = pool.find(c => c.session === session);\n if (conn) {\n conn.busy = false;\n conn.lastUsed = Date.now();\n logger.debug('Released pooled connection', { host });\n }\n }\n\n private async createConnection(host: string): Promise<http2.ClientHttp2Session> {\n return new Promise((resolve, reject) => {\n const session = http2.connect(host, {\n maxSessionMemory: 10 // 10MB per session\n });\n\n session.once('connect', () => {\n logger.info('HTTP/2 session connected', { host });\n resolve(session);\n });\n\n session.once('error', (error) => {\n logger.error('HTTP/2 session error', { host, error: error.message });\n reject(error);\n });\n\n // Cleanup on session close\n session.once('close', () => {\n this.removeConnection(session, host);\n });\n });\n }\n\n private async waitForConnection(host: string): Promise<http2.ClientHttp2Session> {\n const startTime = Date.now();\n\n return new Promise((resolve, reject) => {\n const checkInterval = setInterval(() => {\n const pool = this.pools.get(host);\n if (!pool) {\n clearInterval(checkInterval);\n reject(new Error('Pool disappeared'));\n return;\n }\n\n const now = Date.now();\n const available = pool.find(c =>\n !c.busy &&\n !this.isExpired(c, now) &&\n !c.session.closed\n );\n\n if (available) {\n clearInterval(checkInterval);\n available.busy = true;\n available.lastUsed = now;\n resolve(available.session);\n return;\n }\n\n if (now - startTime > this.config.acquireTimeout) {\n clearInterval(checkInterval);\n reject(new Error('Connection acquire timeout'));\n }\n }, 100); // Check every 100ms\n });\n }\n\n private isExpired(conn: PooledConnection, now: number): boolean {\n return (now - conn.lastUsed) > this.config.maxIdleTime;\n }\n\n private removeConnection(session: http2.ClientHttp2Session, host: string): void {\n const pool = this.pools.get(host);\n if (!pool) return;\n\n const index = pool.findIndex(c => c.session === session);\n if (index !== -1) {\n pool.splice(index, 1);\n logger.debug('Removed closed connection from pool', { host, poolSize: pool.length });\n }\n\n if (pool.length === 0) {\n this.pools.delete(host);\n }\n }\n\n private cleanup(): void {\n const now = Date.now();\n let removed = 0;\n\n for (const [host, pool] of this.pools.entries()) {\n const before = pool.length;\n\n // Remove expired and closed connections\n const active = pool.filter(c => {\n if (this.isExpired(c, now) || c.session.closed || c.session.destroyed) {\n if (!c.session.closed) {\n c.session.close();\n }\n return false;\n }\n return true;\n });\n\n removed += before - active.length;\n\n if (active.length === 0) {\n this.pools.delete(host);\n } else {\n this.pools.set(host, active);\n }\n }\n\n if (removed > 0) {\n logger.debug('Cleaned up expired connections', { removed });\n }\n }\n\n destroy(): void {\n clearInterval(this.cleanupInterval);\n\n for (const [host, pool] of this.pools.entries()) {\n for (const conn of pool) {\n if (!conn.session.closed) {\n conn.session.close();\n }\n }\n }\n\n this.pools.clear();\n logger.info('Connection pool destroyed');\n }\n\n getStats(): Record<string, { total: number; busy: number; idle: number }> {\n const stats: Record<string, { total: number; busy: number; idle: number }> = {};\n\n for (const [host, pool] of this.pools.entries()) {\n const busy = pool.filter(c => c.busy).length;\n stats[host] = {\n total: pool.length,\n busy,\n idle: pool.length - busy\n };\n }\n\n return stats;\n }\n}\n"]}
@@ -0,0 +1,298 @@
1
+ /**
2
+ * Dynamic Compression based on CPU
3
+ * Adaptive compression levels based on CPU availability
4
+ * Phase 3 Optimization
5
+ */
6
+ import * as zlib from 'zlib';
7
+ import { performance } from 'perf_hooks';
8
+ /**
9
+ * Compression levels with CPU costs
10
+ */
11
+ export const COMPRESSION_LEVELS = {
12
+ gzip: [
13
+ { level: 1, name: 'fastest', cpuCost: 1, compressionRatio: 3 },
14
+ { level: 3, name: 'fast', cpuCost: 3, compressionRatio: 5 },
15
+ { level: 6, name: 'default', cpuCost: 6, compressionRatio: 7 },
16
+ { level: 9, name: 'best', cpuCost: 10, compressionRatio: 9 }
17
+ ],
18
+ brotli: [
19
+ { level: 1, name: 'fastest', cpuCost: 2, compressionRatio: 4 },
20
+ { level: 4, name: 'fast', cpuCost: 4, compressionRatio: 6 },
21
+ { level: 6, name: 'default', cpuCost: 7, compressionRatio: 8 },
22
+ { level: 11, name: 'best', cpuCost: 10, compressionRatio: 10 }
23
+ ]
24
+ };
25
+ /**
26
+ * Dynamic Compression Manager
27
+ * Adjusts compression levels based on CPU load
28
+ */
29
+ export class DynamicCompressionManager {
30
+ config;
31
+ stats;
32
+ currentLevelIndex = 1; // Start with 'fast'
33
+ cpuSamples = [];
34
+ monitorInterval;
35
+ constructor(config) {
36
+ this.config = {
37
+ enabled: config.enabled,
38
+ minSize: config.minSize || 1024,
39
+ algorithm: config.algorithm || 'gzip',
40
+ adaptive: config.adaptive !== false,
41
+ cpuThresholdHigh: config.cpuThresholdHigh || 70,
42
+ cpuThresholdLow: config.cpuThresholdLow || 30,
43
+ checkInterval: config.checkInterval || 5000
44
+ };
45
+ this.stats = {
46
+ totalBytes: 0,
47
+ compressedBytes: 0,
48
+ compressionRatio: 1,
49
+ avgCompressionTime: 0,
50
+ currentLevel: this.getCurrentLevel().level,
51
+ levelChanges: 0,
52
+ cpuAdjustments: 0
53
+ };
54
+ if (this.config.adaptive) {
55
+ this.startCPUMonitoring();
56
+ }
57
+ }
58
+ /**
59
+ * Compress data with adaptive level
60
+ */
61
+ async compress(data) {
62
+ if (!this.config.enabled || data.length < this.config.minSize) {
63
+ return data;
64
+ }
65
+ const startTime = performance.now();
66
+ const level = this.getCurrentLevel();
67
+ let compressed;
68
+ try {
69
+ if (this.config.algorithm === 'brotli') {
70
+ compressed = await this.compressBrotli(data, level.level);
71
+ }
72
+ else if (this.config.algorithm === 'deflate') {
73
+ compressed = await this.compressDeflate(data, level.level);
74
+ }
75
+ else {
76
+ compressed = await this.compressGzip(data, level.level);
77
+ }
78
+ // Update statistics
79
+ const compressionTime = performance.now() - startTime;
80
+ this.updateStats(data.length, compressed.length, compressionTime);
81
+ return compressed;
82
+ }
83
+ catch (error) {
84
+ // Fallback to uncompressed
85
+ return data;
86
+ }
87
+ }
88
+ /**
89
+ * Compress with gzip
90
+ */
91
+ compressGzip(data, level) {
92
+ return new Promise((resolve, reject) => {
93
+ zlib.gzip(data, { level }, (err, result) => {
94
+ if (err)
95
+ reject(err);
96
+ else
97
+ resolve(result);
98
+ });
99
+ });
100
+ }
101
+ /**
102
+ * Compress with brotli
103
+ */
104
+ compressBrotli(data, level) {
105
+ return new Promise((resolve, reject) => {
106
+ zlib.brotliCompress(data, {
107
+ params: {
108
+ [zlib.constants.BROTLI_PARAM_QUALITY]: level
109
+ }
110
+ }, (err, result) => {
111
+ if (err)
112
+ reject(err);
113
+ else
114
+ resolve(result);
115
+ });
116
+ });
117
+ }
118
+ /**
119
+ * Compress with deflate
120
+ */
121
+ compressDeflate(data, level) {
122
+ return new Promise((resolve, reject) => {
123
+ zlib.deflate(data, { level }, (err, result) => {
124
+ if (err)
125
+ reject(err);
126
+ else
127
+ resolve(result);
128
+ });
129
+ });
130
+ }
131
+ /**
132
+ * Get current compression level
133
+ */
134
+ getCurrentLevel() {
135
+ const levels = COMPRESSION_LEVELS[this.config.algorithm];
136
+ return levels[this.currentLevelIndex] || levels[1];
137
+ }
138
+ /**
139
+ * Adjust compression level based on CPU
140
+ */
141
+ adjustLevel(cpuUsage) {
142
+ const levels = COMPRESSION_LEVELS[this.config.algorithm];
143
+ const oldIndex = this.currentLevelIndex;
144
+ if (cpuUsage > this.config.cpuThresholdHigh && this.currentLevelIndex > 0) {
145
+ // CPU high, reduce compression level
146
+ this.currentLevelIndex--;
147
+ this.stats.cpuAdjustments++;
148
+ }
149
+ else if (cpuUsage < this.config.cpuThresholdLow && this.currentLevelIndex < levels.length - 1) {
150
+ // CPU low, increase compression level
151
+ this.currentLevelIndex++;
152
+ this.stats.cpuAdjustments++;
153
+ }
154
+ if (oldIndex !== this.currentLevelIndex) {
155
+ this.stats.levelChanges++;
156
+ this.stats.currentLevel = this.getCurrentLevel().level;
157
+ }
158
+ }
159
+ /**
160
+ * Start CPU monitoring
161
+ */
162
+ startCPUMonitoring() {
163
+ this.monitorInterval = setInterval(() => {
164
+ const cpuUsage = this.getCPUUsage();
165
+ this.cpuSamples.push(cpuUsage);
166
+ // Keep last 10 samples
167
+ if (this.cpuSamples.length > 10) {
168
+ this.cpuSamples.shift();
169
+ }
170
+ // Calculate average CPU
171
+ const avgCPU = this.cpuSamples.reduce((a, b) => a + b, 0) / this.cpuSamples.length;
172
+ // Adjust compression level
173
+ this.adjustLevel(avgCPU);
174
+ }, this.config.checkInterval);
175
+ }
176
+ /**
177
+ * Get CPU usage percentage
178
+ */
179
+ getCPUUsage() {
180
+ const cpus = require('os').cpus();
181
+ let totalIdle = 0;
182
+ let totalTick = 0;
183
+ for (const cpu of cpus) {
184
+ for (const type in cpu.times) {
185
+ totalTick += cpu.times[type];
186
+ }
187
+ totalIdle += cpu.times.idle;
188
+ }
189
+ const idle = totalIdle / cpus.length;
190
+ const total = totalTick / cpus.length;
191
+ const usage = 100 - ~~(100 * idle / total);
192
+ return Math.max(0, Math.min(100, usage));
193
+ }
194
+ /**
195
+ * Update statistics
196
+ */
197
+ updateStats(originalSize, compressedSize, time) {
198
+ this.stats.totalBytes += originalSize;
199
+ this.stats.compressedBytes += compressedSize;
200
+ this.stats.compressionRatio = this.stats.totalBytes / this.stats.compressedBytes;
201
+ // Update average compression time
202
+ const totalCompressions = this.stats.totalBytes / (originalSize || 1);
203
+ this.stats.avgCompressionTime =
204
+ (this.stats.avgCompressionTime * (totalCompressions - 1) + time) / totalCompressions;
205
+ }
206
+ /**
207
+ * Get statistics
208
+ */
209
+ getStats() {
210
+ const level = this.getCurrentLevel();
211
+ const avgCPU = this.cpuSamples.length > 0
212
+ ? this.cpuSamples.reduce((a, b) => a + b, 0) / this.cpuSamples.length
213
+ : 0;
214
+ return {
215
+ ...this.stats,
216
+ currentLevelName: level.name,
217
+ cpuUsage: avgCPU
218
+ };
219
+ }
220
+ /**
221
+ * Get compression savings
222
+ */
223
+ getSavings() {
224
+ const byteSavings = this.stats.totalBytes - this.stats.compressedBytes;
225
+ const percentSavings = (byteSavings / this.stats.totalBytes) * 100;
226
+ const mbSaved = byteSavings / (1024 * 1024);
227
+ return {
228
+ byteSavings,
229
+ percentSavings,
230
+ mbSaved
231
+ };
232
+ }
233
+ /**
234
+ * Manually set compression level
235
+ */
236
+ setLevel(levelName) {
237
+ const levels = COMPRESSION_LEVELS[this.config.algorithm];
238
+ const index = levels.findIndex(l => l.name === levelName);
239
+ if (index !== -1) {
240
+ this.currentLevelIndex = index;
241
+ this.stats.currentLevel = levels[index].level;
242
+ this.stats.levelChanges++;
243
+ return true;
244
+ }
245
+ return false;
246
+ }
247
+ /**
248
+ * Reset statistics
249
+ */
250
+ resetStats() {
251
+ this.stats = {
252
+ totalBytes: 0,
253
+ compressedBytes: 0,
254
+ compressionRatio: 1,
255
+ avgCompressionTime: 0,
256
+ currentLevel: this.getCurrentLevel().level,
257
+ levelChanges: 0,
258
+ cpuAdjustments: 0
259
+ };
260
+ }
261
+ /**
262
+ * Stop CPU monitoring
263
+ */
264
+ destroy() {
265
+ if (this.monitorInterval) {
266
+ clearInterval(this.monitorInterval);
267
+ }
268
+ }
269
+ }
270
+ /**
271
+ * Content-type aware compression
272
+ */
273
+ export function shouldCompress(contentType, size, minSize = 1024) {
274
+ if (size < minSize) {
275
+ return false;
276
+ }
277
+ const compressibleTypes = [
278
+ 'text/',
279
+ 'application/json',
280
+ 'application/javascript',
281
+ 'application/xml',
282
+ 'application/x-www-form-urlencoded'
283
+ ];
284
+ return compressibleTypes.some(type => contentType.startsWith(type));
285
+ }
286
+ /**
287
+ * Calculate compression efficiency
288
+ */
289
+ export function calculateCompressionEfficiency(stats) {
290
+ const timePerMB = stats.avgCompressionTime / ((stats.totalBytes / (1024 * 1024)) || 1);
291
+ const ratioScore = Math.min(100, (stats.compressionRatio - 1) * 10);
292
+ const efficiency = (ratioScore * 0.7) + ((100 - Math.min(100, timePerMB)) * 0.3);
293
+ return {
294
+ efficiency,
295
+ timePerMB,
296
+ ratioScore
297
+ };
298
+ }
@@ -0,0 +1,319 @@
1
+ /**
2
+ * HTTP/2 Multiplexing Optimization
3
+ * Stream prioritization and flow control for concurrent request optimization
4
+ * Phase 2 Optimization
5
+ */
6
+ /**
7
+ * HTTP/2 Multiplexing Manager
8
+ * Manages stream prioritization and concurrent request handling
9
+ */
10
+ export class HTTP2MultiplexingManager {
11
+ config;
12
+ activeStreams = new Map();
13
+ priorityQueues = new Map();
14
+ stats;
15
+ constructor(config) {
16
+ this.config = {
17
+ enabled: config.enabled,
18
+ maxConcurrentStreams: config.maxConcurrentStreams || 100,
19
+ defaultPriority: config.defaultPriority || 16,
20
+ enableFlowControl: config.enableFlowControl !== false,
21
+ initialWindowSize: config.initialWindowSize || 65535
22
+ };
23
+ this.stats = {
24
+ totalStreams: 0,
25
+ activeStreams: 0,
26
+ completedStreams: 0,
27
+ averageDuration: 0,
28
+ priorityChanges: 0
29
+ };
30
+ this.initializePriorityQueues();
31
+ }
32
+ /**
33
+ * Initialize priority queues (1-256)
34
+ */
35
+ initializePriorityQueues() {
36
+ for (let i = 1; i <= 256; i++) {
37
+ this.priorityQueues.set(i, new Set());
38
+ }
39
+ }
40
+ /**
41
+ * Register a new stream
42
+ */
43
+ registerStream(stream, priority) {
44
+ if (!this.config.enabled)
45
+ return;
46
+ const streamId = stream.id || 0;
47
+ const streamPriority = priority?.weight || this.config.defaultPriority;
48
+ const info = {
49
+ stream,
50
+ priority: streamPriority,
51
+ bytesReceived: 0,
52
+ bytesSent: 0,
53
+ startTime: Date.now(),
54
+ state: 'open'
55
+ };
56
+ this.activeStreams.set(streamId, info);
57
+ this.priorityQueues.get(streamPriority)?.add(streamId);
58
+ this.stats.totalStreams++;
59
+ this.stats.activeStreams++;
60
+ // Set stream priority
61
+ if (priority) {
62
+ this.setPriority(stream, priority);
63
+ }
64
+ // Setup event handlers
65
+ this.setupStreamHandlers(stream, streamId);
66
+ }
67
+ /**
68
+ * Set stream priority
69
+ */
70
+ setPriority(stream, priority) {
71
+ try {
72
+ stream.priority(priority);
73
+ const streamId = stream.id || 0;
74
+ const info = this.activeStreams.get(streamId);
75
+ if (info) {
76
+ // Move to new priority queue
77
+ const oldPriority = info.priority;
78
+ const newPriority = priority.weight;
79
+ this.priorityQueues.get(oldPriority)?.delete(streamId);
80
+ info.priority = newPriority;
81
+ this.priorityQueues.get(newPriority)?.add(streamId);
82
+ this.stats.priorityChanges++;
83
+ }
84
+ }
85
+ catch (error) {
86
+ // Stream may be closed
87
+ }
88
+ }
89
+ /**
90
+ * Adjust stream priority based on load
91
+ */
92
+ adjustPriority(streamId, adjustment) {
93
+ const info = this.activeStreams.get(streamId);
94
+ if (!info)
95
+ return;
96
+ const newPriority = Math.max(1, Math.min(256, info.priority + adjustment));
97
+ this.setPriority(info.stream, {
98
+ weight: newPriority,
99
+ exclusive: false
100
+ });
101
+ }
102
+ /**
103
+ * Get next stream to process based on priority
104
+ */
105
+ getNextStream() {
106
+ // Process highest priority streams first (256 is highest)
107
+ for (let priority = 256; priority >= 1; priority--) {
108
+ const queue = this.priorityQueues.get(priority);
109
+ if (queue && queue.size > 0) {
110
+ const streamId = queue.values().next().value;
111
+ if (streamId !== undefined) {
112
+ const info = this.activeStreams.get(streamId);
113
+ if (info && info.state === 'open') {
114
+ return info.stream;
115
+ }
116
+ }
117
+ }
118
+ }
119
+ return null;
120
+ }
121
+ /**
122
+ * Setup stream event handlers
123
+ */
124
+ setupStreamHandlers(stream, streamId) {
125
+ stream.on('data', (chunk) => {
126
+ const info = this.activeStreams.get(streamId);
127
+ if (info) {
128
+ info.bytesReceived += chunk.length;
129
+ }
130
+ });
131
+ stream.on('end', () => {
132
+ this.updateStreamState(streamId, 'half-closed');
133
+ });
134
+ stream.on('close', () => {
135
+ this.handleStreamClose(streamId);
136
+ });
137
+ stream.on('error', () => {
138
+ this.handleStreamClose(streamId);
139
+ });
140
+ }
141
+ /**
142
+ * Update stream state
143
+ */
144
+ updateStreamState(streamId, state) {
145
+ const info = this.activeStreams.get(streamId);
146
+ if (info) {
147
+ info.state = state;
148
+ }
149
+ }
150
+ /**
151
+ * Handle stream closure
152
+ */
153
+ handleStreamClose(streamId) {
154
+ const info = this.activeStreams.get(streamId);
155
+ if (!info)
156
+ return;
157
+ // Remove from priority queue
158
+ this.priorityQueues.get(info.priority)?.delete(streamId);
159
+ // Update statistics
160
+ const duration = Date.now() - info.startTime;
161
+ this.updateStats(duration);
162
+ // Remove from active streams
163
+ this.activeStreams.delete(streamId);
164
+ this.stats.activeStreams--;
165
+ this.stats.completedStreams++;
166
+ }
167
+ /**
168
+ * Update statistics
169
+ */
170
+ updateStats(duration) {
171
+ const currentAvg = this.stats.averageDuration;
172
+ const total = this.stats.completedStreams;
173
+ this.stats.averageDuration = (currentAvg * (total - 1) + duration) / total;
174
+ }
175
+ /**
176
+ * Get stream statistics
177
+ */
178
+ getStreamStats(streamId) {
179
+ const info = this.activeStreams.get(streamId);
180
+ if (!info)
181
+ return null;
182
+ return {
183
+ streamId,
184
+ priority: info.priority,
185
+ bytesReceived: info.bytesReceived,
186
+ bytesSent: info.bytesSent,
187
+ duration: Date.now() - info.startTime,
188
+ state: info.state
189
+ };
190
+ }
191
+ /**
192
+ * Get all statistics
193
+ */
194
+ getStats() {
195
+ const priorityDistribution = new Map();
196
+ for (const [priority, queue] of this.priorityQueues) {
197
+ if (queue.size > 0) {
198
+ priorityDistribution.set(priority, queue.size);
199
+ }
200
+ }
201
+ return {
202
+ ...this.stats,
203
+ priorityDistribution
204
+ };
205
+ }
206
+ /**
207
+ * Check if can accept more streams
208
+ */
209
+ canAcceptStream() {
210
+ return this.stats.activeStreams < this.config.maxConcurrentStreams;
211
+ }
212
+ /**
213
+ * Get load percentage
214
+ */
215
+ getLoad() {
216
+ return (this.stats.activeStreams / this.config.maxConcurrentStreams) * 100;
217
+ }
218
+ }
219
+ /**
220
+ * Flow Control Manager
221
+ * Manages HTTP/2 flow control for optimal throughput
222
+ */
223
+ export class FlowControlManager {
224
+ windowSizes = new Map();
225
+ config;
226
+ constructor(config) {
227
+ this.config = {
228
+ initialWindowSize: config?.initialWindowSize || 65535,
229
+ maxWindowSize: config?.maxWindowSize || 16777215, // 16MB
230
+ minWindowSize: config?.minWindowSize || 16384 // 16KB
231
+ };
232
+ }
233
+ /**
234
+ * Initialize window size for a stream
235
+ */
236
+ initializeWindow(streamId) {
237
+ this.windowSizes.set(streamId, this.config.initialWindowSize);
238
+ }
239
+ /**
240
+ * Update window size
241
+ */
242
+ updateWindow(streamId, delta) {
243
+ const current = this.windowSizes.get(streamId) || this.config.initialWindowSize;
244
+ const newSize = Math.max(this.config.minWindowSize, Math.min(this.config.maxWindowSize, current + delta));
245
+ this.windowSizes.set(streamId, newSize);
246
+ return newSize;
247
+ }
248
+ /**
249
+ * Get current window size
250
+ */
251
+ getWindowSize(streamId) {
252
+ return this.windowSizes.get(streamId) || this.config.initialWindowSize;
253
+ }
254
+ /**
255
+ * Calculate optimal window size based on throughput
256
+ */
257
+ calculateOptimalWindow(throughputBps, rttMs) {
258
+ // Bandwidth-Delay Product
259
+ const bdp = (throughputBps / 8) * (rttMs / 1000);
260
+ return Math.max(this.config.minWindowSize, Math.min(this.config.maxWindowSize, Math.ceil(bdp * 2)));
261
+ }
262
+ /**
263
+ * Clean up closed stream
264
+ */
265
+ cleanup(streamId) {
266
+ this.windowSizes.delete(streamId);
267
+ }
268
+ }
269
+ /**
270
+ * Priority scheduler for optimal stream processing
271
+ */
272
+ export class PriorityScheduler {
273
+ queues = new Map();
274
+ /**
275
+ * Add stream to priority queue
276
+ */
277
+ enqueue(streamId, priority) {
278
+ if (!this.queues.has(priority)) {
279
+ this.queues.set(priority, []);
280
+ }
281
+ this.queues.get(priority).push(streamId);
282
+ }
283
+ /**
284
+ * Get next stream to process
285
+ */
286
+ dequeue() {
287
+ // Process highest priority first
288
+ for (let priority = 256; priority >= 1; priority--) {
289
+ const queue = this.queues.get(priority);
290
+ if (queue && queue.length > 0) {
291
+ return queue.shift();
292
+ }
293
+ }
294
+ return null;
295
+ }
296
+ /**
297
+ * Remove stream from all queues
298
+ */
299
+ remove(streamId) {
300
+ for (const queue of this.queues.values()) {
301
+ const index = queue.indexOf(streamId);
302
+ if (index !== -1) {
303
+ queue.splice(index, 1);
304
+ }
305
+ }
306
+ }
307
+ /**
308
+ * Get queue sizes
309
+ */
310
+ getStats() {
311
+ const stats = new Map();
312
+ for (const [priority, queue] of this.queues) {
313
+ if (queue.length > 0) {
314
+ stats.set(priority, queue.length);
315
+ }
316
+ }
317
+ return stats;
318
+ }
319
+ }