/** * System Prompt Builder — xopc-owned prompt with OpenClaw-style bootstrap injection. * * Profile Markdown under `agents//profile/` is injected as Project Context * (see `src/agent/bootstrap/`). Runtime owns loading; AGENTS.md instructs agents * not to manually reread startup files. */ import type { EmbeddedContextFile } from '../bootstrap/types.js'; import type { ResponseLanguage } from '../../i18n/response-language.js'; import { type UserTrustLevel } from '../../user-context/trust-policy.js'; import type { ProviderSystemPromptContribution } from './contribution.js'; import { type RuntimeInfoInput } from './sections/workspace-runtime.js'; import type { MemoryCitationsMode, PromptMode, SilentReplyPromptMode } from './types.js'; export type { MemoryCitationsMode } from './types.js'; export { getContextFileBasename, isDynamicContextFile, sortContextFilesForPrompt, } from './sections/project-context.js'; export interface SystemPromptOptions { contextFiles?: EmbeddedContextFile[]; promptMode?: PromptMode; heartbeatEnabled?: boolean; heartbeatPrompt?: string; /** Registered tool names for Tooling section and memory/skills gating. */ toolNames?: string[]; toolSummaries?: Record; /** @deprecated Prefer toolNames — kept for skill-section gating compatibility. */ availableTools?: string[]; memoryCitationsMode?: MemoryCitationsMode; includeMemorySection?: boolean; userTimezone?: string; runtime?: RuntimeInfoInput; agentId?: string; channels?: string[]; externalMemoryInstructions?: string; ttsSystemHint?: string; extraSystemPrompt?: string; activeProjectContext?: string; silentReplyPromptMode?: SilentReplyPromptMode; promptContribution?: ProviderSystemPromptContribution; includeProblemSolving?: boolean; includeToneSection?: boolean; actionTrustLevel?: UserTrustLevel; responseLanguage?: ResponseLanguage; customInstructions?: string; } /** * Build system prompt with bootstrap Project Context integration. */ export declare function buildSystemPrompt(workspaceDir: string, options?: SystemPromptOptions): string; /** Split a built prompt at the cache boundary (for tests and provider adapters). */ export declare function splitBuiltSystemPrompt(text: string): { stablePrefix: string; dynamicSuffix: string; };