agentic-flow 1.10.1 → 1.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -1338
- package/dist/.tsbuildinfo +1 -0
- package/dist/agentdb/index.d.ts +26 -0
- package/dist/agentdb/index.d.ts.map +1 -0
- package/dist/agentdb/index.js +1 -0
- package/dist/agentdb/index.js.map +1 -0
- package/dist/agentdb/validate-frontier.cjs +416 -0
- package/dist/agentdb/validate-frontier.cjs.map +1 -0
- package/dist/agentdb/validate-frontier.d.cts +2 -0
- package/dist/agentdb/validate-frontier.d.cts.map +1 -0
- package/dist/agents/claudeAgent.d.ts +6 -0
- package/dist/agents/claudeAgent.d.ts.map +1 -0
- package/dist/agents/claudeAgent.js +22 -3
- package/dist/agents/claudeAgent.js.map +1 -0
- package/dist/agents/claudeAgentDirect.d.ts +6 -0
- package/dist/agents/claudeAgentDirect.d.ts.map +1 -0
- package/dist/agents/claudeAgentDirect.js +1 -0
- package/dist/agents/claudeAgentDirect.js.map +1 -0
- package/dist/agents/claudeFlowAgent.d.ts +32 -0
- package/dist/agents/claudeFlowAgent.d.ts.map +1 -0
- package/dist/agents/claudeFlowAgent.js +1 -0
- package/dist/agents/claudeFlowAgent.js.map +1 -0
- package/dist/agents/codeReviewAgent.d.ts +4 -0
- package/dist/agents/codeReviewAgent.d.ts.map +1 -0
- package/dist/agents/codeReviewAgent.js +1 -0
- package/dist/agents/codeReviewAgent.js.map +1 -0
- package/dist/agents/dataAgent.d.ts +4 -0
- package/dist/agents/dataAgent.d.ts.map +1 -0
- package/dist/agents/dataAgent.js +1 -0
- package/dist/agents/dataAgent.js.map +1 -0
- package/dist/agents/directApiAgent.d.ts +10 -0
- package/dist/agents/directApiAgent.d.ts.map +1 -0
- package/dist/agents/directApiAgent.js +1 -0
- package/dist/agents/directApiAgent.js.map +1 -0
- package/dist/agents/webResearchAgent.d.ts +4 -0
- package/dist/agents/webResearchAgent.d.ts.map +1 -0
- package/dist/agents/webResearchAgent.js +1 -0
- package/dist/agents/webResearchAgent.js.map +1 -0
- package/dist/cli/agent-manager.d.ts +57 -0
- package/dist/cli/agent-manager.d.ts.map +1 -0
- package/dist/cli/agent-manager.js +1 -0
- package/dist/cli/agent-manager.js.map +1 -0
- package/dist/cli/claude-code-wrapper.d.ts +21 -0
- package/dist/cli/claude-code-wrapper.d.ts.map +1 -0
- package/dist/cli/claude-code-wrapper.js +1 -0
- package/dist/cli/claude-code-wrapper.js.map +1 -0
- package/dist/cli/config-wizard.d.ts +21 -0
- package/dist/cli/config-wizard.d.ts.map +1 -0
- package/dist/cli/config-wizard.js +1 -0
- package/dist/cli/config-wizard.js.map +1 -0
- package/dist/cli/federation-cli.d.ts +1 -0
- package/dist/cli/federation-cli.d.ts.map +1 -0
- package/dist/cli/federation-cli.js +1 -0
- package/dist/cli/federation-cli.js.map +1 -0
- package/dist/cli/mcp-manager.d.ts +12 -0
- package/dist/cli/mcp-manager.d.ts.map +1 -0
- package/dist/cli/mcp-manager.js +1 -0
- package/dist/cli/mcp-manager.js.map +1 -0
- package/dist/cli/mcp.d.ts +11 -0
- package/dist/cli/mcp.d.ts.map +1 -0
- package/dist/cli/mcp.js +1 -0
- package/dist/cli/mcp.js.map +1 -0
- package/dist/cli-proxy.d.ts +7 -0
- package/dist/cli-proxy.d.ts.map +1 -0
- package/dist/cli-proxy.js +1 -0
- package/dist/cli-proxy.js.map +1 -0
- package/dist/cli-standalone-proxy.d.ts +17 -0
- package/dist/cli-standalone-proxy.d.ts.map +1 -0
- package/dist/cli-standalone-proxy.js +1 -0
- package/dist/cli-standalone-proxy.js.map +1 -0
- package/dist/config/claudeFlow.d.ts +33 -0
- package/dist/config/claudeFlow.d.ts.map +1 -0
- package/dist/config/claudeFlow.js +1 -0
- package/dist/config/claudeFlow.js.map +1 -0
- package/dist/config/quic.d.ts +58 -0
- package/dist/config/quic.d.ts.map +1 -0
- package/dist/config/quic.js +1 -0
- package/dist/config/quic.js.map +1 -0
- package/dist/config/tools.d.ts +17 -0
- package/dist/config/tools.d.ts.map +1 -0
- package/dist/config/tools.js +1 -0
- package/dist/config/tools.js.map +1 -0
- package/dist/core/long-running-agent.d.ts +92 -0
- package/dist/core/long-running-agent.d.ts.map +1 -0
- package/dist/core/long-running-agent.js +1 -0
- package/dist/core/long-running-agent.js.map +1 -0
- package/dist/core/provider-manager.d.ts +145 -0
- package/dist/core/provider-manager.d.ts.map +1 -0
- package/dist/core/provider-manager.js +1 -0
- package/dist/core/provider-manager.js.map +1 -0
- package/dist/examples/multi-agent-orchestration.d.ts +3 -0
- package/dist/examples/multi-agent-orchestration.d.ts.map +1 -0
- package/dist/examples/multi-agent-orchestration.js +1 -0
- package/dist/examples/multi-agent-orchestration.js.map +1 -0
- package/dist/examples/use-goal-planner.d.ts +3 -0
- package/dist/examples/use-goal-planner.d.ts.map +1 -0
- package/dist/examples/use-goal-planner.js +1 -0
- package/dist/examples/use-goal-planner.js.map +1 -0
- package/dist/examples/use-provider-fallback.d.ts +13 -0
- package/dist/examples/use-provider-fallback.d.ts.map +1 -0
- package/dist/examples/use-provider-fallback.js +1 -0
- package/dist/examples/use-provider-fallback.js.map +1 -0
- package/dist/federation/EphemeralAgent.d.ts +84 -0
- package/dist/federation/EphemeralAgent.d.ts.map +1 -0
- package/dist/federation/EphemeralAgent.js +1 -0
- package/dist/federation/EphemeralAgent.js.map +1 -0
- package/dist/federation/FederationHub.d.ts +89 -0
- package/dist/federation/FederationHub.d.ts.map +1 -0
- package/dist/federation/FederationHub.js +1 -0
- package/dist/federation/FederationHub.js.map +1 -0
- package/dist/federation/FederationHubClient.d.ts +70 -0
- package/dist/federation/FederationHubClient.d.ts.map +1 -0
- package/dist/federation/FederationHubClient.js +1 -0
- package/dist/federation/FederationHubClient.js.map +1 -0
- package/dist/federation/FederationHubServer.d.ts +100 -0
- package/dist/federation/FederationHubServer.d.ts.map +1 -0
- package/dist/federation/FederationHubServer.js +1 -0
- package/dist/federation/FederationHubServer.js.map +1 -0
- package/dist/federation/SecurityManager.d.ts +80 -0
- package/dist/federation/SecurityManager.d.ts.map +1 -0
- package/dist/federation/SecurityManager.js +1 -0
- package/dist/federation/SecurityManager.js.map +1 -0
- package/dist/federation/debug/agent-debug-stream.d.ts +171 -0
- package/dist/federation/debug/agent-debug-stream.d.ts.map +1 -0
- package/dist/federation/debug/agent-debug-stream.js +1 -0
- package/dist/federation/debug/agent-debug-stream.js.map +1 -0
- package/dist/federation/debug/debug-stream.d.ts +157 -0
- package/dist/federation/debug/debug-stream.d.ts.map +1 -0
- package/dist/federation/debug/debug-stream.js +1 -0
- package/dist/federation/debug/debug-stream.js.map +1 -0
- package/dist/federation/index.d.ts +13 -0
- package/dist/federation/index.d.ts.map +1 -0
- package/dist/federation/index.js +1 -0
- package/dist/federation/index.js.map +1 -0
- package/dist/federation/integrations/realtime-federation.d.ts +144 -0
- package/dist/federation/integrations/realtime-federation.d.ts.map +1 -0
- package/dist/federation/integrations/realtime-federation.js +1 -0
- package/dist/federation/integrations/realtime-federation.js.map +1 -0
- package/dist/federation/integrations/supabase-adapter-debug.d.ts +91 -0
- package/dist/federation/integrations/supabase-adapter-debug.d.ts.map +1 -0
- package/dist/federation/integrations/supabase-adapter-debug.js +1 -0
- package/dist/federation/integrations/supabase-adapter-debug.js.map +1 -0
- package/dist/federation/integrations/supabase-adapter.d.ts +89 -0
- package/dist/federation/integrations/supabase-adapter.d.ts.map +1 -0
- package/dist/federation/integrations/supabase-adapter.js +1 -0
- package/dist/federation/integrations/supabase-adapter.js.map +1 -0
- package/dist/health.d.ts +28 -0
- package/dist/health.d.ts.map +1 -0
- package/dist/health.js +1 -0
- package/dist/health.js.map +1 -0
- package/dist/hooks/parallel-validation.d.ts +51 -0
- package/dist/hooks/parallel-validation.d.ts.map +1 -0
- package/dist/hooks/parallel-validation.js +1 -0
- package/dist/hooks/parallel-validation.js.map +1 -0
- package/dist/hooks/swarm-learning-optimizer.d.ts +89 -0
- package/dist/hooks/swarm-learning-optimizer.d.ts.map +1 -0
- package/dist/hooks/swarm-learning-optimizer.js +1 -0
- package/dist/hooks/swarm-learning-optimizer.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/claudeFlowSdkServer.d.ts +6 -0
- package/dist/mcp/claudeFlowSdkServer.d.ts.map +1 -0
- package/dist/mcp/claudeFlowSdkServer.js +1 -0
- package/dist/mcp/claudeFlowSdkServer.js.map +1 -0
- package/dist/mcp/fastmcp/servers/claude-flow-sdk.d.ts +3 -0
- package/dist/mcp/fastmcp/servers/claude-flow-sdk.d.ts.map +1 -0
- package/dist/mcp/fastmcp/servers/claude-flow-sdk.js +1 -0
- package/dist/mcp/fastmcp/servers/claude-flow-sdk.js.map +1 -0
- package/dist/mcp/fastmcp/servers/http-sse.d.ts +3 -0
- package/dist/mcp/fastmcp/servers/http-sse.d.ts.map +1 -0
- package/dist/mcp/fastmcp/servers/http-sse.js +1 -0
- package/dist/mcp/fastmcp/servers/http-sse.js.map +1 -0
- package/dist/mcp/fastmcp/servers/http-streaming-updated.d.ts +3 -0
- package/dist/mcp/fastmcp/servers/http-streaming-updated.d.ts.map +1 -0
- package/dist/mcp/fastmcp/servers/http-streaming-updated.js +1 -0
- package/dist/mcp/fastmcp/servers/http-streaming-updated.js.map +1 -0
- package/dist/mcp/fastmcp/servers/poc-stdio.d.ts +3 -0
- package/dist/mcp/fastmcp/servers/poc-stdio.d.ts.map +1 -0
- package/dist/mcp/fastmcp/servers/poc-stdio.js +1 -0
- package/dist/mcp/fastmcp/servers/poc-stdio.js.map +1 -0
- package/dist/mcp/fastmcp/servers/stdio-full.d.ts +3 -0
- package/dist/mcp/fastmcp/servers/stdio-full.d.ts.map +1 -0
- package/dist/mcp/fastmcp/servers/stdio-full.js +1 -0
- package/dist/mcp/fastmcp/servers/stdio-full.js.map +1 -0
- package/dist/mcp/fastmcp/tools/agent/add-agent.d.ts +3 -0
- package/dist/mcp/fastmcp/tools/agent/add-agent.d.ts.map +1 -0
- package/dist/mcp/fastmcp/tools/agent/add-agent.js +1 -0
- package/dist/mcp/fastmcp/tools/agent/add-agent.js.map +1 -0
- package/dist/mcp/fastmcp/tools/agent/add-command.d.ts +3 -0
- package/dist/mcp/fastmcp/tools/agent/add-command.d.ts.map +1 -0
- package/dist/mcp/fastmcp/tools/agent/add-command.js +1 -0
- package/dist/mcp/fastmcp/tools/agent/add-command.js.map +1 -0
- package/dist/mcp/fastmcp/tools/agent/execute.d.ts +3 -0
- package/dist/mcp/fastmcp/tools/agent/execute.d.ts.map +1 -0
- package/dist/mcp/fastmcp/tools/agent/execute.js +1 -0
- package/dist/mcp/fastmcp/tools/agent/execute.js.map +1 -0
- package/dist/mcp/fastmcp/tools/agent/list.d.ts +3 -0
- package/dist/mcp/fastmcp/tools/agent/list.d.ts.map +1 -0
- package/dist/mcp/fastmcp/tools/agent/list.js +1 -0
- package/dist/mcp/fastmcp/tools/agent/list.js.map +1 -0
- package/dist/mcp/fastmcp/tools/agent/parallel.d.ts +3 -0
- package/dist/mcp/fastmcp/tools/agent/parallel.d.ts.map +1 -0
- package/dist/mcp/fastmcp/tools/agent/parallel.js +1 -0
- package/dist/mcp/fastmcp/tools/agent/parallel.js.map +1 -0
- package/dist/mcp/fastmcp/tools/swarm/init.d.ts +3 -0
- package/dist/mcp/fastmcp/tools/swarm/init.d.ts.map +1 -0
- package/dist/mcp/fastmcp/tools/swarm/init.js +1 -0
- package/dist/mcp/fastmcp/tools/swarm/init.js.map +1 -0
- package/dist/mcp/fastmcp/tools/swarm/orchestrate.d.ts +3 -0
- package/dist/mcp/fastmcp/tools/swarm/orchestrate.d.ts.map +1 -0
- package/dist/mcp/fastmcp/tools/swarm/orchestrate.js +1 -0
- package/dist/mcp/fastmcp/tools/swarm/orchestrate.js.map +1 -0
- package/dist/mcp/fastmcp/tools/swarm/spawn.d.ts +3 -0
- package/dist/mcp/fastmcp/tools/swarm/spawn.d.ts.map +1 -0
- package/dist/mcp/fastmcp/tools/swarm/spawn.js +1 -0
- package/dist/mcp/fastmcp/tools/swarm/spawn.js.map +1 -0
- package/dist/mcp/fastmcp/types/index.d.ts +33 -0
- package/dist/mcp/fastmcp/types/index.d.ts.map +1 -0
- package/dist/mcp/fastmcp/types/index.js +1 -0
- package/dist/mcp/fastmcp/types/index.js.map +1 -0
- package/dist/mcp/standalone-stdio.d.ts +3 -0
- package/dist/mcp/standalone-stdio.d.ts.map +1 -0
- package/dist/mcp/standalone-stdio.js +1 -0
- package/dist/mcp/standalone-stdio.js.map +1 -0
- package/dist/memory/SharedMemoryPool.d.ts +116 -0
- package/dist/memory/SharedMemoryPool.d.ts.map +1 -0
- package/dist/memory/SharedMemoryPool.js +1 -0
- package/dist/memory/SharedMemoryPool.js.map +1 -0
- package/dist/memory/index.d.ts +8 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +1 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/proxy/adaptive-proxy.d.ts +51 -0
- package/dist/proxy/adaptive-proxy.d.ts.map +1 -0
- package/dist/proxy/adaptive-proxy.js +1 -0
- package/dist/proxy/adaptive-proxy.js.map +1 -0
- package/dist/proxy/anthropic-to-gemini.d.ts +20 -0
- package/dist/proxy/anthropic-to-gemini.d.ts.map +1 -0
- package/dist/proxy/anthropic-to-gemini.js +1 -0
- package/dist/proxy/anthropic-to-gemini.js.map +1 -0
- package/dist/proxy/anthropic-to-onnx.d.ts +17 -0
- package/dist/proxy/anthropic-to-onnx.d.ts.map +1 -0
- package/dist/proxy/anthropic-to-onnx.js +1 -0
- package/dist/proxy/anthropic-to-onnx.js.map +1 -0
- package/dist/proxy/anthropic-to-openrouter.d.ts +28 -0
- package/dist/proxy/anthropic-to-openrouter.d.ts.map +1 -0
- package/dist/proxy/anthropic-to-openrouter.js +1 -0
- package/dist/proxy/anthropic-to-openrouter.js.map +1 -0
- package/dist/proxy/anthropic-to-requesty.d.ts +33 -0
- package/dist/proxy/anthropic-to-requesty.d.ts.map +1 -0
- package/dist/proxy/anthropic-to-requesty.js +1 -0
- package/dist/proxy/anthropic-to-requesty.js.map +1 -0
- package/dist/proxy/http2-proxy-optimized.d.ts +63 -0
- package/dist/proxy/http2-proxy-optimized.d.ts.map +1 -0
- package/dist/proxy/http2-proxy-optimized.js +1 -0
- package/dist/proxy/http2-proxy-optimized.js.map +1 -0
- package/dist/proxy/http2-proxy.d.ts +43 -0
- package/dist/proxy/http2-proxy.d.ts.map +1 -0
- package/dist/proxy/http2-proxy.js +1 -0
- package/dist/proxy/http2-proxy.js.map +1 -0
- package/dist/proxy/http3-proxy.d.ts +18 -0
- package/dist/proxy/http3-proxy.d.ts.map +1 -0
- package/dist/proxy/http3-proxy.js +1 -0
- package/dist/proxy/http3-proxy.js.map +1 -0
- package/dist/proxy/provider-instructions.d.ts +37 -0
- package/dist/proxy/provider-instructions.d.ts.map +1 -0
- package/dist/proxy/provider-instructions.js +1 -0
- package/dist/proxy/provider-instructions.js.map +1 -0
- package/dist/proxy/quic-proxy.d.ts +58 -0
- package/dist/proxy/quic-proxy.d.ts.map +1 -0
- package/dist/proxy/quic-proxy.js +1 -0
- package/dist/proxy/quic-proxy.js.map +1 -0
- package/dist/proxy/tool-emulation.d.ts +121 -0
- package/dist/proxy/tool-emulation.d.ts.map +1 -0
- package/dist/proxy/tool-emulation.js +1 -0
- package/dist/proxy/tool-emulation.js.map +1 -0
- package/dist/proxy/websocket-proxy.d.ts +39 -0
- package/dist/proxy/websocket-proxy.d.ts.map +1 -0
- package/dist/proxy/websocket-proxy.js +1 -0
- package/dist/proxy/websocket-proxy.js.map +1 -0
- package/dist/reasoningbank/AdvancedMemory.d.ts +120 -0
- package/dist/reasoningbank/AdvancedMemory.d.ts.map +1 -0
- package/dist/reasoningbank/AdvancedMemory.js +1 -0
- package/dist/reasoningbank/AdvancedMemory.js.map +1 -0
- package/dist/reasoningbank/HybridBackend.d.ts +99 -0
- package/dist/reasoningbank/HybridBackend.d.ts.map +1 -0
- package/dist/reasoningbank/HybridBackend.js +1 -0
- package/dist/reasoningbank/HybridBackend.js.map +1 -0
- package/dist/reasoningbank/backend-selector.d.ts +79 -0
- package/dist/reasoningbank/backend-selector.d.ts.map +1 -0
- package/dist/reasoningbank/backend-selector.js +1 -0
- package/dist/reasoningbank/backend-selector.js.map +1 -0
- package/dist/reasoningbank/benchmark.d.ts +14 -0
- package/dist/reasoningbank/benchmark.d.ts.map +1 -0
- package/dist/reasoningbank/benchmark.js +1 -0
- package/dist/reasoningbank/benchmark.js.map +1 -0
- package/dist/reasoningbank/config/reasoningbank-types.d.ts +57 -0
- package/dist/reasoningbank/config/reasoningbank-types.d.ts.map +1 -0
- package/dist/reasoningbank/config/reasoningbank-types.js +1 -0
- package/dist/reasoningbank/config/reasoningbank-types.js.map +1 -0
- package/dist/reasoningbank/core/consolidate.d.ts +21 -0
- package/dist/reasoningbank/core/consolidate.d.ts.map +1 -0
- package/dist/reasoningbank/core/consolidate.js +1 -0
- package/dist/reasoningbank/core/consolidate.js.map +1 -0
- package/dist/reasoningbank/core/distill.d.ts +22 -0
- package/dist/reasoningbank/core/distill.d.ts.map +1 -0
- package/dist/reasoningbank/core/distill.js +1 -0
- package/dist/reasoningbank/core/distill.js.map +1 -0
- package/dist/reasoningbank/core/judge.d.ts +17 -0
- package/dist/reasoningbank/core/judge.d.ts.map +1 -0
- package/dist/reasoningbank/core/judge.js +1 -0
- package/dist/reasoningbank/core/judge.js.map +1 -0
- package/dist/reasoningbank/core/matts.d.ts +46 -0
- package/dist/reasoningbank/core/matts.d.ts.map +1 -0
- package/dist/reasoningbank/core/matts.js +1 -0
- package/dist/reasoningbank/core/matts.js.map +1 -0
- package/dist/reasoningbank/core/retrieve.d.ts +35 -0
- package/dist/reasoningbank/core/retrieve.d.ts.map +1 -0
- package/dist/reasoningbank/core/retrieve.js +1 -0
- package/dist/reasoningbank/core/retrieve.js.map +1 -0
- package/dist/reasoningbank/db/queries.d.ts +88 -0
- package/dist/reasoningbank/db/queries.d.ts.map +1 -0
- package/dist/reasoningbank/db/queries.js +1 -0
- package/dist/reasoningbank/db/queries.js.map +1 -0
- package/dist/reasoningbank/db/schema.d.ts +81 -0
- package/dist/reasoningbank/db/schema.d.ts.map +1 -0
- package/dist/reasoningbank/db/schema.js +1 -0
- package/dist/reasoningbank/db/schema.js.map +1 -0
- package/dist/reasoningbank/demo-comparison.d.ts +10 -0
- package/dist/reasoningbank/demo-comparison.d.ts.map +1 -0
- package/dist/reasoningbank/demo-comparison.js +1 -0
- package/dist/reasoningbank/demo-comparison.js.map +1 -0
- package/dist/reasoningbank/hooks/post-task.d.ts +9 -0
- package/dist/reasoningbank/hooks/post-task.d.ts.map +1 -0
- package/dist/reasoningbank/hooks/post-task.js +1 -0
- package/dist/reasoningbank/hooks/post-task.js.map +1 -0
- package/dist/reasoningbank/hooks/pre-task.d.ts +9 -0
- package/dist/reasoningbank/hooks/pre-task.d.ts.map +1 -0
- package/dist/reasoningbank/hooks/pre-task.js +1 -0
- package/dist/reasoningbank/hooks/pre-task.js.map +1 -0
- package/dist/reasoningbank/index-new.d.ts +49 -0
- package/dist/reasoningbank/index-new.d.ts.map +1 -0
- package/dist/reasoningbank/index-new.js +1 -0
- package/dist/reasoningbank/index-new.js.map +1 -0
- package/dist/reasoningbank/index.d.ts +50 -0
- package/dist/reasoningbank/index.d.ts.map +1 -0
- package/dist/reasoningbank/index.js +1 -0
- package/dist/reasoningbank/index.js.map +1 -0
- package/dist/reasoningbank/test-integration.d.ts +7 -0
- package/dist/reasoningbank/test-integration.d.ts.map +1 -0
- package/dist/reasoningbank/test-integration.js +1 -0
- package/dist/reasoningbank/test-integration.js.map +1 -0
- package/dist/reasoningbank/test-retrieval.d.ts +6 -0
- package/dist/reasoningbank/test-retrieval.d.ts.map +1 -0
- package/dist/reasoningbank/test-retrieval.js +1 -0
- package/dist/reasoningbank/test-retrieval.js.map +1 -0
- package/dist/reasoningbank/test-validation.d.ts +7 -0
- package/dist/reasoningbank/test-validation.d.ts.map +1 -0
- package/dist/reasoningbank/test-validation.js +1 -0
- package/dist/reasoningbank/test-validation.js.map +1 -0
- package/dist/reasoningbank/types/index.d.ts +123 -0
- package/dist/reasoningbank/types/index.d.ts.map +1 -0
- package/dist/reasoningbank/types/index.js +1 -0
- package/dist/reasoningbank/types/index.js.map +1 -0
- package/dist/reasoningbank/utils/config.d.ts +61 -0
- package/dist/reasoningbank/utils/config.d.ts.map +1 -0
- package/dist/reasoningbank/utils/config.js +1 -0
- package/dist/reasoningbank/utils/config.js.map +1 -0
- package/dist/reasoningbank/utils/embeddings.d.ts +21 -0
- package/dist/reasoningbank/utils/embeddings.d.ts.map +1 -0
- package/dist/reasoningbank/utils/embeddings.js +1 -0
- package/dist/reasoningbank/utils/embeddings.js.map +1 -0
- package/dist/reasoningbank/utils/mmr.d.ts +23 -0
- package/dist/reasoningbank/utils/mmr.d.ts.map +1 -0
- package/dist/reasoningbank/utils/mmr.js +1 -0
- package/dist/reasoningbank/utils/mmr.js.map +1 -0
- package/dist/reasoningbank/utils/pii-scrubber.d.ts +46 -0
- package/dist/reasoningbank/utils/pii-scrubber.d.ts.map +1 -0
- package/dist/reasoningbank/utils/pii-scrubber.js +1 -0
- package/dist/reasoningbank/utils/pii-scrubber.js.map +1 -0
- package/dist/reasoningbank/wasm-adapter.d.ts +104 -0
- package/dist/reasoningbank/wasm-adapter.d.ts.map +1 -0
- package/dist/reasoningbank/wasm-adapter.js +1 -0
- package/dist/reasoningbank/wasm-adapter.js.map +1 -0
- package/dist/router/model-mapping.d.ts +31 -0
- package/dist/router/model-mapping.d.ts.map +1 -0
- package/dist/router/model-mapping.js +1 -0
- package/dist/router/model-mapping.js.map +1 -0
- package/dist/router/providers/anthropic.d.ts +17 -0
- package/dist/router/providers/anthropic.d.ts.map +1 -0
- package/dist/router/providers/anthropic.js +1 -0
- package/dist/router/providers/anthropic.js.map +1 -0
- package/dist/router/providers/gemini.d.ts +17 -0
- package/dist/router/providers/gemini.d.ts.map +1 -0
- package/dist/router/providers/gemini.js +1 -0
- package/dist/router/providers/gemini.js.map +1 -0
- package/dist/router/providers/onnx-local-optimized.d.ts +71 -0
- package/dist/router/providers/onnx-local-optimized.d.ts.map +1 -0
- package/dist/router/providers/onnx-local-optimized.js +1 -0
- package/dist/router/providers/onnx-local-optimized.js.map +1 -0
- package/dist/router/providers/onnx-local.d.ts +75 -0
- package/dist/router/providers/onnx-local.d.ts.map +1 -0
- package/dist/router/providers/onnx-local.js +1 -0
- package/dist/router/providers/onnx-local.js.map +1 -0
- package/dist/router/providers/onnx-phi4.d.ts +64 -0
- package/dist/router/providers/onnx-phi4.d.ts.map +1 -0
- package/dist/router/providers/onnx-phi4.js +1 -0
- package/dist/router/providers/onnx-phi4.js.map +1 -0
- package/dist/router/providers/onnx.d.ts +65 -0
- package/dist/router/providers/onnx.d.ts.map +1 -0
- package/dist/router/providers/onnx.js +1 -0
- package/dist/router/providers/onnx.js.map +1 -0
- package/dist/router/providers/openrouter.d.ts +21 -0
- package/dist/router/providers/openrouter.d.ts.map +1 -0
- package/dist/router/providers/openrouter.js +1 -0
- package/dist/router/providers/openrouter.js.map +1 -0
- package/dist/router/router.d.ts +26 -0
- package/dist/router/router.d.ts.map +1 -0
- package/dist/router/router.js +1 -0
- package/dist/router/router.js.map +1 -0
- package/dist/router/test-integration.d.ts +13 -0
- package/dist/router/test-integration.d.ts.map +1 -0
- package/dist/router/test-integration.js +1 -0
- package/dist/router/test-integration.js.map +1 -0
- package/dist/router/test-onnx-benchmark.d.ts +7 -0
- package/dist/router/test-onnx-benchmark.d.ts.map +1 -0
- package/dist/router/test-onnx-benchmark.js +1 -0
- package/dist/router/test-onnx-benchmark.js.map +1 -0
- package/dist/router/test-onnx-integration.d.ts +8 -0
- package/dist/router/test-onnx-integration.d.ts.map +1 -0
- package/dist/router/test-onnx-integration.js +1 -0
- package/dist/router/test-onnx-integration.js.map +1 -0
- package/dist/router/test-onnx-local.d.ts +6 -0
- package/dist/router/test-onnx-local.d.ts.map +1 -0
- package/dist/router/test-onnx-local.js +1 -0
- package/dist/router/test-onnx-local.js.map +1 -0
- package/dist/router/test-onnx.d.ts +7 -0
- package/dist/router/test-onnx.d.ts.map +1 -0
- package/dist/router/test-onnx.js +1 -0
- package/dist/router/test-onnx.js.map +1 -0
- package/dist/router/test-openrouter.d.ts +3 -0
- package/dist/router/test-openrouter.d.ts.map +1 -0
- package/dist/router/test-openrouter.js +1 -0
- package/dist/router/test-openrouter.js.map +1 -0
- package/dist/router/test-phi4.d.ts +6 -0
- package/dist/router/test-phi4.d.ts.map +1 -0
- package/dist/router/test-phi4.js +1 -0
- package/dist/router/test-phi4.js.map +1 -0
- package/dist/router/types.d.ts +209 -0
- package/dist/router/types.d.ts.map +1 -0
- package/dist/router/types.js +1 -0
- package/dist/router/types.js.map +1 -0
- package/dist/swarm/index.d.ts +51 -0
- package/dist/swarm/index.d.ts.map +1 -0
- package/dist/swarm/index.js +1 -0
- package/dist/swarm/index.js.map +1 -0
- package/dist/swarm/quic-coordinator.d.ts +149 -0
- package/dist/swarm/quic-coordinator.d.ts.map +1 -0
- package/dist/swarm/quic-coordinator.js +1 -0
- package/dist/swarm/quic-coordinator.js.map +1 -0
- package/dist/swarm/transport-router.d.ts +124 -0
- package/dist/swarm/transport-router.d.ts.map +1 -0
- package/dist/swarm/transport-router.js +1 -0
- package/dist/swarm/transport-router.js.map +1 -0
- package/dist/transport/index.d.ts +2 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +1 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/quic-handshake.d.ts +66 -0
- package/dist/transport/quic-handshake.d.ts.map +1 -0
- package/dist/transport/quic-handshake.js +1 -0
- package/dist/transport/quic-handshake.js.map +1 -0
- package/dist/transport/quic.d.ts +184 -0
- package/dist/transport/quic.d.ts.map +1 -0
- package/dist/transport/quic.js +1 -0
- package/dist/transport/quic.js.map +1 -0
- package/dist/utils/agentBoosterPreprocessor.d.ts +72 -0
- package/dist/utils/agentBoosterPreprocessor.d.ts.map +1 -0
- package/dist/utils/agentBoosterPreprocessor.js +1 -0
- package/dist/utils/agentBoosterPreprocessor.js.map +1 -0
- package/dist/utils/agentLoader.d.ts +22 -0
- package/dist/utils/agentLoader.d.ts.map +1 -0
- package/dist/utils/agentLoader.js +1 -0
- package/dist/utils/agentLoader.js.map +1 -0
- package/dist/utils/agentdb-runtime-patch.d.ts +28 -0
- package/dist/utils/agentdb-runtime-patch.d.ts.map +1 -0
- package/dist/utils/agentdb-runtime-patch.js +1 -0
- package/dist/utils/agentdb-runtime-patch.js.map +1 -0
- package/dist/utils/auth.d.ts +13 -0
- package/dist/utils/auth.d.ts.map +1 -0
- package/dist/utils/auth.js +1 -0
- package/dist/utils/auth.js.map +1 -0
- package/dist/utils/cli.d.ts +31 -0
- package/dist/utils/cli.d.ts.map +1 -0
- package/dist/utils/cli.js +1 -0
- package/dist/utils/cli.js.map +1 -0
- package/dist/utils/compression-middleware.d.ts +55 -0
- package/dist/utils/compression-middleware.d.ts.map +1 -0
- package/dist/utils/compression-middleware.js +1 -0
- package/dist/utils/compression-middleware.js.map +1 -0
- package/dist/utils/connection-pool.d.ts +30 -0
- package/dist/utils/connection-pool.d.ts.map +1 -0
- package/dist/utils/connection-pool.js +1 -0
- package/dist/utils/connection-pool.js.map +1 -0
- package/dist/utils/logger.d.ts +19 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +1 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/math.d.ts +12 -0
- package/dist/utils/math.d.ts.map +1 -0
- package/dist/utils/math.js +1 -0
- package/dist/utils/math.js.map +1 -0
- package/dist/utils/mcpCommands.d.ts +2 -0
- package/dist/utils/mcpCommands.d.ts.map +1 -0
- package/dist/utils/mcpCommands.js +1 -0
- package/dist/utils/mcpCommands.js.map +1 -0
- package/dist/utils/model-downloader.d.ts +63 -0
- package/dist/utils/model-downloader.d.ts.map +1 -0
- package/dist/utils/model-downloader.js +1 -0
- package/dist/utils/model-downloader.js.map +1 -0
- package/dist/utils/modelCapabilities.d.ts +30 -0
- package/dist/utils/modelCapabilities.d.ts.map +1 -0
- package/dist/utils/modelCapabilities.js +1 -0
- package/dist/utils/modelCapabilities.js.map +1 -0
- package/dist/utils/modelOptimizer.d.ts +207 -0
- package/dist/utils/modelOptimizer.d.ts.map +1 -0
- package/dist/utils/modelOptimizer.js +1 -0
- package/dist/utils/modelOptimizer.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts +17 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -0
- package/dist/utils/rate-limiter.js +1 -0
- package/dist/utils/rate-limiter.js.map +1 -0
- package/dist/utils/reasoningbankCommands.d.ts +6 -0
- package/dist/utils/reasoningbankCommands.d.ts.map +1 -0
- package/dist/utils/reasoningbankCommands.js +1 -0
- package/dist/utils/reasoningbankCommands.js.map +1 -0
- package/dist/utils/response-cache.d.ts +94 -0
- package/dist/utils/response-cache.d.ts.map +1 -0
- package/dist/utils/response-cache.js +1 -0
- package/dist/utils/response-cache.js.map +1 -0
- package/dist/utils/retry.d.ts +9 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +1 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/utils/streaming-optimizer.d.ts +37 -0
- package/dist/utils/streaming-optimizer.d.ts.map +1 -0
- package/dist/utils/streaming-optimizer.js +1 -0
- package/dist/utils/streaming-optimizer.js.map +1 -0
- package/package.json +1 -1
- package/docs/PHASE2-IMPLEMENTATION-SUMMARY.md +0 -275
- package/docs/PHASE2-PHASE3-COMPLETE-SUMMARY.md +0 -453
- package/docs/PHASE3-IMPLEMENTATION-SUMMARY.md +0 -357
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Booster Pre-Processor
|
|
3
|
+
*
|
|
4
|
+
* Detects code editing intents in agent tasks and attempts Agent Booster
|
|
5
|
+
* pattern matching before falling back to LLM.
|
|
6
|
+
*/
|
|
7
|
+
export interface EditIntent {
|
|
8
|
+
type: string;
|
|
9
|
+
task: string;
|
|
10
|
+
filePath?: string;
|
|
11
|
+
originalCode?: string;
|
|
12
|
+
targetCode?: string;
|
|
13
|
+
confidence: number;
|
|
14
|
+
}
|
|
15
|
+
export interface PreprocessorResult {
|
|
16
|
+
success: boolean;
|
|
17
|
+
method: 'agent_booster' | 'llm_required';
|
|
18
|
+
output?: string;
|
|
19
|
+
latency?: number;
|
|
20
|
+
confidence?: number;
|
|
21
|
+
strategy?: string;
|
|
22
|
+
reason?: string;
|
|
23
|
+
}
|
|
24
|
+
export declare class AgentBoosterPreprocessor {
|
|
25
|
+
private confidenceThreshold;
|
|
26
|
+
private enabledIntents;
|
|
27
|
+
constructor(options?: {
|
|
28
|
+
confidenceThreshold?: number;
|
|
29
|
+
enabledIntents?: string[];
|
|
30
|
+
});
|
|
31
|
+
/**
|
|
32
|
+
* Detect if a task is a code editing intent that Agent Booster can handle
|
|
33
|
+
*/
|
|
34
|
+
detectIntent(task: string): EditIntent | null;
|
|
35
|
+
/**
|
|
36
|
+
* Try to apply edit using Agent Booster
|
|
37
|
+
*/
|
|
38
|
+
tryApply(intent: EditIntent): Promise<PreprocessorResult>;
|
|
39
|
+
/**
|
|
40
|
+
* Extract file path from task description
|
|
41
|
+
*/
|
|
42
|
+
private extractFilePath;
|
|
43
|
+
/**
|
|
44
|
+
* Detect programming language from file extension
|
|
45
|
+
*/
|
|
46
|
+
private detectLanguage;
|
|
47
|
+
/**
|
|
48
|
+
* Extract var to const transformation
|
|
49
|
+
*/
|
|
50
|
+
private extractVarToConst;
|
|
51
|
+
/**
|
|
52
|
+
* Extract add types transformation (TypeScript)
|
|
53
|
+
*/
|
|
54
|
+
private extractAddTypes;
|
|
55
|
+
/**
|
|
56
|
+
* Extract add error handling transformation
|
|
57
|
+
*/
|
|
58
|
+
private extractAddErrorHandling;
|
|
59
|
+
/**
|
|
60
|
+
* Extract async/await transformation
|
|
61
|
+
*/
|
|
62
|
+
private extractAsyncAwait;
|
|
63
|
+
/**
|
|
64
|
+
* Extract add logging transformation
|
|
65
|
+
*/
|
|
66
|
+
private extractAddLogging;
|
|
67
|
+
/**
|
|
68
|
+
* Extract remove console transformation
|
|
69
|
+
*/
|
|
70
|
+
private extractRemoveConsole;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=agentBoosterPreprocessor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentBoosterPreprocessor.d.ts","sourceRoot":"","sources":["../../src/utils/agentBoosterPreprocessor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,eAAe,GAAG,cAAc,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,wBAAwB;IACnC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,cAAc,CAAc;gBAExB,OAAO,GAAE;QACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB;IAaN;;OAEG;IACI,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IA0DpD;;OAEG;IACU,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmEtE;;OAEG;IACH,OAAO,CAAC,eAAe;IAiBvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAmBtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;OAEG;IACH,OAAO,CAAC,eAAe;IA8BvB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAkB/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAQ7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentBoosterPreprocessor.js","sourceRoot":"","sources":["../../src/utils/agentBoosterPreprocessor.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Agent Booster Pre-Processor\n *\n * Detects code editing intents in agent tasks and attempts Agent Booster\n * pattern matching before falling back to LLM.\n */\n\nimport { execSync } from 'child_process';\nimport { existsSync, readFileSync, writeFileSync } from 'fs';\nimport { extname } from 'path';\n\nexport interface EditIntent {\n type: string;\n task: string;\n filePath?: string;\n originalCode?: string;\n targetCode?: string;\n confidence: number;\n}\n\nexport interface PreprocessorResult {\n success: boolean;\n method: 'agent_booster' | 'llm_required';\n output?: string;\n latency?: number;\n confidence?: number;\n strategy?: string;\n reason?: string;\n}\n\nexport class AgentBoosterPreprocessor {\n private confidenceThreshold: number;\n private enabledIntents: Set<string>;\n\n constructor(options: {\n confidenceThreshold?: number;\n enabledIntents?: string[];\n } = {}) {\n this.confidenceThreshold = options.confidenceThreshold || 0.7;\n this.enabledIntents = new Set(options.enabledIntents || [\n 'var_to_const',\n 'add_types',\n 'add_error_handling',\n 'async_await',\n 'add_logging',\n 'remove_console',\n 'format_code'\n ]);\n }\n\n /**\n * Detect if a task is a code editing intent that Agent Booster can handle\n */\n public detectIntent(task: string): EditIntent | null {\n const patterns = [\n {\n regex: /convert\\s+(all\\s+)?var\\s+to\\s+const/i,\n type: 'var_to_const',\n extractor: this.extractVarToConst.bind(this)\n },\n {\n regex: /add\\s+type\\s+(annotations?|hints?)/i,\n type: 'add_types',\n extractor: this.extractAddTypes.bind(this)\n },\n {\n regex: /add\\s+error\\s+handling/i,\n type: 'add_error_handling',\n extractor: this.extractAddErrorHandling.bind(this)\n },\n {\n regex: /convert\\s+to\\s+async\\s*\\/?\\s*await/i,\n type: 'async_await',\n extractor: this.extractAsyncAwait.bind(this)\n },\n {\n regex: /add\\s+(logging|console\\.log)/i,\n type: 'add_logging',\n extractor: this.extractAddLogging.bind(this)\n },\n {\n regex: /remove\\s+(all\\s+)?console\\.(log|debug|warn)/i,\n type: 'remove_console',\n extractor: this.extractRemoveConsole.bind(this)\n }\n ];\n\n for (const pattern of patterns) {\n if (pattern.regex.test(task) && this.enabledIntents.has(pattern.type)) {\n const filePath = this.extractFilePath(task);\n if (filePath && existsSync(filePath)) {\n const originalCode = readFileSync(filePath, 'utf-8');\n const targetCode = pattern.extractor(originalCode);\n\n if (targetCode) {\n return {\n type: pattern.type,\n task,\n filePath,\n originalCode,\n targetCode,\n confidence: 0.8 // Initial confidence for pattern match\n };\n }\n }\n }\n }\n\n return null;\n }\n\n /**\n * Try to apply edit using Agent Booster\n */\n public async tryApply(intent: EditIntent): Promise<PreprocessorResult> {\n if (!intent.filePath || !intent.originalCode || !intent.targetCode) {\n return {\n success: false,\n method: 'llm_required',\n reason: 'Missing file path or code'\n };\n }\n\n try {\n const language = this.detectLanguage(intent.filePath);\n\n const cmd = `npx --yes agent-booster@0.2.2 apply --language ${language}`;\n\n let result: string;\n try {\n result = execSync(cmd, {\n encoding: 'utf-8',\n input: JSON.stringify({\n code: intent.originalCode,\n edit: intent.targetCode\n }),\n maxBuffer: 10 * 1024 * 1024,\n timeout: 10000\n });\n } catch (execError: any) {\n // execSync throws on non-zero exit, but agent-booster returns JSON even on stderr\n // Try to parse stdout anyway\n if (execError.stdout) {\n result = execError.stdout.toString();\n } else {\n throw new Error(`execSync failed: ${execError.message}`);\n }\n }\n\n const parsed = JSON.parse(result);\n\n if (parsed.success && parsed.confidence >= this.confidenceThreshold) {\n // High confidence - use Agent Booster result\n writeFileSync(intent.filePath, parsed.output);\n\n return {\n success: true,\n method: 'agent_booster',\n output: parsed.output,\n latency: parsed.latency,\n confidence: parsed.confidence,\n strategy: parsed.strategy\n };\n } else {\n // Low confidence - require LLM\n return {\n success: false,\n method: 'llm_required',\n confidence: parsed.confidence,\n reason: `Agent Booster confidence too low (${(parsed.confidence * 100).toFixed(1)}%). Using LLM for complex edit.`\n };\n }\n } catch (error: any) {\n return {\n success: false,\n method: 'llm_required',\n reason: `Agent Booster error: ${error.message}`\n };\n }\n }\n\n /**\n * Extract file path from task description\n */\n private extractFilePath(task: string): string | null {\n // Pattern: \"in <file>\" or \"to <file>\" or just \"<file.ext>\"\n const patterns = [\n /(?:in|to|from|for|file:?)\\s+([^\\s]+\\.(?:js|ts|tsx|jsx|py|rs|go|java|c|cpp|h|hpp))/i,\n /([^\\s]+\\.(?:js|ts|tsx|jsx|py|rs|go|java|c|cpp|h|hpp))/i\n ];\n\n for (const pattern of patterns) {\n const match = task.match(pattern);\n if (match) {\n return match[1];\n }\n }\n\n return null;\n }\n\n /**\n * Detect programming language from file extension\n */\n private detectLanguage(filePath: string): string {\n const ext = extname(filePath).slice(1);\n const langMap: { [key: string]: string } = {\n 'ts': 'typescript',\n 'tsx': 'typescript',\n 'js': 'javascript',\n 'jsx': 'javascript',\n 'py': 'python',\n 'rs': 'rust',\n 'go': 'go',\n 'java': 'java',\n 'c': 'c',\n 'cpp': 'cpp',\n 'h': 'c',\n 'hpp': 'cpp'\n };\n return langMap[ext] || 'javascript';\n }\n\n /**\n * Extract var to const transformation\n */\n private extractVarToConst(code: string): string | null {\n // Simple transformation: replace var with const\n if (code.includes('var ')) {\n return code.replace(/\\bvar\\b/g, 'const');\n }\n return null;\n }\n\n /**\n * Extract add types transformation (TypeScript)\n */\n private extractAddTypes(code: string): string | null {\n // Simple type annotation: function params and return types\n const functionPattern = /function\\s+(\\w+)\\s*\\(([^)]*)\\)\\s*\\{/g;\n\n let hasUntypedFunctions = false;\n let transformed = code;\n\n code.replace(functionPattern, (match, name, params) => {\n if (!params.includes(':')) {\n hasUntypedFunctions = true;\n // Add basic type hints\n const typedParams = params.split(',').map((p: string) => {\n const trimmed = p.trim();\n if (trimmed && !trimmed.includes(':')) {\n return `${trimmed}: any`;\n }\n return p;\n }).join(', ');\n\n transformed = transformed.replace(\n match,\n `function ${name}(${typedParams}): any {`\n );\n }\n return match;\n });\n\n return hasUntypedFunctions ? transformed : null;\n }\n\n /**\n * Extract add error handling transformation\n */\n private extractAddErrorHandling(code: string): string | null {\n // Wrap risky operations in try-catch\n const riskyPatterns = [\n /JSON\\.parse\\(/,\n /fetch\\(/,\n /\\bawait\\s+/\n ];\n\n for (const pattern of riskyPatterns) {\n if (pattern.test(code)) {\n // This is complex - better handled by LLM\n return null;\n }\n }\n\n return null;\n }\n\n /**\n * Extract async/await transformation\n */\n private extractAsyncAwait(code: string): string | null {\n // Convert .then() chains to async/await\n if (code.includes('.then(')) {\n // This is complex - better handled by LLM\n return null;\n }\n return null;\n }\n\n /**\n * Extract add logging transformation\n */\n private extractAddLogging(code: string): string | null {\n // Add console.log before function returns\n // This is complex - better handled by LLM\n return null;\n }\n\n /**\n * Extract remove console transformation\n */\n private extractRemoveConsole(code: string): string | null {\n if (code.includes('console.')) {\n // Remove console statements but preserve line structure\n // Match optional leading whitespace, console call, and keep one newline if present\n return code.replace(/^[ \\t]*console\\.(log|debug|warn|info|error)\\([^)]*\\);?\\s*$/gm, '');\n }\n return null;\n }\n}\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface AgentDefinition {
|
|
2
|
+
name: string;
|
|
3
|
+
description: string;
|
|
4
|
+
systemPrompt: string;
|
|
5
|
+
color?: string;
|
|
6
|
+
tools?: string[];
|
|
7
|
+
filePath: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Load all agents from .claude/agents directory with deduplication
|
|
11
|
+
* Local agents (.claude/agents in CWD) override package agents
|
|
12
|
+
*/
|
|
13
|
+
export declare function loadAgents(agentsDir?: string): Map<string, AgentDefinition>;
|
|
14
|
+
/**
|
|
15
|
+
* Get a specific agent by name
|
|
16
|
+
*/
|
|
17
|
+
export declare function getAgent(name: string, agentsDir?: string): AgentDefinition | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* List all available agents
|
|
20
|
+
*/
|
|
21
|
+
export declare function listAgents(agentsDir?: string): AgentDefinition[];
|
|
22
|
+
//# sourceMappingURL=agentLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentLoader.d.ts","sourceRoot":"","sources":["../../src/utils/agentLoader.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAsFD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAwE3E;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAGtF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,eAAe,EAAE,CAGhE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentLoader.js","sourceRoot":"","sources":["../../src/utils/agentLoader.ts"],"names":[],"mappings":"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","sourcesContent":["// Agent loader for .claude/agents integration\nimport { readFileSync, readdirSync, statSync, existsSync } from 'fs';\nimport { join, extname, dirname } from 'path';\nimport { fileURLToPath } from 'url';\nimport { logger } from './logger.js';\n\n// Get the package root directory\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\nconst packageRoot = join(__dirname, '../..');\nconst defaultAgentsDir = join(packageRoot, '.claude/agents');\n\nexport interface AgentDefinition {\n name: string;\n description: string;\n systemPrompt: string;\n color?: string;\n tools?: string[];\n filePath: string;\n}\n\ninterface AgentFrontmatter {\n name: string;\n description: string;\n color?: string;\n tools?: string[];\n}\n\n/**\n * Parse agent markdown file with frontmatter\n */\nfunction parseAgentFile(filePath: string): AgentDefinition | null {\n try {\n const content = readFileSync(filePath, 'utf-8');\n\n // Check for frontmatter\n const frontmatterMatch = content.match(/^---\\n([\\s\\S]*?)\\n---\\n([\\s\\S]*)$/);\n if (!frontmatterMatch) {\n logger.warn('Agent file missing frontmatter', { filePath });\n return null;\n }\n\n const [, frontmatter, systemPrompt] = frontmatterMatch;\n\n // Parse YAML-like frontmatter\n const meta: Partial<AgentFrontmatter> = {};\n frontmatter.split('\\n').forEach(line => {\n const match = line.match(/^(\\w+):\\s*(.+)$/);\n if (match) {\n const [, key, value] = match;\n // Remove quotes if present\n const cleanValue = value.replace(/^[\"']|[\"']$/g, '');\n if (key === 'tools') {\n meta[key] = cleanValue.split(',').map(t => t.trim());\n } else {\n (meta as any)[key] = cleanValue;\n }\n }\n });\n\n if (!meta.name || !meta.description) {\n logger.warn('Agent file missing required metadata', { filePath });\n return null;\n }\n\n return {\n name: meta.name,\n description: meta.description,\n systemPrompt: systemPrompt.trim(),\n color: meta.color,\n tools: meta.tools,\n filePath\n };\n } catch (error) {\n logger.error('Failed to parse agent file', { filePath, error });\n return null;\n }\n}\n\n/**\n * Recursively find all agent definition files\n */\nfunction findAgentFiles(dir: string): string[] {\n const files: string[] = [];\n\n try {\n const entries = readdirSync(dir);\n\n for (const entry of entries) {\n const fullPath = join(dir, entry);\n const stat = statSync(fullPath);\n\n if (stat.isDirectory()) {\n files.push(...findAgentFiles(fullPath));\n } else if (extname(entry) === '.md' && entry !== 'README.md') {\n files.push(fullPath);\n }\n }\n } catch (error) {\n logger.warn('Failed to read directory', { dir, error });\n }\n\n return files;\n}\n\n/**\n * Load all agents from .claude/agents directory with deduplication\n * Local agents (.claude/agents in CWD) override package agents\n */\nexport function loadAgents(agentsDir?: string): Map<string, AgentDefinition> {\n const agents = new Map<string, AgentDefinition>();\n const agentsByRelativePath = new Map<string, AgentDefinition>();\n\n // If explicit directory is provided, use only that\n if (agentsDir) {\n logger.info('Loading agents from explicit directory', { agentsDir });\n const agentFiles = findAgentFiles(agentsDir);\n for (const filePath of agentFiles) {\n const agent = parseAgentFile(filePath);\n if (agent) {\n agents.set(agent.name, agent);\n }\n }\n return agents;\n }\n\n // Otherwise, load from both package and local with deduplication\n const localAgentsDir = join(process.cwd(), '.claude/agents');\n\n // 1. Load package agents first (if they exist)\n if (existsSync(defaultAgentsDir)) {\n logger.info('Loading package agents', { agentsDir: defaultAgentsDir });\n const packageFiles = findAgentFiles(defaultAgentsDir);\n logger.debug('Found package agent files', { count: packageFiles.length });\n\n for (const filePath of packageFiles) {\n const agent = parseAgentFile(filePath);\n if (agent) {\n const relativePath = filePath.substring(defaultAgentsDir.length + 1);\n agentsByRelativePath.set(relativePath, agent);\n agents.set(agent.name, agent);\n logger.debug('Loaded package agent', { name: agent.name, path: relativePath });\n }\n }\n }\n\n // 2. Load local agents (override package agents with same relative path)\n if (existsSync(localAgentsDir) && localAgentsDir !== defaultAgentsDir) {\n logger.info('Loading local agents', { agentsDir: localAgentsDir });\n const localFiles = findAgentFiles(localAgentsDir);\n logger.debug('Found local agent files', { count: localFiles.length });\n\n for (const filePath of localFiles) {\n const agent = parseAgentFile(filePath);\n if (agent) {\n const relativePath = filePath.substring(localAgentsDir.length + 1);\n const existingAgent = agentsByRelativePath.get(relativePath);\n\n if (existingAgent) {\n logger.info('Local agent overrides package agent', {\n name: agent.name,\n path: relativePath\n });\n // Remove old agent\n agents.delete(existingAgent.name);\n }\n\n agentsByRelativePath.set(relativePath, agent);\n agents.set(agent.name, agent);\n logger.debug('Loaded local agent', { name: agent.name, path: relativePath });\n }\n }\n }\n\n logger.info('Agents loaded successfully', {\n total: agents.size,\n package: existsSync(defaultAgentsDir) ? findAgentFiles(defaultAgentsDir).length : 0,\n local: existsSync(localAgentsDir) ? findAgentFiles(localAgentsDir).length : 0\n });\n\n return agents;\n}\n\n/**\n * Get a specific agent by name\n */\nexport function getAgent(name: string, agentsDir?: string): AgentDefinition | undefined {\n const agents = loadAgents(agentsDir);\n return agents.get(name);\n}\n\n/**\n * List all available agents\n */\nexport function listAgents(agentsDir?: string): AgentDefinition[] {\n const agents = loadAgents(agentsDir);\n return Array.from(agents.values());\n}\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentDB Runtime Patch
|
|
3
|
+
*
|
|
4
|
+
* Automatically fixes AgentDB v1.3.9 import resolution issues at runtime.
|
|
5
|
+
* This patch works in all contexts: npm install, npm install -g, and npx.
|
|
6
|
+
*
|
|
7
|
+
* Issue: agentdb v1.3.9 missing .js extensions in ESM exports
|
|
8
|
+
* Solution: Patch the controller index.js file at runtime before first import
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Apply AgentDB import fix at runtime
|
|
12
|
+
* Safe to call multiple times - only patches once
|
|
13
|
+
*/
|
|
14
|
+
export declare function applyAgentDBPatch(): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Check if AgentDB patch is needed
|
|
17
|
+
*/
|
|
18
|
+
export declare function isAgentDBPatchNeeded(): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Get patch status information
|
|
21
|
+
*/
|
|
22
|
+
export declare function getAgentDBPatchStatus(): {
|
|
23
|
+
needed: boolean;
|
|
24
|
+
applied: boolean;
|
|
25
|
+
attempted: boolean;
|
|
26
|
+
location: string | null;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=agentdb-runtime-patch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentdb-runtime-patch.d.ts","sourceRoot":"","sources":["../../src/utils/agentdb-runtime-patch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAmE3C;AAkED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAS9C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI;IACvC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAOA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentdb-runtime-patch.js","sourceRoot":"","sources":["../../src/utils/agentdb-runtime-patch.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * AgentDB Runtime Patch\n *\n * Automatically fixes AgentDB v1.3.9 import resolution issues at runtime.\n * This patch works in all contexts: npm install, npm install -g, and npx.\n *\n * Issue: agentdb v1.3.9 missing .js extensions in ESM exports\n * Solution: Patch the controller index.js file at runtime before first import\n */\n\nimport { readFileSync, writeFileSync, existsSync } from 'fs';\nimport { join, dirname } from 'path';\nimport { fileURLToPath } from 'url';\n\nlet patched = false;\nlet patchAttempted = false;\n\n/**\n * Apply AgentDB import fix at runtime\n * Safe to call multiple times - only patches once\n */\nexport function applyAgentDBPatch(): boolean {\n // Only attempt once per process\n if (patchAttempted) {\n return patched;\n }\n patchAttempted = true;\n\n try {\n // Find agentdb installation\n const agentdbPath = findAgentDBPath();\n if (!agentdbPath) {\n console.warn('[AgentDB Patch] Could not locate agentdb installation');\n return false;\n }\n\n const controllerIndexPath = join(agentdbPath, 'dist', 'controllers', 'index.js');\n\n if (!existsSync(controllerIndexPath)) {\n console.warn(`[AgentDB Patch] Controller index not found: ${controllerIndexPath}`);\n return false;\n }\n\n // Read current content\n let content = readFileSync(controllerIndexPath, 'utf8');\n\n // Check if already patched\n if (content.includes(\"from './ReflexionMemory.js'\")) {\n patched = true;\n return true;\n }\n\n // Apply patches\n const patches = [\n { from: \"from './ReflexionMemory'\", to: \"from './ReflexionMemory.js'\" },\n { from: \"from './SkillLibrary'\", to: \"from './SkillLibrary.js'\" },\n { from: \"from './EmbeddingService'\", to: \"from './EmbeddingService.js'\" },\n { from: \"from './CausalMemoryGraph'\", to: \"from './CausalMemoryGraph.js'\" },\n { from: \"from './CausalRecall'\", to: \"from './CausalRecall.js'\" },\n { from: \"from './NightlyLearner'\", to: \"from './NightlyLearner.js'\" }\n ];\n\n let modified = false;\n for (const patch of patches) {\n if (content.includes(patch.from) && !content.includes(patch.to)) {\n content = content.replace(new RegExp(patch.from, 'g'), patch.to);\n modified = true;\n }\n }\n\n if (modified) {\n try {\n writeFileSync(controllerIndexPath, content, 'utf8');\n patched = true;\n console.log('[AgentDB Patch] ✅ Successfully patched AgentDB imports');\n return true;\n } catch (writeError: any) {\n // If we can't write (npx temp dir permissions), that's OK - imports will fail gracefully\n console.warn('[AgentDB Patch] ⚠️ Could not write patch (read-only):', writeError.message);\n return false;\n }\n }\n\n return false;\n } catch (error: any) {\n console.warn('[AgentDB Patch] Error applying patch:', error.message);\n return false;\n }\n}\n\n/**\n * Find AgentDB installation directory\n * Checks multiple possible locations\n */\nfunction findAgentDBPath(): string | null {\n const possiblePaths = [\n // Local node_modules (most common)\n join(process.cwd(), 'node_modules', 'agentdb'),\n\n // Parent directory node_modules (monorepo)\n join(process.cwd(), '..', 'node_modules', 'agentdb'),\n\n // Global npm installation\n join(process.execPath, '..', '..', 'lib', 'node_modules', 'agentdb'),\n\n // Relative to this file (for bundled installations)\n ...(typeof __dirname !== 'undefined'\n ? [\n join(__dirname, '..', '..', 'node_modules', 'agentdb'),\n join(__dirname, '..', '..', '..', 'agentdb')\n ]\n : []),\n\n // Using import.meta.url (ESM)\n ...(typeof import.meta !== 'undefined' && import.meta.url\n ? (() => {\n try {\n const currentDir = dirname(fileURLToPath(import.meta.url));\n return [\n join(currentDir, '..', '..', 'node_modules', 'agentdb'),\n join(currentDir, '..', '..', '..', 'agentdb')\n ];\n } catch {\n return [];\n }\n })()\n : [])\n ];\n\n // Try each path\n for (const path of possiblePaths) {\n if (existsSync(join(path, 'package.json'))) {\n try {\n const pkg = JSON.parse(readFileSync(join(path, 'package.json'), 'utf8'));\n if (pkg.name === 'agentdb') {\n return path;\n }\n } catch {\n continue;\n }\n }\n }\n\n // Try require.resolve as fallback\n try {\n const resolved = require.resolve('agentdb/package.json');\n return dirname(resolved);\n } catch {\n // Not found via require.resolve\n }\n\n return null;\n}\n\n/**\n * Check if AgentDB patch is needed\n */\nexport function isAgentDBPatchNeeded(): boolean {\n const agentdbPath = findAgentDBPath();\n if (!agentdbPath) return false;\n\n const controllerIndexPath = join(agentdbPath, 'dist', 'controllers', 'index.js');\n if (!existsSync(controllerIndexPath)) return false;\n\n const content = readFileSync(controllerIndexPath, 'utf8');\n return !content.includes(\"from './ReflexionMemory.js'\");\n}\n\n/**\n * Get patch status information\n */\nexport function getAgentDBPatchStatus(): {\n needed: boolean;\n applied: boolean;\n attempted: boolean;\n location: string | null;\n} {\n return {\n needed: isAgentDBPatchNeeded(),\n applied: patched,\n attempted: patchAttempted,\n location: findAgentDBPath()\n };\n}\n\n// Auto-apply patch on module load (SYNCHRONOUS - must happen before any AgentDB imports)\n// This ensures the patch is applied before any imports\nif (typeof process !== 'undefined' && !process.env.SKIP_AGENTDB_PATCH) {\n // MUST be synchronous - async won't work because imports happen immediately\n try {\n applyAgentDBPatch();\n } catch (error) {\n // Silently fail - patch will be attempted again on explicit call\n }\n}\n"]}
|
|
@@ -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"}
|
package/dist/utils/auth.js
CHANGED
|
@@ -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,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
|
@@ -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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compression-middleware.js","sourceRoot":"","sources":["../../src/utils/compression-middleware.ts"],"names":[],"mappings":"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","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"}
|
|
@@ -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,19 @@
|
|
|
1
|
+
interface LogContext {
|
|
2
|
+
agent?: string;
|
|
3
|
+
task?: string;
|
|
4
|
+
duration?: number;
|
|
5
|
+
error?: unknown;
|
|
6
|
+
[key: string]: any;
|
|
7
|
+
}
|
|
8
|
+
declare class Logger {
|
|
9
|
+
private context;
|
|
10
|
+
setContext(ctx: Record<string, any>): void;
|
|
11
|
+
private log;
|
|
12
|
+
debug(message: string, data?: LogContext): void;
|
|
13
|
+
info(message: string, data?: LogContext): void;
|
|
14
|
+
warn(message: string, data?: LogContext): void;
|
|
15
|
+
error(message: string, data?: LogContext): void;
|
|
16
|
+
}
|
|
17
|
+
export declare const logger: Logger;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAGA,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,cAAM,MAAM;IACV,OAAO,CAAC,OAAO,CAA2B;IAE1C,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAInC,OAAO,CAAC,GAAG;IA4BX,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU;IAQxC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU;IAQvC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU;IAQvC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU;CAGzC;AAED,eAAO,MAAM,MAAM,QAAe,CAAC"}
|
package/dist/utils/logger.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM;IACF,OAAO,GAAwB,EAAE,CAAC;IAE1C,UAAU,CAAC,GAAwB;QACjC,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC;IAC7C,CAAC;IAEO,GAAG,CAAC,KAAe,EAAE,OAAe,EAAE,IAAiB;QAC7D,gEAAgE;QAChE,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACtD,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG;YACf,SAAS;YACT,KAAK;YACL,OAAO;YACP,GAAG,IAAI,CAAC,OAAO;YACf,GAAG,IAAI;SACR,CAAC;QAEF,yCAAyC;QACzC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,iCAAiC;YACjC,MAAM,MAAM,GAAG,IAAI,SAAS,KAAK,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACvD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;gBACrE,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE;gBACpD,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,KAAK,OAAO,GAAG,UAAU,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAAiB;QACtC,sEAAsE;QACtE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAAiB;QACrC,uCAAuC;QACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAAiB;QACrC,sCAAsC;QACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAAiB;QACtC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC","sourcesContent":["// Structured logging utility\ntype LogLevel = 'debug' | 'info' | 'warn' | 'error';\n\ninterface LogContext {\n agent?: string;\n task?: string;\n duration?: number;\n error?: unknown;\n [key: string]: any;\n}\n\nclass Logger {\n private context: Record<string, any> = {};\n\n setContext(ctx: Record<string, any>) {\n this.context = { ...this.context, ...ctx };\n }\n\n private log(level: LogLevel, message: string, data?: LogContext) {\n // Skip all logs if QUIET mode is enabled (unless it's an error)\n if (process.env.QUIET === 'true' && level !== 'error') {\n return;\n }\n\n const timestamp = new Date().toISOString();\n const logEntry = {\n timestamp,\n level,\n message,\n ...this.context,\n ...data\n };\n\n // Structured JSON logging for production\n if (process.env.NODE_ENV === 'production') {\n console.log(JSON.stringify(logEntry));\n } else {\n // Human-readable for development\n const prefix = `[${timestamp}] ${level.toUpperCase()}`;\n const contextStr = Object.keys({ ...this.context, ...data }).length > 0\n ? ` ${JSON.stringify({ ...this.context, ...data })}`\n : '';\n console.log(`${prefix}: ${message}${contextStr}`);\n }\n }\n\n debug(message: string, data?: LogContext) {\n // Skip debug logs unless DEBUG or VERBOSE environment variable is set\n if (!process.env.DEBUG && !process.env.VERBOSE) {\n return;\n }\n this.log('debug', message, data);\n }\n\n info(message: string, data?: LogContext) {\n // Skip info logs unless VERBOSE is set\n if (!process.env.DEBUG && !process.env.VERBOSE) {\n return;\n }\n this.log('info', message, data);\n }\n\n warn(message: string, data?: LogContext) {\n // Skip warnings unless VERBOSE is set\n if (!process.env.DEBUG && !process.env.VERBOSE) {\n return;\n }\n this.log('warn', message, data);\n }\n\n error(message: string, data?: LogContext) {\n this.log('error', message, data);\n }\n}\n\nexport const logger = new Logger();\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple math utility functions
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Adds 2 and 2 together
|
|
6
|
+
* @returns The sum of 2 + 2
|
|
7
|
+
* @example
|
|
8
|
+
* const result = addTwoPlusTwo();
|
|
9
|
+
* console.log(result); // Output: 4
|
|
10
|
+
*/
|
|
11
|
+
export declare const addTwoPlusTwo: () => number;
|
|
12
|
+
//# sourceMappingURL=math.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../src/utils/math.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,QAAO,MAEhC,CAAC"}
|
package/dist/utils/math.js
CHANGED