@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,208 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
executeProviderCommand: ()=>executeProviderCommand
|
|
28
|
+
});
|
|
29
|
+
const external_node_readline_namespaceObject = require("node:readline");
|
|
30
|
+
const outputManager_cjs_namespaceObject = require("../core/outputManager.cjs");
|
|
31
|
+
const credentials_cjs_namespaceObject = require("../../providers/credentials.cjs");
|
|
32
|
+
const registry_cjs_namespaceObject = require("../../providers/registry.cjs");
|
|
33
|
+
const oauth_cjs_namespaceObject = require("../../providers/oauth.cjs");
|
|
34
|
+
const external_logger_cjs_namespaceObject = require("../../logger.cjs");
|
|
35
|
+
async function executeProviderCommand(args) {
|
|
36
|
+
const outputManager = new outputManager_cjs_namespaceObject.OutputManager(args.outputMode);
|
|
37
|
+
try {
|
|
38
|
+
switch(args.subcommand){
|
|
39
|
+
case "login":
|
|
40
|
+
await handleLogin(outputManager, args);
|
|
41
|
+
break;
|
|
42
|
+
case "logout":
|
|
43
|
+
handleLogout(outputManager, args);
|
|
44
|
+
break;
|
|
45
|
+
case "status":
|
|
46
|
+
case "list":
|
|
47
|
+
handleStatus(outputManager);
|
|
48
|
+
break;
|
|
49
|
+
case "":
|
|
50
|
+
case "help":
|
|
51
|
+
case "--help":
|
|
52
|
+
case "-h":
|
|
53
|
+
showProviderHelp(outputManager);
|
|
54
|
+
break;
|
|
55
|
+
default:
|
|
56
|
+
throw new Error(`Unknown subcommand: ${args.subcommand}. Run 'wingman provider help' for usage.`);
|
|
57
|
+
}
|
|
58
|
+
} catch (error) {
|
|
59
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
60
|
+
const logFile = (0, external_logger_cjs_namespaceObject.getLogFilePath)();
|
|
61
|
+
(0, external_logger_cjs_namespaceObject.createLogger)().error("Provider command failed", {
|
|
62
|
+
error: message
|
|
63
|
+
});
|
|
64
|
+
if ("interactive" === outputManager.getMode()) {
|
|
65
|
+
console.error(`\nError: ${message}`);
|
|
66
|
+
console.error(`Logs: ${logFile}`);
|
|
67
|
+
process.exit(1);
|
|
68
|
+
} else {
|
|
69
|
+
outputManager.emitAgentError(error);
|
|
70
|
+
process.exit(1);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
async function handleLogin(outputManager, args) {
|
|
75
|
+
const providerName = args.args[0];
|
|
76
|
+
if (!providerName) throw new Error("Provider name required. Usage: wingman provider login <provider>");
|
|
77
|
+
const provider = (0, registry_cjs_namespaceObject.getProviderSpec)(providerName);
|
|
78
|
+
if (!provider) throw new Error(`Unknown provider: ${providerName}`);
|
|
79
|
+
const token = getTokenOption(args.options);
|
|
80
|
+
if (token) {
|
|
81
|
+
(0, credentials_cjs_namespaceObject.saveProviderToken)(provider.name, token);
|
|
82
|
+
writeLine(outputManager, `Saved ${provider.label} credentials to ${(0, credentials_cjs_namespaceObject.getCredentialsPath)()}`);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if ("oauth" === provider.type) {
|
|
86
|
+
const credentials = await (0, oauth_cjs_namespaceObject.loginWithLocalCallback)(provider.name, {
|
|
87
|
+
clientId: getOptionValue(args.options, "client-id"),
|
|
88
|
+
clientSecret: getOptionValue(args.options, "client-secret"),
|
|
89
|
+
scopes: getScopes(args.options),
|
|
90
|
+
redirectPort: getNumberOption(args.options, "redirect-port"),
|
|
91
|
+
openBrowser: getBooleanOption(args.options, "open-browser", true),
|
|
92
|
+
onMessage: (message)=>writeLine(outputManager, message)
|
|
93
|
+
});
|
|
94
|
+
(0, credentials_cjs_namespaceObject.setProviderCredentials)(provider.name, credentials);
|
|
95
|
+
writeLine(outputManager, `Saved ${provider.label} credentials to ${(0, credentials_cjs_namespaceObject.getCredentialsPath)()}`);
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
if ("interactive" !== outputManager.getMode()) throw new Error("API key required in JSON mode. Use --api-key.");
|
|
99
|
+
const tokenLabel = "copilot" === provider.name ? "token" : "API key";
|
|
100
|
+
const resolvedToken = await promptForToken(`Enter ${provider.label} ${tokenLabel}: `);
|
|
101
|
+
(0, credentials_cjs_namespaceObject.saveProviderToken)(provider.name, resolvedToken);
|
|
102
|
+
writeLine(outputManager, `Saved ${provider.label} credentials to ${(0, credentials_cjs_namespaceObject.getCredentialsPath)()}`);
|
|
103
|
+
}
|
|
104
|
+
function handleLogout(outputManager, args) {
|
|
105
|
+
const providerName = args.args[0];
|
|
106
|
+
if (!providerName) throw new Error("Provider name required. Usage: wingman provider logout <provider>");
|
|
107
|
+
const provider = (0, registry_cjs_namespaceObject.getProviderSpec)(providerName);
|
|
108
|
+
if (!provider) throw new Error(`Unknown provider: ${providerName}`);
|
|
109
|
+
const removed = (0, credentials_cjs_namespaceObject.deleteProviderCredentials)(provider.name);
|
|
110
|
+
removed ? writeLine(outputManager, `Removed ${provider.label} credentials from ${(0, credentials_cjs_namespaceObject.getCredentialsPath)()}`) : writeLine(outputManager, `No stored credentials for ${provider.label}`);
|
|
111
|
+
}
|
|
112
|
+
function handleStatus(outputManager) {
|
|
113
|
+
writeLine(outputManager, "Provider status:");
|
|
114
|
+
for (const provider of (0, registry_cjs_namespaceObject.listProviderSpecs)()){
|
|
115
|
+
const resolved = (0, credentials_cjs_namespaceObject.resolveProviderToken)(provider.name);
|
|
116
|
+
const source = "env" === resolved.source ? `env (${resolved.envVar})` : resolved.source;
|
|
117
|
+
writeLine(outputManager, ` ${provider.name} (${provider.type}) - ${source}`);
|
|
118
|
+
writeLine(outputManager, ` env: ${provider.envVars.join(", ")}`);
|
|
119
|
+
}
|
|
120
|
+
writeLine(outputManager, `Credentials file: ${(0, credentials_cjs_namespaceObject.getCredentialsPath)()}`);
|
|
121
|
+
}
|
|
122
|
+
function showProviderHelp(outputManager) {
|
|
123
|
+
if ("interactive" === outputManager.getMode()) console.log(`
|
|
124
|
+
Wingman Provider Manager
|
|
125
|
+
|
|
126
|
+
Usage:
|
|
127
|
+
wingman provider login <provider> [options]
|
|
128
|
+
wingman provider logout <provider>
|
|
129
|
+
wingman provider status
|
|
130
|
+
wingman provider help
|
|
131
|
+
|
|
132
|
+
Examples:
|
|
133
|
+
wingman provider status
|
|
134
|
+
wingman provider login copilot
|
|
135
|
+
wingman provider login openrouter --api-key="<key>"
|
|
136
|
+
wingman provider login lmstudio
|
|
137
|
+
wingman provider login ollama
|
|
138
|
+
|
|
139
|
+
Options:
|
|
140
|
+
--token <token> Store a token directly
|
|
141
|
+
--api-key <key> Store an API key directly
|
|
142
|
+
|
|
143
|
+
Environment Variables:
|
|
144
|
+
ANTHROPIC_API_KEY Anthropic API key
|
|
145
|
+
OPENAI_API_KEY OpenAI API key
|
|
146
|
+
OPENROUTER_API_KEY OpenRouter API key
|
|
147
|
+
GITHUB_COPILOT_TOKEN GitHub Copilot token
|
|
148
|
+
COPILOT_TOKEN GitHub Copilot token
|
|
149
|
+
COPILOT_API_KEY GitHub Copilot token
|
|
150
|
+
LMSTUDIO_API_KEY LM Studio API key (optional)
|
|
151
|
+
OLLAMA_API_KEY Ollama API key (optional)
|
|
152
|
+
ELEVENLABS_API_KEY ElevenLabs API key
|
|
153
|
+
XI_API_KEY ElevenLabs API key
|
|
154
|
+
`);
|
|
155
|
+
else outputManager.emitLog("info", "Provider help requested");
|
|
156
|
+
}
|
|
157
|
+
function getTokenOption(options) {
|
|
158
|
+
const raw = getOptionValue(options, "token") ?? getOptionValue(options, "api-key") ?? getOptionValue(options, "apiKey");
|
|
159
|
+
if ("string" == typeof raw && raw.trim()) return raw.trim();
|
|
160
|
+
}
|
|
161
|
+
function getOptionValue(options, key) {
|
|
162
|
+
const raw = options[key];
|
|
163
|
+
if ("string" == typeof raw && raw.trim()) return raw.trim();
|
|
164
|
+
}
|
|
165
|
+
function getScopes(options) {
|
|
166
|
+
const raw = getOptionValue(options, "scopes") ?? getOptionValue(options, "scope");
|
|
167
|
+
if (!raw) return;
|
|
168
|
+
return raw.split(/[,\s]+/).map((scope)=>scope.trim()).filter(Boolean);
|
|
169
|
+
}
|
|
170
|
+
function getNumberOption(options, key) {
|
|
171
|
+
const value = getOptionValue(options, key);
|
|
172
|
+
if (!value) return;
|
|
173
|
+
const parsed = Number(value);
|
|
174
|
+
return Number.isNaN(parsed) ? void 0 : parsed;
|
|
175
|
+
}
|
|
176
|
+
function getBooleanOption(options, key, defaultValue) {
|
|
177
|
+
const raw = options[key];
|
|
178
|
+
if ("boolean" == typeof raw) return raw;
|
|
179
|
+
if ("string" == typeof raw) {
|
|
180
|
+
if ("true" === raw.toLowerCase()) return true;
|
|
181
|
+
if ("false" === raw.toLowerCase()) return false;
|
|
182
|
+
}
|
|
183
|
+
return defaultValue;
|
|
184
|
+
}
|
|
185
|
+
async function promptForToken(prompt) {
|
|
186
|
+
const rl = (0, external_node_readline_namespaceObject.createInterface)({
|
|
187
|
+
input: process.stdin,
|
|
188
|
+
output: process.stdout
|
|
189
|
+
});
|
|
190
|
+
const answer = await new Promise((resolve)=>{
|
|
191
|
+
rl.question(prompt, (value)=>resolve(value));
|
|
192
|
+
});
|
|
193
|
+
rl.close();
|
|
194
|
+
const trimmed = answer.trim();
|
|
195
|
+
if (!trimmed) throw new Error("Token is required");
|
|
196
|
+
return trimmed;
|
|
197
|
+
}
|
|
198
|
+
function writeLine(outputManager, message) {
|
|
199
|
+
if ("interactive" === outputManager.getMode()) console.log(message);
|
|
200
|
+
else outputManager.emitLog("info", message);
|
|
201
|
+
}
|
|
202
|
+
exports.executeProviderCommand = __webpack_exports__.executeProviderCommand;
|
|
203
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
204
|
+
"executeProviderCommand"
|
|
205
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
206
|
+
Object.defineProperty(exports, '__esModule', {
|
|
207
|
+
value: true
|
|
208
|
+
});
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { createInterface } from "node:readline";
|
|
2
|
+
import { OutputManager } from "../core/outputManager.js";
|
|
3
|
+
import { deleteProviderCredentials, getCredentialsPath, resolveProviderToken, saveProviderToken, setProviderCredentials } from "../../providers/credentials.js";
|
|
4
|
+
import { getProviderSpec, listProviderSpecs } from "../../providers/registry.js";
|
|
5
|
+
import { loginWithLocalCallback } from "../../providers/oauth.js";
|
|
6
|
+
import { createLogger, getLogFilePath } from "../../logger.js";
|
|
7
|
+
async function executeProviderCommand(args) {
|
|
8
|
+
const outputManager = new OutputManager(args.outputMode);
|
|
9
|
+
try {
|
|
10
|
+
switch(args.subcommand){
|
|
11
|
+
case "login":
|
|
12
|
+
await handleLogin(outputManager, args);
|
|
13
|
+
break;
|
|
14
|
+
case "logout":
|
|
15
|
+
handleLogout(outputManager, args);
|
|
16
|
+
break;
|
|
17
|
+
case "status":
|
|
18
|
+
case "list":
|
|
19
|
+
handleStatus(outputManager);
|
|
20
|
+
break;
|
|
21
|
+
case "":
|
|
22
|
+
case "help":
|
|
23
|
+
case "--help":
|
|
24
|
+
case "-h":
|
|
25
|
+
showProviderHelp(outputManager);
|
|
26
|
+
break;
|
|
27
|
+
default:
|
|
28
|
+
throw new Error(`Unknown subcommand: ${args.subcommand}. Run 'wingman provider help' for usage.`);
|
|
29
|
+
}
|
|
30
|
+
} catch (error) {
|
|
31
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
32
|
+
const logFile = getLogFilePath();
|
|
33
|
+
createLogger().error("Provider command failed", {
|
|
34
|
+
error: message
|
|
35
|
+
});
|
|
36
|
+
if ("interactive" === outputManager.getMode()) {
|
|
37
|
+
console.error(`\nError: ${message}`);
|
|
38
|
+
console.error(`Logs: ${logFile}`);
|
|
39
|
+
process.exit(1);
|
|
40
|
+
} else {
|
|
41
|
+
outputManager.emitAgentError(error);
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async function handleLogin(outputManager, args) {
|
|
47
|
+
const providerName = args.args[0];
|
|
48
|
+
if (!providerName) throw new Error("Provider name required. Usage: wingman provider login <provider>");
|
|
49
|
+
const provider = getProviderSpec(providerName);
|
|
50
|
+
if (!provider) throw new Error(`Unknown provider: ${providerName}`);
|
|
51
|
+
const token = getTokenOption(args.options);
|
|
52
|
+
if (token) {
|
|
53
|
+
saveProviderToken(provider.name, token);
|
|
54
|
+
writeLine(outputManager, `Saved ${provider.label} credentials to ${getCredentialsPath()}`);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
if ("oauth" === provider.type) {
|
|
58
|
+
const credentials = await loginWithLocalCallback(provider.name, {
|
|
59
|
+
clientId: getOptionValue(args.options, "client-id"),
|
|
60
|
+
clientSecret: getOptionValue(args.options, "client-secret"),
|
|
61
|
+
scopes: getScopes(args.options),
|
|
62
|
+
redirectPort: getNumberOption(args.options, "redirect-port"),
|
|
63
|
+
openBrowser: getBooleanOption(args.options, "open-browser", true),
|
|
64
|
+
onMessage: (message)=>writeLine(outputManager, message)
|
|
65
|
+
});
|
|
66
|
+
setProviderCredentials(provider.name, credentials);
|
|
67
|
+
writeLine(outputManager, `Saved ${provider.label} credentials to ${getCredentialsPath()}`);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
if ("interactive" !== outputManager.getMode()) throw new Error("API key required in JSON mode. Use --api-key.");
|
|
71
|
+
const tokenLabel = "copilot" === provider.name ? "token" : "API key";
|
|
72
|
+
const resolvedToken = await promptForToken(`Enter ${provider.label} ${tokenLabel}: `);
|
|
73
|
+
saveProviderToken(provider.name, resolvedToken);
|
|
74
|
+
writeLine(outputManager, `Saved ${provider.label} credentials to ${getCredentialsPath()}`);
|
|
75
|
+
}
|
|
76
|
+
function handleLogout(outputManager, args) {
|
|
77
|
+
const providerName = args.args[0];
|
|
78
|
+
if (!providerName) throw new Error("Provider name required. Usage: wingman provider logout <provider>");
|
|
79
|
+
const provider = getProviderSpec(providerName);
|
|
80
|
+
if (!provider) throw new Error(`Unknown provider: ${providerName}`);
|
|
81
|
+
const removed = deleteProviderCredentials(provider.name);
|
|
82
|
+
removed ? writeLine(outputManager, `Removed ${provider.label} credentials from ${getCredentialsPath()}`) : writeLine(outputManager, `No stored credentials for ${provider.label}`);
|
|
83
|
+
}
|
|
84
|
+
function handleStatus(outputManager) {
|
|
85
|
+
writeLine(outputManager, "Provider status:");
|
|
86
|
+
for (const provider of listProviderSpecs()){
|
|
87
|
+
const resolved = resolveProviderToken(provider.name);
|
|
88
|
+
const source = "env" === resolved.source ? `env (${resolved.envVar})` : resolved.source;
|
|
89
|
+
writeLine(outputManager, ` ${provider.name} (${provider.type}) - ${source}`);
|
|
90
|
+
writeLine(outputManager, ` env: ${provider.envVars.join(", ")}`);
|
|
91
|
+
}
|
|
92
|
+
writeLine(outputManager, `Credentials file: ${getCredentialsPath()}`);
|
|
93
|
+
}
|
|
94
|
+
function showProviderHelp(outputManager) {
|
|
95
|
+
if ("interactive" === outputManager.getMode()) console.log(`
|
|
96
|
+
Wingman Provider Manager
|
|
97
|
+
|
|
98
|
+
Usage:
|
|
99
|
+
wingman provider login <provider> [options]
|
|
100
|
+
wingman provider logout <provider>
|
|
101
|
+
wingman provider status
|
|
102
|
+
wingman provider help
|
|
103
|
+
|
|
104
|
+
Examples:
|
|
105
|
+
wingman provider status
|
|
106
|
+
wingman provider login copilot
|
|
107
|
+
wingman provider login openrouter --api-key="<key>"
|
|
108
|
+
wingman provider login lmstudio
|
|
109
|
+
wingman provider login ollama
|
|
110
|
+
|
|
111
|
+
Options:
|
|
112
|
+
--token <token> Store a token directly
|
|
113
|
+
--api-key <key> Store an API key directly
|
|
114
|
+
|
|
115
|
+
Environment Variables:
|
|
116
|
+
ANTHROPIC_API_KEY Anthropic API key
|
|
117
|
+
OPENAI_API_KEY OpenAI API key
|
|
118
|
+
OPENROUTER_API_KEY OpenRouter API key
|
|
119
|
+
GITHUB_COPILOT_TOKEN GitHub Copilot token
|
|
120
|
+
COPILOT_TOKEN GitHub Copilot token
|
|
121
|
+
COPILOT_API_KEY GitHub Copilot token
|
|
122
|
+
LMSTUDIO_API_KEY LM Studio API key (optional)
|
|
123
|
+
OLLAMA_API_KEY Ollama API key (optional)
|
|
124
|
+
ELEVENLABS_API_KEY ElevenLabs API key
|
|
125
|
+
XI_API_KEY ElevenLabs API key
|
|
126
|
+
`);
|
|
127
|
+
else outputManager.emitLog("info", "Provider help requested");
|
|
128
|
+
}
|
|
129
|
+
function getTokenOption(options) {
|
|
130
|
+
const raw = getOptionValue(options, "token") ?? getOptionValue(options, "api-key") ?? getOptionValue(options, "apiKey");
|
|
131
|
+
if ("string" == typeof raw && raw.trim()) return raw.trim();
|
|
132
|
+
}
|
|
133
|
+
function getOptionValue(options, key) {
|
|
134
|
+
const raw = options[key];
|
|
135
|
+
if ("string" == typeof raw && raw.trim()) return raw.trim();
|
|
136
|
+
}
|
|
137
|
+
function getScopes(options) {
|
|
138
|
+
const raw = getOptionValue(options, "scopes") ?? getOptionValue(options, "scope");
|
|
139
|
+
if (!raw) return;
|
|
140
|
+
return raw.split(/[,\s]+/).map((scope)=>scope.trim()).filter(Boolean);
|
|
141
|
+
}
|
|
142
|
+
function getNumberOption(options, key) {
|
|
143
|
+
const value = getOptionValue(options, key);
|
|
144
|
+
if (!value) return;
|
|
145
|
+
const parsed = Number(value);
|
|
146
|
+
return Number.isNaN(parsed) ? void 0 : parsed;
|
|
147
|
+
}
|
|
148
|
+
function getBooleanOption(options, key, defaultValue) {
|
|
149
|
+
const raw = options[key];
|
|
150
|
+
if ("boolean" == typeof raw) return raw;
|
|
151
|
+
if ("string" == typeof raw) {
|
|
152
|
+
if ("true" === raw.toLowerCase()) return true;
|
|
153
|
+
if ("false" === raw.toLowerCase()) return false;
|
|
154
|
+
}
|
|
155
|
+
return defaultValue;
|
|
156
|
+
}
|
|
157
|
+
async function promptForToken(prompt) {
|
|
158
|
+
const rl = createInterface({
|
|
159
|
+
input: process.stdin,
|
|
160
|
+
output: process.stdout
|
|
161
|
+
});
|
|
162
|
+
const answer = await new Promise((resolve)=>{
|
|
163
|
+
rl.question(prompt, (value)=>resolve(value));
|
|
164
|
+
});
|
|
165
|
+
rl.close();
|
|
166
|
+
const trimmed = answer.trim();
|
|
167
|
+
if (!trimmed) throw new Error("Token is required");
|
|
168
|
+
return trimmed;
|
|
169
|
+
}
|
|
170
|
+
function writeLine(outputManager, message) {
|
|
171
|
+
if ("interactive" === outputManager.getMode()) console.log(message);
|
|
172
|
+
else outputManager.emitLog("info", message);
|
|
173
|
+
}
|
|
174
|
+
export { executeProviderCommand };
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
executeSkillCommand: ()=>executeSkillCommand
|
|
28
|
+
});
|
|
29
|
+
const skillRepository_cjs_namespaceObject = require("../services/skillRepository.cjs");
|
|
30
|
+
const skillService_cjs_namespaceObject = require("../services/skillService.cjs");
|
|
31
|
+
const outputManager_cjs_namespaceObject = require("../core/outputManager.cjs");
|
|
32
|
+
const loggerBridge_cjs_namespaceObject = require("../core/loggerBridge.cjs");
|
|
33
|
+
const loader_cjs_namespaceObject = require("../config/loader.cjs");
|
|
34
|
+
const external_logger_cjs_namespaceObject = require("../../logger.cjs");
|
|
35
|
+
async function executeSkillCommand(args, options = {}) {
|
|
36
|
+
const outputManager = new outputManager_cjs_namespaceObject.OutputManager(args.outputMode);
|
|
37
|
+
const logger = (0, loggerBridge_cjs_namespaceObject.createBridgedLogger)(outputManager, args.verbosity);
|
|
38
|
+
const configLoader = new loader_cjs_namespaceObject.WingmanConfigLoader();
|
|
39
|
+
const config = configLoader.loadConfig();
|
|
40
|
+
const workspace = options.workspace || process.cwd();
|
|
41
|
+
try {
|
|
42
|
+
const repository = new skillRepository_cjs_namespaceObject.SkillRepository({
|
|
43
|
+
repositoryOwner: config.skills?.repositoryOwner,
|
|
44
|
+
repositoryName: config.skills?.repositoryName,
|
|
45
|
+
githubToken: config.skills?.githubToken
|
|
46
|
+
});
|
|
47
|
+
const service = new skillService_cjs_namespaceObject.SkillService(repository, outputManager, logger, {
|
|
48
|
+
workspace,
|
|
49
|
+
skillsDirectory: config.skills?.skillsDirectory,
|
|
50
|
+
outputMode: args.outputMode
|
|
51
|
+
});
|
|
52
|
+
const subcommand = args.subcommand;
|
|
53
|
+
const subcommandArgs = args.args;
|
|
54
|
+
switch(subcommand){
|
|
55
|
+
case "browse":
|
|
56
|
+
await service.browseSkills();
|
|
57
|
+
break;
|
|
58
|
+
case "install":
|
|
59
|
+
{
|
|
60
|
+
if (0 === subcommandArgs.length) throw new Error("Skill name required. Usage: wingman skill install <skill-name>");
|
|
61
|
+
const skillName = subcommandArgs[0];
|
|
62
|
+
await service.installSkill(skillName);
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
case "list":
|
|
66
|
+
await service.listInstalledSkills();
|
|
67
|
+
break;
|
|
68
|
+
case "remove":
|
|
69
|
+
{
|
|
70
|
+
if (0 === subcommandArgs.length) throw new Error("Skill name required. Usage: wingman skill remove <skill-name>");
|
|
71
|
+
const skillName = subcommandArgs[0];
|
|
72
|
+
await service.removeSkill(skillName);
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
case "":
|
|
76
|
+
case "help":
|
|
77
|
+
case "--help":
|
|
78
|
+
case "-h":
|
|
79
|
+
showSkillHelp(outputManager);
|
|
80
|
+
break;
|
|
81
|
+
default:
|
|
82
|
+
throw new Error(`Unknown subcommand: ${subcommand}. Run 'wingman skill help' for usage.`);
|
|
83
|
+
}
|
|
84
|
+
} catch (error) {
|
|
85
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
86
|
+
const logFile = (0, external_logger_cjs_namespaceObject.getLogFilePath)();
|
|
87
|
+
logger.error("Skill command failed", {
|
|
88
|
+
error: errorMsg
|
|
89
|
+
});
|
|
90
|
+
if ("interactive" === outputManager.getMode()) {
|
|
91
|
+
console.error(`\nError: ${errorMsg}`);
|
|
92
|
+
console.error(`Logs: ${logFile}`);
|
|
93
|
+
process.exit(1);
|
|
94
|
+
} else {
|
|
95
|
+
outputManager.emitAgentError(error);
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function showSkillHelp(outputManager) {
|
|
101
|
+
if ("interactive" === outputManager.getMode()) console.log(`
|
|
102
|
+
Wingman Skill Manager - Install skills from the Anthropic skills repository
|
|
103
|
+
|
|
104
|
+
Usage:
|
|
105
|
+
wingman skill browse Browse available skills
|
|
106
|
+
wingman skill install <name> Install a skill
|
|
107
|
+
wingman skill list List installed skills
|
|
108
|
+
wingman skill remove <name> Remove an installed skill
|
|
109
|
+
wingman skill help Show this help message
|
|
110
|
+
|
|
111
|
+
Examples:
|
|
112
|
+
wingman skill browse
|
|
113
|
+
wingman skill install pdf
|
|
114
|
+
wingman skill list
|
|
115
|
+
wingman skill remove pdf
|
|
116
|
+
|
|
117
|
+
Environment Variables:
|
|
118
|
+
GITHUB_TOKEN Optional GitHub token for higher API rate limits
|
|
119
|
+
(5000/hour vs 60/hour without token)
|
|
120
|
+
|
|
121
|
+
Configuration:
|
|
122
|
+
Skills can be configured in .wingman/wingman.config.json:
|
|
123
|
+
{
|
|
124
|
+
"skills": {
|
|
125
|
+
"repositoryOwner": "anthropics",
|
|
126
|
+
"repositoryName": "skills",
|
|
127
|
+
"githubToken": "optional-token",
|
|
128
|
+
"skillsDirectory": "skills"
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
`);
|
|
132
|
+
else outputManager.emitEvent({
|
|
133
|
+
type: "log",
|
|
134
|
+
level: "info",
|
|
135
|
+
message: "Skill help requested",
|
|
136
|
+
timestamp: new Date().toISOString()
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
exports.executeSkillCommand = __webpack_exports__.executeSkillCommand;
|
|
140
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
141
|
+
"executeSkillCommand"
|
|
142
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
143
|
+
Object.defineProperty(exports, '__esModule', {
|
|
144
|
+
value: true
|
|
145
|
+
});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { SkillCommandArgs } from "../types/skill.js";
|
|
2
|
+
export interface SkillCommandOptions {
|
|
3
|
+
workspace?: string;
|
|
4
|
+
configDir?: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Execute the skill command
|
|
8
|
+
* This is the handler for: wingman skill <subcommand> [args]
|
|
9
|
+
*/
|
|
10
|
+
export declare function executeSkillCommand(args: SkillCommandArgs, options?: SkillCommandOptions): Promise<void>;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { SkillRepository } from "../services/skillRepository.js";
|
|
2
|
+
import { SkillService } from "../services/skillService.js";
|
|
3
|
+
import { OutputManager } from "../core/outputManager.js";
|
|
4
|
+
import { createBridgedLogger } from "../core/loggerBridge.js";
|
|
5
|
+
import { WingmanConfigLoader } from "../config/loader.js";
|
|
6
|
+
import { getLogFilePath } from "../../logger.js";
|
|
7
|
+
async function executeSkillCommand(args, options = {}) {
|
|
8
|
+
const outputManager = new OutputManager(args.outputMode);
|
|
9
|
+
const logger = createBridgedLogger(outputManager, args.verbosity);
|
|
10
|
+
const configLoader = new WingmanConfigLoader();
|
|
11
|
+
const config = configLoader.loadConfig();
|
|
12
|
+
const workspace = options.workspace || process.cwd();
|
|
13
|
+
try {
|
|
14
|
+
const repository = new SkillRepository({
|
|
15
|
+
repositoryOwner: config.skills?.repositoryOwner,
|
|
16
|
+
repositoryName: config.skills?.repositoryName,
|
|
17
|
+
githubToken: config.skills?.githubToken
|
|
18
|
+
});
|
|
19
|
+
const service = new SkillService(repository, outputManager, logger, {
|
|
20
|
+
workspace,
|
|
21
|
+
skillsDirectory: config.skills?.skillsDirectory,
|
|
22
|
+
outputMode: args.outputMode
|
|
23
|
+
});
|
|
24
|
+
const subcommand = args.subcommand;
|
|
25
|
+
const subcommandArgs = args.args;
|
|
26
|
+
switch(subcommand){
|
|
27
|
+
case "browse":
|
|
28
|
+
await service.browseSkills();
|
|
29
|
+
break;
|
|
30
|
+
case "install":
|
|
31
|
+
{
|
|
32
|
+
if (0 === subcommandArgs.length) throw new Error("Skill name required. Usage: wingman skill install <skill-name>");
|
|
33
|
+
const skillName = subcommandArgs[0];
|
|
34
|
+
await service.installSkill(skillName);
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
case "list":
|
|
38
|
+
await service.listInstalledSkills();
|
|
39
|
+
break;
|
|
40
|
+
case "remove":
|
|
41
|
+
{
|
|
42
|
+
if (0 === subcommandArgs.length) throw new Error("Skill name required. Usage: wingman skill remove <skill-name>");
|
|
43
|
+
const skillName = subcommandArgs[0];
|
|
44
|
+
await service.removeSkill(skillName);
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
case "":
|
|
48
|
+
case "help":
|
|
49
|
+
case "--help":
|
|
50
|
+
case "-h":
|
|
51
|
+
showSkillHelp(outputManager);
|
|
52
|
+
break;
|
|
53
|
+
default:
|
|
54
|
+
throw new Error(`Unknown subcommand: ${subcommand}. Run 'wingman skill help' for usage.`);
|
|
55
|
+
}
|
|
56
|
+
} catch (error) {
|
|
57
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
58
|
+
const logFile = getLogFilePath();
|
|
59
|
+
logger.error("Skill command failed", {
|
|
60
|
+
error: errorMsg
|
|
61
|
+
});
|
|
62
|
+
if ("interactive" === outputManager.getMode()) {
|
|
63
|
+
console.error(`\nError: ${errorMsg}`);
|
|
64
|
+
console.error(`Logs: ${logFile}`);
|
|
65
|
+
process.exit(1);
|
|
66
|
+
} else {
|
|
67
|
+
outputManager.emitAgentError(error);
|
|
68
|
+
process.exit(1);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function showSkillHelp(outputManager) {
|
|
73
|
+
if ("interactive" === outputManager.getMode()) console.log(`
|
|
74
|
+
Wingman Skill Manager - Install skills from the Anthropic skills repository
|
|
75
|
+
|
|
76
|
+
Usage:
|
|
77
|
+
wingman skill browse Browse available skills
|
|
78
|
+
wingman skill install <name> Install a skill
|
|
79
|
+
wingman skill list List installed skills
|
|
80
|
+
wingman skill remove <name> Remove an installed skill
|
|
81
|
+
wingman skill help Show this help message
|
|
82
|
+
|
|
83
|
+
Examples:
|
|
84
|
+
wingman skill browse
|
|
85
|
+
wingman skill install pdf
|
|
86
|
+
wingman skill list
|
|
87
|
+
wingman skill remove pdf
|
|
88
|
+
|
|
89
|
+
Environment Variables:
|
|
90
|
+
GITHUB_TOKEN Optional GitHub token for higher API rate limits
|
|
91
|
+
(5000/hour vs 60/hour without token)
|
|
92
|
+
|
|
93
|
+
Configuration:
|
|
94
|
+
Skills can be configured in .wingman/wingman.config.json:
|
|
95
|
+
{
|
|
96
|
+
"skills": {
|
|
97
|
+
"repositoryOwner": "anthropics",
|
|
98
|
+
"repositoryName": "skills",
|
|
99
|
+
"githubToken": "optional-token",
|
|
100
|
+
"skillsDirectory": "skills"
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
`);
|
|
104
|
+
else outputManager.emitEvent({
|
|
105
|
+
type: "log",
|
|
106
|
+
level: "info",
|
|
107
|
+
message: "Skill help requested",
|
|
108
|
+
timestamp: new Date().toISOString()
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
export { executeSkillCommand };
|