framework
Version:
The (AI) Framework: turnkey, zero-config AI orchestration that wraps a coding-agent CLI (Claude Code) as a black box and takes you from an idea to a running app. Vite for AI.
30 lines • 1.82 kB
TypeScript
import { type CustomPreset } from './registry.js';
import { type StoreFs } from './store/index.js';
/**
* Project-scoped custom presets (#1025).
*
* The user tier (#626) saves a custom preset to the user's home file, so it follows the person
* across every project and stays private. The project tier saves it into the repo instead, so it
* travels with the code and everyone who clones the repo gets it — the "share your presets" half
* of the issue.
*
* The store is a plain JSON array of {@link CustomPreset}, the exact shape the user tier uses, so
* the dashboard renders both from one type and the same sanitizer guards both files.
*/
/** The committed file holding a project's shared custom presets, under `.the-framework/`. */
export declare const PROJECT_PRESETS_FILE = ".the-framework/custom-presets.json";
/**
* Read a project's shared custom presets. Forgiving like every other read here: a missing,
* unreadable or malformed file yields `[]`, never throws, and the same sanitizer that guards
* the home file drops any hand-edited or hostile entry.
*/
export declare function readProjectPresets(cwd: string, fs?: StoreFs): Promise<CustomPreset[]>;
/**
* Write a project's shared custom presets, sanitizing first so the committed file is always
* well-formed. Also ensures `.the-framework/.gitignore` un-ignores the file: the dir's ignore is
* `*` + a short allowlist (only the agent archive is committed by default), so without a negation git would
* never see the presets and they could not be shared. Removing every preset writes an empty array
* rather than deleting the file, so the negation stays in place for the next save.
*/
export declare function writeProjectPresets(cwd: string, presets: CustomPreset[], fs?: StoreFs): Promise<void>;
//# sourceMappingURL=project-presets.d.ts.map