import type { Brand } from '../im/lark/lark-hosts.js'; import type { Locale } from '../i18n/index.js'; import type { CliId } from '../adapters/cli/types.js'; import type { ResolvedSender } from '../im/lark/identity-cache.js'; import type { CliTurnPayload } from '../types.js'; import type { DaemonSession } from './types.js'; export interface DocCommentPromptInput { fileToken: string; fileType: string; question: string; author: string; selectedText?: string; priorReplies?: Array<{ author?: string; text: string; }>; projectDir?: string; brand?: Brand; locale?: Locale; } export interface DocWatchWarmupPromptInput { fileToken: string; fileType: string; projectDir?: string; brand?: Brand; locale?: Locale; } /** Concise UserMessage shown in Codex App when clean input is enabled. The * operational warmup instructions are Botmux-authored application context and * must not be rendered as if the user typed them. */ export declare function buildDocWatchWarmupVisibleText(input: DocWatchWarmupPromptInput): string; export declare function buildDocWatchWarmupPrompt(input: DocWatchWarmupPromptInput): string; /** Build either live-worker or stopped-worker/refork warmup input while * honoring the CLI identity frozen on the historical session. A bot-level CLI * switch must not make an existing Codex App session lose its clean sidecar. */ export declare function buildDocWatchWarmupTurnInput(args: { ds: DaemonSession; promptInput: DocWatchWarmupPromptInput; botCliId: CliId; botCliPathOverride?: string; botIdentity?: { name?: string | null; openId?: string | null; }; sender?: ResolvedSender; mode: 'live' | 'refork'; turnId?: string; }): { promptContent: string; cliInput: CliTurnPayload; }; /** Build the user turn for a Feishu/Lark document comment. * * The daemon supplies the comment-thread context it already fetched, then asks * the agent to read the document with whatever document tool is available when * the question depends on the full body. Comment delivery stays daemon-owned so * the agent cannot accidentally double-post or create a reply loop. */ export declare function buildDocCommentPrompt(input: DocCommentPromptInput): string; /** Botmux-owned instructions for a clean Codex App document-comment turn. * * This block is trusted application context: it describes how the agent must * answer and how Botmux will deliver the result, but intentionally carries no * user-authored comment or document-thread data. The legacy prompt builder * above remains the authoritative fallback and is not rewritten. */ export declare function buildDocCommentApplicationContext(input: Pick): string; /** Untrusted document/thread reference material for clean Codex App turns. * The current comment is deliberately absent because it is already the sole * visible UserMessage. Keeping the two channels disjoint avoids duplicate * model input while preserving document identity, selection, and history. */ export declare function buildDocCommentMessageContext(input: DocCommentPromptInput): string; /** Build either the live-worker or stopped-worker/refork input for a document * comment. The historical session's CLI selection wins over a changed bot * default, so an existing Codex App thread keeps its structured clean sidecar. * Adopted bridge sessions retain their exact raw legacy delivery path. */ export declare function buildDocCommentTurnInput(args: { ds: DaemonSession; promptInput: DocCommentPromptInput; botCliId: CliId; botCliPathOverride?: string; botIdentity?: { name?: string | null; openId?: string | null; }; sender?: ResolvedSender; mode: 'live' | 'refork'; turnId?: string; }): { promptContent: string; cliInput: CliTurnPayload; }; //# sourceMappingURL=doc-comment-prompt.d.ts.map