@trenchwork/erosolar 1.1.62 → 1.2.0
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/dist/capabilities/todoCapability.js +2 -2
- package/dist/capabilities/todoCapability.js.map +1 -1
- package/dist/config.js +1 -1
- package/dist/contracts/v1/agent.d.ts +12 -2
- package/dist/contracts/v1/agent.d.ts.map +1 -1
- package/dist/core/adversarialCorrection.d.ts +22 -0
- package/dist/core/adversarialCorrection.d.ts.map +1 -0
- package/dist/core/adversarialCorrection.js +25 -0
- package/dist/core/adversarialCorrection.js.map +1 -0
- package/dist/core/agent.d.ts +2 -0
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +11 -45
- package/dist/core/agent.js.map +1 -1
- package/dist/core/contextManager.d.ts.map +1 -1
- package/dist/core/contextManager.js +5 -2
- package/dist/core/contextManager.js.map +1 -1
- package/dist/core/errorClassification.d.ts +44 -0
- package/dist/core/errorClassification.d.ts.map +1 -0
- package/dist/core/errorClassification.js +333 -0
- package/dist/core/errorClassification.js.map +1 -0
- package/dist/core/failureRegistry.d.ts +30 -0
- package/dist/core/failureRegistry.d.ts.map +1 -0
- package/dist/core/failureRegistry.js +74 -0
- package/dist/core/failureRegistry.js.map +1 -0
- package/dist/core/hitl.d.ts.map +1 -1
- package/dist/core/hitl.js +8 -0
- package/dist/core/hitl.js.map +1 -1
- package/dist/core/hostedAuth.d.ts +88 -0
- package/dist/core/hostedAuth.d.ts.map +1 -0
- package/dist/core/hostedAuth.js +219 -0
- package/dist/core/hostedAuth.js.map +1 -0
- package/dist/core/quota.d.ts +61 -0
- package/dist/core/quota.d.ts.map +1 -0
- package/dist/core/quota.js +104 -0
- package/dist/core/quota.js.map +1 -0
- package/dist/core/quotaErrors.d.ts.map +1 -1
- package/dist/core/quotaErrors.js +3 -5
- package/dist/core/quotaErrors.js.map +1 -1
- package/dist/core/resultVerification.d.ts +3 -2
- package/dist/core/resultVerification.d.ts.map +1 -1
- package/dist/core/resultVerification.js +3 -2
- package/dist/core/resultVerification.js.map +1 -1
- package/dist/core/secretStore.d.ts +11 -0
- package/dist/core/secretStore.d.ts.map +1 -1
- package/dist/core/secretStore.js +25 -0
- package/dist/core/secretStore.js.map +1 -1
- package/dist/core/slashCommands.d.ts.map +1 -1
- package/dist/core/slashCommands.js +4 -0
- package/dist/core/slashCommands.js.map +1 -1
- package/dist/core/thinkingVerbs.d.ts +31 -0
- package/dist/core/thinkingVerbs.d.ts.map +1 -0
- package/dist/core/thinkingVerbs.js +58 -0
- package/dist/core/thinkingVerbs.js.map +1 -0
- package/dist/core/turnGovernor.d.ts +63 -0
- package/dist/core/turnGovernor.d.ts.map +1 -0
- package/dist/core/turnGovernor.js +94 -0
- package/dist/core/turnGovernor.js.map +1 -0
- package/dist/core/updateChecker.d.ts.map +1 -1
- package/dist/core/updateChecker.js +5 -1
- package/dist/core/updateChecker.js.map +1 -1
- package/dist/core/usage.d.ts +28 -0
- package/dist/core/usage.d.ts.map +1 -0
- package/dist/core/usage.js +77 -0
- package/dist/core/usage.js.map +1 -0
- package/dist/headless/interactiveShell.d.ts +6 -0
- package/dist/headless/interactiveShell.d.ts.map +1 -1
- package/dist/headless/interactiveShell.js +262 -42
- package/dist/headless/interactiveShell.js.map +1 -1
- package/dist/plugins/providers/deepseek/index.d.ts.map +1 -1
- package/dist/plugins/providers/deepseek/index.js +8 -5
- package/dist/plugins/providers/deepseek/index.js.map +1 -1
- package/dist/providers/baseProvider.d.ts +5 -13
- package/dist/providers/baseProvider.d.ts.map +1 -1
- package/dist/providers/baseProvider.js +12 -66
- package/dist/providers/baseProvider.js.map +1 -1
- package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -1
- package/dist/providers/openaiChatCompletionsProvider.js +27 -76
- package/dist/providers/openaiChatCompletionsProvider.js.map +1 -1
- package/dist/providers/resilientProvider.d.ts +2 -9
- package/dist/providers/resilientProvider.d.ts.map +1 -1
- package/dist/providers/resilientProvider.js +13 -199
- package/dist/providers/resilientProvider.js.map +1 -1
- package/dist/runtime/agentController.d.ts.map +1 -1
- package/dist/runtime/agentController.js +7 -0
- package/dist/runtime/agentController.js.map +1 -1
- package/dist/shell/toolPresentation.d.ts +7 -0
- package/dist/shell/toolPresentation.d.ts.map +1 -1
- package/dist/shell/toolPresentation.js +78 -4
- package/dist/shell/toolPresentation.js.map +1 -1
- package/dist/tools/bashTools.d.ts.map +1 -1
- package/dist/tools/bashTools.js +9 -3
- package/dist/tools/bashTools.js.map +1 -1
- package/dist/tools/grepTools.d.ts.map +1 -1
- package/dist/tools/grepTools.js +10 -1
- package/dist/tools/grepTools.js.map +1 -1
- package/dist/tools/memoryTools.d.ts +7 -0
- package/dist/tools/memoryTools.d.ts.map +1 -1
- package/dist/tools/memoryTools.js +17 -0
- package/dist/tools/memoryTools.js.map +1 -1
- package/dist/tools/searchTools.d.ts.map +1 -1
- package/dist/tools/searchTools.js +5 -4
- package/dist/tools/searchTools.js.map +1 -1
- package/dist/tools/todoTools.d.ts +3 -4
- package/dist/tools/todoTools.d.ts.map +1 -1
- package/dist/tools/todoTools.js +23 -4
- package/dist/tools/todoTools.js.map +1 -1
- package/dist/tools/webTools.d.ts.map +1 -1
- package/dist/tools/webTools.js +3 -1
- package/dist/tools/webTools.js.map +1 -1
- package/dist/ui/ink/ChatStatic.d.ts.map +1 -1
- package/dist/ui/ink/ChatStatic.js +21 -5
- package/dist/ui/ink/ChatStatic.js.map +1 -1
- package/dist/ui/ink/InkPromptController.d.ts +5 -0
- package/dist/ui/ink/InkPromptController.d.ts.map +1 -1
- package/dist/ui/ink/InkPromptController.js +16 -6
- package/dist/ui/ink/InkPromptController.js.map +1 -1
- package/dist/ui/ink/Prompt.d.ts +6 -0
- package/dist/ui/ink/Prompt.d.ts.map +1 -1
- package/dist/ui/ink/Prompt.js +69 -10
- package/dist/ui/ink/Prompt.js.map +1 -1
- package/dist/ui/ink/StatusLine.d.ts +6 -0
- package/dist/ui/ink/StatusLine.d.ts.map +1 -1
- package/dist/ui/ink/StatusLine.js +17 -3
- package/dist/ui/ink/StatusLine.js.map +1 -1
- package/dist/ui/ink/pasteBuffer.d.ts +44 -0
- package/dist/ui/ink/pasteBuffer.d.ts.map +1 -0
- package/dist/ui/ink/pasteBuffer.js +73 -0
- package/dist/ui/ink/pasteBuffer.js.map +1 -0
- package/package.json +1 -1
- package/dist/core/index.d.ts +0 -7
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -7
- package/dist/core/index.js.map +0 -1
- package/dist/core/providerKeys.d.ts +0 -20
- package/dist/core/providerKeys.d.ts.map +0 -1
- package/dist/core/providerKeys.js +0 -40
- package/dist/core/providerKeys.js.map +0 -1
- package/dist/plugins/index.d.ts +0 -49
- package/dist/plugins/index.d.ts.map +0 -1
- package/dist/plugins/index.js +0 -104
- package/dist/plugins/index.js.map +0 -1
- package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts +0 -10
- package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js +0 -110
- package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js.map +0 -1
- package/dist/plugins/tools/bash/localBashPlugin.d.ts +0 -3
- package/dist/plugins/tools/bash/localBashPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/bash/localBashPlugin.js +0 -14
- package/dist/plugins/tools/bash/localBashPlugin.js.map +0 -1
- package/dist/plugins/tools/edit/editPlugin.d.ts +0 -9
- package/dist/plugins/tools/edit/editPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/edit/editPlugin.js +0 -15
- package/dist/plugins/tools/edit/editPlugin.js.map +0 -1
- package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts +0 -3
- package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js +0 -9
- package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js.map +0 -1
- package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts +0 -3
- package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/filesystem/localFilesystemPlugin.js +0 -14
- package/dist/plugins/tools/filesystem/localFilesystemPlugin.js.map +0 -1
- package/dist/plugins/tools/gitHistory/gitHistoryPlugin.d.ts +0 -3
- package/dist/plugins/tools/gitHistory/gitHistoryPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/gitHistory/gitHistoryPlugin.js +0 -9
- package/dist/plugins/tools/gitHistory/gitHistoryPlugin.js.map +0 -1
- package/dist/plugins/tools/index.d.ts +0 -3
- package/dist/plugins/tools/index.d.ts.map +0 -1
- package/dist/plugins/tools/index.js +0 -3
- package/dist/plugins/tools/index.js.map +0 -1
- package/dist/plugins/tools/integrity/integrityPlugin.d.ts +0 -3
- package/dist/plugins/tools/integrity/integrityPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/integrity/integrityPlugin.js +0 -31
- package/dist/plugins/tools/integrity/integrityPlugin.js.map +0 -1
- package/dist/plugins/tools/mcp/mcpPlugin.d.ts +0 -3
- package/dist/plugins/tools/mcp/mcpPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/mcp/mcpPlugin.js +0 -27
- package/dist/plugins/tools/mcp/mcpPlugin.js.map +0 -1
- package/dist/plugins/tools/nodeDefaults.d.ts +0 -13
- package/dist/plugins/tools/nodeDefaults.d.ts.map +0 -1
- package/dist/plugins/tools/nodeDefaults.js +0 -33
- package/dist/plugins/tools/nodeDefaults.js.map +0 -1
- package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts +0 -3
- package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/orchestration/orchestrationPlugin.js +0 -340
- package/dist/plugins/tools/orchestration/orchestrationPlugin.js.map +0 -1
- package/dist/plugins/tools/registry.d.ts +0 -22
- package/dist/plugins/tools/registry.d.ts.map +0 -1
- package/dist/plugins/tools/registry.js +0 -58
- package/dist/plugins/tools/registry.js.map +0 -1
- package/dist/plugins/tools/search/localSearchPlugin.d.ts +0 -3
- package/dist/plugins/tools/search/localSearchPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/search/localSearchPlugin.js +0 -14
- package/dist/plugins/tools/search/localSearchPlugin.js.map +0 -1
- package/dist/plugins/tools/skills/skillPlugin.d.ts +0 -3
- package/dist/plugins/tools/skills/skillPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/skills/skillPlugin.js +0 -27
- package/dist/plugins/tools/skills/skillPlugin.js.map +0 -1
- package/dist/plugins/tools/todo/todoPlugin.d.ts +0 -3
- package/dist/plugins/tools/todo/todoPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/todo/todoPlugin.js +0 -10
- package/dist/plugins/tools/todo/todoPlugin.js.map +0 -1
- package/dist/runtime/agentWorkerPool.d.ts +0 -167
- package/dist/runtime/agentWorkerPool.d.ts.map +0 -1
- package/dist/runtime/agentWorkerPool.js +0 -435
- package/dist/runtime/agentWorkerPool.js.map +0 -1
- package/dist/shell/autoExecutor.d.ts +0 -70
- package/dist/shell/autoExecutor.d.ts.map +0 -1
- package/dist/shell/autoExecutor.js +0 -320
- package/dist/shell/autoExecutor.js.map +0 -1
- package/dist/shell/commandRegistry.d.ts +0 -122
- package/dist/shell/commandRegistry.d.ts.map +0 -1
- package/dist/shell/commandRegistry.js +0 -355
- package/dist/shell/commandRegistry.js.map +0 -1
- package/dist/shell/composableMessage.d.ts +0 -178
- package/dist/shell/composableMessage.d.ts.map +0 -1
- package/dist/shell/composableMessage.js +0 -384
- package/dist/shell/composableMessage.js.map +0 -1
- package/dist/shell/vimMode.d.ts +0 -66
- package/dist/shell/vimMode.d.ts.map +0 -1
- package/dist/shell/vimMode.js +0 -435
- package/dist/shell/vimMode.js.map +0 -1
- package/dist/tools/localExplore.d.ts +0 -38
- package/dist/tools/localExplore.d.ts.map +0 -1
- package/dist/tools/localExplore.js +0 -30
- package/dist/tools/localExplore.js.map +0 -1
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Auto-executor for validation gaps, recommendations, and follow-ups
|
|
3
|
-
*
|
|
4
|
-
* This module parses assistant responses and automatically executes:
|
|
5
|
-
* - Validation gaps (e.g., npm install if tests fail)
|
|
6
|
-
* - Recommendations (e.g., remove unnecessary files)
|
|
7
|
-
* - Follow-up tasks (e.g., git status)
|
|
8
|
-
*/
|
|
9
|
-
export interface ValidationGap {
|
|
10
|
-
type: 'validation_gap';
|
|
11
|
-
description: string;
|
|
12
|
-
command: string;
|
|
13
|
-
autoExecutable: boolean;
|
|
14
|
-
}
|
|
15
|
-
export interface Recommendation {
|
|
16
|
-
type: 'recommendation';
|
|
17
|
-
description: string;
|
|
18
|
-
action: 'remove_file' | 'remove_dir' | 'run_command';
|
|
19
|
-
target?: string;
|
|
20
|
-
command?: string;
|
|
21
|
-
requiresConfirmation: boolean;
|
|
22
|
-
}
|
|
23
|
-
export interface FollowUp {
|
|
24
|
-
type: 'follow_up';
|
|
25
|
-
description: string;
|
|
26
|
-
command: string;
|
|
27
|
-
autoExecutable: boolean;
|
|
28
|
-
}
|
|
29
|
-
export type AutoExecutableAction = ValidationGap | Recommendation | FollowUp;
|
|
30
|
-
export interface ParsedActions {
|
|
31
|
-
validationGaps: ValidationGap[];
|
|
32
|
-
recommendations: Recommendation[];
|
|
33
|
-
followUps: FollowUp[];
|
|
34
|
-
}
|
|
35
|
-
export interface ExecutionResult {
|
|
36
|
-
success: boolean;
|
|
37
|
-
output: string;
|
|
38
|
-
error?: string;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Parse assistant response for structured actions
|
|
42
|
-
*/
|
|
43
|
-
export declare function parseAssistantResponse(response: string): ParsedActions;
|
|
44
|
-
/**
|
|
45
|
-
* Execute a validation gap
|
|
46
|
-
*/
|
|
47
|
-
export declare function executeValidationGap(gap: ValidationGap, workingDir: string): Promise<ExecutionResult>;
|
|
48
|
-
/**
|
|
49
|
-
* Execute a recommendation
|
|
50
|
-
*/
|
|
51
|
-
export declare function executeRecommendation(recommendation: Recommendation, workingDir: string): Promise<ExecutionResult>;
|
|
52
|
-
/**
|
|
53
|
-
* Execute a follow-up task
|
|
54
|
-
*/
|
|
55
|
-
export declare function executeFollowUp(followUp: FollowUp, workingDir: string): Promise<ExecutionResult>;
|
|
56
|
-
/**
|
|
57
|
-
* Execute all auto-executable actions
|
|
58
|
-
*/
|
|
59
|
-
export declare function executeAutoActions(actions: ParsedActions, workingDir: string, options?: {
|
|
60
|
-
skipConfirmation?: boolean;
|
|
61
|
-
}): Promise<{
|
|
62
|
-
executed: number;
|
|
63
|
-
failed: number;
|
|
64
|
-
results: Array<{
|
|
65
|
-
type: string;
|
|
66
|
-
description: string;
|
|
67
|
-
result: ExecutionResult;
|
|
68
|
-
}>;
|
|
69
|
-
}>;
|
|
70
|
-
//# sourceMappingURL=autoExecutor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"autoExecutor.d.ts","sourceRoot":"","sources":["../../src/shell/autoExecutor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,gBAAgB,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,gBAAgB,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,GAAG,YAAY,GAAG,aAAa,CAAC;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG,cAAc,GAAG,QAAQ,CAAC;AAE7E,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAyEtE;AA6GD;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,aAAa,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC,CAoB1B;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC,CAqD1B;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC,CAoB1B;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,aAAa,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC3C,OAAO,CAAC;IACT,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;CAChF,CAAC,CAoCD"}
|
|
@@ -1,320 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Auto-executor for validation gaps, recommendations, and follow-ups
|
|
3
|
-
*
|
|
4
|
-
* This module parses assistant responses and automatically executes:
|
|
5
|
-
* - Validation gaps (e.g., npm install if tests fail)
|
|
6
|
-
* - Recommendations (e.g., remove unnecessary files)
|
|
7
|
-
* - Follow-up tasks (e.g., git status)
|
|
8
|
-
*/
|
|
9
|
-
import { exec } from 'node:child_process';
|
|
10
|
-
import { promisify } from 'node:util';
|
|
11
|
-
import { unlink, rm } from 'node:fs/promises';
|
|
12
|
-
const execAsync = promisify(exec);
|
|
13
|
-
/**
|
|
14
|
-
* Parse assistant response for structured actions
|
|
15
|
-
*/
|
|
16
|
-
export function parseAssistantResponse(response) {
|
|
17
|
-
const validationGaps = [];
|
|
18
|
-
const recommendations = [];
|
|
19
|
-
const followUps = [];
|
|
20
|
-
// Parse validation gaps
|
|
21
|
-
const validationGapPattern = /Validation Gap:?\s*(.+?)(?:\n|$)/gi;
|
|
22
|
-
let match;
|
|
23
|
-
while ((match = validationGapPattern.exec(response)) !== null) {
|
|
24
|
-
const description = match[1]?.trim();
|
|
25
|
-
if (description) {
|
|
26
|
-
const command = extractCommand(description);
|
|
27
|
-
if (command) {
|
|
28
|
-
validationGaps.push({
|
|
29
|
-
type: 'validation_gap',
|
|
30
|
-
description,
|
|
31
|
-
command,
|
|
32
|
-
autoExecutable: isAutoExecutable(command),
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
// Parse common validation gap patterns
|
|
38
|
-
if (response.includes('npm install') && response.includes('dependencies')) {
|
|
39
|
-
validationGaps.push({
|
|
40
|
-
type: 'validation_gap',
|
|
41
|
-
description: 'Install dependencies to run tests',
|
|
42
|
-
command: 'npm install',
|
|
43
|
-
autoExecutable: true,
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
// Parse recommendations
|
|
47
|
-
const recommendationPattern = /Recommend(?:ation)?s?:?\s*(.+?)(?:\n|$)/gi;
|
|
48
|
-
while ((match = recommendationPattern.exec(response)) !== null) {
|
|
49
|
-
const description = match[1]?.trim();
|
|
50
|
-
if (description) {
|
|
51
|
-
const action = parseRecommendationAction(description);
|
|
52
|
-
if (action) {
|
|
53
|
-
recommendations.push(action);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
// Parse follow-ups
|
|
58
|
-
const followUpPattern = /Follow[- ]?[Uu]ps?:?\s*(.+?)(?:\n|$)/gi;
|
|
59
|
-
while ((match = followUpPattern.exec(response)) !== null) {
|
|
60
|
-
const description = match[1]?.trim();
|
|
61
|
-
if (description) {
|
|
62
|
-
const command = extractCommand(description);
|
|
63
|
-
if (command) {
|
|
64
|
-
followUps.push({
|
|
65
|
-
type: 'follow_up',
|
|
66
|
-
description,
|
|
67
|
-
command,
|
|
68
|
-
autoExecutable: isAutoExecutable(command),
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
// Parse common follow-up patterns
|
|
74
|
-
if (response.match(/run\s+`?git status`?/i)) {
|
|
75
|
-
followUps.push({
|
|
76
|
-
type: 'follow_up',
|
|
77
|
-
description: 'Check git status for untracked files',
|
|
78
|
-
command: 'git status',
|
|
79
|
-
autoExecutable: true,
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
return { validationGaps, recommendations, followUps };
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Extract command from description text
|
|
86
|
-
*/
|
|
87
|
-
function extractCommand(text) {
|
|
88
|
-
// Look for commands in backticks or quotes
|
|
89
|
-
const backtickMatch = text.match(/`([^`]+)`/);
|
|
90
|
-
if (backtickMatch && backtickMatch[1]) {
|
|
91
|
-
return backtickMatch[1];
|
|
92
|
-
}
|
|
93
|
-
// Look for npm commands
|
|
94
|
-
const npmMatch = text.match(/npm\s+(?:run\s+)?[\w:-]+/);
|
|
95
|
-
if (npmMatch) {
|
|
96
|
-
return npmMatch[0];
|
|
97
|
-
}
|
|
98
|
-
// Look for git commands
|
|
99
|
-
const gitMatch = text.match(/git\s+[\w-]+(?:\s+[^\s]+)*/);
|
|
100
|
-
if (gitMatch) {
|
|
101
|
-
return gitMatch[0];
|
|
102
|
-
}
|
|
103
|
-
return null;
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Parse recommendation action from description
|
|
107
|
-
*/
|
|
108
|
-
function parseRecommendationAction(description) {
|
|
109
|
-
// Check for file/directory removal
|
|
110
|
-
if (description.match(/remove|delete/i)) {
|
|
111
|
-
const pathMatch = description.match(/[./][\w/.-]+/);
|
|
112
|
-
if (pathMatch) {
|
|
113
|
-
const target = pathMatch[0];
|
|
114
|
-
return {
|
|
115
|
-
type: 'recommendation',
|
|
116
|
-
description,
|
|
117
|
-
action: target.includes('.') ? 'remove_file' : 'remove_dir',
|
|
118
|
-
target,
|
|
119
|
-
requiresConfirmation: true,
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
// Check for command execution
|
|
124
|
-
const command = extractCommand(description);
|
|
125
|
-
if (command) {
|
|
126
|
-
return {
|
|
127
|
-
type: 'recommendation',
|
|
128
|
-
description,
|
|
129
|
-
action: 'run_command',
|
|
130
|
-
command,
|
|
131
|
-
requiresConfirmation: !isAutoExecutable(command),
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
return null;
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Check if command is safe to auto-execute.
|
|
138
|
-
* Safe commands are: read-only, idempotent, or standard dev workflow commands
|
|
139
|
-
* that don't modify system state outside the project.
|
|
140
|
-
*/
|
|
141
|
-
function isAutoExecutable(command) {
|
|
142
|
-
const safeCommands = [
|
|
143
|
-
// Package management (install only, not publish/uninstall)
|
|
144
|
-
/^npm\s+install$/,
|
|
145
|
-
/^npm\s+i$/,
|
|
146
|
-
/^npm\s+ci$/,
|
|
147
|
-
/^pnpm\s+install$/,
|
|
148
|
-
/^yarn(\s+install)?$/,
|
|
149
|
-
// Standard dev workflow scripts
|
|
150
|
-
/^npm\s+test(\s|$)/,
|
|
151
|
-
/^npm\s+run\s+(?:test|build|lint|type-check|typecheck|check|verify|compile|format|prettier|eslint)(?::\w+)?$/,
|
|
152
|
-
/^pnpm\s+(?:test|build|lint|type-check|typecheck)$/,
|
|
153
|
-
/^yarn\s+(?:test|build|lint|type-check|typecheck)$/,
|
|
154
|
-
// Direct tool invocations (read-only / idempotent)
|
|
155
|
-
/^npx\s+(?:tsc|eslint|prettier|jest|vitest|mocha)(?:\s|$)/,
|
|
156
|
-
/^tsc(?:\s+--noEmit)?$/,
|
|
157
|
-
/^eslint\s/,
|
|
158
|
-
/^prettier\s+--check\s/,
|
|
159
|
-
// Git read-only commands
|
|
160
|
-
/^git\s+status$/,
|
|
161
|
-
/^git\s+diff(?:\s|$)/,
|
|
162
|
-
/^git\s+log(?:\s|$)/,
|
|
163
|
-
/^git\s+show(?:\s|$)/,
|
|
164
|
-
/^git\s+branch(?:\s+-[avr])?$/,
|
|
165
|
-
/^git\s+remote\s+-v$/,
|
|
166
|
-
// Read-only filesystem commands
|
|
167
|
-
/^ls(?:\s|$)/,
|
|
168
|
-
/^cat\s/,
|
|
169
|
-
/^head\s/,
|
|
170
|
-
/^tail\s/,
|
|
171
|
-
/^wc\s/,
|
|
172
|
-
/^find\s.*-type\s+[fd](?:\s|$)/,
|
|
173
|
-
/^du\s/,
|
|
174
|
-
/^df\s/,
|
|
175
|
-
];
|
|
176
|
-
return safeCommands.some((pattern) => pattern.test(command));
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Execute a validation gap
|
|
180
|
-
*/
|
|
181
|
-
export async function executeValidationGap(gap, workingDir) {
|
|
182
|
-
try {
|
|
183
|
-
const { stdout, stderr } = await execAsync(gap.command, {
|
|
184
|
-
cwd: workingDir,
|
|
185
|
-
timeout: 10 * 60 * 1000, // 10 minutes
|
|
186
|
-
maxBuffer: 10 * 1024 * 1024, // 10MB
|
|
187
|
-
});
|
|
188
|
-
return {
|
|
189
|
-
success: true,
|
|
190
|
-
output: stdout || stderr,
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
catch (error) {
|
|
194
|
-
const err = error;
|
|
195
|
-
return {
|
|
196
|
-
success: false,
|
|
197
|
-
output: err?.stdout || '',
|
|
198
|
-
error: err?.stderr || err?.message,
|
|
199
|
-
};
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* Execute a recommendation
|
|
204
|
-
*/
|
|
205
|
-
export async function executeRecommendation(recommendation, workingDir) {
|
|
206
|
-
try {
|
|
207
|
-
switch (recommendation.action) {
|
|
208
|
-
case 'remove_file':
|
|
209
|
-
if (recommendation.target) {
|
|
210
|
-
const fullPath = `${workingDir}/${recommendation.target}`;
|
|
211
|
-
await unlink(fullPath);
|
|
212
|
-
return {
|
|
213
|
-
success: true,
|
|
214
|
-
output: `Removed file: ${recommendation.target}`,
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
|
-
break;
|
|
218
|
-
case 'remove_dir':
|
|
219
|
-
if (recommendation.target) {
|
|
220
|
-
const fullPath = `${workingDir}/${recommendation.target}`;
|
|
221
|
-
await rm(fullPath, { recursive: true });
|
|
222
|
-
return {
|
|
223
|
-
success: true,
|
|
224
|
-
output: `Removed directory: ${recommendation.target}`,
|
|
225
|
-
};
|
|
226
|
-
}
|
|
227
|
-
break;
|
|
228
|
-
case 'run_command':
|
|
229
|
-
if (recommendation.command) {
|
|
230
|
-
const { stdout, stderr } = await execAsync(recommendation.command, {
|
|
231
|
-
cwd: workingDir,
|
|
232
|
-
timeout: 5 * 60 * 1000,
|
|
233
|
-
maxBuffer: 10 * 1024 * 1024,
|
|
234
|
-
});
|
|
235
|
-
return {
|
|
236
|
-
success: true,
|
|
237
|
-
output: stdout || stderr,
|
|
238
|
-
};
|
|
239
|
-
}
|
|
240
|
-
break;
|
|
241
|
-
}
|
|
242
|
-
return {
|
|
243
|
-
success: false,
|
|
244
|
-
output: '',
|
|
245
|
-
error: 'Invalid recommendation action',
|
|
246
|
-
};
|
|
247
|
-
}
|
|
248
|
-
catch (error) {
|
|
249
|
-
const err = error;
|
|
250
|
-
return {
|
|
251
|
-
success: false,
|
|
252
|
-
output: '',
|
|
253
|
-
error: err?.message || 'Recommendation execution failed',
|
|
254
|
-
};
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
/**
|
|
258
|
-
* Execute a follow-up task
|
|
259
|
-
*/
|
|
260
|
-
export async function executeFollowUp(followUp, workingDir) {
|
|
261
|
-
try {
|
|
262
|
-
const { stdout, stderr } = await execAsync(followUp.command, {
|
|
263
|
-
cwd: workingDir,
|
|
264
|
-
timeout: 5 * 60 * 1000,
|
|
265
|
-
maxBuffer: 10 * 1024 * 1024,
|
|
266
|
-
});
|
|
267
|
-
return {
|
|
268
|
-
success: true,
|
|
269
|
-
output: stdout || stderr,
|
|
270
|
-
};
|
|
271
|
-
}
|
|
272
|
-
catch (error) {
|
|
273
|
-
const err = error;
|
|
274
|
-
return {
|
|
275
|
-
success: false,
|
|
276
|
-
output: err?.stdout || '',
|
|
277
|
-
error: err?.stderr || err?.message,
|
|
278
|
-
};
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
/**
|
|
282
|
-
* Execute all auto-executable actions
|
|
283
|
-
*/
|
|
284
|
-
export async function executeAutoActions(actions, workingDir, options = {}) {
|
|
285
|
-
const results = [];
|
|
286
|
-
let executed = 0;
|
|
287
|
-
let failed = 0;
|
|
288
|
-
// Execute validation gaps
|
|
289
|
-
for (const gap of actions.validationGaps) {
|
|
290
|
-
if (gap.autoExecutable) {
|
|
291
|
-
const result = await executeValidationGap(gap, workingDir);
|
|
292
|
-
results.push({ type: 'validation_gap', description: gap.description, result });
|
|
293
|
-
executed++;
|
|
294
|
-
if (!result.success)
|
|
295
|
-
failed++;
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
// Execute recommendations (only if skipConfirmation or requiresConfirmation is false)
|
|
299
|
-
for (const rec of actions.recommendations) {
|
|
300
|
-
if (!rec.requiresConfirmation || options.skipConfirmation) {
|
|
301
|
-
const result = await executeRecommendation(rec, workingDir);
|
|
302
|
-
results.push({ type: 'recommendation', description: rec.description, result });
|
|
303
|
-
executed++;
|
|
304
|
-
if (!result.success)
|
|
305
|
-
failed++;
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
// Execute follow-ups
|
|
309
|
-
for (const followUp of actions.followUps) {
|
|
310
|
-
if (followUp.autoExecutable) {
|
|
311
|
-
const result = await executeFollowUp(followUp, workingDir);
|
|
312
|
-
results.push({ type: 'follow_up', description: followUp.description, result });
|
|
313
|
-
executed++;
|
|
314
|
-
if (!result.success)
|
|
315
|
-
failed++;
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
return { executed, failed, results };
|
|
319
|
-
}
|
|
320
|
-
//# sourceMappingURL=autoExecutor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"autoExecutor.js","sourceRoot":"","sources":["../../src/shell/autoExecutor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAuClC;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACrD,MAAM,cAAc,GAAoB,EAAE,CAAC;IAC3C,MAAM,eAAe,GAAqB,EAAE,CAAC;IAC7C,MAAM,SAAS,GAAe,EAAE,CAAC;IAEjC,wBAAwB;IACxB,MAAM,oBAAoB,GAAG,oCAAoC,CAAC;IAClE,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9D,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACrC,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;YAC5C,IAAI,OAAO,EAAE,CAAC;gBACZ,cAAc,CAAC,IAAI,CAAC;oBAClB,IAAI,EAAE,gBAAgB;oBACtB,WAAW;oBACX,OAAO;oBACP,cAAc,EAAE,gBAAgB,CAAC,OAAO,CAAC;iBAC1C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,IAAI,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAC1E,cAAc,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,mCAAmC;YAChD,OAAO,EAAE,aAAa;YACtB,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;IACL,CAAC;IAED,wBAAwB;IACxB,MAAM,qBAAqB,GAAG,2CAA2C,CAAC;IAC1E,OAAO,CAAC,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/D,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACrC,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;YACtD,IAAI,MAAM,EAAE,CAAC;gBACX,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,MAAM,eAAe,GAAG,wCAAwC,CAAC;IACjE,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACzD,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACrC,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;YAC5C,IAAI,OAAO,EAAE,CAAC;gBACZ,SAAS,CAAC,IAAI,CAAC;oBACb,IAAI,EAAE,WAAW;oBACjB,WAAW;oBACX,OAAO;oBACP,cAAc,EAAE,gBAAgB,CAAC,OAAO,CAAC;iBAC1C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,IAAI,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAC5C,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,sCAAsC;YACnD,OAAO,EAAE,YAAY;YACrB,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,2CAA2C;IAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC9C,IAAI,aAAa,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,wBAAwB;IACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACxD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,wBAAwB;IACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC1D,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAAC,WAAmB;IACpD,mCAAmC;IACnC,IAAI,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACpD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC5B,OAAO;gBACL,IAAI,EAAE,gBAAgB;gBACtB,WAAW;gBACX,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY;gBAC3D,MAAM;gBACN,oBAAoB,EAAE,IAAI;aAC3B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO;YACL,IAAI,EAAE,gBAAgB;YACtB,WAAW;YACX,MAAM,EAAE,aAAa;YACrB,OAAO;YACP,oBAAoB,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC;SACjD,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,YAAY,GAAG;QACnB,2DAA2D;QAC3D,iBAAiB;QACjB,WAAW;QACX,YAAY;QACZ,kBAAkB;QAClB,qBAAqB;QAErB,gCAAgC;QAChC,mBAAmB;QACnB,6GAA6G;QAC7G,mDAAmD;QACnD,mDAAmD;QAEnD,mDAAmD;QACnD,0DAA0D;QAC1D,uBAAuB;QACvB,WAAW;QACX,uBAAuB;QAEvB,yBAAyB;QACzB,gBAAgB;QAChB,qBAAqB;QACrB,oBAAoB;QACpB,qBAAqB;QACrB,8BAA8B;QAC9B,qBAAqB;QAErB,gCAAgC;QAChC,aAAa;QACb,QAAQ;QACR,SAAS;QACT,SAAS;QACT,OAAO;QACP,+BAA+B;QAC/B,OAAO;QACP,OAAO;KACR,CAAC;IAEF,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAkB,EAClB,UAAkB;IAElB,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE;YACtD,GAAG,EAAE,UAAU;YACf,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;YACtC,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO;SACrC,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,MAAM,IAAI,MAAM;SACzB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAA+D,CAAC;QAC5E,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,EAAE;YACzB,KAAK,EAAE,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,OAAO;SACnC,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,cAA8B,EAC9B,UAAkB;IAElB,IAAI,CAAC;QACH,QAAQ,cAAc,CAAC,MAAM,EAAE,CAAC;YAC9B,KAAK,aAAa;gBAChB,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;oBAC1B,MAAM,QAAQ,GAAG,GAAG,UAAU,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;oBAC1D,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACvB,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,iBAAiB,cAAc,CAAC,MAAM,EAAE;qBACjD,CAAC;gBACJ,CAAC;gBACD,MAAM;YAER,KAAK,YAAY;gBACf,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;oBAC1B,MAAM,QAAQ,GAAG,GAAG,UAAU,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;oBAC1D,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBACxC,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,sBAAsB,cAAc,CAAC,MAAM,EAAE;qBACtD,CAAC;gBACJ,CAAC;gBACD,MAAM;YAER,KAAK,aAAa;gBAChB,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;oBAC3B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE;wBACjE,GAAG,EAAE,UAAU;wBACf,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;wBACtB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;qBAC5B,CAAC,CAAC;oBACH,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,MAAM,IAAI,MAAM;qBACzB,CAAC;gBACJ,CAAC;gBACD,MAAM;QACV,CAAC;QAED,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,+BAA+B;SACvC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAA6B,CAAC;QAC1C,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,GAAG,EAAE,OAAO,IAAI,iCAAiC;SACzD,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAkB,EAClB,UAAkB;IAElB,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE;YAC3D,GAAG,EAAE,UAAU;YACf,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;YACtB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;SAC5B,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,MAAM,IAAI,MAAM;SACzB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAA+D,CAAC;QAC5E,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,EAAE;YACzB,KAAK,EAAE,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,OAAO;SACnC,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAsB,EACtB,UAAkB,EAClB,UAA0C,EAAE;IAM5C,MAAM,OAAO,GAA0E,EAAE,CAAC;IAC1F,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,0BAA0B;IAC1B,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QACzC,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;YAC/E,QAAQ,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,sFAAsF;IACtF,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC1C,IAAI,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC1D,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;YAC/E,QAAQ,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACzC,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;YAC/E,QAAQ,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACvC,CAAC"}
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Command Registry - Slash Command Management
|
|
3
|
-
*
|
|
4
|
-
* Provides a registry for slash commands with:
|
|
5
|
-
* - Command registration and discovery
|
|
6
|
-
* - Help text generation
|
|
7
|
-
* - Category organization
|
|
8
|
-
* - Command execution delegation
|
|
9
|
-
*
|
|
10
|
-
* Usage:
|
|
11
|
-
* ```typescript
|
|
12
|
-
* const registry = new CommandRegistry();
|
|
13
|
-
*
|
|
14
|
-
* registry.register({
|
|
15
|
-
* name: '/help',
|
|
16
|
-
* aliases: ['/?'],
|
|
17
|
-
* description: 'Show help information',
|
|
18
|
-
* category: 'navigation',
|
|
19
|
-
* handler: async (context) => {
|
|
20
|
-
* context.showHelp();
|
|
21
|
-
* },
|
|
22
|
-
* });
|
|
23
|
-
*
|
|
24
|
-
* await registry.execute('/help', '', context);
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
export type CommandCategory = 'navigation' | 'model' | 'context' | 'session' | 'tools' | 'learning';
|
|
28
|
-
export interface CommandContext {
|
|
29
|
-
/** The shell instance for accessing shell methods */
|
|
30
|
-
shell: unknown;
|
|
31
|
-
/** Current input/arguments */
|
|
32
|
-
input: string;
|
|
33
|
-
/** Raw command string */
|
|
34
|
-
rawCommand: string;
|
|
35
|
-
}
|
|
36
|
-
export interface CommandDefinition {
|
|
37
|
-
/** Primary command name (e.g., '/help') */
|
|
38
|
-
name: string;
|
|
39
|
-
/** Alternative names for the command */
|
|
40
|
-
aliases?: string[];
|
|
41
|
-
/** Short description for help text */
|
|
42
|
-
description: string;
|
|
43
|
-
/** Category for organization */
|
|
44
|
-
category: CommandCategory;
|
|
45
|
-
/** Whether command is async */
|
|
46
|
-
async?: boolean;
|
|
47
|
-
/** Whether command is hidden from help */
|
|
48
|
-
hidden?: boolean;
|
|
49
|
-
/** Usage example */
|
|
50
|
-
usage?: string;
|
|
51
|
-
/** Handler function */
|
|
52
|
-
handler: (context: CommandContext) => void | Promise<void>;
|
|
53
|
-
}
|
|
54
|
-
export interface CommandMatch {
|
|
55
|
-
command: CommandDefinition;
|
|
56
|
-
matchedName: string;
|
|
57
|
-
}
|
|
58
|
-
export declare class CommandRegistry {
|
|
59
|
-
private commands;
|
|
60
|
-
private aliasMap;
|
|
61
|
-
/**
|
|
62
|
-
* Register a command
|
|
63
|
-
*/
|
|
64
|
-
register(command: CommandDefinition): this;
|
|
65
|
-
/**
|
|
66
|
-
* Register multiple commands
|
|
67
|
-
*/
|
|
68
|
-
registerAll(commands: CommandDefinition[]): this;
|
|
69
|
-
/**
|
|
70
|
-
* Find a command by name or alias
|
|
71
|
-
*/
|
|
72
|
-
find(commandName: string): CommandMatch | null;
|
|
73
|
-
/**
|
|
74
|
-
* Check if a command exists
|
|
75
|
-
*/
|
|
76
|
-
has(commandName: string): boolean;
|
|
77
|
-
/**
|
|
78
|
-
* Execute a command
|
|
79
|
-
*/
|
|
80
|
-
execute(commandName: string, input: string, shell: unknown): Promise<boolean>;
|
|
81
|
-
/**
|
|
82
|
-
* Get all commands in a category
|
|
83
|
-
*/
|
|
84
|
-
getByCategory(category: CommandCategory): CommandDefinition[];
|
|
85
|
-
/**
|
|
86
|
-
* Get all categories with their commands
|
|
87
|
-
*/
|
|
88
|
-
getAllCategories(): Map<CommandCategory, CommandDefinition[]>;
|
|
89
|
-
/**
|
|
90
|
-
* Get all registered commands
|
|
91
|
-
*/
|
|
92
|
-
getAll(): CommandDefinition[];
|
|
93
|
-
/**
|
|
94
|
-
* Get all visible commands (excluding hidden)
|
|
95
|
-
*/
|
|
96
|
-
getVisible(): CommandDefinition[];
|
|
97
|
-
/**
|
|
98
|
-
* Generate help text for all commands
|
|
99
|
-
*/
|
|
100
|
-
generateHelpText(): string;
|
|
101
|
-
/**
|
|
102
|
-
* Generate compact help text (just command names)
|
|
103
|
-
*/
|
|
104
|
-
generateCompactHelp(): string;
|
|
105
|
-
/**
|
|
106
|
-
* Normalize command name
|
|
107
|
-
*/
|
|
108
|
-
private normalizeName;
|
|
109
|
-
/**
|
|
110
|
-
* Format category name for display
|
|
111
|
-
*/
|
|
112
|
-
private formatCategoryName;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Create a standard set of commands for the shell
|
|
116
|
-
*
|
|
117
|
-
* This is meant to be extended/customized by the shell implementation
|
|
118
|
-
*/
|
|
119
|
-
export declare function createBaseCommands(): CommandDefinition[];
|
|
120
|
-
export declare function getCommandRegistry(): CommandRegistry;
|
|
121
|
-
export declare function resetCommandRegistry(): void;
|
|
122
|
-
//# sourceMappingURL=commandRegistry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commandRegistry.d.ts","sourceRoot":"","sources":["../../src/shell/commandRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAYH,MAAM,MAAM,eAAe,GACvB,YAAY,GACZ,OAAO,GACP,SAAS,GACT,SAAS,GACT,OAAO,GACP,UAAU,CAAC;AAEf,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,KAAK,EAAE,OAAO,CAAC;IACf,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,QAAQ,EAAE,eAAe,CAAC;IAC1B,+BAA+B;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,QAAQ,CAA6B;IAE7C;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAgB1C;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAOhD;;OAEG;IACH,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAqB9C;;OAEG;IACH,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAIjC;;OAEG;IACG,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAqBnF;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,eAAe,GAAG,iBAAiB,EAAE;IAM7D;;OAEG;IACH,gBAAgB,IAAI,GAAG,CAAC,eAAe,EAAE,iBAAiB,EAAE,CAAC;IAc7D;;OAEG;IACH,MAAM,IAAI,iBAAiB,EAAE;IAI7B;;OAEG;IACH,UAAU,IAAI,iBAAiB,EAAE;IAIjC;;OAEG;IACH,gBAAgB,IAAI,MAAM;IA8B1B;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAO7B;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAW3B;AAMD;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,iBAAiB,EAAE,CAkJxD;AAQD,wBAAgB,kBAAkB,IAAI,eAAe,CAMpD;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C"}
|