/** * V3 CLI Eject Command — ADR-150 Phase-2 differentiator. * * Lifts the calling ruflo/claude-flow project into a renamed standalone * harness using `metaharness --from-existing `. Attribution to * ruflo is preserved via the upstream's `` * convention. * * npx ruflo eject --name my-harness # dry-run plan * npx ruflo eject --name my-harness --confirm # actually eject * npx ruflo eject --name my-harness --target /abs/out --confirm * * SAFETY GATES (load-bearing) * 1. Dry-run by default. `--confirm` required for any disk write. * 2. `--target` MUST resolve OUTSIDE the calling repo root. Default * is `/tmp/ruflo-eject--/`. Writing to the calling repo * is refused with exit 2 — protects the user from `cwd: $ruflo` * eject accidents. * 3. Refuses existing target dirs (no overwrites). * 4. Subprocess + 10-minute hard timeout. No library import; no * static `@metaharness/*` dependency. * * ADR-150 ARCHITECTURAL CONSTRAINT * When metaharness is unavailable (offline, no network), the command * exits 0 with a structured "feature not available" message. Ruflo * continues to function — rule #3 (graceful degradation). * * Created with ruv.io */ import type { Command } from '../types.js'; export declare const ejectCommand: Command; export default ejectCommand; //# sourceMappingURL=eject.d.ts.map