erosolar-cli 1.5.2 → 1.5.4

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 (346) hide show
  1. package/config/security-deployment.json +54 -0
  2. package/dist/bin/adapters/node/index.js +33 -0
  3. package/dist/bin/adapters/types.js +1 -0
  4. package/dist/bin/alpha-zero/agentWrapper.js +165 -0
  5. package/dist/bin/alpha-zero/codeEvaluator.js +272 -0
  6. package/dist/bin/alpha-zero/competitiveRunner.js +219 -0
  7. package/dist/bin/alpha-zero/index.js +98 -0
  8. package/dist/bin/alpha-zero/introspection.js +298 -0
  9. package/dist/bin/alpha-zero/metricsTracker.js +207 -0
  10. package/dist/bin/alpha-zero/security/core.js +269 -0
  11. package/dist/bin/alpha-zero/security/google.js +308 -0
  12. package/dist/bin/alpha-zero/security/googleLoader.js +40 -0
  13. package/dist/bin/alpha-zero/security/index.js +31 -0
  14. package/dist/bin/alpha-zero/security/simulation.js +274 -0
  15. package/dist/bin/alpha-zero/selfModification.js +231 -0
  16. package/dist/bin/alpha-zero/types.js +30 -0
  17. package/dist/bin/bin/erosolar-optimized.js +205 -0
  18. package/dist/bin/capabilities/agentSpawningCapability.js +116 -0
  19. package/dist/bin/capabilities/bashCapability.js +22 -0
  20. package/dist/bin/capabilities/cloudCapability.js +36 -0
  21. package/dist/bin/capabilities/codeAnalysisCapability.js +22 -0
  22. package/dist/bin/capabilities/codeQualityCapability.js +23 -0
  23. package/dist/bin/capabilities/dependencySecurityCapability.js +22 -0
  24. package/dist/bin/capabilities/devCapability.js +22 -0
  25. package/dist/bin/capabilities/editCapability.js +28 -0
  26. package/dist/bin/capabilities/emailCapability.js +20 -0
  27. package/dist/bin/capabilities/enhancedGitCapability.js +221 -0
  28. package/dist/bin/capabilities/filesystemCapability.js +22 -0
  29. package/dist/bin/capabilities/globCapability.js +28 -0
  30. package/dist/bin/capabilities/interactionCapability.js +20 -0
  31. package/dist/bin/capabilities/learnCapability.js +22 -0
  32. package/dist/bin/capabilities/mcpCapability.js +20 -0
  33. package/dist/bin/capabilities/notebookCapability.js +28 -0
  34. package/dist/bin/capabilities/planningCapability.js +27 -0
  35. package/dist/bin/capabilities/refactoringCapability.js +23 -0
  36. package/dist/bin/capabilities/repoChecksCapability.js +22 -0
  37. package/dist/bin/capabilities/searchCapability.js +22 -0
  38. package/dist/bin/capabilities/skillCapability.js +76 -0
  39. package/dist/bin/capabilities/taskManagementCapability.js +20 -0
  40. package/dist/bin/capabilities/testingCapability.js +23 -0
  41. package/dist/bin/capabilities/toolManifest.js +159 -0
  42. package/dist/bin/capabilities/toolRegistry.js +114 -0
  43. package/dist/bin/capabilities/webCapability.js +20 -0
  44. package/dist/bin/config.js +139 -0
  45. package/dist/bin/contracts/v1/agent.js +7 -0
  46. package/dist/bin/contracts/v1/agentProfileManifest.js +8 -0
  47. package/dist/bin/contracts/v1/agentRules.js +9 -0
  48. package/dist/bin/contracts/v1/toolAccess.js +8 -0
  49. package/dist/bin/core/agent.js +362 -0
  50. package/dist/bin/core/agentProfileManifest.js +187 -0
  51. package/dist/bin/core/agentProfiles.js +34 -0
  52. package/dist/bin/core/agentRulebook.js +135 -0
  53. package/dist/bin/core/agentSchemaLoader.js +233 -0
  54. package/dist/bin/core/contextManager.js +412 -0
  55. package/dist/bin/core/contextWindow.js +122 -0
  56. package/dist/bin/core/customCommands.js +80 -0
  57. package/dist/bin/core/errors/apiKeyErrors.js +114 -0
  58. package/dist/bin/core/errors/errorTypes.js +340 -0
  59. package/dist/bin/core/errors/safetyValidator.js +304 -0
  60. package/dist/bin/core/errors.js +32 -0
  61. package/dist/bin/core/modelDiscovery.js +755 -0
  62. package/dist/bin/core/preferences.js +224 -0
  63. package/dist/bin/core/schemaValidator.js +92 -0
  64. package/dist/bin/core/secretStore.js +199 -0
  65. package/dist/bin/core/sessionStore.js +187 -0
  66. package/dist/bin/core/toolRuntime.js +290 -0
  67. package/dist/bin/core/types.js +1 -0
  68. package/dist/bin/erosolar-optimized.d.ts +12 -0
  69. package/dist/bin/erosolar-optimized.d.ts.map +1 -0
  70. package/dist/bin/erosolar-optimized.js +239 -0
  71. package/dist/bin/erosolar-optimized.js.map +1 -0
  72. package/dist/bin/erosolar.js +14 -0
  73. package/dist/bin/erosolar.js.map +1 -1
  74. package/dist/bin/headless/headlessApp.js +172 -0
  75. package/dist/bin/mcp/config.js +202 -0
  76. package/dist/bin/mcp/stdioClient.js +172 -0
  77. package/dist/bin/mcp/toolBridge.js +104 -0
  78. package/dist/bin/mcp/types.js +1 -0
  79. package/dist/bin/plugins/index.js +113 -0
  80. package/dist/bin/plugins/providers/anthropic/index.js +25 -0
  81. package/dist/bin/plugins/providers/deepseek/index.js +24 -0
  82. package/dist/bin/plugins/providers/google/index.js +26 -0
  83. package/dist/bin/plugins/providers/index.js +19 -0
  84. package/dist/bin/plugins/providers/ollama/index.js +59 -0
  85. package/dist/bin/plugins/providers/openai/index.js +26 -0
  86. package/dist/bin/plugins/providers/xai/index.js +24 -0
  87. package/dist/bin/plugins/tools/agentSpawning/agentSpawningPlugin.js +8 -0
  88. package/dist/bin/plugins/tools/bash/localBashPlugin.js +13 -0
  89. package/dist/bin/plugins/tools/checks/localRepoChecksPlugin.js +13 -0
  90. package/dist/bin/plugins/tools/cloud/cloudPlugin.js +13 -0
  91. package/dist/bin/plugins/tools/codeAnalysis/codeAnalysisPlugin.js +13 -0
  92. package/dist/bin/plugins/tools/codeQuality/codeQualityPlugin.js +13 -0
  93. package/dist/bin/plugins/tools/dependency/dependencyPlugin.js +11 -0
  94. package/dist/bin/plugins/tools/development/devPlugin.js +13 -0
  95. package/dist/bin/plugins/tools/edit/editPlugin.js +14 -0
  96. package/dist/bin/plugins/tools/email/emailPlugin.js +11 -0
  97. package/dist/bin/plugins/tools/enhancedGit/enhancedGitPlugin.js +8 -0
  98. package/dist/bin/plugins/tools/filesystem/localFilesystemPlugin.js +13 -0
  99. package/dist/bin/plugins/tools/glob/globPlugin.js +14 -0
  100. package/dist/bin/plugins/tools/index.js +2 -0
  101. package/dist/bin/plugins/tools/interaction/interactionPlugin.js +11 -0
  102. package/dist/bin/plugins/tools/learn/learnPlugin.js +13 -0
  103. package/dist/bin/plugins/tools/mcp/mcpPlugin.js +8 -0
  104. package/dist/bin/plugins/tools/nodeDefaults.js +56 -0
  105. package/dist/bin/plugins/tools/notebook/notebookPlugin.js +14 -0
  106. package/dist/bin/plugins/tools/planning/planningPlugin.js +14 -0
  107. package/dist/bin/plugins/tools/refactoring/refactoringPlugin.js +11 -0
  108. package/dist/bin/plugins/tools/registry.js +57 -0
  109. package/dist/bin/plugins/tools/search/localSearchPlugin.js +13 -0
  110. package/dist/bin/plugins/tools/skills/skillPlugin.js +8 -0
  111. package/dist/bin/plugins/tools/taskManagement/taskManagementPlugin.js +11 -0
  112. package/dist/bin/plugins/tools/testing/testingPlugin.js +11 -0
  113. package/dist/bin/plugins/tools/web/webPlugin.js +11 -0
  114. package/dist/bin/providers/anthropicProvider.js +329 -0
  115. package/dist/bin/providers/googleProvider.js +203 -0
  116. package/dist/bin/providers/openaiChatCompletionsProvider.js +208 -0
  117. package/dist/bin/providers/openaiResponsesProvider.js +249 -0
  118. package/dist/bin/providers/providerFactory.js +24 -0
  119. package/dist/bin/runtime/agentController.js +321 -0
  120. package/dist/bin/runtime/agentHost.js +153 -0
  121. package/dist/bin/runtime/agentSession.js +195 -0
  122. package/dist/bin/runtime/node.js +10 -0
  123. package/dist/bin/runtime/universal.js +28 -0
  124. package/dist/bin/shell/bracketedPasteManager.js +350 -0
  125. package/dist/bin/shell/fileChangeTracker.js +65 -0
  126. package/dist/bin/shell/interactiveShell.js +2908 -0
  127. package/dist/bin/shell/liveStatus.js +78 -0
  128. package/dist/bin/shell/shellApp.js +290 -0
  129. package/dist/bin/shell/systemPrompt.js +60 -0
  130. package/dist/bin/shell/updateManager.js +108 -0
  131. package/dist/bin/skills/skillRepository.js +236 -0
  132. package/dist/bin/skills/types.js +1 -0
  133. package/dist/bin/subagents/taskRunner.js +269 -0
  134. package/dist/bin/tools/backgroundBashTools.js +211 -0
  135. package/dist/bin/tools/bashTools.js +159 -0
  136. package/dist/bin/tools/cloudTools.js +864 -0
  137. package/dist/bin/tools/codeAnalysisTools.js +641 -0
  138. package/dist/bin/tools/codeQualityTools.js +294 -0
  139. package/dist/bin/tools/dependencyTools.js +282 -0
  140. package/dist/bin/tools/devTools.js +238 -0
  141. package/dist/bin/tools/diffUtils.js +137 -0
  142. package/dist/bin/tools/editTools.js +134 -0
  143. package/dist/bin/tools/emailTools.js +448 -0
  144. package/dist/bin/tools/fileTools.js +282 -0
  145. package/dist/bin/tools/globTools.js +173 -0
  146. package/dist/bin/tools/grepTools.js +332 -0
  147. package/dist/bin/tools/interactionTools.js +170 -0
  148. package/dist/bin/tools/learnTools.js +1818 -0
  149. package/dist/bin/tools/notebookEditTools.js +196 -0
  150. package/dist/bin/tools/planningTools.js +46 -0
  151. package/dist/bin/tools/refactoringTools.js +293 -0
  152. package/dist/bin/tools/repoChecksTools.js +160 -0
  153. package/dist/bin/tools/searchTools.js +206 -0
  154. package/dist/bin/tools/skillTools.js +177 -0
  155. package/dist/bin/tools/taskManagementTools.js +156 -0
  156. package/dist/bin/tools/testingTools.js +232 -0
  157. package/dist/bin/tools/webTools.js +480 -0
  158. package/dist/bin/ui/ShellUIAdapter.js +459 -0
  159. package/dist/bin/ui/UnifiedUIController.js +183 -0
  160. package/dist/bin/ui/animation/AnimationScheduler.js +430 -0
  161. package/dist/bin/ui/codeHighlighter.js +854 -0
  162. package/dist/bin/ui/designSystem.js +121 -0
  163. package/dist/bin/ui/display.js +1222 -0
  164. package/dist/bin/ui/interrupts/InterruptManager.js +437 -0
  165. package/dist/bin/ui/layout.js +139 -0
  166. package/dist/bin/ui/orchestration/StatusOrchestrator.js +403 -0
  167. package/dist/bin/ui/outputMode.js +38 -0
  168. package/dist/bin/ui/persistentPrompt.js +183 -0
  169. package/dist/bin/ui/richText.js +338 -0
  170. package/dist/bin/ui/shortcutsHelp.js +87 -0
  171. package/dist/bin/ui/telemetry/UITelemetry.js +443 -0
  172. package/dist/bin/ui/textHighlighter.js +210 -0
  173. package/dist/bin/ui/theme.js +116 -0
  174. package/dist/bin/ui/toolDisplay.js +423 -0
  175. package/dist/bin/ui/toolDisplayAdapter.js +357 -0
  176. package/dist/bin/workspace.js +106 -0
  177. package/dist/bin/workspace.validator.js +213 -0
  178. package/dist/capabilities/cloudCapability.d.ts +13 -0
  179. package/dist/capabilities/cloudCapability.d.ts.map +1 -0
  180. package/dist/capabilities/cloudCapability.js +38 -0
  181. package/dist/capabilities/cloudCapability.js.map +1 -0
  182. package/dist/capabilities/index.d.ts +1 -0
  183. package/dist/capabilities/index.d.ts.map +1 -1
  184. package/dist/capabilities/index.js +1 -0
  185. package/dist/capabilities/index.js.map +1 -1
  186. package/dist/capabilities/offensiveSecurityCapability.d.ts +26 -0
  187. package/dist/capabilities/offensiveSecurityCapability.d.ts.map +1 -0
  188. package/dist/capabilities/offensiveSecurityCapability.js +58 -0
  189. package/dist/capabilities/offensiveSecurityCapability.js.map +1 -0
  190. package/dist/capabilities/realSecurityCapability.d.ts +26 -0
  191. package/dist/capabilities/realSecurityCapability.d.ts.map +1 -0
  192. package/dist/capabilities/realSecurityCapability.js +53 -0
  193. package/dist/capabilities/realSecurityCapability.js.map +1 -0
  194. package/dist/capabilities/securityCapability.d.ts +32 -0
  195. package/dist/capabilities/securityCapability.d.ts.map +1 -0
  196. package/dist/capabilities/securityCapability.js +57 -0
  197. package/dist/capabilities/securityCapability.js.map +1 -0
  198. package/dist/capabilities/ultimateSecurityCapability.d.ts +42 -0
  199. package/dist/capabilities/ultimateSecurityCapability.d.ts.map +1 -0
  200. package/dist/capabilities/ultimateSecurityCapability.js +96 -0
  201. package/dist/capabilities/ultimateSecurityCapability.js.map +1 -0
  202. package/dist/core/LazyLoader.d.ts +129 -0
  203. package/dist/core/LazyLoader.d.ts.map +1 -0
  204. package/dist/core/LazyLoader.js +240 -0
  205. package/dist/core/LazyLoader.js.map +1 -0
  206. package/dist/core/intelligenceTools.d.ts +19 -0
  207. package/dist/core/intelligenceTools.d.ts.map +1 -0
  208. package/dist/core/intelligenceTools.js +453 -0
  209. package/dist/core/intelligenceTools.js.map +1 -0
  210. package/dist/core/operationalTools.d.ts +19 -0
  211. package/dist/core/operationalTools.d.ts.map +1 -0
  212. package/dist/core/operationalTools.js +467 -0
  213. package/dist/core/operationalTools.js.map +1 -0
  214. package/dist/offensive/core/offensive-engine.d.ts +171 -0
  215. package/dist/offensive/core/offensive-engine.d.ts.map +1 -0
  216. package/dist/offensive/core/offensive-engine.js +345 -0
  217. package/dist/offensive/core/offensive-engine.js.map +1 -0
  218. package/dist/offensive/core/offensive-integration.d.ts +129 -0
  219. package/dist/offensive/core/offensive-integration.d.ts.map +1 -0
  220. package/dist/offensive/core/offensive-integration.js +364 -0
  221. package/dist/offensive/core/offensive-integration.js.map +1 -0
  222. package/dist/offensive/core/offensive-tools.d.ts +55 -0
  223. package/dist/offensive/core/offensive-tools.d.ts.map +1 -0
  224. package/dist/offensive/core/offensive-tools.js +438 -0
  225. package/dist/offensive/core/offensive-tools.js.map +1 -0
  226. package/dist/offensive/offensive-cli.d.ts +48 -0
  227. package/dist/offensive/offensive-cli.d.ts.map +1 -0
  228. package/dist/offensive/offensive-cli.js +233 -0
  229. package/dist/offensive/offensive-cli.js.map +1 -0
  230. package/dist/plugins/index.d.ts +1 -1
  231. package/dist/plugins/index.d.ts.map +1 -1
  232. package/dist/plugins/index.js +2 -0
  233. package/dist/plugins/index.js.map +1 -1
  234. package/dist/plugins/tools/cloud/cloudPlugin.d.ts +3 -0
  235. package/dist/plugins/tools/cloud/cloudPlugin.d.ts.map +1 -0
  236. package/dist/plugins/tools/cloud/cloudPlugin.js +14 -0
  237. package/dist/plugins/tools/cloud/cloudPlugin.js.map +1 -0
  238. package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -1
  239. package/dist/plugins/tools/nodeDefaults.js +2 -0
  240. package/dist/plugins/tools/nodeDefaults.js.map +1 -1
  241. package/dist/security/advanced-persistence-research.d.ts +92 -0
  242. package/dist/security/advanced-persistence-research.d.ts.map +1 -0
  243. package/dist/security/advanced-persistence-research.js +195 -0
  244. package/dist/security/advanced-persistence-research.js.map +1 -0
  245. package/dist/security/apt-simulation-cli.d.ts +57 -0
  246. package/dist/security/apt-simulation-cli.d.ts.map +1 -0
  247. package/dist/security/apt-simulation-cli.js +278 -0
  248. package/dist/security/apt-simulation-cli.js.map +1 -0
  249. package/dist/security/apt-simulation-engine-complete.d.ts +97 -0
  250. package/dist/security/apt-simulation-engine-complete.d.ts.map +1 -0
  251. package/dist/security/apt-simulation-engine-complete.js +441 -0
  252. package/dist/security/apt-simulation-engine-complete.js.map +1 -0
  253. package/dist/security/apt-simulation-engine.d.ts +97 -0
  254. package/dist/security/apt-simulation-engine.d.ts.map +1 -0
  255. package/dist/security/apt-simulation-engine.js +441 -0
  256. package/dist/security/apt-simulation-engine.js.map +1 -0
  257. package/dist/security/assessment/vulnerabilityAssessment.d.ts +104 -0
  258. package/dist/security/assessment/vulnerabilityAssessment.d.ts.map +1 -0
  259. package/dist/security/assessment/vulnerabilityAssessment.js +315 -0
  260. package/dist/security/assessment/vulnerabilityAssessment.js.map +1 -0
  261. package/dist/security/authorization/securityAuthorization.d.ts +88 -0
  262. package/dist/security/authorization/securityAuthorization.d.ts.map +1 -0
  263. package/dist/security/authorization/securityAuthorization.js +172 -0
  264. package/dist/security/authorization/securityAuthorization.js.map +1 -0
  265. package/dist/security/authorization.d.ts +45 -0
  266. package/dist/security/authorization.d.ts.map +1 -0
  267. package/dist/security/authorization.js +128 -0
  268. package/dist/security/authorization.js.map +1 -0
  269. package/dist/security/comprehensive-security-research.d.ts +84 -0
  270. package/dist/security/comprehensive-security-research.d.ts.map +1 -0
  271. package/dist/security/comprehensive-security-research.js +211 -0
  272. package/dist/security/comprehensive-security-research.js.map +1 -0
  273. package/dist/security/offensive/exploitationEngine.d.ts +54 -0
  274. package/dist/security/offensive/exploitationEngine.d.ts.map +1 -0
  275. package/dist/security/offensive/exploitationEngine.js +263 -0
  276. package/dist/security/offensive/exploitationEngine.js.map +1 -0
  277. package/dist/security/persistence-analyzer.d.ts +56 -0
  278. package/dist/security/persistence-analyzer.d.ts.map +1 -0
  279. package/dist/security/persistence-analyzer.js +187 -0
  280. package/dist/security/persistence-analyzer.js.map +1 -0
  281. package/dist/security/persistence-cli.d.ts +36 -0
  282. package/dist/security/persistence-cli.d.ts.map +1 -0
  283. package/dist/security/persistence-cli.js +160 -0
  284. package/dist/security/persistence-cli.js.map +1 -0
  285. package/dist/security/persistence-research.d.ts +100 -0
  286. package/dist/security/persistence-research.d.ts.map +1 -0
  287. package/dist/security/persistence-research.js +372 -0
  288. package/dist/security/persistence-research.js.map +1 -0
  289. package/dist/security/real/networkExploitation.d.ts +92 -0
  290. package/dist/security/real/networkExploitation.d.ts.map +1 -0
  291. package/dist/security/real/networkExploitation.js +316 -0
  292. package/dist/security/real/networkExploitation.js.map +1 -0
  293. package/dist/security/real/persistenceImplementation.d.ts +62 -0
  294. package/dist/security/real/persistenceImplementation.d.ts.map +1 -0
  295. package/dist/security/real/persistenceImplementation.js +323 -0
  296. package/dist/security/real/persistenceImplementation.js.map +1 -0
  297. package/dist/security/real/vulnerabilityScanner.d.ts +73 -0
  298. package/dist/security/real/vulnerabilityScanner.d.ts.map +1 -0
  299. package/dist/security/real/vulnerabilityScanner.js +341 -0
  300. package/dist/security/real/vulnerabilityScanner.js.map +1 -0
  301. package/dist/security/research/persistenceResearch.d.ts +97 -0
  302. package/dist/security/research/persistenceResearch.d.ts.map +1 -0
  303. package/dist/security/research/persistenceResearch.js +282 -0
  304. package/dist/security/research/persistenceResearch.js.map +1 -0
  305. package/dist/security/security-testing-framework.d.ts +120 -0
  306. package/dist/security/security-testing-framework.d.ts.map +1 -0
  307. package/dist/security/security-testing-framework.js +372 -0
  308. package/dist/security/security-testing-framework.js.map +1 -0
  309. package/dist/security/simulation/attackSimulation.d.ts +93 -0
  310. package/dist/security/simulation/attackSimulation.d.ts.map +1 -0
  311. package/dist/security/simulation/attackSimulation.js +341 -0
  312. package/dist/security/simulation/attackSimulation.js.map +1 -0
  313. package/dist/shell/bracketedPasteManager.d.ts +76 -0
  314. package/dist/shell/bracketedPasteManager.d.ts.map +1 -1
  315. package/dist/shell/bracketedPasteManager.js +267 -9
  316. package/dist/shell/bracketedPasteManager.js.map +1 -1
  317. package/dist/shell/interactiveShell.d.ts +34 -1
  318. package/dist/shell/interactiveShell.d.ts.map +1 -1
  319. package/dist/shell/interactiveShell.js +304 -24
  320. package/dist/shell/interactiveShell.js.map +1 -1
  321. package/dist/shell/taskCompletionDetector.d.ts +101 -0
  322. package/dist/shell/taskCompletionDetector.d.ts.map +1 -0
  323. package/dist/shell/taskCompletionDetector.js +343 -0
  324. package/dist/shell/taskCompletionDetector.js.map +1 -0
  325. package/dist/tools/cloudTools.d.ts +57 -0
  326. package/dist/tools/cloudTools.d.ts.map +1 -0
  327. package/dist/tools/cloudTools.js +865 -0
  328. package/dist/tools/cloudTools.js.map +1 -0
  329. package/dist/tools/enhancedSecurityTools.d.ts +19 -0
  330. package/dist/tools/enhancedSecurityTools.d.ts.map +1 -0
  331. package/dist/tools/enhancedSecurityTools.js +215 -0
  332. package/dist/tools/enhancedSecurityTools.js.map +1 -0
  333. package/dist/tools/offensiveSecurityTools.d.ts +16 -0
  334. package/dist/tools/offensiveSecurityTools.d.ts.map +1 -0
  335. package/dist/tools/offensiveSecurityTools.js +285 -0
  336. package/dist/tools/offensiveSecurityTools.js.map +1 -0
  337. package/dist/tools/realSecurityTools.d.ts +18 -0
  338. package/dist/tools/realSecurityTools.d.ts.map +1 -0
  339. package/dist/tools/realSecurityTools.js +468 -0
  340. package/dist/tools/realSecurityTools.js.map +1 -0
  341. package/dist/tools/securityTools.d.ts +20 -0
  342. package/dist/tools/securityTools.d.ts.map +1 -0
  343. package/dist/tools/securityTools.js +449 -0
  344. package/dist/tools/securityTools.js.map +1 -0
  345. package/package.json +27 -12
  346. package/scripts/deploy-security-capabilities.js +178 -0
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Plugin System - Root Index
3
+ *
4
+ * Aggregates all plugin functionality for easy import.
5
+ *
6
+ * Principal Investigator: Bo Shang
7
+ * Framework: erosolar-cli
8
+ */
9
+ // Re-export tool plugin system
10
+ export { registerToolPlugin, unregisterToolPlugin, listRegisteredToolPlugins, instantiateToolPlugins, } from './tools/index.js';
11
+ export { registerDefaultNodeToolPlugins } from './tools/nodeDefaults.js';
12
+ // Track loaded plugins
13
+ const loadedPlugins = new Map();
14
+ /**
15
+ * Register a plugin as loaded
16
+ */
17
+ export function markPluginLoaded(plugin) {
18
+ loadedPlugins.set(plugin.id, plugin);
19
+ }
20
+ /**
21
+ * Get a loaded plugin by ID
22
+ */
23
+ export function getLoadedPlugin(id) {
24
+ return loadedPlugins.get(id);
25
+ }
26
+ /**
27
+ * List all loaded plugins
28
+ */
29
+ export function listLoadedPlugins() {
30
+ return Array.from(loadedPlugins.values());
31
+ }
32
+ /**
33
+ * List available plugins (combines loaded + builtin)
34
+ */
35
+ export function listAvailablePlugins() {
36
+ const available = new Set();
37
+ for (const id of BUILTIN_PLUGINS) {
38
+ available.add(id);
39
+ }
40
+ for (const id of loadedPlugins.keys()) {
41
+ available.add(id);
42
+ }
43
+ return Array.from(available);
44
+ }
45
+ /**
46
+ * Get all plugin tool suites
47
+ */
48
+ export function getAllPluginToolSuites() {
49
+ return listLoadedPlugins().filter((p) => p.enabled);
50
+ }
51
+ /**
52
+ * Load a plugin by ID
53
+ */
54
+ export async function loadPlugin(id) {
55
+ // Check if already loaded
56
+ const existing = loadedPlugins.get(id);
57
+ if (existing) {
58
+ return existing;
59
+ }
60
+ // Check if it's a builtin plugin
61
+ if (!BUILTIN_PLUGINS.includes(id)) {
62
+ return null;
63
+ }
64
+ // Create a loaded plugin entry
65
+ const plugin = {
66
+ id,
67
+ name: id.replace(/-/g, ' ').replace(/\b\w/g, (c) => c.toUpperCase()),
68
+ version: '1.0.0',
69
+ enabled: true,
70
+ };
71
+ loadedPlugins.set(id, plugin);
72
+ return plugin;
73
+ }
74
+ /**
75
+ * Get plugin IDs from command line flags
76
+ */
77
+ export function getPluginIdsFromFlags(flags) {
78
+ const ids = [];
79
+ for (const [flag, enabled] of Object.entries(flags)) {
80
+ if (enabled && BUILTIN_PLUGINS.includes(flag)) {
81
+ ids.push(flag);
82
+ }
83
+ }
84
+ return ids;
85
+ }
86
+ /**
87
+ * Builtin plugin identifiers
88
+ */
89
+ export const BUILTIN_PLUGINS = [
90
+ 'local-filesystem',
91
+ 'local-bash',
92
+ 'local-search',
93
+ 'edit',
94
+ 'glob',
95
+ 'web',
96
+ 'mcp',
97
+ 'code-analysis',
98
+ 'code-quality',
99
+ 'dependency',
100
+ 'development',
101
+ 'enhanced-git',
102
+ 'interaction',
103
+ 'notebook',
104
+ 'planning',
105
+ 'refactoring',
106
+ 'skills',
107
+ 'task-management',
108
+ 'testing',
109
+ 'agent-spawning',
110
+ 'local-repo-checks',
111
+ 'cloud',
112
+ 'email',
113
+ ];
@@ -0,0 +1,25 @@
1
+ import { AnthropicMessagesProvider } from '../../../providers/anthropicProvider.js';
2
+ import { registerProvider } from '../../../providers/providerFactory.js';
3
+ let registered = false;
4
+ export function registerAnthropicProviderPlugin() {
5
+ if (registered) {
6
+ return;
7
+ }
8
+ registerProvider('anthropic', (config) => {
9
+ const options = {
10
+ apiKey: requireEnv('ANTHROPIC_API_KEY'),
11
+ model: config.model,
12
+ ...(typeof config.temperature === 'number' ? { temperature: config.temperature } : {}),
13
+ ...(typeof config.maxTokens === 'number' ? { maxTokens: config.maxTokens } : {}),
14
+ };
15
+ return new AnthropicMessagesProvider(options);
16
+ });
17
+ registered = true;
18
+ }
19
+ function requireEnv(name) {
20
+ const value = process.env[name];
21
+ if (!value) {
22
+ throw new Error(`Missing required environment variable ${name}.`);
23
+ }
24
+ return value;
25
+ }
@@ -0,0 +1,24 @@
1
+ import { OpenAIChatCompletionsProvider } from '../../../providers/openaiChatCompletionsProvider.js';
2
+ import { registerProvider } from '../../../providers/providerFactory.js';
3
+ let registered = false;
4
+ export function registerDeepSeekProviderPlugin() {
5
+ if (registered) {
6
+ return;
7
+ }
8
+ registerProvider('deepseek', (config) => {
9
+ return new OpenAIChatCompletionsProvider({
10
+ apiKey: requireEnv('DEEPSEEK_API_KEY'),
11
+ model: config.model,
12
+ baseURL: 'https://api.deepseek.com',
13
+ providerId: 'deepseek',
14
+ });
15
+ });
16
+ registered = true;
17
+ }
18
+ function requireEnv(name) {
19
+ const value = process.env[name];
20
+ if (!value) {
21
+ throw new Error(`Missing required environment variable ${name}.`);
22
+ }
23
+ return value;
24
+ }
@@ -0,0 +1,26 @@
1
+ import { GoogleGenAIProvider } from '../../../providers/googleProvider.js';
2
+ import { registerProvider } from '../../../providers/providerFactory.js';
3
+ let registered = false;
4
+ export function registerGoogleProviderPlugin() {
5
+ if (registered) {
6
+ return;
7
+ }
8
+ registerProvider('google', (config) => {
9
+ const options = {
10
+ apiKey: requireEnv('GEMINI_API_KEY'),
11
+ model: config.model,
12
+ providerId: 'google',
13
+ ...(typeof config.temperature === 'number' ? { temperature: config.temperature } : {}),
14
+ ...(typeof config.maxTokens === 'number' ? { maxOutputTokens: config.maxTokens } : {}),
15
+ };
16
+ return new GoogleGenAIProvider(options);
17
+ });
18
+ registered = true;
19
+ }
20
+ function requireEnv(name) {
21
+ const value = process.env[name];
22
+ if (!value) {
23
+ throw new Error(`Missing required environment variable ${name}.`);
24
+ }
25
+ return value;
26
+ }
@@ -0,0 +1,19 @@
1
+ import { registerOpenAIProviderPlugin } from './openai/index.js';
2
+ import { registerAnthropicProviderPlugin } from './anthropic/index.js';
3
+ import { registerDeepSeekProviderPlugin } from './deepseek/index.js';
4
+ import { registerXaiProviderPlugin } from './xai/index.js';
5
+ import { registerGoogleProviderPlugin } from './google/index.js';
6
+ import { registerOllamaProviderPlugin } from './ollama/index.js';
7
+ let defaultsRegistered = false;
8
+ export function registerDefaultProviderPlugins() {
9
+ if (defaultsRegistered) {
10
+ return;
11
+ }
12
+ registerOpenAIProviderPlugin();
13
+ registerAnthropicProviderPlugin();
14
+ registerDeepSeekProviderPlugin();
15
+ registerXaiProviderPlugin();
16
+ registerGoogleProviderPlugin();
17
+ registerOllamaProviderPlugin();
18
+ defaultsRegistered = true;
19
+ }
@@ -0,0 +1,59 @@
1
+ import { OpenAIChatCompletionsProvider } from '../../../providers/openaiChatCompletionsProvider.js';
2
+ import { registerProvider } from '../../../providers/providerFactory.js';
3
+ let registered = false;
4
+ /**
5
+ * Register Ollama provider plugin.
6
+ *
7
+ * Ollama provides an OpenAI-compatible API, so we can reuse the OpenAI provider
8
+ * with a custom base URL. By default, Ollama runs on http://localhost:11434.
9
+ */
10
+ export function registerOllamaProviderPlugin() {
11
+ if (registered) {
12
+ return;
13
+ }
14
+ registerProvider('ollama', (config) => {
15
+ const baseURL = process.env['OLLAMA_BASE_URL'] || 'http://localhost:11434/v1';
16
+ const options = {
17
+ apiKey: 'ollama', // Ollama doesn't require an API key for local instances
18
+ model: config.model,
19
+ providerId: 'ollama',
20
+ baseURL,
21
+ ...(typeof config.temperature === 'number' ? { temperature: config.temperature } : {}),
22
+ ...(typeof config.maxTokens === 'number' ? { maxTokens: config.maxTokens } : {}),
23
+ };
24
+ return new OpenAIChatCompletionsProvider(options);
25
+ });
26
+ registered = true;
27
+ }
28
+ /**
29
+ * Query available models from local Ollama instance.
30
+ * Returns an array of model names that are currently available.
31
+ */
32
+ export async function getAvailableOllamaModels(baseURL = 'http://localhost:11434') {
33
+ try {
34
+ const response = await fetch(`${baseURL}/api/tags`);
35
+ if (!response.ok) {
36
+ return [];
37
+ }
38
+ const data = (await response.json());
39
+ return data.models?.map((m) => m.name) ?? [];
40
+ }
41
+ catch {
42
+ return [];
43
+ }
44
+ }
45
+ /**
46
+ * Check if Ollama is running and accessible.
47
+ */
48
+ export async function isOllamaAvailable(baseURL = 'http://localhost:11434') {
49
+ try {
50
+ const response = await fetch(`${baseURL}/api/tags`, {
51
+ method: 'GET',
52
+ signal: AbortSignal.timeout(2000), // 2 second timeout
53
+ });
54
+ return response.ok;
55
+ }
56
+ catch {
57
+ return false;
58
+ }
59
+ }
@@ -0,0 +1,26 @@
1
+ import { OpenAIResponsesProvider } from '../../../providers/openaiResponsesProvider.js';
2
+ import { registerProvider } from '../../../providers/providerFactory.js';
3
+ let registered = false;
4
+ export function registerOpenAIProviderPlugin(providerId = 'openai') {
5
+ if (registered) {
6
+ return;
7
+ }
8
+ registerProvider(providerId, (config) => {
9
+ const options = {
10
+ apiKey: requireEnv('OPENAI_API_KEY'),
11
+ model: config.model,
12
+ providerId,
13
+ ...(config.reasoningEffort ? { reasoningEffort: config.reasoningEffort } : {}),
14
+ ...(config.textVerbosity ? { textVerbosity: config.textVerbosity } : {}),
15
+ };
16
+ return new OpenAIResponsesProvider(options);
17
+ });
18
+ registered = true;
19
+ }
20
+ function requireEnv(name) {
21
+ const value = process.env[name];
22
+ if (!value) {
23
+ throw new Error(`Missing required environment variable ${name}.`);
24
+ }
25
+ return value;
26
+ }
@@ -0,0 +1,24 @@
1
+ import { OpenAIChatCompletionsProvider } from '../../../providers/openaiChatCompletionsProvider.js';
2
+ import { registerProvider } from '../../../providers/providerFactory.js';
3
+ let registered = false;
4
+ export function registerXaiProviderPlugin() {
5
+ if (registered) {
6
+ return;
7
+ }
8
+ registerProvider('xai', (config) => {
9
+ return new OpenAIChatCompletionsProvider({
10
+ apiKey: requireEnv('XAI_API_KEY'),
11
+ model: config.model,
12
+ baseURL: 'https://api.x.ai/v1',
13
+ providerId: 'xai',
14
+ });
15
+ });
16
+ registered = true;
17
+ }
18
+ function requireEnv(name) {
19
+ const value = process.env[name];
20
+ if (!value) {
21
+ throw new Error(`Missing required environment variable ${name}.`);
22
+ }
23
+ return value;
24
+ }
@@ -0,0 +1,8 @@
1
+ import { AgentSpawningCapabilityModule } from '../../../capabilities/agentSpawningCapability.js';
2
+ export function createAgentSpawningToolPlugin() {
3
+ return {
4
+ id: 'tool.agent-spawning',
5
+ targets: ['node', 'cloud'],
6
+ create: () => new AgentSpawningCapabilityModule(),
7
+ };
8
+ }
@@ -0,0 +1,13 @@
1
+ import { BashCapabilityModule } from '../../../capabilities/bashCapability.js';
2
+ export function createLocalBashToolPlugin() {
3
+ return {
4
+ id: 'tool.bash.local',
5
+ description: 'Local bash execution with sandbox awareness.',
6
+ targets: ['node', 'cloud'],
7
+ create: (context) => {
8
+ return new BashCapabilityModule({
9
+ workingDir: context.workingDir,
10
+ });
11
+ },
12
+ };
13
+ }
@@ -0,0 +1,13 @@
1
+ import { RepoChecksCapabilityModule } from '../../../capabilities/repoChecksCapability.js';
2
+ export function createLocalRepoChecksPlugin() {
3
+ return {
4
+ id: 'tool.repo-checks.local',
5
+ description: 'Run npm-based repo checks (test/build/lint) in the sandboxed workspace.',
6
+ targets: ['node', 'cloud'],
7
+ create: (context) => {
8
+ return new RepoChecksCapabilityModule({
9
+ workingDir: context.workingDir,
10
+ });
11
+ },
12
+ };
13
+ }
@@ -0,0 +1,13 @@
1
+ import { CloudCapabilityModule } from '../../../capabilities/cloudCapability.js';
2
+ export function createCloudToolPlugin() {
3
+ return {
4
+ id: 'tool.cloud.deployment',
5
+ description: 'Multi-cloud deployment tools with auto-detection and auto-fix for Firebase, Aliyun, AWS, GCP, Azure, Vercel, Netlify, Cloudflare, and more.',
6
+ targets: ['node', 'cloud'],
7
+ create: (context) => {
8
+ return new CloudCapabilityModule({
9
+ workingDir: context.workingDir,
10
+ });
11
+ },
12
+ };
13
+ }
@@ -0,0 +1,13 @@
1
+ import { CodeAnalysisCapabilityModule } from '../../../capabilities/codeAnalysisCapability.js';
2
+ export function createCodeAnalysisToolPlugin() {
3
+ return {
4
+ id: 'tool.code-analysis.structural',
5
+ description: 'Advanced code structure analysis, dependency tracking, and complexity metrics.',
6
+ targets: ['node'],
7
+ create: async (context) => {
8
+ return new CodeAnalysisCapabilityModule({
9
+ workingDir: context.workingDir,
10
+ });
11
+ },
12
+ };
13
+ }
@@ -0,0 +1,13 @@
1
+ import { CodeQualityCapabilityModule } from '../../../capabilities/codeQualityCapability.js';
2
+ export function createCodeQualityToolPlugin() {
3
+ return {
4
+ id: 'tool.code-quality.linting',
5
+ description: 'Code quality helpers (lint orchestration, rule inspection, maintainability checks).',
6
+ targets: ['node'],
7
+ create: async (context) => {
8
+ return new CodeQualityCapabilityModule({
9
+ workingDir: context.workingDir,
10
+ });
11
+ },
12
+ };
13
+ }
@@ -0,0 +1,11 @@
1
+ import { DependencySecurityCapabilityModule } from '../../../capabilities/dependencySecurityCapability.js';
2
+ export function createDependencyToolPlugin() {
3
+ return {
4
+ id: 'tool.dependency.security',
5
+ description: 'Dependency analysis, lockfile insights, and npm audit orchestration.',
6
+ targets: ['node'],
7
+ create: async (context) => new DependencySecurityCapabilityModule({
8
+ workingDir: context.workingDir,
9
+ }),
10
+ };
11
+ }
@@ -0,0 +1,13 @@
1
+ import { DevCapabilityModule } from '../../../capabilities/devCapability.js';
2
+ export function createDevToolPlugin() {
3
+ return {
4
+ id: 'tool.development.workflow',
5
+ description: 'Development workflow tools for testing, building, and dependency management.',
6
+ targets: ['node'],
7
+ create: async (context) => {
8
+ return new DevCapabilityModule({
9
+ workingDir: context.workingDir,
10
+ });
11
+ },
12
+ };
13
+ }
@@ -0,0 +1,14 @@
1
+ import { EditCapabilityModule } from '../../../capabilities/editCapability.js';
2
+ /**
3
+ * Edit Tool Plugin
4
+ *
5
+ * Registers the Edit capability for surgical file modifications.
6
+ * Available in node and cloud runtimes.
7
+ */
8
+ export function createEditToolPlugin() {
9
+ return {
10
+ id: 'tool.edit',
11
+ targets: ['node', 'cloud'],
12
+ create: () => new EditCapabilityModule(),
13
+ };
14
+ }
@@ -0,0 +1,11 @@
1
+ import { EmailCapabilityModule } from '../../../capabilities/emailCapability.js';
2
+ export function createEmailToolPlugin() {
3
+ return {
4
+ id: 'tool.email.smtp',
5
+ description: 'Email sending tools via SMTP with support for Gmail, Outlook, and custom providers.',
6
+ targets: ['node', 'cloud'],
7
+ create: (_context) => {
8
+ return new EmailCapabilityModule({});
9
+ },
10
+ };
11
+ }
@@ -0,0 +1,8 @@
1
+ import { EnhancedGitCapabilityModule } from '../../../capabilities/enhancedGitCapability.js';
2
+ export function createEnhancedGitToolPlugin() {
3
+ return {
4
+ id: 'tool.enhanced-git',
5
+ targets: ['node', 'cloud'],
6
+ create: () => new EnhancedGitCapabilityModule(),
7
+ };
8
+ }
@@ -0,0 +1,13 @@
1
+ import { FilesystemCapabilityModule } from '../../../capabilities/filesystemCapability.js';
2
+ export function createLocalFilesystemToolPlugin() {
3
+ return {
4
+ id: 'tool.filesystem.local',
5
+ description: 'Local file system access for Node/Cloud runtimes.',
6
+ targets: ['node', 'cloud'],
7
+ create: (context) => {
8
+ return new FilesystemCapabilityModule({
9
+ workingDir: context.workingDir,
10
+ });
11
+ },
12
+ };
13
+ }
@@ -0,0 +1,14 @@
1
+ import { GlobCapabilityModule } from '../../../capabilities/globCapability.js';
2
+ /**
3
+ * Glob Tool Plugin
4
+ *
5
+ * Registers fast file pattern matching capabilities.
6
+ * Available in node and cloud runtimes.
7
+ */
8
+ export function createGlobToolPlugin() {
9
+ return {
10
+ id: 'tool.glob',
11
+ targets: ['node', 'cloud'],
12
+ create: () => new GlobCapabilityModule(),
13
+ };
14
+ }
@@ -0,0 +1,2 @@
1
+ export { registerToolPlugin, unregisterToolPlugin, listRegisteredToolPlugins, instantiateToolPlugins, } from './registry.js';
2
+ export { registerDefaultNodeToolPlugins } from './nodeDefaults.js';
@@ -0,0 +1,11 @@
1
+ import { InteractionCapabilityModule } from '../../../capabilities/interactionCapability.js';
2
+ export function createInteractionToolPlugin() {
3
+ return {
4
+ id: 'tool.interaction.local',
5
+ description: 'Interactive question and clarification tools for gathering user preferences.',
6
+ targets: ['node', 'cloud'],
7
+ create: (_context) => {
8
+ return new InteractionCapabilityModule({});
9
+ },
10
+ };
11
+ }
@@ -0,0 +1,13 @@
1
+ import { LearnCapabilityModule } from '../../../capabilities/learnCapability.js';
2
+ export function createLearnToolPlugin() {
3
+ return {
4
+ id: 'tool.learn.exploration',
5
+ description: 'Core codebase exploration and learning tools for understanding project structure, patterns, and conventions without external APIs.',
6
+ targets: ['node', 'cloud'],
7
+ create: async (context) => {
8
+ return new LearnCapabilityModule({
9
+ workingDir: context.workingDir,
10
+ });
11
+ },
12
+ };
13
+ }
@@ -0,0 +1,8 @@
1
+ import { McpCapabilityModule } from '../../../capabilities/mcpCapability.js';
2
+ export function createMcpToolPlugin() {
3
+ return {
4
+ id: 'tool.mcp.bridge',
5
+ targets: ['node'],
6
+ create: () => new McpCapabilityModule(),
7
+ };
8
+ }
@@ -0,0 +1,56 @@
1
+ import { registerToolPlugin } from './registry.js';
2
+ import { createLocalFilesystemToolPlugin } from './filesystem/localFilesystemPlugin.js';
3
+ import { createEditToolPlugin } from './edit/editPlugin.js';
4
+ import { createNotebookToolPlugin } from './notebook/notebookPlugin.js';
5
+ import { createLocalSearchToolPlugin } from './search/localSearchPlugin.js';
6
+ import { createGlobToolPlugin } from './glob/globPlugin.js';
7
+ import { createLocalBashToolPlugin } from './bash/localBashPlugin.js';
8
+ import { createLocalRepoChecksPlugin } from './checks/localRepoChecksPlugin.js';
9
+ import { createCodeAnalysisToolPlugin } from './codeAnalysis/codeAnalysisPlugin.js';
10
+ import { createDevToolPlugin } from './development/devPlugin.js';
11
+ import { createCodeQualityToolPlugin } from './codeQuality/codeQualityPlugin.js';
12
+ import { createRefactoringToolPlugin } from './refactoring/refactoringPlugin.js';
13
+ import { createDependencyToolPlugin } from './dependency/dependencyPlugin.js';
14
+ import { createTestingToolPlugin } from './testing/testingPlugin.js';
15
+ import { createTaskManagementToolPlugin } from './taskManagement/taskManagementPlugin.js';
16
+ import { createPlanningToolPlugin } from './planning/planningPlugin.js';
17
+ import { createInteractionToolPlugin } from './interaction/interactionPlugin.js';
18
+ import { createWebToolPlugin } from './web/webPlugin.js';
19
+ import { createAgentSpawningToolPlugin } from './agentSpawning/agentSpawningPlugin.js';
20
+ import { createEnhancedGitToolPlugin } from './enhancedGit/enhancedGitPlugin.js';
21
+ import { createSkillToolPlugin } from './skills/skillPlugin.js';
22
+ import { createMcpToolPlugin } from './mcp/mcpPlugin.js';
23
+ import { createLearnToolPlugin } from './learn/learnPlugin.js';
24
+ import { createEmailToolPlugin } from './email/emailPlugin.js';
25
+ import { createCloudToolPlugin } from './cloud/cloudPlugin.js';
26
+ let registered = false;
27
+ export function registerDefaultNodeToolPlugins() {
28
+ if (registered) {
29
+ return;
30
+ }
31
+ registerToolPlugin(createLocalFilesystemToolPlugin());
32
+ registerToolPlugin(createEditToolPlugin());
33
+ registerToolPlugin(createNotebookToolPlugin());
34
+ registerToolPlugin(createLocalSearchToolPlugin());
35
+ registerToolPlugin(createGlobToolPlugin());
36
+ registerToolPlugin(createLearnToolPlugin());
37
+ registerToolPlugin(createLocalBashToolPlugin());
38
+ registerToolPlugin(createLocalRepoChecksPlugin());
39
+ registerToolPlugin(createCodeAnalysisToolPlugin());
40
+ registerToolPlugin(createDevToolPlugin());
41
+ registerToolPlugin(createCodeQualityToolPlugin());
42
+ registerToolPlugin(createRefactoringToolPlugin());
43
+ registerToolPlugin(createDependencyToolPlugin());
44
+ registerToolPlugin(createTestingToolPlugin());
45
+ registerToolPlugin(createTaskManagementToolPlugin());
46
+ registerToolPlugin(createPlanningToolPlugin());
47
+ registerToolPlugin(createInteractionToolPlugin());
48
+ registerToolPlugin(createWebToolPlugin());
49
+ registerToolPlugin(createAgentSpawningToolPlugin());
50
+ registerToolPlugin(createEnhancedGitToolPlugin());
51
+ registerToolPlugin(createSkillToolPlugin());
52
+ registerToolPlugin(createMcpToolPlugin());
53
+ registerToolPlugin(createEmailToolPlugin());
54
+ registerToolPlugin(createCloudToolPlugin());
55
+ registered = true;
56
+ }
@@ -0,0 +1,14 @@
1
+ import { NotebookCapabilityModule } from '../../../capabilities/notebookCapability.js';
2
+ /**
3
+ * Notebook Tool Plugin
4
+ *
5
+ * Registers Jupyter notebook editing capabilities.
6
+ * Available in node and cloud runtimes.
7
+ */
8
+ export function createNotebookToolPlugin() {
9
+ return {
10
+ id: 'tool.notebook',
11
+ targets: ['node', 'cloud'],
12
+ create: () => new NotebookCapabilityModule(),
13
+ };
14
+ }
@@ -0,0 +1,14 @@
1
+ import { PlanningCapabilityModule } from '../../../capabilities/planningCapability.js';
2
+ /**
3
+ * Planning Tool Plugin
4
+ *
5
+ * Registers workflow planning capabilities.
6
+ * Available in node and cloud runtimes.
7
+ */
8
+ export function createPlanningToolPlugin() {
9
+ return {
10
+ id: 'tool.planning',
11
+ targets: ['node', 'cloud'],
12
+ create: () => new PlanningCapabilityModule(),
13
+ };
14
+ }
@@ -0,0 +1,11 @@
1
+ import { RefactoringCapabilityModule } from '../../../capabilities/refactoringCapability.js';
2
+ export function createRefactoringToolPlugin() {
3
+ return {
4
+ id: 'tool.refactoring.assistant',
5
+ description: 'Refactoring intelligence (hotspot detection, impact studies, plan generation).',
6
+ targets: ['node'],
7
+ create: async (context) => new RefactoringCapabilityModule({
8
+ workingDir: context.workingDir,
9
+ }),
10
+ };
11
+ }