import type { ResolvedToolContext } from "../shared/agent/tool.factory.js"; import type { IterationContext } from "./chat.prompt.modules.js"; /** Stable user-message marker for opening the guided New Signal intake. */ export declare const SIGNAL_NEW_SIGNAL_KICKOFF = "new-signal-kickoff"; /** Returns whether a message is feedback on the unpersisted guided-signal draft. */ export declare function isSignalNewSignalFeedback(message?: string): boolean; /** * Recognizes the one-shot kickoff sent by a New Signal surface. The aliases are * intentionally limited to exact short commands so an ordinary Signal chat is * never put into interview mode merely because it mentions a new signal. * * @param message - Latest user message from the current chat turn * @returns Whether the message requests the guided New Signal intake */ export declare function isSignalNewSignalKickoff(message?: string): boolean; export type SignalIntakeStage = "who" | "contribution" | "where" | "proposal" | "complete"; /** * Determines the next guided-intake stage from the live agent-loop context. * Counting tool calls is sufficient here: the blocking question tool does not * return control to the loop until its current round has resolved. * * @param iterCtx - Current Signal Agent iteration context * @returns The next intake stage, or null for ordinary Signal chats */ export declare function getSignalIntakeStage(iterCtx?: IterationContext): SignalIntakeStage | null; export declare function buildSignalIntakeGuidance(stage: SignalIntakeStage | null): string; /** * Builds the restricted Signal Agent system prompt. * * Signal manages the user's signals and profile knowledge. Matching, * opportunities, negotiations, administration, imports, and membership changes * are deliberately outside this persona and are not advertised here. * * @param ctx - Resolved user and scope context * @param iterCtx - Agent-loop iteration context used for the New Signal kickoff * @returns The complete Signal Agent system prompt */ export declare function buildSignalSystemContent(ctx: ResolvedToolContext, iterCtx?: IterationContext): string;