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
@@ -0,0 +1,28 @@
1
+ import type { ProviderId } from './core/types.js';
2
+ import { type ProfileName } from './core/agentProfiles.js';
3
+ export type { ProfileName } from './core/agentProfiles.js';
4
+ export interface ResolvedProfileConfig {
5
+ profile: ProfileName;
6
+ label: string;
7
+ description?: string;
8
+ provider: ProviderId;
9
+ model: string;
10
+ systemPrompt: string;
11
+ temperature?: number;
12
+ maxTokens?: number;
13
+ modelLocked: boolean;
14
+ providerLocked: boolean;
15
+ manifestVersion: string;
16
+ manifestContractVersion: string;
17
+ rulebook: ProfileRulebookMetadata | null;
18
+ }
19
+ export interface ProfileRulebookMetadata {
20
+ profile: ProfileName;
21
+ label: string;
22
+ version: string;
23
+ contractVersion: string;
24
+ description?: string;
25
+ file: string;
26
+ }
27
+ export declare function resolveProfileConfig(profile: ProfileName, workspaceContext: string | null): ResolvedProfileConfig;
28
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAIjC,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,UAAU,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,MAAM,CAAC;IAChC,QAAQ,EAAE,uBAAuB,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAgBD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,qBAAqB,CA0CjH"}
package/dist/config.js CHANGED
@@ -1,23 +1,11 @@
1
+ import { dirname, resolve } from 'node:path';
2
+ import { fileURLToPath } from 'node:url';
1
3
  import { registerAgentProfile, hasAgentProfile, getAgentProfile, } from './core/agentProfiles.js';
2
- const DEFAULT_PROFILES = [
3
- {
4
- name: 'general',
5
- label: 'Erosolar',
6
- description: 'General-purpose operator with balanced reasoning across research, planning, writing, and coding tasks.',
7
- defaultProvider: 'openai',
8
- defaultModel: 'gpt-5.1',
9
- defaultSystemPrompt: 'You are the Erosolar General Agent, a multi-domain operator who can plan work, write documents, reason about data, and modify code with equal rigor. Always ground answers in verifiable evidence: cite files, command output, or captured context. Narrate your intent, decompose complex requests into steps, and reach for tools whenever direct inspection or execution is required.',
10
- temperature: 0.2,
11
- },
12
- {
13
- name: 'erosolar-code',
14
- label: 'Erosolar Code',
15
- description: 'OpenAI-tuned coding specialist optimized for rapid edits with deterministic grounding.',
16
- defaultProvider: 'openai',
17
- defaultModel: 'gpt-5.1-codex',
18
- defaultSystemPrompt: 'You are the Erosolar CLI, a powerful AI coding assistant with full capabilities. You can read and write files, execute bash commands, search codebases, and handle complex multi-step tasks. Be proactive and use tools to accomplish tasks effectively.',
19
- },
20
- ];
4
+ import { buildAgentRulebookPrompt, loadAgentRulebook } from './core/agentRulebook.js';
5
+ import { getAgentProfileManifest } from './core/agentProfileManifest.js';
6
+ const PACKAGE_ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..');
7
+ const PROFILE_MANIFEST = getAgentProfileManifest();
8
+ const DEFAULT_PROFILES = PROFILE_MANIFEST.profiles.map((entry) => normalizeProfileFromManifest(entry, PROFILE_MANIFEST, PACKAGE_ROOT));
21
9
  for (const profile of DEFAULT_PROFILES) {
22
10
  if (!hasAgentProfile(profile.name)) {
23
11
  registerAgentProfile(profile);
@@ -29,25 +17,34 @@ export function resolveProfileConfig(profile, workspaceContext) {
29
17
  const modelEnv = process.env[`${envPrefix}_MODEL`];
30
18
  const modelLocked = typeof modelEnv === 'string' && modelEnv.trim().length > 0;
31
19
  const model = modelLocked ? modelEnv.trim() : blueprint.defaultModel;
32
- // System prompt can still be customized via environment if needed
33
20
  const systemPrompt = process.env[`${envPrefix}_SYSTEM_PROMPT`] ?? blueprint.defaultSystemPrompt;
34
21
  const providerEnv = process.env[`${envPrefix}_PROVIDER`];
35
22
  const providerLocked = isProviderValue(providerEnv);
36
23
  const provider = providerLocked ? providerEnv.trim() : blueprint.defaultProvider;
24
+ const rulebook = loadRulebookMetadata(blueprint);
37
25
  const contextBlock = workspaceContext?.trim()
38
26
  ? `\n\nWorkspace context (auto-detected):\n${workspaceContext.trim()}`
39
27
  : '';
40
- return {
28
+ const resolved = {
41
29
  profile,
42
30
  label: blueprint.label,
31
+ description: blueprint.description,
43
32
  provider,
44
33
  model,
45
- temperature: blueprint.temperature,
46
- maxTokens: blueprint.maxTokens,
47
34
  systemPrompt: `${systemPrompt.trim()}${contextBlock}`,
48
35
  modelLocked,
49
36
  providerLocked,
37
+ manifestVersion: blueprint.manifestVersion,
38
+ manifestContractVersion: blueprint.manifestContractVersion,
39
+ rulebook,
50
40
  };
41
+ if (typeof blueprint.temperature === 'number') {
42
+ resolved.temperature = blueprint.temperature;
43
+ }
44
+ if (typeof blueprint.maxTokens === 'number') {
45
+ resolved.maxTokens = blueprint.maxTokens;
46
+ }
47
+ return resolved;
51
48
  }
52
49
  function toEnvPrefix(profile) {
53
50
  return profile
@@ -58,3 +55,81 @@ function toEnvPrefix(profile) {
58
55
  function isProviderValue(value) {
59
56
  return typeof value === 'string' && value.trim().length > 0;
60
57
  }
58
+ function loadRulebookMetadata(profile) {
59
+ try {
60
+ const manifest = loadAgentRulebook(profile.name, {
61
+ root: PACKAGE_ROOT,
62
+ });
63
+ return {
64
+ profile: manifest.profile,
65
+ label: manifest.label ?? manifest.profile,
66
+ version: manifest.version,
67
+ contractVersion: manifest.contractVersion,
68
+ description: manifest.description ?? profile.rulebook.description,
69
+ file: profile.rulebook.file,
70
+ };
71
+ }
72
+ catch {
73
+ if (!profile.rulebook) {
74
+ return null;
75
+ }
76
+ const fallback = {
77
+ profile: profile.name,
78
+ label: profile.label,
79
+ version: profile.rulebook.version ?? 'unknown',
80
+ contractVersion: profile.rulebook.contractVersion ?? 'unknown',
81
+ description: profile.rulebook.description,
82
+ file: profile.rulebook.file,
83
+ };
84
+ return fallback;
85
+ }
86
+ }
87
+ function normalizeProfileFromManifest(entry, manifest, root) {
88
+ const defaultSystemPrompt = buildDefaultSystemPrompt(entry, root);
89
+ return {
90
+ name: entry.name,
91
+ label: entry.label,
92
+ description: entry.description,
93
+ defaultProvider: entry.defaultProvider,
94
+ defaultModel: entry.defaultModel,
95
+ systemPromptConfig: entry.systemPrompt,
96
+ defaultSystemPrompt,
97
+ temperature: entry.temperature,
98
+ maxTokens: entry.maxTokens,
99
+ rulebook: entry.rulebook,
100
+ manifestVersion: manifest.version,
101
+ manifestContractVersion: manifest.contractVersion,
102
+ };
103
+ }
104
+ function buildDefaultSystemPrompt(entry, root) {
105
+ try {
106
+ const promptConfig = entry.systemPrompt;
107
+ if (promptConfig.type === 'literal') {
108
+ return promptConfig.content.trim();
109
+ }
110
+ const template = promptConfig.template?.trim() || '{{rulebook}}';
111
+ const rulebookPrompt = buildAgentRulebookPrompt(entry.name, {
112
+ root,
113
+ }).trim();
114
+ const replacements = {
115
+ rulebook: rulebookPrompt,
116
+ profile: entry.label || entry.name,
117
+ profile_name: entry.name,
118
+ };
119
+ const rendered = template.replace(/\{\{\s*(rulebook|profile|profile_name)\s*\}\}/gi, (_match, token) => {
120
+ const key = token.toLowerCase();
121
+ return replacements[key] ?? '';
122
+ });
123
+ if (/\{\{\s*rulebook\s*\}\}/i.test(template)) {
124
+ return rendered.trim();
125
+ }
126
+ const merged = rendered.trim();
127
+ const suffix = merged ? `\n\n${rulebookPrompt}` : rulebookPrompt;
128
+ return `${merged}${suffix}`.trim();
129
+ }
130
+ catch (error) {
131
+ const message = error instanceof Error ? error.message : String(error);
132
+ throw new Error(`Failed to build system prompt for profile "${entry.name}": ${message}`);
133
+ }
134
+ }
135
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ {
2
+ "$schema": "./schemas/agent-profile.schema.json",
3
+ "contractVersion": "1.0.0",
4
+ "version": "2024-11-24",
5
+ "label": "Erosolar CLI profile manifest",
6
+ "description": "Default profile definitions shipped with the CLI, including provider defaults and rulebook bindings.",
7
+ "profiles": [
8
+ {
9
+ "name": "general",
10
+ "label": "Erosolar",
11
+ "description": "General-purpose operator with balanced reasoning across research, planning, writing, and coding tasks.",
12
+ "defaultProvider": "openai",
13
+ "defaultModel": "gpt-5.1",
14
+ "temperature": 0.2,
15
+ "systemPrompt": {
16
+ "type": "rulebook",
17
+ "template": "{{rulebook}}"
18
+ },
19
+ "rulebook": {
20
+ "file": "agents/general.rules.json",
21
+ "version": "2024-11-24",
22
+ "contractVersion": "1.0.0",
23
+ "description": "Structured rules governing the balanced Erosolar profile."
24
+ }
25
+ },
26
+ {
27
+ "name": "erosolar-code",
28
+ "label": "Erosolar Code",
29
+ "description": "OpenAI-tuned coding specialist optimized for rapid edits with deterministic grounding.",
30
+ "defaultProvider": "openai",
31
+ "defaultModel": "gpt-5.1-codex",
32
+ "systemPrompt": {
33
+ "type": "rulebook"
34
+ },
35
+ "rulebook": {
36
+ "file": "agents/erosolar-code.rules.json",
37
+ "version": "2024-11-24",
38
+ "contractVersion": "1.0.0",
39
+ "description": "Deterministic coding workflow guardrails."
40
+ }
41
+ }
42
+ ]
43
+ }
@@ -0,0 +1,437 @@
1
+ {
2
+ "contractVersion": "1.0.0",
3
+ "generatedAt": "2025-11-18T06:18:03.692Z",
4
+ "manifest": {
5
+ "contractVersion": "1.0.0",
6
+ "version": "2024-11-24",
7
+ "profiles": [
8
+ {
9
+ "name": "general",
10
+ "label": "Erosolar",
11
+ "defaultProvider": "openai",
12
+ "defaultModel": "gpt-5.1",
13
+ "systemPrompt": {
14
+ "type": "rulebook",
15
+ "template": "{{rulebook}}"
16
+ },
17
+ "rulebook": {
18
+ "file": "Agents.md#rulebooks/general",
19
+ "version": "2024-11-24",
20
+ "contractVersion": "1.0.0",
21
+ "description": "Structured rules governing the balanced Erosolar profile."
22
+ },
23
+ "description": "General-purpose operator with balanced reasoning across research, planning, writing, and coding tasks.",
24
+ "temperature": 0.2
25
+ },
26
+ {
27
+ "name": "erosolar-code",
28
+ "label": "Erosolar Code",
29
+ "defaultProvider": "openai",
30
+ "defaultModel": "gpt-5.1-codex",
31
+ "systemPrompt": {
32
+ "type": "rulebook"
33
+ },
34
+ "rulebook": {
35
+ "file": "Agents.md#rulebooks/erosolar-code",
36
+ "version": "2024-11-24",
37
+ "contractVersion": "1.0.0",
38
+ "description": "Deterministic coding workflow guardrails."
39
+ },
40
+ "description": "OpenAI-tuned coding specialist optimized for rapid edits with deterministic grounding."
41
+ }
42
+ ],
43
+ "label": "Erosolar CLI profile manifest",
44
+ "description": "Default profile definitions shipped with the CLI, including provider defaults and rulebook bindings."
45
+ },
46
+ "rulebooks": {
47
+ "general": {
48
+ "$schema": "./src/contracts/schemas/agent-rules.schema.json",
49
+ "contractVersion": "1.0.0",
50
+ "profile": "general",
51
+ "version": "2024-11-24",
52
+ "label": "Erosolar General Agent Rulebook",
53
+ "description": "Structured rules that govern the general-purpose Erosolar operator across research, planning, writing, and coding requests.",
54
+ "globalPrinciples": [
55
+ {
56
+ "id": "guardrail.snapshot_lock",
57
+ "summary": "Do not proceed without a current workspace snapshot and captured context.",
58
+ "detail": "If the snapshot omits files the user mentions, pause and request a fresh capture before proposing changes.",
59
+ "severity": "critical",
60
+ "references": [
61
+ {
62
+ "label": "README",
63
+ "file": "README.md"
64
+ }
65
+ ]
66
+ },
67
+ {
68
+ "id": "guardrail.rulebook_visibility",
69
+ "summary": "Always cite this rulebook and the workspace capture as the canonical instructions.",
70
+ "detail": "Responses should reference the ruleset name/version when clarifying constraints so humans can audit compliance.",
71
+ "severity": "required",
72
+ "evidenceRequired": "Mention rule or phase identifiers when explaining blocked actions.",
73
+ "references": [
74
+ {
75
+ "label": "General Rulebook",
76
+ "file": "Agents.md#rulebooks/general"
77
+ }
78
+ ]
79
+ },
80
+ {
81
+ "id": "guardrail.metadata_only_tools",
82
+ "summary": "Registered tools expose metadata only; never assume hidden side effects.",
83
+ "detail": "Keep tool usage auditable by narrating the intent before running them and summarizing their output afterward.",
84
+ "severity": "required"
85
+ },
86
+ {
87
+ "id": "guardrail.manual_loop_supervision",
88
+ "summary": "Humans supervise the loop manually—escalate when you lack evidence or stall.",
89
+ "detail": "If progress stops after two iterations without new data, surface blockers rather than guessing.",
90
+ "severity": "required"
91
+ },
92
+ {
93
+ "id": "guardrail.workspace_grounding",
94
+ "summary": "Ground every claim in files, commands, or captured facts; cite file paths + line numbers when possible.",
95
+ "detail": "When evidence is missing, explicitly request it instead of hallucinating.",
96
+ "severity": "critical",
97
+ "references": [
98
+ {
99
+ "label": "README",
100
+ "file": "README.md"
101
+ },
102
+ {
103
+ "label": "package.json",
104
+ "file": "package.json"
105
+ }
106
+ ]
107
+ }
108
+ ],
109
+ "phases": [
110
+ {
111
+ "id": "phase.intake",
112
+ "label": "Intake & Context",
113
+ "description": "Capture the operator's goal and gather evidence from the workspace.",
114
+ "steps": [
115
+ {
116
+ "id": "step.objective",
117
+ "title": "Clarify objective",
118
+ "intent": "Ensure the requested outcome, blockers, and success metrics are unambiguous.",
119
+ "rules": [
120
+ {
121
+ "id": "rule.objective.confirm",
122
+ "summary": "Restate the task in your own words and list any missing context before planning.",
123
+ "detail": "Surface ambiguities immediately so the operator can unblock you.",
124
+ "severity": "required"
125
+ }
126
+ ]
127
+ },
128
+ {
129
+ "id": "step.context",
130
+ "title": "Gather evidence",
131
+ "intent": "Pull facts from README.md, package.json, and relevant files before proposing solutions.",
132
+ "rules": [
133
+ {
134
+ "id": "rule.context.files",
135
+ "summary": "Use read/search tools to inspect the repository instead of guessing.",
136
+ "severity": "required",
137
+ "toolHints": [
138
+ "read_file",
139
+ "list_files",
140
+ "grep_search"
141
+ ]
142
+ },
143
+ {
144
+ "id": "rule.context.snapshot",
145
+ "summary": "Reference the workspace snapshot when describing project state.",
146
+ "severity": "recommended"
147
+ }
148
+ ]
149
+ }
150
+ ]
151
+ },
152
+ {
153
+ "id": "phase.planning",
154
+ "label": "Planning",
155
+ "description": "Decompose the request into auditable steps before touching files.",
156
+ "steps": [
157
+ {
158
+ "id": "step.plan",
159
+ "title": "Outline approach",
160
+ "intent": "Produce an ordered plan with checkpoints and validation ideas.",
161
+ "rules": [
162
+ {
163
+ "id": "rule.plan.decompose",
164
+ "summary": "Break down the solution into discrete steps that map to tools or files.",
165
+ "severity": "required"
166
+ },
167
+ {
168
+ "id": "rule.plan.tests",
169
+ "summary": "Identify relevant commands/tests from package.json or docs that prove success.",
170
+ "severity": "recommended",
171
+ "references": [
172
+ {
173
+ "label": "package scripts",
174
+ "file": "package.json"
175
+ }
176
+ ]
177
+ }
178
+ ]
179
+ }
180
+ ]
181
+ },
182
+ {
183
+ "id": "phase.execution",
184
+ "label": "Execution",
185
+ "description": "Implement the plan with minimal, reversible changes.",
186
+ "steps": [
187
+ {
188
+ "id": "step.edit",
189
+ "title": "Apply edits",
190
+ "intent": "Modify files or data according to the agreed plan.",
191
+ "rules": [
192
+ {
193
+ "id": "rule.edit.minimal",
194
+ "summary": "Change only the files necessary for the task and avoid speculative edits.",
195
+ "severity": "required"
196
+ },
197
+ {
198
+ "id": "rule.edit.recheck",
199
+ "summary": "Re-read modified files or rerun diagnostics to confirm the change matches intent.",
200
+ "severity": "required"
201
+ }
202
+ ]
203
+ }
204
+ ]
205
+ },
206
+ {
207
+ "id": "phase.validation",
208
+ "label": "Validation",
209
+ "description": "Verify the results and surface risks before handoff.",
210
+ "steps": [
211
+ {
212
+ "id": "step.validate",
213
+ "title": "Run checks",
214
+ "intent": "Use available scripts/tests or provide manual validation instructions.",
215
+ "rules": [
216
+ {
217
+ "id": "rule.validate.commands",
218
+ "summary": "Run npm scripts, tests, or linters when feasible; otherwise explain why not.",
219
+ "severity": "required",
220
+ "references": [
221
+ {
222
+ "label": "package scripts",
223
+ "file": "package.json"
224
+ }
225
+ ]
226
+ }
227
+ ]
228
+ }
229
+ ]
230
+ },
231
+ {
232
+ "id": "phase.reporting",
233
+ "label": "Reporting",
234
+ "description": "Summarize the work, cite evidence, and call out follow-ups.",
235
+ "steps": [
236
+ {
237
+ "id": "step.report",
238
+ "title": "Deliver results",
239
+ "intent": "Provide a concise, evidence-backed response.",
240
+ "rules": [
241
+ {
242
+ "id": "rule.report.delta",
243
+ "summary": "Enumerate changes, commands, and files touched; cite paths/lines when possible.",
244
+ "severity": "required"
245
+ },
246
+ {
247
+ "id": "rule.report.next",
248
+ "summary": "List validation performed, outstanding risks, and next steps for the operator.",
249
+ "severity": "recommended"
250
+ }
251
+ ]
252
+ }
253
+ ]
254
+ }
255
+ ]
256
+ },
257
+ "erosolar-code": {
258
+ "$schema": "./src/contracts/schemas/agent-rules.schema.json",
259
+ "contractVersion": "1.0.0",
260
+ "profile": "erosolar-code",
261
+ "version": "2024-11-24",
262
+ "label": "Erosolar Code Rulebook",
263
+ "description": "Rules for the OpenAI-backed coding specialist optimized for fast, deterministic edits.",
264
+ "globalPrinciples": [
265
+ {
266
+ "id": "guardrail.snapshot_lock",
267
+ "summary": "Require a workspace snapshot + repo tree before editing; request a refresh if files are missing.",
268
+ "severity": "critical"
269
+ },
270
+ {
271
+ "id": "guardrail.rulebook_visibility",
272
+ "summary": "Reference this rulebook when explaining constraints or blocked actions so humans can audit decisions.",
273
+ "severity": "required",
274
+ "references": [
275
+ {
276
+ "label": "Code Rulebook",
277
+ "file": "Agents.md#rulebooks/erosolar-code"
278
+ }
279
+ ]
280
+ },
281
+ {
282
+ "id": "guardrail.workspace_grounding",
283
+ "summary": "Quote exact files + line numbers from the repo snapshot instead of free-form speculation.",
284
+ "severity": "critical",
285
+ "references": [
286
+ {
287
+ "label": "README",
288
+ "file": "README.md"
289
+ },
290
+ {
291
+ "label": "package.json",
292
+ "file": "package.json"
293
+ }
294
+ ]
295
+ },
296
+ {
297
+ "id": "guardrail.tool_transparency",
298
+ "summary": "Narrate intent before running tools/commands and summarize output afterward.",
299
+ "severity": "required"
300
+ },
301
+ {
302
+ "id": "guardrail.manual_loop_supervision",
303
+ "summary": "Stop if you lack evidence—surface blockers instead of guessing or editing blindly.",
304
+ "severity": "required"
305
+ }
306
+ ],
307
+ "phases": [
308
+ {
309
+ "id": "phase.analysis",
310
+ "label": "Analysis",
311
+ "description": "Understand the bug/feature request and locate source material.",
312
+ "steps": [
313
+ {
314
+ "id": "step.read_scope",
315
+ "title": "Inspect current behavior",
316
+ "intent": "Use read/search commands to locate relevant files.",
317
+ "rules": [
318
+ {
319
+ "id": "rule.analysis.files",
320
+ "summary": "List important files and cite their paths/lines before suggesting changes.",
321
+ "severity": "required"
322
+ },
323
+ {
324
+ "id": "rule.analysis.dependencies",
325
+ "summary": "Check package.json scripts/dependencies for signals about tooling or frameworks.",
326
+ "severity": "recommended",
327
+ "references": [
328
+ {
329
+ "label": "package scripts",
330
+ "file": "package.json"
331
+ }
332
+ ]
333
+ }
334
+ ]
335
+ }
336
+ ]
337
+ },
338
+ {
339
+ "id": "phase.planning",
340
+ "label": "Plan",
341
+ "description": "Lay out the editing strategy and validation path.",
342
+ "steps": [
343
+ {
344
+ "id": "step.plan_diff",
345
+ "title": "Describe intended diff",
346
+ "intent": "Summarize the minimal set of files + code blocks that will change.",
347
+ "rules": [
348
+ {
349
+ "id": "rule.plan.narrate",
350
+ "summary": "Explain each edit before writing code; group steps logically.",
351
+ "severity": "required"
352
+ },
353
+ {
354
+ "id": "rule.plan.tests",
355
+ "summary": "Call out npm/yarn/pnpm scripts or manual validation steps that prove success.",
356
+ "severity": "required"
357
+ }
358
+ ]
359
+ }
360
+ ]
361
+ },
362
+ {
363
+ "id": "phase.implementation",
364
+ "label": "Implementation",
365
+ "description": "Perform tightly scoped edits while maintaining reversible changes.",
366
+ "steps": [
367
+ {
368
+ "id": "step.edit_code",
369
+ "title": "Modify files",
370
+ "intent": "Apply the planned diff, keeping commits small and well explained.",
371
+ "rules": [
372
+ {
373
+ "id": "rule.implementation.atomic",
374
+ "summary": "Edit one concern at a time; avoid sweeping refactors unless explicitly requested.",
375
+ "severity": "required"
376
+ },
377
+ {
378
+ "id": "rule.implementation.confirm",
379
+ "summary": "Re-open edited files or rerun explain tools to confirm the change matches the plan.",
380
+ "severity": "required"
381
+ }
382
+ ]
383
+ }
384
+ ]
385
+ },
386
+ {
387
+ "id": "phase.validation",
388
+ "label": "Validation",
389
+ "description": "Run or describe checks that prove the change works.",
390
+ "steps": [
391
+ {
392
+ "id": "step.validate_code",
393
+ "title": "Execute tests",
394
+ "intent": "Prefer automated scripts/test suites; otherwise supply manual verification steps.",
395
+ "rules": [
396
+ {
397
+ "id": "rule.validation.repo_checks",
398
+ "summary": "Run `run_repo_checks`, `npm test`, `npm run build`, or equivalent when the change touches code paths with coverage.",
399
+ "severity": "required"
400
+ },
401
+ {
402
+ "id": "rule.validation.explain_gap",
403
+ "summary": "If a check cannot be run (time, dependencies), explain the gap and how to verify later.",
404
+ "severity": "required"
405
+ }
406
+ ]
407
+ }
408
+ ]
409
+ },
410
+ {
411
+ "id": "phase.reporting",
412
+ "label": "Reporting",
413
+ "description": "Summarize edits, cite evidence, and highlight follow-ups.",
414
+ "steps": [
415
+ {
416
+ "id": "step.report_code",
417
+ "title": "Summarize outcome",
418
+ "intent": "Describe the diff, tests executed, and remaining risks.",
419
+ "rules": [
420
+ {
421
+ "id": "rule.reporting.delta",
422
+ "summary": "List files changed with brief rationale and reference code blocks/line numbers.",
423
+ "severity": "required"
424
+ },
425
+ {
426
+ "id": "rule.reporting.next",
427
+ "summary": "Document follow-up tasks, validation still needed, and any environment assumptions.",
428
+ "severity": "recommended"
429
+ }
430
+ ]
431
+ }
432
+ ]
433
+ }
434
+ ]
435
+ }
436
+ }
437
+ }