Files
pi/packages/coding-agent/src/cli/initial-message.ts
T

44 lines
994 B
TypeScript

import type { ImageContent } from "@mariozechner/pi-ai";
import type { Args } from "./args.js";
export interface InitialMessageInput {
parsed: Args;
fileText?: string;
fileImages?: ImageContent[];
stdinContent?: string;
}
export interface InitialMessageResult {
initialMessage?: string;
initialImages?: ImageContent[];
}
/**
* Combine stdin content, @file text, and the first CLI message into a single
* initial prompt for non-interactive mode.
*/
export function buildInitialMessage({
parsed,
fileText,
fileImages,
stdinContent,
}: InitialMessageInput): InitialMessageResult {
const parts: string[] = [];
if (stdinContent !== undefined) {
parts.push(stdinContent);
}
if (fileText) {
parts.push(fileText);
}
if (parsed.messages.length > 0) {
parts.push(parsed.messages[0]);
parsed.messages.shift();
}
return {
initialMessage: parts.length > 0 ? parts.join("") : undefined,
initialImages: fileImages && fileImages.length > 0 ? fileImages : undefined,
};
}