import type { ResolvedToolContext } from "../shared/agent/tool.factory.js"; import { type NegotiatorMemoryEntry } from "../capabilities/negotiation.memory.facade.js"; import type { IterationContext } from "./chat.prompt.modules.js"; /** Identity options resolved from the user's personal negotiator agent row. */ export interface NegotiatorPromptOptions { /** The negotiator agent's display name (e.g. "Ada's Negotiator"). */ agentName: string; /** The negotiator agent's description, when set on the agent row. */ agentDescription?: string; /** * Human-readable label for the pinned signal when the session is * intent-scoped (P4.2/IND-403). The pin itself comes from the resolved * context's scope envelope; this label just saves a tool round-trip for * naming it. Ignored when the session has no intent scope. */ pinnedIntentLabel?: string; /** * The client's negotiator memories (P5.3 read path) — accumulated notes * from negotiations and prior chats, rendered as a prompt section. The * audience is the client themself, so entries are shared context, not * secrets. Absent/empty → the prompt is byte-identical to before. */ memory?: NegotiatorMemoryEntry[]; /** * True when the `remember`/`forget` memory tools are registered for this * session (P5.4 — the composition root injects them only while negotiator * memory writes are enabled). Adds the memory-tool guidance section and * tool-reference rows; false/absent → prompt unchanged. */ memoryToolsEnabled?: boolean; } /** * Builds the system prompt for the negotiator chat persona. * * Grounded in the client's preloaded user/profile context; everything else * (negotiations, opportunities, signals, premises) must be fetched through * the client-scoped toolset each turn. * * @param ctx - Resolved tool context for the current session * @param opts - Identity from the client's personal negotiator agent row * @param _iterCtx - Iteration context (unused — the negotiator prompt has no * dynamic modules; the nudge is injected by the agent loop) * @returns The complete system prompt string */ export declare function buildNegotiatorSystemContent(ctx: ResolvedToolContext, opts: NegotiatorPromptOptions, _iterCtx?: IterationContext): string;