@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 @@
|
|
|
1
|
+
{"version":3,"file":"VisualFeedbackBridge.js","sourceRoot":"","sources":["../../../src/implementations/addon/VisualFeedbackBridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Window Manager
|
|
3
|
+
*
|
|
4
|
+
* Manages multiple browser and terminal windows
|
|
5
|
+
* Enables hybrid workflows (terminal + browser side-by-side)
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Create multiple windows
|
|
9
|
+
* - Focus management
|
|
10
|
+
* - Screenshot capture from all windows
|
|
11
|
+
* - Coordinate windows (tile, cascade, etc.)
|
|
12
|
+
*/
|
|
13
|
+
import { Page } from 'playwright';
|
|
14
|
+
import { TerminalSandbox } from './TerminalSandbox.js';
|
|
15
|
+
import { ScreenStream } from './ScreenStream.js';
|
|
16
|
+
export type WindowType = 'browser' | 'terminal';
|
|
17
|
+
export interface WindowConfig {
|
|
18
|
+
type: WindowType;
|
|
19
|
+
id: string;
|
|
20
|
+
url?: string;
|
|
21
|
+
shell?: string;
|
|
22
|
+
position?: {
|
|
23
|
+
x: number;
|
|
24
|
+
y: number;
|
|
25
|
+
width: number;
|
|
26
|
+
height: number;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export interface ManagedWindow {
|
|
30
|
+
id: string;
|
|
31
|
+
type: WindowType;
|
|
32
|
+
page?: Page;
|
|
33
|
+
terminal?: TerminalSandbox;
|
|
34
|
+
stream?: ScreenStream;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* WindowManager - Manage multiple windows
|
|
38
|
+
*
|
|
39
|
+
* Allows creating and coordinating multiple browser and terminal
|
|
40
|
+
* windows for complex development workflows.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* const manager = new WindowManager();
|
|
44
|
+
* await manager.initialize();
|
|
45
|
+
*
|
|
46
|
+
* // Create browser window
|
|
47
|
+
* await manager.createWindow({
|
|
48
|
+
* type: 'browser',
|
|
49
|
+
* id: 'main-browser',
|
|
50
|
+
* url: 'https://tradingview.com'
|
|
51
|
+
* });
|
|
52
|
+
*
|
|
53
|
+
* // Create terminal window
|
|
54
|
+
* await manager.createWindow({
|
|
55
|
+
* type: 'terminal',
|
|
56
|
+
* id: 'dev-terminal',
|
|
57
|
+
* shell: '/bin/bash'
|
|
58
|
+
* });
|
|
59
|
+
*
|
|
60
|
+
* // Focus browser
|
|
61
|
+
* await manager.focusWindow('main-browser');
|
|
62
|
+
*/
|
|
63
|
+
export declare class WindowManager {
|
|
64
|
+
private browser;
|
|
65
|
+
private context;
|
|
66
|
+
private windows;
|
|
67
|
+
/**
|
|
68
|
+
* Initialize window manager
|
|
69
|
+
* @param executablePath Optional path to browser executable
|
|
70
|
+
* @param headless Run browser in headless mode (default: true for server environments)
|
|
71
|
+
*/
|
|
72
|
+
initialize(executablePath?: string, headless?: boolean): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* Create a new window
|
|
75
|
+
*/
|
|
76
|
+
createWindow(config: WindowConfig): Promise<ManagedWindow>;
|
|
77
|
+
/**
|
|
78
|
+
* Create browser window
|
|
79
|
+
*/
|
|
80
|
+
private createBrowserWindow;
|
|
81
|
+
/**
|
|
82
|
+
* Create terminal window
|
|
83
|
+
*/
|
|
84
|
+
private createTerminalWindow;
|
|
85
|
+
/**
|
|
86
|
+
* Get window by ID
|
|
87
|
+
*/
|
|
88
|
+
getWindow(id: string): ManagedWindow | undefined;
|
|
89
|
+
/**
|
|
90
|
+
* Focus window (bring to front)
|
|
91
|
+
*/
|
|
92
|
+
focusWindow(id: string): Promise<void>;
|
|
93
|
+
/**
|
|
94
|
+
* Get screenshot from window
|
|
95
|
+
*/
|
|
96
|
+
captureWindow(id: string): Promise<Buffer>;
|
|
97
|
+
/**
|
|
98
|
+
* Capture all windows
|
|
99
|
+
*/
|
|
100
|
+
captureAllWindows(): Promise<Map<string, Buffer>>;
|
|
101
|
+
/**
|
|
102
|
+
* Start screen streaming for a window
|
|
103
|
+
*/
|
|
104
|
+
startStreaming(id: string, fps?: number): ScreenStream | null;
|
|
105
|
+
/**
|
|
106
|
+
* Stop screen streaming for a window
|
|
107
|
+
*/
|
|
108
|
+
stopStreaming(id: string): void;
|
|
109
|
+
/**
|
|
110
|
+
* Tile windows (arrange side-by-side)
|
|
111
|
+
*/
|
|
112
|
+
tileWindows(ids: string[]): Promise<void>;
|
|
113
|
+
/**
|
|
114
|
+
* Close window
|
|
115
|
+
*/
|
|
116
|
+
closeWindow(id: string): Promise<void>;
|
|
117
|
+
/**
|
|
118
|
+
* Close all windows
|
|
119
|
+
*/
|
|
120
|
+
closeAll(): Promise<void>;
|
|
121
|
+
/**
|
|
122
|
+
* Get all window IDs
|
|
123
|
+
*/
|
|
124
|
+
getWindowIds(): string[];
|
|
125
|
+
/**
|
|
126
|
+
* Get window count
|
|
127
|
+
*/
|
|
128
|
+
getWindowCount(): number;
|
|
129
|
+
/**
|
|
130
|
+
* Cleanup all resources
|
|
131
|
+
*/
|
|
132
|
+
close(): Promise<void>;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Singleton instance for convenience
|
|
136
|
+
*/
|
|
137
|
+
export declare const windowManager: WindowManager;
|
|
138
|
+
//# sourceMappingURL=WindowManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WindowManager.d.ts","sourceRoot":"","sources":["../../../src/implementations/addon/WindowManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAqB,IAAI,EAAkB,MAAM,YAAY,CAAC;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;AAEhD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE;QACT,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,OAAO,CAAyC;IAExD;;;;OAIG;IACG,UAAU,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBlF;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAkBhE;;OAEG;YACW,mBAAmB;IA2BjC;;OAEG;YACW,oBAAoB;IAelC;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIhD;;OAEG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW5C;;OAEG;IACG,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAehD;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAevD;;OAEG;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,GAAE,MAAU,GAAG,YAAY,GAAG,IAAI;IAahE;;OAEG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQ/B;;OAEG;IACG,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB/C;;OAEG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB5C;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAO/B;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;IAIxB;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAa7B;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,eAAsB,CAAC"}
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Window Manager
|
|
3
|
+
*
|
|
4
|
+
* Manages multiple browser and terminal windows
|
|
5
|
+
* Enables hybrid workflows (terminal + browser side-by-side)
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Create multiple windows
|
|
9
|
+
* - Focus management
|
|
10
|
+
* - Screenshot capture from all windows
|
|
11
|
+
* - Coordinate windows (tile, cascade, etc.)
|
|
12
|
+
*/
|
|
13
|
+
import { chromium } from 'playwright';
|
|
14
|
+
import { TerminalSandbox } from './TerminalSandbox.js';
|
|
15
|
+
import { ScreenStream } from './ScreenStream.js';
|
|
16
|
+
/**
|
|
17
|
+
* WindowManager - Manage multiple windows
|
|
18
|
+
*
|
|
19
|
+
* Allows creating and coordinating multiple browser and terminal
|
|
20
|
+
* windows for complex development workflows.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* const manager = new WindowManager();
|
|
24
|
+
* await manager.initialize();
|
|
25
|
+
*
|
|
26
|
+
* // Create browser window
|
|
27
|
+
* await manager.createWindow({
|
|
28
|
+
* type: 'browser',
|
|
29
|
+
* id: 'main-browser',
|
|
30
|
+
* url: 'https://tradingview.com'
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
33
|
+
* // Create terminal window
|
|
34
|
+
* await manager.createWindow({
|
|
35
|
+
* type: 'terminal',
|
|
36
|
+
* id: 'dev-terminal',
|
|
37
|
+
* shell: '/bin/bash'
|
|
38
|
+
* });
|
|
39
|
+
*
|
|
40
|
+
* // Focus browser
|
|
41
|
+
* await manager.focusWindow('main-browser');
|
|
42
|
+
*/
|
|
43
|
+
export class WindowManager {
|
|
44
|
+
browser = null;
|
|
45
|
+
context = null;
|
|
46
|
+
windows = new Map();
|
|
47
|
+
/**
|
|
48
|
+
* Initialize window manager
|
|
49
|
+
* @param executablePath Optional path to browser executable
|
|
50
|
+
* @param headless Run browser in headless mode (default: true for server environments)
|
|
51
|
+
*/
|
|
52
|
+
async initialize(executablePath, headless = true) {
|
|
53
|
+
const launchOptions = {
|
|
54
|
+
headless: headless, // Headless mode for server environments
|
|
55
|
+
slowMo: 50,
|
|
56
|
+
args: ['--no-sandbox', '--disable-setuid-sandbox']
|
|
57
|
+
};
|
|
58
|
+
if (executablePath) {
|
|
59
|
+
launchOptions.executablePath = executablePath;
|
|
60
|
+
}
|
|
61
|
+
this.browser = await chromium.launch(launchOptions);
|
|
62
|
+
this.context = await this.browser.newContext();
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Create a new window
|
|
66
|
+
*/
|
|
67
|
+
async createWindow(config) {
|
|
68
|
+
if (this.windows.has(config.id)) {
|
|
69
|
+
throw new Error(`Window with id "${config.id}" already exists`);
|
|
70
|
+
}
|
|
71
|
+
let window;
|
|
72
|
+
if (config.type === 'browser') {
|
|
73
|
+
window = await this.createBrowserWindow(config);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
window = await this.createTerminalWindow(config);
|
|
77
|
+
}
|
|
78
|
+
this.windows.set(config.id, window);
|
|
79
|
+
return window;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Create browser window
|
|
83
|
+
*/
|
|
84
|
+
async createBrowserWindow(config) {
|
|
85
|
+
if (!this.context) {
|
|
86
|
+
throw new Error('Window manager not initialized');
|
|
87
|
+
}
|
|
88
|
+
const page = await this.context.newPage();
|
|
89
|
+
// Set viewport if position specified
|
|
90
|
+
if (config.position) {
|
|
91
|
+
await page.setViewportSize({
|
|
92
|
+
width: config.position.width,
|
|
93
|
+
height: config.position.height
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
// Navigate if URL provided
|
|
97
|
+
if (config.url) {
|
|
98
|
+
await page.goto(config.url);
|
|
99
|
+
}
|
|
100
|
+
return {
|
|
101
|
+
id: config.id,
|
|
102
|
+
type: 'browser',
|
|
103
|
+
page
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Create terminal window
|
|
108
|
+
*/
|
|
109
|
+
async createTerminalWindow(config) {
|
|
110
|
+
const terminal = new TerminalSandbox({
|
|
111
|
+
shell: config.shell,
|
|
112
|
+
headed: true
|
|
113
|
+
});
|
|
114
|
+
await terminal.initialize();
|
|
115
|
+
return {
|
|
116
|
+
id: config.id,
|
|
117
|
+
type: 'terminal',
|
|
118
|
+
terminal
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Get window by ID
|
|
123
|
+
*/
|
|
124
|
+
getWindow(id) {
|
|
125
|
+
return this.windows.get(id);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Focus window (bring to front)
|
|
129
|
+
*/
|
|
130
|
+
async focusWindow(id) {
|
|
131
|
+
const window = this.windows.get(id);
|
|
132
|
+
if (!window) {
|
|
133
|
+
throw new Error(`Window "${id}" not found`);
|
|
134
|
+
}
|
|
135
|
+
if (window.page) {
|
|
136
|
+
await window.page.bringToFront();
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Get screenshot from window
|
|
141
|
+
*/
|
|
142
|
+
async captureWindow(id) {
|
|
143
|
+
const window = this.windows.get(id);
|
|
144
|
+
if (!window) {
|
|
145
|
+
throw new Error(`Window "${id}" not found`);
|
|
146
|
+
}
|
|
147
|
+
if (window.page) {
|
|
148
|
+
return await window.page.screenshot({ type: 'png' });
|
|
149
|
+
}
|
|
150
|
+
else if (window.terminal) {
|
|
151
|
+
return await window.terminal.getScreenshot();
|
|
152
|
+
}
|
|
153
|
+
throw new Error('Unable to capture screenshot');
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Capture all windows
|
|
157
|
+
*/
|
|
158
|
+
async captureAllWindows() {
|
|
159
|
+
const screenshots = new Map();
|
|
160
|
+
for (const [id, window] of this.windows) {
|
|
161
|
+
try {
|
|
162
|
+
const screenshot = await this.captureWindow(id);
|
|
163
|
+
screenshots.set(id, screenshot);
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
console.error(`Failed to capture window "${id}":`, error);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return screenshots;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Start screen streaming for a window
|
|
173
|
+
*/
|
|
174
|
+
startStreaming(id, fps = 2) {
|
|
175
|
+
const window = this.windows.get(id);
|
|
176
|
+
if (!window || !window.page) {
|
|
177
|
+
return null;
|
|
178
|
+
}
|
|
179
|
+
const stream = new ScreenStream(window.page, { fps });
|
|
180
|
+
window.stream = stream;
|
|
181
|
+
stream.start();
|
|
182
|
+
return stream;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Stop screen streaming for a window
|
|
186
|
+
*/
|
|
187
|
+
stopStreaming(id) {
|
|
188
|
+
const window = this.windows.get(id);
|
|
189
|
+
if (window?.stream) {
|
|
190
|
+
window.stream.stop();
|
|
191
|
+
window.stream = undefined;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Tile windows (arrange side-by-side)
|
|
196
|
+
*/
|
|
197
|
+
async tileWindows(ids) {
|
|
198
|
+
const windowCount = ids.length;
|
|
199
|
+
if (windowCount === 0)
|
|
200
|
+
return;
|
|
201
|
+
const screenWidth = 1920; // Assume standard screen
|
|
202
|
+
const screenHeight = 1080;
|
|
203
|
+
const windowWidth = Math.floor(screenWidth / windowCount);
|
|
204
|
+
for (let i = 0; i < ids.length; i++) {
|
|
205
|
+
const id = ids[i];
|
|
206
|
+
if (!id)
|
|
207
|
+
continue;
|
|
208
|
+
const window = this.windows.get(id);
|
|
209
|
+
if (window?.page) {
|
|
210
|
+
await window.page.setViewportSize({
|
|
211
|
+
width: windowWidth,
|
|
212
|
+
height: screenHeight
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Close window
|
|
219
|
+
*/
|
|
220
|
+
async closeWindow(id) {
|
|
221
|
+
const window = this.windows.get(id);
|
|
222
|
+
if (!window) {
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
// Stop streaming if active
|
|
226
|
+
this.stopStreaming(id);
|
|
227
|
+
// Close the window
|
|
228
|
+
if (window.page) {
|
|
229
|
+
await window.page.close();
|
|
230
|
+
}
|
|
231
|
+
else if (window.terminal) {
|
|
232
|
+
await window.terminal.close();
|
|
233
|
+
}
|
|
234
|
+
this.windows.delete(id);
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Close all windows
|
|
238
|
+
*/
|
|
239
|
+
async closeAll() {
|
|
240
|
+
const ids = Array.from(this.windows.keys());
|
|
241
|
+
for (const id of ids) {
|
|
242
|
+
await this.closeWindow(id);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Get all window IDs
|
|
247
|
+
*/
|
|
248
|
+
getWindowIds() {
|
|
249
|
+
return Array.from(this.windows.keys());
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Get window count
|
|
253
|
+
*/
|
|
254
|
+
getWindowCount() {
|
|
255
|
+
return this.windows.size;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Cleanup all resources
|
|
259
|
+
*/
|
|
260
|
+
async close() {
|
|
261
|
+
await this.closeAll();
|
|
262
|
+
if (this.context) {
|
|
263
|
+
await this.context.close();
|
|
264
|
+
this.context = null;
|
|
265
|
+
}
|
|
266
|
+
if (this.browser) {
|
|
267
|
+
await this.browser.close();
|
|
268
|
+
this.browser = null;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Singleton instance for convenience
|
|
274
|
+
*/
|
|
275
|
+
export const windowManager = new WindowManager();
|
|
276
|
+
//# sourceMappingURL=WindowManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WindowManager.js","sourceRoot":"","sources":["../../../src/implementations/addon/WindowManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Artifact Tool Implementations
|
|
3
|
+
*
|
|
4
|
+
* Complete toolkit for dynamic artifact creation and sandbox management:
|
|
5
|
+
* - CreateArtifactTool: Create persistent artifacts (web apps, tools, scripts) with hot reload and visual feedback
|
|
6
|
+
* - InspectSandbox: Observe sandbox state (screenshot, DOM, console)
|
|
7
|
+
* - InteractWithSandbox: Interact with UI via Playwright
|
|
8
|
+
* - ModifySandbox: Edit code with automatic reload verification
|
|
9
|
+
* - StopSandbox: Clean up sandbox resources
|
|
10
|
+
* - VisualFeedbackBridge: Playwright integration for visual programming
|
|
11
|
+
* - SandboxEventBroadcaster: Real-time event broadcasting system
|
|
12
|
+
* - SandboxViewServer: Web-based dashboard for user viewing
|
|
13
|
+
* - TerminalSandbox: Visual terminal emulation with xterm.js
|
|
14
|
+
* - ScreenStream: Continuous screenshot streaming
|
|
15
|
+
* - WindowManager: Multi-window coordination (browser + terminal)
|
|
16
|
+
*/
|
|
17
|
+
export * from './CreateArtifactTool.js';
|
|
18
|
+
export * from './InspectSandboxTool.js';
|
|
19
|
+
export * from './SandboxIntrospectionTools.js';
|
|
20
|
+
export * from './InteractWithSandboxTool.js';
|
|
21
|
+
export * from './ModifySandboxTool.js';
|
|
22
|
+
export * from './StopSandboxTool.js';
|
|
23
|
+
export * from './VisualFeedbackBridge.js';
|
|
24
|
+
export * from './SandboxEventBroadcaster.js';
|
|
25
|
+
export * from './SandboxViewServer.js';
|
|
26
|
+
export * from './TerminalSandbox.js';
|
|
27
|
+
export * from './ScreenStream.js';
|
|
28
|
+
export * from './WindowManager.js';
|
|
29
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/implementations/addon/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Artifact Tool Implementations
|
|
3
|
+
*
|
|
4
|
+
* Complete toolkit for dynamic artifact creation and sandbox management:
|
|
5
|
+
* - CreateArtifactTool: Create persistent artifacts (web apps, tools, scripts) with hot reload and visual feedback
|
|
6
|
+
* - InspectSandbox: Observe sandbox state (screenshot, DOM, console)
|
|
7
|
+
* - InteractWithSandbox: Interact with UI via Playwright
|
|
8
|
+
* - ModifySandbox: Edit code with automatic reload verification
|
|
9
|
+
* - StopSandbox: Clean up sandbox resources
|
|
10
|
+
* - VisualFeedbackBridge: Playwright integration for visual programming
|
|
11
|
+
* - SandboxEventBroadcaster: Real-time event broadcasting system
|
|
12
|
+
* - SandboxViewServer: Web-based dashboard for user viewing
|
|
13
|
+
* - TerminalSandbox: Visual terminal emulation with xterm.js
|
|
14
|
+
* - ScreenStream: Continuous screenshot streaming
|
|
15
|
+
* - WindowManager: Multi-window coordination (browser + terminal)
|
|
16
|
+
*/
|
|
17
|
+
export * from './CreateArtifactTool.js';
|
|
18
|
+
export * from './InspectSandboxTool.js';
|
|
19
|
+
export * from './SandboxIntrospectionTools.js';
|
|
20
|
+
export * from './InteractWithSandboxTool.js';
|
|
21
|
+
export * from './ModifySandboxTool.js';
|
|
22
|
+
export * from './StopSandboxTool.js';
|
|
23
|
+
export * from './VisualFeedbackBridge.js';
|
|
24
|
+
export * from './SandboxEventBroadcaster.js';
|
|
25
|
+
export * from './SandboxViewServer.js';
|
|
26
|
+
export * from './TerminalSandbox.js';
|
|
27
|
+
export * from './ScreenStream.js';
|
|
28
|
+
export * from './WindowManager.js';
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/implementations/addon/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React introspection injectables for the sandbox feedback bridge.
|
|
3
|
+
*
|
|
4
|
+
* Browser-context scripts (serialized source strings) that give the sandbox tools
|
|
5
|
+
* the same scan/grab/detect contract as the nexus-browser MCP — element results
|
|
6
|
+
* carry a unique `cssSelector`, React elements are enriched with a
|
|
7
|
+
* `react: { componentName, componentStack, props, sourceLocation }` field, and
|
|
8
|
+
* `detect` returns the detect_framework schema. Original implementation from the
|
|
9
|
+
* public React fiber conventions (`__reactFiber$*` host keys, the DevTools global
|
|
10
|
+
* hook protocol) — no external code or dependencies.
|
|
11
|
+
*
|
|
12
|
+
* Injection model:
|
|
13
|
+
* - PRELOAD_SCRIPT runs via page.addInitScript BEFORE any page script, so the
|
|
14
|
+
* DevTools-hook shim exists before React loads (renderer/version registration)
|
|
15
|
+
* and `window.__cortexReact` is available to runtime scripts.
|
|
16
|
+
* - DETECT/SCAN/GRAB are evaluated on demand via page.evaluate and degrade
|
|
17
|
+
* gracefully on non-React pages (fiber fields simply absent).
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Pre-load: minimal DevTools hook shim (only when absent) + fiber utilities.
|
|
21
|
+
* The shim lets us read renderer count/version on prod React builds; the fiber
|
|
22
|
+
* utilities resolve a DOM node to its React fiber via the `__reactFiber$` /
|
|
23
|
+
* `__reactContainer$` host-instance keys (works without the hook, prod included).
|
|
24
|
+
*/
|
|
25
|
+
export declare const PRELOAD_SCRIPT = "\n(() => {\n if (!window.__REACT_DEVTOOLS_GLOBAL_HOOK__) {\n let n = 0;\n window.__REACT_DEVTOOLS_GLOBAL_HOOK__ = {\n renderers: new Map(),\n supportsFiber: true,\n inject(renderer) { const id = ++n; this.renderers.set(id, renderer); return id; },\n on() {}, off() {}, sub() { return () => {}; },\n onCommitFiberRoot() {}, onCommitFiberUnmount() {}, onPostCommitFiberRoot() {},\n checkDCE() {}\n };\n }\n\n const getFiber = (el) => {\n let node = el;\n while (node) {\n const key = Object.keys(node).find(\n (k) => k.startsWith('__reactFiber$') || k.startsWith('__reactContainer$')\n );\n if (key) return node[key];\n node = node.parentElement;\n }\n return null;\n };\n\n const INTERNAL = /^(Fragment|Suspense|Profiler|StrictMode|Provider|Consumer|ForwardRef|Memo)$/;\n\n const displayName = (type) => {\n if (!type) return null;\n if (typeof type === 'string') return null; // host component (div, span...)\n return (\n type.displayName || type.name ||\n (type.render && (type.render.displayName || type.render.name)) ||\n (type.type && displayName(type.type)) || null\n );\n };\n\n const componentName = (fiber) => {\n let f = fiber;\n while (f) {\n const name = displayName(f.type);\n if (name && !INTERNAL.test(name)) return name;\n f = f.return;\n }\n return null;\n };\n\n const componentStack = (fiber, max = 10) => {\n const stack = [];\n let f = fiber;\n while (f && stack.length < max) {\n const name = displayName(f.type);\n if (name && !INTERNAL.test(name) && stack[stack.length - 1] !== name) stack.push(name);\n f = f.return;\n }\n return stack;\n };\n\n const serializeProps = (fiber) => {\n let f = fiber;\n while (f && typeof f.type === 'string') f = f.return; // climb to the component fiber\n const props = f && f.memoizedProps;\n if (!props || typeof props !== 'object') return null;\n const out = {};\n for (const k of Object.keys(props).slice(0, 20)) {\n if (k === 'children') continue;\n const v = props[k];\n const t = typeof v;\n if (v === null || t === 'string' || t === 'number' || t === 'boolean') out[k] = v;\n else if (t === 'function') out[k] = '[function]';\n else if (Array.isArray(v)) out[k] = '[array:' + v.length + ']';\n else if (t === 'object') out[k] = '[object]';\n }\n return out;\n };\n\n const sourceLocation = (fiber) => {\n let f = fiber;\n while (f) {\n const src = f._debugSource || (f._debugOwner && f._debugOwner._debugSource);\n if (src && src.fileName) {\n return src.fileName + ':' + (src.lineNumber || 0) + (src.columnNumber ? ':' + src.columnNumber : '');\n }\n f = f.return;\n }\n return null;\n };\n\n // Render trace (react-scan role): accumulate per-component render counts/timings across\n // React commits. Backed by sessionStorage so an incidental same-origin reload (e.g.\n // InteractWithSandbox capturing a snapshot between start and stop) doesn't wipe it.\n const TRACE_KEY = '__cortexRenderTrace';\n const loadTrace = () => {\n try { const s = sessionStorage.getItem(TRACE_KEY); if (s) return JSON.parse(s); } catch (e) {}\n return { enabled: false, counts: {}, totalCommits: 0, startedAt: 0 };\n };\n const saveTrace = (t) => { try { sessionStorage.setItem(TRACE_KEY, JSON.stringify(t)); } catch (e) {} };\n window.__cortexRenderTrace = loadTrace();\n window.__cortexSaveTrace = saveTrace;\n\n // A component fiber \"rendered\" this commit if newly mounted, or its props/state identity\n // changed vs its previous (alternate) fiber. Profiler actualDuration (dev build) gives\n // timing when present but isn't required for the render signal.\n const didRender = (f) => {\n const alt = f.alternate;\n if (!alt) return true; // mounted this commit\n if (alt.memoizedProps !== f.memoizedProps) return true; // new props\n if (alt.memoizedState !== f.memoizedState) return true; // new state/hooks\n return (f.actualDuration != null && f.actualDuration > 0 && f.actualDuration !== alt.actualDuration);\n };\n\n const hook = window.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n const prevCommit = hook.onCommitFiberRoot;\n hook.onCommitFiberRoot = function (id, root, ...rest) {\n try {\n if (root && root.current && window.__cortexReact) {\n // Always stash the LIVE root (root.current) \u2014 the container DOM key can point at a\n // stale double-buffer fiber, so the tree walker must start from here.\n window.__cortexReact.__lastRoot = root.current;\n const trace = window.__cortexRenderTrace;\n if (trace && trace.enabled) {\n trace.totalCommits++;\n const seen = new Set();\n const visit = (f) => {\n if (!f || seen.has(f)) return;\n seen.add(f);\n const name = (typeof f.type !== 'string') ? displayName(f.type) : null;\n if (name && !INTERNAL.test(name) && didRender(f)) {\n const e = trace.counts[name] || (trace.counts[name] = { renders: 0, totalDurationMs: 0 });\n e.renders++;\n if (f.actualDuration != null) e.totalDurationMs += f.actualDuration;\n }\n visit(f.child);\n visit(f.sibling);\n };\n visit(root.current);\n saveTrace(trace); // persist across same-origin reloads\n }\n }\n } catch (e) { /* never break React's commit */ }\n if (typeof prevCommit === 'function') return prevCommit.call(this, id, root, ...rest);\n };\n\n window.__cortexReact = {\n getFiber,\n info(el) {\n const fiber = getFiber(el);\n if (!fiber) return null;\n const name = componentName(fiber);\n if (!name) return null;\n return {\n componentName: name,\n componentStack: componentStack(fiber),\n props: serializeProps(fiber),\n sourceLocation: sourceLocation(fiber)\n };\n },\n // Component hierarchy (component-tree role): host fibers collapsed, components only.\n tree(el, maxDepth) {\n // The container DOM key can point at a stale double-buffer fiber whose .child is null,\n // and __lastRoot may not be set yet on the very first commit. Walk from a LIVE\n // descendant host fiber (React keeps those current) and climb to the root.\n let fiber = window.__cortexReact.__lastRoot || getFiber(el);\n if (!fiber) return null;\n while (fiber.return) fiber = fiber.return; // climb to the host root\n // If the resolved root has no child but its alternate does, use the live one.\n if (!fiber.child && fiber.alternate && fiber.alternate.child) fiber = fiber.alternate;\n const build = (f, depth) => {\n const name = (typeof f.type !== 'string') ? displayName(f.type) : null;\n const isComponent = !!name && !INTERNAL.test(name);\n let kids = [];\n if (depth < maxDepth) {\n let c = f.child;\n while (c) { kids = kids.concat(build(c, isComponent ? depth + 1 : depth)); c = c.sibling; }\n }\n if (isComponent) {\n const node = { name };\n const src = f._debugSource || (f._debugOwner && f._debugOwner._debugSource);\n if (src && src.fileName) node.source = src.fileName + ':' + (src.lineNumber || 0);\n if (kids.length) node.children = kids;\n return [node];\n }\n return kids; // host fiber: lift its component descendants up\n };\n return build(fiber, 0);\n }\n };\n})();\n";
|
|
26
|
+
/**
|
|
27
|
+
* Runtime: framework detection. Return schema matches nexus-browser
|
|
28
|
+
* detect_framework: react/reactVersion/next/remix/gatsby/vue/svelte/angular/
|
|
29
|
+
* compiler/hasDevTools/rendererCount/heavyLibraries.
|
|
30
|
+
*/
|
|
31
|
+
export declare const DETECT_SCRIPT = "\n(() => {\n const w = window;\n const hook = w.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n const rendererCount = hook && hook.renderers ? hook.renderers.size : 0;\n let reactVersion = null;\n try {\n if (rendererCount > 0) reactVersion = hook.renderers.values().next().value.version || null;\n if (!reactVersion && w.React) reactVersion = w.React.version || null;\n } catch (e) { /* version unavailable */ }\n const react = rendererCount > 0 || !!w.React ||\n !!document.querySelector('[data-reactroot], #root [class], #app [class]') &&\n !!Object.keys(document.querySelector('#root') || {}).find((k) => k.startsWith('__react'));\n const heavy = [];\n const libs = {\n 'monaco-editor': () => !!w.monaco, 'chart.js': () => !!w.Chart, three: () => !!w.THREE,\n d3: () => !!w.d3, leaflet: () => !!w.L && !!w.L.map, 'pdf.js': () => !!w.pdfjsLib\n };\n for (const [name, test] of Object.entries(libs)) { try { if (test()) heavy.push(name); } catch (e) {} }\n return {\n react: !!react,\n reactVersion,\n next: !!w.__NEXT_DATA__,\n remix: !!w.__remixContext,\n gatsby: !!w.___gatsby,\n vue: !!w.__VUE__ || !!w.__VUE_DEVTOOLS_GLOBAL_HOOK__ || !!document.querySelector('[data-v-app],[data-v-]'),\n svelte: !!document.querySelector('[class*=\"svelte-\"]'),\n angular: !!w.ng || !!document.querySelector('[ng-version]'),\n compiler: !!w.__REACT_COMPILER_RUNTIME__,\n hasDevTools: !!hook,\n rendererCount,\n heavyLibraries: heavy\n };\n})()\n";
|
|
32
|
+
/**
|
|
33
|
+
* Runtime: element discovery. Returns the nexus-browser scan element shape —
|
|
34
|
+
* tagName/textContent/rect/isInteractive/relevanceScore/cssSelector (+ optional
|
|
35
|
+
* componentName when React is present). Args passed via evaluate(script, args).
|
|
36
|
+
*/
|
|
37
|
+
export declare const SCAN_SCRIPT = "\n(args) => {\n args = args || {};\n const limit = Math.max(1, Math.min(args.limit || 30, 100));\n const filter = args.filter || {};\n const includeOffscreen = !!args.includeOffscreen;\n const vw = window.innerWidth, vh = window.innerHeight;\n const region = args.region || { x: 0, y: 0, width: vw, height: vh };\n\n const cssSelector = (el) => {\n if (el.id && document.querySelectorAll('#' + CSS.escape(el.id)).length === 1) {\n return '#' + CSS.escape(el.id);\n }\n const parts = [];\n let node = el;\n while (node && node !== document.body && parts.length < 6) {\n let part = node.tagName.toLowerCase();\n if (node.id) { parts.unshift(part + '#' + CSS.escape(node.id)); break; }\n const parent = node.parentElement;\n if (parent) {\n const same = Array.from(parent.children).filter((c) => c.tagName === node.tagName);\n if (same.length > 1) part += ':nth-of-type(' + (same.indexOf(node) + 1) + ')';\n }\n parts.unshift(part);\n node = parent;\n }\n const sel = parts.join(' > ');\n try {\n if (document.querySelectorAll(sel).length === 1) return sel;\n } catch (e) {}\n return sel; // best-effort fallback (still scoped enough for most pages)\n };\n\n const INTERACTIVE_TAGS = ['a', 'button', 'input', 'select', 'textarea', 'details', 'summary', 'option', 'label'];\n const isInteractive = (el) => {\n const tag = el.tagName.toLowerCase();\n if (INTERACTIVE_TAGS.includes(tag)) return true;\n const role = el.getAttribute('role');\n if (role && ['button', 'link', 'checkbox', 'radio', 'tab', 'menuitem', 'switch', 'slider', 'combobox'].includes(role)) return true;\n if (el.hasAttribute('onclick') || (el.tabIndex >= 0 && tag !== 'body')) return true;\n try { if (getComputedStyle(el).cursor === 'pointer') return true; } catch (e) {}\n return false;\n };\n\n const score = (el, rect, interactive, text) => {\n let s = 0;\n if (interactive) s += 40;\n if (text) s += 20;\n if (el.id) s += 15;\n if (el.getAttribute('name') || el.getAttribute('placeholder')) s += 10;\n if (el.getAttribute('role')) s += 5;\n const area = rect.width * rect.height;\n if (area > 5000) s += 5; else if (area > 1000) s += 2;\n return s;\n };\n\n const results = [];\n const all = document.body ? document.body.querySelectorAll('*') : [];\n for (const el of all) {\n const tag = el.tagName.toLowerCase();\n if (['script', 'style', 'meta', 'link', 'head', 'noscript'].includes(tag)) continue;\n const rect = el.getBoundingClientRect();\n if (rect.width === 0 && rect.height === 0) continue;\n const offscreen = rect.bottom < region.y || rect.top > region.y + region.height ||\n rect.right < region.x || rect.left > region.x + region.width;\n if (offscreen && !includeOffscreen) continue;\n let style;\n try { style = getComputedStyle(el); } catch (e) { continue; }\n if (style.display === 'none' || style.visibility === 'hidden') continue;\n\n const interactive = isInteractive(el);\n const text = (el.textContent || '').trim().slice(0, 50);\n\n if (filter.tagName && tag !== String(filter.tagName).toLowerCase()) continue;\n if (filter.isInteractive !== undefined && interactive !== filter.isInteractive) continue;\n if (filter.hasText && !text.toLowerCase().includes(String(filter.hasText).toLowerCase())) continue;\n if (filter.id && el.id !== filter.id) continue;\n if (filter.className && !el.classList.contains(filter.className)) continue;\n if (filter.placeholder && !(el.getAttribute('placeholder') || '').toLowerCase().includes(String(filter.placeholder).toLowerCase())) continue;\n if (filter.name && el.getAttribute('name') !== filter.name) continue;\n\n let componentName;\n if (window.__cortexReact) {\n const info = window.__cortexReact.info(el);\n if (info) componentName = info.componentName;\n }\n if (filter.componentName && componentName !== filter.componentName) continue;\n\n const entry = {\n tagName: tag,\n textContent: text || undefined,\n rect: { x: Math.round(rect.x), y: Math.round(rect.y), width: Math.round(rect.width), height: Math.round(rect.height) },\n isInteractive: interactive,\n relevanceScore: score(el, rect, interactive, text),\n cssSelector: cssSelector(el)\n };\n if (el.id) entry.id = el.id;\n if (componentName) entry.componentName = componentName;\n const placeholder = el.getAttribute('placeholder');\n if (placeholder) entry.placeholder = placeholder;\n const type = el.getAttribute('type');\n if (type) entry.type = type;\n const name = el.getAttribute('name');\n if (name) entry.name = name;\n if (offscreen) entry.isOffscreen = true;\n results.push(entry);\n }\n\n results.sort((a, b) => b.relevanceScore - a.relevanceScore);\n const truncated = results.length > limit;\n return { count: Math.min(results.length, limit), elements: results.slice(0, limit), truncated };\n}\n";
|
|
38
|
+
/**
|
|
39
|
+
* Runtime: single-element content query by selector or coordinates. Returns DOM
|
|
40
|
+
* detail plus `react: { componentName, componentStack, props, sourceLocation }`
|
|
41
|
+
* when the element belongs to a React tree (the nexus-browser grab enrichment
|
|
42
|
+
* field shape).
|
|
43
|
+
*/
|
|
44
|
+
export declare const GRAB_SCRIPT = "\n(args) => {\n args = args || {};\n let el = null;\n if (args.selector) {\n try { el = document.querySelector(args.selector); } catch (e) { return { error: 'Invalid selector: ' + e.message }; }\n if (!el) return { error: 'No element matches selector: ' + args.selector };\n } else if (typeof args.x === 'number' && typeof args.y === 'number') {\n el = document.elementFromPoint(args.x, args.y);\n if (!el) return { error: 'No element at (' + args.x + ', ' + args.y + ')' };\n } else {\n return { error: 'Provide selector or x/y coordinates' };\n }\n\n const rect = el.getBoundingClientRect();\n const attrs = {};\n for (const a of el.attributes) attrs[a.name] = a.value.length > 120 ? a.value.slice(0, 120) + '\u2026' : a.value;\n let style = {};\n try {\n const cs = getComputedStyle(el);\n style = { display: cs.display, visibility: cs.visibility, position: cs.position, color: cs.color, fontSize: cs.fontSize, cursor: cs.cursor };\n } catch (e) {}\n\n const parents = [];\n let p = el.parentElement;\n while (p && p !== document.body && parents.length < 4) {\n parents.push(p.tagName.toLowerCase() + (p.id ? '#' + p.id : '') + (p.className && typeof p.className === 'string' ? '.' + p.className.split(/\\s+/).slice(0, 2).join('.') : ''));\n p = p.parentElement;\n }\n\n const result = {\n tagName: el.tagName.toLowerCase(),\n textContent: (el.textContent || '').trim().slice(0, args.maxLength || 500),\n attributes: attrs,\n rect: { x: Math.round(rect.x), y: Math.round(rect.y), width: Math.round(rect.width), height: Math.round(rect.height) },\n computedStyle: style,\n parentChain: parents,\n htmlPreview: el.outerHTML.slice(0, 300)\n };\n\n if (window.__cortexReact) {\n const info = window.__cortexReact.info(el);\n if (info) result.react = info;\n }\n return result;\n}\n";
|
|
45
|
+
/**
|
|
46
|
+
* Runtime: component hierarchy (component-tree role). Walks the React fiber tree from
|
|
47
|
+
* the root, host elements collapsed, components only. Args: { rootSelector?, maxDepth? }.
|
|
48
|
+
*/
|
|
49
|
+
export declare const TREE_SCRIPT = "\n(args) => {\n args = args || {};\n if (!window.__cortexReact || !window.__cortexReact.tree) return { error: 'React introspection not available on this page' };\n // Use a LIVE descendant host element (React keeps its fiber current) rather than the\n // root container itself (whose fiber key can be a stale double-buffer fiber).\n const el = args.rootSelector ? document.querySelector(args.rootSelector)\n : (document.querySelector('#root *, #app *, [data-reactroot] *') ||\n (document.body && document.body.firstElementChild) || document.body);\n const tree = window.__cortexReact.tree(el, args.maxDepth || 8);\n if (!tree) return { error: 'No React tree found (is this a React page?)' };\n // component count + max depth summary\n let count = 0, maxDepth = 0;\n const walk = (nodes, d) => { for (const n of nodes) { count++; maxDepth = Math.max(maxDepth, d); if (n.children) walk(n.children, d + 1); } };\n walk(tree, 1);\n return { tree, componentCount: count, maxDepth };\n}\n";
|
|
50
|
+
/** Runtime: begin a render trace (resets + enables the commit interceptor). */
|
|
51
|
+
export declare const TRACE_START_SCRIPT = "\n(() => {\n if (!window.__cortexRenderTrace) return { error: 'React introspection not available on this page' };\n window.__cortexRenderTrace = { enabled: true, counts: {}, totalCommits: 0, startedAt: Date.now() };\n if (window.__cortexSaveTrace) window.__cortexSaveTrace(window.__cortexRenderTrace);\n return { started: true };\n})()\n";
|
|
52
|
+
/**
|
|
53
|
+
* Runtime: stop (or peek) a render trace and return per-component render counts/timings,
|
|
54
|
+
* sorted by render count (react-scan's "what re-rendered and how often").
|
|
55
|
+
*/
|
|
56
|
+
export declare const TRACE_REPORT_SCRIPT = "\n(args) => {\n args = args || {};\n const t = window.__cortexRenderTrace;\n if (!t) return { error: 'React introspection not available on this page' };\n if (args.stop !== false) { t.enabled = false; if (window.__cortexSaveTrace) window.__cortexSaveTrace(t); }\n const components = Object.keys(t.counts).map((name) => ({\n name,\n renders: t.counts[name].renders,\n totalDurationMs: Math.round(t.counts[name].totalDurationMs * 100) / 100\n })).sort((a, b) => b.renders - a.renders);\n return {\n durationMs: t.startedAt ? Date.now() - t.startedAt : 0,\n totalCommits: t.totalCommits,\n components,\n stopped: args.stop !== false\n };\n}\n";
|
|
57
|
+
//# sourceMappingURL=reactIntrospection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactIntrospection.d.ts","sourceRoot":"","sources":["../../../../src/implementations/addon/injectables/reactIntrospection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,cAAc,i/OA6L1B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,s9CAkCzB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,s5JAgHvB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,o0DA8CvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,g/BAiBvB,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,kBAAkB,0VAO9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,iqBAkB/B,CAAC"}
|