import type { ExtensionContext } from "@mariozechner/pi-coding-agent"; import { discoverSubagents } from "./definitions"; import { resolveSubagentCwd, resumeSubagentTask as resumeSubagentTaskInternal, runSubagentTask as runSubagentTaskInternal } from "./session"; import type { SubagentDefinition, SubagentRegistry } from "./definitions"; import type { ActiveSubagentConfig, SubagentRunDetails, SubagentTimelineItem, SubagentUsage, } from "./types"; export type { ActiveSubagentConfig, SubagentDefinition, SubagentRegistry, SubagentRunDetails, SubagentTimelineItem, SubagentUsage, }; export interface SubagentTextContentPart { type: "text"; text: string; } export interface SubagentTaskUpdate { content: SubagentTextContentPart[]; details: SubagentRunDetails; } export type SubagentTaskUpdateHandler = (partial: SubagentTaskUpdate) => void; export interface RunSubagentTaskInput { ctx: ExtensionContext; task: string; cwd?: string; systemPrompt?: string; thinkingLevel?: string; modelOverride?: string; effortOverride?: string; definition?: SubagentDefinition; signal?: AbortSignal; existingSession?: unknown; keepAlive?: boolean; onUpdate?: SubagentTaskUpdateHandler; } export interface RunSubagentTaskResult { content: string; details: SubagentRunDetails; session?: unknown; } export { discoverSubagents, resolveSubagentCwd }; export { inspectRun } from "./inspect"; export type { InspectionReport } from "./inspect"; export { ResumeError } from "./session"; export type { ResumeFailureContext, ResumeFailureReason } from "./session"; export async function runSubagentTask(input: RunSubagentTaskInput): Promise { return runSubagentTaskInternal(input); } export interface ResumeSubagentTaskInput { ctx: ExtensionContext; runId: string; artifactsDirOverride?: string; signal?: AbortSignal; onUpdate?: SubagentTaskUpdateHandler; } export async function resumeSubagentTask(input: ResumeSubagentTaskInput): Promise { return resumeSubagentTaskInternal(input); } // Diagnostic surface used by `check-vera` to introspect subagent runtime // health. Re-exported here so consumers do not need to reach into // `src/status` directly. export { collectResumableSubagentRuns, collectSubagentSystemStatus, isStaleRunning } from "./status"; export type { SubagentSystemStatus } from "./status";