@wingman-ai/gateway 0.1.0
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/.wingman/agents/README.md +161 -0
- package/.wingman/agents/coding/agent.md +147 -0
- package/.wingman/agents/coding/implementor.md +56 -0
- package/.wingman/agents/main/agent.md +19 -0
- package/.wingman/agents/researcher/agent.md +62 -0
- package/.wingman/agents/stock-trader/agent.md +223 -0
- package/.wingman/agents/stock-trader/chain-curator.md +24 -0
- package/.wingman/agents/stock-trader/goal-translator.md +42 -0
- package/.wingman/agents/stock-trader/guardrails-veto.md +11 -0
- package/.wingman/agents/stock-trader/path-planner.md +23 -0
- package/.wingman/agents/stock-trader/regime-analyst.md +15 -0
- package/.wingman/agents/stock-trader/risk.md +20 -0
- package/.wingman/agents/stock-trader/selection.md +22 -0
- package/.wingman/agents/stock-trader/strategy-composer.md +38 -0
- package/.wingman/agents/wingman/agent.json +12 -0
- package/bin/wingman +7 -0
- package/dist/agent/config/agentConfig.cjs +95 -0
- package/dist/agent/config/agentConfig.d.ts +187 -0
- package/dist/agent/config/agentConfig.js +52 -0
- package/dist/agent/config/agentLoader.cjs +242 -0
- package/dist/agent/config/agentLoader.d.ts +42 -0
- package/dist/agent/config/agentLoader.js +208 -0
- package/dist/agent/config/mcpClientManager.cjs +168 -0
- package/dist/agent/config/mcpClientManager.d.ts +41 -0
- package/dist/agent/config/mcpClientManager.js +134 -0
- package/dist/agent/config/modelFactory.cjs +175 -0
- package/dist/agent/config/modelFactory.d.ts +33 -0
- package/dist/agent/config/modelFactory.js +141 -0
- package/dist/agent/config/toolRegistry.cjs +111 -0
- package/dist/agent/config/toolRegistry.d.ts +25 -0
- package/dist/agent/config/toolRegistry.js +71 -0
- package/dist/agent/middleware/additional-messages.cjs +60 -0
- package/dist/agent/middleware/additional-messages.d.ts +7 -0
- package/dist/agent/middleware/additional-messages.js +26 -0
- package/dist/agent/middleware/hooks/executor.cjs +137 -0
- package/dist/agent/middleware/hooks/executor.d.ts +52 -0
- package/dist/agent/middleware/hooks/executor.js +103 -0
- package/dist/agent/middleware/hooks/input-builder.cjs +55 -0
- package/dist/agent/middleware/hooks/input-builder.d.ts +15 -0
- package/dist/agent/middleware/hooks/input-builder.js +21 -0
- package/dist/agent/middleware/hooks/matcher.cjs +59 -0
- package/dist/agent/middleware/hooks/matcher.d.ts +27 -0
- package/dist/agent/middleware/hooks/matcher.js +22 -0
- package/dist/agent/middleware/hooks/merger.cjs +54 -0
- package/dist/agent/middleware/hooks/merger.d.ts +18 -0
- package/dist/agent/middleware/hooks/merger.js +20 -0
- package/dist/agent/middleware/hooks/types.cjs +62 -0
- package/dist/agent/middleware/hooks/types.d.ts +82 -0
- package/dist/agent/middleware/hooks/types.js +19 -0
- package/dist/agent/middleware/hooks.cjs +79 -0
- package/dist/agent/middleware/hooks.d.ts +19 -0
- package/dist/agent/middleware/hooks.js +45 -0
- package/dist/agent/middleware/media-compat.cjs +80 -0
- package/dist/agent/middleware/media-compat.d.ts +7 -0
- package/dist/agent/middleware/media-compat.js +46 -0
- package/dist/agent/tests/agentConfig.test.cjs +132 -0
- package/dist/agent/tests/agentConfig.test.d.ts +1 -0
- package/dist/agent/tests/agentConfig.test.js +126 -0
- package/dist/agent/tests/agentLoader.test.cjs +235 -0
- package/dist/agent/tests/agentLoader.test.d.ts +1 -0
- package/dist/agent/tests/agentLoader.test.js +229 -0
- package/dist/agent/tests/modelFactory.test.cjs +114 -0
- package/dist/agent/tests/modelFactory.test.d.ts +1 -0
- package/dist/agent/tests/modelFactory.test.js +108 -0
- package/dist/agent/tests/test-agent-loader.cjs +33 -0
- package/dist/agent/tests/test-agent-loader.d.ts +1 -0
- package/dist/agent/tests/test-agent-loader.js +27 -0
- package/dist/agent/tests/test-subagent-loading.cjs +99 -0
- package/dist/agent/tests/test-subagent-loading.d.ts +1 -0
- package/dist/agent/tests/test-subagent-loading.js +93 -0
- package/dist/agent/tests/toolRegistry.test.cjs +109 -0
- package/dist/agent/tests/toolRegistry.test.d.ts +1 -0
- package/dist/agent/tests/toolRegistry.test.js +103 -0
- package/dist/agent/tools/code_search.cjs +108 -0
- package/dist/agent/tools/code_search.d.ts +24 -0
- package/dist/agent/tools/code_search.js +74 -0
- package/dist/agent/tools/command_execute.cjs +136 -0
- package/dist/agent/tools/command_execute.d.ts +12 -0
- package/dist/agent/tools/command_execute.js +99 -0
- package/dist/agent/tools/git_status.cjs +126 -0
- package/dist/agent/tools/git_status.d.ts +15 -0
- package/dist/agent/tools/git_status.js +92 -0
- package/dist/agent/tools/internet_search.cjs +93 -0
- package/dist/agent/tools/internet_search.d.ts +25 -0
- package/dist/agent/tools/internet_search.js +56 -0
- package/dist/agent/tools/think.cjs +53 -0
- package/dist/agent/tools/think.d.ts +26 -0
- package/dist/agent/tools/think.js +16 -0
- package/dist/agent/tools/web_crawler.cjs +180 -0
- package/dist/agent/tools/web_crawler.d.ts +31 -0
- package/dist/agent/tools/web_crawler.js +143 -0
- package/dist/agent/utils.cjs +54 -0
- package/dist/agent/utils.d.ts +1 -0
- package/dist/agent/utils.js +10 -0
- package/dist/cli/commands/agent.cjs +169 -0
- package/dist/cli/commands/agent.d.ts +15 -0
- package/dist/cli/commands/agent.js +125 -0
- package/dist/cli/commands/gateway.cjs +601 -0
- package/dist/cli/commands/gateway.d.ts +12 -0
- package/dist/cli/commands/gateway.js +567 -0
- package/dist/cli/commands/init.cjs +681 -0
- package/dist/cli/commands/init.d.ts +10 -0
- package/dist/cli/commands/init.js +634 -0
- package/dist/cli/commands/provider.cjs +208 -0
- package/dist/cli/commands/provider.d.ts +5 -0
- package/dist/cli/commands/provider.js +174 -0
- package/dist/cli/commands/skill.cjs +145 -0
- package/dist/cli/commands/skill.d.ts +10 -0
- package/dist/cli/commands/skill.js +111 -0
- package/dist/cli/config/loader.cjs +143 -0
- package/dist/cli/config/loader.d.ts +14 -0
- package/dist/cli/config/loader.js +109 -0
- package/dist/cli/config/schema.cjs +262 -0
- package/dist/cli/config/schema.d.ts +268 -0
- package/dist/cli/config/schema.js +213 -0
- package/dist/cli/core/agentInvoker.cjs +284 -0
- package/dist/cli/core/agentInvoker.d.ts +77 -0
- package/dist/cli/core/agentInvoker.js +247 -0
- package/dist/cli/core/commandHandler.cjs +257 -0
- package/dist/cli/core/commandHandler.d.ts +62 -0
- package/dist/cli/core/commandHandler.js +223 -0
- package/dist/cli/core/database/bunSqliteAdapter.cjs +87 -0
- package/dist/cli/core/database/bunSqliteAdapter.d.ts +34 -0
- package/dist/cli/core/database/bunSqliteAdapter.js +53 -0
- package/dist/cli/core/loggerBridge.cjs +42 -0
- package/dist/cli/core/loggerBridge.d.ts +8 -0
- package/dist/cli/core/loggerBridge.js +8 -0
- package/dist/cli/core/outputManager.cjs +106 -0
- package/dist/cli/core/outputManager.d.ts +43 -0
- package/dist/cli/core/outputManager.js +72 -0
- package/dist/cli/core/sessionManager.cjs +535 -0
- package/dist/cli/core/sessionManager.d.ts +111 -0
- package/dist/cli/core/sessionManager.js +486 -0
- package/dist/cli/core/streamParser.cjs +328 -0
- package/dist/cli/core/streamParser.d.ts +42 -0
- package/dist/cli/core/streamParser.js +288 -0
- package/dist/cli/index.cjs +211 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +205 -0
- package/dist/cli/services/skillRepository.cjs +178 -0
- package/dist/cli/services/skillRepository.d.ts +35 -0
- package/dist/cli/services/skillRepository.js +144 -0
- package/dist/cli/services/skillService.cjs +336 -0
- package/dist/cli/services/skillService.d.ts +48 -0
- package/dist/cli/services/skillService.js +302 -0
- package/dist/cli/types/gateway.cjs +18 -0
- package/dist/cli/types/gateway.d.ts +18 -0
- package/dist/cli/types/gateway.js +0 -0
- package/dist/cli/types/init.cjs +18 -0
- package/dist/cli/types/init.d.ts +13 -0
- package/dist/cli/types/init.js +0 -0
- package/dist/cli/types/provider.cjs +18 -0
- package/dist/cli/types/provider.d.ts +9 -0
- package/dist/cli/types/provider.js +0 -0
- package/dist/cli/types/skill.cjs +18 -0
- package/dist/cli/types/skill.d.ts +71 -0
- package/dist/cli/types/skill.js +0 -0
- package/dist/cli/types.cjs +18 -0
- package/dist/cli/types.d.ts +175 -0
- package/dist/cli/types.js +0 -0
- package/dist/cli/ui/AgentOutput.cjs +82 -0
- package/dist/cli/ui/AgentOutput.d.ts +8 -0
- package/dist/cli/ui/AgentOutput.js +38 -0
- package/dist/cli/ui/App.cjs +285 -0
- package/dist/cli/ui/App.d.ts +6 -0
- package/dist/cli/ui/App.js +241 -0
- package/dist/cli/ui/ErrorDisplay.cjs +65 -0
- package/dist/cli/ui/ErrorDisplay.d.ts +8 -0
- package/dist/cli/ui/ErrorDisplay.js +21 -0
- package/dist/cli/ui/LogDisplay.cjs +74 -0
- package/dist/cli/ui/LogDisplay.d.ts +13 -0
- package/dist/cli/ui/LogDisplay.js +30 -0
- package/dist/cli/ui/SessionListDisplay.cjs +135 -0
- package/dist/cli/ui/SessionListDisplay.d.ts +9 -0
- package/dist/cli/ui/SessionListDisplay.js +91 -0
- package/dist/cli/ui/blockHelpers.cjs +80 -0
- package/dist/cli/ui/blockHelpers.d.ts +21 -0
- package/dist/cli/ui/blockHelpers.js +40 -0
- package/dist/cli/ui/components/ToolCallDisplay.cjs +207 -0
- package/dist/cli/ui/components/ToolCallDisplay.d.ts +7 -0
- package/dist/cli/ui/components/ToolCallDisplay.js +162 -0
- package/dist/cli/ui/components/ToolResultDisplay.cjs +86 -0
- package/dist/cli/ui/components/ToolResultDisplay.d.ts +8 -0
- package/dist/cli/ui/components/ToolResultDisplay.js +42 -0
- package/dist/cli/ui/toolDisplayHelpers.cjs +112 -0
- package/dist/cli/ui/toolDisplayHelpers.d.ts +3 -0
- package/dist/cli/ui/toolDisplayHelpers.js +72 -0
- package/dist/gateway/adapters/discord.cjs +298 -0
- package/dist/gateway/adapters/discord.d.ts +42 -0
- package/dist/gateway/adapters/discord.js +246 -0
- package/dist/gateway/auth.cjs +94 -0
- package/dist/gateway/auth.d.ts +36 -0
- package/dist/gateway/auth.js +60 -0
- package/dist/gateway/broadcast.cjs +131 -0
- package/dist/gateway/broadcast.d.ts +76 -0
- package/dist/gateway/broadcast.js +97 -0
- package/dist/gateway/client.cjs +282 -0
- package/dist/gateway/client.d.ts +141 -0
- package/dist/gateway/client.js +248 -0
- package/dist/gateway/daemon.cjs +195 -0
- package/dist/gateway/daemon.d.ts +67 -0
- package/dist/gateway/daemon.js +161 -0
- package/dist/gateway/discovery/index.cjs +72 -0
- package/dist/gateway/discovery/index.d.ts +3 -0
- package/dist/gateway/discovery/index.js +3 -0
- package/dist/gateway/discovery/mdns.cjs +221 -0
- package/dist/gateway/discovery/mdns.d.ts +37 -0
- package/dist/gateway/discovery/mdns.js +177 -0
- package/dist/gateway/discovery/tailscale.cjs +140 -0
- package/dist/gateway/discovery/tailscale.d.ts +31 -0
- package/dist/gateway/discovery/tailscale.js +106 -0
- package/dist/gateway/discovery/types.cjs +18 -0
- package/dist/gateway/discovery/types.d.ts +41 -0
- package/dist/gateway/discovery/types.js +0 -0
- package/dist/gateway/env.cjs +45 -0
- package/dist/gateway/env.d.ts +2 -0
- package/dist/gateway/env.js +8 -0
- package/dist/gateway/hooks/loader.cjs +137 -0
- package/dist/gateway/hooks/loader.d.ts +10 -0
- package/dist/gateway/hooks/loader.js +103 -0
- package/dist/gateway/hooks/registry.cjs +128 -0
- package/dist/gateway/hooks/registry.d.ts +13 -0
- package/dist/gateway/hooks/registry.js +94 -0
- package/dist/gateway/hooks/types.cjs +58 -0
- package/dist/gateway/hooks/types.d.ts +50 -0
- package/dist/gateway/hooks/types.js +18 -0
- package/dist/gateway/http/agents.cjs +280 -0
- package/dist/gateway/http/agents.d.ts +2 -0
- package/dist/gateway/http/agents.js +246 -0
- package/dist/gateway/http/fs.cjs +81 -0
- package/dist/gateway/http/fs.d.ts +2 -0
- package/dist/gateway/http/fs.js +47 -0
- package/dist/gateway/http/providers.cjs +120 -0
- package/dist/gateway/http/providers.d.ts +2 -0
- package/dist/gateway/http/providers.js +86 -0
- package/dist/gateway/http/routines.cjs +196 -0
- package/dist/gateway/http/routines.d.ts +20 -0
- package/dist/gateway/http/routines.js +159 -0
- package/dist/gateway/http/sessions.cjs +241 -0
- package/dist/gateway/http/sessions.d.ts +2 -0
- package/dist/gateway/http/sessions.js +207 -0
- package/dist/gateway/http/types.cjs +18 -0
- package/dist/gateway/http/types.d.ts +25 -0
- package/dist/gateway/http/types.js +0 -0
- package/dist/gateway/http/voice.cjs +167 -0
- package/dist/gateway/http/voice.d.ts +2 -0
- package/dist/gateway/http/voice.js +133 -0
- package/dist/gateway/http/webhooks.cjs +353 -0
- package/dist/gateway/http/webhooks.d.ts +22 -0
- package/dist/gateway/http/webhooks.js +313 -0
- package/dist/gateway/index.cjs +119 -0
- package/dist/gateway/index.d.ts +8 -0
- package/dist/gateway/index.js +9 -0
- package/dist/gateway/node.cjs +218 -0
- package/dist/gateway/node.d.ts +112 -0
- package/dist/gateway/node.js +184 -0
- package/dist/gateway/router.cjs +85 -0
- package/dist/gateway/router.d.ts +9 -0
- package/dist/gateway/router.js +51 -0
- package/dist/gateway/rpcClient.cjs +152 -0
- package/dist/gateway/rpcClient.d.ts +24 -0
- package/dist/gateway/rpcClient.js +118 -0
- package/dist/gateway/server.cjs +1175 -0
- package/dist/gateway/server.d.ts +185 -0
- package/dist/gateway/server.js +1138 -0
- package/dist/gateway/transport/http.cjs +153 -0
- package/dist/gateway/transport/http.d.ts +25 -0
- package/dist/gateway/transport/http.js +119 -0
- package/dist/gateway/transport/index.cjs +40 -0
- package/dist/gateway/transport/index.d.ts +3 -0
- package/dist/gateway/transport/index.js +3 -0
- package/dist/gateway/transport/types.cjs +18 -0
- package/dist/gateway/transport/types.d.ts +59 -0
- package/dist/gateway/transport/types.js +0 -0
- package/dist/gateway/transport/websocket.cjs +132 -0
- package/dist/gateway/transport/websocket.d.ts +21 -0
- package/dist/gateway/transport/websocket.js +98 -0
- package/dist/gateway/types.cjs +18 -0
- package/dist/gateway/types.d.ts +215 -0
- package/dist/gateway/types.js +0 -0
- package/dist/gateway/validation.cjs +225 -0
- package/dist/gateway/validation.d.ts +157 -0
- package/dist/gateway/validation.js +158 -0
- package/dist/index.cjs +95 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +6 -0
- package/dist/logger.cjs +270 -0
- package/dist/logger.d.ts +54 -0
- package/dist/logger.js +215 -0
- package/dist/providers/copilot.cjs +148 -0
- package/dist/providers/copilot.d.ts +3 -0
- package/dist/providers/copilot.js +114 -0
- package/dist/providers/credentials.cjs +154 -0
- package/dist/providers/credentials.d.ts +26 -0
- package/dist/providers/credentials.js +99 -0
- package/dist/providers/oauth.cjs +279 -0
- package/dist/providers/oauth.d.ts +13 -0
- package/dist/providers/oauth.js +245 -0
- package/dist/providers/registry.cjs +138 -0
- package/dist/providers/registry.d.ts +32 -0
- package/dist/providers/registry.js +98 -0
- package/dist/tests/additionalMessageMiddleware.test.cjs +45 -0
- package/dist/tests/additionalMessageMiddleware.test.d.ts +1 -0
- package/dist/tests/additionalMessageMiddleware.test.js +39 -0
- package/dist/tests/agent-config-voice.test.cjs +25 -0
- package/dist/tests/agent-config-voice.test.d.ts +1 -0
- package/dist/tests/agent-config-voice.test.js +19 -0
- package/dist/tests/agentInvokerAttachments.test.cjs +67 -0
- package/dist/tests/agentInvokerAttachments.test.d.ts +1 -0
- package/dist/tests/agentInvokerAttachments.test.js +61 -0
- package/dist/tests/attachments-utils.test.cjs +46 -0
- package/dist/tests/attachments-utils.test.d.ts +1 -0
- package/dist/tests/attachments-utils.test.js +40 -0
- package/dist/tests/bunSqliteAdapter.test.cjs +265 -0
- package/dist/tests/bunSqliteAdapter.test.d.ts +1 -0
- package/dist/tests/bunSqliteAdapter.test.js +259 -0
- package/dist/tests/candleRange.test.cjs +48 -0
- package/dist/tests/candleRange.test.d.ts +1 -0
- package/dist/tests/candleRange.test.js +42 -0
- package/dist/tests/cli-config-loader.test.cjs +364 -0
- package/dist/tests/cli-config-loader.test.d.ts +1 -0
- package/dist/tests/cli-config-loader.test.js +358 -0
- package/dist/tests/cli-init.test.cjs +82 -0
- package/dist/tests/cli-init.test.d.ts +1 -0
- package/dist/tests/cli-init.test.js +76 -0
- package/dist/tests/discord-adapter.test.cjs +55 -0
- package/dist/tests/discord-adapter.test.d.ts +1 -0
- package/dist/tests/discord-adapter.test.js +49 -0
- package/dist/tests/gateway.test.cjs +319 -0
- package/dist/tests/gateway.test.d.ts +1 -0
- package/dist/tests/gateway.test.js +313 -0
- package/dist/tests/hooks-matcher.test.cjs +309 -0
- package/dist/tests/hooks-matcher.test.d.ts +1 -0
- package/dist/tests/hooks-matcher.test.js +303 -0
- package/dist/tests/hooks-merger.test.cjs +528 -0
- package/dist/tests/hooks-merger.test.d.ts +1 -0
- package/dist/tests/hooks-merger.test.js +522 -0
- package/dist/tests/integration/agent-invocation.integration.test.cjs +264 -0
- package/dist/tests/integration/agent-invocation.integration.test.d.ts +1 -0
- package/dist/tests/integration/agent-invocation.integration.test.js +258 -0
- package/dist/tests/integration/finnhub-candles.integration.test.cjs +98 -0
- package/dist/tests/integration/finnhub-candles.integration.test.d.ts +1 -0
- package/dist/tests/integration/finnhub-candles.integration.test.js +92 -0
- package/dist/tests/logger.test.cjs +353 -0
- package/dist/tests/logger.test.d.ts +1 -0
- package/dist/tests/logger.test.js +347 -0
- package/dist/tests/mediaCompatibilityMiddleware.test.cjs +106 -0
- package/dist/tests/mediaCompatibilityMiddleware.test.d.ts +1 -0
- package/dist/tests/mediaCompatibilityMiddleware.test.js +100 -0
- package/dist/tests/routines-api.test.cjs +107 -0
- package/dist/tests/routines-api.test.d.ts +1 -0
- package/dist/tests/routines-api.test.js +101 -0
- package/dist/tests/sessionMessageAttachments.test.cjs +108 -0
- package/dist/tests/sessionMessageAttachments.test.d.ts +1 -0
- package/dist/tests/sessionMessageAttachments.test.js +102 -0
- package/dist/tests/sessionMessageRole.test.cjs +44 -0
- package/dist/tests/sessionMessageRole.test.d.ts +1 -0
- package/dist/tests/sessionMessageRole.test.js +38 -0
- package/dist/tests/sessionStateMessages.test.cjs +72 -0
- package/dist/tests/sessionStateMessages.test.d.ts +1 -0
- package/dist/tests/sessionStateMessages.test.js +66 -0
- package/dist/tests/sessions-api.test.cjs +68 -0
- package/dist/tests/sessions-api.test.d.ts +1 -0
- package/dist/tests/sessions-api.test.js +62 -0
- package/dist/tests/technicalIndicators.test.cjs +82 -0
- package/dist/tests/technicalIndicators.test.d.ts +1 -0
- package/dist/tests/technicalIndicators.test.js +76 -0
- package/dist/tests/toolDisplayHelpers.test.cjs +43 -0
- package/dist/tests/toolDisplayHelpers.test.d.ts +1 -0
- package/dist/tests/toolDisplayHelpers.test.js +37 -0
- package/dist/tests/voice-config.test.cjs +35 -0
- package/dist/tests/voice-config.test.d.ts +1 -0
- package/dist/tests/voice-config.test.js +29 -0
- package/dist/tests/yahooCandles.test.cjs +111 -0
- package/dist/tests/yahooCandles.test.d.ts +1 -0
- package/dist/tests/yahooCandles.test.js +105 -0
- package/dist/tools/finance/candleRange.cjs +71 -0
- package/dist/tools/finance/candleRange.d.ts +21 -0
- package/dist/tools/finance/candleRange.js +28 -0
- package/dist/tools/finance/optionsAnalytics.cjs +222 -0
- package/dist/tools/finance/optionsAnalytics.d.ts +44 -0
- package/dist/tools/finance/optionsAnalytics.js +188 -0
- package/dist/tools/finance/optionsAnalytics.test.cjs +128 -0
- package/dist/tools/finance/optionsAnalytics.test.d.ts +1 -0
- package/dist/tools/finance/optionsAnalytics.test.js +122 -0
- package/dist/tools/finance/technicalIndicators.cjs +111 -0
- package/dist/tools/finance/technicalIndicators.d.ts +15 -0
- package/dist/tools/finance/technicalIndicators.js +68 -0
- package/dist/tools/finance/yahooCandles.cjs +125 -0
- package/dist/tools/finance/yahooCandles.d.ts +41 -0
- package/dist/tools/finance/yahooCandles.js +85 -0
- package/dist/tools/mcp-finance.cjs +649 -0
- package/dist/tools/mcp-finance.d.ts +1 -0
- package/dist/tools/mcp-finance.js +631 -0
- package/dist/types/agents.cjs +18 -0
- package/dist/types/agents.d.ts +11 -0
- package/dist/types/agents.js +0 -0
- package/dist/types/hooks.cjs +18 -0
- package/dist/types/hooks.d.ts +82 -0
- package/dist/types/hooks.js +0 -0
- package/dist/types/mcp.cjs +86 -0
- package/dist/types/mcp.d.ts +107 -0
- package/dist/types/mcp.js +40 -0
- package/dist/types/voice.cjs +103 -0
- package/dist/types/voice.d.ts +117 -0
- package/dist/types/voice.js +51 -0
- package/dist/utils/attachments.cjs +46 -0
- package/dist/utils/attachments.d.ts +7 -0
- package/dist/utils/attachments.js +12 -0
- package/dist/voice/config.cjs +52 -0
- package/dist/voice/config.d.ts +8 -0
- package/dist/voice/config.js +18 -0
- package/dist/webui/assets/index-BA0HaStz.css +1 -0
- package/dist/webui/assets/index-NHgTZsWN.js +112 -0
- package/dist/webui/assets/wingman_icon-DOy91UEF.webp +0 -0
- package/dist/webui/assets/wingman_logo-Cogyt3qm.webp +0 -0
- package/dist/webui/index.html +19 -0
- package/package.json +130 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
const FINNHUB_BASE_URL = process.env.FINNHUB_BASE_URL?.trim() || "https://finnhub.io/api/v1";
|
|
3
|
+
const FINNHUB_API_KEY = process.env.FINNHUB_API_KEY?.trim();
|
|
4
|
+
const RUN_LIVE = "1" === process.env.FINNHUB_LIVE_TESTS;
|
|
5
|
+
const describeLive = FINNHUB_API_KEY && RUN_LIVE ? describe : describe.skip;
|
|
6
|
+
const secondsPerDay = 86400;
|
|
7
|
+
const buildCandleUrl = (scenario)=>{
|
|
8
|
+
const to = Math.floor(Date.now() / 1000);
|
|
9
|
+
const from = to - scenario.lookbackDays * secondsPerDay;
|
|
10
|
+
const url = new URL(`${FINNHUB_BASE_URL}/stock/candle`);
|
|
11
|
+
url.searchParams.set("symbol", scenario.symbol);
|
|
12
|
+
url.searchParams.set("resolution", scenario.resolution);
|
|
13
|
+
url.searchParams.set("from", String(from));
|
|
14
|
+
url.searchParams.set("to", String(to));
|
|
15
|
+
url.searchParams.set("token", FINNHUB_API_KEY || "");
|
|
16
|
+
return url.toString();
|
|
17
|
+
};
|
|
18
|
+
const scenarios = [
|
|
19
|
+
{
|
|
20
|
+
label: "daily-365",
|
|
21
|
+
symbol: "AAPL",
|
|
22
|
+
resolution: "D",
|
|
23
|
+
lookbackDays: 365
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
label: "daily-180",
|
|
27
|
+
symbol: "AAPL",
|
|
28
|
+
resolution: "D",
|
|
29
|
+
lookbackDays: 180
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
label: "daily-90",
|
|
33
|
+
symbol: "AAPL",
|
|
34
|
+
resolution: "D",
|
|
35
|
+
lookbackDays: 90
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
label: "hourly-180",
|
|
39
|
+
symbol: "AAPL",
|
|
40
|
+
resolution: "60",
|
|
41
|
+
lookbackDays: 180
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
label: "hourly-90",
|
|
45
|
+
symbol: "AAPL",
|
|
46
|
+
resolution: "60",
|
|
47
|
+
lookbackDays: 90
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
label: "hourly-30",
|
|
51
|
+
symbol: "AAPL",
|
|
52
|
+
resolution: "60",
|
|
53
|
+
lookbackDays: 30
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
label: "15m-30",
|
|
57
|
+
symbol: "AAPL",
|
|
58
|
+
resolution: "15",
|
|
59
|
+
lookbackDays: 30
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
label: "1m-7",
|
|
63
|
+
symbol: "AAPL",
|
|
64
|
+
resolution: "1",
|
|
65
|
+
lookbackDays: 7
|
|
66
|
+
}
|
|
67
|
+
];
|
|
68
|
+
describeLive("Finnhub candle access (live)", ()=>{
|
|
69
|
+
it("does not return 403 for supported ranges", async ()=>{
|
|
70
|
+
const failures = [];
|
|
71
|
+
for (const scenario of scenarios){
|
|
72
|
+
const url = buildCandleUrl(scenario);
|
|
73
|
+
const response = await fetch(url, {
|
|
74
|
+
headers: {
|
|
75
|
+
"User-Agent": "wingman-finnhub-test"
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
const body = await response.text();
|
|
79
|
+
console.info(`Finnhub candle ${scenario.label} -> ${response.status}`);
|
|
80
|
+
if (403 === response.status) {
|
|
81
|
+
failures.push(`403 for ${scenario.label} (${scenario.resolution}, ${scenario.lookbackDays}d): ${body.slice(0, 200)}`);
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
if (429 === response.status) {
|
|
85
|
+
console.warn(`Rate limited for ${scenario.label}; skipping assert.`);
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
expect(response.status).toBe(200);
|
|
89
|
+
}
|
|
90
|
+
if (failures.length > 0) throw new Error(failures.join("\n"));
|
|
91
|
+
});
|
|
92
|
+
});
|
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_exports__ = {};
|
|
3
|
+
const external_vitest_namespaceObject = require("vitest");
|
|
4
|
+
const external_logger_cjs_namespaceObject = require("../logger.cjs");
|
|
5
|
+
function _define_property(obj, key, value) {
|
|
6
|
+
if (key in obj) Object.defineProperty(obj, key, {
|
|
7
|
+
value: value,
|
|
8
|
+
enumerable: true,
|
|
9
|
+
configurable: true,
|
|
10
|
+
writable: true
|
|
11
|
+
});
|
|
12
|
+
else obj[key] = value;
|
|
13
|
+
return obj;
|
|
14
|
+
}
|
|
15
|
+
class MockWriteStream {
|
|
16
|
+
write(chunk) {
|
|
17
|
+
this.data += chunk;
|
|
18
|
+
}
|
|
19
|
+
constructor(){
|
|
20
|
+
_define_property(this, "data", "");
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
(0, external_vitest_namespaceObject.describe)("Logger System", ()=>{
|
|
24
|
+
(0, external_vitest_namespaceObject.describe)("WingmanLogger", ()=>{
|
|
25
|
+
let mockStream;
|
|
26
|
+
(0, external_vitest_namespaceObject.beforeEach)(()=>{
|
|
27
|
+
mockStream = new MockWriteStream();
|
|
28
|
+
});
|
|
29
|
+
(0, external_vitest_namespaceObject.describe)("Log level filtering", ()=>{
|
|
30
|
+
(0, external_vitest_namespaceObject.it)("should only log messages at or above configured level", ()=>{
|
|
31
|
+
const logger = new external_logger_cjs_namespaceObject.WingmanLogger("warn", mockStream);
|
|
32
|
+
logger.debug("debug message");
|
|
33
|
+
logger.info("info message");
|
|
34
|
+
logger.warn("warn message");
|
|
35
|
+
logger.error("error message");
|
|
36
|
+
(0, external_vitest_namespaceObject.expect)(mockStream.data).not.toContain("debug message");
|
|
37
|
+
(0, external_vitest_namespaceObject.expect)(mockStream.data).not.toContain("info message");
|
|
38
|
+
(0, external_vitest_namespaceObject.expect)(mockStream.data).toContain("warn message");
|
|
39
|
+
(0, external_vitest_namespaceObject.expect)(mockStream.data).toContain("error message");
|
|
40
|
+
});
|
|
41
|
+
(0, external_vitest_namespaceObject.it)("should log all messages when level is debug", ()=>{
|
|
42
|
+
const logger = new external_logger_cjs_namespaceObject.WingmanLogger("debug", mockStream);
|
|
43
|
+
logger.debug("debug message");
|
|
44
|
+
logger.info("info message");
|
|
45
|
+
logger.warn("warn message");
|
|
46
|
+
logger.error("error message");
|
|
47
|
+
(0, external_vitest_namespaceObject.expect)(mockStream.data).toContain("debug message");
|
|
48
|
+
(0, external_vitest_namespaceObject.expect)(mockStream.data).toContain("info message");
|
|
49
|
+
(0, external_vitest_namespaceObject.expect)(mockStream.data).toContain("warn message");
|
|
50
|
+
(0, external_vitest_namespaceObject.expect)(mockStream.data).toContain("error message");
|
|
51
|
+
});
|
|
52
|
+
(0, external_vitest_namespaceObject.it)("should not log any messages when level is silent", ()=>{
|
|
53
|
+
const logger = new external_logger_cjs_namespaceObject.WingmanLogger("silent", mockStream);
|
|
54
|
+
logger.debug("debug message");
|
|
55
|
+
logger.info("info message");
|
|
56
|
+
logger.warn("warn message");
|
|
57
|
+
logger.error("error message");
|
|
58
|
+
(0, external_vitest_namespaceObject.expect)(mockStream.data).toBe("");
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
(0, external_vitest_namespaceObject.describe)("Log formatting", ()=>{
|
|
62
|
+
(0, external_vitest_namespaceObject.it)("should include timestamp and level in log output", ()=>{
|
|
63
|
+
const logger = new external_logger_cjs_namespaceObject.WingmanLogger("info", mockStream);
|
|
64
|
+
logger.info("test message");
|
|
65
|
+
(0, external_vitest_namespaceObject.expect)(mockStream.data).toMatch(/\[\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/);
|
|
66
|
+
(0, external_vitest_namespaceObject.expect)(mockStream.data).toContain("[INFO]");
|
|
67
|
+
(0, external_vitest_namespaceObject.expect)(mockStream.data).toContain("test message");
|
|
68
|
+
});
|
|
69
|
+
(0, external_vitest_namespaceObject.it)("should serialize additional arguments as JSON", ()=>{
|
|
70
|
+
const logger = new external_logger_cjs_namespaceObject.WingmanLogger("info", mockStream);
|
|
71
|
+
logger.info("test message", {
|
|
72
|
+
key: "value"
|
|
73
|
+
}, [
|
|
74
|
+
1,
|
|
75
|
+
2,
|
|
76
|
+
3
|
|
77
|
+
]);
|
|
78
|
+
(0, external_vitest_namespaceObject.expect)(mockStream.data).toContain("test message");
|
|
79
|
+
(0, external_vitest_namespaceObject.expect)(mockStream.data).toContain('"key"');
|
|
80
|
+
(0, external_vitest_namespaceObject.expect)(mockStream.data).toContain('"value"');
|
|
81
|
+
});
|
|
82
|
+
(0, external_vitest_namespaceObject.it)("should serialize error arguments with message and stack", ()=>{
|
|
83
|
+
const logger = new external_logger_cjs_namespaceObject.WingmanLogger("info", mockStream);
|
|
84
|
+
const err = new Error("boom");
|
|
85
|
+
logger.error("test error", err);
|
|
86
|
+
(0, external_vitest_namespaceObject.expect)(mockStream.data).toContain("test error");
|
|
87
|
+
(0, external_vitest_namespaceObject.expect)(mockStream.data).toContain('"message"');
|
|
88
|
+
(0, external_vitest_namespaceObject.expect)(mockStream.data).toContain("boom");
|
|
89
|
+
});
|
|
90
|
+
(0, external_vitest_namespaceObject.it)("should not include args when none provided", ()=>{
|
|
91
|
+
const logger = new external_logger_cjs_namespaceObject.WingmanLogger("info", mockStream);
|
|
92
|
+
logger.info("test message");
|
|
93
|
+
const lines = mockStream.data.split("\n");
|
|
94
|
+
(0, external_vitest_namespaceObject.expect)(lines.filter((l)=>l.trim()).length).toBe(1);
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
(0, external_vitest_namespaceObject.describe)("Log levels", ()=>{
|
|
98
|
+
(0, external_vitest_namespaceObject.it)("should have debug method", ()=>{
|
|
99
|
+
const logger = new external_logger_cjs_namespaceObject.WingmanLogger("debug", mockStream);
|
|
100
|
+
(0, external_vitest_namespaceObject.expect)(logger.debug).toBeDefined();
|
|
101
|
+
(0, external_vitest_namespaceObject.expect)(typeof logger.debug).toBe("function");
|
|
102
|
+
});
|
|
103
|
+
(0, external_vitest_namespaceObject.it)("should have info method", ()=>{
|
|
104
|
+
const logger = new external_logger_cjs_namespaceObject.WingmanLogger("info", mockStream);
|
|
105
|
+
(0, external_vitest_namespaceObject.expect)(logger.info).toBeDefined();
|
|
106
|
+
(0, external_vitest_namespaceObject.expect)(typeof logger.info).toBe("function");
|
|
107
|
+
});
|
|
108
|
+
(0, external_vitest_namespaceObject.it)("should have warn method", ()=>{
|
|
109
|
+
const logger = new external_logger_cjs_namespaceObject.WingmanLogger("warn", mockStream);
|
|
110
|
+
(0, external_vitest_namespaceObject.expect)(logger.warn).toBeDefined();
|
|
111
|
+
(0, external_vitest_namespaceObject.expect)(typeof logger.warn).toBe("function");
|
|
112
|
+
});
|
|
113
|
+
(0, external_vitest_namespaceObject.it)("should have error method", ()=>{
|
|
114
|
+
const logger = new external_logger_cjs_namespaceObject.WingmanLogger("error", mockStream);
|
|
115
|
+
(0, external_vitest_namespaceObject.expect)(logger.error).toBeDefined();
|
|
116
|
+
(0, external_vitest_namespaceObject.expect)(typeof logger.error).toBe("function");
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
(0, external_vitest_namespaceObject.describe)("SilentLogger", ()=>{
|
|
121
|
+
(0, external_vitest_namespaceObject.it)("should not log any messages", ()=>{
|
|
122
|
+
const logger = new external_logger_cjs_namespaceObject.SilentLogger();
|
|
123
|
+
const consoleSpy = external_vitest_namespaceObject.vi.spyOn(console, "log");
|
|
124
|
+
logger.debug();
|
|
125
|
+
logger.info();
|
|
126
|
+
logger.warn();
|
|
127
|
+
logger.error();
|
|
128
|
+
(0, external_vitest_namespaceObject.expect)(consoleSpy).not.toHaveBeenCalled();
|
|
129
|
+
consoleSpy.mockRestore();
|
|
130
|
+
});
|
|
131
|
+
(0, external_vitest_namespaceObject.it)("should have all required logger methods", ()=>{
|
|
132
|
+
const logger = new external_logger_cjs_namespaceObject.SilentLogger();
|
|
133
|
+
(0, external_vitest_namespaceObject.expect)(logger.debug).toBeDefined();
|
|
134
|
+
(0, external_vitest_namespaceObject.expect)(logger.info).toBeDefined();
|
|
135
|
+
(0, external_vitest_namespaceObject.expect)(logger.warn).toBeDefined();
|
|
136
|
+
(0, external_vitest_namespaceObject.expect)(logger.error).toBeDefined();
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
(0, external_vitest_namespaceObject.describe)("EventLogger", ()=>{
|
|
140
|
+
let mockCallback;
|
|
141
|
+
(0, external_vitest_namespaceObject.beforeEach)(()=>{
|
|
142
|
+
mockCallback = external_vitest_namespaceObject.vi.fn();
|
|
143
|
+
});
|
|
144
|
+
(0, external_vitest_namespaceObject.describe)("Event emission", ()=>{
|
|
145
|
+
(0, external_vitest_namespaceObject.it)("should emit log events with correct structure", ()=>{
|
|
146
|
+
const logger = new external_logger_cjs_namespaceObject.EventLogger(mockCallback, "info");
|
|
147
|
+
logger.info("test message");
|
|
148
|
+
(0, external_vitest_namespaceObject.expect)(mockCallback).toHaveBeenCalledTimes(1);
|
|
149
|
+
(0, external_vitest_namespaceObject.expect)(mockCallback).toHaveBeenCalledWith({
|
|
150
|
+
level: "info",
|
|
151
|
+
message: "test message",
|
|
152
|
+
timestamp: external_vitest_namespaceObject.expect.stringMatching(/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/),
|
|
153
|
+
args: void 0
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
(0, external_vitest_namespaceObject.it)("should include args in events when provided", ()=>{
|
|
157
|
+
const logger = new external_logger_cjs_namespaceObject.EventLogger(mockCallback, "info");
|
|
158
|
+
const testArgs = [
|
|
159
|
+
{
|
|
160
|
+
key: "value"
|
|
161
|
+
},
|
|
162
|
+
[
|
|
163
|
+
1,
|
|
164
|
+
2,
|
|
165
|
+
3
|
|
166
|
+
]
|
|
167
|
+
];
|
|
168
|
+
logger.info("test message", ...testArgs);
|
|
169
|
+
(0, external_vitest_namespaceObject.expect)(mockCallback).toHaveBeenCalledWith({
|
|
170
|
+
level: "info",
|
|
171
|
+
message: "test message",
|
|
172
|
+
timestamp: external_vitest_namespaceObject.expect.any(String),
|
|
173
|
+
args: testArgs
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
(0, external_vitest_namespaceObject.describe)("Level filtering", ()=>{
|
|
178
|
+
(0, external_vitest_namespaceObject.it)("should respect log level filtering", ()=>{
|
|
179
|
+
const logger = new external_logger_cjs_namespaceObject.EventLogger(mockCallback, "warn");
|
|
180
|
+
logger.debug("debug");
|
|
181
|
+
logger.info("info");
|
|
182
|
+
logger.warn("warn");
|
|
183
|
+
logger.error("error");
|
|
184
|
+
(0, external_vitest_namespaceObject.expect)(mockCallback).toHaveBeenCalledTimes(2);
|
|
185
|
+
(0, external_vitest_namespaceObject.expect)(mockCallback).toHaveBeenCalledWith(external_vitest_namespaceObject.expect.objectContaining({
|
|
186
|
+
level: "warn"
|
|
187
|
+
}));
|
|
188
|
+
(0, external_vitest_namespaceObject.expect)(mockCallback).toHaveBeenCalledWith(external_vitest_namespaceObject.expect.objectContaining({
|
|
189
|
+
level: "error"
|
|
190
|
+
}));
|
|
191
|
+
});
|
|
192
|
+
(0, external_vitest_namespaceObject.it)("should not emit events when level is silent", ()=>{
|
|
193
|
+
const logger = new external_logger_cjs_namespaceObject.EventLogger(mockCallback, "silent");
|
|
194
|
+
logger.debug("debug");
|
|
195
|
+
logger.info("info");
|
|
196
|
+
logger.warn("warn");
|
|
197
|
+
logger.error("error");
|
|
198
|
+
(0, external_vitest_namespaceObject.expect)(mockCallback).not.toHaveBeenCalled();
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
(0, external_vitest_namespaceObject.describe)("All log levels", ()=>{
|
|
202
|
+
(0, external_vitest_namespaceObject.it)("should handle debug level", ()=>{
|
|
203
|
+
const logger = new external_logger_cjs_namespaceObject.EventLogger(mockCallback, "debug");
|
|
204
|
+
logger.debug("debug message");
|
|
205
|
+
(0, external_vitest_namespaceObject.expect)(mockCallback).toHaveBeenCalledWith(external_vitest_namespaceObject.expect.objectContaining({
|
|
206
|
+
level: "debug",
|
|
207
|
+
message: "debug message"
|
|
208
|
+
}));
|
|
209
|
+
});
|
|
210
|
+
(0, external_vitest_namespaceObject.it)("should handle info level", ()=>{
|
|
211
|
+
const logger = new external_logger_cjs_namespaceObject.EventLogger(mockCallback, "info");
|
|
212
|
+
logger.info("info message");
|
|
213
|
+
(0, external_vitest_namespaceObject.expect)(mockCallback).toHaveBeenCalledWith(external_vitest_namespaceObject.expect.objectContaining({
|
|
214
|
+
level: "info",
|
|
215
|
+
message: "info message"
|
|
216
|
+
}));
|
|
217
|
+
});
|
|
218
|
+
(0, external_vitest_namespaceObject.it)("should handle warn level", ()=>{
|
|
219
|
+
const logger = new external_logger_cjs_namespaceObject.EventLogger(mockCallback, "info");
|
|
220
|
+
logger.warn("warn message");
|
|
221
|
+
(0, external_vitest_namespaceObject.expect)(mockCallback).toHaveBeenCalledWith(external_vitest_namespaceObject.expect.objectContaining({
|
|
222
|
+
level: "warn",
|
|
223
|
+
message: "warn message"
|
|
224
|
+
}));
|
|
225
|
+
});
|
|
226
|
+
(0, external_vitest_namespaceObject.it)("should handle error level", ()=>{
|
|
227
|
+
const logger = new external_logger_cjs_namespaceObject.EventLogger(mockCallback, "info");
|
|
228
|
+
logger.error("error message");
|
|
229
|
+
(0, external_vitest_namespaceObject.expect)(mockCallback).toHaveBeenCalledWith(external_vitest_namespaceObject.expect.objectContaining({
|
|
230
|
+
level: "error",
|
|
231
|
+
message: "error message"
|
|
232
|
+
}));
|
|
233
|
+
});
|
|
234
|
+
});
|
|
235
|
+
});
|
|
236
|
+
(0, external_vitest_namespaceObject.describe)("Factory functions", ()=>{
|
|
237
|
+
(0, external_vitest_namespaceObject.describe)("createLogger", ()=>{
|
|
238
|
+
const originalEnv = process.env.WINGMAN_LOG_LEVEL;
|
|
239
|
+
(0, external_vitest_namespaceObject.afterEach)(()=>{
|
|
240
|
+
process.env.WINGMAN_LOG_LEVEL = originalEnv;
|
|
241
|
+
});
|
|
242
|
+
(0, external_vitest_namespaceObject.it)("should create WingmanLogger by default", ()=>{
|
|
243
|
+
const logger = (0, external_logger_cjs_namespaceObject.createLogger)("info");
|
|
244
|
+
(0, external_vitest_namespaceObject.expect)(logger).toBeInstanceOf(external_logger_cjs_namespaceObject.WingmanLogger);
|
|
245
|
+
});
|
|
246
|
+
(0, external_vitest_namespaceObject.it)("should create SilentLogger when level is silent", ()=>{
|
|
247
|
+
const logger = (0, external_logger_cjs_namespaceObject.createLogger)("silent");
|
|
248
|
+
(0, external_vitest_namespaceObject.expect)(logger).toBeInstanceOf(external_logger_cjs_namespaceObject.SilentLogger);
|
|
249
|
+
});
|
|
250
|
+
(0, external_vitest_namespaceObject.it)("should use WINGMAN_LOG_LEVEL env var when no level provided", ()=>{
|
|
251
|
+
process.env.WINGMAN_LOG_LEVEL = "debug";
|
|
252
|
+
const logger = (0, external_logger_cjs_namespaceObject.createLogger)();
|
|
253
|
+
(0, external_vitest_namespaceObject.expect)(logger).toBeInstanceOf(external_logger_cjs_namespaceObject.WingmanLogger);
|
|
254
|
+
});
|
|
255
|
+
(0, external_vitest_namespaceObject.it)("should default to info level when env var not set", ()=>{
|
|
256
|
+
delete process.env.WINGMAN_LOG_LEVEL;
|
|
257
|
+
const logger = (0, external_logger_cjs_namespaceObject.createLogger)();
|
|
258
|
+
(0, external_vitest_namespaceObject.expect)(logger).toBeInstanceOf(external_logger_cjs_namespaceObject.WingmanLogger);
|
|
259
|
+
});
|
|
260
|
+
});
|
|
261
|
+
(0, external_vitest_namespaceObject.describe)("createEventLogger", ()=>{
|
|
262
|
+
(0, external_vitest_namespaceObject.it)("should create EventLogger with callback", ()=>{
|
|
263
|
+
const callback = external_vitest_namespaceObject.vi.fn();
|
|
264
|
+
const logger = (0, external_logger_cjs_namespaceObject.createEventLogger)(callback, "info");
|
|
265
|
+
(0, external_vitest_namespaceObject.expect)(logger).toBeInstanceOf(external_logger_cjs_namespaceObject.EventLogger);
|
|
266
|
+
});
|
|
267
|
+
(0, external_vitest_namespaceObject.it)("should create EventLogger with default info level", ()=>{
|
|
268
|
+
const callback = external_vitest_namespaceObject.vi.fn();
|
|
269
|
+
const logger = (0, external_logger_cjs_namespaceObject.createEventLogger)(callback);
|
|
270
|
+
logger.info("test");
|
|
271
|
+
(0, external_vitest_namespaceObject.expect)(callback).toHaveBeenCalledWith(external_vitest_namespaceObject.expect.objectContaining({
|
|
272
|
+
level: "info"
|
|
273
|
+
}));
|
|
274
|
+
});
|
|
275
|
+
});
|
|
276
|
+
(0, external_vitest_namespaceObject.describe)("createLoggerFromConfig", ()=>{
|
|
277
|
+
(0, external_vitest_namespaceObject.it)("should create logger from serializable config", ()=>{
|
|
278
|
+
const logger = (0, external_logger_cjs_namespaceObject.createLoggerFromConfig)({
|
|
279
|
+
level: "debug"
|
|
280
|
+
});
|
|
281
|
+
(0, external_vitest_namespaceObject.expect)(logger).toBeInstanceOf(external_logger_cjs_namespaceObject.WingmanLogger);
|
|
282
|
+
});
|
|
283
|
+
(0, external_vitest_namespaceObject.it)("should create silent logger from silent config", ()=>{
|
|
284
|
+
const logger = (0, external_logger_cjs_namespaceObject.createLoggerFromConfig)({
|
|
285
|
+
level: "silent"
|
|
286
|
+
});
|
|
287
|
+
(0, external_vitest_namespaceObject.expect)(logger).toBeInstanceOf(external_logger_cjs_namespaceObject.SilentLogger);
|
|
288
|
+
});
|
|
289
|
+
});
|
|
290
|
+
});
|
|
291
|
+
(0, external_vitest_namespaceObject.describe)("Log level hierarchy", ()=>{
|
|
292
|
+
(0, external_vitest_namespaceObject.it)("should respect level hierarchy: debug < info < warn < error", ()=>{
|
|
293
|
+
const testCases = [
|
|
294
|
+
{
|
|
295
|
+
level: "debug",
|
|
296
|
+
shouldLog: {
|
|
297
|
+
debug: true,
|
|
298
|
+
info: true,
|
|
299
|
+
warn: true,
|
|
300
|
+
error: true
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
level: "info",
|
|
305
|
+
shouldLog: {
|
|
306
|
+
debug: false,
|
|
307
|
+
info: true,
|
|
308
|
+
warn: true,
|
|
309
|
+
error: true
|
|
310
|
+
}
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
level: "warn",
|
|
314
|
+
shouldLog: {
|
|
315
|
+
debug: false,
|
|
316
|
+
info: false,
|
|
317
|
+
warn: true,
|
|
318
|
+
error: true
|
|
319
|
+
}
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
level: "error",
|
|
323
|
+
shouldLog: {
|
|
324
|
+
debug: false,
|
|
325
|
+
info: false,
|
|
326
|
+
warn: false,
|
|
327
|
+
error: true
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
];
|
|
331
|
+
for (const testCase of testCases){
|
|
332
|
+
const callback = external_vitest_namespaceObject.vi.fn();
|
|
333
|
+
const logger = new external_logger_cjs_namespaceObject.EventLogger(callback, testCase.level);
|
|
334
|
+
logger.debug("debug");
|
|
335
|
+
logger.info("info");
|
|
336
|
+
logger.warn("warn");
|
|
337
|
+
logger.error("error");
|
|
338
|
+
const debugCalls = callback.mock.calls.filter(([event])=>"debug" === event.level).length;
|
|
339
|
+
const infoCalls = callback.mock.calls.filter(([event])=>"info" === event.level).length;
|
|
340
|
+
const warnCalls = callback.mock.calls.filter(([event])=>"warn" === event.level).length;
|
|
341
|
+
const errorCalls = callback.mock.calls.filter(([event])=>"error" === event.level).length;
|
|
342
|
+
(0, external_vitest_namespaceObject.expect)(debugCalls).toBe(testCase.shouldLog.debug ? 1 : 0);
|
|
343
|
+
(0, external_vitest_namespaceObject.expect)(infoCalls).toBe(testCase.shouldLog.info ? 1 : 0);
|
|
344
|
+
(0, external_vitest_namespaceObject.expect)(warnCalls).toBe(testCase.shouldLog.warn ? 1 : 0);
|
|
345
|
+
(0, external_vitest_namespaceObject.expect)(errorCalls).toBe(testCase.shouldLog.error ? 1 : 0);
|
|
346
|
+
}
|
|
347
|
+
});
|
|
348
|
+
});
|
|
349
|
+
});
|
|
350
|
+
for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
351
|
+
Object.defineProperty(exports, '__esModule', {
|
|
352
|
+
value: true
|
|
353
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|