@defai.digital/ax-cli 4.1.10 → 4.1.14
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/.ax-cli/settings.json +1 -0
- package/README.md +140 -589
- package/dist/agent/dependency-resolver.d.ts +7 -0
- package/dist/agent/dependency-resolver.js +46 -18
- package/dist/agent/dependency-resolver.js.map +1 -1
- package/dist/agent/execution/tool-executor.d.ts +4 -0
- package/dist/agent/execution/tool-executor.js +76 -52
- package/dist/agent/execution/tool-executor.js.map +1 -1
- package/dist/agent/parallel-tools.d.ts +4 -0
- package/dist/agent/parallel-tools.js +65 -24
- package/dist/agent/parallel-tools.js.map +1 -1
- package/dist/agent/planning/plan-executor.d.ts +0 -5
- package/dist/agent/planning/plan-executor.js +23 -6
- package/dist/agent/planning/plan-executor.js.map +1 -1
- package/dist/agent/streaming/stream-handler.js +7 -4
- package/dist/agent/streaming/stream-handler.js.map +1 -1
- package/dist/agent/subagent-orchestrator.d.ts +35 -2
- package/dist/agent/subagent-orchestrator.js +188 -146
- package/dist/agent/subagent-orchestrator.js.map +1 -1
- package/dist/agent/subagent-types.js +3 -1
- package/dist/agent/subagent-types.js.map +1 -1
- package/dist/agent/subagent.d.ts +15 -4
- package/dist/agent/subagent.js +91 -72
- package/dist/agent/subagent.js.map +1 -1
- package/dist/design/figma-alias.d.ts +77 -0
- package/dist/design/figma-alias.js +246 -0
- package/dist/design/figma-alias.js.map +1 -1
- package/dist/design/figma-client.d.ts +4 -0
- package/dist/design/figma-client.js +24 -4
- package/dist/design/figma-client.js.map +1 -1
- package/dist/design/figma-map.js +78 -6
- package/dist/design/figma-map.js.map +1 -1
- package/dist/design/figma-tokens.js +6 -2
- package/dist/design/figma-tokens.js.map +1 -1
- package/dist/design/index.d.ts +1 -1
- package/dist/design/index.js +3 -1
- package/dist/design/index.js.map +1 -1
- package/dist/design/types.d.ts +9 -0
- package/dist/mcp/client-v2.js +4 -0
- package/dist/mcp/client-v2.js.map +1 -1
- package/dist/mcp/config-detector.js +3 -4
- package/dist/mcp/config-detector.js.map +1 -1
- package/dist/mcp/debug.d.ts +207 -0
- package/dist/mcp/debug.js +398 -0
- package/dist/mcp/debug.js.map +1 -0
- package/dist/mcp/index.d.ts +1 -0
- package/dist/mcp/index.js +4 -0
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/reconnection.js +6 -3
- package/dist/mcp/reconnection.js.map +1 -1
- package/dist/mcp/validation.js +15 -6
- package/dist/mcp/validation.js.map +1 -1
- package/dist/memory/index.d.ts +1 -0
- package/dist/memory/index.js +2 -0
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/provider-context-store.d.ts +127 -0
- package/dist/memory/provider-context-store.js +385 -0
- package/dist/memory/provider-context-store.js.map +1 -0
- package/dist/sdk/errors.d.ts +2 -0
- package/dist/sdk/errors.js +2 -0
- package/dist/sdk/errors.js.map +1 -1
- package/dist/sdk/index.d.ts +633 -62
- package/dist/sdk/index.js +854 -116
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/testing.d.ts +46 -4
- package/dist/sdk/testing.js +58 -6
- package/dist/sdk/testing.js.map +1 -1
- package/dist/sdk/version.d.ts +13 -9
- package/dist/sdk/version.js +13 -9
- package/dist/sdk/version.js.map +1 -1
- package/dist/utils/file-lock.d.ts +141 -0
- package/dist/utils/file-lock.js +559 -0
- package/dist/utils/file-lock.js.map +1 -0
- package/dist/utils/provider-context.d.ts +243 -0
- package/dist/utils/provider-context.js +421 -0
- package/dist/utils/provider-context.js.map +1 -0
- package/dist/utils/provider-file-cache.d.ts +91 -0
- package/dist/utils/provider-file-cache.js +165 -0
- package/dist/utils/provider-file-cache.js.map +1 -0
- package/dist/utils/provider-settings.d.ts +181 -0
- package/dist/utils/provider-settings.js +450 -0
- package/dist/utils/provider-settings.js.map +1 -0
- package/package.json +2 -2
|
@@ -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
|
|
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 -
|
|
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
|
-
//
|
|
97
|
-
if (
|
|
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
|
-
//
|
|
115
|
-
|
|
116
|
-
const
|
|
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
|
-
|
|
136
|
+
return { toolCall, result };
|
|
126
137
|
}
|
|
127
138
|
catch (error) {
|
|
128
|
-
|
|
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
|
-
|
|
135
|
-
|
|
136
|
-
|
|
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
|
|
140
|
-
const
|
|
141
|
-
|
|
142
|
-
|
|
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(
|
|
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":"AAAA;;;;;;;;GAQG;AASH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAsC;IACpE,wCAAwC;IACxC,SAAS,EAAE,UAAU;IACrB,MAAM,EAAE,UAAU;IAClB,cAAc,EAAE,UAAU;IAE1B,yDAAyD;IACzD,QAAQ,EAAE,UAAU;IACpB,kBAAkB,EAAE,UAAU,EAAE,yCAAyC;IAEzE,wDAAwD;IACxD,WAAW,EAAE,YAAY;IACzB,kBAAkB,EAAE,YAAY;IAChC,UAAU,EAAE,YAAY;IAExB,qEAAqE;IACrE,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,UAAU,EAAE,+CAA+C;IAExE,
|
|
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
|
-
//
|
|
72
|
-
if (toolCall.function.name
|
|
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
|
-
|
|
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
|
-
|
|
188
|
-
|
|
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":"AAAA;;;;;;;GAOG;AAaH,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AA+BpD;;;;GAIG;AACH,MAAM,OAAO,YAAY;IACf,MAAM,CAAqB;IAEnC,YAAY,MAA0B;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,KAAgB,EAChB,OAIC,EACD,QAAsB,EACtB,YAAyB;QAEzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC1E,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,IAAI,oBAAoB,GAAG,EAAE,CAAC;QAE9B,2BAA2B;QAC3B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAE7E,oFAAoF;QACpF,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,CAAC;YACH,8BAA8B;YAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAE1D,gCAAgC;YAChC,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,WAAW;aACrB,CAAC,CAAC;YAEH,uCAAuC;YACvC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3C,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,kBAAkB;YAE1E,OAAO,UAAU,GAAG,cAAc,EAAE,CAAC;gBACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBACnG,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;gBAEtD,IAAI,CAAC,gBAAgB;oBAAE,MAAM;gBAE7B,mDAAmD;gBACnD,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;oBAC7B,oBAAoB,GAAG,gBAAgB,CAAC,OAAO,CAAC;gBAClD,CAAC;gBAED,kBAAkB;gBAClB,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,gBAAgB,CAAC,OAAO,IAAI,EAAE;oBACvC,UAAU,EAAE,gBAAgB,CAAC,UAAU;iBAC1B,CAAC,CAAC;gBAEjB,uBAAuB;gBACvB,IAAI,CAAC,gBAAgB,CAAC,UAAU,IAAI,gBAAgB,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC7E,MAAM,CAAC,qCAAqC;gBAC9C,CAAC;gBAED,UAAU,EAAE,CAAC;
|
|
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
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAuB/D;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IAChB,MAAM,CAAsB;IAEpC,YAAY,MAA2B;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACK,iBAAiB,CACvB,GAA4B,EAC5B,KAA8B;QAE9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC1C,SAAS,CAAC,6BAA6B;YACzC,CAAC;YAED,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;gBAChD,2BAA2B;gBAC3B,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACjB,
|
|
1
|
+
{"version":3,"file":"stream-handler.js","sourceRoot":"","sources":["../../../src/agent/streaming/stream-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAuB/D;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IAChB,MAAM,CAAsB;IAEpC,YAAY,MAA2B;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACK,iBAAiB,CACvB,GAA4B,EAC5B,KAA8B;QAE9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC1C,SAAS,CAAC,6BAA6B;YACzC,CAAC;YAED,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;gBAChD,2BAA2B;gBAC3B,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACjB,sEAAsE;gBACtE,2EAA2E;gBAC3E,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAc,CAAC;oBAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACpC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;wBACpB,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;4BACxD,OAAQ,IAAgC,CAAC,KAAK,CAAC;wBACjD,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACrE,2DAA2D;gBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;YACpB,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3D,iCAAiC;gBACjC,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAc,CAAC;gBACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACtC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI;wBAAE,SAAS;oBAC1D,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;wBACjB,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBACnB,CAAC;oBACD,mCAAmC;oBACnC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAA4B,EAAE,KAAK,CAAC,CAAC,CAA4B,CAAC,CAAC;gBACtG,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACrE,iBAAiB;gBACjB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAA4B,EAAE,KAAgC,CAAC,CAAC;YAChG,CAAC;iBAAM,CAAC;gBACN,oCAAoC;gBACpC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACnB,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;OAEG;IACK,cAAc,CACpB,QAAiC,EACjC,IAAsB;QAEtB,gDAAgD;QAChD,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;YAC3E,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAgC,CAAC,CAAC;IAC5F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAC,aAAa,CAClB,MAAuC,EACvC,SAAoB;QAEpB,IAAI,kBAAkB,GAA4B,EAAE,CAAC;QACrD,IAAI,kBAAkB,GAAG,EAAE,CAAC;QAC5B,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,SAAS,GAAmC,IAAI,CAAC;QAErD,0EAA0E;QAC1E,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACjC,+CAA+C;gBAC/C,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;oBAC9B,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;oBACvC,OAAO,EAAE,WAAW,EAAE,EAAwB,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;gBAChF,CAAC;gBAED,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBAAE,SAAS;gBAElC,8DAA8D;gBAC9D,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChB,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC1B,CAAC;gBAED,uCAAuC;gBACvC,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;gBAEpE,oFAAoF;gBACpF,MAAM,YAAY,GAAG,kBAAkB,CAAC,UAAwD,CAAC;gBACjG,IAAI,CAAC,gBAAgB,IAAI,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChG,iFAAiF;oBACjF,MAAM,kBAAkB,GAAkB,EAAE,CAAC;oBAC7C,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;wBAC9B,IACE,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,IAAI;4BACrC,OAAO,EAAE,CAAC,EAAE,KAAK,QAAQ;4BACzB,EAAE,CAAC,IAAI,KAAK,UAAU;4BACtB,OAAO,EAAE,CAAC,QAAQ,KAAK,QAAQ,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI;4BACvD,OAAQ,EAAE,CAAC,QAAoC,CAAC,IAAI,KAAK,QAAQ,EACjE,CAAC;4BACD,MAAM,OAAO,GAAI,EAAE,CAAC,QAAoC,CAAC,SAAS,CAAC;4BACnE,kBAAkB,CAAC,IAAI,CAAC;gCACtB,EAAE,EAAE,EAAE,CAAC,EAAY;gCACnB,IAAI,EAAE,UAAU;gCAChB,QAAQ,EAAE;oCACR,IAAI,EAAG,EAAE,CAAC,QAAoC,CAAC,IAAc;oCAC7D,SAAS,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC;iCACjF;6BACF,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;oBACD,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAClC,MAAM;4BACJ,IAAI,EAAE,YAAY;4BAClB,SAAS,EAAE,kBAAkB;yBAC9B,CAAC;wBACF,gBAAgB,GAAG,IAAI,CAAC;oBAC1B,CAAC;gBACH,CAAC;gBAED,mDAAmD;gBACnD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;oBAC/C,MAAM;wBACJ,IAAI,EAAE,WAAW;wBACjB,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB;qBAC3D,CAAC;gBACJ,CAAC;gBAED,6BAA6B;gBAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;oBACrC,kBAAkB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;oBAErD,MAAM;wBACJ,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;qBACxC,CAAC;oBAEF,oDAAoD;oBACpD,wEAAwE;oBACxE,MAAM,UAAU,GAAG,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC;oBACnD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACvB,IAAI,GAAG,GAAG,UAAU,GAAG,IAAI,EAAE,CAAC,CAAC,8BAA8B;wBAC3D,SAAS,CAAC,eAAe,CAAC,KAAK,GAAG,GAAG,CAAC;wBAEtC,2DAA2D;wBAC3D,MAAM,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;4BACrE,CAAC,kBAAkB,CAAC,UAAU;gCAC5B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gCACtE,CAAC,CAAC,CAAC,CAAC,CAAC;wBACT,2EAA2E;wBAC3E,SAAS,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAC1C,SAAS,CAAC,iBAAiB,CAAC,KAAK,EACjC,qBAAqB,CACtB,CAAC;wBAEF,MAAM;4BACJ,IAAI,EAAE,aAAa;4BACnB,UAAU,EAAE,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,iBAAiB,CAAC,KAAK;yBACtE,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,+DAA+D;YAC/D,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;gBAClC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBAEjD,sEAAsE;gBACtE,MAAM,WAAW,GAAG,SAAS,CAAC,YAAkC,CAAC;gBACjE,MAAM,gBAAgB,GAAG,SAAS,CAAC,iBAAuC,CAAC;gBAC3E,IAAI,WAAW,EAAE,CAAC;oBAChB,SAAS,CAAC,iBAAiB,CAAC,KAAK,GAAG,gBAAgB,IAAI,CAAC,CAAC;oBAC1D,MAAM;wBACJ,IAAI,EAAE,aAAa;wBACnB,UAAU,EAAE,WAAW;qBACxB,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,+BAA+B;YAC/B,MAAM,MAAM,GAAiB;gBAC3B,WAAW,EAAE,kBAAwC;gBACrD,OAAO,EAAE,kBAAkB;gBAC3B,OAAO,EAAE,gBAAgB;aAC1B,CAAC;YACF,MAAM,MAAM,CAAC;YACb,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,8EAA8E;YAC9E,IAAI,CAAC;gBACH,MAAM,gBAAgB,GAAG,MAA4E,CAAC;gBACtG,IAAI,OAAO,gBAAgB,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBAClD,MAAM,gBAAgB,CAAC,MAAM,EAAE,CAAC;gBAClC,CAAC;YACH,CAAC;YAAC,OAAO,YAAY,EAAE,CAAC;gBACtB,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IAC5B,CAAC;CACF"}
|
|
@@ -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
|
-
*
|
|
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
|
}
|