#!/usr/bin/env bun import type { InstructionSize } from './agent-docs.js'; export type McpClient = 'opencode' | 'claude-code' | 'cursor' | 'windsurf' | 'zed' | 'pi' | 'omp'; export type McpTransport = 'stdio' | 'http'; export interface InstallArgs { client: McpClient; serverPath?: string; transport?: McpTransport; force?: boolean; dryRun?: boolean; instructionSize?: InstructionSize; /** Inject agent docs even when the path is a symlink to a shared file. */ injectSharedAgentDocs?: boolean; } export type InstallStatus = 'installed' | 'already-installed' | 'dry-run'; export interface InstallResult { status: InstallStatus; clientName: string; output: string; /** Key files touched during install, for compact display. */ details: string[]; /** Stale symlinks that were skipped (user declined or non-interactive). */ staleSkippedSymlinks: Array<{ stalePath: string; symlinkTarget: string; }>; /** Agent docs symlink target if injection was skipped. */ agentDocsSkippedSymlink: string | null; } export interface UninstallArgs { client: McpClient; removeVault?: boolean; confirm?: boolean; dryRun?: boolean; /** Remove agent docs even when the path is a symlink to a shared file. */ removeSharedAgentDocs?: boolean; } export type UninstallStatus = 'uninstalled' | 'not-installed' | 'dry-run'; export interface UninstallResult { status: UninstallStatus; clientName: string; output: string; /** Key files touched during uninstall, for compact display. */ details: string[]; /** Agent docs symlink target if removal was skipped. */ agentDocsSkippedSymlink: string | null; } export interface DoctorArgs { client?: McpClient; fix?: boolean; } export interface ClientConfig { name: string; configPath: string; configFormat: 'json' | 'jsonc'; integration?: 'mcp' | 'pi-package'; mcpPath?: string[]; mcpFormat?: 'opencode' | 'standard'; /** Field used by this client's HTTP MCP config for request headers. */ httpAuthHeaderField?: 'headers'; agentDocsPath?: string; /** Display label for the agent docs file (e.g. "Rule", "Instructions"). */ agentDocsLabel?: string; instructionSize?: InstructionSize; /** Path where a Claude Code skill directory should be installed (e.g. ~/.claude/skills/open-zk-kb) */ skillPath?: string; /** Paths where a previous install may have left a managed block that should be cleaned up. */ staleAgentDocsPaths?: string[]; /** Content prepended before the managed block when creating the file (e.g. YAML frontmatter for OMP rules) */ preamble?: string; /** * Path to install a TTSR (Time-Traveling Stream Rules) enforcement rule. * TTSR is an OMP-specific mechanism that monitors the model's output stream * during generation and interrupts mid-stream when a regex pattern matches, * injecting corrective context. No other supported client has this capability. * Example: ~/.omp/agent/rules/open-zk-kb-enforce.md */ ttsrRulePath?: string; /** * Server names to add to `disabledServers` during uninstall. * OMP uses this because it discovers MCP servers from other clients' configs too. */ disabledServersOnUninstall?: string[]; /** CLI binary name for "try it out" launch (e.g. "claude", "pi", "omp"). */ cliBinary?: string; } export declare const TELEMETRY_PROMPT_INITIAL_VALUE = true; export declare const CLIENT_CONFIGS: Record; export declare function hasAuxiliaryInstallArtifacts(clientConfig: ClientConfig): boolean; /** * Install a TTSR (Time-Traveling Stream Rules) enforcement rule by copying the * template to the target path. OMP-specific — no other client uses this. */ export declare function installTtsrRule(targetPath: string, dryRun?: boolean): { action: 'created' | 'updated' | 'skipped-symlink'; path: string; }; /** * Remove an installed TTSR enforcement rule. */ export declare function removeTtsrRule(targetPath: string, dryRun?: boolean): { action: 'removed' | 'not-found'; path: string; }; /** * Get the version from an installed Claude Code skill's SKILL.md frontmatter. * Returns null if skill doesn't exist or has no version. */ export declare function getSkillVersion(skillPath: string): string | null; export declare function doctor(args?: DoctorArgs): string; export declare function install(args: InstallArgs): InstallResult; export declare function uninstall(args: UninstallArgs): UninstallResult; export declare function runSetupCli(rawArgs?: string[]): Promise; //# sourceMappingURL=setup.d.ts.map