First pass at pulling the v1.5 CLI, TUI, and Launcher clients into v2.

This commit is contained in:
Bob Dickinson 2026-06-09 17:38:00 -07:00
commit 467b01edd6

View file

@ -0,0 +1,47 @@
/**
* Converts URI Template to ink-form format for resource templates
*/
import type { FormStructure, FormSection, FormField } from "ink-form";
import { UriTemplate } from "@modelcontextprotocol/sdk/shared/uriTemplate.js";
/**
* Converts a URI Template to ink-form structure
*/
export function uriTemplateToForm(
uriTemplate: string,
templateName: string,
): FormStructure {
const fields: FormField[] = [];
try {
const template = new UriTemplate(uriTemplate);
const variableNames = template.variableNames || [];
for (const variableName of variableNames) {
const field: FormField = {
name: variableName,
label: variableName,
type: "string",
required: false, // URI template variables are typically optional
};
fields.push(field);
}
} catch (error) {
// If parsing fails, return empty form
console.error("Failed to parse URI template:", error);
}
const sections: FormSection[] = [
{
title: "Template Variables",
fields,
},
];
return {
title: `Read Resource: ${templateName}`,
sections,
};
}