@lemoncat7/dsh-ssh 0.1.0-alpha.15 → 1.0.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.
- package/README.md +17 -0
- package/lib/activity-events.d.ts +26 -0
- package/lib/activity-events.d.ts.map +1 -0
- package/lib/activity-events.js +81 -0
- package/lib/activity-events.js.map +1 -0
- package/lib/api.d.ts +2 -0
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js +105 -4
- package/lib/api.js.map +1 -1
- package/lib/client-api.d.ts +38 -1
- package/lib/client-api.d.ts.map +1 -1
- package/lib/client-api.js +18 -2
- package/lib/client-api.js.map +1 -1
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +351 -70
- package/lib/client.js.map +3 -3
- package/lib/connector.d.ts +1 -0
- package/lib/connector.d.ts.map +1 -1
- package/lib/connector.js +21 -8
- package/lib/connector.js.map +1 -1
- package/lib/credentials.d.ts +14 -0
- package/lib/credentials.d.ts.map +1 -1
- package/lib/credentials.js +48 -32
- package/lib/credentials.js.map +1 -1
- package/lib/domain.d.ts +23 -1
- package/lib/domain.d.ts.map +1 -1
- package/lib/domain.js +15 -1
- package/lib/domain.js.map +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +7 -4
- package/lib/index.js.map +1 -1
- package/lib/store.d.ts +3 -1
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +11 -3
- package/lib/store.js.map +1 -1
- package/lib/terminal-io.d.ts +38 -0
- package/lib/terminal-io.d.ts.map +1 -0
- package/lib/terminal-io.js +83 -0
- package/lib/terminal-io.js.map +1 -0
- package/lib/terminal-stream.d.ts +9 -0
- package/lib/terminal-stream.d.ts.map +1 -0
- package/lib/terminal-stream.js +50 -0
- package/lib/terminal-stream.js.map +1 -0
- package/lib/terminal-transport.d.ts +29 -0
- package/lib/terminal-transport.d.ts.map +1 -0
- package/lib/terminal-transport.js +147 -0
- package/lib/terminal-transport.js.map +1 -0
- package/lib/terminal.d.ts +20 -4
- package/lib/terminal.d.ts.map +1 -1
- package/lib/terminal.js +45 -17
- package/lib/terminal.js.map +1 -1
- package/lib/tools.d.ts +1 -1
- package/lib/tools.d.ts.map +1 -1
- package/lib/tools.js +60 -11
- package/lib/tools.js.map +1 -1
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
面向 DeepSeek Harness 的 SSH 会话管理插件。它把连接管理、浏览器终端、代理、端口转发和 AI 会话授权放在同一个 DSH 工作区里。
|
|
4
4
|
|
|
5
|
+
## 安装
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
dsh plugin --profile web add @lemoncat7/dsh-ssh@latest
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
安装或升级后重启对应的 DSH Profile。桌面端与 Docker 部署使用相同的插件包。
|
|
12
|
+
|
|
5
13
|
## 能力
|
|
6
14
|
|
|
7
15
|
- SSH 密码、私钥和 SSH Agent 认证
|
|
@@ -9,9 +17,11 @@
|
|
|
9
17
|
- 本地转发(`-L`)、远程转发(`-R`)和动态 SOCKS5 转发(`-D`)
|
|
10
18
|
- 浏览器交互终端,支持输入、增量输出、窗口尺寸同步和主动断开
|
|
11
19
|
- 当前会话右侧栏支持多个 AI 终端切换与键盘输入
|
|
20
|
+
- AI 调用 `ssh_terminal_open` 创建终端时,当前会话会自动展开 SSH 右栏并切换到新终端
|
|
12
21
|
- SFTP 文件浏览、文本/图片/PDF 预览和流式下载
|
|
13
22
|
- 有序多主机跳板链,兼容已有单跳板配置
|
|
14
23
|
- 独立密钥库集中保存常用用户名、密码和私钥,SSH 连接仅保存引用
|
|
24
|
+
- 独立代理库集中保存 HTTP CONNECT 与 SOCKS5 代理,多台主机可复用同一连接路径
|
|
15
25
|
- 按 DSH 会话注入连接;未注入的主机对 AI 完全不可见
|
|
16
26
|
- AI 可执行一次性命令,或打开、读取、操作和关闭独立的交互终端
|
|
17
27
|
- 左侧远端区域提供右侧栏开关;目录页使用真实 SFTP 浏览远端文件,终端页使用单一终端画面观察并操作 AI 终端
|
|
@@ -63,6 +73,8 @@ SSH 插件不会向聊天标题栏添加按钮。右侧栏统一从左侧「远
|
|
|
63
73
|
|
|
64
74
|
密钥库条目使用独立的 `dsh-ssh-vault/<credential-id>` Grant Record。SSH Profile 只保存 `credentialId`,不会复制或读回密钥库中的明文。仍被连接引用的密钥库条目不能删除。
|
|
65
75
|
|
|
76
|
+
代理库条目保存在状态文件中,代理密码使用独立的 `dsh-ssh-proxy/<proxy-id>` Grant Record。SSH Profile 选择常用代理后只保存 `proxyId`;仍被主机引用的代理不能删除。原有内联 HTTP/SOCKS5 配置继续兼容。
|
|
77
|
+
|
|
66
78
|
管理 API 和 Web UI只返回是否配置以及字段名,不返回任何凭据值。默认拒绝非回环地址的端口监听;若确实需要监听 `0.0.0.0`,必须在「远端 → 设置」中显式开启。
|
|
67
79
|
|
|
68
80
|
首次连接会拒绝未知主机密钥并展示 SHA-256 指纹。用户确认后才把指纹写入 Profile,后续连接严格比对。
|
|
@@ -101,5 +113,10 @@ npm pack --pack-destination dist
|
|
|
101
113
|
|
|
102
114
|
- 浏览器终端由插件的同源管理 API 持有,页面关闭或空闲超时后清理。
|
|
103
115
|
- AI 终端由插件按 `sessionId` 分区持有。Web Profile 的官方 Terminal 服务位于每个 Agent Preset 的私有 Realm,主机插件不能跨 Realm 注册 Backend,因此插件使用相同的 owner-scoped 规则实现 SSH 终端隔离,并在插件卸载或进程退出时统一清理。
|
|
116
|
+
- 浏览器终端与右侧「SSH 活动」共用独立终端传输层。输出优先使用支持断线续传的 SSE 长连接实时推送,只有浏览器或反向代理不支持流式响应时才退回 cursor 增量轮询。
|
|
117
|
+
- 键盘输入按序号并发发送,由服务端按序写入 TTY;临时网络失败会使用同一序号重试,既减少 HTTP 往返造成的排队延迟,也避免并发输入乱序。
|
|
118
|
+
- AI 终端创建事件通过按会话隔离的 SSE 事件流通知 Web 客户端。首次订阅不重放旧终端,断线重连会按事件游标补发遗漏事件。
|
|
104
119
|
|
|
105
120
|
这种边界避免浏览器用户和模型同时争用同一个 TTY,也遵守 DSH 不允许跨 Agent 共享终端的所有权规则。
|
|
121
|
+
|
|
122
|
+
会话授权模式会直接约束模型可见工具:选择「仅命令」时隐藏交互终端工具;选择「终端控制」时隐藏 `ssh_exec`,远端命令必须经 `ssh_terminal_open` / `ssh_terminal_send` 执行,因此输入和输出会显示在右侧 SSH 活动中。执行层会再次校验权限,不能通过直接调用绕过。
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
|
+
export interface TerminalOpenedEvent {
|
|
3
|
+
type: 'terminal-opened';
|
|
4
|
+
sessionId: string;
|
|
5
|
+
terminalId: string;
|
|
6
|
+
profileId: string;
|
|
7
|
+
createdAt: number;
|
|
8
|
+
}
|
|
9
|
+
export interface ActivityEventEnvelope {
|
|
10
|
+
id: number;
|
|
11
|
+
event: TerminalOpenedEvent;
|
|
12
|
+
}
|
|
13
|
+
type ActivityEventListener = (event: ActivityEventEnvelope) => void;
|
|
14
|
+
/** Owner-scoped event fan-out used only for immediate Web UI feedback. */
|
|
15
|
+
export declare class ActivityEventBus {
|
|
16
|
+
private sequence;
|
|
17
|
+
private readonly history;
|
|
18
|
+
private readonly listeners;
|
|
19
|
+
currentId(): number;
|
|
20
|
+
publish(event: TerminalOpenedEvent): ActivityEventEnvelope;
|
|
21
|
+
subscribe(sessionId: string, afterId: number, listener: ActivityEventListener): () => void;
|
|
22
|
+
}
|
|
23
|
+
/** New subscribers start at "now"; EventSource reconnects replay missed events by Last-Event-ID. */
|
|
24
|
+
export declare function streamActivityEvents(req: IncomingMessage, res: ServerResponse, sessionId: string, events: ActivityEventBus): Promise<void>;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=activity-events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-events.d.ts","sourceRoot":"","sources":["../src/activity-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAIhE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,iBAAiB,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,mBAAmB,CAAA;CAC3B;AAED,KAAK,qBAAqB,GAAG,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAA;AAEnE,0EAA0E;AAC1E,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAI;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgD;IAE1E,SAAS,IAAI,MAAM;IAEnB,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,qBAAqB;IAU1D,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,qBAAqB,GAAG,MAAM,IAAI;CAY3F;AAED,oGAAoG;AACpG,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,IAAI,CAAC,CAmCf"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
const MAX_EVENT_HISTORY = 256;
|
|
2
|
+
/** Owner-scoped event fan-out used only for immediate Web UI feedback. */
|
|
3
|
+
export class ActivityEventBus {
|
|
4
|
+
sequence = 0;
|
|
5
|
+
history = [];
|
|
6
|
+
listeners = new Map();
|
|
7
|
+
currentId() { return this.sequence; }
|
|
8
|
+
publish(event) {
|
|
9
|
+
const envelope = { id: ++this.sequence, event };
|
|
10
|
+
this.history.push(envelope);
|
|
11
|
+
if (this.history.length > MAX_EVENT_HISTORY)
|
|
12
|
+
this.history.splice(0, this.history.length - MAX_EVENT_HISTORY);
|
|
13
|
+
for (const listener of this.listeners.get(event.sessionId) ?? []) {
|
|
14
|
+
try {
|
|
15
|
+
listener(envelope);
|
|
16
|
+
}
|
|
17
|
+
catch { /* A UI listener must never break terminal creation. */ }
|
|
18
|
+
}
|
|
19
|
+
return envelope;
|
|
20
|
+
}
|
|
21
|
+
subscribe(sessionId, afterId, listener) {
|
|
22
|
+
for (const envelope of this.history) {
|
|
23
|
+
if (envelope.id > afterId && envelope.event.sessionId === sessionId)
|
|
24
|
+
listener(envelope);
|
|
25
|
+
}
|
|
26
|
+
const owned = this.listeners.get(sessionId) ?? new Set();
|
|
27
|
+
owned.add(listener);
|
|
28
|
+
this.listeners.set(sessionId, owned);
|
|
29
|
+
return () => {
|
|
30
|
+
owned.delete(listener);
|
|
31
|
+
if (owned.size === 0)
|
|
32
|
+
this.listeners.delete(sessionId);
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/** New subscribers start at "now"; EventSource reconnects replay missed events by Last-Event-ID. */
|
|
37
|
+
export function streamActivityEvents(req, res, sessionId, events) {
|
|
38
|
+
const header = Array.isArray(req.headers['last-event-id']) ? req.headers['last-event-id'][0] : req.headers['last-event-id'];
|
|
39
|
+
const afterId = header === undefined ? events.currentId() : parseEventId(header);
|
|
40
|
+
res.statusCode = 200;
|
|
41
|
+
res.setHeader('Cache-Control', 'no-cache, no-store, no-transform');
|
|
42
|
+
res.setHeader('Content-Type', 'text/event-stream; charset=utf-8');
|
|
43
|
+
res.setHeader('Connection', 'keep-alive');
|
|
44
|
+
res.setHeader('X-Accel-Buffering', 'no');
|
|
45
|
+
res.setHeader('X-Content-Type-Options', 'nosniff');
|
|
46
|
+
res.flushHeaders();
|
|
47
|
+
return new Promise(resolve => {
|
|
48
|
+
let finished = false;
|
|
49
|
+
let heartbeat;
|
|
50
|
+
let unsubscribe = () => { };
|
|
51
|
+
const cleanup = () => {
|
|
52
|
+
if (finished)
|
|
53
|
+
return;
|
|
54
|
+
finished = true;
|
|
55
|
+
if (heartbeat !== undefined)
|
|
56
|
+
clearInterval(heartbeat);
|
|
57
|
+
unsubscribe();
|
|
58
|
+
resolve();
|
|
59
|
+
};
|
|
60
|
+
const send = (envelope) => {
|
|
61
|
+
if (finished || res.destroyed || res.writableEnded)
|
|
62
|
+
return cleanup();
|
|
63
|
+
res.write(`id: ${envelope.id}\nevent: ${envelope.event.type}\ndata: ${JSON.stringify(envelope.event)}\n\n`);
|
|
64
|
+
};
|
|
65
|
+
res.once('close', cleanup);
|
|
66
|
+
res.once('finish', cleanup);
|
|
67
|
+
unsubscribe = events.subscribe(sessionId, afterId, send);
|
|
68
|
+
res.write(`id: ${events.currentId()}\nevent: ready\ndata: {}\n\n`);
|
|
69
|
+
heartbeat = setInterval(() => {
|
|
70
|
+
if (!finished && !res.destroyed && !res.writableEnded)
|
|
71
|
+
res.write(': keepalive\n\n');
|
|
72
|
+
}, 15_000);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
function parseEventId(value) {
|
|
76
|
+
const id = Number(value);
|
|
77
|
+
if (!Number.isSafeInteger(id) || id < 0)
|
|
78
|
+
throw Object.assign(new Error('activity event cursor is invalid'), { status: 400 });
|
|
79
|
+
return id;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=activity-events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-events.js","sourceRoot":"","sources":["../src/activity-events.ts"],"names":[],"mappings":"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"}
|
package/lib/api.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { SshCredentialVault } from './credentials.js';
|
|
|
4
4
|
import { ForwardManager } from './forwards.js';
|
|
5
5
|
import { SshStore } from './store.js';
|
|
6
6
|
import { AiTerminalManager, BrowserTerminalManager } from './terminal.js';
|
|
7
|
+
import { ActivityEventBus } from './activity-events.js';
|
|
7
8
|
export interface WebServerLike {
|
|
8
9
|
register(route: {
|
|
9
10
|
kind: 'prefix';
|
|
@@ -18,6 +19,7 @@ export interface SshApiRuntime {
|
|
|
18
19
|
forwards: ForwardManager;
|
|
19
20
|
terminals: BrowserTerminalManager;
|
|
20
21
|
aiTerminals: AiTerminalManager;
|
|
22
|
+
activityEvents: ActivityEventBus;
|
|
21
23
|
}
|
|
22
24
|
export declare function registerSshApi(webServer: WebServerLike, prefix: string, runtime: SshApiRuntime): () => void;
|
|
23
25
|
//# sourceMappingURL=api.d.ts.map
|
package/lib/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEhE,OAAO,EAAwB,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAKrD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEhE,OAAO,EAAwB,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAKrD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAGzE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,sBAAsB,CAAA;AAK7E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE;QACd,IAAI,EAAE,QAAQ,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;KACzE,GAAG,MAAM,IAAI,CAAA;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,QAAQ,CAAA;IACf,WAAW,EAAE,kBAAkB,CAAA;IAC/B,SAAS,EAAE,YAAY,CAAA;IACvB,QAAQ,EAAE,cAAc,CAAA;IACxB,SAAS,EAAE,sBAAsB,CAAA;IACjC,WAAW,EAAE,iBAAiB,CAAA;IAC9B,cAAc,EAAE,gBAAgB,CAAA;CACjC;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,IAAI,CAa3G"}
|
package/lib/api.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { randomBytes } from 'node:crypto';
|
|
2
2
|
import { pipeline } from 'node:stream/promises';
|
|
3
3
|
import { HostKeyRequiredError } from './connector.js';
|
|
4
|
-
import { normalizeCredentialEntryDraft, normalizeForwardDraft, normalizeProfileDraft, normalizeSecrets, } from './domain.js';
|
|
4
|
+
import { normalizeCredentialEntryDraft, normalizeForwardDraft, normalizeProfileDraft, normalizeProxyEntryDraft, normalizeSecrets, } from './domain.js';
|
|
5
5
|
import { setSessionDirectory } from './directory.js';
|
|
6
|
+
import { streamTerminalOutput } from './terminal-stream.js';
|
|
6
7
|
import { listSftpDirectory, openSftpFile, readSftpFilePreview, uploadSftpFile } from './sftp.js';
|
|
8
|
+
import { streamActivityEvents } from './activity-events.js';
|
|
7
9
|
const MAX_BODY_BYTES = 1_048_576;
|
|
8
10
|
const MAX_SFTP_UPLOAD_BYTES = 512 * 1024 * 1024;
|
|
9
11
|
export function registerSshApi(webServer, prefix, runtime) {
|
|
@@ -27,7 +29,7 @@ async function dispatch(req, res, prefix, runtime) {
|
|
|
27
29
|
const segments = relative ? relative.split('/').map(decodeURIComponent) : [];
|
|
28
30
|
const method = req.method ?? 'GET';
|
|
29
31
|
if (method === 'GET' && segments[0] === 'health')
|
|
30
|
-
return sendJson(res, 200, { ok: true, service: 'dsh-ssh', schemaVersion:
|
|
32
|
+
return sendJson(res, 200, { ok: true, service: 'dsh-ssh', schemaVersion: 2 });
|
|
31
33
|
if (segments[0] === 'vault') {
|
|
32
34
|
if (method === 'GET' && segments.length === 1)
|
|
33
35
|
return sendJson(res, 200, await credentialEntryViews(runtime));
|
|
@@ -81,6 +83,57 @@ async function dispatch(req, res, prefix, runtime) {
|
|
|
81
83
|
return sendJson(res, 204, undefined);
|
|
82
84
|
}
|
|
83
85
|
}
|
|
86
|
+
if (segments[0] === 'proxies') {
|
|
87
|
+
if (method === 'GET' && segments.length === 1)
|
|
88
|
+
return sendJson(res, 200, await proxyEntryViews(runtime));
|
|
89
|
+
if (method === 'POST' && segments.length === 1) {
|
|
90
|
+
requireMutationHeader(req);
|
|
91
|
+
const body = await readObject(req);
|
|
92
|
+
const draft = normalizeProxyEntryDraft(body.entry);
|
|
93
|
+
const secrets = normalizeProxySecrets(body.secrets);
|
|
94
|
+
const now = Date.now();
|
|
95
|
+
const entry = { ...draft, id: createId('proxy'), createdAt: now, updatedAt: now };
|
|
96
|
+
await runtime.credentials.replaceProxyEntry(entry.id, secrets);
|
|
97
|
+
try {
|
|
98
|
+
await runtime.store.update(state => { state.proxyEntries.push(entry); });
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
await runtime.credentials.deleteProxyEntry(entry.id).catch(() => { });
|
|
102
|
+
throw error;
|
|
103
|
+
}
|
|
104
|
+
return sendJson(res, 201, await proxyEntryView(runtime, entry));
|
|
105
|
+
}
|
|
106
|
+
const id = segments[1];
|
|
107
|
+
if (id !== undefined && method === 'PUT' && segments.length === 2) {
|
|
108
|
+
requireMutationHeader(req);
|
|
109
|
+
const previous = requiredProxyEntry(runtime.store, id);
|
|
110
|
+
const body = await readObject(req);
|
|
111
|
+
const draft = normalizeProxyEntryDraft(body.entry);
|
|
112
|
+
const secrets = normalizeProxySecrets(body.secrets);
|
|
113
|
+
const previousSecrets = await runtime.credentials.readProxyEntry(id);
|
|
114
|
+
if (Object.keys(secrets).length > 0)
|
|
115
|
+
await runtime.credentials.writeProxyEntry(id, secrets);
|
|
116
|
+
const next = { ...previous, ...draft, id, createdAt: previous.createdAt, updatedAt: Date.now() };
|
|
117
|
+
try {
|
|
118
|
+
await runtime.store.update(state => { state.proxyEntries = state.proxyEntries.map(entry => entry.id === id ? next : entry); });
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
await runtime.credentials.replaceProxyEntry(id, previousSecrets).catch(() => { });
|
|
122
|
+
throw error;
|
|
123
|
+
}
|
|
124
|
+
return sendJson(res, 200, await proxyEntryView(runtime, next));
|
|
125
|
+
}
|
|
126
|
+
if (id !== undefined && method === 'DELETE' && segments.length === 2) {
|
|
127
|
+
requireMutationHeader(req);
|
|
128
|
+
requiredProxyEntry(runtime.store, id);
|
|
129
|
+
const references = runtime.store.profiles().filter(profile => profile.proxy.type === 'saved' && profile.proxy.proxyId === id);
|
|
130
|
+
if (references.length > 0)
|
|
131
|
+
throw httpError(409, `proxy entry is used by ${references.length} SSH profile(s)`);
|
|
132
|
+
await runtime.store.update(state => { state.proxyEntries = state.proxyEntries.filter(entry => entry.id !== id); });
|
|
133
|
+
await runtime.credentials.deleteProxyEntry(id);
|
|
134
|
+
return sendJson(res, 204, undefined);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
84
137
|
if (segments[0] === 'profiles') {
|
|
85
138
|
if (method === 'GET' && segments.length === 1)
|
|
86
139
|
return sendJson(res, 200, await profileViews(runtime));
|
|
@@ -290,6 +343,13 @@ async function dispatch(req, res, prefix, runtime) {
|
|
|
290
343
|
}
|
|
291
344
|
if (segments[0] === 'activity') {
|
|
292
345
|
const sessionId = url.searchParams.get('sessionId');
|
|
346
|
+
if (method === 'GET' && segments[1] === 'events' && segments.length === 2) {
|
|
347
|
+
if (!sessionId)
|
|
348
|
+
throw httpError(400, 'sessionId is required');
|
|
349
|
+
if (runtime.store.injection(sessionId) === undefined)
|
|
350
|
+
throw httpError(403, 'SSH access is not injected into this DSH session');
|
|
351
|
+
return streamActivityEvents(req, res, sessionId, runtime.activityEvents);
|
|
352
|
+
}
|
|
293
353
|
if (method === 'GET' && segments.length === 1) {
|
|
294
354
|
if (!sessionId)
|
|
295
355
|
throw httpError(400, 'sessionId is required');
|
|
@@ -350,7 +410,7 @@ async function dispatch(req, res, prefix, runtime) {
|
|
|
350
410
|
const targetSessionId = requireText(body.sessionId, 'sessionId', 200);
|
|
351
411
|
requireActivityTerminal(runtime.store, targetSessionId);
|
|
352
412
|
if (operation === 'input') {
|
|
353
|
-
runtime.aiTerminals.
|
|
413
|
+
runtime.aiTerminals.writeOrdered(targetSessionId, terminalId, optionalInteger(body.sequence, 0, Number.MAX_SAFE_INTEGER), requireRawText(body.text, 'text', 100_000));
|
|
354
414
|
return sendJson(res, 204, undefined);
|
|
355
415
|
}
|
|
356
416
|
if (operation === 'resize') {
|
|
@@ -358,6 +418,22 @@ async function dispatch(req, res, prefix, runtime) {
|
|
|
358
418
|
return sendJson(res, 204, undefined);
|
|
359
419
|
}
|
|
360
420
|
}
|
|
421
|
+
if (method === 'GET' && segments[1] === 'terminals' && segments[2] !== undefined && segments[3] === 'output' && segments.length === 4) {
|
|
422
|
+
if (!sessionId)
|
|
423
|
+
throw httpError(400, 'sessionId is required');
|
|
424
|
+
requireActivityTerminal(runtime.store, sessionId);
|
|
425
|
+
return sendJson(res, 200, runtime.aiTerminals.readOutput(sessionId, segments[2], optionalInteger(Number(url.searchParams.get('cursor') ?? 0), 0, Number.MAX_SAFE_INTEGER) ?? 0));
|
|
426
|
+
}
|
|
427
|
+
if (method === 'GET' && segments[1] === 'terminals' && segments[2] !== undefined && segments[3] === 'stream' && segments.length === 4) {
|
|
428
|
+
if (!sessionId)
|
|
429
|
+
throw httpError(400, 'sessionId is required');
|
|
430
|
+
requireActivityTerminal(runtime.store, sessionId);
|
|
431
|
+
const terminal = runtime.aiTerminals.get(sessionId, segments[2]);
|
|
432
|
+
return streamTerminalOutput(req, res, url, {
|
|
433
|
+
read: cursor => terminal.readOutput(cursor),
|
|
434
|
+
subscribe: listener => terminal.subscribeOutput(listener),
|
|
435
|
+
});
|
|
436
|
+
}
|
|
361
437
|
}
|
|
362
438
|
if (segments[0] === 'settings' && segments.length === 1) {
|
|
363
439
|
if (method === 'GET')
|
|
@@ -386,9 +462,17 @@ async function dispatch(req, res, prefix, runtime) {
|
|
|
386
462
|
if (id !== undefined && method === 'GET' && segments[2] === 'output') {
|
|
387
463
|
return sendJson(res, 200, runtime.terminals.get(id).read(optionalInteger(Number(url.searchParams.get('cursor') ?? 0), 0, Number.MAX_SAFE_INTEGER) ?? 0));
|
|
388
464
|
}
|
|
465
|
+
if (id !== undefined && method === 'GET' && segments[2] === 'stream') {
|
|
466
|
+
const terminal = runtime.terminals.get(id);
|
|
467
|
+
return streamTerminalOutput(req, res, url, {
|
|
468
|
+
read: cursor => terminal.read(cursor),
|
|
469
|
+
subscribe: listener => terminal.subscribeOutput(listener),
|
|
470
|
+
});
|
|
471
|
+
}
|
|
389
472
|
if (id !== undefined && method === 'POST' && segments[2] === 'input') {
|
|
390
473
|
requireMutationHeader(req);
|
|
391
|
-
|
|
474
|
+
const body = await readObject(req);
|
|
475
|
+
runtime.terminals.get(id).writeOrdered(optionalInteger(body.sequence, 0, Number.MAX_SAFE_INTEGER), requireRawText(body.text, 'text', 100_000));
|
|
392
476
|
return sendJson(res, 204, undefined);
|
|
393
477
|
}
|
|
394
478
|
if (id !== undefined && method === 'POST' && segments[2] === 'resize') {
|
|
@@ -427,6 +511,13 @@ async function credentialEntryView(runtime, entry) {
|
|
|
427
511
|
const requiredField = entry.authType === 'password' ? 'password' : 'privateKey';
|
|
428
512
|
return { ...entry, credential: { ...credential, configured: credential.fields.includes(requiredField) }, references: runtime.store.profiles().filter(profile => profile.credentialId === entry.id).length };
|
|
429
513
|
}
|
|
514
|
+
async function proxyEntryViews(runtime) {
|
|
515
|
+
return Promise.all(runtime.store.proxyEntries().map(entry => proxyEntryView(runtime, entry)));
|
|
516
|
+
}
|
|
517
|
+
async function proxyEntryView(runtime, entry) {
|
|
518
|
+
const credential = await runtime.credentials.describeProxyEntry(entry.id);
|
|
519
|
+
return { ...entry, credential, references: runtime.store.profiles().filter(profile => profile.proxy.type === 'saved' && profile.proxy.proxyId === entry.id).length };
|
|
520
|
+
}
|
|
430
521
|
function requiredProfile(store, id) {
|
|
431
522
|
const profile = store.profile(id);
|
|
432
523
|
if (profile === undefined)
|
|
@@ -445,12 +536,22 @@ function requiredCredentialEntry(store, id) {
|
|
|
445
536
|
throw httpError(404, 'SSH credential entry was not found');
|
|
446
537
|
return entry;
|
|
447
538
|
}
|
|
539
|
+
function requiredProxyEntry(store, id) {
|
|
540
|
+
const entry = store.proxyEntry(id);
|
|
541
|
+
if (entry === undefined)
|
|
542
|
+
throw httpError(404, 'SSH proxy entry was not found');
|
|
543
|
+
return entry;
|
|
544
|
+
}
|
|
448
545
|
function requireCredentialSecret(authType, secrets) {
|
|
449
546
|
if (authType === 'password' && !secrets.password)
|
|
450
547
|
throw httpError(400, 'password is required for this credential entry');
|
|
451
548
|
if (authType === 'private-key' && !secrets.privateKey)
|
|
452
549
|
throw httpError(400, 'private key is required for this credential entry');
|
|
453
550
|
}
|
|
551
|
+
function normalizeProxySecrets(value) {
|
|
552
|
+
const { proxyPassword } = normalizeSecrets(value);
|
|
553
|
+
return proxyPassword === undefined ? {} : { proxyPassword };
|
|
554
|
+
}
|
|
454
555
|
function requireActivityProfile(store, sessionId, profileId) {
|
|
455
556
|
const injection = store.injection(sessionId);
|
|
456
557
|
if (injection === undefined)
|
package/lib/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/lib/client-api.d.ts
CHANGED
|
@@ -24,6 +24,9 @@ export interface ProfileView {
|
|
|
24
24
|
host: string;
|
|
25
25
|
port: number;
|
|
26
26
|
username?: string;
|
|
27
|
+
} | {
|
|
28
|
+
type: 'saved';
|
|
29
|
+
proxyId: string;
|
|
27
30
|
} | {
|
|
28
31
|
type: 'jump';
|
|
29
32
|
profileIds: string[];
|
|
@@ -48,6 +51,22 @@ export interface VaultEntryView {
|
|
|
48
51
|
fields: string[];
|
|
49
52
|
};
|
|
50
53
|
}
|
|
54
|
+
export interface ProxyEntryView {
|
|
55
|
+
id: string;
|
|
56
|
+
name: string;
|
|
57
|
+
proxyType: 'http' | 'socks5';
|
|
58
|
+
host: string;
|
|
59
|
+
port: number;
|
|
60
|
+
username?: string;
|
|
61
|
+
createdAt: number;
|
|
62
|
+
updatedAt: number;
|
|
63
|
+
references: number;
|
|
64
|
+
credential: {
|
|
65
|
+
configured: boolean;
|
|
66
|
+
writable: boolean;
|
|
67
|
+
fields: string[];
|
|
68
|
+
};
|
|
69
|
+
}
|
|
51
70
|
export interface ForwardView {
|
|
52
71
|
id: string;
|
|
53
72
|
profileId: string;
|
|
@@ -119,6 +138,13 @@ export interface ActivityView {
|
|
|
119
138
|
profiles: ActivityProfileView[];
|
|
120
139
|
terminals: ActivityTerminalView[];
|
|
121
140
|
}
|
|
141
|
+
export interface TerminalOpenedEvent {
|
|
142
|
+
type: 'terminal-opened';
|
|
143
|
+
sessionId: string;
|
|
144
|
+
terminalId: string;
|
|
145
|
+
profileId: string;
|
|
146
|
+
createdAt: number;
|
|
147
|
+
}
|
|
122
148
|
export interface SftpEntryView {
|
|
123
149
|
name: string;
|
|
124
150
|
path: string;
|
|
@@ -148,12 +174,14 @@ export declare class ApiError extends Error {
|
|
|
148
174
|
export declare function api<T>(path: string, init?: RequestInit): Promise<T>;
|
|
149
175
|
export declare function loadProfiles(): Promise<ProfileView[]>;
|
|
150
176
|
export declare function loadVaultEntries(): Promise<VaultEntryView[]>;
|
|
177
|
+
export declare function loadProxyEntries(): Promise<ProxyEntryView[]>;
|
|
151
178
|
export declare function loadForwards(): Promise<{
|
|
152
179
|
rules: ForwardView[];
|
|
153
180
|
statuses: ForwardStatus[];
|
|
154
181
|
}>;
|
|
155
182
|
export declare function loadInjection(sessionId: string): Promise<InjectionView | null>;
|
|
156
183
|
export declare function loadActivity(sessionId: string): Promise<ActivityView>;
|
|
184
|
+
export declare function activityEventStreamUrl(sessionId: string): string;
|
|
157
185
|
export declare function loadSftpDirectory(sessionId: string, profileId: string, path?: string): Promise<SftpDirectoryView>;
|
|
158
186
|
export declare function loadSftpFilePreview(sessionId: string, profileId: string, path: string): Promise<SftpFilePreviewView>;
|
|
159
187
|
export declare function sftpFileUrl(sessionId: string, profileId: string, path: string, inline?: boolean): string;
|
|
@@ -165,7 +193,16 @@ export declare function uploadProfileSftpFile(profileId: string, directory: stri
|
|
|
165
193
|
name: string;
|
|
166
194
|
size: number;
|
|
167
195
|
}>;
|
|
168
|
-
export
|
|
196
|
+
export interface TerminalOutputDelta {
|
|
197
|
+
data: string;
|
|
198
|
+
cursor: number;
|
|
199
|
+
truncated: boolean;
|
|
200
|
+
closed: boolean;
|
|
201
|
+
}
|
|
202
|
+
export declare function sendActivityTerminalInput(sessionId: string, terminalId: string, text: string, sequence?: number): Promise<void>;
|
|
203
|
+
export declare function readActivityTerminalOutput(sessionId: string, terminalId: string, cursor: number): Promise<TerminalOutputDelta>;
|
|
204
|
+
export declare function activityTerminalStreamUrl(sessionId: string, terminalId: string, cursor?: number): string;
|
|
205
|
+
export declare function browserTerminalStreamUrl(terminalId: string, cursor?: number): string;
|
|
169
206
|
export declare function resizeActivityTerminal(sessionId: string, terminalId: string, cols: number, rows: number): Promise<void>;
|
|
170
207
|
export declare function updateActivityDirectory(sessionId: string, profileId: string, cwd: string): Promise<{
|
|
171
208
|
cwd: string;
|