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.
36 lines • 1.93 kB
JavaScript
/**
* Where an agent's turns actually execute — the axis the `Driver` seam used to swallow (D1).
*
* There were five "drivers": `claude-code`, `codex`, `cloud`, `actions`, `fake`. Two of those are
* the same agent in a different place — Claude Code on claude.ai, and Claude Code in a GitHub
* Actions runner — so the seam modelled *which agent* and *where it runs* as one dimension.
*
* The cost was visible in `handsOff`: a **driver property that disabled half an agent's phases**,
* because a property of *where* had leaked into the abstraction for *what*. It lives here now, as
* a fact about the location, and `Driver` is back to "which CLI do I spawn".
*
* Node-free on purpose, like `agent-names.ts`: the dashboard, the registry and the store all name
* this axis, and none of them should have to reach the driver layer to do it.
*/
/** Every location, for validating what arrives from a browser or a config file. */
export const AGENT_LOCATIONS = ['local', 'actions', 'web'];
/** Whether `value` names a location. */
export function isAgentLocation(value) {
return typeof value === 'string' && AGENT_LOCATIONS.includes(value);
}
/**
* Whether this location hands the task somewhere this machine cannot follow (#1225), making the
* first prompt the whole agent.
*
* Everything an agent would do after that prompt — work the backlog, stay open for messages — would
* be reading the driver's own "handed off to <url>" summary as if the agent had written it. That
* is what put an unanswerable "Start the next backlog item?" on a dashboard whose agent was
* somewhere else entirely.
*
* True for `web` alone: a cloud session opens its own pull request and never reports back here.
* An Actions runner streams its agent's own replies, so it is followed like a local run.
*/
export function isHandsOff(location) {
return location === 'web';
}
//# sourceMappingURL=agent-location.js.map