erosolar-cli 1.7.355 → 1.7.356

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 (330) hide show
  1. package/README.md +148 -24
  2. package/dist/alpha-zero/agentWrapper.d.ts +84 -0
  3. package/dist/alpha-zero/agentWrapper.d.ts.map +1 -0
  4. package/dist/alpha-zero/agentWrapper.js +171 -0
  5. package/dist/alpha-zero/agentWrapper.js.map +1 -0
  6. package/dist/alpha-zero/codeEvaluator.d.ts +25 -0
  7. package/dist/alpha-zero/codeEvaluator.d.ts.map +1 -0
  8. package/dist/alpha-zero/codeEvaluator.js +273 -0
  9. package/dist/alpha-zero/codeEvaluator.js.map +1 -0
  10. package/dist/alpha-zero/competitiveRunner.d.ts +66 -0
  11. package/dist/alpha-zero/competitiveRunner.d.ts.map +1 -0
  12. package/dist/alpha-zero/competitiveRunner.js +224 -0
  13. package/dist/alpha-zero/competitiveRunner.js.map +1 -0
  14. package/dist/alpha-zero/index.d.ts +67 -0
  15. package/dist/alpha-zero/index.d.ts.map +1 -0
  16. package/dist/alpha-zero/index.js +99 -0
  17. package/dist/alpha-zero/index.js.map +1 -0
  18. package/dist/alpha-zero/introspection.d.ts +128 -0
  19. package/dist/alpha-zero/introspection.d.ts.map +1 -0
  20. package/dist/alpha-zero/introspection.js +300 -0
  21. package/dist/alpha-zero/introspection.js.map +1 -0
  22. package/dist/alpha-zero/metricsTracker.d.ts +71 -0
  23. package/dist/alpha-zero/metricsTracker.d.ts.map +1 -0
  24. package/dist/{core → alpha-zero}/metricsTracker.js +5 -2
  25. package/dist/alpha-zero/metricsTracker.js.map +1 -0
  26. package/dist/alpha-zero/security/core.d.ts +125 -0
  27. package/dist/alpha-zero/security/core.d.ts.map +1 -0
  28. package/dist/alpha-zero/security/core.js +271 -0
  29. package/dist/alpha-zero/security/core.js.map +1 -0
  30. package/dist/alpha-zero/security/google.d.ts +125 -0
  31. package/dist/alpha-zero/security/google.d.ts.map +1 -0
  32. package/dist/alpha-zero/security/google.js +311 -0
  33. package/dist/alpha-zero/security/google.js.map +1 -0
  34. package/dist/alpha-zero/security/googleLoader.d.ts +17 -0
  35. package/dist/alpha-zero/security/googleLoader.d.ts.map +1 -0
  36. package/dist/alpha-zero/security/googleLoader.js +41 -0
  37. package/dist/alpha-zero/security/googleLoader.js.map +1 -0
  38. package/dist/alpha-zero/security/index.d.ts +29 -0
  39. package/dist/alpha-zero/security/index.d.ts.map +1 -0
  40. package/dist/alpha-zero/security/index.js +32 -0
  41. package/dist/alpha-zero/security/index.js.map +1 -0
  42. package/dist/alpha-zero/security/simulation.d.ts +124 -0
  43. package/dist/alpha-zero/security/simulation.d.ts.map +1 -0
  44. package/dist/alpha-zero/security/simulation.js +277 -0
  45. package/dist/alpha-zero/security/simulation.js.map +1 -0
  46. package/dist/alpha-zero/selfModification.d.ts +109 -0
  47. package/dist/alpha-zero/selfModification.d.ts.map +1 -0
  48. package/dist/alpha-zero/selfModification.js +233 -0
  49. package/dist/alpha-zero/selfModification.js.map +1 -0
  50. package/dist/alpha-zero/types.d.ts +170 -0
  51. package/dist/alpha-zero/types.d.ts.map +1 -0
  52. package/dist/alpha-zero/types.js +31 -0
  53. package/dist/alpha-zero/types.js.map +1 -0
  54. package/dist/bin/erosolar.js +21 -5
  55. package/dist/bin/erosolar.js.map +1 -1
  56. package/dist/capabilities/agentSpawningCapability.d.ts.map +1 -1
  57. package/dist/capabilities/agentSpawningCapability.js +31 -56
  58. package/dist/capabilities/agentSpawningCapability.js.map +1 -1
  59. package/dist/capabilities/securityTestingCapability.d.ts +13 -0
  60. package/dist/capabilities/securityTestingCapability.d.ts.map +1 -0
  61. package/dist/capabilities/securityTestingCapability.js +25 -0
  62. package/dist/capabilities/securityTestingCapability.js.map +1 -0
  63. package/dist/contracts/agent-schemas.json +15 -0
  64. package/dist/contracts/tools.schema.json +9 -0
  65. package/dist/core/agent.d.ts +2 -2
  66. package/dist/core/agent.d.ts.map +1 -1
  67. package/dist/core/agent.js.map +1 -1
  68. package/dist/core/aiFlowOptimizer.d.ts +26 -0
  69. package/dist/core/aiFlowOptimizer.d.ts.map +1 -0
  70. package/dist/core/aiFlowOptimizer.js +31 -0
  71. package/dist/core/aiFlowOptimizer.js.map +1 -0
  72. package/dist/core/aiOptimizationEngine.d.ts +158 -0
  73. package/dist/core/aiOptimizationEngine.d.ts.map +1 -0
  74. package/dist/core/aiOptimizationEngine.js +428 -0
  75. package/dist/core/aiOptimizationEngine.js.map +1 -0
  76. package/dist/core/aiOptimizationIntegration.d.ts +93 -0
  77. package/dist/core/aiOptimizationIntegration.d.ts.map +1 -0
  78. package/dist/core/aiOptimizationIntegration.js +250 -0
  79. package/dist/core/aiOptimizationIntegration.js.map +1 -0
  80. package/dist/core/customCommands.d.ts +0 -1
  81. package/dist/core/customCommands.d.ts.map +1 -1
  82. package/dist/core/customCommands.js +0 -3
  83. package/dist/core/customCommands.js.map +1 -1
  84. package/dist/core/enhancedErrorRecovery.d.ts +100 -0
  85. package/dist/core/enhancedErrorRecovery.d.ts.map +1 -0
  86. package/dist/core/enhancedErrorRecovery.js +345 -0
  87. package/dist/core/enhancedErrorRecovery.js.map +1 -0
  88. package/dist/core/hooksSystem.d.ts +65 -0
  89. package/dist/core/hooksSystem.d.ts.map +1 -0
  90. package/dist/core/hooksSystem.js +273 -0
  91. package/dist/core/hooksSystem.js.map +1 -0
  92. package/dist/core/memorySystem.d.ts +48 -0
  93. package/dist/core/memorySystem.d.ts.map +1 -0
  94. package/dist/core/memorySystem.js +271 -0
  95. package/dist/core/memorySystem.js.map +1 -0
  96. package/dist/core/sessionStore.d.ts +0 -2
  97. package/dist/core/sessionStore.d.ts.map +1 -1
  98. package/dist/core/sessionStore.js +0 -1
  99. package/dist/core/sessionStore.js.map +1 -1
  100. package/dist/core/toolPreconditions.d.ts.map +1 -1
  101. package/dist/core/toolPreconditions.js +14 -0
  102. package/dist/core/toolPreconditions.js.map +1 -1
  103. package/dist/core/toolRuntime.d.ts +1 -22
  104. package/dist/core/toolRuntime.d.ts.map +1 -1
  105. package/dist/core/toolRuntime.js +5 -0
  106. package/dist/core/toolRuntime.js.map +1 -1
  107. package/dist/core/toolValidation.d.ts.map +1 -1
  108. package/dist/core/toolValidation.js +3 -14
  109. package/dist/core/toolValidation.js.map +1 -1
  110. package/dist/core/unified/errors.d.ts +189 -0
  111. package/dist/core/unified/errors.d.ts.map +1 -0
  112. package/dist/core/unified/errors.js +497 -0
  113. package/dist/core/unified/errors.js.map +1 -0
  114. package/dist/core/unified/index.d.ts +19 -0
  115. package/dist/core/unified/index.d.ts.map +1 -0
  116. package/dist/core/unified/index.js +68 -0
  117. package/dist/core/unified/index.js.map +1 -0
  118. package/dist/core/unified/schema.d.ts +101 -0
  119. package/dist/core/unified/schema.d.ts.map +1 -0
  120. package/dist/core/unified/schema.js +350 -0
  121. package/dist/core/unified/schema.js.map +1 -0
  122. package/dist/core/unified/toolRuntime.d.ts +179 -0
  123. package/dist/core/unified/toolRuntime.d.ts.map +1 -0
  124. package/dist/core/unified/toolRuntime.js +517 -0
  125. package/dist/core/unified/toolRuntime.js.map +1 -0
  126. package/dist/core/unified/tools.d.ts +127 -0
  127. package/dist/core/unified/tools.d.ts.map +1 -0
  128. package/dist/core/unified/tools.js +1333 -0
  129. package/dist/core/unified/tools.js.map +1 -0
  130. package/dist/core/unified/types.d.ts +352 -0
  131. package/dist/core/unified/types.d.ts.map +1 -0
  132. package/dist/core/unified/types.js +12 -0
  133. package/dist/core/unified/types.js.map +1 -0
  134. package/dist/core/unified/version.d.ts +209 -0
  135. package/dist/core/unified/version.d.ts.map +1 -0
  136. package/dist/core/unified/version.js +454 -0
  137. package/dist/core/unified/version.js.map +1 -0
  138. package/dist/core/validationRunner.d.ts +3 -1
  139. package/dist/core/validationRunner.d.ts.map +1 -1
  140. package/dist/core/validationRunner.js.map +1 -1
  141. package/dist/headless/headlessApp.d.ts.map +1 -1
  142. package/dist/headless/headlessApp.js +0 -21
  143. package/dist/headless/headlessApp.js.map +1 -1
  144. package/dist/mcp/sseClient.d.ts.map +1 -1
  145. package/dist/mcp/sseClient.js +18 -9
  146. package/dist/mcp/sseClient.js.map +1 -1
  147. package/dist/plugins/tools/build/buildPlugin.d.ts +6 -0
  148. package/dist/plugins/tools/build/buildPlugin.d.ts.map +1 -1
  149. package/dist/plugins/tools/build/buildPlugin.js +10 -4
  150. package/dist/plugins/tools/build/buildPlugin.js.map +1 -1
  151. package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -1
  152. package/dist/plugins/tools/nodeDefaults.js +2 -0
  153. package/dist/plugins/tools/nodeDefaults.js.map +1 -1
  154. package/dist/plugins/tools/security/securityPlugin.d.ts +3 -0
  155. package/dist/plugins/tools/security/securityPlugin.d.ts.map +1 -0
  156. package/dist/plugins/tools/security/securityPlugin.js +12 -0
  157. package/dist/plugins/tools/security/securityPlugin.js.map +1 -0
  158. package/dist/runtime/agentSession.d.ts +2 -2
  159. package/dist/runtime/agentSession.d.ts.map +1 -1
  160. package/dist/runtime/agentSession.js +2 -2
  161. package/dist/runtime/agentSession.js.map +1 -1
  162. package/dist/security/active-stack-security.d.ts +112 -0
  163. package/dist/security/active-stack-security.d.ts.map +1 -0
  164. package/dist/security/active-stack-security.js +296 -0
  165. package/dist/security/active-stack-security.js.map +1 -0
  166. package/dist/security/advanced-persistence-research.d.ts +92 -0
  167. package/dist/security/advanced-persistence-research.d.ts.map +1 -0
  168. package/dist/security/advanced-persistence-research.js +195 -0
  169. package/dist/security/advanced-persistence-research.js.map +1 -0
  170. package/dist/security/advanced-targeting.d.ts +119 -0
  171. package/dist/security/advanced-targeting.d.ts.map +1 -0
  172. package/dist/security/advanced-targeting.js +233 -0
  173. package/dist/security/advanced-targeting.js.map +1 -0
  174. package/dist/security/assessment/vulnerabilityAssessment.d.ts +104 -0
  175. package/dist/security/assessment/vulnerabilityAssessment.d.ts.map +1 -0
  176. package/dist/security/assessment/vulnerabilityAssessment.js +315 -0
  177. package/dist/security/assessment/vulnerabilityAssessment.js.map +1 -0
  178. package/dist/security/authorization/securityAuthorization.d.ts +88 -0
  179. package/dist/security/authorization/securityAuthorization.d.ts.map +1 -0
  180. package/dist/security/authorization/securityAuthorization.js +172 -0
  181. package/dist/security/authorization/securityAuthorization.js.map +1 -0
  182. package/dist/security/comprehensive-targeting.d.ts +85 -0
  183. package/dist/security/comprehensive-targeting.d.ts.map +1 -0
  184. package/dist/security/comprehensive-targeting.js +438 -0
  185. package/dist/security/comprehensive-targeting.js.map +1 -0
  186. package/dist/security/global-security-integration.d.ts +91 -0
  187. package/dist/security/global-security-integration.d.ts.map +1 -0
  188. package/dist/security/global-security-integration.js +218 -0
  189. package/dist/security/global-security-integration.js.map +1 -0
  190. package/dist/security/index.d.ts +38 -0
  191. package/dist/security/index.d.ts.map +1 -0
  192. package/dist/security/index.js +47 -0
  193. package/dist/security/index.js.map +1 -0
  194. package/dist/security/persistence-analyzer.d.ts +56 -0
  195. package/dist/security/persistence-analyzer.d.ts.map +1 -0
  196. package/dist/security/persistence-analyzer.js +187 -0
  197. package/dist/security/persistence-analyzer.js.map +1 -0
  198. package/dist/security/persistence-cli.d.ts +36 -0
  199. package/dist/security/persistence-cli.d.ts.map +1 -0
  200. package/dist/security/persistence-cli.js +160 -0
  201. package/dist/security/persistence-cli.js.map +1 -0
  202. package/dist/security/persistence-research.d.ts +92 -0
  203. package/dist/security/persistence-research.d.ts.map +1 -0
  204. package/dist/security/persistence-research.js +364 -0
  205. package/dist/security/persistence-research.js.map +1 -0
  206. package/dist/security/research/persistenceResearch.d.ts +97 -0
  207. package/dist/security/research/persistenceResearch.d.ts.map +1 -0
  208. package/dist/security/research/persistenceResearch.js +282 -0
  209. package/dist/security/research/persistenceResearch.js.map +1 -0
  210. package/dist/security/security-integration.d.ts +74 -0
  211. package/dist/security/security-integration.d.ts.map +1 -0
  212. package/dist/security/security-integration.js +137 -0
  213. package/dist/security/security-integration.js.map +1 -0
  214. package/dist/security/security-testing-framework.d.ts +112 -0
  215. package/dist/security/security-testing-framework.d.ts.map +1 -0
  216. package/dist/security/security-testing-framework.js +364 -0
  217. package/dist/security/security-testing-framework.js.map +1 -0
  218. package/dist/security/simulation/attackSimulation.d.ts +93 -0
  219. package/dist/security/simulation/attackSimulation.d.ts.map +1 -0
  220. package/dist/security/simulation/attackSimulation.js +341 -0
  221. package/dist/security/simulation/attackSimulation.js.map +1 -0
  222. package/dist/security/strategic-operations.d.ts +100 -0
  223. package/dist/security/strategic-operations.d.ts.map +1 -0
  224. package/dist/security/strategic-operations.js +276 -0
  225. package/dist/security/strategic-operations.js.map +1 -0
  226. package/dist/security/tool-security-wrapper.d.ts +58 -0
  227. package/dist/security/tool-security-wrapper.d.ts.map +1 -0
  228. package/dist/security/tool-security-wrapper.js +156 -0
  229. package/dist/security/tool-security-wrapper.js.map +1 -0
  230. package/dist/shell/claudeCodeStreamHandler.d.ts +145 -0
  231. package/dist/shell/claudeCodeStreamHandler.d.ts.map +1 -0
  232. package/dist/shell/claudeCodeStreamHandler.js +322 -0
  233. package/dist/shell/claudeCodeStreamHandler.js.map +1 -0
  234. package/dist/shell/inputQueueManager.d.ts +144 -0
  235. package/dist/shell/inputQueueManager.d.ts.map +1 -0
  236. package/dist/shell/inputQueueManager.js +290 -0
  237. package/dist/shell/inputQueueManager.js.map +1 -0
  238. package/dist/shell/interactiveShell.d.ts +7 -43
  239. package/dist/shell/interactiveShell.d.ts.map +1 -1
  240. package/dist/shell/interactiveShell.js +166 -418
  241. package/dist/shell/interactiveShell.js.map +1 -1
  242. package/dist/shell/metricsTracker.d.ts +60 -0
  243. package/dist/shell/metricsTracker.d.ts.map +1 -0
  244. package/dist/shell/metricsTracker.js +119 -0
  245. package/dist/shell/metricsTracker.js.map +1 -0
  246. package/dist/shell/shellApp.d.ts +0 -2
  247. package/dist/shell/shellApp.d.ts.map +1 -1
  248. package/dist/shell/shellApp.js +9 -82
  249. package/dist/shell/shellApp.js.map +1 -1
  250. package/dist/shell/streamingOutputManager.d.ts +115 -0
  251. package/dist/shell/streamingOutputManager.d.ts.map +1 -0
  252. package/dist/shell/streamingOutputManager.js +225 -0
  253. package/dist/shell/streamingOutputManager.js.map +1 -0
  254. package/dist/shell/systemPrompt.d.ts.map +1 -1
  255. package/dist/shell/systemPrompt.js +4 -1
  256. package/dist/shell/systemPrompt.js.map +1 -1
  257. package/dist/shell/terminalInput.d.ts +124 -258
  258. package/dist/shell/terminalInput.d.ts.map +1 -1
  259. package/dist/shell/terminalInput.js +608 -1010
  260. package/dist/shell/terminalInput.js.map +1 -1
  261. package/dist/shell/terminalInputAdapter.d.ts +24 -106
  262. package/dist/shell/terminalInputAdapter.d.ts.map +1 -1
  263. package/dist/shell/terminalInputAdapter.js +30 -140
  264. package/dist/shell/terminalInputAdapter.js.map +1 -1
  265. package/dist/subagents/taskRunner.d.ts +1 -7
  266. package/dist/subagents/taskRunner.d.ts.map +1 -1
  267. package/dist/subagents/taskRunner.js +47 -180
  268. package/dist/subagents/taskRunner.js.map +1 -1
  269. package/dist/tools/learnTools.js +4 -127
  270. package/dist/tools/learnTools.js.map +1 -1
  271. package/dist/tools/securityTools.d.ts +22 -0
  272. package/dist/tools/securityTools.d.ts.map +1 -0
  273. package/dist/tools/securityTools.js +448 -0
  274. package/dist/tools/securityTools.js.map +1 -0
  275. package/dist/ui/ShellUIAdapter.d.ts +1 -7
  276. package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
  277. package/dist/ui/ShellUIAdapter.js +18 -42
  278. package/dist/ui/ShellUIAdapter.js.map +1 -1
  279. package/dist/ui/display.d.ts +45 -24
  280. package/dist/ui/display.d.ts.map +1 -1
  281. package/dist/ui/display.js +274 -148
  282. package/dist/ui/display.js.map +1 -1
  283. package/dist/ui/persistentPrompt.d.ts +50 -0
  284. package/dist/ui/persistentPrompt.d.ts.map +1 -0
  285. package/dist/ui/persistentPrompt.js +92 -0
  286. package/dist/ui/persistentPrompt.js.map +1 -0
  287. package/dist/ui/terminalUISchema.d.ts +195 -0
  288. package/dist/ui/terminalUISchema.d.ts.map +1 -0
  289. package/dist/ui/terminalUISchema.js +113 -0
  290. package/dist/ui/terminalUISchema.js.map +1 -0
  291. package/dist/ui/theme.d.ts.map +1 -1
  292. package/dist/ui/theme.js +8 -6
  293. package/dist/ui/theme.js.map +1 -1
  294. package/dist/ui/toolDisplay.d.ts +158 -0
  295. package/dist/ui/toolDisplay.d.ts.map +1 -1
  296. package/dist/ui/toolDisplay.js +348 -0
  297. package/dist/ui/toolDisplay.js.map +1 -1
  298. package/dist/ui/unified/layout.d.ts +0 -20
  299. package/dist/ui/unified/layout.d.ts.map +1 -1
  300. package/dist/ui/unified/layout.js +216 -105
  301. package/dist/ui/unified/layout.js.map +1 -1
  302. package/package.json +4 -4
  303. package/scripts/deploy-security-capabilities.js +178 -0
  304. package/dist/core/hooks.d.ts +0 -113
  305. package/dist/core/hooks.d.ts.map +0 -1
  306. package/dist/core/hooks.js +0 -267
  307. package/dist/core/hooks.js.map +0 -1
  308. package/dist/core/metricsTracker.d.ts +0 -122
  309. package/dist/core/metricsTracker.d.ts.map +0 -1
  310. package/dist/core/metricsTracker.js.map +0 -1
  311. package/dist/core/securityAssessment.d.ts +0 -91
  312. package/dist/core/securityAssessment.d.ts.map +0 -1
  313. package/dist/core/securityAssessment.js +0 -580
  314. package/dist/core/securityAssessment.js.map +0 -1
  315. package/dist/core/verification.d.ts +0 -137
  316. package/dist/core/verification.d.ts.map +0 -1
  317. package/dist/core/verification.js +0 -323
  318. package/dist/core/verification.js.map +0 -1
  319. package/dist/subagents/agentConfig.d.ts +0 -27
  320. package/dist/subagents/agentConfig.d.ts.map +0 -1
  321. package/dist/subagents/agentConfig.js +0 -89
  322. package/dist/subagents/agentConfig.js.map +0 -1
  323. package/dist/subagents/agentRegistry.d.ts +0 -33
  324. package/dist/subagents/agentRegistry.d.ts.map +0 -1
  325. package/dist/subagents/agentRegistry.js +0 -162
  326. package/dist/subagents/agentRegistry.js.map +0 -1
  327. package/dist/utils/frontmatter.d.ts +0 -10
  328. package/dist/utils/frontmatter.d.ts.map +0 -1
  329. package/dist/utils/frontmatter.js +0 -78
  330. package/dist/utils/frontmatter.js.map +0 -1
@@ -1,5 +1,6 @@
1
1
  import { theme } from '../theme.js';
2
2
  const ANSI_PATTERN = /\u001B\[[0-?]*[ -/]*[@-~]/g;
3
+ const ANSI_STICKY_PATTERN = /\u001B\[[0-?]*[ -/]*[@-~]/y;
3
4
  const clampWidth = (width, min = 42, max = 110) => {
4
5
  if (!Number.isFinite(width) || !width) {
5
6
  return max;
@@ -8,123 +9,223 @@ const clampWidth = (width, min = 42, max = 110) => {
8
9
  };
9
10
  const stripAnsi = (value) => value.replace(ANSI_PATTERN, '');
10
11
  const visibleLength = (value) => stripAnsi(value).length;
11
- const padLine = (content, innerWidth) => {
12
- const visible = visibleLength(content);
13
- const padding = Math.max(0, innerWidth - visible);
14
- return `${theme.ui.border('┃')} ${content}${' '.repeat(padding)} ${theme.ui.border('┃')}`;
15
- };
16
- const framedBlock = (lines, width) => {
17
- const innerWidth = clampWidth(width ? width - 2 : undefined, 32, 96);
18
- const top = theme.ui.border(`╭${'─'.repeat(innerWidth)}╮`);
19
- const bottom = theme.ui.border(`╰${'─'.repeat(innerWidth)}╯`);
20
- const body = lines.map((line) => padLine(line, innerWidth));
21
- return [top, ...body, bottom].join('\n');
22
- };
23
- export const renderSessionFrame = (props) => {
24
- const versionStr = props.version ? `v${props.version}` : 'live';
25
- const profile = props.profileLabel || props.profileName || 'Default';
26
- const modelLabel = props.model;
27
- const innerWidth = clampWidth(props.width ? props.width - 2 : undefined, 32, 96);
28
- const workspace = abbreviatePath(props.workspace, Math.max(16, innerWidth - 12));
29
- // Compact command hints with separators
30
- const cmdSep = theme.ui.muted(' · ');
31
- const cmds = ['/model', '/provider', '/secrets', '/help'].map((c) => theme.primary(c)).join(cmdSep);
32
- const lines = [
33
- `${theme.gradient.cool('⚡ EROSOLAR CLI')} ${theme.ui.muted(versionStr)}`,
34
- '',
35
- `${theme.ui.muted('Profile')} ${theme.info(profile)}`,
36
- `${theme.ui.muted('Model')} ${theme.info(modelLabel)} ${theme.ui.muted('via')} ${theme.accent(props.provider)}`,
37
- `${theme.ui.muted('Workspace')} ${workspace}`,
38
- ];
39
- // Add feature status if provided
40
- if (props.features) {
41
- lines.push('');
42
- lines.push(renderFeatureStatus(props.features, innerWidth));
12
+ const normalizeWidth = (width, min, max) => {
13
+ if (!Number.isFinite(width) || !width) {
14
+ return clampWidth(undefined, min, max);
43
15
  }
44
- lines.push('');
45
- lines.push(`${theme.ui.muted('Commands')} ${cmds}`);
46
- // Add keyboard shortcuts hint
47
- lines.push(renderKeyboardHints(innerWidth));
48
- return framedBlock(lines, props.width);
16
+ const safeWidth = Math.max(1, Math.floor(width));
17
+ return Math.min(safeWidth, max);
49
18
  };
50
- /**
51
- * Render feature status line showing active capabilities
52
- */
53
- const renderFeatureStatus = (features, _width) => {
54
- const parts = [];
55
- // Verification status
56
- if (features.verification !== undefined) {
57
- const icon = features.verification ? '✓' : '○';
58
- const color = features.verification ? theme.success : theme.ui.muted;
59
- parts.push(color(`${icon}verify`));
60
- }
61
- // Auto-continue status
62
- if (features.autoContinue !== undefined) {
63
- const icon = features.autoContinue ? '↻' : '○';
64
- const color = features.autoContinue ? theme.info : theme.ui.muted;
65
- parts.push(color(`${icon}auto`));
19
+ const resolveFrameDimensions = (outerWidth) => {
20
+ if (!Number.isFinite(outerWidth) || !outerWidth) {
21
+ const innerWidth = clampWidth(undefined, 32, 96);
22
+ return { innerWidth, contentWidth: Math.max(1, innerWidth - 2) };
66
23
  }
67
- // Thinking mode
68
- if (features.thinkingMode) {
69
- parts.push(theme.secondary(`◐${features.thinkingMode}`));
24
+ const safeOuter = Math.max(4, Math.floor(outerWidth));
25
+ const innerCandidate = safeOuter - 2;
26
+ const clampedInner = clampWidth(innerCandidate, 32, 96);
27
+ const innerWidth = Math.max(1, Math.min(clampedInner, innerCandidate));
28
+ return { innerWidth, contentWidth: Math.max(1, innerWidth - 2) };
29
+ };
30
+ const truncateAnsi = (value, maxWidth) => {
31
+ const targetWidth = Math.max(0, Math.floor(maxWidth));
32
+ if (targetWidth === 0)
33
+ return '';
34
+ if (visibleLength(value) <= targetWidth)
35
+ return value;
36
+ const ellipsis = targetWidth > 1 ? '...' : '.';
37
+ const ellipsisWidth = Math.min(ellipsis.length, targetWidth);
38
+ const budget = targetWidth - ellipsisWidth;
39
+ let result = '';
40
+ let visible = 0;
41
+ let truncateIndex = 0;
42
+ for (let index = 0; index < value.length && visible < budget; index += 1) {
43
+ const char = value[index];
44
+ if (char === '\u001B') {
45
+ ANSI_STICKY_PATTERN.lastIndex = index;
46
+ const match = ANSI_STICKY_PATTERN.exec(value);
47
+ if (match) {
48
+ result += match[0];
49
+ index = ANSI_STICKY_PATTERN.lastIndex - 1;
50
+ continue;
51
+ }
52
+ }
53
+ result += char;
54
+ visible += 1;
55
+ truncateIndex = index + 1;
70
56
  }
71
- // Context usage indicator
72
- if (features.contextUsage !== undefined && features.contextUsage > 0) {
73
- const pct = Math.round(features.contextUsage);
74
- const remaining = 100 - pct;
75
- const color = pct > 80 ? theme.warning : pct > 60 ? theme.info : theme.success;
76
- parts.push(color(`⊛${remaining}%`));
57
+ // Preserve trailing ANSI sequences so colors are properly reset
58
+ for (let index = truncateIndex; index < value.length; index += 1) {
59
+ const char = value[index];
60
+ if (char !== '\u001B')
61
+ continue;
62
+ ANSI_STICKY_PATTERN.lastIndex = index;
63
+ const match = ANSI_STICKY_PATTERN.exec(value);
64
+ if (match) {
65
+ result += match[0];
66
+ index = ANSI_STICKY_PATTERN.lastIndex - 1;
67
+ }
77
68
  }
78
- // Plugin count
79
- if (features.plugins && features.plugins.length > 0) {
80
- parts.push(theme.accent(`⚙${features.plugins.length} plugins`));
69
+ return result + ellipsis.slice(0, ellipsisWidth);
70
+ };
71
+ const wrapAnsiHard = (value, maxWidth) => {
72
+ if (!value)
73
+ return [''];
74
+ const targetWidth = Math.max(1, Math.floor(maxWidth));
75
+ const result = [];
76
+ let current = '';
77
+ let visible = 0;
78
+ for (let index = 0; index < value.length; index += 1) {
79
+ const char = value[index];
80
+ if (char === '\u001B') {
81
+ ANSI_STICKY_PATTERN.lastIndex = index;
82
+ const match = ANSI_STICKY_PATTERN.exec(value);
83
+ if (match) {
84
+ current += match[0];
85
+ index = ANSI_STICKY_PATTERN.lastIndex - 1;
86
+ continue;
87
+ }
88
+ }
89
+ if (visible + 1 > targetWidth) {
90
+ result.push(current);
91
+ current = '';
92
+ visible = 0;
93
+ }
94
+ current += char;
95
+ visible += 1;
81
96
  }
82
- // Tool categories
83
- if (features.tools && features.tools.length > 0) {
84
- const totalTools = features.tools.reduce((sum, cat) => sum + cat.count, 0);
85
- parts.push(theme.primary(`⚒${totalTools} tools`));
97
+ if (current || !result.length) {
98
+ result.push(current);
86
99
  }
87
- // Session ID
88
- if (features.sessionId) {
89
- const shortId = features.sessionId.slice(0, 8);
90
- parts.push(theme.ui.muted(`#${shortId}`));
100
+ return result;
101
+ };
102
+ const wrapAnsiLine = (value, maxWidth) => {
103
+ if (!value)
104
+ return [''];
105
+ const targetWidth = Math.max(1, Math.floor(maxWidth));
106
+ const tokens = value.split(/(\s+)/);
107
+ const lines = [];
108
+ let current = '';
109
+ let visible = 0;
110
+ const pushCurrent = () => {
111
+ lines.push(current);
112
+ current = '';
113
+ visible = 0;
114
+ };
115
+ for (const token of tokens) {
116
+ if (!token)
117
+ continue;
118
+ const tokenVisible = visibleLength(token);
119
+ if (tokenVisible === 0) {
120
+ current += token;
121
+ continue;
122
+ }
123
+ if (visible + tokenVisible <= targetWidth) {
124
+ current += token;
125
+ visible += tokenVisible;
126
+ continue;
127
+ }
128
+ if (token.trim() === '') {
129
+ if (visible > 0) {
130
+ pushCurrent();
131
+ }
132
+ continue;
133
+ }
134
+ if (tokenVisible > targetWidth) {
135
+ if (visible > 0) {
136
+ pushCurrent();
137
+ }
138
+ const segments = wrapAnsiHard(token, targetWidth);
139
+ for (const segment of segments) {
140
+ const segmentVisible = visibleLength(segment);
141
+ if (segmentVisible >= targetWidth) {
142
+ lines.push(segment);
143
+ current = '';
144
+ visible = 0;
145
+ continue;
146
+ }
147
+ current = segment;
148
+ visible = segmentVisible;
149
+ }
150
+ continue;
151
+ }
152
+ if (visible > 0) {
153
+ pushCurrent();
154
+ }
155
+ current = token;
156
+ visible = tokenVisible;
91
157
  }
92
- if (!parts.length) {
93
- return '';
158
+ if (current || !lines.length) {
159
+ lines.push(current);
94
160
  }
95
- const sep = theme.ui.muted(' · ');
96
- const joined = parts.join(sep);
97
- const label = theme.ui.muted('Status');
98
- return `${label} ${joined}`;
161
+ return lines;
99
162
  };
100
- /**
101
- * Render keyboard shortcuts hint
102
- */
103
- const renderKeyboardHints = (_width) => {
104
- const hints = [
105
- { key: '⇧TAB', action: 'mode' },
106
- { key: '⌥V', action: 'verify' },
107
- { key: '⌥C', action: 'auto' },
108
- { key: 'PgUp/Dn', action: 'scroll' },
109
- { key: 'ESC', action: 'stop' },
163
+ const framedBlock = (lines, width) => {
164
+ const { innerWidth, contentWidth } = resolveFrameDimensions(width); // subtract inner padding spaces
165
+ // Enhanced double-line border with gradient
166
+ const topLeft = theme.gradient.warm('╔');
167
+ const topRight = theme.gradient.warm('╗');
168
+ const bottomLeft = theme.gradient.cool('');
169
+ const bottomRight = theme.gradient.cool('');
170
+ const hLine = theme.ui.border(''.repeat(innerWidth));
171
+ const top = `${topLeft}${hLine}${topRight}`;
172
+ const bottom = `${bottomLeft}${hLine}${bottomRight}`;
173
+ const body = lines
174
+ .flatMap((line) => wrapAnsiLine(line, contentWidth))
175
+ .map((line) => {
176
+ const padding = Math.max(0, contentWidth - visibleLength(line));
177
+ return `${theme.gradient.warm('║')} ${line}${' '.repeat(padding)} ${theme.gradient.cool('║')}`;
178
+ });
179
+ return [top, ...body, bottom].join('\n');
180
+ };
181
+ export const renderSessionFrame = (props) => {
182
+ const versionStr = props.version ? `v${props.version}` : 'live';
183
+ const profile = props.profileLabel || props.profileName || 'Default';
184
+ const modelLabel = props.model;
185
+ const { contentWidth } = resolveFrameDimensions(props.width);
186
+ const versionPrefix = visibleLength('⚡ EROSOLAR CLI ─ ');
187
+ const profilePrefix = visibleLength('┌─ ● Profile ');
188
+ const modelPrefix = visibleLength('├─ ◆ Model ');
189
+ const workspacePrefix = visibleLength('├─ ◈ Workspace ');
190
+ const commandsPrefix = visibleLength('└─ ▸ Commands ');
191
+ const versionBudget = Math.max(4, contentWidth - versionPrefix);
192
+ const profileBudget = Math.max(4, contentWidth - profilePrefix);
193
+ const modelBudget = Math.max(4, contentWidth - modelPrefix);
194
+ const workspaceBudget = Math.max(4, contentWidth - workspacePrefix);
195
+ const commandsBudget = Math.max(4, contentWidth - commandsPrefix);
196
+ const version = truncateAnsi(theme.accent(versionStr), versionBudget);
197
+ const profileValue = truncateAnsi(theme.info(profile), profileBudget);
198
+ const modelValue = truncateAnsi(`${theme.info(modelLabel)} ${theme.ui.muted('via')} ${theme.accent(props.provider)}`, modelBudget);
199
+ const workspace = abbreviatePath(props.workspace, workspaceBudget);
200
+ const shortcuts = truncateAnsi(theme.ui.muted('/help · /model · /clear · /quit'), commandsBudget);
201
+ // Enhanced visual elements with icons
202
+ const lines = [
203
+ `${theme.gradient.warm('⚡')} ${theme.gradient.cool('EROSOLAR')} ${theme.gradient.warm('CLI')} ${theme.ui.muted('─')} ${version}`,
204
+ `${theme.ui.muted('┌─')} ${theme.success('●')} ${theme.ui.muted('Profile')} ${profileValue}`,
205
+ `${theme.ui.muted('├─')} ${theme.warning('◆')} ${theme.ui.muted('Model')} ${modelValue}`,
206
+ `${theme.ui.muted('├─')} ${theme.info('◈')} ${theme.ui.muted('Workspace')} ${workspace}`,
207
+ `${theme.ui.muted('└─')} ${theme.accent('▸')} ${theme.ui.muted('Commands')} ${shortcuts}`,
110
208
  ];
111
- const parts = hints.map(h => `${theme.ui.muted(h.key)}${theme.ui.muted(':')}${theme.ui.muted(h.action)}`);
112
- const sep = theme.ui.muted(' ');
113
- const joined = parts.join(sep);
114
- return `${theme.ui.muted('Keys')} ${joined}`;
209
+ return framedBlock(lines, props.width);
115
210
  };
116
211
  // renderLiveFrame removed - unified session frame is now the only frame
117
212
  export const renderDivider = (width, label) => {
118
- const maxWidth = clampWidth(width, 16, 140);
213
+ const maxWidth = normalizeWidth(width, 16, 140);
119
214
  if (!label) {
215
+ // Full horizontal line (Claude Code style)
120
216
  return theme.ui.muted('─'.repeat(maxWidth));
121
217
  }
122
- const cleanLabel = theme.ui.muted(`[${label}]`);
218
+ const labelMaxWidth = Math.max(1, maxWidth - 4);
219
+ const cleanLabel = truncateAnsi(theme.accent(`◆ ${label} ◆`), labelMaxWidth);
123
220
  const labelLen = visibleLength(cleanLabel);
124
- const side = Math.max(2, Math.floor((maxWidth - labelLen - 2) / 2));
125
- const left = '─'.repeat(side);
126
- const right = '─'.repeat(Math.max(0, maxWidth - side - labelLen - 2));
127
- return theme.ui.muted(`${left} ${cleanLabel} ${right}`);
221
+ const remaining = Math.max(0, maxWidth - labelLen - 2);
222
+ const leftLen = Math.max(0, Math.floor(remaining / 2));
223
+ const rightLen = Math.max(0, remaining - leftLen);
224
+ const left = leftLen > 0 ? theme.ui.muted('─'.repeat(leftLen)) : '';
225
+ const right = rightLen > 0 ? theme.ui.muted('─'.repeat(rightLen)) : '';
226
+ const leftSpace = leftLen > 0 ? ' ' : '';
227
+ const rightSpace = rightLen > 0 ? ' ' : '';
228
+ return `${left}${leftSpace}${cleanLabel}${rightSpace}${right}`;
128
229
  };
129
230
  export const renderStatusLine = (parts, width) => {
130
231
  const segments = parts
@@ -133,7 +234,7 @@ export const renderStatusLine = (parts, width) => {
133
234
  // Join with muted separators for consistent rhythm
134
235
  const separator = theme.ui.muted(' · ');
135
236
  const joined = segments.join(separator);
136
- const maxLen = clampWidth(width, 8, 180);
237
+ const maxLen = normalizeWidth(width, 8, 180);
137
238
  if (visibleLength(joined) <= maxLen) {
138
239
  return joined;
139
240
  }
@@ -145,7 +246,8 @@ export const renderStatusLine = (parts, width) => {
145
246
  }
146
247
  result = next;
147
248
  }
148
- return result || segments.slice(0, 1).join('');
249
+ const fallback = result || segments[0] || '';
250
+ return truncateAnsi(fallback, maxLen);
149
251
  };
150
252
  const colorize = (text, tone) => {
151
253
  switch (tone) {
@@ -165,16 +267,25 @@ const colorize = (text, tone) => {
165
267
  const abbreviatePath = (path, maxLen) => {
166
268
  if (!path)
167
269
  return '';
168
- if (visibleLength(path) <= maxLen)
270
+ const targetWidth = Math.max(1, Math.floor(maxLen));
271
+ if (visibleLength(path) <= targetWidth)
169
272
  return path;
273
+ if (targetWidth <= 4)
274
+ return truncateAnsi(path, targetWidth);
170
275
  const parts = path.split('/').filter(Boolean);
171
276
  if (parts.length <= 2) {
172
- return `${path.slice(0, maxLen - 3)}...`;
277
+ return truncateAnsi(path, targetWidth);
173
278
  }
174
279
  const first = parts[0] ?? '';
175
280
  const last = parts[parts.length - 1] ?? '';
176
- const middleBudget = Math.max(0, maxLen - visibleLength(first) - visibleLength(last) - 7);
281
+ const ellipsis = '...';
282
+ const baseLength = visibleLength(first) + visibleLength(last) + ellipsis.length + 2; // slashes around ellipsis
283
+ if (baseLength >= targetWidth) {
284
+ return truncateAnsi(path, targetWidth);
285
+ }
286
+ const middleBudget = Math.max(0, targetWidth - baseLength - 1); // extra slash before last when middle exists
177
287
  const middle = middleBudget > 0 ? parts.slice(1, -1).join('/').slice(0, middleBudget) : '';
178
- return `${first}/.../${middle ? `${middle}/` : ''}${last}`;
288
+ const abbreviated = `${first}/${ellipsis}/${middle ? `${middle}/` : ''}${last}`;
289
+ return visibleLength(abbreviated) > targetWidth ? truncateAnsi(abbreviated, targetWidth) : abbreviated;
179
290
  };
180
291
  //# sourceMappingURL=layout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../src/ui/unified/layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../src/ui/unified/layout.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "erosolar-cli",
3
- "version": "1.7.355",
3
+ "version": "1.7.356",
4
4
  "description": "Unified AI agent framework for the command line - Multi-provider support with schema-driven tools, code intelligence, and transparent reasoning",
5
5
  "main": "dist/bin/erosolar.js",
6
6
  "type": "module",
@@ -97,13 +97,13 @@
97
97
  ],
98
98
  "author": "Independent Security Research Collective",
99
99
  "license": "MIT",
100
- "homepage": "https://github.com/ErosolarAI/erosolar#readme",
100
+ "homepage": "https://github.com/ErosolarAI/erosolar-by-bo#readme",
101
101
  "bugs": {
102
- "url": "https://github.com/ErosolarAI/erosolar/issues"
102
+ "url": "https://github.com/ErosolarAI/erosolar-by-bo/issues"
103
103
  },
104
104
  "repository": {
105
105
  "type": "git",
106
- "url": "git+https://github.com/ErosolarAI/erosolar.git"
106
+ "url": "git+https://github.com/ErosolarAI/erosolar-by-bo.git"
107
107
  },
108
108
  "engines": {
109
109
  "node": ">=20.0.0"
@@ -0,0 +1,178 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Security Capabilities Deployment Script
5
+ *
6
+ * Deploys and configures complete security testing capabilities.
7
+ */
8
+
9
+ import { UltimateSecurityCapabilityModule } from '../dist/capabilities/ultimateSecurityCapability.js';
10
+ import { AuthorizationManager } from '../dist/security/authorization.js';
11
+
12
+ /**
13
+ * Deploy security capabilities
14
+ */
15
+ async function deploySecurityCapabilities() {
16
+ console.log('🚀 DEPLOYING SECURITY CAPABILITIES');
17
+ console.log('='.repeat(60));
18
+
19
+ try {
20
+ // Check environment configuration
21
+ console.log('\n🔧 Checking Environment Configuration...');
22
+
23
+ const authToken = process.env.SECURITY_AUTHORIZATION_TOKEN;
24
+ const bypassAuth = process.env.BYPASS_AUTHORIZATION === 'true';
25
+
26
+ if (!authToken && !bypassAuth) {
27
+ console.warn('⚠️ SECURITY_AUTHORIZATION_TOKEN not set in environment');
28
+ console.log('💡 Set environment variable: export SECURITY_AUTHORIZATION_TOKEN="your-token"');
29
+ console.log('💡 Or set BYPASS_AUTHORIZATION=true for development (NOT RECOMMENDED)');
30
+ } else if (bypassAuth) {
31
+ console.warn('⚠️ AUTHORIZATION BYPASSED - FOR DEVELOPMENT ONLY');
32
+ } else {
33
+ console.log('✅ Authorization token configured');
34
+ }
35
+
36
+ // Create authorization manager
37
+ console.log('\n🔐 Creating Authorization Manager...');
38
+ const authManager = new AuthorizationManager();
39
+
40
+ // Create ultimate security capability
41
+ console.log('\n🏗️ Creating Ultimate Security Capability...');
42
+ const ultimateSecurity = new UltimateSecurityCapabilityModule({
43
+ enableExploitation: true,
44
+ enableAdvancedExploitation: true,
45
+ enablePayloadGeneration: true,
46
+ requireAuthorization: true,
47
+ authorizationManager: authManager,
48
+ description: 'Complete security testing capabilities deployed via script'
49
+ });
50
+
51
+ // Display deployment summary
52
+ console.log('\n📊 DEPLOYMENT SUMMARY');
53
+ console.log('-'.repeat(40));
54
+ console.log(`Capability ID: ${ultimateSecurity.id}`);
55
+ console.log('Configuration:');
56
+ console.log(' - enableExploitation: true');
57
+ console.log(' - enableAdvancedExploitation: true');
58
+ console.log(' - enablePayloadGeneration: true');
59
+ console.log(' - requireAuthorization: true');
60
+
61
+ console.log('\n🔧 Available Tools:');
62
+ console.log(' Authorization Tools (3):');
63
+ console.log(' - request_security_authorization');
64
+ console.log(' - get_authorization_status');
65
+ console.log(' - generate_authorization_report');
66
+
67
+ console.log('\n Real Security Tools (11):');
68
+ console.log(' - real_scan_network');
69
+ console.log(' - real_scan_vulnerabilities');
70
+ console.log(' - real_exploit_sql_injection');
71
+ console.log(' - real_exploit_xss');
72
+ console.log(' - real_exploit_ssh');
73
+ console.log(' - real_exploit_ftp');
74
+ console.log(' - real_exploit_smb');
75
+ console.log(' - real_implement_persistence');
76
+ console.log(' - real_detect_persistence');
77
+ console.log(' - real_remove_persistence');
78
+ console.log(' - real_generate_security_report');
79
+
80
+ console.log('\n Offensive Security Tools (8):');
81
+ console.log(' - generate_reverse_shell');
82
+ console.log(' - create_fileless_persistence');
83
+ console.log(' - deploy_web_shell');
84
+ console.log(' - create_scheduled_persistence');
85
+ console.log(' - generate_obfuscated_payloads');
86
+ console.log(' - setup_dns_tunneling');
87
+ console.log(' - generate_phishing_templates');
88
+ console.log(' - create_backdoor_user');
89
+
90
+ console.log('\n📋 Total: 22 Security Testing Tools');
91
+
92
+ // Test authorization status
93
+ console.log('\n🔍 Testing Authorization Status...');
94
+ const authStatus = authManager.getAuthorizationStatus();
95
+ console.log(`Authorization Status: ${authStatus.authorized ? 'AUTHORIZED' : 'NOT AUTHORIZED'}`);
96
+ if (authStatus.reason) {
97
+ console.log(`Reason: ${authStatus.reason}`);
98
+ }
99
+
100
+ // Generate deployment report
101
+ console.log('\n📄 Generating Deployment Report...');
102
+ const deploymentReport = generateDeploymentReport(ultimateSecurity, authManager);
103
+ console.log(deploymentReport);
104
+
105
+ console.log('\n✅ SECURITY CAPABILITIES DEPLOYMENT COMPLETED');
106
+ console.log('='.repeat(60));
107
+
108
+ console.log('\n💡 Next Steps:');
109
+ console.log(' 1. Request authorization using request_security_authorization');
110
+ console.log(' 2. Define testing scope and targets');
111
+ console.log(' 3. Begin security testing activities');
112
+ console.log(' 4. Generate comprehensive reports');
113
+ console.log(' 5. Follow responsible disclosure practices');
114
+
115
+ } catch (error) {
116
+ console.error('❌ Deployment failed:', error);
117
+ process.exit(1);
118
+ }
119
+ }
120
+
121
+ /**
122
+ * Generate deployment report
123
+ */
124
+ function generateDeploymentReport(capability, authManager) {
125
+ let report = 'SECURITY CAPABILITIES DEPLOYMENT REPORT\n';
126
+ report += '='.repeat(50) + '\n';
127
+ report += `Deployment Time: ${new Date().toISOString()}\n`;
128
+ report += `Capability ID: ${capability.id}\n`;
129
+ report += `\nConfiguration:\n`;
130
+ report += ` - enableExploitation: true\n`;
131
+ report += ` - enableAdvancedExploitation: true\n`;
132
+ report += ` - enablePayloadGeneration: true\n`;
133
+ report += ` - requireAuthorization: true\n`;
134
+
135
+ const authStatus = authManager.getAuthorizationStatus();
136
+ report += `\nAuthorization Status: ${authStatus.authorized ? 'ACTIVE' : 'INACTIVE'}\n`;
137
+ if (authStatus.reason) {
138
+ report += `Authorization Reason: ${authStatus.reason}\n`;
139
+ }
140
+
141
+ report += `\nAvailable Tools: 22\n`;
142
+ report += ` - Authorization: 3 tools\n`;
143
+ report += ` - Real Security: 11 tools\n`;
144
+ report += ` - Offensive Security: 8 tools\n`;
145
+
146
+ report += `\nLegal Notice:\n`;
147
+ report += `All security testing tools require explicit authorization and scope definition.\n`;
148
+ report += `Intended for legitimate security testing, red team exercises, and authorized penetration testing only.\n`;
149
+ report += `Unauthorized use is illegal and unethical.\n`;
150
+
151
+ return report;
152
+ }
153
+
154
+ /**
155
+ * Main deployment function
156
+ */
157
+ async function main() {
158
+ console.log('🔒 Erosolar CLI Security Capabilities Deployment');
159
+ console.log('='.repeat(60));
160
+
161
+ await deploySecurityCapabilities();
162
+
163
+ console.log('\n🎉 Deployment completed successfully!');
164
+ console.log('\n📚 Documentation:');
165
+ console.log(' - docs/OFFENSIVE_SECURITY_CAPABILITIES.md');
166
+ console.log(' - examples/ultimate-security-testing.ts');
167
+ console.log(' - config/security-deployment.json');
168
+ }
169
+
170
+ // Run deployment
171
+ if (import.meta.url === `file://${process.argv[1]}`) {
172
+ main().catch(error => {
173
+ console.error('❌ Deployment failed:', error);
174
+ process.exit(1);
175
+ });
176
+ }
177
+
178
+ export { deploySecurityCapabilities };