/** * openlore view command * * Starts a local React (Vite) server to visualize analysis graphs, * then opens the user's browser. */ import { Command } from 'commander'; /** * Strip internal filesystem paths and credentials from error messages before sending them * to clients. * * Delegates to `secret-redaction`, which is the single source of truth for every server * output channel (mcp-security: Secret Confinement Across All Output Paths). The private * pattern list this used to carry was a weaker second redactor — it missed free-standing * `AIza…` keys, `x-goog-api-key:`, GitHub `gh[pous]_` tokens, JWTs, AWS `AKIA…`, echoed * `"api_key": …` fields, PEM blocks and `user:pass@` URLs — on the one channel that * answers a remote browser. Same call shape as `doctor`'s redactDoctorResults. */ export declare function sanitizeErrorMessage(msg: string): string; /** * Ensure a resolved path stays within the project root. Returns null if invalid. * * Delegates to the shared `safeJoin` so this surface gets the same SYMLINK-aware * containment the MCP handlers have (mcp-security: Symlink-Aware Path Confinement). * The lexical-only check this used to do accepted an in-repo symlink pointing * outside the root, which the `/api/skeleton` and `/api/spec-requirements` routes * would then read. */ export declare function safePath(rootPath: string, userPath: string): string | null; export declare const viewCommand: Command; //# sourceMappingURL=view.d.ts.map