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
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # Erosolar CLI
2
2
 
3
- Erosolar CLI is a modular, profile aware command-line assistant that bundles a locally running AI agent, tool runtime, and capability registry into a single npm package. It ships with both the balanced **Erosolar** profile (`general`) and the deterministic **Erosolar Code** profile (`erosolar-code`), plus a provider registry that can drive OpenAI, Anthropic, DeepSeek, xAI Grok, Google Gemini, or any custom LLM you register. The CLI bootstraps a structured workspace context, exposes file/search/bash tooling, and lets you opt into external capabilities (like Tavily web search) without editing source code.
3
+ Erosolar CLI is a modular, profile aware command-line assistant that bundles a locally running AI agent, tool runtime, and capability registry into a single npm package. It ships with both the balanced **Erosolar** profile (`general`) and the deterministic **Erosolar Code** profile (`erosolar-code`), plus a provider registry that can drive OpenAI, Anthropic, DeepSeek, xAI Grok, Google Gemini, or any custom LLM you register. The CLI bootstraps a structured workspace context, exposes file/search/bash tooling, and now focuses entirely on deterministic coding capabilities—no external document editors or web research dependencies required.
4
4
 
5
- > This README is the canonical reference for the published npm module. Update it together with `SOURCE_OF_TRUTH.json` or `ARCHITECTURE.json` when behavior changes.
5
+ > `Agents.md` contains the canonical profile manifest and JSON rulebooks (validated by `src/contracts/schemas/agent-profile.schema.json` and `src/contracts/schemas/agent-rules.schema.json`). Edit that doc to change prompts/guardrails, then document the behavioral shift here whenever the CLI changes.
6
6
 
7
7
  ## Why Erosolar CLI?
8
8
 
@@ -17,17 +17,15 @@ Erosolar CLI is a modular, profile aware command-line assistant that bundles a l
17
17
 
18
18
  ### Prerequisites
19
19
 
20
- - Node.js **20.0.0 or newer** (check with `node -v`).
20
+ - Node.js **20.0.0 or newer** (check with `node -v`). The repo ships an `.nvmrc` pinned to 20 and the CLI now aborts immediately with upgrade instructions if you launch it on an older runtime.
21
21
  - API keys for the models you plan to use (see [Provider support](#provider-support--api-keys)).
22
22
  - macOS/Linux shell. Windows works inside WSL2.
23
23
 
24
24
  ### Install the CLI
25
25
 
26
26
  ```bash
27
- npm install -g erosolar-cli # global install
28
- # or keep it local
29
- npm install erosolar-cli --save-dev
30
- # or run ad-hoc without installing
27
+ npm install -g erosolar-cli
28
+ # Optional: run ad-hoc without installing
31
29
  npx erosolar --version
32
30
  ```
33
31
 
@@ -39,6 +37,8 @@ erosolar --help
39
37
 
40
38
  The binary lives at `dist/bin/erosolar.js` and is exposed through the `erosolar` bin entry.
41
39
 
40
+ > Tip: The CLI now checks the npm registry every time it launches. If a newer version exists, it prompts you to install the update globally with `npm install -g erosolar-cli@latest` so your shell always picks up the latest profile/runtime fixes.
41
+
42
42
  ## Quick Start
43
43
 
44
44
  1. **Launch the shell**
@@ -49,7 +49,7 @@ The binary lives at `dist/bin/erosolar.js` and is exposed through the `erosolar`
49
49
  ```
50
50
  2. **Configure secrets** – inside the shell run `/secrets` and paste your `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, etc. Secrets are saved to `~/.codex/secrets.json` (override with `CODEX_HOME`).
51
51
  3. **Choose a model** – run `/model` to switch providers or presets (OpenAI GPT-5, Claude, DeepSeek, Grok, Gemini, …). Preferences persist in `~/.erosolar/settings.json`.
52
- 4. **Toggle tools** – `/tools` enables/disables filesystem, search, bash, or Tavily suites per profile.
52
+ 4. **Toggle tools** – `/tools` enables/disables the coding tool families (filesystem/search/bash/analysis/etc.) per profile.
53
53
  5. **Chat or automate** – type instructions, paste code blocks (bracketed paste supported), or kick off `/agents` to switch the default profile for future launches.
54
54
 
55
55
  The shell prints every tool invocation (e.g., `Read(src/app.ts)`), shows diffs for writes, and summarizes bash output so you can audit what happened.
@@ -67,9 +67,12 @@ The shell prints every tool invocation (e.g., `Read(src/app.ts)`), shows diffs f
67
67
 
68
68
  | Command | Description |
69
69
  |-------------|-------------|
70
- | `/model` | Choose provider/model, temperature, max tokens, or thought level presets (direct/balanced/deep). |
70
+ | `/model` | Choose provider/model, temperature, or max tokens. |
71
71
  | `/secrets` | List, add, or update API keys. Stored encrypted-at-rest in `~/.codex/secrets.json`. |
72
- | `/tools` | Enable/disable capability suites (filesystem, search, bash, Tavily). Preferences save to `~/.erosolar/settings.json`. |
72
+ | `/tools` | Enable/disable capability suites (filesystem, search, bash, analysis, etc.). Preferences save to `~/.erosolar/settings.json`. |
73
+ | `/doctor` | Run environment checks to confirm Node version, provider secrets, and tool suites are ready. |
74
+ | `/checks` | Run repo checks (npm test/build/lint) inside the sandboxed workspace. |
75
+ | `/context` | Capture a fresh workspace snapshot mid-session. Supports optional `depth=`, `entries=`, and `excerpt=` overrides. |
73
76
  | `/agents` | (When enabled) switch the default profile for future launches. |
74
77
  | `/clear` | Reset the working conversation. |
75
78
  | `/log` | Show the recent transcript. |
@@ -82,7 +85,7 @@ The shell prints every tool invocation (e.g., `Read(src/app.ts)`), shows diffs f
82
85
  | `general` | **Erosolar** | OpenAI `gpt-5.1` | Balanced research/writing/coding. | `GENERAL_MODEL`, `GENERAL_PROVIDER`, `GENERAL_SYSTEM_PROMPT` |
83
86
  | `erosolar-code` | **Erosolar Code** | OpenAI `gpt-5.1-codex` | Rapid, deterministic code edits with aggressive tool usage. | `EROSOLAR_CODE_MODEL`, `EROSOLAR_CODE_PROVIDER`, `EROSOLAR_CODE_SYSTEM_PROMPT` |
84
87
 
85
- Each profile is registered in `src/config.ts`. Add new profiles via `registerAgentProfile()` or override defaults with environment variables before launching the CLI. `EROSOLAR_PROFILE` selects which profile boots by default.
88
+ Default profiles live in the `Agents.md` manifest block (validated by `src/contracts/schemas/agent-profile.schema.json`) and are registered on launch. Update that document to change defaults, or override them with environment variables before starting the CLI. `EROSOLAR_PROFILE` selects which profile boots by default.
86
89
 
87
90
  ## Provider support & API keys
88
91
 
@@ -93,21 +96,35 @@ Each profile is registered in `src/config.ts`. Add new profiles via `registerAge
93
96
  | `deepseek` | `deepseek-reasoner`, `deepseek-chat` | `DEEPSEEK_API_KEY` | `/model → DeepSeek` |
94
97
  | `xai` | `grok-4`, `grok-4-fast-reasoning`, `grok-4-fast-non-reasoning`, `grok-code-fast-1` | `XAI_API_KEY` | `/model → xAI` |
95
98
  | `google` | `gemini-2.5-pro`, `gemini-2.5-flash` | `GEMINI_API_KEY` | `/model → Google Gemini` |
96
- | `tavily` | `tavily_search`, `tavily_extract` tools | `TAVILY_API_KEY` | Enable via `/tools` |
97
99
 
98
100
  Secrets are read from environment variables first, then from `~/.codex/secrets.json`. Use `/secrets` to manage them interactively.
99
101
 
100
102
  ## Built-in tools & capability suites
101
103
 
102
- The CLI composes tools via `CapabilityModule`s. The default Node runtime registers:
104
+ The CLI composes tools via `CapabilityModule`s. The canonical suite metadata lives in `src/contracts/tools.schema.json`, so editing that schema updates every runtime without touching multiple files. The default Node runtime now registers a single purpose-built coding toolkit and no longer bundles non-coding Office or web research capabilities. See `docs/CODING_CAPABILITIES.md` for deep dives into each command.
105
+
106
+ Tool invocations are narrated via the interactive shell (`Read(src/api.ts)`, `Bash(npm test)`). Warnings surface when tools are disabled or missing secrets so you can remediate without rerunning the CLI.
103
107
 
108
+ ### Coding tool families
109
+
110
+ **Core workspace control**
104
111
  - **Filesystem suite (`filesystemCapability.ts`)** – `read_file`, `write_file` (with diff previews), `list_files`, `search_files`. Uses deterministic ignore lists and protects against accidental binary writes.
105
- - **Search suite (`searchCapability.ts`)** – `grep_search`, `find_definition` over repo text. Regex friendly, case sensitive toggle, built-in binary detection.
106
- - **Bash suite (`bashCapability.ts`)** – `execute_bash` runs commands inside a sandbox rooted at `<workspace>/.erosolar/shell-sandbox`. HOME/TMP/XDG paths are rewritten unless `EROSOLAR_PRESERVE_HOME=1` is set. Streaming mode placeholder exists (`execute_bash_stream`).
107
- - **Tavily suite (`tavilyCapability.ts`)** – opt-in live web search/extract. Requires `TAVILY_API_KEY` and the `/tools` toggle.
108
- - **Runtime metadata tools (`core/toolRuntime.ts`)** – `context_snapshot`, `capabilities_overview`, `profile_details` for deterministic context recall.
112
+ - **Search suite (`searchCapability.ts`)** – `grep_search`, `find_definition`, and keyword-aware scanners over repo text. Regex friendly with case sensitivity toggles and automatic binary detection.
113
+ - **Bash suite (`bashCapability.ts`)** – `execute_bash` runs commands inside a sandbox rooted at `<workspace>/.erosolar/shell-sandbox`. HOME/TMP/XDG paths are rewritten unless `EROSOLAR_PRESERVE_HOME=1` is set.
109
114
 
110
- Tool invocations are narrated via the interactive shell (`Read(src/api.ts)`, `Bash(npm test)`). Warnings surface when tools are disabled or missing secrets so you can remediate without rerunning the CLI.
115
+ **Delivery & validation loops**
116
+ - **Repo checks suite (`repoChecksCapability.ts`)** – `run_repo_checks` wraps `npm test`/`npm run build`/`npm run lint` (when present) inside the sandbox and powers the `/checks` shortcut for one-command validation.
117
+ - **Development workflow suite (`devCapability.ts`)** – `run_tests`, `install_dependencies`, `check_package_info`, and `run_build` encapsulate local package/test/build operations with timeout handling and script detection.
118
+ - **Testing & coverage suite (`testingCapability.ts`)** – test plan scaffolding, coverage orchestration, and sanity checks for the local test harness.
119
+
120
+ **Code intelligence & quality**
121
+ - **Code analysis suite (`codeAnalysisCapability.ts`)** – `analyze_code_structure`, `find_dependencies`, and `check_code_complexity` provide AST-backed insight into any TS/JS file.
122
+ - **Code quality suite (`codeQualityCapability.ts`)** – `run_lint_checks`, `inspect_code_quality`, `list_lint_rules` surface lint health, TODO hotspots, and maintainability metrics.
123
+ - **Refactoring suite (`refactoringCapability.ts`)** – `detect_refactoring_hotspots`, `generate_refactor_plan`, `analyze_refactor_impact` use AST data plus call graphs to map risky symbols before editing.
124
+
125
+ **Dependency & runtime awareness**
126
+ - **Dependency security suite (`dependencySecurityCapability.ts`)** – dependency summaries, advisories, `npm audit` execution, and lockfile inspections to catch supply-chain issues.
127
+ - **Runtime metadata tools (`core/toolRuntime.ts`)** – `context_snapshot`, `capabilities_overview`, `profile_details` provide deterministic context recall for every session.
111
128
 
112
129
  ## Workspace context & prompts
113
130
 
@@ -115,31 +132,26 @@ On launch, `buildWorkspaceContext()` (see `src/workspace.ts`) captures:
115
132
 
116
133
  1. The current working directory path.
117
134
  2. A trimmed file tree (depth 2, up to 200 entries, ignoring `.git`, `node_modules`, `dist`).
118
- 3. Contents/snippets of `README.md`, `SOURCE_OF_TRUTH.json`, `ARCHITECTURE.json`, and `package.json` when present.
135
+ 3. Contents/snippets of `README.md`, `package.json`, and formatted rulebook prompts derived from every `Agents.md` rulebook block.
119
136
 
120
137
  The snapshot is appended to the active system prompt and exposed via the `context_snapshot` tool so the agent always has a deterministic view of the repo even before reading files manually.
121
138
 
122
- ## Architectural overview
139
+ Need more context? Override the capture depth/excerpt ahead of launch with:
123
140
 
124
- ```
125
- ┌────────────┐ ┌────────────────┐ ┌─────────────┐ ┌──────────────┐
126
- Interactive│→→│ AgentSession │→→│ AgentRuntime │→→│ Provider SDK │
127
- │ Shell │ │ (profile/model │ │ (conversation│ │ (OpenAI, etc.)│
128
- │ (/model…) │ │ resolution) │ │ loop + tools)│ │ │
129
- └────┬───────┘ └────────┬───────┘ └──────┬──────┘ └──────┬───────┘
130
- │ Workspace context │ ToolRuntime/logging │
131
- ▼ ▼ ▼
132
- Capability modules (filesystem/search/bash/Tavily/…) loaded via AgentHost/RuntimeAdapter
133
- ```
141
+ - `EROSOLAR_CONTEXT_TREE_DEPTH` – max folder depth for the file tree.
142
+ - `EROSOLAR_CONTEXT_MAX_ENTRIES` – cap on total tree entries.
143
+ - `EROSOLAR_CONTEXT_DOC_LIMIT` max characters captured from the priority documents.
134
144
 
135
- - **Interactive shell (`src/shell/interactiveShell.ts`)** renders prompts, manages slash commands, handles bracketed paste, streams assistant tokens, and persists preferences.
136
- - **AgentHost (`src/runtime/agentHost.ts`)** loads capability modules and resolves tool suites before the session starts.
137
- - **CapabilityModule interface** describes any pluggable feature: return tool suites, metadata, and teardown logic. Modules can be registered by adapters, plugins, or downstream apps.
138
- - **RuntimeAdapter (`src/adapters/types.ts`)** creates modules for specific targets (Node CLI, browser sandbox, server worker). The Node adapter wires in filesystem/search/bash/Tavily plugins.
139
- - **AgentSession (`src/runtime/agentSession.ts`)** resolves the profile config, builds the tool runtime, and instantiates providers.
140
- - **AgentRuntime (`src/core/agent.ts`)** runs the LLM loop, interleaving provider calls and tool execution.
145
+ During a session you can run `/context` to recapture the snapshot without restarting the CLI. Optional arguments allow deeper crawls or larger excerpts mid-session, e.g. `/context depth=4 excerpt=4000 entries=400`.
141
146
 
142
- Thanks to this separation, you can reuse the runtime in Electron apps, remote agents, or serverless workers without rewriting orchestration.
147
+ ### Agent rulebooks
148
+
149
+ Each profile loads its prompts, guardrails, and phase/step rules from the matching `Agents.md#rulebooks/<profile>` block. Those manifests follow `src/contracts/schemas/agent-rules.schema.json`, so you can add new phases, rules, or metadata programmatically without editing TypeScript. Cite `Agents.md` (and rule IDs) when referencing canonical instructions.
150
+
151
+ - `Agents.md#rulebooks/general` — balanced Erosolar rulebook governing research/planning/writing tasks.
152
+ - `Agents.md#rulebooks/erosolar-code` — deterministic coding rulebook that enforces the narrate-plan-edit-validate-report workflow.
153
+
154
+ The workspace snapshot automatically captures the formatted prompts derived from these JSON files, so the active agent (and any downstream orchestrator) cites the same instructions. After editing a rulebook, rebuild or restart the CLI to reload it.
143
155
 
144
156
  ## Extending the CLI
145
157
 
@@ -198,25 +210,46 @@ Expose it through `/model` by adding presets in `src/shell/interactiveShell.ts`.
198
210
 
199
211
  ### Add an agent profile
200
212
 
213
+ Prefer editing the manifest in `Agents.md` so every runtime reads the same defaults. For ad-hoc registrations, include the system prompt definition and a rulebook reference so workspace snapshots stay aligned:
214
+
201
215
  ```ts
202
216
  import { registerAgentProfile } from 'erosolar-cli/core/agentProfiles.js';
217
+
203
218
  registerAgentProfile({
204
219
  name: 'docs',
205
220
  label: 'Docs Agent',
206
221
  description: 'Summaries only',
207
222
  defaultProvider: 'openai',
208
223
  defaultModel: 'gpt-5-mini',
224
+ systemPromptConfig: { type: 'literal', content: 'Only answer with documentation.' },
209
225
  defaultSystemPrompt: 'Only answer with documentation.',
226
+ rulebook: {
227
+ file: 'Agents.md#rulebooks/docs',
228
+ version: 'dev-local',
229
+ contractVersion: '1.0.0',
230
+ description: 'Docs-only guardrails.',
231
+ },
232
+ manifestVersion: 'dev-local',
233
+ manifestContractVersion: '1.0.0',
210
234
  });
211
235
  ```
212
236
 
237
+ ## Contract schemas
238
+
239
+ The CLI now exports machine readable contracts so other runtimes can preload the same guardrails and tool toggles without scraping prompts.
240
+
241
+ - **Agent profiles** – `src/contracts/v1/agentProfileManifest.ts` plus `src/contracts/schemas/agent-profile.schema.json` define default providers/models, prompt templates, and rulebook bindings (the live manifest is the `Agents.md` block).
242
+ - **Agent rules** – `src/contracts/v1/agentRules.ts` plus `src/contracts/schemas/agent-rules.schema.json` describe multi-phase workflows. Encode per-phase steps, required evidence, nested sub-steps, and severity tagged rules so an orchestrator can enforce behavior before the model ever sees a prompt.
243
+ - **Tool selection** – `src/contracts/v1/toolAccess.ts` plus `src/contracts/schemas/tool-selection.schema.json` enumerate every toggleable tool suite along with permission scopes, required secrets, and optional presets. UI layers can read this manifest to decide which suites are surfaced or locked for a profile.
244
+ - **Agent schema snapshot** – `dist/contracts/agent-schema.snapshot.json` (written after `npm run build`) materializes the entire `Agents.md` profile manifest plus each rulebook block into a single JSON payload so other runtimes can ingest the exact schema without rehydrating multiple files.
245
+
213
246
  ## Configuration reference
214
247
 
215
248
  - `EROSOLAR_PROFILE` – boot this profile unless `--profile` overrides it.
216
249
  - `<PROFILE>_MODEL`, `<PROFILE>_PROVIDER`, `<PROFILE>_SYSTEM_PROMPT` – lock a profile to custom defaults. Examples: `GENERAL_MODEL=claude-sonnet-4.5`, `EROSOLAR_CODE_SYSTEM_PROMPT="..."`.
217
250
  - `EROSOLAR_PRESERVE_HOME=1` – skip rewriting `$HOME`/`XDG_*` paths when running bash commands.
218
251
  - `CODEX_HOME` – change where CLI secrets are stored (defaults to `~/.codex`).
219
- - `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, `DEEPSEEK_API_KEY`, `XAI_API_KEY`, `GEMINI_API_KEY`, `TAVILY_API_KEY` – provider credentials.
252
+ - `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, `DEEPSEEK_API_KEY`, `XAI_API_KEY`, `GEMINI_API_KEY` – provider credentials.
220
253
  - `GENERAL_MODEL`, `EROSOLAR_CODE_MODEL` – shorthand for the two built-in profiles.
221
254
  - `PATH`, `TMPDIR`, etc. – inherited by bash tools after sandboxing.
222
255
 
@@ -228,7 +261,7 @@ User preferences (model presets, enabled tools, saved profile) live in `~/.eroso
228
261
  git clone https://github.com/bo/bo-cli.git
229
262
  cd bo-cli
230
263
  npm install
231
- npm run dev # ts-node/tsx entry for iterating without building
264
+ npm run dev # ts-node loader entry for iterating without building
232
265
  npm run build # clean + tsc compile to dist/
233
266
  npm run start # run the compiled CLI
234
267
  npm run clean # remove dist/
@@ -239,25 +272,25 @@ Notes:
239
272
  - The repo uses strict ES modules and TypeScript 5.3+.
240
273
  - `dist/bin/erosolar.js` must stay executable; `npm run postbuild` sets `chmod 755`.
241
274
  - Keep new files ASCII by default; use comments sparingly (see `apply_patch` guidelines in this repo).
242
- - `ARCHITECTURE.json`, `MODULAR_RUNTIME.md`, and `Agents.md` document the same defaults—update them if you change prompts or modules.
275
+ - Keep the JSON blocks inside `Agents.md` aligned with `src/contracts/schemas/agent-rules.schema.json` whenever you change prompts or modules—the CLI loads them directly at runtime.
243
276
 
244
277
  ## Release & publishing checklist
245
278
 
246
- 1. Update docs/metadata (README, `package.json` description, architectural JSON files if needed).
279
+ 1. Update docs/metadata (README, `Agents.md`, the agent-rules schema when structure changes, and the `package.json` description).
247
280
  2. Run `npm run build` to refresh `dist/`.
248
- 3. Inspect the diff and run any smoke tests (e.g., `npx tsx src/bin/erosolar.ts --version`).
281
+ 3. Inspect the diff and run any smoke tests (e.g., `node --loader ts-node/esm src/bin/erosolar.ts --version`).
249
282
  4. Bump the version: `npm version patch` (or `minor`/`major`) to keep npm in sync.
250
283
  5. Publish: `npm publish`.
251
284
  6. Verify on npmjs.com that the README renders and the new version lists the correct files.
252
285
 
253
- The `files` array in `package.json` already limits what goes to npm (`dist`, README, docs JSON, license, preinstall script).
286
+ The `files` array in `package.json` already limits what goes to npm (`dist`, README, `Agents.md`, license, helper scripts).
254
287
 
255
288
  ## Repository layout
256
289
 
257
290
  - `src/bin/erosolar.ts` – CLI entrypoint.
258
291
  - `src/shell/` – interactive shell UX, slash commands, tool logging.
259
292
  - `src/runtime/` – AgentHost, AgentSession, adapters.
260
- - `src/capabilities/` & `src/tools/` – filesystem/search/bash/Tavily implementations.
293
+ - `src/capabilities/` & `src/tools/` – filesystem/search/bash/coding capability implementations.
261
294
  - `src/plugins/` – provider + tool plugin registries.
262
295
  - `src/providers/` – LLM client shims (OpenAI Responses, Chat Completions, etc.).
263
296
  - `src/core/` – agent runtime, tool runtime, preferences, secrets.
@@ -0,0 +1,12 @@
1
+ import type { CapabilityModule } from '../../runtime/agentHost.js';
2
+ import type { RuntimeAdapter, RuntimeAdapterContext } from '../types.js';
3
+ export interface BrowserAdapterOptions {
4
+ modules?: CapabilityModule[];
5
+ }
6
+ export declare class BrowserRuntimeAdapter implements RuntimeAdapter {
7
+ readonly id = "runtime.browser";
8
+ private readonly options;
9
+ constructor(options?: BrowserAdapterOptions);
10
+ createCapabilityModules(_: RuntimeAdapterContext): Promise<CapabilityModule[]>;
11
+ }
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEzE,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,qBAAa,qBAAsB,YAAW,cAAc;IAC1D,QAAQ,CAAC,EAAE,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;gBAEpC,OAAO,GAAE,qBAA0B;IAIzC,uBAAuB,CAAC,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;CAGrF"}
@@ -8,3 +8,4 @@ export class BrowserRuntimeAdapter {
8
8
  return [...(this.options.modules ?? [])];
9
9
  }
10
10
  }
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/browser/index.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,qBAAqB;IACvB,EAAE,GAAG,iBAAiB,CAAC;IACf,OAAO,CAAwB;IAEhD,YAAY,UAAiC,EAAE;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,CAAwB;QACpD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ import type { CapabilityModule } from '../../runtime/agentHost.js';
2
+ import type { RuntimeAdapter, RuntimeAdapterContext } from '../types.js';
3
+ import { type ToolPlugin } from '../../plugins/tools/index.js';
4
+ export interface NodeAdapterOptions {
5
+ includeFilesystem?: boolean;
6
+ includeSearch?: boolean;
7
+ includeBash?: boolean;
8
+ extraModules?: CapabilityModule[];
9
+ filter?: (plugin: ToolPlugin) => boolean;
10
+ }
11
+ export declare class NodeRuntimeAdapter implements RuntimeAdapter {
12
+ readonly id = "runtime.node";
13
+ private readonly options;
14
+ constructor(options?: NodeAdapterOptions);
15
+ createCapabilityModules(context: RuntimeAdapterContext): Promise<CapabilityModule[]>;
16
+ }
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,WAAW,kBAAkB;IACjC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAClC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;CAC1C;AAED,qBAAa,kBAAmB,YAAW,cAAc;IACvD,QAAQ,CAAC,EAAE,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;gBAEjC,OAAO,GAAE,kBAAuB;IAItC,uBAAuB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;CAkC3F"}
@@ -32,3 +32,4 @@ export class NodeRuntimeAdapter {
32
32
  return modules;
33
33
  }
34
34
  }
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/node/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,sBAAsB,EACtB,8BAA8B,GAE/B,MAAM,8BAA8B,CAAC;AAUtC,MAAM,OAAO,kBAAkB;IACpB,EAAE,GAAG,cAAc,CAAC;IACZ,OAAO,CAAqB;IAE7C,YAAY,UAA8B,EAAE;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,OAA8B;QAC1D,8BAA8B,EAAE,CAAC;QAEjC,MAAM,MAAM,GAAG,CAAC,MAAkB,EAAW,EAAE;YAC7C,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,KAAK,KAAK,IAAI,MAAM,CAAC,EAAE,KAAK,uBAAuB,EAAE,CAAC;gBACtF,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,KAAK,IAAI,MAAM,CAAC,EAAE,KAAK,mBAAmB,EAAE,CAAC;gBAC9E,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,KAAK,IAAI,MAAM,CAAC,EAAE,KAAK,iBAAiB,EAAE,CAAC;gBAC1E,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAC1C,MAAM,EACN;YACE,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,EACD,EAAE,MAAM,EAAE,CACX,CAAC;QAEF,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import type { CapabilityModule } from '../../runtime/agentHost.js';
2
+ import type { RuntimeAdapter, RuntimeAdapterContext } from '../types.js';
3
+ export type RemoteModuleFactory = CapabilityModule | ((context: RuntimeAdapterContext) => CapabilityModule | Promise<CapabilityModule>);
4
+ export interface RemoteAdapterOptions {
5
+ modules?: RemoteModuleFactory[];
6
+ }
7
+ export declare class RemoteRuntimeAdapter implements RuntimeAdapter {
8
+ readonly id = "runtime.remote";
9
+ private readonly options;
10
+ constructor(options?: RemoteAdapterOptions);
11
+ createCapabilityModules(context: RuntimeAdapterContext): Promise<CapabilityModule[]>;
12
+ }
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/remote/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEzE,MAAM,MAAM,mBAAmB,GAC3B,gBAAgB,GAChB,CAAC,CAAC,OAAO,EAAE,qBAAqB,KAAK,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEvF,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACjC;AAED,qBAAa,oBAAqB,YAAW,cAAc;IACzD,QAAQ,CAAC,EAAE,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;gBAEnC,OAAO,GAAE,oBAAyB;IAIxC,uBAAuB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;CAW3F"}
@@ -17,3 +17,4 @@ export class RemoteRuntimeAdapter {
17
17
  return modules;
18
18
  }
19
19
  }
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/remote/index.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,oBAAoB;IACtB,EAAE,GAAG,gBAAgB,CAAC;IACd,OAAO,CAAuB;IAE/C,YAAY,UAAgC,EAAE;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,OAA8B;QAC1D,MAAM,OAAO,GAAuB,EAAE,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;YAC/C,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChC,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ import type { ProfileName } from '../config.js';
2
+ import type { CapabilityModule } from '../runtime/agentHost.js';
3
+ export interface RuntimeAdapterContext {
4
+ profile: ProfileName;
5
+ workspaceContext: string | null;
6
+ workingDir: string;
7
+ env: Record<string, string | undefined>;
8
+ }
9
+ export interface RuntimeAdapter {
10
+ id: string;
11
+ description?: string;
12
+ createCapabilityModules(context: RuntimeAdapterContext): CapabilityModule[] | Promise<CapabilityModule[]>;
13
+ }
14
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,WAAW,CAAC;IACrB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB,CACrB,OAAO,EAAE,qBAAqB,GAC7B,gBAAgB,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;CACrD"}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=erosolar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erosolar.d.ts","sourceRoot":"","sources":["../../src/bin/erosolar.ts"],"names":[],"mappings":""}
@@ -4,3 +4,4 @@ launchShell('erosolar-code', { enableProfileSelection: true }).catch((error) =>
4
4
  console.error(error instanceof Error ? error.message : error);
5
5
  process.exit(1);
6
6
  });
7
+ //# sourceMappingURL=erosolar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erosolar.js","sourceRoot":"","sources":["../../src/bin/erosolar.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,WAAW,CAAC,eAAe,EAAE,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC7E,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { CapabilityContribution, CapabilityContext, CapabilityModule } from '../runtime/agentHost.js';
2
+ export interface BashCapabilityOptions {
3
+ workingDir?: string;
4
+ id?: string;
5
+ description?: string;
6
+ }
7
+ export declare class BashCapabilityModule implements CapabilityModule {
8
+ readonly id = "capability.bash";
9
+ private readonly options;
10
+ constructor(options?: BashCapabilityOptions);
11
+ create(context: CapabilityContext): Promise<CapabilityContribution>;
12
+ }
13
+ //# sourceMappingURL=bashCapability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bashCapability.d.ts","sourceRoot":"","sources":["../../src/capabilities/bashCapability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3G,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,oBAAqB,YAAW,gBAAgB;IAC3D,QAAQ,CAAC,EAAE,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;gBAEpC,OAAO,GAAE,qBAA0B;IAIzC,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAe1E"}
@@ -21,3 +21,4 @@ export class BashCapabilityModule {
21
21
  };
22
22
  }
23
23
  }
24
+ //# sourceMappingURL=bashCapability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bashCapability.js","sourceRoot":"","sources":["../../src/capabilities/bashCapability.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAQxD,MAAM,OAAO,oBAAoB;IACtB,EAAE,GAAG,iBAAiB,CAAC;IACf,OAAO,CAAwB;IAEhD,YAAY,UAAiC,EAAE;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAA0B;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;QACjE,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,kBAAkB;YACzC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,mEAAmE;YAC5G,SAAS,EAAE;gBACT,EAAE,EAAE,MAAM;gBACV,WAAW,EAAE,cAAc;gBAC3B,KAAK,EAAE,eAAe,CAAC,UAAU,CAAC;aACnC;YACD,QAAQ,EAAE;gBACR,UAAU;aACX;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import type { CapabilityContribution, CapabilityContext, CapabilityModule } from '../runtime/agentHost.js';
2
+ export interface CodeAnalysisCapabilityOptions {
3
+ workingDir?: string;
4
+ id?: string;
5
+ description?: string;
6
+ }
7
+ export declare class CodeAnalysisCapabilityModule implements CapabilityModule {
8
+ readonly id = "capability.code-analysis";
9
+ private readonly options;
10
+ constructor(options?: CodeAnalysisCapabilityOptions);
11
+ create(context: CapabilityContext): Promise<CapabilityContribution>;
12
+ }
13
+ //# sourceMappingURL=codeAnalysisCapability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeAnalysisCapability.d.ts","sourceRoot":"","sources":["../../src/capabilities/codeAnalysisCapability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3G,MAAM,WAAW,6BAA6B;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,4BAA6B,YAAW,gBAAgB;IACnE,QAAQ,CAAC,EAAE,8BAA8B;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;gBAE5C,OAAO,GAAE,6BAAkC;IAIjD,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAe1E"}
@@ -0,0 +1,24 @@
1
+ import { createCodeAnalysisTools } from '../tools/codeAnalysisTools.js';
2
+ export class CodeAnalysisCapabilityModule {
3
+ id = 'capability.code-analysis';
4
+ options;
5
+ constructor(options = {}) {
6
+ this.options = options;
7
+ }
8
+ async create(context) {
9
+ const workingDir = this.options.workingDir ?? context.workingDir;
10
+ return {
11
+ id: this.options.id ?? 'code-analysis.tools.structural',
12
+ description: this.options.description ?? 'Advanced code structure analysis, dependency tracking, and complexity metrics.',
13
+ toolSuite: {
14
+ id: 'code-analysis',
15
+ description: 'Code analysis and metrics',
16
+ tools: createCodeAnalysisTools(workingDir),
17
+ },
18
+ metadata: {
19
+ workingDir,
20
+ },
21
+ };
22
+ }
23
+ }
24
+ //# sourceMappingURL=codeAnalysisCapability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeAnalysisCapability.js","sourceRoot":"","sources":["../../src/capabilities/codeAnalysisCapability.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAQxE,MAAM,OAAO,4BAA4B;IAC9B,EAAE,GAAG,0BAA0B,CAAC;IACxB,OAAO,CAAgC;IAExD,YAAY,UAAyC,EAAE;QACrD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAA0B;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;QACjE,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,gCAAgC;YACvD,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,gFAAgF;YACzH,SAAS,EAAE;gBACT,EAAE,EAAE,eAAe;gBACnB,WAAW,EAAE,2BAA2B;gBACxC,KAAK,EAAE,uBAAuB,CAAC,UAAU,CAAC;aAC3C;YACD,QAAQ,EAAE;gBACR,UAAU;aACX;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import type { CapabilityContribution, CapabilityContext, CapabilityModule } from '../runtime/agentHost.js';
2
+ export interface CodeGenerationCapabilityOptions {
3
+ workingDir?: string;
4
+ id?: string;
5
+ description?: string;
6
+ }
7
+ export declare class CodeGenerationCapabilityModule implements CapabilityModule {
8
+ readonly id = "capability.code-generation";
9
+ private readonly options;
10
+ constructor(options?: CodeGenerationCapabilityOptions);
11
+ create(context: CapabilityContext): Promise<CapabilityContribution>;
12
+ }
13
+ //# sourceMappingURL=codeGenerationCapability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeGenerationCapability.d.ts","sourceRoot":"","sources":["../../src/capabilities/codeGenerationCapability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3G,MAAM,WAAW,+BAA+B;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,8BAA+B,YAAW,gBAAgB;IACrE,QAAQ,CAAC,EAAE,gCAAgC;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;gBAE9C,OAAO,GAAE,+BAAoC;IAInD,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAiB1E"}
@@ -0,0 +1,25 @@
1
+ import { createCodeGenerationTools } from '../tools/codeGenerationTools.js';
2
+ export class CodeGenerationCapabilityModule {
3
+ id = 'capability.code-generation';
4
+ options;
5
+ constructor(options = {}) {
6
+ this.options = options;
7
+ }
8
+ async create(context) {
9
+ const workingDir = this.options.workingDir ?? context.workingDir;
10
+ return {
11
+ id: this.options.id ?? 'code-generation.tools.assistant',
12
+ description: this.options.description ??
13
+ 'Advanced code generation including boilerplate creation, component templates, and utility generation.',
14
+ toolSuite: {
15
+ id: 'code-generation',
16
+ description: 'Code generation assistants',
17
+ tools: createCodeGenerationTools(workingDir),
18
+ },
19
+ metadata: {
20
+ workingDir,
21
+ },
22
+ };
23
+ }
24
+ }
25
+ //# sourceMappingURL=codeGenerationCapability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeGenerationCapability.js","sourceRoot":"","sources":["../../src/capabilities/codeGenerationCapability.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAQ5E,MAAM,OAAO,8BAA8B;IAChC,EAAE,GAAG,4BAA4B,CAAC;IAC1B,OAAO,CAAkC;IAE1D,YAAY,UAA2C,EAAE;QACvD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAA0B;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;QACjE,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,iCAAiC;YACxD,WAAW,EACT,IAAI,CAAC,OAAO,CAAC,WAAW;gBACxB,uGAAuG;YACzG,SAAS,EAAE;gBACT,EAAE,EAAE,iBAAiB;gBACrB,WAAW,EAAE,4BAA4B;gBACzC,KAAK,EAAE,yBAAyB,CAAC,UAAU,CAAC;aAC7C;YACD,QAAQ,EAAE;gBACR,UAAU;aACX;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import type { CapabilityContribution, CapabilityContext, CapabilityModule } from '../runtime/agentHost.js';
2
+ export interface CodeQualityCapabilityOptions {
3
+ workingDir?: string;
4
+ id?: string;
5
+ description?: string;
6
+ }
7
+ export declare class CodeQualityCapabilityModule implements CapabilityModule {
8
+ readonly id = "capability.code-quality";
9
+ private readonly options;
10
+ constructor(options?: CodeQualityCapabilityOptions);
11
+ create(context: CapabilityContext): Promise<CapabilityContribution>;
12
+ }
13
+ //# sourceMappingURL=codeQualityCapability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeQualityCapability.d.ts","sourceRoot":"","sources":["../../src/capabilities/codeQualityCapability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3G,MAAM,WAAW,4BAA4B;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,2BAA4B,YAAW,gBAAgB;IAClE,QAAQ,CAAC,EAAE,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;gBAE3C,OAAO,GAAE,4BAAiC;IAIhD,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAiB1E"}
@@ -0,0 +1,25 @@
1
+ import { createCodeQualityTools } from '../tools/codeQualityTools.js';
2
+ export class CodeQualityCapabilityModule {
3
+ id = 'capability.code-quality';
4
+ options;
5
+ constructor(options = {}) {
6
+ this.options = options;
7
+ }
8
+ async create(context) {
9
+ const workingDir = this.options.workingDir ?? context.workingDir;
10
+ return {
11
+ id: this.options.id ?? 'code-quality.tools.linting',
12
+ description: this.options.description ??
13
+ 'Code quality helpers for linting, maintainability analysis, and ESLint rule discovery.',
14
+ toolSuite: {
15
+ id: 'code-quality',
16
+ description: 'Code quality and linting',
17
+ tools: createCodeQualityTools(workingDir),
18
+ },
19
+ metadata: {
20
+ workingDir,
21
+ },
22
+ };
23
+ }
24
+ }
25
+ //# sourceMappingURL=codeQualityCapability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeQualityCapability.js","sourceRoot":"","sources":["../../src/capabilities/codeQualityCapability.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAQtE,MAAM,OAAO,2BAA2B;IAC7B,EAAE,GAAG,yBAAyB,CAAC;IACvB,OAAO,CAA+B;IAEvD,YAAY,UAAwC,EAAE;QACpD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAA0B;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;QACjE,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,4BAA4B;YACnD,WAAW,EACT,IAAI,CAAC,OAAO,CAAC,WAAW;gBACxB,wFAAwF;YAC1F,SAAS,EAAE;gBACT,EAAE,EAAE,cAAc;gBAClB,WAAW,EAAE,0BAA0B;gBACvC,KAAK,EAAE,sBAAsB,CAAC,UAAU,CAAC;aAC1C;YACD,QAAQ,EAAE;gBACR,UAAU;aACX;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import type { CapabilityContribution, CapabilityContext, CapabilityModule } from '../runtime/agentHost.js';
2
+ export interface DependencySecurityCapabilityOptions {
3
+ workingDir?: string;
4
+ id?: string;
5
+ description?: string;
6
+ }
7
+ export declare class DependencySecurityCapabilityModule implements CapabilityModule {
8
+ readonly id = "capability.dependency-security";
9
+ private readonly options;
10
+ constructor(options?: DependencySecurityCapabilityOptions);
11
+ create(context: CapabilityContext): Promise<CapabilityContribution>;
12
+ }
13
+ //# sourceMappingURL=dependencySecurityCapability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependencySecurityCapability.d.ts","sourceRoot":"","sources":["../../src/capabilities/dependencySecurityCapability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3G,MAAM,WAAW,mCAAmC;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,kCAAmC,YAAW,gBAAgB;IACzE,QAAQ,CAAC,EAAE,oCAAoC;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;gBAElD,OAAO,GAAE,mCAAwC;IAIvD,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAgB1E"}