// Critical system constants extracted to break circular dependencies import { getAPIProvider } from '../utils/model/providers.js' const DEFAULT_PREFIX = `You are Claude Code, Anthropic's official CLI for Claude.` const AGENT_SDK_CLAUDE_CODE_PRESET_PREFIX = `You are Claude Code, Anthropic's official CLI for Claude, running within the Claude Agent SDK.` const AGENT_SDK_PREFIX = `You are a Claude agent, built on Anthropic's Claude Agent SDK.` const CLI_SYSPROMPT_PREFIX_VALUES = [ DEFAULT_PREFIX, AGENT_SDK_CLAUDE_CODE_PRESET_PREFIX, AGENT_SDK_PREFIX, ] as const export type CLISyspromptPrefix = (typeof CLI_SYSPROMPT_PREFIX_VALUES)[number] /** * All possible CLI sysprompt prefix values, used by splitSysPromptPrefix * to identify prefix blocks by content rather than position. */ export const CLI_SYSPROMPT_PREFIXES: ReadonlySet = new Set( CLI_SYSPROMPT_PREFIX_VALUES, ) export function getCLISyspromptPrefix(options?: { isNonInteractive: boolean hasAppendSystemPrompt: boolean }): CLISyspromptPrefix { const apiProvider = getAPIProvider() if (apiProvider === 'vertex') { return DEFAULT_PREFIX } if (options?.isNonInteractive) { if (options.hasAppendSystemPrompt) { return AGENT_SDK_CLAUDE_CODE_PRESET_PREFIX } return AGENT_SDK_PREFIX } return DEFAULT_PREFIX } export function getAttributionHeader(_fingerprint: string): string { return '' }