Files
rea/src/server/toolRegistrationOptions.ts
T
LuisandN0zoM1z0 bb154d1067 feat(browser): inspect retained aioquic qlog JSON captures
Inspect bounded offline aioquic1.5.0 JSON qlog0.3 and page retained event/transport facts with explicit trace and stream selectors. Preserve producer coordinates, exact numeric lexemes, global pre-selection fact scope and endpoint declaration uncertainty.

Verified four real HTTP/3 recordings with an independent interval oracle, public CLI/MCP/schema parity, auth exclusions, source-deletion views and actual decoder heap exhaustion. Unverified producer platforms and qlog-specific lifecycle induction remain documented.

Co-authored-by: LuisTaffelli <86675342+LuisTaffelli@users.noreply.github.com>
Co-authored-by: N0zoM1z0 <161784452+N0zoM1z0@users.noreply.github.com>
2026-10-13 03:24:05 +00:00

35 lines
1.2 KiB
TypeScript

import type { ToolContract } from "../contracts/toolContractTypes.js";
import type { StandardSchemaWithJSON } from "@modelcontextprotocol/server";
import {
toolInputSchemaWithMetadata,
toolOutputSchemaWithMetadata,
} from "../contracts/toolSchemaMetadata.js";
/** Preserve advertised contracts while the application owns structured input failures. */
export const applicationValidatedInputSchema = (
schema: StandardSchemaWithJSON,
): StandardSchemaWithJSON => ({
"~standard": {
...schema["~standard"],
vendor: "rea-application",
validate: (value: unknown) => ({ value }),
},
});
/** Project the canonical Zod contracts directly into SDK registration. */
export const toolRegistrationOptions = <Contract extends ToolContract>(
contract: Contract,
): {
readonly title: Contract["title"];
readonly description: Contract["description"];
readonly inputSchema: Contract["inputSchema"];
readonly outputSchema: Contract["outputSchema"];
readonly annotations: Contract["annotations"];
} => ({
title: contract.title,
description: contract.description,
inputSchema: toolInputSchemaWithMetadata(contract),
outputSchema: toolOutputSchemaWithMetadata(contract),
annotations: contract.annotations,
});