@defai.digital/ax-cli 3.11.10 → 3.12.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -59
- package/dist/agent/execution/tool-executor.d.ts +1 -1
- package/dist/agent/execution/tool-executor.js +55 -2
- package/dist/agent/execution/tool-executor.js.map +1 -1
- package/dist/commands/custom-commands.d.ts +77 -0
- package/dist/commands/custom-commands.js +249 -0
- package/dist/commands/custom-commands.js.map +1 -0
- package/dist/commands/vscode.js +62 -13
- package/dist/commands/vscode.js.map +1 -1
- package/dist/hooks/index.d.ts +6 -3
- package/dist/hooks/index.js +6 -3
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/manager.d.ts +84 -0
- package/dist/hooks/manager.js +344 -0
- package/dist/hooks/manager.js.map +1 -0
- package/dist/hooks/types.d.ts +134 -0
- package/dist/hooks/types.js +9 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/llm/tools.js +53 -0
- package/dist/llm/tools.js.map +1 -1
- package/dist/sdk/version.d.ts +1 -1
- package/dist/sdk/version.js +1 -1
- package/dist/sdk/version.js.map +1 -1
- package/dist/tools/ask-user.d.ts +66 -0
- package/dist/tools/ask-user.js +96 -0
- package/dist/tools/ask-user.js.map +1 -0
- package/dist/tools/bash.js +6 -3
- package/dist/tools/bash.js.map +1 -1
- package/dist/ui/components/chat-interface.js +34 -3
- package/dist/ui/components/chat-interface.js.map +1 -1
- package/dist/ui/components/keyboard-hints.js +3 -1
- package/dist/ui/components/keyboard-hints.js.map +1 -1
- package/dist/ui/components/quick-actions.js +13 -5
- package/dist/ui/components/quick-actions.js.map +1 -1
- package/dist/ui/components/status-bar.js +2 -0
- package/dist/ui/components/status-bar.js.map +1 -1
- package/dist/ui/hooks/use-enhanced-input.js +28 -5
- package/dist/ui/hooks/use-enhanced-input.js.map +1 -1
- package/dist/ui/hooks/use-input-handler.d.ts +10 -0
- package/dist/ui/hooks/use-input-handler.js +257 -45
- package/dist/ui/hooks/use-input-handler.js.map +1 -1
- package/dist/ui/utils/semantic-action-detector.js +19 -1
- package/dist/ui/utils/semantic-action-detector.js.map +1 -1
- package/dist/ui/utils/tool-grouper.js +13 -1
- package/dist/ui/utils/tool-grouper.js.map +1 -1
- package/dist/utils/background-task-manager.js +9 -5
- package/dist/utils/background-task-manager.js.map +1 -1
- package/dist/utils/file-mentions.d.ts +68 -0
- package/dist/utils/file-mentions.js +225 -0
- package/dist/utils/file-mentions.js.map +1 -0
- package/dist/utils/paste-utils.js +2 -1
- package/dist/utils/paste-utils.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -210,6 +210,7 @@ ax-cli -c
|
|
|
210
210
|
| **Ctrl+K** | Quick actions menu |
|
|
211
211
|
| **Shift+Tab** | Toggle auto-edit mode |
|
|
212
212
|
| **Ctrl+C** | Clear input (press twice to exit) |
|
|
213
|
+
| **Esc×2** | Clear input (press Escape twice quickly) |
|
|
213
214
|
| **↑/↓** | Navigate command history |
|
|
214
215
|
|
|
215
216
|
### Headless Mode
|
|
@@ -400,65 +401,6 @@ Email: **security@defai.digital** (private disclosure)
|
|
|
400
401
|
|
|
401
402
|
---
|
|
402
403
|
|
|
403
|
-
## Changelog
|
|
404
|
-
|
|
405
|
-
### v3.11.10 (Latest)
|
|
406
|
-
|
|
407
|
-
- **Fix: Stress Test Timeout** - Increased process-pool 1000-search stress test timeout from 120s to 180s for CI reliability
|
|
408
|
-
- **Code Quality Verification** - Verified background-task-manager.ts has comprehensive memory leak and race condition fixes
|
|
409
|
-
|
|
410
|
-
### v3.11.9
|
|
411
|
-
|
|
412
|
-
- **Fix: Redundant Ternary in Paste Block Display** - Simplified redundant color ternary in chat-input.tsx paste block rendering
|
|
413
|
-
|
|
414
|
-
### v3.11.8
|
|
415
|
-
|
|
416
|
-
- **Fix: Keyboard Help Documentation** - Fixed incorrect documentation for Ctrl+D (was "Exit AX CLI", should be "Delete character after cursor")
|
|
417
|
-
|
|
418
|
-
### v3.11.7
|
|
419
|
-
|
|
420
|
-
- **Fix: Paste Block ID Display** - Fixed inconsistent paste block ID display (expanded view showed 0-based ID, collapsed showed 1-based)
|
|
421
|
-
|
|
422
|
-
### v3.11.6
|
|
423
|
-
|
|
424
|
-
- **Fix: File Content Vertical Layout** - Fixed `renderFileContent` in chat-history to properly wrap lines in `flexDirection="column"` Box for vertical display
|
|
425
|
-
|
|
426
|
-
### v3.11.5
|
|
427
|
-
|
|
428
|
-
- **Critical Fix: Multiline Input Rendering** - Fixed multiline input displaying on single line with `│` characters instead of proper newlines
|
|
429
|
-
- **Root Cause** - Added missing `flexDirection="column"` to the Ink Box component containing multiline input lines
|
|
430
|
-
|
|
431
|
-
### v3.11.4
|
|
432
|
-
|
|
433
|
-
- **Test Suite Fixes** - Fixed 12 failing tests in CI/CD pipeline for tool-grouper and change-summarizer modules
|
|
434
|
-
- **Tool Grouper Updates** - Updated tests to reflect single-item group unwrapping behavior (returns original entry instead of wrapping in ToolGroup)
|
|
435
|
-
- **Change Summarizer Updates** - Fixed line counting tests to match trimmed content behavior and 500+ line "large" file threshold
|
|
436
|
-
|
|
437
|
-
### v3.11.3
|
|
438
|
-
|
|
439
|
-
- **Bug Fixes: CLI Message Grouping** - Fixed parseInt NaN in diff-renderer, keyboard-hints fallback, semantic group duration color, reasoning-display marginBottom, diff-renderer gap separator
|
|
440
|
-
- **Bug Fixes: Paste Handling** - Fixed placeholder 1-based numbering, stale pastedBlocks closure, findBlockAtCursor guards, singular/plural line counts, negative ID guard, expandAllPlaceholders optimization
|
|
441
|
-
- **Bug Fixes: Display** - Fixed getFilePath for multi_edit, config file matching, renderFileContent empty content, MarkdownRenderer Promise handling, isCompatibleTransition fallback
|
|
442
|
-
- **Code Quality** - Removed console.error calls from paste error handling, added Shift+Enter detection normalization
|
|
443
|
-
|
|
444
|
-
### v3.10.1
|
|
445
|
-
|
|
446
|
-
- **Bug Fixes: Race Conditions** - Fixed double-resolution race conditions in VSCode IPC client, MCP singleton initialization, and tool approval timeout handling
|
|
447
|
-
- **Bug Fixes: Escape Sequence Handling** - Fixed broken escape sequence logic in input parsing (getStringState, hasCharOutsideStrings, isIncompleteInput)
|
|
448
|
-
- **Bug Fixes: Cache Invalidation** - Fixed tool version comparison to properly detect tool upgrades and invalidate stale cache
|
|
449
|
-
- **Code Quality** - Consistent flag-based escape tracking, improved error logging in debug mode
|
|
450
|
-
|
|
451
|
-
### v3.10.0
|
|
452
|
-
|
|
453
|
-
- **pnpm CI Migration** - Switched CI/CD from npm to pnpm for 2-3x faster installs (users still use `npm install`)
|
|
454
|
-
- **npm Compatibility Test** - Added dedicated CI job to verify npm users can still install and build
|
|
455
|
-
- **Workspace Protocol** - Updated workspace dependency to use `workspace:*` for proper pnpm support
|
|
456
|
-
- **CI Performance** - Follows pattern used by Vite, Vitest, Next.js for optimal CI speed
|
|
457
|
-
|
|
458
|
-
[View full changelog →](https://github.com/defai-digital/ax-cli/releases)
|
|
459
|
-
|
|
460
|
-
---
|
|
461
|
-
|
|
462
404
|
## Documentation
|
|
463
405
|
|
|
464
406
|
| Guide | Description |
|
|
@@ -493,6 +435,15 @@ Contact: **sales@defai.digital**
|
|
|
493
435
|
|
|
494
436
|
This project was inspired by and partially based on [grok-cli](https://github.com/superagent-ai/grok-cli). Thanks to the original authors for their open-source contributions.
|
|
495
437
|
|
|
438
|
+
### AI Co-Authors
|
|
439
|
+
|
|
440
|
+
This project is developed with assistance from multiple AI coding assistants:
|
|
441
|
+
|
|
442
|
+
- [AutomatosX](https://github.com/defai-digital/automatosx) - AI agent orchestration platform
|
|
443
|
+
- [Claude](https://github.com/claude) - Anthropic's AI assistant
|
|
444
|
+
- [Gemini Code Assist](https://github.com/apps/gemini-code-assist) - Google's AI coding assistant
|
|
445
|
+
- [Codex](https://github.com/openai/codex) - OpenAI's code generation model
|
|
446
|
+
|
|
496
447
|
---
|
|
497
448
|
|
|
498
449
|
## License
|
|
@@ -53,7 +53,7 @@ export declare class ToolExecutor {
|
|
|
53
53
|
*/
|
|
54
54
|
parseToolArguments(toolCall: LLMToolCall, toolType?: string): ToolParseResult;
|
|
55
55
|
/**
|
|
56
|
-
* Execute a tool call
|
|
56
|
+
* Execute a tool call with hooks integration
|
|
57
57
|
*/
|
|
58
58
|
execute(toolCall: LLMToolCall): Promise<ToolResult>;
|
|
59
59
|
/**
|
|
@@ -11,7 +11,9 @@ import { TextEditorTool, BashTool, TodoTool, SearchTool, } from "../../tools/ind
|
|
|
11
11
|
import { BashOutputTool } from "../../tools/bash-output.js";
|
|
12
12
|
import { ArchitectureTool } from "../../tools/analysis-tools/architecture-tool.js";
|
|
13
13
|
import { ValidationTool } from "../../tools/analysis-tools/validation-tool.js";
|
|
14
|
+
import { getAskUserTool } from "../../tools/ask-user.js";
|
|
14
15
|
import { extractErrorMessage } from "../../utils/error-handler.js";
|
|
16
|
+
import { getHooksManager } from "../../hooks/index.js";
|
|
15
17
|
/**
|
|
16
18
|
* Tool Executor
|
|
17
19
|
*
|
|
@@ -91,7 +93,7 @@ export class ToolExecutor {
|
|
|
91
93
|
}
|
|
92
94
|
}
|
|
93
95
|
/**
|
|
94
|
-
* Execute a tool call
|
|
96
|
+
* Execute a tool call with hooks integration
|
|
95
97
|
*/
|
|
96
98
|
async execute(toolCall) {
|
|
97
99
|
try {
|
|
@@ -100,6 +102,15 @@ export class ToolExecutor {
|
|
|
100
102
|
return { success: false, error: parseResult.error };
|
|
101
103
|
}
|
|
102
104
|
const args = parseResult.args;
|
|
105
|
+
// Check PreToolUse hooks before execution
|
|
106
|
+
const hooksManager = getHooksManager();
|
|
107
|
+
const blockCheck = await hooksManager.shouldBlockTool(toolCall.function.name, args, toolCall.id);
|
|
108
|
+
if (blockCheck.blocked) {
|
|
109
|
+
return {
|
|
110
|
+
success: false,
|
|
111
|
+
error: `Tool blocked by hook: ${blockCheck.reason || 'No reason provided'}`,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
103
114
|
// Helper to safely get string argument with validation
|
|
104
115
|
const getString = (key, required = true) => {
|
|
105
116
|
const value = args[key];
|
|
@@ -196,10 +207,52 @@ export class ToolExecutor {
|
|
|
196
207
|
}
|
|
197
208
|
return await this.validationTool.execute({ path, pattern, rules });
|
|
198
209
|
}
|
|
210
|
+
case "ask_user": {
|
|
211
|
+
const questions = args.questions;
|
|
212
|
+
if (!Array.isArray(questions)) {
|
|
213
|
+
return {
|
|
214
|
+
success: false,
|
|
215
|
+
error: "ask_user requires a 'questions' array",
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
// Validate and transform questions
|
|
219
|
+
const validQuestions = [];
|
|
220
|
+
for (const q of questions) {
|
|
221
|
+
if (typeof q !== 'object' || q === null)
|
|
222
|
+
continue;
|
|
223
|
+
const qObj = q;
|
|
224
|
+
if (typeof qObj.question !== 'string' || !Array.isArray(qObj.options))
|
|
225
|
+
continue;
|
|
226
|
+
const validOptions = qObj.options.filter((opt) => typeof opt === 'object' && opt !== null && typeof opt.label === 'string').map(opt => ({
|
|
227
|
+
label: opt.label,
|
|
228
|
+
description: typeof opt.description === 'string' ? opt.description : undefined,
|
|
229
|
+
}));
|
|
230
|
+
// Skip questions with fewer than 2 valid options
|
|
231
|
+
if (validOptions.length < 2)
|
|
232
|
+
continue;
|
|
233
|
+
validQuestions.push({
|
|
234
|
+
question: qObj.question,
|
|
235
|
+
header: typeof qObj.header === 'string' ? qObj.header : undefined,
|
|
236
|
+
options: validOptions,
|
|
237
|
+
multiSelect: typeof qObj.multiSelect === 'boolean' ? qObj.multiSelect : false,
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
if (validQuestions.length === 0) {
|
|
241
|
+
return {
|
|
242
|
+
success: false,
|
|
243
|
+
error: "No valid questions provided",
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
const askUserTool = getAskUserTool();
|
|
247
|
+
return await askUserTool.execute(validQuestions);
|
|
248
|
+
}
|
|
199
249
|
default:
|
|
200
250
|
// Check if this is an MCP tool
|
|
201
251
|
if (toolCall.function.name.startsWith("mcp__")) {
|
|
202
|
-
|
|
252
|
+
const mcpResult = await this.executeMCPTool(toolCall);
|
|
253
|
+
// Execute PostToolUse hooks (fire-and-forget)
|
|
254
|
+
hooksManager.executePostToolHooks(toolCall.function.name, args, toolCall.id, mcpResult);
|
|
255
|
+
return mcpResult;
|
|
203
256
|
}
|
|
204
257
|
return {
|
|
205
258
|
success: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-executor.js","sourceRoot":"","sources":["../../../src/agent/execution/tool-executor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool-executor.js","sourceRoot":"","sources":["../../../src/agent/execution/tool-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom Commands System
|
|
3
|
+
*
|
|
4
|
+
* Allows users to create custom slash commands using markdown files.
|
|
5
|
+
* Commands can be project-level (.ax-cli/commands/) or personal (~/.ax-cli/commands/).
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Custom command definition
|
|
11
|
+
*/
|
|
12
|
+
export interface CustomCommand {
|
|
13
|
+
/** Command name (without leading slash) */
|
|
14
|
+
name: string;
|
|
15
|
+
/** Command description from frontmatter or first line */
|
|
16
|
+
description: string;
|
|
17
|
+
/** Full path to the command file */
|
|
18
|
+
filePath: string;
|
|
19
|
+
/** Whether this is a project-level or user-level command */
|
|
20
|
+
scope: "project" | "user";
|
|
21
|
+
/** The command content/prompt */
|
|
22
|
+
content: string;
|
|
23
|
+
/** Optional arguments configuration */
|
|
24
|
+
arguments?: {
|
|
25
|
+
/** Whether the command accepts arguments */
|
|
26
|
+
required?: boolean;
|
|
27
|
+
/** Description of expected arguments */
|
|
28
|
+
description?: string;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Custom Commands Manager
|
|
33
|
+
*/
|
|
34
|
+
export declare class CustomCommandsManager {
|
|
35
|
+
private static instance;
|
|
36
|
+
private commands;
|
|
37
|
+
private projectDir;
|
|
38
|
+
private userDir;
|
|
39
|
+
private initialized;
|
|
40
|
+
private constructor();
|
|
41
|
+
/**
|
|
42
|
+
* Get the singleton instance
|
|
43
|
+
*/
|
|
44
|
+
static getInstance(): CustomCommandsManager;
|
|
45
|
+
/**
|
|
46
|
+
* Reset the singleton (for testing)
|
|
47
|
+
*/
|
|
48
|
+
static reset(): void;
|
|
49
|
+
/**
|
|
50
|
+
* Initialize by loading commands from all sources
|
|
51
|
+
*/
|
|
52
|
+
initialize(): void;
|
|
53
|
+
/**
|
|
54
|
+
* Get a command by name
|
|
55
|
+
*/
|
|
56
|
+
getCommand(name: string): CustomCommand | undefined;
|
|
57
|
+
/**
|
|
58
|
+
* Get all available commands
|
|
59
|
+
*/
|
|
60
|
+
getAllCommands(): CustomCommand[];
|
|
61
|
+
/**
|
|
62
|
+
* Check if a command exists
|
|
63
|
+
*/
|
|
64
|
+
hasCommand(name: string): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Expand a command with arguments
|
|
67
|
+
*/
|
|
68
|
+
expandCommand(name: string, args: string): string | null;
|
|
69
|
+
/**
|
|
70
|
+
* Reload commands from disk
|
|
71
|
+
*/
|
|
72
|
+
reload(): void;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Get the singleton custom commands manager instance
|
|
76
|
+
*/
|
|
77
|
+
export declare function getCustomCommandsManager(): CustomCommandsManager;
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom Commands System
|
|
3
|
+
*
|
|
4
|
+
* Allows users to create custom slash commands using markdown files.
|
|
5
|
+
* Commands can be project-level (.ax-cli/commands/) or personal (~/.ax-cli/commands/).
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
import * as fs from "fs";
|
|
10
|
+
import * as path from "path";
|
|
11
|
+
import * as os from "os";
|
|
12
|
+
import { extractErrorMessage } from "../utils/error-handler.js";
|
|
13
|
+
/**
|
|
14
|
+
* Parse YAML-like frontmatter from a markdown file
|
|
15
|
+
*/
|
|
16
|
+
function parseFrontmatter(content) {
|
|
17
|
+
// Normalize line endings to \n
|
|
18
|
+
const normalized = content.replace(/\r\n/g, "\n");
|
|
19
|
+
// Match frontmatter with optional trailing newline
|
|
20
|
+
const frontmatterMatch = normalized.match(/^---\n([\s\S]*?)\n---(?:\n|$)([\s\S]*)$/);
|
|
21
|
+
if (!frontmatterMatch) {
|
|
22
|
+
return { frontmatter: {}, body: content };
|
|
23
|
+
}
|
|
24
|
+
const frontmatterStr = frontmatterMatch[1];
|
|
25
|
+
const body = frontmatterMatch[2];
|
|
26
|
+
// Simple YAML parsing (key: value format)
|
|
27
|
+
const frontmatter = {};
|
|
28
|
+
const lines = frontmatterStr.split("\n");
|
|
29
|
+
let currentKey = null;
|
|
30
|
+
let inNestedObject = false;
|
|
31
|
+
let nestedObject = {};
|
|
32
|
+
for (const line of lines) {
|
|
33
|
+
const trimmed = line.trim();
|
|
34
|
+
if (!trimmed || trimmed.startsWith("#"))
|
|
35
|
+
continue;
|
|
36
|
+
// Check for nested object end
|
|
37
|
+
if (inNestedObject && !line.startsWith(" ")) {
|
|
38
|
+
if (currentKey === "arguments") {
|
|
39
|
+
frontmatter.arguments = nestedObject;
|
|
40
|
+
}
|
|
41
|
+
inNestedObject = false;
|
|
42
|
+
nestedObject = {};
|
|
43
|
+
currentKey = null;
|
|
44
|
+
}
|
|
45
|
+
// Check for nested object start
|
|
46
|
+
if (trimmed.endsWith(":") && !trimmed.includes(": ")) {
|
|
47
|
+
currentKey = trimmed.slice(0, -1);
|
|
48
|
+
inNestedObject = true;
|
|
49
|
+
nestedObject = {};
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
// Handle nested properties
|
|
53
|
+
if (inNestedObject && line.startsWith(" ")) {
|
|
54
|
+
const match = trimmed.match(/^(\w+):\s*(.*)$/);
|
|
55
|
+
if (match) {
|
|
56
|
+
const [, key, value] = match;
|
|
57
|
+
if (value === "true") {
|
|
58
|
+
nestedObject[key] = true;
|
|
59
|
+
}
|
|
60
|
+
else if (value === "false") {
|
|
61
|
+
nestedObject[key] = false;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
nestedObject[key] = value.replace(/^["']|["']$/g, "");
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
// Handle top-level properties
|
|
70
|
+
const match = trimmed.match(/^(\w+):\s*(.*)$/);
|
|
71
|
+
if (match) {
|
|
72
|
+
const [, key, value] = match;
|
|
73
|
+
if (key === "description") {
|
|
74
|
+
frontmatter.description = value.replace(/^["']|["']$/g, "");
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// Handle case where nested object is at the end
|
|
79
|
+
if (inNestedObject && currentKey === "arguments") {
|
|
80
|
+
frontmatter.arguments = nestedObject;
|
|
81
|
+
}
|
|
82
|
+
return { frontmatter, body };
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Get the first non-empty line as a description fallback
|
|
86
|
+
*/
|
|
87
|
+
function getFirstLineDescription(content) {
|
|
88
|
+
const lines = content.trim().split("\n");
|
|
89
|
+
for (const line of lines) {
|
|
90
|
+
const trimmed = line.trim();
|
|
91
|
+
if (trimmed && !trimmed.startsWith("#")) {
|
|
92
|
+
return trimmed.slice(0, 100); // Limit length
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return "Custom command";
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Load custom commands from a directory
|
|
99
|
+
*/
|
|
100
|
+
function loadCommandsFromDir(dir, scope) {
|
|
101
|
+
const commands = [];
|
|
102
|
+
if (!fs.existsSync(dir)) {
|
|
103
|
+
return commands;
|
|
104
|
+
}
|
|
105
|
+
try {
|
|
106
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
107
|
+
for (const entry of entries) {
|
|
108
|
+
if (entry.isFile() && entry.name.endsWith(".md")) {
|
|
109
|
+
const filePath = path.join(dir, entry.name);
|
|
110
|
+
const name = entry.name.slice(0, -3); // Remove .md extension
|
|
111
|
+
try {
|
|
112
|
+
const content = fs.readFileSync(filePath, "utf-8");
|
|
113
|
+
const { frontmatter, body } = parseFrontmatter(content);
|
|
114
|
+
commands.push({
|
|
115
|
+
name,
|
|
116
|
+
description: frontmatter.description || getFirstLineDescription(body),
|
|
117
|
+
filePath,
|
|
118
|
+
scope,
|
|
119
|
+
content: body.trim(),
|
|
120
|
+
arguments: frontmatter.arguments,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
console.warn(`Failed to load command ${name}:`, extractErrorMessage(error));
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
else if (entry.isDirectory()) {
|
|
128
|
+
// Support nested commands (e.g., commands/project/review.md -> /project:review)
|
|
129
|
+
const subDir = path.join(dir, entry.name);
|
|
130
|
+
const subCommands = loadCommandsFromDir(subDir, scope);
|
|
131
|
+
for (const cmd of subCommands) {
|
|
132
|
+
cmd.name = `${entry.name}:${cmd.name}`;
|
|
133
|
+
commands.push(cmd);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
console.warn(`Failed to read commands directory ${dir}:`, extractErrorMessage(error));
|
|
140
|
+
}
|
|
141
|
+
return commands;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Custom Commands Manager
|
|
145
|
+
*/
|
|
146
|
+
export class CustomCommandsManager {
|
|
147
|
+
static instance = null;
|
|
148
|
+
commands = new Map();
|
|
149
|
+
projectDir;
|
|
150
|
+
userDir;
|
|
151
|
+
initialized = false;
|
|
152
|
+
constructor() {
|
|
153
|
+
this.projectDir = path.join(process.cwd(), ".ax-cli", "commands");
|
|
154
|
+
this.userDir = path.join(os.homedir(), ".ax-cli", "commands");
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Get the singleton instance
|
|
158
|
+
*/
|
|
159
|
+
static getInstance() {
|
|
160
|
+
if (!CustomCommandsManager.instance) {
|
|
161
|
+
CustomCommandsManager.instance = new CustomCommandsManager();
|
|
162
|
+
}
|
|
163
|
+
return CustomCommandsManager.instance;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Reset the singleton (for testing)
|
|
167
|
+
*/
|
|
168
|
+
static reset() {
|
|
169
|
+
CustomCommandsManager.instance = null;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Initialize by loading commands from all sources
|
|
173
|
+
*/
|
|
174
|
+
initialize() {
|
|
175
|
+
if (this.initialized)
|
|
176
|
+
return;
|
|
177
|
+
this.commands.clear();
|
|
178
|
+
// Load user-level commands first (lower priority)
|
|
179
|
+
const userCommands = loadCommandsFromDir(this.userDir, "user");
|
|
180
|
+
for (const cmd of userCommands) {
|
|
181
|
+
this.commands.set(cmd.name, cmd);
|
|
182
|
+
}
|
|
183
|
+
// Load project-level commands (higher priority, overrides user)
|
|
184
|
+
const projectCommands = loadCommandsFromDir(this.projectDir, "project");
|
|
185
|
+
for (const cmd of projectCommands) {
|
|
186
|
+
this.commands.set(cmd.name, cmd);
|
|
187
|
+
}
|
|
188
|
+
this.initialized = true;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Get a command by name
|
|
192
|
+
*/
|
|
193
|
+
getCommand(name) {
|
|
194
|
+
if (!this.initialized) {
|
|
195
|
+
this.initialize();
|
|
196
|
+
}
|
|
197
|
+
return this.commands.get(name);
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Get all available commands
|
|
201
|
+
*/
|
|
202
|
+
getAllCommands() {
|
|
203
|
+
if (!this.initialized) {
|
|
204
|
+
this.initialize();
|
|
205
|
+
}
|
|
206
|
+
return Array.from(this.commands.values());
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Check if a command exists
|
|
210
|
+
*/
|
|
211
|
+
hasCommand(name) {
|
|
212
|
+
if (!this.initialized) {
|
|
213
|
+
this.initialize();
|
|
214
|
+
}
|
|
215
|
+
return this.commands.has(name);
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Expand a command with arguments
|
|
219
|
+
*/
|
|
220
|
+
expandCommand(name, args) {
|
|
221
|
+
const command = this.getCommand(name);
|
|
222
|
+
if (!command)
|
|
223
|
+
return null;
|
|
224
|
+
let content = command.content;
|
|
225
|
+
// Replace $ARGUMENTS with the full argument string
|
|
226
|
+
content = content.replace(/\$ARGUMENTS/g, args);
|
|
227
|
+
// Replace $1, $2, etc. with positional arguments
|
|
228
|
+
const argParts = args.split(/\s+/).filter(Boolean);
|
|
229
|
+
for (let i = 0; i < 10; i++) {
|
|
230
|
+
const value = argParts[i] || "";
|
|
231
|
+
content = content.replace(new RegExp(`\\$${i + 1}`, "g"), value);
|
|
232
|
+
}
|
|
233
|
+
return content;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Reload commands from disk
|
|
237
|
+
*/
|
|
238
|
+
reload() {
|
|
239
|
+
this.initialized = false;
|
|
240
|
+
this.initialize();
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Get the singleton custom commands manager instance
|
|
245
|
+
*/
|
|
246
|
+
export function getCustomCommandsManager() {
|
|
247
|
+
return CustomCommandsManager.getInstance();
|
|
248
|
+
}
|
|
249
|
+
//# sourceMappingURL=custom-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-commands.js","sourceRoot":"","sources":["../../src/commands/custom-commands.ts"],"names":[],"mappings":"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"}
|