@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,34 @@
1
+ /**
2
+ * NEXUS AI — P6-D: Coding Repair Service
3
+ *
4
+ * Generates bounded repair plans when validation checks fail.
5
+ *
6
+ * SECURITY INVARIANTS:
7
+ * - Non-repairable security errors (PERMISSION_DENIED, PATH_TRAVERSAL_DENIED,
8
+ * COMMAND_NOT_ALLOWED, APPROVAL_REJECTED, etc.) IMMEDIATELY halt the repair loop.
9
+ * - Infinite loops are prevented by enforcing a strict maxRepairAttempts retry budget.
10
+ * - Repair plan proposals MUST pass through PlanValidator before execution.
11
+ * - Secrets and raw protected environment variables are NEVER passed to the model.
12
+ */
13
+ import type { PlanSynthesisService } from './planner.js';
14
+ import type { PlanValidator } from './planner.js';
15
+ import type { ToolGateway } from '../tools/index.js';
16
+ import type { RepairContext, RepairPlanResult } from './codingAgentTypes.js';
17
+ export type { RepairContext, RepairPlanResult };
18
+ import { LogLevel } from '../common/logger.js';
19
+ export declare class CodingRepairService {
20
+ private planner;
21
+ private planValidator;
22
+ private toolGateway;
23
+ private logger;
24
+ constructor(planner: PlanSynthesisService, planValidator: PlanValidator, toolGateway: ToolGateway, logLevel?: LogLevel);
25
+ /**
26
+ * Determine whether a validation failure can be repaired and synthesize a repair plan proposal.
27
+ *
28
+ * @param taskId Agent task ID.
29
+ * @param context Failure context containing goal, diffs, validation output, retry count.
30
+ * @returns Deterministic RepairPlanResult.
31
+ */
32
+ synthesizeRepairPlan(taskId: string, context: RepairContext): Promise<RepairPlanResult>;
33
+ }
34
+ //# sourceMappingURL=codingRepairService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codingRepairService.d.ts","sourceRoot":"","sources":["../../src/orchestration/codingRepairService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;AAEhD,OAAO,EAAU,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEvD,qBAAa,mBAAmB;IAI5B,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,WAAW;IALrB,OAAO,CAAC,MAAM,CAAS;gBAGb,OAAO,EAAE,oBAAoB,EAC7B,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EAChC,QAAQ,GAAE,QAAiB;IAK7B;;;;;;OAMG;IACG,oBAAoB,CACxB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,gBAAgB,CAAC;CAkG7B"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * NEXUS AI — P6-D: Coding Repair Service
3
+ *
4
+ * Generates bounded repair plans when validation checks fail.
5
+ *
6
+ * SECURITY INVARIANTS:
7
+ * - Non-repairable security errors (PERMISSION_DENIED, PATH_TRAVERSAL_DENIED,
8
+ * COMMAND_NOT_ALLOWED, APPROVAL_REJECTED, etc.) IMMEDIATELY halt the repair loop.
9
+ * - Infinite loops are prevented by enforcing a strict maxRepairAttempts retry budget.
10
+ * - Repair plan proposals MUST pass through PlanValidator before execution.
11
+ * - Secrets and raw protected environment variables are NEVER passed to the model.
12
+ */
13
+ import { NON_REPAIRABLE_SECURITY_ERRORS } from './codingAgentTypes.js';
14
+ import { Logger } from '../common/logger.js';
15
+ export class CodingRepairService {
16
+ planner;
17
+ planValidator;
18
+ toolGateway;
19
+ logger;
20
+ constructor(planner, planValidator, toolGateway, logLevel = 'info') {
21
+ this.planner = planner;
22
+ this.planValidator = planValidator;
23
+ this.toolGateway = toolGateway;
24
+ this.logger = new Logger('CodingRepairService', logLevel);
25
+ }
26
+ /**
27
+ * Determine whether a validation failure can be repaired and synthesize a repair plan proposal.
28
+ *
29
+ * @param taskId Agent task ID.
30
+ * @param context Failure context containing goal, diffs, validation output, retry count.
31
+ * @returns Deterministic RepairPlanResult.
32
+ */
33
+ async synthesizeRepairPlan(taskId, context) {
34
+ const { repairAttempt, maxRepairAttempts, errorCategory, failedValidationCommand, exitCode, stdout, stderr } = context;
35
+ this.logger.info(`Evaluating repair attempt ${repairAttempt}/${maxRepairAttempts}`, {
36
+ taskId,
37
+ errorCategory,
38
+ failedCommand: failedValidationCommand,
39
+ exitCode,
40
+ });
41
+ // 1. Non-repairable security/structural failure check — STOP IMMEDIATELY!
42
+ if (errorCategory && NON_REPAIRABLE_SECURITY_ERRORS.has(errorCategory)) {
43
+ this.logger.warn(`Repair loop halted: non-repairable security/structural failure category '${errorCategory}'`, {
44
+ taskId,
45
+ errorCategory,
46
+ });
47
+ return {
48
+ repairable: false,
49
+ reason: `Non-repairable security failure '${errorCategory}'. Repair loop halted for safety.`,
50
+ errorCategory,
51
+ };
52
+ }
53
+ // 2. Retry budget check
54
+ if (repairAttempt > maxRepairAttempts) {
55
+ this.logger.warn(`Repair loop halted: repair attempt budget (${maxRepairAttempts}) exhausted`, {
56
+ taskId,
57
+ repairAttempt,
58
+ maxRepairAttempts,
59
+ });
60
+ return {
61
+ repairable: false,
62
+ reason: `Repair budget exhausted after ${maxRepairAttempts} attempt(s).`,
63
+ errorCategory: 'REPAIR_BUDGET_EXHAUSTED',
64
+ };
65
+ }
66
+ // 3. Construct clean, secret-safe repair prompt
67
+ const sanitizeText = (txt) => txt.slice(-2000).replace(/[\x00-\x08\x0b\x0c\x0e-\x1f]/g, '');
68
+ const repairPrompt = [
69
+ `TASK GOAL: ${context.taskGoal}`,
70
+ `REPAIR ATTEMPT: ${repairAttempt} of ${maxRepairAttempts}`,
71
+ `FAILED COMMAND: ${failedValidationCommand} (exit code: ${exitCode})`,
72
+ `ERROR CATEGORY: ${errorCategory || 'VALIDATION_FAILURE'}`,
73
+ `CHANGED FILES: ${context.changedFiles.join(', ') || 'none'}`,
74
+ `STDERR OUTPUT:\n${sanitizeText(stderr)}`,
75
+ `STDOUT OUTPUT:\n${sanitizeText(stdout)}`,
76
+ `INSTRUCTION: Propose a plan with filesystem_edit or filesystem_write steps to fix the error.`,
77
+ ].join('\n\n');
78
+ // 4. Synthesize plan proposal via PlanSynthesisService
79
+ const synthResult = await this.planner.synthesize(taskId, {
80
+ taskGoal: repairPrompt,
81
+ temperature: 0.2,
82
+ maxSteps: 5,
83
+ });
84
+ if (!synthResult.success || !synthResult.plan) {
85
+ this.logger.warn(`Repair plan synthesis failed`, {
86
+ taskId,
87
+ errorCategory: synthResult.errorCategory,
88
+ errorMessage: synthResult.errorMessage,
89
+ });
90
+ return {
91
+ repairable: false,
92
+ reason: `Repair plan synthesis failed: ${synthResult.errorMessage || 'Unable to generate repair plan.'}`,
93
+ errorCategory: synthResult.errorCategory || 'PLAN_SYNTHESIS_FAILED',
94
+ };
95
+ }
96
+ // 5. Validate repair plan via PlanValidator
97
+ const valResult = this.planValidator.validate(synthResult.plan, taskId, 5);
98
+ if (!valResult.valid) {
99
+ this.logger.warn(`Repair plan validation failed`, {
100
+ taskId,
101
+ errors: valResult.errors,
102
+ });
103
+ return {
104
+ repairable: false,
105
+ reason: `Repair plan failed validation: ${valResult.errors.map((e) => e.message).join('; ')}`,
106
+ errorCategory: 'PLAN_VALIDATION_FAILED',
107
+ };
108
+ }
109
+ this.logger.info(`Repair plan successfully synthesized and validated`, {
110
+ taskId,
111
+ repairStepCount: synthResult.plan.steps.length,
112
+ });
113
+ return {
114
+ repairable: true,
115
+ reason: `Repair plan generated for attempt ${repairAttempt}.`,
116
+ repairPlan: synthResult.plan,
117
+ };
118
+ }
119
+ }
120
+ //# sourceMappingURL=codingRepairService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codingRepairService.js","sourceRoot":"","sources":["../../src/orchestration/codingRepairService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * NEXUS AI - P7-F.1: Production-Grade Goal Completion Verifier
3
+ *
4
+ * Prevents false positive task completions.
5
+ *
6
+ * Distinguishes:
7
+ * 1. PLAN EXECUTION SUCCESS (all steps in a plan succeeded)
8
+ * 2. GOAL COMPLETION (the user's requested goal was actually achieved)
9
+ *
10
+ * Security & Sandbox Invariants:
11
+ * - Enforces workspace root sandbox boundaries on all path checks.
12
+ * - Performs zero arbitrary shell execution or state mutations.
13
+ * - Deterministic and pure observation layer over the workspace filesystem.
14
+ */
15
+ import type { AgentPlanStep } from './types.js';
16
+ import { LogLevel } from '../common/logger.js';
17
+ export interface GoalVerificationResult {
18
+ verified: boolean;
19
+ errorCategory?: string;
20
+ errorMessage?: string;
21
+ artifactsChecked?: string[];
22
+ }
23
+ export declare class GoalCompletionVerifier {
24
+ private logger;
25
+ constructor(logLevel?: LogLevel);
26
+ /**
27
+ * Verifies whether an executed task has truly satisfied its goal before
28
+ * allowing the task state to transition to COMPLETED.
29
+ *
30
+ * @param taskGoal - The natural language task goal.
31
+ * @param steps - The execution plan steps that were run.
32
+ * @param workspaceRoot - The canonical workspace sandbox root path.
33
+ */
34
+ verifyGoal(taskGoal: string, steps: AgentPlanStep[], workspaceRoot: string): GoalVerificationResult;
35
+ }
36
+ //# sourceMappingURL=goalCompletionVerifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goalCompletionVerifier.d.ts","sourceRoot":"","sources":["../../src/orchestration/goalCompletionVerifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAU,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAS;gBAEX,QAAQ,GAAE,QAAiB;IAIvC;;;;;;;OAOG;IACH,UAAU,CACR,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,aAAa,EAAE,EACtB,aAAa,EAAE,MAAM,GACpB,sBAAsB;CA6J1B"}
@@ -0,0 +1,165 @@
1
+ /**
2
+ * NEXUS AI - P7-F.1: Production-Grade Goal Completion Verifier
3
+ *
4
+ * Prevents false positive task completions.
5
+ *
6
+ * Distinguishes:
7
+ * 1. PLAN EXECUTION SUCCESS (all steps in a plan succeeded)
8
+ * 2. GOAL COMPLETION (the user's requested goal was actually achieved)
9
+ *
10
+ * Security & Sandbox Invariants:
11
+ * - Enforces workspace root sandbox boundaries on all path checks.
12
+ * - Performs zero arbitrary shell execution or state mutations.
13
+ * - Deterministic and pure observation layer over the workspace filesystem.
14
+ */
15
+ import * as fs from 'fs';
16
+ import * as path from 'path';
17
+ import { isAuthoringGoal } from './planner.js';
18
+ import { Logger } from '../common/logger.js';
19
+ export class GoalCompletionVerifier {
20
+ logger;
21
+ constructor(logLevel = 'info') {
22
+ this.logger = new Logger('GoalCompletionVerifier', logLevel);
23
+ }
24
+ /**
25
+ * Verifies whether an executed task has truly satisfied its goal before
26
+ * allowing the task state to transition to COMPLETED.
27
+ *
28
+ * @param taskGoal - The natural language task goal.
29
+ * @param steps - The execution plan steps that were run.
30
+ * @param workspaceRoot - The canonical workspace sandbox root path.
31
+ */
32
+ verifyGoal(taskGoal, steps, workspaceRoot) {
33
+ this.logger.info(`Starting goal completion verification`, { taskGoal, workspaceRoot });
34
+ const isAuthoring = isAuthoringGoal(taskGoal);
35
+ // ── READ-ONLY / INSPECTION GOALS ──────────────────────────────────────────
36
+ if (!isAuthoring) {
37
+ this.logger.info(`Goal verified as read-only / inspection task`);
38
+ return { verified: true, artifactsChecked: [] };
39
+ }
40
+ // ── AUTHORING / CREATION GOALS ────────────────────────────────────────────
41
+ // Check 1: Ensure mutation / creation steps actually executed and succeeded
42
+ const mutationSteps = steps.filter((s) => s.status === 'completed' &&
43
+ (s.toolId === 'filesystem_write' ||
44
+ s.toolId === 'filesystem_edit' ||
45
+ s.toolId === 'terminal_execute'));
46
+ if (mutationSteps.length === 0) {
47
+ this.logger.warn(`Verification failed: no creation/authoring steps succeeded`, { taskGoal });
48
+ return {
49
+ verified: false,
50
+ errorCategory: 'NO_AUTHORING_STEPS',
51
+ errorMessage: 'Task goal requested creation/authoring, but no file creation or modification steps were executed.',
52
+ };
53
+ }
54
+ // Check 2: Extract expected target artifact relative paths
55
+ const expectedPaths = new Set();
56
+ // 2a. Extract paths from filesystem_write / filesystem_edit step params
57
+ mutationSteps.forEach((s) => {
58
+ if (s.params) {
59
+ const rel = typeof s.params.relativePath === 'string'
60
+ ? s.params.relativePath.trim()
61
+ : typeof s.params.path === 'string'
62
+ ? s.params.path.trim()
63
+ : '';
64
+ if (rel)
65
+ expectedPaths.add(rel);
66
+ }
67
+ });
68
+ // 2b. Extract explicitly named files from the task goal (order longer extensions first so .json is not matched as .js)
69
+ const explicitFileRegex = /([a-zA-Z0-9_\-\/\\]+\.(html|css|json|jsx|tsx|yaml|yml|txt|py|md|sh|ts|js))\b/gi;
70
+ let match;
71
+ while ((match = explicitFileRegex.exec(taskGoal)) !== null) {
72
+ const extracted = match[1].replace(/\\/g, '/');
73
+ // Ignore generic words like "file.html"
74
+ if (!extracted.startsWith('http') && !extracted.includes('*')) {
75
+ expectedPaths.add(extracted);
76
+ }
77
+ }
78
+ // If goal mentions a subdirectory (e.g., "calculator-test"), expand file references
79
+ const folderMatch = taskGoal.match(/(?:folder|directory|called|named)\s+([a-zA-Z0-9_\-]+)/i);
80
+ if (folderMatch && folderMatch[1]) {
81
+ const folderName = folderMatch[1].trim();
82
+ ['index.html', 'style.css', 'script.js'].forEach((fileName) => {
83
+ if (taskGoal.toLowerCase().includes(fileName)) {
84
+ expectedPaths.add(`${folderName}/${fileName}`);
85
+ }
86
+ });
87
+ }
88
+ if (expectedPaths.size === 0) {
89
+ // Fallback: if no specific paths extracted, ensure at least one written step exists
90
+ this.logger.info(`Authoring steps completed (no explicit filename pattern extracted)`);
91
+ return { verified: true, artifactsChecked: [] };
92
+ }
93
+ let canonicalRoot;
94
+ try {
95
+ canonicalRoot = fs.realpathSync(workspaceRoot);
96
+ }
97
+ catch {
98
+ canonicalRoot = path.resolve(workspaceRoot);
99
+ }
100
+ const checked = [];
101
+ // Check 3: Verify each expected artifact exists & is non-empty
102
+ for (const relPath of expectedPaths) {
103
+ const absPath = path.resolve(canonicalRoot, relPath);
104
+ // Sandbox safety check
105
+ if (!absPath.startsWith(canonicalRoot)) {
106
+ this.logger.warn(`Path traversal attempt blocked in verification: ${relPath}`);
107
+ return {
108
+ verified: false,
109
+ errorCategory: 'PERMISSION_DENIED',
110
+ errorMessage: `Verification path '${relPath}' is outside workspace root sandbox.`,
111
+ };
112
+ }
113
+ if (!fs.existsSync(absPath)) {
114
+ this.logger.warn(`Verification failed: missing expected artifact '${relPath}'`);
115
+ return {
116
+ verified: false,
117
+ errorCategory: 'MISSING_ARTIFACT',
118
+ errorMessage: `Expected artifact file '${relPath}' does not exist in workspace.`,
119
+ artifactsChecked: checked,
120
+ };
121
+ }
122
+ const stat = fs.statSync(absPath);
123
+ if (stat.isFile() && stat.size === 0) {
124
+ this.logger.warn(`Verification failed: empty artifact '${relPath}' (0 bytes)`);
125
+ return {
126
+ verified: false,
127
+ errorCategory: 'EMPTY_ARTIFACT',
128
+ errorMessage: `Expected artifact file '${relPath}' exists but is 0 bytes (empty).`,
129
+ artifactsChecked: checked,
130
+ };
131
+ }
132
+ checked.push(relPath);
133
+ }
134
+ // Check 4: Cross-reference verification for web authoring (HTML + CSS / JS)
135
+ const lowerGoal = taskGoal.toLowerCase();
136
+ const isWebGoal = lowerGoal.includes('html') || lowerGoal.includes('calculator') || lowerGoal.includes('webpage') || lowerGoal.includes('website');
137
+ if (isWebGoal) {
138
+ const htmlPathRel = Array.from(checked).find((p) => p.endsWith('.html'));
139
+ if (htmlPathRel) {
140
+ const htmlAbs = path.resolve(canonicalRoot, htmlPathRel);
141
+ if (fs.existsSync(htmlAbs)) {
142
+ const htmlContent = fs.readFileSync(htmlAbs, 'utf8').toLowerCase();
143
+ const hasCssRef = Array.from(checked).some((p) => p.endsWith('.css'))
144
+ ? htmlContent.includes('.css') || htmlContent.includes('<style')
145
+ : true;
146
+ const hasJsRef = Array.from(checked).some((p) => p.endsWith('.js'))
147
+ ? htmlContent.includes('.js') || htmlContent.includes('<script')
148
+ : true;
149
+ if (!hasCssRef || !hasJsRef) {
150
+ this.logger.warn(`Verification failed: HTML artifact '${htmlPathRel}' missing CSS or JS references`);
151
+ return {
152
+ verified: false,
153
+ errorCategory: 'CONTENT_VERIFICATION_FAILED',
154
+ errorMessage: `HTML artifact '${htmlPathRel}' does not reference expected CSS/JS files.`,
155
+ artifactsChecked: checked,
156
+ };
157
+ }
158
+ }
159
+ }
160
+ }
161
+ this.logger.info(`Goal completion verification succeeded`, { checkedCount: checked.length });
162
+ return { verified: true, artifactsChecked: checked };
163
+ }
164
+ }
165
+ //# sourceMappingURL=goalCompletionVerifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goalCompletionVerifier.js","sourceRoot":"","sources":["../../src/orchestration/goalCompletionVerifier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * NEXUS AI — Human Approval Service
3
+ *
4
+ * Orchestrates the human approval lifecycle: request creation, policy evaluation,
5
+ * task state machine integration (transition to/from awaiting_approval), expiration,
6
+ * resolution, and privacy-safe audit logging.
7
+ *
8
+ * SECURITY INVARIANTS:
9
+ * - Terminal approval states (approved, rejected, expired, cancelled) CANNOT be reopened.
10
+ * - Approval DOES NOT equal permission — authorization remains mandatory via PermissionEngine.
11
+ * - Privacy-safe logging: Secrets, full prompts, model responses, and raw document contents are NEVER logged.
12
+ */
13
+ import type { AgentTaskService } from './agentTaskService.js';
14
+ import type { AgentTask } from '../storage/repositories/types.js';
15
+ import type { ToolGateway } from '../tools/index.js';
16
+ import type { ApprovalRepository } from '../storage/repositories/approvalRepository.js';
17
+ import type { ApprovalRequest, CreateApprovalRequestDto, ApprovalPolicyConfig, ApprovalDecision } from '../tools/approvalTypes.js';
18
+ import { ApprovalPolicyEngine } from '../tools/approvalPolicyEngine.js';
19
+ import { ApprovalGate } from '../tools/approvalGate.js';
20
+ import { LogLevel } from '../common/logger.js';
21
+ export interface ResolveApprovalResult {
22
+ success: boolean;
23
+ approval: ApprovalRequest;
24
+ task: AgentTask | null;
25
+ error?: string;
26
+ }
27
+ export declare class HumanApprovalService {
28
+ private taskService;
29
+ private toolGateway;
30
+ private repository?;
31
+ private policyEngine;
32
+ private approvalGate;
33
+ private logger;
34
+ private memoryStore;
35
+ constructor(taskService: AgentTaskService, toolGateway: ToolGateway, repository?: ApprovalRepository | undefined, policyConfig?: Partial<ApprovalPolicyConfig>, logLevel?: LogLevel);
36
+ /**
37
+ * Create an approval request for a task step based on policy evaluation.
38
+ */
39
+ createApprovalRequest(dto: CreateApprovalRequestDto): {
40
+ approval: ApprovalRequest;
41
+ decision: ApprovalDecision;
42
+ task: AgentTask;
43
+ };
44
+ /**
45
+ * Resolve a pending approval request with explicit user decision ('approved' | 'rejected').
46
+ */
47
+ resolveApproval(approvalId: string, userDecision: 'approved' | 'rejected', reason?: string): ResolveApprovalResult;
48
+ /**
49
+ * Retrieve an approval request by ID, automatically evaluating expiration if pending.
50
+ */
51
+ getApproval(approvalId: string): ApprovalRequest | null;
52
+ /**
53
+ * Retrieve all approval requests for a task.
54
+ */
55
+ getApprovalsForTask(taskId: string): ApprovalRequest[];
56
+ /**
57
+ * List all pending approval requests.
58
+ */
59
+ listPendingApprovals(): ApprovalRequest[];
60
+ /**
61
+ * Respond to an approval request with decision APPROVED or REJECTED.
62
+ */
63
+ respondToApproval(approvalId: string, params: {
64
+ decision: 'APPROVED' | 'REJECTED';
65
+ reason?: string;
66
+ }): ApprovalRequest;
67
+ /**
68
+ * Evaluate the ApprovalGate for a given task step.
69
+ */
70
+ evaluateGateForStep(taskId: string, stepId: string): ReturnType<ApprovalGate['evaluateGate']>;
71
+ /**
72
+ * Expire all stale pending approvals.
73
+ */
74
+ expireStaleApprovals(): number;
75
+ /**
76
+ * Invalidate/cancel all pending approvals for a task (e.g. when task is cancelled).
77
+ */
78
+ cancelApprovalsForTask(taskId: string, reason?: string): number;
79
+ /**
80
+ * Get policy engine instance.
81
+ */
82
+ getPolicyEngine(): ApprovalPolicyEngine;
83
+ /**
84
+ * Get approval gate instance.
85
+ */
86
+ getGate(): ApprovalGate;
87
+ private saveApproval;
88
+ }
89
+ //# sourceMappingURL=humanApprovalService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"humanApprovalService.d.ts","sourceRoot":"","sources":["../../src/orchestration/humanApprovalService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACxF,OAAO,KAAK,EACV,eAAe,EAEf,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAU,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,eAAe,CAAC;IAC1B,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,oBAAoB;IAS7B,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU,CAAC;IAVrB,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAAS;IAGvB,OAAO,CAAC,WAAW,CAAsC;gBAG/C,WAAW,EAAE,gBAAgB,EAC7B,WAAW,EAAE,WAAW,EACxB,UAAU,CAAC,EAAE,kBAAkB,YAAA,EACvC,YAAY,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAC5C,QAAQ,GAAE,QAAiB;IAO7B;;OAEG;IACH,qBAAqB,CAAC,GAAG,EAAE,wBAAwB,GAAG;QACpD,QAAQ,EAAE,eAAe,CAAC;QAC1B,QAAQ,EAAE,gBAAgB,CAAC;QAC3B,IAAI,EAAE,SAAS,CAAC;KACjB;IAoFD;;OAEG;IACH,eAAe,CACb,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,UAAU,GAAG,UAAU,EACrC,MAAM,CAAC,EAAE,MAAM,GACd,qBAAqB;IAqGxB;;OAEG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAyBvD;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,EAAE;IAOtD;;OAEG;IACH,oBAAoB,IAAI,eAAe,EAAE;IAOzC;;OAEG;IACH,iBAAiB,CACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE;QAAE,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7D,eAAe;IASlB;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAsB7F;;OAEG;IACH,oBAAoB,IAAI,MAAM;IAmB9B;;OAEG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAyB,GAAG,MAAM;IAmBjF;;OAEG;IACH,eAAe,IAAI,oBAAoB;IAIvC;;OAEG;IACH,OAAO,IAAI,YAAY;IAIvB,OAAO,CAAC,YAAY;CAiBrB"}