* Support imports from Pi-compatible providers * Add OMP as a built-in provider * Address Pi session scanner review * Restore Pi session import discovery * Update provider test for disabled OMP
46 lines
1.1 KiB
TypeScript
46 lines
1.1 KiB
TypeScript
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<Record<ProviderCommandId, string>>
|
|
> = {
|
|
codex: {
|
|
resume: "codex resume {sessionId}",
|
|
},
|
|
claude: {
|
|
resume: "claude --resume {sessionId}",
|
|
},
|
|
pi: {
|
|
resume: "pi --session {sessionId}",
|
|
},
|
|
omp: {
|
|
resume: "omp --session {sessionId}",
|
|
},
|
|
opencode: {
|
|
resume: "opencode --session {sessionId}",
|
|
},
|
|
};
|
|
|
|
function renderTemplate(template: string, vars: Record<string, string>): 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 });
|
|
}
|