@google/gemini-cli-core 0.9.0-nightly.20251002.4a70d6f2 → 0.9.0-nightly.20251002.a6af7bbb

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.
@@ -8,6 +8,7 @@ import { ReadFileTool } from '../tools/read-file.js';
8
8
  import { GLOB_TOOL_NAME } from '../tools/tool-names.js';
9
9
  import { GrepTool } from '../tools/grep.js';
10
10
  import { DEFAULT_GEMINI_MODEL } from '../config/models.js';
11
+ import { Type } from '@google/genai';
11
12
  const CODEBASE_REPORT_MARKDOWN = `<CodebaseReport>
12
13
  <SummaryOfFindings>
13
14
  The user's objective is to remove an optional \`config\` property from the command context. The investigation identified that the \`CommandContext\` interface, defined in \`packages/cli/src/ui/commands/types.ts\`, contains a nullable \`config: Config | null\` property. A \`TODO\` comment confirms the intent to make this property non-nullable.
@@ -73,17 +74,22 @@ export const CodebaseInvestigatorAgent = {
73
74
  },
74
75
  },
75
76
  outputConfig: {
76
- description: `A detailed markdown report summarizing the findings of the codebase investigation and insights that are the foundation for planning and executing any code modification related to the objective.
77
+ outputName: 'report',
78
+ description: 'The final investigation report.',
79
+ schema: {
80
+ type: Type.STRING,
81
+ description: `A detailed markdown report summarizing the findings of the codebase investigation and insights that are the foundation for planning and executing any code modification related to the objective.
77
82
  # Report Format
78
83
  The final report should be structured markdown, clearly answering the investigation focus, citing the files, symbols, architectural patterns and how they relate to the given investigation focus.
79
84
  The report should strictly follow a format like this example:
80
85
  ${CODEBASE_REPORT_MARKDOWN}
86
+
87
+ Completion Criteria:
88
+ - The report must directly address the initial \`objective\`.
89
+ - Cite specific files, functions, or configuration snippets and symbols as evidence for your findings.
90
+ - Conclude with a xml markdown summary of the key files, symbols, technologies, architectural patterns, and conventions discovered.
81
91
  `,
82
- completion_criteria: [
83
- 'The report must directly address the initial `objective`.',
84
- 'Cite specific files, functions, or configuration snippets and symbols as evidence for your findings.',
85
- 'Conclude with a xml markdown summary of the key files, symbols, technologies, architectural patterns, and conventions discovered.',
86
- ],
92
+ },
87
93
  },
88
94
  modelConfig: {
89
95
  model: DEFAULT_GEMINI_MODEL,
@@ -1 +1 @@
1
- {"version":3,"file":"codebase-investigator.js","sourceRoot":"","sources":["../../../src/agents/codebase-investigator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA2Cf,CAAC;AAEnB;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAoB;IACxD,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,6BAA6B;IAC1C,WAAW,EAAE;;kHAEmG;IAChH,WAAW,EAAE;QACX,MAAM,EAAE;YACN,SAAS,EAAE;gBACT,WAAW,EAAE;4HACuG;gBACpH,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;SACF;KACF;IACD,YAAY,EAAE;QACZ,WAAW,EAAE;;;;EAIf,wBAAwB;CACzB;QACG,mBAAmB,EAAE;YACnB,2DAA2D;YAC3D,sGAAsG;YACtG,mIAAmI;SACpI;KACF;IAED,WAAW,EAAE;QACX,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,IAAI;QACX,cAAc,EAAE,CAAC,CAAC;KACnB;IAED,SAAS,EAAE;QACT,gBAAgB,EAAE,CAAC;QACnB,SAAS,EAAE,EAAE;KACd;IAED,UAAU,EAAE;QACV,wCAAwC;QACxC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC;KACvE;IAED,YAAY,EAAE;QACZ,KAAK,EAAE;;;aAGE;QACT,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqDhB,wBAAwB;CACzB;KACE;CACF,CAAC"}
1
+ {"version":3,"file":"codebase-investigator.js","sourceRoot":"","sources":["../../../src/agents/codebase-investigator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA2Cf,CAAC;AAEnB;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAoB;IACxD,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,6BAA6B;IAC1C,WAAW,EAAE;;kHAEmG;IAChH,WAAW,EAAE;QACX,MAAM,EAAE;YACN,SAAS,EAAE;gBACT,WAAW,EAAE;4HACuG;gBACpH,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;SACF;KACF;IACD,YAAY,EAAE;QACZ,UAAU,EAAE,QAAQ;QACpB,WAAW,EAAE,iCAAiC;QAC9C,MAAM,EAAE;YACN,IAAI,EAAE,IAAI,CAAC,MAAM;YACjB,WAAW,EAAE;;;;EAIjB,wBAAwB;;;;;;CAMzB;SACI;KACF;IAED,WAAW,EAAE;QACX,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,IAAI;QACX,cAAc,EAAE,CAAC,CAAC;KACnB;IAED,SAAS,EAAE;QACT,gBAAgB,EAAE,CAAC;QACnB,SAAS,EAAE,EAAE;KACd;IAED,UAAU,EAAE;QACV,wCAAwC;QACxC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC;KACvE;IAED,YAAY,EAAE;QACZ,KAAK,EAAE;;;aAGE;QACT,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqDhB,wBAAwB;CACzB;KACE;CACF,CAAC"}
@@ -10,11 +10,8 @@ export type ActivityCallback = (activity: SubagentActivityEvent) => void;
10
10
  /**
11
11
  * Executes an agent loop based on an {@link AgentDefinition}.
12
12
  *
13
- * This executor uses a simplified two-phase approach:
14
- * 1. **Work Phase:** The agent runs in a loop, calling tools until it has
15
- * gathered all necessary information to fulfill its goal.
16
- * 2. **Extraction Phase:** A final prompt is sent to the model to summarize
17
- * the work and extract the final result in the desired format.
13
+ * This executor runs the agent in a loop, calling tools until it calls the
14
+ * mandatory `complete_task` tool to signal completion.
18
15
  */
19
16
  export declare class AgentExecutor {
20
17
  readonly definition: AgentDefinition;
@@ -60,7 +57,7 @@ export declare class AgentExecutor {
60
57
  /**
61
58
  * Executes function calls requested by the model and returns the results.
62
59
  *
63
- * @returns A new `Content` object to be added to the chat history.
60
+ * @returns A new `Content` object for history, any submitted output, and completion status.
64
61
  */
65
62
  private processFunctionCalls;
66
63
  /**
@@ -69,8 +66,6 @@ export declare class AgentExecutor {
69
66
  private prepareToolsList;
70
67
  /** Builds the system prompt from the agent definition and inputs. */
71
68
  private buildSystemPrompt;
72
- /** Builds the final message for the extraction phase. */
73
- private buildExtractionMessage;
74
69
  /**
75
70
  * Applies template strings to initial messages.
76
71
  *
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { reportError } from '../utils/errorReporting.js';
7
7
  import { GeminiChat, StreamEventType } from '../core/geminiChat.js';
8
+ import { Type } from '@google/genai';
8
9
  import { executeToolCall } from '../core/nonInteractiveToolExecutor.js';
9
10
  import { ToolRegistry } from '../tools/tool-registry.js';
10
11
  import { getDirectoryContextString } from '../utils/environmentContext.js';
@@ -19,14 +20,12 @@ import { WebSearchTool } from '../tools/web-search.js';
19
20
  import { AgentTerminateMode } from './types.js';
20
21
  import { templateString } from './utils.js';
21
22
  import { parseThought } from '../utils/thoughtUtils.js';
23
+ const TASK_COMPLETE_TOOL_NAME = 'complete_task';
22
24
  /**
23
25
  * Executes an agent loop based on an {@link AgentDefinition}.
24
26
  *
25
- * This executor uses a simplified two-phase approach:
26
- * 1. **Work Phase:** The agent runs in a loop, calling tools until it has
27
- * gathered all necessary information to fulfill its goal.
28
- * 2. **Extraction Phase:** A final prompt is sent to the model to summarize
29
- * the work and extract the final result in the desired format.
27
+ * This executor runs the agent in a loop, calling tools until it calls the
28
+ * mandatory `complete_task` tool to signal completion.
30
29
  */
31
30
  export class AgentExecutor {
32
31
  definition;
@@ -100,15 +99,12 @@ export class AgentExecutor {
100
99
  try {
101
100
  const chat = await this.createChatObject(inputs);
102
101
  const tools = this.prepareToolsList();
103
- let terminateReason = AgentTerminateMode.GOAL;
104
- // Phase 1: Work Phase
105
- // The agent works in a loop until it stops calling tools.
102
+ let terminateReason = AgentTerminateMode.ERROR;
103
+ let finalResult = null;
106
104
  const query = this.definition.promptConfig.query
107
105
  ? templateString(this.definition.promptConfig.query, inputs)
108
106
  : 'Get Started!';
109
- let currentMessages = [
110
- { role: 'user', parts: [{ text: query }] },
111
- ];
107
+ let currentMessage = { role: 'user', parts: [{ text: query }] };
112
108
  while (true) {
113
109
  // Check for termination conditions like max turns or timeout.
114
110
  const reason = this.checkTermination(startTime, turnCounter);
@@ -122,36 +118,37 @@ export class AgentExecutor {
122
118
  }
123
119
  // Call model
124
120
  const promptId = `${this.runtimeContext.getSessionId()}#${this.agentId}#${turnCounter++}`;
125
- const { functionCalls } = await this.callModel(chat, currentMessages, tools, signal, promptId);
121
+ const { functionCalls } = await this.callModel(chat, currentMessage, tools, signal, promptId);
126
122
  if (signal.aborted) {
127
123
  terminateReason = AgentTerminateMode.ABORTED;
128
124
  break;
129
125
  }
130
- // If the model stops calling tools, the work phase is complete.
126
+ // If the model stops calling tools without calling complete_task, it's an error.
131
127
  if (functionCalls.length === 0) {
128
+ terminateReason = AgentTerminateMode.ERROR;
129
+ finalResult = `Agent stopped calling tools but did not call '${TASK_COMPLETE_TOOL_NAME}' to finalize the session.`;
130
+ this.emitActivity('ERROR', {
131
+ error: finalResult,
132
+ context: 'protocol_violation',
133
+ });
132
134
  break;
133
135
  }
134
- currentMessages = await this.processFunctionCalls(functionCalls, signal, promptId);
136
+ const { nextMessage, submittedOutput, taskCompleted } = await this.processFunctionCalls(functionCalls, signal, promptId);
137
+ if (taskCompleted) {
138
+ finalResult = submittedOutput ?? 'Task completed successfully.';
139
+ terminateReason = AgentTerminateMode.GOAL;
140
+ break;
141
+ }
142
+ currentMessage = nextMessage;
135
143
  }
136
- // If the work phase was terminated early, skip extraction and return.
137
- if (terminateReason !== AgentTerminateMode.GOAL) {
144
+ if (terminateReason === AgentTerminateMode.GOAL) {
138
145
  return {
139
- result: 'Agent execution was terminated before completion.',
146
+ result: finalResult || 'Task completed.',
140
147
  terminate_reason: terminateReason,
141
148
  };
142
149
  }
143
- // Phase 2: Extraction Phase
144
- // A final message is sent to summarize findings and produce the output.
145
- const extractionMessage = this.buildExtractionMessage();
146
- const extractionMessages = [
147
- { role: 'user', parts: [{ text: extractionMessage }] },
148
- ];
149
- const extractionPromptId = `${this.runtimeContext.getSessionId()}#${this.agentId}#extraction`;
150
- // TODO: Consider if we should keep tools to avoid cache reset.
151
- const { textResponse } = await this.callModel(chat, extractionMessages, [], // No tools are available in the extraction phase.
152
- signal, extractionPromptId);
153
150
  return {
154
- result: textResponse || 'No response generated',
151
+ result: finalResult || 'Agent execution was terminated before completion.',
155
152
  terminate_reason: terminateReason,
156
153
  };
157
154
  }
@@ -165,9 +162,9 @@ export class AgentExecutor {
165
162
  *
166
163
  * @returns The model's response, including any tool calls or text.
167
164
  */
168
- async callModel(chat, messages, tools, signal, promptId) {
165
+ async callModel(chat, message, tools, signal, promptId) {
169
166
  const messageParams = {
170
- message: messages[0]?.parts || [],
167
+ message: message.parts || [],
171
168
  config: {
172
169
  abortSignal: signal,
173
170
  tools: tools.length > 0 ? [{ functionDeclarations: tools }] : undefined,
@@ -237,68 +234,171 @@ export class AgentExecutor {
237
234
  /**
238
235
  * Executes function calls requested by the model and returns the results.
239
236
  *
240
- * @returns A new `Content` object to be added to the chat history.
237
+ * @returns A new `Content` object for history, any submitted output, and completion status.
241
238
  */
242
239
  async processFunctionCalls(functionCalls, signal, promptId) {
243
240
  const allowedToolNames = new Set(this.toolRegistry.getAllToolNames());
244
- // Filter out any tool calls that are not in the agent's allowed list.
245
- const validatedFunctionCalls = functionCalls.filter((call) => {
246
- if (!allowedToolNames.has(call.name)) {
247
- console.warn(`[AgentExecutor] Agent '${this.definition.name}' attempted to call ` +
248
- `unauthorized tool '${call.name}'. This call has been blocked.`);
249
- return false;
250
- }
251
- return true;
252
- });
253
- const toolPromises = validatedFunctionCalls.map(async (functionCall, index) => {
241
+ // Always allow the completion tool
242
+ allowedToolNames.add(TASK_COMPLETE_TOOL_NAME);
243
+ let submittedOutput = null;
244
+ let taskCompleted = false;
245
+ // We'll collect promises for the tool executions
246
+ const toolExecutionPromises = [];
247
+ // And we'll need a place to store the synchronous results (like complete_task or blocked calls)
248
+ const syncResponseParts = [];
249
+ for (const [index, functionCall] of functionCalls.entries()) {
254
250
  const callId = functionCall.id ?? `${promptId}-${index}`;
255
- const args = functionCall.args ?? {};
251
+ const args = (functionCall.args ?? {});
256
252
  this.emitActivity('TOOL_CALL_START', {
257
253
  name: functionCall.name,
258
254
  args,
259
255
  });
256
+ if (functionCall.name === TASK_COMPLETE_TOOL_NAME) {
257
+ if (taskCompleted) {
258
+ // We already have a completion from this turn. Ignore subsequent ones.
259
+ const error = 'Task already marked complete in this turn. Ignoring duplicate call.';
260
+ syncResponseParts.push({
261
+ functionResponse: {
262
+ name: TASK_COMPLETE_TOOL_NAME,
263
+ response: { error },
264
+ id: callId,
265
+ },
266
+ });
267
+ this.emitActivity('ERROR', {
268
+ context: 'tool_call',
269
+ name: functionCall.name,
270
+ error,
271
+ });
272
+ continue;
273
+ }
274
+ const { outputConfig } = this.definition;
275
+ taskCompleted = true; // Signal completion regardless of output presence
276
+ if (outputConfig) {
277
+ const outputName = outputConfig.outputName;
278
+ if (args[outputName] !== undefined) {
279
+ submittedOutput = String(args[outputName]);
280
+ syncResponseParts.push({
281
+ functionResponse: {
282
+ name: TASK_COMPLETE_TOOL_NAME,
283
+ response: { result: 'Output submitted and task completed.' },
284
+ id: callId,
285
+ },
286
+ });
287
+ this.emitActivity('TOOL_CALL_END', {
288
+ name: functionCall.name,
289
+ output: 'Output submitted and task completed.',
290
+ });
291
+ }
292
+ else {
293
+ // Failed to provide required output.
294
+ taskCompleted = false; // Revoke completion status
295
+ const error = `Missing required argument '${outputName}' for completion.`;
296
+ syncResponseParts.push({
297
+ functionResponse: {
298
+ name: TASK_COMPLETE_TOOL_NAME,
299
+ response: { error },
300
+ id: callId,
301
+ },
302
+ });
303
+ this.emitActivity('ERROR', {
304
+ context: 'tool_call',
305
+ name: functionCall.name,
306
+ error,
307
+ });
308
+ }
309
+ }
310
+ else {
311
+ // No output expected. Just signal completion.
312
+ submittedOutput = 'Task completed successfully.';
313
+ syncResponseParts.push({
314
+ functionResponse: {
315
+ name: TASK_COMPLETE_TOOL_NAME,
316
+ response: { status: 'Task marked complete.' },
317
+ id: callId,
318
+ },
319
+ });
320
+ this.emitActivity('TOOL_CALL_END', {
321
+ name: functionCall.name,
322
+ output: 'Task marked complete.',
323
+ });
324
+ }
325
+ continue;
326
+ }
327
+ // Handle standard tools
328
+ if (!allowedToolNames.has(functionCall.name)) {
329
+ const error = `Unauthorized tool call: '${functionCall.name}' is not available to this agent.`;
330
+ console.warn(`[AgentExecutor] Blocked call: ${error}`);
331
+ syncResponseParts.push({
332
+ functionResponse: {
333
+ name: functionCall.name,
334
+ id: callId,
335
+ response: { error },
336
+ },
337
+ });
338
+ this.emitActivity('ERROR', {
339
+ context: 'tool_call_unauthorized',
340
+ name: functionCall.name,
341
+ callId,
342
+ error,
343
+ });
344
+ continue;
345
+ }
260
346
  const requestInfo = {
261
347
  callId,
262
348
  name: functionCall.name,
263
- args: args,
349
+ args,
264
350
  isClientInitiated: true,
265
351
  prompt_id: promptId,
266
352
  };
267
- const toolResponse = await executeToolCall(this.runtimeContext, requestInfo, signal);
268
- if (toolResponse.error) {
269
- this.emitActivity('ERROR', {
270
- context: 'tool_call',
271
- name: functionCall.name,
272
- error: toolResponse.error.message,
273
- });
274
- }
275
- else {
276
- this.emitActivity('TOOL_CALL_END', {
277
- name: functionCall.name,
278
- output: toolResponse.resultDisplay,
279
- });
353
+ // Create a promise for the tool execution
354
+ const executionPromise = (async () => {
355
+ const toolResponse = await executeToolCall(this.runtimeContext, requestInfo, signal);
356
+ if (toolResponse.error) {
357
+ this.emitActivity('ERROR', {
358
+ context: 'tool_call',
359
+ name: functionCall.name,
360
+ error: toolResponse.error.message,
361
+ });
362
+ }
363
+ else {
364
+ this.emitActivity('TOOL_CALL_END', {
365
+ name: functionCall.name,
366
+ output: toolResponse.resultDisplay,
367
+ });
368
+ }
369
+ return toolResponse.responseParts;
370
+ })();
371
+ toolExecutionPromises.push(executionPromise);
372
+ }
373
+ // Wait for all tool executions to complete
374
+ const asyncResults = await Promise.all(toolExecutionPromises);
375
+ // Combine all response parts
376
+ const toolResponseParts = [...syncResponseParts];
377
+ for (const result of asyncResults) {
378
+ if (result) {
379
+ toolResponseParts.push(...result);
280
380
  }
281
- return toolResponse;
282
- });
283
- const toolResponses = await Promise.all(toolPromises);
284
- const toolResponseParts = toolResponses
285
- .flatMap((response) => response.responseParts)
286
- .filter((part) => part !== undefined);
287
- // If all authorized tool calls failed, provide a generic error message
288
- // to the model so it can try a different approach.
289
- if (functionCalls.length > 0 && toolResponseParts.length === 0) {
381
+ }
382
+ // If all authorized tool calls failed (and task isn't complete), provide a generic error.
383
+ if (functionCalls.length > 0 &&
384
+ toolResponseParts.length === 0 &&
385
+ !taskCompleted) {
290
386
  toolResponseParts.push({
291
- text: 'All tool calls failed. Please analyze the errors and try an alternative approach.',
387
+ text: 'All tool calls failed or were unauthorized. Please analyze the errors and try an alternative approach.',
292
388
  });
293
389
  }
294
- return [{ role: 'user', parts: toolResponseParts }];
390
+ return {
391
+ nextMessage: { role: 'user', parts: toolResponseParts },
392
+ submittedOutput,
393
+ taskCompleted,
394
+ };
295
395
  }
296
396
  /**
297
397
  * Prepares the list of tool function declarations to be sent to the model.
298
398
  */
299
399
  prepareToolsList() {
300
400
  const toolsList = [];
301
- const { toolConfig } = this.definition;
401
+ const { toolConfig, outputConfig } = this.definition;
302
402
  if (toolConfig) {
303
403
  const toolNamesToLoad = [];
304
404
  for (const toolRef of toolConfig.tools) {
@@ -317,11 +417,32 @@ export class AgentExecutor {
317
417
  // Add schemas from tools that were registered by name.
318
418
  toolsList.push(...this.toolRegistry.getFunctionDeclarationsFiltered(toolNamesToLoad));
319
419
  }
420
+ // Always inject complete_task.
421
+ // Configure its schema based on whether output is expected.
422
+ const completeTool = {
423
+ name: TASK_COMPLETE_TOOL_NAME,
424
+ description: outputConfig
425
+ ? 'Call this tool to submit your final answer and complete the task. This is the ONLY way to finish.'
426
+ : 'Call this tool to signal that you have completed your task. This is the ONLY way to finish.',
427
+ parameters: {
428
+ type: Type.OBJECT,
429
+ properties: {},
430
+ required: [],
431
+ },
432
+ };
433
+ if (outputConfig) {
434
+ completeTool.parameters.properties[outputConfig.outputName] = {
435
+ description: outputConfig.description,
436
+ ...(outputConfig.schema ?? { type: Type.STRING }),
437
+ };
438
+ completeTool.parameters.required.push(outputConfig.outputName);
439
+ }
440
+ toolsList.push(completeTool);
320
441
  return toolsList;
321
442
  }
322
443
  /** Builds the system prompt from the agent definition and inputs. */
323
444
  async buildSystemPrompt(inputs) {
324
- const { promptConfig, outputConfig } = this.definition;
445
+ const { promptConfig } = this.definition;
325
446
  if (!promptConfig.systemPrompt) {
326
447
  return '';
327
448
  }
@@ -330,38 +451,18 @@ export class AgentExecutor {
330
451
  // Append environment context (CWD and folder structure).
331
452
  const dirContext = await getDirectoryContextString(this.runtimeContext);
332
453
  finalPrompt += `\n\n# Environment Context\n${dirContext}`;
333
- // Append completion criteria to guide the model's output.
334
- if (outputConfig?.completion_criteria) {
335
- finalPrompt += '\n\nEnsure you complete the following:\n';
336
- for (const criteria of outputConfig.completion_criteria) {
337
- finalPrompt += `- ${criteria}\n`;
338
- }
339
- }
340
454
  // Append standard rules for non-interactive execution.
341
455
  finalPrompt += `
342
456
  Important Rules:
343
457
  * You are running in a non-interactive mode. You CANNOT ask the user for input or clarification.
344
458
  * Work systematically using available tools to complete your task.
345
- * Always use absolute paths for file operations. Construct them using the provided "Environment Context".
346
- * When you have completed your analysis and are ready to produce the final answer, stop calling tools.`;
459
+ * Always use absolute paths for file operations. Construct them using the provided "Environment Context".`;
460
+ finalPrompt += `
461
+ * When you have completed your task, you MUST call the \`${TASK_COMPLETE_TOOL_NAME}\` tool.
462
+ * Do not call any other tools in the same turn as \`${TASK_COMPLETE_TOOL_NAME}\`.
463
+ * This is the ONLY way to complete your mission. If you stop calling tools without calling this, you have failed.`;
347
464
  return finalPrompt;
348
465
  }
349
- /** Builds the final message for the extraction phase. */
350
- buildExtractionMessage() {
351
- const { outputConfig } = this.definition;
352
- if (outputConfig?.description) {
353
- let message = `Based on your work so far, provide: ${outputConfig.description}`;
354
- if (outputConfig.completion_criteria?.length) {
355
- message += `\n\nBe sure you have addressed:\n`;
356
- for (const criteria of outputConfig.completion_criteria) {
357
- message += `- ${criteria}\n`;
358
- }
359
- }
360
- return message;
361
- }
362
- // Fallback to a generic extraction message if no description is provided.
363
- return 'Based on your work so far, provide a comprehensive summary of your analysis and findings. Do not perform any more function calls.';
364
- }
365
466
  /**
366
467
  * Applies template strings to initial messages.
367
468
  *
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/agents/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/agents/executor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAQrC,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAOvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKxD,MAAM,uBAAuB,GAAG,eAAe,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IACf,UAAU,CAAkB;IAEpB,OAAO,CAAS;IAChB,YAAY,CAAe;IAC3B,cAAc,CAAS;IACvB,UAAU,CAAoB;IAE/C;;;;;;;;;;OAUG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,UAA2B,EAC3B,cAAsB,EACtB,UAA6B;QAE7B,4DAA4D;QAC5D,MAAM,iBAAiB,GAAG,IAAI,YAAY,CAAC,cAAc,CAAC,CAAC;QAC3D,MAAM,kBAAkB,GAAG,MAAM,cAAc,CAAC,eAAe,EAAE,CAAC;QAElE,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YAC1B,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBAClD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAChC,iEAAiE;oBACjE,+DAA+D;oBAC/D,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC3D,IAAI,cAAc,EAAE,CAAC;wBACnB,iBAAiB,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;oBACjD,CAAC;gBACH,CAAC;qBAAM,IACL,OAAO,OAAO,KAAK,QAAQ;oBAC3B,MAAM,IAAI,OAAO;oBACjB,OAAO,IAAI,OAAO,EAClB,CAAC;oBACD,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC1C,CAAC;gBACD,yEAAyE;gBACzE,oEAAoE;YACtE,CAAC;YAED,kEAAkE;YAClE,aAAa;YACb,MAAM,aAAa,CAAC,aAAa,CAAC,iBAAiB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,IAAI,aAAa,CACtB,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,UAAU,CACX,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,YACE,UAA2B,EAC3B,cAAsB,EACtB,YAA0B,EAC1B,UAA6B;QAE7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,YAAY,EAAE,CAAC;IAC3D,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,CAAC,MAAmB,EAAE,MAAmB;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtC,IAAI,eAAe,GAAG,kBAAkB,CAAC,KAAK,CAAC;YAC/C,IAAI,WAAW,GAAkB,IAAI,CAAC;YAEtC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK;gBAC9C,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC;gBAC5D,CAAC,CAAC,cAAc,CAAC;YACnB,IAAI,cAAc,GAAY,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAEzE,OAAO,IAAI,EAAE,CAAC;gBACZ,8DAA8D;gBAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;gBAC7D,IAAI,MAAM,EAAE,CAAC;oBACX,eAAe,GAAG,MAAM,CAAC;oBACzB,MAAM;gBACR,CAAC;gBACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC;oBAC7C,MAAM;gBACR,CAAC;gBAED,aAAa;gBACb,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,OAAO,IAAI,WAAW,EAAE,EAAE,CAAC;gBAC1F,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAC5C,IAAI,EACJ,cAAc,EACd,KAAK,EACL,MAAM,EACN,QAAQ,CACT,CAAC;gBAEF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC;oBAC7C,MAAM;gBACR,CAAC;gBAED,iFAAiF;gBACjF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/B,eAAe,GAAG,kBAAkB,CAAC,KAAK,CAAC;oBAC3C,WAAW,GAAG,iDAAiD,uBAAuB,4BAA4B,CAAC;oBACnH,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;wBACzB,KAAK,EAAE,WAAW;wBAClB,OAAO,EAAE,oBAAoB;qBAC9B,CAAC,CAAC;oBACH,MAAM;gBACR,CAAC;gBAED,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,GACnD,MAAM,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAEnE,IAAI,aAAa,EAAE,CAAC;oBAClB,WAAW,GAAG,eAAe,IAAI,8BAA8B,CAAC;oBAChE,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAAC;oBAC1C,MAAM;gBACR,CAAC;gBAED,cAAc,GAAG,WAAW,CAAC;YAC/B,CAAC;YAED,IAAI,eAAe,KAAK,kBAAkB,CAAC,IAAI,EAAE,CAAC;gBAChD,OAAO;oBACL,MAAM,EAAE,WAAW,IAAI,iBAAiB;oBACxC,gBAAgB,EAAE,eAAe;iBAClC,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,MAAM,EACJ,WAAW,IAAI,mDAAmD;gBACpE,gBAAgB,EAAE,eAAe;aAClC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACrD,MAAM,KAAK,CAAC,CAAC,uDAAuD;QACtE,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,SAAS,CACrB,IAAgB,EAChB,OAAgB,EAChB,KAA4B,EAC5B,MAAmB,EACnB,QAAgB;QAEhB,MAAM,aAAa,GAAG;YACpB,OAAO,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;YAC5B,MAAM,EAAE;gBACN,WAAW,EAAE,MAAM;gBACnB,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;aACxE;SACF,CAAC;QAEF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CACjD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,EACjC,aAAa,EACb,QAAQ,CACT,CAAC;QAEF,MAAM,aAAa,GAAmB,EAAE,CAAC;QACzC,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;YACxC,IAAI,MAAM,CAAC,OAAO;gBAAE,MAAM;YAE1B,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,KAAK,EAAE,CAAC;gBACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzB,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC;gBAEpD,iEAAiE;gBACjE,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAC9B,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,EAAE,CAC1C,CAAC;gBACF,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;gBACxD,CAAC;gBAED,qDAAqD;gBACrD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;oBACxB,aAAa,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC7C,CAAC;gBAED,0CAA0C;gBAC1C,MAAM,IAAI,GACR,KAAK;oBACH,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC;qBACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;qBAClB,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;gBAEpB,IAAI,IAAI,EAAE,CAAC;oBACT,YAAY,IAAI,IAAI,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;IACzC,CAAC;IAED,6DAA6D;IACrD,KAAK,CAAC,gBAAgB,CAAC,MAAmB;QAChD,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAEtD,IAAI,CAAC,YAAY,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,8BAA8B,CACtD,YAAY,CAAC,eAAe,IAAI,EAAE,EAClC,MAAM,CACP,CAAC;QAEF,6DAA6D;QAC7D,MAAM,iBAAiB,GAAG,YAAY,CAAC,YAAY;YACjD,CAAC,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YACtC,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,CAAC;YACH,MAAM,gBAAgB,GAA0B;gBAC9C,WAAW,EAAE,WAAW,CAAC,IAAI;gBAC7B,IAAI,EAAE,WAAW,CAAC,KAAK;gBACvB,cAAc,EAAE;oBACd,eAAe,EAAE,IAAI;oBACrB,cAAc,EAAE,WAAW,CAAC,cAAc,IAAI,CAAC,CAAC;iBACjD;aACF,CAAC;YAEF,IAAI,iBAAiB,EAAE,CAAC;gBACtB,gBAAgB,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;YACzD,CAAC;YAED,OAAO,IAAI,UAAU,CACnB,IAAI,CAAC,cAAc,EACnB,gBAAgB,EAChB,YAAY,CACb,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,WAAW,CACf,KAAK,EACL,4CAA4C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,EACnE,YAAY,EACZ,WAAW,CACZ,CAAC;YACF,qDAAqD;YACrD,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,oBAAoB,CAChC,aAA6B,EAC7B,MAAmB,EACnB,QAAgB;QAMhB,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,CAAC;QACtE,mCAAmC;QACnC,gBAAgB,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAE9C,IAAI,eAAe,GAAkB,IAAI,CAAC;QAC1C,IAAI,aAAa,GAAG,KAAK,CAAC;QAE1B,iDAAiD;QACjD,MAAM,qBAAqB,GAAkC,EAAE,CAAC;QAChE,gGAAgG;QAChG,MAAM,iBAAiB,GAAW,EAAE,CAAC;QAErC,KAAK,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;YAC5D,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,IAAI,GAAG,QAAQ,IAAI,KAAK,EAAE,CAAC;YACzD,MAAM,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAC;YAElE,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE;gBACnC,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,IAAI;aACL,CAAC,CAAC;YAEH,IAAI,YAAY,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;gBAClD,IAAI,aAAa,EAAE,CAAC;oBAClB,uEAAuE;oBACvE,MAAM,KAAK,GACT,qEAAqE,CAAC;oBACxE,iBAAiB,CAAC,IAAI,CAAC;wBACrB,gBAAgB,EAAE;4BAChB,IAAI,EAAE,uBAAuB;4BAC7B,QAAQ,EAAE,EAAE,KAAK,EAAE;4BACnB,EAAE,EAAE,MAAM;yBACX;qBACF,CAAC,CAAC;oBACH,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;wBACzB,OAAO,EAAE,WAAW;wBACpB,IAAI,EAAE,YAAY,CAAC,IAAI;wBACvB,KAAK;qBACN,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBAED,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;gBACzC,aAAa,GAAG,IAAI,CAAC,CAAC,kDAAkD;gBAExE,IAAI,YAAY,EAAE,CAAC;oBACjB,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;oBAC3C,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;wBACnC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;wBAC3C,iBAAiB,CAAC,IAAI,CAAC;4BACrB,gBAAgB,EAAE;gCAChB,IAAI,EAAE,uBAAuB;gCAC7B,QAAQ,EAAE,EAAE,MAAM,EAAE,sCAAsC,EAAE;gCAC5D,EAAE,EAAE,MAAM;6BACX;yBACF,CAAC,CAAC;wBACH,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE;4BACjC,IAAI,EAAE,YAAY,CAAC,IAAI;4BACvB,MAAM,EAAE,sCAAsC;yBAC/C,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,qCAAqC;wBACrC,aAAa,GAAG,KAAK,CAAC,CAAC,2BAA2B;wBAClD,MAAM,KAAK,GAAG,8BAA8B,UAAU,mBAAmB,CAAC;wBAC1E,iBAAiB,CAAC,IAAI,CAAC;4BACrB,gBAAgB,EAAE;gCAChB,IAAI,EAAE,uBAAuB;gCAC7B,QAAQ,EAAE,EAAE,KAAK,EAAE;gCACnB,EAAE,EAAE,MAAM;6BACX;yBACF,CAAC,CAAC;wBACH,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;4BACzB,OAAO,EAAE,WAAW;4BACpB,IAAI,EAAE,YAAY,CAAC,IAAI;4BACvB,KAAK;yBACN,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,8CAA8C;oBAC9C,eAAe,GAAG,8BAA8B,CAAC;oBACjD,iBAAiB,CAAC,IAAI,CAAC;wBACrB,gBAAgB,EAAE;4BAChB,IAAI,EAAE,uBAAuB;4BAC7B,QAAQ,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAE;4BAC7C,EAAE,EAAE,MAAM;yBACX;qBACF,CAAC,CAAC;oBACH,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE;wBACjC,IAAI,EAAE,YAAY,CAAC,IAAI;wBACvB,MAAM,EAAE,uBAAuB;qBAChC,CAAC,CAAC;gBACL,CAAC;gBACD,SAAS;YACX,CAAC;YAED,wBAAwB;YACxB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAc,CAAC,EAAE,CAAC;gBACvD,MAAM,KAAK,GAAG,4BAA4B,YAAY,CAAC,IAAI,mCAAmC,CAAC;gBAE/F,OAAO,CAAC,IAAI,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;gBAEvD,iBAAiB,CAAC,IAAI,CAAC;oBACrB,gBAAgB,EAAE;wBAChB,IAAI,EAAE,YAAY,CAAC,IAAc;wBACjC,EAAE,EAAE,MAAM;wBACV,QAAQ,EAAE,EAAE,KAAK,EAAE;qBACpB;iBACF,CAAC,CAAC;gBAEH,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;oBACzB,OAAO,EAAE,wBAAwB;oBACjC,IAAI,EAAE,YAAY,CAAC,IAAI;oBACvB,MAAM;oBACN,KAAK;iBACN,CAAC,CAAC;gBAEH,SAAS;YACX,CAAC;YAED,MAAM,WAAW,GAAwB;gBACvC,MAAM;gBACN,IAAI,EAAE,YAAY,CAAC,IAAc;gBACjC,IAAI;gBACJ,iBAAiB,EAAE,IAAI;gBACvB,SAAS,EAAE,QAAQ;aACpB,CAAC;YAEF,0CAA0C;YAC1C,MAAM,gBAAgB,GAAG,CAAC,KAAK,IAAI,EAAE;gBACnC,MAAM,YAAY,GAAG,MAAM,eAAe,CACxC,IAAI,CAAC,cAAc,EACnB,WAAW,EACX,MAAM,CACP,CAAC;gBAEF,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;oBACvB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;wBACzB,OAAO,EAAE,WAAW;wBACpB,IAAI,EAAE,YAAY,CAAC,IAAI;wBACvB,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,OAAO;qBAClC,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE;wBACjC,IAAI,EAAE,YAAY,CAAC,IAAI;wBACvB,MAAM,EAAE,YAAY,CAAC,aAAa;qBACnC,CAAC,CAAC;gBACL,CAAC;gBAED,OAAO,YAAY,CAAC,aAAa,CAAC;YACpC,CAAC,CAAC,EAAE,CAAC;YAEL,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/C,CAAC;QAED,2CAA2C;QAC3C,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAE9D,6BAA6B;QAC7B,MAAM,iBAAiB,GAAW,CAAC,GAAG,iBAAiB,CAAC,CAAC;QACzD,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;YAClC,IAAI,MAAM,EAAE,CAAC;gBACX,iBAAiB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAED,0FAA0F;QAC1F,IACE,aAAa,CAAC,MAAM,GAAG,CAAC;YACxB,iBAAiB,CAAC,MAAM,KAAK,CAAC;YAC9B,CAAC,aAAa,EACd,CAAC;YACD,iBAAiB,CAAC,IAAI,CAAC;gBACrB,IAAI,EAAE,wGAAwG;aAC/G,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE;YACvD,eAAe;YACf,aAAa;SACd,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,MAAM,SAAS,GAA0B,EAAE,CAAC;QAC5C,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAErD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,eAAe,GAAa,EAAE,CAAC;YACrC,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACvC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAChC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAChC,CAAC;qBAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;oBAC9D,kDAAkD;oBAClD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAA6B,CAAC,CAAC;gBACxD,CAAC;qBAAM,CAAC;oBACN,oCAAoC;oBACpC,SAAS,CAAC,IAAI,CAAC,OAA8B,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;YACD,uDAAuD;YACvD,SAAS,CAAC,IAAI,CACZ,GAAG,IAAI,CAAC,YAAY,CAAC,+BAA+B,CAAC,eAAe,CAAC,CACtE,CAAC;QACJ,CAAC;QAED,+BAA+B;QAC/B,4DAA4D;QAC5D,MAAM,YAAY,GAAwB;YACxC,IAAI,EAAE,uBAAuB;YAC7B,WAAW,EAAE,YAAY;gBACvB,CAAC,CAAC,mGAAmG;gBACrG,CAAC,CAAC,6FAA6F;YACjG,UAAU,EAAE;gBACV,IAAI,EAAE,IAAI,CAAC,MAAM;gBACjB,UAAU,EAAE,EAAE;gBACd,QAAQ,EAAE,EAAE;aACb;SACF,CAAC;QAEF,IAAI,YAAY,EAAE,CAAC;YACjB,YAAY,CAAC,UAAW,CAAC,UAAW,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG;gBAC9D,WAAW,EAAE,YAAY,CAAC,WAAW;gBACrC,GAAG,CAAC,YAAY,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;aAClD,CAAC;YACF,YAAY,CAAC,UAAW,CAAC,QAAS,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QACnE,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE7B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,qEAAqE;IAC7D,KAAK,CAAC,iBAAiB,CAAC,MAAmB;QACjD,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,+CAA+C;QAC/C,IAAI,WAAW,GAAG,cAAc,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAEpE,yDAAyD;QACzD,MAAM,UAAU,GAAG,MAAM,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxE,WAAW,IAAI,8BAA8B,UAAU,EAAE,CAAC;QAE1D,uDAAuD;QACvD,WAAW,IAAI;;;;0GAIuF,CAAC;QAEvG,WAAW,IAAI;2DACwC,uBAAuB;sDAC5B,uBAAuB;kHACqC,CAAC;QAE/G,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;;;OAMG;IACK,8BAA8B,CACpC,eAA0B,EAC1B,MAAmB;QAEnB,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACrC,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClD,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC9C,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;gBACrD,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YACH,OAAO,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,KAAK,CAAC,aAAa,CAChC,YAA0B,EAC1B,SAAiB;QAEjB,uEAAuE;QACvE,+BAA+B;QAC/B,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;YACxB,MAAM,CAAC,IAAI;YACX,YAAY,CAAC,IAAI;YACjB,QAAQ,CAAC,IAAI;YACb,WAAW,CAAC,IAAI;YAChB,QAAQ,CAAC,IAAI;YACb,iBAAiB,CAAC,IAAI;YACtB,UAAU,CAAC,IAAI;YACf,aAAa,CAAC,IAAI;SACnB,CAAC,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CACb,SAAS,IAAI,CAAC,IAAI,iDAAiD;oBACjE,uBAAuB,SAAS,yCAAyC;oBACzE,wCAAwC,CAC3C,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,gBAAgB,CACtB,SAAiB,EACjB,WAAmB;QAEnB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAEtC,IAAI,SAAS,CAAC,SAAS,IAAI,WAAW,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YAC9D,OAAO,kBAAkB,CAAC,SAAS,CAAC;QACtC,CAAC;QAED,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QAC9D,IAAI,cAAc,IAAI,SAAS,CAAC,gBAAgB,EAAE,CAAC;YACjD,OAAO,kBAAkB,CAAC,OAAO,CAAC;QACpC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0DAA0D;IAClD,YAAY,CAClB,IAAmC,EACnC,IAA6B;QAE7B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,KAAK,GAA0B;gBACnC,uBAAuB,EAAE,IAAI;gBAC7B,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;gBAC/B,IAAI;gBACJ,IAAI;aACL,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;CACF"}