@kdonev/termscape 0.1.5 → 0.1.7
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 +17 -7
- package/dist/agents/profiles.d.ts +23 -0
- package/dist/agents/profiles.d.ts.map +1 -1
- package/dist/agents/profiles.js +48 -5
- package/dist/agents/profiles.js.map +1 -1
- package/dist/agents/templates.d.ts +18 -0
- package/dist/agents/templates.d.ts.map +1 -1
- package/dist/agents/templates.js +19 -0
- package/dist/agents/templates.js.map +1 -1
- package/dist/agents/visibility.d.ts +22 -0
- package/dist/agents/visibility.d.ts.map +1 -0
- package/dist/agents/visibility.js +20 -0
- package/dist/agents/visibility.js.map +1 -0
- package/dist/agents/wiring.d.ts +1 -1
- package/dist/agents/wiring.d.ts.map +1 -1
- package/dist/agents/wiring.js +12 -3
- package/dist/agents/wiring.js.map +1 -1
- package/dist/cli-args.d.ts +4 -0
- package/dist/cli-args.d.ts.map +1 -1
- package/dist/cli-args.js +2 -0
- package/dist/cli-args.js.map +1 -1
- package/dist/cli.js +63 -23
- package/dist/cli.js.map +1 -1
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/migrations.js +29 -0
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/store.d.ts +8 -0
- package/dist/db/store.d.ts.map +1 -1
- package/dist/db/store.js +25 -4
- package/dist/db/store.js.map +1 -1
- package/dist/hub.d.ts +129 -26
- package/dist/hub.d.ts.map +1 -1
- package/dist/hub.js +331 -51
- package/dist/hub.js.map +1 -1
- package/dist/hub.tgz +0 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +6 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/protocol/domain.d.ts +1 -0
- package/dist/protocol/domain.d.ts.map +1 -1
- package/dist/protocol/domain.js +12 -0
- package/dist/protocol/domain.js.map +1 -1
- package/dist/protocol/mcp-tools.js +1 -1
- package/dist/protocol/mcp-tools.js.map +1 -1
- package/dist/protocol/peer.d.ts +58 -1
- package/dist/protocol/peer.d.ts.map +1 -1
- package/dist/protocol/peer.js +72 -1
- package/dist/protocol/peer.js.map +1 -1
- package/dist/protocol/ws.d.ts +6 -0
- package/dist/protocol/ws.d.ts.map +1 -1
- package/dist/protocol/ws.js +2 -0
- package/dist/protocol/ws.js.map +1 -1
- package/dist/remote/peer-serve.d.ts.map +1 -1
- package/dist/remote/peer-serve.js +16 -3
- package/dist/remote/peer-serve.js.map +1 -1
- package/dist/remote/registry.d.ts +8 -0
- package/dist/remote/registry.d.ts.map +1 -1
- package/dist/remote/registry.js +15 -0
- package/dist/remote/registry.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +13 -2
- package/dist/server.js.map +1 -1
- package/dist/session/manager.d.ts +22 -2
- package/dist/session/manager.d.ts.map +1 -1
- package/dist/session/manager.js +52 -9
- package/dist/session/manager.js.map +1 -1
- package/dist/session/pty.d.ts +30 -1
- package/dist/session/pty.d.ts.map +1 -1
- package/dist/session/pty.js +77 -1
- package/dist/session/pty.js.map +1 -1
- package/dist/window/app-window.d.ts +2 -0
- package/dist/window/app-window.d.ts.map +1 -0
- package/dist/window/app-window.js +137 -0
- package/dist/window/app-window.js.map +1 -0
- package/dist/window/open-window.d.ts +38 -0
- package/dist/window/open-window.d.ts.map +1 -0
- package/dist/window/open-window.js +76 -0
- package/dist/window/open-window.js.map +1 -0
- package/package.json +5 -2
- package/web/assets/index-gfbbNQK4.css +1 -0
- package/web/assets/index-i7fXLKF0.js +111 -0
- package/web/icon.png +0 -0
- package/web/icon.svg +22 -0
- package/web/index.html +4 -2
- package/web/assets/index-Z03Ta4g3.js +0 -111
- package/web/assets/index-u_uCiaPD.css +0 -1
package/dist/session/pty.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pty.js","sourceRoot":"","sources":["../../src/session/pty.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pty.js","sourceRoot":"","sources":["../../src/session/pty.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-window.d.ts","sourceRoot":"","sources":["../../src/window/app-window.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The canvas in a native window: the process open-window.ts starts.
|
|
3
|
+
*
|
|
4
|
+
* Run as `node app-window.js <url>`. It shows the hub's own web UI in the OS
|
|
5
|
+
* webview - WebView2 on Windows, WKWebView on macOS, WebKitGTK on Linux - and
|
|
6
|
+
* exits 0 when the user closes it, which the hub takes as "stop". It exits
|
|
7
|
+
* WINDOW_UNAVAILABLE when there is no webview to show, which the hub takes as
|
|
8
|
+
* "open the browser instead".
|
|
9
|
+
*/
|
|
10
|
+
import { mkdirSync } from 'node:fs';
|
|
11
|
+
import { join } from 'node:path';
|
|
12
|
+
import { openInBrowser } from '../browser.js';
|
|
13
|
+
import { paths } from '../paths.js';
|
|
14
|
+
import { WINDOW_UNAVAILABLE } from './open-window.js';
|
|
15
|
+
const PACKAGE = '@webviewjs/webview';
|
|
16
|
+
/** Say why there is no window, and let the hub open the browser instead. */
|
|
17
|
+
function unavailable(what, err) {
|
|
18
|
+
console.error(`[app] ${what}: ${err instanceof Error ? err.message : err}`);
|
|
19
|
+
if (process.platform === 'linux') {
|
|
20
|
+
console.error(' the window needs WebKitGTK 4.1 and libxdo, e.g.');
|
|
21
|
+
console.error(' sudo apt install libwebkit2gtk-4.1-0 libxdo3');
|
|
22
|
+
}
|
|
23
|
+
return process.exit(WINDOW_UNAVAILABLE);
|
|
24
|
+
}
|
|
25
|
+
async function loadWebview() {
|
|
26
|
+
try {
|
|
27
|
+
// A variable specifier keeps TypeScript from resolving the optional package.
|
|
28
|
+
const mod = (await import(PACKAGE));
|
|
29
|
+
return mod.Application ? mod : mod.default;
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
return unavailable(`cannot load ${PACKAGE}`, err);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Put the canvas's icon on the window, and with it the taskbar.
|
|
37
|
+
*
|
|
38
|
+
* Asked of the hub rather than read off disk: the UI it serves is where the
|
|
39
|
+
* icon lives, and that is a different directory in the repo and in the
|
|
40
|
+
* published package. A window without its icon is still the canvas, so any
|
|
41
|
+
* failure here leaves the default one.
|
|
42
|
+
*/
|
|
43
|
+
async function setIcon(window, origin) {
|
|
44
|
+
try {
|
|
45
|
+
const res = await fetch(new URL('/icon.png', origin));
|
|
46
|
+
if (!res.ok)
|
|
47
|
+
return;
|
|
48
|
+
window.setWindowIcon(new Uint8Array(await res.arrayBuffer()));
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
// No icon is not worth a word.
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async function main() {
|
|
55
|
+
const url = process.argv[2];
|
|
56
|
+
if (!url) {
|
|
57
|
+
console.error('usage: app-window <url>');
|
|
58
|
+
process.exit(2);
|
|
59
|
+
}
|
|
60
|
+
const origin = new URL(url).origin;
|
|
61
|
+
/*
|
|
62
|
+
* A window onto a canvas that no longer exists should not stay open, so
|
|
63
|
+
* this watches the hub that started it. By polling its pid rather than by
|
|
64
|
+
* holding an IPC channel: with one open on Windows, the webview never gets
|
|
65
|
+
* to handle its own close button.
|
|
66
|
+
*/
|
|
67
|
+
const hubPid = process.ppid;
|
|
68
|
+
setInterval(() => {
|
|
69
|
+
try {
|
|
70
|
+
process.kill(hubPid, 0);
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
process.exit(0);
|
|
74
|
+
}
|
|
75
|
+
}, 1000).unref();
|
|
76
|
+
/*
|
|
77
|
+
* WebView2 keeps its profile beside the executable by default, and for a
|
|
78
|
+
* node.exe installed under Program Files that is not writable: creating the
|
|
79
|
+
* webview fails with "Access is denied". The environment variable is
|
|
80
|
+
* WebView2's own override. The library's WebContext `dataDirectory` would be
|
|
81
|
+
* the obvious way to say this, but with it the app never reaches ready.
|
|
82
|
+
*/
|
|
83
|
+
if (process.platform === 'win32' && !process.env.WEBVIEW2_USER_DATA_FOLDER) {
|
|
84
|
+
const dataDirectory = join(paths.home(), 'webview');
|
|
85
|
+
mkdirSync(dataDirectory, { recursive: true });
|
|
86
|
+
process.env.WEBVIEW2_USER_DATA_FOLDER = dataDirectory;
|
|
87
|
+
}
|
|
88
|
+
const { Application } = await loadWebview();
|
|
89
|
+
const app = new Application();
|
|
90
|
+
const close = () => {
|
|
91
|
+
app.exit();
|
|
92
|
+
process.exit(0);
|
|
93
|
+
};
|
|
94
|
+
app.on('window-close-requested', close);
|
|
95
|
+
app.on('application-close-requested', close);
|
|
96
|
+
try {
|
|
97
|
+
const window = app.createBrowserWindow({ title: 'Termscape', width: 1400, height: 900 });
|
|
98
|
+
window.createWebview({
|
|
99
|
+
url,
|
|
100
|
+
enableDevtools: true,
|
|
101
|
+
clipboard: true,
|
|
102
|
+
// Left on, though the canvas does its own zooming. On Windows wry ties
|
|
103
|
+
// WebView2's pinch zoom to this same switch, and with pinch off Chromium
|
|
104
|
+
// never turns a touchpad pinch into the ctrl+wheel stream the canvas
|
|
105
|
+
// zooms on. The page zoom it would otherwise do is not a risk: the
|
|
106
|
+
// canvas preventDefaults every ctrl+wheel it takes, as in a browser tab.
|
|
107
|
+
hotkeysZoom: true,
|
|
108
|
+
// The window shows the canvas and nothing else. Links out of it - the
|
|
109
|
+
// bug report, anything opened with target="_blank" - go to the browser.
|
|
110
|
+
navigationHandler: (target) => {
|
|
111
|
+
let parsed;
|
|
112
|
+
try {
|
|
113
|
+
parsed = new URL(target);
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
if (parsed.origin === origin || parsed.protocol === 'about:')
|
|
119
|
+
return true;
|
|
120
|
+
if (parsed.protocol === 'http:' || parsed.protocol === 'https:')
|
|
121
|
+
openInBrowser(target);
|
|
122
|
+
return false;
|
|
123
|
+
},
|
|
124
|
+
});
|
|
125
|
+
void setIcon(window, origin);
|
|
126
|
+
}
|
|
127
|
+
catch (err) {
|
|
128
|
+
// Nothing has been shown yet, so a tab is still a fair substitute.
|
|
129
|
+
unavailable('cannot open a webview', err);
|
|
130
|
+
}
|
|
131
|
+
await app.whenReady();
|
|
132
|
+
}
|
|
133
|
+
main().catch((err) => {
|
|
134
|
+
console.error('[app]', err);
|
|
135
|
+
process.exit(1);
|
|
136
|
+
});
|
|
137
|
+
//# sourceMappingURL=app-window.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-window.js","sourceRoot":"","sources":["../../src/window/app-window.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exit code the window process uses to say "there is no webview to open",
|
|
3
|
+
* as opposed to a window that opened and then failed. The first is a reason to
|
|
4
|
+
* fall back to the browser; the second is not, because the user already saw
|
|
5
|
+
* one window come and go and a browser tab appearing after it would be a
|
|
6
|
+
* surprise rather than a rescue.
|
|
7
|
+
*/
|
|
8
|
+
export declare const WINDOW_UNAVAILABLE = 3;
|
|
9
|
+
export type WindowOutcome = 'closed' | 'unavailable' | 'crashed';
|
|
10
|
+
/** What a window process's exit means for the hub that started it. */
|
|
11
|
+
export declare function windowOutcome(code: number | null, signal: NodeJS.Signals | null): WindowOutcome;
|
|
12
|
+
export interface WindowHandlers {
|
|
13
|
+
/** The user closed the window. */
|
|
14
|
+
onClosed: () => void;
|
|
15
|
+
/** No native webview could be loaded here; nothing was shown. */
|
|
16
|
+
onUnavailable: () => void;
|
|
17
|
+
/** The window process died some other way. */
|
|
18
|
+
onCrashed: (why: string) => void;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The Node flags the window inherits: whatever loader the hub itself runs
|
|
22
|
+
* under, which is how a .ts window loads under tsx. An inspector flag is left
|
|
23
|
+
* behind, since two processes cannot both take its port.
|
|
24
|
+
*/
|
|
25
|
+
export declare function childExecArgv(execArgv?: readonly string[]): string[];
|
|
26
|
+
/**
|
|
27
|
+
* Open the canvas in a native window of its own.
|
|
28
|
+
*
|
|
29
|
+
* The window is a separate Node process running app-window.js, not a webview
|
|
30
|
+
* inside the hub. A native crash in the webview then costs a window rather than
|
|
31
|
+
* every agent on the canvas, macOS gets a process whose main thread belongs to
|
|
32
|
+
* its UI, and a hub that never opens a window never loads the native module.
|
|
33
|
+
*
|
|
34
|
+
* The child is not detached, and watches this process's pid so that it closes
|
|
35
|
+
* when the hub goes away.
|
|
36
|
+
*/
|
|
37
|
+
export declare function openAppWindow(url: string, handlers: WindowHandlers, script?: string): void;
|
|
38
|
+
//# sourceMappingURL=open-window.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open-window.d.ts","sourceRoot":"","sources":["../../src/window/open-window.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,CAAC;AAEjE,sEAAsE;AACtE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,aAAa,CAI/F;AAED,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,iEAAiE;IACjE,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,8CAA8C;IAC9C,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAcD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,GAAE,SAAS,MAAM,EAAqB,GAAG,MAAM,EAAE,CAEtF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,cAAc,EACxB,MAAM,GAAE,MAAuB,GAC9B,IAAI,CA0BN"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import { fileURLToPath } from 'node:url';
|
|
3
|
+
/**
|
|
4
|
+
* Exit code the window process uses to say "there is no webview to open",
|
|
5
|
+
* as opposed to a window that opened and then failed. The first is a reason to
|
|
6
|
+
* fall back to the browser; the second is not, because the user already saw
|
|
7
|
+
* one window come and go and a browser tab appearing after it would be a
|
|
8
|
+
* surprise rather than a rescue.
|
|
9
|
+
*/
|
|
10
|
+
export const WINDOW_UNAVAILABLE = 3;
|
|
11
|
+
/** What a window process's exit means for the hub that started it. */
|
|
12
|
+
export function windowOutcome(code, signal) {
|
|
13
|
+
if (signal === null && code === 0)
|
|
14
|
+
return 'closed';
|
|
15
|
+
if (signal === null && code === WINDOW_UNAVAILABLE)
|
|
16
|
+
return 'unavailable';
|
|
17
|
+
return 'crashed';
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The window's entry point, beside this module.
|
|
21
|
+
*
|
|
22
|
+
* Built, that is dist/window/app-window.js. Under `npm run dev` this module is
|
|
23
|
+
* src/window/open-window.ts run through tsx, and there is no .js beside it -
|
|
24
|
+
* so the extension is taken from this file rather than assumed.
|
|
25
|
+
*/
|
|
26
|
+
function windowScript() {
|
|
27
|
+
const ext = import.meta.url.endsWith('.ts') ? '.ts' : '.js';
|
|
28
|
+
return fileURLToPath(new URL(`./app-window${ext}`, import.meta.url));
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The Node flags the window inherits: whatever loader the hub itself runs
|
|
32
|
+
* under, which is how a .ts window loads under tsx. An inspector flag is left
|
|
33
|
+
* behind, since two processes cannot both take its port.
|
|
34
|
+
*/
|
|
35
|
+
export function childExecArgv(execArgv = process.execArgv) {
|
|
36
|
+
return execArgv.filter((arg) => !/^--inspect(-brk|-wait)?(=|$)/.test(arg));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Open the canvas in a native window of its own.
|
|
40
|
+
*
|
|
41
|
+
* The window is a separate Node process running app-window.js, not a webview
|
|
42
|
+
* inside the hub. A native crash in the webview then costs a window rather than
|
|
43
|
+
* every agent on the canvas, macOS gets a process whose main thread belongs to
|
|
44
|
+
* its UI, and a hub that never opens a window never loads the native module.
|
|
45
|
+
*
|
|
46
|
+
* The child is not detached, and watches this process's pid so that it closes
|
|
47
|
+
* when the hub goes away.
|
|
48
|
+
*/
|
|
49
|
+
export function openAppWindow(url, handlers, script = windowScript()) {
|
|
50
|
+
let settled = false;
|
|
51
|
+
const settle = (fn) => {
|
|
52
|
+
if (settled)
|
|
53
|
+
return;
|
|
54
|
+
settled = true;
|
|
55
|
+
fn();
|
|
56
|
+
};
|
|
57
|
+
const child = spawn(process.execPath, [...childExecArgv(), script, url], {
|
|
58
|
+
stdio: ['ignore', 'inherit', 'inherit'],
|
|
59
|
+
});
|
|
60
|
+
// Spawning node itself failing is as good as having no webview: the browser
|
|
61
|
+
// can still show the canvas.
|
|
62
|
+
child.on('error', () => settle(handlers.onUnavailable));
|
|
63
|
+
child.on('exit', (code, signal) => {
|
|
64
|
+
settle(() => {
|
|
65
|
+
switch (windowOutcome(code, signal)) {
|
|
66
|
+
case 'closed':
|
|
67
|
+
return handlers.onClosed();
|
|
68
|
+
case 'unavailable':
|
|
69
|
+
return handlers.onUnavailable();
|
|
70
|
+
case 'crashed':
|
|
71
|
+
return handlers.onCrashed(signal ?? `exit code ${code}`);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=open-window.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open-window.js","sourceRoot":"","sources":["../../src/window/open-window.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAIpC,sEAAsE;AACtE,MAAM,UAAU,aAAa,CAAC,IAAmB,EAAE,MAA6B;IAC9E,IAAI,MAAM,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACnD,IAAI,MAAM,KAAK,IAAI,IAAI,IAAI,KAAK,kBAAkB;QAAE,OAAO,aAAa,CAAC;IACzE,OAAO,SAAS,CAAC;AACnB,CAAC;AAWD;;;;;;GAMG;AACH,SAAS,YAAY;IACnB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5D,OAAO,aAAa,CAAC,IAAI,GAAG,CAAC,eAAe,GAAG,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACvE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,WAA8B,OAAO,CAAC,QAAQ;IAC1E,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,8BAA8B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAC3B,GAAW,EACX,QAAwB,EACxB,SAAiB,YAAY,EAAE;IAE/B,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,MAAM,GAAG,CAAC,EAAc,EAAQ,EAAE;QACtC,IAAI,OAAO;YAAE,OAAO;QACpB,OAAO,GAAG,IAAI,CAAC;QACf,EAAE,EAAE,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,aAAa,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;QACvE,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;KACxC,CAAC,CAAC;IACH,4EAA4E;IAC5E,6BAA6B;IAC7B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IACxD,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QAChC,MAAM,CAAC,GAAG,EAAE;YACV,QAAQ,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;gBACpC,KAAK,QAAQ;oBACX,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAC7B,KAAK,aAAa;oBAChB,OAAO,QAAQ,CAAC,aAAa,EAAE,CAAC;gBAClC,KAAK,SAAS;oBACZ,OAAO,QAAQ,CAAC,SAAS,CAAC,MAAM,IAAI,aAAa,IAAI,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kdonev/termscape",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"description": "Run a crew of AI coding agents on one infinite canvas, and let them talk to each other.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "kdonev",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"termscape": "./dist/cli.js"
|
|
29
29
|
},
|
|
30
30
|
"engines": {
|
|
31
|
-
"node": ">=
|
|
31
|
+
"node": ">=24"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@fastify/static": "^10.1.3",
|
|
@@ -43,6 +43,9 @@
|
|
|
43
43
|
"ssh2": "^1.16.0",
|
|
44
44
|
"zod": "^4.5.4"
|
|
45
45
|
},
|
|
46
|
+
"optionalDependencies": {
|
|
47
|
+
"@webviewjs/webview": "0.4.5"
|
|
48
|
+
},
|
|
46
49
|
"scripts": {
|
|
47
50
|
"start": "node dist/cli.js"
|
|
48
51
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}:root{--bg:#0a0c10;--grid:#151a23;--panel:#12161e;--panel-2:#171c26;--border:#262d3b;--text:#d5dae2;--muted:#7c8596;--accent:#7c9cf5;--danger:#e06c75;--ok:#88c07a;--warn:#d8b271;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:13px/1.45 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}.app{flex-direction:column;height:100%;display:flex}.toolbar{background:var(--panel);border-bottom:1px solid var(--border);z-index:20;flex:none;align-items:center;gap:10px;padding:8px 12px;display:flex;position:relative}.brand{letter-spacing:.2px;align-items:baseline;gap:8px;font-weight:650;display:flex}.conn{font-size:11px;font-weight:400}.conn.on{color:var(--muted)}.conn.off{color:var(--warn)}.group{align-items:center;gap:6px;display:flex}.spacer{flex:1}.input{background:var(--panel-2);border:1px solid var(--border);color:var(--text);font:inherit;border-radius:6px;min-width:120px;padding:5px 8px}.input.wide{min-width:260px}.input:focus{border-color:var(--accent);outline:none}.btn{background:var(--panel-2);border:1px solid var(--border);color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;border-radius:6px;padding:5px 9px}a.btn{text-decoration:none;display:inline-block}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:#1e2a45;border-color:#33406a}.btn.danger:hover{border-color:var(--danger);color:var(--danger)}.btn.wide{min-width:56px}.btn.on{border-color:var(--accent);color:var(--accent);background:#1e2a45}.canvas{cursor:default;background-color:var(--bg);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);touch-action:none;background-size:40px 40px;flex:1;position:relative;overflow:hidden}.canvas.panning{cursor:grabbing}.world{transform-origin:0 0;position:absolute;inset:0}.world.interacting{will-change:transform}.edges{pointer-events:none;position:absolute;overflow:visible}.ws-group{background:color-mix(in srgb, currentColor 6%, transparent);pointer-events:none;border:2px dashed;border-radius:14px;position:absolute;top:0;left:0}.ws-label{white-space:nowrap;pointer-events:auto;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;align-items:baseline;gap:8px;font-size:12px;font-weight:600;display:flex;position:absolute;top:-22px;left:12px}.ws-label.dragging{cursor:grabbing}.ws-path{color:var(--muted);font-size:11px;font-weight:400}.window{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;display:flex;position:absolute;top:0;left:0;overflow:hidden;box-shadow:0 8px 28px #00000073}.window.selected{box-shadow:0 0 0 1px var(--accent), 0 12px 36px #0000008c}.window.stopped{opacity:.82}.window-bar{background:var(--panel-2);border-bottom:1px solid var(--border);cursor:grab;-webkit-user-select:none;user-select:none;flex:none;align-items:center;gap:8px;padding:6px 8px;display:flex}.window-bar:active{cursor:grabbing}.window-bar .dot{border-radius:50%;flex:none;width:8px;height:8px}.window-bar .addr{font-size:12px;font-weight:600}.window-bar .meta{color:var(--muted);font-size:11px}.window-bar .btn{padding:2px 7px;font-size:11px}.window-body{background:#0e1117;flex:1;min-height:0;position:relative}.share-app{flex-direction:column;height:100%;display:flex}.share-header{background:var(--panel);border-bottom:1px solid var(--border);flex:none;align-items:center;gap:8px;padding:8px 12px;display:flex}.share-header .dot{border-radius:50%;flex:none;width:8px;height:8px}.share-header .addr{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.share-header .meta{color:var(--muted);flex:none;font-size:12px}.share-body{background:#0e1117;flex:1;min-height:0;position:relative}.share-stage{transform-origin:0 0;position:absolute;top:0;left:0}.share-stage .term-host{inset:0}.share-message{color:var(--muted);text-align:center;flex:1;justify-content:center;align-items:center;padding:16px;display:flex}.term-host{position:absolute;inset:4px 6px;overflow:hidden}.term-scale{transform-origin:0 0;position:absolute;top:0;left:0}.term-scale .xterm{width:100%;height:100%}.term-scale .xterm-viewport{scrollbar-width:none}.term-scale .xterm-viewport::-webkit-scrollbar{width:0;height:0;display:none}.resize-handle{cursor:nwse-resize;background:linear-gradient(135deg, transparent 50%, var(--border) 50%);width:16px;height:16px;position:absolute;bottom:0;right:0}.note{color:#2b2b2b;border-radius:6px;flex-direction:column;display:flex;position:absolute;top:0;left:0;box-shadow:0 8px 24px #00000080}.note.selected{box-shadow:0 0 0 2px var(--accent), 0 10px 30px #0000008c}.note[data-color=yellow]{background:#f5e08c}.note[data-color=pink]{background:#f3b6c8}.note[data-color=green]{background:#b9e0a5}.note[data-color=blue]{background:#a9d3ec}.note-bar{cursor:grab;-webkit-user-select:none;user-select:none;flex:none;align-items:center;gap:6px;padding:4px 6px;display:flex}.note-bar:active{cursor:grabbing}.note-bar .btn{color:#2b2b2b;background:0 0;border:none;padding:0 4px;font-size:14px;line-height:1}.note-bar .btn:hover:not(:disabled){color:#b3261e}.note-swatches{gap:4px;display:flex}.note-swatch{cursor:pointer;border:1px solid #00000059;border-radius:50%;width:14px;height:14px;padding:0}.note-swatch[data-color=yellow]{background:#f5e08c}.note-swatch[data-color=pink]{background:#f3b6c8}.note-swatch[data-color=green]{background:#b9e0a5}.note-swatch[data-color=blue]{background:#a9d3ec}.note-swatch.active{border-color:#2b2b2b}.note-text{resize:none;color:#2b2b2b;min-height:0;font:inherit;background:0 0;border:none;outline:none;flex:1;padding:0 8px 8px}.msg-log{background:var(--panel);border:1px solid var(--border);border-radius:10px;width:420px;max-height:60vh;padding:8px;position:absolute;top:100%;right:12px;overflow-y:auto;box-shadow:0 12px 32px #00000080}.msg-empty{color:var(--muted);text-align:center;padding:10px}.msg{border-left:2px solid var(--ok);background:var(--panel-2);border-radius:7px;margin-bottom:6px;padding:7px 9px}.msg.failed{border-left-color:var(--danger)}.msg-head{align-items:baseline;gap:6px;font-size:11px;display:flex}.msg-head .from,.msg-head .to{font-weight:600}.msg-head .arrow,.msg-head .when{color:var(--muted)}.msg-head .when{margin-left:auto}.msg-body{white-space:pre-wrap;word-break:break-word;max-height:90px;margin-top:4px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;overflow:hidden}.msg-error{color:var(--danger);margin-top:4px;font-size:11px}.empty-state{text-align:center;max-width:460px;color:var(--muted);pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.empty-state h1{color:var(--text);margin:0 0 8px;font-size:20px}.empty-state p{margin:0 0 10px}.empty-state .hint{opacity:.7;font-size:11px}.empty-state .btn{pointer-events:auto}.errors{z-index:30;flex-direction:column;gap:6px;max-width:460px;display:flex;position:absolute;bottom:14px;left:14px}.error{border:1px solid var(--danger);color:#f0b6bb;background:#2a1a1e;border-radius:7px;align-items:flex-start;gap:8px;padding:7px 10px;font-size:12px;display:flex}.error-body{word-break:break-word;flex:1;min-width:0}.error-close{color:inherit;opacity:.7;font:inherit;cursor:pointer;background:0 0;border:0;flex:none;padding:0 2px;line-height:1}.error-close:hover{opacity:1}.panel{background:var(--panel);border-left:1px solid var(--border);z-index:40;flex-direction:column;width:420px;max-width:92vw;transition:transform .18s;display:flex;position:absolute;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-18px 0 40px #00000073}.panel.open{transform:translate(0)}.panel[aria-hidden=true]{visibility:hidden}.panel.open[aria-hidden=false]{visibility:visible}.panel-head{border-bottom:1px solid var(--border);flex:none;align-items:center;gap:8px;padding:9px 12px;display:flex}.panel-title{font-weight:650}.panel-body{flex:1;padding:8px;overflow-y:auto}.node{border-radius:6px;align-items:center;gap:7px;min-width:0;padding:5px 7px;display:flex}.node .dot{border-radius:50%;flex:none;width:8px;height:8px}.node-label{white-space:nowrap;text-overflow:ellipsis;flex:0 auto;font-weight:600;overflow:hidden}.node-sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;min-width:0;font-size:11px;overflow:hidden}.node.machine,.node.root{background:var(--panel-2);margin-top:6px}.node.template:hover{background:var(--panel-2)}.node.template .node-label{font-weight:500}.node.session{cursor:pointer}.node.session:hover{background:var(--panel-2)}.node.session.on{box-shadow:inset 0 0 0 1px var(--accent);background:#1b2540}.node .btn{padding:2px 7px;font-size:11px}.node-children{border-left:1px solid var(--border);margin-left:11px;padding-left:9px}.node-empty{color:var(--muted);padding:4px 8px;font-size:11px}.node-error{color:var(--danger);word-break:break-word;padding:2px 8px 4px 26px;font-size:11px}.node-log{color:var(--muted);word-break:break-word;padding:2px 8px 4px 26px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10.5px;line-height:1.35}.twisty{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;flex:none;width:14px;padding:0}.twisty:hover{color:var(--text)}.add-machine{margin:10px 0 0 7px}.dialog-tabs{border-bottom:1px solid var(--border);align-items:center;gap:4px;padding:0 16px;display:flex}.dialog-tabs .tab{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;flex:1;padding:5px 8px;font-size:11px}.dialog-tabs .tab:hover{color:var(--text)}.dialog-tabs .tab.on{color:var(--text);background:var(--panel-2);border-color:var(--border)}.join-url{background:var(--panel-2);border:1px solid var(--border);border-radius:7px;align-items:center;gap:6px;padding:7px 8px;display:flex}.join-url code{white-space:nowrap;min-width:0;color:var(--accent);flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;overflow-x:auto}.dialog{color:var(--text);font:inherit;background:0 0;border:0;width:100%;max-width:min(560px,94vw);max-height:88vh;padding:0}.dialog::backdrop{-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);background:#05070b9e}.dialog-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;flex-direction:column;max-height:88vh;display:flex;overflow:hidden;box-shadow:0 24px 60px #0000008c}.dialog-head{border-bottom:1px solid var(--border);flex:none;align-items:center;gap:8px;padding:12px 12px 12px 16px;display:flex}.dialog-title{margin:0;font-size:14px;font-weight:650}.dialog-body{flex-direction:column;gap:14px;padding:16px;display:flex;overflow-y:auto}.dialog-field{flex-direction:column;gap:5px;min-width:0;display:flex}.dialog-label{color:var(--muted);font-size:11px}.dialog-field .input{width:100%;min-width:0}.dialog-field .input.tiny{max-width:72px}.dialog-hint{color:var(--muted);font-size:11px;line-height:1.45}.dialog-field .input:disabled{opacity:.5}.dialog-row{align-items:flex-start;gap:10px;display:flex}.dialog-row .dialog-field{flex:1}.dialog-row .dialog-field:last-child{flex:none}.dialog-note{color:var(--muted);margin:0;font-size:11.5px;line-height:1.5}.dialog-note code{color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.dialog-error{border:1px solid var(--danger);color:var(--danger);background:#e06c7517;border-radius:7px;margin:0;padding:8px 10px;font-size:11.5px;line-height:1.45}.dialog-actions{justify-content:flex-end;gap:8px;padding-top:2px;display:flex}.btn.danger-solid{border-color:var(--danger);color:var(--danger);background:#e06c7524}.btn.danger-solid:hover:not(:disabled){background:#e06c7538}.node-agents{flex-wrap:wrap;gap:4px;padding:2px 8px 6px 26px;display:flex}.agent-chip{border:1px solid var(--border);background:var(--panel-2);color:var(--text);white-space:nowrap;border-radius:10px;align-items:baseline;gap:4px;padding:1px 6px;font-size:10.5px;display:inline-flex}.agent-chip em{color:var(--muted);font-size:10px;font-style:normal}.agent-chip.off{color:var(--muted);opacity:.65;text-decoration:line-through}.agent-chip.unknown{color:var(--muted);opacity:.65}.model-list{background:var(--panel-2);border:1px solid var(--border);border-radius:7px;flex-wrap:wrap;gap:4px;max-height:132px;padding:7px 8px;display:flex;overflow-y:auto}.model-list code{color:var(--accent);white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10.5px}.link{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.node-tag{border:1px solid var(--border);color:var(--muted);white-space:nowrap;border-radius:9px;flex:none;padding:0 5px;font-size:10px}.dialog-field textarea.input{font:inherit;resize:vertical;min-height:56px}
|