inspector/clients/tui/src/utils/promptArgsToForm.ts
Bob Dickinson 2488ca5e38
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>
2026-06-14 20:27:49 -04:00

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,
};
}