@nexus-ai-nexoralabs/cli 0.1.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 (411) hide show
  1. package/.env.example +16 -0
  2. package/LICENSE +21 -0
  3. package/README.md +106 -0
  4. package/dist/api/index.d.ts +81 -0
  5. package/dist/api/index.d.ts.map +1 -0
  6. package/dist/api/index.js +224 -0
  7. package/dist/api/index.js.map +1 -0
  8. package/dist/chat/chatService.d.ts +49 -0
  9. package/dist/chat/chatService.d.ts.map +1 -0
  10. package/dist/chat/chatService.js +163 -0
  11. package/dist/chat/chatService.js.map +1 -0
  12. package/dist/chat/contextBuilder.d.ts +19 -0
  13. package/dist/chat/contextBuilder.d.ts.map +1 -0
  14. package/dist/chat/contextBuilder.js +43 -0
  15. package/dist/chat/contextBuilder.js.map +1 -0
  16. package/dist/chat/conversationService.d.ts +25 -0
  17. package/dist/chat/conversationService.d.ts.map +1 -0
  18. package/dist/chat/conversationService.js +55 -0
  19. package/dist/chat/conversationService.js.map +1 -0
  20. package/dist/chat/index.d.ts +6 -0
  21. package/dist/chat/index.d.ts.map +1 -0
  22. package/dist/chat/index.js +6 -0
  23. package/dist/chat/index.js.map +1 -0
  24. package/dist/chat/messageService.d.ts +18 -0
  25. package/dist/chat/messageService.d.ts.map +1 -0
  26. package/dist/chat/messageService.js +26 -0
  27. package/dist/chat/messageService.js.map +1 -0
  28. package/dist/chat/promptTemplates.d.ts +19 -0
  29. package/dist/chat/promptTemplates.d.ts.map +1 -0
  30. package/dist/chat/promptTemplates.js +32 -0
  31. package/dist/chat/promptTemplates.js.map +1 -0
  32. package/dist/cli/agentRunner.d.ts +126 -0
  33. package/dist/cli/agentRunner.d.ts.map +1 -0
  34. package/dist/cli/agentRunner.js +892 -0
  35. package/dist/cli/agentRunner.js.map +1 -0
  36. package/dist/cli/bin.d.ts +14 -0
  37. package/dist/cli/bin.d.ts.map +1 -0
  38. package/dist/cli/bin.js +20 -0
  39. package/dist/cli/bin.js.map +1 -0
  40. package/dist/cli/index.d.ts +3 -0
  41. package/dist/cli/index.d.ts.map +1 -0
  42. package/dist/cli/index.js +2 -0
  43. package/dist/cli/index.js.map +1 -0
  44. package/dist/cli/inputEngine.d.ts +76 -0
  45. package/dist/cli/inputEngine.d.ts.map +1 -0
  46. package/dist/cli/inputEngine.js +281 -0
  47. package/dist/cli/inputEngine.js.map +1 -0
  48. package/dist/cli/main.d.ts +9 -0
  49. package/dist/cli/main.d.ts.map +1 -0
  50. package/dist/cli/main.js +144 -0
  51. package/dist/cli/main.js.map +1 -0
  52. package/dist/cli/uiFormatters.d.ts +108 -0
  53. package/dist/cli/uiFormatters.d.ts.map +1 -0
  54. package/dist/cli/uiFormatters.js +925 -0
  55. package/dist/cli/uiFormatters.js.map +1 -0
  56. package/dist/common/logger.d.ts +13 -0
  57. package/dist/common/logger.d.ts.map +1 -0
  58. package/dist/common/logger.js +43 -0
  59. package/dist/common/logger.js.map +1 -0
  60. package/dist/config/firstRunHealthCheck.d.ts +50 -0
  61. package/dist/config/firstRunHealthCheck.d.ts.map +1 -0
  62. package/dist/config/firstRunHealthCheck.js +196 -0
  63. package/dist/config/firstRunHealthCheck.js.map +1 -0
  64. package/dist/config/firstRunService.d.ts +53 -0
  65. package/dist/config/firstRunService.d.ts.map +1 -0
  66. package/dist/config/firstRunService.js +93 -0
  67. package/dist/config/firstRunService.js.map +1 -0
  68. package/dist/config/index.d.ts +30 -0
  69. package/dist/config/index.d.ts.map +1 -0
  70. package/dist/config/index.js +65 -0
  71. package/dist/config/index.js.map +1 -0
  72. package/dist/config/productionPaths.d.ts +34 -0
  73. package/dist/config/productionPaths.d.ts.map +1 -0
  74. package/dist/config/productionPaths.js +95 -0
  75. package/dist/config/productionPaths.js.map +1 -0
  76. package/dist/config/workspaceService.d.ts +42 -0
  77. package/dist/config/workspaceService.d.ts.map +1 -0
  78. package/dist/config/workspaceService.js +218 -0
  79. package/dist/config/workspaceService.js.map +1 -0
  80. package/dist/desktop/appWindow.d.ts +21 -0
  81. package/dist/desktop/appWindow.d.ts.map +1 -0
  82. package/dist/desktop/appWindow.js +77 -0
  83. package/dist/desktop/appWindow.js.map +1 -0
  84. package/dist/desktop/main.d.ts +14 -0
  85. package/dist/desktop/main.d.ts.map +1 -0
  86. package/dist/desktop/main.js +90 -0
  87. package/dist/desktop/main.js.map +1 -0
  88. package/dist/desktop/preload.d.ts +14 -0
  89. package/dist/desktop/preload.d.ts.map +1 -0
  90. package/dist/desktop/preload.js +20 -0
  91. package/dist/desktop/preload.js.map +1 -0
  92. package/dist/intelligence/index.d.ts +33 -0
  93. package/dist/intelligence/index.d.ts.map +1 -0
  94. package/dist/intelligence/index.js +82 -0
  95. package/dist/intelligence/index.js.map +1 -0
  96. package/dist/intelligence/modelGateway.d.ts +35 -0
  97. package/dist/intelligence/modelGateway.d.ts.map +1 -0
  98. package/dist/intelligence/modelGateway.js +123 -0
  99. package/dist/intelligence/modelGateway.js.map +1 -0
  100. package/dist/intelligence/modelRegistry.d.ts +17 -0
  101. package/dist/intelligence/modelRegistry.d.ts.map +1 -0
  102. package/dist/intelligence/modelRegistry.js +87 -0
  103. package/dist/intelligence/modelRegistry.js.map +1 -0
  104. package/dist/intelligence/modelRouter.d.ts +76 -0
  105. package/dist/intelligence/modelRouter.d.ts.map +1 -0
  106. package/dist/intelligence/modelRouter.js +256 -0
  107. package/dist/intelligence/modelRouter.js.map +1 -0
  108. package/dist/intelligence/ollamaAdapter.d.ts +49 -0
  109. package/dist/intelligence/ollamaAdapter.d.ts.map +1 -0
  110. package/dist/intelligence/ollamaAdapter.js +197 -0
  111. package/dist/intelligence/ollamaAdapter.js.map +1 -0
  112. package/dist/intelligence/prototype/runPrototype.d.ts +14 -0
  113. package/dist/intelligence/prototype/runPrototype.d.ts.map +1 -0
  114. package/dist/intelligence/prototype/runPrototype.js +87 -0
  115. package/dist/intelligence/prototype/runPrototype.js.map +1 -0
  116. package/dist/intelligence/providers/embeddedInferenceProvider.d.ts +29 -0
  117. package/dist/intelligence/providers/embeddedInferenceProvider.d.ts.map +1 -0
  118. package/dist/intelligence/providers/embeddedInferenceProvider.js +162 -0
  119. package/dist/intelligence/providers/embeddedInferenceProvider.js.map +1 -0
  120. package/dist/intelligence/providers/index.d.ts +4 -0
  121. package/dist/intelligence/providers/index.d.ts.map +1 -0
  122. package/dist/intelligence/providers/index.js +4 -0
  123. package/dist/intelligence/providers/index.js.map +1 -0
  124. package/dist/intelligence/providers/inferenceProvider.d.ts +98 -0
  125. package/dist/intelligence/providers/inferenceProvider.d.ts.map +1 -0
  126. package/dist/intelligence/providers/inferenceProvider.js +9 -0
  127. package/dist/intelligence/providers/inferenceProvider.js.map +1 -0
  128. package/dist/intelligence/providers/ollamaInferenceProvider.d.ts +17 -0
  129. package/dist/intelligence/providers/ollamaInferenceProvider.d.ts.map +1 -0
  130. package/dist/intelligence/providers/ollamaInferenceProvider.js +103 -0
  131. package/dist/intelligence/providers/ollamaInferenceProvider.js.map +1 -0
  132. package/dist/intelligence/provisioning/hardwareDetector.d.ts +5 -0
  133. package/dist/intelligence/provisioning/hardwareDetector.d.ts.map +1 -0
  134. package/dist/intelligence/provisioning/hardwareDetector.js +48 -0
  135. package/dist/intelligence/provisioning/hardwareDetector.js.map +1 -0
  136. package/dist/intelligence/provisioning/index.d.ts +12 -0
  137. package/dist/intelligence/provisioning/index.d.ts.map +1 -0
  138. package/dist/intelligence/provisioning/index.js +12 -0
  139. package/dist/intelligence/provisioning/index.js.map +1 -0
  140. package/dist/intelligence/provisioning/modelDownloader.d.ts +22 -0
  141. package/dist/intelligence/provisioning/modelDownloader.d.ts.map +1 -0
  142. package/dist/intelligence/provisioning/modelDownloader.js +134 -0
  143. package/dist/intelligence/provisioning/modelDownloader.js.map +1 -0
  144. package/dist/intelligence/provisioning/modelManifest.d.ts +10 -0
  145. package/dist/intelligence/provisioning/modelManifest.d.ts.map +1 -0
  146. package/dist/intelligence/provisioning/modelManifest.js +72 -0
  147. package/dist/intelligence/provisioning/modelManifest.js.map +1 -0
  148. package/dist/intelligence/provisioning/modelSelector.d.ts +14 -0
  149. package/dist/intelligence/provisioning/modelSelector.d.ts.map +1 -0
  150. package/dist/intelligence/provisioning/modelSelector.js +40 -0
  151. package/dist/intelligence/provisioning/modelSelector.js.map +1 -0
  152. package/dist/intelligence/provisioning/modelStorage.d.ts +12 -0
  153. package/dist/intelligence/provisioning/modelStorage.d.ts.map +1 -0
  154. package/dist/intelligence/provisioning/modelStorage.js +66 -0
  155. package/dist/intelligence/provisioning/modelStorage.js.map +1 -0
  156. package/dist/intelligence/provisioning/modelUpdater.d.ts +29 -0
  157. package/dist/intelligence/provisioning/modelUpdater.d.ts.map +1 -0
  158. package/dist/intelligence/provisioning/modelUpdater.js +89 -0
  159. package/dist/intelligence/provisioning/modelUpdater.js.map +1 -0
  160. package/dist/intelligence/provisioning/modelVerifier.d.ts +16 -0
  161. package/dist/intelligence/provisioning/modelVerifier.d.ts.map +1 -0
  162. package/dist/intelligence/provisioning/modelVerifier.js +108 -0
  163. package/dist/intelligence/provisioning/modelVerifier.js.map +1 -0
  164. package/dist/intelligence/provisioning/nativeRuntime.d.ts +18 -0
  165. package/dist/intelligence/provisioning/nativeRuntime.d.ts.map +1 -0
  166. package/dist/intelligence/provisioning/nativeRuntime.js +78 -0
  167. package/dist/intelligence/provisioning/nativeRuntime.js.map +1 -0
  168. package/dist/intelligence/provisioning/platformDetector.d.ts +15 -0
  169. package/dist/intelligence/provisioning/platformDetector.d.ts.map +1 -0
  170. package/dist/intelligence/provisioning/platformDetector.js +40 -0
  171. package/dist/intelligence/provisioning/platformDetector.js.map +1 -0
  172. package/dist/intelligence/provisioning/setupState.d.ts +10 -0
  173. package/dist/intelligence/provisioning/setupState.d.ts.map +1 -0
  174. package/dist/intelligence/provisioning/setupState.js +59 -0
  175. package/dist/intelligence/provisioning/setupState.js.map +1 -0
  176. package/dist/intelligence/provisioning/types.d.ts +51 -0
  177. package/dist/intelligence/provisioning/types.d.ts.map +1 -0
  178. package/dist/intelligence/provisioning/types.js +2 -0
  179. package/dist/intelligence/provisioning/types.js.map +1 -0
  180. package/dist/intelligence/runtime/embeddedRuntimeAdapter.d.ts +26 -0
  181. package/dist/intelligence/runtime/embeddedRuntimeAdapter.d.ts.map +1 -0
  182. package/dist/intelligence/runtime/embeddedRuntimeAdapter.js +119 -0
  183. package/dist/intelligence/runtime/embeddedRuntimeAdapter.js.map +1 -0
  184. package/dist/intelligence/runtime/ollamaRuntimeAdapter.d.ts +28 -0
  185. package/dist/intelligence/runtime/ollamaRuntimeAdapter.d.ts.map +1 -0
  186. package/dist/intelligence/runtime/ollamaRuntimeAdapter.js +131 -0
  187. package/dist/intelligence/runtime/ollamaRuntimeAdapter.js.map +1 -0
  188. package/dist/intelligence/runtime/runtimeManager.d.ts +37 -0
  189. package/dist/intelligence/runtime/runtimeManager.d.ts.map +1 -0
  190. package/dist/intelligence/runtime/runtimeManager.js +168 -0
  191. package/dist/intelligence/runtime/runtimeManager.js.map +1 -0
  192. package/dist/intelligence/runtime/types.d.ts +56 -0
  193. package/dist/intelligence/runtime/types.d.ts.map +1 -0
  194. package/dist/intelligence/runtime/types.js +7 -0
  195. package/dist/intelligence/runtime/types.js.map +1 -0
  196. package/dist/knowledge/chunker.d.ts +18 -0
  197. package/dist/knowledge/chunker.d.ts.map +1 -0
  198. package/dist/knowledge/chunker.js +55 -0
  199. package/dist/knowledge/chunker.js.map +1 -0
  200. package/dist/knowledge/citationService.d.ts +26 -0
  201. package/dist/knowledge/citationService.d.ts.map +1 -0
  202. package/dist/knowledge/citationService.js +47 -0
  203. package/dist/knowledge/citationService.js.map +1 -0
  204. package/dist/knowledge/embeddings.d.ts +11 -0
  205. package/dist/knowledge/embeddings.d.ts.map +1 -0
  206. package/dist/knowledge/embeddings.js +28 -0
  207. package/dist/knowledge/embeddings.js.map +1 -0
  208. package/dist/knowledge/hybridSearch.d.ts +13 -0
  209. package/dist/knowledge/hybridSearch.d.ts.map +1 -0
  210. package/dist/knowledge/hybridSearch.js +38 -0
  211. package/dist/knowledge/hybridSearch.js.map +1 -0
  212. package/dist/knowledge/index.d.ts +25 -0
  213. package/dist/knowledge/index.d.ts.map +1 -0
  214. package/dist/knowledge/index.js +37 -0
  215. package/dist/knowledge/index.js.map +1 -0
  216. package/dist/knowledge/parsers.d.ts +20 -0
  217. package/dist/knowledge/parsers.d.ts.map +1 -0
  218. package/dist/knowledge/parsers.js +94 -0
  219. package/dist/knowledge/parsers.js.map +1 -0
  220. package/dist/knowledge/ragEngine.d.ts +24 -0
  221. package/dist/knowledge/ragEngine.d.ts.map +1 -0
  222. package/dist/knowledge/ragEngine.js +121 -0
  223. package/dist/knowledge/ragEngine.js.map +1 -0
  224. package/dist/knowledge/reranker.d.ts +10 -0
  225. package/dist/knowledge/reranker.d.ts.map +1 -0
  226. package/dist/knowledge/reranker.js +11 -0
  227. package/dist/knowledge/reranker.js.map +1 -0
  228. package/dist/knowledge/vectorStore.d.ts +22 -0
  229. package/dist/knowledge/vectorStore.d.ts.map +1 -0
  230. package/dist/knowledge/vectorStore.js +74 -0
  231. package/dist/knowledge/vectorStore.js.map +1 -0
  232. package/dist/main.d.ts +2 -0
  233. package/dist/main.d.ts.map +1 -0
  234. package/dist/main.js +113 -0
  235. package/dist/main.js.map +1 -0
  236. package/dist/orchestration/agentExecutionService.d.ts +29 -0
  237. package/dist/orchestration/agentExecutionService.d.ts.map +1 -0
  238. package/dist/orchestration/agentExecutionService.js +306 -0
  239. package/dist/orchestration/agentExecutionService.js.map +1 -0
  240. package/dist/orchestration/agentStateMachine.d.ts +29 -0
  241. package/dist/orchestration/agentStateMachine.d.ts.map +1 -0
  242. package/dist/orchestration/agentStateMachine.js +153 -0
  243. package/dist/orchestration/agentStateMachine.js.map +1 -0
  244. package/dist/orchestration/agentTaskService.d.ts +44 -0
  245. package/dist/orchestration/agentTaskService.d.ts.map +1 -0
  246. package/dist/orchestration/agentTaskService.js +168 -0
  247. package/dist/orchestration/agentTaskService.js.map +1 -0
  248. package/dist/orchestration/codingAgentDiscovery.d.ts +32 -0
  249. package/dist/orchestration/codingAgentDiscovery.d.ts.map +1 -0
  250. package/dist/orchestration/codingAgentDiscovery.js +148 -0
  251. package/dist/orchestration/codingAgentDiscovery.js.map +1 -0
  252. package/dist/orchestration/codingAgentService.d.ts +40 -0
  253. package/dist/orchestration/codingAgentService.d.ts.map +1 -0
  254. package/dist/orchestration/codingAgentService.js +319 -0
  255. package/dist/orchestration/codingAgentService.js.map +1 -0
  256. package/dist/orchestration/codingAgentTypes.d.ts +111 -0
  257. package/dist/orchestration/codingAgentTypes.d.ts.map +1 -0
  258. package/dist/orchestration/codingAgentTypes.js +32 -0
  259. package/dist/orchestration/codingAgentTypes.js.map +1 -0
  260. package/dist/orchestration/codingAgentVerifier.d.ts +34 -0
  261. package/dist/orchestration/codingAgentVerifier.d.ts.map +1 -0
  262. package/dist/orchestration/codingAgentVerifier.js +109 -0
  263. package/dist/orchestration/codingAgentVerifier.js.map +1 -0
  264. package/dist/orchestration/codingRepairService.d.ts +34 -0
  265. package/dist/orchestration/codingRepairService.d.ts.map +1 -0
  266. package/dist/orchestration/codingRepairService.js +120 -0
  267. package/dist/orchestration/codingRepairService.js.map +1 -0
  268. package/dist/orchestration/goalCompletionVerifier.d.ts +36 -0
  269. package/dist/orchestration/goalCompletionVerifier.d.ts.map +1 -0
  270. package/dist/orchestration/goalCompletionVerifier.js +165 -0
  271. package/dist/orchestration/goalCompletionVerifier.js.map +1 -0
  272. package/dist/orchestration/humanApprovalService.d.ts +89 -0
  273. package/dist/orchestration/humanApprovalService.d.ts.map +1 -0
  274. package/dist/orchestration/humanApprovalService.js +346 -0
  275. package/dist/orchestration/humanApprovalService.js.map +1 -0
  276. package/dist/orchestration/index.d.ts +47 -0
  277. package/dist/orchestration/index.d.ts.map +1 -0
  278. package/dist/orchestration/index.js +67 -0
  279. package/dist/orchestration/index.js.map +1 -0
  280. package/dist/orchestration/planner.d.ts +105 -0
  281. package/dist/orchestration/planner.d.ts.map +1 -0
  282. package/dist/orchestration/planner.js +692 -0
  283. package/dist/orchestration/planner.js.map +1 -0
  284. package/dist/orchestration/types.d.ts +109 -0
  285. package/dist/orchestration/types.d.ts.map +1 -0
  286. package/dist/orchestration/types.js +20 -0
  287. package/dist/orchestration/types.js.map +1 -0
  288. package/dist/preview/previewServer.d.ts +39 -0
  289. package/dist/preview/previewServer.d.ts.map +1 -0
  290. package/dist/preview/previewServer.js +228 -0
  291. package/dist/preview/previewServer.js.map +1 -0
  292. package/dist/preview/previewService.d.ts +43 -0
  293. package/dist/preview/previewService.d.ts.map +1 -0
  294. package/dist/preview/previewService.js +289 -0
  295. package/dist/preview/previewService.js.map +1 -0
  296. package/dist/preview/previewTypes.d.ts +35 -0
  297. package/dist/preview/previewTypes.d.ts.map +1 -0
  298. package/dist/preview/previewTypes.js +5 -0
  299. package/dist/preview/previewTypes.js.map +1 -0
  300. package/dist/storage/database.d.ts +12 -0
  301. package/dist/storage/database.d.ts.map +1 -0
  302. package/dist/storage/database.js +46 -0
  303. package/dist/storage/database.js.map +1 -0
  304. package/dist/storage/health.d.ts +17 -0
  305. package/dist/storage/health.d.ts.map +1 -0
  306. package/dist/storage/health.js +48 -0
  307. package/dist/storage/health.js.map +1 -0
  308. package/dist/storage/index.d.ts +45 -0
  309. package/dist/storage/index.d.ts.map +1 -0
  310. package/dist/storage/index.js +96 -0
  311. package/dist/storage/index.js.map +1 -0
  312. package/dist/storage/migration.d.ts +17 -0
  313. package/dist/storage/migration.d.ts.map +1 -0
  314. package/dist/storage/migration.js +354 -0
  315. package/dist/storage/migration.js.map +1 -0
  316. package/dist/storage/projectService.d.ts +19 -0
  317. package/dist/storage/projectService.d.ts.map +1 -0
  318. package/dist/storage/projectService.js +29 -0
  319. package/dist/storage/projectService.js.map +1 -0
  320. package/dist/storage/repositories/agentTaskRepository.d.ts +34 -0
  321. package/dist/storage/repositories/agentTaskRepository.d.ts.map +1 -0
  322. package/dist/storage/repositories/agentTaskRepository.js +128 -0
  323. package/dist/storage/repositories/agentTaskRepository.js.map +1 -0
  324. package/dist/storage/repositories/approvalRepository.d.ts +20 -0
  325. package/dist/storage/repositories/approvalRepository.d.ts.map +1 -0
  326. package/dist/storage/repositories/approvalRepository.js +116 -0
  327. package/dist/storage/repositories/approvalRepository.js.map +1 -0
  328. package/dist/storage/repositories/conversationRepository.d.ts +16 -0
  329. package/dist/storage/repositories/conversationRepository.d.ts.map +1 -0
  330. package/dist/storage/repositories/conversationRepository.js +50 -0
  331. package/dist/storage/repositories/conversationRepository.js.map +1 -0
  332. package/dist/storage/repositories/knowledgeRepository.d.ts +109 -0
  333. package/dist/storage/repositories/knowledgeRepository.d.ts.map +1 -0
  334. package/dist/storage/repositories/knowledgeRepository.js +177 -0
  335. package/dist/storage/repositories/knowledgeRepository.js.map +1 -0
  336. package/dist/storage/repositories/messageRepository.d.ts +13 -0
  337. package/dist/storage/repositories/messageRepository.d.ts.map +1 -0
  338. package/dist/storage/repositories/messageRepository.js +39 -0
  339. package/dist/storage/repositories/messageRepository.js.map +1 -0
  340. package/dist/storage/repositories/modelsRepository.d.ts +39 -0
  341. package/dist/storage/repositories/modelsRepository.d.ts.map +1 -0
  342. package/dist/storage/repositories/modelsRepository.js +92 -0
  343. package/dist/storage/repositories/modelsRepository.js.map +1 -0
  344. package/dist/storage/repositories/projectRepository.d.ts +14 -0
  345. package/dist/storage/repositories/projectRepository.d.ts.map +1 -0
  346. package/dist/storage/repositories/projectRepository.js +44 -0
  347. package/dist/storage/repositories/projectRepository.js.map +1 -0
  348. package/dist/storage/repositories/settingsRepository.d.ts +10 -0
  349. package/dist/storage/repositories/settingsRepository.d.ts.map +1 -0
  350. package/dist/storage/repositories/settingsRepository.js +27 -0
  351. package/dist/storage/repositories/settingsRepository.js.map +1 -0
  352. package/dist/storage/repositories/types.d.ts +56 -0
  353. package/dist/storage/repositories/types.d.ts.map +1 -0
  354. package/dist/storage/repositories/types.js +2 -0
  355. package/dist/storage/repositories/types.js.map +1 -0
  356. package/dist/tools/adapters/filesystemAdapter.d.ts +121 -0
  357. package/dist/tools/adapters/filesystemAdapter.d.ts.map +1 -0
  358. package/dist/tools/adapters/filesystemAdapter.js +808 -0
  359. package/dist/tools/adapters/filesystemAdapter.js.map +1 -0
  360. package/dist/tools/adapters/terminalAdapter.d.ts +67 -0
  361. package/dist/tools/adapters/terminalAdapter.d.ts.map +1 -0
  362. package/dist/tools/adapters/terminalAdapter.js +487 -0
  363. package/dist/tools/adapters/terminalAdapter.js.map +1 -0
  364. package/dist/tools/adapters/terminalCommandPolicy.d.ts +44 -0
  365. package/dist/tools/adapters/terminalCommandPolicy.d.ts.map +1 -0
  366. package/dist/tools/adapters/terminalCommandPolicy.js +422 -0
  367. package/dist/tools/adapters/terminalCommandPolicy.js.map +1 -0
  368. package/dist/tools/adapters/terminalTypes.d.ts +111 -0
  369. package/dist/tools/adapters/terminalTypes.d.ts.map +1 -0
  370. package/dist/tools/adapters/terminalTypes.js +26 -0
  371. package/dist/tools/adapters/terminalTypes.js.map +1 -0
  372. package/dist/tools/approvalGate.d.ts +24 -0
  373. package/dist/tools/approvalGate.d.ts.map +1 -0
  374. package/dist/tools/approvalGate.js +137 -0
  375. package/dist/tools/approvalGate.js.map +1 -0
  376. package/dist/tools/approvalPolicyEngine.d.ts +32 -0
  377. package/dist/tools/approvalPolicyEngine.d.ts.map +1 -0
  378. package/dist/tools/approvalPolicyEngine.js +141 -0
  379. package/dist/tools/approvalPolicyEngine.js.map +1 -0
  380. package/dist/tools/approvalTypes.d.ts +67 -0
  381. package/dist/tools/approvalTypes.d.ts.map +1 -0
  382. package/dist/tools/approvalTypes.js +23 -0
  383. package/dist/tools/approvalTypes.js.map +1 -0
  384. package/dist/tools/index.d.ts +72 -0
  385. package/dist/tools/index.d.ts.map +1 -0
  386. package/dist/tools/index.js +353 -0
  387. package/dist/tools/index.js.map +1 -0
  388. package/dist/tools/permissionEngine.d.ts +27 -0
  389. package/dist/tools/permissionEngine.d.ts.map +1 -0
  390. package/dist/tools/permissionEngine.js +130 -0
  391. package/dist/tools/permissionEngine.js.map +1 -0
  392. package/dist/tools/toolExecutor.d.ts +37 -0
  393. package/dist/tools/toolExecutor.d.ts.map +1 -0
  394. package/dist/tools/toolExecutor.js +440 -0
  395. package/dist/tools/toolExecutor.js.map +1 -0
  396. package/dist/tools/toolRegistry.d.ts +34 -0
  397. package/dist/tools/toolRegistry.d.ts.map +1 -0
  398. package/dist/tools/toolRegistry.js +92 -0
  399. package/dist/tools/toolRegistry.js.map +1 -0
  400. package/dist/tools/types.d.ts +82 -0
  401. package/dist/tools/types.d.ts.map +1 -0
  402. package/dist/tools/types.js +33 -0
  403. package/dist/tools/types.js.map +1 -0
  404. package/dist/ui/public/app.js +777 -0
  405. package/dist/ui/public/index.html +117 -0
  406. package/dist/ui/public/styles.css +413 -0
  407. package/dist/ui/server.d.ts +27 -0
  408. package/dist/ui/server.d.ts.map +1 -0
  409. package/dist/ui/server.js +373 -0
  410. package/dist/ui/server.js.map +1 -0
  411. package/package.json +63 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystemAdapter.js","sourceRoot":"","sources":["../../../src/tools/adapters/filesystemAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * NEXUS AI — P6-C: Terminal Adapter
3
+ *
4
+ * The ONLY location where child processes are spawned.
5
+ *
6
+ * SECURITY GUARANTEES:
7
+ * - Uses child_process.spawn() with shell: false (no shell interpreter).
8
+ * - Working directory is validated to be inside the workspace root.
9
+ * - Environment is sanitized: secrets are stripped, only safe vars preserved.
10
+ * - Execution is bounded by a configurable timeout (default 30s, max 120s).
11
+ * - stdout and stderr are bounded (default 256 KB, max 1 MB).
12
+ * - AbortSignal/AbortController cancellation is supported.
13
+ * - No orphan processes are left running after timeout or cancellation.
14
+ *
15
+ * PIPELINE:
16
+ * ToolExecutor -> TerminalCommandPolicy -> TerminalAdapter -> child_process.spawn()
17
+ *
18
+ * NO DIRECT ACCESS FROM:
19
+ * ApplicationApi | CLI | AgentRunner | Planner | PlanSynthesisService
20
+ */
21
+ import { LogLevel } from '../../common/logger.js';
22
+ import type { TerminalExecuteParams, TerminalExecuteResult } from './terminalTypes.js';
23
+ /**
24
+ * Build a sanitized environment for the child process.
25
+ * Only explicitly allowed variables are forwarded; all sensitive patterns are stripped.
26
+ */
27
+ declare function buildSanitizedEnv(parentEnv: NodeJS.ProcessEnv): Record<string, string>;
28
+ /**
29
+ * Validate that a requested working directory is inside the canonical workspace root.
30
+ *
31
+ * @param requestedCwd The cwd from the execute params (may be relative or absolute).
32
+ * @param canonicalWorkspaceRoot Canonical, real-path workspace root.
33
+ * @returns resolved canonical cwd, or null if invalid.
34
+ */
35
+ declare function validateWorkspaceCwd(requestedCwd: string | undefined, canonicalWorkspaceRoot: string): {
36
+ valid: true;
37
+ resolvedCwd: string;
38
+ } | {
39
+ valid: false;
40
+ errorMessage: string;
41
+ };
42
+ export declare class TerminalAdapter {
43
+ private canonicalWorkspaceRoot;
44
+ private logger;
45
+ constructor(workspaceRoot: string, logLevel?: LogLevel);
46
+ /**
47
+ * Execute a policy-validated terminal command inside the workspace.
48
+ *
49
+ * PRECONDITION: params.command and params.args have already been validated
50
+ * by TerminalCommandPolicy.evaluate(). Do NOT call this directly from
51
+ * outside ToolExecutor.
52
+ *
53
+ * @param command The exact executable to spawn (from policy resolvedCommand).
54
+ * @param args Validated argument array (from policy resolvedArgs).
55
+ * @param params Original params (for cwd, timeout, output limits).
56
+ * @param signal Optional AbortSignal for cancellation.
57
+ * @returns Normalized TerminalExecuteResult.
58
+ */
59
+ execute(command: string, args: string[], params: TerminalExecuteParams, signal?: AbortSignal): Promise<TerminalExecuteResult>;
60
+ /**
61
+ * Get the canonical workspace root this adapter is bound to.
62
+ */
63
+ getWorkspaceRoot(): string;
64
+ private errorResult;
65
+ }
66
+ export { buildSanitizedEnv, validateWorkspaceCwd };
67
+ //# sourceMappingURL=terminalAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminalAdapter.d.ts","sourceRoot":"","sources":["../../../src/tools/adapters/terminalAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,OAAO,EAAU,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAyGvF;;;GAGG;AACH,iBAAS,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAe/E;AAMD;;;;;;GAMG;AACH,iBAAS,oBAAoB,CAC3B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,sBAAsB,EAAE,MAAM,GAC7B;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CA8D/E;AAMD,qBAAa,eAAe;IAC1B,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,MAAM,CAAS;gBAEX,aAAa,EAAE,MAAM,EAAE,QAAQ,GAAE,QAAiB;IAyB9D;;;;;;;;;;;;OAYG;IACG,OAAO,CACX,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,qBAAqB,EAC7B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,qBAAqB,CAAC;IA8NjC;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B,OAAO,CAAC,WAAW;CAoBpB;AAGD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,487 @@
1
+ /**
2
+ * NEXUS AI — P6-C: Terminal Adapter
3
+ *
4
+ * The ONLY location where child processes are spawned.
5
+ *
6
+ * SECURITY GUARANTEES:
7
+ * - Uses child_process.spawn() with shell: false (no shell interpreter).
8
+ * - Working directory is validated to be inside the workspace root.
9
+ * - Environment is sanitized: secrets are stripped, only safe vars preserved.
10
+ * - Execution is bounded by a configurable timeout (default 30s, max 120s).
11
+ * - stdout and stderr are bounded (default 256 KB, max 1 MB).
12
+ * - AbortSignal/AbortController cancellation is supported.
13
+ * - No orphan processes are left running after timeout or cancellation.
14
+ *
15
+ * PIPELINE:
16
+ * ToolExecutor -> TerminalCommandPolicy -> TerminalAdapter -> child_process.spawn()
17
+ *
18
+ * NO DIRECT ACCESS FROM:
19
+ * ApplicationApi | CLI | AgentRunner | Planner | PlanSynthesisService
20
+ */
21
+ import { spawn } from 'child_process';
22
+ import * as path from 'path';
23
+ import * as fs from 'fs';
24
+ import { Logger } from '../../common/logger.js';
25
+ import { TERMINAL_LIMITS } from './terminalTypes.js';
26
+ // ---------------------------------------------------------------------------
27
+ // Environment Sanitization
28
+ // ---------------------------------------------------------------------------
29
+ /**
30
+ * Sensitive environment variable name patterns to strip from the child process.
31
+ * Matched case-insensitively against variable names.
32
+ */
33
+ const SENSITIVE_ENV_PATTERNS = [
34
+ /.*_KEY$/i,
35
+ /.*_TOKEN$/i,
36
+ /.*_SECRET$/i,
37
+ /.*_PASSWORD$/i,
38
+ /.*_PASS$/i,
39
+ /.*_CREDENTIAL/i,
40
+ /.*_CREDENTIALS$/i,
41
+ /^AWS_.*/i,
42
+ /^AZURE_.*/i,
43
+ /^GCP_.*/i,
44
+ /^GOOGLE_.*/i,
45
+ /^GITHUB_.*/i,
46
+ /^GITLAB_.*/i,
47
+ /^NPM_TOKEN.*/i,
48
+ /^NUGET_.*/i,
49
+ /^DOCKER_.*/i,
50
+ /^KUBERNETES_.*/i,
51
+ /^VAULT_.*/i,
52
+ /^CONSUL_.*/i,
53
+ /^DATABASE_URL$/i,
54
+ /^DB_URL$/i,
55
+ /^DB_PASSWORD$/i,
56
+ /^DB_PASS$/i,
57
+ /^REDIS_URL$/i,
58
+ /^MONGO_URL$/i,
59
+ /^ELASTICSEARCH_URL$/i,
60
+ /^OPENAI_API_KEY$/i,
61
+ /^ANTHROPIC_API_KEY$/i,
62
+ /^OLLAMA_API_KEY$/i,
63
+ /^STRIPE_.*/i,
64
+ /^TWILIO_.*/i,
65
+ /^SENDGRID_.*/i,
66
+ /^JWT_SECRET$/i,
67
+ /^ENCRYPTION_KEY$/i,
68
+ /^SSL_KEY$/i,
69
+ /^TLS_KEY$/i,
70
+ /^PRIVATE_KEY$/i,
71
+ /^SIGNING_KEY$/i,
72
+ ];
73
+ /**
74
+ * Explicitly allowed environment variables to pass to child processes.
75
+ * Only these variables (from the parent environment) are forwarded.
76
+ */
77
+ const ALLOWED_ENV_VARS = [
78
+ // PATH is essential for finding executables
79
+ 'PATH',
80
+ // Node.js
81
+ 'NODE_ENV',
82
+ 'NODE_PATH',
83
+ 'NODE_OPTIONS',
84
+ // npm
85
+ 'NPM_CONFIG_LOGLEVEL',
86
+ 'npm_config_cache',
87
+ // System locale / encoding
88
+ 'LANG',
89
+ 'LC_ALL',
90
+ 'LC_CTYPE',
91
+ 'TERM',
92
+ 'COLORTERM',
93
+ 'FORCE_COLOR',
94
+ 'NO_COLOR',
95
+ // OS essentials (Windows)
96
+ 'SYSTEMROOT',
97
+ 'SystemRoot',
98
+ 'WINDIR',
99
+ 'windir',
100
+ 'TEMP',
101
+ 'TMP',
102
+ 'USERPROFILE',
103
+ 'HOMEDRIVE',
104
+ 'HOMEPATH',
105
+ 'APPDATA',
106
+ 'LOCALAPPDATA',
107
+ 'PROGRAMFILES',
108
+ 'PROGRAMDATA',
109
+ // OS essentials (Unix)
110
+ 'HOME',
111
+ 'USER',
112
+ 'LOGNAME',
113
+ 'SHELL',
114
+ 'XDG_RUNTIME_DIR',
115
+ // Python
116
+ 'PYTHONPATH',
117
+ 'VIRTUAL_ENV',
118
+ 'CONDA_DEFAULT_ENV',
119
+ // Development
120
+ 'EDITOR',
121
+ 'VISUAL',
122
+ 'CI',
123
+ 'CONTINUOUS_INTEGRATION',
124
+ ];
125
+ /**
126
+ * Build a sanitized environment for the child process.
127
+ * Only explicitly allowed variables are forwarded; all sensitive patterns are stripped.
128
+ */
129
+ function buildSanitizedEnv(parentEnv) {
130
+ const sanitized = {};
131
+ for (const varName of ALLOWED_ENV_VARS) {
132
+ const value = parentEnv[varName];
133
+ if (value !== undefined && value !== null) {
134
+ // Double-check against sensitive patterns even for allowed vars
135
+ const isSensitive = SENSITIVE_ENV_PATTERNS.some((p) => p.test(varName));
136
+ if (!isSensitive) {
137
+ sanitized[varName] = value;
138
+ }
139
+ }
140
+ }
141
+ return sanitized;
142
+ }
143
+ // ---------------------------------------------------------------------------
144
+ // Workspace Boundary Validation
145
+ // ---------------------------------------------------------------------------
146
+ /**
147
+ * Validate that a requested working directory is inside the canonical workspace root.
148
+ *
149
+ * @param requestedCwd The cwd from the execute params (may be relative or absolute).
150
+ * @param canonicalWorkspaceRoot Canonical, real-path workspace root.
151
+ * @returns resolved canonical cwd, or null if invalid.
152
+ */
153
+ function validateWorkspaceCwd(requestedCwd, canonicalWorkspaceRoot) {
154
+ // Default: workspace root
155
+ const rawCwd = requestedCwd || '.';
156
+ // Reject null bytes
157
+ if (rawCwd.includes('\0')) {
158
+ return { valid: false, errorMessage: 'Working directory contains a null byte character.' };
159
+ }
160
+ // Resolve against workspace root
161
+ const resolvedTarget = path.isAbsolute(rawCwd)
162
+ ? path.normalize(rawCwd)
163
+ : path.resolve(canonicalWorkspaceRoot, rawCwd);
164
+ // Resolve real path to catch symlink escapes
165
+ let canonicalTarget;
166
+ try {
167
+ if (fs.existsSync(resolvedTarget)) {
168
+ canonicalTarget = fs.realpathSync(resolvedTarget);
169
+ }
170
+ else {
171
+ // Non-existent path: check parent for symlinks
172
+ const parent = path.dirname(resolvedTarget);
173
+ if (fs.existsSync(parent)) {
174
+ const canonicalParent = fs.realpathSync(parent);
175
+ canonicalTarget = path.join(canonicalParent, path.basename(resolvedTarget));
176
+ }
177
+ else {
178
+ canonicalTarget = resolvedTarget;
179
+ }
180
+ }
181
+ }
182
+ catch {
183
+ canonicalTarget = resolvedTarget;
184
+ }
185
+ const isWindows = process.platform === 'win32';
186
+ const rootCheck = isWindows ? canonicalWorkspaceRoot.toLowerCase() : canonicalWorkspaceRoot;
187
+ const targetCheck = isWindows ? canonicalTarget.toLowerCase() : canonicalTarget;
188
+ const isInsideWorkspace = targetCheck === rootCheck ||
189
+ targetCheck.startsWith(rootCheck + path.sep) ||
190
+ targetCheck.startsWith(rootCheck + '/') ||
191
+ targetCheck.startsWith(rootCheck + '\\');
192
+ if (!isInsideWorkspace) {
193
+ return {
194
+ valid: false,
195
+ errorMessage: `Working directory '${rawCwd}' resolves outside the workspace sandbox.`,
196
+ };
197
+ }
198
+ // Verify it is a directory (if it exists)
199
+ if (fs.existsSync(canonicalTarget)) {
200
+ const stat = fs.statSync(canonicalTarget);
201
+ if (!stat.isDirectory()) {
202
+ return {
203
+ valid: false,
204
+ errorMessage: `Working directory '${rawCwd}' is not a directory.`,
205
+ };
206
+ }
207
+ }
208
+ return { valid: true, resolvedCwd: canonicalTarget };
209
+ }
210
+ // ---------------------------------------------------------------------------
211
+ // TerminalAdapter Class
212
+ // ---------------------------------------------------------------------------
213
+ export class TerminalAdapter {
214
+ canonicalWorkspaceRoot;
215
+ logger;
216
+ constructor(workspaceRoot, logLevel = 'info') {
217
+ this.logger = new Logger('TerminalAdapter', logLevel);
218
+ if (!workspaceRoot || typeof workspaceRoot !== 'string' || workspaceRoot.trim() === '') {
219
+ throw new Error('TerminalAdapter: workspaceRoot must be a non-empty string.');
220
+ }
221
+ const resolvedRoot = path.resolve(workspaceRoot);
222
+ // Ensure workspace root exists
223
+ if (!fs.existsSync(resolvedRoot)) {
224
+ try {
225
+ fs.mkdirSync(resolvedRoot, { recursive: true });
226
+ }
227
+ catch (err) {
228
+ throw new Error(`TerminalAdapter: workspace directory could not be created: ${String(err)}`);
229
+ }
230
+ }
231
+ try {
232
+ this.canonicalWorkspaceRoot = fs.realpathSync(resolvedRoot);
233
+ }
234
+ catch {
235
+ this.canonicalWorkspaceRoot = resolvedRoot;
236
+ }
237
+ }
238
+ /**
239
+ * Execute a policy-validated terminal command inside the workspace.
240
+ *
241
+ * PRECONDITION: params.command and params.args have already been validated
242
+ * by TerminalCommandPolicy.evaluate(). Do NOT call this directly from
243
+ * outside ToolExecutor.
244
+ *
245
+ * @param command The exact executable to spawn (from policy resolvedCommand).
246
+ * @param args Validated argument array (from policy resolvedArgs).
247
+ * @param params Original params (for cwd, timeout, output limits).
248
+ * @param signal Optional AbortSignal for cancellation.
249
+ * @returns Normalized TerminalExecuteResult.
250
+ */
251
+ async execute(command, args, params, signal) {
252
+ const startTime = Date.now();
253
+ // 1. Validate working directory
254
+ const cwdResult = validateWorkspaceCwd(params.cwd, this.canonicalWorkspaceRoot);
255
+ if (!cwdResult.valid) {
256
+ return this.errorResult('PATH_TRAVERSAL_DENIED', cwdResult.errorMessage, startTime);
257
+ }
258
+ const resolvedCwd = cwdResult.resolvedCwd;
259
+ // 2. Resolve timeout (clamp to limits)
260
+ const rawTimeout = typeof params.timeoutMs === 'number' ? params.timeoutMs : TERMINAL_LIMITS.DEFAULT_TIMEOUT_MS;
261
+ const timeoutMs = Math.min(Math.max(rawTimeout, 1), TERMINAL_LIMITS.MAX_TIMEOUT_MS);
262
+ // 3. Resolve output limits (clamp to limits)
263
+ const stdoutLimit = typeof params.maxStdoutBytes === 'number'
264
+ ? Math.min(Math.max(params.maxStdoutBytes, 1), TERMINAL_LIMITS.MAX_OUTPUT_BYTES)
265
+ : TERMINAL_LIMITS.DEFAULT_OUTPUT_BYTES;
266
+ const stderrLimit = typeof params.maxStderrBytes === 'number'
267
+ ? Math.min(Math.max(params.maxStderrBytes, 1), TERMINAL_LIMITS.MAX_OUTPUT_BYTES)
268
+ : TERMINAL_LIMITS.DEFAULT_OUTPUT_BYTES;
269
+ // 4. Build sanitized environment
270
+ const sanitizedEnv = buildSanitizedEnv(process.env);
271
+ // 5. Check if already cancelled before spawning
272
+ if (signal?.aborted) {
273
+ return {
274
+ success: false,
275
+ exitCode: null,
276
+ signal: null,
277
+ stdout: '',
278
+ stderr: '',
279
+ stdoutTruncated: false,
280
+ stderrTruncated: false,
281
+ durationMs: Date.now() - startTime,
282
+ timedOut: false,
283
+ cancelled: true,
284
+ errorCategory: 'PROCESS_TERMINATED',
285
+ errorMessage: 'Execution was cancelled before process could start.',
286
+ };
287
+ }
288
+ this.logger.info(`Spawning process`, {
289
+ command,
290
+ argCount: args.length,
291
+ cwd: resolvedCwd,
292
+ timeoutMs,
293
+ });
294
+ // 6. Spawn process (NO SHELL — primary security control)
295
+ return new Promise((resolve) => {
296
+ let stdoutBytes = 0;
297
+ let stderrBytes = 0;
298
+ let stdoutTruncated = false;
299
+ let stderrTruncated = false;
300
+ const stdoutChunks = [];
301
+ const stderrChunks = [];
302
+ let resolved = false;
303
+ let killTimer = null;
304
+ let timeoutTimer = null;
305
+ let gracefulKillTimer = null;
306
+ const resolveOnce = (result) => {
307
+ if (resolved)
308
+ return;
309
+ resolved = true;
310
+ if (timeoutTimer)
311
+ clearTimeout(timeoutTimer);
312
+ if (killTimer)
313
+ clearTimeout(killTimer);
314
+ if (gracefulKillTimer)
315
+ clearTimeout(gracefulKillTimer);
316
+ resolve(result);
317
+ };
318
+ /**
319
+ * Gracefully terminate the process: SIGTERM, then SIGKILL after grace period.
320
+ */
321
+ const terminateProcess = (reason) => {
322
+ if (resolved)
323
+ return;
324
+ try {
325
+ child.kill('SIGTERM');
326
+ }
327
+ catch { /* ignore */ }
328
+ gracefulKillTimer = setTimeout(() => {
329
+ try {
330
+ child.kill('SIGKILL');
331
+ }
332
+ catch { /* ignore */ }
333
+ }, TERMINAL_LIMITS.KILL_GRACE_MS);
334
+ const elapsed = Date.now() - startTime;
335
+ const stdout = Buffer.concat(stdoutChunks).toString('utf8');
336
+ const stderr = Buffer.concat(stderrChunks).toString('utf8');
337
+ resolveOnce({
338
+ success: false,
339
+ exitCode: null,
340
+ signal: 'SIGTERM',
341
+ stdout,
342
+ stderr,
343
+ stdoutTruncated,
344
+ stderrTruncated,
345
+ durationMs: elapsed,
346
+ timedOut: reason === 'timeout',
347
+ cancelled: reason === 'cancelled',
348
+ errorCategory: reason === 'timeout' ? 'TIMEOUT' : 'PROCESS_TERMINATED',
349
+ errorMessage: reason === 'timeout'
350
+ ? `Process timed out after ${timeoutMs}ms.`
351
+ : 'Process was cancelled via AbortSignal.',
352
+ });
353
+ };
354
+ // Spawn with shell: false (CRITICAL — no shell interpreter)
355
+ const child = spawn(command, args, {
356
+ cwd: resolvedCwd,
357
+ env: sanitizedEnv,
358
+ shell: false, // NEVER set to true
359
+ windowsHide: true, // Hide console window on Windows
360
+ stdio: ['ignore', 'pipe', 'pipe'],
361
+ });
362
+ // Handle spawn errors (command not found, permission denied, etc.)
363
+ child.on('error', (err) => {
364
+ const elapsed = Date.now() - startTime;
365
+ this.logger.warn(`Process spawn error`, { command, error: String(err) });
366
+ resolveOnce({
367
+ success: false,
368
+ exitCode: null,
369
+ signal: null,
370
+ stdout: Buffer.concat(stdoutChunks).toString('utf8'),
371
+ stderr: Buffer.concat(stderrChunks).toString('utf8'),
372
+ stdoutTruncated,
373
+ stderrTruncated,
374
+ durationMs: elapsed,
375
+ timedOut: false,
376
+ cancelled: false,
377
+ errorCategory: 'PROCESS_ERROR',
378
+ errorMessage: `Process failed to spawn: ${err.message}`,
379
+ });
380
+ });
381
+ // Collect stdout (bounded)
382
+ child.stdout?.on('data', (chunk) => {
383
+ if (stdoutTruncated)
384
+ return;
385
+ const remaining = stdoutLimit - stdoutBytes;
386
+ if (chunk.length >= remaining) {
387
+ stdoutChunks.push(chunk.subarray(0, remaining));
388
+ stdoutBytes += remaining;
389
+ stdoutTruncated = true;
390
+ }
391
+ else {
392
+ stdoutChunks.push(chunk);
393
+ stdoutBytes += chunk.length;
394
+ }
395
+ });
396
+ // Collect stderr (bounded)
397
+ child.stderr?.on('data', (chunk) => {
398
+ if (stderrTruncated)
399
+ return;
400
+ const remaining = stderrLimit - stderrBytes;
401
+ if (chunk.length >= remaining) {
402
+ stderrChunks.push(chunk.subarray(0, remaining));
403
+ stderrBytes += remaining;
404
+ stderrTruncated = true;
405
+ }
406
+ else {
407
+ stderrChunks.push(chunk);
408
+ stderrBytes += chunk.length;
409
+ }
410
+ });
411
+ // Process exit
412
+ child.on('close', (code, sig) => {
413
+ if (resolved)
414
+ return;
415
+ const elapsed = Date.now() - startTime;
416
+ const stdout = Buffer.concat(stdoutChunks).toString('utf8');
417
+ const stderr = Buffer.concat(stderrChunks).toString('utf8');
418
+ const exitCode = code ?? null;
419
+ const exitSignal = sig ?? null;
420
+ const success = exitCode === 0 && exitSignal === null;
421
+ this.logger.info(`Process exited`, {
422
+ command,
423
+ exitCode,
424
+ signal: exitSignal,
425
+ durationMs: elapsed,
426
+ stdoutTruncated,
427
+ stderrTruncated,
428
+ });
429
+ resolveOnce({
430
+ success,
431
+ exitCode,
432
+ signal: exitSignal,
433
+ stdout,
434
+ stderr,
435
+ stdoutTruncated,
436
+ stderrTruncated,
437
+ durationMs: elapsed,
438
+ timedOut: false,
439
+ cancelled: false,
440
+ });
441
+ });
442
+ // Timeout enforcement
443
+ timeoutTimer = setTimeout(() => {
444
+ this.logger.warn(`Process timeout reached`, { command, timeoutMs });
445
+ terminateProcess('timeout');
446
+ }, timeoutMs);
447
+ // AbortSignal cancellation
448
+ if (signal) {
449
+ if (signal.aborted) {
450
+ terminateProcess('cancelled');
451
+ }
452
+ else {
453
+ const onAbort = () => {
454
+ this.logger.info(`Process abort signal received`, { command });
455
+ terminateProcess('cancelled');
456
+ };
457
+ signal.addEventListener('abort', onAbort, { once: true });
458
+ }
459
+ }
460
+ });
461
+ }
462
+ /**
463
+ * Get the canonical workspace root this adapter is bound to.
464
+ */
465
+ getWorkspaceRoot() {
466
+ return this.canonicalWorkspaceRoot;
467
+ }
468
+ errorResult(errorCategory, errorMessage, startTime) {
469
+ return {
470
+ success: false,
471
+ exitCode: null,
472
+ signal: null,
473
+ stdout: '',
474
+ stderr: '',
475
+ stdoutTruncated: false,
476
+ stderrTruncated: false,
477
+ durationMs: Date.now() - startTime,
478
+ timedOut: false,
479
+ cancelled: false,
480
+ errorCategory,
481
+ errorMessage,
482
+ };
483
+ }
484
+ }
485
+ // Export environment sanitization for testing purposes
486
+ export { buildSanitizedEnv, validateWorkspaceCwd };
487
+ //# sourceMappingURL=terminalAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminalAdapter.js","sourceRoot":"","sources":["../../../src/tools/adapters/terminalAdapter.ts"],"names":[],"mappings":"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"}