erosolar-cli 1.0.2 → 1.0.3

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 (418) hide show
  1. package/Agents.md +411 -200
  2. package/README.md +77 -44
  3. package/dist/adapters/browser/index.d.ts +12 -0
  4. package/dist/adapters/browser/index.d.ts.map +1 -0
  5. package/dist/adapters/browser/index.js +1 -0
  6. package/dist/adapters/browser/index.js.map +1 -0
  7. package/dist/adapters/node/index.d.ts +17 -0
  8. package/dist/adapters/node/index.d.ts.map +1 -0
  9. package/dist/adapters/node/index.js +1 -0
  10. package/dist/adapters/node/index.js.map +1 -0
  11. package/dist/adapters/remote/index.d.ts +13 -0
  12. package/dist/adapters/remote/index.d.ts.map +1 -0
  13. package/dist/adapters/remote/index.js +1 -0
  14. package/dist/adapters/remote/index.js.map +1 -0
  15. package/dist/adapters/types.d.ts +14 -0
  16. package/dist/adapters/types.d.ts.map +1 -0
  17. package/dist/adapters/types.js +1 -0
  18. package/dist/adapters/types.js.map +1 -0
  19. package/dist/bin/erosolar.d.ts +3 -0
  20. package/dist/bin/erosolar.d.ts.map +1 -0
  21. package/dist/bin/erosolar.js +1 -0
  22. package/dist/bin/erosolar.js.map +1 -0
  23. package/dist/capabilities/bashCapability.d.ts +13 -0
  24. package/dist/capabilities/bashCapability.d.ts.map +1 -0
  25. package/dist/capabilities/bashCapability.js +1 -0
  26. package/dist/capabilities/bashCapability.js.map +1 -0
  27. package/dist/capabilities/codeAnalysisCapability.d.ts +13 -0
  28. package/dist/capabilities/codeAnalysisCapability.d.ts.map +1 -0
  29. package/dist/capabilities/codeAnalysisCapability.js +24 -0
  30. package/dist/capabilities/codeAnalysisCapability.js.map +1 -0
  31. package/dist/capabilities/codeGenerationCapability.d.ts +13 -0
  32. package/dist/capabilities/codeGenerationCapability.d.ts.map +1 -0
  33. package/dist/capabilities/codeGenerationCapability.js +25 -0
  34. package/dist/capabilities/codeGenerationCapability.js.map +1 -0
  35. package/dist/capabilities/codeQualityCapability.d.ts +13 -0
  36. package/dist/capabilities/codeQualityCapability.d.ts.map +1 -0
  37. package/dist/capabilities/codeQualityCapability.js +25 -0
  38. package/dist/capabilities/codeQualityCapability.js.map +1 -0
  39. package/dist/capabilities/dependencySecurityCapability.d.ts +13 -0
  40. package/dist/capabilities/dependencySecurityCapability.d.ts.map +1 -0
  41. package/dist/capabilities/dependencySecurityCapability.js +24 -0
  42. package/dist/capabilities/dependencySecurityCapability.js.map +1 -0
  43. package/dist/capabilities/devCapability.d.ts +13 -0
  44. package/dist/capabilities/devCapability.d.ts.map +1 -0
  45. package/dist/capabilities/devCapability.js +24 -0
  46. package/dist/capabilities/devCapability.js.map +1 -0
  47. package/dist/capabilities/filesystemCapability.d.ts +13 -0
  48. package/dist/capabilities/filesystemCapability.d.ts.map +1 -0
  49. package/dist/capabilities/filesystemCapability.js +1 -0
  50. package/dist/capabilities/filesystemCapability.js.map +1 -0
  51. package/dist/capabilities/index.d.ts +10 -0
  52. package/dist/capabilities/index.d.ts.map +1 -0
  53. package/dist/capabilities/index.js +7 -0
  54. package/dist/capabilities/index.js.map +1 -0
  55. package/dist/capabilities/refactoringCapability.d.ts +13 -0
  56. package/dist/capabilities/refactoringCapability.d.ts.map +1 -0
  57. package/dist/capabilities/refactoringCapability.js +25 -0
  58. package/dist/capabilities/refactoringCapability.js.map +1 -0
  59. package/dist/capabilities/repoChecksCapability.d.ts +10 -0
  60. package/dist/capabilities/repoChecksCapability.d.ts.map +1 -0
  61. package/dist/capabilities/repoChecksCapability.js +24 -0
  62. package/dist/capabilities/repoChecksCapability.js.map +1 -0
  63. package/dist/capabilities/searchCapability.d.ts +13 -0
  64. package/dist/capabilities/searchCapability.d.ts.map +1 -0
  65. package/dist/capabilities/searchCapability.js +1 -0
  66. package/dist/capabilities/searchCapability.js.map +1 -0
  67. package/dist/capabilities/testingCapability.d.ts +13 -0
  68. package/dist/capabilities/testingCapability.d.ts.map +1 -0
  69. package/dist/capabilities/testingCapability.js +25 -0
  70. package/dist/capabilities/testingCapability.js.map +1 -0
  71. package/dist/capabilities/toolManifest.d.ts +3 -0
  72. package/dist/capabilities/toolManifest.d.ts.map +1 -0
  73. package/dist/capabilities/toolManifest.js +160 -0
  74. package/dist/capabilities/toolManifest.js.map +1 -0
  75. package/dist/capabilities/toolRegistry.d.ts +22 -0
  76. package/dist/capabilities/toolRegistry.d.ts.map +1 -0
  77. package/dist/capabilities/toolRegistry.js +49 -32
  78. package/dist/capabilities/toolRegistry.js.map +1 -0
  79. package/dist/config.d.ts +28 -0
  80. package/dist/config.d.ts.map +1 -0
  81. package/dist/config.js +98 -23
  82. package/dist/config.js.map +1 -0
  83. package/dist/contracts/agent-profiles.schema.json +43 -0
  84. package/dist/contracts/agent-schema.snapshot.json +437 -0
  85. package/dist/contracts/schemas/agent-profile.schema.json +157 -0
  86. package/dist/contracts/schemas/agent-rules.schema.json +238 -0
  87. package/dist/contracts/schemas/agent.schema.json +89 -0
  88. package/dist/contracts/schemas/tool-selection.schema.json +174 -0
  89. package/dist/contracts/tools.schema.json +100 -0
  90. package/dist/contracts/v1/agent.d.ts +147 -0
  91. package/dist/contracts/v1/agent.d.ts.map +1 -0
  92. package/dist/contracts/v1/agent.js +1 -0
  93. package/dist/contracts/v1/agent.js.map +1 -0
  94. package/dist/contracts/v1/agentProfileManifest.d.ts +52 -0
  95. package/dist/contracts/v1/agentProfileManifest.d.ts.map +1 -0
  96. package/dist/contracts/v1/agentProfileManifest.js +9 -0
  97. package/dist/contracts/v1/agentProfileManifest.js.map +1 -0
  98. package/dist/contracts/v1/agentRules.d.ts +60 -0
  99. package/dist/contracts/v1/agentRules.d.ts.map +1 -0
  100. package/dist/contracts/v1/agentRules.js +10 -0
  101. package/dist/contracts/v1/agentRules.js.map +1 -0
  102. package/dist/contracts/v1/provider.d.ts +149 -0
  103. package/dist/contracts/v1/provider.d.ts.map +1 -0
  104. package/dist/contracts/v1/provider.js +1 -0
  105. package/dist/contracts/v1/provider.js.map +1 -0
  106. package/dist/contracts/v1/tool.d.ts +136 -0
  107. package/dist/contracts/v1/tool.d.ts.map +1 -0
  108. package/dist/contracts/v1/tool.js +1 -0
  109. package/dist/contracts/v1/tool.js.map +1 -0
  110. package/dist/contracts/v1/toolAccess.d.ts +43 -0
  111. package/dist/contracts/v1/toolAccess.d.ts.map +1 -0
  112. package/dist/contracts/v1/toolAccess.js +9 -0
  113. package/dist/contracts/v1/toolAccess.js.map +1 -0
  114. package/dist/core/agent.d.ts +35 -0
  115. package/dist/core/agent.d.ts.map +1 -0
  116. package/dist/core/agent.js +17 -9
  117. package/dist/core/agent.js.map +1 -0
  118. package/dist/core/agentProfileManifest.d.ts +3 -0
  119. package/dist/core/agentProfileManifest.d.ts.map +1 -0
  120. package/dist/core/agentProfileManifest.js +176 -0
  121. package/dist/core/agentProfileManifest.js.map +1 -0
  122. package/dist/core/agentProfiles.d.ts +22 -0
  123. package/dist/core/agentProfiles.d.ts.map +1 -0
  124. package/dist/core/agentProfiles.js +1 -0
  125. package/dist/core/agentProfiles.js.map +1 -0
  126. package/dist/core/agentRulebook.d.ts +10 -0
  127. package/dist/core/agentRulebook.d.ts.map +1 -0
  128. package/dist/core/agentRulebook.js +153 -0
  129. package/dist/core/agentRulebook.js.map +1 -0
  130. package/dist/core/agentSchemaSnapshot.d.ts +14 -0
  131. package/dist/core/agentSchemaSnapshot.d.ts.map +1 -0
  132. package/dist/core/agentSchemaSnapshot.js +38 -0
  133. package/dist/core/agentSchemaSnapshot.js.map +1 -0
  134. package/dist/core/agentsDocument.d.ts +4 -0
  135. package/dist/core/agentsDocument.d.ts.map +1 -0
  136. package/dist/core/agentsDocument.js +70 -0
  137. package/dist/core/agentsDocument.js.map +1 -0
  138. package/dist/core/contextWindow.d.ts +6 -0
  139. package/dist/core/contextWindow.d.ts.map +1 -0
  140. package/dist/core/contextWindow.js +1 -0
  141. package/dist/core/contextWindow.js.map +1 -0
  142. package/dist/core/errors/apiKeyErrors.d.ts +11 -0
  143. package/dist/core/errors/apiKeyErrors.d.ts.map +1 -0
  144. package/dist/core/errors/apiKeyErrors.js +1 -0
  145. package/dist/core/errors/apiKeyErrors.js.map +1 -0
  146. package/dist/core/errors.d.ts +4 -0
  147. package/dist/core/errors.d.ts.map +1 -0
  148. package/dist/core/errors.js +33 -0
  149. package/dist/core/errors.js.map +1 -0
  150. package/dist/core/preferences.d.ts +21 -0
  151. package/dist/core/preferences.d.ts.map +1 -0
  152. package/dist/core/preferences.js +13 -7
  153. package/dist/core/preferences.js.map +1 -0
  154. package/dist/core/schemaValidator.d.ts +6 -0
  155. package/dist/core/schemaValidator.d.ts.map +1 -0
  156. package/dist/core/schemaValidator.js +93 -0
  157. package/dist/core/schemaValidator.js.map +1 -0
  158. package/dist/core/secretStore.d.ts +20 -0
  159. package/dist/core/secretStore.d.ts.map +1 -0
  160. package/dist/core/secretStore.js +3 -8
  161. package/dist/core/secretStore.js.map +1 -0
  162. package/dist/core/toolRuntime.d.ts +48 -0
  163. package/dist/core/toolRuntime.d.ts.map +1 -0
  164. package/dist/core/toolRuntime.js +34 -11
  165. package/dist/core/toolRuntime.js.map +1 -0
  166. package/dist/core/types.d.ts +86 -0
  167. package/dist/core/types.d.ts.map +1 -0
  168. package/dist/core/types.js +1 -0
  169. package/dist/core/types.js.map +1 -0
  170. package/dist/plugins/providers/anthropic/index.d.ts +2 -0
  171. package/dist/plugins/providers/anthropic/index.d.ts.map +1 -0
  172. package/dist/plugins/providers/anthropic/index.js +6 -4
  173. package/dist/plugins/providers/anthropic/index.js.map +1 -0
  174. package/dist/plugins/providers/deepseek/index.d.ts +2 -0
  175. package/dist/plugins/providers/deepseek/index.d.ts.map +1 -0
  176. package/dist/plugins/providers/deepseek/index.js +1 -0
  177. package/dist/plugins/providers/deepseek/index.js.map +1 -0
  178. package/dist/plugins/providers/google/index.d.ts +2 -0
  179. package/dist/plugins/providers/google/index.d.ts.map +1 -0
  180. package/dist/plugins/providers/google/index.js +6 -4
  181. package/dist/plugins/providers/google/index.js.map +1 -0
  182. package/dist/plugins/providers/index.d.ts +2 -0
  183. package/dist/plugins/providers/index.d.ts.map +1 -0
  184. package/dist/plugins/providers/index.js +1 -0
  185. package/dist/plugins/providers/index.js.map +1 -0
  186. package/dist/plugins/providers/openai/index.d.ts +3 -0
  187. package/dist/plugins/providers/openai/index.d.ts.map +1 -0
  188. package/dist/plugins/providers/openai/index.js +6 -4
  189. package/dist/plugins/providers/openai/index.js.map +1 -0
  190. package/dist/plugins/providers/xai/index.d.ts +2 -0
  191. package/dist/plugins/providers/xai/index.d.ts.map +1 -0
  192. package/dist/plugins/providers/xai/index.js +1 -0
  193. package/dist/plugins/providers/xai/index.js.map +1 -0
  194. package/dist/plugins/tools/bash/localBashPlugin.d.ts +3 -0
  195. package/dist/plugins/tools/bash/localBashPlugin.d.ts.map +1 -0
  196. package/dist/plugins/tools/bash/localBashPlugin.js +1 -0
  197. package/dist/plugins/tools/bash/localBashPlugin.js.map +1 -0
  198. package/dist/plugins/tools/checks/localRepoChecksPlugin.d.ts +3 -0
  199. package/dist/plugins/tools/checks/localRepoChecksPlugin.d.ts.map +1 -0
  200. package/dist/plugins/tools/checks/localRepoChecksPlugin.js +14 -0
  201. package/dist/plugins/tools/checks/localRepoChecksPlugin.js.map +1 -0
  202. package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.d.ts +3 -0
  203. package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.d.ts.map +1 -0
  204. package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.js +14 -0
  205. package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.js.map +1 -0
  206. package/dist/plugins/tools/codeQuality/codeQualityPlugin.d.ts +3 -0
  207. package/dist/plugins/tools/codeQuality/codeQualityPlugin.d.ts.map +1 -0
  208. package/dist/plugins/tools/codeQuality/codeQualityPlugin.js +14 -0
  209. package/dist/plugins/tools/codeQuality/codeQualityPlugin.js.map +1 -0
  210. package/dist/plugins/tools/dependency/dependencyPlugin.d.ts +3 -0
  211. package/dist/plugins/tools/dependency/dependencyPlugin.d.ts.map +1 -0
  212. package/dist/plugins/tools/dependency/dependencyPlugin.js +12 -0
  213. package/dist/plugins/tools/dependency/dependencyPlugin.js.map +1 -0
  214. package/dist/plugins/tools/development/devPlugin.d.ts +3 -0
  215. package/dist/plugins/tools/development/devPlugin.d.ts.map +1 -0
  216. package/dist/plugins/tools/development/devPlugin.js +14 -0
  217. package/dist/plugins/tools/development/devPlugin.js.map +1 -0
  218. package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts +3 -0
  219. package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts.map +1 -0
  220. package/dist/plugins/tools/filesystem/localFilesystemPlugin.js +1 -0
  221. package/dist/plugins/tools/filesystem/localFilesystemPlugin.js.map +1 -0
  222. package/dist/plugins/tools/index.d.ts +3 -0
  223. package/dist/plugins/tools/index.d.ts.map +1 -0
  224. package/dist/plugins/tools/index.js +1 -0
  225. package/dist/plugins/tools/index.js.map +1 -0
  226. package/dist/plugins/tools/nodeDefaults.d.ts +2 -0
  227. package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -0
  228. package/dist/plugins/tools/nodeDefaults.js +15 -2
  229. package/dist/plugins/tools/nodeDefaults.js.map +1 -0
  230. package/dist/plugins/tools/refactoring/refactoringPlugin.d.ts +3 -0
  231. package/dist/plugins/tools/refactoring/refactoringPlugin.d.ts.map +1 -0
  232. package/dist/plugins/tools/refactoring/refactoringPlugin.js +12 -0
  233. package/dist/plugins/tools/refactoring/refactoringPlugin.js.map +1 -0
  234. package/dist/plugins/tools/registry.d.ts +22 -0
  235. package/dist/plugins/tools/registry.d.ts.map +1 -0
  236. package/dist/plugins/tools/registry.js +1 -0
  237. package/dist/plugins/tools/registry.js.map +1 -0
  238. package/dist/plugins/tools/search/localSearchPlugin.d.ts +3 -0
  239. package/dist/plugins/tools/search/localSearchPlugin.d.ts.map +1 -0
  240. package/dist/plugins/tools/search/localSearchPlugin.js +1 -0
  241. package/dist/plugins/tools/search/localSearchPlugin.js.map +1 -0
  242. package/dist/plugins/tools/testing/testingPlugin.d.ts +3 -0
  243. package/dist/plugins/tools/testing/testingPlugin.d.ts.map +1 -0
  244. package/dist/plugins/tools/testing/testingPlugin.js +12 -0
  245. package/dist/plugins/tools/testing/testingPlugin.js.map +1 -0
  246. package/dist/providers/anthropicProvider.d.ts +23 -0
  247. package/dist/providers/anthropicProvider.d.ts.map +1 -0
  248. package/dist/providers/anthropicProvider.js +3 -2
  249. package/dist/providers/anthropicProvider.js.map +1 -0
  250. package/dist/providers/googleProvider.d.ts +19 -0
  251. package/dist/providers/googleProvider.d.ts.map +1 -0
  252. package/dist/providers/googleProvider.js +1 -1
  253. package/dist/providers/googleProvider.js.map +1 -0
  254. package/dist/providers/openaiChatCompletionsProvider.d.ts +16 -0
  255. package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -0
  256. package/dist/providers/openaiChatCompletionsProvider.js +1 -0
  257. package/dist/providers/openaiChatCompletionsProvider.js.map +1 -0
  258. package/dist/providers/openaiResponsesProvider.d.ts +20 -0
  259. package/dist/providers/openaiResponsesProvider.d.ts.map +1 -0
  260. package/dist/providers/openaiResponsesProvider.js +1 -0
  261. package/dist/providers/openaiResponsesProvider.js.map +1 -0
  262. package/dist/providers/providerFactory.d.ts +18 -0
  263. package/dist/providers/providerFactory.d.ts.map +1 -0
  264. package/dist/providers/providerFactory.js +5 -1
  265. package/dist/providers/providerFactory.js.map +1 -0
  266. package/dist/runtime/agentHost.d.ts +61 -0
  267. package/dist/runtime/agentHost.d.ts.map +1 -0
  268. package/dist/runtime/agentHost.js +5 -1
  269. package/dist/runtime/agentHost.js.map +1 -0
  270. package/dist/runtime/agentSession.d.ts +32 -0
  271. package/dist/runtime/agentSession.d.ts.map +1 -0
  272. package/dist/runtime/agentSession.js +23 -1
  273. package/dist/runtime/agentSession.js.map +1 -0
  274. package/dist/runtime/browser.d.ts +7 -0
  275. package/dist/runtime/browser.d.ts.map +1 -0
  276. package/dist/runtime/browser.js +1 -0
  277. package/dist/runtime/browser.js.map +1 -0
  278. package/dist/runtime/cloud.d.ts +7 -0
  279. package/dist/runtime/cloud.d.ts.map +1 -0
  280. package/dist/runtime/cloud.js +1 -0
  281. package/dist/runtime/cloud.js.map +1 -0
  282. package/dist/runtime/node.d.ts +8 -0
  283. package/dist/runtime/node.d.ts.map +1 -0
  284. package/dist/runtime/node.js +1 -0
  285. package/dist/runtime/node.js.map +1 -0
  286. package/dist/runtime/universal.d.ts +21 -0
  287. package/dist/runtime/universal.d.ts.map +1 -0
  288. package/dist/runtime/universal.js +1 -0
  289. package/dist/runtime/universal.js.map +1 -0
  290. package/dist/shell/bracketedPasteManager.d.ts +23 -0
  291. package/dist/shell/bracketedPasteManager.d.ts.map +1 -0
  292. package/dist/shell/bracketedPasteManager.js +1 -0
  293. package/dist/shell/bracketedPasteManager.js.map +1 -0
  294. package/dist/shell/interactiveShell.d.ts +128 -0
  295. package/dist/shell/interactiveShell.d.ts.map +1 -0
  296. package/dist/shell/interactiveShell.js +264 -146
  297. package/dist/shell/interactiveShell.js.map +1 -0
  298. package/dist/shell/liveStatus.d.ts +33 -0
  299. package/dist/shell/liveStatus.d.ts.map +1 -0
  300. package/dist/shell/liveStatus.js +89 -0
  301. package/dist/shell/liveStatus.js.map +1 -0
  302. package/dist/shell/promptSkin.d.ts +50 -0
  303. package/dist/shell/promptSkin.d.ts.map +1 -0
  304. package/dist/shell/promptSkin.js +380 -0
  305. package/dist/shell/promptSkin.js.map +1 -0
  306. package/dist/shell/shellApp.d.ts +10 -0
  307. package/dist/shell/shellApp.d.ts.map +1 -0
  308. package/dist/shell/shellApp.js +155 -78
  309. package/dist/shell/shellApp.js.map +1 -0
  310. package/dist/shell/systemPrompt.d.ts +3 -0
  311. package/dist/shell/systemPrompt.d.ts.map +1 -0
  312. package/dist/shell/systemPrompt.js +64 -0
  313. package/dist/shell/systemPrompt.js.map +1 -0
  314. package/dist/shell/updateManager.d.ts +2 -0
  315. package/dist/shell/updateManager.d.ts.map +1 -0
  316. package/dist/shell/updateManager.js +109 -0
  317. package/dist/shell/updateManager.js.map +1 -0
  318. package/dist/tools/bashTools.d.ts +8 -0
  319. package/dist/tools/bashTools.d.ts.map +1 -0
  320. package/dist/tools/bashTools.js +18 -15
  321. package/dist/tools/bashTools.js.map +1 -0
  322. package/dist/tools/codeAnalysisTools.d.ts +74 -0
  323. package/dist/tools/codeAnalysisTools.d.ts.map +1 -0
  324. package/dist/tools/codeAnalysisTools.js +642 -0
  325. package/dist/tools/codeAnalysisTools.js.map +1 -0
  326. package/dist/tools/codeGenerationTools.d.ts +3 -0
  327. package/dist/tools/codeGenerationTools.d.ts.map +1 -0
  328. package/dist/tools/codeGenerationTools.js +369 -0
  329. package/dist/tools/codeGenerationTools.js.map +1 -0
  330. package/dist/tools/codeQualityTools.d.ts +3 -0
  331. package/dist/tools/codeQualityTools.d.ts.map +1 -0
  332. package/dist/tools/codeQualityTools.js +295 -0
  333. package/dist/tools/codeQualityTools.js.map +1 -0
  334. package/dist/tools/dependencyTools.d.ts +3 -0
  335. package/dist/tools/dependencyTools.d.ts.map +1 -0
  336. package/dist/tools/dependencyTools.js +283 -0
  337. package/dist/tools/dependencyTools.js.map +1 -0
  338. package/dist/tools/devTools.d.ts +10 -0
  339. package/dist/tools/devTools.d.ts.map +1 -0
  340. package/dist/tools/devTools.js +239 -0
  341. package/dist/tools/devTools.js.map +1 -0
  342. package/dist/tools/diffUtils.d.ts +8 -0
  343. package/dist/tools/diffUtils.d.ts.map +1 -0
  344. package/dist/tools/diffUtils.js +2 -1
  345. package/dist/tools/diffUtils.js.map +1 -0
  346. package/dist/tools/fileTools.d.ts +3 -0
  347. package/dist/tools/fileTools.d.ts.map +1 -0
  348. package/dist/tools/fileTools.js +72 -21
  349. package/dist/tools/fileTools.js.map +1 -0
  350. package/dist/tools/refactoringTools.d.ts +3 -0
  351. package/dist/tools/refactoringTools.d.ts.map +1 -0
  352. package/dist/tools/refactoringTools.js +294 -0
  353. package/dist/tools/refactoringTools.js.map +1 -0
  354. package/dist/tools/repoChecksTools.d.ts +3 -0
  355. package/dist/tools/repoChecksTools.d.ts.map +1 -0
  356. package/dist/tools/repoChecksTools.js +161 -0
  357. package/dist/tools/repoChecksTools.js.map +1 -0
  358. package/dist/tools/searchTools.d.ts +3 -0
  359. package/dist/tools/searchTools.d.ts.map +1 -0
  360. package/dist/tools/searchTools.js +50 -22
  361. package/dist/tools/searchTools.js.map +1 -0
  362. package/dist/tools/testingTools.d.ts +3 -0
  363. package/dist/tools/testingTools.d.ts.map +1 -0
  364. package/dist/tools/testingTools.js +233 -0
  365. package/dist/tools/testingTools.js.map +1 -0
  366. package/dist/ui/codeHighlighter.d.ts +6 -0
  367. package/dist/ui/codeHighlighter.d.ts.map +1 -0
  368. package/dist/ui/codeHighlighter.js +41 -29
  369. package/dist/ui/codeHighlighter.js.map +1 -0
  370. package/dist/ui/designSystem.d.ts +26 -0
  371. package/dist/ui/designSystem.d.ts.map +1 -0
  372. package/dist/ui/designSystem.js +1 -0
  373. package/dist/ui/designSystem.js.map +1 -0
  374. package/dist/ui/display.d.ts +78 -0
  375. package/dist/ui/display.d.ts.map +1 -0
  376. package/dist/ui/display.js +211 -153
  377. package/dist/ui/display.js.map +1 -0
  378. package/dist/ui/layout.d.ts +17 -0
  379. package/dist/ui/layout.d.ts.map +1 -0
  380. package/dist/ui/layout.js +12 -7
  381. package/dist/ui/layout.js.map +1 -0
  382. package/dist/ui/richText.d.ts +6 -0
  383. package/dist/ui/richText.d.ts.map +1 -0
  384. package/dist/ui/richText.js +13 -4
  385. package/dist/ui/richText.js.map +1 -0
  386. package/dist/ui/theme.d.ts +77 -0
  387. package/dist/ui/theme.d.ts.map +1 -0
  388. package/dist/ui/theme.js +19 -6
  389. package/dist/ui/theme.js.map +1 -0
  390. package/dist/ui/unified/UIEventBus.d.ts +93 -0
  391. package/dist/ui/unified/UIEventBus.d.ts.map +1 -0
  392. package/dist/ui/unified/UIEventBus.js +124 -0
  393. package/dist/ui/unified/UIEventBus.js.map +1 -0
  394. package/dist/ui/unified/UIState.d.ts +123 -0
  395. package/dist/ui/unified/UIState.d.ts.map +1 -0
  396. package/dist/ui/unified/UIState.js +188 -0
  397. package/dist/ui/unified/UIState.js.map +1 -0
  398. package/dist/utils/errorUtils.d.ts +16 -0
  399. package/dist/utils/errorUtils.d.ts.map +1 -0
  400. package/dist/utils/errorUtils.js +68 -0
  401. package/dist/utils/errorUtils.js.map +1 -0
  402. package/dist/utils/nodeVersion.d.ts +3 -0
  403. package/dist/utils/nodeVersion.d.ts.map +1 -0
  404. package/dist/utils/nodeVersion.js +51 -0
  405. package/dist/utils/nodeVersion.js.map +1 -0
  406. package/dist/workspace.d.ts +8 -0
  407. package/dist/workspace.d.ts.map +1 -0
  408. package/dist/workspace.js +63 -11
  409. package/dist/workspace.js.map +1 -0
  410. package/package.json +27 -14
  411. package/scripts/health-check.mjs +179 -0
  412. package/ARCHITECTURE.json +0 -157
  413. package/SOURCE_OF_TRUTH.json +0 -103
  414. package/dist/capabilities/tavilyCapability.js +0 -26
  415. package/dist/plugins/tools/tavily/tavilyPlugin.js +0 -16
  416. package/dist/shell/__tests__/bracketedPasteManager.test.js +0 -35
  417. package/dist/tools/tavilyTools.js +0 -176
  418. package/dist/ui/__tests__/richText.test.js +0 -36
@@ -3,20 +3,23 @@ import { readFileSync } from 'node:fs';
3
3
  import { dirname, relative, resolve } from 'node:path';
4
4
  import { fileURLToPath } from 'node:url';
5
5
  import '../config.js';
6
- import { buildWorkspaceContext } from '../workspace.js';
6
+ import { buildWorkspaceContext, resolveWorkspaceCaptureOptions } from '../workspace.js';
7
7
  import { InteractiveShell } from './interactiveShell.js';
8
8
  import { display } from '../ui/display.js';
9
9
  import { loadActiveProfilePreference, loadModelPreference, loadToolSettings, } from '../core/preferences.js';
10
10
  import { createNodeRuntime } from '../runtime/node.js';
11
11
  import { buildEnabledToolSet, evaluateToolPermissions, isPluginEnabled, } from '../capabilities/toolRegistry.js';
12
12
  import { listAgentProfiles, hasAgentProfile } from '../core/agentProfiles.js';
13
+ import { maybeOfferCliUpdate } from './updateManager.js';
14
+ import { LiveStatusTracker, INTERRUPT_HINT } from './liveStatus.js';
15
+ import { buildInteractiveSystemPrompt } from './systemPrompt.js';
13
16
  /**
14
17
  * Launch the interactive shell with full capability awareness for the selected profile.
15
18
  */
16
19
  export async function launchShell(defaultProfile, options = {}) {
17
20
  try {
18
21
  const { profileOverride, promptArgs } = parseLaunchArguments(process.argv.slice(2));
19
- const envProfileOverride = process.env.EROSOLAR_PROFILE?.trim() || null;
22
+ const envProfileOverride = process.env['EROSOLAR_PROFILE']?.trim() || null;
20
23
  const allowProfileSelection = Boolean(options.enableProfileSelection);
21
24
  const availableProfiles = listAgentProfiles();
22
25
  const rawSavedProfile = allowProfileSelection ? loadActiveProfilePreference() : null;
@@ -30,9 +33,10 @@ export async function launchShell(defaultProfile, options = {}) {
30
33
  allowSavedProfile: allowProfileSelection,
31
34
  });
32
35
  const workingDir = process.cwd();
33
- // Build workspace context
34
- const workspaceContext = buildWorkspaceContext(workingDir);
35
- const toolObserver = createToolObserver(workingDir);
36
+ const workspaceOptions = resolveWorkspaceCaptureOptions(process.env);
37
+ const workspaceContext = buildWorkspaceContext(workingDir, workspaceOptions);
38
+ const statusTracker = new LiveStatusTracker();
39
+ const toolObserver = createToolObserver(workingDir, statusTracker);
36
40
  const toolSettings = loadToolSettings();
37
41
  const toolSelection = buildEnabledToolSet(toolSettings);
38
42
  const permissionSummary = evaluateToolPermissions(toolSelection);
@@ -58,11 +62,14 @@ export async function launchShell(defaultProfile, options = {}) {
58
62
  temperature: profileConfig.temperature,
59
63
  maxTokens: profileConfig.maxTokens,
60
64
  };
61
- // Update system prompt for interactive mode
62
65
  const enhancedSystemPrompt = buildInteractiveSystemPrompt(profileConfig.systemPrompt, profileConfig.label, providerTools);
63
66
  const version = readPackageVersion();
64
- // Show welcome banner
65
67
  display.showWelcome(profileConfig.label, profile, initialModel.model, initialModel.provider, workingDir, version);
68
+ display.showAvailableTools(providerTools);
69
+ const continueLaunch = await maybeOfferCliUpdate(version);
70
+ if (!continueLaunch) {
71
+ return;
72
+ }
66
73
  if (permissionSummary.warnings.length) {
67
74
  reportSkippedTools(permissionSummary.warnings);
68
75
  }
@@ -73,7 +80,6 @@ export async function launchShell(defaultProfile, options = {}) {
73
80
  options: availableProfiles,
74
81
  }
75
82
  : undefined;
76
- // Create and start interactive shell
77
83
  const shell = new InteractiveShell({
78
84
  profile,
79
85
  profileLabel: profileConfig.label,
@@ -82,8 +88,9 @@ export async function launchShell(defaultProfile, options = {}) {
82
88
  baseSystemPrompt: enhancedSystemPrompt,
83
89
  initialModel,
84
90
  agentSelection,
91
+ statusTracker,
92
+ workspaceOptions,
85
93
  });
86
- // Check for initial command from CLI args
87
94
  const initialPrompt = promptArgs.join(' ').trim();
88
95
  await shell.start(initialPrompt || undefined);
89
96
  }
@@ -104,6 +111,9 @@ function parseLaunchArguments(argv) {
104
111
  };
105
112
  for (let index = 0; index < argv.length; index += 1) {
106
113
  const token = argv[index];
114
+ if (!token) {
115
+ continue;
116
+ }
107
117
  if (token === '--profile' || token === '-p') {
108
118
  const value = expectValue(token, argv[index + 1]);
109
119
  override = value;
@@ -176,69 +186,6 @@ function reportSkippedTools(entries) {
176
186
  display.showWarning(`Skipped ${warning.label} — ${details}${suffix}`);
177
187
  }
178
188
  }
179
- function buildInteractiveSystemPrompt(basePrompt, profileLabel, tools) {
180
- const name = profileLabel || 'Active Agent';
181
- const toolSummary = formatToolSummary(tools);
182
- const hasTavilySearch = tools.some((tool) => tool.name === 'tavily_search');
183
- const hasTavilyExtract = tools.some((tool) => tool.name === 'tavily_extract');
184
- const capabilityLines = [
185
- '✓ Full file system read/write access',
186
- '✓ Bash command execution',
187
- '✓ Advanced code search and analysis',
188
- '✓ Workspace snapshot is guaranteed and immutable',
189
- '✓ Tool usage is narrated to the operator in real time',
190
- ];
191
- if (hasTavilySearch) {
192
- const suffix = hasTavilyExtract ? ' and tavily_extract' : '';
193
- capabilityLines.push(`✓ Live Tavily web search via tavily_search${suffix} for questions outside the repository.`);
194
- }
195
- const behaviorGuidelines = [
196
- 'Narrate your intent before reaching for a tool so the operator knows the plan.',
197
- 'Prefer evidence from README.md, SOURCE_OF_TRUTH.json, ARCHITECTURE.json, and package.json. Cite exact files/lines.',
198
- 'Use read/search tools before modifying code. Re-read files after edits to confirm changes.',
199
- 'Keep responses concise, but reference the commands, files, or tests you actually ran.',
200
- 'When running bash commands, summarize the important output.',
201
- 'If information is missing from the captured snapshot, say so explicitly and request the authoritative source.',
202
- ];
203
- if (hasTavilySearch) {
204
- const extra = hasTavilyExtract
205
- ? 'Run `tavily_search` when the user asks about current events or information not present in the repo, cite returned URLs, and use `tavily_extract` when you need more detail from a specific link.'
206
- : 'Run `tavily_search` when the user asks about current events or information not present in the repo and cite the returned URLs.';
207
- behaviorGuidelines.push(extra);
208
- }
209
- const behaviorSection = behaviorGuidelines
210
- .map((line, index) => `${index + 1}. ${line}`)
211
- .join('\n');
212
- const reminderSuffix = hasTavilySearch ? ' Cite Tavily sources you rely on.' : '';
213
- return `${basePrompt}
214
-
215
- You are ${name}, running in an interactive shell with full capabilities:
216
-
217
- AVAILABLE TOOLS:
218
- ${toolSummary}
219
-
220
- CAPABILITIES:
221
- ${capabilityLines.join('\n')}
222
-
223
- BEHAVIOR GUIDELINES:
224
- ${behaviorSection}
225
-
226
- Remember: answer truthfully, ground everything in the workspace, and let the logs show what you actually did.${reminderSuffix}`;
227
- }
228
- function formatToolSummary(tools) {
229
- if (!tools.length) {
230
- return '- (no tools are registered in this session)';
231
- }
232
- return tools
233
- .map((tool) => {
234
- const description = tool.description ? sanitizeWhitespace(tool.description) : 'No description provided.';
235
- return `- ${tool.name}: ${description}`;
236
- })
237
- .join('\n');
238
- }
239
- function sanitizeWhitespace(value) {
240
- return value.replace(/\s+/g, ' ').trim();
241
- }
242
189
  function readPackageVersion() {
243
190
  try {
244
191
  const filePath = fileURLToPath(import.meta.url);
@@ -250,20 +197,31 @@ function readPackageVersion() {
250
197
  return '0.0.0';
251
198
  }
252
199
  }
253
- function createToolObserver(root) {
200
+ function createToolObserver(root, statusTracker) {
254
201
  const inflight = new Map();
255
202
  const popTitle = (call) => {
256
203
  const title = inflight.get(call.id);
257
204
  inflight.delete(call.id);
258
205
  return title ?? formatToolTitle(call, root);
259
206
  };
207
+ const statusId = (call) => `tool:${call.id}`;
208
+ const clearStatus = (call) => {
209
+ statusTracker.clearOverride(statusId(call));
210
+ };
260
211
  return {
261
212
  onToolStart: (call) => {
262
213
  inflight.set(call.id, formatToolTitle(call, root));
214
+ const overlay = describeToolOverlay(call, root);
215
+ statusTracker.pushOverride(statusId(call), overlay.text, {
216
+ detail: overlay.detail,
217
+ tone: overlay.tone,
218
+ animate: overlay.animate ?? true,
219
+ });
263
220
  },
264
221
  onToolResult: (call, output) => {
265
222
  const summary = summarizeToolResult(call, output);
266
223
  const title = popTitle(call);
224
+ clearStatus(call);
267
225
  display.showAction(title, 'success');
268
226
  if (summary) {
269
227
  display.showSubAction(summary, 'success');
@@ -271,6 +229,7 @@ function createToolObserver(root) {
271
229
  },
272
230
  onToolError: (call, message) => {
273
231
  const title = popTitle(call);
232
+ clearStatus(call);
274
233
  display.showAction(title, 'error');
275
234
  display.showSubAction(message, 'error');
276
235
  },
@@ -278,11 +237,11 @@ function createToolObserver(root) {
278
237
  }
279
238
  function formatToolTitle(call, root) {
280
239
  const getPath = () => {
281
- const value = stringArg(call.arguments?.path);
240
+ const value = stringArg(call.arguments?.['path']);
282
241
  return formatPath(value, root);
283
242
  };
284
243
  const getCommand = () => {
285
- return truncate(stringArg(call.arguments?.command), 32);
244
+ return truncate(stringArg(call.arguments?.['command']), 32);
286
245
  };
287
246
  switch (call.name) {
288
247
  case 'read_file':
@@ -292,11 +251,11 @@ function formatToolTitle(call, root) {
292
251
  case 'list_files':
293
252
  return `List(${getPath() || '.'})`;
294
253
  case 'search_files':
295
- return `Search(${stringArg(call.arguments?.pattern, '*')})`;
254
+ return `Search(${stringArg(call.arguments?.['pattern'], '*')})`;
296
255
  case 'grep_search':
297
- return `Grep(${stringArg(call.arguments?.pattern)})`;
256
+ return `Grep(${stringArg(call.arguments?.['pattern'])})`;
298
257
  case 'find_definition':
299
- return `Find(${stringArg(call.arguments?.name)})`;
258
+ return `Find(${stringArg(call.arguments?.['name'])})`;
300
259
  case 'execute_bash':
301
260
  return `Bash(${getCommand()})`;
302
261
  case 'context_snapshot':
@@ -309,6 +268,123 @@ function formatToolTitle(call, root) {
309
268
  return call.name;
310
269
  }
311
270
  }
271
+ function describeToolOverlay(call, root) {
272
+ const describePath = () => {
273
+ const value = stringArg(call.arguments?.['path']);
274
+ return formatPath(value, root) || '.';
275
+ };
276
+ const describePattern = (key) => {
277
+ const raw = stringArg(call.arguments?.[key]);
278
+ return raw ? truncate(raw, 32) : key === 'pattern' ? 'pattern' : 'target';
279
+ };
280
+ const describeCommand = () => {
281
+ const raw = stringArg(call.arguments?.['command']);
282
+ return raw ? truncate(raw, 40) : 'shell command';
283
+ };
284
+ const withInterruptHint = (...segments) => {
285
+ const normalized = segments
286
+ .map((value) => (typeof value === 'string' ? value.trim() : ''))
287
+ .filter((value) => Boolean(value));
288
+ normalized.push(INTERRUPT_HINT);
289
+ return normalized;
290
+ };
291
+ switch (call.name) {
292
+ case 'read_file': {
293
+ const path = describePath();
294
+ return {
295
+ text: 'Requesting more file content',
296
+ detail: withInterruptHint(`Reading ${path}`),
297
+ tone: 'info',
298
+ animate: true,
299
+ };
300
+ }
301
+ case 'write_file': {
302
+ const path = describePath();
303
+ return {
304
+ text: `Writing ${path}`,
305
+ detail: withInterruptHint('write_file tool running'),
306
+ tone: 'warning',
307
+ animate: true,
308
+ };
309
+ }
310
+ case 'list_files': {
311
+ const path = describePath();
312
+ return {
313
+ text: `Listing ${path}`,
314
+ detail: withInterruptHint('list_files tool running'),
315
+ tone: 'info',
316
+ animate: true,
317
+ };
318
+ }
319
+ case 'search_files': {
320
+ const pattern = describePattern('pattern');
321
+ return {
322
+ text: `Searching files for ${pattern}`,
323
+ detail: withInterruptHint('search_files tool running'),
324
+ tone: 'info',
325
+ animate: true,
326
+ };
327
+ }
328
+ case 'grep_search': {
329
+ const pattern = describePattern('pattern');
330
+ return {
331
+ text: `Grep search for ${pattern}`,
332
+ detail: withInterruptHint('grep_search tool running'),
333
+ tone: 'info',
334
+ animate: true,
335
+ };
336
+ }
337
+ case 'find_definition': {
338
+ const name = describePattern('name');
339
+ return {
340
+ text: `Locating ${name}`,
341
+ detail: withInterruptHint('find_definition tool running'),
342
+ tone: 'info',
343
+ animate: true,
344
+ };
345
+ }
346
+ case 'execute_bash': {
347
+ const command = describeCommand();
348
+ return {
349
+ text: `Running bash: ${command}`,
350
+ detail: withInterruptHint('execute_bash tool running'),
351
+ tone: 'warning',
352
+ animate: true,
353
+ };
354
+ }
355
+ case 'context_snapshot': {
356
+ return {
357
+ text: 'Replaying workspace snapshot',
358
+ detail: withInterruptHint('context_snapshot tool running'),
359
+ tone: 'info',
360
+ animate: true,
361
+ };
362
+ }
363
+ case 'capabilities_overview': {
364
+ return {
365
+ text: 'Summarizing runtime capabilities',
366
+ detail: withInterruptHint('capabilities_overview tool running'),
367
+ tone: 'info',
368
+ animate: true,
369
+ };
370
+ }
371
+ case 'profile_details': {
372
+ return {
373
+ text: 'Describing profile metadata',
374
+ detail: withInterruptHint('profile_details tool running'),
375
+ tone: 'info',
376
+ animate: true,
377
+ };
378
+ }
379
+ default:
380
+ return {
381
+ text: `Running ${call.name}`,
382
+ detail: withInterruptHint('Tool execution in progress'),
383
+ tone: 'info',
384
+ animate: true,
385
+ };
386
+ }
387
+ }
312
388
  function summarizeToolResult(call, output) {
313
389
  switch (call.name) {
314
390
  case 'read_file':
@@ -390,3 +466,4 @@ function truncate(value, max = 64) {
390
466
  function stringArg(value, fallback = '') {
391
467
  return typeof value === 'string' && value.trim().length > 0 ? value : fallback;
392
468
  }
469
+ //# sourceMappingURL=shellApp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shellApp.js","sourceRoot":"","sources":["../../src/shell/shellApp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ProviderToolDefinition } from '../core/types.js';
2
+ export declare function buildInteractiveSystemPrompt(basePrompt: string, profileLabel: string, tools: ProviderToolDefinition[]): string;
3
+ //# sourceMappingURL=systemPrompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"systemPrompt.d.ts","sourceRoot":"","sources":["../../src/shell/systemPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,sBAAsB,EAAE,GAC9B,MAAM,CA4CR"}
@@ -0,0 +1,64 @@
1
+ export function buildInteractiveSystemPrompt(basePrompt, profileLabel, tools) {
2
+ const name = profileLabel || 'Active Agent';
3
+ const toolSummary = formatToolSummary(tools);
4
+ const conciseToolSummary = formatToolSummary(tools, { maxDescriptionLength: 120 });
5
+ const capabilityLines = [
6
+ '✓ Full file system read/write access',
7
+ '✓ Bash command execution',
8
+ '✓ Advanced code search and analysis',
9
+ '✓ Workspace snapshot is guaranteed and immutable',
10
+ '✓ Tool usage is narrated to the operator in real time',
11
+ ];
12
+ const behaviorGuidelines = [
13
+ 'Narrate your intent before reaching for a tool so the operator knows the plan.',
14
+ 'Treat Agents.md (contracts: src/contracts/schemas/agent-profile.schema.json and src/contracts/schemas/agent-rules.schema.json) as the canonical guardrail ledger; cite rule IDs and manifest versions when referencing instructions.',
15
+ 'Prefer evidence from README.md, package.json, and the captured workspace context before editing.',
16
+ 'Use read/search tools before modifying code. Re-read files after edits to confirm changes.',
17
+ 'Keep responses concise, but reference the commands, files, or tests you actually ran.',
18
+ 'When running bash commands, summarize the important output.',
19
+ 'If information is missing from the captured snapshot, say so explicitly and request the authoritative source.',
20
+ ];
21
+ const behaviorSection = behaviorGuidelines
22
+ .map((line, index) => `${index + 1}. ${line}`)
23
+ .join('\n');
24
+ return `${basePrompt}
25
+
26
+ You are ${name}, running in an interactive shell with full capabilities:
27
+
28
+ TOOL SUMMARY (concise, for the model):
29
+ ${conciseToolSummary}
30
+
31
+ AVAILABLE TOOLS:
32
+ ${toolSummary}
33
+
34
+ CAPABILITIES:
35
+ ${capabilityLines.join('\n')}
36
+
37
+ BEHAVIOR GUIDELINES:
38
+ ${behaviorSection}
39
+
40
+ Remember: answer truthfully, ground everything in the workspace, and let the logs show what you actually did.`;
41
+ }
42
+ function formatToolSummary(tools, options = {}) {
43
+ if (!tools.length) {
44
+ return '- (no tools are registered in this session)';
45
+ }
46
+ return tools
47
+ .map((tool) => {
48
+ const description = tool.description ? sanitizeWhitespace(tool.description) : 'No description provided.';
49
+ const summary = truncate(description, options.maxDescriptionLength);
50
+ return `- ${tool.name}: ${summary}`;
51
+ })
52
+ .join('\n');
53
+ }
54
+ function sanitizeWhitespace(value) {
55
+ return value.replace(/\s+/g, ' ').trim();
56
+ }
57
+ function truncate(value, maxLength) {
58
+ if (!maxLength || value.length <= maxLength) {
59
+ return value;
60
+ }
61
+ const safeLength = Math.max(0, maxLength - 3);
62
+ return `${value.slice(0, safeLength).trimEnd()}...`;
63
+ }
64
+ //# sourceMappingURL=systemPrompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"systemPrompt.js","sourceRoot":"","sources":["../../src/shell/systemPrompt.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,4BAA4B,CAC1C,UAAkB,EAClB,YAAoB,EACpB,KAA+B;IAE/B,MAAM,IAAI,GAAG,YAAY,IAAI,cAAc,CAAC;IAC5C,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,KAAK,EAAE,EAAE,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IAEnF,MAAM,eAAe,GAAG;QACtB,sCAAsC;QACtC,0BAA0B;QAC1B,qCAAqC;QACrC,kDAAkD;QAClD,uDAAuD;KACxD,CAAC;IAEF,MAAM,kBAAkB,GAAG;QACzB,gFAAgF;QAChF,sOAAsO;QACtO,kGAAkG;QAClG,4FAA4F;QAC5F,uFAAuF;QACvF,6DAA6D;QAC7D,+GAA+G;KAChH,CAAC;IAEF,MAAM,eAAe,GAAG,kBAAkB;SACvC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;SAC7C,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,GAAG,UAAU;;UAEZ,IAAI;;;EAGZ,kBAAkB;;;EAGlB,WAAW;;;EAGX,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAG1B,eAAe;;8GAE6F,CAAC;AAC/G,CAAC;AAMD,SAAS,iBAAiB,CAAC,KAA+B,EAAE,UAA8B,EAAE;IAC1F,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,6CAA6C,CAAC;IACvD,CAAC;IACD,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC;QACzG,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACpE,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;IACtC,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,SAAkB;IACjD,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;IAC9C,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC;AACtD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function maybeOfferCliUpdate(currentVersion: string): Promise<boolean>;
2
+ //# sourceMappingURL=updateManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateManager.d.ts","sourceRoot":"","sources":["../../src/shell/updateManager.ts"],"names":[],"mappings":"AASA,wBAAsB,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiDlF"}
@@ -0,0 +1,109 @@
1
+ import { spawn } from 'node:child_process';
2
+ import { stdin as input, stdout as output } from 'node:process';
3
+ import { createInterface } from 'node:readline/promises';
4
+ import { display } from '../ui/display.js';
5
+ const PACKAGE_NAME = 'erosolar-cli';
6
+ const REGISTRY_URL = `https://registry.npmjs.org/${PACKAGE_NAME}/latest`;
7
+ const FETCH_TIMEOUT_MS = 4000;
8
+ export async function maybeOfferCliUpdate(currentVersion) {
9
+ try {
10
+ const latestVersion = await fetchLatestVersion();
11
+ if (!latestVersion) {
12
+ return true;
13
+ }
14
+ if (!isNewerVersion(latestVersion, currentVersion)) {
15
+ return true;
16
+ }
17
+ display.showInfo([
18
+ `A new Erosolar CLI release is available.`,
19
+ `Current version: ${currentVersion}`,
20
+ `Latest version: ${latestVersion}`,
21
+ ].join('\n'));
22
+ if (!input.isTTY || !output.isTTY) {
23
+ display.showInfo(`Run "npm install -g ${PACKAGE_NAME}@latest" when you're ready to upgrade.`);
24
+ return true;
25
+ }
26
+ const shouldUpdate = await promptForUpdate();
27
+ if (!shouldUpdate) {
28
+ display.showInfo(`Continuing with ${currentVersion}. You can upgrade later via "npm install -g ${PACKAGE_NAME}@latest".`);
29
+ return true;
30
+ }
31
+ const success = await installLatestVersion();
32
+ if (success) {
33
+ display.showInfo(`Update complete. Relaunch the CLI to start using ${PACKAGE_NAME}@${latestVersion}.`);
34
+ return false;
35
+ }
36
+ display.showWarning(`Failed to install ${PACKAGE_NAME}@latest. Please run "npm install -g ${PACKAGE_NAME}@latest" manually.`);
37
+ return true;
38
+ }
39
+ catch {
40
+ return true;
41
+ }
42
+ }
43
+ async function fetchLatestVersion() {
44
+ const controller = new AbortController();
45
+ const timeout = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);
46
+ timeout.unref?.();
47
+ try {
48
+ const response = await fetch(REGISTRY_URL, {
49
+ headers: { 'user-agent': `${PACKAGE_NAME}/update-check` },
50
+ signal: controller.signal,
51
+ });
52
+ if (!response.ok) {
53
+ return null;
54
+ }
55
+ const payload = (await response.json());
56
+ return typeof payload.version === 'string' ? payload.version : null;
57
+ }
58
+ catch {
59
+ return null;
60
+ }
61
+ finally {
62
+ clearTimeout(timeout);
63
+ }
64
+ }
65
+ function isNewerVersion(latest, current) {
66
+ const latestParts = normalizeVersion(latest);
67
+ const currentParts = normalizeVersion(current);
68
+ const length = Math.max(latestParts.length, currentParts.length);
69
+ for (let index = 0; index < length; index += 1) {
70
+ const nextLatest = latestParts[index] ?? 0;
71
+ const nextCurrent = currentParts[index] ?? 0;
72
+ if (nextLatest > nextCurrent) {
73
+ return true;
74
+ }
75
+ if (nextLatest < nextCurrent) {
76
+ return false;
77
+ }
78
+ }
79
+ return false;
80
+ }
81
+ function normalizeVersion(value) {
82
+ const sanitized = value.split('-')[0] ?? '';
83
+ return sanitized
84
+ .split('.')
85
+ .map((segment) => Number.parseInt(segment, 10))
86
+ .filter((segment) => Number.isFinite(segment) && segment >= 0);
87
+ }
88
+ async function promptForUpdate() {
89
+ const prompt = createInterface({ input, output });
90
+ try {
91
+ const answer = await prompt.question('Update now? (Y/n): ');
92
+ const normalized = answer.trim().toLowerCase();
93
+ return normalized === '' || normalized === 'y' || normalized === 'yes';
94
+ }
95
+ finally {
96
+ prompt.close();
97
+ }
98
+ }
99
+ async function installLatestVersion() {
100
+ const binary = process.platform === 'win32' ? 'npm.cmd' : 'npm';
101
+ return new Promise((resolve) => {
102
+ const child = spawn(binary, ['install', '-g', `${PACKAGE_NAME}@latest`], {
103
+ stdio: 'inherit',
104
+ });
105
+ child.on('error', () => resolve(false));
106
+ child.on('close', (code) => resolve(code === 0));
107
+ });
108
+ }
109
+ //# sourceMappingURL=updateManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateManager.js","sourceRoot":"","sources":["../../src/shell/updateManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { ToolDefinition } from '../core/toolRuntime.js';
2
+ export declare function createBashTools(workingDir: string): ToolDefinition[];
3
+ interface SandboxEnvOptions {
4
+ preserveHome?: boolean;
5
+ }
6
+ export declare function buildSandboxEnv(workingDir: string, options?: SandboxEnvOptions): Promise<NodeJS.ProcessEnv>;
7
+ export {};
8
+ //# sourceMappingURL=bashTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bashTools.d.ts","sourceRoot":"","sources":["../../src/tools/bashTools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAc7D,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,EAAE,CAqEpE;AAED,UAAU,iBAAiB;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CA6B5B"}