@nexus-cortex/executors 4.26.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 +202 -0
- package/NOTICE +2 -0
- package/README.md +13 -0
- package/dist/ExecutorRegistry.d.ts +89 -0
- package/dist/ExecutorRegistry.d.ts.map +1 -0
- package/dist/ExecutorRegistry.js +219 -0
- package/dist/ExecutorRegistry.js.map +1 -0
- package/dist/base/BaseTool.d.ts +108 -0
- package/dist/base/BaseTool.d.ts.map +1 -0
- package/dist/base/BaseTool.js +111 -0
- package/dist/base/BaseTool.js.map +1 -0
- package/dist/base/ToolRegistry.d.ts +141 -0
- package/dist/base/ToolRegistry.d.ts.map +1 -0
- package/dist/base/ToolRegistry.js +241 -0
- package/dist/base/ToolRegistry.js.map +1 -0
- package/dist/base/ToolResult.d.ts +63 -0
- package/dist/base/ToolResult.d.ts.map +1 -0
- package/dist/base/ToolResult.js +8 -0
- package/dist/base/ToolResult.js.map +1 -0
- package/dist/base/index.d.ts +10 -0
- package/dist/base/index.d.ts.map +1 -0
- package/dist/base/index.js +8 -0
- package/dist/base/index.js.map +1 -0
- package/dist/implementations/addon/CreateArtifactTool.d.ts +221 -0
- package/dist/implementations/addon/CreateArtifactTool.d.ts.map +1 -0
- package/dist/implementations/addon/CreateArtifactTool.js +1042 -0
- package/dist/implementations/addon/CreateArtifactTool.js.map +1 -0
- package/dist/implementations/addon/FrameDiffCache.d.ts +166 -0
- package/dist/implementations/addon/FrameDiffCache.d.ts.map +1 -0
- package/dist/implementations/addon/FrameDiffCache.js +395 -0
- package/dist/implementations/addon/FrameDiffCache.js.map +1 -0
- package/dist/implementations/addon/H264StreamEncoder.d.ts +84 -0
- package/dist/implementations/addon/H264StreamEncoder.d.ts.map +1 -0
- package/dist/implementations/addon/H264StreamEncoder.js +203 -0
- package/dist/implementations/addon/H264StreamEncoder.js.map +1 -0
- package/dist/implementations/addon/HybridScreenshotManager.d.ts +197 -0
- package/dist/implementations/addon/HybridScreenshotManager.d.ts.map +1 -0
- package/dist/implementations/addon/HybridScreenshotManager.js +415 -0
- package/dist/implementations/addon/HybridScreenshotManager.js.map +1 -0
- package/dist/implementations/addon/InspectSandboxTool.d.ts +54 -0
- package/dist/implementations/addon/InspectSandboxTool.d.ts.map +1 -0
- package/dist/implementations/addon/InspectSandboxTool.js +226 -0
- package/dist/implementations/addon/InspectSandboxTool.js.map +1 -0
- package/dist/implementations/addon/InteractWithSandboxTool.d.ts +90 -0
- package/dist/implementations/addon/InteractWithSandboxTool.d.ts.map +1 -0
- package/dist/implementations/addon/InteractWithSandboxTool.js +367 -0
- package/dist/implementations/addon/InteractWithSandboxTool.js.map +1 -0
- package/dist/implementations/addon/KeyframeDetector.d.ts +140 -0
- package/dist/implementations/addon/KeyframeDetector.d.ts.map +1 -0
- package/dist/implementations/addon/KeyframeDetector.js +390 -0
- package/dist/implementations/addon/KeyframeDetector.js.map +1 -0
- package/dist/implementations/addon/ModifySandboxTool.d.ts +62 -0
- package/dist/implementations/addon/ModifySandboxTool.d.ts.map +1 -0
- package/dist/implementations/addon/ModifySandboxTool.js +266 -0
- package/dist/implementations/addon/ModifySandboxTool.js.map +1 -0
- package/dist/implementations/addon/ReactArtifactBuilder.d.ts +27 -0
- package/dist/implementations/addon/ReactArtifactBuilder.d.ts.map +1 -0
- package/dist/implementations/addon/ReactArtifactBuilder.js +198 -0
- package/dist/implementations/addon/ReactArtifactBuilder.js.map +1 -0
- package/dist/implementations/addon/SandboxEventBroadcaster.d.ts +143 -0
- package/dist/implementations/addon/SandboxEventBroadcaster.d.ts.map +1 -0
- package/dist/implementations/addon/SandboxEventBroadcaster.js +258 -0
- package/dist/implementations/addon/SandboxEventBroadcaster.js.map +1 -0
- package/dist/implementations/addon/SandboxIntrospectionTools.d.ts +77 -0
- package/dist/implementations/addon/SandboxIntrospectionTools.d.ts.map +1 -0
- package/dist/implementations/addon/SandboxIntrospectionTools.js +292 -0
- package/dist/implementations/addon/SandboxIntrospectionTools.js.map +1 -0
- package/dist/implementations/addon/SandboxViewServer.d.ts +127 -0
- package/dist/implementations/addon/SandboxViewServer.d.ts.map +1 -0
- package/dist/implementations/addon/SandboxViewServer.js +775 -0
- package/dist/implementations/addon/SandboxViewServer.js.map +1 -0
- package/dist/implementations/addon/ScreenStream.d.ts +149 -0
- package/dist/implementations/addon/ScreenStream.d.ts.map +1 -0
- package/dist/implementations/addon/ScreenStream.js +306 -0
- package/dist/implementations/addon/ScreenStream.js.map +1 -0
- package/dist/implementations/addon/StopSandboxTool.d.ts +61 -0
- package/dist/implementations/addon/StopSandboxTool.d.ts.map +1 -0
- package/dist/implementations/addon/StopSandboxTool.js +252 -0
- package/dist/implementations/addon/StopSandboxTool.js.map +1 -0
- package/dist/implementations/addon/TerminalSandbox.d.ts +111 -0
- package/dist/implementations/addon/TerminalSandbox.d.ts.map +1 -0
- package/dist/implementations/addon/TerminalSandbox.js +345 -0
- package/dist/implementations/addon/TerminalSandbox.js.map +1 -0
- package/dist/implementations/addon/VisualFeedbackBridge.d.ts +367 -0
- package/dist/implementations/addon/VisualFeedbackBridge.d.ts.map +1 -0
- package/dist/implementations/addon/VisualFeedbackBridge.js +888 -0
- package/dist/implementations/addon/VisualFeedbackBridge.js.map +1 -0
- package/dist/implementations/addon/WindowManager.d.ts +138 -0
- package/dist/implementations/addon/WindowManager.d.ts.map +1 -0
- package/dist/implementations/addon/WindowManager.js +276 -0
- package/dist/implementations/addon/WindowManager.js.map +1 -0
- package/dist/implementations/addon/index.d.ts +29 -0
- package/dist/implementations/addon/index.d.ts.map +1 -0
- package/dist/implementations/addon/index.js +29 -0
- package/dist/implementations/addon/index.js.map +1 -0
- package/dist/implementations/addon/injectables/reactIntrospection.d.ts +57 -0
- package/dist/implementations/addon/injectables/reactIntrospection.d.ts.map +1 -0
- package/dist/implementations/addon/injectables/reactIntrospection.js +480 -0
- package/dist/implementations/addon/injectables/reactIntrospection.js.map +1 -0
- package/dist/implementations/addon/terminal-client.html +253 -0
- package/dist/implementations/agent/PRAgentTool.d.ts +37 -0
- package/dist/implementations/agent/PRAgentTool.d.ts.map +1 -0
- package/dist/implementations/agent/PRAgentTool.js +257 -0
- package/dist/implementations/agent/PRAgentTool.js.map +1 -0
- package/dist/implementations/agent/TaskTool.d.ts +76 -0
- package/dist/implementations/agent/TaskTool.d.ts.map +1 -0
- package/dist/implementations/agent/TaskTool.js +424 -0
- package/dist/implementations/agent/TaskTool.js.map +1 -0
- package/dist/implementations/agent/index.d.ts +5 -0
- package/dist/implementations/agent/index.d.ts.map +1 -0
- package/dist/implementations/agent/index.js +3 -0
- package/dist/implementations/agent/index.js.map +1 -0
- package/dist/implementations/execution/BackgroundProcessRegistry.d.ts +68 -0
- package/dist/implementations/execution/BackgroundProcessRegistry.d.ts.map +1 -0
- package/dist/implementations/execution/BackgroundProcessRegistry.js +146 -0
- package/dist/implementations/execution/BackgroundProcessRegistry.js.map +1 -0
- package/dist/implementations/execution/BashOutputTool.d.ts +42 -0
- package/dist/implementations/execution/BashOutputTool.d.ts.map +1 -0
- package/dist/implementations/execution/BashOutputTool.js +168 -0
- package/dist/implementations/execution/BashOutputTool.js.map +1 -0
- package/dist/implementations/execution/CodeExecuteTool.d.ts +31 -0
- package/dist/implementations/execution/CodeExecuteTool.d.ts.map +1 -0
- package/dist/implementations/execution/CodeExecuteTool.js +127 -0
- package/dist/implementations/execution/CodeExecuteTool.js.map +1 -0
- package/dist/implementations/execution/KillShellTool.d.ts +37 -0
- package/dist/implementations/execution/KillShellTool.d.ts.map +1 -0
- package/dist/implementations/execution/KillShellTool.js +144 -0
- package/dist/implementations/execution/KillShellTool.js.map +1 -0
- package/dist/implementations/execution/SearchToolsTool.d.ts +32 -0
- package/dist/implementations/execution/SearchToolsTool.d.ts.map +1 -0
- package/dist/implementations/execution/SearchToolsTool.js +109 -0
- package/dist/implementations/execution/SearchToolsTool.js.map +1 -0
- package/dist/implementations/execution/ShellTool.d.ts +108 -0
- package/dist/implementations/execution/ShellTool.d.ts.map +1 -0
- package/dist/implementations/execution/ShellTool.js +546 -0
- package/dist/implementations/execution/ShellTool.js.map +1 -0
- package/dist/implementations/execution/WorkspaceManagerTool.d.ts +40 -0
- package/dist/implementations/execution/WorkspaceManagerTool.d.ts.map +1 -0
- package/dist/implementations/execution/WorkspaceManagerTool.js +370 -0
- package/dist/implementations/execution/WorkspaceManagerTool.js.map +1 -0
- package/dist/implementations/execution/index.d.ts +13 -0
- package/dist/implementations/execution/index.d.ts.map +1 -0
- package/dist/implementations/execution/index.js +13 -0
- package/dist/implementations/execution/index.js.map +1 -0
- package/dist/implementations/extensions/EndTurnTool.d.ts +62 -0
- package/dist/implementations/extensions/EndTurnTool.d.ts.map +1 -0
- package/dist/implementations/extensions/EndTurnTool.js +172 -0
- package/dist/implementations/extensions/EndTurnTool.js.map +1 -0
- package/dist/implementations/extensions/ResearchBacklogTool.d.ts +37 -0
- package/dist/implementations/extensions/ResearchBacklogTool.d.ts.map +1 -0
- package/dist/implementations/extensions/ResearchBacklogTool.js +102 -0
- package/dist/implementations/extensions/ResearchBacklogTool.js.map +1 -0
- package/dist/implementations/extensions/SkillTool.d.ts +108 -0
- package/dist/implementations/extensions/SkillTool.d.ts.map +1 -0
- package/dist/implementations/extensions/SkillTool.js +351 -0
- package/dist/implementations/extensions/SkillTool.js.map +1 -0
- package/dist/implementations/extensions/SlashCommandTool.d.ts +112 -0
- package/dist/implementations/extensions/SlashCommandTool.d.ts.map +1 -0
- package/dist/implementations/extensions/SlashCommandTool.js +315 -0
- package/dist/implementations/extensions/SlashCommandTool.js.map +1 -0
- package/dist/implementations/extensions/index.d.ts +14 -0
- package/dist/implementations/extensions/index.d.ts.map +1 -0
- package/dist/implementations/extensions/index.js +10 -0
- package/dist/implementations/extensions/index.js.map +1 -0
- package/dist/implementations/file/EditTool.d.ts +232 -0
- package/dist/implementations/file/EditTool.d.ts.map +1 -0
- package/dist/implementations/file/EditTool.js +707 -0
- package/dist/implementations/file/EditTool.js.map +1 -0
- package/dist/implementations/file/ReadFileTool.d.ts +49 -0
- package/dist/implementations/file/ReadFileTool.d.ts.map +1 -0
- package/dist/implementations/file/ReadFileTool.js +225 -0
- package/dist/implementations/file/ReadFileTool.js.map +1 -0
- package/dist/implementations/file/WriteBinaryTool.d.ts +21 -0
- package/dist/implementations/file/WriteBinaryTool.d.ts.map +1 -0
- package/dist/implementations/file/WriteBinaryTool.js +153 -0
- package/dist/implementations/file/WriteBinaryTool.js.map +1 -0
- package/dist/implementations/file/WriteFileTool.d.ts +41 -0
- package/dist/implementations/file/WriteFileTool.d.ts.map +1 -0
- package/dist/implementations/file/WriteFileTool.js +220 -0
- package/dist/implementations/file/WriteFileTool.js.map +1 -0
- package/dist/implementations/file/index.d.ts +8 -0
- package/dist/implementations/file/index.d.ts.map +1 -0
- package/dist/implementations/file/index.js +8 -0
- package/dist/implementations/file/index.js.map +1 -0
- package/dist/implementations/historical/GetConversationSegmentTool.d.ts +44 -0
- package/dist/implementations/historical/GetConversationSegmentTool.d.ts.map +1 -0
- package/dist/implementations/historical/GetConversationSegmentTool.js +220 -0
- package/dist/implementations/historical/GetConversationSegmentTool.js.map +1 -0
- package/dist/implementations/historical/ListCompactionBoundariesTool.d.ts +36 -0
- package/dist/implementations/historical/ListCompactionBoundariesTool.d.ts.map +1 -0
- package/dist/implementations/historical/ListCompactionBoundariesTool.js +174 -0
- package/dist/implementations/historical/ListCompactionBoundariesTool.js.map +1 -0
- package/dist/implementations/historical/ListSessionsTool.d.ts +38 -0
- package/dist/implementations/historical/ListSessionsTool.d.ts.map +1 -0
- package/dist/implementations/historical/ListSessionsTool.js +140 -0
- package/dist/implementations/historical/ListSessionsTool.js.map +1 -0
- package/dist/implementations/historical/LoadSessionTool.d.ts +39 -0
- package/dist/implementations/historical/LoadSessionTool.d.ts.map +1 -0
- package/dist/implementations/historical/LoadSessionTool.js +171 -0
- package/dist/implementations/historical/LoadSessionTool.js.map +1 -0
- package/dist/implementations/historical/RequestHistoricalContextTool.d.ts +46 -0
- package/dist/implementations/historical/RequestHistoricalContextTool.d.ts.map +1 -0
- package/dist/implementations/historical/RequestHistoricalContextTool.js +224 -0
- package/dist/implementations/historical/RequestHistoricalContextTool.js.map +1 -0
- package/dist/implementations/historical/SearchConversationHistoryTool.d.ts +51 -0
- package/dist/implementations/historical/SearchConversationHistoryTool.d.ts.map +1 -0
- package/dist/implementations/historical/SearchConversationHistoryTool.js +306 -0
- package/dist/implementations/historical/SearchConversationHistoryTool.js.map +1 -0
- package/dist/implementations/historical/index.d.ts +12 -0
- package/dist/implementations/historical/index.d.ts.map +1 -0
- package/dist/implementations/historical/index.js +12 -0
- package/dist/implementations/historical/index.js.map +1 -0
- package/dist/implementations/index.d.ts +16 -0
- package/dist/implementations/index.d.ts.map +1 -0
- package/dist/implementations/index.js +28 -0
- package/dist/implementations/index.js.map +1 -0
- package/dist/implementations/mcp/DiscoveredMcpTool.d.ts +58 -0
- package/dist/implementations/mcp/DiscoveredMcpTool.d.ts.map +1 -0
- package/dist/implementations/mcp/DiscoveredMcpTool.js +269 -0
- package/dist/implementations/mcp/DiscoveredMcpTool.js.map +1 -0
- package/dist/implementations/mcp/index.d.ts +9 -0
- package/dist/implementations/mcp/index.d.ts.map +1 -0
- package/dist/implementations/mcp/index.js +8 -0
- package/dist/implementations/mcp/index.js.map +1 -0
- package/dist/implementations/notebook/NotebookEditTool.d.ts +96 -0
- package/dist/implementations/notebook/NotebookEditTool.d.ts.map +1 -0
- package/dist/implementations/notebook/NotebookEditTool.js +390 -0
- package/dist/implementations/notebook/NotebookEditTool.js.map +1 -0
- package/dist/implementations/notebook/index.d.ts +7 -0
- package/dist/implementations/notebook/index.d.ts.map +1 -0
- package/dist/implementations/notebook/index.js +7 -0
- package/dist/implementations/notebook/index.js.map +1 -0
- package/dist/implementations/search/GlobTool.d.ts +73 -0
- package/dist/implementations/search/GlobTool.d.ts.map +1 -0
- package/dist/implementations/search/GlobTool.js +213 -0
- package/dist/implementations/search/GlobTool.js.map +1 -0
- package/dist/implementations/search/GrepTool.d.ts +102 -0
- package/dist/implementations/search/GrepTool.d.ts.map +1 -0
- package/dist/implementations/search/GrepTool.js +754 -0
- package/dist/implementations/search/GrepTool.js.map +1 -0
- package/dist/implementations/search/index.d.ts +6 -0
- package/dist/implementations/search/index.d.ts.map +1 -0
- package/dist/implementations/search/index.js +6 -0
- package/dist/implementations/search/index.js.map +1 -0
- package/dist/implementations/tmux/TmuxSessionTool.d.ts +82 -0
- package/dist/implementations/tmux/TmuxSessionTool.d.ts.map +1 -0
- package/dist/implementations/tmux/TmuxSessionTool.js +371 -0
- package/dist/implementations/tmux/TmuxSessionTool.js.map +1 -0
- package/dist/implementations/tmux/TmuxViewServer.d.ts +86 -0
- package/dist/implementations/tmux/TmuxViewServer.d.ts.map +1 -0
- package/dist/implementations/tmux/TmuxViewServer.js +480 -0
- package/dist/implementations/tmux/TmuxViewServer.js.map +1 -0
- package/dist/implementations/tmux/index.d.ts +6 -0
- package/dist/implementations/tmux/index.d.ts.map +1 -0
- package/dist/implementations/tmux/index.js +6 -0
- package/dist/implementations/tmux/index.js.map +1 -0
- package/dist/implementations/ui/AskUserQuestionTool.d.ts +77 -0
- package/dist/implementations/ui/AskUserQuestionTool.d.ts.map +1 -0
- package/dist/implementations/ui/AskUserQuestionTool.js +241 -0
- package/dist/implementations/ui/AskUserQuestionTool.js.map +1 -0
- package/dist/implementations/ui/ExitPlanModeTool.d.ts +44 -0
- package/dist/implementations/ui/ExitPlanModeTool.d.ts.map +1 -0
- package/dist/implementations/ui/ExitPlanModeTool.js +150 -0
- package/dist/implementations/ui/ExitPlanModeTool.js.map +1 -0
- package/dist/implementations/ui/TodoWriteTool.d.ts +59 -0
- package/dist/implementations/ui/TodoWriteTool.d.ts.map +1 -0
- package/dist/implementations/ui/TodoWriteTool.js +315 -0
- package/dist/implementations/ui/TodoWriteTool.js.map +1 -0
- package/dist/implementations/ui/index.d.ts +9 -0
- package/dist/implementations/ui/index.d.ts.map +1 -0
- package/dist/implementations/ui/index.js +9 -0
- package/dist/implementations/ui/index.js.map +1 -0
- package/dist/implementations/web/BrowseTool.d.ts +43 -0
- package/dist/implementations/web/BrowseTool.d.ts.map +1 -0
- package/dist/implementations/web/BrowseTool.js +181 -0
- package/dist/implementations/web/BrowseTool.js.map +1 -0
- package/dist/implementations/web/SandboxTransferTool.d.ts +30 -0
- package/dist/implementations/web/SandboxTransferTool.d.ts.map +1 -0
- package/dist/implementations/web/SandboxTransferTool.js +261 -0
- package/dist/implementations/web/SandboxTransferTool.js.map +1 -0
- package/dist/implementations/web/WebFetchTool.d.ts +93 -0
- package/dist/implementations/web/WebFetchTool.d.ts.map +1 -0
- package/dist/implementations/web/WebFetchTool.js +484 -0
- package/dist/implementations/web/WebFetchTool.js.map +1 -0
- package/dist/implementations/web/WebSearchTool.d.ts +53 -0
- package/dist/implementations/web/WebSearchTool.d.ts.map +1 -0
- package/dist/implementations/web/WebSearchTool.js +227 -0
- package/dist/implementations/web/WebSearchTool.js.map +1 -0
- package/dist/implementations/web/escalateDirective.d.ts +11 -0
- package/dist/implementations/web/escalateDirective.d.ts.map +1 -0
- package/dist/implementations/web/escalateDirective.js +20 -0
- package/dist/implementations/web/escalateDirective.js.map +1 -0
- package/dist/implementations/web/index.d.ts +10 -0
- package/dist/implementations/web/index.d.ts.map +1 -0
- package/dist/implementations/web/index.js +10 -0
- package/dist/implementations/web/index.js.map +1 -0
- package/dist/implementations/web/webBackends.d.ts +65 -0
- package/dist/implementations/web/webBackends.d.ts.map +1 -0
- package/dist/implementations/web/webBackends.js +430 -0
- package/dist/implementations/web/webBackends.js.map +1 -0
- package/dist/implementations/web/webFetchRequestInit.d.ts +9 -0
- package/dist/implementations/web/webFetchRequestInit.d.ts.map +1 -0
- package/dist/implementations/web/webFetchRequestInit.js +21 -0
- package/dist/implementations/web/webFetchRequestInit.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/ArtifactRegistry.d.ts +138 -0
- package/dist/utils/ArtifactRegistry.d.ts.map +1 -0
- package/dist/utils/ArtifactRegistry.js +259 -0
- package/dist/utils/ArtifactRegistry.js.map +1 -0
- package/dist/utils/ChromiumBrowserManager.d.ts +56 -0
- package/dist/utils/ChromiumBrowserManager.d.ts.map +1 -0
- package/dist/utils/ChromiumBrowserManager.js +243 -0
- package/dist/utils/ChromiumBrowserManager.js.map +1 -0
- package/dist/utils/FileUtils.d.ts +81 -0
- package/dist/utils/FileUtils.d.ts.map +1 -0
- package/dist/utils/FileUtils.js +148 -0
- package/dist/utils/FileUtils.js.map +1 -0
- package/dist/utils/GitPolicy.d.ts +70 -0
- package/dist/utils/GitPolicy.d.ts.map +1 -0
- package/dist/utils/GitPolicy.js +166 -0
- package/dist/utils/GitPolicy.js.map +1 -0
- package/dist/utils/GitUtils.d.ts +18 -0
- package/dist/utils/GitUtils.d.ts.map +1 -0
- package/dist/utils/GitUtils.js +62 -0
- package/dist/utils/GitUtils.js.map +1 -0
- package/dist/utils/SandboxRegistry.d.ts +110 -0
- package/dist/utils/SandboxRegistry.d.ts.map +1 -0
- package/dist/utils/SandboxRegistry.js +220 -0
- package/dist/utils/SandboxRegistry.js.map +1 -0
- package/dist/utils/SchemaValidator.d.ts +21 -0
- package/dist/utils/SchemaValidator.d.ts.map +1 -0
- package/dist/utils/SchemaValidator.js +67 -0
- package/dist/utils/SchemaValidator.js.map +1 -0
- package/dist/utils/SessionLock.d.ts +96 -0
- package/dist/utils/SessionLock.d.ts.map +1 -0
- package/dist/utils/SessionLock.js +276 -0
- package/dist/utils/SessionLock.js.map +1 -0
- package/dist/utils/SessionPersistence.d.ts +89 -0
- package/dist/utils/SessionPersistence.d.ts.map +1 -0
- package/dist/utils/SessionPersistence.js +244 -0
- package/dist/utils/SessionPersistence.js.map +1 -0
- package/dist/utils/TextUtils.d.ts +77 -0
- package/dist/utils/TextUtils.d.ts.map +1 -0
- package/dist/utils/TextUtils.js +112 -0
- package/dist/utils/TextUtils.js.map +1 -0
- package/dist/utils/TmuxCapture.d.ts +94 -0
- package/dist/utils/TmuxCapture.d.ts.map +1 -0
- package/dist/utils/TmuxCapture.js +131 -0
- package/dist/utils/TmuxCapture.js.map +1 -0
- package/dist/utils/TmuxManager.d.ts +65 -0
- package/dist/utils/TmuxManager.d.ts.map +1 -0
- package/dist/utils/TmuxManager.js +304 -0
- package/dist/utils/TmuxManager.js.map +1 -0
- package/dist/utils/autoResearchPlanGate.d.ts +10 -0
- package/dist/utils/autoResearchPlanGate.d.ts.map +1 -0
- package/dist/utils/autoResearchPlanGate.js +57 -0
- package/dist/utils/autoResearchPlanGate.js.map +1 -0
- package/dist/utils/index.d.ts +19 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +13 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +83 -0
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Glob Tool Executor
|
|
3
|
+
*
|
|
4
|
+
* Finds files matching glob patterns with modification time sorting.
|
|
5
|
+
* Fast pattern-based file discovery for large codebases.
|
|
6
|
+
*
|
|
7
|
+
* Adapted and simplified from Gemini CLI patterns
|
|
8
|
+
* - Removed: FileDiscovery service, git-ignore filtering
|
|
9
|
+
* - Kept: Core glob matching, modification time sorting, security
|
|
10
|
+
*/
|
|
11
|
+
import fs from 'fs';
|
|
12
|
+
import path from 'path';
|
|
13
|
+
import { glob } from 'glob';
|
|
14
|
+
import { BaseTool } from '../../base/index.js';
|
|
15
|
+
import { SchemaValidator } from '../../utils/SchemaValidator.js';
|
|
16
|
+
import { makeRelative, shortenPath, } from '../../utils/FileUtils.js';
|
|
17
|
+
/**
|
|
18
|
+
* Glob Tool Executor
|
|
19
|
+
*
|
|
20
|
+
* Features:
|
|
21
|
+
* - Fast pattern matching (e.g., star-star-slash-star.ts, src-star-star-slash-star.js)
|
|
22
|
+
* - Sorts results by modification time (newest first)
|
|
23
|
+
* - Then alphabetically for older files
|
|
24
|
+
* - Excludes node_modules and .git by default
|
|
25
|
+
* - Path normalization and security
|
|
26
|
+
*/
|
|
27
|
+
export class GlobTool extends BaseTool {
|
|
28
|
+
config;
|
|
29
|
+
// Recency threshold: 24 hours
|
|
30
|
+
RECENCY_THRESHOLD_MS = 24 * 60 * 60 * 1000;
|
|
31
|
+
// Default max results to prevent context overflow
|
|
32
|
+
static DEFAULT_MAX_RESULTS = 100;
|
|
33
|
+
constructor(config) {
|
|
34
|
+
super('Glob', 'FindFiles', `Efficiently finds files matching specific glob patterns (e.g., \`src/**/*.ts\`, \`**/*.md\`), returning absolute paths sorted by modification time (newest first). Ideal for quickly locating files based on their name or path structure, especially in large codebases.`, {
|
|
35
|
+
type: 'object',
|
|
36
|
+
properties: {
|
|
37
|
+
pattern: {
|
|
38
|
+
type: 'string',
|
|
39
|
+
description: "The glob pattern to match against (e.g., '**/*.py', 'docs/*.md'). Supports wildcards: * (matches any chars), ** (matches directories recursively), ? (matches single char), [...] (character ranges).",
|
|
40
|
+
},
|
|
41
|
+
path: {
|
|
42
|
+
type: 'string',
|
|
43
|
+
description: 'Optional: The directory to search within. Can be absolute or relative to working directory. If omitted, searches the working directory.',
|
|
44
|
+
},
|
|
45
|
+
case_sensitive: {
|
|
46
|
+
type: 'boolean',
|
|
47
|
+
description: 'Optional: Whether the search should be case-sensitive. Defaults to false (case-insensitive).',
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
required: ['pattern'],
|
|
51
|
+
});
|
|
52
|
+
this.config = config;
|
|
53
|
+
}
|
|
54
|
+
validateToolParams(params) {
|
|
55
|
+
// Schema validation
|
|
56
|
+
const schemaError = SchemaValidator.validate(this.parameterSchema, params);
|
|
57
|
+
if (schemaError) {
|
|
58
|
+
return schemaError;
|
|
59
|
+
}
|
|
60
|
+
// Validate pattern
|
|
61
|
+
if (!params.pattern || typeof params.pattern !== 'string' || params.pattern.trim() === '') {
|
|
62
|
+
return "The 'pattern' parameter cannot be empty.";
|
|
63
|
+
}
|
|
64
|
+
// Resolve search directory
|
|
65
|
+
const searchDirAbsolute = path.resolve(this.config.workingDirectory, params.path || '.');
|
|
66
|
+
// Path validation: allow any absolute path (matching standard absolute-path behavior),
|
|
67
|
+
// but reject root "/" to prevent full-filesystem scans that hang tool execution.
|
|
68
|
+
if (!path.isAbsolute(searchDirAbsolute)) {
|
|
69
|
+
return `Search path must resolve to an absolute path: ${searchDirAbsolute}`;
|
|
70
|
+
}
|
|
71
|
+
if (searchDirAbsolute === '/') {
|
|
72
|
+
return `Searching from "/" would scan the entire filesystem. Use "." for the project directory or provide a specific path.`;
|
|
73
|
+
}
|
|
74
|
+
// Check directory exists
|
|
75
|
+
try {
|
|
76
|
+
if (!fs.existsSync(searchDirAbsolute)) {
|
|
77
|
+
return `Search path does not exist: ${searchDirAbsolute}`;
|
|
78
|
+
}
|
|
79
|
+
if (!fs.statSync(searchDirAbsolute).isDirectory()) {
|
|
80
|
+
return `Search path is not a directory: ${searchDirAbsolute}`;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
return `Error accessing search path: ${error.message}`;
|
|
85
|
+
}
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
getDescription(params) {
|
|
89
|
+
if (!params || !params.pattern) {
|
|
90
|
+
return 'Find files';
|
|
91
|
+
}
|
|
92
|
+
let description = `'${params.pattern}'`;
|
|
93
|
+
if (params.path) {
|
|
94
|
+
const searchDir = path.resolve(this.config.workingDirectory, params.path || '.');
|
|
95
|
+
const relativePath = makeRelative(searchDir, this.config.workingDirectory);
|
|
96
|
+
description += ` in ${shortenPath(relativePath)}`;
|
|
97
|
+
}
|
|
98
|
+
return description;
|
|
99
|
+
}
|
|
100
|
+
async execute(params, signal, updateOutput) {
|
|
101
|
+
const startTime = Date.now();
|
|
102
|
+
// Validate parameters
|
|
103
|
+
const validationError = this.validateToolParams(params);
|
|
104
|
+
if (validationError) {
|
|
105
|
+
return this.createErrorResult(validationError);
|
|
106
|
+
}
|
|
107
|
+
try {
|
|
108
|
+
const searchDirAbsolute = path.resolve(this.config.workingDirectory, params.path || '.');
|
|
109
|
+
// Execute glob search
|
|
110
|
+
const entries = (await glob(params.pattern, {
|
|
111
|
+
cwd: searchDirAbsolute,
|
|
112
|
+
withFileTypes: true,
|
|
113
|
+
nodir: true, // Only files, no directories
|
|
114
|
+
stat: true, // Include file stats (for mtime)
|
|
115
|
+
nocase: !(params.case_sensitive ?? true),
|
|
116
|
+
dot: true, // Include dotfiles
|
|
117
|
+
ignore: ['**/node_modules/**', '**/.git/**'], // Exclude common directories
|
|
118
|
+
follow: false, // Don't follow symlinks
|
|
119
|
+
signal,
|
|
120
|
+
}));
|
|
121
|
+
// Check if any files found
|
|
122
|
+
if (!entries || entries.length === 0) {
|
|
123
|
+
const message = `No files found matching pattern "${params.pattern}" within ${searchDirAbsolute}.`;
|
|
124
|
+
return this.createSuccessResult(message, {
|
|
125
|
+
executionTime: Date.now() - startTime,
|
|
126
|
+
fileCount: 0,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
// Sort files by modification time
|
|
130
|
+
const sortedEntries = this.sortFilesByRecency(entries);
|
|
131
|
+
// Apply offset and limit for pagination
|
|
132
|
+
const offset = params.offset || 0;
|
|
133
|
+
const maxResults = params.limit === -1 ? Infinity : (params.limit || GlobTool.DEFAULT_MAX_RESULTS);
|
|
134
|
+
const totalCount = sortedEntries.length;
|
|
135
|
+
// Apply offset first, then limit
|
|
136
|
+
const afterOffset = sortedEntries.slice(offset);
|
|
137
|
+
const limitedEntries = afterOffset.slice(0, maxResults);
|
|
138
|
+
const hasMore = offset + limitedEntries.length < totalCount;
|
|
139
|
+
const remainingCount = totalCount - offset - limitedEntries.length;
|
|
140
|
+
// Get absolute paths
|
|
141
|
+
const sortedAbsolutePaths = limitedEntries.map((entry) => entry.fullpath());
|
|
142
|
+
const fileListDescription = sortedAbsolutePaths.join('\n');
|
|
143
|
+
const fileCount = sortedAbsolutePaths.length;
|
|
144
|
+
// Format result message with clear pagination guidance for the model
|
|
145
|
+
let resultMessage;
|
|
146
|
+
if (offset > 0 || hasMore) {
|
|
147
|
+
const rangeStart = offset + 1;
|
|
148
|
+
const rangeEnd = offset + fileCount;
|
|
149
|
+
resultMessage = `Found ${totalCount} file(s) matching "${params.pattern}" (showing ${rangeStart}-${rangeEnd}):\n${fileListDescription}`;
|
|
150
|
+
if (hasMore) {
|
|
151
|
+
const nextOffset = offset + fileCount;
|
|
152
|
+
resultMessage += `\n\n[TRUNCATED] ${remainingCount} more files available. To see next page, call Glob again with offset=${nextOffset}`;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
resultMessage = `Found ${fileCount} file(s) matching "${params.pattern}" within ${searchDirAbsolute}, sorted by modification time (newest first):\n${fileListDescription}`;
|
|
157
|
+
}
|
|
158
|
+
// Stream output if callback provided
|
|
159
|
+
if (updateOutput) {
|
|
160
|
+
updateOutput(`Found ${fileCount} matching file(s)`);
|
|
161
|
+
}
|
|
162
|
+
return this.createSuccessResult(resultMessage, {
|
|
163
|
+
executionTime: Date.now() - startTime,
|
|
164
|
+
fileCount,
|
|
165
|
+
totalCount,
|
|
166
|
+
offset,
|
|
167
|
+
hasMore,
|
|
168
|
+
nextOffset: hasMore ? offset + fileCount : undefined,
|
|
169
|
+
searchPath: searchDirAbsolute,
|
|
170
|
+
pattern: params.pattern,
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
catch (error) {
|
|
174
|
+
// Handle glob errors
|
|
175
|
+
if (error.name === 'AbortError') {
|
|
176
|
+
return this.createErrorResult('Glob search was aborted');
|
|
177
|
+
}
|
|
178
|
+
return this.createErrorResult(`Failed to perform glob search: ${error.message}`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Sorts file entries based on recency and then alphabetically.
|
|
183
|
+
* Recent files (modified within 24 hours) are listed first, newest to oldest.
|
|
184
|
+
* Older files are listed after recent ones, sorted alphabetically by path.
|
|
185
|
+
* @private
|
|
186
|
+
*/
|
|
187
|
+
sortFilesByRecency(entries) {
|
|
188
|
+
const nowTimestamp = Date.now();
|
|
189
|
+
const sortedEntries = [...entries];
|
|
190
|
+
sortedEntries.sort((a, b) => {
|
|
191
|
+
const mtimeA = a.mtimeMs ?? 0;
|
|
192
|
+
const mtimeB = b.mtimeMs ?? 0;
|
|
193
|
+
const aIsRecent = nowTimestamp - mtimeA < this.RECENCY_THRESHOLD_MS;
|
|
194
|
+
const bIsRecent = nowTimestamp - mtimeB < this.RECENCY_THRESHOLD_MS;
|
|
195
|
+
// Both are recent: sort by mtime (newest first)
|
|
196
|
+
if (aIsRecent && bIsRecent) {
|
|
197
|
+
return mtimeB - mtimeA;
|
|
198
|
+
}
|
|
199
|
+
// Only A is recent: A comes first
|
|
200
|
+
if (aIsRecent) {
|
|
201
|
+
return -1;
|
|
202
|
+
}
|
|
203
|
+
// Only B is recent: B comes first
|
|
204
|
+
if (bIsRecent) {
|
|
205
|
+
return 1;
|
|
206
|
+
}
|
|
207
|
+
// Both are old: sort alphabetically
|
|
208
|
+
return a.fullpath().localeCompare(b.fullpath());
|
|
209
|
+
});
|
|
210
|
+
return sortedEntries;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=GlobTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobTool.js","sourceRoot":"","sources":["../../../src/implementations/search/GlobTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enhanced Grep Tool Executor with Native Command Support
|
|
3
|
+
*
|
|
4
|
+
* Implements a 4-tier fallback strategy for optimal performance:
|
|
5
|
+
* 1. ripgrep (rg) - Fastest (0.5-1s)
|
|
6
|
+
* 2. git grep - ⚡ Fast (1-2s, git repos only)
|
|
7
|
+
* 3. system grep - Good (2-5s)
|
|
8
|
+
* 4. JavaScript fallback - Portable (5-10s)
|
|
9
|
+
*
|
|
10
|
+
* Gracefully falls back if native commands are not available.
|
|
11
|
+
*/
|
|
12
|
+
import { BaseTool, type ToolResult } from '../../base/index.js';
|
|
13
|
+
import type { ExecutorConfig } from '../../base/ToolRegistry.js';
|
|
14
|
+
/**
|
|
15
|
+
* Parameters for the Grep tool
|
|
16
|
+
* Matches the tool definition in toolDefinitions.ts
|
|
17
|
+
*/
|
|
18
|
+
export interface GrepToolParams {
|
|
19
|
+
pattern: string;
|
|
20
|
+
path?: string;
|
|
21
|
+
glob?: string;
|
|
22
|
+
output_mode?: 'content' | 'files_with_matches' | 'count';
|
|
23
|
+
'-A'?: number;
|
|
24
|
+
'-B'?: number;
|
|
25
|
+
'-C'?: number;
|
|
26
|
+
'-n'?: boolean;
|
|
27
|
+
'-i'?: boolean;
|
|
28
|
+
type?: string;
|
|
29
|
+
head_limit?: number;
|
|
30
|
+
offset?: number;
|
|
31
|
+
multiline?: boolean;
|
|
32
|
+
include?: string;
|
|
33
|
+
case_sensitive?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Enhanced Grep Tool with Native Command Support
|
|
37
|
+
*/
|
|
38
|
+
export declare class GrepTool extends BaseTool<GrepToolParams, ToolResult> {
|
|
39
|
+
private config;
|
|
40
|
+
private static readonly DEFAULT_MAX_RESULTS;
|
|
41
|
+
private static readonly HARD_MAX_RESULTS;
|
|
42
|
+
private static readonly MAX_CONTENT_LENGTH;
|
|
43
|
+
private static readonly MAX_SEARCHABLE_FILE_BYTES;
|
|
44
|
+
constructor(config: ExecutorConfig);
|
|
45
|
+
validateToolParams(params: GrepToolParams): string | null;
|
|
46
|
+
getDescription(params: GrepToolParams): string;
|
|
47
|
+
execute(params: GrepToolParams, signal: AbortSignal, updateOutput?: (output: string) => void): Promise<ToolResult>;
|
|
48
|
+
/**
|
|
49
|
+
* Performs grep search using best available strategy
|
|
50
|
+
*
|
|
51
|
+
* @param pattern - Regex pattern to search for
|
|
52
|
+
* @param absolutePath - Directory to search in
|
|
53
|
+
* @param include - Glob pattern for file filtering
|
|
54
|
+
* @param caseSensitive - Whether search is case-sensitive
|
|
55
|
+
* @param signal - Abort signal for cancellation
|
|
56
|
+
* @param targetFile - Optional: specific filename to search (single-file mode)
|
|
57
|
+
* @param fileType - Optional: file type filter (rg --type)
|
|
58
|
+
* @param multiline - Optional: enable multiline matching
|
|
59
|
+
* @param contextAfter - Optional: lines after match (-A)
|
|
60
|
+
* @param contextBefore - Optional: lines before match (-B)
|
|
61
|
+
* @param contextBoth - Optional: lines of context (-C)
|
|
62
|
+
* @param maxResults - Optional: maximum results (enables -m flag for ripgrep)
|
|
63
|
+
*/
|
|
64
|
+
private performGrepSearch;
|
|
65
|
+
/**
|
|
66
|
+
* Strategy 1: Search with ripgrep (rg)
|
|
67
|
+
*/
|
|
68
|
+
private searchWithRipgrep;
|
|
69
|
+
/**
|
|
70
|
+
* Strategy 2: Search with git grep
|
|
71
|
+
*/
|
|
72
|
+
private searchWithGitGrep;
|
|
73
|
+
/**
|
|
74
|
+
* Strategy 3: Search with system grep
|
|
75
|
+
*/
|
|
76
|
+
private searchWithSystemGrep;
|
|
77
|
+
/**
|
|
78
|
+
* Strategy 4: Pure JavaScript fallback
|
|
79
|
+
*/
|
|
80
|
+
private searchWithJavaScript;
|
|
81
|
+
/**
|
|
82
|
+
* Executes a command and returns stdout
|
|
83
|
+
* Supports abort signal for ESC key cancellation and timeout for runaway processes
|
|
84
|
+
*/
|
|
85
|
+
private executeCommand;
|
|
86
|
+
/**
|
|
87
|
+
* Checks if a command is available
|
|
88
|
+
*/
|
|
89
|
+
private isCommandAvailable;
|
|
90
|
+
/**
|
|
91
|
+
* Parses grep-style output including context lines from -A/-B/-C flags.
|
|
92
|
+
* Match lines use colons: file:line:content
|
|
93
|
+
* Context lines use dashes: file-line-content
|
|
94
|
+
* Group separators: --
|
|
95
|
+
*/
|
|
96
|
+
private parseGrepOutput;
|
|
97
|
+
/**
|
|
98
|
+
* Groups matches by file and sorts by line number
|
|
99
|
+
*/
|
|
100
|
+
private groupMatchesByFile;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=GrepTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GrepTool.d.ts","sourceRoot":"","sources":["../../../src/implementations/search/GrepTool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAOhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,GAAG,oBAAoB,GAAG,OAAO,CAAC;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAWD;;GAEG;AACH,qBAAa,QAAS,SAAQ,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC;IAUpD,OAAO,CAAC,MAAM;IAT1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAO;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAO;IAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAKnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAoB;gBAEjD,MAAM,EAAE,cAAc;IAiC1C,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI;IA4CzD,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;IAexC,OAAO,CACX,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,WAAW,EACnB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GACtC,OAAO,CAAC,UAAU,CAAC;IAsPtB;;;;;;;;;;;;;;;OAeG;YACW,iBAAiB;IAgG/B;;OAEG;YACW,iBAAiB;IAwC/B;;OAEG;YACW,iBAAiB;IA+B/B;;OAEG;YACW,oBAAoB;IAsDlC;;OAEG;YACW,oBAAoB;IAmGlC;;;OAGG;IACH,OAAO,CAAC,cAAc;IA8FtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAqDvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;CA0B3B"}
|