@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,257 @@
|
|
|
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
|
+
CommandHandler: ()=>CommandHandler
|
|
28
|
+
});
|
|
29
|
+
function _define_property(obj, key, value) {
|
|
30
|
+
if (key in obj) Object.defineProperty(obj, key, {
|
|
31
|
+
value: value,
|
|
32
|
+
enumerable: true,
|
|
33
|
+
configurable: true,
|
|
34
|
+
writable: true
|
|
35
|
+
});
|
|
36
|
+
else obj[key] = value;
|
|
37
|
+
return obj;
|
|
38
|
+
}
|
|
39
|
+
class CommandHandler {
|
|
40
|
+
isCommand(input) {
|
|
41
|
+
return input.trim().startsWith("/");
|
|
42
|
+
}
|
|
43
|
+
async executeCommand(input) {
|
|
44
|
+
const trimmed = input.trim();
|
|
45
|
+
const parts = trimmed.split(/\s+/);
|
|
46
|
+
const command = parts[0].toLowerCase();
|
|
47
|
+
const args = parts.slice(1);
|
|
48
|
+
this.logger.debug(`Executing command: ${command} with args: ${args.join(" ")}`);
|
|
49
|
+
switch(command){
|
|
50
|
+
case "/sessions":
|
|
51
|
+
return this.handleSessions(args);
|
|
52
|
+
case "/resume":
|
|
53
|
+
return this.handleResume(args);
|
|
54
|
+
case "/clear":
|
|
55
|
+
return this.handleClear(args);
|
|
56
|
+
case "/show":
|
|
57
|
+
return this.handleShow(args);
|
|
58
|
+
case "/help":
|
|
59
|
+
return this.handleHelp();
|
|
60
|
+
case "/archive":
|
|
61
|
+
return this.handleArchive(args);
|
|
62
|
+
default:
|
|
63
|
+
return {
|
|
64
|
+
type: "error",
|
|
65
|
+
message: `Unknown command: ${command}\nType /help for available commands.`
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
handleSessions(args) {
|
|
70
|
+
try {
|
|
71
|
+
const limit = args[0] ? parseInt(args[0], 10) : 10;
|
|
72
|
+
const sessions = this.sessionManager.listSessions({
|
|
73
|
+
status: "active",
|
|
74
|
+
limit: Math.min(limit, 50)
|
|
75
|
+
});
|
|
76
|
+
return {
|
|
77
|
+
type: "sessions",
|
|
78
|
+
data: sessions,
|
|
79
|
+
message: `Found ${sessions.length} active session(s)`
|
|
80
|
+
};
|
|
81
|
+
} catch (error) {
|
|
82
|
+
this.logger.error(`Failed to list sessions: ${error}`);
|
|
83
|
+
return {
|
|
84
|
+
type: "error",
|
|
85
|
+
message: `Failed to list sessions: ${error instanceof Error ? error.message : String(error)}`
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
handleResume(args) {
|
|
90
|
+
if (0 === args.length) return {
|
|
91
|
+
type: "error",
|
|
92
|
+
message: "Usage: /resume <session-id>\nUse /sessions to see available sessions."
|
|
93
|
+
};
|
|
94
|
+
const sessionId = args[0];
|
|
95
|
+
try {
|
|
96
|
+
const session = this.sessionManager.getSession(sessionId);
|
|
97
|
+
if (!session) return {
|
|
98
|
+
type: "error",
|
|
99
|
+
message: `Session not found: ${sessionId}`
|
|
100
|
+
};
|
|
101
|
+
if ("active" !== session.status) return {
|
|
102
|
+
type: "error",
|
|
103
|
+
message: `Session ${sessionId} is ${session.status}. Only active sessions can be resumed.`
|
|
104
|
+
};
|
|
105
|
+
this.currentSessionId = sessionId;
|
|
106
|
+
return {
|
|
107
|
+
type: "text",
|
|
108
|
+
data: {
|
|
109
|
+
sessionId,
|
|
110
|
+
session
|
|
111
|
+
},
|
|
112
|
+
message: `Resumed session: ${session.name}\nAgent: ${session.agentName}\nMessages: ${session.messageCount}`
|
|
113
|
+
};
|
|
114
|
+
} catch (error) {
|
|
115
|
+
this.logger.error(`Failed to resume session: ${error}`);
|
|
116
|
+
return {
|
|
117
|
+
type: "error",
|
|
118
|
+
message: `Failed to resume session: ${error instanceof Error ? error.message : String(error)}`
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
handleClear(args) {
|
|
123
|
+
try {
|
|
124
|
+
const agentName = args[0];
|
|
125
|
+
if (!agentName) return {
|
|
126
|
+
type: "error",
|
|
127
|
+
message: "Usage: /clear <agent-name>\nExample: /clear coder"
|
|
128
|
+
};
|
|
129
|
+
const newSession = this.sessionManager.createSession(agentName);
|
|
130
|
+
this.currentSessionId = newSession.id;
|
|
131
|
+
return {
|
|
132
|
+
type: "text",
|
|
133
|
+
data: {
|
|
134
|
+
sessionId: newSession.id,
|
|
135
|
+
session: newSession
|
|
136
|
+
},
|
|
137
|
+
message: `Started new session for agent: ${agentName}\nSession ID: ${newSession.id}`
|
|
138
|
+
};
|
|
139
|
+
} catch (error) {
|
|
140
|
+
this.logger.error(`Failed to create new session: ${error}`);
|
|
141
|
+
return {
|
|
142
|
+
type: "error",
|
|
143
|
+
message: `Failed to create new session: ${error instanceof Error ? error.message : String(error)}`
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
handleShow(args) {
|
|
148
|
+
try {
|
|
149
|
+
if (!this.currentSessionId) return {
|
|
150
|
+
type: "text",
|
|
151
|
+
message: "No active session. Use /clear to start a new session."
|
|
152
|
+
};
|
|
153
|
+
const session = this.sessionManager.getSession(this.currentSessionId);
|
|
154
|
+
if (!session) return {
|
|
155
|
+
type: "error",
|
|
156
|
+
message: `Current session not found: ${this.currentSessionId}`
|
|
157
|
+
};
|
|
158
|
+
const info = [
|
|
159
|
+
`Current Session: ${session.name}`,
|
|
160
|
+
`ID: ${session.id}`,
|
|
161
|
+
`Agent: ${session.agentName}`,
|
|
162
|
+
`Messages: ${session.messageCount}`,
|
|
163
|
+
`Created: ${session.createdAt.toLocaleString()}`,
|
|
164
|
+
`Updated: ${session.updatedAt.toLocaleString()}`,
|
|
165
|
+
`Status: ${session.status}`
|
|
166
|
+
];
|
|
167
|
+
if (session.lastMessagePreview) info.push(`\nLast message: ${session.lastMessagePreview}`);
|
|
168
|
+
return {
|
|
169
|
+
type: "text",
|
|
170
|
+
data: session,
|
|
171
|
+
message: info.join("\n")
|
|
172
|
+
};
|
|
173
|
+
} catch (error) {
|
|
174
|
+
this.logger.error(`Failed to show session info: ${error}`);
|
|
175
|
+
return {
|
|
176
|
+
type: "error",
|
|
177
|
+
message: `Failed to show session info: ${error instanceof Error ? error.message : String(error)}`
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
handleArchive(args) {
|
|
182
|
+
if (0 === args.length) return {
|
|
183
|
+
type: "error",
|
|
184
|
+
message: "Usage: /archive <session-id>\nUse /sessions to see available sessions."
|
|
185
|
+
};
|
|
186
|
+
const sessionId = args[0];
|
|
187
|
+
try {
|
|
188
|
+
const session = this.sessionManager.getSession(sessionId);
|
|
189
|
+
if (!session) return {
|
|
190
|
+
type: "error",
|
|
191
|
+
message: `Session not found: ${sessionId}`
|
|
192
|
+
};
|
|
193
|
+
this.sessionManager.archiveSession(sessionId);
|
|
194
|
+
if (this.currentSessionId === sessionId) this.currentSessionId = null;
|
|
195
|
+
return {
|
|
196
|
+
type: "text",
|
|
197
|
+
message: `Archived session: ${session.name}`
|
|
198
|
+
};
|
|
199
|
+
} catch (error) {
|
|
200
|
+
this.logger.error(`Failed to archive session: ${error}`);
|
|
201
|
+
return {
|
|
202
|
+
type: "error",
|
|
203
|
+
message: `Failed to archive session: ${error instanceof Error ? error.message : String(error)}`
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
handleHelp() {
|
|
208
|
+
const helpText = `
|
|
209
|
+
Available Commands:
|
|
210
|
+
/sessions [limit] List recent active sessions (default: 10, max: 50)
|
|
211
|
+
/resume <id> Resume a specific session by ID
|
|
212
|
+
/clear <agent> Start a new session with specified agent
|
|
213
|
+
/show Show current session information
|
|
214
|
+
/archive <id> Archive a session (move to archived status)
|
|
215
|
+
/help Show this help message
|
|
216
|
+
|
|
217
|
+
Examples:
|
|
218
|
+
/sessions List 10 most recent sessions
|
|
219
|
+
/sessions 20 List 20 most recent sessions
|
|
220
|
+
/resume abc123 Resume session with ID 'abc123'
|
|
221
|
+
/clear coder Start new session with 'coder' agent
|
|
222
|
+
/show Display current session details
|
|
223
|
+
/archive abc123 Archive session 'abc123'
|
|
224
|
+
|
|
225
|
+
Tips:
|
|
226
|
+
- Sessions auto-resume by default when using the same agent
|
|
227
|
+
- Use /clear to start a fresh conversation
|
|
228
|
+
- Use /sessions to see all your active sessions
|
|
229
|
+
- Archived sessions are preserved but won't auto-resume
|
|
230
|
+
`;
|
|
231
|
+
return {
|
|
232
|
+
type: "help",
|
|
233
|
+
message: helpText.trim()
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
getCurrentSessionId() {
|
|
237
|
+
return this.currentSessionId;
|
|
238
|
+
}
|
|
239
|
+
setCurrentSessionId(sessionId) {
|
|
240
|
+
this.currentSessionId = sessionId;
|
|
241
|
+
}
|
|
242
|
+
constructor(options){
|
|
243
|
+
_define_property(this, "sessionManager", void 0);
|
|
244
|
+
_define_property(this, "currentSessionId", void 0);
|
|
245
|
+
_define_property(this, "logger", void 0);
|
|
246
|
+
this.sessionManager = options.sessionManager;
|
|
247
|
+
this.currentSessionId = options.currentSessionId;
|
|
248
|
+
this.logger = options.logger;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
exports.CommandHandler = __webpack_exports__.CommandHandler;
|
|
252
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
253
|
+
"CommandHandler"
|
|
254
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
255
|
+
Object.defineProperty(exports, '__esModule', {
|
|
256
|
+
value: true
|
|
257
|
+
});
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { SessionManager } from "./sessionManager.js";
|
|
2
|
+
import type { Logger } from "@/logger.js";
|
|
3
|
+
export interface CommandResult {
|
|
4
|
+
type: "text" | "sessions" | "error" | "help";
|
|
5
|
+
data?: any;
|
|
6
|
+
message?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface CommandHandlerOptions {
|
|
9
|
+
sessionManager: SessionManager;
|
|
10
|
+
currentSessionId: string | null;
|
|
11
|
+
logger: Logger;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* CommandHandler processes in-chat slash commands
|
|
15
|
+
* Commands: /sessions, /resume, /clear, /show, /help
|
|
16
|
+
*/
|
|
17
|
+
export declare class CommandHandler {
|
|
18
|
+
private sessionManager;
|
|
19
|
+
private currentSessionId;
|
|
20
|
+
private logger;
|
|
21
|
+
constructor(options: CommandHandlerOptions);
|
|
22
|
+
/**
|
|
23
|
+
* Check if input is a command (starts with /)
|
|
24
|
+
*/
|
|
25
|
+
isCommand(input: string): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Parse and execute a command
|
|
28
|
+
*/
|
|
29
|
+
executeCommand(input: string): Promise<CommandResult>;
|
|
30
|
+
/**
|
|
31
|
+
* List recent sessions
|
|
32
|
+
*/
|
|
33
|
+
private handleSessions;
|
|
34
|
+
/**
|
|
35
|
+
* Resume a specific session by ID
|
|
36
|
+
*/
|
|
37
|
+
private handleResume;
|
|
38
|
+
/**
|
|
39
|
+
* Clear current session and start a new one
|
|
40
|
+
*/
|
|
41
|
+
private handleClear;
|
|
42
|
+
/**
|
|
43
|
+
* Show current session info
|
|
44
|
+
*/
|
|
45
|
+
private handleShow;
|
|
46
|
+
/**
|
|
47
|
+
* Archive a session
|
|
48
|
+
*/
|
|
49
|
+
private handleArchive;
|
|
50
|
+
/**
|
|
51
|
+
* Show help information
|
|
52
|
+
*/
|
|
53
|
+
private handleHelp;
|
|
54
|
+
/**
|
|
55
|
+
* Get current session ID
|
|
56
|
+
*/
|
|
57
|
+
getCurrentSessionId(): string | null;
|
|
58
|
+
/**
|
|
59
|
+
* Set current session ID
|
|
60
|
+
*/
|
|
61
|
+
setCurrentSessionId(sessionId: string | null): void;
|
|
62
|
+
}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
function _define_property(obj, key, value) {
|
|
2
|
+
if (key in obj) Object.defineProperty(obj, key, {
|
|
3
|
+
value: value,
|
|
4
|
+
enumerable: true,
|
|
5
|
+
configurable: true,
|
|
6
|
+
writable: true
|
|
7
|
+
});
|
|
8
|
+
else obj[key] = value;
|
|
9
|
+
return obj;
|
|
10
|
+
}
|
|
11
|
+
class CommandHandler {
|
|
12
|
+
isCommand(input) {
|
|
13
|
+
return input.trim().startsWith("/");
|
|
14
|
+
}
|
|
15
|
+
async executeCommand(input) {
|
|
16
|
+
const trimmed = input.trim();
|
|
17
|
+
const parts = trimmed.split(/\s+/);
|
|
18
|
+
const command = parts[0].toLowerCase();
|
|
19
|
+
const args = parts.slice(1);
|
|
20
|
+
this.logger.debug(`Executing command: ${command} with args: ${args.join(" ")}`);
|
|
21
|
+
switch(command){
|
|
22
|
+
case "/sessions":
|
|
23
|
+
return this.handleSessions(args);
|
|
24
|
+
case "/resume":
|
|
25
|
+
return this.handleResume(args);
|
|
26
|
+
case "/clear":
|
|
27
|
+
return this.handleClear(args);
|
|
28
|
+
case "/show":
|
|
29
|
+
return this.handleShow(args);
|
|
30
|
+
case "/help":
|
|
31
|
+
return this.handleHelp();
|
|
32
|
+
case "/archive":
|
|
33
|
+
return this.handleArchive(args);
|
|
34
|
+
default:
|
|
35
|
+
return {
|
|
36
|
+
type: "error",
|
|
37
|
+
message: `Unknown command: ${command}\nType /help for available commands.`
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
handleSessions(args) {
|
|
42
|
+
try {
|
|
43
|
+
const limit = args[0] ? parseInt(args[0], 10) : 10;
|
|
44
|
+
const sessions = this.sessionManager.listSessions({
|
|
45
|
+
status: "active",
|
|
46
|
+
limit: Math.min(limit, 50)
|
|
47
|
+
});
|
|
48
|
+
return {
|
|
49
|
+
type: "sessions",
|
|
50
|
+
data: sessions,
|
|
51
|
+
message: `Found ${sessions.length} active session(s)`
|
|
52
|
+
};
|
|
53
|
+
} catch (error) {
|
|
54
|
+
this.logger.error(`Failed to list sessions: ${error}`);
|
|
55
|
+
return {
|
|
56
|
+
type: "error",
|
|
57
|
+
message: `Failed to list sessions: ${error instanceof Error ? error.message : String(error)}`
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
handleResume(args) {
|
|
62
|
+
if (0 === args.length) return {
|
|
63
|
+
type: "error",
|
|
64
|
+
message: "Usage: /resume <session-id>\nUse /sessions to see available sessions."
|
|
65
|
+
};
|
|
66
|
+
const sessionId = args[0];
|
|
67
|
+
try {
|
|
68
|
+
const session = this.sessionManager.getSession(sessionId);
|
|
69
|
+
if (!session) return {
|
|
70
|
+
type: "error",
|
|
71
|
+
message: `Session not found: ${sessionId}`
|
|
72
|
+
};
|
|
73
|
+
if ("active" !== session.status) return {
|
|
74
|
+
type: "error",
|
|
75
|
+
message: `Session ${sessionId} is ${session.status}. Only active sessions can be resumed.`
|
|
76
|
+
};
|
|
77
|
+
this.currentSessionId = sessionId;
|
|
78
|
+
return {
|
|
79
|
+
type: "text",
|
|
80
|
+
data: {
|
|
81
|
+
sessionId,
|
|
82
|
+
session
|
|
83
|
+
},
|
|
84
|
+
message: `Resumed session: ${session.name}\nAgent: ${session.agentName}\nMessages: ${session.messageCount}`
|
|
85
|
+
};
|
|
86
|
+
} catch (error) {
|
|
87
|
+
this.logger.error(`Failed to resume session: ${error}`);
|
|
88
|
+
return {
|
|
89
|
+
type: "error",
|
|
90
|
+
message: `Failed to resume session: ${error instanceof Error ? error.message : String(error)}`
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
handleClear(args) {
|
|
95
|
+
try {
|
|
96
|
+
const agentName = args[0];
|
|
97
|
+
if (!agentName) return {
|
|
98
|
+
type: "error",
|
|
99
|
+
message: "Usage: /clear <agent-name>\nExample: /clear coder"
|
|
100
|
+
};
|
|
101
|
+
const newSession = this.sessionManager.createSession(agentName);
|
|
102
|
+
this.currentSessionId = newSession.id;
|
|
103
|
+
return {
|
|
104
|
+
type: "text",
|
|
105
|
+
data: {
|
|
106
|
+
sessionId: newSession.id,
|
|
107
|
+
session: newSession
|
|
108
|
+
},
|
|
109
|
+
message: `Started new session for agent: ${agentName}\nSession ID: ${newSession.id}`
|
|
110
|
+
};
|
|
111
|
+
} catch (error) {
|
|
112
|
+
this.logger.error(`Failed to create new session: ${error}`);
|
|
113
|
+
return {
|
|
114
|
+
type: "error",
|
|
115
|
+
message: `Failed to create new session: ${error instanceof Error ? error.message : String(error)}`
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
handleShow(args) {
|
|
120
|
+
try {
|
|
121
|
+
if (!this.currentSessionId) return {
|
|
122
|
+
type: "text",
|
|
123
|
+
message: "No active session. Use /clear to start a new session."
|
|
124
|
+
};
|
|
125
|
+
const session = this.sessionManager.getSession(this.currentSessionId);
|
|
126
|
+
if (!session) return {
|
|
127
|
+
type: "error",
|
|
128
|
+
message: `Current session not found: ${this.currentSessionId}`
|
|
129
|
+
};
|
|
130
|
+
const info = [
|
|
131
|
+
`Current Session: ${session.name}`,
|
|
132
|
+
`ID: ${session.id}`,
|
|
133
|
+
`Agent: ${session.agentName}`,
|
|
134
|
+
`Messages: ${session.messageCount}`,
|
|
135
|
+
`Created: ${session.createdAt.toLocaleString()}`,
|
|
136
|
+
`Updated: ${session.updatedAt.toLocaleString()}`,
|
|
137
|
+
`Status: ${session.status}`
|
|
138
|
+
];
|
|
139
|
+
if (session.lastMessagePreview) info.push(`\nLast message: ${session.lastMessagePreview}`);
|
|
140
|
+
return {
|
|
141
|
+
type: "text",
|
|
142
|
+
data: session,
|
|
143
|
+
message: info.join("\n")
|
|
144
|
+
};
|
|
145
|
+
} catch (error) {
|
|
146
|
+
this.logger.error(`Failed to show session info: ${error}`);
|
|
147
|
+
return {
|
|
148
|
+
type: "error",
|
|
149
|
+
message: `Failed to show session info: ${error instanceof Error ? error.message : String(error)}`
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
handleArchive(args) {
|
|
154
|
+
if (0 === args.length) return {
|
|
155
|
+
type: "error",
|
|
156
|
+
message: "Usage: /archive <session-id>\nUse /sessions to see available sessions."
|
|
157
|
+
};
|
|
158
|
+
const sessionId = args[0];
|
|
159
|
+
try {
|
|
160
|
+
const session = this.sessionManager.getSession(sessionId);
|
|
161
|
+
if (!session) return {
|
|
162
|
+
type: "error",
|
|
163
|
+
message: `Session not found: ${sessionId}`
|
|
164
|
+
};
|
|
165
|
+
this.sessionManager.archiveSession(sessionId);
|
|
166
|
+
if (this.currentSessionId === sessionId) this.currentSessionId = null;
|
|
167
|
+
return {
|
|
168
|
+
type: "text",
|
|
169
|
+
message: `Archived session: ${session.name}`
|
|
170
|
+
};
|
|
171
|
+
} catch (error) {
|
|
172
|
+
this.logger.error(`Failed to archive session: ${error}`);
|
|
173
|
+
return {
|
|
174
|
+
type: "error",
|
|
175
|
+
message: `Failed to archive session: ${error instanceof Error ? error.message : String(error)}`
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
handleHelp() {
|
|
180
|
+
const helpText = `
|
|
181
|
+
Available Commands:
|
|
182
|
+
/sessions [limit] List recent active sessions (default: 10, max: 50)
|
|
183
|
+
/resume <id> Resume a specific session by ID
|
|
184
|
+
/clear <agent> Start a new session with specified agent
|
|
185
|
+
/show Show current session information
|
|
186
|
+
/archive <id> Archive a session (move to archived status)
|
|
187
|
+
/help Show this help message
|
|
188
|
+
|
|
189
|
+
Examples:
|
|
190
|
+
/sessions List 10 most recent sessions
|
|
191
|
+
/sessions 20 List 20 most recent sessions
|
|
192
|
+
/resume abc123 Resume session with ID 'abc123'
|
|
193
|
+
/clear coder Start new session with 'coder' agent
|
|
194
|
+
/show Display current session details
|
|
195
|
+
/archive abc123 Archive session 'abc123'
|
|
196
|
+
|
|
197
|
+
Tips:
|
|
198
|
+
- Sessions auto-resume by default when using the same agent
|
|
199
|
+
- Use /clear to start a fresh conversation
|
|
200
|
+
- Use /sessions to see all your active sessions
|
|
201
|
+
- Archived sessions are preserved but won't auto-resume
|
|
202
|
+
`;
|
|
203
|
+
return {
|
|
204
|
+
type: "help",
|
|
205
|
+
message: helpText.trim()
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
getCurrentSessionId() {
|
|
209
|
+
return this.currentSessionId;
|
|
210
|
+
}
|
|
211
|
+
setCurrentSessionId(sessionId) {
|
|
212
|
+
this.currentSessionId = sessionId;
|
|
213
|
+
}
|
|
214
|
+
constructor(options){
|
|
215
|
+
_define_property(this, "sessionManager", void 0);
|
|
216
|
+
_define_property(this, "currentSessionId", void 0);
|
|
217
|
+
_define_property(this, "logger", void 0);
|
|
218
|
+
this.sessionManager = options.sessionManager;
|
|
219
|
+
this.currentSessionId = options.currentSessionId;
|
|
220
|
+
this.logger = options.logger;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
export { CommandHandler };
|
|
@@ -0,0 +1,87 @@
|
|
|
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
|
+
BunSqliteAdapter: ()=>BunSqliteAdapter
|
|
28
|
+
});
|
|
29
|
+
const external_bun_sqlite_namespaceObject = require("bun:sqlite");
|
|
30
|
+
function _define_property(obj, key, value) {
|
|
31
|
+
if (key in obj) Object.defineProperty(obj, key, {
|
|
32
|
+
value: value,
|
|
33
|
+
enumerable: true,
|
|
34
|
+
configurable: true,
|
|
35
|
+
writable: true
|
|
36
|
+
});
|
|
37
|
+
else obj[key] = value;
|
|
38
|
+
return obj;
|
|
39
|
+
}
|
|
40
|
+
class BunSqliteAdapter {
|
|
41
|
+
prepare(sql) {
|
|
42
|
+
const stmt = this.db.prepare(sql);
|
|
43
|
+
return {
|
|
44
|
+
...stmt,
|
|
45
|
+
get: (...params)=>{
|
|
46
|
+
const result = stmt.get(...params);
|
|
47
|
+
return null === result ? void 0 : result;
|
|
48
|
+
},
|
|
49
|
+
all: (...params)=>stmt.all(...params),
|
|
50
|
+
run: (...params)=>stmt.run(...params)
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
exec(sql) {
|
|
54
|
+
return this.db.run(sql);
|
|
55
|
+
}
|
|
56
|
+
run(sql, ...params) {
|
|
57
|
+
return this.db.run(sql, ...params);
|
|
58
|
+
}
|
|
59
|
+
pragma(pragma, simplify) {
|
|
60
|
+
const result = this.db.prepare(`PRAGMA ${pragma}`).get();
|
|
61
|
+
return simplify ? result : {
|
|
62
|
+
[pragma]: result
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
transaction(fn) {
|
|
66
|
+
return this.db.transaction(fn);
|
|
67
|
+
}
|
|
68
|
+
close() {
|
|
69
|
+
return this.db.close();
|
|
70
|
+
}
|
|
71
|
+
get inTransaction() {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
constructor(filenameOrDatabase){
|
|
75
|
+
_define_property(this, "db", void 0);
|
|
76
|
+
this.db = "string" == typeof filenameOrDatabase ? new external_bun_sqlite_namespaceObject.Database(filenameOrDatabase, {
|
|
77
|
+
create: true
|
|
78
|
+
}) : filenameOrDatabase;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
exports.BunSqliteAdapter = __webpack_exports__.BunSqliteAdapter;
|
|
82
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
83
|
+
"BunSqliteAdapter"
|
|
84
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
85
|
+
Object.defineProperty(exports, '__esModule', {
|
|
86
|
+
value: true
|
|
87
|
+
});
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Database } from "bun:sqlite";
|
|
2
|
+
/**
|
|
3
|
+
* Adapter making bun:sqlite compatible with better-sqlite3 interface
|
|
4
|
+
* for LangGraph's SqliteSaver.
|
|
5
|
+
*
|
|
6
|
+
* This allows SqliteSaver to work with bun:sqlite without modification.
|
|
7
|
+
* The APIs are intentionally similar as bun:sqlite was designed to be
|
|
8
|
+
* compatible with better-sqlite3.
|
|
9
|
+
*/
|
|
10
|
+
export declare class BunSqliteAdapter {
|
|
11
|
+
db: Database;
|
|
12
|
+
constructor(filenameOrDatabase: string | Database);
|
|
13
|
+
prepare(sql: string): {
|
|
14
|
+
get: (...params: any[]) => {} | undefined;
|
|
15
|
+
all: (...params: any[]) => unknown[];
|
|
16
|
+
run: (...params: any[]) => import("bun:sqlite").Changes;
|
|
17
|
+
columnNames: string[];
|
|
18
|
+
paramsCount: number;
|
|
19
|
+
columnTypes: Array<"INTEGER" | "FLOAT" | "TEXT" | "BLOB" | "NULL" | null>;
|
|
20
|
+
declaredTypes: Array<string | null>;
|
|
21
|
+
native: any;
|
|
22
|
+
};
|
|
23
|
+
exec(sql: string): import("bun:sqlite").Changes;
|
|
24
|
+
run(sql: string, ...params: any[]): import("bun:sqlite").Changes;
|
|
25
|
+
pragma(pragma: string, simplify?: boolean): unknown;
|
|
26
|
+
transaction(fn: (...args: any[]) => any): {
|
|
27
|
+
(...args: any[]): any;
|
|
28
|
+
deferred: (...args: any[]) => any;
|
|
29
|
+
immediate: (...args: any[]) => any;
|
|
30
|
+
exclusive: (...args: any[]) => any;
|
|
31
|
+
};
|
|
32
|
+
close(): void;
|
|
33
|
+
get inTransaction(): boolean;
|
|
34
|
+
}
|