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.
38 lines • 2.48 kB
TypeScript
/**
* The driver vocabulary (#542), node-free so every surface shares one copy: the session spec,
* the registry's preference sanitizer, and the dashboard bundle — which must not import the
* driver layer (it spawns processes), and whose "kept local" copies existed only because this
* list used to live beside those imports. Adding a driver is one entry here plus its
* implementation; the dashboard's per-driver UI table is keyed by {@link DriverName}, so a
* missing entry there is a compile error, not a silent gap.
*
* These are the *choice* — which coding-agent CLI does the work — not the implementation that
* carries it out. One driver has several implementations because it can run in several places:
* `claude` is `claude-code` locally, `claude-web` in a cloud session, and `github-actions` on a
* runner. That is what {@link DriverImplId} names and {@link driverFromImpl} collapses.
*
* Both were called "agent" until D5, when the unit of work took that word. The two meanings sat
* one line apart in the CLI's own help — "which coding-agent CLI drives the session" — and the seam
* between them is exactly where a reader had to guess which was meant.
*/
/** The coding-agent CLIs the framework can drive, in the order surfaces list them. */
export declare const DRIVERS: readonly ["claude", "codex"];
/** A driver the user can pick. */
export type DriverName = (typeof DRIVERS)[number];
/** Whether `value` names a driver we can run. */
export declare function isDriverName(value: string | undefined): value is DriverName;
/** How each driver reads in a sentence or on a button. */
export declare const DRIVER_LABELS: Record<DriverName, string>;
/**
* The stable id of one concrete implementation, as recorded on a session's meta. A driver has
* one per place it can run, which is why this is a wider set than {@link DriverName}.
*/
export type DriverImplId = 'claude-code' | 'claude-web' | 'github-actions' | 'codex' | 'fake';
/**
* The driver behind an implementation id (#831): a session records the implementation that ran it
* (`claude-code`), while the choice is the driver name (`claude`). `undefined` for an
* implementation no driver claims (the fake one, or a record from a newer version). An
* implementation whose id differs from its driver's name needs a case here, like claude's does.
*/
export declare function driverFromImpl(impl: string | undefined): DriverName | undefined;
//# sourceMappingURL=driver-names.d.ts.map