erosolar-cli 2.1.237 → 2.1.239
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 +9 -0
- package/dist/contracts/tools.schema.json +3 -1
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +5 -1
- package/dist/core/agent.js.map +1 -1
- package/dist/core/agentOrchestrator.d.ts +4 -0
- package/dist/core/agentOrchestrator.d.ts.map +1 -1
- package/dist/core/agentOrchestrator.js +58 -6
- package/dist/core/agentOrchestrator.js.map +1 -1
- package/dist/core/autoExecutionOrchestrator.d.ts +172 -0
- package/dist/core/autoExecutionOrchestrator.d.ts.map +1 -0
- package/dist/core/autoExecutionOrchestrator.js +591 -0
- package/dist/core/autoExecutionOrchestrator.js.map +1 -0
- package/dist/core/contextManager.d.ts.map +1 -1
- package/dist/core/contextManager.js.map +1 -1
- package/dist/core/dualAgentOrchestrator.d.ts +34 -0
- package/dist/core/dualAgentOrchestrator.d.ts.map +1 -0
- package/dist/core/dualAgentOrchestrator.js +94 -0
- package/dist/core/dualAgentOrchestrator.js.map +1 -0
- package/dist/core/errors/safetyValidator.d.ts +25 -12
- package/dist/core/errors/safetyValidator.d.ts.map +1 -1
- package/dist/core/errors/safetyValidator.js +165 -17
- package/dist/core/errors/safetyValidator.js.map +1 -1
- package/dist/core/governmentProcedures.d.ts +118 -0
- package/dist/core/governmentProcedures.d.ts.map +1 -0
- package/dist/core/governmentProcedures.js +912 -0
- package/dist/core/governmentProcedures.js.map +1 -0
- package/dist/core/infrastructureTemplates.d.ts +123 -0
- package/dist/core/infrastructureTemplates.d.ts.map +1 -0
- package/dist/core/infrastructureTemplates.js +1326 -0
- package/dist/core/infrastructureTemplates.js.map +1 -0
- package/dist/core/orchestration.d.ts +534 -0
- package/dist/core/orchestration.d.ts.map +1 -0
- package/dist/core/orchestration.js +2009 -0
- package/dist/core/orchestration.js.map +1 -0
- package/dist/core/persistentObjectiveStore.d.ts +292 -0
- package/dist/core/persistentObjectiveStore.d.ts.map +1 -0
- package/dist/core/persistentObjectiveStore.js +613 -0
- package/dist/core/persistentObjectiveStore.js.map +1 -0
- package/dist/core/preferences.js +1 -1
- package/dist/core/preferences.js.map +1 -1
- package/dist/core/reliabilityPrompt.d.ts.map +1 -1
- package/dist/core/reliabilityPrompt.js +3 -0
- package/dist/core/reliabilityPrompt.js.map +1 -1
- package/dist/core/securityDeliverableGenerator.d.ts +292 -0
- package/dist/core/securityDeliverableGenerator.d.ts.map +1 -0
- package/dist/core/securityDeliverableGenerator.js +1590 -0
- package/dist/core/securityDeliverableGenerator.js.map +1 -0
- package/dist/core/taskCompletionDetector.d.ts.map +1 -1
- package/dist/core/taskCompletionDetector.js +4 -1
- package/dist/core/taskCompletionDetector.js.map +1 -1
- package/dist/shell/autoExecutor.d.ts.map +1 -1
- package/dist/shell/autoExecutor.js +32 -3
- package/dist/shell/autoExecutor.js.map +1 -1
- package/dist/shell/interactiveShell.d.ts +9 -0
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +282 -190
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/tools/bashTools.d.ts +3 -5
- package/dist/tools/bashTools.d.ts.map +1 -1
- package/dist/tools/bashTools.js +259 -161
- package/dist/tools/bashTools.js.map +1 -1
- package/dist/tools/tao/index.d.ts +4 -4
- package/dist/tools/tao/index.d.ts.map +1 -1
- package/dist/tools/tao/index.js +15 -5
- package/dist/tools/tao/index.js.map +1 -1
- package/dist/tools/tao/rl.d.ts +164 -0
- package/dist/tools/tao/rl.d.ts.map +1 -0
- package/dist/tools/tao/rl.js +2998 -0
- package/dist/tools/tao/rl.js.map +1 -0
- package/dist/tools/taoTools.d.ts +2 -2
- package/dist/tools/taoTools.d.ts.map +1 -1
- package/dist/tools/taoTools.js +103 -20
- package/dist/tools/taoTools.js.map +1 -1
- package/dist/ui/PromptController.d.ts +3 -0
- package/dist/ui/PromptController.d.ts.map +1 -1
- package/dist/ui/PromptController.js +3 -0
- package/dist/ui/PromptController.js.map +1 -1
- package/dist/ui/UnifiedUIRenderer.d.ts +4 -0
- package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -1
- package/dist/ui/UnifiedUIRenderer.js +37 -6
- package/dist/ui/UnifiedUIRenderer.js.map +1 -1
- package/dist/ui/display.d.ts +9 -1
- package/dist/ui/display.d.ts.map +1 -1
- package/dist/ui/display.js +66 -9
- package/dist/ui/display.js.map +1 -1
- package/dist/ui/shortcutsHelp.d.ts.map +1 -1
- package/dist/ui/shortcutsHelp.js +1 -0
- package/dist/ui/shortcutsHelp.js.map +1 -1
- package/package.json +3 -2
- package/dist/capabilities/askUserCapability.d.ts +0 -14
- package/dist/capabilities/askUserCapability.d.ts.map +0 -1
- package/dist/capabilities/askUserCapability.js +0 -134
- package/dist/capabilities/askUserCapability.js.map +0 -1
- package/dist/capabilities/codeGenerationCapability.d.ts +0 -13
- package/dist/capabilities/codeGenerationCapability.d.ts.map +0 -1
- package/dist/capabilities/codeGenerationCapability.js +0 -25
- package/dist/capabilities/codeGenerationCapability.js.map +0 -1
- package/dist/capabilities/performanceMonitoringCapability.d.ts +0 -108
- package/dist/capabilities/performanceMonitoringCapability.d.ts.map +0 -1
- package/dist/capabilities/performanceMonitoringCapability.js +0 -176
- package/dist/capabilities/performanceMonitoringCapability.js.map +0 -1
- package/dist/capabilities/todoCapability.d.ts +0 -19
- package/dist/capabilities/todoCapability.d.ts.map +0 -1
- package/dist/capabilities/todoCapability.js +0 -170
- package/dist/capabilities/todoCapability.js.map +0 -1
- package/dist/core/baseToolFactory.d.ts +0 -187
- package/dist/core/baseToolFactory.d.ts.map +0 -1
- package/dist/core/baseToolFactory.js +0 -352
- package/dist/core/baseToolFactory.js.map +0 -1
- package/dist/core/intelligentSummarizer.d.ts +0 -79
- package/dist/core/intelligentSummarizer.d.ts.map +0 -1
- package/dist/core/intelligentSummarizer.js +0 -273
- package/dist/core/intelligentSummarizer.js.map +0 -1
- package/dist/core/memorySystem.d.ts +0 -67
- package/dist/core/memorySystem.d.ts.map +0 -1
- package/dist/core/memorySystem.js +0 -334
- package/dist/core/memorySystem.js.map +0 -1
- package/dist/core/outputStyles.d.ts +0 -48
- package/dist/core/outputStyles.d.ts.map +0 -1
- package/dist/core/outputStyles.js +0 -270
- package/dist/core/outputStyles.js.map +0 -1
- package/dist/core/toolPatternAnalyzer.d.ts +0 -87
- package/dist/core/toolPatternAnalyzer.d.ts.map +0 -1
- package/dist/core/toolPatternAnalyzer.js +0 -272
- package/dist/core/toolPatternAnalyzer.js.map +0 -1
- package/dist/tools/backgroundBashTools.d.ts +0 -21
- package/dist/tools/backgroundBashTools.d.ts.map +0 -1
- package/dist/tools/backgroundBashTools.js +0 -215
- package/dist/tools/backgroundBashTools.js.map +0 -1
- package/dist/tools/code-quality-dashboard.d.ts +0 -57
- package/dist/tools/code-quality-dashboard.d.ts.map +0 -1
- package/dist/tools/code-quality-dashboard.js +0 -218
- package/dist/tools/code-quality-dashboard.js.map +0 -1
- package/dist/tools/tao/rlEngine.d.ts +0 -40
- package/dist/tools/tao/rlEngine.d.ts.map +0 -1
- package/dist/tools/tao/rlEngine.js +0 -237
- package/dist/tools/tao/rlEngine.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"outputStyles.js","sourceRoot":"","sources":["../../src/core/outputStyles.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tool Execution Pattern Analyzer
|
|
3
|
-
*
|
|
4
|
-
* Analyzes tool usage patterns to help the AI learn optimal workflows.
|
|
5
|
-
* Critical for Claude Code to operate efficiently without wasting context
|
|
6
|
-
* on redundant operations.
|
|
7
|
-
*/
|
|
8
|
-
export interface ToolCall {
|
|
9
|
-
name: string;
|
|
10
|
-
args: Record<string, unknown>;
|
|
11
|
-
timestamp: number;
|
|
12
|
-
duration?: number;
|
|
13
|
-
success: boolean;
|
|
14
|
-
}
|
|
15
|
-
export interface Pattern {
|
|
16
|
-
id: string;
|
|
17
|
-
description: string;
|
|
18
|
-
sequence: string[];
|
|
19
|
-
frequency: number;
|
|
20
|
-
avgDuration: number;
|
|
21
|
-
successRate: number;
|
|
22
|
-
examples: ToolCall[][];
|
|
23
|
-
}
|
|
24
|
-
export interface Inefficiency {
|
|
25
|
-
type: 'redundant' | 'inefficient_order' | 'missing_step' | 'wrong_tool';
|
|
26
|
-
description: string;
|
|
27
|
-
suggestion: string;
|
|
28
|
-
severity: 'low' | 'medium' | 'high';
|
|
29
|
-
affectedCalls: string[];
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Analyzes tool execution patterns and suggests optimizations
|
|
33
|
-
*/
|
|
34
|
-
export declare class ToolPatternAnalyzer {
|
|
35
|
-
private callHistory;
|
|
36
|
-
private readonly maxHistory;
|
|
37
|
-
private detectedPatterns;
|
|
38
|
-
/**
|
|
39
|
-
* Record a tool call
|
|
40
|
-
*/
|
|
41
|
-
recordCall(call: ToolCall): void;
|
|
42
|
-
/**
|
|
43
|
-
* Get recent tool calls
|
|
44
|
-
*/
|
|
45
|
-
getRecentCalls(count?: number): ToolCall[];
|
|
46
|
-
/**
|
|
47
|
-
* Detect inefficiencies in recent tool usage
|
|
48
|
-
*/
|
|
49
|
-
detectInefficiencies(lookback?: number): Inefficiency[];
|
|
50
|
-
/**
|
|
51
|
-
* Detect redundant file reads
|
|
52
|
-
*/
|
|
53
|
-
private detectRedundantReads;
|
|
54
|
-
/**
|
|
55
|
-
* Detect missing validation after edits
|
|
56
|
-
*/
|
|
57
|
-
private detectMissingValidation;
|
|
58
|
-
/**
|
|
59
|
-
* Detect inefficient search patterns
|
|
60
|
-
*/
|
|
61
|
-
private detectInefficientSearches;
|
|
62
|
-
/**
|
|
63
|
-
* Detect wrong tool choices
|
|
64
|
-
*/
|
|
65
|
-
private detectWrongToolChoices;
|
|
66
|
-
/**
|
|
67
|
-
* Update detected patterns from call history
|
|
68
|
-
*/
|
|
69
|
-
private updatePatterns;
|
|
70
|
-
/**
|
|
71
|
-
* Get detected patterns sorted by frequency
|
|
72
|
-
*/
|
|
73
|
-
getPatterns(): Pattern[];
|
|
74
|
-
/**
|
|
75
|
-
* Generate workflow suggestions based on patterns
|
|
76
|
-
*/
|
|
77
|
-
generateSuggestions(): string[];
|
|
78
|
-
/**
|
|
79
|
-
* Clear all history and patterns
|
|
80
|
-
*/
|
|
81
|
-
clear(): void;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Global singleton instance
|
|
85
|
-
*/
|
|
86
|
-
export declare const toolPatternAnalyzer: ToolPatternAnalyzer;
|
|
87
|
-
//# sourceMappingURL=toolPatternAnalyzer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toolPatternAnalyzer.d.ts","sourceRoot":"","sources":["../../src/core/toolPatternAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,GAAG,mBAAmB,GAAG,cAAc,GAAG,YAAY,CAAC;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpC,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAO;IAClC,OAAO,CAAC,gBAAgB,CAAmC;IAE3D;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAYhC;;OAEG;IACH,cAAc,CAAC,KAAK,GAAE,MAAW,GAAG,QAAQ,EAAE;IAI9C;;OAEG;IACH,oBAAoB,CAAC,QAAQ,GAAE,MAAW,GAAG,YAAY,EAAE;IAmB3D;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA6B5B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA6C/B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAwCjC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA2C9B;;OAEG;IACH,OAAO,CAAC,cAAc;IA4BtB;;OAEG;IACH,WAAW,IAAI,OAAO,EAAE;IAKxB;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAuB/B;;OAEG;IACH,KAAK,IAAI,IAAI;CAId;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,qBAA4B,CAAC"}
|
|
@@ -1,272 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tool Execution Pattern Analyzer
|
|
3
|
-
*
|
|
4
|
-
* Analyzes tool usage patterns to help the AI learn optimal workflows.
|
|
5
|
-
* Critical for Claude Code to operate efficiently without wasting context
|
|
6
|
-
* on redundant operations.
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* Analyzes tool execution patterns and suggests optimizations
|
|
10
|
-
*/
|
|
11
|
-
export class ToolPatternAnalyzer {
|
|
12
|
-
callHistory = [];
|
|
13
|
-
maxHistory = 200;
|
|
14
|
-
detectedPatterns = new Map();
|
|
15
|
-
/**
|
|
16
|
-
* Record a tool call
|
|
17
|
-
*/
|
|
18
|
-
recordCall(call) {
|
|
19
|
-
this.callHistory.push(call);
|
|
20
|
-
// Keep history bounded
|
|
21
|
-
if (this.callHistory.length > this.maxHistory) {
|
|
22
|
-
this.callHistory.shift();
|
|
23
|
-
}
|
|
24
|
-
// Update pattern detection
|
|
25
|
-
this.updatePatterns();
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Get recent tool calls
|
|
29
|
-
*/
|
|
30
|
-
getRecentCalls(count = 10) {
|
|
31
|
-
return this.callHistory.slice(-count);
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Detect inefficiencies in recent tool usage
|
|
35
|
-
*/
|
|
36
|
-
detectInefficiencies(lookback = 20) {
|
|
37
|
-
const recent = this.getRecentCalls(lookback);
|
|
38
|
-
const inefficiencies = [];
|
|
39
|
-
// Check for redundant reads
|
|
40
|
-
inefficiencies.push(...this.detectRedundantReads(recent));
|
|
41
|
-
// Check for missing validation after edits
|
|
42
|
-
inefficiencies.push(...this.detectMissingValidation(recent));
|
|
43
|
-
// Check for inefficient search patterns
|
|
44
|
-
inefficiencies.push(...this.detectInefficientSearches(recent));
|
|
45
|
-
// Check for wrong tool choices
|
|
46
|
-
inefficiencies.push(...this.detectWrongToolChoices(recent));
|
|
47
|
-
return inefficiencies;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Detect redundant file reads
|
|
51
|
-
*/
|
|
52
|
-
detectRedundantReads(calls) {
|
|
53
|
-
const inefficiencies = [];
|
|
54
|
-
const seenPaths = new Map();
|
|
55
|
-
for (let i = 0; i < calls.length; i++) {
|
|
56
|
-
const call = calls[i];
|
|
57
|
-
if (!call)
|
|
58
|
-
continue;
|
|
59
|
-
if (call.name === 'Read' || call.name === 'read_file') {
|
|
60
|
-
const path = call.args['file_path'] || call.args['path'];
|
|
61
|
-
if (typeof path === 'string') {
|
|
62
|
-
const lastIndex = seenPaths.get(path);
|
|
63
|
-
if (lastIndex !== undefined && i - lastIndex < 5) {
|
|
64
|
-
// Same file read within 5 calls - likely redundant
|
|
65
|
-
inefficiencies.push({
|
|
66
|
-
type: 'redundant',
|
|
67
|
-
description: `File "${path}" was read multiple times within ${i - lastIndex} tool calls`,
|
|
68
|
-
suggestion: 'Retain file content in memory between operations instead of re-reading',
|
|
69
|
-
severity: 'medium',
|
|
70
|
-
affectedCalls: [call.name],
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
seenPaths.set(path, i);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
return inefficiencies;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Detect missing validation after edits
|
|
81
|
-
*/
|
|
82
|
-
detectMissingValidation(calls) {
|
|
83
|
-
const inefficiencies = [];
|
|
84
|
-
for (let i = 0; i < calls.length - 1; i++) {
|
|
85
|
-
const call = calls[i];
|
|
86
|
-
if (!call)
|
|
87
|
-
continue;
|
|
88
|
-
const nextCalls = calls.slice(i + 1, i + 6);
|
|
89
|
-
// Check if Edit/Write was followed by validation
|
|
90
|
-
if (call.name === 'Edit' || call.name === 'Write' || call.name === 'edit_file' || call.name === 'write_file') {
|
|
91
|
-
const editedPath = call.args['file_path'] || call.args['path'];
|
|
92
|
-
const hasValidation = nextCalls.some(c => {
|
|
93
|
-
// Build, test, validate, type-check are always validation
|
|
94
|
-
if (c.name.includes('validate') ||
|
|
95
|
-
c.name.includes('build') ||
|
|
96
|
-
c.name.includes('test') ||
|
|
97
|
-
c.name.includes('type')) {
|
|
98
|
-
return true;
|
|
99
|
-
}
|
|
100
|
-
// Read only counts as validation if it reads the same file
|
|
101
|
-
if (c.name === 'Read') {
|
|
102
|
-
const readPath = c.args['file_path'] || c.args['path'];
|
|
103
|
-
return readPath === editedPath;
|
|
104
|
-
}
|
|
105
|
-
return false;
|
|
106
|
-
});
|
|
107
|
-
if (!hasValidation) {
|
|
108
|
-
inefficiencies.push({
|
|
109
|
-
type: 'missing_step',
|
|
110
|
-
description: 'File modification not followed by validation or verification',
|
|
111
|
-
suggestion: 'After editing files, immediately verify changes with Read or run validation',
|
|
112
|
-
severity: 'high',
|
|
113
|
-
affectedCalls: [call.name],
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
return inefficiencies;
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Detect inefficient search patterns
|
|
122
|
-
*/
|
|
123
|
-
detectInefficientSearches(calls) {
|
|
124
|
-
const inefficiencies = [];
|
|
125
|
-
for (let i = 0; i < calls.length - 1; i++) {
|
|
126
|
-
const call = calls[i];
|
|
127
|
-
const next = calls[i + 1];
|
|
128
|
-
if (!call || !next)
|
|
129
|
-
continue;
|
|
130
|
-
// Multiple sequential searches - should be parallel
|
|
131
|
-
if ((call.name === 'Grep' || call.name === 'search') &&
|
|
132
|
-
(next.name === 'Grep' || next.name === 'search')) {
|
|
133
|
-
inefficiencies.push({
|
|
134
|
-
type: 'inefficient_order',
|
|
135
|
-
description: 'Sequential searches could be parallelized',
|
|
136
|
-
suggestion: 'Run multiple searches in parallel by calling them together',
|
|
137
|
-
severity: 'low',
|
|
138
|
-
affectedCalls: [call.name, next.name],
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
// Glob followed by individual reads - could use batch read
|
|
142
|
-
if ((call.name === 'Glob' || call.name === 'glob') &&
|
|
143
|
-
next.name === 'Read') {
|
|
144
|
-
const nextFew = calls.slice(i + 1, i + 4);
|
|
145
|
-
const consecutiveReads = nextFew.filter(c => c.name === 'Read').length;
|
|
146
|
-
if (consecutiveReads >= 2) {
|
|
147
|
-
inefficiencies.push({
|
|
148
|
-
type: 'inefficient_order',
|
|
149
|
-
description: `${consecutiveReads} sequential reads after glob - could be parallelized`,
|
|
150
|
-
suggestion: 'After finding files with Glob, read multiple files in parallel',
|
|
151
|
-
severity: 'medium',
|
|
152
|
-
affectedCalls: ['Glob', 'Read'],
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return inefficiencies;
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Detect wrong tool choices
|
|
161
|
-
*/
|
|
162
|
-
detectWrongToolChoices(calls) {
|
|
163
|
-
const inefficiencies = [];
|
|
164
|
-
for (const call of calls) {
|
|
165
|
-
if (!call)
|
|
166
|
-
continue;
|
|
167
|
-
// Using bash for simple file operations
|
|
168
|
-
if (call.name === 'Bash' || call.name === 'bash') {
|
|
169
|
-
const command = call.args['command'];
|
|
170
|
-
if (command) {
|
|
171
|
-
if (command.startsWith('cat ') || command.includes('cat ')) {
|
|
172
|
-
inefficiencies.push({
|
|
173
|
-
type: 'wrong_tool',
|
|
174
|
-
description: 'Using bash cat instead of Read tool',
|
|
175
|
-
suggestion: 'Use the Read tool instead of bash cat for better error handling and context management',
|
|
176
|
-
severity: 'low',
|
|
177
|
-
affectedCalls: ['Bash'],
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
if (command.startsWith('find ') || command.includes('find ')) {
|
|
181
|
-
inefficiencies.push({
|
|
182
|
-
type: 'wrong_tool',
|
|
183
|
-
description: 'Using bash find instead of Glob tool',
|
|
184
|
-
suggestion: 'Use the Glob tool instead of bash find for consistent results',
|
|
185
|
-
severity: 'low',
|
|
186
|
-
affectedCalls: ['Bash'],
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
if (command.startsWith('grep ') || command.includes('grep ')) {
|
|
190
|
-
inefficiencies.push({
|
|
191
|
-
type: 'wrong_tool',
|
|
192
|
-
description: 'Using bash grep instead of Grep tool',
|
|
193
|
-
suggestion: 'Use the Grep tool instead of bash grep for better output formatting',
|
|
194
|
-
severity: 'low',
|
|
195
|
-
affectedCalls: ['Bash'],
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
return inefficiencies;
|
|
202
|
-
}
|
|
203
|
-
/**
|
|
204
|
-
* Update detected patterns from call history
|
|
205
|
-
*/
|
|
206
|
-
updatePatterns() {
|
|
207
|
-
// Detect common sequences (simplified - real implementation would use more sophisticated algorithms)
|
|
208
|
-
const windowSize = 3;
|
|
209
|
-
const sequences = new Map();
|
|
210
|
-
for (let i = 0; i <= this.callHistory.length - windowSize; i++) {
|
|
211
|
-
const window = this.callHistory.slice(i, i + windowSize);
|
|
212
|
-
const sequence = window.map(c => c.name).join(' -> ');
|
|
213
|
-
sequences.set(sequence, (sequences.get(sequence) || 0) + 1);
|
|
214
|
-
}
|
|
215
|
-
// Update patterns
|
|
216
|
-
for (const [sequence, frequency] of sequences) {
|
|
217
|
-
if (frequency >= 2) { // Pattern must occur at least twice
|
|
218
|
-
const patternId = `pattern_${sequence.replace(/\s/g, '_')}`;
|
|
219
|
-
this.detectedPatterns.set(patternId, {
|
|
220
|
-
id: patternId,
|
|
221
|
-
description: `Common workflow: ${sequence}`,
|
|
222
|
-
sequence: sequence.split(' -> '),
|
|
223
|
-
frequency,
|
|
224
|
-
avgDuration: 0, // Would be calculated in real implementation
|
|
225
|
-
successRate: 0, // Would be calculated in real implementation
|
|
226
|
-
examples: [],
|
|
227
|
-
});
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
/**
|
|
232
|
-
* Get detected patterns sorted by frequency
|
|
233
|
-
*/
|
|
234
|
-
getPatterns() {
|
|
235
|
-
return Array.from(this.detectedPatterns.values())
|
|
236
|
-
.sort((a, b) => b.frequency - a.frequency);
|
|
237
|
-
}
|
|
238
|
-
/**
|
|
239
|
-
* Generate workflow suggestions based on patterns
|
|
240
|
-
*/
|
|
241
|
-
generateSuggestions() {
|
|
242
|
-
const suggestions = [];
|
|
243
|
-
const patterns = this.getPatterns();
|
|
244
|
-
// Suggest based on most common patterns
|
|
245
|
-
if (patterns.length > 0) {
|
|
246
|
-
const topPattern = patterns[0];
|
|
247
|
-
if (topPattern) {
|
|
248
|
-
suggestions.push(`Most common workflow: ${topPattern.description} (used ${topPattern.frequency}×)`);
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
// Suggest based on inefficiencies
|
|
252
|
-
const inefficiencies = this.detectInefficiencies();
|
|
253
|
-
const highSeverity = inefficiencies.filter(i => i.severity === 'high');
|
|
254
|
-
if (highSeverity.length > 0) {
|
|
255
|
-
suggestions.push(`⚠️ ${highSeverity.length} high-priority inefficiencies detected`);
|
|
256
|
-
suggestions.push(...highSeverity.map(i => ` → ${i.suggestion}`));
|
|
257
|
-
}
|
|
258
|
-
return suggestions;
|
|
259
|
-
}
|
|
260
|
-
/**
|
|
261
|
-
* Clear all history and patterns
|
|
262
|
-
*/
|
|
263
|
-
clear() {
|
|
264
|
-
this.callHistory = [];
|
|
265
|
-
this.detectedPatterns.clear();
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
/**
|
|
269
|
-
* Global singleton instance
|
|
270
|
-
*/
|
|
271
|
-
export const toolPatternAnalyzer = new ToolPatternAnalyzer();
|
|
272
|
-
//# sourceMappingURL=toolPatternAnalyzer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toolPatternAnalyzer.js","sourceRoot":"","sources":["../../src/core/toolPatternAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { ToolDefinition } from '../core/toolRuntime.js';
|
|
2
|
-
/**
|
|
3
|
-
* Creates background bash management tools
|
|
4
|
-
*
|
|
5
|
-
* Tools:
|
|
6
|
-
* - Bash (with run_in_background): Start background processes
|
|
7
|
-
* - BashOutput: Retrieve output from background shells
|
|
8
|
-
* - KillShell: Terminate background shells
|
|
9
|
-
*
|
|
10
|
-
* @param _workingDir - The working directory for commands (reserved for future use)
|
|
11
|
-
* @returns Array of tool definitions
|
|
12
|
-
*/
|
|
13
|
-
export declare function createBackgroundBashTools(_workingDir: string): ToolDefinition[];
|
|
14
|
-
/**
|
|
15
|
-
* Start a background bash command
|
|
16
|
-
*
|
|
17
|
-
* This should be integrated into the main Bash tool with a run_in_background parameter.
|
|
18
|
-
* For now, it's exported as a helper function.
|
|
19
|
-
*/
|
|
20
|
-
export declare function startBackgroundShell(command: string, workingDir: string): string;
|
|
21
|
-
//# sourceMappingURL=backgroundBashTools.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backgroundBashTools.d.ts","sourceRoot":"","sources":["../../src/tools/backgroundBashTools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAuH7D;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,EAAE,CAuG/E;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEhF"}
|
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
import { spawn } from 'node:child_process';
|
|
2
|
-
import { buildError } from '../core/errors.js';
|
|
3
|
-
/**
|
|
4
|
-
* Background Bash Shell Manager
|
|
5
|
-
*
|
|
6
|
-
* Manages long-running background bash shells with output buffering.
|
|
7
|
-
*/
|
|
8
|
-
class BackgroundShellManager {
|
|
9
|
-
shells = new Map();
|
|
10
|
-
nextId = 1;
|
|
11
|
-
createShell(command, workingDir) {
|
|
12
|
-
const shellId = `shell_${this.nextId++}`;
|
|
13
|
-
const shell = new BackgroundShell(shellId, command, workingDir);
|
|
14
|
-
this.shells.set(shellId, shell);
|
|
15
|
-
shell.start();
|
|
16
|
-
return shellId;
|
|
17
|
-
}
|
|
18
|
-
getShell(shellId) {
|
|
19
|
-
return this.shells.get(shellId);
|
|
20
|
-
}
|
|
21
|
-
killShell(shellId) {
|
|
22
|
-
const shell = this.shells.get(shellId);
|
|
23
|
-
if (shell) {
|
|
24
|
-
shell.kill();
|
|
25
|
-
this.shells.delete(shellId);
|
|
26
|
-
return true;
|
|
27
|
-
}
|
|
28
|
-
return false;
|
|
29
|
-
}
|
|
30
|
-
listShells() {
|
|
31
|
-
return Array.from(this.shells.keys());
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
class BackgroundShell {
|
|
35
|
-
id;
|
|
36
|
-
command;
|
|
37
|
-
_workingDir;
|
|
38
|
-
process;
|
|
39
|
-
outputBuffer = [];
|
|
40
|
-
errorBuffer = [];
|
|
41
|
-
lastReadPosition = 0;
|
|
42
|
-
isRunning = false;
|
|
43
|
-
exitCode;
|
|
44
|
-
constructor(id, command, _workingDir) {
|
|
45
|
-
this.id = id;
|
|
46
|
-
this.command = command;
|
|
47
|
-
this._workingDir = _workingDir;
|
|
48
|
-
}
|
|
49
|
-
start() {
|
|
50
|
-
this.process = spawn('bash', ['-c', this.command], {
|
|
51
|
-
cwd: this._workingDir,
|
|
52
|
-
stdio: ['ignore', 'pipe', 'pipe'],
|
|
53
|
-
});
|
|
54
|
-
this.isRunning = true;
|
|
55
|
-
this.process.stdout?.on('data', (data) => {
|
|
56
|
-
this.outputBuffer.push(data.toString());
|
|
57
|
-
});
|
|
58
|
-
this.process.stderr?.on('data', (data) => {
|
|
59
|
-
this.errorBuffer.push(data.toString());
|
|
60
|
-
});
|
|
61
|
-
this.process.on('exit', (code) => {
|
|
62
|
-
this.exitCode = code ?? 0;
|
|
63
|
-
this.isRunning = false;
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
getNewOutput(filter) {
|
|
67
|
-
const allOutput = this.outputBuffer.join('');
|
|
68
|
-
const newOutput = allOutput.substring(this.lastReadPosition);
|
|
69
|
-
this.lastReadPosition = allOutput.length;
|
|
70
|
-
const allError = this.errorBuffer.join('');
|
|
71
|
-
let stdout = newOutput;
|
|
72
|
-
if (filter) {
|
|
73
|
-
const lines = newOutput.split('\n');
|
|
74
|
-
const filtered = lines.filter(line => filter.test(line));
|
|
75
|
-
stdout = filtered.join('\n');
|
|
76
|
-
}
|
|
77
|
-
const status = this.isRunning
|
|
78
|
-
? 'running'
|
|
79
|
-
: `exited with code ${this.exitCode}`;
|
|
80
|
-
return {
|
|
81
|
-
stdout,
|
|
82
|
-
stderr: allError,
|
|
83
|
-
status,
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
kill() {
|
|
87
|
-
if (this.process) {
|
|
88
|
-
this.process.kill('SIGTERM');
|
|
89
|
-
setTimeout(() => {
|
|
90
|
-
if (this.process && !this.process.killed) {
|
|
91
|
-
this.process.kill('SIGKILL');
|
|
92
|
-
}
|
|
93
|
-
}, 5000);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
getStatus() {
|
|
97
|
-
return this.isRunning ? 'running' : `exited with code ${this.exitCode}`;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
// Global manager instance
|
|
101
|
-
const shellManager = new BackgroundShellManager();
|
|
102
|
-
/**
|
|
103
|
-
* Creates background bash management tools
|
|
104
|
-
*
|
|
105
|
-
* Tools:
|
|
106
|
-
* - Bash (with run_in_background): Start background processes
|
|
107
|
-
* - BashOutput: Retrieve output from background shells
|
|
108
|
-
* - KillShell: Terminate background shells
|
|
109
|
-
*
|
|
110
|
-
* @param _workingDir - The working directory for commands (reserved for future use)
|
|
111
|
-
* @returns Array of tool definitions
|
|
112
|
-
*/
|
|
113
|
-
export function createBackgroundBashTools(_workingDir) {
|
|
114
|
-
return [
|
|
115
|
-
{
|
|
116
|
-
name: 'BashOutput',
|
|
117
|
-
description: 'Retrieves output from a running or completed background bash shell. Always returns only new output since the last check.',
|
|
118
|
-
parameters: {
|
|
119
|
-
type: 'object',
|
|
120
|
-
properties: {
|
|
121
|
-
bash_id: {
|
|
122
|
-
type: 'string',
|
|
123
|
-
description: 'The ID of the background shell to retrieve output from',
|
|
124
|
-
},
|
|
125
|
-
filter: {
|
|
126
|
-
type: 'string',
|
|
127
|
-
description: 'Optional regular expression to filter the output lines. Only lines matching this regex will be included.',
|
|
128
|
-
},
|
|
129
|
-
},
|
|
130
|
-
required: ['bash_id'],
|
|
131
|
-
additionalProperties: false,
|
|
132
|
-
},
|
|
133
|
-
handler: async (args) => {
|
|
134
|
-
const bashId = args['bash_id'];
|
|
135
|
-
const filterStr = args['filter'];
|
|
136
|
-
if (typeof bashId !== 'string' || !bashId.trim()) {
|
|
137
|
-
return 'Error: bash_id must be a non-empty string.';
|
|
138
|
-
}
|
|
139
|
-
try {
|
|
140
|
-
const shell = shellManager.getShell(bashId);
|
|
141
|
-
if (!shell) {
|
|
142
|
-
const available = shellManager.listShells();
|
|
143
|
-
return `Error: Shell "${bashId}" not found.\n\nAvailable shells: ${available.length > 0 ? available.join(', ') : 'none'}`;
|
|
144
|
-
}
|
|
145
|
-
const filter = filterStr && typeof filterStr === 'string'
|
|
146
|
-
? new RegExp(filterStr)
|
|
147
|
-
: undefined;
|
|
148
|
-
const { stdout, stderr, status } = shell.getNewOutput(filter);
|
|
149
|
-
const parts = [];
|
|
150
|
-
parts.push(`Shell: ${bashId}`);
|
|
151
|
-
parts.push(`Status: ${status}`);
|
|
152
|
-
if (stdout) {
|
|
153
|
-
parts.push('\n=== New Output ===');
|
|
154
|
-
parts.push(stdout);
|
|
155
|
-
}
|
|
156
|
-
if (stderr) {
|
|
157
|
-
parts.push('\n=== Errors ===');
|
|
158
|
-
parts.push(stderr);
|
|
159
|
-
}
|
|
160
|
-
if (!stdout && !stderr) {
|
|
161
|
-
parts.push('\n(No new output)');
|
|
162
|
-
}
|
|
163
|
-
return parts.join('\n');
|
|
164
|
-
}
|
|
165
|
-
catch (error) {
|
|
166
|
-
return buildError('retrieving shell output', error, { bash_id: bashId });
|
|
167
|
-
}
|
|
168
|
-
},
|
|
169
|
-
},
|
|
170
|
-
{
|
|
171
|
-
name: 'KillShell',
|
|
172
|
-
description: 'Kills a running background bash shell by its ID. Returns success or failure status.',
|
|
173
|
-
parameters: {
|
|
174
|
-
type: 'object',
|
|
175
|
-
properties: {
|
|
176
|
-
shell_id: {
|
|
177
|
-
type: 'string',
|
|
178
|
-
description: 'The ID of the background shell to kill',
|
|
179
|
-
},
|
|
180
|
-
},
|
|
181
|
-
required: ['shell_id'],
|
|
182
|
-
additionalProperties: false,
|
|
183
|
-
},
|
|
184
|
-
handler: async (args) => {
|
|
185
|
-
const shellId = args['shell_id'];
|
|
186
|
-
if (typeof shellId !== 'string' || !shellId.trim()) {
|
|
187
|
-
return 'Error: shell_id must be a non-empty string.';
|
|
188
|
-
}
|
|
189
|
-
try {
|
|
190
|
-
const success = shellManager.killShell(shellId);
|
|
191
|
-
if (success) {
|
|
192
|
-
return `✓ Shell "${shellId}" has been terminated.`;
|
|
193
|
-
}
|
|
194
|
-
else {
|
|
195
|
-
const available = shellManager.listShells();
|
|
196
|
-
return `Error: Shell "${shellId}" not found.\n\nAvailable shells: ${available.length > 0 ? available.join(', ') : 'none'}`;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
catch (error) {
|
|
200
|
-
return buildError('killing shell', error, { shell_id: shellId });
|
|
201
|
-
}
|
|
202
|
-
},
|
|
203
|
-
},
|
|
204
|
-
];
|
|
205
|
-
}
|
|
206
|
-
/**
|
|
207
|
-
* Start a background bash command
|
|
208
|
-
*
|
|
209
|
-
* This should be integrated into the main Bash tool with a run_in_background parameter.
|
|
210
|
-
* For now, it's exported as a helper function.
|
|
211
|
-
*/
|
|
212
|
-
export function startBackgroundShell(command, workingDir) {
|
|
213
|
-
return shellManager.createShell(command, workingDir);
|
|
214
|
-
}
|
|
215
|
-
//# sourceMappingURL=backgroundBashTools.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backgroundBashTools.js","sourceRoot":"","sources":["../../src/tools/backgroundBashTools.ts"],"names":[],"mappings":"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"}
|