llm-cli-gateway 1.5.25 → 1.5.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  All notable changes to the llm-cli-gateway project.
4
4
 
5
+ ## [1.5.26] - 2026-05-25
6
+
7
+ ### Fixed
8
+
9
+ - Make `upstream_contracts --probe-installed` use the same extended provider PATH and Windows shim resolver as request execution and `doctor --json`, avoiding false `ENOENT` diagnostics for npm-installed CLIs such as Gemini.
10
+
5
11
  ## [1.5.25] - 2026-05-25
6
12
 
7
13
  ### Fixed
@@ -50,6 +50,8 @@ export declare function assertUpstreamCliEnv(cli: CliType, env: Record<string, s
50
50
  export interface InstalledCliContractProbe {
51
51
  cli: CliType;
52
52
  executable: string;
53
+ resolvedCommand?: string;
54
+ resolvedArgs?: string[];
53
55
  available: boolean;
54
56
  checkedHelpCommands: string[][];
55
57
  missingFlags: string[];
@@ -1,4 +1,5 @@
1
1
  import { spawnSync } from "node:child_process";
2
+ import { envWithExtendedPath, getExtendedPath, resolveCommandForSpawn } from "./executor.js";
2
3
  const PERMISSION_MODES = [
3
4
  "default",
4
5
  "acceptEdits",
@@ -534,16 +535,29 @@ export function probeInstalledCliContract(cli, timeoutMs = 5_000) {
534
535
  const contract = UPSTREAM_CLI_CONTRACTS[cli];
535
536
  const outputs = [];
536
537
  const warnings = [];
538
+ let resolvedCommand;
539
+ let resolvedArgs;
537
540
  for (const helpArgs of contract.helpArgs) {
538
- const result = spawnSync(contract.executable, helpArgs, {
541
+ const extendedPath = getExtendedPath();
542
+ const env = envWithExtendedPath(process.env, extendedPath);
543
+ const resolved = resolveCommandForSpawn(contract.executable, helpArgs, {
544
+ envPath: extendedPath,
545
+ });
546
+ resolvedCommand ??= resolved.command;
547
+ resolvedArgs ??= resolved.args;
548
+ const result = spawnSync(resolved.command, resolved.args, {
539
549
  encoding: "utf8",
540
550
  timeout: timeoutMs,
541
551
  maxBuffer: 1024 * 1024,
552
+ env,
553
+ windowsHide: true,
542
554
  });
543
555
  if (result.error) {
544
556
  return {
545
557
  cli,
546
558
  executable: contract.executable,
559
+ resolvedCommand: resolved.command,
560
+ resolvedArgs: resolved.args,
547
561
  available: false,
548
562
  checkedHelpCommands: contract.helpArgs,
549
563
  missingFlags: [],
@@ -560,6 +574,8 @@ export function probeInstalledCliContract(cli, timeoutMs = 5_000) {
560
574
  return {
561
575
  cli,
562
576
  executable: contract.executable,
577
+ resolvedCommand,
578
+ resolvedArgs,
563
579
  available: true,
564
580
  checkedHelpCommands: contract.helpArgs,
565
581
  missingFlags,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "llm-cli-gateway",
3
- "version": "1.5.25",
3
+ "version": "1.5.26",
4
4
  "mcpName": "io.github.verivus-oss/llm-cli-gateway",
5
5
  "description": "MCP server providing unified access to Claude Code, Codex, Gemini, Grok, and Mistral Vibe CLIs with session management, retry logic, async job orchestration, durable job results, and cross-LLM validation.",
6
6
  "license": "MIT",