erosolar-cli 1.7.333 → 1.7.334
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 +118 -149
- package/dist/shell/terminalInput.d.ts.map +1 -1
- package/dist/shell/terminalInput.js +532 -689
- package/dist/shell/terminalInput.js.map +1 -1
- package/dist/shell/terminalInputAdapter.d.ts +21 -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,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Schema Loader and Validator
|
|
3
|
+
*
|
|
4
|
+
* Provides cached loading of the unified schema and validation utilities.
|
|
5
|
+
* Single source of truth for all schema operations.
|
|
6
|
+
*
|
|
7
|
+
* Principal Investigator: Bo Shang
|
|
8
|
+
* Framework: erosolar-cli
|
|
9
|
+
*/
|
|
10
|
+
import type { UnifiedSchema, ProviderConfig, TaskTypeConfig, SchemaToolDefinition, ToolCategoryConfig, JSONSchemaObject, ProviderId, TaskTypeId, ProviderCapability } from './types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Load the unified schema with caching
|
|
13
|
+
*/
|
|
14
|
+
export declare function loadUnifiedSchema(forceReload?: boolean): UnifiedSchema;
|
|
15
|
+
/**
|
|
16
|
+
* Clear the schema cache
|
|
17
|
+
*/
|
|
18
|
+
export declare function clearSchemaCache(): void;
|
|
19
|
+
/**
|
|
20
|
+
* Get provider configuration by ID
|
|
21
|
+
*/
|
|
22
|
+
export declare function getProviderConfig(providerId: ProviderId): ProviderConfig | null;
|
|
23
|
+
/**
|
|
24
|
+
* Get all available providers
|
|
25
|
+
*/
|
|
26
|
+
export declare function getAllProviders(): ProviderConfig[];
|
|
27
|
+
/**
|
|
28
|
+
* Get providers with specific capabilities
|
|
29
|
+
*/
|
|
30
|
+
export declare function getProvidersWithCapabilities(required: ProviderCapability[], preferred?: ProviderCapability[]): ProviderConfig[];
|
|
31
|
+
/**
|
|
32
|
+
* Get recommended providers for a task type
|
|
33
|
+
*/
|
|
34
|
+
export declare function getRecommendedProviders(taskType: TaskTypeId): ProviderConfig[];
|
|
35
|
+
/**
|
|
36
|
+
* Get task type configuration
|
|
37
|
+
*/
|
|
38
|
+
export declare function getTaskTypeConfig(taskTypeId: TaskTypeId): TaskTypeConfig | null;
|
|
39
|
+
/**
|
|
40
|
+
* Get all task types
|
|
41
|
+
*/
|
|
42
|
+
export declare function getAllTaskTypes(): TaskTypeConfig[];
|
|
43
|
+
/**
|
|
44
|
+
* Determine best task type for a given prompt
|
|
45
|
+
*/
|
|
46
|
+
export declare function inferTaskType(prompt: string): TaskTypeId;
|
|
47
|
+
/**
|
|
48
|
+
* Get tool definition by ID
|
|
49
|
+
*/
|
|
50
|
+
export declare function getToolDefinition(toolId: string): SchemaToolDefinition | null;
|
|
51
|
+
/**
|
|
52
|
+
* Get all tools in a category
|
|
53
|
+
*/
|
|
54
|
+
export declare function getToolsByCategory(categoryId: string): SchemaToolDefinition[];
|
|
55
|
+
/**
|
|
56
|
+
* Get tool category configuration
|
|
57
|
+
*/
|
|
58
|
+
export declare function getToolCategory(categoryId: string): ToolCategoryConfig | null;
|
|
59
|
+
/**
|
|
60
|
+
* Get all enabled tools (including always-enabled categories)
|
|
61
|
+
*/
|
|
62
|
+
export declare function getEnabledTools(enabledCategories?: string[]): SchemaToolDefinition[];
|
|
63
|
+
/**
|
|
64
|
+
* Check if a tool requires authentication
|
|
65
|
+
*/
|
|
66
|
+
export declare function toolRequiresAuth(toolId: string): boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Validation error for tool arguments
|
|
69
|
+
*/
|
|
70
|
+
export declare class ToolArgumentValidationError extends Error {
|
|
71
|
+
readonly toolName: string;
|
|
72
|
+
readonly field: string;
|
|
73
|
+
readonly reason: string;
|
|
74
|
+
readonly value?: unknown | undefined;
|
|
75
|
+
constructor(toolName: string, field: string, reason: string, value?: unknown | undefined);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Validate tool arguments against schema
|
|
79
|
+
*/
|
|
80
|
+
export declare function validateToolArguments(toolName: string, schema: JSONSchemaObject | undefined, args: Record<string, unknown>): void;
|
|
81
|
+
/**
|
|
82
|
+
* Get schema defaults
|
|
83
|
+
*/
|
|
84
|
+
export declare function getSchemaDefaults(): UnifiedSchema['defaults'];
|
|
85
|
+
/**
|
|
86
|
+
* Get schema metadata
|
|
87
|
+
*/
|
|
88
|
+
export declare function getSchemaMetadata(): UnifiedSchema['metadata'];
|
|
89
|
+
/**
|
|
90
|
+
* Get schema version
|
|
91
|
+
*/
|
|
92
|
+
export declare function getSchemaVersion(): string;
|
|
93
|
+
/**
|
|
94
|
+
* Check if provider supports a capability
|
|
95
|
+
*/
|
|
96
|
+
export declare function providerSupportsCapability(providerId: ProviderId, capability: ProviderCapability): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Get best provider for capabilities
|
|
99
|
+
*/
|
|
100
|
+
export declare function selectBestProvider(required: ProviderCapability[], preferred?: ProviderCapability[]): ProviderConfig | null;
|
|
101
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/core/unified/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAEhB,UAAU,EACV,UAAU,EACV,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAUpB;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,UAAQ,GAAG,aAAa,CAkBpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,IAAI,CAG/E;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,cAAc,EAAE,CAElD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,SAAS,GAAE,kBAAkB,EAAO,GACnC,cAAc,EAAE,CAWlB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,UAAU,GAAG,cAAc,EAAE,CAW9E;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,IAAI,CAG/E;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,cAAc,EAAE,CAElD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAgDxD;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAG7E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAG7E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAG7E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,iBAAiB,GAAE,MAAM,EAAO,GAAG,oBAAoB,EAAE,CASxF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAQxD;AAMD;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,KAAK;aAElC,QAAQ,EAAE,MAAM;aAChB,KAAK,EAAE,MAAM;aACb,MAAM,EAAE,MAAM;aACd,KAAK,CAAC,EAAE,OAAO;gBAHf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,OAAO,YAAA;CAKlC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,IAAI,CA2BN;AAoID;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,CAAC,UAAU,CAAC,CAE7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,CAAC,UAAU,CAAC,CAE7D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,kBAAkB,GAC7B,OAAO,CAGT;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,SAAS,GAAE,kBAAkB,EAAO,GACnC,cAAc,GAAG,IAAI,CAGvB"}
|
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Schema Loader and Validator
|
|
3
|
+
*
|
|
4
|
+
* Provides cached loading of the unified schema and validation utilities.
|
|
5
|
+
* Single source of truth for all schema operations.
|
|
6
|
+
*
|
|
7
|
+
* Principal Investigator: Bo Shang
|
|
8
|
+
* Framework: erosolar-cli
|
|
9
|
+
*/
|
|
10
|
+
import { readFileSync } from 'fs';
|
|
11
|
+
import { resolve } from 'path';
|
|
12
|
+
// ============================================================================
|
|
13
|
+
// Schema Cache
|
|
14
|
+
// ============================================================================
|
|
15
|
+
let _schemaCache = null;
|
|
16
|
+
let _schemaCacheTime = 0;
|
|
17
|
+
const CACHE_TTL_MS = 60 * 1000; // 1 minute
|
|
18
|
+
/**
|
|
19
|
+
* Load the unified schema with caching
|
|
20
|
+
*/
|
|
21
|
+
export function loadUnifiedSchema(forceReload = false) {
|
|
22
|
+
const now = Date.now();
|
|
23
|
+
if (!forceReload && _schemaCache && now - _schemaCacheTime < CACHE_TTL_MS) {
|
|
24
|
+
return _schemaCache;
|
|
25
|
+
}
|
|
26
|
+
// Use process.cwd() relative path or __dirname equivalent
|
|
27
|
+
const schemaPath = resolve(process.cwd(), 'src/contracts/unified-schema.json');
|
|
28
|
+
try {
|
|
29
|
+
const content = readFileSync(schemaPath, 'utf-8');
|
|
30
|
+
_schemaCache = JSON.parse(content);
|
|
31
|
+
_schemaCacheTime = now;
|
|
32
|
+
return _schemaCache;
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
throw new Error(`Failed to load unified schema: ${error}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Clear the schema cache
|
|
40
|
+
*/
|
|
41
|
+
export function clearSchemaCache() {
|
|
42
|
+
_schemaCache = null;
|
|
43
|
+
_schemaCacheTime = 0;
|
|
44
|
+
}
|
|
45
|
+
// ============================================================================
|
|
46
|
+
// Provider Lookups
|
|
47
|
+
// ============================================================================
|
|
48
|
+
/**
|
|
49
|
+
* Get provider configuration by ID
|
|
50
|
+
*/
|
|
51
|
+
export function getProviderConfig(providerId) {
|
|
52
|
+
const schema = loadUnifiedSchema();
|
|
53
|
+
return schema.providers.find((p) => p.id === providerId) || null;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Get all available providers
|
|
57
|
+
*/
|
|
58
|
+
export function getAllProviders() {
|
|
59
|
+
return loadUnifiedSchema().providers;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get providers with specific capabilities
|
|
63
|
+
*/
|
|
64
|
+
export function getProvidersWithCapabilities(required, preferred = []) {
|
|
65
|
+
const schema = loadUnifiedSchema();
|
|
66
|
+
return schema.providers
|
|
67
|
+
.filter((p) => required.every((cap) => p.capabilities.includes(cap)))
|
|
68
|
+
.sort((a, b) => {
|
|
69
|
+
// Sort by number of preferred capabilities matched
|
|
70
|
+
const aPreferred = preferred.filter((cap) => a.capabilities.includes(cap)).length;
|
|
71
|
+
const bPreferred = preferred.filter((cap) => b.capabilities.includes(cap)).length;
|
|
72
|
+
return bPreferred - aPreferred;
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get recommended providers for a task type
|
|
77
|
+
*/
|
|
78
|
+
export function getRecommendedProviders(taskType) {
|
|
79
|
+
const schema = loadUnifiedSchema();
|
|
80
|
+
const taskConfig = schema.taskTypes.find((t) => t.id === taskType);
|
|
81
|
+
if (!taskConfig) {
|
|
82
|
+
return [];
|
|
83
|
+
}
|
|
84
|
+
return taskConfig.recommendedProviders
|
|
85
|
+
.map((id) => schema.providers.find((p) => p.id === id))
|
|
86
|
+
.filter((p) => p !== undefined);
|
|
87
|
+
}
|
|
88
|
+
// ============================================================================
|
|
89
|
+
// Task Type Lookups
|
|
90
|
+
// ============================================================================
|
|
91
|
+
/**
|
|
92
|
+
* Get task type configuration
|
|
93
|
+
*/
|
|
94
|
+
export function getTaskTypeConfig(taskTypeId) {
|
|
95
|
+
const schema = loadUnifiedSchema();
|
|
96
|
+
return schema.taskTypes.find((t) => t.id === taskTypeId) || null;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get all task types
|
|
100
|
+
*/
|
|
101
|
+
export function getAllTaskTypes() {
|
|
102
|
+
return loadUnifiedSchema().taskTypes;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Determine best task type for a given prompt
|
|
106
|
+
*/
|
|
107
|
+
export function inferTaskType(prompt) {
|
|
108
|
+
const promptLower = prompt.toLowerCase();
|
|
109
|
+
// Simple heuristics for task type inference
|
|
110
|
+
if (promptLower.includes('security') ||
|
|
111
|
+
promptLower.includes('vulnerability') ||
|
|
112
|
+
promptLower.includes('audit')) {
|
|
113
|
+
return 'security';
|
|
114
|
+
}
|
|
115
|
+
if (promptLower.includes('test') || promptLower.includes('spec')) {
|
|
116
|
+
return 'testing';
|
|
117
|
+
}
|
|
118
|
+
if (promptLower.includes('document') || promptLower.includes('readme')) {
|
|
119
|
+
return 'documentation';
|
|
120
|
+
}
|
|
121
|
+
if (promptLower.includes('search') || promptLower.includes('find information')) {
|
|
122
|
+
return 'research';
|
|
123
|
+
}
|
|
124
|
+
if (promptLower.includes('image') || promptLower.includes('screenshot')) {
|
|
125
|
+
return 'multimodal';
|
|
126
|
+
}
|
|
127
|
+
if (promptLower.includes('analyze') ||
|
|
128
|
+
promptLower.includes('review') ||
|
|
129
|
+
promptLower.includes('complexity')) {
|
|
130
|
+
return 'analysis';
|
|
131
|
+
}
|
|
132
|
+
if (promptLower.includes('think') ||
|
|
133
|
+
promptLower.includes('reason') ||
|
|
134
|
+
promptLower.includes('plan')) {
|
|
135
|
+
return 'reasoning';
|
|
136
|
+
}
|
|
137
|
+
if (promptLower.includes('code') ||
|
|
138
|
+
promptLower.includes('function') ||
|
|
139
|
+
promptLower.includes('implement') ||
|
|
140
|
+
promptLower.includes('fix') ||
|
|
141
|
+
promptLower.includes('refactor')) {
|
|
142
|
+
return 'coding';
|
|
143
|
+
}
|
|
144
|
+
return 'chat';
|
|
145
|
+
}
|
|
146
|
+
// ============================================================================
|
|
147
|
+
// Tool Lookups
|
|
148
|
+
// ============================================================================
|
|
149
|
+
/**
|
|
150
|
+
* Get tool definition by ID
|
|
151
|
+
*/
|
|
152
|
+
export function getToolDefinition(toolId) {
|
|
153
|
+
const schema = loadUnifiedSchema();
|
|
154
|
+
return schema.tools.find((t) => t.id === toolId) || null;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Get all tools in a category
|
|
158
|
+
*/
|
|
159
|
+
export function getToolsByCategory(categoryId) {
|
|
160
|
+
const schema = loadUnifiedSchema();
|
|
161
|
+
return schema.tools.filter((t) => t.category === categoryId);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Get tool category configuration
|
|
165
|
+
*/
|
|
166
|
+
export function getToolCategory(categoryId) {
|
|
167
|
+
const schema = loadUnifiedSchema();
|
|
168
|
+
return schema.toolCategories.find((c) => c.id === categoryId) || null;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Get all enabled tools (including always-enabled categories)
|
|
172
|
+
*/
|
|
173
|
+
export function getEnabledTools(enabledCategories = []) {
|
|
174
|
+
const schema = loadUnifiedSchema();
|
|
175
|
+
const enabledCategoryIds = new Set([
|
|
176
|
+
...schema.toolCategories.filter((c) => c.alwaysEnabled).map((c) => c.id),
|
|
177
|
+
...enabledCategories,
|
|
178
|
+
]);
|
|
179
|
+
return schema.tools.filter((t) => enabledCategoryIds.has(t.category));
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Check if a tool requires authentication
|
|
183
|
+
*/
|
|
184
|
+
export function toolRequiresAuth(toolId) {
|
|
185
|
+
const tool = getToolDefinition(toolId);
|
|
186
|
+
if (!tool)
|
|
187
|
+
return false;
|
|
188
|
+
if (tool.requiresAuth)
|
|
189
|
+
return true;
|
|
190
|
+
const category = getToolCategory(tool.category);
|
|
191
|
+
return category?.requiresAuth ?? false;
|
|
192
|
+
}
|
|
193
|
+
// ============================================================================
|
|
194
|
+
// Schema Validation
|
|
195
|
+
// ============================================================================
|
|
196
|
+
/**
|
|
197
|
+
* Validation error for tool arguments
|
|
198
|
+
*/
|
|
199
|
+
export class ToolArgumentValidationError extends Error {
|
|
200
|
+
toolName;
|
|
201
|
+
field;
|
|
202
|
+
reason;
|
|
203
|
+
value;
|
|
204
|
+
constructor(toolName, field, reason, value) {
|
|
205
|
+
super(`Tool ${toolName}: ${field} - ${reason}`);
|
|
206
|
+
this.toolName = toolName;
|
|
207
|
+
this.field = field;
|
|
208
|
+
this.reason = reason;
|
|
209
|
+
this.value = value;
|
|
210
|
+
this.name = 'ToolArgumentValidationError';
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Validate tool arguments against schema
|
|
215
|
+
*/
|
|
216
|
+
export function validateToolArguments(toolName, schema, args) {
|
|
217
|
+
if (!schema)
|
|
218
|
+
return;
|
|
219
|
+
// Check required fields
|
|
220
|
+
if (schema.required) {
|
|
221
|
+
for (const field of schema.required) {
|
|
222
|
+
if (!(field in args) || args[field] === undefined || args[field] === null) {
|
|
223
|
+
throw new ToolArgumentValidationError(toolName, field, 'Required field is missing');
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
// Validate each property
|
|
228
|
+
if (schema.properties) {
|
|
229
|
+
for (const [field, value] of Object.entries(args)) {
|
|
230
|
+
const propSchema = schema.properties[field];
|
|
231
|
+
if (!propSchema) {
|
|
232
|
+
if (schema.additionalProperties === false) {
|
|
233
|
+
throw new ToolArgumentValidationError(toolName, field, 'Unknown field');
|
|
234
|
+
}
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
237
|
+
validateProperty(toolName, field, propSchema, value);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Validate a single property
|
|
243
|
+
*/
|
|
244
|
+
function validateProperty(toolName, field, schema, value) {
|
|
245
|
+
if (value === undefined || value === null) {
|
|
246
|
+
return; // Required check is done separately
|
|
247
|
+
}
|
|
248
|
+
const types = Array.isArray(schema.type) ? schema.type : [schema.type];
|
|
249
|
+
// Type checking
|
|
250
|
+
const actualType = getValueType(value);
|
|
251
|
+
if (!types.includes(actualType)) {
|
|
252
|
+
throw new ToolArgumentValidationError(toolName, field, `Expected ${types.join(' | ')}, got ${actualType}`, value);
|
|
253
|
+
}
|
|
254
|
+
// Enum validation
|
|
255
|
+
if (schema.enum && !schema.enum.includes(value)) {
|
|
256
|
+
throw new ToolArgumentValidationError(toolName, field, `Value must be one of: ${schema.enum.join(', ')}`, value);
|
|
257
|
+
}
|
|
258
|
+
// String validations
|
|
259
|
+
if (actualType === 'string') {
|
|
260
|
+
const strValue = value;
|
|
261
|
+
if (schema.minLength !== undefined && strValue.length < schema.minLength) {
|
|
262
|
+
throw new ToolArgumentValidationError(toolName, field, `String length must be at least ${schema.minLength}`, value);
|
|
263
|
+
}
|
|
264
|
+
if (schema.maxLength !== undefined && strValue.length > schema.maxLength) {
|
|
265
|
+
throw new ToolArgumentValidationError(toolName, field, `String length must be at most ${schema.maxLength}`, value);
|
|
266
|
+
}
|
|
267
|
+
if (schema.pattern) {
|
|
268
|
+
const regex = new RegExp(schema.pattern);
|
|
269
|
+
if (!regex.test(strValue)) {
|
|
270
|
+
throw new ToolArgumentValidationError(toolName, field, `String must match pattern: ${schema.pattern}`, value);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
// Number validations
|
|
275
|
+
if (actualType === 'number' || actualType === 'integer') {
|
|
276
|
+
const numValue = value;
|
|
277
|
+
if (schema.minimum !== undefined && numValue < schema.minimum) {
|
|
278
|
+
throw new ToolArgumentValidationError(toolName, field, `Value must be at least ${schema.minimum}`, value);
|
|
279
|
+
}
|
|
280
|
+
if (schema.maximum !== undefined && numValue > schema.maximum) {
|
|
281
|
+
throw new ToolArgumentValidationError(toolName, field, `Value must be at most ${schema.maximum}`, value);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
// Array validations
|
|
285
|
+
if (actualType === 'array' && schema.items) {
|
|
286
|
+
const arrValue = value;
|
|
287
|
+
for (let i = 0; i < arrValue.length; i++) {
|
|
288
|
+
validateProperty(toolName, `${field}[${i}]`, schema.items, arrValue[i]);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
// Object validations
|
|
292
|
+
if (actualType === 'object' && schema.properties) {
|
|
293
|
+
const objValue = value;
|
|
294
|
+
for (const [key, val] of Object.entries(objValue)) {
|
|
295
|
+
const propSchema = schema.properties[key];
|
|
296
|
+
if (propSchema) {
|
|
297
|
+
validateProperty(toolName, `${field}.${key}`, propSchema, val);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Get the JSON Schema type of a value
|
|
304
|
+
*/
|
|
305
|
+
function getValueType(value) {
|
|
306
|
+
if (value === null)
|
|
307
|
+
return 'null';
|
|
308
|
+
if (Array.isArray(value))
|
|
309
|
+
return 'array';
|
|
310
|
+
if (typeof value === 'number') {
|
|
311
|
+
return Number.isInteger(value) ? 'integer' : 'number';
|
|
312
|
+
}
|
|
313
|
+
return typeof value;
|
|
314
|
+
}
|
|
315
|
+
// ============================================================================
|
|
316
|
+
// Schema Utilities
|
|
317
|
+
// ============================================================================
|
|
318
|
+
/**
|
|
319
|
+
* Get schema defaults
|
|
320
|
+
*/
|
|
321
|
+
export function getSchemaDefaults() {
|
|
322
|
+
return loadUnifiedSchema().defaults;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Get schema metadata
|
|
326
|
+
*/
|
|
327
|
+
export function getSchemaMetadata() {
|
|
328
|
+
return loadUnifiedSchema().metadata;
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Get schema version
|
|
332
|
+
*/
|
|
333
|
+
export function getSchemaVersion() {
|
|
334
|
+
return loadUnifiedSchema().contractVersion;
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Check if provider supports a capability
|
|
338
|
+
*/
|
|
339
|
+
export function providerSupportsCapability(providerId, capability) {
|
|
340
|
+
const provider = getProviderConfig(providerId);
|
|
341
|
+
return provider?.capabilities.includes(capability) ?? false;
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Get best provider for capabilities
|
|
345
|
+
*/
|
|
346
|
+
export function selectBestProvider(required, preferred = []) {
|
|
347
|
+
const providers = getProvidersWithCapabilities(required, preferred);
|
|
348
|
+
return providers[0] || null;
|
|
349
|
+
}
|
|
350
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/core/unified/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,179 @@
|
|
|
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 type { ToolDefinition, ToolSuite, ToolRecord, ToolCallRequest, ToolCallResult, ProviderToolDefinition } from './types.js';
|
|
11
|
+
import { ToolArgumentValidationError } from './schema.js';
|
|
12
|
+
import { validateToolPreconditions, type PreflightWarning } from '../toolPreconditions.js';
|
|
13
|
+
/**
|
|
14
|
+
* Tools that can be safely cached based on their arguments
|
|
15
|
+
*/
|
|
16
|
+
export declare const CACHEABLE_TOOLS: Set<string>;
|
|
17
|
+
export interface ToolRuntimeConfig {
|
|
18
|
+
enableCache: boolean;
|
|
19
|
+
cacheTtlMs: number;
|
|
20
|
+
maxCacheSize: number;
|
|
21
|
+
defaultTimeoutMs: number;
|
|
22
|
+
networkTimeoutMs: number;
|
|
23
|
+
maxOutputLength: number;
|
|
24
|
+
verbose: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface CacheEntry {
|
|
27
|
+
output: string;
|
|
28
|
+
timestamp: number;
|
|
29
|
+
ttl: number;
|
|
30
|
+
hitCount: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Observer interface for tool lifecycle events
|
|
34
|
+
*/
|
|
35
|
+
export interface ToolRuntimeObserver {
|
|
36
|
+
onToolStart?(call: ToolCallRequest): void;
|
|
37
|
+
onToolResult?(call: ToolCallRequest, result: ToolCallResult): void;
|
|
38
|
+
onToolError?(call: ToolCallRequest, error: Error): void;
|
|
39
|
+
onToolWarning?(call: ToolCallRequest, warning: PreflightWarning | string): void;
|
|
40
|
+
onCacheHit?(call: ToolCallRequest, entry: CacheEntry): void;
|
|
41
|
+
onCacheMiss?(call: ToolCallRequest): void;
|
|
42
|
+
onValidationError?(call: ToolCallRequest, error: ToolArgumentValidationError): void;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Unified Tool Runtime
|
|
46
|
+
*
|
|
47
|
+
* Manages tool registration, execution, caching, and validation.
|
|
48
|
+
*/
|
|
49
|
+
export declare class ToolRuntime {
|
|
50
|
+
private registry;
|
|
51
|
+
private cache;
|
|
52
|
+
private config;
|
|
53
|
+
private observers;
|
|
54
|
+
private executionStats;
|
|
55
|
+
constructor(config?: Partial<ToolRuntimeConfig>);
|
|
56
|
+
/**
|
|
57
|
+
* Register a tool suite
|
|
58
|
+
*/
|
|
59
|
+
registerSuite(suite: ToolSuite): void;
|
|
60
|
+
/**
|
|
61
|
+
* Register a single tool
|
|
62
|
+
*/
|
|
63
|
+
registerTool(tool: ToolDefinition, suiteName?: string): void;
|
|
64
|
+
/**
|
|
65
|
+
* Unregister a tool
|
|
66
|
+
*/
|
|
67
|
+
unregisterTool(name: string): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Get a tool by name
|
|
70
|
+
*/
|
|
71
|
+
getTool(name: string): ToolRecord | undefined;
|
|
72
|
+
/**
|
|
73
|
+
* Check if a tool exists
|
|
74
|
+
*/
|
|
75
|
+
hasTool(name: string): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Enable or disable a tool
|
|
78
|
+
*/
|
|
79
|
+
setToolEnabled(name: string, enabled: boolean): boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Execute a tool call
|
|
82
|
+
*/
|
|
83
|
+
execute(call: ToolCallRequest): Promise<ToolCallResult>;
|
|
84
|
+
/**
|
|
85
|
+
* Execute with timeout
|
|
86
|
+
*/
|
|
87
|
+
private executeWithTimeout;
|
|
88
|
+
/**
|
|
89
|
+
* Create an error result
|
|
90
|
+
*/
|
|
91
|
+
private createErrorResult;
|
|
92
|
+
/**
|
|
93
|
+
* Check if a tool's results can be cached
|
|
94
|
+
*/
|
|
95
|
+
private isCacheable;
|
|
96
|
+
/**
|
|
97
|
+
* Generate cache key for a tool call
|
|
98
|
+
*/
|
|
99
|
+
private getCacheKey;
|
|
100
|
+
/**
|
|
101
|
+
* Check if a cache entry has expired
|
|
102
|
+
*/
|
|
103
|
+
private isCacheExpired;
|
|
104
|
+
/**
|
|
105
|
+
* Cache a result
|
|
106
|
+
*/
|
|
107
|
+
private cacheResult;
|
|
108
|
+
/**
|
|
109
|
+
* Evict oldest cache entries
|
|
110
|
+
*/
|
|
111
|
+
private evictOldestCacheEntries;
|
|
112
|
+
/**
|
|
113
|
+
* Clear all cache entries
|
|
114
|
+
*/
|
|
115
|
+
clearCache(): void;
|
|
116
|
+
/**
|
|
117
|
+
* Clear expired cache entries
|
|
118
|
+
*/
|
|
119
|
+
clearExpiredCache(): number;
|
|
120
|
+
/**
|
|
121
|
+
* Truncate output if too long
|
|
122
|
+
*
|
|
123
|
+
* PERF: Uses efficient slicing - O(1) for length check, O(n) for truncation only when needed.
|
|
124
|
+
* Binary search not applicable here as we need character boundaries, not search.
|
|
125
|
+
*/
|
|
126
|
+
private truncateOutput;
|
|
127
|
+
/**
|
|
128
|
+
* Add an observer
|
|
129
|
+
*/
|
|
130
|
+
addObserver(observer: ToolRuntimeObserver): void;
|
|
131
|
+
/**
|
|
132
|
+
* Remove an observer
|
|
133
|
+
*/
|
|
134
|
+
removeObserver(observer: ToolRuntimeObserver): boolean;
|
|
135
|
+
/**
|
|
136
|
+
* Notify observers of an event
|
|
137
|
+
*/
|
|
138
|
+
private notifyObservers;
|
|
139
|
+
/**
|
|
140
|
+
* Get tools in provider format
|
|
141
|
+
*/
|
|
142
|
+
listProviderTools(): ProviderToolDefinition[];
|
|
143
|
+
/**
|
|
144
|
+
* Get tools for a specific category
|
|
145
|
+
*/
|
|
146
|
+
getToolsByCategory(category: string): ToolRecord[];
|
|
147
|
+
/**
|
|
148
|
+
* Get execution statistics
|
|
149
|
+
*/
|
|
150
|
+
getStats(): {
|
|
151
|
+
totalCalls: number;
|
|
152
|
+
cacheHits: number;
|
|
153
|
+
cacheHitRate: number;
|
|
154
|
+
errors: number;
|
|
155
|
+
errorRate: number;
|
|
156
|
+
avgExecutionTimeMs: number;
|
|
157
|
+
registeredTools: number;
|
|
158
|
+
cacheSize: number;
|
|
159
|
+
};
|
|
160
|
+
/**
|
|
161
|
+
* Reset statistics
|
|
162
|
+
*/
|
|
163
|
+
resetStats(): void;
|
|
164
|
+
/**
|
|
165
|
+
* Get tool execution counts
|
|
166
|
+
*/
|
|
167
|
+
getToolExecutionCounts(): Map<string, number>;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Create a tool runtime with default configuration
|
|
171
|
+
*/
|
|
172
|
+
export declare function createToolRuntime(config?: Partial<ToolRuntimeConfig>): ToolRuntime;
|
|
173
|
+
/**
|
|
174
|
+
* Create a tool suite from definitions
|
|
175
|
+
*/
|
|
176
|
+
export declare function createToolSuite(name: string, version: string, tools: ToolDefinition[], description?: string): ToolSuite;
|
|
177
|
+
export { validateToolPreconditions };
|
|
178
|
+
export type { PreflightWarning };
|
|
179
|
+
//# sourceMappingURL=toolRuntime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolRuntime.d.ts","sourceRoot":"","sources":["../../../src/core/unified/toolRuntime.ts"],"names":[],"mappings":"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"}
|