diff --git a/packages/cli/package.json b/packages/cli/package.json index 9f6cedaf..f581efd2 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@openrouter/spawn", - "version": "0.21.0", + "version": "0.21.1", "type": "module", "bin": { "spawn": "cli.js" diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index e19fcef0..b6662c37 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -1,6 +1,6 @@ #!/usr/bin/env bun -import { getErrorMessage } from "@openrouter/spawn-shared"; +import { getErrorMessage, isString, toRecord } from "@openrouter/spawn-shared"; import pc from "picocolors"; import pkg from "../package.json" with { type: "json" }; import { @@ -320,7 +320,8 @@ async function suggestCloudsForPrompt(agent: string): Promise { /** Print a descriptive error for a failed prompt file read and exit */ function handlePromptFileError(promptFile: string, err: unknown): never { - const code = err && typeof err === "object" && "code" in err ? err.code : ""; + const errObj = toRecord(err); + const code = isString(errObj?.code) ? errObj.code : ""; if (code === "ENOENT") { console.error(pc.red(`Prompt file not found: ${pc.bold(promptFile)}`)); console.error("\nCheck the path and try again."); @@ -353,7 +354,8 @@ async function readPromptFile(promptFile: string): Promise { }); if (!statsResult.ok) { const err = statsResult.error; - const code = err && typeof err === "object" && "code" in err ? err.code : ""; + const errRec = toRecord(err); + const code = isString(errRec?.code) ? errRec.code : ""; if (code === "ENOENT" || code === "EACCES" || code === "EISDIR") { handlePromptFileError(promptFile, err); }