dsh-zen-remote 2.0.2 → 2.2.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/AGENTS.md +15 -1
- package/README.md +11 -5
- package/README.zh-CN.md +11 -5
- package/docs/adr/0001-plugin-bridge-forwards-plugin-routes.md +15 -0
- package/docs/adr/0002-relay-emulates-websocket.md +8 -0
- package/docs/interface.md +3 -1
- package/docs/plugin-bridge.md +140 -0
- package/docs/remote-access.en.md +57 -0
- package/docs/remote-access.md +63 -0
- package/lib/adapters/dsh-better-sidebar/index.js +144 -0
- package/lib/adapters/dsh-better-sidebar/index.js.map +1 -0
- package/lib/adapters/dsh-better-sidebar/methods.js +198 -0
- package/lib/adapters/dsh-better-sidebar/methods.js.map +1 -0
- package/lib/adapters/index.js +17 -0
- package/lib/adapters/index.js.map +1 -0
- package/lib/adapters/types.js +17 -0
- package/lib/adapters/types.js.map +1 -0
- package/lib/admin-routes.js +51 -0
- package/lib/admin-routes.js.map +1 -1
- package/lib/client-routes.js +18 -1
- package/lib/client-routes.js.map +1 -1
- package/lib/client.js +449 -45
- package/lib/config.js +27 -0
- package/lib/config.js.map +1 -1
- package/lib/http.js +10 -0
- package/lib/http.js.map +1 -1
- package/lib/index.js +246 -0
- package/lib/index.js.map +1 -1
- package/lib/intercept.js +5 -2
- package/lib/intercept.js.map +1 -1
- package/lib/plugin-adapter-core.js +385 -0
- package/lib/plugin-adapter-core.js.map +1 -0
- package/lib/plugin-bridge.js +318 -0
- package/lib/plugin-bridge.js.map +1 -0
- package/lib/plugin-loopback.js +207 -0
- package/lib/plugin-loopback.js.map +1 -0
- package/lib/plugin-route-intercept.js +1103 -0
- package/lib/plugin-route-intercept.js.map +1 -0
- package/lib/plugin-tunnel.js +416 -0
- package/lib/plugin-tunnel.js.map +1 -0
- package/lib/relay-client.js +340 -4
- package/lib/relay-client.js.map +1 -1
- package/lib/relay-server.js +665 -7
- package/lib/relay-server.js.map +1 -1
- package/lib/types/adapters/dsh-better-sidebar/index.d.ts +27 -0
- package/lib/types/adapters/dsh-better-sidebar/index.d.ts.map +1 -0
- package/lib/types/adapters/dsh-better-sidebar/methods.d.ts +51 -0
- package/lib/types/adapters/dsh-better-sidebar/methods.d.ts.map +1 -0
- package/lib/types/adapters/index.d.ts +17 -0
- package/lib/types/adapters/index.d.ts.map +1 -0
- package/lib/types/adapters/types.d.ts +42 -0
- package/lib/types/adapters/types.d.ts.map +1 -0
- package/lib/types/admin-routes.d.ts +16 -0
- package/lib/types/admin-routes.d.ts.map +1 -1
- package/lib/types/client/effects/remote-session.d.ts +0 -22
- package/lib/types/client/effects/remote-session.d.ts.map +1 -1
- package/lib/types/client/locales.d.ts +16 -0
- package/lib/types/client/locales.d.ts.map +1 -1
- package/lib/types/client/settings/SettingsSection.d.ts.map +1 -1
- package/lib/types/client/styles/remote-session.css.d.ts +1 -1
- package/lib/types/client/styles/remote-session.css.d.ts.map +1 -1
- package/lib/types/client-data/plugin-bridge.d.ts +79 -0
- package/lib/types/client-data/plugin-bridge.d.ts.map +1 -0
- package/lib/types/client-data/remote-status.d.ts +20 -0
- package/lib/types/client-data/remote-status.d.ts.map +1 -1
- package/lib/types/client-data/settings-form.d.ts +37 -1
- package/lib/types/client-data/settings-form.d.ts.map +1 -1
- package/lib/types/client-routes.d.ts +13 -0
- package/lib/types/client-routes.d.ts.map +1 -1
- package/lib/types/config.d.ts +8 -0
- package/lib/types/config.d.ts.map +1 -1
- package/lib/types/http.d.ts +7 -0
- package/lib/types/http.d.ts.map +1 -1
- package/lib/types/index.d.ts +4 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/intercept.d.ts.map +1 -1
- package/lib/types/plugin-adapter-core.d.ts +263 -0
- package/lib/types/plugin-adapter-core.d.ts.map +1 -0
- package/lib/types/plugin-bridge.d.ts +187 -0
- package/lib/types/plugin-bridge.d.ts.map +1 -0
- package/lib/types/plugin-loopback.d.ts +104 -0
- package/lib/types/plugin-loopback.d.ts.map +1 -0
- package/lib/types/plugin-route-intercept.d.ts +114 -0
- package/lib/types/plugin-route-intercept.d.ts.map +1 -0
- package/lib/types/plugin-tunnel.d.ts +96 -0
- package/lib/types/plugin-tunnel.d.ts.map +1 -0
- package/lib/types/relay-client.d.ts +81 -1
- package/lib/types/relay-client.d.ts.map +1 -1
- package/lib/types/relay-server.d.ts +32 -1
- package/lib/types/relay-server.d.ts.map +1 -1
- package/llms.txt +1 -0
- package/package.json +2 -2
- package/scripts/check-plugin-bridge-ui.mjs +168 -0
- package/scripts/check-settings-form.mjs +3 -1
- package/src/adapters/dsh-better-sidebar/index.ts +144 -0
- package/src/adapters/dsh-better-sidebar/methods.ts +215 -0
- package/src/adapters/index.ts +19 -0
- package/src/adapters/types.ts +44 -0
- package/src/admin-routes.ts +64 -0
- package/src/client/effects/remote-session.ts +82 -10
- package/src/client/locales.ts +36 -0
- package/src/client/settings/SettingsSection.tsx +107 -3
- package/src/client/styles/remote-session.css.ts +70 -31
- package/src/client-data/plugin-bridge.ts +150 -0
- package/src/client-data/remote-status.ts +30 -0
- package/src/client-data/settings-form.ts +78 -0
- package/src/client-routes.ts +29 -1
- package/src/config.ts +32 -0
- package/src/http.ts +12 -0
- package/src/index.ts +252 -0
- package/src/intercept.ts +5 -2
- package/src/plugin-adapter-core.ts +530 -0
- package/src/plugin-bridge.ts +435 -0
- package/src/plugin-loopback.ts +299 -0
- package/src/plugin-route-intercept.ts +1193 -0
- package/src/plugin-tunnel.ts +470 -0
- package/src/relay-client.ts +413 -4
- package/src/relay-server.ts +687 -9
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The dsh-better-sidebar adapter (PB-12), written against EXACTLY
|
|
3
|
+
* version 0.25.0. Everything it knows about the plugin came off
|
|
4
|
+
* `/tmp/bs-versions/0.25.0/lib/index.js` (the installed copy at
|
|
5
|
+
* `~/.dsh/profiles/desktop/node_modules/dsh-better-sidebar` is the same
|
|
6
|
+
* build); the method table lives in `methods.ts` beside this file, and the
|
|
7
|
+
* test suite re-extracts the plugin's real method-name set to catch a
|
|
8
|
+
* silently drifted version.
|
|
9
|
+
*
|
|
10
|
+
* Product decisions (2026-10-10): reads AND writes both forward — a
|
|
11
|
+
* bridged better-sidebar is whole-server disk access, git writes, and
|
|
12
|
+
* model spend (commit-message generation), documented as such; NO path
|
|
13
|
+
* fencing; `open.external` refuses for a remote session; `settings.*` and
|
|
14
|
+
* `/sidebar/bundle` stay local; the adapter registers as whole-machine
|
|
15
|
+
* data (consent per plugin, default off).
|
|
16
|
+
*
|
|
17
|
+
* The `cwd` handling is the one subtle part: better-sidebar resolves a
|
|
18
|
+
* request's working directory as the session's own `header.cwd` first and
|
|
19
|
+
* only falls back to a `cwd` field the CLIENT supplied (lib/index.js:6295,
|
|
20
|
+
* 6075-6099). A remote panel must not steer the server by path, so the
|
|
21
|
+
* server hook strips `cwd` — from the JSON body (`/sidebar/api`) and from
|
|
22
|
+
* the query (`/sidebar/file`, `/sidebar/upload`) — and lets the backend
|
|
23
|
+
* resolve from the (validated, real) session id.
|
|
24
|
+
*/
|
|
25
|
+
import { isVirtual } from '../../virtual-id.js';
|
|
26
|
+
import { SIDEBAR_METHODS, sidebarMethodNameOf } from './methods.js';
|
|
27
|
+
/** The relay's upload budget (`MAX_UPLOAD_BYTES` in lib/relay-server.js).
|
|
28
|
+
* Inlined rather than imported — an adapter may only lean on pure utility
|
|
29
|
+
* modules — and pinned to the original by a test in
|
|
30
|
+
* test/adapter-better-sidebar.test.cjs, which fails the pair apart when
|
|
31
|
+
* either side moves. */
|
|
32
|
+
const RELAY_UPLOAD_CAP_BYTES = 100 * 1024 * 1024;
|
|
33
|
+
/** better-sidebar's own JSON body bound (lib/index.js:863
|
|
34
|
+
* `MAX_BODY_BYTES = 1 << 20`) — the adapter forwards at most what the
|
|
35
|
+
* backend would accept anyway. */
|
|
36
|
+
const SIDEBAR_MAX_BODY_BYTES = 1024 * 1024;
|
|
37
|
+
/** The method name out of a `/sidebar/api/*` pathname, or `''`. */
|
|
38
|
+
const apiMethodOf = (pathname) => sidebarMethodNameOf(pathname) ?? '';
|
|
39
|
+
export const dshBetterSidebarAdapter = {
|
|
40
|
+
plugin: 'dsh-better-sidebar',
|
|
41
|
+
versions: ['0.25.0'],
|
|
42
|
+
routes: [
|
|
43
|
+
{
|
|
44
|
+
// The JSON API: the method name rides the path tail, the session
|
|
45
|
+
// fields ride the body top level (sessionId / rootSessionId /
|
|
46
|
+
// childId — the sidechat calls).
|
|
47
|
+
path: '/sidebar/api',
|
|
48
|
+
match: 'prefix',
|
|
49
|
+
methods: ['POST'],
|
|
50
|
+
maxBody: SIDEBAR_MAX_BODY_BYTES,
|
|
51
|
+
locator: { in: 'json-body', fields: ['sessionId', 'rootSessionId', 'childId'] },
|
|
52
|
+
deny: ({ pathname, currentSessionId }) => {
|
|
53
|
+
const name = apiMethodOf(pathname);
|
|
54
|
+
if (name === '')
|
|
55
|
+
return undefined;
|
|
56
|
+
// Opening apps/URLs on the HOST is a remote-panel no: refused when
|
|
57
|
+
// the browser is currently looking at a REMOTE session (the
|
|
58
|
+
// request body carries no session field of its own — client.js
|
|
59
|
+
// 9383-9392 — so the classify step could never tell). A LOCAL
|
|
60
|
+
// session's open.external never reaches here as a refusal and
|
|
61
|
+
// stays on the local machine, exactly as without zen-remote.
|
|
62
|
+
// (The sidechat methods left this hook in PB-13: their child
|
|
63
|
+
// sessions inherit the parent's share through `meta.parentSession`,
|
|
64
|
+
// so they forward like everything else.)
|
|
65
|
+
if (name === 'open.external' && currentSessionId !== undefined && isVirtual(currentSessionId)) {
|
|
66
|
+
return 'remote-open-unsupported';
|
|
67
|
+
}
|
|
68
|
+
return undefined;
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
// The media route: better-sidebar registers a PREFIX, the adapter only
|
|
72
|
+
// claims the EXACT documented path — a sub-path (if a future version
|
|
73
|
+
// grows one) stays local rather than being guessed at.
|
|
74
|
+
{ path: '/sidebar/file', match: 'exact', methods: ['GET'], locator: { in: 'query', name: 'sessionId' } },
|
|
75
|
+
// The archive download (lib/index.js:6949-6985).
|
|
76
|
+
{ path: '/sidebar/archive', match: 'exact', methods: ['GET'], locator: { in: 'query', name: 'sessionId' } },
|
|
77
|
+
// The raw upload (lib/index.js:6905-6948): binary bytes, capped by the
|
|
78
|
+
// relay's own upload budget.
|
|
79
|
+
{ path: '/sidebar/upload', match: 'exact', methods: ['POST'], maxBody: RELAY_UPLOAD_CAP_BYTES, locator: { in: 'query', name: 'sessionId' } },
|
|
80
|
+
// The HTML preview (lib/index.js:7026+): the session id is the FIRST
|
|
81
|
+
// path segment after the prefix; the rest of the segments are the
|
|
82
|
+
// preview file's relative path. Same-prefix relative resources ride
|
|
83
|
+
// along (they hit the same prefix route with the same segment layout).
|
|
84
|
+
{ path: '/sidebar/html', match: 'prefix', methods: ['GET'], locator: { in: 'path-segment', index: 0 } },
|
|
85
|
+
// Lazy chunks: client code, session-independent, LOCAL forever.
|
|
86
|
+
{ path: '/sidebar/bundle', match: 'prefix', methods: ['GET'], locator: { in: 'query', name: 'sessionId' }, local: true },
|
|
87
|
+
// The two WebSockets (PB-13, both `registerUpgrade` EXACT registrations
|
|
88
|
+
// in lib/index.js:7066-7091): the agent-opens push feed and the
|
|
89
|
+
// file-tree watch. Both carry the session id in the query; both ride
|
|
90
|
+
// PB-10's byte tunnel untouched — neither side parses frames, and the
|
|
91
|
+
// messages need no rewriting (agent-opens pushes carry the server-real
|
|
92
|
+
// sessionId but the browser never reads it — client.js:23618-23640
|
|
93
|
+
// uses its own connect-time id for the scope; fs-watch frames carry
|
|
94
|
+
// file paths, not session ids).
|
|
95
|
+
{ path: '/sidebar/ws/agent-opens', match: 'exact', methods: ['GET'], upgrade: true, locator: { in: 'query', name: 'sessionId' } },
|
|
96
|
+
{ path: '/sidebar/ws/fs-watch', match: 'exact', methods: ['GET'], upgrade: true, locator: { in: 'query', name: 'sessionId' } },
|
|
97
|
+
],
|
|
98
|
+
client: {
|
|
99
|
+
request: (ctx) => {
|
|
100
|
+
const name = apiMethodOf(ctx.pathname);
|
|
101
|
+
// Belt over the deny hook's suspenders: a refused method refuses
|
|
102
|
+
// even if a future plugin version starts carrying session fields
|
|
103
|
+
// on it (which would flip it into the remote branch).
|
|
104
|
+
if (name === 'open.external')
|
|
105
|
+
return { allow: false, reason: 'remote-open-unsupported' };
|
|
106
|
+
// Unknown method: refuse — never guess what a drifted version means.
|
|
107
|
+
if (name !== '' && SIDEBAR_METHODS[name] === undefined)
|
|
108
|
+
return { allow: false, reason: 'adapter-method-unknown' };
|
|
109
|
+
return { allow: true };
|
|
110
|
+
},
|
|
111
|
+
response: (ctx) => {
|
|
112
|
+
const name = apiMethodOf(ctx.pathname);
|
|
113
|
+
if (name === '')
|
|
114
|
+
return ctx.body;
|
|
115
|
+
const spec = SIDEBAR_METHODS[name];
|
|
116
|
+
if (spec === undefined || spec.rewrite === undefined)
|
|
117
|
+
return ctx.body;
|
|
118
|
+
return spec.rewrite(ctx.body, ctx);
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
server: {
|
|
122
|
+
request: (ctx) => {
|
|
123
|
+
// Strip the client-supplied cwd: the backend resolves the working
|
|
124
|
+
// directory from the (already validated) session id's own header,
|
|
125
|
+
// falling back to the persisted record — a remote panel never
|
|
126
|
+
// steers the server by path.
|
|
127
|
+
if (ctx.pathname === '/sidebar/file' || ctx.pathname === '/sidebar/upload') {
|
|
128
|
+
if (ctx.query.get('cwd') !== null) {
|
|
129
|
+
const stripped = new URLSearchParams(ctx.query);
|
|
130
|
+
stripped.delete('cwd');
|
|
131
|
+
return { allow: true, query: stripped };
|
|
132
|
+
}
|
|
133
|
+
return { allow: true };
|
|
134
|
+
}
|
|
135
|
+
if (ctx.route.path === '/sidebar/api' && ctx.body !== null && typeof ctx.body === 'object' && !Array.isArray(ctx.body) && 'cwd' in ctx.body) {
|
|
136
|
+
const stripped = { ...ctx.body };
|
|
137
|
+
delete stripped.cwd;
|
|
138
|
+
return { allow: true, body: stripped };
|
|
139
|
+
}
|
|
140
|
+
return { allow: true };
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
};
|
|
144
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/dsh-better-sidebar/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* better-sidebar 0.25.0 的 `/sidebar/api` 方法表(PB-12)——适配器唯一
|
|
3
|
+
* 认识的接口清单,逐条对着 `/tmp/bs-versions/0.25.0/lib/index.js` 复核
|
|
4
|
+
* (行号见各条注释,以 0.25.0 的构建产物为准)。表里没有的方法在远程
|
|
5
|
+
* 会话里一律拒绝(reason `adapter-method-unknown`):宁可少转发,不可
|
|
6
|
+
* 误转发——`test/adapter-better-sidebar.test.cjs` 会把源码里的实际方法
|
|
7
|
+
* 名集合提取出来与这张表逐一比对,防止插件升级后漏记。
|
|
8
|
+
*
|
|
9
|
+
* 会话字段:绝大多数方法在 JSON 体顶层带 `sessionId`(client.js 的
|
|
10
|
+
* scopePayload,lib/client.js:3866);子代理与工作流面板带
|
|
11
|
+
* `rootSessionId`;sidechat 的后续调用带 `childId`(本单一律拒绝)。
|
|
12
|
+
*
|
|
13
|
+
* 响应里带会话 id 的位置(核实于 0.25.0 源码,全部只有三处):
|
|
14
|
+
* - `session.cwd` 把请求的 `sessionId` 原样回显(lib/index.js:6327);
|
|
15
|
+
* - `subagents.live` 的响应以会话 id 为键(lib/index.js:4513
|
|
16
|
+
* `live[sessionId] = view`,根会话与全部子会话);
|
|
17
|
+
* - `workflows.list` 的每行 `originSessionId`(lib/index.js:4666)与
|
|
18
|
+
* `phases[].members[].childId`(lib/index.js:4686)。
|
|
19
|
+
* `teams.taskCreate`/`taskUpdate` 的响应是 `{ok, value:<任务记录>}`
|
|
20
|
+
* (lib/index.js:4607-4612、4650-4655),任务记录不带会话 id;
|
|
21
|
+
* `changes.ops` 返回 `{events, lastSeq}`,事件属于该会话自身的流
|
|
22
|
+
* (tool/call、tool/result),对象上没有会话 id 字段;
|
|
23
|
+
* `archive.build` 返回 `{id, entries}`(lib/index.js:3470-3473)、
|
|
24
|
+
* `archive.status` 返回 `{state, done, total, bytes, error?}`
|
|
25
|
+
* (lib/index.js:3479-3485)——都不带会话 id。这四类不改写。
|
|
26
|
+
* `sidechat.start` 返回 `{childId}`(lib/index.js:5050)——PB-13 起
|
|
27
|
+
* 虚拟化(子客户端拿它发后续调用)。
|
|
28
|
+
*/
|
|
29
|
+
/** 无改写的普通转发方法的简写工厂。 */
|
|
30
|
+
const forward = (kind, sessionField = 'sessionId') => ({ kind, sessionField });
|
|
31
|
+
/** 0.25.0 的全部方法。 */
|
|
32
|
+
export const SIDEBAR_METHODS = {
|
|
33
|
+
// ---- 会话(lib/index.js:6319-6333)----
|
|
34
|
+
'session.phase': forward('read'),
|
|
35
|
+
'session.cwd': {
|
|
36
|
+
kind: 'read',
|
|
37
|
+
sessionField: 'sessionId',
|
|
38
|
+
// 请求的 sessionId 原样回显(lib/index.js:6327)。
|
|
39
|
+
rewrite: (body, ctx) => rewriteTopLevel(body, 'sessionId', ctx),
|
|
40
|
+
},
|
|
41
|
+
// ---- 文件(lib/index.js:6334-6442)----
|
|
42
|
+
'fs.tree': forward('read'),
|
|
43
|
+
'fs.trees': forward('read'),
|
|
44
|
+
'fs.search': forward('read'),
|
|
45
|
+
'fs.read': forward('read'),
|
|
46
|
+
'fs.write': forward('write'),
|
|
47
|
+
'fs.rename': forward('write'),
|
|
48
|
+
'fs.mkdir': forward('write'),
|
|
49
|
+
'fs.createFile': forward('write'),
|
|
50
|
+
'fs.remove': forward('write'),
|
|
51
|
+
// ---- git(lib/index.js:6443-6613)----
|
|
52
|
+
'git.worktrees': forward('read'),
|
|
53
|
+
'git.status': forward('read'),
|
|
54
|
+
'git.diff': forward('read'),
|
|
55
|
+
'git.diff-head': forward('read'),
|
|
56
|
+
'git.branch': forward('read'),
|
|
57
|
+
'git.log': forward('read'),
|
|
58
|
+
'git.commit-diff': forward('read'),
|
|
59
|
+
'git.show': forward('read'),
|
|
60
|
+
'git.blame': forward('read'),
|
|
61
|
+
'git.stage': forward('write'),
|
|
62
|
+
'git.unstage': forward('write'),
|
|
63
|
+
'git.commit': forward('write'),
|
|
64
|
+
'git.push': forward('write'),
|
|
65
|
+
'git.pull': forward('write'),
|
|
66
|
+
'git.checkout': forward('write'),
|
|
67
|
+
'git.discard': forward('write'),
|
|
68
|
+
'git.revert': forward('write'),
|
|
69
|
+
'git.cherry-pick': forward('write'),
|
|
70
|
+
// 提交信息生成:消耗主服务端的模型额度(产品决定:跟随会话,接)。
|
|
71
|
+
'git.suggest-message': forward('write'),
|
|
72
|
+
// 模型目录:sessionId 可选(lib/index.js:6573-6602、6614-6626)。
|
|
73
|
+
'git.commit-model': forward('read'),
|
|
74
|
+
'git.models': forward('read'),
|
|
75
|
+
// ---- 变更流(lib/index.js:6627-6649)----
|
|
76
|
+
// 事件对象属于该会话自身的流,不带会话 id —— 不改写。
|
|
77
|
+
'changes.ops': forward('read'),
|
|
78
|
+
// ---- 子代理 / 工作流 / 团队(lib/index.js:4482-4662、4770-4789)----
|
|
79
|
+
'subagents.live': {
|
|
80
|
+
kind: 'read',
|
|
81
|
+
sessionField: 'rootSessionId',
|
|
82
|
+
// 响应的 live 映射以会话 id 为键(lib/index.js:4513)。
|
|
83
|
+
rewrite: (body, ctx) => {
|
|
84
|
+
if (body === null || typeof body !== 'object' || Array.isArray(body))
|
|
85
|
+
return body;
|
|
86
|
+
const live = body.live;
|
|
87
|
+
if (live === null || typeof live !== 'object' || Array.isArray(live))
|
|
88
|
+
return body;
|
|
89
|
+
const rewritten = {};
|
|
90
|
+
for (const [id, view] of Object.entries(live)) {
|
|
91
|
+
rewritten[ctx.isVirtual(id) ? id : ctx.virtualize(id)] = view;
|
|
92
|
+
}
|
|
93
|
+
return { ...body, live: rewritten };
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
'workflows.list': {
|
|
97
|
+
kind: 'read',
|
|
98
|
+
sessionField: 'rootSessionId',
|
|
99
|
+
// 每行的 originSessionId(4666)与 members[].childId(4686)。
|
|
100
|
+
rewrite: (body, ctx) => {
|
|
101
|
+
if (body === null || typeof body !== 'object' || Array.isArray(body))
|
|
102
|
+
return body;
|
|
103
|
+
const runs = body.runs;
|
|
104
|
+
if (!Array.isArray(runs))
|
|
105
|
+
return body;
|
|
106
|
+
return {
|
|
107
|
+
...body,
|
|
108
|
+
runs: runs.map((run) => rewriteWorkflowRun(run, ctx)),
|
|
109
|
+
};
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
// 响应是 {ok, value:<任务记录>},不带会话 id —— 不改写。
|
|
113
|
+
'teams.taskCreate': forward('write', 'rootSessionId'),
|
|
114
|
+
'teams.taskUpdate': forward('write', 'rootSessionId'),
|
|
115
|
+
// ---- 归档(lib/index.js:6663-6686;响应不带会话 id)----
|
|
116
|
+
'archive.build': forward('write'),
|
|
117
|
+
'archive.status': forward('read'),
|
|
118
|
+
// ---- 设置(lib/index.js:6666-6682)----
|
|
119
|
+
// 无会话字段:定位结果为空,远程判定天然放行本机 —— 表里登记只为
|
|
120
|
+
// 文档完整与「未知方法」比对(真实存在,只是不转发)。
|
|
121
|
+
'settings.get': { kind: 'read', local: true },
|
|
122
|
+
'settings.update': { kind: 'write', local: true },
|
|
123
|
+
// ---- 外部打开(lib/index.js:6683-6687)----
|
|
124
|
+
// 在宿主机起进程:远程会话拒绝(适配器路由的 deny 钩子按「浏览器当前
|
|
125
|
+
// 会话是虚拟 id」拒绝;这里登记是让方法比对认识它)。请求体不带会话
|
|
126
|
+
// 字段(client.js:9383-9392 只发 action/path/url)。
|
|
127
|
+
'open.external': { kind: 'write', sessionField: 'sessionId' },
|
|
128
|
+
// ---- 侧聊(lib/index.js:4971-5140,buildSidechatApi)----
|
|
129
|
+
// PB-13 起转发:sidechat 的子会话带 `meta.parentSession = 调用会话 id`
|
|
130
|
+
// (lib/index.js:5012),zen-remote 的共享按祖先链判定,所以侧聊线程
|
|
131
|
+
// 自动继承父会话的共享——闭环是 start 的响应 childId 换成虚拟 id,
|
|
132
|
+
// 浏览器拿它发后续调用时经体定位回本适配器,服务端按继承校验放行。
|
|
133
|
+
'sidechat.start': {
|
|
134
|
+
kind: 'write',
|
|
135
|
+
sessionField: 'sessionId',
|
|
136
|
+
// 响应 `{ childId }`(lib/index.js:5050)——服务端真实 id 换虚拟。
|
|
137
|
+
rewrite: (body, ctx) => rewriteTopLevel(body, 'childId', ctx),
|
|
138
|
+
},
|
|
139
|
+
'sidechat.prompt': forward('write', 'childId'),
|
|
140
|
+
'sidechat.cancel': forward('write', 'childId'),
|
|
141
|
+
'sidechat.dispose': forward('write', 'childId'),
|
|
142
|
+
'sidechat.info': forward('read', 'childId'),
|
|
143
|
+
'sidechat.events': forward('read', 'childId'),
|
|
144
|
+
};
|
|
145
|
+
/** `/sidebar/api` 的路径前缀(方法名跟在后面,lib/index.js:6888)。 */
|
|
146
|
+
export const SIDEBAR_API_PREFIX = '/sidebar/api/';
|
|
147
|
+
/** 从请求 pathname 取出 API 方法名(`/sidebar/api/fs.tree` → `fs.tree`)。 */
|
|
148
|
+
export function sidebarMethodNameOf(pathname) {
|
|
149
|
+
if (!pathname.startsWith(SIDEBAR_API_PREFIX))
|
|
150
|
+
return undefined;
|
|
151
|
+
const name = pathname.slice(SIDEBAR_API_PREFIX.length);
|
|
152
|
+
if (name === '' || name.includes('/'))
|
|
153
|
+
return undefined;
|
|
154
|
+
return name;
|
|
155
|
+
}
|
|
156
|
+
/** 顶层字段的虚拟化改写(session.cwd 的形状)。 */
|
|
157
|
+
function rewriteTopLevel(body, field, ctx) {
|
|
158
|
+
if (body === null || typeof body !== 'object' || Array.isArray(body))
|
|
159
|
+
return body;
|
|
160
|
+
const record = body;
|
|
161
|
+
const value = record[field];
|
|
162
|
+
if (typeof value !== 'string' || value === '' || ctx.isVirtual(value))
|
|
163
|
+
return body;
|
|
164
|
+
return { ...record, [field]: ctx.virtualize(value) };
|
|
165
|
+
}
|
|
166
|
+
/** 一行工作流运行的改写(originSessionId + phases[].members[].childId)。 */
|
|
167
|
+
function rewriteWorkflowRun(run, ctx) {
|
|
168
|
+
if (run === null || typeof run !== 'object' || Array.isArray(run))
|
|
169
|
+
return run;
|
|
170
|
+
const record = run;
|
|
171
|
+
const rewritten = { ...record };
|
|
172
|
+
const origin = record.originSessionId;
|
|
173
|
+
if (typeof origin === 'string' && origin !== '' && !ctx.isVirtual(origin))
|
|
174
|
+
rewritten.originSessionId = ctx.virtualize(origin);
|
|
175
|
+
if (Array.isArray(record.phases)) {
|
|
176
|
+
rewritten.phases = record.phases.map((phase) => {
|
|
177
|
+
if (phase === null || typeof phase !== 'object' || Array.isArray(phase))
|
|
178
|
+
return phase;
|
|
179
|
+
const phaseRecord = phase;
|
|
180
|
+
if (!Array.isArray(phaseRecord.members))
|
|
181
|
+
return phase;
|
|
182
|
+
return {
|
|
183
|
+
...phaseRecord,
|
|
184
|
+
members: phaseRecord.members.map((member) => {
|
|
185
|
+
if (member === null || typeof member !== 'object' || Array.isArray(member))
|
|
186
|
+
return member;
|
|
187
|
+
const memberRecord = member;
|
|
188
|
+
const childId = memberRecord.childId;
|
|
189
|
+
if (typeof childId !== 'string' || childId === '' || ctx.isVirtual(childId))
|
|
190
|
+
return member;
|
|
191
|
+
return { ...memberRecord, childId: ctx.virtualize(childId) };
|
|
192
|
+
}),
|
|
193
|
+
};
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
return rewritten;
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=methods.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"methods.js","sourceRoot":"","sources":["../../../src/adapters/dsh-better-sidebar/methods.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAoBH,uBAAuB;AACvB,MAAM,OAAO,GAAG,CAAC,IAAsB,EAAE,eAA0D,WAAW,EAAqB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAA;AAE9J,oBAAoB;AACpB,MAAM,CAAC,MAAM,eAAe,GAAgD;IAC1E,sCAAsC;IACtC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC;IAChC,aAAa,EAAE;QACb,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,WAAW;QACzB,yCAAyC;QACzC,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC;KAChE;IAED,sCAAsC;IACtC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC;IACjC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC;IAE7B,uCAAuC;IACvC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC;IAChC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC;IAChC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC;IAClC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC;IAChC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC;IAC9B,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC;IACnC,mCAAmC;IACnC,qBAAqB,EAAE,OAAO,CAAC,OAAO,CAAC;IACvC,uDAAuD;IACvD,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC;IACnC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC;IAE7B,uCAAuC;IACvC,gCAAgC;IAChC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;IAE9B,4DAA4D;IAC5D,gBAAgB,EAAE;QAChB,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,eAAe;QAC7B,2CAA2C;QAC3C,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YACrB,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAA;YACjF,MAAM,IAAI,GAAI,IAAgC,CAAC,IAAI,CAAA;YACnD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAA;YACjF,MAAM,SAAS,GAA4B,EAAE,CAAA;YAC7C,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAA+B,CAAC,EAAE,CAAC;gBACzE,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAA;YAC/D,CAAC;YACD,OAAO,EAAE,GAAI,IAAgC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;QAClE,CAAC;KACF;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,eAAe;QAC7B,sDAAsD;QACtD,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YACrB,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAA;YACjF,MAAM,IAAI,GAAI,IAAgC,CAAC,IAAI,CAAA;YACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAA;YACrC,OAAO;gBACL,GAAI,IAAgC;gBACpC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;aACtD,CAAA;QACH,CAAC;KACF;IACD,yCAAyC;IACzC,kBAAkB,EAAE,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC;IACrD,kBAAkB,EAAE,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC;IAErD,gDAAgD;IAChD,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC;IACjC,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC;IAEjC,sCAAsC;IACtC,oCAAoC;IACpC,6BAA6B;IAC7B,cAAc,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;IAC7C,iBAAiB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;IAEjD,wCAAwC;IACxC,uCAAuC;IACvC,qCAAqC;IACrC,8CAA8C;IAC9C,eAAe,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE;IAE7D,uDAAuD;IACvD,0DAA0D;IAC1D,kDAAkD;IAClD,6CAA6C;IAC7C,mCAAmC;IACnC,gBAAgB,EAAE;QAChB,IAAI,EAAE,OAAO;QACb,YAAY,EAAE,WAAW;QACzB,qDAAqD;QACrD,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC;KAC9D;IACD,iBAAiB,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC;IAC9C,iBAAiB,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC;IAC9C,kBAAkB,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC;IAC/C,eAAe,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3C,iBAAiB,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;CAC9C,CAAA;AAED,uDAAuD;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAA;AAEjD,mEAAmE;AACnE,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAAE,OAAO,SAAS,CAAA;IAC9D,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;IACtD,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IACvD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,mCAAmC;AACnC,SAAS,eAAe,CAAC,IAAa,EAAE,KAAa,EAAE,GAA0B;IAC/E,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IACjF,MAAM,MAAM,GAAG,IAA+B,CAAA;IAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAClF,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAA;AACtD,CAAC;AAED,gEAAgE;AAChE,SAAS,kBAAkB,CAAC,GAAY,EAAE,GAA0B;IAClE,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAA;IAC7E,MAAM,MAAM,GAAG,GAA8B,CAAA;IAC7C,MAAM,SAAS,GAA4B,EAAE,GAAG,MAAM,EAAE,CAAA;IACxD,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAA;IACrC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC;QAAE,SAAS,CAAC,eAAe,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAC7H,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC7C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAA;YACrF,MAAM,WAAW,GAAG,KAAgC,CAAA;YACpD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;gBAAE,OAAO,KAAK,CAAA;YACrD,OAAO;gBACL,GAAG,WAAW;gBACd,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC1C,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;wBAAE,OAAO,MAAM,CAAA;oBACzF,MAAM,YAAY,GAAG,MAAiC,CAAA;oBACtD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAA;oBACpC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC;wBAAE,OAAO,MAAM,CAAA;oBAC1F,OAAO,EAAE,GAAG,YAAY,EAAE,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAA;gBAC9D,CAAC,CAAC;aACH,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The adapter registry — the ONE door between `src/adapters/` and the rest
|
|
3
|
+
* of the plugin. Every adapter implementation lives in its own
|
|
4
|
+
* subdirectory (`src/adapters/<plugin-name>/`), is imported here, and adds
|
|
5
|
+
* exactly one element to the array. Nothing outside `src/index.ts` (the
|
|
6
|
+
* wiring) may import from this directory, and no file anywhere may import
|
|
7
|
+
* an adapter subdirectory — both pinned by test/adapters-pluggable.test.cjs.
|
|
8
|
+
* Deleting this whole directory leaves the plugin fully working: the wiring
|
|
9
|
+
* parameter defaults to `[]`.
|
|
10
|
+
*
|
|
11
|
+
* PB-11 ships the FRAMEWORK only: the array stays EMPTY, the first real
|
|
12
|
+
* adapter (better-sidebar) arrives with PB-12.
|
|
13
|
+
*/
|
|
14
|
+
import { dshBetterSidebarAdapter } from './dsh-better-sidebar/index.js';
|
|
15
|
+
/** Every adapter zen-remote ships, in registration order. */
|
|
16
|
+
export const ADAPTERS = [dshBetterSidebarAdapter];
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAEvE,6DAA6D;AAC7D,MAAM,CAAC,MAAM,QAAQ,GAA6B,CAAC,uBAAuB,CAAC,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The adapter-author face of the plugin bridge's adapter framework
|
|
3
|
+
* (PB-11). An adapter is zen-remote-internal code for ONE third-party
|
|
4
|
+
* plugin at its EXACT version: it declares which of that plugin's routes
|
|
5
|
+
* carry a session id and WHERE, and — optionally — hooks the two ends to
|
|
6
|
+
* refuse, strip or rewrite what the pure id relocation cannot express.
|
|
7
|
+
* Everything here sits on the framework shapes from
|
|
8
|
+
* `../plugin-adapter-core.js`; the framework itself never imports this
|
|
9
|
+
* file (only `src/index.ts` imports the ADAPTERS array from
|
|
10
|
+
* `./adapters/index.js`), which is what makes the whole directory
|
|
11
|
+
* removable without touching any other feature.
|
|
12
|
+
*
|
|
13
|
+
* An adapter implementation may import `types.ts` and pure utilities such
|
|
14
|
+
* as `../virtual-id.js` — nothing else.
|
|
15
|
+
*/
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
|
package/lib/admin-routes.js
CHANGED
|
@@ -53,6 +53,9 @@ export const ADMIN_PUSH_TEST_ROUTE = `${ADMIN_ROUTE_PREFIX}/push-test`;
|
|
|
53
53
|
/** GET: every shared session with its clocks, viewers and titles.
|
|
54
54
|
* POST `{action, sessionId?}`: share / unshare / unshare-all (T33a). */
|
|
55
55
|
export const ADMIN_SHARES_ROUTE = `${ADMIN_ROUTE_PREFIX}/shares`;
|
|
56
|
+
/** GET: the plugin bridge's registered plugins with their whole-machine-data
|
|
57
|
+
* consent, for the settings page's 插件桥 section (PB-5). */
|
|
58
|
+
export const ADMIN_PLUGIN_BRIDGE_ROUTE = `${ADMIN_ROUTE_PREFIX}/plugin-bridge`;
|
|
56
59
|
/** Longest wait for one gateway round-trip. */
|
|
57
60
|
const GATEWAY_TIMEOUT_MS = 5000;
|
|
58
61
|
/** Inbound admin body cap — the settings forms send a few hundred bytes. */
|
|
@@ -471,6 +474,54 @@ export function createAdminHandler(options) {
|
|
|
471
474
|
responseJson(res, 405, { ok: false, error: { code: 'method-not-allowed', message: 'Use GET or POST' } });
|
|
472
475
|
return;
|
|
473
476
|
}
|
|
477
|
+
if (route === ADMIN_PLUGIN_BRIDGE_ROUTE) {
|
|
478
|
+
// No registry, no route: a composition that never built the plugin
|
|
479
|
+
// bridge answers like any unknown admin path.
|
|
480
|
+
if (options.pluginBridge === undefined) {
|
|
481
|
+
responseJson(res, 404, { ok: false, error: { code: 'not-found', message: 'Unknown admin route' } });
|
|
482
|
+
return;
|
|
483
|
+
}
|
|
484
|
+
if (method !== 'GET') {
|
|
485
|
+
res.setHeader('Allow', 'GET');
|
|
486
|
+
responseJson(res, 405, { ok: false, error: { code: 'method-not-allowed', message: 'Use GET' } });
|
|
487
|
+
return;
|
|
488
|
+
}
|
|
489
|
+
// Wall 2, the pair/action rule: this listing feeds a MANAGEMENT
|
|
490
|
+
// surface (the consent toggles below it), so a request that arrived
|
|
491
|
+
// through the gateway is refused — consent is granted on the server
|
|
492
|
+
// machine, by its owner, period.
|
|
493
|
+
if (req.headers['x-zen-remote-via'] !== undefined) {
|
|
494
|
+
responseJson(res, 403, {
|
|
495
|
+
ok: false,
|
|
496
|
+
error: { code: 'via-gateway', message: '插件桥设置只能在服务端本机操作' },
|
|
497
|
+
});
|
|
498
|
+
return;
|
|
499
|
+
}
|
|
500
|
+
// The consent source is a live row read; a broken one reads as the
|
|
501
|
+
// empty map (nothing consented) instead of failing the listing.
|
|
502
|
+
let consent = {};
|
|
503
|
+
try {
|
|
504
|
+
consent = options.pluginBridge.getConsent();
|
|
505
|
+
}
|
|
506
|
+
catch {
|
|
507
|
+
consent = {};
|
|
508
|
+
}
|
|
509
|
+
// registry.list() arrives plugin-sorted; the map keeps that order.
|
|
510
|
+
// PB-11: `adapted` marks the entries an ADAPTER stands in for —
|
|
511
|
+
// zen-remote-internal forwarding for a plugin that never registered
|
|
512
|
+
// anything — so the settings page can say「由 zen-remote 适配」.
|
|
513
|
+
// Absent (a wiring that predates adapters) reads as none.
|
|
514
|
+
const adapted = options.pluginBridge.adaptedPlugins?.() ?? new Set();
|
|
515
|
+
const plugins = options.pluginBridge.registry.list().map((declaration) => ({
|
|
516
|
+
plugin: declaration.plugin,
|
|
517
|
+
version: declaration.version,
|
|
518
|
+
hasServerScope: declaration.routes.some((route) => route.scope === 'server'),
|
|
519
|
+
consent: consent[declaration.plugin] === true,
|
|
520
|
+
adapted: adapted.has(declaration.plugin),
|
|
521
|
+
}));
|
|
522
|
+
responseJson(res, 200, { ok: true, value: { plugins } });
|
|
523
|
+
return;
|
|
524
|
+
}
|
|
474
525
|
if (route === ADMIN_PAIR_ROUTE || route === ADMIN_ACTION_ROUTE || route === ADMIN_PUSH_TEST_ROUTE) {
|
|
475
526
|
if (method !== 'POST') {
|
|
476
527
|
res.setHeader('Allow', 'POST');
|
package/lib/admin-routes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-routes.js","sourceRoot":"","sources":["../src/admin-routes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"admin-routes.js","sourceRoot":"","sources":["../src/admin-routes.ts"],"names":[],"mappings":"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"}
|
package/lib/client-routes.js
CHANGED
|
@@ -391,6 +391,7 @@ export function createClientHandler(options) {
|
|
|
391
391
|
// that.
|
|
392
392
|
const intercept = options.getIntercept?.();
|
|
393
393
|
const fetchRouteIntercept = options.getFetchRouteIntercept?.();
|
|
394
|
+
const pluginRouteIntercept = options.getPluginRouteIntercept?.();
|
|
394
395
|
const compatRelay = options.getRelayClient?.();
|
|
395
396
|
const compat = compatRelay?.compat !== undefined || (intercept?.incompatibleCalls.length ?? 0) > 0
|
|
396
397
|
? {
|
|
@@ -401,9 +402,16 @@ export function createClientHandler(options) {
|
|
|
401
402
|
}
|
|
402
403
|
: undefined;
|
|
403
404
|
const withDiagnostics = (body) => {
|
|
404
|
-
|
|
405
|
+
// PB-2: the per-plugin bridge verdict rides EVERY status answer —
|
|
406
|
+
// the settings surface explains a not-bridged plugin whatever the
|
|
407
|
+
// connection state (unpaired reads all-offline, the honest verdict).
|
|
408
|
+
let next = { ...body, pluginBridge: options.getPluginBridgeStatus?.() ?? [] };
|
|
409
|
+
if (intercept !== undefined)
|
|
410
|
+
next = { ...next, intercept };
|
|
405
411
|
if (fetchRouteIntercept !== undefined)
|
|
406
412
|
next = { ...next, fetchRouteIntercept };
|
|
413
|
+
if (pluginRouteIntercept !== undefined)
|
|
414
|
+
next = { ...next, pluginRouteIntercept };
|
|
407
415
|
return compat === undefined ? next : { ...next, compat };
|
|
408
416
|
};
|
|
409
417
|
// The ROW decides its own two shapes first, per request (both fields
|
|
@@ -507,6 +515,11 @@ export function createClientHandler(options) {
|
|
|
507
515
|
// T34: the T34 client parts' data source — no token, no server
|
|
508
516
|
// address, nothing but the serving state, the compat verdict's
|
|
509
517
|
// difference flag, the display name and the closed-session map.
|
|
518
|
+
// PB-2 adds `bridgedPlugins`: the names whose bridge verdict is
|
|
519
|
+
// bridged RIGHT NOW, sorted (the list arrives plugin-sorted, but the
|
|
520
|
+
// sort is pinned here so the field's shape never depends on the
|
|
521
|
+
// registry's internal order). The host mount — no verdict source —
|
|
522
|
+
// answers [].
|
|
510
523
|
const relay = options.getRelayClient?.();
|
|
511
524
|
const intercept = options.getIntercept?.();
|
|
512
525
|
responseJson(res, 200, {
|
|
@@ -514,6 +527,10 @@ export function createClientHandler(options) {
|
|
|
514
527
|
versionMismatch: (relay?.compat?.different?.length ?? 0) > 0,
|
|
515
528
|
serverName: relay?.handshakeInfo?.serverName ?? '',
|
|
516
529
|
closed: Object.fromEntries((intercept?.closedSessions ?? []).map((record) => [record.sessionId, record.reason])),
|
|
530
|
+
bridgedPlugins: (options.getPluginBridgeStatus?.() ?? [])
|
|
531
|
+
.filter((status) => status.bridged)
|
|
532
|
+
.map((status) => status.plugin)
|
|
533
|
+
.sort(),
|
|
517
534
|
});
|
|
518
535
|
return;
|
|
519
536
|
}
|