import { h as PersonalityDefinition, g as PersonalityChannel, d as CalibrationRecord, C as CALIBRATION_DIMENSIONS, a as CALIBRATION_DIRECTIONS, b as CalibrationDimension, c as CalibrationDirection, E as EMOJI_POLICIES, e as EmojiPolicy, P as PERSONALITY_CHANNELS, f as PartialPersonality, i as PersonalityStyle, j as PersonalityTone, S as SELF_REFERENCES, k as SENTENCE_LENGTHS, l as SelfReference, m as SentenceLength, T as TONE_DIRECTNESS, n as TONE_ENERGIES, o as TONE_HUMORS, p as TONE_REGISTERS, q as ToneDirectness, r as ToneEnergy, s as ToneHumor, t as ToneRegister, u as partialPersonalitySchema, v as personalityDefinitionSchema, w as personalityStyleSchema, x as personalityToneSchema } from './types-Bqp-TaHW.js';

interface BuildSystemPromptArgs {
    personality: PersonalityDefinition;
    channel: PersonalityChannel;
    /** Task-specific addendum, e.g. "Reply to the user's question about expenses." */
    task?: string;
    /** Live context string — recent events, current state, retrieved facts. */
    context?: string;
    /** Recent CALIBRATION records — layered at composition time, not persisted. */
    recentCalibrations?: CalibrationRecord[];
    /** When true, appends a short reminder that the agent can introspect its tools. */
    includeCapabilitiesHint?: boolean;
}
/**
 * Build a system prompt from a personality, channel, and optional overlays.
 *
 * Section order is fixed:
 *   1. Identity (name / role / about)
 *   2. Voice and style guide (tone + style)
 *   3. Vocabulary (preferred / avoid / signature phrases)
 *   4. Behavioural rules (do / don't)
 *   5. Channel notes (which surface, what that implies)
 *   6. Capabilities hint (optional)
 *   7. Live context (optional)
 *   8. Recent calibrations (optional — surfaced as plain-English notes so
 *      the model can reason about why its tone is being nudged)
 *   9. Task (optional — last, so it's the freshest thing in the model's
 *      working memory before it composes its reply)
 *
 * Sections are separated by a single blank line. Empty sections are omitted
 * entirely — no "Context: (none)" stub lines.
 */
declare function buildSystemPrompt(args: BuildSystemPromptArgs): string;

/**
 * Returns a NEW PersonalityDefinition with the channel's override merged in.
 * Pure — does not mutate the base. If the channel has no override declared,
 * the base is returned (still a new object so callers can rely on referential
 * inequality if they want).
 *
 * Merge semantics:
 *   - tone / style: shallow per-field override (only the keys the channel
 *     declares change; everything else keeps the base value)
 *   - preferredPhrasing / avoidPhrasing / signaturePhrases / doList / dontList:
 *     concatenated (channel additions extend the base list, deduplicated
 *     while preserving order — base entries first, channel additions appended)
 *   - channels: stripped from the result so the merged object is "flat" and
 *     can't be re-merged accidentally
 *   - updatedAt + version: passed through unchanged from the base
 */
declare function applyChannelOverride(base: PersonalityDefinition, channel: PersonalityChannel): PersonalityDefinition;

/**
 * Returns a NEW PersonalityDefinition with the calibration nudges applied.
 * Pure — does not mutate the input. Calibrations are processed in chronological
 * order (oldest first), so later corrections override earlier ones along the
 * same dimension. The original `updatedAt` and `version` are preserved — the
 * caller can tell from the returned identity that this is the same personality
 * snapshot, just with calibrated overlay.
 *
 * Nudge semantics: each dimension has an ordered scale (e.g. register goes
 * formal → professional → casual → warm). "less" / "softer" move toward the
 * lower-index end, "more" / "sharper" move toward the higher-index end.
 * Movement is clamped at both ends — you can't nudge past the extremes.
 */
declare function applyCalibrationsToPersonality(personality: PersonalityDefinition, recentCalibrations: CalibrationRecord[]): PersonalityDefinition;

declare function makeMockPersonality(overrides?: Partial<PersonalityDefinition>): PersonalityDefinition;

type index_BuildSystemPromptArgs = BuildSystemPromptArgs;
declare const index_CALIBRATION_DIMENSIONS: typeof CALIBRATION_DIMENSIONS;
declare const index_CALIBRATION_DIRECTIONS: typeof CALIBRATION_DIRECTIONS;
declare const index_CalibrationDimension: typeof CalibrationDimension;
declare const index_CalibrationDirection: typeof CalibrationDirection;
declare const index_CalibrationRecord: typeof CalibrationRecord;
declare const index_EMOJI_POLICIES: typeof EMOJI_POLICIES;
declare const index_EmojiPolicy: typeof EmojiPolicy;
declare const index_PERSONALITY_CHANNELS: typeof PERSONALITY_CHANNELS;
declare const index_PartialPersonality: typeof PartialPersonality;
declare const index_PersonalityChannel: typeof PersonalityChannel;
declare const index_PersonalityDefinition: typeof PersonalityDefinition;
declare const index_PersonalityStyle: typeof PersonalityStyle;
declare const index_PersonalityTone: typeof PersonalityTone;
declare const index_SELF_REFERENCES: typeof SELF_REFERENCES;
declare const index_SENTENCE_LENGTHS: typeof SENTENCE_LENGTHS;
declare const index_SelfReference: typeof SelfReference;
declare const index_SentenceLength: typeof SentenceLength;
declare const index_TONE_DIRECTNESS: typeof TONE_DIRECTNESS;
declare const index_TONE_ENERGIES: typeof TONE_ENERGIES;
declare const index_TONE_HUMORS: typeof TONE_HUMORS;
declare const index_TONE_REGISTERS: typeof TONE_REGISTERS;
declare const index_ToneDirectness: typeof ToneDirectness;
declare const index_ToneEnergy: typeof ToneEnergy;
declare const index_ToneHumor: typeof ToneHumor;
declare const index_ToneRegister: typeof ToneRegister;
declare const index_applyCalibrationsToPersonality: typeof applyCalibrationsToPersonality;
declare const index_applyChannelOverride: typeof applyChannelOverride;
declare const index_buildSystemPrompt: typeof buildSystemPrompt;
declare const index_makeMockPersonality: typeof makeMockPersonality;
declare const index_partialPersonalitySchema: typeof partialPersonalitySchema;
declare const index_personalityDefinitionSchema: typeof personalityDefinitionSchema;
declare const index_personalityStyleSchema: typeof personalityStyleSchema;
declare const index_personalityToneSchema: typeof personalityToneSchema;
declare namespace index {
  export { type index_BuildSystemPromptArgs as BuildSystemPromptArgs, index_CALIBRATION_DIMENSIONS as CALIBRATION_DIMENSIONS, index_CALIBRATION_DIRECTIONS as CALIBRATION_DIRECTIONS, index_CalibrationDimension as CalibrationDimension, index_CalibrationDirection as CalibrationDirection, index_CalibrationRecord as CalibrationRecord, index_EMOJI_POLICIES as EMOJI_POLICIES, index_EmojiPolicy as EmojiPolicy, index_PERSONALITY_CHANNELS as PERSONALITY_CHANNELS, index_PartialPersonality as PartialPersonality, index_PersonalityChannel as PersonalityChannel, index_PersonalityDefinition as PersonalityDefinition, index_PersonalityStyle as PersonalityStyle, index_PersonalityTone as PersonalityTone, index_SELF_REFERENCES as SELF_REFERENCES, index_SENTENCE_LENGTHS as SENTENCE_LENGTHS, index_SelfReference as SelfReference, index_SentenceLength as SentenceLength, index_TONE_DIRECTNESS as TONE_DIRECTNESS, index_TONE_ENERGIES as TONE_ENERGIES, index_TONE_HUMORS as TONE_HUMORS, index_TONE_REGISTERS as TONE_REGISTERS, index_ToneDirectness as ToneDirectness, index_ToneEnergy as ToneEnergy, index_ToneHumor as ToneHumor, index_ToneRegister as ToneRegister, index_applyCalibrationsToPersonality as applyCalibrationsToPersonality, index_applyChannelOverride as applyChannelOverride, index_buildSystemPrompt as buildSystemPrompt, index_makeMockPersonality as makeMockPersonality, index_partialPersonalitySchema as partialPersonalitySchema, index_personalityDefinitionSchema as personalityDefinitionSchema, index_personalityStyleSchema as personalityStyleSchema, index_personalityToneSchema as personalityToneSchema };
}

export { type BuildSystemPromptArgs as B, applyCalibrationsToPersonality as a, applyChannelOverride as b, buildSystemPrompt as c, index as i, makeMockPersonality as m };
