@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.
Files changed (365) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +2 -0
  3. package/README.md +13 -0
  4. package/dist/ExecutorRegistry.d.ts +89 -0
  5. package/dist/ExecutorRegistry.d.ts.map +1 -0
  6. package/dist/ExecutorRegistry.js +219 -0
  7. package/dist/ExecutorRegistry.js.map +1 -0
  8. package/dist/base/BaseTool.d.ts +108 -0
  9. package/dist/base/BaseTool.d.ts.map +1 -0
  10. package/dist/base/BaseTool.js +111 -0
  11. package/dist/base/BaseTool.js.map +1 -0
  12. package/dist/base/ToolRegistry.d.ts +141 -0
  13. package/dist/base/ToolRegistry.d.ts.map +1 -0
  14. package/dist/base/ToolRegistry.js +241 -0
  15. package/dist/base/ToolRegistry.js.map +1 -0
  16. package/dist/base/ToolResult.d.ts +63 -0
  17. package/dist/base/ToolResult.d.ts.map +1 -0
  18. package/dist/base/ToolResult.js +8 -0
  19. package/dist/base/ToolResult.js.map +1 -0
  20. package/dist/base/index.d.ts +10 -0
  21. package/dist/base/index.d.ts.map +1 -0
  22. package/dist/base/index.js +8 -0
  23. package/dist/base/index.js.map +1 -0
  24. package/dist/implementations/addon/CreateArtifactTool.d.ts +221 -0
  25. package/dist/implementations/addon/CreateArtifactTool.d.ts.map +1 -0
  26. package/dist/implementations/addon/CreateArtifactTool.js +1042 -0
  27. package/dist/implementations/addon/CreateArtifactTool.js.map +1 -0
  28. package/dist/implementations/addon/FrameDiffCache.d.ts +166 -0
  29. package/dist/implementations/addon/FrameDiffCache.d.ts.map +1 -0
  30. package/dist/implementations/addon/FrameDiffCache.js +395 -0
  31. package/dist/implementations/addon/FrameDiffCache.js.map +1 -0
  32. package/dist/implementations/addon/H264StreamEncoder.d.ts +84 -0
  33. package/dist/implementations/addon/H264StreamEncoder.d.ts.map +1 -0
  34. package/dist/implementations/addon/H264StreamEncoder.js +203 -0
  35. package/dist/implementations/addon/H264StreamEncoder.js.map +1 -0
  36. package/dist/implementations/addon/HybridScreenshotManager.d.ts +197 -0
  37. package/dist/implementations/addon/HybridScreenshotManager.d.ts.map +1 -0
  38. package/dist/implementations/addon/HybridScreenshotManager.js +415 -0
  39. package/dist/implementations/addon/HybridScreenshotManager.js.map +1 -0
  40. package/dist/implementations/addon/InspectSandboxTool.d.ts +54 -0
  41. package/dist/implementations/addon/InspectSandboxTool.d.ts.map +1 -0
  42. package/dist/implementations/addon/InspectSandboxTool.js +226 -0
  43. package/dist/implementations/addon/InspectSandboxTool.js.map +1 -0
  44. package/dist/implementations/addon/InteractWithSandboxTool.d.ts +90 -0
  45. package/dist/implementations/addon/InteractWithSandboxTool.d.ts.map +1 -0
  46. package/dist/implementations/addon/InteractWithSandboxTool.js +367 -0
  47. package/dist/implementations/addon/InteractWithSandboxTool.js.map +1 -0
  48. package/dist/implementations/addon/KeyframeDetector.d.ts +140 -0
  49. package/dist/implementations/addon/KeyframeDetector.d.ts.map +1 -0
  50. package/dist/implementations/addon/KeyframeDetector.js +390 -0
  51. package/dist/implementations/addon/KeyframeDetector.js.map +1 -0
  52. package/dist/implementations/addon/ModifySandboxTool.d.ts +62 -0
  53. package/dist/implementations/addon/ModifySandboxTool.d.ts.map +1 -0
  54. package/dist/implementations/addon/ModifySandboxTool.js +266 -0
  55. package/dist/implementations/addon/ModifySandboxTool.js.map +1 -0
  56. package/dist/implementations/addon/ReactArtifactBuilder.d.ts +27 -0
  57. package/dist/implementations/addon/ReactArtifactBuilder.d.ts.map +1 -0
  58. package/dist/implementations/addon/ReactArtifactBuilder.js +198 -0
  59. package/dist/implementations/addon/ReactArtifactBuilder.js.map +1 -0
  60. package/dist/implementations/addon/SandboxEventBroadcaster.d.ts +143 -0
  61. package/dist/implementations/addon/SandboxEventBroadcaster.d.ts.map +1 -0
  62. package/dist/implementations/addon/SandboxEventBroadcaster.js +258 -0
  63. package/dist/implementations/addon/SandboxEventBroadcaster.js.map +1 -0
  64. package/dist/implementations/addon/SandboxIntrospectionTools.d.ts +77 -0
  65. package/dist/implementations/addon/SandboxIntrospectionTools.d.ts.map +1 -0
  66. package/dist/implementations/addon/SandboxIntrospectionTools.js +292 -0
  67. package/dist/implementations/addon/SandboxIntrospectionTools.js.map +1 -0
  68. package/dist/implementations/addon/SandboxViewServer.d.ts +127 -0
  69. package/dist/implementations/addon/SandboxViewServer.d.ts.map +1 -0
  70. package/dist/implementations/addon/SandboxViewServer.js +775 -0
  71. package/dist/implementations/addon/SandboxViewServer.js.map +1 -0
  72. package/dist/implementations/addon/ScreenStream.d.ts +149 -0
  73. package/dist/implementations/addon/ScreenStream.d.ts.map +1 -0
  74. package/dist/implementations/addon/ScreenStream.js +306 -0
  75. package/dist/implementations/addon/ScreenStream.js.map +1 -0
  76. package/dist/implementations/addon/StopSandboxTool.d.ts +61 -0
  77. package/dist/implementations/addon/StopSandboxTool.d.ts.map +1 -0
  78. package/dist/implementations/addon/StopSandboxTool.js +252 -0
  79. package/dist/implementations/addon/StopSandboxTool.js.map +1 -0
  80. package/dist/implementations/addon/TerminalSandbox.d.ts +111 -0
  81. package/dist/implementations/addon/TerminalSandbox.d.ts.map +1 -0
  82. package/dist/implementations/addon/TerminalSandbox.js +345 -0
  83. package/dist/implementations/addon/TerminalSandbox.js.map +1 -0
  84. package/dist/implementations/addon/VisualFeedbackBridge.d.ts +367 -0
  85. package/dist/implementations/addon/VisualFeedbackBridge.d.ts.map +1 -0
  86. package/dist/implementations/addon/VisualFeedbackBridge.js +888 -0
  87. package/dist/implementations/addon/VisualFeedbackBridge.js.map +1 -0
  88. package/dist/implementations/addon/WindowManager.d.ts +138 -0
  89. package/dist/implementations/addon/WindowManager.d.ts.map +1 -0
  90. package/dist/implementations/addon/WindowManager.js +276 -0
  91. package/dist/implementations/addon/WindowManager.js.map +1 -0
  92. package/dist/implementations/addon/index.d.ts +29 -0
  93. package/dist/implementations/addon/index.d.ts.map +1 -0
  94. package/dist/implementations/addon/index.js +29 -0
  95. package/dist/implementations/addon/index.js.map +1 -0
  96. package/dist/implementations/addon/injectables/reactIntrospection.d.ts +57 -0
  97. package/dist/implementations/addon/injectables/reactIntrospection.d.ts.map +1 -0
  98. package/dist/implementations/addon/injectables/reactIntrospection.js +480 -0
  99. package/dist/implementations/addon/injectables/reactIntrospection.js.map +1 -0
  100. package/dist/implementations/addon/terminal-client.html +253 -0
  101. package/dist/implementations/agent/PRAgentTool.d.ts +37 -0
  102. package/dist/implementations/agent/PRAgentTool.d.ts.map +1 -0
  103. package/dist/implementations/agent/PRAgentTool.js +257 -0
  104. package/dist/implementations/agent/PRAgentTool.js.map +1 -0
  105. package/dist/implementations/agent/TaskTool.d.ts +76 -0
  106. package/dist/implementations/agent/TaskTool.d.ts.map +1 -0
  107. package/dist/implementations/agent/TaskTool.js +424 -0
  108. package/dist/implementations/agent/TaskTool.js.map +1 -0
  109. package/dist/implementations/agent/index.d.ts +5 -0
  110. package/dist/implementations/agent/index.d.ts.map +1 -0
  111. package/dist/implementations/agent/index.js +3 -0
  112. package/dist/implementations/agent/index.js.map +1 -0
  113. package/dist/implementations/execution/BackgroundProcessRegistry.d.ts +68 -0
  114. package/dist/implementations/execution/BackgroundProcessRegistry.d.ts.map +1 -0
  115. package/dist/implementations/execution/BackgroundProcessRegistry.js +146 -0
  116. package/dist/implementations/execution/BackgroundProcessRegistry.js.map +1 -0
  117. package/dist/implementations/execution/BashOutputTool.d.ts +42 -0
  118. package/dist/implementations/execution/BashOutputTool.d.ts.map +1 -0
  119. package/dist/implementations/execution/BashOutputTool.js +168 -0
  120. package/dist/implementations/execution/BashOutputTool.js.map +1 -0
  121. package/dist/implementations/execution/CodeExecuteTool.d.ts +31 -0
  122. package/dist/implementations/execution/CodeExecuteTool.d.ts.map +1 -0
  123. package/dist/implementations/execution/CodeExecuteTool.js +127 -0
  124. package/dist/implementations/execution/CodeExecuteTool.js.map +1 -0
  125. package/dist/implementations/execution/KillShellTool.d.ts +37 -0
  126. package/dist/implementations/execution/KillShellTool.d.ts.map +1 -0
  127. package/dist/implementations/execution/KillShellTool.js +144 -0
  128. package/dist/implementations/execution/KillShellTool.js.map +1 -0
  129. package/dist/implementations/execution/SearchToolsTool.d.ts +32 -0
  130. package/dist/implementations/execution/SearchToolsTool.d.ts.map +1 -0
  131. package/dist/implementations/execution/SearchToolsTool.js +109 -0
  132. package/dist/implementations/execution/SearchToolsTool.js.map +1 -0
  133. package/dist/implementations/execution/ShellTool.d.ts +108 -0
  134. package/dist/implementations/execution/ShellTool.d.ts.map +1 -0
  135. package/dist/implementations/execution/ShellTool.js +546 -0
  136. package/dist/implementations/execution/ShellTool.js.map +1 -0
  137. package/dist/implementations/execution/WorkspaceManagerTool.d.ts +40 -0
  138. package/dist/implementations/execution/WorkspaceManagerTool.d.ts.map +1 -0
  139. package/dist/implementations/execution/WorkspaceManagerTool.js +370 -0
  140. package/dist/implementations/execution/WorkspaceManagerTool.js.map +1 -0
  141. package/dist/implementations/execution/index.d.ts +13 -0
  142. package/dist/implementations/execution/index.d.ts.map +1 -0
  143. package/dist/implementations/execution/index.js +13 -0
  144. package/dist/implementations/execution/index.js.map +1 -0
  145. package/dist/implementations/extensions/EndTurnTool.d.ts +62 -0
  146. package/dist/implementations/extensions/EndTurnTool.d.ts.map +1 -0
  147. package/dist/implementations/extensions/EndTurnTool.js +172 -0
  148. package/dist/implementations/extensions/EndTurnTool.js.map +1 -0
  149. package/dist/implementations/extensions/ResearchBacklogTool.d.ts +37 -0
  150. package/dist/implementations/extensions/ResearchBacklogTool.d.ts.map +1 -0
  151. package/dist/implementations/extensions/ResearchBacklogTool.js +102 -0
  152. package/dist/implementations/extensions/ResearchBacklogTool.js.map +1 -0
  153. package/dist/implementations/extensions/SkillTool.d.ts +108 -0
  154. package/dist/implementations/extensions/SkillTool.d.ts.map +1 -0
  155. package/dist/implementations/extensions/SkillTool.js +351 -0
  156. package/dist/implementations/extensions/SkillTool.js.map +1 -0
  157. package/dist/implementations/extensions/SlashCommandTool.d.ts +112 -0
  158. package/dist/implementations/extensions/SlashCommandTool.d.ts.map +1 -0
  159. package/dist/implementations/extensions/SlashCommandTool.js +315 -0
  160. package/dist/implementations/extensions/SlashCommandTool.js.map +1 -0
  161. package/dist/implementations/extensions/index.d.ts +14 -0
  162. package/dist/implementations/extensions/index.d.ts.map +1 -0
  163. package/dist/implementations/extensions/index.js +10 -0
  164. package/dist/implementations/extensions/index.js.map +1 -0
  165. package/dist/implementations/file/EditTool.d.ts +232 -0
  166. package/dist/implementations/file/EditTool.d.ts.map +1 -0
  167. package/dist/implementations/file/EditTool.js +707 -0
  168. package/dist/implementations/file/EditTool.js.map +1 -0
  169. package/dist/implementations/file/ReadFileTool.d.ts +49 -0
  170. package/dist/implementations/file/ReadFileTool.d.ts.map +1 -0
  171. package/dist/implementations/file/ReadFileTool.js +225 -0
  172. package/dist/implementations/file/ReadFileTool.js.map +1 -0
  173. package/dist/implementations/file/WriteBinaryTool.d.ts +21 -0
  174. package/dist/implementations/file/WriteBinaryTool.d.ts.map +1 -0
  175. package/dist/implementations/file/WriteBinaryTool.js +153 -0
  176. package/dist/implementations/file/WriteBinaryTool.js.map +1 -0
  177. package/dist/implementations/file/WriteFileTool.d.ts +41 -0
  178. package/dist/implementations/file/WriteFileTool.d.ts.map +1 -0
  179. package/dist/implementations/file/WriteFileTool.js +220 -0
  180. package/dist/implementations/file/WriteFileTool.js.map +1 -0
  181. package/dist/implementations/file/index.d.ts +8 -0
  182. package/dist/implementations/file/index.d.ts.map +1 -0
  183. package/dist/implementations/file/index.js +8 -0
  184. package/dist/implementations/file/index.js.map +1 -0
  185. package/dist/implementations/historical/GetConversationSegmentTool.d.ts +44 -0
  186. package/dist/implementations/historical/GetConversationSegmentTool.d.ts.map +1 -0
  187. package/dist/implementations/historical/GetConversationSegmentTool.js +220 -0
  188. package/dist/implementations/historical/GetConversationSegmentTool.js.map +1 -0
  189. package/dist/implementations/historical/ListCompactionBoundariesTool.d.ts +36 -0
  190. package/dist/implementations/historical/ListCompactionBoundariesTool.d.ts.map +1 -0
  191. package/dist/implementations/historical/ListCompactionBoundariesTool.js +174 -0
  192. package/dist/implementations/historical/ListCompactionBoundariesTool.js.map +1 -0
  193. package/dist/implementations/historical/ListSessionsTool.d.ts +38 -0
  194. package/dist/implementations/historical/ListSessionsTool.d.ts.map +1 -0
  195. package/dist/implementations/historical/ListSessionsTool.js +140 -0
  196. package/dist/implementations/historical/ListSessionsTool.js.map +1 -0
  197. package/dist/implementations/historical/LoadSessionTool.d.ts +39 -0
  198. package/dist/implementations/historical/LoadSessionTool.d.ts.map +1 -0
  199. package/dist/implementations/historical/LoadSessionTool.js +171 -0
  200. package/dist/implementations/historical/LoadSessionTool.js.map +1 -0
  201. package/dist/implementations/historical/RequestHistoricalContextTool.d.ts +46 -0
  202. package/dist/implementations/historical/RequestHistoricalContextTool.d.ts.map +1 -0
  203. package/dist/implementations/historical/RequestHistoricalContextTool.js +224 -0
  204. package/dist/implementations/historical/RequestHistoricalContextTool.js.map +1 -0
  205. package/dist/implementations/historical/SearchConversationHistoryTool.d.ts +51 -0
  206. package/dist/implementations/historical/SearchConversationHistoryTool.d.ts.map +1 -0
  207. package/dist/implementations/historical/SearchConversationHistoryTool.js +306 -0
  208. package/dist/implementations/historical/SearchConversationHistoryTool.js.map +1 -0
  209. package/dist/implementations/historical/index.d.ts +12 -0
  210. package/dist/implementations/historical/index.d.ts.map +1 -0
  211. package/dist/implementations/historical/index.js +12 -0
  212. package/dist/implementations/historical/index.js.map +1 -0
  213. package/dist/implementations/index.d.ts +16 -0
  214. package/dist/implementations/index.d.ts.map +1 -0
  215. package/dist/implementations/index.js +28 -0
  216. package/dist/implementations/index.js.map +1 -0
  217. package/dist/implementations/mcp/DiscoveredMcpTool.d.ts +58 -0
  218. package/dist/implementations/mcp/DiscoveredMcpTool.d.ts.map +1 -0
  219. package/dist/implementations/mcp/DiscoveredMcpTool.js +269 -0
  220. package/dist/implementations/mcp/DiscoveredMcpTool.js.map +1 -0
  221. package/dist/implementations/mcp/index.d.ts +9 -0
  222. package/dist/implementations/mcp/index.d.ts.map +1 -0
  223. package/dist/implementations/mcp/index.js +8 -0
  224. package/dist/implementations/mcp/index.js.map +1 -0
  225. package/dist/implementations/notebook/NotebookEditTool.d.ts +96 -0
  226. package/dist/implementations/notebook/NotebookEditTool.d.ts.map +1 -0
  227. package/dist/implementations/notebook/NotebookEditTool.js +390 -0
  228. package/dist/implementations/notebook/NotebookEditTool.js.map +1 -0
  229. package/dist/implementations/notebook/index.d.ts +7 -0
  230. package/dist/implementations/notebook/index.d.ts.map +1 -0
  231. package/dist/implementations/notebook/index.js +7 -0
  232. package/dist/implementations/notebook/index.js.map +1 -0
  233. package/dist/implementations/search/GlobTool.d.ts +73 -0
  234. package/dist/implementations/search/GlobTool.d.ts.map +1 -0
  235. package/dist/implementations/search/GlobTool.js +213 -0
  236. package/dist/implementations/search/GlobTool.js.map +1 -0
  237. package/dist/implementations/search/GrepTool.d.ts +102 -0
  238. package/dist/implementations/search/GrepTool.d.ts.map +1 -0
  239. package/dist/implementations/search/GrepTool.js +754 -0
  240. package/dist/implementations/search/GrepTool.js.map +1 -0
  241. package/dist/implementations/search/index.d.ts +6 -0
  242. package/dist/implementations/search/index.d.ts.map +1 -0
  243. package/dist/implementations/search/index.js +6 -0
  244. package/dist/implementations/search/index.js.map +1 -0
  245. package/dist/implementations/tmux/TmuxSessionTool.d.ts +82 -0
  246. package/dist/implementations/tmux/TmuxSessionTool.d.ts.map +1 -0
  247. package/dist/implementations/tmux/TmuxSessionTool.js +371 -0
  248. package/dist/implementations/tmux/TmuxSessionTool.js.map +1 -0
  249. package/dist/implementations/tmux/TmuxViewServer.d.ts +86 -0
  250. package/dist/implementations/tmux/TmuxViewServer.d.ts.map +1 -0
  251. package/dist/implementations/tmux/TmuxViewServer.js +480 -0
  252. package/dist/implementations/tmux/TmuxViewServer.js.map +1 -0
  253. package/dist/implementations/tmux/index.d.ts +6 -0
  254. package/dist/implementations/tmux/index.d.ts.map +1 -0
  255. package/dist/implementations/tmux/index.js +6 -0
  256. package/dist/implementations/tmux/index.js.map +1 -0
  257. package/dist/implementations/ui/AskUserQuestionTool.d.ts +77 -0
  258. package/dist/implementations/ui/AskUserQuestionTool.d.ts.map +1 -0
  259. package/dist/implementations/ui/AskUserQuestionTool.js +241 -0
  260. package/dist/implementations/ui/AskUserQuestionTool.js.map +1 -0
  261. package/dist/implementations/ui/ExitPlanModeTool.d.ts +44 -0
  262. package/dist/implementations/ui/ExitPlanModeTool.d.ts.map +1 -0
  263. package/dist/implementations/ui/ExitPlanModeTool.js +150 -0
  264. package/dist/implementations/ui/ExitPlanModeTool.js.map +1 -0
  265. package/dist/implementations/ui/TodoWriteTool.d.ts +59 -0
  266. package/dist/implementations/ui/TodoWriteTool.d.ts.map +1 -0
  267. package/dist/implementations/ui/TodoWriteTool.js +315 -0
  268. package/dist/implementations/ui/TodoWriteTool.js.map +1 -0
  269. package/dist/implementations/ui/index.d.ts +9 -0
  270. package/dist/implementations/ui/index.d.ts.map +1 -0
  271. package/dist/implementations/ui/index.js +9 -0
  272. package/dist/implementations/ui/index.js.map +1 -0
  273. package/dist/implementations/web/BrowseTool.d.ts +43 -0
  274. package/dist/implementations/web/BrowseTool.d.ts.map +1 -0
  275. package/dist/implementations/web/BrowseTool.js +181 -0
  276. package/dist/implementations/web/BrowseTool.js.map +1 -0
  277. package/dist/implementations/web/SandboxTransferTool.d.ts +30 -0
  278. package/dist/implementations/web/SandboxTransferTool.d.ts.map +1 -0
  279. package/dist/implementations/web/SandboxTransferTool.js +261 -0
  280. package/dist/implementations/web/SandboxTransferTool.js.map +1 -0
  281. package/dist/implementations/web/WebFetchTool.d.ts +93 -0
  282. package/dist/implementations/web/WebFetchTool.d.ts.map +1 -0
  283. package/dist/implementations/web/WebFetchTool.js +484 -0
  284. package/dist/implementations/web/WebFetchTool.js.map +1 -0
  285. package/dist/implementations/web/WebSearchTool.d.ts +53 -0
  286. package/dist/implementations/web/WebSearchTool.d.ts.map +1 -0
  287. package/dist/implementations/web/WebSearchTool.js +227 -0
  288. package/dist/implementations/web/WebSearchTool.js.map +1 -0
  289. package/dist/implementations/web/escalateDirective.d.ts +11 -0
  290. package/dist/implementations/web/escalateDirective.d.ts.map +1 -0
  291. package/dist/implementations/web/escalateDirective.js +20 -0
  292. package/dist/implementations/web/escalateDirective.js.map +1 -0
  293. package/dist/implementations/web/index.d.ts +10 -0
  294. package/dist/implementations/web/index.d.ts.map +1 -0
  295. package/dist/implementations/web/index.js +10 -0
  296. package/dist/implementations/web/index.js.map +1 -0
  297. package/dist/implementations/web/webBackends.d.ts +65 -0
  298. package/dist/implementations/web/webBackends.d.ts.map +1 -0
  299. package/dist/implementations/web/webBackends.js +430 -0
  300. package/dist/implementations/web/webBackends.js.map +1 -0
  301. package/dist/implementations/web/webFetchRequestInit.d.ts +9 -0
  302. package/dist/implementations/web/webFetchRequestInit.d.ts.map +1 -0
  303. package/dist/implementations/web/webFetchRequestInit.js +21 -0
  304. package/dist/implementations/web/webFetchRequestInit.js.map +1 -0
  305. package/dist/index.d.ts +14 -0
  306. package/dist/index.d.ts.map +1 -0
  307. package/dist/index.js +18 -0
  308. package/dist/index.js.map +1 -0
  309. package/dist/utils/ArtifactRegistry.d.ts +138 -0
  310. package/dist/utils/ArtifactRegistry.d.ts.map +1 -0
  311. package/dist/utils/ArtifactRegistry.js +259 -0
  312. package/dist/utils/ArtifactRegistry.js.map +1 -0
  313. package/dist/utils/ChromiumBrowserManager.d.ts +56 -0
  314. package/dist/utils/ChromiumBrowserManager.d.ts.map +1 -0
  315. package/dist/utils/ChromiumBrowserManager.js +243 -0
  316. package/dist/utils/ChromiumBrowserManager.js.map +1 -0
  317. package/dist/utils/FileUtils.d.ts +81 -0
  318. package/dist/utils/FileUtils.d.ts.map +1 -0
  319. package/dist/utils/FileUtils.js +148 -0
  320. package/dist/utils/FileUtils.js.map +1 -0
  321. package/dist/utils/GitPolicy.d.ts +70 -0
  322. package/dist/utils/GitPolicy.d.ts.map +1 -0
  323. package/dist/utils/GitPolicy.js +166 -0
  324. package/dist/utils/GitPolicy.js.map +1 -0
  325. package/dist/utils/GitUtils.d.ts +18 -0
  326. package/dist/utils/GitUtils.d.ts.map +1 -0
  327. package/dist/utils/GitUtils.js +62 -0
  328. package/dist/utils/GitUtils.js.map +1 -0
  329. package/dist/utils/SandboxRegistry.d.ts +110 -0
  330. package/dist/utils/SandboxRegistry.d.ts.map +1 -0
  331. package/dist/utils/SandboxRegistry.js +220 -0
  332. package/dist/utils/SandboxRegistry.js.map +1 -0
  333. package/dist/utils/SchemaValidator.d.ts +21 -0
  334. package/dist/utils/SchemaValidator.d.ts.map +1 -0
  335. package/dist/utils/SchemaValidator.js +67 -0
  336. package/dist/utils/SchemaValidator.js.map +1 -0
  337. package/dist/utils/SessionLock.d.ts +96 -0
  338. package/dist/utils/SessionLock.d.ts.map +1 -0
  339. package/dist/utils/SessionLock.js +276 -0
  340. package/dist/utils/SessionLock.js.map +1 -0
  341. package/dist/utils/SessionPersistence.d.ts +89 -0
  342. package/dist/utils/SessionPersistence.d.ts.map +1 -0
  343. package/dist/utils/SessionPersistence.js +244 -0
  344. package/dist/utils/SessionPersistence.js.map +1 -0
  345. package/dist/utils/TextUtils.d.ts +77 -0
  346. package/dist/utils/TextUtils.d.ts.map +1 -0
  347. package/dist/utils/TextUtils.js +112 -0
  348. package/dist/utils/TextUtils.js.map +1 -0
  349. package/dist/utils/TmuxCapture.d.ts +94 -0
  350. package/dist/utils/TmuxCapture.d.ts.map +1 -0
  351. package/dist/utils/TmuxCapture.js +131 -0
  352. package/dist/utils/TmuxCapture.js.map +1 -0
  353. package/dist/utils/TmuxManager.d.ts +65 -0
  354. package/dist/utils/TmuxManager.d.ts.map +1 -0
  355. package/dist/utils/TmuxManager.js +304 -0
  356. package/dist/utils/TmuxManager.js.map +1 -0
  357. package/dist/utils/autoResearchPlanGate.d.ts +10 -0
  358. package/dist/utils/autoResearchPlanGate.d.ts.map +1 -0
  359. package/dist/utils/autoResearchPlanGate.js +57 -0
  360. package/dist/utils/autoResearchPlanGate.js.map +1 -0
  361. package/dist/utils/index.d.ts +19 -0
  362. package/dist/utils/index.d.ts.map +1 -0
  363. package/dist/utils/index.js +13 -0
  364. package/dist/utils/index.js.map +1 -0
  365. 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"}