/** * `botmux v3 run ` — standalone CLI entry that runs a hand-written * v3 DAG to terminal on the REAL ephemeral worker pool. * * This is the daemon-independent dogfood path: it wires the two injected seams * (codex's `ephemeral-pool` + `manifest` validator) against live `bots.json`, * so the whole engine can be exercised end-to-end without the daemon running. * * Secret handling follows the contract: secrets are NEVER frozen into the * runDir. The pool re-resolves `larkAppSecret` by the frozen `larkAppId` at * spawn time via `resolveLarkAppSecret`, which reads `bots.json` and * process-fails (returns a fail result) if the bot is gone — it deliberately * does NOT fall back to an environment variable. * * Gate handling: a CLI run has no Lark card layer, so `humanGate` nodes resolve * through a terminal y/N prompt (or `--yes` to auto-approve). Wiring the gate * to the v0.2 approval card is the daemon's job, deferred until the engine is * proven on real workers. */ import type { V3Dag } from './dag.js'; import { type BotSnapshot } from './contract.js'; import { type BotConfig } from '../../bot-registry.js'; import { type PublishRunEnvelopeResult, type V3ManualCliRunEnvelope } from './run-envelope.js'; /** Default run root: `~/.botmux/v3-runs/`. */ export declare function defaultBaseDir(): string; export interface AuthorizeManualCliRunOptions { runDir: string; dag: V3Dag; bots: BotConfig[]; defaultBotSelector?: string; workingDirOverride?: string; now?: Date; /** * Exact canonical request bytes for `botmux goal run`. They are pinned by * run.json beside the DAG/snapshots so a caller-provided runId cannot be * silently reused with a different goal, bot, cwd, or timeout. Hand-authored * `botmux v3 run` leaves this absent. */ goalRequestBytes?: string; } export interface AuthorizeManualCliRunResult { dag: V3Dag; frozenBotSnapshots: Map; envelope: V3ManualCliRunEnvelope; publication: PublishRunEnvelopeResult; } /** * Create/reuse a manual CLI run's immutable execution authorization. * * The lock deliberately spans the missing-envelope check, all shared artifact * writes, digest construction, and run.json publication. link(2) alone keeps * run.json create-once, but cannot stop two manual launchers from overwriting * dag.json/bots.snapshot.json between one another's digest and publication. */ export declare function authorizeManualCliRun(opts: AuthorizeManualCliRunOptions): AuthorizeManualCliRunResult; /** * `botmux v3 ...` dispatcher. MVP exposes only `run`. */ export declare function cmdV3(sub: string, rest: string[]): Promise; //# sourceMappingURL=cli-run.d.ts.map