erosolar-cli 1.7.330 → 1.7.331
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 +148 -24
- package/dist/alpha-zero/agentWrapper.d.ts +84 -0
- package/dist/alpha-zero/agentWrapper.d.ts.map +1 -0
- package/dist/alpha-zero/agentWrapper.js +171 -0
- package/dist/alpha-zero/agentWrapper.js.map +1 -0
- package/dist/alpha-zero/codeEvaluator.d.ts +25 -0
- package/dist/alpha-zero/codeEvaluator.d.ts.map +1 -0
- package/dist/alpha-zero/codeEvaluator.js +273 -0
- package/dist/alpha-zero/codeEvaluator.js.map +1 -0
- package/dist/alpha-zero/competitiveRunner.d.ts +66 -0
- package/dist/alpha-zero/competitiveRunner.d.ts.map +1 -0
- package/dist/alpha-zero/competitiveRunner.js +224 -0
- package/dist/alpha-zero/competitiveRunner.js.map +1 -0
- package/dist/alpha-zero/index.d.ts +67 -0
- package/dist/alpha-zero/index.d.ts.map +1 -0
- package/dist/alpha-zero/index.js +99 -0
- package/dist/alpha-zero/index.js.map +1 -0
- package/dist/alpha-zero/introspection.d.ts +128 -0
- package/dist/alpha-zero/introspection.d.ts.map +1 -0
- package/dist/alpha-zero/introspection.js +300 -0
- package/dist/alpha-zero/introspection.js.map +1 -0
- package/dist/alpha-zero/metricsTracker.d.ts +71 -0
- package/dist/alpha-zero/metricsTracker.d.ts.map +1 -0
- package/dist/{core → alpha-zero}/metricsTracker.js +5 -2
- package/dist/alpha-zero/metricsTracker.js.map +1 -0
- package/dist/alpha-zero/security/core.d.ts +125 -0
- package/dist/alpha-zero/security/core.d.ts.map +1 -0
- package/dist/alpha-zero/security/core.js +271 -0
- package/dist/alpha-zero/security/core.js.map +1 -0
- package/dist/alpha-zero/security/google.d.ts +125 -0
- package/dist/alpha-zero/security/google.d.ts.map +1 -0
- package/dist/alpha-zero/security/google.js +311 -0
- package/dist/alpha-zero/security/google.js.map +1 -0
- package/dist/alpha-zero/security/googleLoader.d.ts +17 -0
- package/dist/alpha-zero/security/googleLoader.d.ts.map +1 -0
- package/dist/alpha-zero/security/googleLoader.js +41 -0
- package/dist/alpha-zero/security/googleLoader.js.map +1 -0
- package/dist/alpha-zero/security/index.d.ts +29 -0
- package/dist/alpha-zero/security/index.d.ts.map +1 -0
- package/dist/alpha-zero/security/index.js +32 -0
- package/dist/alpha-zero/security/index.js.map +1 -0
- package/dist/alpha-zero/security/simulation.d.ts +124 -0
- package/dist/alpha-zero/security/simulation.d.ts.map +1 -0
- package/dist/alpha-zero/security/simulation.js +277 -0
- package/dist/alpha-zero/security/simulation.js.map +1 -0
- package/dist/alpha-zero/selfModification.d.ts +109 -0
- package/dist/alpha-zero/selfModification.d.ts.map +1 -0
- package/dist/alpha-zero/selfModification.js +233 -0
- package/dist/alpha-zero/selfModification.js.map +1 -0
- package/dist/alpha-zero/types.d.ts +170 -0
- package/dist/alpha-zero/types.d.ts.map +1 -0
- package/dist/alpha-zero/types.js +31 -0
- package/dist/alpha-zero/types.js.map +1 -0
- package/dist/bin/erosolar.js +21 -5
- package/dist/bin/erosolar.js.map +1 -1
- package/dist/capabilities/agentSpawningCapability.d.ts.map +1 -1
- package/dist/capabilities/agentSpawningCapability.js +31 -56
- package/dist/capabilities/agentSpawningCapability.js.map +1 -1
- package/dist/capabilities/securityTestingCapability.d.ts +13 -0
- package/dist/capabilities/securityTestingCapability.d.ts.map +1 -0
- package/dist/capabilities/securityTestingCapability.js +25 -0
- package/dist/capabilities/securityTestingCapability.js.map +1 -0
- package/dist/contracts/agent-schemas.json +15 -0
- package/dist/contracts/tools.schema.json +9 -0
- 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/aiFlowOptimizer.d.ts +26 -0
- package/dist/core/aiFlowOptimizer.d.ts.map +1 -0
- package/dist/core/aiFlowOptimizer.js +31 -0
- package/dist/core/aiFlowOptimizer.js.map +1 -0
- package/dist/core/aiOptimizationEngine.d.ts +158 -0
- package/dist/core/aiOptimizationEngine.d.ts.map +1 -0
- package/dist/core/aiOptimizationEngine.js +428 -0
- package/dist/core/aiOptimizationEngine.js.map +1 -0
- package/dist/core/aiOptimizationIntegration.d.ts +93 -0
- package/dist/core/aiOptimizationIntegration.d.ts.map +1 -0
- package/dist/core/aiOptimizationIntegration.js +250 -0
- package/dist/core/aiOptimizationIntegration.js.map +1 -0
- package/dist/core/customCommands.d.ts +0 -1
- package/dist/core/customCommands.d.ts.map +1 -1
- package/dist/core/customCommands.js +0 -3
- package/dist/core/customCommands.js.map +1 -1
- package/dist/core/enhancedErrorRecovery.d.ts +100 -0
- package/dist/core/enhancedErrorRecovery.d.ts.map +1 -0
- package/dist/core/enhancedErrorRecovery.js +345 -0
- package/dist/core/enhancedErrorRecovery.js.map +1 -0
- package/dist/core/hooksSystem.d.ts +65 -0
- package/dist/core/hooksSystem.d.ts.map +1 -0
- package/dist/core/hooksSystem.js +273 -0
- package/dist/core/hooksSystem.js.map +1 -0
- package/dist/core/memorySystem.d.ts +48 -0
- package/dist/core/memorySystem.d.ts.map +1 -0
- package/dist/core/memorySystem.js +271 -0
- package/dist/core/memorySystem.js.map +1 -0
- package/dist/core/toolPreconditions.d.ts.map +1 -1
- package/dist/core/toolPreconditions.js +14 -0
- package/dist/core/toolPreconditions.js.map +1 -1
- package/dist/core/toolRuntime.d.ts +1 -22
- package/dist/core/toolRuntime.d.ts.map +1 -1
- package/dist/core/toolRuntime.js +5 -0
- package/dist/core/toolRuntime.js.map +1 -1
- package/dist/core/toolValidation.d.ts.map +1 -1
- package/dist/core/toolValidation.js +3 -14
- package/dist/core/toolValidation.js.map +1 -1
- package/dist/core/unified/errors.d.ts +189 -0
- package/dist/core/unified/errors.d.ts.map +1 -0
- package/dist/core/unified/errors.js +497 -0
- package/dist/core/unified/errors.js.map +1 -0
- package/dist/core/unified/index.d.ts +19 -0
- package/dist/core/unified/index.d.ts.map +1 -0
- package/dist/core/unified/index.js +68 -0
- package/dist/core/unified/index.js.map +1 -0
- package/dist/core/unified/schema.d.ts +101 -0
- package/dist/core/unified/schema.d.ts.map +1 -0
- package/dist/core/unified/schema.js +350 -0
- package/dist/core/unified/schema.js.map +1 -0
- package/dist/core/unified/toolRuntime.d.ts +179 -0
- package/dist/core/unified/toolRuntime.d.ts.map +1 -0
- package/dist/core/unified/toolRuntime.js +517 -0
- package/dist/core/unified/toolRuntime.js.map +1 -0
- package/dist/core/unified/tools.d.ts +127 -0
- package/dist/core/unified/tools.d.ts.map +1 -0
- package/dist/core/unified/tools.js +1333 -0
- package/dist/core/unified/tools.js.map +1 -0
- package/dist/core/unified/types.d.ts +352 -0
- package/dist/core/unified/types.d.ts.map +1 -0
- package/dist/core/unified/types.js +12 -0
- package/dist/core/unified/types.js.map +1 -0
- package/dist/core/unified/version.d.ts +209 -0
- package/dist/core/unified/version.d.ts.map +1 -0
- package/dist/core/unified/version.js +454 -0
- package/dist/core/unified/version.js.map +1 -0
- package/dist/core/validationRunner.d.ts +3 -1
- package/dist/core/validationRunner.d.ts.map +1 -1
- package/dist/core/validationRunner.js.map +1 -1
- package/dist/headless/headlessApp.d.ts.map +1 -1
- package/dist/headless/headlessApp.js +0 -21
- package/dist/headless/headlessApp.js.map +1 -1
- package/dist/mcp/sseClient.d.ts.map +1 -1
- package/dist/mcp/sseClient.js +18 -9
- package/dist/mcp/sseClient.js.map +1 -1
- package/dist/plugins/tools/build/buildPlugin.d.ts +6 -0
- package/dist/plugins/tools/build/buildPlugin.d.ts.map +1 -1
- package/dist/plugins/tools/build/buildPlugin.js +10 -4
- 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 +2 -0
- package/dist/plugins/tools/nodeDefaults.js.map +1 -1
- package/dist/plugins/tools/security/securityPlugin.d.ts +3 -0
- package/dist/plugins/tools/security/securityPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/security/securityPlugin.js +12 -0
- package/dist/plugins/tools/security/securityPlugin.js.map +1 -0
- 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/security/active-stack-security.d.ts +112 -0
- package/dist/security/active-stack-security.d.ts.map +1 -0
- package/dist/security/active-stack-security.js +296 -0
- package/dist/security/active-stack-security.js.map +1 -0
- package/dist/security/advanced-persistence-research.d.ts +92 -0
- package/dist/security/advanced-persistence-research.d.ts.map +1 -0
- package/dist/security/advanced-persistence-research.js +195 -0
- package/dist/security/advanced-persistence-research.js.map +1 -0
- package/dist/security/advanced-targeting.d.ts +119 -0
- package/dist/security/advanced-targeting.d.ts.map +1 -0
- package/dist/security/advanced-targeting.js +233 -0
- package/dist/security/advanced-targeting.js.map +1 -0
- package/dist/security/assessment/vulnerabilityAssessment.d.ts +104 -0
- package/dist/security/assessment/vulnerabilityAssessment.d.ts.map +1 -0
- package/dist/security/assessment/vulnerabilityAssessment.js +315 -0
- package/dist/security/assessment/vulnerabilityAssessment.js.map +1 -0
- package/dist/security/authorization/securityAuthorization.d.ts +88 -0
- package/dist/security/authorization/securityAuthorization.d.ts.map +1 -0
- package/dist/security/authorization/securityAuthorization.js +172 -0
- package/dist/security/authorization/securityAuthorization.js.map +1 -0
- package/dist/security/comprehensive-targeting.d.ts +85 -0
- package/dist/security/comprehensive-targeting.d.ts.map +1 -0
- package/dist/security/comprehensive-targeting.js +438 -0
- package/dist/security/comprehensive-targeting.js.map +1 -0
- package/dist/security/global-security-integration.d.ts +91 -0
- package/dist/security/global-security-integration.d.ts.map +1 -0
- package/dist/security/global-security-integration.js +218 -0
- package/dist/security/global-security-integration.js.map +1 -0
- package/dist/security/index.d.ts +38 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +47 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/persistence-analyzer.d.ts +56 -0
- package/dist/security/persistence-analyzer.d.ts.map +1 -0
- package/dist/security/persistence-analyzer.js +187 -0
- package/dist/security/persistence-analyzer.js.map +1 -0
- package/dist/security/persistence-cli.d.ts +36 -0
- package/dist/security/persistence-cli.d.ts.map +1 -0
- package/dist/security/persistence-cli.js +160 -0
- package/dist/security/persistence-cli.js.map +1 -0
- package/dist/security/persistence-research.d.ts +92 -0
- package/dist/security/persistence-research.d.ts.map +1 -0
- package/dist/security/persistence-research.js +364 -0
- package/dist/security/persistence-research.js.map +1 -0
- package/dist/security/research/persistenceResearch.d.ts +97 -0
- package/dist/security/research/persistenceResearch.d.ts.map +1 -0
- package/dist/security/research/persistenceResearch.js +282 -0
- package/dist/security/research/persistenceResearch.js.map +1 -0
- package/dist/security/security-integration.d.ts +74 -0
- package/dist/security/security-integration.d.ts.map +1 -0
- package/dist/security/security-integration.js +137 -0
- package/dist/security/security-integration.js.map +1 -0
- package/dist/security/security-testing-framework.d.ts +112 -0
- package/dist/security/security-testing-framework.d.ts.map +1 -0
- package/dist/security/security-testing-framework.js +364 -0
- package/dist/security/security-testing-framework.js.map +1 -0
- package/dist/security/simulation/attackSimulation.d.ts +93 -0
- package/dist/security/simulation/attackSimulation.d.ts.map +1 -0
- package/dist/security/simulation/attackSimulation.js +341 -0
- package/dist/security/simulation/attackSimulation.js.map +1 -0
- package/dist/security/strategic-operations.d.ts +100 -0
- package/dist/security/strategic-operations.d.ts.map +1 -0
- package/dist/security/strategic-operations.js +276 -0
- package/dist/security/strategic-operations.js.map +1 -0
- package/dist/security/tool-security-wrapper.d.ts +58 -0
- package/dist/security/tool-security-wrapper.d.ts.map +1 -0
- package/dist/security/tool-security-wrapper.js +156 -0
- package/dist/security/tool-security-wrapper.js.map +1 -0
- package/dist/shell/claudeCodeStreamHandler.d.ts +145 -0
- package/dist/shell/claudeCodeStreamHandler.d.ts.map +1 -0
- package/dist/shell/claudeCodeStreamHandler.js +322 -0
- package/dist/shell/claudeCodeStreamHandler.js.map +1 -0
- package/dist/shell/inputQueueManager.d.ts +144 -0
- package/dist/shell/inputQueueManager.d.ts.map +1 -0
- package/dist/shell/inputQueueManager.js +290 -0
- package/dist/shell/inputQueueManager.js.map +1 -0
- package/dist/shell/interactiveShell.d.ts +7 -16
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +166 -235
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/shell/metricsTracker.d.ts +60 -0
- package/dist/shell/metricsTracker.d.ts.map +1 -0
- package/dist/shell/metricsTracker.js +119 -0
- package/dist/shell/metricsTracker.js.map +1 -0
- package/dist/shell/shellApp.d.ts +0 -2
- package/dist/shell/shellApp.d.ts.map +1 -1
- package/dist/shell/shellApp.js +9 -40
- package/dist/shell/shellApp.js.map +1 -1
- package/dist/shell/streamingOutputManager.d.ts +115 -0
- package/dist/shell/streamingOutputManager.d.ts.map +1 -0
- package/dist/shell/streamingOutputManager.js +225 -0
- package/dist/shell/streamingOutputManager.js.map +1 -0
- package/dist/shell/systemPrompt.d.ts.map +1 -1
- package/dist/shell/systemPrompt.js +4 -1
- package/dist/shell/systemPrompt.js.map +1 -1
- package/dist/shell/terminalInput.d.ts +117 -149
- package/dist/shell/terminalInput.d.ts.map +1 -1
- package/dist/shell/terminalInput.js +517 -659
- package/dist/shell/terminalInput.js.map +1 -1
- package/dist/shell/terminalInputAdapter.d.ts +20 -79
- package/dist/shell/terminalInputAdapter.d.ts.map +1 -1
- package/dist/shell/terminalInputAdapter.js +30 -99
- package/dist/shell/terminalInputAdapter.js.map +1 -1
- package/dist/subagents/taskRunner.d.ts +1 -7
- package/dist/subagents/taskRunner.d.ts.map +1 -1
- package/dist/subagents/taskRunner.js +47 -180
- package/dist/subagents/taskRunner.js.map +1 -1
- package/dist/tools/securityTools.d.ts +22 -0
- package/dist/tools/securityTools.d.ts.map +1 -0
- package/dist/tools/securityTools.js +448 -0
- package/dist/tools/securityTools.js.map +1 -0
- package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
- package/dist/ui/ShellUIAdapter.js +12 -13
- package/dist/ui/ShellUIAdapter.js.map +1 -1
- package/dist/ui/display.d.ts +45 -24
- package/dist/ui/display.d.ts.map +1 -1
- package/dist/ui/display.js +259 -140
- package/dist/ui/display.js.map +1 -1
- package/dist/ui/persistentPrompt.d.ts +50 -0
- package/dist/ui/persistentPrompt.d.ts.map +1 -0
- package/dist/ui/persistentPrompt.js +92 -0
- package/dist/ui/persistentPrompt.js.map +1 -0
- package/dist/ui/terminalUISchema.d.ts +195 -0
- package/dist/ui/terminalUISchema.d.ts.map +1 -0
- package/dist/ui/terminalUISchema.js +113 -0
- package/dist/ui/terminalUISchema.js.map +1 -0
- package/dist/ui/theme.d.ts.map +1 -1
- package/dist/ui/theme.js +8 -6
- package/dist/ui/theme.js.map +1 -1
- package/dist/ui/toolDisplay.d.ts +158 -0
- package/dist/ui/toolDisplay.d.ts.map +1 -1
- package/dist/ui/toolDisplay.js +348 -0
- package/dist/ui/toolDisplay.js.map +1 -1
- package/dist/ui/unified/layout.d.ts +0 -1
- package/dist/ui/unified/layout.d.ts.map +1 -1
- package/dist/ui/unified/layout.js +25 -15
- package/dist/ui/unified/layout.js.map +1 -1
- package/package.json +4 -4
- package/scripts/deploy-security-capabilities.js +178 -0
- package/dist/core/hooks.d.ts +0 -113
- package/dist/core/hooks.d.ts.map +0 -1
- package/dist/core/hooks.js +0 -267
- package/dist/core/hooks.js.map +0 -1
- package/dist/core/metricsTracker.d.ts +0 -122
- package/dist/core/metricsTracker.d.ts.map +0 -1
- package/dist/core/metricsTracker.js.map +0 -1
- package/dist/core/securityAssessment.d.ts +0 -91
- package/dist/core/securityAssessment.d.ts.map +0 -1
- package/dist/core/securityAssessment.js +0 -580
- package/dist/core/securityAssessment.js.map +0 -1
- package/dist/core/verification.d.ts +0 -137
- package/dist/core/verification.d.ts.map +0 -1
- package/dist/core/verification.js +0 -323
- package/dist/core/verification.js.map +0 -1
- package/dist/subagents/agentConfig.d.ts +0 -27
- package/dist/subagents/agentConfig.d.ts.map +0 -1
- package/dist/subagents/agentConfig.js +0 -89
- package/dist/subagents/agentConfig.js.map +0 -1
- package/dist/subagents/agentRegistry.d.ts +0 -33
- package/dist/subagents/agentRegistry.d.ts.map +0 -1
- package/dist/subagents/agentRegistry.js +0 -162
- package/dist/subagents/agentRegistry.js.map +0 -1
- package/dist/utils/frontmatter.d.ts +0 -10
- package/dist/utils/frontmatter.d.ts.map +0 -1
- package/dist/utils/frontmatter.js +0 -78
- package/dist/utils/frontmatter.js.map +0 -1
|
@@ -0,0 +1,517 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Tool Runtime
|
|
3
|
+
*
|
|
4
|
+
* Core tool execution engine with caching, validation, and lifecycle management.
|
|
5
|
+
* Combines the best features from both TypeScript and Python implementations.
|
|
6
|
+
*
|
|
7
|
+
* Principal Investigator: Bo Shang
|
|
8
|
+
* Framework: erosolar-cli
|
|
9
|
+
*/
|
|
10
|
+
import { validateToolArguments, ToolArgumentValidationError } from './schema.js';
|
|
11
|
+
import { validateToolPreconditions } from '../toolPreconditions.js';
|
|
12
|
+
// ============================================================================
|
|
13
|
+
// Constants
|
|
14
|
+
// ============================================================================
|
|
15
|
+
/**
|
|
16
|
+
* Tools that can be safely cached based on their arguments
|
|
17
|
+
*/
|
|
18
|
+
export const CACHEABLE_TOOLS = new Set([
|
|
19
|
+
'Read',
|
|
20
|
+
'read',
|
|
21
|
+
'read_file',
|
|
22
|
+
'Glob',
|
|
23
|
+
'glob',
|
|
24
|
+
'glob_search',
|
|
25
|
+
'Grep',
|
|
26
|
+
'grep',
|
|
27
|
+
'grep_search',
|
|
28
|
+
'WebSearch',
|
|
29
|
+
'web_search',
|
|
30
|
+
'WebFetch',
|
|
31
|
+
'web_fetch',
|
|
32
|
+
'find_definition',
|
|
33
|
+
'analyze_code_quality',
|
|
34
|
+
'analyze_complexity',
|
|
35
|
+
'find_dependencies',
|
|
36
|
+
]);
|
|
37
|
+
/**
|
|
38
|
+
* Default configuration
|
|
39
|
+
*/
|
|
40
|
+
const DEFAULT_CONFIG = {
|
|
41
|
+
enableCache: true,
|
|
42
|
+
cacheTtlMs: 5 * 60 * 1000, // 5 minutes
|
|
43
|
+
maxCacheSize: 1000,
|
|
44
|
+
defaultTimeoutMs: 120_000, // 2 minutes
|
|
45
|
+
networkTimeoutMs: 30_000, // 30 seconds
|
|
46
|
+
maxOutputLength: 100_000, // 100k chars
|
|
47
|
+
verbose: false,
|
|
48
|
+
};
|
|
49
|
+
// ============================================================================
|
|
50
|
+
// Tool Runtime
|
|
51
|
+
// ============================================================================
|
|
52
|
+
/**
|
|
53
|
+
* Unified Tool Runtime
|
|
54
|
+
*
|
|
55
|
+
* Manages tool registration, execution, caching, and validation.
|
|
56
|
+
*/
|
|
57
|
+
export class ToolRuntime {
|
|
58
|
+
registry = new Map();
|
|
59
|
+
cache = new Map();
|
|
60
|
+
config;
|
|
61
|
+
observers = [];
|
|
62
|
+
executionStats = {
|
|
63
|
+
totalCalls: 0,
|
|
64
|
+
cacheHits: 0,
|
|
65
|
+
errors: 0,
|
|
66
|
+
totalTimeMs: 0,
|
|
67
|
+
};
|
|
68
|
+
constructor(config = {}) {
|
|
69
|
+
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
70
|
+
}
|
|
71
|
+
// ==========================================================================
|
|
72
|
+
// Registration
|
|
73
|
+
// ==========================================================================
|
|
74
|
+
/**
|
|
75
|
+
* Register a tool suite
|
|
76
|
+
*/
|
|
77
|
+
registerSuite(suite) {
|
|
78
|
+
for (const tool of suite.tools) {
|
|
79
|
+
this.registerTool(tool, suite.name);
|
|
80
|
+
}
|
|
81
|
+
if (this.config.verbose) {
|
|
82
|
+
console.log(`[ToolRuntime] Registered suite: ${suite.name} (${suite.tools.length} tools)`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Register a single tool
|
|
87
|
+
*/
|
|
88
|
+
registerTool(tool, suiteName = 'default') {
|
|
89
|
+
const record = {
|
|
90
|
+
definition: tool,
|
|
91
|
+
suite: suiteName,
|
|
92
|
+
enabled: true,
|
|
93
|
+
executionCount: 0,
|
|
94
|
+
};
|
|
95
|
+
this.registry.set(tool.name, record);
|
|
96
|
+
// Also register lowercase version for case-insensitive lookup
|
|
97
|
+
if (tool.name !== tool.name.toLowerCase()) {
|
|
98
|
+
this.registry.set(tool.name.toLowerCase(), record);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Unregister a tool
|
|
103
|
+
*/
|
|
104
|
+
unregisterTool(name) {
|
|
105
|
+
const record = this.registry.get(name);
|
|
106
|
+
if (!record)
|
|
107
|
+
return false;
|
|
108
|
+
this.registry.delete(name);
|
|
109
|
+
this.registry.delete(name.toLowerCase());
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Get a tool by name
|
|
114
|
+
*/
|
|
115
|
+
getTool(name) {
|
|
116
|
+
return this.registry.get(name) || this.registry.get(name.toLowerCase());
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Check if a tool exists
|
|
120
|
+
*/
|
|
121
|
+
hasTool(name) {
|
|
122
|
+
return this.registry.has(name) || this.registry.has(name.toLowerCase());
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Enable or disable a tool
|
|
126
|
+
*/
|
|
127
|
+
setToolEnabled(name, enabled) {
|
|
128
|
+
const record = this.getTool(name);
|
|
129
|
+
if (!record)
|
|
130
|
+
return false;
|
|
131
|
+
record.enabled = enabled;
|
|
132
|
+
return true;
|
|
133
|
+
}
|
|
134
|
+
// ==========================================================================
|
|
135
|
+
// Execution
|
|
136
|
+
// ==========================================================================
|
|
137
|
+
/**
|
|
138
|
+
* Execute a tool call
|
|
139
|
+
*/
|
|
140
|
+
async execute(call) {
|
|
141
|
+
const startTime = Date.now();
|
|
142
|
+
this.executionStats.totalCalls++;
|
|
143
|
+
// Look up tool
|
|
144
|
+
const record = this.getTool(call.name);
|
|
145
|
+
if (!record) {
|
|
146
|
+
return this.createErrorResult(call, startTime, `Unknown tool: ${call.name}`);
|
|
147
|
+
}
|
|
148
|
+
if (!record.enabled) {
|
|
149
|
+
return this.createErrorResult(call, startTime, `Tool is disabled: ${call.name}`);
|
|
150
|
+
}
|
|
151
|
+
const tool = record.definition;
|
|
152
|
+
// Notify observers
|
|
153
|
+
this.notifyObservers('onToolStart', call);
|
|
154
|
+
// Check cache
|
|
155
|
+
if (this.config.enableCache && this.isCacheable(tool)) {
|
|
156
|
+
const cacheKey = this.getCacheKey(call);
|
|
157
|
+
const cached = this.cache.get(cacheKey);
|
|
158
|
+
if (cached && !this.isCacheExpired(cached)) {
|
|
159
|
+
cached.hitCount++;
|
|
160
|
+
this.executionStats.cacheHits++;
|
|
161
|
+
this.notifyObservers('onCacheHit', call, cached);
|
|
162
|
+
return {
|
|
163
|
+
toolCallId: call.id,
|
|
164
|
+
output: cached.output,
|
|
165
|
+
success: true,
|
|
166
|
+
cached: true,
|
|
167
|
+
durationMs: Date.now() - startTime,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
this.notifyObservers('onCacheMiss', call);
|
|
171
|
+
}
|
|
172
|
+
// Validate arguments
|
|
173
|
+
try {
|
|
174
|
+
validateToolArguments(call.name, tool.parameters, call.arguments);
|
|
175
|
+
}
|
|
176
|
+
catch (error) {
|
|
177
|
+
if (error instanceof ToolArgumentValidationError) {
|
|
178
|
+
this.notifyObservers('onValidationError', call, error);
|
|
179
|
+
return this.createErrorResult(call, startTime, error.message);
|
|
180
|
+
}
|
|
181
|
+
throw error;
|
|
182
|
+
}
|
|
183
|
+
// Pre-flight AI flow validation - catch common tool usage failures
|
|
184
|
+
const preflightWarnings = validateToolPreconditions(call.name, call.arguments);
|
|
185
|
+
for (const warning of preflightWarnings) {
|
|
186
|
+
this.notifyObservers('onToolWarning', call, warning);
|
|
187
|
+
}
|
|
188
|
+
// Execute tool
|
|
189
|
+
try {
|
|
190
|
+
const output = await this.executeWithTimeout(tool, call.arguments);
|
|
191
|
+
const truncatedOutput = this.truncateOutput(output, call.name);
|
|
192
|
+
const durationMs = Date.now() - startTime;
|
|
193
|
+
// Update stats
|
|
194
|
+
record.executionCount++;
|
|
195
|
+
record.lastExecuted = Date.now();
|
|
196
|
+
this.executionStats.totalTimeMs += durationMs;
|
|
197
|
+
// Cache result if cacheable
|
|
198
|
+
if (this.config.enableCache && this.isCacheable(tool)) {
|
|
199
|
+
this.cacheResult(call, truncatedOutput);
|
|
200
|
+
}
|
|
201
|
+
const result = {
|
|
202
|
+
toolCallId: call.id,
|
|
203
|
+
output: truncatedOutput,
|
|
204
|
+
success: true,
|
|
205
|
+
cached: false,
|
|
206
|
+
durationMs,
|
|
207
|
+
};
|
|
208
|
+
this.notifyObservers('onToolResult', call, result);
|
|
209
|
+
return result;
|
|
210
|
+
}
|
|
211
|
+
catch (error) {
|
|
212
|
+
this.executionStats.errors++;
|
|
213
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
214
|
+
this.notifyObservers('onToolError', call, error);
|
|
215
|
+
return this.createErrorResult(call, startTime, errorMessage);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Execute with timeout
|
|
220
|
+
*/
|
|
221
|
+
async executeWithTimeout(tool, args) {
|
|
222
|
+
const timeoutMs = this.config.defaultTimeoutMs;
|
|
223
|
+
return new Promise((resolve, reject) => {
|
|
224
|
+
const timer = setTimeout(() => {
|
|
225
|
+
reject(new Error(`Tool execution timed out after ${timeoutMs}ms`));
|
|
226
|
+
}, timeoutMs);
|
|
227
|
+
tool
|
|
228
|
+
.execute(args)
|
|
229
|
+
.then((result) => {
|
|
230
|
+
clearTimeout(timer);
|
|
231
|
+
resolve(result);
|
|
232
|
+
})
|
|
233
|
+
.catch((error) => {
|
|
234
|
+
clearTimeout(timer);
|
|
235
|
+
reject(error);
|
|
236
|
+
});
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Create an error result
|
|
241
|
+
*/
|
|
242
|
+
createErrorResult(call, startTime, error) {
|
|
243
|
+
return {
|
|
244
|
+
toolCallId: call.id,
|
|
245
|
+
output: `Error: ${error}`,
|
|
246
|
+
success: false,
|
|
247
|
+
cached: false,
|
|
248
|
+
durationMs: Date.now() - startTime,
|
|
249
|
+
error,
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
// ==========================================================================
|
|
253
|
+
// Caching
|
|
254
|
+
// ==========================================================================
|
|
255
|
+
/**
|
|
256
|
+
* Check if a tool's results can be cached
|
|
257
|
+
*/
|
|
258
|
+
isCacheable(tool) {
|
|
259
|
+
if (tool.cacheable !== undefined) {
|
|
260
|
+
return tool.cacheable;
|
|
261
|
+
}
|
|
262
|
+
return CACHEABLE_TOOLS.has(tool.name);
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Generate cache key for a tool call
|
|
266
|
+
*/
|
|
267
|
+
getCacheKey(call) {
|
|
268
|
+
const argsStr = JSON.stringify(call.arguments, Object.keys(call.arguments).sort());
|
|
269
|
+
return `${call.name}:${argsStr}`;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Check if a cache entry has expired
|
|
273
|
+
*/
|
|
274
|
+
isCacheExpired(entry) {
|
|
275
|
+
return Date.now() - entry.timestamp > entry.ttl;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Cache a result
|
|
279
|
+
*/
|
|
280
|
+
cacheResult(call, output) {
|
|
281
|
+
// Enforce max cache size
|
|
282
|
+
if (this.cache.size >= this.config.maxCacheSize) {
|
|
283
|
+
this.evictOldestCacheEntries(Math.floor(this.config.maxCacheSize * 0.2));
|
|
284
|
+
}
|
|
285
|
+
const cacheKey = this.getCacheKey(call);
|
|
286
|
+
this.cache.set(cacheKey, {
|
|
287
|
+
output,
|
|
288
|
+
timestamp: Date.now(),
|
|
289
|
+
ttl: this.config.cacheTtlMs,
|
|
290
|
+
hitCount: 0,
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Evict oldest cache entries
|
|
295
|
+
*/
|
|
296
|
+
evictOldestCacheEntries(count) {
|
|
297
|
+
const entries = Array.from(this.cache.entries());
|
|
298
|
+
entries.sort(([, a], [, b]) => a.timestamp - b.timestamp);
|
|
299
|
+
for (let i = 0; i < Math.min(count, entries.length); i++) {
|
|
300
|
+
const entry = entries[i];
|
|
301
|
+
if (entry) {
|
|
302
|
+
this.cache.delete(entry[0]);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Clear all cache entries
|
|
308
|
+
*/
|
|
309
|
+
clearCache() {
|
|
310
|
+
this.cache.clear();
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Clear expired cache entries
|
|
314
|
+
*/
|
|
315
|
+
clearExpiredCache() {
|
|
316
|
+
let cleared = 0;
|
|
317
|
+
for (const [key, entry] of Array.from(this.cache.entries())) {
|
|
318
|
+
if (this.isCacheExpired(entry)) {
|
|
319
|
+
this.cache.delete(key);
|
|
320
|
+
cleared++;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
return cleared;
|
|
324
|
+
}
|
|
325
|
+
// ==========================================================================
|
|
326
|
+
// Output Handling
|
|
327
|
+
// ==========================================================================
|
|
328
|
+
/**
|
|
329
|
+
* Truncate output if too long
|
|
330
|
+
*
|
|
331
|
+
* PERF: Uses efficient slicing - O(1) for length check, O(n) for truncation only when needed.
|
|
332
|
+
* Binary search not applicable here as we need character boundaries, not search.
|
|
333
|
+
*/
|
|
334
|
+
truncateOutput(output, toolName) {
|
|
335
|
+
const maxLength = this.config.maxOutputLength;
|
|
336
|
+
const len = output.length;
|
|
337
|
+
// Fast path: no truncation needed
|
|
338
|
+
if (len <= maxLength) {
|
|
339
|
+
return output;
|
|
340
|
+
}
|
|
341
|
+
const truncatedCount = len - maxLength;
|
|
342
|
+
const toolLower = toolName.toLowerCase();
|
|
343
|
+
// For file reads, keep head and tail for better context
|
|
344
|
+
if (toolLower.includes('read') || toolLower === 'glob' || toolLower === 'grep') {
|
|
345
|
+
// Keep 70% head, 30% tail (minus notice overhead)
|
|
346
|
+
const noticeLen = 50;
|
|
347
|
+
const usableLen = maxLength - noticeLen;
|
|
348
|
+
const headSize = Math.floor(usableLen * 0.7);
|
|
349
|
+
const tailSize = usableLen - headSize;
|
|
350
|
+
return (output.slice(0, headSize) +
|
|
351
|
+
`\n\n... [truncated ${truncatedCount} characters] ...\n\n` +
|
|
352
|
+
output.slice(-tailSize));
|
|
353
|
+
}
|
|
354
|
+
// For bash/command output, keep more of the tail (errors usually at end)
|
|
355
|
+
if (toolLower.includes('bash') || toolLower === 'execute') {
|
|
356
|
+
const noticeLen = 50;
|
|
357
|
+
const usableLen = maxLength - noticeLen;
|
|
358
|
+
const tailSize = Math.floor(usableLen * 0.8);
|
|
359
|
+
const headSize = usableLen - tailSize;
|
|
360
|
+
return (output.slice(0, headSize) +
|
|
361
|
+
`\n\n... [truncated ${truncatedCount} characters] ...\n\n` +
|
|
362
|
+
output.slice(-tailSize));
|
|
363
|
+
}
|
|
364
|
+
// Default: keep head only (fastest)
|
|
365
|
+
return output.slice(0, maxLength - 50) + `\n... [truncated ${truncatedCount} characters]`;
|
|
366
|
+
}
|
|
367
|
+
// ==========================================================================
|
|
368
|
+
// Observers
|
|
369
|
+
// ==========================================================================
|
|
370
|
+
/**
|
|
371
|
+
* Add an observer
|
|
372
|
+
*/
|
|
373
|
+
addObserver(observer) {
|
|
374
|
+
this.observers.push(observer);
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Remove an observer
|
|
378
|
+
*/
|
|
379
|
+
removeObserver(observer) {
|
|
380
|
+
const index = this.observers.indexOf(observer);
|
|
381
|
+
if (index === -1)
|
|
382
|
+
return false;
|
|
383
|
+
this.observers.splice(index, 1);
|
|
384
|
+
return true;
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Notify observers of an event
|
|
388
|
+
*/
|
|
389
|
+
notifyObservers(event, ...args) {
|
|
390
|
+
for (const observer of this.observers) {
|
|
391
|
+
const handler = observer[event];
|
|
392
|
+
if (handler) {
|
|
393
|
+
try {
|
|
394
|
+
handler.apply(observer, args);
|
|
395
|
+
}
|
|
396
|
+
catch (error) {
|
|
397
|
+
if (this.config.verbose) {
|
|
398
|
+
console.error(`[ToolRuntime] Observer error:`, error);
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
// ==========================================================================
|
|
405
|
+
// Provider Integration
|
|
406
|
+
// ==========================================================================
|
|
407
|
+
/**
|
|
408
|
+
* Get tools in provider format
|
|
409
|
+
*/
|
|
410
|
+
listProviderTools() {
|
|
411
|
+
const tools = [];
|
|
412
|
+
const seen = new Set();
|
|
413
|
+
for (const [, record] of Array.from(this.registry.entries())) {
|
|
414
|
+
if (!record.enabled || seen.has(record.definition.name)) {
|
|
415
|
+
continue;
|
|
416
|
+
}
|
|
417
|
+
seen.add(record.definition.name);
|
|
418
|
+
const tool = record.definition;
|
|
419
|
+
tools.push({
|
|
420
|
+
type: 'function',
|
|
421
|
+
function: {
|
|
422
|
+
name: tool.name,
|
|
423
|
+
description: tool.description,
|
|
424
|
+
parameters: tool.parameters,
|
|
425
|
+
},
|
|
426
|
+
});
|
|
427
|
+
}
|
|
428
|
+
return tools;
|
|
429
|
+
}
|
|
430
|
+
/**
|
|
431
|
+
* Get tools for a specific category
|
|
432
|
+
*/
|
|
433
|
+
getToolsByCategory(category) {
|
|
434
|
+
const tools = [];
|
|
435
|
+
const seen = new Set();
|
|
436
|
+
for (const record of Array.from(this.registry.values())) {
|
|
437
|
+
if (record.definition.category === category &&
|
|
438
|
+
record.enabled &&
|
|
439
|
+
!seen.has(record.definition.name)) {
|
|
440
|
+
seen.add(record.definition.name);
|
|
441
|
+
tools.push(record);
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
return tools;
|
|
445
|
+
}
|
|
446
|
+
// ==========================================================================
|
|
447
|
+
// Statistics
|
|
448
|
+
// ==========================================================================
|
|
449
|
+
/**
|
|
450
|
+
* Get execution statistics
|
|
451
|
+
*/
|
|
452
|
+
getStats() {
|
|
453
|
+
const totalCalls = this.executionStats.totalCalls;
|
|
454
|
+
return {
|
|
455
|
+
totalCalls,
|
|
456
|
+
cacheHits: this.executionStats.cacheHits,
|
|
457
|
+
cacheHitRate: totalCalls > 0 ? this.executionStats.cacheHits / totalCalls : 0,
|
|
458
|
+
errors: this.executionStats.errors,
|
|
459
|
+
errorRate: totalCalls > 0 ? this.executionStats.errors / totalCalls : 0,
|
|
460
|
+
avgExecutionTimeMs: totalCalls > 0 ? this.executionStats.totalTimeMs / totalCalls : 0,
|
|
461
|
+
registeredTools: new Set(Array.from(this.registry.values()).map((r) => r.definition.name))
|
|
462
|
+
.size,
|
|
463
|
+
cacheSize: this.cache.size,
|
|
464
|
+
};
|
|
465
|
+
}
|
|
466
|
+
/**
|
|
467
|
+
* Reset statistics
|
|
468
|
+
*/
|
|
469
|
+
resetStats() {
|
|
470
|
+
this.executionStats = {
|
|
471
|
+
totalCalls: 0,
|
|
472
|
+
cacheHits: 0,
|
|
473
|
+
errors: 0,
|
|
474
|
+
totalTimeMs: 0,
|
|
475
|
+
};
|
|
476
|
+
}
|
|
477
|
+
/**
|
|
478
|
+
* Get tool execution counts
|
|
479
|
+
*/
|
|
480
|
+
getToolExecutionCounts() {
|
|
481
|
+
const counts = new Map();
|
|
482
|
+
const seen = new Set();
|
|
483
|
+
for (const record of Array.from(this.registry.values())) {
|
|
484
|
+
if (!seen.has(record.definition.name)) {
|
|
485
|
+
seen.add(record.definition.name);
|
|
486
|
+
counts.set(record.definition.name, record.executionCount);
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
return counts;
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
// ============================================================================
|
|
493
|
+
// Factory Functions
|
|
494
|
+
// ============================================================================
|
|
495
|
+
/**
|
|
496
|
+
* Create a tool runtime with default configuration
|
|
497
|
+
*/
|
|
498
|
+
export function createToolRuntime(config) {
|
|
499
|
+
return new ToolRuntime(config);
|
|
500
|
+
}
|
|
501
|
+
/**
|
|
502
|
+
* Create a tool suite from definitions
|
|
503
|
+
*/
|
|
504
|
+
export function createToolSuite(name, version, tools, description) {
|
|
505
|
+
return {
|
|
506
|
+
name,
|
|
507
|
+
version,
|
|
508
|
+
description,
|
|
509
|
+
tools,
|
|
510
|
+
};
|
|
511
|
+
}
|
|
512
|
+
// ============================================================================
|
|
513
|
+
// AI Flow Pre-Flight Validation
|
|
514
|
+
// ============================================================================
|
|
515
|
+
// Re-export shared preflight validation to maintain unified runtime parity.
|
|
516
|
+
export { validateToolPreconditions };
|
|
517
|
+
//# sourceMappingURL=toolRuntime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolRuntime.js","sourceRoot":"","sources":["../../../src/core/unified/toolRuntime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Tool Implementations
|
|
3
|
+
*
|
|
4
|
+
* Complete implementation of all tools defined in the unified schema.
|
|
5
|
+
* Single source of truth for tool executors in TypeScript.
|
|
6
|
+
*
|
|
7
|
+
* Principal Investigator: Bo Shang
|
|
8
|
+
* Framework: erosolar-cli
|
|
9
|
+
*/
|
|
10
|
+
import type { ToolDefinition, ToolSuite } from './types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Read tool - Read file contents
|
|
13
|
+
*/
|
|
14
|
+
export declare function createReadTool(workingDir: string): ToolDefinition;
|
|
15
|
+
/**
|
|
16
|
+
* Write tool - Write content to a file
|
|
17
|
+
*/
|
|
18
|
+
export declare function createWriteTool(workingDir: string): ToolDefinition;
|
|
19
|
+
/**
|
|
20
|
+
* Edit tool - Make surgical edits to a file
|
|
21
|
+
*/
|
|
22
|
+
export declare function createEditTool(workingDir: string): ToolDefinition;
|
|
23
|
+
/**
|
|
24
|
+
* Bash tool - Execute shell commands
|
|
25
|
+
*/
|
|
26
|
+
export declare function createBashTool(workingDir: string): ToolDefinition;
|
|
27
|
+
/**
|
|
28
|
+
* Glob tool - Find files matching a pattern
|
|
29
|
+
*/
|
|
30
|
+
export declare function createGlobTool(workingDir: string): ToolDefinition;
|
|
31
|
+
/**
|
|
32
|
+
* Grep tool - Search file contents with regex
|
|
33
|
+
*/
|
|
34
|
+
export declare function createGrepTool(workingDir: string): ToolDefinition;
|
|
35
|
+
/**
|
|
36
|
+
* WebSearch tool - Search the web
|
|
37
|
+
*/
|
|
38
|
+
export declare function createWebSearchTool(): ToolDefinition;
|
|
39
|
+
/**
|
|
40
|
+
* WebFetch tool - Fetch and analyze web page content
|
|
41
|
+
*/
|
|
42
|
+
export declare function createWebFetchTool(): ToolDefinition;
|
|
43
|
+
/**
|
|
44
|
+
* AnalyzeComplexity tool - Analyze code complexity
|
|
45
|
+
*/
|
|
46
|
+
export declare function createAnalyzeComplexityTool(): ToolDefinition;
|
|
47
|
+
/**
|
|
48
|
+
* FindDependencies tool - Find imports and dependencies
|
|
49
|
+
*/
|
|
50
|
+
export declare function createFindDependenciesTool(): ToolDefinition;
|
|
51
|
+
/**
|
|
52
|
+
* GenerateDocstring tool - Generate documentation for code
|
|
53
|
+
*/
|
|
54
|
+
export declare function createGenerateDocstringTool(): ToolDefinition;
|
|
55
|
+
/**
|
|
56
|
+
* SuggestRefactorings tool - Suggest code refactoring improvements
|
|
57
|
+
*/
|
|
58
|
+
export declare function createSuggestRefactoringsTool(): ToolDefinition;
|
|
59
|
+
/**
|
|
60
|
+
* GenerateTestStub tool - Generate test stubs
|
|
61
|
+
*/
|
|
62
|
+
export declare function createGenerateTestStubTool(): ToolDefinition;
|
|
63
|
+
/**
|
|
64
|
+
* DependencyAudit tool - Audit dependencies for vulnerabilities
|
|
65
|
+
*/
|
|
66
|
+
export declare function createDependencyAuditTool(workingDir: string): ToolDefinition;
|
|
67
|
+
/**
|
|
68
|
+
* CodeSecurityScan tool - Scan code for security vulnerabilities
|
|
69
|
+
*/
|
|
70
|
+
export declare function createCodeSecurityScanTool(): ToolDefinition;
|
|
71
|
+
/**
|
|
72
|
+
* AnalyzeAttackSurface tool - Analyze code attack surface
|
|
73
|
+
*/
|
|
74
|
+
export declare function createAnalyzeAttackSurfaceTool(): ToolDefinition;
|
|
75
|
+
/**
|
|
76
|
+
* AlphaZeroEvaluate tool - Evaluate code quality
|
|
77
|
+
*/
|
|
78
|
+
export declare function createAlphaZeroEvaluateTool(): ToolDefinition;
|
|
79
|
+
/**
|
|
80
|
+
* AlphaZeroTournament tool - Run competitive tournament
|
|
81
|
+
*/
|
|
82
|
+
export declare function createAlphaZeroTournamentTool(): ToolDefinition;
|
|
83
|
+
/**
|
|
84
|
+
* AlphaZeroIntrospect tool - Analyze agent performance
|
|
85
|
+
*/
|
|
86
|
+
export declare function createAlphaZeroIntrospectTool(): ToolDefinition;
|
|
87
|
+
/**
|
|
88
|
+
* AlphaZeroHistory tool - Get historical competition data
|
|
89
|
+
*/
|
|
90
|
+
export declare function createAlphaZeroHistoryTool(): ToolDefinition;
|
|
91
|
+
/**
|
|
92
|
+
* AlphaZeroMetrics tool - Get comprehensive metrics
|
|
93
|
+
*/
|
|
94
|
+
export declare function createAlphaZeroMetricsTool(): ToolDefinition;
|
|
95
|
+
/**
|
|
96
|
+
* Intelligence Analyze - Run code analysis
|
|
97
|
+
*/
|
|
98
|
+
export declare function createIntelligenceAnalyzeTool(workingDir: string): ToolDefinition;
|
|
99
|
+
/**
|
|
100
|
+
* Intelligence Refactor - Find and apply refactorings
|
|
101
|
+
*/
|
|
102
|
+
export declare function createIntelligenceRefactorTool(workingDir: string): ToolDefinition;
|
|
103
|
+
/**
|
|
104
|
+
* Intelligence Document - Generate documentation
|
|
105
|
+
*/
|
|
106
|
+
export declare function createIntelligenceDocumentTool(workingDir: string): ToolDefinition;
|
|
107
|
+
/**
|
|
108
|
+
* Intelligence Test - Generate test suites
|
|
109
|
+
*/
|
|
110
|
+
export declare function createIntelligenceTestTool(workingDir: string): ToolDefinition;
|
|
111
|
+
/**
|
|
112
|
+
* Intelligence Full - Run complete intelligence suite
|
|
113
|
+
*/
|
|
114
|
+
export declare function createIntelligenceFullTool(workingDir: string): ToolDefinition;
|
|
115
|
+
/**
|
|
116
|
+
* Create the complete unified tool suite
|
|
117
|
+
*/
|
|
118
|
+
export declare function createUnifiedToolSuite(workingDir: string): ToolSuite;
|
|
119
|
+
/**
|
|
120
|
+
* Create individual tool suites by category
|
|
121
|
+
*/
|
|
122
|
+
export declare function createCoreToolSuite(workingDir: string): ToolSuite;
|
|
123
|
+
export declare function createWebToolSuite(): ToolSuite;
|
|
124
|
+
export declare function createCodingToolSuite(): ToolSuite;
|
|
125
|
+
export declare function createSecurityToolSuite(workingDir: string): ToolSuite;
|
|
126
|
+
export declare function createAlphaZeroToolSuite(): ToolSuite;
|
|
127
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/core/unified/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQ5D;;GAEG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAyCjE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAoElE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAsBjE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAkFjE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAmDjE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAkEjE;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,cAAc,CAmBpD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,CAqBnD;AAMD;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,cAAc,CAiC5D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,cAAc,CAoC3D;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,cAAc,CAyD5D;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,cAAc,CA+C9D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,cAAc,CAgE3D;AAMD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CA8C5E;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,cAAc,CA8C3D;AAED;;GAEG;AACH,wBAAgB,8BAA8B,IAAI,cAAc,CAmC/D;AAMD;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,cAAc,CA2C5D;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,cAAc,CAyB9D;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,cAAc,CAiB9D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,cAAc,CAiB3D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,cAAc,CA6B3D;AA4GD;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CA8ChF;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAkDjF;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAiCjF;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAgC7E;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAoC7E;AAMD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CA6CpE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAcjE;AAED,wBAAgB,kBAAkB,IAAI,SAAS,CAO9C;AAED,wBAAgB,qBAAqB,IAAI,SAAS,CAajD;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAWrE;AAED,wBAAgB,wBAAwB,IAAI,SAAS,CAapD"}
|