@oharness/server 0.7.1 → 0.9.0

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 (73) hide show
  1. package/dist/browser-pane.d.ts +48 -0
  2. package/dist/browser-pane.js +185 -0
  3. package/dist/browser-pane.js.map +1 -0
  4. package/dist/files.d.ts +40 -1
  5. package/dist/files.js +94 -3
  6. package/dist/files.js.map +1 -1
  7. package/dist/i18n.js +190 -0
  8. package/dist/i18n.js.map +1 -1
  9. package/dist/main.js +20 -0
  10. package/dist/main.js.map +1 -1
  11. package/dist/page/client/account.d.ts +8 -0
  12. package/dist/page/client/account.js +1895 -0
  13. package/dist/page/client/account.js.map +1 -0
  14. package/dist/page/client/artifacts.d.ts +7 -0
  15. package/dist/page/client/artifacts.js +767 -0
  16. package/dist/page/client/artifacts.js.map +1 -0
  17. package/dist/page/client/base.d.ts +8 -0
  18. package/dist/page/client/base.js +404 -0
  19. package/dist/page/client/base.js.map +1 -0
  20. package/dist/page/client/browser.d.ts +21 -0
  21. package/dist/page/client/browser.js +906 -0
  22. package/dist/page/client/browser.js.map +1 -0
  23. package/dist/page/client/composer.d.ts +8 -0
  24. package/dist/page/client/composer.js +1714 -0
  25. package/dist/page/client/composer.js.map +1 -0
  26. package/dist/page/client/dialogs.d.ts +7 -0
  27. package/dist/page/client/dialogs.js +724 -0
  28. package/dist/page/client/dialogs.js.map +1 -0
  29. package/dist/page/client/events.d.ts +7 -0
  30. package/dist/page/client/events.js +288 -0
  31. package/dist/page/client/events.js.map +1 -0
  32. package/dist/page/client/files.d.ts +7 -0
  33. package/dist/page/client/files.js +412 -0
  34. package/dist/page/client/files.js.map +1 -0
  35. package/dist/page/client/index.d.ts +16 -0
  36. package/dist/page/client/index.js +50 -0
  37. package/dist/page/client/index.js.map +1 -0
  38. package/dist/page/client/panels.d.ts +7 -0
  39. package/dist/page/client/panels.js +659 -0
  40. package/dist/page/client/panels.js.map +1 -0
  41. package/dist/page/client/pickers.d.ts +7 -0
  42. package/dist/page/client/pickers.js +624 -0
  43. package/dist/page/client/pickers.js.map +1 -0
  44. package/dist/page/client/routines.d.ts +6 -0
  45. package/dist/page/client/routines.js +928 -0
  46. package/dist/page/client/routines.js.map +1 -0
  47. package/dist/page/client/shell.d.ts +6 -0
  48. package/dist/page/client/shell.js +700 -0
  49. package/dist/page/client/shell.js.map +1 -0
  50. package/dist/page/client/state.d.ts +7 -0
  51. package/dist/page/client/state.js +1283 -0
  52. package/dist/page/client/state.js.map +1 -0
  53. package/dist/page/client/terminal.d.ts +7 -0
  54. package/dist/page/client/terminal.js +347 -0
  55. package/dist/page/client/terminal.js.map +1 -0
  56. package/dist/page/client/transcript.d.ts +8 -0
  57. package/dist/page/client/transcript.js +866 -0
  58. package/dist/page/client/transcript.js.map +1 -0
  59. package/dist/page/client/usage.d.ts +7 -0
  60. package/dist/page/client/usage.js +954 -0
  61. package/dist/page/client/usage.js.map +1 -0
  62. package/dist/page/style.d.ts +1 -0
  63. package/dist/page/style.js +3016 -0
  64. package/dist/page/style.js.map +1 -0
  65. package/dist/page.js +96 -13871
  66. package/dist/page.js.map +1 -1
  67. package/dist/server.d.ts +24 -0
  68. package/dist/server.js +492 -23
  69. package/dist/server.js.map +1 -1
  70. package/dist/terminal.d.ts +34 -0
  71. package/dist/terminal.js +211 -0
  72. package/dist/terminal.js.map +1 -0
  73. package/package.json +9 -8
@@ -0,0 +1,34 @@
1
+ import type { ServerResponse } from "node:http";
2
+ export declare class TerminalHub {
3
+ private readonly terminals;
4
+ private seq;
5
+ /** A project's terminals, oldest first, for a page reattaching to them. */
6
+ list(cwd: string): Array<{
7
+ id: string;
8
+ name: string;
9
+ exited: boolean;
10
+ }>;
11
+ /** A new shell in `cwd`; `replace` names one it takes the place of. */
12
+ open(cwd: string, size: {
13
+ cols?: unknown;
14
+ rows?: unknown;
15
+ }, replace?: string): Promise<{
16
+ id: string;
17
+ name: string;
18
+ } | {
19
+ error: string;
20
+ }>;
21
+ /** Attach a page: what has been written so far, then everything after. */
22
+ stream(id: string, res: ServerResponse): boolean;
23
+ input(id: string, data: unknown): boolean;
24
+ resize(id: string, cols: unknown, rows: unknown): boolean;
25
+ close(id: string): void;
26
+ closeAll(): void;
27
+ private emit;
28
+ }
29
+ /** The xterm.js files the page loads, served from the installed packages. */
30
+ export declare const TERMINAL_ASSETS: Record<string, {
31
+ module: string;
32
+ type: string;
33
+ }>;
34
+ export declare function terminalAsset(route: string): string | undefined;
@@ -0,0 +1,211 @@
1
+ import { existsSync } from "node:fs";
2
+ import { chmod, stat } from "node:fs/promises";
3
+ import { createRequire } from "node:module";
4
+ import { homedir } from "node:os";
5
+ import path from "node:path";
6
+ /** Enough scrollback to redraw a screen or two after a reload, not a log. */
7
+ const BACKLOG_CHARS = 256 * 1024;
8
+ const require = createRequire(import.meta.url);
9
+ let loaded;
10
+ /**
11
+ * node-pty, loaded on first use.
12
+ *
13
+ * It is a native module and an optional dependency: a platform it has no
14
+ * prebuilt binary for installs without it, and there the panel says so
15
+ * instead of the whole server failing to start.
16
+ */
17
+ function loadPty() {
18
+ loaded ??= (async () => {
19
+ try {
20
+ const root = ptyRoot();
21
+ await ensureHelperExecutable(root);
22
+ return require(root);
23
+ }
24
+ catch (err) {
25
+ return { error: `The embedded terminal is unavailable here: ${err.message}` };
26
+ }
27
+ })();
28
+ return loaded;
29
+ }
30
+ /**
31
+ * node-pty's Unix helper ships in its prebuilds without the execute bit, and
32
+ * without it every spawn fails with a bare "posix_spawnp failed".
33
+ */
34
+ async function ensureHelperExecutable(root) {
35
+ if (process.platform === "win32")
36
+ return;
37
+ const candidates = [
38
+ path.join(root, "prebuilds", `${process.platform}-${process.arch}`, "spawn-helper"),
39
+ path.join(root, "build", "Release", "spawn-helper"),
40
+ ];
41
+ for (const file of candidates) {
42
+ try {
43
+ const info = await stat(file);
44
+ if ((info.mode & 0o111) === 0)
45
+ await chmod(file, 0o755);
46
+ }
47
+ catch {
48
+ // Not this layout; the other candidate, or a build that is already fine.
49
+ }
50
+ }
51
+ }
52
+ /**
53
+ * Where node-pty is. The desktop app copies it beside app.asar (a native
54
+ * binary cannot load from inside the archive); everywhere else it is an
55
+ * ordinary dependency.
56
+ */
57
+ function ptyRoot() {
58
+ const resources = process.resourcesPath;
59
+ if (resources) {
60
+ const beside = path.join(resources, "node-pty");
61
+ if (existsSync(path.join(beside, "package.json")))
62
+ return beside;
63
+ }
64
+ return path.dirname(require.resolve("node-pty/package.json"));
65
+ }
66
+ /** The person's own shell, as a login shell so PATH is what their terminal has. */
67
+ function shell() {
68
+ if (process.platform === "win32") {
69
+ return { file: "powershell.exe", args: ["-NoLogo"] };
70
+ }
71
+ const file = process.env.SHELL || (process.platform === "darwin" ? "/bin/zsh" : "/bin/bash");
72
+ return { file, args: ["-l"] };
73
+ }
74
+ function clampSize(value, fallback, max) {
75
+ const n = Math.floor(Number(value));
76
+ return Number.isFinite(n) && n > 0 ? Math.min(n, max) : fallback;
77
+ }
78
+ export class TerminalHub {
79
+ terminals = new Map();
80
+ seq = 0;
81
+ /** A project's terminals, oldest first, for a page reattaching to them. */
82
+ list(cwd) {
83
+ return [...this.terminals.values()]
84
+ .filter((term) => term.cwd === cwd)
85
+ .map((term) => ({ id: term.id, name: term.name, exited: term.exited }));
86
+ }
87
+ /** A new shell in `cwd`; `replace` names one it takes the place of. */
88
+ async open(cwd, size, replace) {
89
+ if (replace)
90
+ this.close(replace);
91
+ const pty = await loadPty();
92
+ if ("error" in pty)
93
+ return pty;
94
+ const cols = clampSize(size.cols, 80, 500);
95
+ const rows = clampSize(size.rows, 24, 200);
96
+ const { file, args } = shell();
97
+ let proc;
98
+ try {
99
+ proc = pty.spawn(file, args, {
100
+ name: "xterm-256color",
101
+ cols,
102
+ rows,
103
+ cwd: cwd || homedir(),
104
+ env: { ...process.env, TERM: "xterm-256color", COLORTERM: "truecolor", TERM_PROGRAM: "OHarness" },
105
+ });
106
+ }
107
+ catch (err) {
108
+ return { error: err.message };
109
+ }
110
+ const id = `t${++this.seq}`;
111
+ const name = path.basename(file).replace(/\.exe$/i, "");
112
+ const term = { id, cwd, name, pty: proc, backlog: "", listeners: new Set(), exited: false };
113
+ this.terminals.set(id, term);
114
+ proc.onData((data) => {
115
+ term.backlog = (term.backlog + data).slice(-BACKLOG_CHARS);
116
+ this.emit(term, { type: "data", data });
117
+ });
118
+ proc.onExit(({ exitCode }) => {
119
+ term.exited = true;
120
+ this.emit(term, { type: "exit", code: exitCode });
121
+ });
122
+ return { id, name };
123
+ }
124
+ /** Attach a page: what has been written so far, then everything after. */
125
+ stream(id, res) {
126
+ const term = this.terminals.get(id);
127
+ if (!term)
128
+ return false;
129
+ res.writeHead(200, {
130
+ "content-type": "text/event-stream",
131
+ "cache-control": "no-cache",
132
+ connection: "keep-alive",
133
+ "x-accel-buffering": "no",
134
+ });
135
+ if (term.backlog)
136
+ res.write(`data: ${JSON.stringify({ type: "data", data: term.backlog })}\n\n`);
137
+ if (term.exited)
138
+ res.write(`data: ${JSON.stringify({ type: "exit" })}\n\n`);
139
+ term.listeners.add(res);
140
+ const beat = setInterval(() => res.write(": ping\n\n"), 15_000);
141
+ beat.unref?.();
142
+ res.on("close", () => {
143
+ clearInterval(beat);
144
+ term.listeners.delete(res);
145
+ });
146
+ return true;
147
+ }
148
+ input(id, data) {
149
+ const term = this.terminals.get(id);
150
+ if (!term || term.exited || typeof data !== "string")
151
+ return false;
152
+ term.pty.write(data);
153
+ return true;
154
+ }
155
+ resize(id, cols, rows) {
156
+ const term = this.terminals.get(id);
157
+ if (!term || term.exited)
158
+ return false;
159
+ try {
160
+ term.pty.resize(clampSize(cols, 80, 500), clampSize(rows, 24, 200));
161
+ }
162
+ catch {
163
+ // A resize racing the shell's exit; nothing left to size.
164
+ }
165
+ return true;
166
+ }
167
+ close(id) {
168
+ const term = this.terminals.get(id);
169
+ if (!term)
170
+ return;
171
+ this.terminals.delete(id);
172
+ if (!term.exited) {
173
+ try {
174
+ term.pty.kill();
175
+ }
176
+ catch {
177
+ // Already gone.
178
+ }
179
+ }
180
+ this.emit(term, { type: "closed" });
181
+ for (const res of term.listeners)
182
+ res.end();
183
+ }
184
+ closeAll() {
185
+ for (const id of [...this.terminals.keys()])
186
+ this.close(id);
187
+ }
188
+ emit(term, event) {
189
+ const line = `data: ${JSON.stringify(event)}\n\n`;
190
+ for (const res of term.listeners)
191
+ res.write(line);
192
+ }
193
+ }
194
+ /** The xterm.js files the page loads, served from the installed packages. */
195
+ export const TERMINAL_ASSETS = {
196
+ "/vendor/xterm.js": { module: "@xterm/xterm/lib/xterm.js", type: "text/javascript; charset=utf-8" },
197
+ "/vendor/xterm.css": { module: "@xterm/xterm/css/xterm.css", type: "text/css; charset=utf-8" },
198
+ "/vendor/xterm-fit.js": { module: "@xterm/addon-fit/lib/addon-fit.js", type: "text/javascript; charset=utf-8" },
199
+ };
200
+ export function terminalAsset(route) {
201
+ const asset = TERMINAL_ASSETS[route];
202
+ if (!asset)
203
+ return undefined;
204
+ try {
205
+ return require.resolve(asset.module);
206
+ }
207
+ catch {
208
+ return undefined;
209
+ }
210
+ }
211
+ //# sourceMappingURL=terminal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../src/terminal.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,18 +1,14 @@
1
1
  {
2
2
  "name": "@oharness/server",
3
- "version": "0.7.1",
3
+ "version": "0.9.0",
4
4
  "description": "The browser frontend's server. Deployable on its own, without a terminal attached.",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "author": "Litbox LLC",
8
8
  "homepage": "https://oharness.ai",
9
- "repository": {
10
- "type": "git",
11
- "url": "git+https://github.com/Jet1217/OHarness.git",
12
- "directory": "packages/server"
13
- },
14
9
  "bugs": {
15
- "url": "https://github.com/Jet1217/OHarness/issues"
10
+ "url": "https://oharness.ai/en/contact",
11
+ "email": "support@oharness.ai"
16
12
  },
17
13
  "keywords": [
18
14
  "agent",
@@ -49,6 +45,11 @@
49
45
  "build": "rm -rf dist && tsc -p tsconfig.build.json"
50
46
  },
51
47
  "dependencies": {
52
- "@oharness/engine": "0.7.1"
48
+ "@oharness/engine": "0.9.0",
49
+ "@xterm/addon-fit": "^0.11.0",
50
+ "@xterm/xterm": "^6.0.0"
51
+ },
52
+ "optionalDependencies": {
53
+ "node-pty": "^1.1.0"
53
54
  }
54
55
  }