Files
reverse-engineering-anything/src/recordedMcpCatalog.ts
T
morlutoandCursor Agent 4afb6b79ae fix(mcp): guide retained evidence input recovery (#8761)
* fix(mcp): guide retained evidence input recovery

* style(mcp): format catalog and server types

* test(mcp): verify HTTP capacity recovery guidance

* test(mcp): model catalog recorder imports in cleanup fixtures

record-mcp-catalog.mjs loads tool contracts and the Evidence-input
contract before it registers cleanup owners. The cleanup fixture still
sentineled only the previous imports, so those loads failed before any
owner wrote cleanup.jsonl. Track the script's read() calls and replace
the new modules with the empty contract list this fault injection uses.

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-11-05 03:34:26 +08:00

30 lines
1.1 KiB
TypeScript

import type {
Implementation,
Prompt,
ServerCapabilities,
Tool,
} from "@modelcontextprotocol/server";
import type { createCatalogIdentity } from "./catalogIdentity.js";
import type { PromptArgumentContract } from "./contracts/promptContracts.js";
import type { McpInputSchemaProfile } from "./config/mcpInputSchemaProfile.js";
/** Build-owned discovery data; canonical validators remain the runtime authority. */
export interface RecordedMcpCatalog {
readonly version: 1;
readonly info: Implementation;
readonly capabilities: ServerCapabilities;
readonly instructions: string;
readonly identity: ReturnType<typeof createCatalogIdentity>;
readonly tools: readonly Tool[];
/** Tool names derived from canonical Evidence-input declarations at build time. */
readonly evidenceReferenceAlternatives: readonly string[];
readonly prompts: readonly (Prompt & {
readonly parameters: Readonly<Record<string, PromptArgumentContract>>;
})[];
}
/** Replaced after compilation by the recorder; source runs use eager composition. */
export const RECORDED_MCP_CATALOG_SHA256:
| Readonly<Record<McpInputSchemaProfile, string>>
| undefined = undefined;