@polderlabs/bizar-omp 0.4.8 → 0.4.10

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.
Files changed (78) hide show
  1. package/README.md +55 -3
  2. package/dist/cli/agents-ink.d.ts +1 -1
  3. package/dist/cli/agents-ink.d.ts.map +1 -1
  4. package/dist/cli/agents-ink.js +62 -25
  5. package/dist/cli/agents-ink.js.map +1 -1
  6. package/dist/cli/agents.d.ts.map +1 -1
  7. package/dist/cli/agents.js +24 -14
  8. package/dist/cli/agents.js.map +1 -1
  9. package/dist/cli/directory-selector.d.ts.map +1 -1
  10. package/dist/cli/directory-selector.js +3 -1
  11. package/dist/cli/directory-selector.js.map +1 -1
  12. package/dist/cli/doctor.d.ts +6 -0
  13. package/dist/cli/doctor.d.ts.map +1 -1
  14. package/dist/cli/doctor.js +17 -1
  15. package/dist/cli/doctor.js.map +1 -1
  16. package/dist/cli/main.js +0 -0
  17. package/dist/cli/omb-daemon.d.ts +2 -0
  18. package/dist/cli/omb-daemon.d.ts.map +1 -0
  19. package/dist/cli/omb-daemon.js +121 -0
  20. package/dist/cli/omb-daemon.js.map +1 -0
  21. package/dist/cli/omb-dashboard.d.ts +12 -0
  22. package/dist/cli/omb-dashboard.d.ts.map +1 -0
  23. package/dist/cli/omb-dashboard.js +103 -0
  24. package/dist/cli/omb-dashboard.js.map +1 -0
  25. package/dist/cli/omb.js +29 -0
  26. package/dist/cli/omb.js.map +1 -1
  27. package/dist/cli/process.d.ts.map +1 -1
  28. package/dist/cli/process.js +5 -1
  29. package/dist/cli/process.js.map +1 -1
  30. package/dist/cli/setup-ui.js +1 -1
  31. package/dist/cli/setup-ui.js.map +1 -1
  32. package/dist/extension.d.ts.map +1 -1
  33. package/dist/extension.js +51 -0
  34. package/dist/extension.js.map +1 -1
  35. package/dist/omp/daemon-service.d.ts +24 -0
  36. package/dist/omp/daemon-service.d.ts.map +1 -0
  37. package/dist/omp/daemon-service.js +272 -0
  38. package/dist/omp/daemon-service.js.map +1 -0
  39. package/dist/omp/daemon.d.ts +48 -0
  40. package/dist/omp/daemon.d.ts.map +1 -0
  41. package/dist/omp/daemon.js +193 -0
  42. package/dist/omp/daemon.js.map +1 -0
  43. package/dist/omp/dashboard-html.d.ts +9 -0
  44. package/dist/omp/dashboard-html.d.ts.map +1 -0
  45. package/dist/omp/dashboard-html.js +594 -0
  46. package/dist/omp/dashboard-html.js.map +1 -0
  47. package/dist/omp/model-role-assignment.d.ts +3 -0
  48. package/dist/omp/model-role-assignment.d.ts.map +1 -1
  49. package/dist/omp/model-role-assignment.js +28 -6
  50. package/dist/omp/model-role-assignment.js.map +1 -1
  51. package/dist/omp/omb-sessions.d.ts +47 -2
  52. package/dist/omp/omb-sessions.d.ts.map +1 -1
  53. package/dist/omp/omb-sessions.js +236 -108
  54. package/dist/omp/omb-sessions.js.map +1 -1
  55. package/dist/omp/omb-settings.d.ts +1 -0
  56. package/dist/omp/omb-settings.d.ts.map +1 -1
  57. package/dist/omp/omb-settings.js +2 -0
  58. package/dist/omp/omb-settings.js.map +1 -1
  59. package/dist/omp/session-activity.d.ts +71 -0
  60. package/dist/omp/session-activity.d.ts.map +1 -0
  61. package/dist/omp/session-activity.js +361 -0
  62. package/dist/omp/session-activity.js.map +1 -0
  63. package/dist/omp/tmux.d.ts +26 -0
  64. package/dist/omp/tmux.d.ts.map +1 -1
  65. package/dist/omp/tmux.js +184 -49
  66. package/dist/omp/tmux.js.map +1 -1
  67. package/dist/omp/tray-icons.d.ts +6 -0
  68. package/dist/omp/tray-icons.d.ts.map +1 -0
  69. package/dist/omp/tray-icons.js +78 -0
  70. package/dist/omp/tray-icons.js.map +1 -0
  71. package/dist/omp/tray.d.ts +24 -0
  72. package/dist/omp/tray.d.ts.map +1 -0
  73. package/dist/omp/tray.js +167 -0
  74. package/dist/omp/tray.js.map +1 -0
  75. package/docs/compatibility/baseline.json +1 -1
  76. package/docs/releases/0.4.10.md +13 -0
  77. package/docs/releases/0.4.9.md +6 -0
  78. package/package.json +2 -1
package/dist/omp/tmux.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { spawn } from "node:child_process";
3
- import { basename } from "node:path";
4
- import { findLastOmbSession, ombSessionDir } from "./omb-sessions.js";
3
+ import { statSync } from "node:fs";
4
+ import { basename, join } from "node:path";
5
+ import { findLastOmbSession, ombSessionDir, resolveMultiplexerBin } from "./omb-sessions.js";
5
6
  import { loadOmbSettings } from "./omb-settings.js";
6
7
  const NON_INTERACTIVE_FLAGS = new Set(["-p", "--print", "--export"]);
7
8
  const NON_INTERACTIVE_MODES = new Set(["json", "rpc", "rpc-ui", "acp"]);
@@ -16,8 +17,6 @@ function modeOf(args) {
16
17
  export function shouldLaunchOmbInTmux(options = {}) {
17
18
  const env = options.env ?? process.env;
18
19
  const args = options.args ?? process.argv.slice(2);
19
- if (process.platform === "win32")
20
- return false;
21
20
  if (env.TMUX || env.TMUX_PANE || env.BIZAR_OMP_NO_TMUX === "1")
22
21
  return false;
23
22
  if (options.stdinIsTTY !== true || options.stdoutIsTTY !== true)
@@ -42,36 +41,36 @@ function exitCode(code, signal) {
42
41
  return code;
43
42
  return signal ? 1 : 1;
44
43
  }
44
+ /** Node reports an unresolvable spawn target as ENOENT (or EINVAL for .cmd shims). */
45
+ function isMissingBinaryError(error) {
46
+ const code = error?.code;
47
+ return code === "ENOENT" || code === "EINVAL";
48
+ }
45
49
  function runTmux(command, args, cwd, env) {
46
50
  const child = spawn(command, args, { cwd, env, stdio: "ignore" });
47
- return new Promise((resolve, reject) => {
48
- child.once("error", reject);
49
- child.once("close", (code, signal) => resolve(exitCode(code, signal)));
50
- });
51
+ const closed = Promise.withResolvers();
52
+ child.once("error", closed.reject);
53
+ child.once("close", (code, signal) => closed.resolve(exitCode(code, signal)));
54
+ return closed.promise;
51
55
  }
52
56
  function readTmux(command, args, cwd, env) {
53
57
  const child = spawn(command, args, { cwd, env, stdio: ["ignore", "pipe", "ignore"] });
54
58
  let output = "";
55
59
  child.stdout?.setEncoding("utf8");
56
60
  child.stdout?.on("data", chunk => { output += chunk; });
57
- return new Promise((resolve, reject) => {
58
- child.once("error", reject);
59
- child.once("close", (code, signal) => resolve({ code: exitCode(code, signal), output }));
60
- });
61
+ const closed = Promise.withResolvers();
62
+ child.once("error", closed.reject);
63
+ child.once("close", (code, signal) => closed.resolve({ code: exitCode(code, signal), output }));
64
+ return closed.promise;
61
65
  }
62
- async function launchInTmux(tmux, omp, session, cwd, args, env, mouseScrolling, sessionDir) {
63
- const childEnv = { ...env, BIZAR_OMP_NO_TMUX: "1" };
64
- const hasSession = await runTmux(tmux, ["has-session", "-t", session], cwd, childEnv);
65
- if (hasSession !== 0) {
66
- const created = await runTmux(tmux, ["new-session", "-d", "-s", session, "-c", cwd, omp, "--session-dir", sessionDir, ...args], cwd, childEnv);
67
- if (created !== 0) {
68
- // A concurrent `omb` may have created the stable session between the
69
- // probe and create calls. Continue only when that race is proven safe.
70
- const racedIntoExisting = await runTmux(tmux, ["has-session", "-t", session], cwd, childEnv);
71
- if (racedIntoExisting !== 0)
72
- return created;
73
- }
74
- }
66
+ /**
67
+ * Apply the standard Bizar options to a Bizar-owned session: respawn dead
68
+ * panes, remain-on-exit off, mouse preference, and the private root table so
69
+ * Ctrl-D/C detach the client without sending exit or interrupt input into
70
+ * OMP. The tmux host remains alive for background work, and the normal Ctrl-B
71
+ * prefix still enters tmux's standard prefix table.
72
+ */
73
+ async function prepareOmbSession(tmux, omp, session, cwd, childEnv, mouseScrolling) {
75
74
  // Keep the respawn opportunity below for stale sessions, but do not leave
76
75
  // remain-on-exit enabled: when OMP really exits, tmux should remove the
77
76
  // pane/session instead of showing a permanent "Pane is dead" screen.
@@ -80,7 +79,7 @@ async function launchInTmux(tmux, omp, session, cwd, args, env, mouseScrolling,
80
79
  if (pane.code !== 0)
81
80
  return pane.code;
82
81
  if (pane.output.trim() === "1") {
83
- const respawned = await runTmux(tmux, ["respawn-pane", "-k", "-t", `${session}:0.0`, omp, "--session-dir", sessionDir, "--continue", ...args], cwd, childEnv);
82
+ const respawned = await runTmux(tmux, ["respawn-pane", "-k", "-t", `${session}:0.0`, omp, "--session-dir", ombSessionDir(session, childEnv), "--continue"], cwd, childEnv);
84
83
  if (respawned !== 0)
85
84
  return respawned;
86
85
  }
@@ -93,11 +92,16 @@ async function launchInTmux(tmux, omp, session, cwd, args, env, mouseScrolling,
93
92
  const mouseEnabled = await runTmux(tmux, ["set-option", "-t", session, "mouse", mouseScrolling ? "on" : "off"], cwd, childEnv);
94
93
  if (mouseEnabled !== 0)
95
94
  return mouseEnabled;
96
- // Give this session a private root table so Ctrl-D/C detach the client
97
- // without sending exit or interrupt input into OMP. The tmux host remains
98
- // alive for background work, and the normal Ctrl-B prefix still enters
99
- // tmux's standard prefix table.
100
95
  const keyTable = `${session}-bizar-root`;
96
+ // Keep pointer events inside the Bizar-owned key table. Without these
97
+ // explicit bindings, tmux consumes wheel/click events while an OMP
98
+ // alternate-screen overlay is active, so Advisor never receives them; when
99
+ // the main OMP screen is active, the wheel should scroll tmux's pane.
100
+ const bindWheelUp = await runTmux(tmux, ["bind-key", "-T", keyTable, "WheelUpPane", "if-shell", "-F", "#{alternate_on}", "send-keys -M", "copy-mode -e; send-keys -M"], cwd, childEnv);
101
+ const bindWheelDown = await runTmux(tmux, ["bind-key", "-T", keyTable, "WheelDownPane", "if-shell", "-F", "#{alternate_on}", "send-keys -M", "send-keys -M"], cwd, childEnv);
102
+ const bindMouseDown = await runTmux(tmux, ["bind-key", "-T", keyTable, "MouseDown1Pane", "if-shell", "-F", "#{alternate_on}", "send-keys -M", "select-pane"], cwd, childEnv);
103
+ const bindMouseDrag = await runTmux(tmux, ["bind-key", "-T", keyTable, "MouseDrag1Pane", "if-shell", "-F", "#{alternate_on}", "send-keys -M", "copy-mode -e; send-keys -M"], cwd, childEnv);
104
+ const bindMouseUp = await runTmux(tmux, ["bind-key", "-T", keyTable, "MouseUp1Pane", "if-shell", "-F", "#{alternate_on}", "send-keys -M", ""], cwd, childEnv);
101
105
  const bindDetach = await runTmux(tmux, ["bind-key", "-T", keyTable, "C-d", "detach-client"], cwd, childEnv);
102
106
  if (bindDetach !== 0)
103
107
  return bindDetach;
@@ -107,23 +111,114 @@ async function launchInTmux(tmux, omp, session, cwd, args, env, mouseScrolling,
107
111
  const bindPrefix = await runTmux(tmux, ["bind-key", "-T", keyTable, "C-b", "switch-client", "-T", "prefix"], cwd, childEnv);
108
112
  if (bindPrefix !== 0)
109
113
  return bindPrefix;
110
- const keyTableSet = await runTmux(tmux, ["set-option", "-t", session, "key-table", keyTable], cwd, childEnv);
111
- if (keyTableSet !== 0)
112
- return keyTableSet;
114
+ return runTmux(tmux, ["set-option", "-t", session, "key-table", keyTable], cwd, childEnv);
115
+ }
116
+ async function launchInTmux(tmux, omp, session, cwd, args, env, mouseScrolling, sessionDir) {
117
+ const childEnv = { ...env, BIZAR_OMP_NO_TMUX: "1" };
118
+ const hasSession = await runTmux(tmux, ["has-session", "-t", session], cwd, childEnv);
119
+ if (hasSession !== 0) {
120
+ const created = await runTmux(tmux, ["new-session", "-d", "-s", session, "-c", cwd, omp, "--session-dir", sessionDir, ...args], cwd, childEnv);
121
+ if (created !== 0) {
122
+ // A concurrent `omb` may have created the stable session between the
123
+ // probe and create calls. Continue only when that race is proven safe.
124
+ const racedIntoExisting = await runTmux(tmux, ["has-session", "-t", session], cwd, childEnv);
125
+ if (racedIntoExisting !== 0)
126
+ return created;
127
+ }
128
+ }
129
+ const prepared = await prepareOmbSession(tmux, omp, session, cwd, childEnv, mouseScrolling);
130
+ if (prepared !== 0)
131
+ return prepared;
113
132
  const client = spawn(tmux, ["attach-session", "-t", session], { cwd, env: childEnv, stdio: "inherit" });
114
- return new Promise((resolve, reject) => {
115
- client.once("error", reject);
116
- client.once("close", (code, signal) => resolve(exitCode(code, signal)));
117
- });
133
+ const closed = Promise.withResolvers();
134
+ client.once("error", closed.reject);
135
+ client.once("close", (code, signal) => closed.resolve(exitCode(code, signal)));
136
+ return closed.promise;
118
137
  }
119
138
  function ownedSession(session) {
120
139
  return session.startsWith("bizar-") && !session.includes("\0");
121
140
  }
141
+ /**
142
+ * Terminal emulators that can host an interactive attach, in preference order.
143
+ * `$BIZAR_TERMINAL` overrides the list; `xfce4-terminal` takes the command as
144
+ * one argument while the rest expect `-e <argv>`.
145
+ */
146
+ const TERMINAL_COMMANDS = [
147
+ { bin: "x-terminal-emulator", args: command => ["-e", "sh", "-lc", command] },
148
+ { bin: "gnome-terminal", args: command => ["--", "sh", "-lc", command] },
149
+ { bin: "konsole", args: command => ["-e", "sh", "-lc", command] },
150
+ { bin: "xfce4-terminal", args: command => [command], single: true },
151
+ { bin: "alacritty", args: command => ["-e", "sh", "-lc", command] },
152
+ { bin: "kitty", args: command => ["sh", "-lc", command] },
153
+ { bin: "foot", args: command => ["sh", "-lc", command] },
154
+ { bin: "wezterm", args: command => ["start", "--", "sh", "-lc", command] },
155
+ { bin: "xterm", args: command => ["-e", "sh", "-lc", command] },
156
+ ];
157
+ /** Resolve an executable on `$PATH`, or an explicit path when it contains a slash. */
158
+ export function findOnPath(bin, env = process.env) {
159
+ if (bin.includes("/")) {
160
+ try {
161
+ const stat = statSync(bin);
162
+ return stat.isFile() && (stat.mode & 0o111) !== 0 ? bin : undefined;
163
+ }
164
+ catch {
165
+ return undefined;
166
+ }
167
+ }
168
+ for (const dir of (env.PATH || "").split(":").filter(Boolean)) {
169
+ const candidate = join(dir, bin);
170
+ try {
171
+ const stat = statSync(candidate);
172
+ if (stat.isFile() && (stat.mode & 0o111) !== 0)
173
+ return candidate;
174
+ }
175
+ catch { /* keep searching */ }
176
+ }
177
+ return undefined;
178
+ }
179
+ /**
180
+ * Open one Bizar-owned session in a new terminal emulator window. The daemon
181
+ * and hub run without a controlling TTY, so attaching means handing the attach
182
+ * command to a terminal we spawn; when no emulator exists the caller still
183
+ * receives the exact command to run by hand.
184
+ */
185
+ export function openOmbSessionInTerminal(session, env = process.env) {
186
+ // Names come from tmux; keep the shell command single-quoted and refuse
187
+ // anything outside the character set Bizar ever generates.
188
+ if (!ownedSession(session) || !/^[A-Za-z0-9_.-]+$/.test(session))
189
+ return { spawned: false, command: "" };
190
+ const multiplexer = resolveMultiplexerBin(env).replace(/'/g, "'\\''");
191
+ const command = `'${multiplexer}' attach-session -t '${session}'`;
192
+ return openCommandInTerminal(command, env);
193
+ }
194
+ /** Open a fixed Bizar CLI command in a new terminal emulator window. */
195
+ export function openCommandInTerminal(command, env = process.env) {
196
+ if (!command.trim() || /[\r\n]/.test(command))
197
+ return { spawned: false, command: "" };
198
+ const override = env.BIZAR_TERMINAL?.trim();
199
+ const candidates = override
200
+ ? [{ bin: override, args: (value) => ["-e", "sh", "-lc", value] }, ...TERMINAL_COMMANDS]
201
+ : TERMINAL_COMMANDS;
202
+ for (const candidate of candidates) {
203
+ const resolved = findOnPath(candidate.bin, env);
204
+ if (!resolved)
205
+ continue;
206
+ const child = spawn(resolved, candidate.args(command), {
207
+ detached: true,
208
+ stdio: "ignore",
209
+ env: { ...env, BIZAR_OMP_NO_TMUX: "1" },
210
+ });
211
+ child.once("error", () => { });
212
+ child.unref();
213
+ return { spawned: true, command, terminal: resolved };
214
+ }
215
+ return { spawned: false, command };
216
+ }
122
217
  /** Apply the launcher mouse preference to one exact Bizar-owned session. */
123
218
  export function setOmbSessionMouse(session, enabled, cwd = process.cwd(), env = process.env) {
124
219
  if (!ownedSession(session))
125
220
  return Promise.resolve(2);
126
- return runTmux(env.BIZAR_TMUX_BIN || "tmux", ["set-option", "-t", session, "mouse", enabled ? "on" : "off"], cwd, {
221
+ return runTmux(resolveMultiplexerBin(env), ["set-option", "-t", session, "mouse", enabled ? "on" : "off"], cwd, {
127
222
  ...env,
128
223
  BIZAR_OMP_NO_TMUX: "1",
129
224
  });
@@ -132,7 +227,7 @@ export function setOmbSessionMouse(session, enabled, cwd = process.cwd(), env =
132
227
  export function renameOmbSession(session, nextName, cwd = process.cwd(), env = process.env) {
133
228
  if (!ownedSession(session) || !ownedSession(nextName))
134
229
  return Promise.resolve(2);
135
- return runTmux(env.BIZAR_TMUX_BIN || "tmux", ["rename-session", "-t", session, nextName], cwd, {
230
+ return runTmux(resolveMultiplexerBin(env), ["rename-session", "-t", session, nextName], cwd, {
136
231
  ...env,
137
232
  BIZAR_OMP_NO_TMUX: "1",
138
233
  });
@@ -141,20 +236,27 @@ export function renameOmbSession(session, nextName, cwd = process.cwd(), env = p
141
236
  export function deleteOmbSession(session, cwd = process.cwd(), env = process.env) {
142
237
  if (!ownedSession(session))
143
238
  return Promise.resolve(2);
144
- return runTmux(env.BIZAR_TMUX_BIN || "tmux", ["kill-session", "-t", session], cwd, {
239
+ return runTmux(resolveMultiplexerBin(env), ["kill-session", "-t", session], cwd, {
145
240
  ...env,
146
241
  BIZAR_OMP_NO_TMUX: "1",
147
242
  });
148
243
  }
149
244
  /** Attach to an existing Bizar session, switching the current tmux client when nested. */
150
245
  export function attachOmbSession(session, cwd = process.cwd(), env = process.env) {
151
- const tmux = env.BIZAR_TMUX_BIN || "tmux";
246
+ const tmux = resolveMultiplexerBin(env);
152
247
  const args = env.TMUX || env.TMUX_PANE
153
248
  ? ["switch-client", "-t", session]
154
249
  : ["attach-session", "-t", session];
155
250
  const child = spawn(tmux, args, { cwd, env: { ...env, BIZAR_OMP_NO_TMUX: "1" }, stdio: "inherit" });
156
251
  return new Promise((resolve, reject) => {
157
- child.once("error", reject);
252
+ // A missing multiplexer degrades to a nonzero exit like a failed attach;
253
+ // any other spawn failure (EACCES, EPERM, ...) is still a hard error.
254
+ child.once("error", (error) => {
255
+ if (isMissingBinaryError(error))
256
+ resolve(1);
257
+ else
258
+ reject(error);
259
+ });
158
260
  child.once("close", (code, signal) => resolve(exitCode(code, signal)));
159
261
  });
160
262
  }
@@ -170,17 +272,50 @@ export async function launchOmb(cwd, args, env = process.env, sessionId) {
170
272
  stdinIsTTY: process.stdin.isTTY === true,
171
273
  stdoutIsTTY: process.stdout.isTTY === true,
172
274
  });
173
- const tmux = env.BIZAR_TMUX_BIN || "tmux";
275
+ const tmux = resolveMultiplexerBin(env);
174
276
  const omp = env.BIZAR_OMP_BIN || "omp";
175
277
  const settings = loadOmbSettings(env);
176
278
  const lastSession = useTmux && !sessionId && settings.autoAttachLatest ? await findLastOmbSession(cwd, env) : undefined;
177
279
  const session = lastSession?.name ?? ombSessionName(cwd, sessionId);
178
- if (useTmux)
179
- return launchInTmux(tmux, omp, session, cwd, args, env, settings.mouseScrolling, ombSessionDir(session, env));
280
+ if (useTmux) {
281
+ try {
282
+ return await launchInTmux(tmux, omp, session, cwd, args, env, settings.mouseScrolling, ombSessionDir(session, env));
283
+ }
284
+ catch (error) {
285
+ // No tmux-compatible multiplexer installed (spawn ENOENT): run OMP
286
+ // directly rather than failing hosts that simply lack psmux/tmux.
287
+ if (!isMissingBinaryError(error))
288
+ throw error;
289
+ }
290
+ }
180
291
  const child = spawn(omp, args, { cwd, env, stdio: "inherit" });
181
- return new Promise((resolve, reject) => {
182
- child.once("error", reject);
183
- child.once("close", (code, signal) => resolve(exitCode(code, signal)));
184
- });
292
+ const closed = Promise.withResolvers();
293
+ child.once("error", closed.reject);
294
+ child.once("close", (code, signal) => closed.resolve(exitCode(code, signal)));
295
+ return closed.promise;
296
+ }
297
+ /**
298
+ * Create or refresh a Bizar-owned session without attaching a client. The
299
+ * dashboard uses this so a browser can start background work; the session
300
+ * gets the same durability and input options as an interactive `omb` launch.
301
+ */
302
+ export async function createOmbSession(cwd, args, env = process.env, sessionId) {
303
+ const tmux = resolveMultiplexerBin(env);
304
+ const omp = env.BIZAR_OMP_BIN || "omp";
305
+ const settings = loadOmbSettings(env);
306
+ const session = ombSessionName(cwd, sessionId);
307
+ const childEnv = { ...env, BIZAR_OMP_NO_TMUX: "1" };
308
+ const hasSession = await runTmux(tmux, ["has-session", "-t", session], cwd, childEnv);
309
+ if (hasSession !== 0) {
310
+ const created = await runTmux(tmux, ["new-session", "-d", "-s", session, "-c", cwd, omp, "--session-dir", ombSessionDir(session, env), ...args], cwd, childEnv);
311
+ if (created !== 0) {
312
+ // A concurrent creator may have raced the probe; reuse only when the
313
+ // session now exists, exactly like the interactive launcher.
314
+ const racedIntoExisting = await runTmux(tmux, ["has-session", "-t", session], cwd, childEnv);
315
+ if (racedIntoExisting !== 0)
316
+ return { name: session, code: created };
317
+ }
318
+ }
319
+ return { name: session, code: await prepareOmbSession(tmux, omp, session, cwd, childEnv, settings.mouseScrolling) };
185
320
  }
186
321
  //# sourceMappingURL=tmux.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tmux.js","sourceRoot":"","sources":["../../src/omp/tmux.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tmux.js","sourceRoot":"","sources":["../../src/omp/tmux.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export interface TrayIconPaths {
2
+ png: string;
3
+ ico: string;
4
+ }
5
+ export declare function trayIconPaths(env?: NodeJS.ProcessEnv): TrayIconPaths;
6
+ //# sourceMappingURL=tray-icons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tray-icons.d.ts","sourceRoot":"","sources":["../../src/omp/tray-icons.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAkED,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,aAAa,CAWjF"}
@@ -0,0 +1,78 @@
1
+ import { existsSync, mkdirSync, writeFileSync } from "node:fs";
2
+ import { deflateSync } from "node:zlib";
3
+ import { join } from "node:path";
4
+ import { daemonStateDir } from "./daemon.js";
5
+ function crc32(value) {
6
+ let crc = 0xffffffff;
7
+ for (const byte of value) {
8
+ crc ^= byte;
9
+ for (let bit = 0; bit < 8; bit++)
10
+ crc = (crc >>> 1) ^ (0xedb88320 & -(crc & 1));
11
+ }
12
+ return (crc ^ 0xffffffff) >>> 0;
13
+ }
14
+ function chunk(type, data) {
15
+ const name = Buffer.from(type, "ascii");
16
+ const body = Buffer.concat([name, data]);
17
+ const output = Buffer.alloc(12 + data.length);
18
+ output.writeUInt32BE(data.length, 0);
19
+ body.copy(output, 4);
20
+ output.writeUInt32BE(crc32(body), 8 + data.length);
21
+ return output;
22
+ }
23
+ /** Generate a tiny dependency-free Bizar mark for native tray backends. */
24
+ function createPng() {
25
+ const size = 32;
26
+ const rows = Buffer.alloc(size * (size * 4 + 1));
27
+ for (let y = 0; y < size; y++) {
28
+ const row = y * (size * 4 + 1);
29
+ rows[row] = 0;
30
+ for (let x = 0; x < size; x++) {
31
+ const pixel = row + 1 + x * 4;
32
+ const inside = (x - 15.5) ** 2 + (y - 15.5) ** 2 < 13 ** 2;
33
+ rows[pixel] = inside ? 38 : 22;
34
+ rows[pixel + 1] = inside ? 197 : 27;
35
+ rows[pixel + 2] = inside ? 145 : 36;
36
+ rows[pixel + 3] = 255;
37
+ }
38
+ }
39
+ const header = Buffer.alloc(13);
40
+ header.writeUInt32BE(size, 0);
41
+ header.writeUInt32BE(size, 4);
42
+ header[8] = 8;
43
+ header[9] = 6;
44
+ return Buffer.concat([
45
+ Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]),
46
+ chunk("IHDR", header),
47
+ chunk("IDAT", deflateSync(rows)),
48
+ chunk("IEND", Buffer.alloc(0)),
49
+ ]);
50
+ }
51
+ function createIco(png) {
52
+ const header = Buffer.alloc(22);
53
+ header.writeUInt16LE(0, 0);
54
+ header.writeUInt16LE(1, 2);
55
+ header.writeUInt16LE(1, 4);
56
+ header[6] = 32;
57
+ header[7] = 32;
58
+ header[8] = 0;
59
+ header[9] = 0;
60
+ header.writeUInt16LE(1, 10);
61
+ header.writeUInt16LE(32, 12);
62
+ header.writeUInt32LE(png.length, 14);
63
+ header.writeUInt32LE(22, 18);
64
+ return Buffer.concat([header, png]);
65
+ }
66
+ export function trayIconPaths(env = process.env) {
67
+ const directory = daemonStateDir(env);
68
+ mkdirSync(directory, { recursive: true, mode: 0o700 });
69
+ const png = join(directory, "bizar-tray.png");
70
+ const ico = join(directory, "bizar-tray.ico");
71
+ if (!existsSync(png) || !existsSync(ico)) {
72
+ const image = createPng();
73
+ writeFileSync(png, image, { mode: 0o600 });
74
+ writeFileSync(ico, createIco(image), { mode: 0o600 });
75
+ }
76
+ return { png, ico };
77
+ }
78
+ //# sourceMappingURL=tray-icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tray-icons.js","sourceRoot":"","sources":["../../src/omp/tray-icons.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { MenuItem } from "@trayjs/trayjs";
2
+ export interface TrayInfo {
3
+ pid: number;
4
+ startedAt: number;
5
+ }
6
+ export interface TrayStatus {
7
+ state: "running" | "stopped" | "stale" | "unsupported";
8
+ tray?: TrayInfo;
9
+ }
10
+ export interface TrayService {
11
+ ready: Promise<void>;
12
+ closed: Promise<void>;
13
+ close(): Promise<void>;
14
+ }
15
+ export declare const trayLockPath: (env?: NodeJS.ProcessEnv) => string;
16
+ export declare const trayLogPath: (env?: NodeJS.ProcessEnv) => string;
17
+ export declare function readTrayStatus(env?: NodeJS.ProcessEnv): TrayStatus;
18
+ export declare function trayMenuItems(env?: NodeJS.ProcessEnv): Promise<MenuItem[]>;
19
+ /** Run the native tray in the foreground. Unsupported hosts return cleanly. */
20
+ export declare function runTrayService(env?: NodeJS.ProcessEnv): Promise<TrayService | undefined>;
21
+ export declare function startTray(env?: NodeJS.ProcessEnv): Promise<TrayInfo | undefined>;
22
+ export declare function stopTray(env?: NodeJS.ProcessEnv): Promise<boolean>;
23
+ export declare function runTrayForeground(env?: NodeJS.ProcessEnv): Promise<number>;
24
+ //# sourceMappingURL=tray.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tray.d.ts","sourceRoot":"","sources":["../../src/omp/tray.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;IACvD,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,eAAO,MAAM,YAAY,SAAS,MAAM,CAAC,UAAU,KAAiB,MAAgD,CAAC;AACrH,eAAO,MAAM,WAAW,SAAS,MAAM,CAAC,UAAU,KAAiB,MAA+C,CAAC;AAsBnH,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,UAAU,CAa/E;AAUD,wBAAsB,aAAa,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAW7F;AAuBD,+EAA+E;AAC/E,wBAAsB,cAAc,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAkB3G;AAED,wBAAsB,SAAS,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAkBnG;AAED,wBAAsB,QAAQ,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAAC,OAAO,CAAC,CAMrF;AAED,wBAAsB,iBAAiB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgB7F"}