@ironbee-ai/cli 0.8.1 → 0.8.2

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
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.8.2 (2026-05-08)
4
+
5
+ ### Features
6
+
7
+ * **update:** warn on prefix mismatch and PATH shadow before installing ([675a1f3](https://github.com/ironbee-ai/ironbee-cli/commit/675a1f3b62350dc5e78469f62568409e967c81a3))
8
+
3
9
  ## 0.8.1 (2026-05-08)
4
10
 
5
11
  ### Bug Fixes
@@ -1,3 +1,26 @@
1
1
  import { Command } from "commander";
2
+ /**
3
+ * Walk up from a known module dir to the npm prefix it sits under.
4
+ * Returns null when the dir is not in a recognizable npm global layout
5
+ * (e.g. ts-node dev runs from src/, or local node_modules installs).
6
+ */
7
+ export declare function deriveInstallPrefix(dir: string): string | null;
8
+ export interface PrefixMismatch {
9
+ running: string;
10
+ npm: string;
11
+ }
12
+ export declare function detectPrefixMismatch(runningDir: string, npmPrefix: string | null): PrefixMismatch | null;
13
+ /**
14
+ * Derive the npm prefix from a binary path on PATH.
15
+ * - Unix: <prefix>/bin/<name> → prefix is the parent of the bin/ dir
16
+ * - Windows: <prefix>\<name>.cmd → prefix is the binary's directory
17
+ */
18
+ export declare function derivePrefixFromBinary(binaryPath: string): string | null;
19
+ export interface PathShadow {
20
+ shadowBinary: string;
21
+ shadowPrefix: string;
22
+ runningPrefix: string;
23
+ }
24
+ export declare function detectShadowOnPath(runningDir: string, firstPathBinary: string | null): PathShadow | null;
2
25
  export declare const updateCommand: Command;
3
26
  //# sourceMappingURL=update.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,aAAa,EAAE,OAiCtB,CAAC"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiB9D;AA4BD,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,cAAc,GAAG,IAAI,CASxG;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASxE;AA6BD,MAAM,WAAW,UAAU;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,CAaxG;AA+BD,eAAO,MAAM,aAAa,EAAE,OA4CtB,CAAC"}
@@ -1,10 +1,191 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.updateCommand = void 0;
37
+ exports.deriveInstallPrefix = deriveInstallPrefix;
38
+ exports.detectPrefixMismatch = detectPrefixMismatch;
39
+ exports.derivePrefixFromBinary = derivePrefixFromBinary;
40
+ exports.detectShadowOnPath = detectShadowOnPath;
4
41
  const commander_1 = require("commander");
5
42
  const child_process_1 = require("child_process");
43
+ const fs_1 = require("fs");
44
+ const path = __importStar(require("path"));
6
45
  const output_1 = require("../lib/output");
7
46
  const version_1 = require("../lib/version");
47
+ /**
48
+ * Walk up from a known module dir to the npm prefix it sits under.
49
+ * Returns null when the dir is not in a recognizable npm global layout
50
+ * (e.g. ts-node dev runs from src/, or local node_modules installs).
51
+ */
52
+ function deriveInstallPrefix(dir) {
53
+ let cur = dir;
54
+ while (true) {
55
+ const parent = path.dirname(cur);
56
+ if (parent === cur) {
57
+ return null;
58
+ }
59
+ if (path.basename(cur) === "node_modules") {
60
+ // Unix global: <prefix>/lib/node_modules
61
+ // Windows global: <prefix>/node_modules
62
+ if (path.basename(parent) === "lib") {
63
+ return path.dirname(parent);
64
+ }
65
+ return parent;
66
+ }
67
+ cur = parent;
68
+ }
69
+ }
70
+ function getNpmConfiguredPrefix() {
71
+ try {
72
+ const out = (0, child_process_1.execSync)("npm config get prefix", {
73
+ encoding: "utf-8",
74
+ stdio: ["ignore", "pipe", "ignore"],
75
+ });
76
+ const trimmed = (out ?? "").toString().trim();
77
+ return trimmed.length > 0 ? trimmed : null;
78
+ }
79
+ catch {
80
+ return null;
81
+ }
82
+ }
83
+ function normalizeForCompare(p) {
84
+ let resolved;
85
+ try {
86
+ resolved = (0, fs_1.realpathSync)(p);
87
+ }
88
+ catch {
89
+ resolved = path.resolve(p);
90
+ }
91
+ while (resolved.length > 1 && (resolved.endsWith("/") || resolved.endsWith(path.sep))) {
92
+ resolved = resolved.slice(0, -1);
93
+ }
94
+ return process.platform === "win32" ? resolved.toLowerCase() : resolved;
95
+ }
96
+ function detectPrefixMismatch(runningDir, npmPrefix) {
97
+ const running = deriveInstallPrefix(runningDir);
98
+ if (!running || !npmPrefix) {
99
+ return null;
100
+ }
101
+ if (normalizeForCompare(running) === normalizeForCompare(npmPrefix)) {
102
+ return null;
103
+ }
104
+ return { running, npm: npmPrefix };
105
+ }
106
+ /**
107
+ * Derive the npm prefix from a binary path on PATH.
108
+ * - Unix: <prefix>/bin/<name> → prefix is the parent of the bin/ dir
109
+ * - Windows: <prefix>\<name>.cmd → prefix is the binary's directory
110
+ */
111
+ function derivePrefixFromBinary(binaryPath) {
112
+ if (!binaryPath) {
113
+ return null;
114
+ }
115
+ const dir = path.dirname(binaryPath);
116
+ if (process.platform !== "win32" && path.basename(dir) === "bin") {
117
+ return path.dirname(dir);
118
+ }
119
+ return dir;
120
+ }
121
+ function findFirstPathBinary(name) {
122
+ const pathEnv = process.env.PATH ?? "";
123
+ if (pathEnv.length === 0) {
124
+ return null;
125
+ }
126
+ const sep = process.platform === "win32" ? ";" : ":";
127
+ const dirs = pathEnv.split(sep);
128
+ const exts = process.platform === "win32"
129
+ ? (process.env.PATHEXT ?? ".COM;.EXE;.BAT;.CMD").split(";")
130
+ : [""];
131
+ for (const dir of dirs) {
132
+ if (dir.length === 0) {
133
+ continue;
134
+ }
135
+ for (const ext of exts) {
136
+ const candidate = path.join(dir, name + ext);
137
+ try {
138
+ (0, fs_1.accessSync)(candidate, fs_1.constants.X_OK);
139
+ return candidate;
140
+ }
141
+ catch {
142
+ // not found / not executable, keep searching
143
+ }
144
+ }
145
+ }
146
+ return null;
147
+ }
148
+ function detectShadowOnPath(runningDir, firstPathBinary) {
149
+ const runningPrefix = deriveInstallPrefix(runningDir);
150
+ if (!runningPrefix || !firstPathBinary) {
151
+ return null;
152
+ }
153
+ const shadowPrefix = derivePrefixFromBinary(firstPathBinary);
154
+ if (!shadowPrefix) {
155
+ return null;
156
+ }
157
+ if (normalizeForCompare(runningPrefix) === normalizeForCompare(shadowPrefix)) {
158
+ return null;
159
+ }
160
+ return { shadowBinary: firstPathBinary, shadowPrefix, runningPrefix };
161
+ }
162
+ function warnPathShadow(s) {
163
+ const removeCmd = process.platform === "win32"
164
+ ? `del "${s.shadowBinary}"`
165
+ : `rm "${s.shadowBinary}"`;
166
+ output_1.log.blank();
167
+ output_1.log.warn(output_1.pc.bold("Another IronBee install is earlier on your PATH"));
168
+ output_1.log.warn(` PATH-resolved binary: ${output_1.pc.cyan(s.shadowBinary)}`);
169
+ output_1.log.warn(` This update is for: ${output_1.pc.cyan(s.runningPrefix)}`);
170
+ output_1.log.warn("After install, your shell will keep resolving the OLDER one.");
171
+ output_1.log.warn("To fix, either:");
172
+ output_1.log.warn(` 1) Remove the shadow: ${output_1.pc.cyan(removeCmd)}`);
173
+ output_1.log.warn(" 2) Or install to the shadow's location:");
174
+ output_1.log.warn(` ${output_1.pc.cyan(`npm install -g --prefix "${s.shadowPrefix}" @ironbee-ai/cli@latest`)}`);
175
+ output_1.log.blank();
176
+ }
177
+ function warnPrefixMismatch(mismatch) {
178
+ output_1.log.blank();
179
+ output_1.log.warn(output_1.pc.bold("Install location mismatch detected"));
180
+ output_1.log.warn(` Active IronBee runs from: ${output_1.pc.cyan(mismatch.running)}`);
181
+ output_1.log.warn(` npm install will write to: ${output_1.pc.cyan(mismatch.npm)}`);
182
+ output_1.log.warn("After install, your shell may keep resolving the OLD version on PATH.");
183
+ output_1.log.warn("To make the new version take effect, either:");
184
+ output_1.log.warn(` 1) Align npm prefix: ${output_1.pc.cyan(`npm config set prefix "${mismatch.running}"`)}`);
185
+ output_1.log.warn(" 2) Or install directly to the active location:");
186
+ output_1.log.warn(` ${output_1.pc.cyan(`npm install -g --prefix "${mismatch.running}" @ironbee-ai/cli@latest`)}`);
187
+ output_1.log.blank();
188
+ }
8
189
  exports.updateCommand = new commander_1.Command("update")
9
190
  .description("Update IronBee CLI to the latest version")
10
191
  .action(async () => {
@@ -21,6 +202,14 @@ exports.updateCommand = new commander_1.Command("update")
21
202
  return;
22
203
  }
23
204
  output_1.log.info(`New version available: ${output_1.pc.dim(local)} ${output_1.pc.yellow("→")} ${output_1.pc.green(output_1.pc.bold(latest))}`);
205
+ const mismatch = detectPrefixMismatch(__dirname, getNpmConfiguredPrefix());
206
+ if (mismatch) {
207
+ warnPrefixMismatch(mismatch);
208
+ }
209
+ const shadow = detectShadowOnPath(__dirname, findFirstPathBinary("ironbee"));
210
+ if (shadow) {
211
+ warnPathShadow(shadow);
212
+ }
24
213
  output_1.log.step(`Running ${output_1.pc.cyan("npm install -g @ironbee-ai/cli@latest")}...`);
25
214
  try {
26
215
  (0, child_process_1.execSync)("npm install -g @ironbee-ai/cli@latest", { stdio: "inherit" });
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,iDAAyC;AACzC,0CAAwC;AACxC,4CAAqE;AAExD,QAAA,aAAa,GAAY,IAAI,mBAAO,CAAC,QAAQ,CAAC;KACtD,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,KAAK,IAAmB,EAAE;IAC9B,MAAM,KAAK,GAAW,IAAA,yBAAe,GAAE,CAAC;IACxC,YAAG,CAAC,IAAI,CAAC,oBAAoB,WAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/C,YAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAErC,MAAM,MAAM,GAAkB,MAAM,IAAA,4BAAkB,GAAE,CAAC;IAEzD,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,YAAG,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;QAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACnB,YAAG,CAAC,OAAO,CAAC,kCAAkC,WAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO;IACX,CAAC;IAED,YAAG,CAAC,IAAI,CAAC,0BAA0B,WAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,WAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,WAAE,CAAC,KAAK,CAAC,WAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACnG,YAAG,CAAC,IAAI,CAAC,WAAW,WAAE,CAAC,IAAI,CAAC,uCAAuC,CAAC,KAAK,CAAC,CAAC;IAE3E,IAAI,CAAC;QACD,IAAA,wBAAQ,EAAC,uCAAuC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACxE,YAAG,CAAC,KAAK,EAAE,CAAC;QACZ,YAAG,CAAC,OAAO,CAAC,cAAc,WAAE,CAAC,KAAK,CAAC,WAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QACvD,YAAG,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACL,YAAG,CAAC,KAAK,EAAE,CAAC;QACZ,YAAG,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,KAAK,WAAE,CAAC,IAAI,CAAC,uCAAuC,CAAC,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ironbee-ai/cli",
3
- "version": "0.8.1",
3
+ "version": "0.8.2",
4
4
  "description": "The CLI for IronBee — Verification and Intelligence Layer for Agentic Development",
5
5
  "main": "dist/index.js",
6
6
  "bin": {