import { type Connector, type ConnectorSetupProvider, type ParsedArgs } from "@cotal-ai/core"; /** Setup saves its preparation before a separate start decision. Scripts name every input; * an explicit start must detach so no script inherits a terminal view. */ export declare const setupFlags: readonly [{ readonly name: "destination"; readonly type: "string"; readonly value: ""; readonly description: "where the space runs: local (this machine starts it) or self-hosted (a space registered here, including a Cloud space `cotal login` discovered)"; }, { readonly name: "harness"; readonly short: "H"; readonly type: "string"; readonly value: ""; readonly description: "the application your agents run in: its own setup runs, and `cotal spawn` in the space launches it"; }, { readonly name: "project"; readonly type: "string"; readonly value: ""; readonly description: "the project folder: the space's root, whose .cotal/agents holds its personas"; }, { readonly name: "space"; readonly short: "s"; readonly type: "string"; readonly value: ""; readonly description: "the space to prepare (local) or the registered space to use (self-hosted)"; }, { readonly name: "runtime"; readonly type: "string"; readonly multiple: true; readonly value: ""; readonly description: "a runtime to set up besides the built-in pty: tmux, cmux, orca, herdr or an installed one (repeatable); none without it"; }, { readonly name: "connection-file"; readonly type: "string"; readonly value: ""; readonly description: "self-hosted: register the space from a connection bundle exported where it runs"; }, { readonly name: "configure-only"; readonly type: "boolean"; readonly description: "write the preparation and start nothing (the default)"; }, { readonly name: "start"; readonly type: "boolean"; readonly description: "after preparation, start the local stack when needed and launch the default persona; scripts require --detach"; }, { readonly name: "on"; readonly type: "string"; readonly value: ""; readonly description: "self-hosted startup: launch through this manager instance, not class selection"; }, { readonly name: "detach"; readonly short: "d"; readonly type: "boolean"; readonly description: "with --start, leave the managed agent running without opening its terminal"; }, { readonly name: "full"; readonly type: "boolean"; readonly description: "the guided flow with the guided expert team (implies --demo)"; }, { readonly name: "demo"; readonly type: "boolean"; readonly description: "also seed the guided expert team (david, sven, me)"; }, { readonly name: "yes"; readonly short: "y"; readonly type: "boolean"; readonly description: "ask nothing: every input comes from the flags"; }, { readonly name: "skills"; readonly type: "boolean"; readonly description: "reconcile Cotal skills through installed connector providers and ~/.agents/skills; no personas or onboard writes"; }, { readonly name: "json"; readonly short: "j"; readonly type: "boolean"; readonly description: "structured output on stdout"; }, { readonly name: "plain"; readonly type: "boolean"; readonly description: "plain line-oriented output"; }]; /** Input-only validation before connector seeding or preparation writes. */ export declare function validateSetupArguments(args: ParsedArgs): void; /** * Setup prepares a space before a separate, explicit startup decision. Its inputs are the * destination (a local space this machine starts, or a self-hosted one registered here), the * application (the connector your agents run in), the runtimes to set up besides the built-in * `pty`, the project folder (the space's root) and the space name. On a terminal it asks for each * one no flag gave and shows the answers before it writes; in a script every one is a flag, and a * missing one is refused before anything is written. It then prepares or registers the space, * seeds the default persona into the project's `.cotal/agents`, records the application as the * space's `harness` preference and, when you have none, as your own, runs the application's own * setup actions, reconciles Cotal's skills and sets up the chosen runtimes. A rerun with the same * answers changes nothing. * `--start` launches only after preparation is complete; scripts must detach. * `--skills` only reconciles skills. */ export declare function setup(args: ParsedArgs): Promise; /** When run via `npx` without a global `cotal`, offer to install it so the user can just type * `cotal`. Interactive: a Y/n prompt (default yes). Non-interactive (`--yes` / no TTY): takes the * default and installs. Best-effort — `npm i -g` fails a lot (EACCES, nvm/fnm/volta), so on failure * we warn with the manual command and continue; setup never aborts over a PATH convenience. */ export declare function offerGlobalInstall(yes: boolean): Promise; /** Pick which agent connectors to set up. Detected ones are pre-checked (= the "all" * default). Non-interactive / --yes selects all detected without prompting. */ export interface SetupConnectorCandidate { connector: Connector; value: string; label: string; hint: string; missing: string[]; unavailable: boolean; } /** Every connector becomes a choice. Its provider owns setup readiness; the connector's launch * requirements apply when no provider overrides them. Names never gate membership. */ export declare function setupConnectorCandidates(connectors: readonly Connector[], pathProbe?: (bin: string) => boolean, providerFor?: (connector: Connector) => Promise): Promise; /** Materialize every connector advertised by the registry or installed manifest. Exported so the * fail-loud smoke reaches the same discovery boundary as guided setup. */ export declare function setupConnectorSurface(): Promise; /** Resolve a connector's declared setup provider from the CONNECTOR the surface produced, never * from a name this file knows. A connector that declares none simply owns no setup; a DECLARED * provider that is missing or broken fails loud, because the base CLI never substitutes a built-in * harness implementation. Exported for the fail-loud smoke. */ export declare function connectorSetupProvider(connector: Connector): Promise; /** Run every present connector's refresh, so what an earlier setup installed in its harness moves to * this release. Returns one line per connector that declares one; a refresh that fails throws. */ export declare function refreshConnectorInstalls(): Promise; /** Provider-owned readiness or the declared executable check. An unavailable harness is skipped; * an installed integration's refresh obligation is checked separately, without this filter. */ export declare function setupProviderAvailable(provider: Pick): boolean; //# sourceMappingURL=setup.d.ts.map