erosolar-cli 1.7.325 → 1.7.327
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.
- package/README.md +24 -148
- package/dist/bin/erosolar.js +5 -21
- package/dist/bin/erosolar.js.map +1 -1
- package/dist/capabilities/agentSpawningCapability.d.ts.map +1 -1
- package/dist/capabilities/agentSpawningCapability.js +56 -31
- package/dist/capabilities/agentSpawningCapability.js.map +1 -1
- package/dist/contracts/agent-schemas.json +0 -15
- package/dist/contracts/tools.schema.json +0 -9
- package/dist/core/agent.d.ts +2 -2
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js.map +1 -1
- package/dist/core/customCommands.d.ts +1 -0
- package/dist/core/customCommands.d.ts.map +1 -1
- package/dist/core/customCommands.js +3 -0
- package/dist/core/customCommands.js.map +1 -1
- package/dist/core/hooks.d.ts +113 -0
- package/dist/core/hooks.d.ts.map +1 -0
- package/dist/core/hooks.js +267 -0
- package/dist/core/hooks.js.map +1 -0
- package/dist/core/metricsTracker.d.ts +122 -0
- package/dist/core/metricsTracker.d.ts.map +1 -0
- package/dist/{alpha-zero → core}/metricsTracker.js +2 -5
- package/dist/core/metricsTracker.js.map +1 -0
- package/dist/core/securityAssessment.d.ts +91 -0
- package/dist/core/securityAssessment.d.ts.map +1 -0
- package/dist/core/securityAssessment.js +580 -0
- package/dist/core/securityAssessment.js.map +1 -0
- package/dist/core/toolPreconditions.d.ts.map +1 -1
- package/dist/core/toolPreconditions.js +0 -14
- package/dist/core/toolPreconditions.js.map +1 -1
- package/dist/core/toolRuntime.d.ts +22 -1
- package/dist/core/toolRuntime.d.ts.map +1 -1
- package/dist/core/toolRuntime.js +0 -5
- package/dist/core/toolRuntime.js.map +1 -1
- package/dist/core/toolValidation.d.ts.map +1 -1
- package/dist/core/toolValidation.js +14 -3
- package/dist/core/toolValidation.js.map +1 -1
- package/dist/core/validationRunner.d.ts +1 -3
- package/dist/core/validationRunner.d.ts.map +1 -1
- package/dist/core/validationRunner.js.map +1 -1
- package/dist/core/verification.d.ts +137 -0
- package/dist/core/verification.d.ts.map +1 -0
- package/dist/core/verification.js +323 -0
- package/dist/core/verification.js.map +1 -0
- package/dist/headless/headlessApp.d.ts.map +1 -1
- package/dist/headless/headlessApp.js +21 -0
- package/dist/headless/headlessApp.js.map +1 -1
- package/dist/mcp/sseClient.d.ts.map +1 -1
- package/dist/mcp/sseClient.js +9 -18
- package/dist/mcp/sseClient.js.map +1 -1
- package/dist/plugins/tools/build/buildPlugin.d.ts +0 -6
- package/dist/plugins/tools/build/buildPlugin.d.ts.map +1 -1
- package/dist/plugins/tools/build/buildPlugin.js +4 -10
- package/dist/plugins/tools/build/buildPlugin.js.map +1 -1
- package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -1
- package/dist/plugins/tools/nodeDefaults.js +0 -2
- package/dist/plugins/tools/nodeDefaults.js.map +1 -1
- package/dist/runtime/agentSession.d.ts +2 -2
- package/dist/runtime/agentSession.d.ts.map +1 -1
- package/dist/runtime/agentSession.js +2 -2
- package/dist/runtime/agentSession.js.map +1 -1
- package/dist/shell/interactiveShell.d.ts +16 -7
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +235 -164
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/shell/shellApp.d.ts +2 -0
- package/dist/shell/shellApp.d.ts.map +1 -1
- package/dist/shell/shellApp.js +40 -9
- package/dist/shell/shellApp.js.map +1 -1
- package/dist/shell/systemPrompt.d.ts.map +1 -1
- package/dist/shell/systemPrompt.js +1 -4
- package/dist/shell/systemPrompt.js.map +1 -1
- package/dist/shell/terminalInput.d.ts +149 -116
- package/dist/shell/terminalInput.d.ts.map +1 -1
- package/dist/shell/terminalInput.js +639 -513
- package/dist/shell/terminalInput.js.map +1 -1
- package/dist/shell/terminalInputAdapter.d.ts +79 -20
- package/dist/shell/terminalInputAdapter.d.ts.map +1 -1
- package/dist/shell/terminalInputAdapter.js +99 -30
- package/dist/shell/terminalInputAdapter.js.map +1 -1
- package/dist/subagents/agentConfig.d.ts +27 -0
- package/dist/subagents/agentConfig.d.ts.map +1 -0
- package/dist/subagents/agentConfig.js +89 -0
- package/dist/subagents/agentConfig.js.map +1 -0
- package/dist/subagents/agentRegistry.d.ts +33 -0
- package/dist/subagents/agentRegistry.d.ts.map +1 -0
- package/dist/subagents/agentRegistry.js +162 -0
- package/dist/subagents/agentRegistry.js.map +1 -0
- package/dist/subagents/taskRunner.d.ts +7 -1
- package/dist/subagents/taskRunner.d.ts.map +1 -1
- package/dist/subagents/taskRunner.js +180 -47
- package/dist/subagents/taskRunner.js.map +1 -1
- package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
- package/dist/ui/ShellUIAdapter.js +13 -12
- package/dist/ui/ShellUIAdapter.js.map +1 -1
- package/dist/ui/display.d.ts +24 -45
- package/dist/ui/display.d.ts.map +1 -1
- package/dist/ui/display.js +140 -259
- package/dist/ui/display.js.map +1 -1
- package/dist/ui/theme.d.ts.map +1 -1
- package/dist/ui/theme.js +6 -8
- package/dist/ui/theme.js.map +1 -1
- package/dist/ui/toolDisplay.d.ts +0 -158
- package/dist/ui/toolDisplay.d.ts.map +1 -1
- package/dist/ui/toolDisplay.js +0 -348
- package/dist/ui/toolDisplay.js.map +1 -1
- package/dist/ui/unified/layout.d.ts +1 -0
- package/dist/ui/unified/layout.d.ts.map +1 -1
- package/dist/ui/unified/layout.js +15 -25
- package/dist/ui/unified/layout.js.map +1 -1
- package/dist/utils/frontmatter.d.ts +10 -0
- package/dist/utils/frontmatter.d.ts.map +1 -0
- package/dist/utils/frontmatter.js +78 -0
- package/dist/utils/frontmatter.js.map +1 -0
- package/package.json +4 -4
- package/dist/alpha-zero/agentWrapper.d.ts +0 -84
- package/dist/alpha-zero/agentWrapper.d.ts.map +0 -1
- package/dist/alpha-zero/agentWrapper.js +0 -171
- package/dist/alpha-zero/agentWrapper.js.map +0 -1
- package/dist/alpha-zero/codeEvaluator.d.ts +0 -25
- package/dist/alpha-zero/codeEvaluator.d.ts.map +0 -1
- package/dist/alpha-zero/codeEvaluator.js +0 -273
- package/dist/alpha-zero/codeEvaluator.js.map +0 -1
- package/dist/alpha-zero/competitiveRunner.d.ts +0 -66
- package/dist/alpha-zero/competitiveRunner.d.ts.map +0 -1
- package/dist/alpha-zero/competitiveRunner.js +0 -224
- package/dist/alpha-zero/competitiveRunner.js.map +0 -1
- package/dist/alpha-zero/index.d.ts +0 -67
- package/dist/alpha-zero/index.d.ts.map +0 -1
- package/dist/alpha-zero/index.js +0 -99
- package/dist/alpha-zero/index.js.map +0 -1
- package/dist/alpha-zero/introspection.d.ts +0 -128
- package/dist/alpha-zero/introspection.d.ts.map +0 -1
- package/dist/alpha-zero/introspection.js +0 -300
- package/dist/alpha-zero/introspection.js.map +0 -1
- package/dist/alpha-zero/metricsTracker.d.ts +0 -71
- package/dist/alpha-zero/metricsTracker.d.ts.map +0 -1
- package/dist/alpha-zero/metricsTracker.js.map +0 -1
- package/dist/alpha-zero/security/core.d.ts +0 -125
- package/dist/alpha-zero/security/core.d.ts.map +0 -1
- package/dist/alpha-zero/security/core.js +0 -271
- package/dist/alpha-zero/security/core.js.map +0 -1
- package/dist/alpha-zero/security/google.d.ts +0 -125
- package/dist/alpha-zero/security/google.d.ts.map +0 -1
- package/dist/alpha-zero/security/google.js +0 -311
- package/dist/alpha-zero/security/google.js.map +0 -1
- package/dist/alpha-zero/security/googleLoader.d.ts +0 -17
- package/dist/alpha-zero/security/googleLoader.d.ts.map +0 -1
- package/dist/alpha-zero/security/googleLoader.js +0 -41
- package/dist/alpha-zero/security/googleLoader.js.map +0 -1
- package/dist/alpha-zero/security/index.d.ts +0 -29
- package/dist/alpha-zero/security/index.d.ts.map +0 -1
- package/dist/alpha-zero/security/index.js +0 -32
- package/dist/alpha-zero/security/index.js.map +0 -1
- package/dist/alpha-zero/security/simulation.d.ts +0 -124
- package/dist/alpha-zero/security/simulation.d.ts.map +0 -1
- package/dist/alpha-zero/security/simulation.js +0 -277
- package/dist/alpha-zero/security/simulation.js.map +0 -1
- package/dist/alpha-zero/selfModification.d.ts +0 -109
- package/dist/alpha-zero/selfModification.d.ts.map +0 -1
- package/dist/alpha-zero/selfModification.js +0 -233
- package/dist/alpha-zero/selfModification.js.map +0 -1
- package/dist/alpha-zero/types.d.ts +0 -170
- package/dist/alpha-zero/types.d.ts.map +0 -1
- package/dist/alpha-zero/types.js +0 -31
- package/dist/alpha-zero/types.js.map +0 -1
- package/dist/capabilities/securityTestingCapability.d.ts +0 -13
- package/dist/capabilities/securityTestingCapability.d.ts.map +0 -1
- package/dist/capabilities/securityTestingCapability.js +0 -25
- package/dist/capabilities/securityTestingCapability.js.map +0 -1
- package/dist/core/aiFlowOptimizer.d.ts +0 -26
- package/dist/core/aiFlowOptimizer.d.ts.map +0 -1
- package/dist/core/aiFlowOptimizer.js +0 -31
- package/dist/core/aiFlowOptimizer.js.map +0 -1
- package/dist/core/aiOptimizationEngine.d.ts +0 -158
- package/dist/core/aiOptimizationEngine.d.ts.map +0 -1
- package/dist/core/aiOptimizationEngine.js +0 -428
- package/dist/core/aiOptimizationEngine.js.map +0 -1
- package/dist/core/aiOptimizationIntegration.d.ts +0 -93
- package/dist/core/aiOptimizationIntegration.d.ts.map +0 -1
- package/dist/core/aiOptimizationIntegration.js +0 -250
- package/dist/core/aiOptimizationIntegration.js.map +0 -1
- package/dist/core/enhancedErrorRecovery.d.ts +0 -100
- package/dist/core/enhancedErrorRecovery.d.ts.map +0 -1
- package/dist/core/enhancedErrorRecovery.js +0 -345
- package/dist/core/enhancedErrorRecovery.js.map +0 -1
- package/dist/core/hooksSystem.d.ts +0 -65
- package/dist/core/hooksSystem.d.ts.map +0 -1
- package/dist/core/hooksSystem.js +0 -273
- package/dist/core/hooksSystem.js.map +0 -1
- package/dist/core/memorySystem.d.ts +0 -48
- package/dist/core/memorySystem.d.ts.map +0 -1
- package/dist/core/memorySystem.js +0 -271
- package/dist/core/memorySystem.js.map +0 -1
- package/dist/core/unified/errors.d.ts +0 -189
- package/dist/core/unified/errors.d.ts.map +0 -1
- package/dist/core/unified/errors.js +0 -497
- package/dist/core/unified/errors.js.map +0 -1
- package/dist/core/unified/index.d.ts +0 -19
- package/dist/core/unified/index.d.ts.map +0 -1
- package/dist/core/unified/index.js +0 -68
- package/dist/core/unified/index.js.map +0 -1
- package/dist/core/unified/schema.d.ts +0 -101
- package/dist/core/unified/schema.d.ts.map +0 -1
- package/dist/core/unified/schema.js +0 -350
- package/dist/core/unified/schema.js.map +0 -1
- package/dist/core/unified/toolRuntime.d.ts +0 -179
- package/dist/core/unified/toolRuntime.d.ts.map +0 -1
- package/dist/core/unified/toolRuntime.js +0 -517
- package/dist/core/unified/toolRuntime.js.map +0 -1
- package/dist/core/unified/tools.d.ts +0 -127
- package/dist/core/unified/tools.d.ts.map +0 -1
- package/dist/core/unified/tools.js +0 -1333
- package/dist/core/unified/tools.js.map +0 -1
- package/dist/core/unified/types.d.ts +0 -352
- package/dist/core/unified/types.d.ts.map +0 -1
- package/dist/core/unified/types.js +0 -12
- package/dist/core/unified/types.js.map +0 -1
- package/dist/core/unified/version.d.ts +0 -209
- package/dist/core/unified/version.d.ts.map +0 -1
- package/dist/core/unified/version.js +0 -454
- package/dist/core/unified/version.js.map +0 -1
- package/dist/plugins/tools/security/securityPlugin.d.ts +0 -3
- package/dist/plugins/tools/security/securityPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/security/securityPlugin.js +0 -12
- package/dist/plugins/tools/security/securityPlugin.js.map +0 -1
- package/dist/security/active-stack-security.d.ts +0 -112
- package/dist/security/active-stack-security.d.ts.map +0 -1
- package/dist/security/active-stack-security.js +0 -296
- package/dist/security/active-stack-security.js.map +0 -1
- package/dist/security/advanced-persistence-research.d.ts +0 -92
- package/dist/security/advanced-persistence-research.d.ts.map +0 -1
- package/dist/security/advanced-persistence-research.js +0 -195
- package/dist/security/advanced-persistence-research.js.map +0 -1
- package/dist/security/advanced-targeting.d.ts +0 -119
- package/dist/security/advanced-targeting.d.ts.map +0 -1
- package/dist/security/advanced-targeting.js +0 -233
- package/dist/security/advanced-targeting.js.map +0 -1
- package/dist/security/assessment/vulnerabilityAssessment.d.ts +0 -104
- package/dist/security/assessment/vulnerabilityAssessment.d.ts.map +0 -1
- package/dist/security/assessment/vulnerabilityAssessment.js +0 -315
- package/dist/security/assessment/vulnerabilityAssessment.js.map +0 -1
- package/dist/security/authorization/securityAuthorization.d.ts +0 -88
- package/dist/security/authorization/securityAuthorization.d.ts.map +0 -1
- package/dist/security/authorization/securityAuthorization.js +0 -172
- package/dist/security/authorization/securityAuthorization.js.map +0 -1
- package/dist/security/comprehensive-targeting.d.ts +0 -85
- package/dist/security/comprehensive-targeting.d.ts.map +0 -1
- package/dist/security/comprehensive-targeting.js +0 -438
- package/dist/security/comprehensive-targeting.js.map +0 -1
- package/dist/security/global-security-integration.d.ts +0 -91
- package/dist/security/global-security-integration.d.ts.map +0 -1
- package/dist/security/global-security-integration.js +0 -218
- package/dist/security/global-security-integration.js.map +0 -1
- package/dist/security/index.d.ts +0 -38
- package/dist/security/index.d.ts.map +0 -1
- package/dist/security/index.js +0 -47
- package/dist/security/index.js.map +0 -1
- package/dist/security/persistence-analyzer.d.ts +0 -56
- package/dist/security/persistence-analyzer.d.ts.map +0 -1
- package/dist/security/persistence-analyzer.js +0 -187
- package/dist/security/persistence-analyzer.js.map +0 -1
- package/dist/security/persistence-cli.d.ts +0 -36
- package/dist/security/persistence-cli.d.ts.map +0 -1
- package/dist/security/persistence-cli.js +0 -160
- package/dist/security/persistence-cli.js.map +0 -1
- package/dist/security/persistence-research.d.ts +0 -92
- package/dist/security/persistence-research.d.ts.map +0 -1
- package/dist/security/persistence-research.js +0 -364
- package/dist/security/persistence-research.js.map +0 -1
- package/dist/security/research/persistenceResearch.d.ts +0 -97
- package/dist/security/research/persistenceResearch.d.ts.map +0 -1
- package/dist/security/research/persistenceResearch.js +0 -282
- package/dist/security/research/persistenceResearch.js.map +0 -1
- package/dist/security/security-integration.d.ts +0 -74
- package/dist/security/security-integration.d.ts.map +0 -1
- package/dist/security/security-integration.js +0 -137
- package/dist/security/security-integration.js.map +0 -1
- package/dist/security/security-testing-framework.d.ts +0 -112
- package/dist/security/security-testing-framework.d.ts.map +0 -1
- package/dist/security/security-testing-framework.js +0 -364
- package/dist/security/security-testing-framework.js.map +0 -1
- package/dist/security/simulation/attackSimulation.d.ts +0 -93
- package/dist/security/simulation/attackSimulation.d.ts.map +0 -1
- package/dist/security/simulation/attackSimulation.js +0 -341
- package/dist/security/simulation/attackSimulation.js.map +0 -1
- package/dist/security/strategic-operations.d.ts +0 -100
- package/dist/security/strategic-operations.d.ts.map +0 -1
- package/dist/security/strategic-operations.js +0 -276
- package/dist/security/strategic-operations.js.map +0 -1
- package/dist/security/tool-security-wrapper.d.ts +0 -58
- package/dist/security/tool-security-wrapper.d.ts.map +0 -1
- package/dist/security/tool-security-wrapper.js +0 -156
- package/dist/security/tool-security-wrapper.js.map +0 -1
- package/dist/shell/claudeCodeStreamHandler.d.ts +0 -145
- package/dist/shell/claudeCodeStreamHandler.d.ts.map +0 -1
- package/dist/shell/claudeCodeStreamHandler.js +0 -322
- package/dist/shell/claudeCodeStreamHandler.js.map +0 -1
- package/dist/shell/inputQueueManager.d.ts +0 -144
- package/dist/shell/inputQueueManager.d.ts.map +0 -1
- package/dist/shell/inputQueueManager.js +0 -290
- package/dist/shell/inputQueueManager.js.map +0 -1
- package/dist/shell/metricsTracker.d.ts +0 -60
- package/dist/shell/metricsTracker.d.ts.map +0 -1
- package/dist/shell/metricsTracker.js +0 -119
- package/dist/shell/metricsTracker.js.map +0 -1
- package/dist/shell/streamingOutputManager.d.ts +0 -115
- package/dist/shell/streamingOutputManager.d.ts.map +0 -1
- package/dist/shell/streamingOutputManager.js +0 -225
- package/dist/shell/streamingOutputManager.js.map +0 -1
- package/dist/tools/securityTools.d.ts +0 -22
- package/dist/tools/securityTools.d.ts.map +0 -1
- package/dist/tools/securityTools.js +0 -448
- package/dist/tools/securityTools.js.map +0 -1
- package/dist/ui/persistentPrompt.d.ts +0 -50
- package/dist/ui/persistentPrompt.d.ts.map +0 -1
- package/dist/ui/persistentPrompt.js +0 -92
- package/dist/ui/persistentPrompt.js.map +0 -1
- package/dist/ui/terminalUISchema.d.ts +0 -195
- package/dist/ui/terminalUISchema.d.ts.map +0 -1
- package/dist/ui/terminalUISchema.js +0 -113
- package/dist/ui/terminalUISchema.js.map +0 -1
- package/scripts/deploy-security-capabilities.js +0 -178
|
@@ -1,290 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* InputQueueManager - Queue-based input handling for Claude Code style streaming
|
|
3
|
-
*
|
|
4
|
-
* Key principles from Claude Code:
|
|
5
|
-
* 1. Readline handles input - Uses Node.js readline module
|
|
6
|
-
* 2. User can type while streaming - Input is queued in memory, not rendered
|
|
7
|
-
* 3. Queue-based approach: User types → stored in queue → processed after streaming ends
|
|
8
|
-
*
|
|
9
|
-
* The key insight is that the cursor is never moved during streaming.
|
|
10
|
-
* Input is captured "invisibly" while streaming, then processed when streaming ends.
|
|
11
|
-
*/
|
|
12
|
-
import { EventEmitter } from 'node:events';
|
|
13
|
-
/**
|
|
14
|
-
* Manages input queuing during streaming output.
|
|
15
|
-
*
|
|
16
|
-
* When streaming is active:
|
|
17
|
-
* - Captures keystrokes into a buffer
|
|
18
|
-
* - On Enter, queues the input for later processing
|
|
19
|
-
* - Provides methods to process queue after streaming ends
|
|
20
|
-
*/
|
|
21
|
-
export class InputQueueManager extends EventEmitter {
|
|
22
|
-
state = {
|
|
23
|
-
isCapturing: false,
|
|
24
|
-
buffer: '',
|
|
25
|
-
cursorPosition: 0,
|
|
26
|
-
queue: [],
|
|
27
|
-
};
|
|
28
|
-
inputIdCounter = 0;
|
|
29
|
-
maxQueueSize;
|
|
30
|
-
maxBufferLength;
|
|
31
|
-
constructor(options = {}) {
|
|
32
|
-
super();
|
|
33
|
-
this.maxQueueSize = options.maxQueueSize ?? 100;
|
|
34
|
-
this.maxBufferLength = options.maxBufferLength ?? 10000;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Start capturing input (during streaming)
|
|
38
|
-
* Input will be buffered and queued, not immediately processed
|
|
39
|
-
*/
|
|
40
|
-
startCapturing() {
|
|
41
|
-
if (this.state.isCapturing) {
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
this.state.isCapturing = true;
|
|
45
|
-
this.state.buffer = '';
|
|
46
|
-
this.state.cursorPosition = 0;
|
|
47
|
-
this.emit('capture-start');
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Stop capturing input (after streaming ends)
|
|
51
|
-
* Returns any remaining buffer content
|
|
52
|
-
*/
|
|
53
|
-
stopCapturing() {
|
|
54
|
-
const remaining = this.state.buffer;
|
|
55
|
-
this.state.isCapturing = false;
|
|
56
|
-
this.state.buffer = '';
|
|
57
|
-
this.state.cursorPosition = 0;
|
|
58
|
-
this.emit('capture-end');
|
|
59
|
-
return remaining;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Check if currently capturing input
|
|
63
|
-
*/
|
|
64
|
-
isCapturing() {
|
|
65
|
-
return this.state.isCapturing;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Handle a character input
|
|
69
|
-
* During capturing, adds to buffer; otherwise ignored
|
|
70
|
-
*/
|
|
71
|
-
handleChar(char) {
|
|
72
|
-
if (!this.state.isCapturing) {
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
// Respect buffer length limit
|
|
76
|
-
if (this.state.buffer.length >= this.maxBufferLength) {
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
// Insert at cursor position
|
|
80
|
-
this.state.buffer =
|
|
81
|
-
this.state.buffer.slice(0, this.state.cursorPosition) +
|
|
82
|
-
char +
|
|
83
|
-
this.state.buffer.slice(this.state.cursorPosition);
|
|
84
|
-
this.state.cursorPosition += char.length;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Handle backspace
|
|
88
|
-
*/
|
|
89
|
-
handleBackspace() {
|
|
90
|
-
if (!this.state.isCapturing || this.state.cursorPosition === 0) {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
this.state.buffer =
|
|
94
|
-
this.state.buffer.slice(0, this.state.cursorPosition - 1) +
|
|
95
|
-
this.state.buffer.slice(this.state.cursorPosition);
|
|
96
|
-
this.state.cursorPosition = Math.max(0, this.state.cursorPosition - 1);
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Handle delete key
|
|
100
|
-
*/
|
|
101
|
-
handleDelete() {
|
|
102
|
-
if (!this.state.isCapturing || this.state.cursorPosition >= this.state.buffer.length) {
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
this.state.buffer =
|
|
106
|
-
this.state.buffer.slice(0, this.state.cursorPosition) +
|
|
107
|
-
this.state.buffer.slice(this.state.cursorPosition + 1);
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Handle cursor left
|
|
111
|
-
*/
|
|
112
|
-
handleCursorLeft() {
|
|
113
|
-
if (!this.state.isCapturing)
|
|
114
|
-
return;
|
|
115
|
-
this.state.cursorPosition = Math.max(0, this.state.cursorPosition - 1);
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Handle cursor right
|
|
119
|
-
*/
|
|
120
|
-
handleCursorRight() {
|
|
121
|
-
if (!this.state.isCapturing)
|
|
122
|
-
return;
|
|
123
|
-
this.state.cursorPosition = Math.min(this.state.buffer.length, this.state.cursorPosition + 1);
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Handle Enter - queue the current buffer
|
|
127
|
-
* Returns the queued input or null if buffer was empty
|
|
128
|
-
*/
|
|
129
|
-
handleSubmit() {
|
|
130
|
-
if (!this.state.isCapturing) {
|
|
131
|
-
return null;
|
|
132
|
-
}
|
|
133
|
-
const text = this.state.buffer.trim();
|
|
134
|
-
if (!text) {
|
|
135
|
-
return null;
|
|
136
|
-
}
|
|
137
|
-
// Check queue size limit
|
|
138
|
-
if (this.state.queue.length >= this.maxQueueSize) {
|
|
139
|
-
// Remove oldest non-command input to make room
|
|
140
|
-
const idx = this.state.queue.findIndex(q => q.type !== 'command');
|
|
141
|
-
if (idx >= 0) {
|
|
142
|
-
this.state.queue.splice(idx, 1);
|
|
143
|
-
}
|
|
144
|
-
else {
|
|
145
|
-
return null; // Queue is full of commands
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
const input = {
|
|
149
|
-
id: `input-${++this.inputIdCounter}`,
|
|
150
|
-
text,
|
|
151
|
-
timestamp: Date.now(),
|
|
152
|
-
type: text.startsWith('/') ? 'command' : 'message',
|
|
153
|
-
};
|
|
154
|
-
this.state.queue.push(input);
|
|
155
|
-
this.state.buffer = '';
|
|
156
|
-
this.state.cursorPosition = 0;
|
|
157
|
-
this.emit('input-queued', input);
|
|
158
|
-
return input;
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Handle Ctrl+C during capture - queue an interrupt
|
|
162
|
-
*/
|
|
163
|
-
handleInterrupt() {
|
|
164
|
-
const input = {
|
|
165
|
-
id: `input-${++this.inputIdCounter}`,
|
|
166
|
-
text: '',
|
|
167
|
-
timestamp: Date.now(),
|
|
168
|
-
type: 'interrupt',
|
|
169
|
-
};
|
|
170
|
-
// Interrupt goes to front of queue
|
|
171
|
-
this.state.queue.unshift(input);
|
|
172
|
-
this.state.buffer = '';
|
|
173
|
-
this.state.cursorPosition = 0;
|
|
174
|
-
this.emit('input-queued', input);
|
|
175
|
-
return input;
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Get current buffer contents (for display purposes)
|
|
179
|
-
*/
|
|
180
|
-
getBuffer() {
|
|
181
|
-
return this.state.buffer;
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Get current cursor position
|
|
185
|
-
*/
|
|
186
|
-
getCursorPosition() {
|
|
187
|
-
return this.state.cursorPosition;
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Get the number of queued inputs
|
|
191
|
-
*/
|
|
192
|
-
getQueueLength() {
|
|
193
|
-
return this.state.queue.length;
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Check if there are queued inputs
|
|
197
|
-
*/
|
|
198
|
-
hasQueuedInput() {
|
|
199
|
-
return this.state.queue.length > 0;
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* Get the next queued input without removing it
|
|
203
|
-
*/
|
|
204
|
-
peekQueue() {
|
|
205
|
-
return this.state.queue[0];
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* Get and remove the next queued input
|
|
209
|
-
*/
|
|
210
|
-
dequeue() {
|
|
211
|
-
const input = this.state.queue.shift();
|
|
212
|
-
if (input) {
|
|
213
|
-
this.emit('input-processed', input);
|
|
214
|
-
}
|
|
215
|
-
return input;
|
|
216
|
-
}
|
|
217
|
-
/**
|
|
218
|
-
* Get all queued inputs (copy)
|
|
219
|
-
*/
|
|
220
|
-
getQueue() {
|
|
221
|
-
return [...this.state.queue];
|
|
222
|
-
}
|
|
223
|
-
/**
|
|
224
|
-
* Clear all queued inputs
|
|
225
|
-
*/
|
|
226
|
-
clearQueue() {
|
|
227
|
-
const hadItems = this.state.queue.length > 0;
|
|
228
|
-
this.state.queue = [];
|
|
229
|
-
if (hadItems) {
|
|
230
|
-
this.emit('queue-cleared');
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
/**
|
|
234
|
-
* Clear the current buffer
|
|
235
|
-
*/
|
|
236
|
-
clearBuffer() {
|
|
237
|
-
this.state.buffer = '';
|
|
238
|
-
this.state.cursorPosition = 0;
|
|
239
|
-
}
|
|
240
|
-
/**
|
|
241
|
-
* Set the buffer content directly (for paste handling)
|
|
242
|
-
*/
|
|
243
|
-
setBuffer(content, cursorPos) {
|
|
244
|
-
this.state.buffer = content.slice(0, this.maxBufferLength);
|
|
245
|
-
this.state.cursorPosition = cursorPos ?? this.state.buffer.length;
|
|
246
|
-
}
|
|
247
|
-
/**
|
|
248
|
-
* Get queue summary for display
|
|
249
|
-
*/
|
|
250
|
-
getQueueSummary() {
|
|
251
|
-
const count = this.state.queue.length;
|
|
252
|
-
if (count === 0) {
|
|
253
|
-
return '';
|
|
254
|
-
}
|
|
255
|
-
const commands = this.state.queue.filter(q => q.type === 'command').length;
|
|
256
|
-
const messages = this.state.queue.filter(q => q.type === 'message').length;
|
|
257
|
-
const interrupts = this.state.queue.filter(q => q.type === 'interrupt').length;
|
|
258
|
-
const parts = [];
|
|
259
|
-
if (interrupts > 0) {
|
|
260
|
-
parts.push(`${interrupts} interrupt${interrupts === 1 ? '' : 's'}`);
|
|
261
|
-
}
|
|
262
|
-
if (commands > 0) {
|
|
263
|
-
parts.push(`${commands} command${commands === 1 ? '' : 's'}`);
|
|
264
|
-
}
|
|
265
|
-
if (messages > 0) {
|
|
266
|
-
parts.push(`${messages} message${messages === 1 ? '' : 's'}`);
|
|
267
|
-
}
|
|
268
|
-
return parts.join(', ') + ' queued';
|
|
269
|
-
}
|
|
270
|
-
/**
|
|
271
|
-
* Get full state (for debugging)
|
|
272
|
-
*/
|
|
273
|
-
getState() {
|
|
274
|
-
return { ...this.state, queue: [...this.state.queue] };
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
/**
|
|
278
|
-
* Singleton instance for global use
|
|
279
|
-
*/
|
|
280
|
-
let globalInstance = null;
|
|
281
|
-
export function getInputQueueManager() {
|
|
282
|
-
if (!globalInstance) {
|
|
283
|
-
globalInstance = new InputQueueManager();
|
|
284
|
-
}
|
|
285
|
-
return globalInstance;
|
|
286
|
-
}
|
|
287
|
-
export function resetInputQueueManager() {
|
|
288
|
-
globalInstance = null;
|
|
289
|
-
}
|
|
290
|
-
//# sourceMappingURL=inputQueueManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inputQueueManager.js","sourceRoot":"","sources":["../../src/shell/inputQueueManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Simple metrics tracker for session performance monitoring.
|
|
3
|
-
*
|
|
4
|
-
* Tracks basic performance metrics like message count, response times,
|
|
5
|
-
* token usage, and tool call success rates.
|
|
6
|
-
*/
|
|
7
|
-
import type { ProviderUsage } from '../core/types.js';
|
|
8
|
-
export interface AgentPerformanceMetrics {
|
|
9
|
-
sessionId: string;
|
|
10
|
-
totalMessages: number;
|
|
11
|
-
totalToolCalls: number;
|
|
12
|
-
totalTokensUsed: number;
|
|
13
|
-
totalTimeMs: number;
|
|
14
|
-
successfulToolCalls: number;
|
|
15
|
-
failedToolCalls: number;
|
|
16
|
-
avgResponseTimeMs: number;
|
|
17
|
-
}
|
|
18
|
-
export interface ImprovementSuggestion {
|
|
19
|
-
category: 'performance' | 'quality' | 'efficiency' | 'error-handling';
|
|
20
|
-
severity: 'low' | 'medium' | 'high';
|
|
21
|
-
message: string;
|
|
22
|
-
suggestedAction: string;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Tracks performance metrics for an agent session.
|
|
26
|
-
*/
|
|
27
|
-
export declare class MetricsTracker {
|
|
28
|
-
private metrics;
|
|
29
|
-
private responseTimes;
|
|
30
|
-
constructor(sessionId: string);
|
|
31
|
-
/**
|
|
32
|
-
* Record a message exchange.
|
|
33
|
-
*/
|
|
34
|
-
recordMessage(elapsedMs: number, usage?: ProviderUsage | null): void;
|
|
35
|
-
/**
|
|
36
|
-
* Record a tool call.
|
|
37
|
-
*/
|
|
38
|
-
recordToolCall(success: boolean): void;
|
|
39
|
-
/**
|
|
40
|
-
* Update running averages.
|
|
41
|
-
*/
|
|
42
|
-
private updateAverages;
|
|
43
|
-
/**
|
|
44
|
-
* Get current metrics.
|
|
45
|
-
*/
|
|
46
|
-
getMetrics(): AgentPerformanceMetrics;
|
|
47
|
-
/**
|
|
48
|
-
* Get human-readable performance summary.
|
|
49
|
-
*/
|
|
50
|
-
getPerformanceSummary(): string;
|
|
51
|
-
/**
|
|
52
|
-
* Get improvement suggestions based on metrics.
|
|
53
|
-
*/
|
|
54
|
-
getImprovementSuggestions(): ImprovementSuggestion[];
|
|
55
|
-
/**
|
|
56
|
-
* Reset all metrics.
|
|
57
|
-
*/
|
|
58
|
-
reset(): void;
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=metricsTracker.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metricsTracker.d.ts","sourceRoot":"","sources":["../../src/shell/metricsTracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,gBAAgB,CAAC;IACtE,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CACzB;AAeD;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,aAAa,CAAgB;gBAEzB,SAAS,EAAE,MAAM;IAI7B;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI;IAapE;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAStC;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;OAEG;IACH,UAAU,IAAI,uBAAuB;IAIrC;;OAEG;IACH,qBAAqB,IAAI,MAAM;IAiB/B;;OAEG;IACH,yBAAyB,IAAI,qBAAqB,EAAE;IAyBpD;;OAEG;IACH,KAAK,IAAI,IAAI;CAId"}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Simple metrics tracker for session performance monitoring.
|
|
3
|
-
*
|
|
4
|
-
* Tracks basic performance metrics like message count, response times,
|
|
5
|
-
* token usage, and tool call success rates.
|
|
6
|
-
*/
|
|
7
|
-
function createDefaultMetrics(sessionId) {
|
|
8
|
-
return {
|
|
9
|
-
sessionId,
|
|
10
|
-
totalMessages: 0,
|
|
11
|
-
totalToolCalls: 0,
|
|
12
|
-
totalTokensUsed: 0,
|
|
13
|
-
totalTimeMs: 0,
|
|
14
|
-
successfulToolCalls: 0,
|
|
15
|
-
failedToolCalls: 0,
|
|
16
|
-
avgResponseTimeMs: 0,
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Tracks performance metrics for an agent session.
|
|
21
|
-
*/
|
|
22
|
-
export class MetricsTracker {
|
|
23
|
-
metrics;
|
|
24
|
-
responseTimes = [];
|
|
25
|
-
constructor(sessionId) {
|
|
26
|
-
this.metrics = createDefaultMetrics(sessionId);
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Record a message exchange.
|
|
30
|
-
*/
|
|
31
|
-
recordMessage(elapsedMs, usage) {
|
|
32
|
-
this.metrics.totalMessages += 1;
|
|
33
|
-
this.metrics.totalTimeMs += elapsedMs;
|
|
34
|
-
this.responseTimes.push(elapsedMs);
|
|
35
|
-
if (usage) {
|
|
36
|
-
const tokens = usage.totalTokens ?? (usage.inputTokens ?? 0) + (usage.outputTokens ?? 0);
|
|
37
|
-
this.metrics.totalTokensUsed += tokens;
|
|
38
|
-
}
|
|
39
|
-
this.updateAverages();
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Record a tool call.
|
|
43
|
-
*/
|
|
44
|
-
recordToolCall(success) {
|
|
45
|
-
this.metrics.totalToolCalls += 1;
|
|
46
|
-
if (success) {
|
|
47
|
-
this.metrics.successfulToolCalls += 1;
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
this.metrics.failedToolCalls += 1;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Update running averages.
|
|
55
|
-
*/
|
|
56
|
-
updateAverages() {
|
|
57
|
-
if (this.responseTimes.length > 0) {
|
|
58
|
-
this.metrics.avgResponseTimeMs =
|
|
59
|
-
this.responseTimes.reduce((a, b) => a + b, 0) / this.responseTimes.length;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Get current metrics.
|
|
64
|
-
*/
|
|
65
|
-
getMetrics() {
|
|
66
|
-
return { ...this.metrics };
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Get human-readable performance summary.
|
|
70
|
-
*/
|
|
71
|
-
getPerformanceSummary() {
|
|
72
|
-
const m = this.metrics;
|
|
73
|
-
const lines = [
|
|
74
|
-
`Session Performance: ${m.sessionId}`,
|
|
75
|
-
'─'.repeat(40),
|
|
76
|
-
`Messages: ${m.totalMessages}`,
|
|
77
|
-
`Total Time: ${(m.totalTimeMs / 1000).toFixed(2)}s`,
|
|
78
|
-
`Avg Response: ${m.avgResponseTimeMs.toFixed(0)}ms`,
|
|
79
|
-
`Tokens Used: ${m.totalTokensUsed.toLocaleString()}`,
|
|
80
|
-
'',
|
|
81
|
-
'Tool Usage:',
|
|
82
|
-
` Total Calls: ${m.totalToolCalls}`,
|
|
83
|
-
` Success Rate: ${m.totalToolCalls > 0 ? ((m.successfulToolCalls / m.totalToolCalls) * 100).toFixed(1) : 0}%`,
|
|
84
|
-
];
|
|
85
|
-
return lines.join('\n');
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Get improvement suggestions based on metrics.
|
|
89
|
-
*/
|
|
90
|
-
getImprovementSuggestions() {
|
|
91
|
-
const suggestions = [];
|
|
92
|
-
const m = this.metrics;
|
|
93
|
-
if (m.avgResponseTimeMs > 5000) {
|
|
94
|
-
suggestions.push({
|
|
95
|
-
category: 'performance',
|
|
96
|
-
severity: 'high',
|
|
97
|
-
message: 'Response time is high - consider using a faster model',
|
|
98
|
-
suggestedAction: 'Try /model to switch to a faster model',
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
if (m.totalToolCalls > 0 && m.failedToolCalls / m.totalToolCalls > 0.2) {
|
|
102
|
-
suggestions.push({
|
|
103
|
-
category: 'performance',
|
|
104
|
-
severity: 'medium',
|
|
105
|
-
message: `Tool failure rate is ${((m.failedToolCalls / m.totalToolCalls) * 100).toFixed(1)}%`,
|
|
106
|
-
suggestedAction: 'Review failed tool calls and improve error recovery',
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
return suggestions;
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Reset all metrics.
|
|
113
|
-
*/
|
|
114
|
-
reset() {
|
|
115
|
-
this.metrics = createDefaultMetrics(this.metrics.sessionId);
|
|
116
|
-
this.responseTimes = [];
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
//# sourceMappingURL=metricsTracker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metricsTracker.js","sourceRoot":"","sources":["../../src/shell/metricsTracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* StreamingOutputManager - Buffered output for Claude Code style UI
|
|
3
|
-
*
|
|
4
|
-
* Key design principle:
|
|
5
|
-
* - Buffer streaming output instead of writing directly to stdout
|
|
6
|
-
* - This keeps the cursor at the prompt area (no cursor movement during streaming)
|
|
7
|
-
* - Render complete response when streaming ends
|
|
8
|
-
* - The UI (prompt) stays fixed at the bottom
|
|
9
|
-
*
|
|
10
|
-
* Two modes:
|
|
11
|
-
* 1. Direct mode (bufferedMode=false): Write chunks directly to stdout (original behavior)
|
|
12
|
-
* 2. Buffered mode (bufferedMode=true): Collect chunks, render when complete
|
|
13
|
-
*/
|
|
14
|
-
import { EventEmitter } from 'node:events';
|
|
15
|
-
export interface StreamingOutputState {
|
|
16
|
-
isStreaming: boolean;
|
|
17
|
-
charsWritten: number;
|
|
18
|
-
linesWritten: number;
|
|
19
|
-
startTime: number | null;
|
|
20
|
-
}
|
|
21
|
-
export interface StreamingOutputEvents {
|
|
22
|
-
'stream-start': () => void;
|
|
23
|
-
'stream-chunk': (chunk: string) => void;
|
|
24
|
-
'stream-end': (stats: {
|
|
25
|
-
duration: number;
|
|
26
|
-
chars: number;
|
|
27
|
-
lines: number;
|
|
28
|
-
}) => void;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Manages streaming output with optional buffering.
|
|
32
|
-
*
|
|
33
|
-
* Buffered mode:
|
|
34
|
-
* - Chunks are collected in a buffer
|
|
35
|
-
* - Output is rendered all at once when streaming ends
|
|
36
|
-
* - Cursor stays at prompt area (no jumping during streaming)
|
|
37
|
-
*
|
|
38
|
-
* Direct mode:
|
|
39
|
-
* - Chunks written directly to stdout (original behavior)
|
|
40
|
-
* - Cursor moves with output
|
|
41
|
-
*/
|
|
42
|
-
export declare class StreamingOutputManager extends EventEmitter {
|
|
43
|
-
private state;
|
|
44
|
-
private readonly writeStream;
|
|
45
|
-
private lastChunk;
|
|
46
|
-
private bufferedMode;
|
|
47
|
-
private outputBuffer;
|
|
48
|
-
constructor(writeStream?: NodeJS.WriteStream);
|
|
49
|
-
/**
|
|
50
|
-
* Enable or disable buffered mode
|
|
51
|
-
* When buffered, chunks are collected and rendered at the end
|
|
52
|
-
*/
|
|
53
|
-
setBufferedMode(enabled: boolean): void;
|
|
54
|
-
/**
|
|
55
|
-
* Check if buffered mode is enabled
|
|
56
|
-
*/
|
|
57
|
-
isBufferedMode(): boolean;
|
|
58
|
-
/**
|
|
59
|
-
* Get the buffered content (for rendering)
|
|
60
|
-
*/
|
|
61
|
-
getBuffer(): string;
|
|
62
|
-
/**
|
|
63
|
-
* Clear the buffer
|
|
64
|
-
*/
|
|
65
|
-
clearBuffer(): void;
|
|
66
|
-
/**
|
|
67
|
-
* Check if currently streaming output
|
|
68
|
-
*/
|
|
69
|
-
isStreaming(): boolean;
|
|
70
|
-
/**
|
|
71
|
-
* Begin a streaming session
|
|
72
|
-
* Resets counters and marks streaming as active
|
|
73
|
-
* In buffered mode, clears the buffer
|
|
74
|
-
*/
|
|
75
|
-
startStream(): void;
|
|
76
|
-
/**
|
|
77
|
-
* Write a chunk of content
|
|
78
|
-
*
|
|
79
|
-
* In buffered mode: Collect in buffer (cursor stays at prompt)
|
|
80
|
-
* In direct mode: Write to stdout immediately
|
|
81
|
-
*/
|
|
82
|
-
writeChunk(chunk: string): void;
|
|
83
|
-
/**
|
|
84
|
-
* Write a complete line (adds newline)
|
|
85
|
-
*/
|
|
86
|
-
writeLine(line?: string): void;
|
|
87
|
-
/**
|
|
88
|
-
* End the streaming session
|
|
89
|
-
* In buffered mode: Renders the complete buffered output
|
|
90
|
-
* Returns statistics about what was streamed
|
|
91
|
-
*/
|
|
92
|
-
endStream(): {
|
|
93
|
-
duration: number;
|
|
94
|
-
chars: number;
|
|
95
|
-
lines: number;
|
|
96
|
-
buffer?: string;
|
|
97
|
-
};
|
|
98
|
-
/**
|
|
99
|
-
* Get current streaming statistics
|
|
100
|
-
*/
|
|
101
|
-
getStats(): {
|
|
102
|
-
chars: number;
|
|
103
|
-
lines: number;
|
|
104
|
-
elapsed: number;
|
|
105
|
-
};
|
|
106
|
-
/**
|
|
107
|
-
* Force a flush (for buffered output)
|
|
108
|
-
*/
|
|
109
|
-
flush(): void;
|
|
110
|
-
private countNewlines;
|
|
111
|
-
private writeLocked;
|
|
112
|
-
}
|
|
113
|
-
export declare function getStreamingOutputManager(): StreamingOutputManager;
|
|
114
|
-
export declare function resetStreamingOutputManager(): void;
|
|
115
|
-
//# sourceMappingURL=streamingOutputManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"streamingOutputManager.d.ts","sourceRoot":"","sources":["../../src/shell/streamingOutputManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACnF;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,sBAAuB,SAAQ,YAAY;IACtD,OAAO,CAAC,KAAK,CAKX;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,SAAS,CAAc;IAG/B,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,YAAY,CAAgB;gBAExB,WAAW,GAAE,MAAM,CAAC,WAA4B;IAK5D;;;OAGG;IACH,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIvC;;OAEG;IACH,cAAc,IAAI,OAAO;IAIzB;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;;;OAIG;IACH,WAAW,IAAI,IAAI;IAiBnB;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAqB/B;;OAEG;IACH,SAAS,CAAC,IAAI,GAAE,MAAW,GAAG,IAAI;IAIlC;;;;OAIG;IACH,SAAS,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IA0ChF;;OAEG;IACH,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAQ7D;;OAEG;IACH,KAAK,IAAI,IAAI;IAYb,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,WAAW;CAWpB;AAOD,wBAAgB,yBAAyB,IAAI,sBAAsB,CAKlE;AAED,wBAAgB,2BAA2B,IAAI,IAAI,CAElD"}
|