feat: port CLI, TUI, and launcher from v1.5 into v2 (#1452)

Ports the CLI, TUI, and launcher from v1.5 into v2 behind a single
`mcp-inspector` entrypoint (launcher → web/cli/tui). Includes the
`mcp-inspector --web --dev` launcher fix (Vite alias resolution + prod-server
double-start), the root `postinstall` install cascade with simplified CI, and
spec/AGENTS docs (no-workspaces rationale, Development setup).

Closes #1246.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Bob Dickinson 2026-06-14 17:27:49 -07:00 • committed by GitHub
commit 2488ca5e38
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -13,8 +13,7 @@
* concrete `InspectorClient` since the runtime class is not yet ported.
*/
import type pino from "pino";
import { silentLogger } from "../../logging/logger.js";
import { silentLogger, type InspectorLogger } from "../../logging/logger.js";
import type { InspectorClientProtocol } from "../inspectorClientProtocol.js";
import type { FetchRequestEntry } from "../types.js";
import type {
@ -63,7 +62,7 @@ export interface FetchRequestLogStateOptions {
* Logger for diagnostic traces (e.g. a deferred body update arriving after
* its entry rotated out of the log). Defaults to the silent logger.
*/
logger?: pino.Logger;
logger?: InspectorLogger;
}
export class FetchRequestLogState extends TypedEventTarget<FetchRequestLogStateEventMap> {
@ -71,7 +70,7 @@ export class FetchRequestLogState extends TypedEventTarget<FetchRequestLogStateE
private client: InspectorClientProtocol | null = null;
private unsubscribe: (() => void) | null = null;
private maxFetchRequests: number;
private readonly logger: pino.Logger;
private readonly logger: InspectorLogger;
constructor(
client: InspectorClientProtocol,