erosolar-cli 1.7.55 → 1.7.57

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 (273) hide show
  1. package/dist/shell/unifiedInputProcessor.d.ts +15 -12
  2. package/dist/shell/unifiedInputProcessor.d.ts.map +1 -1
  3. package/dist/shell/unifiedInputProcessor.js +45 -72
  4. package/dist/shell/unifiedInputProcessor.js.map +1 -1
  5. package/package.json +4 -4
  6. package/dist/active-stack-security.d.ts +0 -110
  7. package/dist/active-stack-security.js +0 -313
  8. package/dist/active-stack-security.js.map +0 -1
  9. package/dist/advanced-targeting.d.ts +0 -113
  10. package/dist/advanced-targeting.js +0 -252
  11. package/dist/advanced-targeting.js.map +0 -1
  12. package/dist/bin/adapters/node/index.js +0 -33
  13. package/dist/bin/adapters/types.js +0 -1
  14. package/dist/bin/alpha-zero/agentWrapper.js +0 -165
  15. package/dist/bin/alpha-zero/codeEvaluator.js +0 -272
  16. package/dist/bin/alpha-zero/competitiveRunner.js +0 -219
  17. package/dist/bin/alpha-zero/index.js +0 -98
  18. package/dist/bin/alpha-zero/introspection.js +0 -298
  19. package/dist/bin/alpha-zero/metricsTracker.js +0 -207
  20. package/dist/bin/alpha-zero/security/core.js +0 -269
  21. package/dist/bin/alpha-zero/security/google.js +0 -308
  22. package/dist/bin/alpha-zero/security/googleLoader.js +0 -40
  23. package/dist/bin/alpha-zero/security/index.js +0 -31
  24. package/dist/bin/alpha-zero/security/simulation.js +0 -274
  25. package/dist/bin/alpha-zero/selfModification.js +0 -231
  26. package/dist/bin/alpha-zero/types.js +0 -30
  27. package/dist/bin/bin/erosolar-optimized.js +0 -205
  28. package/dist/bin/capabilities/agentSpawningCapability.js +0 -116
  29. package/dist/bin/capabilities/bashCapability.js +0 -22
  30. package/dist/bin/capabilities/cloudCapability.js +0 -36
  31. package/dist/bin/capabilities/codeAnalysisCapability.js +0 -22
  32. package/dist/bin/capabilities/codeQualityCapability.js +0 -23
  33. package/dist/bin/capabilities/dependencySecurityCapability.js +0 -22
  34. package/dist/bin/capabilities/devCapability.js +0 -22
  35. package/dist/bin/capabilities/editCapability.js +0 -28
  36. package/dist/bin/capabilities/emailCapability.js +0 -20
  37. package/dist/bin/capabilities/enhancedGitCapability.js +0 -221
  38. package/dist/bin/capabilities/filesystemCapability.js +0 -22
  39. package/dist/bin/capabilities/globCapability.js +0 -28
  40. package/dist/bin/capabilities/interactionCapability.js +0 -20
  41. package/dist/bin/capabilities/learnCapability.js +0 -22
  42. package/dist/bin/capabilities/mcpCapability.js +0 -20
  43. package/dist/bin/capabilities/notebookCapability.js +0 -28
  44. package/dist/bin/capabilities/planningCapability.js +0 -27
  45. package/dist/bin/capabilities/refactoringCapability.js +0 -23
  46. package/dist/bin/capabilities/repoChecksCapability.js +0 -22
  47. package/dist/bin/capabilities/searchCapability.js +0 -22
  48. package/dist/bin/capabilities/skillCapability.js +0 -76
  49. package/dist/bin/capabilities/taskManagementCapability.js +0 -20
  50. package/dist/bin/capabilities/testingCapability.js +0 -23
  51. package/dist/bin/capabilities/toolManifest.js +0 -159
  52. package/dist/bin/capabilities/toolRegistry.js +0 -114
  53. package/dist/bin/capabilities/webCapability.js +0 -20
  54. package/dist/bin/config.js +0 -139
  55. package/dist/bin/contracts/v1/agent.js +0 -7
  56. package/dist/bin/contracts/v1/agentProfileManifest.js +0 -8
  57. package/dist/bin/contracts/v1/agentRules.js +0 -9
  58. package/dist/bin/contracts/v1/toolAccess.js +0 -8
  59. package/dist/bin/erosolar-optimized.d.ts +0 -12
  60. package/dist/bin/erosolar-optimized.d.ts.map +0 -1
  61. package/dist/bin/erosolar-optimized.js +0 -239
  62. package/dist/bin/erosolar-optimized.js.map +0 -1
  63. package/dist/bin/headless/headlessApp.js +0 -172
  64. package/dist/bin/mcp/config.js +0 -202
  65. package/dist/bin/mcp/stdioClient.js +0 -172
  66. package/dist/bin/mcp/toolBridge.js +0 -104
  67. package/dist/bin/mcp/types.js +0 -1
  68. package/dist/bin/plugins/index.js +0 -113
  69. package/dist/bin/plugins/providers/anthropic/index.js +0 -25
  70. package/dist/bin/plugins/providers/deepseek/index.js +0 -24
  71. package/dist/bin/plugins/providers/google/index.js +0 -26
  72. package/dist/bin/plugins/providers/index.js +0 -19
  73. package/dist/bin/plugins/providers/ollama/index.js +0 -59
  74. package/dist/bin/plugins/providers/openai/index.js +0 -26
  75. package/dist/bin/plugins/providers/xai/index.js +0 -24
  76. package/dist/bin/plugins/tools/agentSpawning/agentSpawningPlugin.js +0 -8
  77. package/dist/bin/plugins/tools/bash/localBashPlugin.js +0 -13
  78. package/dist/bin/plugins/tools/checks/localRepoChecksPlugin.js +0 -13
  79. package/dist/bin/plugins/tools/cloud/cloudPlugin.js +0 -13
  80. package/dist/bin/plugins/tools/codeAnalysis/codeAnalysisPlugin.js +0 -13
  81. package/dist/bin/plugins/tools/codeQuality/codeQualityPlugin.js +0 -13
  82. package/dist/bin/plugins/tools/dependency/dependencyPlugin.js +0 -11
  83. package/dist/bin/plugins/tools/development/devPlugin.js +0 -13
  84. package/dist/bin/plugins/tools/edit/editPlugin.js +0 -14
  85. package/dist/bin/plugins/tools/email/emailPlugin.js +0 -11
  86. package/dist/bin/plugins/tools/enhancedGit/enhancedGitPlugin.js +0 -8
  87. package/dist/bin/plugins/tools/filesystem/localFilesystemPlugin.js +0 -13
  88. package/dist/bin/plugins/tools/glob/globPlugin.js +0 -14
  89. package/dist/bin/plugins/tools/index.js +0 -2
  90. package/dist/bin/plugins/tools/interaction/interactionPlugin.js +0 -11
  91. package/dist/bin/plugins/tools/learn/learnPlugin.js +0 -13
  92. package/dist/bin/plugins/tools/mcp/mcpPlugin.js +0 -8
  93. package/dist/bin/plugins/tools/nodeDefaults.js +0 -56
  94. package/dist/bin/plugins/tools/notebook/notebookPlugin.js +0 -14
  95. package/dist/bin/plugins/tools/planning/planningPlugin.js +0 -14
  96. package/dist/bin/plugins/tools/refactoring/refactoringPlugin.js +0 -11
  97. package/dist/bin/plugins/tools/registry.js +0 -57
  98. package/dist/bin/plugins/tools/search/localSearchPlugin.js +0 -13
  99. package/dist/bin/plugins/tools/skills/skillPlugin.js +0 -8
  100. package/dist/bin/plugins/tools/taskManagement/taskManagementPlugin.js +0 -11
  101. package/dist/bin/plugins/tools/testing/testingPlugin.js +0 -11
  102. package/dist/bin/plugins/tools/web/webPlugin.js +0 -11
  103. package/dist/bin/providers/anthropicProvider.js +0 -329
  104. package/dist/bin/providers/googleProvider.js +0 -203
  105. package/dist/bin/providers/openaiChatCompletionsProvider.js +0 -208
  106. package/dist/bin/providers/openaiResponsesProvider.js +0 -249
  107. package/dist/bin/providers/providerFactory.js +0 -24
  108. package/dist/bin/runtime/agentController.js +0 -321
  109. package/dist/bin/runtime/agentHost.js +0 -153
  110. package/dist/bin/runtime/agentSession.js +0 -195
  111. package/dist/bin/runtime/node.js +0 -10
  112. package/dist/bin/runtime/universal.js +0 -28
  113. package/dist/bin/skills/skillRepository.js +0 -236
  114. package/dist/bin/skills/types.js +0 -1
  115. package/dist/bin/subagents/taskRunner.js +0 -269
  116. package/dist/bin/tools/backgroundBashTools.js +0 -211
  117. package/dist/bin/tools/bashTools.js +0 -159
  118. package/dist/bin/tools/cloudTools.js +0 -864
  119. package/dist/bin/tools/codeAnalysisTools.js +0 -641
  120. package/dist/bin/tools/codeQualityTools.js +0 -294
  121. package/dist/bin/tools/dependencyTools.js +0 -282
  122. package/dist/bin/tools/devTools.js +0 -238
  123. package/dist/bin/tools/diffUtils.js +0 -137
  124. package/dist/bin/tools/editTools.js +0 -134
  125. package/dist/bin/tools/emailTools.js +0 -448
  126. package/dist/bin/tools/fileTools.js +0 -282
  127. package/dist/bin/tools/globTools.js +0 -173
  128. package/dist/bin/tools/grepTools.js +0 -332
  129. package/dist/bin/tools/interactionTools.js +0 -170
  130. package/dist/bin/tools/learnTools.js +0 -1818
  131. package/dist/bin/tools/notebookEditTools.js +0 -196
  132. package/dist/bin/tools/planningTools.js +0 -46
  133. package/dist/bin/tools/refactoringTools.js +0 -293
  134. package/dist/bin/tools/repoChecksTools.js +0 -160
  135. package/dist/bin/tools/searchTools.js +0 -206
  136. package/dist/bin/tools/skillTools.js +0 -177
  137. package/dist/bin/tools/taskManagementTools.js +0 -156
  138. package/dist/bin/tools/testingTools.js +0 -232
  139. package/dist/bin/tools/webTools.js +0 -480
  140. package/dist/bin/workspace.js +0 -106
  141. package/dist/bin/workspace.validator.js +0 -213
  142. package/dist/capabilities/offensiveSecurityCapability.d.ts +0 -26
  143. package/dist/capabilities/offensiveSecurityCapability.d.ts.map +0 -1
  144. package/dist/capabilities/offensiveSecurityCapability.js +0 -58
  145. package/dist/capabilities/offensiveSecurityCapability.js.map +0 -1
  146. package/dist/capabilities/realSecurityCapability.d.ts +0 -26
  147. package/dist/capabilities/realSecurityCapability.d.ts.map +0 -1
  148. package/dist/capabilities/realSecurityCapability.js +0 -53
  149. package/dist/capabilities/realSecurityCapability.js.map +0 -1
  150. package/dist/capabilities/securityCapability.d.ts +0 -32
  151. package/dist/capabilities/securityCapability.d.ts.map +0 -1
  152. package/dist/capabilities/securityCapability.js +0 -57
  153. package/dist/capabilities/securityCapability.js.map +0 -1
  154. package/dist/capabilities/ultimateSecurityCapability.d.ts +0 -42
  155. package/dist/capabilities/ultimateSecurityCapability.d.ts.map +0 -1
  156. package/dist/capabilities/ultimateSecurityCapability.js +0 -96
  157. package/dist/capabilities/ultimateSecurityCapability.js.map +0 -1
  158. package/dist/core/designThoughtCheck.d.ts +0 -196
  159. package/dist/core/designThoughtCheck.d.ts.map +0 -1
  160. package/dist/core/designThoughtCheck.js +0 -287
  161. package/dist/core/designThoughtCheck.js.map +0 -1
  162. package/dist/core/designThoughtCheckEngine.d.ts +0 -58
  163. package/dist/core/designThoughtCheckEngine.d.ts.map +0 -1
  164. package/dist/core/designThoughtCheckEngine.js +0 -358
  165. package/dist/core/designThoughtCheckEngine.js.map +0 -1
  166. package/dist/core/designThoughtCheckIntegration.d.ts +0 -103
  167. package/dist/core/designThoughtCheckIntegration.d.ts.map +0 -1
  168. package/dist/core/designThoughtCheckIntegration.js +0 -207
  169. package/dist/core/designThoughtCheckIntegration.js.map +0 -1
  170. package/dist/core/intelligenceTools.d.ts +0 -19
  171. package/dist/core/intelligenceTools.d.ts.map +0 -1
  172. package/dist/core/intelligenceTools.js +0 -453
  173. package/dist/core/intelligenceTools.js.map +0 -1
  174. package/dist/core/operationalTools.d.ts +0 -19
  175. package/dist/core/operationalTools.d.ts.map +0 -1
  176. package/dist/core/operationalTools.js +0 -467
  177. package/dist/core/operationalTools.js.map +0 -1
  178. package/dist/offensive/core/offensive-engine.d.ts +0 -171
  179. package/dist/offensive/core/offensive-engine.d.ts.map +0 -1
  180. package/dist/offensive/core/offensive-engine.js +0 -345
  181. package/dist/offensive/core/offensive-engine.js.map +0 -1
  182. package/dist/offensive/core/offensive-integration.d.ts +0 -129
  183. package/dist/offensive/core/offensive-integration.d.ts.map +0 -1
  184. package/dist/offensive/core/offensive-integration.js +0 -364
  185. package/dist/offensive/core/offensive-integration.js.map +0 -1
  186. package/dist/offensive/core/offensive-tools.d.ts +0 -55
  187. package/dist/offensive/core/offensive-tools.d.ts.map +0 -1
  188. package/dist/offensive/core/offensive-tools.js +0 -438
  189. package/dist/offensive/core/offensive-tools.js.map +0 -1
  190. package/dist/offensive/offensive-cli.d.ts +0 -48
  191. package/dist/offensive/offensive-cli.d.ts.map +0 -1
  192. package/dist/offensive/offensive-cli.js +0 -233
  193. package/dist/offensive/offensive-cli.js.map +0 -1
  194. package/dist/security/apt-simulation-cli.d.ts +0 -57
  195. package/dist/security/apt-simulation-cli.d.ts.map +0 -1
  196. package/dist/security/apt-simulation-cli.js +0 -278
  197. package/dist/security/apt-simulation-cli.js.map +0 -1
  198. package/dist/security/apt-simulation-engine-complete.d.ts +0 -97
  199. package/dist/security/apt-simulation-engine-complete.d.ts.map +0 -1
  200. package/dist/security/apt-simulation-engine-complete.js +0 -441
  201. package/dist/security/apt-simulation-engine-complete.js.map +0 -1
  202. package/dist/security/apt-simulation-engine.d.ts +0 -97
  203. package/dist/security/apt-simulation-engine.d.ts.map +0 -1
  204. package/dist/security/apt-simulation-engine.js +0 -441
  205. package/dist/security/apt-simulation-engine.js.map +0 -1
  206. package/dist/security/authorization.d.ts +0 -45
  207. package/dist/security/authorization.d.ts.map +0 -1
  208. package/dist/security/authorization.js +0 -128
  209. package/dist/security/authorization.js.map +0 -1
  210. package/dist/security/comprehensive-security-research.d.ts +0 -84
  211. package/dist/security/comprehensive-security-research.d.ts.map +0 -1
  212. package/dist/security/comprehensive-security-research.js +0 -211
  213. package/dist/security/comprehensive-security-research.js.map +0 -1
  214. package/dist/security/offensive/exploitationEngine.d.ts +0 -54
  215. package/dist/security/offensive/exploitationEngine.d.ts.map +0 -1
  216. package/dist/security/offensive/exploitationEngine.js +0 -263
  217. package/dist/security/offensive/exploitationEngine.js.map +0 -1
  218. package/dist/security/real/networkExploitation.d.ts +0 -92
  219. package/dist/security/real/networkExploitation.d.ts.map +0 -1
  220. package/dist/security/real/networkExploitation.js +0 -316
  221. package/dist/security/real/networkExploitation.js.map +0 -1
  222. package/dist/security/real/persistenceImplementation.d.ts +0 -62
  223. package/dist/security/real/persistenceImplementation.d.ts.map +0 -1
  224. package/dist/security/real/persistenceImplementation.js +0 -323
  225. package/dist/security/real/persistenceImplementation.js.map +0 -1
  226. package/dist/security/real/vulnerabilityScanner.d.ts +0 -73
  227. package/dist/security/real/vulnerabilityScanner.d.ts.map +0 -1
  228. package/dist/security/real/vulnerabilityScanner.js +0 -341
  229. package/dist/security/real/vulnerabilityScanner.js.map +0 -1
  230. package/dist/shell/capturePastePatch.d.ts +0 -9
  231. package/dist/shell/capturePastePatch.d.ts.map +0 -1
  232. package/dist/shell/capturePastePatch.js +0 -98
  233. package/dist/shell/capturePastePatch.js.map +0 -1
  234. package/dist/shell/enhancedInteractiveShell.d.ts +0 -90
  235. package/dist/shell/enhancedInteractiveShell.d.ts.map +0 -1
  236. package/dist/shell/enhancedInteractiveShell.js +0 -248
  237. package/dist/shell/enhancedInteractiveShell.js.map +0 -1
  238. package/dist/shell/inputProcessor.d.ts +0 -56
  239. package/dist/shell/inputProcessor.d.ts.map +0 -1
  240. package/dist/shell/inputProcessor.js +0 -172
  241. package/dist/shell/inputProcessor.js.map +0 -1
  242. package/dist/shell/interactiveShell-patch.d.ts +0 -27
  243. package/dist/shell/interactiveShell-patch.d.ts.map +0 -1
  244. package/dist/shell/interactiveShell-patch.js +0 -38
  245. package/dist/shell/interactiveShell-patch.js.map +0 -1
  246. package/dist/shell/interactiveShell-robust.d.ts +0 -26
  247. package/dist/shell/interactiveShell-robust.d.ts.map +0 -1
  248. package/dist/shell/interactiveShell-robust.js +0 -34
  249. package/dist/shell/interactiveShell-robust.js.map +0 -1
  250. package/dist/shell/multiLinePasteManager.d.ts +0 -106
  251. package/dist/shell/multiLinePasteManager.d.ts.map +0 -1
  252. package/dist/shell/multiLinePasteManager.js +0 -308
  253. package/dist/shell/multiLinePasteManager.js.map +0 -1
  254. package/dist/shell/processInputBlockPatch.d.ts +0 -8
  255. package/dist/shell/processInputBlockPatch.d.ts.map +0 -1
  256. package/dist/shell/processInputBlockPatch.js +0 -133
  257. package/dist/shell/processInputBlockPatch.js.map +0 -1
  258. package/dist/tools/enhancedSecurityTools.d.ts +0 -19
  259. package/dist/tools/enhancedSecurityTools.d.ts.map +0 -1
  260. package/dist/tools/enhancedSecurityTools.js +0 -215
  261. package/dist/tools/enhancedSecurityTools.js.map +0 -1
  262. package/dist/tools/offensiveSecurityTools.d.ts +0 -16
  263. package/dist/tools/offensiveSecurityTools.d.ts.map +0 -1
  264. package/dist/tools/offensiveSecurityTools.js +0 -285
  265. package/dist/tools/offensiveSecurityTools.js.map +0 -1
  266. package/dist/tools/realSecurityTools.d.ts +0 -18
  267. package/dist/tools/realSecurityTools.d.ts.map +0 -1
  268. package/dist/tools/realSecurityTools.js +0 -468
  269. package/dist/tools/realSecurityTools.js.map +0 -1
  270. package/dist/tools/securityTools.d.ts +0 -20
  271. package/dist/tools/securityTools.d.ts.map +0 -1
  272. package/dist/tools/securityTools.js +0 -449
  273. package/dist/tools/securityTools.js.map +0 -1
@@ -1,23 +1,26 @@
1
1
  import { Readline } from 'readline/promises';
2
- export interface UnifiedInputResult {
2
+ export type DisplayFormat = 'inline' | 'block' | 'paste-chip';
3
+ export interface ProcessedInput {
3
4
  content: string;
4
5
  isMultiLine: boolean;
6
+ displayFormat: DisplayFormat;
5
7
  lineCount: number;
6
- displayFormat: 'inline' | 'block' | 'paste-chip';
7
8
  summary?: string;
8
9
  }
9
10
  export declare class UnifiedInputProcessor {
10
11
  private rl;
11
- private readonly MAX_INLINE_LINES;
12
- private readonly MAX_SUMMARY_LENGTH;
13
- private pasteBuffer;
14
- private isPasting;
15
12
  constructor(rl: Readline);
16
- private setupPasteListeners;
17
- processInput(input: string): UnifiedInputResult;
18
- private determineDisplayFormat;
19
- private generateSummary;
20
- private getContentType;
21
- formatForDisplay(result: UnifiedInputResult): string;
13
+ /**
14
+ * Process input and determine how it should be displayed
15
+ */
16
+ processInput(input: string): ProcessedInput;
17
+ /**
18
+ * Format processed input for display in the terminal
19
+ */
20
+ formatForDisplay(processed: ProcessedInput): string;
21
+ /**
22
+ * Get the full content to send (always the original content)
23
+ */
24
+ getContentToSend(processed: ProcessedInput): string;
22
25
  }
23
26
  //# sourceMappingURL=unifiedInputProcessor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unifiedInputProcessor.d.ts","sourceRoot":"","sources":["../../src/shell/unifiedInputProcessor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,QAAQ,GAAG,OAAO,GAAG,YAAY,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,qBAAqB;IAMpB,OAAO,CAAC,EAAE;IALtB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAK;IACtC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAM;IACzC,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,SAAS,CAAS;gBAEN,EAAE,EAAE,QAAQ;IAIhC,OAAO,CAAC,mBAAmB;IAcpB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;IA0BtD,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,cAAc;IAcf,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM;CAc5D"}
1
+ {"version":3,"file":"unifiedInputProcessor.d.ts","sourceRoot":"","sources":["../../src/shell/unifiedInputProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,YAAY,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,EAAE,CAAW;gBAET,EAAE,EAAE,QAAQ;IAIxB;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc;IAgC3C;;OAEG;IACH,gBAAgB,CAAC,SAAS,EAAE,cAAc,GAAG,MAAM;IAmBnD;;OAEG;IACH,gBAAgB,CAAC,SAAS,EAAE,cAAc,GAAG,MAAM;CAGpD"}
@@ -1,92 +1,65 @@
1
1
  export class UnifiedInputProcessor {
2
2
  rl;
3
- MAX_INLINE_LINES = 3;
4
- MAX_SUMMARY_LENGTH = 80;
5
- pasteBuffer = [];
6
- isPasting = false;
7
3
  constructor(rl) {
8
4
  this.rl = rl;
9
- this.setupPasteListeners();
10
- }
11
- setupPasteListeners() {
12
- this.rl.input.on('paste-start', () => {
13
- this.isPasting = true;
14
- this.pasteBuffer = [];
15
- });
16
- this.rl.input.on('paste-end', () => {
17
- this.isPasting = false;
18
- const pastedText = this.pasteBuffer.join('\\n');
19
- this.rl.write(pastedText);
20
- this.pasteBuffer = [];
21
- });
22
5
  }
6
+ /**
7
+ * Process input and determine how it should be displayed
8
+ */
23
9
  processInput(input) {
24
- const trimmed = input.trim();
25
- const lines = trimmed.split('\\n').filter(line => line.trim().length > 0);
10
+ const lines = input.split('\n');
26
11
  const lineCount = lines.length;
27
- if (lineCount === 0) {
28
- return {
29
- content: '',
30
- isMultiLine: false,
31
- lineCount: 0,
32
- displayFormat: 'inline'
33
- };
34
- }
35
- const displayFormat = this.determineDisplayFormat(trimmed, lineCount);
36
- const summary = this.generateSummary(lines, displayFormat);
37
- return {
38
- content: trimmed,
39
- isMultiLine: lineCount > 1,
40
- lineCount,
41
- displayFormat,
42
- summary
43
- };
44
- }
45
- determineDisplayFormat(content, lineCount) {
46
- if (lineCount <= this.MAX_INLINE_LINES) {
47
- return 'inline';
48
- }
49
- if (lineCount > 10) {
50
- return 'paste-chip';
12
+ const isMultiLine = lineCount > 1;
13
+ let displayFormat;
14
+ let summary;
15
+ if (lineCount <= 1) {
16
+ // Single line - inline display
17
+ displayFormat = 'inline';
51
18
  }
52
- return 'block';
53
- }
54
- generateSummary(lines, displayFormat) {
55
- if (displayFormat !== 'paste-chip') {
56
- return undefined;
57
- }
58
- const firstLine = lines[0] || '';
59
- const truncated = firstLine.length > this.MAX_SUMMARY_LENGTH
60
- ? `${firstLine.slice(0, this.MAX_SUMMARY_LENGTH - 3)}...`
61
- : firstLine;
62
- const contentType = this.getContentType(lines);
63
- return `[Pasted ${lines.length} lines of ${contentType}]: ${truncated}`;
64
- }
65
- getContentType(lines) {
66
- const content = lines.join('\\n');
67
- if (content.includes('import ') || content.includes('export ') || content.includes('function ') || content.includes('class ')) {
68
- return 'code';
19
+ else if (lineCount <= 3) {
20
+ // 2-3 lines - inline with newline indicators
21
+ displayFormat = 'inline';
69
22
  }
70
- if (content.includes('SELECT ') && content.includes('FROM ')) {
71
- return 'SQL';
23
+ else if (lineCount <= 10) {
24
+ // 4-10 lines - block display
25
+ displayFormat = 'block';
72
26
  }
73
- if (content.startsWith('{') || content.startsWith('[')) {
74
- return 'JSON';
27
+ else {
28
+ // More than 10 lines - paste chip with summary
29
+ displayFormat = 'paste-chip';
30
+ summary = `[Pasted ${lineCount} lines]: ${lines[0]}`;
75
31
  }
76
- return 'text';
32
+ return {
33
+ content: input,
34
+ isMultiLine,
35
+ displayFormat,
36
+ lineCount,
37
+ summary,
38
+ };
77
39
  }
78
- formatForDisplay(result) {
79
- const { content, displayFormat, summary } = result;
80
- switch (displayFormat) {
40
+ /**
41
+ * Format processed input for display in the terminal
42
+ */
43
+ formatForDisplay(processed) {
44
+ switch (processed.displayFormat) {
81
45
  case 'inline':
82
- return content.replace(/\\n/g, '');
46
+ // Replace newlines with symbol for inline display
47
+ return processed.content.split('\n').join(' ↵ ');
83
48
  case 'block':
84
- return content;
49
+ // Show full content as-is for block display
50
+ return processed.content;
85
51
  case 'paste-chip':
86
- return summary || `[Pasted ${result.lineCount} lines]`;
52
+ // Show summary for large pastes
53
+ return processed.summary || `[Pasted ${processed.lineCount} lines]`;
87
54
  default:
88
- return content;
55
+ return processed.content;
89
56
  }
90
57
  }
58
+ /**
59
+ * Get the full content to send (always the original content)
60
+ */
61
+ getContentToSend(processed) {
62
+ return processed.content;
63
+ }
91
64
  }
92
65
  //# sourceMappingURL=unifiedInputProcessor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"unifiedInputProcessor.js","sourceRoot":"","sources":["../../src/shell/unifiedInputProcessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unifiedInputProcessor.js","sourceRoot":"","sources":["../../src/shell/unifiedInputProcessor.ts"],"names":[],"mappings":"AAYA,MAAM,OAAO,qBAAqB;IACxB,EAAE,CAAW;IAErB,YAAY,EAAY;QACtB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,KAAa;QACxB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;QAC/B,MAAM,WAAW,GAAG,SAAS,GAAG,CAAC,CAAC;QAElC,IAAI,aAA4B,CAAC;QACjC,IAAI,OAA2B,CAAC;QAEhC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,+BAA+B;YAC/B,aAAa,GAAG,QAAQ,CAAC;QAC3B,CAAC;aAAM,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YAC1B,6CAA6C;YAC7C,aAAa,GAAG,QAAQ,CAAC;QAC3B,CAAC;aAAM,IAAI,SAAS,IAAI,EAAE,EAAE,CAAC;YAC3B,6BAA6B;YAC7B,aAAa,GAAG,OAAO,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,+CAA+C;YAC/C,aAAa,GAAG,YAAY,CAAC;YAC7B,OAAO,GAAG,WAAW,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,CAAC;QAED,OAAO;YACL,OAAO,EAAE,KAAK;YACd,WAAW;YACX,aAAa;YACb,SAAS;YACT,OAAO;SACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,SAAyB;QACxC,QAAQ,SAAS,CAAC,aAAa,EAAE,CAAC;YAChC,KAAK,QAAQ;gBACX,oDAAoD;gBACpD,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEnD,KAAK,OAAO;gBACV,4CAA4C;gBAC5C,OAAO,SAAS,CAAC,OAAO,CAAC;YAE3B,KAAK,YAAY;gBACf,gCAAgC;gBAChC,OAAO,SAAS,CAAC,OAAO,IAAI,WAAW,SAAS,CAAC,SAAS,SAAS,CAAC;YAEtE;gBACE,OAAO,SAAS,CAAC,OAAO,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,SAAyB;QACxC,OAAO,SAAS,CAAC,OAAO,CAAC;IAC3B,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "erosolar-cli",
3
- "version": "1.7.55",
3
+ "version": "1.7.57",
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-optimized.js",
6
6
  "type": "module",
@@ -25,9 +25,9 @@
25
25
  "config/security-deployment.json"
26
26
  ],
27
27
  "bin": {
28
- "erosolar-ts": "dist/bin/erosolar-optimized.js",
29
- "erosolar-cli": "dist/bin/erosolar-optimized.js",
30
- "erosolar": "dist/bin/erosolar-optimized.js"
28
+ "erosolar-ts": "dist/bin/erosolar.js",
29
+ "erosolar-cli": "dist/bin/erosolar.js",
30
+ "erosolar": "dist/bin/erosolar.js"
31
31
  },
32
32
  "scripts": {
33
33
  "preinstall": "node scripts/preinstall-clean-bins.mjs",
@@ -1,110 +0,0 @@
1
- /**
2
- * Active Stack Security Module
3
- *
4
- * Ensures Erosolar CLI only operates on the active stack and nothing else.
5
- * Implements strict security rules to prevent vulnerabilities and unauthorized operations.
6
- *
7
- * @license MIT
8
- * @author Bo Shang
9
- *
10
- * DISCLAIMER: This software is provided for security testing and defensive purposes only.
11
- * Users are solely responsible for ensuring their use complies with applicable laws.
12
- */
13
- export interface ActiveStackSecurityConfig {
14
- /**
15
- * Whether to enable strict active stack validation
16
- */
17
- enabled: boolean;
18
- /**
19
- * Allowed target scopes for operations
20
- */
21
- allowedScopes: {
22
- /** Current working directory */
23
- cwd: boolean;
24
- /** Node.js project directories */
25
- nodeProjects: boolean;
26
- /** Git repositories */
27
- gitRepos: boolean;
28
- /** Temporary directories */
29
- tempDirs: boolean;
30
- };
31
- /**
32
- * Blocked operations
33
- */
34
- blockedOperations: {
35
- /** System file operations */
36
- systemFiles: boolean;
37
- /** Network operations to unauthorized targets */
38
- unauthorizedNetworking: boolean;
39
- /** File operations outside allowed scopes */
40
- outOfScopeFiles: boolean;
41
- /** Privileged operations */
42
- privilegedOps: boolean;
43
- };
44
- /**
45
- * Security validation rules
46
- */
47
- validation: {
48
- /** Require workspace context validation */
49
- workspaceContext: boolean;
50
- /** Validate file paths before operations */
51
- pathValidation: boolean;
52
- /** Check for suspicious patterns */
53
- patternDetection: boolean;
54
- /** Log security events */
55
- securityLogging: boolean;
56
- };
57
- }
58
- export interface SecurityValidationResult {
59
- allowed: boolean;
60
- reason?: string;
61
- severity: 'low' | 'medium' | 'high' | 'critical';
62
- details?: Record<string, unknown>;
63
- }
64
- export declare class ActiveStackSecurity {
65
- private config;
66
- private securityLog;
67
- constructor(config?: Partial<ActiveStackSecurityConfig>);
68
- /**
69
- * Validate a file operation
70
- */
71
- validateFileOperation(filePath: string, operation: 'read' | 'write' | 'delete'): SecurityValidationResult;
72
- /**
73
- * Validate a network operation
74
- */
75
- validateNetworkOperation(target: string, operation: 'fetch' | 'search' | 'extract'): SecurityValidationResult;
76
- /**
77
- * Validate a command execution
78
- */
79
- validateCommandExecution(command: string): SecurityValidationResult;
80
- /**
81
- * Get security log
82
- */
83
- getSecurityLog(): SecurityEvent[];
84
- /**
85
- * Clear security log
86
- */
87
- clearSecurityLog(): void;
88
- private validatePathScope;
89
- private detectSuspiciousPatterns;
90
- private validateSystemFileProtection;
91
- private isLocalhost;
92
- private validateDomain;
93
- private validateCommandSafety;
94
- private logSecurityEvent;
95
- }
96
- export interface SecurityEvent {
97
- type: string;
98
- severity: 'low' | 'medium' | 'high' | 'critical';
99
- operation: string;
100
- timestamp: Date;
101
- reason: string;
102
- filePath?: string;
103
- target?: string;
104
- command?: string;
105
- details?: Record<string, unknown>;
106
- }
107
- /**
108
- * Global active stack security instance
109
- */
110
- export declare const activeStackSecurity: ActiveStackSecurity;
@@ -1,313 +0,0 @@
1
- "use strict";
2
- /**
3
- * Active Stack Security Module
4
- *
5
- * Ensures Erosolar CLI only operates on the active stack and nothing else.
6
- * Implements strict security rules to prevent vulnerabilities and unauthorized operations.
7
- *
8
- * @license MIT
9
- * @author Bo Shang
10
- *
11
- * DISCLAIMER: This software is provided for security testing and defensive purposes only.
12
- * Users are solely responsible for ensuring their use complies with applicable laws.
13
- */
14
- var __assign = (this && this.__assign) || function () {
15
- __assign = Object.assign || function(t) {
16
- for (var s, i = 1, n = arguments.length; i < n; i++) {
17
- s = arguments[i];
18
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19
- t[p] = s[p];
20
- }
21
- return t;
22
- };
23
- return __assign.apply(this, arguments);
24
- };
25
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
26
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
27
- if (ar || !(i in from)) {
28
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
29
- ar[i] = from[i];
30
- }
31
- }
32
- return to.concat(ar || Array.prototype.slice.call(from));
33
- };
34
- Object.defineProperty(exports, "__esModule", { value: true });
35
- exports.activeStackSecurity = exports.ActiveStackSecurity = void 0;
36
- var node_path_1 = require("node:path");
37
- var ActiveStackSecurity = /** @class */ (function () {
38
- function ActiveStackSecurity(config) {
39
- this.securityLog = [];
40
- this.config = __assign({ enabled: true, allowedScopes: {
41
- cwd: true,
42
- nodeProjects: true,
43
- gitRepos: true,
44
- tempDirs: true,
45
- }, blockedOperations: {
46
- systemFiles: true,
47
- unauthorizedNetworking: true,
48
- outOfScopeFiles: true,
49
- privilegedOps: true,
50
- }, validation: {
51
- workspaceContext: true,
52
- pathValidation: true,
53
- patternDetection: true,
54
- securityLogging: true,
55
- } }, config);
56
- }
57
- /**
58
- * Validate a file operation
59
- */
60
- ActiveStackSecurity.prototype.validateFileOperation = function (filePath, operation) {
61
- if (!this.config.enabled) {
62
- return { allowed: true, severity: 'low' };
63
- }
64
- var normalizedPath = (0, node_path_1.resolve)(filePath);
65
- var cwd = process.cwd();
66
- // Check if path is within allowed scopes
67
- var scopeCheck = this.validatePathScope(normalizedPath, cwd);
68
- if (!scopeCheck.allowed) {
69
- this.logSecurityEvent({
70
- type: 'file_operation_blocked',
71
- severity: 'high',
72
- operation: operation,
73
- filePath: normalizedPath,
74
- reason: scopeCheck.reason,
75
- timestamp: new Date(),
76
- });
77
- return scopeCheck;
78
- }
79
- // Check for suspicious patterns
80
- var patternCheck = this.detectSuspiciousPatterns(normalizedPath, operation);
81
- if (!patternCheck.allowed) {
82
- this.logSecurityEvent({
83
- type: 'suspicious_pattern_detected',
84
- severity: patternCheck.severity,
85
- operation: operation,
86
- filePath: normalizedPath,
87
- reason: patternCheck.reason,
88
- timestamp: new Date(),
89
- });
90
- return patternCheck;
91
- }
92
- // Check for system file protection
93
- var systemCheck = this.validateSystemFileProtection(normalizedPath, operation);
94
- if (!systemCheck.allowed) {
95
- this.logSecurityEvent({
96
- type: 'system_file_protection',
97
- severity: systemCheck.severity,
98
- operation: operation,
99
- filePath: normalizedPath,
100
- reason: systemCheck.reason,
101
- timestamp: new Date(),
102
- });
103
- return systemCheck;
104
- }
105
- return { allowed: true, severity: 'low' };
106
- };
107
- /**
108
- * Validate a network operation
109
- */
110
- ActiveStackSecurity.prototype.validateNetworkOperation = function (target, operation) {
111
- if (!this.config.enabled) {
112
- return { allowed: true, severity: 'low' };
113
- }
114
- // Check for localhost/127.0.0.1 operations (allowed for development)
115
- if (this.isLocalhost(target)) {
116
- return { allowed: true, severity: 'low' };
117
- }
118
- // Check for suspicious domains
119
- var domainCheck = this.validateDomain(target);
120
- if (!domainCheck.allowed) {
121
- this.logSecurityEvent({
122
- type: 'network_operation_blocked',
123
- severity: domainCheck.severity,
124
- operation: operation,
125
- target: target,
126
- reason: domainCheck.reason,
127
- timestamp: new Date(),
128
- });
129
- return domainCheck;
130
- }
131
- return { allowed: true, severity: 'low' };
132
- };
133
- /**
134
- * Validate a command execution
135
- */
136
- ActiveStackSecurity.prototype.validateCommandExecution = function (command) {
137
- if (!this.config.enabled) {
138
- return { allowed: true, severity: 'low' };
139
- }
140
- // Check for dangerous commands
141
- var commandCheck = this.validateCommandSafety(command);
142
- if (!commandCheck.allowed) {
143
- this.logSecurityEvent({
144
- type: 'dangerous_command_blocked',
145
- severity: commandCheck.severity,
146
- operation: 'execute',
147
- command: command,
148
- reason: commandCheck.reason,
149
- timestamp: new Date(),
150
- });
151
- return commandCheck;
152
- }
153
- return { allowed: true, severity: 'low' };
154
- };
155
- /**
156
- * Get security log
157
- */
158
- ActiveStackSecurity.prototype.getSecurityLog = function () {
159
- return __spreadArray([], this.securityLog, true);
160
- };
161
- /**
162
- * Clear security log
163
- */
164
- ActiveStackSecurity.prototype.clearSecurityLog = function () {
165
- this.securityLog = [];
166
- };
167
- ActiveStackSecurity.prototype.validatePathScope = function (filePath, cwd) {
168
- // Check if path is within current working directory
169
- if (!filePath.startsWith(cwd)) {
170
- return {
171
- allowed: false,
172
- reason: 'File operation outside current working directory',
173
- severity: 'high',
174
- details: { filePath: filePath, cwd: cwd },
175
- };
176
- }
177
- // Check for node_modules protection
178
- if (filePath.includes('node_modules') && !filePath.includes(cwd + '/node_modules')) {
179
- return {
180
- allowed: false,
181
- reason: 'Access to external node_modules directory',
182
- severity: 'high',
183
- details: { filePath: filePath, cwd: cwd },
184
- };
185
- }
186
- // Check for system directory protection
187
- var systemDirs = ['/etc', '/var', '/usr', '/bin', '/sbin', '/lib', '/sys', '/proc'];
188
- for (var _i = 0, systemDirs_1 = systemDirs; _i < systemDirs_1.length; _i++) {
189
- var dir = systemDirs_1[_i];
190
- if (filePath.startsWith(dir)) {
191
- return {
192
- allowed: false,
193
- reason: 'Access to system directory',
194
- severity: 'critical',
195
- details: { filePath: filePath, systemDir: dir },
196
- };
197
- }
198
- }
199
- return { allowed: true, severity: 'low' };
200
- };
201
- ActiveStackSecurity.prototype.detectSuspiciousPatterns = function (filePath, operation) {
202
- var suspiciousPatterns = [
203
- { pattern: /\.(pem|key|env|secret|config)$/i, severity: 'high', reason: 'Sensitive file extension' },
204
- { pattern: /(password|secret|token|api[_-]?key)/i, severity: 'medium', reason: 'Potential credential file' },
205
- { pattern: /\.(bashrc|bash_profile|zshrc|profile)$/, severity: 'medium', reason: 'Shell configuration file' },
206
- { pattern: /\.(git|ssh)\/config$/, severity: 'medium', reason: 'Git/SSH configuration' },
207
- ];
208
- for (var _i = 0, suspiciousPatterns_1 = suspiciousPatterns; _i < suspiciousPatterns_1.length; _i++) {
209
- var _a = suspiciousPatterns_1[_i], pattern = _a.pattern, severity = _a.severity, reason = _a.reason;
210
- if (pattern.test(filePath)) {
211
- return {
212
- allowed: false,
213
- reason: "".concat(reason, " detected"),
214
- severity: severity,
215
- details: { filePath: filePath, pattern: pattern.source },
216
- };
217
- }
218
- }
219
- return { allowed: true, severity: 'low' };
220
- };
221
- ActiveStackSecurity.prototype.validateSystemFileProtection = function (filePath, operation) {
222
- var systemFiles = [
223
- '/etc/passwd', '/etc/shadow', '/etc/hosts', '/etc/resolv.conf',
224
- '/etc/ssh/ssh_config', '/etc/ssh/sshd_config',
225
- '/var/log/', '/var/spool/', '/var/mail/',
226
- '/usr/bin/', '/usr/sbin/', '/usr/lib/',
227
- ];
228
- for (var _i = 0, systemFiles_1 = systemFiles; _i < systemFiles_1.length; _i++) {
229
- var sysFile = systemFiles_1[_i];
230
- if (filePath.startsWith(sysFile)) {
231
- return {
232
- allowed: false,
233
- reason: 'Access to system file',
234
- severity: 'critical',
235
- details: { filePath: filePath, systemFile: sysFile },
236
- };
237
- }
238
- }
239
- return { allowed: true, severity: 'low' };
240
- };
241
- ActiveStackSecurity.prototype.isLocalhost = function (target) {
242
- var localhostPatterns = [
243
- 'localhost',
244
- '127.0.0.1',
245
- '::1',
246
- '0.0.0.0',
247
- ];
248
- return localhostPatterns.some(function (pattern) { return target.includes(pattern); });
249
- };
250
- ActiveStackSecurity.prototype.validateDomain = function (target) {
251
- var suspiciousDomains = [
252
- 'malicious.com',
253
- 'evil.org',
254
- 'hacker.net',
255
- // Add more suspicious domains as needed
256
- ];
257
- for (var _i = 0, suspiciousDomains_1 = suspiciousDomains; _i < suspiciousDomains_1.length; _i++) {
258
- var domain = suspiciousDomains_1[_i];
259
- if (target.includes(domain)) {
260
- return {
261
- allowed: false,
262
- reason: 'Suspicious domain detected',
263
- severity: 'high',
264
- details: { target: target, domain: domain },
265
- };
266
- }
267
- }
268
- return { allowed: true, severity: 'low' };
269
- };
270
- ActiveStackSecurity.prototype.validateCommandSafety = function (command) {
271
- var dangerousCommands = [
272
- { pattern: /rm\s+-rf/, severity: 'critical', reason: 'Recursive force delete' },
273
- { pattern: /chmod\s+[0-7]{3,4}\s+/, severity: 'high', reason: 'File permission modification' },
274
- { pattern: /chown\s+[^\s]+\s+/, severity: 'high', reason: 'File ownership change' },
275
- { pattern: /dd\s+if=.*of=/, severity: 'critical', reason: 'Disk cloning/destruction' },
276
- { pattern: /mkfs\./, severity: 'critical', reason: 'Filesystem creation' },
277
- { pattern: /fdisk\s+/, severity: 'critical', reason: 'Partition manipulation' },
278
- { pattern: /mount\s+/, severity: 'high', reason: 'Filesystem mounting' },
279
- { pattern: /umount\s+/, severity: 'high', reason: 'Filesystem unmounting' },
280
- { pattern: /passwd\s+/, severity: 'high', reason: 'Password change' },
281
- { pattern: /useradd\s+/, severity: 'high', reason: 'User creation' },
282
- { pattern: /userdel\s+/, severity: 'high', reason: 'User deletion' },
283
- ];
284
- for (var _i = 0, dangerousCommands_1 = dangerousCommands; _i < dangerousCommands_1.length; _i++) {
285
- var _a = dangerousCommands_1[_i], pattern = _a.pattern, severity = _a.severity, reason = _a.reason;
286
- if (pattern.test(command)) {
287
- return {
288
- allowed: false,
289
- reason: "".concat(reason, " command detected"),
290
- severity: severity,
291
- details: { command: command, pattern: pattern.source },
292
- };
293
- }
294
- }
295
- return { allowed: true, severity: 'low' };
296
- };
297
- ActiveStackSecurity.prototype.logSecurityEvent = function (event) {
298
- if (this.config.validation.securityLogging) {
299
- this.securityLog.push(event);
300
- // Keep log size manageable
301
- if (this.securityLog.length > 1000) {
302
- this.securityLog = this.securityLog.slice(-500);
303
- }
304
- }
305
- };
306
- return ActiveStackSecurity;
307
- }());
308
- exports.ActiveStackSecurity = ActiveStackSecurity;
309
- /**
310
- * Global active stack security instance
311
- */
312
- exports.activeStackSecurity = new ActiveStackSecurity();
313
- //# sourceMappingURL=active-stack-security.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"active-stack-security.js","sourceRoot":"","sources":["../src/security/active-stack-security.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;;;;;;;;;;;;;;;;;;;;;AAGH,uCAAmD;AA2DnD;IAIE,6BAAY,MAA2C;QAF/C,gBAAW,GAAoB,EAAE,CAAC;QAGxC,IAAI,CAAC,MAAM,cACT,OAAO,EAAE,IAAI,EACb,aAAa,EAAE;gBACb,GAAG,EAAE,IAAI;gBACT,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,IAAI;aACf,EACD,iBAAiB,EAAE;gBACjB,WAAW,EAAE,IAAI;gBACjB,sBAAsB,EAAE,IAAI;gBAC5B,eAAe,EAAE,IAAI;gBACrB,aAAa,EAAE,IAAI;aACpB,EACD,UAAU,EAAE;gBACV,gBAAgB,EAAE,IAAI;gBACtB,cAAc,EAAE,IAAI;gBACpB,gBAAgB,EAAE,IAAI;gBACtB,eAAe,EAAE,IAAI;aACtB,IACE,MAAM,CACV,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,mDAAqB,GAArB,UAAsB,QAAgB,EAAE,SAAsC;QAC5E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC5C,CAAC;QAED,IAAM,cAAc,GAAG,IAAA,mBAAO,EAAC,QAAQ,CAAC,CAAC;QACzC,IAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAE1B,yCAAyC;QACzC,IAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,gBAAgB,CAAC;gBACpB,IAAI,EAAE,wBAAwB;gBAC9B,QAAQ,EAAE,MAAM;gBAChB,SAAS,WAAA;gBACT,QAAQ,EAAE,cAAc;gBACxB,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CAAC;YACH,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,gCAAgC;QAChC,IAAM,YAAY,GAAG,IAAI,CAAC,wBAAwB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QAC9E,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,CAAC;gBACpB,IAAI,EAAE,6BAA6B;gBACnC,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,SAAS,WAAA;gBACT,QAAQ,EAAE,cAAc;gBACxB,MAAM,EAAE,YAAY,CAAC,MAAM;gBAC3B,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CAAC;YACH,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,mCAAmC;QACnC,IAAM,WAAW,GAAG,IAAI,CAAC,4BAA4B,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QACjF,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,gBAAgB,CAAC;gBACpB,IAAI,EAAE,wBAAwB;gBAC9B,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,SAAS,WAAA;gBACT,QAAQ,EAAE,cAAc;gBACxB,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CAAC;YACH,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,sDAAwB,GAAxB,UAAyB,MAAc,EAAE,SAAyC;QAChF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC5C,CAAC;QAED,qEAAqE;QACrE,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC5C,CAAC;QAED,+BAA+B;QAC/B,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,gBAAgB,CAAC;gBACpB,IAAI,EAAE,2BAA2B;gBACjC,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,SAAS,WAAA;gBACT,MAAM,QAAA;gBACN,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CAAC;YACH,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,sDAAwB,GAAxB,UAAyB,OAAe;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC5C,CAAC;QAED,+BAA+B;QAC/B,IAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,CAAC;gBACpB,IAAI,EAAE,2BAA2B;gBACjC,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,SAAS,EAAE,SAAS;gBACpB,OAAO,SAAA;gBACP,MAAM,EAAE,YAAY,CAAC,MAAM;gBAC3B,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CAAC;YACH,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,4CAAc,GAAd;QACE,yBAAW,IAAI,CAAC,WAAW,QAAE;IAC/B,CAAC;IAED;;OAEG;IACH,8CAAgB,GAAhB;QACE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAEO,+CAAiB,GAAzB,UAA0B,QAAgB,EAAE,GAAW;QACrD,oDAAoD;QACpD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,kDAAkD;gBAC1D,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,EAAE,QAAQ,UAAA,EAAE,GAAG,KAAA,EAAE;aAC3B,CAAC;QACJ,CAAC;QAED,oCAAoC;QACpC,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,GAAG,eAAe,CAAC,EAAE,CAAC;YACnF,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,2CAA2C;gBACnD,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,EAAE,QAAQ,UAAA,EAAE,GAAG,KAAA,EAAE;aAC3B,CAAC;QACJ,CAAC;QAED,wCAAwC;QACxC,IAAM,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACtF,KAAkB,UAAU,EAAV,yBAAU,EAAV,wBAAU,EAAV,IAAU,EAAE,CAAC;YAA1B,IAAM,GAAG,mBAAA;YACZ,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,4BAA4B;oBACpC,QAAQ,EAAE,UAAU;oBACpB,OAAO,EAAE,EAAE,QAAQ,UAAA,EAAE,SAAS,EAAE,GAAG,EAAE;iBACtC,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;IAEO,sDAAwB,GAAhC,UAAiC,QAAgB,EAAE,SAAiB;QAClE,IAAM,kBAAkB,GAAG;YACzB,EAAE,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,0BAA0B,EAAE;YACpG,EAAE,OAAO,EAAE,sCAAsC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,2BAA2B,EAAE;YAC5G,EAAE,OAAO,EAAE,wCAAwC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,0BAA0B,EAAE;YAC7G,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,uBAAuB,EAAE;SACzF,CAAC;QAEF,KAA4C,UAAkB,EAAlB,yCAAkB,EAAlB,gCAAkB,EAAlB,IAAkB,EAAE,CAAC;YAAtD,IAAA,6BAA6B,EAA3B,OAAO,aAAA,EAAE,QAAQ,cAAA,EAAE,MAAM,YAAA;YACpC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3B,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,UAAG,MAAM,cAAW;oBAC5B,QAAQ,EAAE,QAA6B;oBACvC,OAAO,EAAE,EAAE,QAAQ,UAAA,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE;iBAC/C,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;IAEO,0DAA4B,GAApC,UAAqC,QAAgB,EAAE,SAAiB;QACtE,IAAM,WAAW,GAAG;YAClB,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,kBAAkB;YAC9D,qBAAqB,EAAE,sBAAsB;YAC7C,WAAW,EAAE,aAAa,EAAE,YAAY;YACxC,WAAW,EAAE,YAAY,EAAE,WAAW;SACvC,CAAC;QAEF,KAAsB,UAAW,EAAX,2BAAW,EAAX,yBAAW,EAAX,IAAW,EAAE,CAAC;YAA/B,IAAM,OAAO,oBAAA;YAChB,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,uBAAuB;oBAC/B,QAAQ,EAAE,UAAU;oBACpB,OAAO,EAAE,EAAE,QAAQ,UAAA,EAAE,UAAU,EAAE,OAAO,EAAE;iBAC3C,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;IAEO,yCAAW,GAAnB,UAAoB,MAAc;QAChC,IAAM,iBAAiB,GAAG;YACxB,WAAW;YACX,WAAW;YACX,KAAK;YACL,SAAS;SACV,CAAC;QAEF,OAAO,iBAAiB,CAAC,IAAI,CAAC,UAAA,OAAO,IAAI,OAAA,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAxB,CAAwB,CAAC,CAAC;IACrE,CAAC;IAEO,4CAAc,GAAtB,UAAuB,MAAc;QACnC,IAAM,iBAAiB,GAAG;YACxB,eAAe;YACf,UAAU;YACV,YAAY;YACZ,wCAAwC;SACzC,CAAC;QAEF,KAAqB,UAAiB,EAAjB,uCAAiB,EAAjB,+BAAiB,EAAjB,IAAiB,EAAE,CAAC;YAApC,IAAM,MAAM,0BAAA;YACf,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,4BAA4B;oBACpC,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAE;iBAC5B,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;IAEO,mDAAqB,GAA7B,UAA8B,OAAe;QAC3C,IAAM,iBAAiB,GAAG;YACxB,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,wBAAwB,EAAE;YAC/E,EAAE,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,8BAA8B,EAAE;YAC9F,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,uBAAuB,EAAE;YACnF,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,0BAA0B,EAAE;YACtF,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,qBAAqB,EAAE;YAC1E,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,wBAAwB,EAAE;YAC/E,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE;YACxE,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,uBAAuB,EAAE;YAC3E,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE;YACrE,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE;YACpE,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE;SACrE,CAAC;QAEF,KAA4C,UAAiB,EAAjB,uCAAiB,EAAjB,+BAAiB,EAAjB,IAAiB,EAAE,CAAC;YAArD,IAAA,4BAA6B,EAA3B,OAAO,aAAA,EAAE,QAAQ,cAAA,EAAE,MAAM,YAAA;YACpC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1B,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,UAAG,MAAM,sBAAmB;oBACpC,QAAQ,EAAE,QAA+B;oBACzC,OAAO,EAAE,EAAE,OAAO,SAAA,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE;iBAC9C,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;IAEO,8CAAgB,GAAxB,UAAyB,KAAoB;QAC3C,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;YAC3C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAE7B,2BAA2B;YAC3B,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;gBACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IACH,0BAAC;AAAD,CAAC,AAnTD,IAmTC;AAnTY,kDAAmB;AAiUhC;;GAEG;AACU,QAAA,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC"}