/** * Resolved persona chosen in the pixel-office create-agent dialog. The office * returns it under `data.persona` in the credentials / setup / store payloads. * `id === 'general'` (or an empty `prompt`) means "neutral" — no persona text to * apply. */ export interface AgentPersona { id: string; label: string; prompt: string; } /** * Apply a resolved persona to the workspace's persistent identity file * (`/SOUL.md`), per the project rule that identity/persona lives in * SOUL.md and NOT in the regenerated PROGRAM.md. * * Behaviour: * - Non-empty persona → insert/replace an IDEMPOTENT block delimited by the * persona markers, containing a `## Persona` heading with the label + prompt. * Re-connecting with the same persona leaves exactly one, unchanged block; * connecting with a different persona replaces the block in place. * - `general` / empty-prompt persona → inject nothing, and REMOVE any prior * persona block (so switching back to neutral clears the identity). * - Missing SOUL.md → create it with a minimal identity header + the block. * - Best-effort: any failure is swallowed (returns false) so it never breaks * connect. * * @returns true if SOUL.md was written/changed, false otherwise. */ export declare function applyPersonaToSoul(root: string, persona?: AgentPersona | null): boolean; /** Save a full WS URL (with token+endpoint query params) into the workspace settings. */ export declare function applyWsUrl(cwd: string, wsUrl: string): void; /** Fetch credentials from a signed setup URL and apply them to the workspace. */ export declare function applySetupUrl(cwd: string, setupUrl: string): Promise;