erosolar-cli 1.7.409 → 1.7.411

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 (192) hide show
  1. package/README.md +6 -6
  2. package/dist/StringUtils.d.ts +1 -4
  3. package/dist/StringUtils.d.ts.map +1 -1
  4. package/dist/StringUtils.js +2 -8
  5. package/dist/StringUtils.js.map +1 -1
  6. package/dist/browser/BrowserSessionManager.d.ts +1 -3
  7. package/dist/browser/BrowserSessionManager.d.ts.map +1 -1
  8. package/dist/browser/BrowserSessionManager.js +4 -24
  9. package/dist/browser/BrowserSessionManager.js.map +1 -1
  10. package/dist/capabilities/toolRegistry.d.ts +2 -0
  11. package/dist/capabilities/toolRegistry.d.ts.map +1 -1
  12. package/dist/capabilities/toolRegistry.js +40 -5
  13. package/dist/capabilities/toolRegistry.js.map +1 -1
  14. package/dist/contracts/agent-profiles.schema.json +5 -5
  15. package/dist/contracts/agent-schemas.json +6 -16
  16. package/dist/contracts/schemas/agent.schema.json +1 -5
  17. package/dist/contracts/schemas/tool-selection.schema.json +1 -7
  18. package/dist/contracts/tools.schema.json +80 -207
  19. package/dist/contracts/unified-schema.json +4 -5
  20. package/dist/contracts/v1/agent.d.ts +0 -3
  21. package/dist/contracts/v1/agent.d.ts.map +1 -1
  22. package/dist/contracts/v1/provider.d.ts +1 -2
  23. package/dist/contracts/v1/provider.d.ts.map +1 -1
  24. package/dist/contracts/v1/toolAccess.d.ts +1 -1
  25. package/dist/contracts/v1/toolAccess.d.ts.map +1 -1
  26. package/dist/core/agent.d.ts +1 -7
  27. package/dist/core/agent.d.ts.map +1 -1
  28. package/dist/core/agent.js +2 -131
  29. package/dist/core/agent.js.map +1 -1
  30. package/dist/core/alphaZeroEngine.d.ts +0 -8
  31. package/dist/core/alphaZeroEngine.d.ts.map +1 -1
  32. package/dist/core/alphaZeroEngine.js +35 -149
  33. package/dist/core/alphaZeroEngine.js.map +1 -1
  34. package/dist/core/alphaZeroOrchestrator.d.ts +0 -17
  35. package/dist/core/alphaZeroOrchestrator.d.ts.map +1 -1
  36. package/dist/core/alphaZeroOrchestrator.js +8 -95
  37. package/dist/core/alphaZeroOrchestrator.js.map +1 -1
  38. package/dist/core/cliTestHarness.d.ts +0 -5
  39. package/dist/core/cliTestHarness.d.ts.map +1 -1
  40. package/dist/core/cliTestHarness.js +3 -14
  41. package/dist/core/cliTestHarness.js.map +1 -1
  42. package/dist/core/contextManager.d.ts +0 -30
  43. package/dist/core/contextManager.d.ts.map +1 -1
  44. package/dist/core/contextManager.js +5 -87
  45. package/dist/core/contextManager.js.map +1 -1
  46. package/dist/core/contextWindow.d.ts +4 -4
  47. package/dist/core/contextWindow.js +9 -9
  48. package/dist/core/contextWindow.js.map +1 -1
  49. package/dist/core/modelDiscovery.js +3 -3
  50. package/dist/core/modelDiscovery.js.map +1 -1
  51. package/dist/core/preferences.d.ts +2 -3
  52. package/dist/core/preferences.d.ts.map +1 -1
  53. package/dist/core/preferences.js +11 -18
  54. package/dist/core/preferences.js.map +1 -1
  55. package/dist/core/secretStore.d.ts.map +1 -1
  56. package/dist/core/secretStore.js +31 -0
  57. package/dist/core/secretStore.js.map +1 -1
  58. package/dist/core/toolPreconditions.d.ts.map +1 -1
  59. package/dist/core/toolPreconditions.js +0 -60
  60. package/dist/core/toolPreconditions.js.map +1 -1
  61. package/dist/core/toolRuntime.d.ts.map +1 -1
  62. package/dist/core/toolRuntime.js +0 -17
  63. package/dist/core/toolRuntime.js.map +1 -1
  64. package/dist/core/types.d.ts +1 -1
  65. package/dist/core/types.d.ts.map +1 -1
  66. package/dist/plugins/providers/google/index.js +3 -2
  67. package/dist/plugins/providers/google/index.js.map +1 -1
  68. package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -1
  69. package/dist/providers/openaiChatCompletionsProvider.js +6 -60
  70. package/dist/providers/openaiChatCompletionsProvider.js.map +1 -1
  71. package/dist/runtime/agentController.d.ts.map +1 -1
  72. package/dist/runtime/agentController.js +6 -27
  73. package/dist/runtime/agentController.js.map +1 -1
  74. package/dist/shell/interactiveShell.d.ts +30 -79
  75. package/dist/shell/interactiveShell.d.ts.map +1 -1
  76. package/dist/shell/interactiveShell.js +726 -1519
  77. package/dist/shell/interactiveShell.js.map +1 -1
  78. package/dist/shell/shellApp.d.ts.map +1 -1
  79. package/dist/shell/shellApp.js +41 -15
  80. package/dist/shell/shellApp.js.map +1 -1
  81. package/dist/shell/systemPrompt.d.ts.map +1 -1
  82. package/dist/shell/systemPrompt.js +0 -1
  83. package/dist/shell/systemPrompt.js.map +1 -1
  84. package/dist/shell/terminalInput.d.ts +21 -85
  85. package/dist/shell/terminalInput.d.ts.map +1 -1
  86. package/dist/shell/terminalInput.js +60 -517
  87. package/dist/shell/terminalInput.js.map +1 -1
  88. package/dist/shell/terminalInputAdapter.d.ts +16 -37
  89. package/dist/shell/terminalInputAdapter.d.ts.map +1 -1
  90. package/dist/shell/terminalInputAdapter.js +22 -44
  91. package/dist/shell/terminalInputAdapter.js.map +1 -1
  92. package/dist/shell/updateManager.d.ts +1 -8
  93. package/dist/shell/updateManager.d.ts.map +1 -1
  94. package/dist/shell/updateManager.js +14 -9
  95. package/dist/shell/updateManager.js.map +1 -1
  96. package/dist/subagents/parallelAgentManager.d.ts.map +1 -1
  97. package/dist/subagents/parallelAgentManager.js +2 -1
  98. package/dist/subagents/parallelAgentManager.js.map +1 -1
  99. package/dist/tools/buildTools.d.ts.map +1 -1
  100. package/dist/tools/buildTools.js +76 -19
  101. package/dist/tools/buildTools.js.map +1 -1
  102. package/dist/tools/editTools.js +1 -1
  103. package/dist/tools/editTools.js.map +1 -1
  104. package/dist/tools/enhancedCodeIntelligenceTools.js +2 -1
  105. package/dist/tools/enhancedCodeIntelligenceTools.js.map +1 -1
  106. package/dist/tools/fileTools.js +0 -3
  107. package/dist/tools/fileTools.js.map +1 -1
  108. package/dist/tools/frontendTestingTools.js +1 -1
  109. package/dist/tools/frontendTestingTools.js.map +1 -1
  110. package/dist/tools/learnTools.d.ts +0 -2
  111. package/dist/tools/learnTools.d.ts.map +1 -1
  112. package/dist/tools/learnTools.js +81 -29
  113. package/dist/tools/learnTools.js.map +1 -1
  114. package/dist/tools/localExplore.d.ts.map +1 -1
  115. package/dist/tools/localExplore.js +1 -0
  116. package/dist/tools/localExplore.js.map +1 -1
  117. package/dist/tools/notebookEditTools.js.map +1 -1
  118. package/dist/tools/repoChecksTools.js +3 -4
  119. package/dist/tools/repoChecksTools.js.map +1 -1
  120. package/dist/tools/searchTools.js +0 -4
  121. package/dist/tools/searchTools.js.map +1 -1
  122. package/dist/tools/softwareEngineeringTools.d.ts.map +1 -1
  123. package/dist/tools/softwareEngineeringTools.js +0 -1
  124. package/dist/tools/softwareEngineeringTools.js.map +1 -1
  125. package/dist/tools/webTools.d.ts.map +1 -1
  126. package/dist/tools/webTools.js.map +1 -1
  127. package/dist/ui/ShellUIAdapter.d.ts +16 -44
  128. package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
  129. package/dist/ui/ShellUIAdapter.js +84 -337
  130. package/dist/ui/ShellUIAdapter.js.map +1 -1
  131. package/dist/ui/display.d.ts +37 -18
  132. package/dist/ui/display.d.ts.map +1 -1
  133. package/dist/ui/display.js +310 -95
  134. package/dist/ui/display.js.map +1 -1
  135. package/dist/ui/orchestration/UIUpdateCoordinator.d.ts.map +1 -1
  136. package/dist/ui/orchestration/UIUpdateCoordinator.js +3 -5
  137. package/dist/ui/orchestration/UIUpdateCoordinator.js.map +1 -1
  138. package/dist/ui/shortcutsHelp.d.ts +11 -1
  139. package/dist/ui/shortcutsHelp.d.ts.map +1 -1
  140. package/dist/ui/shortcutsHelp.js +54 -8
  141. package/dist/ui/shortcutsHelp.js.map +1 -1
  142. package/dist/ui/streamingFormatter.d.ts +16 -0
  143. package/dist/ui/streamingFormatter.d.ts.map +1 -0
  144. package/dist/ui/streamingFormatter.js +62 -0
  145. package/dist/ui/streamingFormatter.js.map +1 -0
  146. package/dist/ui/theme.d.ts +100 -100
  147. package/dist/ui/theme.d.ts.map +1 -1
  148. package/dist/ui/theme.js.map +1 -1
  149. package/dist/ui/toolDisplay.d.ts +3 -3
  150. package/dist/ui/toolDisplay.d.ts.map +1 -1
  151. package/dist/ui/toolDisplay.js +8 -7
  152. package/dist/ui/toolDisplay.js.map +1 -1
  153. package/dist/ui/unified/index.d.ts +2 -2
  154. package/dist/ui/unified/index.d.ts.map +1 -1
  155. package/dist/ui/unified/index.js.map +1 -1
  156. package/dist/ui/unified/layout.d.ts +23 -0
  157. package/dist/ui/unified/layout.d.ts.map +1 -1
  158. package/dist/ui/unified/layout.js +113 -11
  159. package/dist/ui/unified/layout.js.map +1 -1
  160. package/package.json +24 -37
  161. package/dist/core/alphaZeroConfig.d.ts +0 -11
  162. package/dist/core/alphaZeroConfig.d.ts.map +0 -1
  163. package/dist/core/alphaZeroConfig.js +0 -59
  164. package/dist/core/alphaZeroConfig.js.map +0 -1
  165. package/dist/core/alphaZeroEnhanced.d.ts +0 -125
  166. package/dist/core/alphaZeroEnhanced.d.ts.map +0 -1
  167. package/dist/core/alphaZeroEnhanced.js +0 -386
  168. package/dist/core/alphaZeroEnhanced.js.map +0 -1
  169. package/dist/core/autonomousVerification.d.ts +0 -103
  170. package/dist/core/autonomousVerification.d.ts.map +0 -1
  171. package/dist/core/autonomousVerification.js +0 -583
  172. package/dist/core/autonomousVerification.js.map +0 -1
  173. package/dist/core/offsecAlphaZeroEnhanced.d.ts +0 -98
  174. package/dist/core/offsecAlphaZeroEnhanced.d.ts.map +0 -1
  175. package/dist/core/offsecAlphaZeroEnhanced.js +0 -441
  176. package/dist/core/offsecAlphaZeroEnhanced.js.map +0 -1
  177. package/dist/core/parallelAgentOrchestrator.d.ts +0 -171
  178. package/dist/core/parallelAgentOrchestrator.d.ts.map +0 -1
  179. package/dist/core/parallelAgentOrchestrator.js +0 -459
  180. package/dist/core/parallelAgentOrchestrator.js.map +0 -1
  181. package/dist/index.d.ts +0 -5
  182. package/dist/index.d.ts.map +0 -1
  183. package/dist/index.js +0 -3
  184. package/dist/index.js.map +0 -1
  185. package/dist/tools/detectCommands.d.ts +0 -8
  186. package/dist/tools/detectCommands.d.ts.map +0 -1
  187. package/dist/tools/detectCommands.js +0 -183
  188. package/dist/tools/detectCommands.js.map +0 -1
  189. package/dist/ui/assistantBlockRenderer.d.ts +0 -30
  190. package/dist/ui/assistantBlockRenderer.d.ts.map +0 -1
  191. package/dist/ui/assistantBlockRenderer.js +0 -121
  192. package/dist/ui/assistantBlockRenderer.js.map +0 -1
@@ -1,98 +0,0 @@
1
- /**
2
- * Enhanced AlphaZero Offensive Security Coordinator
3
- *
4
- * Extends offsecAlphaZero with:
5
- * - Autonomous verification for strict confirmation of success
6
- * - Retry strategies with alternative approaches
7
- * - Confidence-based outcome recording
8
- * - Multi-method verification before confirming success
9
- */
10
- import { OffsecRun, OffsecOutcome, OffsecSuggestion, OffsecActionCategory, startOffsecRun, resumeOffsecRun, getOffsecNextActions, listOffsecRuns, formatOffsecStatus } from './offsecAlphaZero.js';
11
- import { VerificationOutcome, VerificationMethod } from './autonomousVerification.js';
12
- export interface OffsecVerificationConfig {
13
- methods: VerificationMethod[];
14
- minConfidence: number;
15
- maxRetries: number;
16
- retryStrategies: RetryStrategy[];
17
- timeout: number;
18
- }
19
- export interface RetryStrategy {
20
- name: string;
21
- description: string;
22
- modifyCommand: (original: string, attemptNumber: number) => string;
23
- applicableCategories: OffsecActionCategory[];
24
- }
25
- export interface OffsecExecutionResult {
26
- actionId: string;
27
- command: string;
28
- output: string;
29
- exitCode: number;
30
- verification: VerificationOutcome;
31
- retryAttempt: number;
32
- finalOutcome: OffsecOutcome;
33
- confidence: number;
34
- executionTimeMs: number;
35
- }
36
- export interface OffsecActionContext {
37
- target: string;
38
- url: string;
39
- previousOutputs: string[];
40
- discoveredCredentials: string[];
41
- discoveredHosts: string[];
42
- currentPrivilegeLevel: 'user' | 'admin' | 'root' | 'unknown';
43
- detectionRisk: 'low' | 'medium' | 'high';
44
- }
45
- /**
46
- * Enhanced offensive security coordinator with autonomous verification
47
- */
48
- export declare class OffsecAlphaZeroEnhanced {
49
- private context;
50
- private verificationConfig;
51
- constructor(initialContext?: Partial<OffsecActionContext>, verificationConfig?: Partial<OffsecVerificationConfig>);
52
- /**
53
- * Execute an offensive security action with autonomous verification
54
- */
55
- executeWithVerification(run: OffsecRun, action: OffsecSuggestion): Promise<OffsecExecutionResult>;
56
- /**
57
- * Get command for a specific retry attempt
58
- */
59
- private getCommandForAttempt;
60
- /**
61
- * Execute a shell command with timeout
62
- */
63
- private executeCommand;
64
- /**
65
- * Extract context information from command output
66
- */
67
- private extractContextFromOutput;
68
- /**
69
- * Determine outcome from verification result
70
- */
71
- private determineOutcome;
72
- /**
73
- * Update internal context based on execution result
74
- */
75
- private updateContextFromResult;
76
- /**
77
- * Format result as a note for storage
78
- */
79
- private formatResultNote;
80
- /**
81
- * Execute a full offensive security run with autonomous verification
82
- */
83
- executeAutonomousRun(objective: string, scope: string[], maxActions?: number): Promise<OffsecRun>;
84
- /**
85
- * Get current context
86
- */
87
- getContext(): OffsecActionContext;
88
- /**
89
- * Update context
90
- */
91
- updateContext(updates: Partial<OffsecActionContext>): void;
92
- }
93
- /**
94
- * Convenience function to execute an action with verification
95
- */
96
- export declare function executeOffsecActionWithVerification(run: OffsecRun, actionId: string, context?: Partial<OffsecActionContext>): Promise<OffsecExecutionResult>;
97
- export { startOffsecRun, resumeOffsecRun, listOffsecRuns, getOffsecNextActions, formatOffsecStatus, };
98
- //# sourceMappingURL=offsecAlphaZeroEnhanced.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"offsecAlphaZeroEnhanced.d.ts","sourceRoot":"","sources":["../../src/core/offsecAlphaZeroEnhanced.ts"],"names":[],"mappings":"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"}
@@ -1,441 +0,0 @@
1
- /**
2
- * Enhanced AlphaZero Offensive Security Coordinator
3
- *
4
- * Extends offsecAlphaZero with:
5
- * - Autonomous verification for strict confirmation of success
6
- * - Retry strategies with alternative approaches
7
- * - Confidence-based outcome recording
8
- * - Multi-method verification before confirming success
9
- */
10
- import { startOffsecRun, resumeOffsecRun, recordOffsecOutcome, getOffsecNextActions, listOffsecRuns, formatOffsecStatus, } from './offsecAlphaZero.js';
11
- import { autonomousVerification, } from './autonomousVerification.js';
12
- import { spawn } from 'child_process';
13
- /**
14
- * Default retry strategies for offensive security actions
15
- */
16
- const DEFAULT_RETRY_STRATEGIES = [
17
- {
18
- name: 'stealth-mode',
19
- description: 'Reduce scan speed and use evasion techniques',
20
- modifyCommand: (cmd, attempt) => {
21
- // Add stealth flags for nmap
22
- if (cmd.includes('nmap')) {
23
- return cmd.replace(/-T[0-5]/, `-T${Math.max(0, 4 - attempt)}`);
24
- }
25
- // Add delays for other tools
26
- if (cmd.includes('dirsearch')) {
27
- return cmd + ` --delay=${attempt * 500}`;
28
- }
29
- return cmd;
30
- },
31
- applicableCategories: ['recon', 'web'],
32
- },
33
- {
34
- name: 'alt-user-agent',
35
- description: 'Try different user agents to bypass WAF',
36
- modifyCommand: (cmd, attempt) => {
37
- const userAgents = [
38
- 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)',
39
- 'Googlebot/2.1 (+http://www.google.com/bot.html)',
40
- 'curl/7.68.0',
41
- ];
42
- const ua = userAgents[attempt % userAgents.length];
43
- if (cmd.includes('curl')) {
44
- return cmd.replace(/curl/, `curl -A "${ua}"`);
45
- }
46
- return cmd;
47
- },
48
- applicableCategories: ['web', 'payload'],
49
- },
50
- {
51
- name: 'encoding-bypass',
52
- description: 'Apply encoding to bypass filters',
53
- modifyCommand: (cmd, attempt) => {
54
- // URL encode parameters
55
- if (cmd.includes('sqlmap')) {
56
- const encodings = ['', '--tamper=base64encode', '--tamper=charencode'];
57
- const tamper = encodings[attempt % encodings.length];
58
- return cmd + ` ${tamper}`;
59
- }
60
- return cmd;
61
- },
62
- applicableCategories: ['payload', 'web'],
63
- },
64
- {
65
- name: 'alt-port',
66
- description: 'Try alternative ports for the same service',
67
- modifyCommand: (cmd, attempt) => {
68
- // Common alternative ports
69
- const altPorts = {
70
- 80: [8080, 8000, 8888],
71
- 443: [8443, 4443],
72
- 22: [2222, 2200],
73
- 3306: [3307, 13306],
74
- };
75
- // Modify port in command if possible
76
- for (const [standard, alts] of Object.entries(altPorts)) {
77
- if (cmd.includes(`:${standard}`)) {
78
- const alt = alts[(attempt - 1) % alts.length];
79
- return cmd.replace(`:${standard}`, `:${alt}`);
80
- }
81
- }
82
- return cmd;
83
- },
84
- applicableCategories: ['recon', 'lateral'],
85
- },
86
- {
87
- name: 'credential-variation',
88
- description: 'Try credential variations (case changes, common mutations)',
89
- modifyCommand: (cmd, attempt) => {
90
- // Apply common password variations
91
- // This is a simplified example
92
- return cmd;
93
- },
94
- applicableCategories: ['creds', 'lateral'],
95
- },
96
- ];
97
- /**
98
- * Enhanced offensive security coordinator with autonomous verification
99
- */
100
- export class OffsecAlphaZeroEnhanced {
101
- context;
102
- verificationConfig;
103
- constructor(initialContext = {}, verificationConfig) {
104
- this.context = {
105
- target: initialContext.target || '<target>',
106
- url: initialContext.url || 'http://<target>',
107
- previousOutputs: initialContext.previousOutputs || [],
108
- discoveredCredentials: initialContext.discoveredCredentials || [],
109
- discoveredHosts: initialContext.discoveredHosts || [],
110
- currentPrivilegeLevel: initialContext.currentPrivilegeLevel || 'unknown',
111
- detectionRisk: initialContext.detectionRisk || 'low',
112
- };
113
- this.verificationConfig = {
114
- methods: verificationConfig?.methods || [
115
- 'output_parsing',
116
- 'state_validation',
117
- 'behavioral_check',
118
- 'response_validation',
119
- ],
120
- minConfidence: verificationConfig?.minConfidence || 0.75,
121
- maxRetries: verificationConfig?.maxRetries || 3,
122
- retryStrategies: verificationConfig?.retryStrategies || DEFAULT_RETRY_STRATEGIES,
123
- timeout: verificationConfig?.timeout || 60000,
124
- };
125
- }
126
- /**
127
- * Execute an offensive security action with autonomous verification
128
- */
129
- async executeWithVerification(run, action) {
130
- let retryAttempt = 0;
131
- let bestResult = null;
132
- let bestConfidence = 0;
133
- while (retryAttempt < this.verificationConfig.maxRetries) {
134
- const startTime = Date.now();
135
- // Get command (possibly modified by retry strategy)
136
- const command = this.getCommandForAttempt(action, retryAttempt);
137
- // Execute command
138
- const { output, exitCode } = await this.executeCommand(command, this.verificationConfig.timeout);
139
- // Extract context from output
140
- const executionContext = this.extractContextFromOutput(output, action.category);
141
- // Run autonomous verification
142
- const verification = await autonomousVerification.verify('offensive-security', action.command, output, {
143
- ...this.context,
144
- ...executionContext,
145
- exitCode,
146
- category: action.category,
147
- });
148
- const executionTimeMs = Date.now() - startTime;
149
- // Determine outcome based on verification
150
- const finalOutcome = this.determineOutcome(verification, exitCode, output);
151
- const result = {
152
- actionId: action.id,
153
- command,
154
- output,
155
- exitCode,
156
- verification,
157
- retryAttempt,
158
- finalOutcome,
159
- confidence: verification.confidence,
160
- executionTimeMs,
161
- };
162
- // Track best result
163
- if (verification.confidence > bestConfidence) {
164
- bestConfidence = verification.confidence;
165
- bestResult = result;
166
- }
167
- // If we have strong confirmation of success, stop retrying
168
- if (verification.approved && verification.confidence >= this.verificationConfig.minConfidence) {
169
- // Update context with discoveries
170
- this.updateContextFromResult(result);
171
- // Record outcome in the run
172
- recordOffsecOutcome(run.id, action.id, finalOutcome, this.formatResultNote(result));
173
- return result;
174
- }
175
- // If detected, stop immediately
176
- if (finalOutcome === 'detected') {
177
- recordOffsecOutcome(run.id, action.id, finalOutcome, this.formatResultNote(result));
178
- return result;
179
- }
180
- retryAttempt++;
181
- }
182
- // All retries exhausted, use best result
183
- if (!bestResult) {
184
- throw new Error('No execution results available');
185
- }
186
- // Record the best outcome
187
- recordOffsecOutcome(run.id, action.id, bestResult.finalOutcome, this.formatResultNote(bestResult));
188
- return bestResult;
189
- }
190
- /**
191
- * Get command for a specific retry attempt
192
- */
193
- getCommandForAttempt(action, attempt) {
194
- if (attempt === 0) {
195
- return action.command;
196
- }
197
- // Apply retry strategies
198
- const applicableStrategies = this.verificationConfig.retryStrategies.filter((s) => s.applicableCategories.includes(action.category));
199
- if (applicableStrategies.length === 0) {
200
- return action.command;
201
- }
202
- // Use a different strategy for each attempt
203
- const strategy = applicableStrategies[(attempt - 1) % applicableStrategies.length];
204
- if (!strategy) {
205
- return action.command;
206
- }
207
- return strategy.modifyCommand(action.command, attempt);
208
- }
209
- /**
210
- * Execute a shell command with timeout
211
- */
212
- async executeCommand(command, timeout) {
213
- return new Promise((resolve, reject) => {
214
- const child = spawn(command, { shell: true });
215
- let output = '';
216
- let timedOut = false;
217
- const timer = setTimeout(() => {
218
- timedOut = true;
219
- child.kill('SIGTERM');
220
- resolve({ output: output + '\n[TIMEOUT]', exitCode: 124 });
221
- }, timeout);
222
- child.stdout?.on('data', (data) => {
223
- output += data.toString();
224
- });
225
- child.stderr?.on('data', (data) => {
226
- output += data.toString();
227
- });
228
- child.on('close', (code) => {
229
- clearTimeout(timer);
230
- if (!timedOut) {
231
- resolve({ output, exitCode: code || 0 });
232
- }
233
- });
234
- child.on('error', (error) => {
235
- clearTimeout(timer);
236
- reject(error);
237
- });
238
- });
239
- }
240
- /**
241
- * Extract context information from command output
242
- */
243
- extractContextFromOutput(output, category) {
244
- const context = {
245
- states: [],
246
- };
247
- // Extract based on category
248
- switch (category) {
249
- case 'recon':
250
- // Look for open ports
251
- const portMatches = output.match(/(\d+)\/tcp\s+open/gi);
252
- if (portMatches) {
253
- context.states.push('ports_discovered');
254
- context.discoveredPorts = portMatches
255
- .map((m) => m.match(/\d+/)?.[0])
256
- .filter((value) => Boolean(value));
257
- }
258
- break;
259
- case 'web':
260
- // Look for interesting endpoints
261
- if (output.match(/200|301|302/)) {
262
- context.states.push('endpoints_found');
263
- }
264
- break;
265
- case 'creds':
266
- // Look for credentials
267
- if (output.match(/password|token|key|secret/i)) {
268
- context.states.push('new_credentials');
269
- }
270
- break;
271
- case 'payload':
272
- // Look for successful exploitation
273
- if (output.match(/shell|uid=|gid=|root|admin/i)) {
274
- context.states.push('new_access');
275
- context.states.push('shell_obtained');
276
- }
277
- break;
278
- case 'lateral':
279
- // Look for successful lateral movement
280
- if (output.match(/logged in|authenticated|connected/i)) {
281
- context.states.push('new_access');
282
- }
283
- break;
284
- case 'privilege':
285
- // Look for privilege escalation
286
- if (output.match(/root|administrator|SYSTEM/i)) {
287
- context.states.push('privilege_escalated');
288
- }
289
- break;
290
- case 'cloud':
291
- // Look for cloud metadata access
292
- if (output.match(/ami-|AccessKeyId|SecretAccessKey/i)) {
293
- context.states.push('cloud_metadata_accessed');
294
- }
295
- break;
296
- }
297
- return context;
298
- }
299
- /**
300
- * Determine outcome from verification result
301
- */
302
- determineOutcome(verification, exitCode, output) {
303
- // Check for detection indicators
304
- const detectionPatterns = [
305
- /blocked|banned|firewall|WAF/i,
306
- /rate.?limit|too many requests/i,
307
- /suspicious.?activity/i,
308
- /blacklist/i,
309
- ];
310
- const isDetected = detectionPatterns.some((pattern) => pattern.test(output));
311
- if (isDetected) {
312
- return 'detected';
313
- }
314
- // If verification approved with high confidence, it's a success
315
- if (verification.approved && verification.confidence >= this.verificationConfig.minConfidence) {
316
- return 'success';
317
- }
318
- // If verification confidence is moderate, treat as success with note
319
- if (verification.confidence >= 0.5) {
320
- return 'success';
321
- }
322
- // Otherwise it's a failure
323
- return 'fail';
324
- }
325
- /**
326
- * Update internal context based on execution result
327
- */
328
- updateContextFromResult(result) {
329
- this.context.previousOutputs.push(result.output);
330
- // Extract and store credentials
331
- const credMatches = result.output.match(/(?:password|token|key)[:=]\s*(\S+)/gi);
332
- if (credMatches) {
333
- this.context.discoveredCredentials.push(...credMatches);
334
- }
335
- // Extract and store discovered hosts
336
- const hostMatches = result.output.match(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/g);
337
- if (hostMatches) {
338
- this.context.discoveredHosts.push(...hostMatches);
339
- }
340
- // Update privilege level
341
- if (result.output.match(/root|administrator|SYSTEM/i)) {
342
- this.context.currentPrivilegeLevel = 'root';
343
- }
344
- else if (result.output.match(/admin/i)) {
345
- this.context.currentPrivilegeLevel = 'admin';
346
- }
347
- else if (result.output.match(/uid=/i)) {
348
- this.context.currentPrivilegeLevel = 'user';
349
- }
350
- // Adjust detection risk
351
- if (result.finalOutcome === 'detected') {
352
- this.context.detectionRisk = 'high';
353
- }
354
- else if (result.verification.confidence < 0.5) {
355
- this.context.detectionRisk = this.context.detectionRisk === 'low' ? 'medium' : 'high';
356
- }
357
- }
358
- /**
359
- * Format result as a note for storage
360
- */
361
- formatResultNote(result) {
362
- const lines = [];
363
- lines.push(`Confidence: ${(result.confidence * 100).toFixed(1)}%`);
364
- lines.push(`Verification: ${result.verification.reason}`);
365
- lines.push(`Attempts: ${result.retryAttempt + 1}`);
366
- lines.push(`Time: ${result.executionTimeMs}ms`);
367
- if (result.verification.results.length > 0) {
368
- lines.push('Checks:');
369
- for (const check of result.verification.results) {
370
- lines.push(` - ${check.method}: ${check.passed ? '✓' : '✗'} (${(check.confidence * 100).toFixed(0)}%)`);
371
- }
372
- }
373
- return lines.join('\n');
374
- }
375
- /**
376
- * Execute a full offensive security run with autonomous verification
377
- */
378
- async executeAutonomousRun(objective, scope, maxActions = 10) {
379
- // Start or resume run
380
- const run = startOffsecRun(objective, scope);
381
- let actionsExecuted = 0;
382
- while (actionsExecuted < maxActions) {
383
- // Get next action
384
- const nextActions = getOffsecNextActions(run.id, 1);
385
- if (nextActions.length === 0) {
386
- console.log('No more actions available');
387
- break;
388
- }
389
- const nextAction = nextActions[0];
390
- if (!nextAction) {
391
- break;
392
- }
393
- console.log(`Executing: ${nextAction.label}`);
394
- console.log(`Command: ${nextAction.command}`);
395
- try {
396
- // Execute with verification
397
- const result = await this.executeWithVerification(run, nextAction);
398
- console.log(`Result: ${result.finalOutcome} (confidence: ${(result.confidence * 100).toFixed(1)}%)`);
399
- // Stop if detected
400
- if (result.finalOutcome === 'detected') {
401
- console.log('Detected! Stopping autonomous run.');
402
- break;
403
- }
404
- actionsExecuted++;
405
- }
406
- catch (error) {
407
- console.error(`Error executing action: ${error instanceof Error ? error.message : String(error)}`);
408
- recordOffsecOutcome(run.id, nextAction.id, 'fail', `Error: ${error}`);
409
- actionsExecuted++;
410
- }
411
- }
412
- return run;
413
- }
414
- /**
415
- * Get current context
416
- */
417
- getContext() {
418
- return { ...this.context };
419
- }
420
- /**
421
- * Update context
422
- */
423
- updateContext(updates) {
424
- this.context = { ...this.context, ...updates };
425
- }
426
- }
427
- /**
428
- * Convenience function to execute an action with verification
429
- */
430
- export async function executeOffsecActionWithVerification(run, actionId, context) {
431
- const coordinator = new OffsecAlphaZeroEnhanced(context);
432
- const actions = getOffsecNextActions(run.id, 100);
433
- const action = actions.find((a) => a.id === actionId);
434
- if (!action) {
435
- throw new Error(`Action ${actionId} not found`);
436
- }
437
- return coordinator.executeWithVerification(run, action);
438
- }
439
- // Re-export for convenience
440
- export { startOffsecRun, resumeOffsecRun, listOffsecRuns, getOffsecNextActions, formatOffsecStatus, };
441
- //# sourceMappingURL=offsecAlphaZeroEnhanced.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"offsecAlphaZeroEnhanced.js","sourceRoot":"","sources":["../../src/core/offsecAlphaZeroEnhanced.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAML,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,sBAAsB,GAGvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAuCtC;;GAEG;AACH,MAAM,wBAAwB,GAAoB;IAChD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,8CAA8C;QAC3D,aAAa,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;YAC9B,6BAA6B;YAC7B,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzB,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;YACjE,CAAC;YACD,6BAA6B;YAC7B,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC9B,OAAO,GAAG,GAAG,YAAY,OAAO,GAAG,GAAG,EAAE,CAAC;YAC3C,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,oBAAoB,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;KACvC;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,yCAAyC;QACtD,aAAa,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;YAC9B,MAAM,UAAU,GAAG;gBACjB,2CAA2C;gBAC3C,iDAAiD;gBACjD,aAAa;aACd,CAAC;YACF,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YACnD,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzB,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;YAChD,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,oBAAoB,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;KACzC;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,kCAAkC;QAC/C,aAAa,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;YAC9B,wBAAwB;YACxB,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3B,MAAM,SAAS,GAAG,CAAC,EAAE,EAAE,uBAAuB,EAAE,qBAAqB,CAAC,CAAC;gBACvE,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;gBACrD,OAAO,GAAG,GAAG,IAAI,MAAM,EAAE,CAAC;YAC5B,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,oBAAoB,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC;KACzC;IACD;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,4CAA4C;QACzD,aAAa,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;YAC9B,2BAA2B;YAC3B,MAAM,QAAQ,GAA6B;gBACzC,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;gBACtB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;gBACjB,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;gBAChB,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;aACpB,CAAC;YACF,qCAAqC;YACrC,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxD,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAE,CAAC;oBACjC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC9C,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,oBAAoB,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;KAC3C;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,4DAA4D;QACzE,aAAa,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;YAC9B,mCAAmC;YACnC,+BAA+B;YAC/B,OAAO,GAAG,CAAC;QACb,CAAC;QACD,oBAAoB,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;KAC3C;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAC1B,OAAO,CAAsB;IAC7B,kBAAkB,CAA2B;IAErD,YACE,iBAA+C,EAAE,EACjD,kBAAsD;QAEtD,IAAI,CAAC,OAAO,GAAG;YACb,MAAM,EAAE,cAAc,CAAC,MAAM,IAAI,UAAU;YAC3C,GAAG,EAAE,cAAc,CAAC,GAAG,IAAI,iBAAiB;YAC5C,eAAe,EAAE,cAAc,CAAC,eAAe,IAAI,EAAE;YACrD,qBAAqB,EAAE,cAAc,CAAC,qBAAqB,IAAI,EAAE;YACjE,eAAe,EAAE,cAAc,CAAC,eAAe,IAAI,EAAE;YACrD,qBAAqB,EAAE,cAAc,CAAC,qBAAqB,IAAI,SAAS;YACxE,aAAa,EAAE,cAAc,CAAC,aAAa,IAAI,KAAK;SACrD,CAAC;QAEF,IAAI,CAAC,kBAAkB,GAAG;YACxB,OAAO,EAAE,kBAAkB,EAAE,OAAO,IAAI;gBACtC,gBAAgB;gBAChB,kBAAkB;gBAClB,kBAAkB;gBAClB,qBAAqB;aACtB;YACD,aAAa,EAAE,kBAAkB,EAAE,aAAa,IAAI,IAAI;YACxD,UAAU,EAAE,kBAAkB,EAAE,UAAU,IAAI,CAAC;YAC/C,eAAe,EAAE,kBAAkB,EAAE,eAAe,IAAI,wBAAwB;YAChF,OAAO,EAAE,kBAAkB,EAAE,OAAO,IAAI,KAAK;SAC9C,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB,CAC3B,GAAc,EACd,MAAwB;QAExB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,UAAU,GAAiC,IAAI,CAAC;QACpD,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,OAAO,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC;YACzD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE7B,oDAAoD;YACpD,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAEhE,kBAAkB;YAClB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAEjG,8BAA8B;YAC9B,MAAM,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAEhF,8BAA8B;YAC9B,MAAM,YAAY,GAAG,MAAM,sBAAsB,CAAC,MAAM,CACtD,oBAAoB,EACpB,MAAM,CAAC,OAAO,EACd,MAAM,EACN;gBACE,GAAG,IAAI,CAAC,OAAO;gBACf,GAAG,gBAAgB;gBACnB,QAAQ;gBACR,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CACF,CAAC;YAEF,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAE/C,0CAA0C;YAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAE3E,MAAM,MAAM,GAA0B;gBACpC,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,OAAO;gBACP,MAAM;gBACN,QAAQ;gBACR,YAAY;gBACZ,YAAY;gBACZ,YAAY;gBACZ,UAAU,EAAE,YAAY,CAAC,UAAU;gBACnC,eAAe;aAChB,CAAC;YAEF,oBAAoB;YACpB,IAAI,YAAY,CAAC,UAAU,GAAG,cAAc,EAAE,CAAC;gBAC7C,cAAc,GAAG,YAAY,CAAC,UAAU,CAAC;gBACzC,UAAU,GAAG,MAAM,CAAC;YACtB,CAAC;YAED,2DAA2D;YAC3D,IAAI,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,UAAU,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;gBAC9F,kCAAkC;gBAClC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;gBACrC,4BAA4B;gBAC5B,mBAAmB,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;gBACpF,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,gCAAgC;YAChC,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;gBAChC,mBAAmB,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;gBACpF,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,YAAY,EAAE,CAAC;QACjB,CAAC;QAED,yCAAyC;QACzC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,0BAA0B;QAC1B,mBAAmB,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;QACnG,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,MAAwB,EAAE,OAAe;QACpE,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,CAAC;QAED,yBAAyB;QACzB,MAAM,oBAAoB,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,MAAM,CACzE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CACxD,CAAC;QAEF,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,CAAC;QAED,4CAA4C;QAC5C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACnF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,CAAC;QAED,OAAO,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAC1B,OAAe,EACf,OAAe;QAEf,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,QAAQ,GAAG,KAAK,CAAC;YAErB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,QAAQ,GAAG,IAAI,CAAC;gBAChB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtB,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7D,CAAC,EAAE,OAAO,CAAC,CAAC;YAEZ,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAChC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAChC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC1B,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,wBAAwB,CAC9B,MAAc,EACd,QAA8B;QAE9B,MAAM,OAAO,GAAqD;YAChE,MAAM,EAAE,EAAE;SACX,CAAC;QAEF,4BAA4B;QAC5B,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,OAAO;gBACV,sBAAsB;gBACtB,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;gBACxD,IAAI,WAAW,EAAE,CAAC;oBAChB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBACxC,OAAO,CAAC,eAAe,GAAG,WAAW;yBAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;yBAC/B,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxD,CAAC;gBACD,MAAM;YAER,KAAK,KAAK;gBACR,iCAAiC;gBACjC,IAAI,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;oBAChC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACzC,CAAC;gBACD,MAAM;YAER,KAAK,OAAO;gBACV,uBAAuB;gBACvB,IAAI,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,EAAE,CAAC;oBAC/C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACzC,CAAC;gBACD,MAAM;YAER,KAAK,SAAS;gBACZ,mCAAmC;gBACnC,IAAI,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,EAAE,CAAC;oBAChD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAClC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACxC,CAAC;gBACD,MAAM;YAER,KAAK,SAAS;gBACZ,uCAAuC;gBACvC,IAAI,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,EAAE,CAAC;oBACvD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACpC,CAAC;gBACD,MAAM;YAER,KAAK,WAAW;gBACd,gCAAgC;gBAChC,IAAI,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,EAAE,CAAC;oBAC/C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBAC7C,CAAC;gBACD,MAAM;YAER,KAAK,OAAO;gBACV,iCAAiC;gBACjC,IAAI,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,EAAE,CAAC;oBACtD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;gBACjD,CAAC;gBACD,MAAM;QACV,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,gBAAgB,CACtB,YAAiC,EACjC,QAAgB,EAChB,MAAc;QAEd,iCAAiC;QACjC,MAAM,iBAAiB,GAAG;YACxB,8BAA8B;YAC9B,gCAAgC;YAChC,uBAAuB;YACvB,YAAY;SACb,CAAC;QAEF,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7E,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,gEAAgE;QAChE,IAAI,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,UAAU,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;YAC9F,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,qEAAqE;QACrE,IAAI,YAAY,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;YACnC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,2BAA2B;QAC3B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,uBAAuB,CAAC,MAA6B;QAC3D,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEjD,gCAAgC;QAChC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAChF,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QAC1D,CAAC;QAED,qCAAqC;QACrC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC/E,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QACpD,CAAC;QAED,yBAAyB;QACzB,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,OAAO,CAAC,qBAAqB,GAAG,MAAM,CAAC;QAC9C,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,qBAAqB,GAAG,OAAO,CAAC;QAC/C,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,qBAAqB,GAAG,MAAM,CAAC;QAC9C,CAAC;QAED,wBAAwB;QACxB,IAAI,MAAM,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,MAAM,CAAC;QACtC,CAAC;aAAM,IAAI,MAAM,CAAC,YAAY,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;YAChD,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QACxF,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,MAA6B;QACpD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACnE,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,eAAe,IAAI,CAAC,CAAC;QAEhD,IAAI,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBAChD,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3G,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CACxB,SAAiB,EACjB,KAAe,EACf,aAAqB,EAAE;QAEvB,sBAAsB;QACtB,MAAM,GAAG,GAAG,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAE7C,IAAI,eAAe,GAAG,CAAC,CAAC;QAExB,OAAO,eAAe,GAAG,UAAU,EAAE,CAAC;YACpC,kBAAkB;YAClB,MAAM,WAAW,GAAG,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACpD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBACzC,MAAM;YACR,CAAC;YAED,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM;YACR,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,cAAc,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,YAAY,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAE9C,IAAI,CAAC;gBACH,4BAA4B;gBAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;gBAEnE,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,YAAY,iBAAiB,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAErG,mBAAmB;gBACnB,IAAI,MAAM,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;oBACvC,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;oBAClD,MAAM;gBACR,CAAC;gBAED,eAAe,EAAE,CAAC;YACpB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACnG,mBAAmB,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,KAAK,EAAE,CAAC,CAAC;gBACtE,eAAe,EAAE,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,OAAqC;QACjD,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;IACjD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mCAAmC,CACvD,GAAc,EACd,QAAgB,EAChB,OAAsC;IAEtC,MAAM,WAAW,GAAG,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;IAEtD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,UAAU,QAAQ,YAAY,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,WAAW,CAAC,uBAAuB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC1D,CAAC;AAED,4BAA4B;AAC5B,OAAO,EACL,cAAc,EACd,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,kBAAkB,GACnB,CAAC"}