export type ProviderCommandId = "resume"; /** * Declarative command templates for provider-native CLIs. * * Note: these are NOT Paseo agent IDs. They take provider-native session IDs. * Example placeholders: * - {sessionId} */ export const PROVIDER_COMMAND_TEMPLATES: Record< string, Partial> > = { codex: { resume: "codex resume {sessionId}", }, claude: { resume: "claude --resume {sessionId}", }, }; function renderTemplate(template: string, vars: Record): string { return template.replace(/\{(\w+)\}/g, (_match, key: string) => vars[key] ?? ""); } export function buildProviderCommand(input: { provider: string; id: ProviderCommandId; sessionId: string; }): string | null { const template = PROVIDER_COMMAND_TEMPLATES[input.provider]?.[input.id] ?? null; if (!template) { return null; } return renderTemplate(template, { sessionId: input.sessionId }); }