/** * Swappable translation helpers for rendering ADK state into the Claude Code CLI's `-p` prompt * string and MCP tool-result content. * * @module @nhtio/adk/batteries/llm/claude_code_cli/helpers * * @remarks * The wire-shape-agnostic helpers (`renderUntrustedContent`, `renderMemories`, * `renderChatCompletionsSystemPrompt`, `toolsToChatCompletionsTools`, …) are shared with every * other Chat-family battery via `../chat_common/helpers` and re-exported here under their * original names. Only the battery-specific helpers are defined here: * `renderClaudeCodeCliTimelineMessage` (plain text — no native image side-channel, unlike * Ollama's `images[]`), `renderClaudeCodeCliToolCallResult` (the inbound-history counterpart to * the outbound MCP-result rendering `adapter.ts` performs directly), and * `buildClaudeCodeCliPrompt` (the top-level history-to-prompt assembler — a direct structural * port of `buildOllamaHistory`'s ordering, collapsed to a single joined string). */ import { Media } from "../../../common"; import type { ChatHelpersCommon } from "../chat_common/types"; import type { ClaudeCodeCliHelpers, ChatCompletionsBucketOrder, UnsupportedMediaPolicy } from "./types"; import type { Tool, ArtifactTool, ToolRegistry, Tokenizable, Memory, Message, Thought, ToolCall, Retrievable, SpooledArtifact } from "../../../common"; export { descriptionToChatCompletionsJsonSchema, defaultDescriptionToChatCompletionsJsonSchema, renderUntrustedContent, defaultRenderUntrustedContent, renderTrustedContent, defaultRenderTrustedContent, renderStandingInstructions, defaultRenderStandingInstructions, renderMemories, defaultRenderMemories, renderRetrievableSafetyDirective, defaultRenderRetrievableSafetyDirective, renderFirstPartyRetrievables, defaultRenderFirstPartyRetrievables, renderThirdPartyPublicRetrievables, defaultRenderThirdPartyPublicRetrievables, renderThirdPartyPrivateRetrievables, defaultRenderThirdPartyPrivateRetrievables, renderRetrievables, defaultRenderRetrievables, renderRetrievableHandleBody, defaultRenderRetrievableHandleBody, renderArtifactHandleBody, defaultRenderArtifactHandleBody, renderThought, defaultRenderThought, filterThoughts, defaultFilterThoughts, toolsToChatCompletionsTools, defaultToolsToChatCompletionsTools, renderChatCompletionsSystemPrompt, defaultRenderChatCompletionsSystemPrompt, looksLikeSpooledArtifact, } from "../chat_common/helpers"; /** * Renders a single timeline {@link @nhtio/adk!Message} into plain text for the `-p` prompt * string — structurally identical to `renderOllamaTimelineMessage`'s trust-envelope/identity * logic, except every attachment routes through `unsupportedMediaPolicy` and is appended as text * (the "v1 prompt is text-only" limitation). */ export declare const renderClaudeCodeCliTimelineMessage: (input: { message: Message; selfIdentity: string; unsupportedMediaPolicy: UnsupportedMediaPolicy; warn?: (msg: string) => void; }) => Promise; /** Default timeline-message renderer; alias of {@link renderClaudeCodeCliTimelineMessage}. */ export declare const defaultRenderClaudeCodeCliTimelineMessage: (input: { message: Message; selfIdentity: string; unsupportedMediaPolicy: UnsupportedMediaPolicy; warn?: (msg: string) => void; }) => Promise; /** * Render a completed {@link @nhtio/adk!ToolCall}'s result to plain text for the INBOUND history * direction (how a past tool call reads back into a subsequent dispatch's rendered prompt) — * always a string, since the `-p` prompt has no structured-content channel. Media results are * routed through the same text-only media renderer used by the timeline path. */ export declare const renderClaudeCodeCliToolCallResult: (input: { toolCall: ToolCall; results: Tokenizable | SpooledArtifact | SpooledArtifact[] | Media | Media[]; tool: Tool | ArtifactTool | undefined; renderUntrustedContent: ChatHelpersCommon["renderUntrustedContent"]; renderTrustedContent: ChatHelpersCommon["renderTrustedContent"]; unsupportedMediaPolicy: UnsupportedMediaPolicy; warn?: (msg: string) => void; }) => Promise; /** Default tool-call-result renderer; alias of {@link renderClaudeCodeCliToolCallResult}. */ export declare const defaultRenderClaudeCodeCliToolCallResult: (input: { toolCall: ToolCall; results: Tokenizable | SpooledArtifact | SpooledArtifact[] | Media | Media[]; tool: Tool | ArtifactTool | undefined; renderUntrustedContent: ChatHelpersCommon["renderUntrustedContent"]; renderTrustedContent: ChatHelpersCommon["renderTrustedContent"]; unsupportedMediaPolicy: UnsupportedMediaPolicy; warn?: (msg: string) => void; }) => Promise; /** * Assembles the complete history for a dispatch into ONE joined prompt string — a direct * structural port of `buildOllamaHistory`'s ordering (leading system-prompt block, then the * timestamp-sorted timeline of messages/thoughts/tool-calls, then any trailing buckets after * `'timeline'` in `bucketOrder`), with the target shape collapsed from a message array to a * single string, since this wire has one `-p` positional argument. */ export declare const buildClaudeCodeCliPrompt: (input: { systemPrompt: Tokenizable; standingInstructions: Iterable; memories: Iterable; retrievables: Iterable; messages: Iterable; thoughts: Iterable; toolCalls: Iterable; tools: ToolRegistry; /** Pre-rendered results keyed by the same live ToolCall instances iterated below. */ renderedToolCallResults: Map; bucketOrder: ChatCompletionsBucketOrder; selfIdentity: string; thoughtSurfacing: "all-self" | "latest-self" | "all"; replayCompatibility: ReadonlyArray; unsupportedMediaPolicy: UnsupportedMediaPolicy; renderCtx?: unknown; renderChatCompletionsSystemPrompt: ChatHelpersCommon["renderChatCompletionsSystemPrompt"]; renderStandingInstructions: ChatHelpersCommon["renderStandingInstructions"]; renderMemories: ChatHelpersCommon["renderMemories"]; renderRetrievables: ChatHelpersCommon["renderRetrievables"]; renderRetrievableSafetyDirective: ChatHelpersCommon["renderRetrievableSafetyDirective"]; renderFirstPartyRetrievables: ChatHelpersCommon["renderFirstPartyRetrievables"]; renderThirdPartyPublicRetrievables: ChatHelpersCommon["renderThirdPartyPublicRetrievables"]; renderThirdPartyPrivateRetrievables: ChatHelpersCommon["renderThirdPartyPrivateRetrievables"]; renderRetrievableHandleBody?: ChatHelpersCommon["renderRetrievableHandleBody"]; renderClaudeCodeCliTimelineMessage: ClaudeCodeCliHelpers["renderClaudeCodeCliTimelineMessage"]; renderClaudeCodeCliToolCallResult: ClaudeCodeCliHelpers["renderClaudeCodeCliToolCallResult"]; renderThought: ChatHelpersCommon["renderThought"]; filterThoughts: ChatHelpersCommon["filterThoughts"]; renderUntrustedContent: ChatHelpersCommon["renderUntrustedContent"]; renderTrustedContent: ChatHelpersCommon["renderTrustedContent"]; warn?: (msg: string) => void; }) => Promise<{ prompt: string; reasoningPayloads: Array<{ id: string; replayCompatibility: string; payload: unknown; }>; }>; /** Default history assembler; alias of {@link buildClaudeCodeCliPrompt}. */ export declare const defaultBuildClaudeCodeCliPrompt: (input: { systemPrompt: Tokenizable; standingInstructions: Iterable; memories: Iterable; retrievables: Iterable; messages: Iterable; thoughts: Iterable; toolCalls: Iterable; tools: ToolRegistry; /** Pre-rendered results keyed by the same live ToolCall instances iterated below. */ renderedToolCallResults: Map; bucketOrder: ChatCompletionsBucketOrder; selfIdentity: string; thoughtSurfacing: "all-self" | "latest-self" | "all"; replayCompatibility: ReadonlyArray; unsupportedMediaPolicy: UnsupportedMediaPolicy; renderCtx?: unknown; renderChatCompletionsSystemPrompt: ChatHelpersCommon["renderChatCompletionsSystemPrompt"]; renderStandingInstructions: ChatHelpersCommon["renderStandingInstructions"]; renderMemories: ChatHelpersCommon["renderMemories"]; renderRetrievables: ChatHelpersCommon["renderRetrievables"]; renderRetrievableSafetyDirective: ChatHelpersCommon["renderRetrievableSafetyDirective"]; renderFirstPartyRetrievables: ChatHelpersCommon["renderFirstPartyRetrievables"]; renderThirdPartyPublicRetrievables: ChatHelpersCommon["renderThirdPartyPublicRetrievables"]; renderThirdPartyPrivateRetrievables: ChatHelpersCommon["renderThirdPartyPrivateRetrievables"]; renderRetrievableHandleBody?: ChatHelpersCommon["renderRetrievableHandleBody"]; renderClaudeCodeCliTimelineMessage: ClaudeCodeCliHelpers["renderClaudeCodeCliTimelineMessage"]; renderClaudeCodeCliToolCallResult: ClaudeCodeCliHelpers["renderClaudeCodeCliToolCallResult"]; renderThought: ChatHelpersCommon["renderThought"]; filterThoughts: ChatHelpersCommon["filterThoughts"]; renderUntrustedContent: ChatHelpersCommon["renderUntrustedContent"]; renderTrustedContent: ChatHelpersCommon["renderTrustedContent"]; warn?: (msg: string) => void; }) => Promise<{ prompt: string; reasoningPayloads: Array<{ id: string; replayCompatibility: string; payload: unknown; }>; }>;