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.
56 lines • 3.21 kB
TypeScript
import { type HandoffLevel } from './handoff-level.js';
/**
* The per-repo session defaults persisted in `the-framework.yml`: the prompt switches and how far
* a finished session publishes itself, so a repo's config travels with the code instead of being
* chosen again every session.
*/
export interface FrameworkFileConfig {
/**
* Remove the built-in #326 system prompt, keeping the session controls. Default `false`.
*
* One name for one concept (C3). This key used to be `antiLazyPill` — the historical name of
* the prompt's ancestor (#301) — spelled the other way round from the `vanilla` it mapped to
* everywhere else, so the file, the preference and the agent option each said the same thing in a
* different direction and three comments apologised for it.
*/
vanilla?: boolean;
/**
* Transparent mode (#625): make every agent in this project a raw `claude -p` — no framework
* system prompt, no emit protocols, no consumption guard, no dashboard, no TODO loop. The
* coarse "only-pick-what-you-need" master off-switch, at the per-project tier. Default `false`.
*/
transparent?: boolean;
/**
* How far a finished session publishes itself (#1102/#1173/#1216/B5): `local`, `push`, `pr` or
* `merge`. Default `pr`. Whether a session publishes itself is a fact about the repo, so it
* belongs in the file that travels with it.
*
* `merge` has to be asked for out loud: publishing a branch is reversible, landing it on the
* default branch is not. Meant for work whose review already happened before the session — the
* quick-win and consensual routines merge what a plan the human could veto already settled.
*/
handoff?: HandoffLevel;
}
/** Config file names read from the workspace root, in precedence order. */
export declare const FRAMEWORK_CONFIG_FILES: readonly ["the-framework.yml", "the-framework.yaml"];
/**
* The boolean-valued mode keys. This is the canonical mode list: parsing, the config-layer copy,
* resolution, and the resolved-config summary all iterate it, so a new mode is added here once and
* flows through them (only its default and any renamed output field are declared per key).
*/
export declare const BOOLEAN_CONFIG_KEYS: readonly ["vanilla", "transparent"];
/** Every config key, enum then boolean, in declaration order. */
export declare const CONFIG_KEYS: readonly ["handoff", "vanilla", "transparent"];
/**
* Read `the-framework.yml` (or `.yaml`) from a directory. A missing file yields
* `{}`. Best-effort: a malformed file is reported via `onWarn` and treated as
* empty, never a failed agent. CLI flags override whatever this returns.
*/
export declare function loadFrameworkConfig(dir: string, onWarn?: (message: string) => void): Promise<FrameworkFileConfig>;
/**
* Parse and validate a `the-framework.yml` body into a {@link FrameworkFileConfig}.
* An empty document is `{}`. Throws on a non-map document or a mistyped field so
* {@link loadFrameworkConfig} can surface it as a warning.
*/
export declare function parseFrameworkConfig(raw: string, source?: string): FrameworkFileConfig;
//# sourceMappingURL=config.d.ts.map