/** * Agent Session prompt 输入类型定义。 * * 关键点(中文) * - `prompt()` 是 Session actor 模型下唯一的输入入口。 * - 首条输入、运行中补充输入、排队到下一轮的输入,调用侧都使用同一结构。 */ import type { UIDataTypes, UITools, UIMessagePart } from "ai"; /** * Session user message part 类型。 * * 说明(中文) * - 与 AI SDK 标准 `UIMessagePart` 等价,但已固定泛型参数,避免调用侧引入 `ai` 包。 * - 可直接用于 `session.prompt({ query: [...parts] })` 传入 text parts、file parts 等。 */ export type SessionUserMessagePart = UIMessagePart; /** * Session prompt 输入。 * * 输入示例(中文): * ```ts * session.prompt({ * query: [ * { type: "text", text: "请分析这个附件" }, * { * type: "file", * mediaType: "image/png", * url: "data:image/png;base64,...", * filename: "image.png", * }, * ], * }); * ``` * * 生命周期说明(中文): * - `string` 会直接成为新的文本 User Message。 * - `file` part 如果携带 Data URL,会在 Message 入库前解码到 Session 的 attachments 目录。 * - 持久化 Message 里的 `url` 变成相对 Workspace 根目录的文件路径,而不是 Base64 内容。 * - 模型执行前,Executor 再按该路径读取文件,并转换成 AI SDK / Provider 可消费的 ModelMessage。 * - 远程 Session 中,Data URL 在服务端落盘;调用方本地路径必须对服务端可访问。 */ export interface AgentSessionPromptInput { /** * 当前这次要追加到 Session 的用户文本或 parts 数组。 * * 说明(中文) * - 支持两种格式: * 1. `string`:纯文本用户输入,Session 会将其包装为 `role="user"` 的 UIMessage。 * 2. `SessionUserMessagePart[]`:AI SDK 标准 user message parts 数组,可直接携带 text parts、file parts 等。 * - 调用侧永远只传"新的用户输入"。 * - 它是否并入当前 turn,还是排到下一 turn,由 Session 内部决定。 */ query: string | SessionUserMessagePart[]; } /** * 判断 prompt 输入是否为空。 * * 说明(中文) * - `string`:trim 后为空即视为空。 * - `SessionUserMessagePart[]`:数组为空或仅包含空文本时视为空。 */ export declare function is_agent_session_prompt_input_empty(input: AgentSessionPromptInput): boolean; //# sourceMappingURL=AgentSessionPrompt.d.ts.map