@defai.digital/ax-cli 4.1.11 → 4.1.15

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 (86) hide show
  1. package/.ax-cli/settings.json +1 -0
  2. package/README.md +140 -589
  3. package/bin/ax-cli +6 -0
  4. package/dist/agent/dependency-resolver.d.ts +7 -0
  5. package/dist/agent/dependency-resolver.js +46 -18
  6. package/dist/agent/dependency-resolver.js.map +1 -1
  7. package/dist/agent/execution/tool-executor.d.ts +4 -0
  8. package/dist/agent/execution/tool-executor.js +76 -52
  9. package/dist/agent/execution/tool-executor.js.map +1 -1
  10. package/dist/agent/parallel-tools.d.ts +4 -0
  11. package/dist/agent/parallel-tools.js +65 -24
  12. package/dist/agent/parallel-tools.js.map +1 -1
  13. package/dist/agent/planning/plan-executor.d.ts +0 -5
  14. package/dist/agent/planning/plan-executor.js +23 -6
  15. package/dist/agent/planning/plan-executor.js.map +1 -1
  16. package/dist/agent/streaming/stream-handler.js +7 -4
  17. package/dist/agent/streaming/stream-handler.js.map +1 -1
  18. package/dist/agent/subagent-orchestrator.d.ts +35 -2
  19. package/dist/agent/subagent-orchestrator.js +188 -146
  20. package/dist/agent/subagent-orchestrator.js.map +1 -1
  21. package/dist/agent/subagent-types.js +3 -1
  22. package/dist/agent/subagent-types.js.map +1 -1
  23. package/dist/agent/subagent.d.ts +15 -4
  24. package/dist/agent/subagent.js +91 -72
  25. package/dist/agent/subagent.js.map +1 -1
  26. package/dist/design/figma-alias.d.ts +77 -0
  27. package/dist/design/figma-alias.js +246 -0
  28. package/dist/design/figma-alias.js.map +1 -1
  29. package/dist/design/figma-client.d.ts +4 -0
  30. package/dist/design/figma-client.js +24 -4
  31. package/dist/design/figma-client.js.map +1 -1
  32. package/dist/design/figma-map.js +78 -6
  33. package/dist/design/figma-map.js.map +1 -1
  34. package/dist/design/figma-tokens.js +6 -2
  35. package/dist/design/figma-tokens.js.map +1 -1
  36. package/dist/design/index.d.ts +1 -1
  37. package/dist/design/index.js +3 -1
  38. package/dist/design/index.js.map +1 -1
  39. package/dist/design/types.d.ts +9 -0
  40. package/dist/index.js +1 -0
  41. package/dist/index.js.map +1 -1
  42. package/dist/mcp/client-v2.js +4 -0
  43. package/dist/mcp/client-v2.js.map +1 -1
  44. package/dist/mcp/config-detector.js +3 -4
  45. package/dist/mcp/config-detector.js.map +1 -1
  46. package/dist/mcp/debug.d.ts +207 -0
  47. package/dist/mcp/debug.js +398 -0
  48. package/dist/mcp/debug.js.map +1 -0
  49. package/dist/mcp/index.d.ts +1 -0
  50. package/dist/mcp/index.js +4 -0
  51. package/dist/mcp/index.js.map +1 -1
  52. package/dist/mcp/reconnection.js +6 -3
  53. package/dist/mcp/reconnection.js.map +1 -1
  54. package/dist/mcp/validation.js +15 -6
  55. package/dist/mcp/validation.js.map +1 -1
  56. package/dist/memory/index.d.ts +1 -0
  57. package/dist/memory/index.js +2 -0
  58. package/dist/memory/index.js.map +1 -1
  59. package/dist/memory/provider-context-store.d.ts +127 -0
  60. package/dist/memory/provider-context-store.js +385 -0
  61. package/dist/memory/provider-context-store.js.map +1 -0
  62. package/dist/sdk/errors.d.ts +2 -0
  63. package/dist/sdk/errors.js +2 -0
  64. package/dist/sdk/errors.js.map +1 -1
  65. package/dist/sdk/index.d.ts +633 -62
  66. package/dist/sdk/index.js +854 -116
  67. package/dist/sdk/index.js.map +1 -1
  68. package/dist/sdk/testing.d.ts +46 -4
  69. package/dist/sdk/testing.js +58 -6
  70. package/dist/sdk/testing.js.map +1 -1
  71. package/dist/sdk/version.d.ts +13 -9
  72. package/dist/sdk/version.js +13 -9
  73. package/dist/sdk/version.js.map +1 -1
  74. package/dist/utils/file-lock.d.ts +141 -0
  75. package/dist/utils/file-lock.js +559 -0
  76. package/dist/utils/file-lock.js.map +1 -0
  77. package/dist/utils/provider-context.d.ts +243 -0
  78. package/dist/utils/provider-context.js +421 -0
  79. package/dist/utils/provider-context.js.map +1 -0
  80. package/dist/utils/provider-file-cache.d.ts +91 -0
  81. package/dist/utils/provider-file-cache.js +165 -0
  82. package/dist/utils/provider-file-cache.js.map +1 -0
  83. package/dist/utils/provider-settings.d.ts +181 -0
  84. package/dist/utils/provider-settings.js +450 -0
  85. package/dist/utils/provider-settings.js.map +1 -0
  86. package/package.json +4 -3
@@ -14,6 +14,10 @@
14
14
  * - parallel: Safe to run concurrently (read-only, isolated external processes)
15
15
  * - sequential: Must run one at a time (file writes, stateful operations)
16
16
  */
17
+ /**
18
+ * BUG FIX: Added missing tool classifications to ensure all tools
19
+ * have explicit parallel/sequential classification
20
+ */
17
21
  export const TOOL_CLASSIFICATION = {
18
22
  // Read-only tools - safe to parallelize
19
23
  view_file: "parallel",
@@ -29,15 +33,28 @@ export const TOOL_CLASSIFICATION = {
29
33
  // Bash - conservative: sequential by default (may have side effects)
30
34
  bash: "sequential",
31
35
  bash_output: "parallel", // Read-only (checks output of background task)
32
- // Todo tool - stateful, keep sequential
36
+ // Todo tools - stateful, keep sequential
33
37
  todo: "sequential",
38
+ create_todo_list: "sequential",
39
+ update_todo_list: "sequential",
34
40
  // Ask user - requires user interaction, sequential
35
41
  ask_user: "sequential",
36
- // Design tools - may write files
42
+ // Design tools - read-only are parallel, write operations are sequential
37
43
  figma_export: "sequential",
38
44
  figma_get_styles: "parallel",
39
45
  figma_get_components: "parallel",
40
46
  figma_resolve_alias: "parallel",
47
+ figma_get_file: "parallel", // Read-only file metadata
48
+ figma_audit_tokens: "parallel", // Read-only analysis
49
+ figma_get_variables: "parallel", // Read-only variable fetch
50
+ // BUG FIX: Add missing tool classifications
51
+ // File viewing tools - read-only
52
+ read_file: "parallel",
53
+ // Directory listing - read-only
54
+ ls: "parallel",
55
+ // Web tools - isolated external operations
56
+ web_search: "parallel",
57
+ web_fetch: "parallel",
41
58
  };
42
59
  /**
43
60
  * Check if a tool is safe for parallel execution
@@ -89,12 +106,12 @@ export const DEFAULT_PARALLEL_CONFIG = {
89
106
  * @returns Array of results in the same order as input
90
107
  */
91
108
  export async function executeToolsInParallel(toolCalls, executor, config = {}) {
92
- const { maxConcurrency = DEFAULT_PARALLEL_CONFIG.maxConcurrency } = config;
109
+ const { maxConcurrency = DEFAULT_PARALLEL_CONFIG.maxConcurrency, enabled = DEFAULT_PARALLEL_CONFIG.enabled, } = config;
93
110
  if (toolCalls.length === 0) {
94
111
  return [];
95
112
  }
96
- // If only one tool or concurrency is 1, execute sequentially
97
- if (toolCalls.length === 1 || maxConcurrency === 1) {
113
+ // BUG FIX: Check enabled flag - if disabled, execute all tools sequentially
114
+ if (!enabled) {
98
115
  const results = [];
99
116
  for (const toolCall of toolCalls) {
100
117
  try {
@@ -111,37 +128,61 @@ export async function executeToolsInParallel(toolCalls, executor, config = {}) {
111
128
  }
112
129
  return results;
113
130
  }
114
- // Use Promise.allSettled with concurrency limiting
115
- const results = [];
116
- const pending = [];
117
- let index = 0;
118
- const executeNext = async () => {
119
- const currentIndex = index++;
120
- if (currentIndex >= toolCalls.length)
121
- return;
122
- const toolCall = toolCalls[currentIndex];
131
+ // REFACTOR: Helper to execute single tool with error handling
132
+ // BUG FIX: Use proper discriminated union instead of unsafe type coercion
133
+ const executeSingle = async (toolCall) => {
123
134
  try {
124
135
  const result = await executor(toolCall);
125
- results[currentIndex] = { toolCall, result };
136
+ return { toolCall, result };
126
137
  }
127
138
  catch (error) {
128
- results[currentIndex] = {
139
+ // Return with result as undefined - callers must check error field
140
+ // This is safer than casting undefined to T
141
+ return {
129
142
  toolCall,
130
143
  result: undefined,
131
144
  error: error instanceof Error ? error : new Error(String(error)),
132
145
  };
133
146
  }
134
- // Execute next if there are more
135
- if (index < toolCalls.length) {
136
- await executeNext();
147
+ };
148
+ // If only one tool or concurrency is 1, execute sequentially
149
+ if (toolCalls.length === 1 || maxConcurrency === 1) {
150
+ const results = [];
151
+ for (const toolCall of toolCalls) {
152
+ results.push(await executeSingle(toolCall));
153
+ }
154
+ return results;
155
+ }
156
+ // Use concurrency-limited parallel execution with proper work-stealing pattern
157
+ const results = new Array(toolCalls.length);
158
+ let nextIndex = 0;
159
+ // BUG FIX: Use synchronous index access - JavaScript is single-threaded
160
+ // so synchronous operations on nextIndex are atomic. The previous async
161
+ // getNextIndex was unnecessary and the indexLock was never actually used.
162
+ const getNextIndex = () => {
163
+ if (nextIndex >= toolCalls.length)
164
+ return -1;
165
+ const current = nextIndex;
166
+ nextIndex++;
167
+ return current;
168
+ };
169
+ const executeNext = async () => {
170
+ while (true) {
171
+ // Get next index synchronously (atomic in JS single-threaded model)
172
+ const currentIndex = getNextIndex();
173
+ if (currentIndex === -1)
174
+ return; // No more work
175
+ // Execute the tool
176
+ results[currentIndex] = await executeSingle(toolCalls[currentIndex]);
137
177
  }
138
178
  };
139
- // Start initial batch up to maxConcurrency
140
- const initialBatch = Math.min(maxConcurrency, toolCalls.length);
141
- for (let i = 0; i < initialBatch; i++) {
142
- pending.push(executeNext());
179
+ // Start worker pool up to maxConcurrency
180
+ const workers = [];
181
+ const workerCount = Math.min(maxConcurrency, toolCalls.length);
182
+ for (let i = 0; i < workerCount; i++) {
183
+ workers.push(executeNext());
143
184
  }
144
- await Promise.all(pending);
185
+ await Promise.all(workers);
145
186
  return results;
146
187
  }
147
188
  //# sourceMappingURL=parallel-tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parallel-tools.js","sourceRoot":"","sources":["../../src/agent/parallel-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parallel-tools.js","sourceRoot":"","sources":["../../src/agent/parallel-tools.ts"],"names":[],"mappings":"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"}
@@ -44,11 +44,6 @@ export interface PlanExecutorConfig {
44
44
  /** Callback to temporarily disable planning during phase execution */
45
45
  setPlanningEnabled?: (enabled: boolean) => void;
46
46
  }
47
- /**
48
- * Plan Executor
49
- *
50
- * Executes multi-phase task plans with progress tracking.
51
- */
52
47
  export declare class PlanExecutor {
53
48
  private config;
54
49
  constructor(config: PlanExecutorConfig);
@@ -14,6 +14,8 @@ import { PLANNER_CONFIG } from "../../constants.js";
14
14
  *
15
15
  * Executes multi-phase task plans with progress tracking.
16
16
  */
17
+ // REFACTOR: Constant for file-modifying tools (avoid recreating in loop)
18
+ const FILE_MODIFYING_TOOLS = new Set(['create_file', 'str_replace_editor', 'multi_edit']);
17
19
  export class PlanExecutor {
18
20
  config;
19
21
  constructor(config) {
@@ -64,13 +66,22 @@ export class PlanExecutor {
64
66
  if (!assistantMessage.tool_calls || assistantMessage.tool_calls.length === 0) {
65
67
  break; // No more tool calls, phase complete
66
68
  }
69
+ // BUG FIX: Increment toolRounds after checking for tool calls
70
+ // but count it here so we can check limit before executing
67
71
  toolRounds++;
72
+ if (toolRounds >= maxPhaseRounds) {
73
+ // Add a warning message about hitting the limit
74
+ this.config.emitter.emit("phase:warning", {
75
+ phase,
76
+ planId: context.planId,
77
+ message: `Phase hit tool round limit (${maxPhaseRounds})`,
78
+ });
79
+ }
68
80
  // Execute tools and track file modifications
69
81
  for (const toolCall of assistantMessage.tool_calls) {
70
82
  const result = await this.config.executeTool(toolCall);
71
- // Track file modifications from text_editor tool
72
- if (toolCall.function.name === "text_editor" ||
73
- toolCall.function.name === "str_replace_editor") {
83
+ // REFACTOR: Use Set.has() for O(1) lookup instead of Array.includes()
84
+ if (FILE_MODIFYING_TOOLS.has(toolCall.function.name)) {
74
85
  const args = this.config.parseToolArgumentsCached(toolCall);
75
86
  if (args.path && result.success) {
76
87
  if (!filesModified.includes(args.path)) {
@@ -172,7 +183,8 @@ export class PlanExecutor {
172
183
  output += `**Request:** ${plan.originalPrompt.slice(0, 100)}${plan.originalPrompt.length > 100 ? "..." : ""}\n\n`;
173
184
  output += `**Phases (${plan.phases.length}):**\n`;
174
185
  for (const phase of plan.phases) {
175
- const riskIcon = phase.riskLevel === "high" ? "⚠️" : phase.riskLevel === "medium" ? "△" : "";
186
+ // BUG FIX: Consistent risk icons for all levels (low was empty)
187
+ const riskIcon = phase.riskLevel === "high" ? "⚠️" : phase.riskLevel === "medium" ? "△" : "○";
176
188
  output += ` ${phase.index + 1}. ${phase.name} ${riskIcon}\n`;
177
189
  }
178
190
  output += `\n**Estimated Duration:** ~${Math.ceil(plan.estimatedDuration / 60000)} min\n\n`;
@@ -184,8 +196,13 @@ export class PlanExecutor {
184
196
  */
185
197
  formatPlanResult(result) {
186
198
  let output = "\n---\n\n**📋 Plan Execution Complete**\n\n";
187
- const successful = result.phaseResults.filter((r) => r.success).length;
188
- const failed = result.phaseResults.filter((r) => !r.success).length;
199
+ // REFACTOR: Single pass through results instead of two filter operations
200
+ let successful = 0;
201
+ for (const r of result.phaseResults) {
202
+ if (r.success)
203
+ successful++;
204
+ }
205
+ const failed = result.phaseResults.length - successful;
189
206
  output += `**Results:** ${successful}/${result.phaseResults.length} phases successful`;
190
207
  if (failed > 0) {
191
208
  output += ` (${failed} failed)`;
@@ -1 +1 @@
1
- {"version":3,"file":"plan-executor.js","sourceRoot":"","sources":["../../../src/agent/planning/plan-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-executor.js","sourceRoot":"","sources":["../../../src/agent/planning/plan-executor.ts"],"names":[],"mappings":"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"}
@@ -32,11 +32,14 @@ export class StreamHandler {
32
32
  if (acc[key] === undefined || acc[key] === null) {
33
33
  // Initial value assignment
34
34
  acc[key] = value;
35
- // Clean up index properties from tool calls
35
+ // BUG FIX: Clean up index properties from tool calls after assignment
36
+ // Using explicit index loop to avoid issues with mutation during iteration
36
37
  if (Array.isArray(acc[key])) {
37
- for (const arr of acc[key]) {
38
- if (arr && typeof arr === 'object') {
39
- delete arr.index;
38
+ const arr = acc[key];
39
+ for (let i = 0; i < arr.length; i++) {
40
+ const item = arr[i];
41
+ if (item && typeof item === 'object' && 'index' in item) {
42
+ delete item.index;
40
43
  }
41
44
  }
42
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"stream-handler.js","sourceRoot":"","sources":["../../../src/agent/streaming/stream-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream-handler.js","sourceRoot":"","sources":["../../../src/agent/streaming/stream-handler.ts"],"names":[],"mappings":"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"}
@@ -37,9 +37,10 @@ export declare class SubagentOrchestrator extends EventEmitter {
37
37
  * Alias for spawn() for backward compatibility
38
38
  */
39
39
  spawnSubagent(role: SubagentRole, config?: Partial<SubagentConfig>): Promise<Subagent>;
40
+ private static readonly EVENT_MAPPINGS;
40
41
  /**
41
42
  * Forward events from subagent to orchestrator
42
- * Stores listeners for proper cleanup to prevent memory leaks
43
+ * REFACTOR: Data-driven approach reduces repetitive handler code
43
44
  */
44
45
  private forwardSubagentEvents;
45
46
  /**
@@ -50,12 +51,18 @@ export declare class SubagentOrchestrator extends EventEmitter {
50
51
  * Execute multiple tasks in parallel
51
52
  */
52
53
  executeParallel(tasks: SubagentTask[]): Promise<SubagentResult[]>;
54
+ /**
55
+ * REFACTOR: Extract failed result creation to reduce duplication
56
+ */
57
+ private createFailedResult;
53
58
  /**
54
59
  * Execute a batch of tasks in parallel
55
60
  */
56
61
  private executeBatch;
62
+ private static readonly ROLE_PATTERNS;
57
63
  /**
58
64
  * Infer subagent role from task description
65
+ * Uses pre-compiled regex patterns for performance
59
66
  */
60
67
  private inferRoleFromTask;
61
68
  /**
@@ -98,6 +105,28 @@ export declare class SubagentOrchestrator extends EventEmitter {
98
105
  * Clear all results
99
106
  */
100
107
  clearResults(): void;
108
+ /**
109
+ * Add a task to the queue for later processing
110
+ * BUG FIX: taskQueue was declared but never used - now provides queue functionality
111
+ */
112
+ queueTask(task: SubagentTask): void;
113
+ /**
114
+ * Add multiple tasks to the queue
115
+ */
116
+ queueTasks(tasks: SubagentTask[]): void;
117
+ /**
118
+ * Process all queued tasks
119
+ * Clears the queue after processing
120
+ */
121
+ processQueue(): Promise<SubagentResult[]>;
122
+ /**
123
+ * Get current queue length
124
+ */
125
+ getQueueLength(): number;
126
+ /**
127
+ * Clear the task queue without processing
128
+ */
129
+ clearQueue(): void;
101
130
  /**
102
131
  * Get all active subagents (alias for tests)
103
132
  */
@@ -108,6 +137,7 @@ export declare class SubagentOrchestrator extends EventEmitter {
108
137
  monitor(subagentId: string): SubagentStatus | null;
109
138
  /**
110
139
  * Get orchestrator statistics
140
+ * REFACTOR: Single pass through results instead of two filter operations
111
141
  */
112
142
  getStats(): {
113
143
  activeAgents: number;
@@ -117,6 +147,8 @@ export declare class SubagentOrchestrator extends EventEmitter {
117
147
  };
118
148
  /**
119
149
  * Spawn multiple subagents in parallel
150
+ * BUG FIX: Respects maxConcurrentAgents limit by spawning sequentially
151
+ * if the total would exceed the limit
120
152
  */
121
153
  spawnParallel(configs: Array<{
122
154
  role: SubagentRole;
@@ -124,6 +156,7 @@ export declare class SubagentOrchestrator extends EventEmitter {
124
156
  }>): Promise<Subagent[]>;
125
157
  /**
126
158
  * Send a message to a subagent
159
+ * BUG FIX: Actually call receiveMessage on the subagent instead of just emitting event
127
160
  */
128
- sendMessage(subagentId: string, message: string): Promise<void>;
161
+ sendMessage(subagentId: string, message: string, type?: 'instruction' | 'cancellation' | 'query'): Promise<void>;
129
162
  }