@trenchwork/erosolar 1.1.30 → 1.1.32

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.

Potentially problematic release.


This version of @trenchwork/erosolar might be problematic. Click here for more details.

Files changed (819) hide show
  1. package/README.md +6 -6
  2. package/SECURITY.md +4 -4
  3. package/dist/bin/cliMode.d.ts +8 -0
  4. package/dist/bin/cliMode.d.ts.map +1 -0
  5. package/dist/bin/cliMode.js +20 -0
  6. package/dist/bin/cliMode.js.map +1 -0
  7. package/dist/bin/deepseek.d.ts +3 -0
  8. package/dist/bin/deepseek.d.ts.map +1 -0
  9. package/dist/bin/deepseek.js +345 -0
  10. package/dist/bin/deepseek.js.map +1 -0
  11. package/dist/bin/erosolar.d.ts +7 -0
  12. package/dist/bin/erosolar.d.ts.map +1 -0
  13. package/dist/bin/erosolar.js +7 -0
  14. package/dist/bin/erosolar.js.map +1 -0
  15. package/dist/bin/selfTest.d.ts +14 -0
  16. package/dist/bin/selfTest.d.ts.map +1 -0
  17. package/dist/bin/selfTest.js +298 -0
  18. package/dist/bin/selfTest.js.map +1 -0
  19. package/dist/capabilities/_binaryRequirements.d.ts +101 -0
  20. package/dist/capabilities/_binaryRequirements.d.ts.map +1 -0
  21. package/dist/capabilities/_binaryRequirements.js +288 -0
  22. package/dist/capabilities/_binaryRequirements.js.map +1 -0
  23. package/dist/capabilities/_opsContext.d.ts +129 -0
  24. package/dist/capabilities/_opsContext.d.ts.map +1 -0
  25. package/dist/capabilities/_opsContext.js +274 -0
  26. package/dist/capabilities/_opsContext.js.map +1 -0
  27. package/dist/capabilities/_processRunner.d.ts +49 -0
  28. package/dist/capabilities/_processRunner.d.ts.map +1 -0
  29. package/dist/capabilities/_processRunner.js +200 -0
  30. package/dist/capabilities/_processRunner.js.map +1 -0
  31. package/dist/capabilities/aflppCapability.d.ts +7 -0
  32. package/dist/capabilities/aflppCapability.d.ts.map +1 -0
  33. package/dist/capabilities/aflppCapability.js +301 -0
  34. package/dist/capabilities/aflppCapability.js.map +1 -0
  35. package/dist/capabilities/baseCapability.d.ts +72 -0
  36. package/dist/capabilities/baseCapability.d.ts.map +1 -0
  37. package/dist/capabilities/baseCapability.js +183 -0
  38. package/dist/capabilities/baseCapability.js.map +1 -0
  39. package/dist/capabilities/bashCapability.d.ts +13 -0
  40. package/dist/capabilities/bashCapability.d.ts.map +1 -0
  41. package/dist/capabilities/bashCapability.js +24 -0
  42. package/dist/capabilities/bashCapability.js.map +1 -0
  43. package/dist/capabilities/binaryAnalysisCapability.d.ts +7 -0
  44. package/dist/capabilities/binaryAnalysisCapability.d.ts.map +1 -0
  45. package/dist/capabilities/binaryAnalysisCapability.js +201 -0
  46. package/dist/capabilities/binaryAnalysisCapability.js.map +1 -0
  47. package/dist/capabilities/editCapability.d.ts +17 -0
  48. package/dist/capabilities/editCapability.d.ts.map +1 -0
  49. package/dist/capabilities/editCapability.js +27 -0
  50. package/dist/capabilities/editCapability.js.map +1 -0
  51. package/dist/capabilities/engagementCapability.d.ts +15 -0
  52. package/dist/capabilities/engagementCapability.d.ts.map +1 -0
  53. package/dist/capabilities/engagementCapability.js +40 -0
  54. package/dist/capabilities/engagementCapability.js.map +1 -0
  55. package/dist/capabilities/enhancedGitCapability.d.ts +7 -0
  56. package/dist/capabilities/enhancedGitCapability.d.ts.map +1 -0
  57. package/dist/capabilities/enhancedGitCapability.js +220 -0
  58. package/dist/capabilities/enhancedGitCapability.js.map +1 -0
  59. package/dist/capabilities/filesystemCapability.d.ts +13 -0
  60. package/dist/capabilities/filesystemCapability.d.ts.map +1 -0
  61. package/dist/capabilities/filesystemCapability.js +24 -0
  62. package/dist/capabilities/filesystemCapability.js.map +1 -0
  63. package/dist/capabilities/gdbCapability.d.ts +7 -0
  64. package/dist/capabilities/gdbCapability.d.ts.map +1 -0
  65. package/dist/capabilities/gdbCapability.js +125 -0
  66. package/dist/capabilities/gdbCapability.js.map +1 -0
  67. package/dist/capabilities/ghidraHeadlessCapability.d.ts +25 -0
  68. package/dist/capabilities/ghidraHeadlessCapability.d.ts.map +1 -0
  69. package/dist/capabilities/ghidraHeadlessCapability.js +593 -0
  70. package/dist/capabilities/ghidraHeadlessCapability.js.map +1 -0
  71. package/dist/capabilities/gitHistoryCapability.d.ts +6 -0
  72. package/dist/capabilities/gitHistoryCapability.d.ts.map +1 -0
  73. package/dist/capabilities/gitHistoryCapability.js +184 -0
  74. package/dist/capabilities/gitHistoryCapability.js.map +1 -0
  75. package/dist/capabilities/hitlCapability.d.ts +18 -0
  76. package/dist/capabilities/hitlCapability.d.ts.map +1 -0
  77. package/dist/capabilities/hitlCapability.js +29 -0
  78. package/dist/capabilities/hitlCapability.js.map +1 -0
  79. package/dist/capabilities/index.d.ts +26 -0
  80. package/dist/capabilities/index.d.ts.map +1 -0
  81. package/dist/capabilities/index.js +31 -0
  82. package/dist/capabilities/index.js.map +1 -0
  83. package/dist/capabilities/interactionCapability.d.ts +6 -0
  84. package/dist/capabilities/interactionCapability.d.ts.map +1 -0
  85. package/dist/capabilities/interactionCapability.js +17 -0
  86. package/dist/capabilities/interactionCapability.js.map +1 -0
  87. package/dist/capabilities/kaliCapability.d.ts +14 -0
  88. package/dist/capabilities/kaliCapability.d.ts.map +1 -0
  89. package/dist/capabilities/kaliCapability.js +478 -0
  90. package/dist/capabilities/kaliCapability.js.map +1 -0
  91. package/dist/capabilities/llmRedteamCapability.d.ts +38 -0
  92. package/dist/capabilities/llmRedteamCapability.d.ts.map +1 -0
  93. package/dist/capabilities/llmRedteamCapability.js +340 -0
  94. package/dist/capabilities/llmRedteamCapability.js.map +1 -0
  95. package/dist/capabilities/mcpCapability.d.ts +7 -0
  96. package/dist/capabilities/mcpCapability.d.ts.map +1 -0
  97. package/dist/capabilities/mcpCapability.js +82 -0
  98. package/dist/capabilities/mcpCapability.js.map +1 -0
  99. package/dist/capabilities/memoryCapability.d.ts +10 -0
  100. package/dist/capabilities/memoryCapability.d.ts.map +1 -0
  101. package/dist/capabilities/memoryCapability.js +22 -0
  102. package/dist/capabilities/memoryCapability.js.map +1 -0
  103. package/dist/capabilities/monitorCapability.d.ts +6 -0
  104. package/dist/capabilities/monitorCapability.d.ts.map +1 -0
  105. package/dist/capabilities/monitorCapability.js +19 -0
  106. package/dist/capabilities/monitorCapability.js.map +1 -0
  107. package/dist/capabilities/notebookCapability.d.ts +6 -0
  108. package/dist/capabilities/notebookCapability.d.ts.map +1 -0
  109. package/dist/capabilities/notebookCapability.js +17 -0
  110. package/dist/capabilities/notebookCapability.js.map +1 -0
  111. package/dist/capabilities/planModeCapability.d.ts +6 -0
  112. package/dist/capabilities/planModeCapability.d.ts.map +1 -0
  113. package/dist/capabilities/planModeCapability.js +16 -0
  114. package/dist/capabilities/planModeCapability.js.map +1 -0
  115. package/dist/capabilities/pwntoolsCapability.d.ts +7 -0
  116. package/dist/capabilities/pwntoolsCapability.d.ts.map +1 -0
  117. package/dist/capabilities/pwntoolsCapability.js +109 -0
  118. package/dist/capabilities/pwntoolsCapability.js.map +1 -0
  119. package/dist/capabilities/scheduleCapability.d.ts +6 -0
  120. package/dist/capabilities/scheduleCapability.d.ts.map +1 -0
  121. package/dist/capabilities/scheduleCapability.js +16 -0
  122. package/dist/capabilities/scheduleCapability.js.map +1 -0
  123. package/dist/capabilities/searchCapability.d.ts +19 -0
  124. package/dist/capabilities/searchCapability.d.ts.map +1 -0
  125. package/dist/capabilities/searchCapability.js +29 -0
  126. package/dist/capabilities/searchCapability.js.map +1 -0
  127. package/dist/capabilities/skillCapability.d.ts +6 -0
  128. package/dist/capabilities/skillCapability.d.ts.map +1 -0
  129. package/dist/capabilities/skillCapability.js +17 -0
  130. package/dist/capabilities/skillCapability.js.map +1 -0
  131. package/dist/capabilities/todoCapability.d.ts +11 -0
  132. package/dist/capabilities/todoCapability.d.ts.map +1 -0
  133. package/dist/capabilities/todoCapability.js +22 -0
  134. package/dist/capabilities/todoCapability.js.map +1 -0
  135. package/dist/capabilities/toolManifest.d.ts +3 -0
  136. package/dist/capabilities/toolManifest.d.ts.map +1 -0
  137. package/dist/capabilities/toolManifest.js +163 -0
  138. package/dist/capabilities/toolManifest.js.map +1 -0
  139. package/dist/capabilities/toolRegistry.d.ts +25 -0
  140. package/dist/capabilities/toolRegistry.d.ts.map +1 -0
  141. package/dist/capabilities/toolRegistry.js +150 -0
  142. package/dist/capabilities/toolRegistry.js.map +1 -0
  143. package/dist/capabilities/triggerCapability.d.ts +6 -0
  144. package/dist/capabilities/triggerCapability.d.ts.map +1 -0
  145. package/dist/capabilities/triggerCapability.js +16 -0
  146. package/dist/capabilities/triggerCapability.js.map +1 -0
  147. package/dist/capabilities/unifiedCodingCapability.d.ts +62 -0
  148. package/dist/capabilities/unifiedCodingCapability.d.ts.map +1 -0
  149. package/dist/capabilities/unifiedCodingCapability.js +788 -0
  150. package/dist/capabilities/unifiedCodingCapability.js.map +1 -0
  151. package/dist/capabilities/webCapability.d.ts +23 -0
  152. package/dist/capabilities/webCapability.d.ts.map +1 -0
  153. package/dist/capabilities/webCapability.js +33 -0
  154. package/dist/capabilities/webCapability.js.map +1 -0
  155. package/dist/capabilities/worktreeCapability.d.ts +6 -0
  156. package/dist/capabilities/worktreeCapability.d.ts.map +1 -0
  157. package/dist/capabilities/worktreeCapability.js +16 -0
  158. package/dist/capabilities/worktreeCapability.js.map +1 -0
  159. package/dist/cli/offsecInstall.d.ts +43 -0
  160. package/dist/cli/offsecInstall.d.ts.map +1 -0
  161. package/dist/cli/offsecInstall.js +258 -0
  162. package/dist/cli/offsecInstall.js.map +1 -0
  163. package/dist/config.d.ts +25 -0
  164. package/dist/config.d.ts.map +1 -0
  165. package/dist/config.js +155 -0
  166. package/dist/config.js.map +1 -0
  167. package/dist/contracts/v1/agent.d.ts +179 -0
  168. package/dist/contracts/v1/agent.d.ts.map +1 -0
  169. package/dist/contracts/v1/agent.js +8 -0
  170. package/dist/contracts/v1/agent.js.map +1 -0
  171. package/dist/contracts/v1/agentProfileManifest.d.ts +60 -0
  172. package/dist/contracts/v1/agentProfileManifest.d.ts.map +1 -0
  173. package/dist/contracts/v1/agentProfileManifest.js +9 -0
  174. package/dist/contracts/v1/agentProfileManifest.js.map +1 -0
  175. package/dist/contracts/v1/agentRules.d.ts +60 -0
  176. package/dist/contracts/v1/agentRules.d.ts.map +1 -0
  177. package/dist/contracts/v1/agentRules.js +10 -0
  178. package/dist/contracts/v1/agentRules.js.map +1 -0
  179. package/dist/contracts/v1/provider.d.ts +149 -0
  180. package/dist/contracts/v1/provider.d.ts.map +1 -0
  181. package/dist/contracts/v1/provider.js +7 -0
  182. package/dist/contracts/v1/provider.js.map +1 -0
  183. package/dist/contracts/v1/tool.d.ts +136 -0
  184. package/dist/contracts/v1/tool.d.ts.map +1 -0
  185. package/dist/contracts/v1/tool.js +7 -0
  186. package/dist/contracts/v1/tool.js.map +1 -0
  187. package/dist/contracts/v1/toolAccess.d.ts +43 -0
  188. package/dist/contracts/v1/toolAccess.d.ts.map +1 -0
  189. package/dist/contracts/v1/toolAccess.js +9 -0
  190. package/dist/contracts/v1/toolAccess.js.map +1 -0
  191. package/dist/core/agent.d.ts +320 -0
  192. package/dist/core/agent.d.ts.map +1 -0
  193. package/dist/core/agent.js +1627 -0
  194. package/dist/core/agent.js.map +1 -0
  195. package/dist/core/agentProfileManifest.d.ts +3 -0
  196. package/dist/core/agentProfileManifest.d.ts.map +1 -0
  197. package/dist/core/agentProfileManifest.js +188 -0
  198. package/dist/core/agentProfileManifest.js.map +1 -0
  199. package/dist/core/agentProfiles.d.ts +22 -0
  200. package/dist/core/agentProfiles.d.ts.map +1 -0
  201. package/dist/core/agentProfiles.js +35 -0
  202. package/dist/core/agentProfiles.js.map +1 -0
  203. package/dist/core/agentRegistry.d.ts +111 -0
  204. package/dist/core/agentRegistry.d.ts.map +1 -0
  205. package/dist/core/agentRegistry.js +229 -0
  206. package/dist/core/agentRegistry.js.map +1 -0
  207. package/dist/core/agentRulebook.d.ts +11 -0
  208. package/dist/core/agentRulebook.d.ts.map +1 -0
  209. package/dist/core/agentRulebook.js +136 -0
  210. package/dist/core/agentRulebook.js.map +1 -0
  211. package/dist/core/agentSchemaLoader.d.ts +131 -0
  212. package/dist/core/agentSchemaLoader.d.ts.map +1 -0
  213. package/dist/core/agentSchemaLoader.js +235 -0
  214. package/dist/core/agentSchemaLoader.js.map +1 -0
  215. package/dist/core/aiErrorFixer.d.ts +57 -0
  216. package/dist/core/aiErrorFixer.d.ts.map +1 -0
  217. package/dist/core/aiErrorFixer.js +214 -0
  218. package/dist/core/aiErrorFixer.js.map +1 -0
  219. package/dist/core/artifactStore.d.ts +35 -0
  220. package/dist/core/artifactStore.d.ts.map +1 -0
  221. package/dist/core/artifactStore.js +105 -0
  222. package/dist/core/artifactStore.js.map +1 -0
  223. package/dist/core/auth.d.ts +15 -0
  224. package/dist/core/auth.d.ts.map +1 -0
  225. package/dist/core/auth.js +345 -0
  226. package/dist/core/auth.js.map +1 -0
  227. package/dist/core/bashCommandGuidance.d.ts +16 -0
  228. package/dist/core/bashCommandGuidance.d.ts.map +1 -0
  229. package/dist/core/bashCommandGuidance.js +40 -0
  230. package/dist/core/bashCommandGuidance.js.map +1 -0
  231. package/dist/core/constants.d.ts +31 -0
  232. package/dist/core/constants.d.ts.map +1 -0
  233. package/dist/core/constants.js +62 -0
  234. package/dist/core/constants.js.map +1 -0
  235. package/dist/core/contextManager.d.ts +271 -0
  236. package/dist/core/contextManager.d.ts.map +1 -0
  237. package/dist/core/contextManager.js +1073 -0
  238. package/dist/core/contextManager.js.map +1 -0
  239. package/dist/core/contextWindow.d.ts +42 -0
  240. package/dist/core/contextWindow.d.ts.map +1 -0
  241. package/dist/core/contextWindow.js +123 -0
  242. package/dist/core/contextWindow.js.map +1 -0
  243. package/dist/core/customCommands.d.ts +19 -0
  244. package/dist/core/customCommands.d.ts.map +1 -0
  245. package/dist/core/customCommands.js +85 -0
  246. package/dist/core/customCommands.js.map +1 -0
  247. package/dist/core/errors/apiKeyErrors.d.ts +11 -0
  248. package/dist/core/errors/apiKeyErrors.d.ts.map +1 -0
  249. package/dist/core/errors/apiKeyErrors.js +159 -0
  250. package/dist/core/errors/apiKeyErrors.js.map +1 -0
  251. package/dist/core/errors/errorTypes.d.ts +111 -0
  252. package/dist/core/errors/errorTypes.d.ts.map +1 -0
  253. package/dist/core/errors/errorTypes.js +345 -0
  254. package/dist/core/errors/errorTypes.js.map +1 -0
  255. package/dist/core/errors/index.d.ts +50 -0
  256. package/dist/core/errors/index.d.ts.map +1 -0
  257. package/dist/core/errors/index.js +156 -0
  258. package/dist/core/errors/index.js.map +1 -0
  259. package/dist/core/errors/networkErrors.d.ts +14 -0
  260. package/dist/core/errors/networkErrors.d.ts.map +1 -0
  261. package/dist/core/errors/networkErrors.js +53 -0
  262. package/dist/core/errors/networkErrors.js.map +1 -0
  263. package/dist/core/errors/safetyValidator.d.ts +109 -0
  264. package/dist/core/errors/safetyValidator.d.ts.map +1 -0
  265. package/dist/core/errors/safetyValidator.js +271 -0
  266. package/dist/core/errors/safetyValidator.js.map +1 -0
  267. package/dist/core/errors.d.ts +4 -0
  268. package/dist/core/errors.d.ts.map +1 -0
  269. package/dist/core/errors.js +33 -0
  270. package/dist/core/errors.js.map +1 -0
  271. package/dist/core/finalResponseFormatter.d.ts +10 -0
  272. package/dist/core/finalResponseFormatter.d.ts.map +1 -0
  273. package/dist/core/finalResponseFormatter.js +14 -0
  274. package/dist/core/finalResponseFormatter.js.map +1 -0
  275. package/dist/core/guardrails.d.ts +146 -0
  276. package/dist/core/guardrails.d.ts.map +1 -0
  277. package/dist/core/guardrails.js +361 -0
  278. package/dist/core/guardrails.js.map +1 -0
  279. package/dist/core/hitl.d.ts +119 -0
  280. package/dist/core/hitl.d.ts.map +1 -0
  281. package/dist/core/hitl.js +387 -0
  282. package/dist/core/hitl.js.map +1 -0
  283. package/dist/core/hooks.d.ts +95 -0
  284. package/dist/core/hooks.d.ts.map +1 -0
  285. package/dist/core/hooks.js +239 -0
  286. package/dist/core/hooks.js.map +1 -0
  287. package/dist/core/index.d.ts +7 -0
  288. package/dist/core/index.d.ts.map +1 -0
  289. package/dist/core/index.js +7 -0
  290. package/dist/core/index.js.map +1 -0
  291. package/dist/core/inputProtection.d.ts +122 -0
  292. package/dist/core/inputProtection.d.ts.map +1 -0
  293. package/dist/core/inputProtection.js +422 -0
  294. package/dist/core/inputProtection.js.map +1 -0
  295. package/dist/core/modelDiscovery.d.ts +105 -0
  296. package/dist/core/modelDiscovery.d.ts.map +1 -0
  297. package/dist/core/modelDiscovery.js +768 -0
  298. package/dist/core/modelDiscovery.js.map +1 -0
  299. package/dist/core/multilinePasteHandler.d.ts +35 -0
  300. package/dist/core/multilinePasteHandler.d.ts.map +1 -0
  301. package/dist/core/multilinePasteHandler.js +81 -0
  302. package/dist/core/multilinePasteHandler.js.map +1 -0
  303. package/dist/core/preferences.d.ts +65 -0
  304. package/dist/core/preferences.d.ts.map +1 -0
  305. package/dist/core/preferences.js +305 -0
  306. package/dist/core/preferences.js.map +1 -0
  307. package/dist/core/projectTracker.d.ts +96 -0
  308. package/dist/core/projectTracker.d.ts.map +1 -0
  309. package/dist/core/projectTracker.js +275 -0
  310. package/dist/core/projectTracker.js.map +1 -0
  311. package/dist/core/providerKeys.d.ts +20 -0
  312. package/dist/core/providerKeys.d.ts.map +1 -0
  313. package/dist/core/providerKeys.js +40 -0
  314. package/dist/core/providerKeys.js.map +1 -0
  315. package/dist/core/refusalDetection.d.ts +2 -0
  316. package/dist/core/refusalDetection.d.ts.map +1 -0
  317. package/dist/core/refusalDetection.js +51 -0
  318. package/dist/core/refusalDetection.js.map +1 -0
  319. package/dist/core/resultVerification.d.ts +47 -0
  320. package/dist/core/resultVerification.d.ts.map +1 -0
  321. package/dist/core/resultVerification.js +126 -0
  322. package/dist/core/resultVerification.js.map +1 -0
  323. package/dist/core/reviewerGuard.d.ts +37 -0
  324. package/dist/core/reviewerGuard.d.ts.map +1 -0
  325. package/dist/core/reviewerGuard.js +188 -0
  326. package/dist/core/reviewerGuard.js.map +1 -0
  327. package/dist/core/schemaValidator.d.ts +49 -0
  328. package/dist/core/schemaValidator.d.ts.map +1 -0
  329. package/dist/core/schemaValidator.js +234 -0
  330. package/dist/core/schemaValidator.js.map +1 -0
  331. package/dist/core/secretStore.d.ts +48 -0
  332. package/dist/core/secretStore.d.ts.map +1 -0
  333. package/dist/core/secretStore.js +259 -0
  334. package/dist/core/secretStore.js.map +1 -0
  335. package/dist/core/sessionStorage.d.ts +10 -0
  336. package/dist/core/sessionStorage.d.ts.map +1 -0
  337. package/dist/core/sessionStorage.js +46 -0
  338. package/dist/core/sessionStorage.js.map +1 -0
  339. package/dist/core/sessionStore.d.ts +35 -0
  340. package/dist/core/sessionStore.d.ts.map +1 -0
  341. package/dist/core/sessionStore.js +191 -0
  342. package/dist/core/sessionStore.js.map +1 -0
  343. package/dist/core/sharedSecrets.d.ts +60 -0
  344. package/dist/core/sharedSecrets.d.ts.map +1 -0
  345. package/dist/core/sharedSecrets.js +111 -0
  346. package/dist/core/sharedSecrets.js.map +1 -0
  347. package/dist/core/shutdown.d.ts +34 -0
  348. package/dist/core/shutdown.d.ts.map +1 -0
  349. package/dist/core/shutdown.js +186 -0
  350. package/dist/core/shutdown.js.map +1 -0
  351. package/dist/core/sudoPasswordManager.d.ts +52 -0
  352. package/dist/core/sudoPasswordManager.d.ts.map +1 -0
  353. package/dist/core/sudoPasswordManager.js +115 -0
  354. package/dist/core/sudoPasswordManager.js.map +1 -0
  355. package/dist/core/taskCompletionDetector.d.ts +117 -0
  356. package/dist/core/taskCompletionDetector.d.ts.map +1 -0
  357. package/dist/core/taskCompletionDetector.js +532 -0
  358. package/dist/core/taskCompletionDetector.js.map +1 -0
  359. package/dist/core/testFailureMonitor.d.ts +67 -0
  360. package/dist/core/testFailureMonitor.d.ts.map +1 -0
  361. package/dist/core/testFailureMonitor.js +262 -0
  362. package/dist/core/testFailureMonitor.js.map +1 -0
  363. package/dist/core/toolPreconditions.d.ts +34 -0
  364. package/dist/core/toolPreconditions.d.ts.map +1 -0
  365. package/dist/core/toolPreconditions.js +242 -0
  366. package/dist/core/toolPreconditions.js.map +1 -0
  367. package/dist/core/toolRuntime.d.ts +192 -0
  368. package/dist/core/toolRuntime.d.ts.map +1 -0
  369. package/dist/core/toolRuntime.js +511 -0
  370. package/dist/core/toolRuntime.js.map +1 -0
  371. package/dist/core/types/utilityTypes.d.ts +183 -0
  372. package/dist/core/types/utilityTypes.d.ts.map +1 -0
  373. package/dist/core/types/utilityTypes.js +273 -0
  374. package/dist/core/types/utilityTypes.js.map +1 -0
  375. package/dist/core/types.d.ts +334 -0
  376. package/dist/core/types.d.ts.map +1 -0
  377. package/dist/core/types.js +76 -0
  378. package/dist/core/types.js.map +1 -0
  379. package/dist/core/updateChecker.d.ts +148 -0
  380. package/dist/core/updateChecker.d.ts.map +1 -0
  381. package/dist/core/updateChecker.js +599 -0
  382. package/dist/core/updateChecker.js.map +1 -0
  383. package/dist/core/usageTracker.d.ts +11 -0
  384. package/dist/core/usageTracker.d.ts.map +1 -0
  385. package/dist/core/usageTracker.js +128 -0
  386. package/dist/core/usageTracker.js.map +1 -0
  387. package/dist/core/userApproval.d.ts +95 -0
  388. package/dist/core/userApproval.d.ts.map +1 -0
  389. package/dist/core/userApproval.js +239 -0
  390. package/dist/core/userApproval.js.map +1 -0
  391. package/dist/headless/interactiveShell.d.ts +22 -0
  392. package/dist/headless/interactiveShell.d.ts.map +1 -0
  393. package/dist/headless/interactiveShell.js +2181 -0
  394. package/dist/headless/interactiveShell.js.map +1 -0
  395. package/dist/leanAgent.d.ts +73 -0
  396. package/dist/leanAgent.d.ts.map +1 -0
  397. package/dist/leanAgent.js +177 -0
  398. package/dist/leanAgent.js.map +1 -0
  399. package/dist/plugins/index.d.ts +49 -0
  400. package/dist/plugins/index.d.ts.map +1 -0
  401. package/dist/plugins/index.js +104 -0
  402. package/dist/plugins/index.js.map +1 -0
  403. package/dist/plugins/providers/anthropic/index.d.ts +9 -0
  404. package/dist/plugins/providers/anthropic/index.d.ts.map +1 -0
  405. package/dist/plugins/providers/anthropic/index.js +48 -0
  406. package/dist/plugins/providers/anthropic/index.js.map +1 -0
  407. package/dist/plugins/providers/deepseek/index.d.ts +11 -0
  408. package/dist/plugins/providers/deepseek/index.d.ts.map +1 -0
  409. package/dist/plugins/providers/deepseek/index.js +54 -0
  410. package/dist/plugins/providers/deepseek/index.js.map +1 -0
  411. package/dist/plugins/providers/index.d.ts +2 -0
  412. package/dist/plugins/providers/index.d.ts.map +1 -0
  413. package/dist/plugins/providers/index.js +17 -0
  414. package/dist/plugins/providers/index.js.map +1 -0
  415. package/dist/plugins/providers/openai/index.d.ts +10 -0
  416. package/dist/plugins/providers/openai/index.d.ts.map +1 -0
  417. package/dist/plugins/providers/openai/index.js +47 -0
  418. package/dist/plugins/providers/openai/index.js.map +1 -0
  419. package/dist/plugins/providers/xai/index.d.ts +10 -0
  420. package/dist/plugins/providers/xai/index.d.ts.map +1 -0
  421. package/dist/plugins/providers/xai/index.js +47 -0
  422. package/dist/plugins/providers/xai/index.js.map +1 -0
  423. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts +10 -0
  424. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts.map +1 -0
  425. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js +110 -0
  426. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js.map +1 -0
  427. package/dist/plugins/tools/bash/localBashPlugin.d.ts +3 -0
  428. package/dist/plugins/tools/bash/localBashPlugin.d.ts.map +1 -0
  429. package/dist/plugins/tools/bash/localBashPlugin.js +14 -0
  430. package/dist/plugins/tools/bash/localBashPlugin.js.map +1 -0
  431. package/dist/plugins/tools/edit/editPlugin.d.ts +9 -0
  432. package/dist/plugins/tools/edit/editPlugin.d.ts.map +1 -0
  433. package/dist/plugins/tools/edit/editPlugin.js +15 -0
  434. package/dist/plugins/tools/edit/editPlugin.js.map +1 -0
  435. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts +3 -0
  436. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts.map +1 -0
  437. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js +9 -0
  438. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js.map +1 -0
  439. package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts +3 -0
  440. package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts.map +1 -0
  441. package/dist/plugins/tools/filesystem/localFilesystemPlugin.js +14 -0
  442. package/dist/plugins/tools/filesystem/localFilesystemPlugin.js.map +1 -0
  443. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.d.ts +3 -0
  444. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.d.ts.map +1 -0
  445. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.js +9 -0
  446. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.js.map +1 -0
  447. package/dist/plugins/tools/index.d.ts +3 -0
  448. package/dist/plugins/tools/index.d.ts.map +1 -0
  449. package/dist/plugins/tools/index.js +3 -0
  450. package/dist/plugins/tools/index.js.map +1 -0
  451. package/dist/plugins/tools/integrity/integrityPlugin.d.ts +3 -0
  452. package/dist/plugins/tools/integrity/integrityPlugin.d.ts.map +1 -0
  453. package/dist/plugins/tools/integrity/integrityPlugin.js +31 -0
  454. package/dist/plugins/tools/integrity/integrityPlugin.js.map +1 -0
  455. package/dist/plugins/tools/kali/kaliPlugin.d.ts +3 -0
  456. package/dist/plugins/tools/kali/kaliPlugin.d.ts.map +1 -0
  457. package/dist/plugins/tools/kali/kaliPlugin.js +10 -0
  458. package/dist/plugins/tools/kali/kaliPlugin.js.map +1 -0
  459. package/dist/plugins/tools/mcp/mcpClient.d.ts +59 -0
  460. package/dist/plugins/tools/mcp/mcpClient.d.ts.map +1 -0
  461. package/dist/plugins/tools/mcp/mcpClient.js +118 -0
  462. package/dist/plugins/tools/mcp/mcpClient.js.map +1 -0
  463. package/dist/plugins/tools/mcp/mcpPlugin.d.ts +3 -0
  464. package/dist/plugins/tools/mcp/mcpPlugin.d.ts.map +1 -0
  465. package/dist/plugins/tools/mcp/mcpPlugin.js +10 -0
  466. package/dist/plugins/tools/mcp/mcpPlugin.js.map +1 -0
  467. package/dist/plugins/tools/nodeDefaults.d.ts +13 -0
  468. package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -0
  469. package/dist/plugins/tools/nodeDefaults.js +37 -0
  470. package/dist/plugins/tools/nodeDefaults.js.map +1 -0
  471. package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts +3 -0
  472. package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts.map +1 -0
  473. package/dist/plugins/tools/orchestration/orchestrationPlugin.js +340 -0
  474. package/dist/plugins/tools/orchestration/orchestrationPlugin.js.map +1 -0
  475. package/dist/plugins/tools/registry.d.ts +22 -0
  476. package/dist/plugins/tools/registry.d.ts.map +1 -0
  477. package/dist/plugins/tools/registry.js +58 -0
  478. package/dist/plugins/tools/registry.js.map +1 -0
  479. package/dist/plugins/tools/search/localSearchPlugin.d.ts +3 -0
  480. package/dist/plugins/tools/search/localSearchPlugin.d.ts.map +1 -0
  481. package/dist/plugins/tools/search/localSearchPlugin.js +14 -0
  482. package/dist/plugins/tools/search/localSearchPlugin.js.map +1 -0
  483. package/dist/plugins/tools/skills/skillPlugin.d.ts +3 -0
  484. package/dist/plugins/tools/skills/skillPlugin.d.ts.map +1 -0
  485. package/dist/plugins/tools/skills/skillPlugin.js +27 -0
  486. package/dist/plugins/tools/skills/skillPlugin.js.map +1 -0
  487. package/dist/plugins/tools/todo/todoPlugin.d.ts +3 -0
  488. package/dist/plugins/tools/todo/todoPlugin.d.ts.map +1 -0
  489. package/dist/plugins/tools/todo/todoPlugin.js +10 -0
  490. package/dist/plugins/tools/todo/todoPlugin.js.map +1 -0
  491. package/dist/providers/baseProvider.d.ts +148 -0
  492. package/dist/providers/baseProvider.d.ts.map +1 -0
  493. package/dist/providers/baseProvider.js +284 -0
  494. package/dist/providers/baseProvider.js.map +1 -0
  495. package/dist/providers/openaiChatCompletionsProvider.d.ts +64 -0
  496. package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -0
  497. package/dist/providers/openaiChatCompletionsProvider.js +1018 -0
  498. package/dist/providers/openaiChatCompletionsProvider.js.map +1 -0
  499. package/dist/providers/providerFactory.d.ts +22 -0
  500. package/dist/providers/providerFactory.d.ts.map +1 -0
  501. package/dist/providers/providerFactory.js +25 -0
  502. package/dist/providers/providerFactory.js.map +1 -0
  503. package/dist/providers/resilientProvider.d.ts +103 -0
  504. package/dist/providers/resilientProvider.d.ts.map +1 -0
  505. package/dist/providers/resilientProvider.js +468 -0
  506. package/dist/providers/resilientProvider.js.map +1 -0
  507. package/dist/runtime/agentController.d.ts +121 -0
  508. package/dist/runtime/agentController.d.ts.map +1 -0
  509. package/dist/runtime/agentController.js +739 -0
  510. package/dist/runtime/agentController.js.map +1 -0
  511. package/dist/runtime/agentHost.d.ts +61 -0
  512. package/dist/runtime/agentHost.d.ts.map +1 -0
  513. package/dist/runtime/agentHost.js +158 -0
  514. package/dist/runtime/agentHost.js.map +1 -0
  515. package/dist/runtime/agentSession.d.ts +49 -0
  516. package/dist/runtime/agentSession.d.ts.map +1 -0
  517. package/dist/runtime/agentSession.js +218 -0
  518. package/dist/runtime/agentSession.js.map +1 -0
  519. package/dist/runtime/agentSpawningWiring.d.ts +23 -0
  520. package/dist/runtime/agentSpawningWiring.d.ts.map +1 -0
  521. package/dist/runtime/agentSpawningWiring.js +119 -0
  522. package/dist/runtime/agentSpawningWiring.js.map +1 -0
  523. package/dist/runtime/agentWorkerPool.d.ts +167 -0
  524. package/dist/runtime/agentWorkerPool.d.ts.map +1 -0
  525. package/dist/runtime/agentWorkerPool.js +435 -0
  526. package/dist/runtime/agentWorkerPool.js.map +1 -0
  527. package/dist/runtime/node.d.ts +9 -0
  528. package/dist/runtime/node.d.ts.map +1 -0
  529. package/dist/runtime/node.js +112 -0
  530. package/dist/runtime/node.js.map +1 -0
  531. package/dist/runtime/phaseEmitter.d.ts +63 -0
  532. package/dist/runtime/phaseEmitter.d.ts.map +1 -0
  533. package/dist/runtime/phaseEmitter.js +207 -0
  534. package/dist/runtime/phaseEmitter.js.map +1 -0
  535. package/dist/runtime/profileGates.d.ts +19 -0
  536. package/dist/runtime/profileGates.d.ts.map +1 -0
  537. package/dist/runtime/profileGates.js +23 -0
  538. package/dist/runtime/profileGates.js.map +1 -0
  539. package/dist/runtime/universal.d.ts +18 -0
  540. package/dist/runtime/universal.d.ts.map +1 -0
  541. package/dist/runtime/universal.js +31 -0
  542. package/dist/runtime/universal.js.map +1 -0
  543. package/dist/shell/autoExecutor.d.ts +70 -0
  544. package/dist/shell/autoExecutor.d.ts.map +1 -0
  545. package/dist/shell/autoExecutor.js +320 -0
  546. package/dist/shell/autoExecutor.js.map +1 -0
  547. package/dist/shell/commandRegistry.d.ts +122 -0
  548. package/dist/shell/commandRegistry.d.ts.map +1 -0
  549. package/dist/shell/commandRegistry.js +355 -0
  550. package/dist/shell/commandRegistry.js.map +1 -0
  551. package/dist/shell/composableMessage.d.ts +178 -0
  552. package/dist/shell/composableMessage.d.ts.map +1 -0
  553. package/dist/shell/composableMessage.js +384 -0
  554. package/dist/shell/composableMessage.js.map +1 -0
  555. package/dist/shell/liveStatus.d.ts +27 -0
  556. package/dist/shell/liveStatus.d.ts.map +1 -0
  557. package/dist/shell/liveStatus.js +53 -0
  558. package/dist/shell/liveStatus.js.map +1 -0
  559. package/dist/shell/systemPrompt.d.ts +12 -0
  560. package/dist/shell/systemPrompt.d.ts.map +1 -0
  561. package/dist/shell/systemPrompt.js +16 -0
  562. package/dist/shell/systemPrompt.js.map +1 -0
  563. package/dist/shell/vimMode.d.ts +66 -0
  564. package/dist/shell/vimMode.d.ts.map +1 -0
  565. package/dist/shell/vimMode.js +435 -0
  566. package/dist/shell/vimMode.js.map +1 -0
  567. package/dist/tools/bashTools.d.ts +11 -0
  568. package/dist/tools/bashTools.d.ts.map +1 -0
  569. package/dist/tools/bashTools.js +779 -0
  570. package/dist/tools/bashTools.js.map +1 -0
  571. package/dist/tools/diffUtils.d.ts +43 -0
  572. package/dist/tools/diffUtils.d.ts.map +1 -0
  573. package/dist/tools/diffUtils.js +607 -0
  574. package/dist/tools/diffUtils.js.map +1 -0
  575. package/dist/tools/editTools.d.ts +29 -0
  576. package/dist/tools/editTools.d.ts.map +1 -0
  577. package/dist/tools/editTools.js +792 -0
  578. package/dist/tools/editTools.js.map +1 -0
  579. package/dist/tools/engagementTools.d.ts +45 -0
  580. package/dist/tools/engagementTools.d.ts.map +1 -0
  581. package/dist/tools/engagementTools.js +384 -0
  582. package/dist/tools/engagementTools.js.map +1 -0
  583. package/dist/tools/fileChangeTracker.d.ts +47 -0
  584. package/dist/tools/fileChangeTracker.d.ts.map +1 -0
  585. package/dist/tools/fileChangeTracker.js +154 -0
  586. package/dist/tools/fileChangeTracker.js.map +1 -0
  587. package/dist/tools/fileReadTracker.d.ts +69 -0
  588. package/dist/tools/fileReadTracker.d.ts.map +1 -0
  589. package/dist/tools/fileReadTracker.js +213 -0
  590. package/dist/tools/fileReadTracker.js.map +1 -0
  591. package/dist/tools/fileTools.d.ts +3 -0
  592. package/dist/tools/fileTools.d.ts.map +1 -0
  593. package/dist/tools/fileTools.js +389 -0
  594. package/dist/tools/fileTools.js.map +1 -0
  595. package/dist/tools/grepTools.d.ts +3 -0
  596. package/dist/tools/grepTools.d.ts.map +1 -0
  597. package/dist/tools/grepTools.js +128 -0
  598. package/dist/tools/grepTools.js.map +1 -0
  599. package/dist/tools/heliaControl.d.ts +51 -0
  600. package/dist/tools/heliaControl.d.ts.map +1 -0
  601. package/dist/tools/heliaControl.js +93 -0
  602. package/dist/tools/heliaControl.js.map +1 -0
  603. package/dist/tools/hitlTools.d.ts +7 -0
  604. package/dist/tools/hitlTools.d.ts.map +1 -0
  605. package/dist/tools/hitlTools.js +185 -0
  606. package/dist/tools/hitlTools.js.map +1 -0
  607. package/dist/tools/interactionTools.d.ts +16 -0
  608. package/dist/tools/interactionTools.d.ts.map +1 -0
  609. package/dist/tools/interactionTools.js +207 -0
  610. package/dist/tools/interactionTools.js.map +1 -0
  611. package/dist/tools/localExplore.d.ts +38 -0
  612. package/dist/tools/localExplore.d.ts.map +1 -0
  613. package/dist/tools/localExplore.js +30 -0
  614. package/dist/tools/localExplore.js.map +1 -0
  615. package/dist/tools/memoryTools.d.ts +20 -0
  616. package/dist/tools/memoryTools.d.ts.map +1 -0
  617. package/dist/tools/memoryTools.js +180 -0
  618. package/dist/tools/memoryTools.js.map +1 -0
  619. package/dist/tools/monitorTools.d.ts +16 -0
  620. package/dist/tools/monitorTools.d.ts.map +1 -0
  621. package/dist/tools/monitorTools.js +178 -0
  622. package/dist/tools/monitorTools.js.map +1 -0
  623. package/dist/tools/notebookTools.d.ts +20 -0
  624. package/dist/tools/notebookTools.d.ts.map +1 -0
  625. package/dist/tools/notebookTools.js +140 -0
  626. package/dist/tools/notebookTools.js.map +1 -0
  627. package/dist/tools/planModeTools.d.ts +32 -0
  628. package/dist/tools/planModeTools.d.ts.map +1 -0
  629. package/dist/tools/planModeTools.js +200 -0
  630. package/dist/tools/planModeTools.js.map +1 -0
  631. package/dist/tools/scheduleTools.d.ts +39 -0
  632. package/dist/tools/scheduleTools.d.ts.map +1 -0
  633. package/dist/tools/scheduleTools.js +182 -0
  634. package/dist/tools/scheduleTools.js.map +1 -0
  635. package/dist/tools/searchTools.d.ts +12 -0
  636. package/dist/tools/searchTools.d.ts.map +1 -0
  637. package/dist/tools/searchTools.js +413 -0
  638. package/dist/tools/searchTools.js.map +1 -0
  639. package/dist/tools/skillTools.d.ts +24 -0
  640. package/dist/tools/skillTools.d.ts.map +1 -0
  641. package/dist/tools/skillTools.js +140 -0
  642. package/dist/tools/skillTools.js.map +1 -0
  643. package/dist/tools/todoTools.d.ts +24 -0
  644. package/dist/tools/todoTools.d.ts.map +1 -0
  645. package/dist/tools/todoTools.js +115 -0
  646. package/dist/tools/todoTools.js.map +1 -0
  647. package/dist/tools/triggerTools.d.ts +28 -0
  648. package/dist/tools/triggerTools.d.ts.map +1 -0
  649. package/dist/tools/triggerTools.js +210 -0
  650. package/dist/tools/triggerTools.js.map +1 -0
  651. package/dist/tools/webTools.d.ts +26 -0
  652. package/dist/tools/webTools.d.ts.map +1 -0
  653. package/dist/tools/webTools.js +332 -0
  654. package/dist/tools/webTools.js.map +1 -0
  655. package/dist/tools/worktreeTools.d.ts +21 -0
  656. package/dist/tools/worktreeTools.d.ts.map +1 -0
  657. package/dist/tools/worktreeTools.js +158 -0
  658. package/dist/tools/worktreeTools.js.map +1 -0
  659. package/dist/ui/RenderGate.d.ts +83 -0
  660. package/dist/ui/RenderGate.d.ts.map +1 -0
  661. package/dist/ui/RenderGate.js +138 -0
  662. package/dist/ui/RenderGate.js.map +1 -0
  663. package/dist/ui/animatedStatus.d.ts +140 -0
  664. package/dist/ui/animatedStatus.d.ts.map +1 -0
  665. package/dist/ui/animatedStatus.js +480 -0
  666. package/dist/ui/animatedStatus.js.map +1 -0
  667. package/dist/ui/animation/AnimationScheduler.d.ts +197 -0
  668. package/dist/ui/animation/AnimationScheduler.d.ts.map +1 -0
  669. package/dist/ui/animation/AnimationScheduler.js +440 -0
  670. package/dist/ui/animation/AnimationScheduler.js.map +1 -0
  671. package/dist/ui/codeHighlighter.d.ts +6 -0
  672. package/dist/ui/codeHighlighter.d.ts.map +1 -0
  673. package/dist/ui/codeHighlighter.js +855 -0
  674. package/dist/ui/codeHighlighter.js.map +1 -0
  675. package/dist/ui/designSystem.d.ts +26 -0
  676. package/dist/ui/designSystem.d.ts.map +1 -0
  677. package/dist/ui/designSystem.js +114 -0
  678. package/dist/ui/designSystem.js.map +1 -0
  679. package/dist/ui/errorFormatter.d.ts +64 -0
  680. package/dist/ui/errorFormatter.d.ts.map +1 -0
  681. package/dist/ui/errorFormatter.js +316 -0
  682. package/dist/ui/errorFormatter.js.map +1 -0
  683. package/dist/ui/globalWriteLock.d.ts +63 -0
  684. package/dist/ui/globalWriteLock.d.ts.map +1 -0
  685. package/dist/ui/globalWriteLock.js +173 -0
  686. package/dist/ui/globalWriteLock.js.map +1 -0
  687. package/dist/ui/index.d.ts +31 -0
  688. package/dist/ui/index.d.ts.map +1 -0
  689. package/dist/ui/index.js +49 -0
  690. package/dist/ui/index.js.map +1 -0
  691. package/dist/ui/ink/App.d.ts +39 -0
  692. package/dist/ui/ink/App.d.ts.map +1 -0
  693. package/dist/ui/ink/App.js +19 -0
  694. package/dist/ui/ink/App.js.map +1 -0
  695. package/dist/ui/ink/ChatStatic.d.ts +29 -0
  696. package/dist/ui/ink/ChatStatic.d.ts.map +1 -0
  697. package/dist/ui/ink/ChatStatic.js +31 -0
  698. package/dist/ui/ink/ChatStatic.js.map +1 -0
  699. package/dist/ui/ink/InkPromptController.d.ts +286 -0
  700. package/dist/ui/ink/InkPromptController.d.ts.map +1 -0
  701. package/dist/ui/ink/InkPromptController.js +558 -0
  702. package/dist/ui/ink/InkPromptController.js.map +1 -0
  703. package/dist/ui/ink/Prompt.d.ts +36 -0
  704. package/dist/ui/ink/Prompt.d.ts.map +1 -0
  705. package/dist/ui/ink/Prompt.js +296 -0
  706. package/dist/ui/ink/Prompt.js.map +1 -0
  707. package/dist/ui/ink/StatusLine.d.ts +25 -0
  708. package/dist/ui/ink/StatusLine.d.ts.map +1 -0
  709. package/dist/ui/ink/StatusLine.js +12 -0
  710. package/dist/ui/ink/StatusLine.js.map +1 -0
  711. package/dist/ui/ink/adapter.d.ts +58 -0
  712. package/dist/ui/ink/adapter.d.ts.map +1 -0
  713. package/dist/ui/ink/adapter.js +113 -0
  714. package/dist/ui/ink/adapter.js.map +1 -0
  715. package/dist/ui/interrupts/InterruptManager.d.ts +157 -0
  716. package/dist/ui/interrupts/InterruptManager.d.ts.map +1 -0
  717. package/dist/ui/interrupts/InterruptManager.js +501 -0
  718. package/dist/ui/interrupts/InterruptManager.js.map +1 -0
  719. package/dist/ui/layout.d.ts +27 -0
  720. package/dist/ui/layout.d.ts.map +1 -0
  721. package/dist/ui/layout.js +184 -0
  722. package/dist/ui/layout.js.map +1 -0
  723. package/dist/ui/outputMode.d.ts +58 -0
  724. package/dist/ui/outputMode.d.ts.map +1 -0
  725. package/dist/ui/outputMode.js +179 -0
  726. package/dist/ui/outputMode.js.map +1 -0
  727. package/dist/ui/overlay/OverlayManager.d.ts +105 -0
  728. package/dist/ui/overlay/OverlayManager.d.ts.map +1 -0
  729. package/dist/ui/overlay/OverlayManager.js +304 -0
  730. package/dist/ui/overlay/OverlayManager.js.map +1 -0
  731. package/dist/ui/premiumComponents.d.ts +54 -0
  732. package/dist/ui/premiumComponents.d.ts.map +1 -0
  733. package/dist/ui/premiumComponents.js +241 -0
  734. package/dist/ui/premiumComponents.js.map +1 -0
  735. package/dist/ui/richText.d.ts +13 -0
  736. package/dist/ui/richText.d.ts.map +1 -0
  737. package/dist/ui/richText.js +444 -0
  738. package/dist/ui/richText.js.map +1 -0
  739. package/dist/ui/telemetry/ResponseTracker.d.ts +22 -0
  740. package/dist/ui/telemetry/ResponseTracker.d.ts.map +1 -0
  741. package/dist/ui/telemetry/ResponseTracker.js +60 -0
  742. package/dist/ui/telemetry/ResponseTracker.js.map +1 -0
  743. package/dist/ui/telemetry/UITelemetry.d.ts +181 -0
  744. package/dist/ui/telemetry/UITelemetry.d.ts.map +1 -0
  745. package/dist/ui/telemetry/UITelemetry.js +446 -0
  746. package/dist/ui/telemetry/UITelemetry.js.map +1 -0
  747. package/dist/ui/textHighlighter.d.ts +83 -0
  748. package/dist/ui/textHighlighter.d.ts.map +1 -0
  749. package/dist/ui/textHighlighter.js +267 -0
  750. package/dist/ui/textHighlighter.js.map +1 -0
  751. package/dist/ui/theme.d.ts +351 -0
  752. package/dist/ui/theme.d.ts.map +1 -0
  753. package/dist/ui/theme.js +436 -0
  754. package/dist/ui/theme.js.map +1 -0
  755. package/dist/ui/toolDisplay.d.ts +221 -0
  756. package/dist/ui/toolDisplay.d.ts.map +1 -0
  757. package/dist/ui/toolDisplay.js +1654 -0
  758. package/dist/ui/toolDisplay.js.map +1 -0
  759. package/dist/ui/uiConstants.d.ts +253 -0
  760. package/dist/ui/uiConstants.d.ts.map +1 -0
  761. package/dist/ui/uiConstants.js +437 -0
  762. package/dist/ui/uiConstants.js.map +1 -0
  763. package/dist/utils/analytics.d.ts +2 -0
  764. package/dist/utils/analytics.d.ts.map +1 -0
  765. package/dist/utils/analytics.js +51 -0
  766. package/dist/utils/analytics.js.map +1 -0
  767. package/dist/utils/askUserPrompt.d.ts +21 -0
  768. package/dist/utils/askUserPrompt.d.ts.map +1 -0
  769. package/dist/utils/askUserPrompt.js +87 -0
  770. package/dist/utils/askUserPrompt.js.map +1 -0
  771. package/dist/utils/asyncUtils.d.ts +95 -0
  772. package/dist/utils/asyncUtils.d.ts.map +1 -0
  773. package/dist/utils/asyncUtils.js +286 -0
  774. package/dist/utils/asyncUtils.js.map +1 -0
  775. package/dist/utils/debugLogger.d.ts +6 -0
  776. package/dist/utils/debugLogger.d.ts.map +1 -0
  777. package/dist/utils/debugLogger.js +39 -0
  778. package/dist/utils/debugLogger.js.map +1 -0
  779. package/dist/utils/errorUtils.d.ts +12 -0
  780. package/dist/utils/errorUtils.d.ts.map +1 -0
  781. package/dist/utils/errorUtils.js +83 -0
  782. package/dist/utils/errorUtils.js.map +1 -0
  783. package/dist/utils/frontmatter.d.ts +10 -0
  784. package/dist/utils/frontmatter.d.ts.map +1 -0
  785. package/dist/utils/frontmatter.js +78 -0
  786. package/dist/utils/frontmatter.js.map +1 -0
  787. package/dist/utils/lambdaClient.d.ts +35 -0
  788. package/dist/utils/lambdaClient.d.ts.map +1 -0
  789. package/dist/utils/lambdaClient.js +81 -0
  790. package/dist/utils/lambdaClient.js.map +1 -0
  791. package/dist/utils/packageInfo.d.ts +14 -0
  792. package/dist/utils/packageInfo.d.ts.map +1 -0
  793. package/dist/utils/packageInfo.js +45 -0
  794. package/dist/utils/packageInfo.js.map +1 -0
  795. package/dist/utils/planFormatter.d.ts +34 -0
  796. package/dist/utils/planFormatter.d.ts.map +1 -0
  797. package/dist/utils/planFormatter.js +141 -0
  798. package/dist/utils/planFormatter.js.map +1 -0
  799. package/dist/utils/projectRegistration.d.ts +61 -0
  800. package/dist/utils/projectRegistration.d.ts.map +1 -0
  801. package/dist/utils/projectRegistration.js +212 -0
  802. package/dist/utils/projectRegistration.js.map +1 -0
  803. package/dist/utils/securityUtils.d.ts +145 -0
  804. package/dist/utils/securityUtils.d.ts.map +1 -0
  805. package/dist/utils/securityUtils.js +507 -0
  806. package/dist/utils/securityUtils.js.map +1 -0
  807. package/dist/utils/statusReporter.d.ts +6 -0
  808. package/dist/utils/statusReporter.d.ts.map +1 -0
  809. package/dist/utils/statusReporter.js +26 -0
  810. package/dist/utils/statusReporter.js.map +1 -0
  811. package/dist/workspace.d.ts +8 -0
  812. package/dist/workspace.d.ts.map +1 -0
  813. package/dist/workspace.js +135 -0
  814. package/dist/workspace.js.map +1 -0
  815. package/dist/workspace.validator.d.ts +49 -0
  816. package/dist/workspace.validator.d.ts.map +1 -0
  817. package/dist/workspace.validator.js +215 -0
  818. package/dist/workspace.validator.js.map +1 -0
  819. package/package.json +1 -1
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Firestore-backed shared secrets.
3
+ *
4
+ * Public CLI users don't bring their own DeepSeek key by default —
5
+ * they sign in with Erosolar Auth and the CLI fetches a shared,
6
+ * server-managed key from Firestore at `shared_secrets/{name}`.
7
+ *
8
+ * Resolution order for any provider key:
9
+ * 1. process.env[NAME] — explicit env override
10
+ * 2. ~/.erosolar/secrets.json[NAME] — user's own key via /secrets
11
+ * 3. Firestore shared_secrets/{name} — gated by Firebase Auth
12
+ *
13
+ * If steps 1+2 hit, we never make a Firestore call. The shared
14
+ * fetch only runs when a key is genuinely missing AND the user is
15
+ * already signed in (the CLI's `requireAuth()` happens earlier in
16
+ * boot, so by the time we get here a valid ID token is available).
17
+ *
18
+ * The fetched value is written to process.env so every downstream
19
+ * `requireEnv(...)` / `getSecretValue(...)` site sees it without
20
+ * any additional plumbing. No on-disk cache — refetched on each
21
+ * CLI startup. Firestore Spark-tier reads are cheap and this keeps
22
+ * a rotated key from getting stuck in a stale local cache.
23
+ */
24
+ import { FIREBASE_PROJECT_ID, getAuthStatus, getValidIdToken } from './auth.js';
25
+ import { logDebug } from '../utils/debugLogger.js';
26
+ const FIRESTORE_BASE = `https://firestore.googleapis.com/v1/projects/${FIREBASE_PROJECT_ID}/databases/(default)/documents`;
27
+ const ENV_VAR_FOR = {
28
+ deepseek: 'DEEPSEEK_API_KEY',
29
+ tavily: 'TAVILY_API_KEY',
30
+ };
31
+ /**
32
+ * Fetch one shared secret from Firestore using the user's ID token.
33
+ * Returns the apiKey string, null if the doc / field is missing,
34
+ * throws on auth/network errors.
35
+ */
36
+ async function fetchSharedSecret(name) {
37
+ const idToken = await getValidIdToken();
38
+ const url = `${FIRESTORE_BASE}/shared_secrets/${encodeURIComponent(name)}`;
39
+ const res = await fetch(url, {
40
+ headers: {
41
+ Authorization: `Bearer ${idToken}`,
42
+ Accept: 'application/json',
43
+ },
44
+ });
45
+ if (res.status === 404)
46
+ return null;
47
+ if (!res.ok) {
48
+ const body = await res.text().catch(() => '<no body>');
49
+ throw new Error(`Firestore ${res.status} fetching shared_secrets/${name}: ${body.slice(0, 200)}`);
50
+ }
51
+ const doc = (await res.json());
52
+ const field = doc.fields?.['apiKey']?.stringValue;
53
+ if (!field || typeof field !== 'string')
54
+ return null;
55
+ const trimmed = field.trim();
56
+ return trimmed.length ? trimmed : null;
57
+ }
58
+ /**
59
+ * Ensure the named provider key is present in process.env, fetching
60
+ * from Firestore if needed. No-op when already set in env or saved
61
+ * via /secrets. Returns a PrefetchOutcome describing where the value
62
+ * came from (or why it's still missing).
63
+ */
64
+ export async function ensureSharedSecret(name) {
65
+ const envName = ENV_VAR_FOR[name];
66
+ const envCurrent = (process.env[envName] || '').trim();
67
+ if (envCurrent) {
68
+ return { source: 'env', secret: name, value: envCurrent };
69
+ }
70
+ // The secret store sync API also writes to process.env when it
71
+ // finds a saved value, so checking process.env again after a
72
+ // synthetic load handles the /secrets path without re-reading
73
+ // the file here.
74
+ const { getSecretValue } = await import('./secretStore.js');
75
+ const saved = getSecretValue(envName);
76
+ if (saved) {
77
+ return { source: 'saved', secret: name, value: saved };
78
+ }
79
+ if (!getAuthStatus().authenticated) {
80
+ return { source: 'unauthenticated', secret: name };
81
+ }
82
+ try {
83
+ const value = await fetchSharedSecret(name);
84
+ if (!value) {
85
+ return { source: 'missing', secret: name, reason: `shared_secrets/${name} doc has no apiKey field` };
86
+ }
87
+ process.env[envName] = value;
88
+ logDebug(`[sharedSecrets] hydrated ${envName} from Firestore`);
89
+ return { source: 'shared', secret: name, value };
90
+ }
91
+ catch (err) {
92
+ const message = err instanceof Error ? err.message : String(err);
93
+ return { source: 'missing', secret: name, reason: message };
94
+ }
95
+ }
96
+ /**
97
+ * Prefetch every shared secret the CLI knows about. Called once at
98
+ * boot, after requireAuth() succeeds. Errors are returned, not
99
+ * thrown — a missing shared key is a degraded-but-runnable state,
100
+ * not a fatal one (the user can still bring their own via env or
101
+ * `/secrets`).
102
+ */
103
+ export async function prefetchAllSharedSecrets() {
104
+ const names = ['deepseek'];
105
+ const outcomes = [];
106
+ for (const name of names) {
107
+ outcomes.push(await ensureSharedSecret(name));
108
+ }
109
+ return outcomes;
110
+ }
111
+ //# sourceMappingURL=sharedSecrets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sharedSecrets.js","sourceRoot":"","sources":["../../src/core/sharedSecrets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Centralized shutdown and signal handling for the CLI.
3
+ * Ensures Ctrl+C always works and process exits cleanly.
4
+ */
5
+ /**
6
+ * Register a cleanup callback to run on shutdown
7
+ */
8
+ export declare function onShutdown(callback: () => void | Promise<void>): () => void;
9
+ /**
10
+ * Initiate authorized shutdown with cleanup
11
+ */
12
+ export declare function authorizedShutdown(codeOrReason?: number | string): Promise<never>;
13
+ /**
14
+ * Check if shutdown is in progress
15
+ */
16
+ export declare function isShutdownInProgress(): boolean;
17
+ /**
18
+ * Get the shutdown reason if shutting down
19
+ */
20
+ export declare function getShutdownReason(): string | undefined;
21
+ /**
22
+ * Install process-level signal handlers as fallback
23
+ * This ensures Ctrl+C always works even if input handling fails
24
+ */
25
+ export declare function installSignalHandlers(): void;
26
+ /**
27
+ * Reset Ctrl+C counter (call when input is processed to prevent double-counting)
28
+ */
29
+ export declare function resetCtrlCCounter(): void;
30
+ /**
31
+ * Get current Ctrl+C count (for coordination with input handlers)
32
+ */
33
+ export declare function getCtrlCCount(): number;
34
+ //# sourceMappingURL=shutdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shutdown.d.ts","sourceRoot":"","sources":["../../src/core/shutdown.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgBH;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAS3E;AAkBD;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAuCvF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAEtD;AAkCD;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAmD5C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
@@ -0,0 +1,186 @@
1
+ /**
2
+ * Centralized shutdown and signal handling for the CLI.
3
+ * Ensures Ctrl+C always works and process exits cleanly.
4
+ */
5
+ import { stdin, stdout } from 'node:process';
6
+ import { reportStatusError } from '../utils/statusReporter.js';
7
+ // Track shutdown state
8
+ let isShuttingDown = false;
9
+ let shutdownReason;
10
+ let signalHandlersInstalled = false;
11
+ let cleanupCallbacks = [];
12
+ let forceExitTimeout = null;
13
+ // Ctrl+C counter for double-press detection at process level
14
+ let processCtrlCCount = 0;
15
+ let lastProcessCtrlCTime = 0;
16
+ /**
17
+ * Register a cleanup callback to run on shutdown
18
+ */
19
+ export function onShutdown(callback) {
20
+ cleanupCallbacks.push(callback);
21
+ // Return unregister function
22
+ return () => {
23
+ const index = cleanupCallbacks.indexOf(callback);
24
+ if (index !== -1) {
25
+ cleanupCallbacks.splice(index, 1);
26
+ }
27
+ };
28
+ }
29
+ /**
30
+ * Run all cleanup callbacks
31
+ */
32
+ async function runCleanup() {
33
+ const callbacks = [...cleanupCallbacks];
34
+ cleanupCallbacks = [];
35
+ for (const callback of callbacks) {
36
+ try {
37
+ await callback();
38
+ }
39
+ catch {
40
+ // Ignore cleanup errors during shutdown
41
+ }
42
+ }
43
+ }
44
+ /**
45
+ * Initiate authorized shutdown with cleanup
46
+ */
47
+ export async function authorizedShutdown(codeOrReason) {
48
+ const exitCode = typeof codeOrReason === 'number' ? codeOrReason : 0;
49
+ const reason = typeof codeOrReason === 'string' ? codeOrReason : `exit(${exitCode})`;
50
+ if (isShuttingDown) {
51
+ // Already shutting down - force exit if called again
52
+ process.exit(exitCode);
53
+ }
54
+ isShuttingDown = true;
55
+ shutdownReason = reason;
56
+ // Set a force exit timeout in case cleanup hangs
57
+ forceExitTimeout = setTimeout(() => {
58
+ process.exit(exitCode);
59
+ }, 3000);
60
+ try {
61
+ // Restore terminal state
62
+ if (stdin.isTTY && stdin.setRawMode) {
63
+ try {
64
+ stdin.setRawMode(false);
65
+ }
66
+ catch {
67
+ // Ignore - may not be in raw mode
68
+ }
69
+ }
70
+ // Run cleanup callbacks
71
+ await runCleanup();
72
+ // Clear the force exit timeout since we completed normally
73
+ if (forceExitTimeout) {
74
+ clearTimeout(forceExitTimeout);
75
+ }
76
+ }
77
+ catch {
78
+ // Ignore cleanup errors
79
+ }
80
+ process.exit(exitCode);
81
+ }
82
+ /**
83
+ * Check if shutdown is in progress
84
+ */
85
+ export function isShutdownInProgress() {
86
+ return isShuttingDown;
87
+ }
88
+ /**
89
+ * Get the shutdown reason if shutting down
90
+ */
91
+ export function getShutdownReason() {
92
+ return shutdownReason;
93
+ }
94
+ /**
95
+ * Handle SIGINT at process level - this is the fallback when input interception fails
96
+ */
97
+ function handleSIGINT() {
98
+ const now = Date.now();
99
+ // Reset count if more than 2 seconds since last
100
+ if (now - lastProcessCtrlCTime > 2000) {
101
+ processCtrlCCount = 0;
102
+ }
103
+ lastProcessCtrlCTime = now;
104
+ processCtrlCCount++;
105
+ if (processCtrlCCount >= 2) {
106
+ // Double Ctrl+C - force exit
107
+ stdout.write('\n');
108
+ void authorizedShutdown(130); // Standard SIGINT exit code
109
+ }
110
+ else {
111
+ // Single Ctrl+C - show hint
112
+ stdout.write('\n');
113
+ stdout.write('\x1b[2m(Press Ctrl+C again to exit)\x1b[0m\n');
114
+ }
115
+ }
116
+ /**
117
+ * Handle SIGTERM - graceful shutdown request
118
+ */
119
+ function handleSIGTERM() {
120
+ void authorizedShutdown('SIGTERM');
121
+ }
122
+ /**
123
+ * Install process-level signal handlers as fallback
124
+ * This ensures Ctrl+C always works even if input handling fails
125
+ */
126
+ export function installSignalHandlers() {
127
+ if (signalHandlersInstalled) {
128
+ return;
129
+ }
130
+ signalHandlersInstalled = true;
131
+ // SIGINT (Ctrl+C) - with double-press detection
132
+ process.on('SIGINT', handleSIGINT);
133
+ // SIGTERM - graceful shutdown
134
+ process.on('SIGTERM', handleSIGTERM);
135
+ // Handle uncaught errors during shutdown
136
+ process.on('uncaughtException', (error) => {
137
+ if (!isShuttingDown) {
138
+ reportStatusError(error, 'Uncaught exception');
139
+ void authorizedShutdown(1);
140
+ }
141
+ });
142
+ // Handle unhandled promise rejections during shutdown
143
+ process.on('unhandledRejection', (reason) => {
144
+ if (!isShuttingDown) {
145
+ reportStatusError(reason, 'Unhandled rejection');
146
+ void authorizedShutdown(1);
147
+ }
148
+ });
149
+ // Ensure terminal is restored on exit. The cleanup-callback chain handles
150
+ // most paths, but `process.exit(N)` from any internal error and a few
151
+ // SIGKILL-adjacent flows skip async cleanup; this synchronous handler
152
+ // emits the minimum escape sequences directly so the user's shell isn't
153
+ // left in bracketed-paste mode with the cursor hidden.
154
+ process.on('exit', () => {
155
+ if (stdin.isTTY && stdin.setRawMode) {
156
+ try {
157
+ stdin.setRawMode(false);
158
+ }
159
+ catch {
160
+ // Ignore
161
+ }
162
+ }
163
+ try {
164
+ // Show cursor + disable bracketed paste — the two global terminal
165
+ // states the renderer toggles on startup. Idempotent: a terminal
166
+ // that wasn't in those modes silently ignores the sequences.
167
+ stdout.write('\x1b[?25h\x1b[?2004l');
168
+ }
169
+ catch {
170
+ // Ignore
171
+ }
172
+ });
173
+ }
174
+ /**
175
+ * Reset Ctrl+C counter (call when input is processed to prevent double-counting)
176
+ */
177
+ export function resetCtrlCCounter() {
178
+ processCtrlCCount = 0;
179
+ }
180
+ /**
181
+ * Get current Ctrl+C count (for coordination with input handlers)
182
+ */
183
+ export function getCtrlCCount() {
184
+ return processCtrlCCount;
185
+ }
186
+ //# sourceMappingURL=shutdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shutdown.js","sourceRoot":"","sources":["../../src/core/shutdown.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Sudo Password Manager - handles sudo password caching and prompting
3
+ *
4
+ * This module provides a singleton manager for sudo passwords, allowing
5
+ * bash commands to run with sudo privileges by prompting the user for
6
+ * their password when needed.
7
+ */
8
+ import { EventEmitter } from 'node:events';
9
+ declare class SudoPasswordManager extends EventEmitter {
10
+ private cachedPassword;
11
+ private passwordValidUntil;
12
+ private readonly CACHE_DURATION_MS;
13
+ private pendingRequest;
14
+ /**
15
+ * Get the cached sudo password if still valid
16
+ */
17
+ getCachedPassword(): string | null;
18
+ /**
19
+ * Cache a sudo password
20
+ */
21
+ cachePassword(password: string): void;
22
+ /**
23
+ * Invalidate the cached password (e.g., if sudo fails)
24
+ */
25
+ invalidatePassword(): void;
26
+ /**
27
+ * Request a sudo password - emits 'password-needed' event
28
+ * Returns the password or null if cancelled
29
+ */
30
+ requestPassword(): Promise<string | null>;
31
+ /**
32
+ * Provide the password in response to a 'password-needed' event
33
+ */
34
+ providePassword(password: string | null): void;
35
+ /**
36
+ * Cancel the pending password request
37
+ */
38
+ cancelRequest(): void;
39
+ /**
40
+ * Check if there's a pending password request
41
+ */
42
+ hasPendingRequest(): boolean;
43
+ }
44
+ export declare const sudoPasswordManager: SudoPasswordManager;
45
+ export declare function getSudoPassword(): Promise<string | null>;
46
+ export declare function setCachedSudoPassword(password: string): void;
47
+ export declare function invalidateSudoPassword(): void;
48
+ export declare function onSudoPasswordNeeded(callback: () => void): void;
49
+ export declare function offSudoPasswordNeeded(callback: () => void): void;
50
+ export declare function provideSudoPassword(password: string | null): void;
51
+ export {};
52
+ //# sourceMappingURL=sudoPasswordManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sudoPasswordManager.d.ts","sourceRoot":"","sources":["../../src/core/sudoPasswordManager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAO3C,cAAM,mBAAoB,SAAQ,YAAY;IAC5C,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiB;IACnD,OAAO,CAAC,cAAc,CAAoC;IAE1D;;OAEG;IACH,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAOlC;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKrC;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAK1B;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA0B/C;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAY9C;;OAEG;IACH,aAAa,IAAI,IAAI;IAQrB;;OAEG;IACH,iBAAiB,IAAI,OAAO;CAG7B;AAGD,eAAO,MAAM,mBAAmB,qBAA4B,CAAC;AAG7D,wBAAgB,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAExD;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAE5D;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAE/D;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAEhE;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEjE"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Sudo Password Manager - handles sudo password caching and prompting
3
+ *
4
+ * This module provides a singleton manager for sudo passwords, allowing
5
+ * bash commands to run with sudo privileges by prompting the user for
6
+ * their password when needed.
7
+ */
8
+ import { EventEmitter } from 'node:events';
9
+ class SudoPasswordManager extends EventEmitter {
10
+ cachedPassword = null;
11
+ passwordValidUntil = 0;
12
+ CACHE_DURATION_MS = 5 * 60 * 1000; // 5 minutes (matches typical sudo timeout)
13
+ pendingRequest = null;
14
+ /**
15
+ * Get the cached sudo password if still valid
16
+ */
17
+ getCachedPassword() {
18
+ if (this.cachedPassword && Date.now() < this.passwordValidUntil) {
19
+ return this.cachedPassword;
20
+ }
21
+ return null;
22
+ }
23
+ /**
24
+ * Cache a sudo password
25
+ */
26
+ cachePassword(password) {
27
+ this.cachedPassword = password;
28
+ this.passwordValidUntil = Date.now() + this.CACHE_DURATION_MS;
29
+ }
30
+ /**
31
+ * Invalidate the cached password (e.g., if sudo fails)
32
+ */
33
+ invalidatePassword() {
34
+ this.cachedPassword = null;
35
+ this.passwordValidUntil = 0;
36
+ }
37
+ /**
38
+ * Request a sudo password - emits 'password-needed' event
39
+ * Returns the password or null if cancelled
40
+ */
41
+ async requestPassword() {
42
+ // Check cache first
43
+ const cached = this.getCachedPassword();
44
+ if (cached) {
45
+ return cached;
46
+ }
47
+ // If there's already a pending request, wait for it
48
+ if (this.pendingRequest) {
49
+ return new Promise((resolve, reject) => {
50
+ // Subscribe to the same request
51
+ const originalResolve = this.pendingRequest.resolve;
52
+ this.pendingRequest.resolve = (password) => {
53
+ originalResolve(password);
54
+ resolve(password);
55
+ };
56
+ });
57
+ }
58
+ // Create new request
59
+ return new Promise((resolve, reject) => {
60
+ this.pendingRequest = { resolve, reject };
61
+ this.emit('password-needed');
62
+ });
63
+ }
64
+ /**
65
+ * Provide the password in response to a 'password-needed' event
66
+ */
67
+ providePassword(password) {
68
+ if (this.pendingRequest) {
69
+ const request = this.pendingRequest;
70
+ this.pendingRequest = null;
71
+ if (password) {
72
+ this.cachePassword(password);
73
+ }
74
+ request.resolve(password);
75
+ }
76
+ }
77
+ /**
78
+ * Cancel the pending password request
79
+ */
80
+ cancelRequest() {
81
+ if (this.pendingRequest) {
82
+ const request = this.pendingRequest;
83
+ this.pendingRequest = null;
84
+ request.resolve(null);
85
+ }
86
+ }
87
+ /**
88
+ * Check if there's a pending password request
89
+ */
90
+ hasPendingRequest() {
91
+ return this.pendingRequest !== null;
92
+ }
93
+ }
94
+ // Singleton instance
95
+ export const sudoPasswordManager = new SudoPasswordManager();
96
+ // Convenience exports
97
+ export function getSudoPassword() {
98
+ return sudoPasswordManager.requestPassword();
99
+ }
100
+ export function setCachedSudoPassword(password) {
101
+ sudoPasswordManager.cachePassword(password);
102
+ }
103
+ export function invalidateSudoPassword() {
104
+ sudoPasswordManager.invalidatePassword();
105
+ }
106
+ export function onSudoPasswordNeeded(callback) {
107
+ sudoPasswordManager.on('password-needed', callback);
108
+ }
109
+ export function offSudoPasswordNeeded(callback) {
110
+ sudoPasswordManager.off('password-needed', callback);
111
+ }
112
+ export function provideSudoPassword(password) {
113
+ sudoPasswordManager.providePassword(password);
114
+ }
115
+ //# sourceMappingURL=sudoPasswordManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sudoPasswordManager.js","sourceRoot":"","sources":["../../src/core/sudoPasswordManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Intelligent Task Completion Detector
3
+ *
4
+ * This module provides robust detection of whether a continuous task is truly complete,
5
+ * rather than just pattern-matching keywords like "done" in responses.
6
+ *
7
+ * Key features:
8
+ * - Multi-signal analysis (tool usage, response content, state changes)
9
+ * - AI verification round before final completion
10
+ * - Confidence scoring
11
+ * - Work-in-progress detection
12
+ *
13
+ * @license MIT
14
+ * @author Bo Shang
15
+ */
16
+ export interface ToolActivity {
17
+ toolName: string;
18
+ timestamp: number;
19
+ success: boolean;
20
+ hasOutput: boolean;
21
+ }
22
+ export interface CompletionSignals {
23
+ hasExplicitCompletionStatement: boolean;
24
+ hasIncompleteWorkIndicators: boolean;
25
+ hasPendingActionIndicators: boolean;
26
+ hasErrorIndicators: boolean;
27
+ hasFollowUpQuestions: boolean;
28
+ hasDocumentationSpam: boolean;
29
+ toolsUsedInLastResponse: number;
30
+ lastToolWasReadOnly: boolean;
31
+ consecutiveResponsesWithoutTools: number;
32
+ hasRecentFileWrites: boolean;
33
+ hasRecentCommits: boolean;
34
+ todoItemsPending: number;
35
+ todoItemsCompleted: number;
36
+ mentionsFutureWork: boolean;
37
+ completionConfidence: number;
38
+ }
39
+ export interface CompletionAnalysis {
40
+ isComplete: boolean;
41
+ confidence: number;
42
+ signals: CompletionSignals;
43
+ reason: string;
44
+ shouldVerify: boolean;
45
+ verificationPrompt?: string;
46
+ }
47
+ /**
48
+ * Returns the name of the matched failure pattern, or null.
49
+ * Used to FORCE the auto-loop to continue when tests are red.
50
+ */
51
+ export declare function detectFailingTestOrBuild(text: string): string | null;
52
+ export declare const WRITE_TOOLS: Set<string>;
53
+ export declare class TaskCompletionDetector {
54
+ private toolHistory;
55
+ private responseHistory;
56
+ private lastToolNames;
57
+ private consecutiveNoTools;
58
+ private todoStats;
59
+ constructor();
60
+ /**
61
+ * Reset the detector state for a new task
62
+ */
63
+ reset(): void;
64
+ /**
65
+ * Record a tool call
66
+ */
67
+ recordToolCall(toolName: string, success: boolean, hasOutput: boolean): void;
68
+ /**
69
+ * Record a response (call after each AI response)
70
+ */
71
+ recordResponse(response: string, toolsUsed: string[]): void;
72
+ /**
73
+ * Update todo statistics
74
+ */
75
+ updateTodoStats(pending: number, completed: number): void;
76
+ /**
77
+ * Analyze the current state and determine if the task is complete
78
+ */
79
+ analyzeCompletion(currentResponse: string, toolsUsedThisRound: string[]): CompletionAnalysis;
80
+ /**
81
+ * Gather all completion signals from the current state
82
+ */
83
+ private gatherSignals;
84
+ /**
85
+ * Calculate confidence score for task completion
86
+ */
87
+ private calculateConfidence;
88
+ /**
89
+ * Generate a verification prompt to ask the AI if the task is truly complete
90
+ */
91
+ private generateVerificationPrompt;
92
+ /**
93
+ * Generate a verification prompt for stagnation cases
94
+ */
95
+ private generateStagnationVerificationPrompt;
96
+ /**
97
+ * Get a human-readable reason for low confidence
98
+ */
99
+ private getLowConfidenceReason;
100
+ /**
101
+ * Check if a verification response confirms completion
102
+ */
103
+ isVerificationConfirmed(verificationResponse: string): boolean;
104
+ /**
105
+ * Check if a response contradicts itself by saying "complete" but also indicating incomplete work.
106
+ * This comprehensive list catches many ways AI might admit work isn't done while claiming completion.
107
+ */
108
+ private responseContainsIncompleteIndicators;
109
+ /**
110
+ * Check if response contains simulation/fake indicators that should prevent completion.
111
+ * Simulated results mean the task was NOT actually completed.
112
+ */
113
+ containsSimulationIndicators(response: string): boolean;
114
+ }
115
+ export declare function getTaskCompletionDetector(): TaskCompletionDetector;
116
+ export declare function resetTaskCompletionDetector(): void;
117
+ //# sourceMappingURL=taskCompletionDetector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskCompletionDetector.d.ts","sourceRoot":"","sources":["../../src/core/taskCompletionDetector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAEhC,8BAA8B,EAAE,OAAO,CAAC;IACxC,2BAA2B,EAAE,OAAO,CAAC;IACrC,0BAA0B,EAAE,OAAO,CAAC;IACpC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,oBAAoB,EAAE,OAAO,CAAC;IAG9B,uBAAuB,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gCAAgC,EAAE,MAAM,CAAC;IACzC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gBAAgB,EAAE,OAAO,CAAC;IAG1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAG5B,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAiCD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUpE;AA6ED,eAAO,MAAM,WAAW,aAWtB,CAAC;AAEH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,SAAS,CAAgC;;IAMjD;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAkB5E;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAgB3D;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAIzD;;OAEG;IACH,iBAAiB,CAAC,eAAe,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,kBAAkB;IAsE5F;;OAEG;IACH,OAAO,CAAC,aAAa;IA0CrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA2B3B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAgClC;;OAEG;IACH,OAAO,CAAC,oCAAoC;IAW5C;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAyB9B;;OAEG;IACH,uBAAuB,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO;IAc9D;;;OAGG;IACH,OAAO,CAAC,oCAAoC;IAoF5C;;;OAGG;IACH,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAmBxD;AAOD,wBAAgB,yBAAyB,IAAI,sBAAsB,CAKlE;AAED,wBAAgB,2BAA2B,IAAI,IAAI,CAIlD"}