import type { Api, Model } from '@earendil-works/pi-ai'; import { z } from 'zod'; import type { Config } from '../../config/schema.js'; import { type TaskFollowUpInput } from './contracts.js'; export declare const followUpResultSchema: z.ZodObject<{ summary: z.ZodString; needsUser: z.ZodBoolean; continueAutomatically: z.ZodBoolean; remainingWork: z.ZodArray; }, z.core.$strict>; export type FollowUpResult = z.infer; export type FollowUpExecution = { runId: string; conversationId: string; workspace: string; goal: string; instruction: string; evidence: string; capabilities: TaskFollowUpInput['capabilities']; signal: AbortSignal; guard: () => void; verify?: () => Promise<{ passed: boolean; output: string; }>; }; export interface FollowUpExecutor { execute(input: FollowUpExecution): Promise; } /** Adapts task context to the existing embedded harness, not a separate agent loop. */ export declare class FollowUpAgentExecutor implements FollowUpExecutor { private readonly model; private readonly config; constructor(model: () => Model, config: () => Config); execute(input: FollowUpExecution): Promise; }