/** A launch this connector refuses on what it was given. The message is the whole diagnosis, so * it is printed without a stack: a stack names lines in a bundle and points the operator at * this code, when what they need to change is their own invocation. */ export declare class LaunchRefused extends Error { } /** * Build the isolated Hermes profile (HERMES_HOME) so the operator's ~/.hermes is never touched. * Drops the cotal plugin into the profile's plugins dir, enables it + the cotal platform, and * turns approvals off (an autonomous spawned gateway has no human at the TUI to approve commands). */ export declare function setupProfile(home: string, opts: { model: string | undefined; persona?: string; }): void; /** Opt-in: run the gateway in the operator's OWN Hermes profile instead of a disposable one. * Set to the profile directory (`~/.hermes`, or any HERMES_HOME). Unset means the managed * default, which is what a spawned seat should almost always use. */ export declare const ADOPT_HOME_ENV = "COTAL_HERMES_ADOPT_HOME"; /** Resolve the adopt-home opt-in, or undefined for the managed default. */ export declare function adoptedHome(env?: NodeJS.ProcessEnv): string | undefined; /** * Install the cotal plugin into an EXISTING Hermes profile, and change nothing else about it. * * Two needs are served by this connector and only one of them is served by the managed profile * above. A fresh disposable seat wants isolation. An operator who already has a working Hermes * wants THAT one on the mesh, with its configured credentials and integrations, because those * are the reason the seat is worth anything: a Hermes wired to a notification path can reach its * operator, and a temp HERMES_HOME cannot, since the integrations live in the real profile. * * What this writes is exactly one directory, `plugins/cotal`, which is this connector's own asset * and is refreshed each launch so a connector upgrade lands. What it deliberately does NOT write: * * config.yaml the managed path regenerates it wholesale and turns approvals off. Doing that to * a real profile would discard the operator's model, platform and approval * settings, and silently disable the approvals a human profile is entitled to. * SOUL.md the operator's own identity file. The managed path overwrites it with the * persona; here that would destroy the agent the operator built. * * Because config.yaml is not written, enabling the plugin is the operator's decision and this * refuses rather than making it for them. That is the "no fallbacks" rule doing real work: a * silent enable would be a write to a human's configuration that they never asked for. */ export declare function setupAdoptedProfile(home: string, opts: { persona?: string; }): void; /** Assert the installed hermes-agent is within the supported API range, or throw. No silent * degrade: a version outside it can shift the plugin/platform/hook contract this connector * depends on, and the failure that produces lands at platform connect rather than at load. */ export declare function assertHermesVersion(opts?: { env?: NodeJS.ProcessEnv; pkgDir?: string; execFileImpl?: (file: string, args: readonly string[], options: { encoding: "utf8"; }) => string; logImpl?: (message: string) => void; }): void; //# sourceMappingURL=launch.d.ts.map