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>
47 lines
1.1 KiB
TypeScript
47 lines
1.1 KiB
TypeScript
/**
|
|
* Converts prompt arguments to ink-form format
|
|
*/
|
|
|
|
import type { FormStructure, FormSection, FormField } from "ink-form";
|
|
import type { PromptArgument } from "@modelcontextprotocol/sdk/types.js";
|
|
|
|
/**
|
|
* Converts prompt arguments array to ink-form structure
|
|
*/
|
|
export function promptArgsToForm(
|
|
promptArguments: PromptArgument[],
|
|
promptName: string,
|
|
): FormStructure {
|
|
const fields: FormField[] = [];
|
|
|
|
if (!promptArguments || promptArguments.length === 0) {
|
|
return {
|
|
title: `Get Prompt: ${promptName}`,
|
|
sections: [{ title: "Parameters", fields: [] }],
|
|
};
|
|
}
|
|
|
|
for (const arg of promptArguments) {
|
|
const field: FormField = {
|
|
name: arg.name,
|
|
label: arg.name,
|
|
type: "string", // Prompt arguments are always strings
|
|
required: arg.required !== false, // Default to required unless explicitly false
|
|
description: arg.description,
|
|
};
|
|
|
|
fields.push(field);
|
|
}
|
|
|
|
const sections: FormSection[] = [
|
|
{
|
|
title: "Prompt Arguments",
|
|
fields,
|
|
},
|
|
];
|
|
|
|
return {
|
|
title: `Get Prompt: ${promptName}`,
|
|
sections,
|
|
};
|
|
}
|