/** The disclosure ladder, lowest to highest. Index order is the ordering. */ export declare const PROFILE_PROJECT_MEMORY_VALUES: readonly ["none", "name", "preview", "content"]; /** How much of a project's memory stores the profile relationship lets an * automatic delivery disclose. */ export type ProfileProjectMemory = (typeof PROFILE_PROJECT_MEMORY_VALUES)[number]; /** One project directory in a profile's purview. */ export interface ProfileProject { /** Absolute, real-path-resolved directory. */ path: string; /** Maximum rung automatic boot and workspace-open delivery may reach from * this project's memory stores, regardless of the node's working directory. * An authored lower rung stays lower; targeted reads are never capped. */ memory: ProfileProjectMemory; } /** `PUT /v1/profiles/{name}` body — idempotent ensure. Every field applies * only at create; an existing same-named profile is returned untouched. */ export interface EnsureProfileRequest { /** Project directories in the profile's purview, each with its memory cap. */ projects?: ProfileProject[]; /** Persona kind for node creates under the profile that omit kind. */ default_kind?: string; /** Profile facts (identity, role); each entry reaches every broker * launched under the profile as `CRTR_PROFILE_META_` env. */ metadata?: Record; } /** `PATCH /v1/profiles/{name}/metadata` body. Merges `set` and removes `unset`. */ export interface UpdateProfileMetadataRequest { set?: Record; unset?: string[]; } /** The daemon-owned result of pausing or resuming one profile. */ export interface ProfilePauseResultDTO { profile_id: string; paused_at: string | null; } /** `DELETE /v1/profiles/{name}` body. Destructive deletion is never implicit. */ export interface DeleteProfileRequest { force: boolean; /** Preserve nodes and human history while removing their profile identity. */ detach?: boolean; /** The invoking broker, when the request came from a node-owned CLI process. */ caller_node_id?: string | null; } export type DeleteProfileMode = 'deleted' | 'detached'; /** The completed deletion, or the accepted plan when the invoking node is part of it. */ export interface DeleteProfileResultDTO { profile_id: string; name: string; mode: DeleteProfileMode; nodes: number; crons: number; tickets: number; reviews: number; default_pins: number; /** True only when crtrd acknowledged the response before tearing down its caller. */ accepted?: true; grace_ms?: number; } /** A profile projection. */ export interface ProfileDTO { /** Stable profile-directory id (`-`). */ id: string; name: string; projects: ProfileProject[]; /** Where nodes under this profile run — one of `projects[].path` (the first * unless re-pointed), or null when the profile owns none. */ home: string | null; /** ISO timestamp when the profile was paused, or null while active. */ paused_at: string | null; /** Default node kind when a create omits kind; `general` when absent on the manifest. */ default_kind: string; /** Stored profile facts; empty when the manifest carries none. */ metadata: Record; /** The directory this profile is pinned as default for, if any. */ default_dir?: string | null; }