/** * A real onboarding produces a populated USER.md AND a structured profile.json. * We require BOTH: the readable USER.md for the koi's own context, and a valid, * non-trivial profile.json — the website renders profile.json as the user's * knowledge graph, and the koi used to write USER.md but skip profile.json, * leaving the graph empty. * * To avoid looping off-Mac (where local message stores don't exist, so arrays * can be thin), profile.json counts as "real" as soon as it parses to an object * with an identity name OR at least one populated entity array — a bar the koi * can always clear, while still forcing it to write the structure. */ export declare function profileJsonIsReal(dir?: string): boolean; /** * True when a real dossier is present on disk (a populated USER.md AND a * structured profile.json). This is the single source of truth for "did * onboarding actually produce something", shared by the login pass and the TUI * first-run gate so a marker can never claim success over an empty dossier. */ export declare function dossierExists(dir?: string): boolean;