import type { AgentTool, AgentToolResult, AgentToolUpdateCallback } from "@gajae-code/agent-core"; import type { Model } from "@gajae-code/ai/core"; import { type SubagentRunOutcome } from "@gajae-code/coding-agent/async"; import type { ToolSession } from ".."; import type { Theme } from "../modes/theme/theme"; import { type SingleResult, type TaskRoutingEvidence, type TaskToolDetails, type TaskToolSchemaInstance } from "./types"; import "../tools/review"; import { runSubprocess } from "./executor"; import { type TaskResultReceipt } from "./receipt"; import { renderResult, renderCall as renderTaskCall } from "./render"; export declare function subagentRunOutcomeFromSingleResult(finalText: string, singleResult: (Pick & Partial>) | undefined): string | SubagentRunOutcome; export { loadBundledAgents as BUNDLED_AGENTS } from "./agents"; export { discoverCommands, expandCommand, getCommand } from "./commands"; export { discoverAgents, getAgent } from "./discovery"; export { isValidAllocatedTaskId, isValidTaskId, TASK_ID_DESCRIPTION, TASK_ID_PATTERN, validateAllocatedTaskId, validateTaskId, } from "./id"; export { AgentOutputManager } from "./output-manager"; export type { TaskResultReceipt } from "./receipt"; export { assertNoRawTaskFields, buildTaskReceipt, buildTaskRoi, buildTaskRoiSummary, findRawTaskLeakKeys, sanitizeTaskToolDetails, } from "./receipt"; export type { AgentDefinition, AgentProgress, SingleResult, SubagentLifecyclePayload, SubagentProgressPayload, TaskParams, TaskToolDetails, } from "./types"; export { TASK_SUBAGENT_EVENT_CHANNEL, TASK_SUBAGENT_LIFECYCLE_CHANNEL, TASK_SUBAGENT_PROGRESS_CHANNEL, taskSchema, } from "./types"; export declare function resolveForkContextMaxTokens(configured: number, model: Model | undefined): number; export declare function findRoutingSnapshotModel(selector: string, routingSnapshot: readonly Model[]): Model | undefined; /** * Project routing evidence into the XML-attribute-safe display view consumed by * the task-summary template. The template runtime uses noEscape, so every * interpolated attribute value must be escaped here. */ export declare function projectRoutingForSummary(routing: TaskRoutingEvidence | undefined): { tier: string; effectiveModel: string; note: string; } | undefined; /** * Task tool - Delegate tasks to specialized agents. * * Requires async initialization to discover available agents. * Use `TaskTool.create(session)` to instantiate. */ export declare class TaskTool implements AgentTool { #private; private readonly session; readonly name = "task"; readonly label = "Task"; readonly summary = "Spawn a subagent to complete a parallel task"; readonly strict = true; readonly loadMode = "discoverable"; readonly renderResult: typeof renderResult; /** * Session-lifetime durable artifact state is shared atomically by every * TaskTool created for the same parent ToolSession. */ get parameters(): TaskToolSchemaInstance; renderCall(args: unknown, options: Parameters[1], theme: Theme): import("@gajae-code/tui").Component; /** Dynamic description that reflects current disabled-agent settings */ get description(): string; private constructor(); /** * Create a TaskTool instance. * Repository authority is captured from session cwd *before* agent discovery so * multi-repo workspaces fail closed prior to context/discovery (#2901). */ static create(session: ToolSession, options?: { runSubprocess?: typeof runSubprocess; }): Promise; /** Create catalog metadata from bundled agents only, without ambient filesystem discovery. */ static createForToolCatalog(session: ToolSession): Promise; execute(_toolCallId: string, rawParams: unknown, signal?: AbortSignal, onUpdate?: AgentToolUpdateCallback): Promise>; }