@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,261 @@
1
+ /**
2
+ * SandboxTransfer Tool Executor
3
+ *
4
+ * Runs a command in a remote sandbox (via MCP run_command), captures its
5
+ * stdout, and writes the output to the local filesystem. Closes the loop
6
+ * between sandbox-generated artifacts (PDFs, images, data) and local files.
7
+ *
8
+ * Uses late-bound mcpManagerGetter injected into ExecutorConfig by
9
+ * OrchestratorFactory after MCP initialisation.
10
+ */
11
+ import fs from 'fs';
12
+ import path from 'path';
13
+ import crypto from 'crypto';
14
+ import { BaseTool } from '../../base/index.js';
15
+ import { SchemaValidator } from '../../utils/SchemaValidator.js';
16
+ import { makeRelative, shortenPath, resolveFilePath, } from '../../utils/FileUtils.js';
17
+ const MIME_FROM_EXT = {
18
+ '.png': 'image/png',
19
+ '.jpg': 'image/jpeg',
20
+ '.jpeg': 'image/jpeg',
21
+ '.gif': 'image/gif',
22
+ '.webp': 'image/webp',
23
+ '.svg': 'image/svg+xml',
24
+ '.pdf': 'application/pdf',
25
+ '.zip': 'application/zip',
26
+ '.wasm': 'application/wasm',
27
+ '.mp3': 'audio/mpeg',
28
+ '.wav': 'audio/wav',
29
+ '.mp4': 'video/mp4',
30
+ '.webm': 'video/webm',
31
+ '.json': 'application/json',
32
+ '.csv': 'text/csv',
33
+ '.txt': 'text/plain',
34
+ '.html': 'text/html',
35
+ };
36
+ export class SandboxTransferTool extends BaseTool {
37
+ config;
38
+ constructor(config) {
39
+ super('SandboxTransfer', 'SandboxTransfer', 'Run a command in the sandbox and save its stdout to a local file.', {
40
+ type: 'object',
41
+ properties: {
42
+ command: {
43
+ type: 'string',
44
+ description: 'Shell command to execute in the sandbox. Stdout is captured and written to local_path.',
45
+ },
46
+ local_path: {
47
+ type: 'string',
48
+ description: 'Local file path to write the captured output to. Parent directories are created automatically.',
49
+ },
50
+ encoding: {
51
+ type: 'string',
52
+ enum: ['base64', 'utf8'],
53
+ description: 'How to interpret stdout. "base64" (default) decodes to binary. "utf8" writes raw text.',
54
+ },
55
+ mime_type: {
56
+ type: 'string',
57
+ description: 'MIME type for the output file. Auto-detected from extension if omitted.',
58
+ },
59
+ timeout: {
60
+ type: 'number',
61
+ description: 'Command timeout in milliseconds (default: 60000). Use higher values for PDF generation.',
62
+ },
63
+ server: {
64
+ type: 'string',
65
+ description: 'MCP server name to use (default: "nexus-browser"). Must expose a run_command tool.',
66
+ },
67
+ },
68
+ required: ['command', 'local_path'],
69
+ });
70
+ this.config = config;
71
+ }
72
+ validateToolParams(params) {
73
+ const schemaError = SchemaValidator.validate(this.parameterSchema, params);
74
+ if (schemaError)
75
+ return schemaError;
76
+ if (!params.command.trim()) {
77
+ return 'command must not be empty';
78
+ }
79
+ const filePath = resolveFilePath(params.local_path, this.config.workingDirectory);
80
+ if (!path.isAbsolute(filePath)) {
81
+ return `local_path must resolve to an absolute path: ${filePath}`;
82
+ }
83
+ params.local_path = filePath;
84
+ if (params.encoding && !['base64', 'utf8'].includes(params.encoding)) {
85
+ return `encoding must be "base64" or "utf8", got "${params.encoding}"`;
86
+ }
87
+ return null;
88
+ }
89
+ getDescription(params) {
90
+ if (!params?.local_path)
91
+ return 'Transfer file from sandbox';
92
+ const shortened = shortenPath(makeRelative(params.local_path, this.config.workingDirectory));
93
+ return `SandboxTransfer → ${shortened}`;
94
+ }
95
+ async execute(params, signal, updateOutput) {
96
+ const startTime = Date.now();
97
+ const serverName = params.server || 'nexus-browser';
98
+ const encoding = params.encoding || 'base64';
99
+ const timeout = params.timeout || 60000;
100
+ const validationError = this.validateToolParams(params);
101
+ if (validationError) {
102
+ return this.createErrorResult(validationError);
103
+ }
104
+ // Late-bound MCP manager access
105
+ const mcpManagerGetter = this.config.mcpManagerGetter;
106
+ if (!mcpManagerGetter || typeof mcpManagerGetter !== 'function') {
107
+ return this.createErrorResult('MCP manager not available. SandboxTransfer requires an active MCP connection. ' +
108
+ 'Ensure MCP is enabled and a sandbox server (e.g., nexus-browser) is configured.');
109
+ }
110
+ const mcpManager = mcpManagerGetter();
111
+ if (!mcpManager) {
112
+ return this.createErrorResult('MCP manager not initialised. SandboxTransfer requires MCP to be enabled.');
113
+ }
114
+ if (!mcpManager.isServerConnected(serverName)) {
115
+ return this.createErrorResult(`MCP server "${serverName}" is not connected. ` +
116
+ `Available servers can be checked with /mcp list. ` +
117
+ `If using a different server, pass server: "your-server-name".`);
118
+ }
119
+ if (signal.aborted) {
120
+ return this.createErrorResult('Cancelled before execution');
121
+ }
122
+ // Run command in sandbox
123
+ let sandboxResult;
124
+ try {
125
+ if (updateOutput) {
126
+ updateOutput(`Running in ${serverName} sandbox: ${params.command.slice(0, 80)}...`);
127
+ }
128
+ sandboxResult = await Promise.race([
129
+ mcpManager.callTool(serverName, 'run_command', {
130
+ command: params.command,
131
+ timeout,
132
+ }),
133
+ new Promise((_, reject) => {
134
+ const onAbort = () => reject(new Error('Cancelled'));
135
+ signal.addEventListener('abort', onAbort, { once: true });
136
+ }),
137
+ ]);
138
+ }
139
+ catch (error) {
140
+ if (signal.aborted || error.message === 'Cancelled') {
141
+ return this.createErrorResult('Cancelled during sandbox execution');
142
+ }
143
+ return this.createErrorResult(`Sandbox command failed: ${error.message}`);
144
+ }
145
+ // Extract stdout from MCP result
146
+ const stdout = this.extractStdout(sandboxResult);
147
+ if (stdout === null || stdout.length === 0) {
148
+ const stderr = this.extractField(sandboxResult, 'stderr');
149
+ const exitCode = this.extractField(sandboxResult, 'exitCode');
150
+ let msg = 'Sandbox command produced no stdout.';
151
+ if (stderr)
152
+ msg += ` stderr: ${stderr.slice(0, 200)}`;
153
+ if (exitCode !== null)
154
+ msg += ` (exit code ${exitCode})`;
155
+ return this.createErrorResult(msg);
156
+ }
157
+ // Write to local filesystem
158
+ try {
159
+ const dirPath = path.dirname(params.local_path);
160
+ if (!fs.existsSync(dirPath)) {
161
+ fs.mkdirSync(dirPath, { recursive: true });
162
+ }
163
+ let buffer;
164
+ if (encoding === 'base64') {
165
+ const raw = stdout.replace(/\s/g, '');
166
+ buffer = Buffer.from(raw, 'base64');
167
+ }
168
+ else {
169
+ buffer = Buffer.from(stdout, 'utf8');
170
+ }
171
+ await fs.promises.writeFile(params.local_path, buffer);
172
+ const fileSize = buffer.length;
173
+ const ext = path.extname(params.local_path).toLowerCase();
174
+ const mimeType = params.mime_type || MIME_FROM_EXT[ext] || 'application/octet-stream';
175
+ const sha256 = crypto
176
+ .createHash('sha256')
177
+ .update(buffer)
178
+ .digest('hex')
179
+ .slice(0, 16);
180
+ const relativePath = makeRelative(params.local_path, this.config.workingDirectory);
181
+ const sizeLabel = fileSize < 1024
182
+ ? `${fileSize} B`
183
+ : fileSize < 1024 * 1024
184
+ ? `${(fileSize / 1024).toFixed(1)} KB`
185
+ : `${(fileSize / (1024 * 1024)).toFixed(1)} MB`;
186
+ const displayContent = `Transferred ${relativePath} (${sizeLabel}, ${mimeType}, sha256:${sha256})`;
187
+ if (updateOutput) {
188
+ updateOutput(displayContent);
189
+ }
190
+ return this.createSuccessResult(displayContent, {
191
+ executionTime: Date.now() - startTime,
192
+ resourcesUsed: { files: [params.local_path] },
193
+ sandboxServer: serverName,
194
+ encoding,
195
+ fileStats: {
196
+ path: relativePath,
197
+ size: fileSize,
198
+ mimeType,
199
+ sha256,
200
+ operation: 'create',
201
+ },
202
+ });
203
+ }
204
+ catch (error) {
205
+ if (error.code === 'EACCES') {
206
+ return this.createErrorResult(`Permission denied: ${params.local_path}`);
207
+ }
208
+ if (error.code === 'ENOSPC') {
209
+ return this.createErrorResult('No space left on device');
210
+ }
211
+ return this.createErrorResult(`Failed to write local file: ${error.message}`);
212
+ }
213
+ }
214
+ extractStdout(result) {
215
+ if (!result)
216
+ return null;
217
+ // MCP content blocks format
218
+ if (Array.isArray(result.content)) {
219
+ for (const block of result.content) {
220
+ if (block?.type === 'text' && block.text) {
221
+ try {
222
+ const parsed = JSON.parse(block.text);
223
+ if (typeof parsed.stdout === 'string')
224
+ return parsed.stdout;
225
+ }
226
+ catch {
227
+ // Not JSON — might be raw stdout
228
+ }
229
+ return block.text;
230
+ }
231
+ }
232
+ }
233
+ // Direct object with stdout
234
+ if (typeof result.stdout === 'string')
235
+ return result.stdout;
236
+ // Direct string
237
+ if (typeof result === 'string')
238
+ return result;
239
+ return null;
240
+ }
241
+ extractField(result, field) {
242
+ if (!result)
243
+ return null;
244
+ if (Array.isArray(result.content)) {
245
+ for (const block of result.content) {
246
+ if (block?.type === 'text' && block.text) {
247
+ try {
248
+ const parsed = JSON.parse(block.text);
249
+ if (parsed[field] !== undefined)
250
+ return String(parsed[field]);
251
+ }
252
+ catch { }
253
+ }
254
+ }
255
+ }
256
+ if (result[field] !== undefined)
257
+ return String(result[field]);
258
+ return null;
259
+ }
260
+ }
261
+ //# sourceMappingURL=SandboxTransferTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SandboxTransferTool.js","sourceRoot":"","sources":["../../../src/implementations/web/SandboxTransferTool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * WebFetch Tool Executor
3
+ *
4
+ * Processes content from URLs embedded in a prompt using Gemini API's built-in urlContext tool.
5
+ * Includes fallback to local fetch + html-to-text for private IPs and failed requests.
6
+ *
7
+ * Based on Gemini CLI web-fetch.ts implementation
8
+ * Uses FREE Gemini API built-in tools with automatic fallback
9
+ */
10
+ import { BaseTool, type ToolResult } from '../../base/index.js';
11
+ import type { ExecutorConfig } from '../../base/ToolRegistry.js';
12
+ /**
13
+ * Grounding metadata structures from Gemini API
14
+ */
15
+ interface GroundingChunkItem {
16
+ web?: {
17
+ uri?: string;
18
+ title?: string;
19
+ };
20
+ }
21
+ /**
22
+ * Parameters for the WebFetch tool
23
+ */
24
+ export interface WebFetchToolParams {
25
+ /**
26
+ * Comprehensive prompt with URL(s) and processing instructions
27
+ */
28
+ prompt: string;
29
+ }
30
+ /**
31
+ * Extended result with grounding metadata
32
+ */
33
+ export interface WebFetchToolResult extends ToolResult {
34
+ sources?: GroundingChunkItem[];
35
+ }
36
+ /**
37
+ * WebFetch Tool Executor
38
+ *
39
+ * Features:
40
+ * - Uses Gemini API urlContext built-in tool (FREE)
41
+ * - Automatic grounding metadata with source attribution
42
+ * - UTF-8 byte-accurate citation insertion
43
+ * - Fallback to local fetch + html-to-text for:
44
+ * - Private IPs (localhost, 192.168.x.x, etc.)
45
+ * - Failed URL retrievals
46
+ * - GitHub blob URL → raw URL conversion
47
+ * - HTML to text conversion
48
+ */
49
+ export declare class WebFetchTool extends BaseTool<WebFetchToolParams, WebFetchToolResult> {
50
+ private config;
51
+ private genAI;
52
+ constructor(config: ExecutorConfig);
53
+ /**
54
+ * Initialize Gemini API client
55
+ */
56
+ private getGeminiClient;
57
+ validateToolParams(params: WebFetchToolParams): string | null;
58
+ getDescription(params: WebFetchToolParams): string;
59
+ execute(params: WebFetchToolParams, signal: AbortSignal, updateOutput?: (output: string) => void): Promise<WebFetchToolResult>;
60
+ /**
61
+ * Format a provider-native backend result into the WebFetch tool result shape.
62
+ */
63
+ private formatBackendResult;
64
+ /**
65
+ * Primary execution using Gemini API urlContext
66
+ */
67
+ private executePrimary;
68
+ /**
69
+ * Fallback execution using local fetch + html-to-text
70
+ */
71
+ private executeFallback;
72
+ /**
73
+ * Parse URLs from prompt text
74
+ */
75
+ private parsePrompt;
76
+ /**
77
+ * Check if URL points to a private IP address
78
+ */
79
+ private isPrivateIp;
80
+ /**
81
+ * Insert citations at UTF-8 byte-accurate positions
82
+ *
83
+ * Gemini API returns byte positions (not character positions) for grounding metadata.
84
+ * This method handles multi-byte UTF-8 characters correctly.
85
+ *
86
+ * @param responseText The response text to insert citations into
87
+ * @param groundingSupports Array of grounding support items with byte positions
88
+ * @returns Text with citations inserted
89
+ */
90
+ private insertCitationsUTF8;
91
+ }
92
+ export {};
93
+ //# sourceMappingURL=WebFetchTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebFetchTool.d.ts","sourceRoot":"","sources":["../../../src/implementations/web/WebFetchTool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAmBjE;;GAEG;AACH,UAAU,kBAAkB;IAC1B,GAAG,CAAC,EAAE;QACJ,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AA0BD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAa,SAAQ,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAGpE,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,KAAK,CAA4B;gBAErB,MAAM,EAAE,cAAc;IAqB1C;;OAEG;IACH,OAAO,CAAC,eAAe;IAavB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI;IAqC7D,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM;IAM5C,OAAO,CACX,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,WAAW,EACnB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GACtC,OAAO,CAAC,kBAAkB,CAAC;IA4H9B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyB3B;;OAEG;YACW,cAAc;IAmF5B;;OAEG;YACW,eAAe;IAiF7B;;OAEG;IACH,OAAO,CAAC,WAAW;IAiCnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAoCnB;;;;;;;;;OASG;IACH,OAAO,CAAC,mBAAmB;CAoD5B"}