/** * Codex InstallPlan — Multi-Host Core Design §10 우선순위 3 * * `~/.codex/hooks.json` 에 forgen hook 등록(절대경로, idempotent), `~/.codex/config.toml` * 에 forgen-compound MCP 등록(managed marker block). $CODEX_HOME 환경변수 존중. * * 동작 원칙: * - hook 등록은 generateHooksJson({runtime:'codex', pluginRoot, releaseMode}) 결과를 그대로 사용 * — 이미 codex-adapter wrapper + 절대경로 적용됨 (spec §18.5 결정 옵션 1). * - 사용자가 직접 작성한 비-forgen hook 은 보존 (`isForgenHookEntry` pattern). * - MCP 등록은 TOML 라이브러리 없이 marker block 으로 idempotent 관리. * - dryRun 시 파일을 쓰지 않고 결과만 반환 (테스트 + preview 용). */ export interface CodexInstallOptions { /** forgen package root (build 산출물 dist/ 의 부모). 기본: 호출 시 process.cwd(). */ pkgRoot: string; /** codex home (default: $CODEX_HOME ?? ~/.codex). */ codexHome?: string; /** dry-run: 파일 미작성, 결과만 반환. */ dryRun?: boolean; /** MCP 서버 등록 여부 (default true). */ registerMcp?: boolean; /** hooks-generator releaseMode (default true: 환경 독립). */ releaseMode?: boolean; /** AGENTS.md 위치 override (default: pkgRoot 기준 자동 resolve). 격리 테스트용. */ agentsMdPath?: string; } export interface CodexInstallResult { codexHome: string; hooksPath: string; hooksWritten: boolean; hooksCount: number; preservedUserHookCount: number; configTomlPath: string; mcpRegistered: boolean; mcpAlreadyPresent: boolean; /** P3-3 (US-013): Codex skills/ 에 install 된 forgen 명령 수 */ skillsInstalled: number; skillsPath: string; /** P3-3: AGENTS.md (cwd) 에 forgen rule block 인젝션 여부 */ agentsMdPath: string; agentsMdInjected: boolean; /** v0.4.9: dev-guide skills (~/.codex/skills) 설치 결과 */ devGuideSkillsPath: string; devGuideSkillsInstalled: number; devGuideSkillsRemoved: number; } export declare function planCodexInstall(opts: CodexInstallOptions): CodexInstallResult; export declare function resolveAgentsMdPath(_pkgRoot: string): string; export declare function upsertForgenRulesInAgentsMd(opts: { agentsMdPath: string; pkgRoot: string; dryRun: boolean; }): { injected: boolean; };