@oxprotocol/cli 0.1.8 → 0.1.11

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.
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAsCA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAuMzD"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAqFA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA6MzD"}
@@ -24,10 +24,53 @@ import { WebSocketServer } from "ws";
24
24
  import { packBundle } from "@oxprotocol/bundle";
25
25
  import { findProjectRoot, fail, info } from "../util.js";
26
26
  import { launchIdeForDev } from "../lib/ide-launch.js";
27
+ /**
28
+ * Bind the dev server to the requested port, but if it's already in use,
29
+ * walk forward a few ports, then fall back to an OS-assigned free one.
30
+ * Returns the port we actually ended up listening on.
31
+ *
32
+ * Why: a stale `oxp dev` (or another extension running concurrently) holding
33
+ * 7373 should not crash the new session — that's a hostile dev experience.
34
+ */
35
+ async function listenWithFallback(http, preferred) {
36
+ const tryListen = (port) => new Promise((resolve, reject) => {
37
+ const onError = (err) => {
38
+ http.removeListener("listening", onListening);
39
+ if (err.code === "EADDRINUSE")
40
+ resolve("busy");
41
+ else
42
+ reject(err);
43
+ };
44
+ const onListening = () => {
45
+ http.removeListener("error", onError);
46
+ const addr = http.address();
47
+ const actual = typeof addr === "object" && addr ? addr.port : port;
48
+ resolve(actual);
49
+ };
50
+ http.once("error", onError);
51
+ http.once("listening", onListening);
52
+ http.listen(port, "127.0.0.1");
53
+ });
54
+ // Try the requested port, then a small forward range, then ephemeral (0).
55
+ const candidates = [preferred, preferred + 1, preferred + 2, 0];
56
+ for (const p of candidates) {
57
+ const result = await tryListen(p);
58
+ if (result !== "busy") {
59
+ if (p !== preferred) {
60
+ info(`port ${preferred} in use — using ${result} instead (set OXP_DEV_PORT to override)`);
61
+ }
62
+ return result;
63
+ }
64
+ }
65
+ // Should not happen — port 0 always succeeds — but be explicit.
66
+ throw new Error("could not bind oxp dev to any port");
67
+ }
27
68
  export async function dev(args) {
28
- // Parse args: [--port N] [--no-ide] [dir]
69
+ // Parse args: [--port N] [--no-ide] [--ide=<id>] [--debug] [dir]
29
70
  let port = Number(process.env.OXP_DEV_PORT ?? 7373);
30
71
  let openIde = process.env.OXP_DEV_NO_IDE !== "1";
72
+ let ideOverride = process.env.OXP_IDE;
73
+ let debug = process.env.OXP_DEBUG === "1";
31
74
  const positional = [];
32
75
  for (let i = 0; i < args.length; i++) {
33
76
  const a = args[i];
@@ -43,6 +86,18 @@ export async function dev(args) {
43
86
  else if (a === "--no-ide") {
44
87
  openIde = false;
45
88
  }
89
+ else if (a === "--ide") {
90
+ const v = args[++i];
91
+ if (!v)
92
+ fail("usage: oxp dev --ide <id>");
93
+ ideOverride = v;
94
+ }
95
+ else if (a.startsWith("--ide=")) {
96
+ ideOverride = a.slice("--ide=".length);
97
+ }
98
+ else if (a === "--debug") {
99
+ debug = true;
100
+ }
46
101
  else {
47
102
  positional.push(a);
48
103
  }
@@ -167,7 +222,7 @@ export async function dev(args) {
167
222
  });
168
223
  // ── Initial build + start ────────────────────────────────────────────────
169
224
  await rebuild("initial");
170
- await new Promise((r) => http.listen(port, "127.0.0.1", r));
225
+ port = await listenWithFallback(http, port);
171
226
  // Machine-readable line so IDE hosts can auto-detect when we're ready
172
227
  // (used by VS Code's "OXP: Start Dev Session" command).
173
228
  info(`OXP_DEV_READY port=${port}`);
@@ -176,18 +231,15 @@ export async function dev(args) {
176
231
  info(` watching: ${root}`);
177
232
  info("");
178
233
  if (openIde) {
179
- const ok = launchIdeForDev(root);
234
+ const ok = launchIdeForDev(root, { ideOverride, debug });
180
235
  info("");
181
- if (ok) {
182
- info("Your IDE is opening. Click the OXP icon in the activity bar (or press F5)");
183
- info("to attach the running extension. The UI renders inside the IDE.");
184
- }
185
- else {
236
+ if (!ok) {
186
237
  info("Render the extension inside your IDE:");
187
- info(" • VS Code / Cursor: install the OXP host, then run \u201cOXP: Start Dev Session\u201d");
188
- info(" • JetBrains / Neovim: see hosts/<ide>/README.md");
238
+ info(" • VS Code / Cursor / Windsurf: install the OXP host, then run \u201cOXP: Start Dev Session\u201d");
239
+ info(" • JetBrains / Neovim / Piye: see hosts/<ide>/README.md");
189
240
  info("");
190
- info("Disable IDE auto-launch with --no-ide (or env OXP_DEV_NO_IDE=1).");
241
+ info("Override detection with --ide=<id> (cursor|windsurf|code|code-insiders|jetbrains|neovim|piye)");
242
+ info("or disable auto-launch with --no-ide.");
191
243
  }
192
244
  }
193
245
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,28 @@
1
1
  /**
2
- * Public entry point. Idempotent: if the host is already installed at the
3
- * expected version we just open the IDE. Returns true on success, false
4
- * if no supported IDE was found (caller should print fallback hints).
2
+ * The output of detection. Either we know the IDE (and have a CLI to
3
+ * drive) or we don't.
5
4
  */
6
- export declare function launchIdeForDev(projectRoot: string): boolean;
5
+ interface DetectedIde {
6
+ /** Human display name from product.json (`nameLong`) or app folder. */
7
+ name: string;
8
+ /** CLI binary name from product.json (`applicationName`) or derived. */
9
+ bin: string;
10
+ /** Absolute path to the bundled CLI inside the install (preferred). */
11
+ binPath?: string;
12
+ /** Root of the install: `/Applications/Cursor.app` or `/usr/share/cursor`. */
13
+ installRoot?: string;
14
+ /** Did we read this from a product.json? */
15
+ fromProductJson: boolean;
16
+ /** Detection source for `--debug`. */
17
+ source: string;
18
+ }
19
+ export declare function detectIde(): DetectedIde | null;
20
+ export interface LaunchOptions {
21
+ /** `--ide=<bin>` override — literal CLI binary name. */
22
+ ideOverride?: string;
23
+ /** Print detection details. */
24
+ debug?: boolean;
25
+ }
26
+ export declare function launchIdeForDev(projectRoot: string, opts?: LaunchOptions): boolean;
27
+ export {};
7
28
  //# sourceMappingURL=ide-launch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ide-launch.d.ts","sourceRoot":"","sources":["../../src/lib/ide-launch.ts"],"names":[],"mappings":"AAoJA;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAiC5D"}
1
+ {"version":3,"file":"ide-launch.d.ts","sourceRoot":"","sources":["../../src/lib/ide-launch.ts"],"names":[],"mappings":"AAsFA;;;GAGG;AACH,UAAU,WAAW;IACnB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,GAAG,EAAE,MAAM,CAAC;IACZ,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,eAAe,EAAE,OAAO,CAAC;IACzB,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;CAChB;AAsOD,wBAAgB,SAAS,IAAI,WAAW,GAAG,IAAI,CA0B9C;AA2HD,MAAM,WAAW,aAAa;IAC5B,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,aAAkB,GACvB,OAAO,CAiGT"}
@@ -1,38 +1,28 @@
1
1
  /**
2
- * Auto-launch a supported IDE with the OXP host extension installed.
2
+ * Generic IDE detection + auto-install for `oxp dev`.
3
3
  *
4
- * Goal: a developer running `oxp dev` should not need to know what an
5
- * "extension host" is. We:
6
- * 1. Detect a supported IDE (VS Code, Cursor, VS Code Insiders).
7
- * 2. Make sure the OXP host extension is installed at the version we
8
- * bundle alongside the CLI (`vendor/oxp-vscode.vsix`).
9
- * 3. Open the project folder in that IDE so the host's
10
- * `workspaceContains:oxp.json` activation event fires and the OXP
11
- * activity-bar view appears.
4
+ * No hardcoded list of IDEs. We detect the IDE that owns the current
5
+ * terminal by walking the parent process to its application bundle /
6
+ * install directory, then read VS Code's own `product.json` manifest
7
+ * every VS Code fork (Cursor, Windsurf, Antigravity, VSCodium, …)
8
+ * ships one with the IDE's display name and CLI binary name. From
9
+ * there we use the bundled CLI inside the install to install the host
10
+ * VSIX and (if launched outside the IDE) open a new window.
12
11
  *
13
- * The dev backend is still the CLI; the IDE attaches via WebSocket.
14
- * No browser, no manual install step.
12
+ * This works for any current or future VS Code-compatible IDE without
13
+ * code changes.
14
+ *
15
+ * Override: `--ide=<bin>` (or env `OXP_IDE`) forces a CLI binary name.
16
+ * Disable: `--no-ide` (or env `OXP_DEV_NO_IDE=1`).
17
+ * Debug: `--debug` (or env `OXP_DEBUG=1`).
15
18
  */
16
19
  import { spawn, spawnSync as nodeSpawnSync } from "node:child_process";
17
- import { existsSync, readFileSync } from "node:fs";
18
- import { dirname, join } from "node:path";
20
+ import { existsSync, readFileSync, readlinkSync, statSync } from "node:fs";
21
+ import { dirname, join, sep } from "node:path";
19
22
  import { fileURLToPath } from "node:url";
20
23
  import { info } from "../util.js";
21
- const SUPPORTED_IDES = [
22
- { name: "Cursor", bin: "cursor" },
23
- { name: "VS Code", bin: "code" },
24
- { name: "VS Code Insiders", bin: "code-insiders" },
25
- ];
26
- const HOST_EXTENSION_ID = "oxp.oxp-vscode";
27
- /**
28
- * Locate the VSIX shipped inside the CLI npm package
29
- * (`<cli>/vendor/oxp-vscode.vsix`). When the CLI is run from source the
30
- * vendor dir lives next to dist/, so we walk up from this module's path.
31
- */
32
24
  function locateVendoredVsix() {
33
25
  const here = dirname(fileURLToPath(import.meta.url));
34
- // dist/lib/ide-launch.js → ../../vendor (built)
35
- // src/lib/ide-launch.ts → ../../vendor (tsx)
36
26
  const candidates = [
37
27
  join(here, "..", "..", "vendor"),
38
28
  join(here, "..", "..", "..", "vendor"),
@@ -58,46 +48,327 @@ function locateVendoredVsix() {
58
48
  }
59
49
  return null;
60
50
  }
61
- function pickIde() {
62
- for (const ide of SUPPORTED_IDES) {
63
- if (commandExists(ide.bin))
64
- return ide;
51
+ function spawnSync(cmd, args) {
52
+ const r = nodeSpawnSync(cmd, args, { encoding: "utf8" });
53
+ return {
54
+ status: r.status,
55
+ stdout: r.stdout ?? "",
56
+ stderr: r.stderr ?? "",
57
+ };
58
+ }
59
+ function commandExists(bin) {
60
+ if (!bin)
61
+ return false;
62
+ const which = process.platform === "win32" ? "where" : "which";
63
+ return spawnSync(which, [bin]).status === 0;
64
+ }
65
+ /**
66
+ * Look for `<root>/Contents/Resources/app/product.json` (macOS .app) or
67
+ * `<root>/resources/app/product.json` (Linux/Windows install). Returns
68
+ * the parsed manifest if present.
69
+ */
70
+ function readProductJson(installRoot) {
71
+ const tries = [
72
+ join(installRoot, "Contents", "Resources", "app"),
73
+ join(installRoot, "resources", "app"),
74
+ ];
75
+ for (const appDir of tries) {
76
+ const p = join(appDir, "product.json");
77
+ if (!existsSync(p))
78
+ continue;
79
+ try {
80
+ const product = JSON.parse(readFileSync(p, "utf8"));
81
+ return { product, appDir };
82
+ }
83
+ catch {
84
+ // ignore
85
+ }
65
86
  }
66
87
  return null;
67
88
  }
68
- function commandExists(bin) {
69
- try {
70
- const r = spawnSync("which", [bin]);
71
- return r.status === 0;
89
+ /**
90
+ * From an arbitrary executable path, walk up to the install root.
91
+ * On macOS the boundary is `*.app/`. On Linux/Windows, walk up until
92
+ * we find a directory containing `resources/app/product.json`.
93
+ */
94
+ function findInstallRoot(execPath) {
95
+ // macOS .app boundary
96
+ const m = /^(.*?\.app)(\/|$)/.exec(execPath);
97
+ if (m && m[1])
98
+ return m[1];
99
+ // Linux/Windows: walk up looking for resources/app/product.json
100
+ let dir = dirname(execPath);
101
+ for (let i = 0; i < 8; i++) {
102
+ if (existsSync(join(dir, "resources", "app", "product.json")))
103
+ return dir;
104
+ const parent = dirname(dir);
105
+ if (parent === dir)
106
+ break;
107
+ dir = parent;
72
108
  }
73
- catch {
74
- return false;
109
+ return null;
110
+ }
111
+ /**
112
+ * Locate the bundled CLI inside a VS Code-family install. The CLI is at
113
+ * `<install>/Contents/Resources/app/bin/<applicationName>` on macOS or
114
+ * `<install>/bin/<applicationName>` on Linux/Windows.
115
+ */
116
+ function findBundledCli(installRoot, appName) {
117
+ if (!appName)
118
+ return null;
119
+ const candidates = [
120
+ join(installRoot, "Contents", "Resources", "app", "bin", appName),
121
+ join(installRoot, "bin", appName),
122
+ join(installRoot, "bin", `${appName}.cmd`),
123
+ join(installRoot, "bin", `${appName}.exe`),
124
+ ];
125
+ for (const c of candidates) {
126
+ if (existsSync(c)) {
127
+ try {
128
+ if (statSync(c).isFile())
129
+ return c;
130
+ }
131
+ catch {
132
+ // ignore
133
+ }
134
+ }
75
135
  }
136
+ return null;
76
137
  }
77
- function spawnSync(cmd, args) {
78
- const r = nodeSpawnSync(cmd, args, { encoding: "utf8" });
138
+ /** Best-effort: get an ancestor process's executable path. */
139
+ function getProcessExecPath(pid) {
140
+ if (!pid || pid <= 1)
141
+ return null;
142
+ if (process.platform === "linux") {
143
+ try {
144
+ return readlinkSync(`/proc/${pid}/exe`);
145
+ }
146
+ catch {
147
+ // fall through
148
+ }
149
+ }
150
+ if (process.platform === "darwin") {
151
+ // `comm=` returns the executable path *without* arguments, so paths
152
+ // containing spaces (e.g. "IntelliJ IDEA.app", "Visual Studio
153
+ // Code.app") survive intact. `command=` would include args, forcing
154
+ // us to split on whitespace and truncating those names.
155
+ const r = spawnSync("ps", ["-o", "comm=", "-p", String(pid)]);
156
+ if (r.status === 0) {
157
+ const line = r.stdout.replace(/\r?\n$/, "");
158
+ if (line)
159
+ return line;
160
+ }
161
+ }
162
+ if (process.platform === "linux") {
163
+ // /proc above is the primary path; this is the fallback.
164
+ const r = spawnSync("ps", ["-o", "comm=", "-p", String(pid)]);
165
+ if (r.status === 0) {
166
+ const line = r.stdout.replace(/\r?\n$/, "");
167
+ if (line)
168
+ return line;
169
+ }
170
+ }
171
+ if (process.platform === "win32") {
172
+ const r = spawnSync("wmic", [
173
+ "process",
174
+ "where",
175
+ `ProcessId=${pid}`,
176
+ "get",
177
+ "ExecutablePath",
178
+ "/value",
179
+ ]);
180
+ if (r.status === 0) {
181
+ const m = /ExecutablePath=(.+)/.exec(r.stdout);
182
+ if (m && m[1])
183
+ return m[1].trim();
184
+ }
185
+ }
186
+ return null;
187
+ }
188
+ /** Get a process's parent PID (macOS/Linux). */
189
+ function getParentPid(pid) {
190
+ if (process.platform === "darwin" || process.platform === "linux") {
191
+ const r = spawnSync("ps", ["-o", "ppid=", "-p", String(pid)]);
192
+ if (r.status === 0) {
193
+ const n = Number(r.stdout.trim());
194
+ if (Number.isFinite(n) && n > 0)
195
+ return n;
196
+ }
197
+ }
198
+ if (process.platform === "win32") {
199
+ const r = spawnSync("wmic", [
200
+ "process",
201
+ "where",
202
+ `ProcessId=${pid}`,
203
+ "get",
204
+ "ParentProcessId",
205
+ "/value",
206
+ ]);
207
+ if (r.status === 0) {
208
+ const m = /ParentProcessId=(\d+)/.exec(r.stdout);
209
+ if (m)
210
+ return Number(m[1]);
211
+ }
212
+ }
213
+ return null;
214
+ }
215
+ /** Walk up the process tree collecting exec paths (parent first, up to 8). */
216
+ function getAncestorExecPaths() {
217
+ const out = [];
218
+ let pid = process.ppid || null;
219
+ for (let i = 0; pid && i < 8; i++) {
220
+ const exec = getProcessExecPath(pid);
221
+ if (exec)
222
+ out.push({ pid, exec });
223
+ pid = getParentPid(pid);
224
+ }
225
+ return out;
226
+ }
227
+ /** Back-compat shim for the debug printer. */
228
+ function getParentExecPath() {
229
+ return getProcessExecPath(process.ppid || 0);
230
+ }
231
+ /**
232
+ * Try to derive the IDE from any path we have: parent process, or any
233
+ * env var whose value points into a VS Code-family install.
234
+ */
235
+ function detectFromPath(execPath, source) {
236
+ const root = findInstallRoot(execPath);
237
+ if (!root)
238
+ return null;
239
+ const product = readProductJson(root);
240
+ if (product) {
241
+ const name = product.product.nameLong ||
242
+ product.product.nameShort ||
243
+ basename(root).replace(/\.app$/i, "");
244
+ const bin = product.product.applicationName || guessBinFromRoot(root);
245
+ const binPath = findBundledCli(root, bin);
246
+ return {
247
+ name,
248
+ bin,
249
+ binPath: binPath ?? undefined,
250
+ installRoot: root,
251
+ fromProductJson: true,
252
+ source: `${source} → ${root}`,
253
+ };
254
+ }
255
+ // No product.json — best-effort name guess from folder
256
+ const name = basename(root).replace(/\.app$/i, "");
257
+ const bin = guessBinFromRoot(root);
258
+ const binPath = findBundledCli(root, bin);
79
259
  return {
80
- status: r.status,
81
- stdout: r.stdout ?? "",
82
- stderr: r.stderr ?? "",
260
+ name,
261
+ bin,
262
+ binPath: binPath ?? undefined,
263
+ installRoot: root,
264
+ fromProductJson: false,
265
+ source: `${source} → ${root} (no product.json)`,
83
266
  };
84
267
  }
85
- function isHostInstalled(ide, expectedVersion) {
86
- const r = spawnSync(ide.bin, ["--list-extensions", "--show-versions"]);
268
+ function basename(p) {
269
+ const parts = p.split(sep).filter(Boolean);
270
+ return parts[parts.length - 1] ?? p;
271
+ }
272
+ function guessBinFromRoot(root) {
273
+ return basename(root)
274
+ .replace(/\.app$/i, "")
275
+ .toLowerCase()
276
+ .replace(/\s+/g, "-");
277
+ }
278
+ /** Env vars whose values often hold an IDE-internal path. */
279
+ const PATH_BEARING_ENV_VARS = [
280
+ "VSCODE_GIT_ASKPASS_NODE",
281
+ "VSCODE_GIT_ASKPASS_MAIN",
282
+ "VSCODE_IPC_HOOK",
283
+ "VSCODE_IPC_HOOK_CLI",
284
+ "VSCODE_CWD",
285
+ "TERM_PROGRAM_PATH",
286
+ "GIT_ASKPASS",
287
+ "_",
288
+ ];
289
+ export function detectIde() {
290
+ // 1. Walk the whole process tree. Direct parent is usually `npx`/`node`
291
+ // when invoked by an extension host; the IDE is a few hops up.
292
+ for (const { exec, pid } of getAncestorExecPaths()) {
293
+ const fromAncestor = detectFromPath(exec, `ancestor pid=${pid} ${exec}`);
294
+ if (fromAncestor)
295
+ return fromAncestor;
296
+ }
297
+ // 2. If this terminal belongs to a non-VS-Code IDE (JetBrains, Neovim,
298
+ // Piye, …), STOP. Do not fall back to env-var scanning — env may
299
+ // leak `.app/` paths from a previously-focused VS Code window and
300
+ // we'd end up popping that on top of the user's actual IDE. The
301
+ // caller (`launchIdeForDev`) handles non-VS-Code recognition
302
+ // separately and prints a hint.
303
+ if (recognizeNonVscodeIde())
304
+ return null;
305
+ // 3. Trusted VS Code env vars. These are guaranteed to point at the
306
+ // *current* IDE (they're set by the integrated terminal itself).
307
+ for (const key of PATH_BEARING_ENV_VARS) {
308
+ const v = process.env[key];
309
+ if (!v)
310
+ continue;
311
+ const fromEnv = detectFromPath(v, `env ${key}`);
312
+ if (fromEnv)
313
+ return fromEnv;
314
+ }
315
+ return null;
316
+ }
317
+ // ── Debug ─────────────────────────────────────────────────────────────────
318
+ function printDebug(detected) {
319
+ info("── oxp dev: IDE detection debug ──");
320
+ info(` platform: ${process.platform}`);
321
+ info(` ppid: ${process.ppid}`);
322
+ const ancestors = getAncestorExecPaths();
323
+ info(" ancestors (parent first):");
324
+ if (ancestors.length === 0)
325
+ info(" <none resolved>");
326
+ for (const a of ancestors)
327
+ info(` pid=${a.pid} ${a.exec}`);
328
+ if (detected) {
329
+ info(` detected: ${detected.name} (bin=${detected.bin})`);
330
+ info(` source: ${detected.source}`);
331
+ info(` install: ${detected.installRoot ?? "<n/a>"}`);
332
+ info(` binPath: ${detected.binPath ?? "<falls back to PATH lookup>"}`);
333
+ info(` product: ${detected.fromProductJson ? "yes" : "no"}`);
334
+ }
335
+ else {
336
+ info(" detected: <none>");
337
+ }
338
+ const interesting = [
339
+ "TERM_PROGRAM",
340
+ "TERM_PROGRAM_VERSION",
341
+ "__CFBundleIdentifier",
342
+ "VSCODE_GIT_ASKPASS_NODE",
343
+ "VSCODE_IPC_HOOK_CLI",
344
+ ];
345
+ info(" env:");
346
+ for (const k of interesting) {
347
+ const v = process.env[k];
348
+ if (v)
349
+ info(` ${k}=${v.length > 100 ? v.slice(0, 97) + "…" : v}`);
350
+ }
351
+ info("──────────────────────────────────");
352
+ }
353
+ // ── Drive the IDE ─────────────────────────────────────────────────────────
354
+ const HOST_EXTENSION_ID = "oxp.oxp-vscode";
355
+ function resolveCli(ide) {
356
+ if (ide.binPath)
357
+ return ide.binPath;
358
+ if (ide.bin && commandExists(ide.bin))
359
+ return ide.bin;
360
+ return null;
361
+ }
362
+ function isHostInstalled(cli, version) {
363
+ const r = spawnSync(cli, ["--list-extensions", "--show-versions"]);
87
364
  if (r.status !== 0)
88
365
  return false;
89
- const wanted = `${HOST_EXTENSION_ID}@${expectedVersion}`.toLowerCase();
90
- return r.stdout
91
- .split(/\r?\n/)
92
- .some((l) => l.trim().toLowerCase() === wanted);
93
- }
94
- function installHost(ide, vsixPath) {
95
- info(`▸ installing OXP host into ${ide.name}…`);
96
- const r = spawnSync(ide.bin, [
97
- "--install-extension",
98
- vsixPath,
99
- "--force",
100
- ]);
366
+ const wanted = `${HOST_EXTENSION_ID}@${version}`.toLowerCase();
367
+ return r.stdout.split(/\r?\n/).some((l) => l.trim().toLowerCase() === wanted);
368
+ }
369
+ function installHost(cli, vsixPath, ideName) {
370
+ info(`▸ installing OXP host into ${ideName}…`);
371
+ const r = spawnSync(cli, ["--install-extension", vsixPath, "--force"]);
101
372
  if (r.status !== 0) {
102
373
  info(`✖ failed to install host: ${r.stderr.trim() || "exit " + r.status}`);
103
374
  return false;
@@ -105,11 +376,9 @@ function installHost(ide, vsixPath) {
105
376
  info(" ✓ host installed");
106
377
  return true;
107
378
  }
108
- function openInIde(ide, projectRoot) {
109
- // Detached so the IDE keeps running after `oxp dev` exits, and also so
110
- // closing the IDE window doesn't kill the backend.
379
+ function openInIde(cli, projectRoot) {
111
380
  try {
112
- const child = spawn(ide.bin, [projectRoot], {
381
+ const child = spawn(cli, ["-n", projectRoot], {
113
382
  detached: true,
114
383
  stdio: "ignore",
115
384
  });
@@ -120,38 +389,110 @@ function openInIde(ide, projectRoot) {
120
389
  return false;
121
390
  }
122
391
  }
123
- /**
124
- * Public entry point. Idempotent: if the host is already installed at the
125
- * expected version we just open the IDE. Returns true on success, false
126
- * if no supported IDE was found (caller should print fallback hints).
127
- */
128
- export function launchIdeForDev(projectRoot) {
392
+ function recognizeNonVscodeIde() {
393
+ const env = process.env;
394
+ // Neovim sets NVIM (channel address) for any :terminal it spawns.
395
+ if (env.NVIM || env.NVIM_LISTEN_ADDRESS) {
396
+ return {
397
+ name: "Neovim",
398
+ hint: "Install the OXP Neovim plugin from `hosts/neovim` to attach.",
399
+ };
400
+ }
401
+ // Every JetBrains IDE sets TERMINAL_EMULATOR=JetBrains-JediTerm in its
402
+ // built-in terminal — IntelliJ, WebStorm, PyCharm, GoLand, Rider, …
403
+ if ((env.TERMINAL_EMULATOR ?? "").includes("JetBrains")) {
404
+ return {
405
+ name: "JetBrains IDE",
406
+ hint: "Install the OXP JetBrains plugin from `hosts/jetbrains` to attach.",
407
+ };
408
+ }
409
+ // Piye sets its own session var.
410
+ if (env.PIYE_SESSION || env.PIYE_VERSION) {
411
+ return {
412
+ name: "Piye",
413
+ hint: "Install the OXP Piye host from `hosts/piye` to attach.",
414
+ };
415
+ }
416
+ return null;
417
+ }
418
+ export function launchIdeForDev(projectRoot, opts = {}) {
129
419
  const vsix = locateVendoredVsix();
130
420
  if (!vsix) {
131
421
  info("ℹ︎ no bundled host VSIX found — skipping IDE auto-launch");
132
422
  return false;
133
423
  }
134
- const ide = pickIde();
424
+ const debug = opts.debug ?? process.env.OXP_DEBUG === "1";
425
+ const detected = detectIde();
426
+ if (debug)
427
+ printDebug(detected);
428
+ // Resolve target.
429
+ const override = opts.ideOverride ?? process.env.OXP_IDE;
430
+ let ide = detected;
431
+ let isCurrent = !!detected;
432
+ if (override) {
433
+ // User forced a binary name. Use it directly.
434
+ if (!commandExists(override)) {
435
+ info(`✖ --ide=${override}: '${override}' is not on PATH.`);
436
+ info(" Install your IDE's shell command (Command Palette → \"Install 'xxx' command in PATH\")");
437
+ return false;
438
+ }
439
+ ide = {
440
+ name: override,
441
+ bin: override,
442
+ fromProductJson: false,
443
+ source: `--ide=${override}`,
444
+ };
445
+ isCurrent = detected?.bin === override;
446
+ }
135
447
  if (!ide) {
448
+ // Recognize IDEs that aren't VS Code-family. We can't auto-install
449
+ // a host into them yet, but we can at least confirm we *saw* them
450
+ // and tell the user what to do — and crucially, NOT pop a VS Code
451
+ // window on top of their session.
452
+ const nonVscode = recognizeNonVscodeIde();
453
+ if (nonVscode) {
454
+ info("");
455
+ info(`▸ detected ${nonVscode.name}.`);
456
+ info(` No host plugin is bundled for ${nonVscode.name} yet — the dev backend`);
457
+ info(" is running and any OXP host can connect to ws://localhost:<port>/dev");
458
+ info(` (see banner above). ${nonVscode.hint}`);
459
+ return true;
460
+ }
136
461
  info("");
137
- info("ℹ︎ No supported IDE found on your PATH (looked for: cursor, code, code-insiders).");
138
- info(" Install the 'code' shell command from VS Code:");
139
- info(" Command Palette Shell Command: Install 'code' command in PATH");
140
- info(" Or install Cursor: https://cursor.sh");
462
+ info("ℹ︎ Could not detect an IDE from this terminal.");
463
+ info(" Run `oxp dev` from inside your IDE's terminal, or");
464
+ info(" Pass `--ide=<bin>` (e.g. --ide=cursor, --ide=code), or");
465
+ info(" Re-run with `--debug` to see what we saw.");
141
466
  return false;
142
467
  }
143
- info(`▸ detected ${ide.name} on PATH`);
144
- if (!isHostInstalled(ide, vsix.version)) {
145
- if (!installHost(ide, vsix.vsixPath)) {
146
- info(" (continuing backend is still running, install the host manually)");
147
- }
468
+ const cli = resolveCli(ide);
469
+ if (!cli) {
470
+ info(`✖ ${ide.name}: could not find a CLI to drive.`);
471
+ info(` Install ${ide.name}'s shell command (Command Palette "Install '${ide.bin}' command in PATH"),`);
472
+ info(" or re-run with --ide=<bin> pointing at a CLI on your PATH.");
473
+ return false;
148
474
  }
149
- else {
150
- info(` ✓ OXP host ${vsix.version} already installed`);
475
+ if (!isCurrent)
476
+ info(`▸ targeting ${ide.name} (${ide.source})`);
477
+ else
478
+ info(`▸ detected ${ide.name} as your current IDE (${ide.source})`);
479
+ // Install host if missing.
480
+ if (isHostInstalled(cli, vsix.version)) {
481
+ info(` ✓ OXP host ${vsix.version} already installed in ${ide.name}`);
482
+ }
483
+ else if (!installHost(cli, vsix.vsixPath, ide.name)) {
484
+ info(" (continuing — install the host manually and reload your window)");
485
+ }
486
+ if (isCurrent) {
487
+ info("");
488
+ info(`▸ you're already in ${ide.name} — click the OXP icon in the activity bar`);
489
+ info(" (or press F5). If it's not visible yet, reload the window:");
490
+ info(" Cmd/Ctrl+Shift+P → Developer: Reload Window");
491
+ return true;
151
492
  }
152
493
  info(`▸ opening ${projectRoot} in ${ide.name}…`);
153
- if (!openInIde(ide, projectRoot)) {
154
- info(`✖ failed to spawn ${ide.bin}`);
494
+ if (!openInIde(cli, projectRoot)) {
495
+ info(`✖ failed to spawn ${cli}`);
155
496
  return false;
156
497
  }
157
498
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"ide-launch.js","sourceRoot":"","sources":["../../src/lib/ide-launch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ide-launch.js","sourceRoot":"","sources":["../../src/lib/ide-launch.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxprotocol/cli",
3
- "version": "0.1.8",
3
+ "version": "0.1.11",
4
4
  "description": "Command-line tool for the Open eXtensions Protocol.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -30,9 +30,9 @@
30
30
  "ws": "^8.18.0",
31
31
  "@oxprotocol/bundle": "0.1.5",
32
32
  "@oxprotocol/host-core": "0.1.4",
33
- "@oxprotocol/wit": "0.1.4",
34
33
  "@oxprotocol/types": "0.1.4",
35
- "@oxprotocol/schema": "0.1.4"
34
+ "@oxprotocol/schema": "0.1.4",
35
+ "@oxprotocol/wit": "0.1.4"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@types/node": "^22.10.2",
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "extensionId": "oxp.oxp-vscode",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "vsixFile": "oxp-vscode.vsix"
5
5
  }
Binary file