agentic-qe 2.6.0 → 2.6.2
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/CHANGELOG.md +156 -0
- package/README.md +222 -159
- package/dist/agents/BaseAgent.d.ts +19 -0
- package/dist/agents/BaseAgent.d.ts.map +1 -1
- package/dist/agents/BaseAgent.js +41 -1
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/agents/CodeIntelligenceAgent.d.ts +14 -0
- package/dist/agents/CodeIntelligenceAgent.d.ts.map +1 -1
- package/dist/agents/CodeIntelligenceAgent.js +66 -0
- package/dist/agents/CodeIntelligenceAgent.js.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.d.ts +8 -0
- package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.js +65 -1
- package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
- package/dist/agents/TestGeneratorAgent.d.ts +2 -2
- package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
- package/dist/agents/TestGeneratorAgent.js +16 -6
- package/dist/agents/TestGeneratorAgent.js.map +1 -1
- package/dist/agents/adapters/AgentLLMAdapter.d.ts +127 -0
- package/dist/agents/adapters/AgentLLMAdapter.d.ts.map +1 -0
- package/dist/agents/adapters/AgentLLMAdapter.js +366 -0
- package/dist/agents/adapters/AgentLLMAdapter.js.map +1 -0
- package/dist/agents/adapters/index.d.ts +1 -0
- package/dist/agents/adapters/index.d.ts.map +1 -1
- package/dist/agents/adapters/index.js +5 -1
- package/dist/agents/adapters/index.js.map +1 -1
- package/dist/agents/interfaces/IAgentLLM.d.ts +257 -0
- package/dist/agents/interfaces/IAgentLLM.d.ts.map +1 -0
- package/dist/agents/interfaces/IAgentLLM.js +39 -0
- package/dist/agents/interfaces/IAgentLLM.js.map +1 -0
- package/dist/agents/interfaces/index.d.ts +10 -0
- package/dist/agents/interfaces/index.d.ts.map +1 -0
- package/dist/agents/interfaces/index.js +14 -0
- package/dist/agents/interfaces/index.js.map +1 -0
- package/dist/agents/n8n/N8nBaseAgent.d.ts +18 -0
- package/dist/agents/n8n/N8nBaseAgent.d.ts.map +1 -1
- package/dist/agents/n8n/N8nBaseAgent.js +80 -0
- package/dist/agents/n8n/N8nBaseAgent.js.map +1 -1
- package/dist/agents/pool/AgentPool.d.ts +112 -0
- package/dist/agents/pool/AgentPool.d.ts.map +1 -0
- package/dist/agents/pool/AgentPool.js +573 -0
- package/dist/agents/pool/AgentPool.js.map +1 -0
- package/dist/agents/pool/QEAgentPoolFactory.d.ts +118 -0
- package/dist/agents/pool/QEAgentPoolFactory.d.ts.map +1 -0
- package/dist/agents/pool/QEAgentPoolFactory.js +251 -0
- package/dist/agents/pool/QEAgentPoolFactory.js.map +1 -0
- package/dist/agents/pool/index.d.ts +34 -0
- package/dist/agents/pool/index.d.ts.map +1 -0
- package/dist/agents/pool/index.js +44 -0
- package/dist/agents/pool/index.js.map +1 -0
- package/dist/agents/pool/types.d.ts +227 -0
- package/dist/agents/pool/types.d.ts.map +1 -0
- package/dist/agents/pool/types.js +28 -0
- package/dist/agents/pool/types.js.map +1 -0
- package/dist/cli/commands/providers.d.ts +50 -0
- package/dist/cli/commands/providers.d.ts.map +1 -0
- package/dist/cli/commands/providers.js +403 -0
- package/dist/cli/commands/providers.js.map +1 -0
- package/dist/cli/index.js +62 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/code-intelligence/indexing/FileWatcher.d.ts.map +1 -1
- package/dist/code-intelligence/indexing/FileWatcher.js +11 -8
- package/dist/code-intelligence/indexing/FileWatcher.js.map +1 -1
- package/dist/config/ConfigLoader.d.ts +85 -0
- package/dist/config/ConfigLoader.d.ts.map +1 -0
- package/dist/config/ConfigLoader.js +420 -0
- package/dist/config/ConfigLoader.js.map +1 -0
- package/dist/config/ProviderConfig.d.ts +153 -0
- package/dist/config/ProviderConfig.d.ts.map +1 -0
- package/dist/config/ProviderConfig.js +155 -0
- package/dist/config/ProviderConfig.js.map +1 -0
- package/dist/config/index.d.ts +35 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +45 -0
- package/dist/config/index.js.map +1 -0
- package/dist/core/memory/HNSWVectorMemory.js +1 -1
- package/dist/mcp/handlers/agent-spawn.d.ts +71 -5
- package/dist/mcp/handlers/agent-spawn.d.ts.map +1 -1
- package/dist/mcp/handlers/agent-spawn.js +336 -110
- package/dist/mcp/handlers/agent-spawn.js.map +1 -1
- package/dist/mcp/handlers/fleet-init.d.ts +24 -0
- package/dist/mcp/handlers/fleet-init.d.ts.map +1 -1
- package/dist/mcp/handlers/fleet-init.js +56 -4
- package/dist/mcp/handlers/fleet-init.js.map +1 -1
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.js +1 -1
- package/dist/mcp/server.d.ts +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/memory/HNSWPatternStore.d.ts.map +1 -1
- package/dist/memory/HNSWPatternStore.js +23 -0
- package/dist/memory/HNSWPatternStore.js.map +1 -1
- package/dist/memory/RuVectorPatternStore.d.ts +5 -0
- package/dist/memory/RuVectorPatternStore.d.ts.map +1 -1
- package/dist/memory/RuVectorPatternStore.js +11 -0
- package/dist/memory/RuVectorPatternStore.js.map +1 -1
- package/dist/plugins/BasePlugin.d.ts +111 -0
- package/dist/plugins/BasePlugin.d.ts.map +1 -0
- package/dist/plugins/BasePlugin.js +154 -0
- package/dist/plugins/BasePlugin.js.map +1 -0
- package/dist/plugins/PluginManager.d.ts +145 -0
- package/dist/plugins/PluginManager.d.ts.map +1 -0
- package/dist/plugins/PluginManager.js +862 -0
- package/dist/plugins/PluginManager.js.map +1 -0
- package/dist/plugins/adapters/McpToolsPlugin.d.ts +98 -0
- package/dist/plugins/adapters/McpToolsPlugin.d.ts.map +1 -0
- package/dist/plugins/adapters/McpToolsPlugin.js +518 -0
- package/dist/plugins/adapters/McpToolsPlugin.js.map +1 -0
- package/dist/plugins/adapters/PlaywrightPlugin.d.ts +63 -0
- package/dist/plugins/adapters/PlaywrightPlugin.d.ts.map +1 -0
- package/dist/plugins/adapters/PlaywrightPlugin.js +451 -0
- package/dist/plugins/adapters/PlaywrightPlugin.js.map +1 -0
- package/dist/plugins/adapters/VitestPlugin.d.ts +74 -0
- package/dist/plugins/adapters/VitestPlugin.d.ts.map +1 -0
- package/dist/plugins/adapters/VitestPlugin.js +589 -0
- package/dist/plugins/adapters/VitestPlugin.js.map +1 -0
- package/dist/plugins/adapters/index.d.ts +8 -0
- package/dist/plugins/adapters/index.d.ts.map +1 -0
- package/dist/plugins/adapters/index.js +17 -0
- package/dist/plugins/adapters/index.js.map +1 -0
- package/dist/plugins/index.d.ts +32 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +48 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/types.d.ts +528 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +61 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/providers/CostOptimizationStrategies.d.ts +297 -0
- package/dist/providers/CostOptimizationStrategies.d.ts.map +1 -0
- package/dist/providers/CostOptimizationStrategies.js +831 -0
- package/dist/providers/CostOptimizationStrategies.js.map +1 -0
- package/dist/providers/HybridRouter.d.ts +142 -5
- package/dist/providers/HybridRouter.d.ts.map +1 -1
- package/dist/providers/HybridRouter.js +472 -6
- package/dist/providers/HybridRouter.js.map +1 -1
- package/dist/providers/HybridRouterComplexityIntegration.d.ts +169 -0
- package/dist/providers/HybridRouterComplexityIntegration.d.ts.map +1 -0
- package/dist/providers/HybridRouterComplexityIntegration.js +319 -0
- package/dist/providers/HybridRouterComplexityIntegration.js.map +1 -0
- package/dist/providers/HybridRouterModelSelection.d.ts +106 -0
- package/dist/providers/HybridRouterModelSelection.d.ts.map +1 -0
- package/dist/providers/HybridRouterModelSelection.js +420 -0
- package/dist/providers/HybridRouterModelSelection.js.map +1 -0
- package/dist/providers/LLMProviderFactory.d.ts +23 -9
- package/dist/providers/LLMProviderFactory.d.ts.map +1 -1
- package/dist/providers/LLMProviderFactory.js +54 -11
- package/dist/providers/LLMProviderFactory.js.map +1 -1
- package/dist/providers/OllamaProvider.d.ts +122 -0
- package/dist/providers/OllamaProvider.d.ts.map +1 -0
- package/dist/providers/OllamaProvider.js +425 -0
- package/dist/providers/OllamaProvider.js.map +1 -0
- package/dist/providers/index.d.ts +6 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +17 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/routing/ComplexityClassifier.d.ts +266 -0
- package/dist/routing/ComplexityClassifier.d.ts.map +1 -0
- package/dist/routing/ComplexityClassifier.js +567 -0
- package/dist/routing/ComplexityClassifier.js.map +1 -0
- package/dist/routing/ModelCapabilityRegistry.d.ts +98 -0
- package/dist/routing/ModelCapabilityRegistry.d.ts.map +1 -0
- package/dist/routing/ModelCapabilityRegistry.js +216 -0
- package/dist/routing/ModelCapabilityRegistry.js.map +1 -0
- package/dist/routing/index.d.ts +13 -0
- package/dist/routing/index.d.ts.map +1 -0
- package/dist/routing/index.js +24 -0
- package/dist/routing/index.js.map +1 -0
- package/docs/reference/model-capability-registry.md +402 -0
- package/docs/reference/provider-config-schema.md +608 -0
- package/package.json +21 -3
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Base Plugin Class
|
|
4
|
+
* Phase 3 B2: Extensible Test Framework Adapters
|
|
5
|
+
*
|
|
6
|
+
* Provides a base implementation for plugins with common functionality.
|
|
7
|
+
* Extend this class to create custom plugins more easily.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.BasePlugin = void 0;
|
|
11
|
+
exports.createPluginMetadata = createPluginMetadata;
|
|
12
|
+
/**
|
|
13
|
+
* Base plugin implementation with common functionality
|
|
14
|
+
*/
|
|
15
|
+
class BasePlugin {
|
|
16
|
+
constructor() {
|
|
17
|
+
this._healthy = true;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Called when plugin is loaded
|
|
21
|
+
*/
|
|
22
|
+
onLoad(context) {
|
|
23
|
+
this.context = context;
|
|
24
|
+
this.log('debug', 'Plugin loaded');
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Called when plugin is activated
|
|
28
|
+
* Override in subclass for custom activation logic
|
|
29
|
+
*/
|
|
30
|
+
async onActivate(context) {
|
|
31
|
+
this.context = context;
|
|
32
|
+
this.log('info', 'Plugin activated');
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Called when plugin is deactivated
|
|
36
|
+
* Override in subclass for custom deactivation logic
|
|
37
|
+
*/
|
|
38
|
+
async onDeactivate(_context) {
|
|
39
|
+
this.log('info', 'Plugin deactivated');
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Called when plugin is unloaded
|
|
43
|
+
*/
|
|
44
|
+
onUnload(_context) {
|
|
45
|
+
this.context = undefined;
|
|
46
|
+
this.log('debug', 'Plugin unloaded');
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Called when configuration changes
|
|
50
|
+
*/
|
|
51
|
+
onConfigChange(_context, changes) {
|
|
52
|
+
this.log('debug', 'Config changed', changes);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Health check - returns true if plugin is healthy
|
|
56
|
+
*/
|
|
57
|
+
async healthCheck() {
|
|
58
|
+
return this._healthy;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Mark plugin as unhealthy
|
|
62
|
+
*/
|
|
63
|
+
setUnhealthy() {
|
|
64
|
+
this._healthy = false;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Mark plugin as healthy
|
|
68
|
+
*/
|
|
69
|
+
setHealthy() {
|
|
70
|
+
this._healthy = true;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Log a message using the plugin's logger
|
|
74
|
+
*/
|
|
75
|
+
log(level, message, ...args) {
|
|
76
|
+
if (this.context?.logger) {
|
|
77
|
+
this.context.logger[level](message, ...args);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
console[level](`[${this.metadata.id}] ${message}`, ...args);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Get configuration value
|
|
85
|
+
*/
|
|
86
|
+
getConfig(key, defaultValue) {
|
|
87
|
+
return this.context?.config.get(key, defaultValue);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Set configuration value
|
|
91
|
+
*/
|
|
92
|
+
setConfig(key, value) {
|
|
93
|
+
this.context?.config.set(key, value);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Emit an event
|
|
97
|
+
*/
|
|
98
|
+
emit(event, data) {
|
|
99
|
+
this.context?.events.emit(event, data);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Listen for an event
|
|
103
|
+
*/
|
|
104
|
+
on(event, handler) {
|
|
105
|
+
return this.context?.events.on(event, handler) ?? (() => { });
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Get persistent storage value
|
|
109
|
+
*/
|
|
110
|
+
async getStoredValue(key) {
|
|
111
|
+
return this.context?.storage.get(key);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Set persistent storage value
|
|
115
|
+
*/
|
|
116
|
+
async setStoredValue(key, value) {
|
|
117
|
+
await this.context?.storage.set(key, value);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Get another plugin
|
|
121
|
+
*/
|
|
122
|
+
getPlugin(id) {
|
|
123
|
+
return this.context?.pluginManager.getPlugin(id);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Register a service for other plugins to use
|
|
127
|
+
*/
|
|
128
|
+
registerService(name, service) {
|
|
129
|
+
this.context?.pluginManager.registerService(name, service);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Get a registered service
|
|
133
|
+
*/
|
|
134
|
+
getService(name) {
|
|
135
|
+
return this.context?.pluginManager.getService(name);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
exports.BasePlugin = BasePlugin;
|
|
139
|
+
/**
|
|
140
|
+
* Helper to create plugin metadata
|
|
141
|
+
*/
|
|
142
|
+
function createPluginMetadata(options) {
|
|
143
|
+
return {
|
|
144
|
+
id: options.id,
|
|
145
|
+
name: options.name,
|
|
146
|
+
version: options.version,
|
|
147
|
+
description: options.description,
|
|
148
|
+
author: options.author,
|
|
149
|
+
category: options.category,
|
|
150
|
+
minAgenticQEVersion: options.minAgenticQEVersion || '2.0.0',
|
|
151
|
+
dependencies: options.dependencies,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=BasePlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BasePlugin.js","sourceRoot":"","sources":["../../src/plugins/BasePlugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin Manager Implementation
|
|
3
|
+
* Phase 3 B2: Extensible Test Framework Adapters
|
|
4
|
+
*
|
|
5
|
+
* Handles plugin lifecycle:
|
|
6
|
+
* - Discovery and registration
|
|
7
|
+
* - Loading with lazy/eager strategies
|
|
8
|
+
* - Activation and deactivation
|
|
9
|
+
* - Hot-reload for development
|
|
10
|
+
* - Dependency resolution
|
|
11
|
+
* - Error isolation
|
|
12
|
+
*/
|
|
13
|
+
import { EventEmitter } from 'events';
|
|
14
|
+
import { Plugin, PluginState, PluginCategory, PluginManagerConfig, PluginDiscoveryResult } from './types';
|
|
15
|
+
/**
|
|
16
|
+
* Plugin Manager - Central hub for plugin lifecycle management
|
|
17
|
+
*/
|
|
18
|
+
export declare class PluginManager extends EventEmitter {
|
|
19
|
+
private readonly config;
|
|
20
|
+
private readonly plugins;
|
|
21
|
+
private readonly services;
|
|
22
|
+
private readonly pluginStorage;
|
|
23
|
+
private initialized;
|
|
24
|
+
private fileWatchers;
|
|
25
|
+
private pluginPathMap;
|
|
26
|
+
constructor(config?: Partial<PluginManagerConfig>);
|
|
27
|
+
/**
|
|
28
|
+
* Initialize the plugin manager
|
|
29
|
+
*/
|
|
30
|
+
initialize(): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Discover plugins in configured directories
|
|
33
|
+
* This method actually loads plugins from disk using dynamic import
|
|
34
|
+
*/
|
|
35
|
+
discoverPlugins(): Promise<PluginDiscoveryResult>;
|
|
36
|
+
/**
|
|
37
|
+
* Register a plugin programmatically
|
|
38
|
+
*/
|
|
39
|
+
registerPlugin(plugin: Plugin): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Load a plugin by ID
|
|
42
|
+
*/
|
|
43
|
+
loadPlugin(pluginId: string): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Activate a plugin
|
|
46
|
+
*/
|
|
47
|
+
activatePlugin(pluginId: string): Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* Deactivate a plugin
|
|
50
|
+
*/
|
|
51
|
+
deactivatePlugin(pluginId: string): Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* Unload a plugin
|
|
54
|
+
*/
|
|
55
|
+
unloadPlugin(pluginId: string): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Activate all loaded plugins
|
|
58
|
+
*/
|
|
59
|
+
activateAll(): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Deactivate all plugins
|
|
62
|
+
*/
|
|
63
|
+
deactivateAll(): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* Get a plugin by ID
|
|
66
|
+
*/
|
|
67
|
+
getPlugin<T extends Plugin = Plugin>(pluginId: string): T | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* Check if plugin exists
|
|
70
|
+
*/
|
|
71
|
+
hasPlugin(pluginId: string): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Get plugins by category
|
|
74
|
+
*/
|
|
75
|
+
getPluginsByCategory(category: PluginCategory): Plugin[];
|
|
76
|
+
/**
|
|
77
|
+
* Get all active plugins
|
|
78
|
+
*/
|
|
79
|
+
getActivePlugins(): Plugin[];
|
|
80
|
+
/**
|
|
81
|
+
* Get all registered plugins
|
|
82
|
+
*/
|
|
83
|
+
getAllPlugins(): Plugin[];
|
|
84
|
+
/**
|
|
85
|
+
* Check if plugin manager is initialized
|
|
86
|
+
*/
|
|
87
|
+
isInitialized(): boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Get plugin state
|
|
90
|
+
*/
|
|
91
|
+
getPluginState(pluginId: string): PluginState | undefined;
|
|
92
|
+
/**
|
|
93
|
+
* Register a service
|
|
94
|
+
*/
|
|
95
|
+
registerService<T>(name: string, service: T): void;
|
|
96
|
+
/**
|
|
97
|
+
* Get a service
|
|
98
|
+
*/
|
|
99
|
+
getService<T>(name: string): T | undefined;
|
|
100
|
+
/**
|
|
101
|
+
* Shutdown the plugin manager
|
|
102
|
+
*/
|
|
103
|
+
shutdown(): Promise<void>;
|
|
104
|
+
private extractMetadata;
|
|
105
|
+
private isCompatible;
|
|
106
|
+
private resolveDependencies;
|
|
107
|
+
private createPluginContext;
|
|
108
|
+
private createPluginManagerAPI;
|
|
109
|
+
private createPluginLogger;
|
|
110
|
+
private createPluginConfigStore;
|
|
111
|
+
private createPluginEventBus;
|
|
112
|
+
private createPluginStorage;
|
|
113
|
+
private setupHotReload;
|
|
114
|
+
/**
|
|
115
|
+
* Reload a plugin (deactivate, unload, rediscover, load, reactivate)
|
|
116
|
+
*/
|
|
117
|
+
reloadPlugin(pluginId: string): Promise<void>;
|
|
118
|
+
/**
|
|
119
|
+
* Get plugin ID from a file path within plugin directories
|
|
120
|
+
*/
|
|
121
|
+
private getPluginIdFromPath;
|
|
122
|
+
/**
|
|
123
|
+
* Get the filesystem path for a plugin
|
|
124
|
+
*/
|
|
125
|
+
private getPluginPath;
|
|
126
|
+
/**
|
|
127
|
+
* Load a plugin from a filesystem path
|
|
128
|
+
*/
|
|
129
|
+
private loadPluginFromPath;
|
|
130
|
+
/**
|
|
131
|
+
* Clear require cache for a module and its dependencies
|
|
132
|
+
*/
|
|
133
|
+
private clearRequireCache;
|
|
134
|
+
private withTimeout;
|
|
135
|
+
private log;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Get or create the global plugin manager instance
|
|
139
|
+
*/
|
|
140
|
+
export declare function getPluginManager(config?: Partial<PluginManagerConfig>): PluginManager;
|
|
141
|
+
/**
|
|
142
|
+
* Reset the global plugin manager (for testing)
|
|
143
|
+
*/
|
|
144
|
+
export declare function resetPluginManager(): Promise<void>;
|
|
145
|
+
//# sourceMappingURL=PluginManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../src/plugins/PluginManager.ts"],"names":[],"mappings":"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"}
|