// AUTO-GENERATED from docs/openapi.yaml. Do not edit. import { apiFetch } from "../api.mjs"; import { emit } from "../output.mjs"; import { readFileSync } from "node:fs"; export function register_models(parent) { const tag = parent.command("models").description("Models endpoints"); tag.command("get-api-v1-models") .description("List available models") .action(async (opts, cmd) => { const gOpts = cmd.optsWithGlobals(); let url = "/api/v1/models"; const res = await apiFetch(url, { method: "GET", baseUrl: gOpts.baseUrl, apiKey: gOpts.apiKey }); const data = res.ok ? await res.json() : await res.text(); emit(data, gOpts); }); tag.command("get-api-v1-providers-provider-models") .description("List models for a specific provider") .requiredOption("--provider ", "Provider id or alias (for example `openai`, `claude`, `cc`).") .action(async (opts, cmd) => { const gOpts = cmd.optsWithGlobals(); let url = "/api/v1/providers/{provider}/models"; url = url.replace("{provider}", encodeURIComponent(opts.provider ?? "")); const res = await apiFetch(url, { method: "GET", baseUrl: gOpts.baseUrl, apiKey: gOpts.apiKey }); const data = res.ok ? await res.json() : await res.text(); emit(data, gOpts); }); tag.command("get-api-models") .description("List models (management)") .action(async (opts, cmd) => { const gOpts = cmd.optsWithGlobals(); let url = "/api/models"; const res = await apiFetch(url, { method: "GET", baseUrl: gOpts.baseUrl, apiKey: gOpts.apiKey }); const data = res.ok ? await res.json() : await res.text(); emit(data, gOpts); }); tag.command("post-api-models-alias") .description("Create or update a model alias") .option("--body ", "JSON body or @path/to/file.json") .action(async (opts, cmd) => { const gOpts = cmd.optsWithGlobals(); let url = "/api/models/alias"; let body; if (opts.body) { body = opts.body.startsWith("@") ? JSON.parse(readFileSync(opts.body.slice(1), "utf8")) : JSON.parse(opts.body); } const res = await apiFetch(url, { method: "POST", body, baseUrl: gOpts.baseUrl, apiKey: gOpts.apiKey }); const data = res.ok ? await res.json() : await res.text(); emit(data, gOpts); }); tag.command("get-api-models-catalog") .description("Get full model catalog") .action(async (opts, cmd) => { const gOpts = cmd.optsWithGlobals(); let url = "/api/models/catalog"; const res = await apiFetch(url, { method: "GET", baseUrl: gOpts.baseUrl, apiKey: gOpts.apiKey }); const data = res.ok ? await res.json() : await res.text(); emit(data, gOpts); }); tag.command("get-api-v1beta-models") .description("List models (Gemini format)") .action(async (opts, cmd) => { const gOpts = cmd.optsWithGlobals(); let url = "/api/v1beta/models"; const res = await apiFetch(url, { method: "GET", baseUrl: gOpts.baseUrl, apiKey: gOpts.apiKey }); const data = res.ok ? await res.json() : await res.text(); emit(data, gOpts); }); tag.command("post-api-v1beta-models-path-") .description("Gemini generateContent") .requiredOption("--path ", "") .option("--body ", "JSON body or @path/to/file.json") .action(async (opts, cmd) => { const gOpts = cmd.optsWithGlobals(); let url = "/api/v1beta/models/{path}"; url = url.replace("{path}", encodeURIComponent(opts.path ?? "")); let body; if (opts.body) { body = opts.body.startsWith("@") ? JSON.parse(readFileSync(opts.body.slice(1), "utf8")) : JSON.parse(opts.body); } const res = await apiFetch(url, { method: "POST", body, baseUrl: gOpts.baseUrl, apiKey: gOpts.apiKey }); const data = res.ok ? await res.json() : await res.text(); emit(data, gOpts); }); }