/** * Project learning snapshot writer for `iranti project init`. * * When a project is bound to an Iranti instance, this module collects a * lightweight bounded snapshot of the project's structure and writes it to * the `codebase/{name}_{hash}` entity in the Iranti library. The snapshot * is intentionally scoped to manifest files and directory structure — it is * NOT a crawler, watcher, or autonomous full-repo understanding pass. * * Snapshot keys written: * project_overview — languages, frameworks, package manager, README summary * project_scripts — package.json scripts list * project_layout — manifest files present + source directory layout * project_binding — entity mapping, agent ID, project mode, instance env reference * * The codebase entity ID is derived as `codebase/{basename}_{sha1_prefix}` so * the same project path always maps to the same entity, even after renames. * * Key exports: * - writeProjectLearningSnapshot() — collect + write snapshot; returns status * - deriveProjectCodebaseEntity() — compute the stable codebase entity ID for a path */ type ProjectBindingEnv = Record; export type ProjectLearningStatus = { status: 'written'; detail: string; entity: string; keys: string[]; } | { status: 'skipped' | 'failed'; detail: string; entity: string | null; keys: string[]; }; export declare function deriveProjectCodebaseEntity(projectPath: string): string; export declare function writeProjectLearningSnapshot(input: { projectPath: string; binding?: ProjectBindingEnv; projectEnvFile?: string | null; agentId?: string; }): Promise; export {}; //# sourceMappingURL=projectLearning.d.ts.map