New:Socket for Asana Is Now Available.Learn more
Sign In

offrouter-cli

Package Overview
Dependencies
Maintainers
1
Versions
44
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

offrouter-cli - npm Package Compare versions

Comparing version
0.30.0
to
0.31.0
+14
-0
dist/commands/proxy.d.ts
import type { Command } from "commander";
import type { CommandContext } from "./init.js";
/**
* Run descriptor written by `proxy serve` so `update --restart` can relaunch
* the proxy with its original args and OFFROUTER_HOME.
*/
export interface ProxyRunDescriptor {
pid: number;
port: number;
host: string;
profile: string;
format: string;
offrouterHome: string;
startedAt: string;
}
export declare function proxyDescriptorPath(offrouterHome: string, port: number): string;
/**
* Minimal CLI bridge for local proxy formats (OpenAI Responses default,

@@ -5,0 +19,0 @@ * Anthropic Messages via --format anthropic). Provider discovery builds

+1
-1

@@ -1,1 +0,1 @@

{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/commands/proxy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAUhD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,cAAc,GACxB,IAAI,CA+RN"}
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/commands/proxy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAUhD;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GACX,MAAM,CAER;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,cAAc,GACxB,IAAI,CA8TN"}

@@ -0,1 +1,2 @@

import { mkdirSync, unlinkSync, writeFileSync } from "node:fs";
import { join } from "node:path";

@@ -6,2 +7,5 @@ import { buildCurrentSpendByProviderUsd, createAnthropicProxyContext, createGeminiProxyContext, createResponsesProxyContext, FileSecretStore, FileUsageStore, loadConfig, resolveOffRouterHome, startAnthropicProxy, startGeminiProxy, startResponsesProxy, } from "offrouter-core";

import { defaultPortFor, generateShellBlock, installShellBlock, uninstallShellBlock, } from "./proxy-install.js";
export function proxyDescriptorPath(offrouterHome, port) {
return join(offrouterHome, "proxies", `proxy-${port}.json`);
}
/**

@@ -111,3 +115,30 @@ * Minimal CLI bridge for local proxy formats (OpenAI Responses default,

}
// Record a run descriptor (keyed per port) so `update --restart` can
// relaunch this proxy with the same args and OFFROUTER_HOME.
const offrouterHome = resolveOffRouterHome({ env });
const descriptorPath = proxyDescriptorPath(offrouterHome, handle.port);
try {
mkdirSync(join(offrouterHome, "proxies"), { recursive: true });
const descriptor = {
pid: process.pid,
port: handle.port,
host,
profile,
format,
offrouterHome,
startedAt: new Date().toISOString(),
};
writeFileSync(descriptorPath, `${JSON.stringify(descriptor, null, 2)}\n`);
}
catch (err) {
// Best-effort: a failed write must not crash the proxy.
stderr.write(`warning: could not write proxy descriptor: ${String(err)}\n`);
}
const shutdown = async () => {
try {
unlinkSync(descriptorPath);
}
catch {
// Best-effort: descriptor may already be gone (ENOENT).
}
await handle.close();

@@ -114,0 +145,0 @@ process.exit(0);

@@ -1,1 +0,1 @@

{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/commands/proxy.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/commands/proxy.ts"],"names":[],"mappings":"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"}

@@ -0,3 +1,5 @@

import { spawn } from "node:child_process";
import type { Command } from "commander";
import type { CommandContext } from "./init.js";
import type { ProxyRunDescriptor } from "./proxy.js";
/**

@@ -9,2 +11,21 @@ * `offrouter update` — fetch the latest model catalog and cache it locally.

export declare function registerUpdateCommand(program: Command, ctx: () => CommandContext): void;
type KillImpl = (pid: number, signal?: NodeJS.Signals | 0) => boolean;
/**
* Read every proxy-*.json run descriptor under the known OFFROUTER_HOMEs
* (the active home plus the standard personal/work homes), de-duped by port.
*/
export declare function collectProxyDescriptors(env: NodeJS.ProcessEnv): ProxyRunDescriptor[];
export interface RestartProxiesDeps {
env: NodeJS.ProcessEnv;
spawnImpl?: typeof spawn;
killImpl?: KillImpl;
waitMs?: number;
}
/**
* SIGTERM each recorded proxy (if its pid is still alive), then relaunch it
* detached with its original args and its recorded OFFROUTER_HOME.
* Best-effort: descriptor I/O problems never throw.
*/
export declare function restartRunningProxies(deps: RestartProxiesDeps): Promise<ProxyRunDescriptor[]>;
export {};
//# sourceMappingURL=update.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAIhD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,cAAc,GACxB,IAAI,CAgDN"}
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAI3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGhD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,cAAc,GACxB,IAAI,CA+EN;AAED,KAAK,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,OAAO,CAAC;AAwBtE;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,kBAAkB,EAAE,CAqCtB;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAyC/B"}

@@ -0,1 +1,6 @@

import { spawn } from "node:child_process";
import { readdirSync, readFileSync } from "node:fs";
import { homedir } from "node:os";
import { join } from "node:path";
import { resolveOffRouterHome } from "offrouter-core";
import { writeJson, writeText } from "./output.js";

@@ -14,2 +19,3 @@ import { fetchCatalogCache } from "../catalog-cache.js";

.option("--dry-run", "Fetch but do not write cache", false)
.option("--restart", "Restart running proxies with their original launch args", false)
.action(async (opts) => {

@@ -23,2 +29,5 @@ const { env, stdout } = ctx();

const familyCount = result.data?.families.length ?? 0;
const restarted = opts.restart
? await restartRunningProxies({ env })
: null;
if (opts.json) {

@@ -31,2 +40,5 @@ writeJson(stdout, {

version: result.data?.version ?? null,
...(restarted
? { restartedProxies: restarted.map((d) => d.port) }
: {}),
});

@@ -45,4 +57,115 @@ return;

}
if (restarted) {
if (restarted.length === 0) {
writeText(stdout, "no running proxies to restart");
}
else {
for (const d of restarted) {
writeText(stdout, `restarted proxy :${d.port} (${d.profile}, ${d.offrouterHome})`);
}
}
}
});
}
function pidAlive(kill, pid) {
try {
kill(pid, 0);
return true;
}
catch (err) {
// EPERM means the process exists but is owned by another user.
return err.code === "EPERM";
}
}
async function waitForPidExit(kill, pid, timeoutMs) {
const deadline = Date.now() + timeoutMs;
while (Date.now() < deadline) {
if (!pidAlive(kill, pid))
return;
await new Promise((resolve) => setTimeout(resolve, 50));
}
}
/**
* Read every proxy-*.json run descriptor under the known OFFROUTER_HOMEs
* (the active home plus the standard personal/work homes), de-duped by port.
*/
export function collectProxyDescriptors(env) {
const home = env.HOME ?? homedir();
const homes = [
resolveOffRouterHome({ env }),
join(home, ".offrouter-personal"),
join(home, ".offrouter-work"),
];
const byPort = new Map();
for (const descriptorHome of homes) {
let files;
try {
files = readdirSync(join(descriptorHome, "proxies"));
}
catch {
continue; // Home (or its proxies dir) does not exist.
}
for (const file of files) {
if (!/^proxy-\d+\.json$/.test(file))
continue;
try {
const parsed = JSON.parse(readFileSync(join(descriptorHome, "proxies", file), "utf8"));
if (typeof parsed.port === "number" &&
typeof parsed.host === "string" &&
typeof parsed.profile === "string" &&
typeof parsed.format === "string" &&
typeof parsed.offrouterHome === "string" &&
!byPort.has(parsed.port)) {
byPort.set(parsed.port, parsed);
}
}
catch {
// Skip unreadable or malformed descriptors.
}
}
}
return [...byPort.values()];
}
/**
* SIGTERM each recorded proxy (if its pid is still alive), then relaunch it
* detached with its original args and its recorded OFFROUTER_HOME.
* Best-effort: descriptor I/O problems never throw.
*/
export async function restartRunningProxies(deps) {
const spawnImpl = deps.spawnImpl ?? spawn;
const killImpl = deps.killImpl ?? ((pid, signal) => process.kill(pid, signal));
const waitMs = deps.waitMs ?? 2000;
// argv[1] is the installed CLI entry, so relaunch uses the fresh version.
const cliEntry = process.argv[1] ?? "offrouter";
const descriptors = collectProxyDescriptors(deps.env);
for (const d of descriptors) {
if (pidAlive(killImpl, d.pid)) {
try {
killImpl(d.pid, "SIGTERM");
}
catch {
// Already gone; relaunch anyway.
}
await waitForPidExit(killImpl, d.pid, waitMs);
}
spawnImpl(process.execPath, [
cliEntry,
"proxy",
"serve",
"--port",
String(d.port),
"--host",
d.host,
"--profile",
d.profile,
"--format",
d.format,
], {
detached: true,
stdio: "ignore",
env: { ...process.env, OFFROUTER_HOME: d.offrouterHome },
}).unref();
}
return descriptors;
}
//# sourceMappingURL=update.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAgB,EAChB,GAAyB;IAEzB,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CACV,iEAAiE,CAClE;SACA,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC;SACpC,MAAM,CAAC,WAAW,EAAE,8BAA8B,EAAE,KAAK,CAAC;SAC1D,MAAM,CAAC,KAAK,EAAE,IAA0C,EAAE,EAAE;QAC3D,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;QAEpC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;YACrC,GAAG;YACH,MAAM;SACP,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;QAEtD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,SAAS,CAAC,MAAM,EAAE;gBAChB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,WAAW;gBACX,MAAM;gBACN,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,IAAI,IAAI;aACtC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,SAAS,CACP,MAAM,EACN,GAAG,IAAI,aAAa,WAAW,gCAAgC,MAAM,CAAC,SAAS,GAAG,CACnF,CAAC;QACJ,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YACrC,SAAS,CACP,MAAM,EACN,yBAAyB,WAAW,qCAAqC,MAAM,CAAC,SAAS,GAAG,CAC7F,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,SAAS,CACP,MAAM,EACN,oDAAoD,CACrD,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
{
"name": "offrouter-cli",
"version": "0.30.0",
"version": "0.31.0",
"type": "module",

@@ -15,15 +15,15 @@ "bin": {

"dependencies": {
"offrouter-adapter-claude": "0.30.0",
"offrouter-adapter-codex": "0.30.0",
"offrouter-adapter-gemini": "0.30.0",
"offrouter-adapter-grok": "0.30.0",
"offrouter-adapter-opencode": "0.30.0",
"offrouter-core": "0.30.0",
"offrouter-mcp": "0.30.0",
"offrouter-adapter-claude": "0.31.0",
"offrouter-adapter-codex": "0.31.0",
"offrouter-adapter-gemini": "0.31.0",
"offrouter-adapter-grok": "0.31.0",
"offrouter-adapter-opencode": "0.31.0",
"offrouter-core": "0.31.0",
"offrouter-mcp": "0.31.0",
"commander": "^12.0.0",
"zod": "^3.23.0",
"offrouter-adapter-cline": "0.30.0",
"offrouter-adapter-continue": "0.30.0",
"offrouter-adapter-cursor": "0.30.0",
"offrouter-adapter-zed": "0.30.0"
"offrouter-adapter-cline": "0.31.0",
"offrouter-adapter-continue": "0.31.0",
"offrouter-adapter-cursor": "0.31.0",
"offrouter-adapter-zed": "0.31.0"
},

@@ -30,0 +30,0 @@ "files": [