/** * `harness` setup wizard section (E-CONFIG-AUTH-UNIFY E3 / T9425). * * Captures which harness CLEO should consider "active" for spawn-prompt * resolution and status reporting. Two operator-visible values are * accepted today: * - `'pi'` — the native CLEO Pi binary harness (default for * headless installs and Docker tasks). * - `'claude-code'` — Claude Code CLI as the harness (auto-injects * `AGENTS.md`, triggers tier-1 dedup). * * V2 additions (T9610): * - `isConfigured()` — returns `true` when `harness.active` is set (HARN-6). * - Pi URL prompt when `pi` is selected (HARN-3). * - Claude Code note when `claude-code` is selected (HARN-4). * - Section description printed before prompts (GEN-6). * * The wizard surfaces the *currently active* harness from `CLEO_HARNESS` * (falling back to `'unknown'` — mirrors `packages/core/src/status/index.ts`) * and then asks the operator to pick the canonical value. The selection * lands in the **global** config under `harness.active` via * {@link setConfigValue} — the same scope `identity` uses for `agent.name` * so the choice persists across projects without leaking into per-project * configs. * * Non-interactive contract: * - `options.nonInteractive === true` + `options.harness` → * persist that value to global config; no prompts. * - Missing `--harness` under `--non-interactive` → * section short-circuits with error. * * @task T9425 * @task T9610 * @epic T9402 * @epic T9591 * @see docs/plans/E-CLEO-SETUP-V2.md §4.5 (HARN-1 through HARN-6) * @see docs/plans/E-CONFIG-AUTH-UNIFY.md §5.3 T-E3-6 */ import type { WizardSectionRunner } from '../wizard.js'; /** * Allowed harness values the wizard offers + persists. * * Kept aligned with {@link CleoStatus.harness.active} so any value written * here round-trips cleanly through `cleo status`. */ declare const HARNESS_CHOICES: readonly ["pi", "claude-code"]; /** * Surface-facing harness value. * * Wider than the internal `HarnessHint` union because the wizard only asks * about the operator's _intent_ (Pi vs. Claude Code). Plumbing `generic`/`bare` * remains a job for `cleo orchestrate spawn` and the harness-hint resolver. */ export type WizardHarness = (typeof HARNESS_CHOICES)[number]; /** * Build the `harness` section runner. * * @returns A {@link WizardSectionRunner} for the harness section. * @task T9425 * @task T9610 */ export declare function createHarnessSection(): WizardSectionRunner; export {}; //# sourceMappingURL=harness.d.ts.map