/** The five Paseo skills this setup links. `context-search` is deliberately excluded. */ export declare const INSTALL_SKILL_NAMES: readonly ["paseo", "paseo-advisor", "paseo-committee", "paseo-handoff", "paseo-loop"]; export type InstallSkillName = (typeof INSTALL_SKILL_NAMES)[number]; /** Prefix used to enumerate Paseo-owned skills when scanning for drift. */ export declare const PASEO_SKILL_PREFIX = "paseo"; /** Base provider key written into `agents.providers`. */ export declare const PROVIDER_KEY = "gjc"; /** Paseo's undocumented provider inheritance contract, reverse-engineered from a hand-written config. */ export declare const PROVIDER_EXTENDS = "acp"; /** * Role keys Paseo stores under `providers` in `orchestration-preferences.json`. * * Verified against a live file: the roles are nested, not top-level, and the * sibling `preferences` array belongs to the user. */ export declare const ORCHESTRATION_ROLE_KEYS: readonly ["impl", "ui", "research", "planning", "audit"]; export interface PaseoPaths { /** `~/.paseo/config.json` */ readonly configJson: string; /** `~/.paseo/orchestration-preferences.json` */ readonly orchestrationPreferences: string; /** `~/.agents/skills` -- READ-ONLY, never written by this setup. */ readonly agentsSkillsDir: string; /** `/paseo-skills` -- the bridge directory this setup owns. */ readonly bridgeDir: string; /** `/paseo/provenance.json` -- GJC-side ownership ledger. */ readonly provenanceLedger: string; /** `/paseo/intent.json` -- durable crash-recovery intent record. */ readonly intentRecord: string; /** `/skills` -- second protected tree, never written by this setup. */ readonly gjcSkillsDir: string; } /** A provider row as `paseo provider ls --json` reports it. */ export interface PaseoProviderRow { readonly id: string; /** Paseo reports `"available"` for a provider it can actually reach. */ readonly status?: string; } /** Distinct outcomes of probing `paseo provider ls --json`. Never collapsed into a boolean. */ export type PaseoLsOutcome = { readonly kind: "ok"; readonly providerIds: readonly string[]; readonly rows: readonly PaseoProviderRow[]; } | { readonly kind: "unavailable"; readonly detail: string; } | { readonly kind: "timeout"; readonly timeoutMs: number; } | { readonly kind: "malformed"; readonly detail: string; } | { readonly kind: "nonzero-exit"; readonly exitCode: number; readonly detail: string; }; export interface PaseoSetupDependencies { readonly paths: PaseoPaths; /** Bounded probe of the Paseo daemon. MUST enforce `timeoutMs` and kill the child on expiry. */ runProviderLs(timeoutMs: number): Promise; now(): Date; } export declare function createDefaultPaseoPaths(agentDir?: string, home?: string): PaseoPaths; /** * Parse `paseo provider ls --json`. * * The measured shape is an array of `{ provider, label, status, ... }` rows. * `id` and `name` are also accepted because the key is undocumented and has no * stability guarantee, and a bare string array is accepted for the same reason. */ export declare function parseProviderLs(stdout: string): PaseoLsOutcome; export declare function createDefaultPaseoSetupDependencies(): PaseoSetupDependencies;