erosolar-cli 1.0.2 → 1.0.5

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 (437) hide show
  1. package/README.md +80 -44
  2. package/agents/erosolar-code.rules.json +167 -0
  3. package/agents/general.rules.json +188 -0
  4. package/dist/adapters/browser/index.d.ts +12 -0
  5. package/dist/adapters/browser/index.d.ts.map +1 -0
  6. package/dist/adapters/browser/index.js +1 -0
  7. package/dist/adapters/browser/index.js.map +1 -0
  8. package/dist/adapters/node/index.d.ts +17 -0
  9. package/dist/adapters/node/index.d.ts.map +1 -0
  10. package/dist/adapters/node/index.js +1 -0
  11. package/dist/adapters/node/index.js.map +1 -0
  12. package/dist/adapters/remote/index.d.ts +13 -0
  13. package/dist/adapters/remote/index.d.ts.map +1 -0
  14. package/dist/adapters/remote/index.js +1 -0
  15. package/dist/adapters/remote/index.js.map +1 -0
  16. package/dist/adapters/types.d.ts +14 -0
  17. package/dist/adapters/types.d.ts.map +1 -0
  18. package/dist/adapters/types.js +1 -0
  19. package/dist/adapters/types.js.map +1 -0
  20. package/dist/bin/erosolar.d.ts +3 -0
  21. package/dist/bin/erosolar.d.ts.map +1 -0
  22. package/dist/bin/erosolar.js +1 -0
  23. package/dist/bin/erosolar.js.map +1 -0
  24. package/dist/capabilities/bashCapability.d.ts +13 -0
  25. package/dist/capabilities/bashCapability.d.ts.map +1 -0
  26. package/dist/capabilities/bashCapability.js +1 -0
  27. package/dist/capabilities/bashCapability.js.map +1 -0
  28. package/dist/capabilities/codeAnalysisCapability.d.ts +13 -0
  29. package/dist/capabilities/codeAnalysisCapability.d.ts.map +1 -0
  30. package/dist/capabilities/codeAnalysisCapability.js +24 -0
  31. package/dist/capabilities/codeAnalysisCapability.js.map +1 -0
  32. package/dist/capabilities/codeGenerationCapability.d.ts +13 -0
  33. package/dist/capabilities/codeGenerationCapability.d.ts.map +1 -0
  34. package/dist/capabilities/codeGenerationCapability.js +25 -0
  35. package/dist/capabilities/codeGenerationCapability.js.map +1 -0
  36. package/dist/capabilities/codeQualityCapability.d.ts +13 -0
  37. package/dist/capabilities/codeQualityCapability.d.ts.map +1 -0
  38. package/dist/capabilities/codeQualityCapability.js +25 -0
  39. package/dist/capabilities/codeQualityCapability.js.map +1 -0
  40. package/dist/capabilities/dependencySecurityCapability.d.ts +13 -0
  41. package/dist/capabilities/dependencySecurityCapability.d.ts.map +1 -0
  42. package/dist/capabilities/dependencySecurityCapability.js +24 -0
  43. package/dist/capabilities/dependencySecurityCapability.js.map +1 -0
  44. package/dist/capabilities/devCapability.d.ts +13 -0
  45. package/dist/capabilities/devCapability.d.ts.map +1 -0
  46. package/dist/capabilities/devCapability.js +24 -0
  47. package/dist/capabilities/devCapability.js.map +1 -0
  48. package/dist/capabilities/filesystemCapability.d.ts +13 -0
  49. package/dist/capabilities/filesystemCapability.d.ts.map +1 -0
  50. package/dist/capabilities/filesystemCapability.js +1 -0
  51. package/dist/capabilities/filesystemCapability.js.map +1 -0
  52. package/dist/capabilities/index.d.ts +10 -0
  53. package/dist/capabilities/index.d.ts.map +1 -0
  54. package/dist/capabilities/index.js +7 -0
  55. package/dist/capabilities/index.js.map +1 -0
  56. package/dist/capabilities/refactoringCapability.d.ts +13 -0
  57. package/dist/capabilities/refactoringCapability.d.ts.map +1 -0
  58. package/dist/capabilities/refactoringCapability.js +25 -0
  59. package/dist/capabilities/refactoringCapability.js.map +1 -0
  60. package/dist/capabilities/repoChecksCapability.d.ts +10 -0
  61. package/dist/capabilities/repoChecksCapability.d.ts.map +1 -0
  62. package/dist/capabilities/repoChecksCapability.js +24 -0
  63. package/dist/capabilities/repoChecksCapability.js.map +1 -0
  64. package/dist/capabilities/searchCapability.d.ts +13 -0
  65. package/dist/capabilities/searchCapability.d.ts.map +1 -0
  66. package/dist/capabilities/searchCapability.js +1 -0
  67. package/dist/capabilities/searchCapability.js.map +1 -0
  68. package/dist/capabilities/testingCapability.d.ts +13 -0
  69. package/dist/capabilities/testingCapability.d.ts.map +1 -0
  70. package/dist/capabilities/testingCapability.js +25 -0
  71. package/dist/capabilities/testingCapability.js.map +1 -0
  72. package/dist/capabilities/toolManifest.d.ts +3 -0
  73. package/dist/capabilities/toolManifest.d.ts.map +1 -0
  74. package/dist/capabilities/toolManifest.js +160 -0
  75. package/dist/capabilities/toolManifest.js.map +1 -0
  76. package/dist/capabilities/toolRegistry.d.ts +22 -0
  77. package/dist/capabilities/toolRegistry.d.ts.map +1 -0
  78. package/dist/capabilities/toolRegistry.js +49 -32
  79. package/dist/capabilities/toolRegistry.js.map +1 -0
  80. package/dist/config.d.ts +25 -0
  81. package/dist/config.d.ts.map +1 -0
  82. package/dist/config.js +103 -23
  83. package/dist/config.js.map +1 -0
  84. package/dist/contracts/agent-profiles.schema.json +43 -0
  85. package/dist/contracts/agent-schemas.json +293 -0
  86. package/dist/contracts/schemas/agent-profile.schema.json +157 -0
  87. package/dist/contracts/schemas/agent-rules.schema.json +238 -0
  88. package/dist/contracts/schemas/agent-schemas.schema.json +528 -0
  89. package/dist/contracts/schemas/agent.schema.json +89 -0
  90. package/dist/contracts/schemas/tool-selection.schema.json +174 -0
  91. package/dist/contracts/tools.schema.json +100 -0
  92. package/dist/contracts/v1/agent.d.ts +147 -0
  93. package/dist/contracts/v1/agent.d.ts.map +1 -0
  94. package/dist/contracts/v1/agent.js +1 -0
  95. package/dist/contracts/v1/agent.js.map +1 -0
  96. package/dist/contracts/v1/agentProfileManifest.d.ts +60 -0
  97. package/dist/contracts/v1/agentProfileManifest.d.ts.map +1 -0
  98. package/dist/contracts/v1/agentProfileManifest.js +9 -0
  99. package/dist/contracts/v1/agentProfileManifest.js.map +1 -0
  100. package/dist/contracts/v1/agentRules.d.ts +60 -0
  101. package/dist/contracts/v1/agentRules.d.ts.map +1 -0
  102. package/dist/contracts/v1/agentRules.js +10 -0
  103. package/dist/contracts/v1/agentRules.js.map +1 -0
  104. package/dist/contracts/v1/provider.d.ts +149 -0
  105. package/dist/contracts/v1/provider.d.ts.map +1 -0
  106. package/dist/contracts/v1/provider.js +1 -0
  107. package/dist/contracts/v1/provider.js.map +1 -0
  108. package/dist/contracts/v1/tool.d.ts +136 -0
  109. package/dist/contracts/v1/tool.d.ts.map +1 -0
  110. package/dist/contracts/v1/tool.js +1 -0
  111. package/dist/contracts/v1/tool.js.map +1 -0
  112. package/dist/contracts/v1/toolAccess.d.ts +43 -0
  113. package/dist/contracts/v1/toolAccess.d.ts.map +1 -0
  114. package/dist/contracts/v1/toolAccess.js +9 -0
  115. package/dist/contracts/v1/toolAccess.js.map +1 -0
  116. package/dist/core/agent.d.ts +35 -0
  117. package/dist/core/agent.d.ts.map +1 -0
  118. package/dist/core/agent.js +17 -9
  119. package/dist/core/agent.js.map +1 -0
  120. package/dist/core/agentProfileManifest.d.ts +3 -0
  121. package/dist/core/agentProfileManifest.d.ts.map +1 -0
  122. package/dist/core/agentProfileManifest.js +188 -0
  123. package/dist/core/agentProfileManifest.js.map +1 -0
  124. package/dist/core/agentProfiles.d.ts +22 -0
  125. package/dist/core/agentProfiles.d.ts.map +1 -0
  126. package/dist/core/agentProfiles.js +1 -0
  127. package/dist/core/agentProfiles.js.map +1 -0
  128. package/dist/core/agentRulebook.d.ts +11 -0
  129. package/dist/core/agentRulebook.d.ts.map +1 -0
  130. package/dist/core/agentRulebook.js +136 -0
  131. package/dist/core/agentRulebook.js.map +1 -0
  132. package/dist/core/agentSchemaLoader.d.ts +131 -0
  133. package/dist/core/agentSchemaLoader.d.ts.map +1 -0
  134. package/dist/core/agentSchemaLoader.js +221 -0
  135. package/dist/core/agentSchemaLoader.js.map +1 -0
  136. package/dist/core/contextWindow.d.ts +6 -0
  137. package/dist/core/contextWindow.d.ts.map +1 -0
  138. package/dist/core/contextWindow.js +1 -0
  139. package/dist/core/contextWindow.js.map +1 -0
  140. package/dist/core/errors/apiKeyErrors.d.ts +11 -0
  141. package/dist/core/errors/apiKeyErrors.d.ts.map +1 -0
  142. package/dist/core/errors/apiKeyErrors.js +1 -0
  143. package/dist/core/errors/apiKeyErrors.js.map +1 -0
  144. package/dist/core/errors.d.ts +4 -0
  145. package/dist/core/errors.d.ts.map +1 -0
  146. package/dist/core/errors.js +33 -0
  147. package/dist/core/errors.js.map +1 -0
  148. package/dist/core/preferences.d.ts +21 -0
  149. package/dist/core/preferences.d.ts.map +1 -0
  150. package/dist/core/preferences.js +13 -7
  151. package/dist/core/preferences.js.map +1 -0
  152. package/dist/core/schemaValidator.d.ts +6 -0
  153. package/dist/core/schemaValidator.d.ts.map +1 -0
  154. package/dist/core/schemaValidator.js +93 -0
  155. package/dist/core/schemaValidator.js.map +1 -0
  156. package/dist/core/secretStore.d.ts +20 -0
  157. package/dist/core/secretStore.d.ts.map +1 -0
  158. package/dist/core/secretStore.js +3 -8
  159. package/dist/core/secretStore.js.map +1 -0
  160. package/dist/core/toolRuntime.d.ts +42 -0
  161. package/dist/core/toolRuntime.d.ts.map +1 -0
  162. package/dist/core/toolRuntime.js +25 -10
  163. package/dist/core/toolRuntime.js.map +1 -0
  164. package/dist/core/types.d.ts +86 -0
  165. package/dist/core/types.d.ts.map +1 -0
  166. package/dist/core/types.js +1 -0
  167. package/dist/core/types.js.map +1 -0
  168. package/dist/plugins/providers/anthropic/index.d.ts +2 -0
  169. package/dist/plugins/providers/anthropic/index.d.ts.map +1 -0
  170. package/dist/plugins/providers/anthropic/index.js +6 -4
  171. package/dist/plugins/providers/anthropic/index.js.map +1 -0
  172. package/dist/plugins/providers/deepseek/index.d.ts +2 -0
  173. package/dist/plugins/providers/deepseek/index.d.ts.map +1 -0
  174. package/dist/plugins/providers/deepseek/index.js +1 -0
  175. package/dist/plugins/providers/deepseek/index.js.map +1 -0
  176. package/dist/plugins/providers/google/index.d.ts +2 -0
  177. package/dist/plugins/providers/google/index.d.ts.map +1 -0
  178. package/dist/plugins/providers/google/index.js +6 -4
  179. package/dist/plugins/providers/google/index.js.map +1 -0
  180. package/dist/plugins/providers/index.d.ts +2 -0
  181. package/dist/plugins/providers/index.d.ts.map +1 -0
  182. package/dist/plugins/providers/index.js +1 -0
  183. package/dist/plugins/providers/index.js.map +1 -0
  184. package/dist/plugins/providers/openai/index.d.ts +3 -0
  185. package/dist/plugins/providers/openai/index.d.ts.map +1 -0
  186. package/dist/plugins/providers/openai/index.js +6 -4
  187. package/dist/plugins/providers/openai/index.js.map +1 -0
  188. package/dist/plugins/providers/xai/index.d.ts +2 -0
  189. package/dist/plugins/providers/xai/index.d.ts.map +1 -0
  190. package/dist/plugins/providers/xai/index.js +1 -0
  191. package/dist/plugins/providers/xai/index.js.map +1 -0
  192. package/dist/plugins/tools/bash/localBashPlugin.d.ts +3 -0
  193. package/dist/plugins/tools/bash/localBashPlugin.d.ts.map +1 -0
  194. package/dist/plugins/tools/bash/localBashPlugin.js +1 -0
  195. package/dist/plugins/tools/bash/localBashPlugin.js.map +1 -0
  196. package/dist/plugins/tools/checks/localRepoChecksPlugin.d.ts +3 -0
  197. package/dist/plugins/tools/checks/localRepoChecksPlugin.d.ts.map +1 -0
  198. package/dist/plugins/tools/checks/localRepoChecksPlugin.js +14 -0
  199. package/dist/plugins/tools/checks/localRepoChecksPlugin.js.map +1 -0
  200. package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.d.ts +3 -0
  201. package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.d.ts.map +1 -0
  202. package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.js +14 -0
  203. package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.js.map +1 -0
  204. package/dist/plugins/tools/codeQuality/codeQualityPlugin.d.ts +3 -0
  205. package/dist/plugins/tools/codeQuality/codeQualityPlugin.d.ts.map +1 -0
  206. package/dist/plugins/tools/codeQuality/codeQualityPlugin.js +14 -0
  207. package/dist/plugins/tools/codeQuality/codeQualityPlugin.js.map +1 -0
  208. package/dist/plugins/tools/dependency/dependencyPlugin.d.ts +3 -0
  209. package/dist/plugins/tools/dependency/dependencyPlugin.d.ts.map +1 -0
  210. package/dist/plugins/tools/dependency/dependencyPlugin.js +12 -0
  211. package/dist/plugins/tools/dependency/dependencyPlugin.js.map +1 -0
  212. package/dist/plugins/tools/development/devPlugin.d.ts +3 -0
  213. package/dist/plugins/tools/development/devPlugin.d.ts.map +1 -0
  214. package/dist/plugins/tools/development/devPlugin.js +14 -0
  215. package/dist/plugins/tools/development/devPlugin.js.map +1 -0
  216. package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts +3 -0
  217. package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts.map +1 -0
  218. package/dist/plugins/tools/filesystem/localFilesystemPlugin.js +1 -0
  219. package/dist/plugins/tools/filesystem/localFilesystemPlugin.js.map +1 -0
  220. package/dist/plugins/tools/index.d.ts +3 -0
  221. package/dist/plugins/tools/index.d.ts.map +1 -0
  222. package/dist/plugins/tools/index.js +1 -0
  223. package/dist/plugins/tools/index.js.map +1 -0
  224. package/dist/plugins/tools/nodeDefaults.d.ts +2 -0
  225. package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -0
  226. package/dist/plugins/tools/nodeDefaults.js +15 -2
  227. package/dist/plugins/tools/nodeDefaults.js.map +1 -0
  228. package/dist/plugins/tools/refactoring/refactoringPlugin.d.ts +3 -0
  229. package/dist/plugins/tools/refactoring/refactoringPlugin.d.ts.map +1 -0
  230. package/dist/plugins/tools/refactoring/refactoringPlugin.js +12 -0
  231. package/dist/plugins/tools/refactoring/refactoringPlugin.js.map +1 -0
  232. package/dist/plugins/tools/registry.d.ts +22 -0
  233. package/dist/plugins/tools/registry.d.ts.map +1 -0
  234. package/dist/plugins/tools/registry.js +1 -0
  235. package/dist/plugins/tools/registry.js.map +1 -0
  236. package/dist/plugins/tools/search/localSearchPlugin.d.ts +3 -0
  237. package/dist/plugins/tools/search/localSearchPlugin.d.ts.map +1 -0
  238. package/dist/plugins/tools/search/localSearchPlugin.js +1 -0
  239. package/dist/plugins/tools/search/localSearchPlugin.js.map +1 -0
  240. package/dist/plugins/tools/testing/testingPlugin.d.ts +3 -0
  241. package/dist/plugins/tools/testing/testingPlugin.d.ts.map +1 -0
  242. package/dist/plugins/tools/testing/testingPlugin.js +12 -0
  243. package/dist/plugins/tools/testing/testingPlugin.js.map +1 -0
  244. package/dist/providers/anthropicProvider.d.ts +23 -0
  245. package/dist/providers/anthropicProvider.d.ts.map +1 -0
  246. package/dist/providers/anthropicProvider.js +3 -2
  247. package/dist/providers/anthropicProvider.js.map +1 -0
  248. package/dist/providers/googleProvider.d.ts +19 -0
  249. package/dist/providers/googleProvider.d.ts.map +1 -0
  250. package/dist/providers/googleProvider.js +1 -1
  251. package/dist/providers/googleProvider.js.map +1 -0
  252. package/dist/providers/openaiChatCompletionsProvider.d.ts +16 -0
  253. package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -0
  254. package/dist/providers/openaiChatCompletionsProvider.js +1 -0
  255. package/dist/providers/openaiChatCompletionsProvider.js.map +1 -0
  256. package/dist/providers/openaiResponsesProvider.d.ts +20 -0
  257. package/dist/providers/openaiResponsesProvider.d.ts.map +1 -0
  258. package/dist/providers/openaiResponsesProvider.js +1 -0
  259. package/dist/providers/openaiResponsesProvider.js.map +1 -0
  260. package/dist/providers/providerFactory.d.ts +18 -0
  261. package/dist/providers/providerFactory.d.ts.map +1 -0
  262. package/dist/providers/providerFactory.js +5 -1
  263. package/dist/providers/providerFactory.js.map +1 -0
  264. package/dist/runtime/agentHost.d.ts +61 -0
  265. package/dist/runtime/agentHost.d.ts.map +1 -0
  266. package/dist/runtime/agentHost.js +5 -1
  267. package/dist/runtime/agentHost.js.map +1 -0
  268. package/dist/runtime/agentSession.d.ts +32 -0
  269. package/dist/runtime/agentSession.d.ts.map +1 -0
  270. package/dist/runtime/agentSession.js +17 -1
  271. package/dist/runtime/agentSession.js.map +1 -0
  272. package/dist/runtime/browser.d.ts +7 -0
  273. package/dist/runtime/browser.d.ts.map +1 -0
  274. package/dist/runtime/browser.js +1 -0
  275. package/dist/runtime/browser.js.map +1 -0
  276. package/dist/runtime/cloud.d.ts +7 -0
  277. package/dist/runtime/cloud.d.ts.map +1 -0
  278. package/dist/runtime/cloud.js +1 -0
  279. package/dist/runtime/cloud.js.map +1 -0
  280. package/dist/runtime/node.d.ts +8 -0
  281. package/dist/runtime/node.d.ts.map +1 -0
  282. package/dist/runtime/node.js +1 -0
  283. package/dist/runtime/node.js.map +1 -0
  284. package/dist/runtime/universal.d.ts +21 -0
  285. package/dist/runtime/universal.d.ts.map +1 -0
  286. package/dist/runtime/universal.js +1 -0
  287. package/dist/runtime/universal.js.map +1 -0
  288. package/dist/shell/bracketedPasteManager.d.ts +23 -0
  289. package/dist/shell/bracketedPasteManager.d.ts.map +1 -0
  290. package/dist/shell/bracketedPasteManager.js +1 -0
  291. package/dist/shell/bracketedPasteManager.js.map +1 -0
  292. package/dist/shell/interactiveShell.d.ts +131 -0
  293. package/dist/shell/interactiveShell.d.ts.map +1 -0
  294. package/dist/shell/interactiveShell.js +325 -262
  295. package/dist/shell/interactiveShell.js.map +1 -0
  296. package/dist/shell/liveStatus.d.ts +29 -0
  297. package/dist/shell/liveStatus.d.ts.map +1 -0
  298. package/dist/shell/liveStatus.js +77 -0
  299. package/dist/shell/liveStatus.js.map +1 -0
  300. package/dist/shell/promptSkin.d.ts +43 -0
  301. package/dist/shell/promptSkin.d.ts.map +1 -0
  302. package/dist/shell/promptSkin.js +330 -0
  303. package/dist/shell/promptSkin.js.map +1 -0
  304. package/dist/shell/shellApp.d.ts +10 -0
  305. package/dist/shell/shellApp.d.ts.map +1 -0
  306. package/dist/shell/shellApp.js +149 -78
  307. package/dist/shell/shellApp.js.map +1 -0
  308. package/dist/shell/systemPrompt.d.ts +3 -0
  309. package/dist/shell/systemPrompt.d.ts.map +1 -0
  310. package/dist/shell/systemPrompt.js +64 -0
  311. package/dist/shell/systemPrompt.js.map +1 -0
  312. package/dist/shell/updateManager.d.ts +2 -0
  313. package/dist/shell/updateManager.d.ts.map +1 -0
  314. package/dist/shell/updateManager.js +109 -0
  315. package/dist/shell/updateManager.js.map +1 -0
  316. package/dist/tools/bashTools.d.ts +8 -0
  317. package/dist/tools/bashTools.d.ts.map +1 -0
  318. package/dist/tools/bashTools.js +18 -15
  319. package/dist/tools/bashTools.js.map +1 -0
  320. package/dist/tools/codeAnalysisTools.d.ts +74 -0
  321. package/dist/tools/codeAnalysisTools.d.ts.map +1 -0
  322. package/dist/tools/codeAnalysisTools.js +642 -0
  323. package/dist/tools/codeAnalysisTools.js.map +1 -0
  324. package/dist/tools/codeGenerationTools.d.ts +3 -0
  325. package/dist/tools/codeGenerationTools.d.ts.map +1 -0
  326. package/dist/tools/codeGenerationTools.js +369 -0
  327. package/dist/tools/codeGenerationTools.js.map +1 -0
  328. package/dist/tools/codeQualityTools.d.ts +3 -0
  329. package/dist/tools/codeQualityTools.d.ts.map +1 -0
  330. package/dist/tools/codeQualityTools.js +295 -0
  331. package/dist/tools/codeQualityTools.js.map +1 -0
  332. package/dist/tools/dependencyTools.d.ts +3 -0
  333. package/dist/tools/dependencyTools.d.ts.map +1 -0
  334. package/dist/tools/dependencyTools.js +283 -0
  335. package/dist/tools/dependencyTools.js.map +1 -0
  336. package/dist/tools/devTools.d.ts +10 -0
  337. package/dist/tools/devTools.d.ts.map +1 -0
  338. package/dist/tools/devTools.js +239 -0
  339. package/dist/tools/devTools.js.map +1 -0
  340. package/dist/tools/diffUtils.d.ts +8 -0
  341. package/dist/tools/diffUtils.d.ts.map +1 -0
  342. package/dist/tools/diffUtils.js +2 -1
  343. package/dist/tools/diffUtils.js.map +1 -0
  344. package/dist/tools/fileTools.d.ts +3 -0
  345. package/dist/tools/fileTools.d.ts.map +1 -0
  346. package/dist/tools/fileTools.js +72 -21
  347. package/dist/tools/fileTools.js.map +1 -0
  348. package/dist/tools/refactoringTools.d.ts +3 -0
  349. package/dist/tools/refactoringTools.d.ts.map +1 -0
  350. package/dist/tools/refactoringTools.js +294 -0
  351. package/dist/tools/refactoringTools.js.map +1 -0
  352. package/dist/tools/repoChecksTools.d.ts +3 -0
  353. package/dist/tools/repoChecksTools.d.ts.map +1 -0
  354. package/dist/tools/repoChecksTools.js +161 -0
  355. package/dist/tools/repoChecksTools.js.map +1 -0
  356. package/dist/tools/searchTools.d.ts +3 -0
  357. package/dist/tools/searchTools.d.ts.map +1 -0
  358. package/dist/tools/searchTools.js +50 -22
  359. package/dist/tools/searchTools.js.map +1 -0
  360. package/dist/tools/testingTools.d.ts +3 -0
  361. package/dist/tools/testingTools.d.ts.map +1 -0
  362. package/dist/tools/testingTools.js +233 -0
  363. package/dist/tools/testingTools.js.map +1 -0
  364. package/dist/ui/ShellUIAdapter.d.ts +96 -0
  365. package/dist/ui/ShellUIAdapter.d.ts.map +1 -0
  366. package/dist/ui/ShellUIAdapter.js +442 -0
  367. package/dist/ui/ShellUIAdapter.js.map +1 -0
  368. package/dist/ui/UnifiedUIController.d.ts +196 -0
  369. package/dist/ui/UnifiedUIController.d.ts.map +1 -0
  370. package/dist/ui/UnifiedUIController.js +640 -0
  371. package/dist/ui/UnifiedUIController.js.map +1 -0
  372. package/dist/ui/animation/AnimationScheduler.d.ts +192 -0
  373. package/dist/ui/animation/AnimationScheduler.d.ts.map +1 -0
  374. package/dist/ui/animation/AnimationScheduler.js +432 -0
  375. package/dist/ui/animation/AnimationScheduler.js.map +1 -0
  376. package/dist/ui/codeHighlighter.d.ts +6 -0
  377. package/dist/ui/codeHighlighter.d.ts.map +1 -0
  378. package/dist/ui/codeHighlighter.js +41 -29
  379. package/dist/ui/codeHighlighter.js.map +1 -0
  380. package/dist/ui/designSystem.d.ts +26 -0
  381. package/dist/ui/designSystem.d.ts.map +1 -0
  382. package/dist/ui/designSystem.js +17 -1
  383. package/dist/ui/designSystem.js.map +1 -0
  384. package/dist/ui/display.d.ts +160 -0
  385. package/dist/ui/display.d.ts.map +1 -0
  386. package/dist/ui/display.js +492 -231
  387. package/dist/ui/display.js.map +1 -0
  388. package/dist/ui/interrupts/InterruptManager.d.ts +142 -0
  389. package/dist/ui/interrupts/InterruptManager.d.ts.map +1 -0
  390. package/dist/ui/interrupts/InterruptManager.js +439 -0
  391. package/dist/ui/interrupts/InterruptManager.js.map +1 -0
  392. package/dist/ui/layout.d.ts +17 -0
  393. package/dist/ui/layout.d.ts.map +1 -0
  394. package/dist/ui/layout.js +12 -7
  395. package/dist/ui/layout.js.map +1 -0
  396. package/dist/ui/orchestration/StatusOrchestrator.d.ts +156 -0
  397. package/dist/ui/orchestration/StatusOrchestrator.d.ts.map +1 -0
  398. package/dist/ui/orchestration/StatusOrchestrator.js +405 -0
  399. package/dist/ui/orchestration/StatusOrchestrator.js.map +1 -0
  400. package/dist/ui/overlay/OverlayManager.d.ts +105 -0
  401. package/dist/ui/overlay/OverlayManager.d.ts.map +1 -0
  402. package/dist/ui/overlay/OverlayManager.js +291 -0
  403. package/dist/ui/overlay/OverlayManager.js.map +1 -0
  404. package/dist/ui/richText.d.ts +6 -0
  405. package/dist/ui/richText.d.ts.map +1 -0
  406. package/dist/ui/richText.js +13 -4
  407. package/dist/ui/richText.js.map +1 -0
  408. package/dist/ui/telemetry/UITelemetry.d.ts +181 -0
  409. package/dist/ui/telemetry/UITelemetry.d.ts.map +1 -0
  410. package/dist/ui/telemetry/UITelemetry.js +446 -0
  411. package/dist/ui/telemetry/UITelemetry.js.map +1 -0
  412. package/dist/ui/theme.d.ts +77 -0
  413. package/dist/ui/theme.d.ts.map +1 -0
  414. package/dist/ui/theme.js +19 -6
  415. package/dist/ui/theme.js.map +1 -0
  416. package/dist/utils/errorUtils.d.ts +16 -0
  417. package/dist/utils/errorUtils.d.ts.map +1 -0
  418. package/dist/utils/errorUtils.js +66 -0
  419. package/dist/utils/errorUtils.js.map +1 -0
  420. package/dist/utils/nodeVersion.d.ts +3 -0
  421. package/dist/utils/nodeVersion.d.ts.map +1 -0
  422. package/dist/utils/nodeVersion.js +51 -0
  423. package/dist/utils/nodeVersion.js.map +1 -0
  424. package/dist/workspace.d.ts +8 -0
  425. package/dist/workspace.d.ts.map +1 -0
  426. package/dist/workspace.js +72 -11
  427. package/dist/workspace.js.map +1 -0
  428. package/package.json +35 -16
  429. package/scripts/health-check.mjs +176 -0
  430. package/ARCHITECTURE.json +0 -157
  431. package/Agents.md +0 -207
  432. package/SOURCE_OF_TRUTH.json +0 -103
  433. package/dist/capabilities/tavilyCapability.js +0 -26
  434. package/dist/plugins/tools/tavily/tavilyPlugin.js +0 -16
  435. package/dist/shell/__tests__/bracketedPasteManager.test.js +0 -35
  436. package/dist/tools/tavilyTools.js +0 -176
  437. package/dist/ui/__tests__/richText.test.js +0 -36
@@ -3,20 +3,25 @@ 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 } from './liveStatus.js';
15
+ import { buildInteractiveSystemPrompt } from './systemPrompt.js';
16
+ import { ShellUIAdapter } from '../ui/ShellUIAdapter.js';
17
+ import { stdout } from 'node:process';
13
18
  /**
14
19
  * Launch the interactive shell with full capability awareness for the selected profile.
15
20
  */
16
21
  export async function launchShell(defaultProfile, options = {}) {
17
22
  try {
18
23
  const { profileOverride, promptArgs } = parseLaunchArguments(process.argv.slice(2));
19
- const envProfileOverride = process.env.EROSOLAR_PROFILE?.trim() || null;
24
+ const envProfileOverride = process.env['EROSOLAR_PROFILE']?.trim() || null;
20
25
  const allowProfileSelection = Boolean(options.enableProfileSelection);
21
26
  const availableProfiles = listAgentProfiles();
22
27
  const rawSavedProfile = allowProfileSelection ? loadActiveProfilePreference() : null;
@@ -30,9 +35,18 @@ export async function launchShell(defaultProfile, options = {}) {
30
35
  allowSavedProfile: allowProfileSelection,
31
36
  });
32
37
  const workingDir = process.cwd();
33
- // Build workspace context
34
- const workspaceContext = buildWorkspaceContext(workingDir);
35
- const toolObserver = createToolObserver(workingDir);
38
+ const workspaceOptions = resolveWorkspaceCaptureOptions(process.env);
39
+ const workspaceContext = buildWorkspaceContext(workingDir, workspaceOptions);
40
+ const statusTracker = new LiveStatusTracker();
41
+ // Create unified UI adapter early to get the tool observer
42
+ const uiAdapter = new ShellUIAdapter(stdout, display, {
43
+ useUnifiedUI: true,
44
+ preserveCompatibility: true,
45
+ enableTelemetry: true,
46
+ debugMode: false,
47
+ });
48
+ // Use the unified UI adapter's tool observer instead of the legacy one
49
+ const toolObserver = uiAdapter.createToolObserver();
36
50
  const toolSettings = loadToolSettings();
37
51
  const toolSelection = buildEnabledToolSet(toolSettings);
38
52
  const permissionSummary = evaluateToolPermissions(toolSelection);
@@ -58,11 +72,14 @@ export async function launchShell(defaultProfile, options = {}) {
58
72
  temperature: profileConfig.temperature,
59
73
  maxTokens: profileConfig.maxTokens,
60
74
  };
61
- // Update system prompt for interactive mode
62
75
  const enhancedSystemPrompt = buildInteractiveSystemPrompt(profileConfig.systemPrompt, profileConfig.label, providerTools);
63
76
  const version = readPackageVersion();
64
- // Show welcome banner
65
77
  display.showWelcome(profileConfig.label, profile, initialModel.model, initialModel.provider, workingDir, version);
78
+ display.showAvailableTools(providerTools);
79
+ const continueLaunch = await maybeOfferCliUpdate(version);
80
+ if (!continueLaunch) {
81
+ return;
82
+ }
66
83
  if (permissionSummary.warnings.length) {
67
84
  reportSkippedTools(permissionSummary.warnings);
68
85
  }
@@ -73,7 +90,6 @@ export async function launchShell(defaultProfile, options = {}) {
73
90
  options: availableProfiles,
74
91
  }
75
92
  : undefined;
76
- // Create and start interactive shell
77
93
  const shell = new InteractiveShell({
78
94
  profile,
79
95
  profileLabel: profileConfig.label,
@@ -82,8 +98,10 @@ export async function launchShell(defaultProfile, options = {}) {
82
98
  baseSystemPrompt: enhancedSystemPrompt,
83
99
  initialModel,
84
100
  agentSelection,
101
+ statusTracker,
102
+ uiAdapter,
103
+ workspaceOptions,
85
104
  });
86
- // Check for initial command from CLI args
87
105
  const initialPrompt = promptArgs.join(' ').trim();
88
106
  await shell.start(initialPrompt || undefined);
89
107
  }
@@ -104,6 +122,9 @@ function parseLaunchArguments(argv) {
104
122
  };
105
123
  for (let index = 0; index < argv.length; index += 1) {
106
124
  const token = argv[index];
125
+ if (!token) {
126
+ continue;
127
+ }
107
128
  if (token === '--profile' || token === '-p') {
108
129
  const value = expectValue(token, argv[index + 1]);
109
130
  override = value;
@@ -176,69 +197,6 @@ function reportSkippedTools(entries) {
176
197
  display.showWarning(`Skipped ${warning.label} — ${details}${suffix}`);
177
198
  }
178
199
  }
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
200
  function readPackageVersion() {
243
201
  try {
244
202
  const filePath = fileURLToPath(import.meta.url);
@@ -250,20 +208,35 @@ function readPackageVersion() {
250
208
  return '0.0.0';
251
209
  }
252
210
  }
253
- function createToolObserver(root) {
211
+ /**
212
+ * @deprecated This function is replaced by ShellUIAdapter.createToolObserver()
213
+ * which provides unified UI integration. Kept for backward compatibility.
214
+ */
215
+ // @ts-expect-error - Legacy function kept for reference, not currently used
216
+ function createToolObserver(root, statusTracker) {
254
217
  const inflight = new Map();
255
218
  const popTitle = (call) => {
256
219
  const title = inflight.get(call.id);
257
220
  inflight.delete(call.id);
258
221
  return title ?? formatToolTitle(call, root);
259
222
  };
223
+ const statusId = (call) => `tool:${call.id}`;
224
+ const clearStatus = (call) => {
225
+ statusTracker.clearOverride(statusId(call));
226
+ };
260
227
  return {
261
228
  onToolStart: (call) => {
262
229
  inflight.set(call.id, formatToolTitle(call, root));
230
+ const overlay = describeToolOverlay(call, root);
231
+ statusTracker.pushOverride(statusId(call), overlay.text, {
232
+ detail: overlay.detail,
233
+ tone: overlay.tone,
234
+ });
263
235
  },
264
236
  onToolResult: (call, output) => {
265
237
  const summary = summarizeToolResult(call, output);
266
238
  const title = popTitle(call);
239
+ clearStatus(call);
267
240
  display.showAction(title, 'success');
268
241
  if (summary) {
269
242
  display.showSubAction(summary, 'success');
@@ -271,6 +244,7 @@ function createToolObserver(root) {
271
244
  },
272
245
  onToolError: (call, message) => {
273
246
  const title = popTitle(call);
247
+ clearStatus(call);
274
248
  display.showAction(title, 'error');
275
249
  display.showSubAction(message, 'error');
276
250
  },
@@ -278,11 +252,11 @@ function createToolObserver(root) {
278
252
  }
279
253
  function formatToolTitle(call, root) {
280
254
  const getPath = () => {
281
- const value = stringArg(call.arguments?.path);
255
+ const value = stringArg(call.arguments?.['path']);
282
256
  return formatPath(value, root);
283
257
  };
284
258
  const getCommand = () => {
285
- return truncate(stringArg(call.arguments?.command), 32);
259
+ return truncate(stringArg(call.arguments?.['command']), 32);
286
260
  };
287
261
  switch (call.name) {
288
262
  case 'read_file':
@@ -292,11 +266,11 @@ function formatToolTitle(call, root) {
292
266
  case 'list_files':
293
267
  return `List(${getPath() || '.'})`;
294
268
  case 'search_files':
295
- return `Search(${stringArg(call.arguments?.pattern, '*')})`;
269
+ return `Search(${stringArg(call.arguments?.['pattern'], '*')})`;
296
270
  case 'grep_search':
297
- return `Grep(${stringArg(call.arguments?.pattern)})`;
271
+ return `Grep(${stringArg(call.arguments?.['pattern'])})`;
298
272
  case 'find_definition':
299
- return `Find(${stringArg(call.arguments?.name)})`;
273
+ return `Find(${stringArg(call.arguments?.['name'])})`;
300
274
  case 'execute_bash':
301
275
  return `Bash(${getCommand()})`;
302
276
  case 'context_snapshot':
@@ -309,6 +283,102 @@ function formatToolTitle(call, root) {
309
283
  return call.name;
310
284
  }
311
285
  }
286
+ function describeToolOverlay(call, root) {
287
+ const describePath = () => {
288
+ const value = stringArg(call.arguments?.['path']);
289
+ return formatPath(value, root) || '.';
290
+ };
291
+ const describePattern = (key) => {
292
+ const raw = stringArg(call.arguments?.[key]);
293
+ return raw ? truncate(raw, 32) : key === 'pattern' ? 'pattern' : 'target';
294
+ };
295
+ const describeCommand = () => {
296
+ const raw = stringArg(call.arguments?.['command']);
297
+ return raw ? truncate(raw, 40) : 'shell command';
298
+ };
299
+ switch (call.name) {
300
+ case 'read_file': {
301
+ const path = describePath();
302
+ return {
303
+ text: `Reading ${path}`,
304
+ detail: 'read_file tool running',
305
+ tone: 'info',
306
+ };
307
+ }
308
+ case 'write_file': {
309
+ const path = describePath();
310
+ return {
311
+ text: `Writing ${path}`,
312
+ detail: 'write_file tool running',
313
+ tone: 'warning',
314
+ };
315
+ }
316
+ case 'list_files': {
317
+ const path = describePath();
318
+ return {
319
+ text: `Listing ${path}`,
320
+ detail: 'list_files tool running',
321
+ tone: 'info',
322
+ };
323
+ }
324
+ case 'search_files': {
325
+ const pattern = describePattern('pattern');
326
+ return {
327
+ text: `Searching files for ${pattern}`,
328
+ detail: 'search_files tool running',
329
+ tone: 'info',
330
+ };
331
+ }
332
+ case 'grep_search': {
333
+ const pattern = describePattern('pattern');
334
+ return {
335
+ text: `Grep search for ${pattern}`,
336
+ detail: 'grep_search tool running',
337
+ tone: 'info',
338
+ };
339
+ }
340
+ case 'find_definition': {
341
+ const name = describePattern('name');
342
+ return {
343
+ text: `Locating ${name}`,
344
+ detail: 'find_definition tool running',
345
+ tone: 'info',
346
+ };
347
+ }
348
+ case 'execute_bash': {
349
+ const command = describeCommand();
350
+ return {
351
+ text: `Running bash: ${command}`,
352
+ detail: 'execute_bash tool running',
353
+ tone: 'warning',
354
+ };
355
+ }
356
+ case 'context_snapshot':
357
+ return {
358
+ text: 'Replaying workspace snapshot',
359
+ detail: 'context_snapshot tool running',
360
+ tone: 'info',
361
+ };
362
+ case 'capabilities_overview':
363
+ return {
364
+ text: 'Summarizing runtime capabilities',
365
+ detail: 'capabilities_overview tool running',
366
+ tone: 'info',
367
+ };
368
+ case 'profile_details':
369
+ return {
370
+ text: 'Describing profile metadata',
371
+ detail: 'profile_details tool running',
372
+ tone: 'info',
373
+ };
374
+ default:
375
+ return {
376
+ text: `Running ${call.name}`,
377
+ detail: 'Tool execution in progress',
378
+ tone: 'info',
379
+ };
380
+ }
381
+ }
312
382
  function summarizeToolResult(call, output) {
313
383
  switch (call.name) {
314
384
  case 'read_file':
@@ -390,3 +460,4 @@ function truncate(value, max = 64) {
390
460
  function stringArg(value, fallback = '') {
391
461
  return typeof value === 'string' && value.trim().length > 0 ? value : fallback;
392
462
  }
463
+ //# sourceMappingURL=shellApp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shellApp.js","sourceRoot":"","sources":["../../src/shell/shellApp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,cAAc,CAAC;AAEtB,OAAO,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAGxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,eAAe,GAEhB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAuB,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAMtC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,cAA2B,EAC3B,UAA8B,EAAE;IAEhC,IAAI,CAAC;QACH,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;QAC3E,MAAM,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QACtE,MAAM,iBAAiB,GAAG,iBAAiB,EAAE,CAAC;QAC9C,MAAM,eAAe,GAAG,qBAAqB,CAAC,CAAC,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACrF,MAAM,YAAY,GAChB,eAAe,IAAI,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/E,MAAM,OAAO,GAAG,oBAAoB,CAAC;YACnC,cAAc;YACd,iBAAiB;YACjB,WAAW,EAAE,eAAe;YAC5B,WAAW,EAAE,kBAAkB;YAC/B,YAAY;YACZ,iBAAiB,EAAE,qBAAqB;SACzC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAEjC,MAAM,gBAAgB,GAAG,8BAA8B,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrE,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAE7E,MAAM,aAAa,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAE9C,2DAA2D;QAC3D,MAAM,SAAS,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE;YACpD,YAAY,EAAE,IAAI;YAClB,qBAAqB,EAAE,IAAI;YAC3B,eAAe,EAAE,IAAI;YACrB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QAEH,uEAAuE;QACvE,MAAM,YAAY,GAAG,SAAS,CAAC,kBAAkB,EAAE,CAAC;QAEpD,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAC;QACxC,MAAM,aAAa,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;QACxD,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,aAAa,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,CAAC,MAAkB,EAAW,EAAE,CACnD,eAAe,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;QAEjE,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC;YACtC,OAAO;YACP,gBAAgB;YAChB,UAAU;YACV,YAAY;YACZ,cAAc,EAAE;gBACd,MAAM,EAAE,YAAY;aACrB;SACF,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAEhC,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC5C,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;QAE9D,MAAM,kBAAkB,GACtB,aAAa,CAAC,WAAW,IAAI,aAAa,CAAC,cAAc;YACvD,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAEnC,MAAM,YAAY,GAAmB,kBAAkB,IAAI;YACzD,QAAQ,EAAE,aAAa,CAAC,QAAQ;YAChC,KAAK,EAAE,aAAa,CAAC,KAAK;YAC1B,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,SAAS,EAAE,aAAa,CAAC,SAAS;SACnC,CAAC;QAEF,MAAM,oBAAoB,GAAG,4BAA4B,CACvD,aAAa,CAAC,YAAY,EAC1B,aAAa,CAAC,KAAK,EACnB,aAAa,CACd,CAAC;QAEF,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;QAErC,OAAO,CAAC,WAAW,CACjB,aAAa,CAAC,KAAK,EACnB,OAAO,EACP,YAAY,CAAC,KAAK,EAClB,YAAY,CAAC,QAAQ,EACrB,UAAU,EACV,OAAO,CACR,CAAC;QAEF,OAAO,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAE1C,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACtC,kBAAkB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,cAAc,GAAG,qBAAqB;YAC1C,CAAC,CAAC;gBACE,cAAc;gBACd,gBAAgB,EAAE,YAAY;gBAC9B,OAAO,EAAE,iBAAiB;aAC3B;YACH,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC;YACjC,OAAO;YACP,YAAY,EAAE,aAAa,CAAC,KAAK;YACjC,UAAU;YACV,OAAO;YACP,gBAAgB,EAAE,oBAAoB;YACtC,YAAY;YACZ,cAAc;YACd,aAAa;YACb,SAAS;YACT,gBAAgB;SACjB,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAClD,MAAM,KAAK,CAAC,KAAK,CAAC,aAAa,IAAI,SAAS,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,CAAC,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAgBD,SAAS,oBAAoB,CAAC,IAAc;IAC1C,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,QAAQ,GAAkB,IAAI,CAAC;IAEnC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,KAAyB,EAAU,EAAE;QACtE,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,GAAG,CAAC,CAAC;IAChD,CAAC,CAAC;IAEF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YAClD,QAAQ,GAAG,KAAK,CAAC;YACjB,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;YACD,QAAQ,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;YAC5B,SAAS;QACX,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,OAAO;QACL,eAAe,EAAE,QAAQ;QACzB,UAAU;KACX,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAA6B;IACzD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC1E,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,0BAA0B,KAAK,CAAC,WAAW,6CAA6C,CACzF,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC1E,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,0BAA0B,KAAK,CAAC,WAAW,kCAAkC,CAC9E,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACxE,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC7E,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,YAAY,CACnB,SAAoC,EACpC,iBAAuD;IAEvD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,eAAe,CAAC,OAAsB,CAAC,EAAE,CAAC;QAC5C,OAAO,OAAsB,CAAC;IAChC,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;IACxF,OAAO,KAAK,CAAC,CAAC,CAAE,KAAK,CAAC,IAAoB,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,CAAC;AAED,SAAS,kBAAkB,CAAC,OAA0B;IACpD,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,OAAO,GACX,OAAO,CAAC,MAAM,KAAK,gBAAgB,IAAI,OAAO,CAAC,QAAQ;YACrD,CAAC,CAAC,WAAW,OAAO,CAAC,QAAQ,EAAE;YAC/B,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACrB,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,OAAO,CAAC,WAAW,CAAC,WAAW,OAAO,CAAC,KAAK,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB;IACzB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAyB,CAAC;QACtF,OAAO,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,4EAA4E;AAC5E,SAAS,kBAAkB,CAAC,IAAY,EAAE,aAAgC;IACxE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE3C,MAAM,QAAQ,GAAG,CAAC,IAAqB,EAAU,EAAE;QACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzB,OAAO,KAAK,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,IAAqB,EAAU,EAAE,CAAC,QAAQ,IAAI,CAAC,EAAE,EAAE,CAAC;IAEtE,MAAM,WAAW,GAAG,CAAC,IAAqB,EAAE,EAAE;QAC5C,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,OAAO;QACL,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;YACpB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACnD,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChD,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE;gBACvD,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC,CAAC;QACL,CAAC;QACD,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAC7B,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC7B,WAAW,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACrC,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QACD,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC7B,WAAW,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACnC,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,IAAqB,EAAE,IAAY;IAC1D,MAAM,OAAO,GAAG,GAAW,EAAE;QAC3B,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAClD,OAAO,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAW,EAAE;QAC9B,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC;IAEF,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,WAAW;YACd,OAAO,QAAQ,OAAO,EAAE,GAAG,CAAC;QAC9B,KAAK,YAAY;YACf,OAAO,SAAS,OAAO,EAAE,GAAG,CAAC;QAC/B,KAAK,YAAY;YACf,OAAO,QAAQ,OAAO,EAAE,IAAI,GAAG,GAAG,CAAC;QACrC,KAAK,cAAc;YACjB,OAAO,UAAU,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;QAClE,KAAK,aAAa;YAChB,OAAO,QAAQ,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC;QAC3D,KAAK,iBAAiB;YACpB,OAAO,QAAQ,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC;QACxD,KAAK,cAAc;YACjB,OAAO,QAAQ,UAAU,EAAE,GAAG,CAAC;QACjC,KAAK,kBAAkB;YACrB,OAAO,iBAAiB,CAAC;QAC3B,KAAK,uBAAuB;YAC1B,OAAO,sBAAsB,CAAC;QAChC,KAAK,iBAAiB;YACpB,OAAO,gBAAgB,CAAC;QAC1B;YACE,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;AACH,CAAC;AAQD,SAAS,mBAAmB,CAAC,IAAqB,EAAE,IAAY;IAC9D,MAAM,YAAY,GAAG,GAAW,EAAE;QAChC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAClD,OAAO,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC;IACxC,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,GAAuB,EAAU,EAAE;QAC1D,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,OAAO,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC5E,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,GAAW,EAAE;QACnC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;QACnD,OAAO,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;IACnD,CAAC,CAAC;IAEF,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;YAC5B,OAAO;gBACL,IAAI,EAAE,WAAW,IAAI,EAAE;gBACvB,MAAM,EAAE,wBAAwB;gBAChC,IAAI,EAAE,MAAM;aACb,CAAC;QACJ,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;YAC5B,OAAO;gBACL,IAAI,EAAE,WAAW,IAAI,EAAE;gBACvB,MAAM,EAAE,yBAAyB;gBACjC,IAAI,EAAE,SAAS;aAChB,CAAC;QACJ,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;YAC5B,OAAO;gBACL,IAAI,EAAE,WAAW,IAAI,EAAE;gBACvB,MAAM,EAAE,yBAAyB;gBACjC,IAAI,EAAE,MAAM;aACb,CAAC;QACJ,CAAC;QACD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;YAC3C,OAAO;gBACL,IAAI,EAAE,uBAAuB,OAAO,EAAE;gBACtC,MAAM,EAAE,2BAA2B;gBACnC,IAAI,EAAE,MAAM;aACb,CAAC;QACJ,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;YAC3C,OAAO;gBACL,IAAI,EAAE,mBAAmB,OAAO,EAAE;gBAClC,MAAM,EAAE,0BAA0B;gBAClC,IAAI,EAAE,MAAM;aACb,CAAC;QACJ,CAAC;QACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;YACrC,OAAO;gBACL,IAAI,EAAE,YAAY,IAAI,EAAE;gBACxB,MAAM,EAAE,8BAA8B;gBACtC,IAAI,EAAE,MAAM;aACb,CAAC;QACJ,CAAC;QACD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;YAClC,OAAO;gBACL,IAAI,EAAE,iBAAiB,OAAO,EAAE;gBAChC,MAAM,EAAE,2BAA2B;gBACnC,IAAI,EAAE,SAAS;aAChB,CAAC;QACJ,CAAC;QACD,KAAK,kBAAkB;YACrB,OAAO;gBACL,IAAI,EAAE,8BAA8B;gBACpC,MAAM,EAAE,+BAA+B;gBACvC,IAAI,EAAE,MAAM;aACb,CAAC;QACJ,KAAK,uBAAuB;YAC1B,OAAO;gBACL,IAAI,EAAE,kCAAkC;gBACxC,MAAM,EAAE,oCAAoC;gBAC5C,IAAI,EAAE,MAAM;aACb,CAAC;QACJ,KAAK,iBAAiB;YACpB,OAAO;gBACL,IAAI,EAAE,6BAA6B;gBACnC,MAAM,EAAE,8BAA8B;gBACtC,IAAI,EAAE,MAAM;aACb,CAAC;QACJ;YACE,OAAO;gBACL,IAAI,EAAE,WAAW,IAAI,CAAC,IAAI,EAAE;gBAC5B,MAAM,EAAE,4BAA4B;gBACpC,IAAI,EAAE,MAAM;aACb,CAAC;IACN,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAqB,EAAE,MAAc;IAChE,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,WAAW;YACd,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;QAC/B,KAAK,YAAY;YACf,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;QAChC,KAAK,YAAY;YACf,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;QAC/B,KAAK,cAAc;YACjB,OAAO,eAAe,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;QACvD,KAAK,aAAa;YAChB,OAAO,eAAe,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;QACzD,KAAK,iBAAiB;YACpB,OAAO,eAAe,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;QAC1D,KAAK,cAAc;YACjB,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;QAC/B,KAAK,kBAAkB;YACrB,OAAO,qCAAqC,CAAC;QAC/C,KAAK,uBAAuB;YAC1B,OAAO,+BAA+B,CAAC;QACzC,KAAK,iBAAiB;YACpB,OAAO,mCAAmC,CAAC;QAC7C;YACE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,MAAc;IACpC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACjC,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IACnC,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,OAAO,SAAS,CAAC,CAAC,CAAC,QAAQ,SAAS,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC;AACtE,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IACnC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IAC1D,OAAO,OAAO,CAAC,CAAC,CAAC,UAAU,OAAO,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC;AAChE,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IACnC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,+BAA+B,CAAC;IACzC,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,GAAG,IAAI,UAAU,KAAK,CAAC,MAAM,GAAG,CAAC,aAAa,CAAC;IACxD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,MAAc,EAAE,OAAe;IACtD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACf,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,SAAS,CAAC,MAAc;IAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9D,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,IAAY;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAC;IACrB,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChC,OAAO,GAAG,IAAI,GAAG,CAAC;IACpB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,GAAG,GAAG,EAAE;IACvC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,OAAO,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AACpE,CAAC;AAED,SAAS,SAAS,CAAC,KAAc,EAAE,QAAQ,GAAG,EAAE;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACjF,CAAC"}
@@ -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 src/contracts/agent-profiles.schema.json (contract: src/contracts/schemas/agent-profile.schema.json) and agents/*.rules.json (contract: src/contracts/schemas/agent-rules.schema.json) as the canonical guardrails; 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,8RAA8R;QAC9R,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"}