codemate-ai 1.0.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/LICENSE +21 -0
- package/README.md +314 -0
- package/dist/src/agents/base/Agent.d.ts +13 -0
- package/dist/src/agents/base/Agent.d.ts.map +1 -0
- package/dist/src/agents/base/Agent.js +10 -0
- package/dist/src/agents/base/Agent.js.map +1 -0
- package/dist/src/agents/builtin/ExploreAgent.d.ts +13 -0
- package/dist/src/agents/builtin/ExploreAgent.d.ts.map +1 -0
- package/dist/src/agents/builtin/ExploreAgent.js +71 -0
- package/dist/src/agents/builtin/ExploreAgent.js.map +1 -0
- package/dist/src/agents/builtin/GeneralAgent.d.ts +13 -0
- package/dist/src/agents/builtin/GeneralAgent.d.ts.map +1 -0
- package/dist/src/agents/builtin/GeneralAgent.js +80 -0
- package/dist/src/agents/builtin/GeneralAgent.js.map +1 -0
- package/dist/src/agents/builtin/PlanAgent.d.ts +15 -0
- package/dist/src/agents/builtin/PlanAgent.d.ts.map +1 -0
- package/dist/src/agents/builtin/PlanAgent.js +85 -0
- package/dist/src/agents/builtin/PlanAgent.js.map +1 -0
- package/dist/src/application/Application.d.ts +28 -0
- package/dist/src/application/Application.d.ts.map +1 -0
- package/dist/src/application/Application.js +209 -0
- package/dist/src/application/Application.js.map +1 -0
- package/dist/src/application/Container.d.ts +14 -0
- package/dist/src/application/Container.d.ts.map +1 -0
- package/dist/src/application/Container.js +47 -0
- package/dist/src/application/Container.js.map +1 -0
- package/dist/src/cli.d.ts +3 -0
- package/dist/src/cli.d.ts.map +1 -0
- package/dist/src/cli.js +54 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/code/CodeEditor.d.ts +9 -0
- package/dist/src/code/CodeEditor.d.ts.map +1 -0
- package/dist/src/code/CodeEditor.js +61 -0
- package/dist/src/code/CodeEditor.js.map +1 -0
- package/dist/src/code/CodeLocator.d.ts +8 -0
- package/dist/src/code/CodeLocator.d.ts.map +1 -0
- package/dist/src/code/CodeLocator.js +111 -0
- package/dist/src/code/CodeLocator.js.map +1 -0
- package/dist/src/code/CodeParser.d.ts +6 -0
- package/dist/src/code/CodeParser.d.ts.map +1 -0
- package/dist/src/code/CodeParser.js +32 -0
- package/dist/src/code/CodeParser.js.map +1 -0
- package/dist/src/code/types.d.ts +21 -0
- package/dist/src/code/types.d.ts.map +1 -0
- package/dist/src/code/types.js +2 -0
- package/dist/src/code/types.js.map +1 -0
- package/dist/src/commands/base/SlashCommand.d.ts +14 -0
- package/dist/src/commands/base/SlashCommand.d.ts.map +1 -0
- package/dist/src/commands/base/SlashCommand.js +14 -0
- package/dist/src/commands/base/SlashCommand.js.map +1 -0
- package/dist/src/commands/model/ModelCommand.d.ts +10 -0
- package/dist/src/commands/model/ModelCommand.d.ts.map +1 -0
- package/dist/src/commands/model/ModelCommand.js +20 -0
- package/dist/src/commands/model/ModelCommand.js.map +1 -0
- package/dist/src/commands/performance/PerformanceCommand.d.ts +12 -0
- package/dist/src/commands/performance/PerformanceCommand.d.ts.map +1 -0
- package/dist/src/commands/performance/PerformanceCommand.js +22 -0
- package/dist/src/commands/performance/PerformanceCommand.js.map +1 -0
- package/dist/src/commands/session/ClearCommand.d.ts +9 -0
- package/dist/src/commands/session/ClearCommand.d.ts.map +1 -0
- package/dist/src/commands/session/ClearCommand.js +19 -0
- package/dist/src/commands/session/ClearCommand.js.map +1 -0
- package/dist/src/commands/session/ExitCommand.d.ts +9 -0
- package/dist/src/commands/session/ExitCommand.d.ts.map +1 -0
- package/dist/src/commands/session/ExitCommand.js +12 -0
- package/dist/src/commands/session/ExitCommand.js.map +1 -0
- package/dist/src/commands/session/HelpCommand.d.ts +9 -0
- package/dist/src/commands/session/HelpCommand.d.ts.map +1 -0
- package/dist/src/commands/session/HelpCommand.js +44 -0
- package/dist/src/commands/session/HelpCommand.js.map +1 -0
- package/dist/src/commands/session/SessionsCommand.d.ts +9 -0
- package/dist/src/commands/session/SessionsCommand.d.ts.map +1 -0
- package/dist/src/commands/session/SessionsCommand.js +26 -0
- package/dist/src/commands/session/SessionsCommand.js.map +1 -0
- package/dist/src/commands/snapshot/RewindCommand.d.ts +9 -0
- package/dist/src/commands/snapshot/RewindCommand.d.ts.map +1 -0
- package/dist/src/commands/snapshot/RewindCommand.js +43 -0
- package/dist/src/commands/snapshot/RewindCommand.js.map +1 -0
- package/dist/src/commands/snapshot/SnapshotsCommand.d.ts +9 -0
- package/dist/src/commands/snapshot/SnapshotsCommand.d.ts.map +1 -0
- package/dist/src/commands/snapshot/SnapshotsCommand.js +25 -0
- package/dist/src/commands/snapshot/SnapshotsCommand.js.map +1 -0
- package/dist/src/commands/spec/SpecCreateCommand.d.ts +9 -0
- package/dist/src/commands/spec/SpecCreateCommand.d.ts.map +1 -0
- package/dist/src/commands/spec/SpecCreateCommand.js +22 -0
- package/dist/src/commands/spec/SpecCreateCommand.js.map +1 -0
- package/dist/src/commands/spec/SpecListCommand.d.ts +9 -0
- package/dist/src/commands/spec/SpecListCommand.d.ts.map +1 -0
- package/dist/src/commands/spec/SpecListCommand.js +15 -0
- package/dist/src/commands/spec/SpecListCommand.js.map +1 -0
- package/dist/src/commands/spec/SpecShowCommand.d.ts +9 -0
- package/dist/src/commands/spec/SpecShowCommand.d.ts.map +1 -0
- package/dist/src/commands/spec/SpecShowCommand.js +21 -0
- package/dist/src/commands/spec/SpecShowCommand.js.map +1 -0
- package/dist/src/managers/AgentManager.d.ts +19 -0
- package/dist/src/managers/AgentManager.d.ts.map +1 -0
- package/dist/src/managers/AgentManager.js +47 -0
- package/dist/src/managers/AgentManager.js.map +1 -0
- package/dist/src/managers/PluginManager.d.ts +23 -0
- package/dist/src/managers/PluginManager.d.ts.map +1 -0
- package/dist/src/managers/PluginManager.js +80 -0
- package/dist/src/managers/PluginManager.js.map +1 -0
- package/dist/src/managers/SlashCommandManager.d.ts +19 -0
- package/dist/src/managers/SlashCommandManager.d.ts.map +1 -0
- package/dist/src/managers/SlashCommandManager.js +80 -0
- package/dist/src/managers/SlashCommandManager.js.map +1 -0
- package/dist/src/managers/SpecManager.d.ts +26 -0
- package/dist/src/managers/SpecManager.d.ts.map +1 -0
- package/dist/src/managers/SpecManager.js +134 -0
- package/dist/src/managers/SpecManager.js.map +1 -0
- package/dist/src/managers/ToolManager.d.ts +24 -0
- package/dist/src/managers/ToolManager.d.ts.map +1 -0
- package/dist/src/managers/ToolManager.js +97 -0
- package/dist/src/managers/ToolManager.js.map +1 -0
- package/dist/src/mcp/MCPClient.d.ts +17 -0
- package/dist/src/mcp/MCPClient.d.ts.map +1 -0
- package/dist/src/mcp/MCPClient.js +117 -0
- package/dist/src/mcp/MCPClient.js.map +1 -0
- package/dist/src/mcp/MCPManager.d.ts +12 -0
- package/dist/src/mcp/MCPManager.d.ts.map +1 -0
- package/dist/src/mcp/MCPManager.js +63 -0
- package/dist/src/mcp/MCPManager.js.map +1 -0
- package/dist/src/mcp/MCPTool.d.ts +15 -0
- package/dist/src/mcp/MCPTool.d.ts.map +1 -0
- package/dist/src/mcp/MCPTool.js +73 -0
- package/dist/src/mcp/MCPTool.js.map +1 -0
- package/dist/src/mcp/types.d.ts +42 -0
- package/dist/src/mcp/types.d.ts.map +1 -0
- package/dist/src/mcp/types.js +2 -0
- package/dist/src/mcp/types.js.map +1 -0
- package/dist/src/optimization/CompactionService.d.ts +10 -0
- package/dist/src/optimization/CompactionService.d.ts.map +1 -0
- package/dist/src/optimization/CompactionService.js +82 -0
- package/dist/src/optimization/CompactionService.js.map +1 -0
- package/dist/src/optimization/CompressionService.d.ts +18 -0
- package/dist/src/optimization/CompressionService.d.ts.map +1 -0
- package/dist/src/optimization/CompressionService.js +95 -0
- package/dist/src/optimization/CompressionService.js.map +1 -0
- package/dist/src/optimization/PerformanceMonitor.d.ts +22 -0
- package/dist/src/optimization/PerformanceMonitor.d.ts.map +1 -0
- package/dist/src/optimization/PerformanceMonitor.js +90 -0
- package/dist/src/optimization/PerformanceMonitor.js.map +1 -0
- package/dist/src/optimization/PruningService.d.ts +5 -0
- package/dist/src/optimization/PruningService.d.ts.map +1 -0
- package/dist/src/optimization/PruningService.js +59 -0
- package/dist/src/optimization/PruningService.js.map +1 -0
- package/dist/src/optimization/types.d.ts +49 -0
- package/dist/src/optimization/types.d.ts.map +1 -0
- package/dist/src/optimization/types.js +2 -0
- package/dist/src/optimization/types.js.map +1 -0
- package/dist/src/plugins/base/Plugin.d.ts +17 -0
- package/dist/src/plugins/base/Plugin.d.ts.map +1 -0
- package/dist/src/plugins/base/Plugin.js +19 -0
- package/dist/src/plugins/base/Plugin.js.map +1 -0
- package/dist/src/plugins/builtin/LoggerPlugin.d.ts +13 -0
- package/dist/src/plugins/builtin/LoggerPlugin.d.ts.map +1 -0
- package/dist/src/plugins/builtin/LoggerPlugin.js +19 -0
- package/dist/src/plugins/builtin/LoggerPlugin.js.map +1 -0
- package/dist/src/plugins/builtin/PerformancePlugin.d.ts +16 -0
- package/dist/src/plugins/builtin/PerformancePlugin.d.ts.map +1 -0
- package/dist/src/plugins/builtin/PerformancePlugin.js +50 -0
- package/dist/src/plugins/builtin/PerformancePlugin.js.map +1 -0
- package/dist/src/plugins/builtin/SecurityPlugin.d.ts +18 -0
- package/dist/src/plugins/builtin/SecurityPlugin.d.ts.map +1 -0
- package/dist/src/plugins/builtin/SecurityPlugin.js +42 -0
- package/dist/src/plugins/builtin/SecurityPlugin.js.map +1 -0
- package/dist/src/server/HTTPServer.d.ts +25 -0
- package/dist/src/server/HTTPServer.d.ts.map +1 -0
- package/dist/src/server/HTTPServer.js +231 -0
- package/dist/src/server/HTTPServer.js.map +1 -0
- package/dist/src/server/WebSocketServer.d.ts +16 -0
- package/dist/src/server/WebSocketServer.d.ts.map +1 -0
- package/dist/src/server/WebSocketServer.js +118 -0
- package/dist/src/server/WebSocketServer.js.map +1 -0
- package/dist/src/services/ConfigService.d.ts +23 -0
- package/dist/src/services/ConfigService.d.ts.map +1 -0
- package/dist/src/services/ConfigService.js +169 -0
- package/dist/src/services/ConfigService.js.map +1 -0
- package/dist/src/services/EventBus.d.ts +12 -0
- package/dist/src/services/EventBus.d.ts.map +1 -0
- package/dist/src/services/EventBus.js +63 -0
- package/dist/src/services/EventBus.js.map +1 -0
- package/dist/src/services/ModelService.d.ts +24 -0
- package/dist/src/services/ModelService.d.ts.map +1 -0
- package/dist/src/services/ModelService.js +188 -0
- package/dist/src/services/ModelService.js.map +1 -0
- package/dist/src/services/Paths.d.ts +17 -0
- package/dist/src/services/Paths.d.ts.map +1 -0
- package/dist/src/services/Paths.js +125 -0
- package/dist/src/services/Paths.js.map +1 -0
- package/dist/src/services/SessionService.d.ts +19 -0
- package/dist/src/services/SessionService.d.ts.map +1 -0
- package/dist/src/services/SessionService.js +137 -0
- package/dist/src/services/SessionService.js.map +1 -0
- package/dist/src/snapshot/FileHistory.d.ts +18 -0
- package/dist/src/snapshot/FileHistory.d.ts.map +1 -0
- package/dist/src/snapshot/FileHistory.js +118 -0
- package/dist/src/snapshot/FileHistory.js.map +1 -0
- package/dist/src/snapshot/types.d.ts +19 -0
- package/dist/src/snapshot/types.d.ts.map +1 -0
- package/dist/src/snapshot/types.js +2 -0
- package/dist/src/snapshot/types.js.map +1 -0
- package/dist/src/specs/types.d.ts +54 -0
- package/dist/src/specs/types.d.ts.map +1 -0
- package/dist/src/specs/types.js +8 -0
- package/dist/src/specs/types.js.map +1 -0
- package/dist/src/specs/utils/generator.d.ts +4 -0
- package/dist/src/specs/utils/generator.d.ts.map +1 -0
- package/dist/src/specs/utils/generator.js +106 -0
- package/dist/src/specs/utils/generator.js.map +1 -0
- package/dist/src/specs/utils/parser.d.ts +3 -0
- package/dist/src/specs/utils/parser.d.ts.map +1 -0
- package/dist/src/specs/utils/parser.js +152 -0
- package/dist/src/specs/utils/parser.js.map +1 -0
- package/dist/src/styles/base/OutputStyle.d.ts +15 -0
- package/dist/src/styles/base/OutputStyle.d.ts.map +1 -0
- package/dist/src/styles/base/OutputStyle.js +16 -0
- package/dist/src/styles/base/OutputStyle.js.map +1 -0
- package/dist/src/styles/builtin/index.d.ts +8 -0
- package/dist/src/styles/builtin/index.d.ts.map +1 -0
- package/dist/src/styles/builtin/index.js +61 -0
- package/dist/src/styles/builtin/index.js.map +1 -0
- package/dist/src/styles/managers/OutputStyleManager.d.ts +20 -0
- package/dist/src/styles/managers/OutputStyleManager.d.ts.map +1 -0
- package/dist/src/styles/managers/OutputStyleManager.js +110 -0
- package/dist/src/styles/managers/OutputStyleManager.js.map +1 -0
- package/dist/src/styles/utils/markdown.d.ts +18 -0
- package/dist/src/styles/utils/markdown.d.ts.map +1 -0
- package/dist/src/styles/utils/markdown.js +107 -0
- package/dist/src/styles/utils/markdown.js.map +1 -0
- package/dist/src/tools/base/Tool.d.ts +17 -0
- package/dist/src/tools/base/Tool.d.ts.map +1 -0
- package/dist/src/tools/base/Tool.js +31 -0
- package/dist/src/tools/base/Tool.js.map +1 -0
- package/dist/src/tools/code/EditCodeTool.d.ts +50 -0
- package/dist/src/tools/code/EditCodeTool.d.ts.map +1 -0
- package/dist/src/tools/code/EditCodeTool.js +38 -0
- package/dist/src/tools/code/EditCodeTool.js.map +1 -0
- package/dist/src/tools/file/DeleteFileTool.d.ts +18 -0
- package/dist/src/tools/file/DeleteFileTool.d.ts.map +1 -0
- package/dist/src/tools/file/DeleteFileTool.js +45 -0
- package/dist/src/tools/file/DeleteFileTool.js.map +1 -0
- package/dist/src/tools/file/EditFileTool.d.ts +24 -0
- package/dist/src/tools/file/EditFileTool.d.ts.map +1 -0
- package/dist/src/tools/file/EditFileTool.js +53 -0
- package/dist/src/tools/file/EditFileTool.js.map +1 -0
- package/dist/src/tools/file/ListFilesTool.d.ts +29 -0
- package/dist/src/tools/file/ListFilesTool.d.ts.map +1 -0
- package/dist/src/tools/file/ListFilesTool.js +34 -0
- package/dist/src/tools/file/ListFilesTool.js.map +1 -0
- package/dist/src/tools/file/ReadFileTool.d.ts +25 -0
- package/dist/src/tools/file/ReadFileTool.d.ts.map +1 -0
- package/dist/src/tools/file/ReadFileTool.js +38 -0
- package/dist/src/tools/file/ReadFileTool.js.map +1 -0
- package/dist/src/tools/file/WriteFileTool.d.ts +30 -0
- package/dist/src/tools/file/WriteFileTool.d.ts.map +1 -0
- package/dist/src/tools/file/WriteFileTool.js +39 -0
- package/dist/src/tools/file/WriteFileTool.js.map +1 -0
- package/dist/src/tools/interactive/AskUserTool.d.ts +18 -0
- package/dist/src/tools/interactive/AskUserTool.d.ts.map +1 -0
- package/dist/src/tools/interactive/AskUserTool.js +43 -0
- package/dist/src/tools/interactive/AskUserTool.js.map +1 -0
- package/dist/src/tools/interactive/ConfirmTool.d.ts +18 -0
- package/dist/src/tools/interactive/ConfirmTool.d.ts.map +1 -0
- package/dist/src/tools/interactive/ConfirmTool.js +53 -0
- package/dist/src/tools/interactive/ConfirmTool.js.map +1 -0
- package/dist/src/tools/network/FetchTool.d.ts +24 -0
- package/dist/src/tools/network/FetchTool.d.ts.map +1 -0
- package/dist/src/tools/network/FetchTool.js +56 -0
- package/dist/src/tools/network/FetchTool.js.map +1 -0
- package/dist/src/tools/network/WebSearchTool.d.ts +20 -0
- package/dist/src/tools/network/WebSearchTool.d.ts.map +1 -0
- package/dist/src/tools/network/WebSearchTool.js +69 -0
- package/dist/src/tools/network/WebSearchTool.js.map +1 -0
- package/dist/src/tools/search/GlobTool.d.ts +20 -0
- package/dist/src/tools/search/GlobTool.d.ts.map +1 -0
- package/dist/src/tools/search/GlobTool.js +62 -0
- package/dist/src/tools/search/GlobTool.js.map +1 -0
- package/dist/src/tools/search/GrepTool.d.ts +26 -0
- package/dist/src/tools/search/GrepTool.d.ts.map +1 -0
- package/dist/src/tools/search/GrepTool.js +97 -0
- package/dist/src/tools/search/GrepTool.js.map +1 -0
- package/dist/src/tools/spec/SpecReadTool.d.ts +16 -0
- package/dist/src/tools/spec/SpecReadTool.d.ts.map +1 -0
- package/dist/src/tools/spec/SpecReadTool.js +79 -0
- package/dist/src/tools/spec/SpecReadTool.js.map +1 -0
- package/dist/src/tools/spec/SpecUpdateTaskTool.d.ts +23 -0
- package/dist/src/tools/spec/SpecUpdateTaskTool.d.ts.map +1 -0
- package/dist/src/tools/spec/SpecUpdateTaskTool.js +42 -0
- package/dist/src/tools/spec/SpecUpdateTaskTool.js.map +1 -0
- package/dist/src/tools/special/ExitPlanTool.d.ts +15 -0
- package/dist/src/tools/special/ExitPlanTool.d.ts.map +1 -0
- package/dist/src/tools/special/ExitPlanTool.js +32 -0
- package/dist/src/tools/special/ExitPlanTool.js.map +1 -0
- package/dist/src/tools/special/SkillTool.d.ts +19 -0
- package/dist/src/tools/special/SkillTool.d.ts.map +1 -0
- package/dist/src/tools/special/SkillTool.js +45 -0
- package/dist/src/tools/special/SkillTool.js.map +1 -0
- package/dist/src/tools/system/BashTool.d.ts +18 -0
- package/dist/src/tools/system/BashTool.d.ts.map +1 -0
- package/dist/src/tools/system/BashTool.js +29 -0
- package/dist/src/tools/system/BashTool.js.map +1 -0
- package/dist/src/tools/system/EnvTool.d.ts +15 -0
- package/dist/src/tools/system/EnvTool.d.ts.map +1 -0
- package/dist/src/tools/system/EnvTool.js +47 -0
- package/dist/src/tools/system/EnvTool.js.map +1 -0
- package/dist/src/tools/system/ExecTool.d.ts +21 -0
- package/dist/src/tools/system/ExecTool.d.ts.map +1 -0
- package/dist/src/tools/system/ExecTool.js +41 -0
- package/dist/src/tools/system/ExecTool.js.map +1 -0
- package/dist/src/tools/task/TaskTool.d.ts +34 -0
- package/dist/src/tools/task/TaskTool.d.ts.map +1 -0
- package/dist/src/tools/task/TaskTool.js +105 -0
- package/dist/src/tools/task/TaskTool.js.map +1 -0
- package/dist/src/tools/task/TodoReadTool.d.ts +16 -0
- package/dist/src/tools/task/TodoReadTool.d.ts.map +1 -0
- package/dist/src/tools/task/TodoReadTool.js +43 -0
- package/dist/src/tools/task/TodoReadTool.js.map +1 -0
- package/dist/src/tools/task/TodoWriteTool.d.ts +25 -0
- package/dist/src/tools/task/TodoWriteTool.d.ts.map +1 -0
- package/dist/src/tools/task/TodoWriteTool.js +82 -0
- package/dist/src/tools/task/TodoWriteTool.js.map +1 -0
- package/dist/src/types/index.d.ts +175 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/types/index.js +31 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/ui/App.d.ts +8 -0
- package/dist/src/ui/App.d.ts.map +1 -0
- package/dist/src/ui/App.js +100 -0
- package/dist/src/ui/App.js.map +1 -0
- package/dist/src/ui/components/MessageList.d.ts +8 -0
- package/dist/src/ui/components/MessageList.d.ts.map +1 -0
- package/dist/src/ui/components/MessageList.js +13 -0
- package/dist/src/ui/components/MessageList.js.map +1 -0
- package/dist/src/ui/components/SessionList.d.ts +10 -0
- package/dist/src/ui/components/SessionList.d.ts.map +1 -0
- package/dist/src/ui/components/SessionList.js +23 -0
- package/dist/src/ui/components/SessionList.js.map +1 -0
- package/dist/src/ui/context/AppContext.d.ts +18 -0
- package/dist/src/ui/context/AppContext.d.ts.map +1 -0
- package/dist/src/ui/context/AppContext.js +22 -0
- package/dist/src/ui/context/AppContext.js.map +1 -0
- package/dist/src/ui/hooks/useSession.d.ts +6 -0
- package/dist/src/ui/hooks/useSession.d.ts.map +1 -0
- package/dist/src/ui/hooks/useSession.js +59 -0
- package/dist/src/ui/hooks/useSession.js.map +1 -0
- package/dist/src/utils/calculator.d.ts +3 -0
- package/dist/src/utils/calculator.d.ts.map +1 -0
- package/dist/src/utils/calculator.js +13 -0
- package/dist/src/utils/calculator.js.map +1 -0
- package/dist/src/utils/firstRun.d.ts +4 -0
- package/dist/src/utils/firstRun.d.ts.map +1 -0
- package/dist/src/utils/firstRun.js +32 -0
- package/dist/src/utils/firstRun.js.map +1 -0
- package/dist/src/utils/math.d.ts +2 -0
- package/dist/src/utils/math.d.ts.map +1 -0
- package/dist/src/utils/math.js +4 -0
- package/dist/src/utils/math.js.map +1 -0
- package/dist/src/utils/setup.d.ts +2 -0
- package/dist/src/utils/setup.d.ts.map +1 -0
- package/dist/src/utils/setup.js +87 -0
- package/dist/src/utils/setup.js.map +1 -0
- package/dist/src/utils/tokenCounter.d.ts +4 -0
- package/dist/src/utils/tokenCounter.d.ts.map +1 -0
- package/dist/src/utils/tokenCounter.js +27 -0
- package/dist/src/utils/tokenCounter.js.map +1 -0
- package/dist/tests/integration/agents.test.d.ts +2 -0
- package/dist/tests/integration/agents.test.d.ts.map +1 -0
- package/dist/tests/integration/agents.test.js +34 -0
- package/dist/tests/integration/agents.test.js.map +1 -0
- package/dist/tests/integration/cli.test.d.ts +2 -0
- package/dist/tests/integration/cli.test.d.ts.map +1 -0
- package/dist/tests/integration/cli.test.js +70 -0
- package/dist/tests/integration/cli.test.js.map +1 -0
- package/dist/tests/integration/commands.test.d.ts +2 -0
- package/dist/tests/integration/commands.test.d.ts.map +1 -0
- package/dist/tests/integration/commands.test.js +35 -0
- package/dist/tests/integration/commands.test.js.map +1 -0
- package/dist/tests/integration/mcp.test.d.ts +2 -0
- package/dist/tests/integration/mcp.test.d.ts.map +1 -0
- package/dist/tests/integration/mcp.test.js +44 -0
- package/dist/tests/integration/mcp.test.js.map +1 -0
- package/dist/tests/integration/output-styles.test.d.ts +2 -0
- package/dist/tests/integration/output-styles.test.d.ts.map +1 -0
- package/dist/tests/integration/output-styles.test.js +88 -0
- package/dist/tests/integration/output-styles.test.js.map +1 -0
- package/dist/tests/integration/plugins.test.d.ts +2 -0
- package/dist/tests/integration/plugins.test.d.ts.map +1 -0
- package/dist/tests/integration/plugins.test.js +42 -0
- package/dist/tests/integration/plugins.test.js.map +1 -0
- package/dist/tests/integration/specs.test.d.ts +2 -0
- package/dist/tests/integration/specs.test.d.ts.map +1 -0
- package/dist/tests/integration/specs.test.js +102 -0
- package/dist/tests/integration/specs.test.js.map +1 -0
- package/dist/tests/integration/ui.test.d.ts +2 -0
- package/dist/tests/integration/ui.test.d.ts.map +1 -0
- package/dist/tests/integration/ui.test.js +71 -0
- package/dist/tests/integration/ui.test.js.map +1 -0
- package/dist/tests/mocks/mock-mcp-server.d.ts +3 -0
- package/dist/tests/mocks/mock-mcp-server.d.ts.map +1 -0
- package/dist/tests/mocks/mock-mcp-server.js +127 -0
- package/dist/tests/mocks/mock-mcp-server.js.map +1 -0
- package/dist/tests/unit/application/Application.test.d.ts +2 -0
- package/dist/tests/unit/application/Application.test.d.ts.map +1 -0
- package/dist/tests/unit/application/Application.test.js +21 -0
- package/dist/tests/unit/application/Application.test.js.map +1 -0
- package/dist/tests/unit/application/Container.test.d.ts +2 -0
- package/dist/tests/unit/application/Container.test.d.ts.map +1 -0
- package/dist/tests/unit/application/Container.test.js +38 -0
- package/dist/tests/unit/application/Container.test.js.map +1 -0
- package/dist/tests/unit/code/CodeEditor.test.d.ts +2 -0
- package/dist/tests/unit/code/CodeEditor.test.d.ts.map +1 -0
- package/dist/tests/unit/code/CodeEditor.test.js +56 -0
- package/dist/tests/unit/code/CodeEditor.test.js.map +1 -0
- package/dist/tests/unit/code/CodeLocator.test.d.ts +2 -0
- package/dist/tests/unit/code/CodeLocator.test.d.ts.map +1 -0
- package/dist/tests/unit/code/CodeLocator.test.js +50 -0
- package/dist/tests/unit/code/CodeLocator.test.js.map +1 -0
- package/dist/tests/unit/code/CodeParser.test.d.ts +2 -0
- package/dist/tests/unit/code/CodeParser.test.d.ts.map +1 -0
- package/dist/tests/unit/code/CodeParser.test.js +27 -0
- package/dist/tests/unit/code/CodeParser.test.js.map +1 -0
- package/dist/tests/unit/managers/AgentManager.test.d.ts +2 -0
- package/dist/tests/unit/managers/AgentManager.test.d.ts.map +1 -0
- package/dist/tests/unit/managers/AgentManager.test.js +68 -0
- package/dist/tests/unit/managers/AgentManager.test.js.map +1 -0
- package/dist/tests/unit/managers/PluginManager.test.d.ts +2 -0
- package/dist/tests/unit/managers/PluginManager.test.d.ts.map +1 -0
- package/dist/tests/unit/managers/PluginManager.test.js +76 -0
- package/dist/tests/unit/managers/PluginManager.test.js.map +1 -0
- package/dist/tests/unit/managers/SlashCommandManager.test.d.ts +2 -0
- package/dist/tests/unit/managers/SlashCommandManager.test.d.ts.map +1 -0
- package/dist/tests/unit/managers/SlashCommandManager.test.js +47 -0
- package/dist/tests/unit/managers/SlashCommandManager.test.js.map +1 -0
- package/dist/tests/unit/managers/SpecManager.test.d.ts +2 -0
- package/dist/tests/unit/managers/SpecManager.test.d.ts.map +1 -0
- package/dist/tests/unit/managers/SpecManager.test.js +97 -0
- package/dist/tests/unit/managers/SpecManager.test.js.map +1 -0
- package/dist/tests/unit/managers/ToolManager.test.d.ts +2 -0
- package/dist/tests/unit/managers/ToolManager.test.d.ts.map +1 -0
- package/dist/tests/unit/managers/ToolManager.test.js +69 -0
- package/dist/tests/unit/managers/ToolManager.test.js.map +1 -0
- package/dist/tests/unit/mcp/MCPClient.test.d.ts +2 -0
- package/dist/tests/unit/mcp/MCPClient.test.d.ts.map +1 -0
- package/dist/tests/unit/mcp/MCPClient.test.js +40 -0
- package/dist/tests/unit/mcp/MCPClient.test.js.map +1 -0
- package/dist/tests/unit/services/ConfigService.test.d.ts +2 -0
- package/dist/tests/unit/services/ConfigService.test.d.ts.map +1 -0
- package/dist/tests/unit/services/ConfigService.test.js +104 -0
- package/dist/tests/unit/services/ConfigService.test.js.map +1 -0
- package/dist/tests/unit/services/EventBus.test.d.ts +2 -0
- package/dist/tests/unit/services/EventBus.test.d.ts.map +1 -0
- package/dist/tests/unit/services/EventBus.test.js +117 -0
- package/dist/tests/unit/services/EventBus.test.js.map +1 -0
- package/dist/tests/unit/services/ModelService.test.d.ts +2 -0
- package/dist/tests/unit/services/ModelService.test.d.ts.map +1 -0
- package/dist/tests/unit/services/ModelService.test.js +63 -0
- package/dist/tests/unit/services/ModelService.test.js.map +1 -0
- package/dist/tests/unit/services/Paths.test.d.ts +2 -0
- package/dist/tests/unit/services/Paths.test.d.ts.map +1 -0
- package/dist/tests/unit/services/Paths.test.js +33 -0
- package/dist/tests/unit/services/Paths.test.js.map +1 -0
- package/dist/tests/unit/services/SessionService.test.d.ts +2 -0
- package/dist/tests/unit/services/SessionService.test.d.ts.map +1 -0
- package/dist/tests/unit/services/SessionService.test.js +80 -0
- package/dist/tests/unit/services/SessionService.test.js.map +1 -0
- package/dist/tests/unit/snapshot/FileHistory.test.d.ts +2 -0
- package/dist/tests/unit/snapshot/FileHistory.test.d.ts.map +1 -0
- package/dist/tests/unit/snapshot/FileHistory.test.js +101 -0
- package/dist/tests/unit/snapshot/FileHistory.test.js.map +1 -0
- package/dist/tests/unit/specs/generator.test.d.ts +2 -0
- package/dist/tests/unit/specs/generator.test.d.ts.map +1 -0
- package/dist/tests/unit/specs/generator.test.js +70 -0
- package/dist/tests/unit/specs/generator.test.js.map +1 -0
- package/dist/tests/unit/specs/parser.test.d.ts +2 -0
- package/dist/tests/unit/specs/parser.test.d.ts.map +1 -0
- package/dist/tests/unit/specs/parser.test.js +85 -0
- package/dist/tests/unit/specs/parser.test.js.map +1 -0
- package/dist/tests/unit/styles/OutputStyle.test.d.ts +2 -0
- package/dist/tests/unit/styles/OutputStyle.test.d.ts.map +1 -0
- package/dist/tests/unit/styles/OutputStyle.test.js +33 -0
- package/dist/tests/unit/styles/OutputStyle.test.js.map +1 -0
- package/dist/tests/unit/styles/OutputStyleManager.test.d.ts +2 -0
- package/dist/tests/unit/styles/OutputStyleManager.test.d.ts.map +1 -0
- package/dist/tests/unit/styles/OutputStyleManager.test.js +75 -0
- package/dist/tests/unit/styles/OutputStyleManager.test.js.map +1 -0
- package/dist/tests/unit/tools/BashTool.test.d.ts +2 -0
- package/dist/tests/unit/tools/BashTool.test.d.ts.map +1 -0
- package/dist/tests/unit/tools/BashTool.test.js +35 -0
- package/dist/tests/unit/tools/BashTool.test.js.map +1 -0
- package/dist/tests/unit/tools/EditFileTool.test.d.ts +2 -0
- package/dist/tests/unit/tools/EditFileTool.test.d.ts.map +1 -0
- package/dist/tests/unit/tools/EditFileTool.test.js +48 -0
- package/dist/tests/unit/tools/EditFileTool.test.js.map +1 -0
- package/dist/tests/unit/tools/GrepTool.test.d.ts +2 -0
- package/dist/tests/unit/tools/GrepTool.test.d.ts.map +1 -0
- package/dist/tests/unit/tools/GrepTool.test.js +46 -0
- package/dist/tests/unit/tools/GrepTool.test.js.map +1 -0
- package/dist/tests/unit/tools/ListFilesTool.test.d.ts +2 -0
- package/dist/tests/unit/tools/ListFilesTool.test.d.ts.map +1 -0
- package/dist/tests/unit/tools/ListFilesTool.test.js +58 -0
- package/dist/tests/unit/tools/ListFilesTool.test.js.map +1 -0
- package/dist/tests/unit/tools/ReadFileTool.test.d.ts +2 -0
- package/dist/tests/unit/tools/ReadFileTool.test.d.ts.map +1 -0
- package/dist/tests/unit/tools/ReadFileTool.test.js +42 -0
- package/dist/tests/unit/tools/ReadFileTool.test.js.map +1 -0
- package/dist/tests/unit/tools/TodoWriteTool.test.d.ts +2 -0
- package/dist/tests/unit/tools/TodoWriteTool.test.d.ts.map +1 -0
- package/dist/tests/unit/tools/TodoWriteTool.test.js +54 -0
- package/dist/tests/unit/tools/TodoWriteTool.test.js.map +1 -0
- package/dist/tests/unit/tools/WriteFileTool.test.d.ts +2 -0
- package/dist/tests/unit/tools/WriteFileTool.test.d.ts.map +1 -0
- package/dist/tests/unit/tools/WriteFileTool.test.js +69 -0
- package/dist/tests/unit/tools/WriteFileTool.test.js.map +1 -0
- package/dist/tests/unit/ui/App.test.d.ts +2 -0
- package/dist/tests/unit/ui/App.test.d.ts.map +1 -0
- package/dist/tests/unit/ui/App.test.js +46 -0
- package/dist/tests/unit/ui/App.test.js.map +1 -0
- package/dist/tests/unit/ui/AppContext.test.d.ts +2 -0
- package/dist/tests/unit/ui/AppContext.test.d.ts.map +1 -0
- package/dist/tests/unit/ui/AppContext.test.js +39 -0
- package/dist/tests/unit/ui/AppContext.test.js.map +1 -0
- package/dist/tests/unit/ui/MessageList.test.d.ts +2 -0
- package/dist/tests/unit/ui/MessageList.test.d.ts.map +1 -0
- package/dist/tests/unit/ui/MessageList.test.js +23 -0
- package/dist/tests/unit/ui/MessageList.test.js.map +1 -0
- package/dist/tests/unit/ui/SessionList.test.d.ts +2 -0
- package/dist/tests/unit/ui/SessionList.test.d.ts.map +1 -0
- package/dist/tests/unit/ui/SessionList.test.js +49 -0
- package/dist/tests/unit/ui/SessionList.test.js.map +1 -0
- package/package.json +84 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
export class PerformanceMonitor {
|
|
2
|
+
metrics = {
|
|
3
|
+
totalRequests: 0,
|
|
4
|
+
totalInputTokens: 0,
|
|
5
|
+
totalOutputTokens: 0,
|
|
6
|
+
totalCacheReadTokens: 0,
|
|
7
|
+
totalCacheWriteTokens: 0,
|
|
8
|
+
cacheHitRate: 0,
|
|
9
|
+
averageResponseTime: 0,
|
|
10
|
+
pruneCount: 0,
|
|
11
|
+
compactionCount: 0,
|
|
12
|
+
};
|
|
13
|
+
responseTimes = [];
|
|
14
|
+
recordRequest(data) {
|
|
15
|
+
this.metrics.totalRequests++;
|
|
16
|
+
this.metrics.totalInputTokens += data.inputTokens;
|
|
17
|
+
this.metrics.totalOutputTokens += data.outputTokens;
|
|
18
|
+
this.metrics.totalCacheReadTokens += data.cacheReadTokens || 0;
|
|
19
|
+
this.metrics.totalCacheWriteTokens += data.cacheWriteTokens || 0;
|
|
20
|
+
this.responseTimes.push(data.responseTime);
|
|
21
|
+
const totalCacheableTokens = this.metrics.totalCacheReadTokens + this.metrics.totalCacheWriteTokens;
|
|
22
|
+
if (totalCacheableTokens > 0) {
|
|
23
|
+
this.metrics.cacheHitRate = this.metrics.totalCacheReadTokens / totalCacheableTokens;
|
|
24
|
+
}
|
|
25
|
+
this.metrics.averageResponseTime =
|
|
26
|
+
this.responseTimes.reduce((a, b) => a + b, 0) / this.responseTimes.length;
|
|
27
|
+
}
|
|
28
|
+
recordOptimization(data) {
|
|
29
|
+
if (data.pruned) {
|
|
30
|
+
this.metrics.pruneCount++;
|
|
31
|
+
}
|
|
32
|
+
if (data.compacted) {
|
|
33
|
+
this.metrics.compactionCount++;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
getMetrics() {
|
|
37
|
+
return { ...this.metrics };
|
|
38
|
+
}
|
|
39
|
+
generateReport() {
|
|
40
|
+
const m = this.metrics;
|
|
41
|
+
const totalTokens = m.totalInputTokens + m.totalOutputTokens;
|
|
42
|
+
const savedTokens = m.totalCacheReadTokens;
|
|
43
|
+
const savingsRate = totalTokens > 0 ? (savedTokens / totalTokens) * 100 : 0;
|
|
44
|
+
return `
|
|
45
|
+
📊 性能报告
|
|
46
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
47
|
+
|
|
48
|
+
请求统计:
|
|
49
|
+
总请求数:${m.totalRequests}
|
|
50
|
+
平均响应时间:${m.averageResponseTime.toFixed(0)}ms
|
|
51
|
+
|
|
52
|
+
Token 使用:
|
|
53
|
+
输入 Token:${m.totalInputTokens.toLocaleString()}
|
|
54
|
+
输出 Token:${m.totalOutputTokens.toLocaleString()}
|
|
55
|
+
总计:${totalTokens.toLocaleString()}
|
|
56
|
+
|
|
57
|
+
缓存统计:
|
|
58
|
+
缓存读取:${m.totalCacheReadTokens.toLocaleString()} tokens
|
|
59
|
+
缓存写入:${m.totalCacheWriteTokens.toLocaleString()} tokens
|
|
60
|
+
缓存命中率:${(m.cacheHitRate * 100).toFixed(1)}%
|
|
61
|
+
节省比例:${savingsRate.toFixed(1)}%
|
|
62
|
+
|
|
63
|
+
优化统计:
|
|
64
|
+
剪枝次数:${m.pruneCount}
|
|
65
|
+
压缩次数:${m.compactionCount}
|
|
66
|
+
|
|
67
|
+
成本估算(Claude 3.5 Sonnet):
|
|
68
|
+
输入成本:$${((m.totalInputTokens / 1000000) * 3).toFixed(4)}
|
|
69
|
+
输出成本:$${((m.totalOutputTokens / 1000000) * 15).toFixed(4)}
|
|
70
|
+
总成本:$${((m.totalInputTokens / 1000000) * 3 + (m.totalOutputTokens / 1000000) * 15).toFixed(4)}
|
|
71
|
+
节省成本:$${((savedTokens / 1000000) * 3).toFixed(4)}
|
|
72
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
73
|
+
`.trim();
|
|
74
|
+
}
|
|
75
|
+
reset() {
|
|
76
|
+
this.metrics = {
|
|
77
|
+
totalRequests: 0,
|
|
78
|
+
totalInputTokens: 0,
|
|
79
|
+
totalOutputTokens: 0,
|
|
80
|
+
totalCacheReadTokens: 0,
|
|
81
|
+
totalCacheWriteTokens: 0,
|
|
82
|
+
cacheHitRate: 0,
|
|
83
|
+
averageResponseTime: 0,
|
|
84
|
+
pruneCount: 0,
|
|
85
|
+
compactionCount: 0,
|
|
86
|
+
};
|
|
87
|
+
this.responseTimes = [];
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=PerformanceMonitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PerformanceMonitor.js","sourceRoot":"","sources":["../../../src/optimization/PerformanceMonitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PruningService.d.ts","sourceRoot":"","sources":["../../../src/optimization/PruningService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAW9D,qBAAa,cAAc;IAIzB,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,iBAAiB,GAAG,WAAW;CA+E/D"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { countTokens } from '../utils/tokenCounter';
|
|
2
|
+
export class PruningService {
|
|
3
|
+
prune(messages, config) {
|
|
4
|
+
if (!config.pruning.enabled) {
|
|
5
|
+
return { pruned: false, prunedCount: 0, prunedTokens: 0 };
|
|
6
|
+
}
|
|
7
|
+
const { protectThreshold, minimumPrune, protectedTools, protectTurns } = config.pruning;
|
|
8
|
+
let totalTokens = 0;
|
|
9
|
+
let prunedTokens = 0;
|
|
10
|
+
const toPrune = [];
|
|
11
|
+
let turns = 0;
|
|
12
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
13
|
+
const msg = messages[i];
|
|
14
|
+
if (msg.role === 'user') {
|
|
15
|
+
turns++;
|
|
16
|
+
}
|
|
17
|
+
if (msg.role === 'tool' && Array.isArray(msg.content)) {
|
|
18
|
+
if (turns < protectTurns) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
for (const part of msg.content) {
|
|
22
|
+
if (part.type !== 'tool-result')
|
|
23
|
+
continue;
|
|
24
|
+
if (protectedTools.includes(part.toolName)) {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
if (part.pruned) {
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
const resultContent = typeof part.result?.llmContent === 'string'
|
|
31
|
+
? part.result.llmContent
|
|
32
|
+
: JSON.stringify(part.result?.llmContent || '');
|
|
33
|
+
const tokenEstimate = countTokens(resultContent);
|
|
34
|
+
totalTokens += tokenEstimate;
|
|
35
|
+
if (totalTokens > protectThreshold) {
|
|
36
|
+
prunedTokens += tokenEstimate;
|
|
37
|
+
toPrune.push(part);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (prunedTokens > minimumPrune) {
|
|
43
|
+
for (const part of toPrune) {
|
|
44
|
+
part.pruned = true;
|
|
45
|
+
part.prunedAt = Date.now();
|
|
46
|
+
if (part.result) {
|
|
47
|
+
part.result = {
|
|
48
|
+
...part.result,
|
|
49
|
+
llmContent: `[Output pruned at ${new Date(part.prunedAt).toISOString()}]`,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
console.log(`[Pruning] Pruned ${toPrune.length} tool outputs, ~${prunedTokens} tokens`);
|
|
54
|
+
return { pruned: true, prunedCount: toPrune.length, prunedTokens };
|
|
55
|
+
}
|
|
56
|
+
return { pruned: false, prunedCount: 0, prunedTokens: 0 };
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=PruningService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PruningService.js","sourceRoot":"","sources":["../../../src/optimization/PruningService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAUpD,MAAM,OAAO,cAAc;IAIzB,KAAK,CAAC,QAAe,EAAE,MAAyB;QAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC5B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;QAC5D,CAAC;QAED,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;QAExF,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,MAAM,OAAO,GAAU,EAAE,CAAC;QAC1B,IAAI,KAAK,GAAG,CAAC,CAAC;QAGd,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAGxB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACxB,KAAK,EAAE,CAAC;YACV,CAAC;YAGD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAEtD,IAAI,KAAK,GAAG,YAAY,EAAE,CAAC;oBACzB,SAAS;gBACX,CAAC;gBAED,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa;wBAAE,SAAS;oBAG1C,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC3C,SAAS;oBACX,CAAC;oBAGD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;wBAChB,MAAM;oBACR,CAAC;oBAGD,MAAM,aAAa,GACjB,OAAO,IAAI,CAAC,MAAM,EAAE,UAAU,KAAK,QAAQ;wBACzC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;wBACxB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;oBACpD,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;oBACjD,WAAW,IAAI,aAAa,CAAC;oBAG7B,IAAI,WAAW,GAAG,gBAAgB,EAAE,CAAC;wBACnC,YAAY,IAAI,aAAa,CAAC;wBAC9B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAGD,IAAI,YAAY,GAAG,YAAY,EAAE,CAAC;YAChC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAE3B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,IAAI,CAAC,MAAM,GAAG;wBACZ,GAAG,IAAI,CAAC,MAAM;wBACd,UAAU,EAAE,qBAAqB,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,GAAG;qBAC1E,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,oBAAoB,OAAO,CAAC,MAAM,mBAAmB,YAAY,SAAS,CAAC,CAAC;YAExF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC;QACrE,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IAC5D,CAAC;CACF"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export interface TokenUsage {
|
|
2
|
+
input: number;
|
|
3
|
+
output: number;
|
|
4
|
+
cacheRead?: number;
|
|
5
|
+
cacheWrite?: number;
|
|
6
|
+
}
|
|
7
|
+
export interface ModelLimit {
|
|
8
|
+
context: number;
|
|
9
|
+
output: number;
|
|
10
|
+
input?: number;
|
|
11
|
+
}
|
|
12
|
+
export interface CompressionConfig {
|
|
13
|
+
compaction: {
|
|
14
|
+
auto: boolean;
|
|
15
|
+
outputTokenMax: number;
|
|
16
|
+
autoContinue: boolean;
|
|
17
|
+
triggerRatio: number;
|
|
18
|
+
};
|
|
19
|
+
pruning: {
|
|
20
|
+
enabled: boolean;
|
|
21
|
+
protectThreshold: number;
|
|
22
|
+
minimumPrune: number;
|
|
23
|
+
protectedTools: string[];
|
|
24
|
+
protectTurns: number;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export interface PruneResult {
|
|
28
|
+
pruned: boolean;
|
|
29
|
+
prunedCount: number;
|
|
30
|
+
prunedTokens: number;
|
|
31
|
+
}
|
|
32
|
+
export interface CompactionResult {
|
|
33
|
+
compacted: boolean;
|
|
34
|
+
originalTokens: number;
|
|
35
|
+
compactedTokens: number;
|
|
36
|
+
summary: string;
|
|
37
|
+
}
|
|
38
|
+
export interface PerformanceMetrics {
|
|
39
|
+
totalRequests: number;
|
|
40
|
+
totalInputTokens: number;
|
|
41
|
+
totalOutputTokens: number;
|
|
42
|
+
totalCacheReadTokens: number;
|
|
43
|
+
totalCacheWriteTokens: number;
|
|
44
|
+
cacheHitRate: number;
|
|
45
|
+
averageResponseTime: number;
|
|
46
|
+
pruneCount: number;
|
|
47
|
+
compactionCount: number;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/optimization/types.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAKD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE;QACV,IAAI,EAAE,OAAO,CAAC;QACd,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,OAAO,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,OAAO,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,gBAAgB,EAAE,MAAM,CAAC;QACzB,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAKD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAKD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAKD,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/optimization/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Application } from '../../application/Application';
|
|
2
|
+
import type { Tool } from '../../tools/base/Tool';
|
|
3
|
+
export declare abstract class Plugin {
|
|
4
|
+
abstract name: string;
|
|
5
|
+
abstract version: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
onLoad(_app: Application): Promise<void>;
|
|
8
|
+
onUnload(_app: Application): Promise<void>;
|
|
9
|
+
onToolBefore(_tool: Tool, _input: any): Promise<void>;
|
|
10
|
+
onToolAfter(_tool: Tool, _result: any): Promise<void>;
|
|
11
|
+
getInfo(): {
|
|
12
|
+
name: string;
|
|
13
|
+
version: string;
|
|
14
|
+
description?: string;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=Plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/base/Plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAYlD,8BAAsB,MAAM;IAM1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAOtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAKzB,WAAW,CAAC,EAAE,MAAM,CAAC;IAYf,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxC,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB1C,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBrD,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3D,OAAO,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;CAOnE"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export class Plugin {
|
|
2
|
+
description;
|
|
3
|
+
async onLoad(_app) {
|
|
4
|
+
}
|
|
5
|
+
async onUnload(_app) {
|
|
6
|
+
}
|
|
7
|
+
async onToolBefore(_tool, _input) {
|
|
8
|
+
}
|
|
9
|
+
async onToolAfter(_tool, _result) {
|
|
10
|
+
}
|
|
11
|
+
getInfo() {
|
|
12
|
+
return {
|
|
13
|
+
name: this.name,
|
|
14
|
+
version: this.version,
|
|
15
|
+
description: this.description,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=Plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Plugin.js","sourceRoot":"","sources":["../../../../src/plugins/base/Plugin.ts"],"names":[],"mappings":"AAaA,MAAM,OAAgB,MAAM;IAkB1B,WAAW,CAAU;IAYrB,KAAK,CAAC,MAAM,CAAC,IAAiB;IAE9B,CAAC;IAYD,KAAK,CAAC,QAAQ,CAAC,IAAiB;IAEhC,CAAC;IAcD,KAAK,CAAC,YAAY,CAAC,KAAW,EAAE,MAAW;IAE3C,CAAC;IAcD,KAAK,CAAC,WAAW,CAAC,KAAW,EAAE,OAAY;IAE3C,CAAC;IAOD,OAAO;QACL,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Plugin } from '../base/Plugin';
|
|
2
|
+
import type { Application } from '../../application/Application';
|
|
3
|
+
import type { Tool } from '../../tools/base/Tool';
|
|
4
|
+
export declare class LoggerPlugin extends Plugin {
|
|
5
|
+
name: string;
|
|
6
|
+
version: string;
|
|
7
|
+
description: string;
|
|
8
|
+
onLoad(_app: Application): Promise<void>;
|
|
9
|
+
onUnload(_app: Application): Promise<void>;
|
|
10
|
+
onToolBefore(tool: Tool, input: any): Promise<void>;
|
|
11
|
+
onToolAfter(tool: Tool, result: any): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=LoggerPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoggerPlugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/builtin/LoggerPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAUlD,qBAAa,YAAa,SAAQ,MAAM;IACtC,IAAI,SAAY;IAChB,OAAO,SAAW;IAClB,WAAW,SAAyB;IAE9B,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAG1D"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Plugin } from '../base/Plugin';
|
|
2
|
+
export class LoggerPlugin extends Plugin {
|
|
3
|
+
name = 'logger';
|
|
4
|
+
version = '1.0.0';
|
|
5
|
+
description = 'Log tool executions';
|
|
6
|
+
async onLoad(_app) {
|
|
7
|
+
console.log('[Logger] Plugin loaded');
|
|
8
|
+
}
|
|
9
|
+
async onUnload(_app) {
|
|
10
|
+
console.log('[Logger] Plugin unloaded');
|
|
11
|
+
}
|
|
12
|
+
async onToolBefore(tool, input) {
|
|
13
|
+
console.log(`[Logger] Tool ${tool.name} called with:`, JSON.stringify(input, null, 2));
|
|
14
|
+
}
|
|
15
|
+
async onToolAfter(tool, result) {
|
|
16
|
+
console.log(`[Logger] Tool ${tool.name} returned:`, JSON.stringify(result, null, 2));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=LoggerPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoggerPlugin.js","sourceRoot":"","sources":["../../../../src/plugins/builtin/LoggerPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAYxC,MAAM,OAAO,YAAa,SAAQ,MAAM;IACtC,IAAI,GAAG,QAAQ,CAAC;IAChB,OAAO,GAAG,OAAO,CAAC;IAClB,WAAW,GAAG,qBAAqB,CAAC;IAEpC,KAAK,CAAC,MAAM,CAAC,IAAiB;QAC5B,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAiB;QAC9B,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAU,EAAE,KAAU;QACvC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,IAAI,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAU,EAAE,MAAW;QACvC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,IAAI,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACvF,CAAC;CACF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Plugin } from '../base/Plugin';
|
|
2
|
+
import type { Application } from '../../application/Application';
|
|
3
|
+
import type { Tool } from '../../tools/base/Tool';
|
|
4
|
+
export declare class PerformancePlugin extends Plugin {
|
|
5
|
+
name: string;
|
|
6
|
+
version: string;
|
|
7
|
+
description: string;
|
|
8
|
+
private startTimes;
|
|
9
|
+
private stats;
|
|
10
|
+
onLoad(_app: Application): Promise<void>;
|
|
11
|
+
onUnload(_app: Application): Promise<void>;
|
|
12
|
+
onToolBefore(tool: Tool, _input: any): Promise<void>;
|
|
13
|
+
onToolAfter(tool: Tool, _result: any): Promise<void>;
|
|
14
|
+
private printStats;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=PerformancePlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PerformancePlugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/builtin/PerformancePlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAUlD,qBAAa,iBAAkB,SAAQ,MAAM;IAC3C,IAAI,SAAiB;IACrB,OAAO,SAAW;IAClB,WAAW,SAA8B;IAKzC,OAAO,CAAC,UAAU,CAA6B;IAK/C,OAAO,CAAC,KAAK,CAOT;IAEE,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1C,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpD,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B1D,OAAO,CAAC,UAAU;CAenB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Plugin } from '../base/Plugin';
|
|
2
|
+
export class PerformancePlugin extends Plugin {
|
|
3
|
+
name = 'performance';
|
|
4
|
+
version = '1.0.0';
|
|
5
|
+
description = 'Monitor tool performance';
|
|
6
|
+
startTimes = new Map();
|
|
7
|
+
stats = new Map();
|
|
8
|
+
async onLoad(_app) {
|
|
9
|
+
console.log('[Performance] Plugin loaded');
|
|
10
|
+
}
|
|
11
|
+
async onUnload(_app) {
|
|
12
|
+
console.log('[Performance] Plugin unloaded');
|
|
13
|
+
this.printStats();
|
|
14
|
+
}
|
|
15
|
+
async onToolBefore(tool, _input) {
|
|
16
|
+
this.startTimes.set(tool.name, Date.now());
|
|
17
|
+
}
|
|
18
|
+
async onToolAfter(tool, _result) {
|
|
19
|
+
const startTime = this.startTimes.get(tool.name);
|
|
20
|
+
if (!startTime)
|
|
21
|
+
return;
|
|
22
|
+
const duration = Date.now() - startTime;
|
|
23
|
+
this.startTimes.delete(tool.name);
|
|
24
|
+
const stat = this.stats.get(tool.name) || {
|
|
25
|
+
count: 0,
|
|
26
|
+
totalTime: 0,
|
|
27
|
+
avgTime: 0,
|
|
28
|
+
};
|
|
29
|
+
stat.count++;
|
|
30
|
+
stat.totalTime += duration;
|
|
31
|
+
stat.avgTime = stat.totalTime / stat.count;
|
|
32
|
+
this.stats.set(tool.name, stat);
|
|
33
|
+
console.log(`[Performance] ${tool.name} took ${duration}ms`);
|
|
34
|
+
}
|
|
35
|
+
printStats() {
|
|
36
|
+
if (this.stats.size === 0) {
|
|
37
|
+
console.log('[Performance] No statistics available');
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
console.log('\n[Performance] Statistics:');
|
|
41
|
+
for (const [name, stat] of this.stats.entries()) {
|
|
42
|
+
console.log(` ${name}:`);
|
|
43
|
+
console.log(` Calls: ${stat.count}`);
|
|
44
|
+
console.log(` Total: ${stat.totalTime}ms`);
|
|
45
|
+
console.log(` Avg: ${stat.avgTime.toFixed(2)}ms`);
|
|
46
|
+
}
|
|
47
|
+
console.log('');
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=PerformancePlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PerformancePlugin.js","sourceRoot":"","sources":["../../../../src/plugins/builtin/PerformancePlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAYxC,MAAM,OAAO,iBAAkB,SAAQ,MAAM;IAC3C,IAAI,GAAG,aAAa,CAAC;IACrB,OAAO,GAAG,OAAO,CAAC;IAClB,WAAW,GAAG,0BAA0B,CAAC;IAKjC,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAKvC,KAAK,GAAG,IAAI,GAAG,EAOpB,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,IAAiB;QAC5B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAiB;QAC9B,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAU,EAAE,MAAW;QAExC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAU,EAAE,OAAY;QAExC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAGlC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACxC,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;SACX,CAAC;QAEF,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAE3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEhC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,IAAI,SAAS,QAAQ,IAAI,CAAC,CAAC;IAC/D,CAAC;IAKO,UAAU;QAChB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;CACF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Plugin } from '../base/Plugin';
|
|
2
|
+
import type { Application } from '../../application/Application';
|
|
3
|
+
import type { Tool } from '../../tools/base/Tool';
|
|
4
|
+
export declare class SecurityPlugin extends Plugin {
|
|
5
|
+
name: string;
|
|
6
|
+
version: string;
|
|
7
|
+
description: string;
|
|
8
|
+
private dangerousTools;
|
|
9
|
+
private strictMode;
|
|
10
|
+
constructor(strictMode?: boolean);
|
|
11
|
+
onLoad(_app: Application): Promise<void>;
|
|
12
|
+
onUnload(_app: Application): Promise<void>;
|
|
13
|
+
onToolBefore(tool: Tool, input: any): Promise<void>;
|
|
14
|
+
onToolAfter(tool: Tool, _result: any): Promise<void>;
|
|
15
|
+
addDangerousTool(toolName: string): void;
|
|
16
|
+
removeDangerousTool(toolName: string): void;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=SecurityPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SecurityPlugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/builtin/SecurityPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAUlD,qBAAa,cAAe,SAAQ,MAAM;IACxC,IAAI,SAAc;IAClB,OAAO,SAAW;IAClB,WAAW,SAAyC;IAKpD,OAAO,CAAC,cAAc,CAA4C;IAKlE,OAAO,CAAC,UAAU,CAAS;gBAEf,UAAU,UAAQ;IAKxB,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxC,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAenD,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1D,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQxC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;CAI5C"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Plugin } from '../base/Plugin';
|
|
2
|
+
export class SecurityPlugin extends Plugin {
|
|
3
|
+
name = 'security';
|
|
4
|
+
version = '1.0.0';
|
|
5
|
+
description = 'Security checks for tool executions';
|
|
6
|
+
dangerousTools = new Set(['bash', 'exec', 'delete_file']);
|
|
7
|
+
strictMode = false;
|
|
8
|
+
constructor(strictMode = false) {
|
|
9
|
+
super();
|
|
10
|
+
this.strictMode = strictMode;
|
|
11
|
+
}
|
|
12
|
+
async onLoad(_app) {
|
|
13
|
+
console.log('[Security] Plugin loaded');
|
|
14
|
+
console.log(`[Security] Strict mode: ${this.strictMode ? 'ON' : 'OFF'}`);
|
|
15
|
+
}
|
|
16
|
+
async onUnload(_app) {
|
|
17
|
+
console.log('[Security] Plugin unloaded');
|
|
18
|
+
}
|
|
19
|
+
async onToolBefore(tool, input) {
|
|
20
|
+
if (this.dangerousTools.has(tool.name)) {
|
|
21
|
+
console.warn(`[Security] ⚠️ Dangerous tool detected: ${tool.name}`);
|
|
22
|
+
if (this.strictMode) {
|
|
23
|
+
throw new Error(`[Security] Tool ${tool.name} is blocked in strict mode`);
|
|
24
|
+
}
|
|
25
|
+
console.log(`[Security] Tool ${tool.name} called with:`, input);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
async onToolAfter(tool, _result) {
|
|
29
|
+
if (this.dangerousTools.has(tool.name)) {
|
|
30
|
+
console.log(`[Security] Tool ${tool.name} executed successfully`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
addDangerousTool(toolName) {
|
|
34
|
+
this.dangerousTools.add(toolName);
|
|
35
|
+
console.log(`[Security] Added dangerous tool: ${toolName}`);
|
|
36
|
+
}
|
|
37
|
+
removeDangerousTool(toolName) {
|
|
38
|
+
this.dangerousTools.delete(toolName);
|
|
39
|
+
console.log(`[Security] Removed dangerous tool: ${toolName}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=SecurityPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SecurityPlugin.js","sourceRoot":"","sources":["../../../../src/plugins/builtin/SecurityPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAYxC,MAAM,OAAO,cAAe,SAAQ,MAAM;IACxC,IAAI,GAAG,UAAU,CAAC;IAClB,OAAO,GAAG,OAAO,CAAC;IAClB,WAAW,GAAG,qCAAqC,CAAC;IAK5C,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAK1D,UAAU,GAAG,KAAK,CAAC;IAE3B,YAAY,UAAU,GAAG,KAAK;QAC5B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAiB;QAC5B,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAiB;QAC9B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAU,EAAE,KAAU;QAEvC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,2CAA2C,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAGrE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,IAAI,4BAA4B,CAAC,CAAC;YAC5E,CAAC;YAGD,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,IAAI,eAAe,EAAE,KAAK,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAU,EAAE,OAAY;QAExC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,IAAI,wBAAwB,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAKD,gBAAgB,CAAC,QAAgB;QAC/B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,oCAAoC,QAAQ,EAAE,CAAC,CAAC;IAC9D,CAAC;IAKD,mBAAmB,CAAC,QAAgB;QAClC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,sCAAsC,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC;CACF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type Server } from 'node:http';
|
|
2
|
+
import type { Application } from '../application/Application';
|
|
3
|
+
export declare class HTTPServer {
|
|
4
|
+
private app;
|
|
5
|
+
private server;
|
|
6
|
+
private application;
|
|
7
|
+
private port;
|
|
8
|
+
constructor(application: Application, port?: number);
|
|
9
|
+
private setupMiddleware;
|
|
10
|
+
private setupRoutes;
|
|
11
|
+
private createAPIRouter;
|
|
12
|
+
private getSessions;
|
|
13
|
+
private createSession;
|
|
14
|
+
private getSession;
|
|
15
|
+
private deleteSession;
|
|
16
|
+
private getMessages;
|
|
17
|
+
private sendMessage;
|
|
18
|
+
private getConfig;
|
|
19
|
+
private updateConfig;
|
|
20
|
+
private getTools;
|
|
21
|
+
start(): Promise<void>;
|
|
22
|
+
stop(): Promise<void>;
|
|
23
|
+
getServer(): Server | null;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=HTTPServer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HTTPServer.d.ts","sourceRoot":"","sources":["../../../src/server/HTTPServer.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAa9D,qBAAa,UAAU;IACrB,OAAO,CAAC,GAAG,CAAU;IACrB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,IAAI,CAAS;gBAET,WAAW,EAAE,WAAW,EAAE,IAAI,SAAO;IAYjD,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,eAAe;YA0BT,WAAW;YAoBX,aAAa;YAqBb,UAAU;YA6BV,aAAa;YAoBb,WAAW;YA6BX,WAAW;YAUX,SAAS;YAoBT,YAAY;YAqBZ,QAAQ;IAoBhB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IActB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB3B,SAAS,IAAI,MAAM,GAAG,IAAI;CAG3B"}
|