@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.
Files changed (225) hide show
  1. package/dist/capabilities/todoCapability.js +2 -2
  2. package/dist/capabilities/todoCapability.js.map +1 -1
  3. package/dist/config.js +1 -1
  4. package/dist/contracts/v1/agent.d.ts +12 -2
  5. package/dist/contracts/v1/agent.d.ts.map +1 -1
  6. package/dist/core/adversarialCorrection.d.ts +22 -0
  7. package/dist/core/adversarialCorrection.d.ts.map +1 -0
  8. package/dist/core/adversarialCorrection.js +25 -0
  9. package/dist/core/adversarialCorrection.js.map +1 -0
  10. package/dist/core/agent.d.ts +2 -0
  11. package/dist/core/agent.d.ts.map +1 -1
  12. package/dist/core/agent.js +11 -45
  13. package/dist/core/agent.js.map +1 -1
  14. package/dist/core/contextManager.d.ts.map +1 -1
  15. package/dist/core/contextManager.js +5 -2
  16. package/dist/core/contextManager.js.map +1 -1
  17. package/dist/core/errorClassification.d.ts +44 -0
  18. package/dist/core/errorClassification.d.ts.map +1 -0
  19. package/dist/core/errorClassification.js +333 -0
  20. package/dist/core/errorClassification.js.map +1 -0
  21. package/dist/core/failureRegistry.d.ts +30 -0
  22. package/dist/core/failureRegistry.d.ts.map +1 -0
  23. package/dist/core/failureRegistry.js +74 -0
  24. package/dist/core/failureRegistry.js.map +1 -0
  25. package/dist/core/hitl.d.ts.map +1 -1
  26. package/dist/core/hitl.js +8 -0
  27. package/dist/core/hitl.js.map +1 -1
  28. package/dist/core/hostedAuth.d.ts +88 -0
  29. package/dist/core/hostedAuth.d.ts.map +1 -0
  30. package/dist/core/hostedAuth.js +219 -0
  31. package/dist/core/hostedAuth.js.map +1 -0
  32. package/dist/core/quota.d.ts +61 -0
  33. package/dist/core/quota.d.ts.map +1 -0
  34. package/dist/core/quota.js +104 -0
  35. package/dist/core/quota.js.map +1 -0
  36. package/dist/core/quotaErrors.d.ts.map +1 -1
  37. package/dist/core/quotaErrors.js +3 -5
  38. package/dist/core/quotaErrors.js.map +1 -1
  39. package/dist/core/resultVerification.d.ts +3 -2
  40. package/dist/core/resultVerification.d.ts.map +1 -1
  41. package/dist/core/resultVerification.js +3 -2
  42. package/dist/core/resultVerification.js.map +1 -1
  43. package/dist/core/secretStore.d.ts +11 -0
  44. package/dist/core/secretStore.d.ts.map +1 -1
  45. package/dist/core/secretStore.js +25 -0
  46. package/dist/core/secretStore.js.map +1 -1
  47. package/dist/core/slashCommands.d.ts.map +1 -1
  48. package/dist/core/slashCommands.js +4 -0
  49. package/dist/core/slashCommands.js.map +1 -1
  50. package/dist/core/thinkingVerbs.d.ts +31 -0
  51. package/dist/core/thinkingVerbs.d.ts.map +1 -0
  52. package/dist/core/thinkingVerbs.js +58 -0
  53. package/dist/core/thinkingVerbs.js.map +1 -0
  54. package/dist/core/turnGovernor.d.ts +63 -0
  55. package/dist/core/turnGovernor.d.ts.map +1 -0
  56. package/dist/core/turnGovernor.js +94 -0
  57. package/dist/core/turnGovernor.js.map +1 -0
  58. package/dist/core/updateChecker.d.ts.map +1 -1
  59. package/dist/core/updateChecker.js +5 -1
  60. package/dist/core/updateChecker.js.map +1 -1
  61. package/dist/core/usage.d.ts +28 -0
  62. package/dist/core/usage.d.ts.map +1 -0
  63. package/dist/core/usage.js +77 -0
  64. package/dist/core/usage.js.map +1 -0
  65. package/dist/headless/interactiveShell.d.ts +6 -0
  66. package/dist/headless/interactiveShell.d.ts.map +1 -1
  67. package/dist/headless/interactiveShell.js +262 -42
  68. package/dist/headless/interactiveShell.js.map +1 -1
  69. package/dist/plugins/providers/deepseek/index.d.ts.map +1 -1
  70. package/dist/plugins/providers/deepseek/index.js +8 -5
  71. package/dist/plugins/providers/deepseek/index.js.map +1 -1
  72. package/dist/providers/baseProvider.d.ts +5 -13
  73. package/dist/providers/baseProvider.d.ts.map +1 -1
  74. package/dist/providers/baseProvider.js +12 -66
  75. package/dist/providers/baseProvider.js.map +1 -1
  76. package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -1
  77. package/dist/providers/openaiChatCompletionsProvider.js +27 -76
  78. package/dist/providers/openaiChatCompletionsProvider.js.map +1 -1
  79. package/dist/providers/resilientProvider.d.ts +2 -9
  80. package/dist/providers/resilientProvider.d.ts.map +1 -1
  81. package/dist/providers/resilientProvider.js +13 -199
  82. package/dist/providers/resilientProvider.js.map +1 -1
  83. package/dist/runtime/agentController.d.ts.map +1 -1
  84. package/dist/runtime/agentController.js +7 -0
  85. package/dist/runtime/agentController.js.map +1 -1
  86. package/dist/shell/toolPresentation.d.ts +7 -0
  87. package/dist/shell/toolPresentation.d.ts.map +1 -1
  88. package/dist/shell/toolPresentation.js +78 -4
  89. package/dist/shell/toolPresentation.js.map +1 -1
  90. package/dist/tools/bashTools.d.ts.map +1 -1
  91. package/dist/tools/bashTools.js +9 -3
  92. package/dist/tools/bashTools.js.map +1 -1
  93. package/dist/tools/grepTools.d.ts.map +1 -1
  94. package/dist/tools/grepTools.js +10 -1
  95. package/dist/tools/grepTools.js.map +1 -1
  96. package/dist/tools/memoryTools.d.ts +7 -0
  97. package/dist/tools/memoryTools.d.ts.map +1 -1
  98. package/dist/tools/memoryTools.js +17 -0
  99. package/dist/tools/memoryTools.js.map +1 -1
  100. package/dist/tools/searchTools.d.ts.map +1 -1
  101. package/dist/tools/searchTools.js +5 -4
  102. package/dist/tools/searchTools.js.map +1 -1
  103. package/dist/tools/todoTools.d.ts +3 -4
  104. package/dist/tools/todoTools.d.ts.map +1 -1
  105. package/dist/tools/todoTools.js +23 -4
  106. package/dist/tools/todoTools.js.map +1 -1
  107. package/dist/tools/webTools.d.ts.map +1 -1
  108. package/dist/tools/webTools.js +3 -1
  109. package/dist/tools/webTools.js.map +1 -1
  110. package/dist/ui/ink/ChatStatic.d.ts.map +1 -1
  111. package/dist/ui/ink/ChatStatic.js +21 -5
  112. package/dist/ui/ink/ChatStatic.js.map +1 -1
  113. package/dist/ui/ink/InkPromptController.d.ts +5 -0
  114. package/dist/ui/ink/InkPromptController.d.ts.map +1 -1
  115. package/dist/ui/ink/InkPromptController.js +16 -6
  116. package/dist/ui/ink/InkPromptController.js.map +1 -1
  117. package/dist/ui/ink/Prompt.d.ts +6 -0
  118. package/dist/ui/ink/Prompt.d.ts.map +1 -1
  119. package/dist/ui/ink/Prompt.js +69 -10
  120. package/dist/ui/ink/Prompt.js.map +1 -1
  121. package/dist/ui/ink/StatusLine.d.ts +6 -0
  122. package/dist/ui/ink/StatusLine.d.ts.map +1 -1
  123. package/dist/ui/ink/StatusLine.js +17 -3
  124. package/dist/ui/ink/StatusLine.js.map +1 -1
  125. package/dist/ui/ink/pasteBuffer.d.ts +44 -0
  126. package/dist/ui/ink/pasteBuffer.d.ts.map +1 -0
  127. package/dist/ui/ink/pasteBuffer.js +73 -0
  128. package/dist/ui/ink/pasteBuffer.js.map +1 -0
  129. package/package.json +1 -1
  130. package/dist/core/index.d.ts +0 -7
  131. package/dist/core/index.d.ts.map +0 -1
  132. package/dist/core/index.js +0 -7
  133. package/dist/core/index.js.map +0 -1
  134. package/dist/core/providerKeys.d.ts +0 -20
  135. package/dist/core/providerKeys.d.ts.map +0 -1
  136. package/dist/core/providerKeys.js +0 -40
  137. package/dist/core/providerKeys.js.map +0 -1
  138. package/dist/plugins/index.d.ts +0 -49
  139. package/dist/plugins/index.d.ts.map +0 -1
  140. package/dist/plugins/index.js +0 -104
  141. package/dist/plugins/index.js.map +0 -1
  142. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts +0 -10
  143. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts.map +0 -1
  144. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js +0 -110
  145. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js.map +0 -1
  146. package/dist/plugins/tools/bash/localBashPlugin.d.ts +0 -3
  147. package/dist/plugins/tools/bash/localBashPlugin.d.ts.map +0 -1
  148. package/dist/plugins/tools/bash/localBashPlugin.js +0 -14
  149. package/dist/plugins/tools/bash/localBashPlugin.js.map +0 -1
  150. package/dist/plugins/tools/edit/editPlugin.d.ts +0 -9
  151. package/dist/plugins/tools/edit/editPlugin.d.ts.map +0 -1
  152. package/dist/plugins/tools/edit/editPlugin.js +0 -15
  153. package/dist/plugins/tools/edit/editPlugin.js.map +0 -1
  154. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts +0 -3
  155. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts.map +0 -1
  156. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js +0 -9
  157. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js.map +0 -1
  158. package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts +0 -3
  159. package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts.map +0 -1
  160. package/dist/plugins/tools/filesystem/localFilesystemPlugin.js +0 -14
  161. package/dist/plugins/tools/filesystem/localFilesystemPlugin.js.map +0 -1
  162. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.d.ts +0 -3
  163. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.d.ts.map +0 -1
  164. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.js +0 -9
  165. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.js.map +0 -1
  166. package/dist/plugins/tools/index.d.ts +0 -3
  167. package/dist/plugins/tools/index.d.ts.map +0 -1
  168. package/dist/plugins/tools/index.js +0 -3
  169. package/dist/plugins/tools/index.js.map +0 -1
  170. package/dist/plugins/tools/integrity/integrityPlugin.d.ts +0 -3
  171. package/dist/plugins/tools/integrity/integrityPlugin.d.ts.map +0 -1
  172. package/dist/plugins/tools/integrity/integrityPlugin.js +0 -31
  173. package/dist/plugins/tools/integrity/integrityPlugin.js.map +0 -1
  174. package/dist/plugins/tools/mcp/mcpPlugin.d.ts +0 -3
  175. package/dist/plugins/tools/mcp/mcpPlugin.d.ts.map +0 -1
  176. package/dist/plugins/tools/mcp/mcpPlugin.js +0 -27
  177. package/dist/plugins/tools/mcp/mcpPlugin.js.map +0 -1
  178. package/dist/plugins/tools/nodeDefaults.d.ts +0 -13
  179. package/dist/plugins/tools/nodeDefaults.d.ts.map +0 -1
  180. package/dist/plugins/tools/nodeDefaults.js +0 -33
  181. package/dist/plugins/tools/nodeDefaults.js.map +0 -1
  182. package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts +0 -3
  183. package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts.map +0 -1
  184. package/dist/plugins/tools/orchestration/orchestrationPlugin.js +0 -340
  185. package/dist/plugins/tools/orchestration/orchestrationPlugin.js.map +0 -1
  186. package/dist/plugins/tools/registry.d.ts +0 -22
  187. package/dist/plugins/tools/registry.d.ts.map +0 -1
  188. package/dist/plugins/tools/registry.js +0 -58
  189. package/dist/plugins/tools/registry.js.map +0 -1
  190. package/dist/plugins/tools/search/localSearchPlugin.d.ts +0 -3
  191. package/dist/plugins/tools/search/localSearchPlugin.d.ts.map +0 -1
  192. package/dist/plugins/tools/search/localSearchPlugin.js +0 -14
  193. package/dist/plugins/tools/search/localSearchPlugin.js.map +0 -1
  194. package/dist/plugins/tools/skills/skillPlugin.d.ts +0 -3
  195. package/dist/plugins/tools/skills/skillPlugin.d.ts.map +0 -1
  196. package/dist/plugins/tools/skills/skillPlugin.js +0 -27
  197. package/dist/plugins/tools/skills/skillPlugin.js.map +0 -1
  198. package/dist/plugins/tools/todo/todoPlugin.d.ts +0 -3
  199. package/dist/plugins/tools/todo/todoPlugin.d.ts.map +0 -1
  200. package/dist/plugins/tools/todo/todoPlugin.js +0 -10
  201. package/dist/plugins/tools/todo/todoPlugin.js.map +0 -1
  202. package/dist/runtime/agentWorkerPool.d.ts +0 -167
  203. package/dist/runtime/agentWorkerPool.d.ts.map +0 -1
  204. package/dist/runtime/agentWorkerPool.js +0 -435
  205. package/dist/runtime/agentWorkerPool.js.map +0 -1
  206. package/dist/shell/autoExecutor.d.ts +0 -70
  207. package/dist/shell/autoExecutor.d.ts.map +0 -1
  208. package/dist/shell/autoExecutor.js +0 -320
  209. package/dist/shell/autoExecutor.js.map +0 -1
  210. package/dist/shell/commandRegistry.d.ts +0 -122
  211. package/dist/shell/commandRegistry.d.ts.map +0 -1
  212. package/dist/shell/commandRegistry.js +0 -355
  213. package/dist/shell/commandRegistry.js.map +0 -1
  214. package/dist/shell/composableMessage.d.ts +0 -178
  215. package/dist/shell/composableMessage.d.ts.map +0 -1
  216. package/dist/shell/composableMessage.js +0 -384
  217. package/dist/shell/composableMessage.js.map +0 -1
  218. package/dist/shell/vimMode.d.ts +0 -66
  219. package/dist/shell/vimMode.d.ts.map +0 -1
  220. package/dist/shell/vimMode.js +0 -435
  221. package/dist/shell/vimMode.js.map +0 -1
  222. package/dist/tools/localExplore.d.ts +0 -38
  223. package/dist/tools/localExplore.d.ts.map +0 -1
  224. package/dist/tools/localExplore.js +0 -30
  225. 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":"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"}
@@ -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"}