// 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_embedded_services(parent) { const tag = parent.command("embedded-services").description("Embedded Services endpoints"); tag.command("post-api-services-9router-install") .description("Install 9Router from npm") .option("--body ", "JSON body or @path/to/file.json") .action(async (opts, cmd) => { const gOpts = cmd.optsWithGlobals(); let url = "/api/services/9router/install"; 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("post-api-services-9router-start") .description("Start 9Router") .action(async (opts, cmd) => { const gOpts = cmd.optsWithGlobals(); let url = "/api/services/9router/start"; const res = await apiFetch(url, { method: "POST", baseUrl: gOpts.baseUrl, apiKey: gOpts.apiKey }); const data = res.ok ? await res.json() : await res.text(); emit(data, gOpts); }); tag.command("post-api-services-9router-stop") .description("Stop 9Router") .action(async (opts, cmd) => { const gOpts = cmd.optsWithGlobals(); let url = "/api/services/9router/stop"; const res = await apiFetch(url, { method: "POST", baseUrl: gOpts.baseUrl, apiKey: gOpts.apiKey }); const data = res.ok ? await res.json() : await res.text(); emit(data, gOpts); }); tag.command("post-api-services-9router-restart") .description("Restart 9Router") .action(async (opts, cmd) => { const gOpts = cmd.optsWithGlobals(); let url = "/api/services/9router/restart"; const res = await apiFetch(url, { method: "POST", baseUrl: gOpts.baseUrl, apiKey: gOpts.apiKey }); const data = res.ok ? await res.json() : await res.text(); emit(data, gOpts); }); tag.command("post-api-services-9router-update") .description("Update 9Router to a newer npm version") .option("--body ", "JSON body or @path/to/file.json") .action(async (opts, cmd) => { const gOpts = cmd.optsWithGlobals(); let url = "/api/services/9router/update"; 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("post-api-services-9router-rotate-key") .description("Rotate the 9Router API key") .action(async (opts, cmd) => { const gOpts = cmd.optsWithGlobals(); let url = "/api/services/9router/rotate-key"; const res = await apiFetch(url, { method: "POST", baseUrl: gOpts.baseUrl, apiKey: gOpts.apiKey }); const data = res.ok ? await res.json() : await res.text(); emit(data, gOpts); }); tag.command("get-api-services-9router-status") .description("Get 9Router status") .action(async (opts, cmd) => { const gOpts = cmd.optsWithGlobals(); let url = "/api/services/9router/status"; 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-services-9router-auto-start") .description("Toggle 9Router auto-start") .option("--body ", "JSON body or @path/to/file.json") .action(async (opts, cmd) => { const gOpts = cmd.optsWithGlobals(); let url = "/api/services/9router/auto-start"; 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("post-api-services-cliproxy-install") .description("Install CLIProxyAPI from npm") .option("--body ", "JSON body or @path/to/file.json") .action(async (opts, cmd) => { const gOpts = cmd.optsWithGlobals(); let url = "/api/services/cliproxy/install"; 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("post-api-services-cliproxy-start") .description("Start CLIProxyAPI") .action(async (opts, cmd) => { const gOpts = cmd.optsWithGlobals(); let url = "/api/services/cliproxy/start"; const res = await apiFetch(url, { method: "POST", baseUrl: gOpts.baseUrl, apiKey: gOpts.apiKey }); const data = res.ok ? await res.json() : await res.text(); emit(data, gOpts); }); tag.command("post-api-services-cliproxy-stop") .description("Stop CLIProxyAPI") .action(async (opts, cmd) => { const gOpts = cmd.optsWithGlobals(); let url = "/api/services/cliproxy/stop"; const res = await apiFetch(url, { method: "POST", baseUrl: gOpts.baseUrl, apiKey: gOpts.apiKey }); const data = res.ok ? await res.json() : await res.text(); emit(data, gOpts); }); tag.command("post-api-services-cliproxy-restart") .description("Restart CLIProxyAPI") .action(async (opts, cmd) => { const gOpts = cmd.optsWithGlobals(); let url = "/api/services/cliproxy/restart"; const res = await apiFetch(url, { method: "POST", baseUrl: gOpts.baseUrl, apiKey: gOpts.apiKey }); const data = res.ok ? await res.json() : await res.text(); emit(data, gOpts); }); tag.command("post-api-services-cliproxy-update") .description("Update CLIProxyAPI to a newer npm version") .option("--body ", "JSON body or @path/to/file.json") .action(async (opts, cmd) => { const gOpts = cmd.optsWithGlobals(); let url = "/api/services/cliproxy/update"; 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-services-cliproxy-status") .description("Get CLIProxyAPI status") .action(async (opts, cmd) => { const gOpts = cmd.optsWithGlobals(); let url = "/api/services/cliproxy/status"; 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-services-cliproxy-auto-start") .description("Toggle CLIProxyAPI auto-start") .option("--body ", "JSON body or @path/to/file.json") .action(async (opts, cmd) => { const gOpts = cmd.optsWithGlobals(); let url = "/api/services/cliproxy/auto-start"; 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-services-name-logs") .description("Stream service logs via SSE") .requiredOption("--name ", "") .option("--tail ", "Number of historical lines to include in the initial snapshot") .option("--filter ", "Case-insensitive substring filter applied to log lines. No regex — ReDoS-safe by design.") .action(async (opts, cmd) => { const gOpts = cmd.optsWithGlobals(); let url = "/api/services/{name}/logs"; url = url.replace("{name}", encodeURIComponent(opts.name ?? "")); const qs = new URLSearchParams(); if (opts.tail != null) qs.set("tail", String(opts.tail)); if (opts.filter != null) qs.set("filter", String(opts.filter)); if (qs.toString()) url += "?" + qs.toString(); 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); }); }