@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.
- package/README.md +55 -3
- package/dist/cli/agents-ink.d.ts +1 -1
- package/dist/cli/agents-ink.d.ts.map +1 -1
- package/dist/cli/agents-ink.js +62 -25
- package/dist/cli/agents-ink.js.map +1 -1
- package/dist/cli/agents.d.ts.map +1 -1
- package/dist/cli/agents.js +24 -14
- package/dist/cli/agents.js.map +1 -1
- package/dist/cli/directory-selector.d.ts.map +1 -1
- package/dist/cli/directory-selector.js +3 -1
- package/dist/cli/directory-selector.js.map +1 -1
- package/dist/cli/doctor.d.ts +6 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +17 -1
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/main.js +0 -0
- package/dist/cli/omb-daemon.d.ts +2 -0
- package/dist/cli/omb-daemon.d.ts.map +1 -0
- package/dist/cli/omb-daemon.js +121 -0
- package/dist/cli/omb-daemon.js.map +1 -0
- package/dist/cli/omb-dashboard.d.ts +12 -0
- package/dist/cli/omb-dashboard.d.ts.map +1 -0
- package/dist/cli/omb-dashboard.js +103 -0
- package/dist/cli/omb-dashboard.js.map +1 -0
- package/dist/cli/omb.js +29 -0
- package/dist/cli/omb.js.map +1 -1
- package/dist/cli/process.d.ts.map +1 -1
- package/dist/cli/process.js +5 -1
- package/dist/cli/process.js.map +1 -1
- package/dist/cli/setup-ui.js +1 -1
- package/dist/cli/setup-ui.js.map +1 -1
- package/dist/extension.d.ts.map +1 -1
- package/dist/extension.js +51 -0
- package/dist/extension.js.map +1 -1
- package/dist/omp/daemon-service.d.ts +24 -0
- package/dist/omp/daemon-service.d.ts.map +1 -0
- package/dist/omp/daemon-service.js +272 -0
- package/dist/omp/daemon-service.js.map +1 -0
- package/dist/omp/daemon.d.ts +48 -0
- package/dist/omp/daemon.d.ts.map +1 -0
- package/dist/omp/daemon.js +193 -0
- package/dist/omp/daemon.js.map +1 -0
- package/dist/omp/dashboard-html.d.ts +9 -0
- package/dist/omp/dashboard-html.d.ts.map +1 -0
- package/dist/omp/dashboard-html.js +594 -0
- package/dist/omp/dashboard-html.js.map +1 -0
- package/dist/omp/model-role-assignment.d.ts +3 -0
- package/dist/omp/model-role-assignment.d.ts.map +1 -1
- package/dist/omp/model-role-assignment.js +28 -6
- package/dist/omp/model-role-assignment.js.map +1 -1
- package/dist/omp/omb-sessions.d.ts +47 -2
- package/dist/omp/omb-sessions.d.ts.map +1 -1
- package/dist/omp/omb-sessions.js +236 -108
- package/dist/omp/omb-sessions.js.map +1 -1
- package/dist/omp/omb-settings.d.ts +1 -0
- package/dist/omp/omb-settings.d.ts.map +1 -1
- package/dist/omp/omb-settings.js +2 -0
- package/dist/omp/omb-settings.js.map +1 -1
- package/dist/omp/session-activity.d.ts +71 -0
- package/dist/omp/session-activity.d.ts.map +1 -0
- package/dist/omp/session-activity.js +361 -0
- package/dist/omp/session-activity.js.map +1 -0
- package/dist/omp/tmux.d.ts +26 -0
- package/dist/omp/tmux.d.ts.map +1 -1
- package/dist/omp/tmux.js +184 -49
- package/dist/omp/tmux.js.map +1 -1
- package/dist/omp/tray-icons.d.ts +6 -0
- package/dist/omp/tray-icons.d.ts.map +1 -0
- package/dist/omp/tray-icons.js +78 -0
- package/dist/omp/tray-icons.js.map +1 -0
- package/dist/omp/tray.d.ts +24 -0
- package/dist/omp/tray.d.ts.map +1 -0
- package/dist/omp/tray.js +167 -0
- package/dist/omp/tray.js.map +1 -0
- package/docs/compatibility/baseline.json +1 -1
- package/docs/releases/0.4.10.md +13 -0
- package/docs/releases/0.4.9.md +6 -0
- package/package.json +2 -1
package/dist/omp/tray.js
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { openSync, readFileSync, rmSync, writeFileSync, mkdirSync } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { spawn } from "node:child_process";
|
|
5
|
+
import { daemonStateDir } from "./daemon.js";
|
|
6
|
+
import { listOmbSessions, ombSessionDisplayName } from "./omb-sessions.js";
|
|
7
|
+
import { openCommandInTerminal, openOmbSessionInTerminal } from "./tmux.js";
|
|
8
|
+
import { trayIconPaths } from "./tray-icons.js";
|
|
9
|
+
import { stopDaemon } from "./daemon.js";
|
|
10
|
+
export const trayLockPath = (env = process.env) => join(daemonStateDir(env), "tray.json");
|
|
11
|
+
export const trayLogPath = (env = process.env) => join(daemonStateDir(env), "tray.log");
|
|
12
|
+
function supported() {
|
|
13
|
+
return (process.platform === "linux" || process.platform === "darwin" || process.platform === "win32")
|
|
14
|
+
&& ["x64", "arm64"].includes(process.arch);
|
|
15
|
+
}
|
|
16
|
+
function parseInfo(raw) {
|
|
17
|
+
try {
|
|
18
|
+
const value = JSON.parse(raw);
|
|
19
|
+
const pid = Number(value.pid);
|
|
20
|
+
const startedAt = Number(value.startedAt);
|
|
21
|
+
return Number.isInteger(pid) && pid > 0 && Number.isFinite(startedAt) ? { pid, startedAt } : undefined;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function alive(pid) {
|
|
28
|
+
try {
|
|
29
|
+
process.kill(pid, 0);
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export function readTrayStatus(env = process.env) {
|
|
37
|
+
if (!supported())
|
|
38
|
+
return { state: "unsupported" };
|
|
39
|
+
try {
|
|
40
|
+
const info = parseInfo(readFileSync(trayLockPath(env), "utf8"));
|
|
41
|
+
if (!info)
|
|
42
|
+
return { state: "stopped" };
|
|
43
|
+
if (!alive(info.pid)) {
|
|
44
|
+
rmSync(trayLockPath(env), { force: true });
|
|
45
|
+
return { state: "stale", tray: info };
|
|
46
|
+
}
|
|
47
|
+
return { state: "running", tray: info };
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return { state: "stopped" };
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function menuSessionItem(session) {
|
|
54
|
+
return {
|
|
55
|
+
id: `attach:${session.name}`,
|
|
56
|
+
title: `${ombSessionDisplayName(session)} · ${session.state}`,
|
|
57
|
+
enabled: session.state !== "stopped",
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
export async function trayMenuItems(env = process.env) {
|
|
61
|
+
const sessions = await listOmbSessions(process.cwd(), env, { includeStopped: true });
|
|
62
|
+
return [
|
|
63
|
+
{ id: "hub", title: "Open Agents Hub" },
|
|
64
|
+
{ id: "new", title: "Create session…" },
|
|
65
|
+
{ id: "separator-sessions", separator: true },
|
|
66
|
+
...sessions.slice(0, 12).map(menuSessionItem),
|
|
67
|
+
...(sessions.length ? [{ id: "separator-actions", separator: true }] : []),
|
|
68
|
+
{ id: "stop-daemon", title: "Stop background daemon" },
|
|
69
|
+
{ id: "quit", title: "Quit tray" },
|
|
70
|
+
];
|
|
71
|
+
}
|
|
72
|
+
async function handleClick(id, env, tray) {
|
|
73
|
+
if (id === "hub" || id === "new") {
|
|
74
|
+
openCommandInTerminal(id === "new" ? "omb agents --new" : "omb agents", env);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if (id === "stop-daemon") {
|
|
78
|
+
await stopDaemon(env);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (id === "quit") {
|
|
82
|
+
tray.quit();
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if (id.startsWith("attach:")) {
|
|
86
|
+
const name = id.slice("attach:".length);
|
|
87
|
+
if ((await listOmbSessions(process.cwd(), env, { includeStopped: false })).some(session => session.name === name)) {
|
|
88
|
+
openOmbSessionInTerminal(name, env);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/** Run the native tray in the foreground. Unsupported hosts return cleanly. */
|
|
93
|
+
export async function runTrayService(env = process.env) {
|
|
94
|
+
if (!supported())
|
|
95
|
+
return undefined;
|
|
96
|
+
try {
|
|
97
|
+
const { Tray } = await import("@trayjs/trayjs");
|
|
98
|
+
const icon = trayIconPaths(env);
|
|
99
|
+
let resolveClose;
|
|
100
|
+
const closed = new Promise(resolve => { resolveClose = resolve; });
|
|
101
|
+
const tray = new Tray({
|
|
102
|
+
icon,
|
|
103
|
+
tooltip: "Bizar OMB sessions",
|
|
104
|
+
onMenuRequested: () => trayMenuItems(env),
|
|
105
|
+
onClicked: id => { void handleClick(id, env, tray); },
|
|
106
|
+
});
|
|
107
|
+
tray.once("close", () => resolveClose());
|
|
108
|
+
return { ready: Promise.resolve(), closed, close: async () => { tray.quit(); await closed; } };
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
export async function startTray(env = process.env) {
|
|
115
|
+
if (!supported())
|
|
116
|
+
return undefined;
|
|
117
|
+
const current = readTrayStatus(env);
|
|
118
|
+
if (current.state === "running")
|
|
119
|
+
return current.tray;
|
|
120
|
+
const entry = process.argv[1];
|
|
121
|
+
if (!entry)
|
|
122
|
+
return undefined;
|
|
123
|
+
mkdirSync(daemonStateDir(env), { recursive: true, mode: 0o700 });
|
|
124
|
+
const log = openSync(trayLogPath(env), "a");
|
|
125
|
+
const child = spawn(process.execPath, [entry, "tray", "run"], {
|
|
126
|
+
cwd: env.HOME || homedir(),
|
|
127
|
+
env,
|
|
128
|
+
detached: true,
|
|
129
|
+
stdio: ["ignore", log, log],
|
|
130
|
+
});
|
|
131
|
+
child.unref();
|
|
132
|
+
const info = { pid: child.pid ?? 0, startedAt: Date.now() };
|
|
133
|
+
if (info.pid > 0)
|
|
134
|
+
writeFileSync(trayLockPath(env), `${JSON.stringify(info)}\n`, { mode: 0o600 });
|
|
135
|
+
return info.pid > 0 ? info : undefined;
|
|
136
|
+
}
|
|
137
|
+
export async function stopTray(env = process.env) {
|
|
138
|
+
const current = readTrayStatus(env);
|
|
139
|
+
if (current.state !== "running" || !current.tray)
|
|
140
|
+
return false;
|
|
141
|
+
try {
|
|
142
|
+
process.kill(current.tray.pid, "SIGTERM");
|
|
143
|
+
}
|
|
144
|
+
catch { /* already gone */ }
|
|
145
|
+
rmSync(trayLockPath(env), { force: true });
|
|
146
|
+
return true;
|
|
147
|
+
}
|
|
148
|
+
export async function runTrayForeground(env = process.env) {
|
|
149
|
+
const service = await runTrayService(env);
|
|
150
|
+
if (!service)
|
|
151
|
+
return 0;
|
|
152
|
+
const info = { pid: process.pid, startedAt: Date.now() };
|
|
153
|
+
mkdirSync(daemonStateDir(env), { recursive: true, mode: 0o700 });
|
|
154
|
+
writeFileSync(trayLockPath(env), `${JSON.stringify(info)}\n`, { mode: 0o600 });
|
|
155
|
+
const close = () => { void service.close(); };
|
|
156
|
+
process.once("SIGTERM", close);
|
|
157
|
+
process.once("SIGINT", close);
|
|
158
|
+
try {
|
|
159
|
+
await service.ready;
|
|
160
|
+
await service.closed;
|
|
161
|
+
return 0;
|
|
162
|
+
}
|
|
163
|
+
finally {
|
|
164
|
+
rmSync(trayLockPath(env), { force: true });
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=tray.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tray.js","sourceRoot":"","sources":["../../src/omp/tray.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# 0.4.10
|
|
2
|
+
|
|
3
|
+
## Highlights
|
|
4
|
+
|
|
5
|
+
- Fixed mouse wheel and pointer forwarding for Advisor overlays and attached OMB sessions through tmux/psmux.
|
|
6
|
+
- Corrected agents-hub session titles and live status labels.
|
|
7
|
+
- Added an opt-in native system tray for session attach/create, hub launch, daemon stop, and tray lifecycle control.
|
|
8
|
+
- Added `omb tray start|stop|status` and `omb agents --new`.
|
|
9
|
+
|
|
10
|
+
## Validation
|
|
11
|
+
|
|
12
|
+
- Full Vitest suite, typecheck, build, package, docs, security, and npm pack checks passed.
|
|
13
|
+
- OMP 18.2.6 install/discovery smoke validation passed.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# 0.4.9
|
|
2
|
+
|
|
3
|
+
- Adds five-state OMB session status (`working`, `waiting`, `connected`, `disconnected`, and `stopped`) derived from host liveness, attachment, and native OMP activity.
|
|
4
|
+
- Adds privacy-safe live activity summaries and staleness indicators to the agents hub and session inspector.
|
|
5
|
+
- Adds the background OMB daemon and loopback web dashboard with authenticated session listing, create, rename, stop, and attach flows.
|
|
6
|
+
- Adds the `/bizar-dashboard` command and keeps dashboard payloads free of pane commands, process ids, prompts, credentials, and terminal history.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@polderlabs/bizar-omp",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.10",
|
|
4
4
|
"description": "Native oh-my-pi engineering workflow extension with typed evidence and serialized integration.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -64,6 +64,7 @@
|
|
|
64
64
|
"vitest": "^5.0.0"
|
|
65
65
|
},
|
|
66
66
|
"dependencies": {
|
|
67
|
+
"@trayjs/trayjs": "^0.0.10",
|
|
67
68
|
"ink": "^7.1.1",
|
|
68
69
|
"react": "^19.3.0"
|
|
69
70
|
}
|