dsh-zen-remote 2.3.10 → 2.4.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/CHANGELOG.md +44 -72
- package/README.md +94 -84
- package/README.zh-CN.md +90 -81
- package/bin/zen-remote.mjs +5 -0
- package/docs/interface.md +6 -6
- package/docs/remote-access.en.md +6 -4
- package/docs/remote-access.md +6 -4
- package/dsh-push.mjs +96 -10
- package/lib/adapters/dsh-better-sidebar/index.js +7 -3
- package/lib/adapters/dsh-better-sidebar/index.js.map +1 -1
- package/lib/admin-routes.js +10 -2
- package/lib/admin-routes.js.map +1 -1
- package/lib/cli/args.js +251 -0
- package/lib/cli/args.js.map +1 -0
- package/lib/cli/bootstrap.js +449 -0
- package/lib/cli/bootstrap.js.map +1 -0
- package/lib/cli/command-setup.js +484 -0
- package/lib/cli/command-setup.js.map +1 -0
- package/lib/cli/commands-client.js +359 -0
- package/lib/cli/commands-client.js.map +1 -0
- package/lib/cli/commands-host.js +1108 -0
- package/lib/cli/commands-host.js.map +1 -0
- package/lib/cli/commands-status.js +279 -0
- package/lib/cli/commands-status.js.map +1 -0
- package/lib/cli/config-writer.js +334 -0
- package/lib/cli/config-writer.js.map +1 -0
- package/lib/cli/context.js +10 -0
- package/lib/cli/context.js.map +1 -0
- package/lib/cli/i18n.js +620 -0
- package/lib/cli/i18n.js.map +1 -0
- package/lib/cli/ipc-client.js +160 -0
- package/lib/cli/ipc-client.js.map +1 -0
- package/lib/cli/ipc-server.js +464 -0
- package/lib/cli/ipc-server.js.map +1 -0
- package/lib/cli/main.js +245 -0
- package/lib/cli/main.js.map +1 -0
- package/lib/cli/qr-terminal.js +48 -0
- package/lib/cli/qr-terminal.js.map +1 -0
- package/lib/client-data/qr.js +286 -0
- package/lib/client-data/qr.js.map +1 -0
- package/lib/client-routes.js +308 -25
- package/lib/client-routes.js.map +1 -1
- package/lib/client.js +1013 -229
- package/lib/config.js +50 -12
- package/lib/config.js.map +1 -1
- package/lib/debug-report.js +28 -1
- package/lib/debug-report.js.map +1 -1
- package/lib/fetch-route-intercept.js +334 -26
- package/lib/fetch-route-intercept.js.map +1 -1
- package/lib/index.js +573 -366
- package/lib/index.js.map +1 -1
- package/lib/intercept.js +1833 -280
- package/lib/intercept.js.map +1 -1
- package/lib/lan-gate-server.cjs +36 -10
- package/lib/merge-streams.js +103 -11
- package/lib/merge-streams.js.map +1 -1
- package/lib/plugin-route-intercept.js +93 -63
- package/lib/plugin-route-intercept.js.map +1 -1
- package/lib/relay-access.js +8 -1
- package/lib/relay-access.js.map +1 -1
- package/lib/relay-client.js +133 -4
- package/lib/relay-client.js.map +1 -1
- package/lib/relay-pool.js +275 -0
- package/lib/relay-pool.js.map +1 -0
- package/lib/relay-server.js +269 -17
- package/lib/relay-server.js.map +1 -1
- package/lib/restart-fields.js +6 -4
- package/lib/restart-fields.js.map +1 -1
- package/lib/share-store.js +65 -27
- package/lib/share-store.js.map +1 -1
- package/lib/state-store.js +400 -0
- package/lib/state-store.js.map +1 -0
- package/lib/types/adapters/dsh-better-sidebar/index.d.ts +3 -2
- package/lib/types/adapters/dsh-better-sidebar/index.d.ts.map +1 -1
- package/lib/types/admin-routes.d.ts.map +1 -1
- package/lib/types/cli/args.d.ts +78 -0
- package/lib/types/cli/args.d.ts.map +1 -0
- package/lib/types/cli/bootstrap.d.ts +170 -0
- package/lib/types/cli/bootstrap.d.ts.map +1 -0
- package/lib/types/cli/command-setup.d.ts +72 -0
- package/lib/types/cli/command-setup.d.ts.map +1 -0
- package/lib/types/cli/commands-client.d.ts +36 -0
- package/lib/types/cli/commands-client.d.ts.map +1 -0
- package/lib/types/cli/commands-host.d.ts +82 -0
- package/lib/types/cli/commands-host.d.ts.map +1 -0
- package/lib/types/cli/commands-status.d.ts +46 -0
- package/lib/types/cli/commands-status.d.ts.map +1 -0
- package/lib/types/cli/config-writer.d.ts +92 -0
- package/lib/types/cli/config-writer.d.ts.map +1 -0
- package/lib/types/cli/context.d.ts +39 -0
- package/lib/types/cli/context.d.ts.map +1 -0
- package/lib/types/cli/i18n.d.ts +32 -0
- package/lib/types/cli/i18n.d.ts.map +1 -0
- package/lib/types/cli/ipc-client.d.ts +83 -0
- package/lib/types/cli/ipc-client.d.ts.map +1 -0
- package/lib/types/cli/ipc-server.d.ts +113 -0
- package/lib/types/cli/ipc-server.d.ts.map +1 -0
- package/lib/types/cli/main.d.ts +57 -0
- package/lib/types/cli/main.d.ts.map +1 -0
- package/lib/types/cli/qr-terminal.d.ts +17 -0
- package/lib/types/cli/qr-terminal.d.ts.map +1 -0
- package/lib/types/client/RemoteStatusIcon.d.ts.map +1 -1
- package/lib/types/client/current-session-report.d.ts +4 -0
- package/lib/types/client/current-session-report.d.ts.map +1 -1
- package/lib/types/client/effects/model-group-side.d.ts.map +1 -1
- package/lib/types/client/effects/remote-session.d.ts.map +1 -1
- package/lib/types/client/locales.d.ts +47 -3
- 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/settings/settings-css.d.ts +1 -1
- package/lib/types/client/settings/settings-css.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/wizard/GatewayWizard.d.ts.map +1 -1
- package/lib/types/client/wizard/cards/ProxyCard.d.ts.map +1 -1
- package/lib/types/client/wizard/wizard-css.d.ts +1 -1
- package/lib/types/client/wizard/wizard-css.d.ts.map +1 -1
- package/lib/types/client-data/model-group-side.d.ts +23 -2
- package/lib/types/client-data/model-group-side.d.ts.map +1 -1
- package/lib/types/client-data/remote-status.d.ts +47 -1
- package/lib/types/client-data/remote-status.d.ts.map +1 -1
- package/lib/types/client-data/settings-form.d.ts +85 -1
- package/lib/types/client-data/settings-form.d.ts.map +1 -1
- package/lib/types/client-data/wizard.d.ts +56 -1
- package/lib/types/client-data/wizard.d.ts.map +1 -1
- package/lib/types/client-routes.d.ts +25 -1
- package/lib/types/client-routes.d.ts.map +1 -1
- package/lib/types/config.d.ts +40 -14
- package/lib/types/config.d.ts.map +1 -1
- package/lib/types/debug-report.d.ts.map +1 -1
- package/lib/types/fetch-route-intercept.d.ts +66 -8
- package/lib/types/fetch-route-intercept.d.ts.map +1 -1
- package/lib/types/index.d.ts +9 -2
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/intercept.d.ts +72 -10
- package/lib/types/intercept.d.ts.map +1 -1
- package/lib/types/merge-streams.d.ts +79 -1
- package/lib/types/merge-streams.d.ts.map +1 -1
- package/lib/types/plugin-route-intercept.d.ts +25 -9
- package/lib/types/plugin-route-intercept.d.ts.map +1 -1
- package/lib/types/relay-access.d.ts +3 -1
- package/lib/types/relay-access.d.ts.map +1 -1
- package/lib/types/relay-client.d.ts +23 -2
- package/lib/types/relay-client.d.ts.map +1 -1
- package/lib/types/relay-pool.d.ts +148 -0
- package/lib/types/relay-pool.d.ts.map +1 -0
- package/lib/types/relay-server.d.ts +30 -3
- package/lib/types/relay-server.d.ts.map +1 -1
- package/lib/types/restart-fields.d.ts +5 -5
- package/lib/types/restart-fields.d.ts.map +1 -1
- package/lib/types/share-store.d.ts.map +1 -1
- package/lib/types/state-store.d.ts +179 -0
- package/lib/types/state-store.d.ts.map +1 -0
- package/lib/types/upload-limits.d.ts +15 -0
- package/lib/types/upload-limits.d.ts.map +1 -1
- package/lib/types/virtual-id.d.ts +21 -0
- package/lib/types/virtual-id.d.ts.map +1 -1
- package/lib/types/wizard/probe.d.ts.map +1 -1
- package/lib/types/wizard/proxy-snippets.d.ts +3 -0
- package/lib/types/wizard/proxy-snippets.d.ts.map +1 -1
- package/lib/types/wizard/routes.d.ts +1 -0
- package/lib/types/wizard/routes.d.ts.map +1 -1
- package/lib/types/wizard/status.d.ts +9 -0
- package/lib/types/wizard/status.d.ts.map +1 -1
- package/lib/types/wizard/verify.d.ts +3 -0
- package/lib/types/wizard/verify.d.ts.map +1 -1
- package/lib/upload-limits.js +15 -0
- package/lib/upload-limits.js.map +1 -1
- package/lib/virtual-id.js +60 -0
- package/lib/virtual-id.js.map +1 -1
- package/lib/wizard/probe.js +46 -1
- package/lib/wizard/probe.js.map +1 -1
- package/lib/wizard/proxy-snippets.js +14 -1
- package/lib/wizard/proxy-snippets.js.map +1 -1
- package/lib/wizard/routes.js +23 -4
- package/lib/wizard/routes.js.map +1 -1
- package/lib/wizard/status.js +21 -0
- package/lib/wizard/status.js.map +1 -1
- package/lib/wizard/verify.js +31 -8
- package/lib/wizard/verify.js.map +1 -1
- package/package.json +8 -4
- package/pwa/icons/badge-96.png +0 -0
- package/pwa/icons/badge.svg +1 -0
- package/pwa/manifest.json +2 -1
- package/pwa/sw.js +3 -1
- package/scripts/check-debug-report.mjs +41 -1
- package/scripts/check-settings-form.mjs +14 -3
- package/scripts/check-settings-view.mjs +247 -0
- package/scripts/check-wizard-ui.mjs +37 -0
- package/src/adapters/dsh-better-sidebar/index.ts +7 -3
- package/src/admin-routes.ts +10 -2
- package/src/cli/args.ts +289 -0
- package/src/cli/bootstrap.ts +569 -0
- package/src/cli/command-setup.ts +540 -0
- package/src/cli/commands-client.ts +369 -0
- package/src/cli/commands-host.ts +1127 -0
- package/src/cli/commands-status.ts +296 -0
- package/src/cli/config-writer.ts +354 -0
- package/src/cli/context.ts +38 -0
- package/src/cli/i18n.ts +645 -0
- package/src/cli/ipc-client.ts +216 -0
- package/src/cli/ipc-server.ts +531 -0
- package/src/cli/main.ts +285 -0
- package/src/cli/qr-terminal.ts +49 -0
- package/src/client/RemoteStatusIcon.tsx +4 -1
- package/src/client/current-session-report.ts +28 -4
- package/src/client/effects/model-group-side.ts +19 -5
- package/src/client/effects/remote-session.ts +26 -6
- package/src/client/locales.ts +96 -6
- package/src/client/settings/SettingsSection.tsx +287 -92
- package/src/client/settings/settings-css.ts +18 -0
- package/src/client/styles/remote-session.css.ts +15 -1
- package/src/client/wizard/GatewayWizard.tsx +470 -109
- package/src/client/wizard/cards/ProxyCard.tsx +2 -1
- package/src/client/wizard/wizard-css.ts +23 -0
- package/src/client-data/model-group-side.ts +37 -10
- package/src/client-data/remote-status.ts +112 -17
- package/src/client-data/settings-form.ts +164 -8
- package/src/client-data/wizard.ts +112 -2
- package/src/client-routes.ts +334 -26
- package/src/config.ts +62 -16
- package/src/debug-report.ts +27 -1
- package/src/fetch-route-intercept.ts +381 -32
- package/src/index.ts +575 -370
- package/src/intercept.ts +1866 -286
- package/src/merge-streams.ts +155 -10
- package/src/plugin-route-intercept.ts +120 -71
- package/src/relay-access.ts +14 -3
- package/src/relay-client.ts +163 -5
- package/src/relay-pool.ts +387 -0
- package/src/relay-server.ts +312 -16
- package/src/restart-fields.ts +6 -4
- package/src/share-store.ts +59 -26
- package/src/state-store.ts +428 -0
- package/src/upload-limits.ts +16 -0
- package/src/virtual-id.ts +57 -0
- package/src/wizard/probe.ts +54 -2
- package/src/wizard/proxy-snippets.ts +17 -2
- package/src/wizard/routes.ts +24 -5
- package/src/wizard/status.ts +28 -0
- package/src/wizard/verify.ts +33 -11
- package/AGENTS.md +0 -185
- package/docs/adr/0001-plugin-bridge-forwards-plugin-routes.md +0 -15
- package/docs/adr/0002-relay-emulates-websocket.md +0 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wizard.d.ts","sourceRoot":"","sources":["../../../src/client-data/wizard.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"wizard.d.ts","sourceRoot":"","sources":["../../../src/client-data/wizard.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,7 @@ import type { CurrentSessionRead, InterceptDiagnostics } from './intercept.js';
|
|
|
31
31
|
import type { PluginRouteInterceptDiagnostics } from './plugin-route-intercept.js';
|
|
32
32
|
import type { BridgeStatus } from './plugin-bridge.js';
|
|
33
33
|
import type { RelayClient } from './relay-client.js';
|
|
34
|
+
import type { RelayPool } from './relay-pool.js';
|
|
34
35
|
/** Prefix all client routes live under (one webServer prefix registration). */
|
|
35
36
|
export declare const CLIENT_ROUTE_PREFIX = "/_dsh/zen-remote/client";
|
|
36
37
|
/** POST `{serverUrl, code, name}`: redeem a desktop pairing code. */
|
|
@@ -84,6 +85,12 @@ export declare const CLIENT_UNSHARE_ROUTE = "/_dsh/zen-remote/client/unshare";
|
|
|
84
85
|
* means a readable signal says nothing is open; the sink stores the value
|
|
85
86
|
* and re-judges the mergers immediately. */
|
|
86
87
|
export declare const CLIENT_CURRENT_SESSION_ROUTE = "/_dsh/zen-remote/client/current-session";
|
|
88
|
+
/** POST `{entryId?: string, all?: boolean}` (MS-5): remove one paired server
|
|
89
|
+
* by its entry id, or every paired server at once (`all: true`). The paired
|
|
90
|
+
* list lives in `zen-remote-state.json`; this route goes through the pool so
|
|
91
|
+
* the live clients stop with their records. Pool-mode only — a mount without
|
|
92
|
+
* a pool has no paired list to edit and answers the unknown-path 404. */
|
|
93
|
+
export declare const CLIENT_UNPAIR_ROUTE = "/_dsh/zen-remote/client/unpair";
|
|
87
94
|
/** Prefix of the plain-HTTP relay routes (T41b):
|
|
88
95
|
* `GET ${CLIENT_HTTP_ROUTE_PREFIX}<route>?<query>` relays one intercepted
|
|
89
96
|
* `/api/<route>` call (the fetch wrapper's rewrites land here) to the
|
|
@@ -113,6 +120,21 @@ export interface ClientHandlerOptions {
|
|
|
113
120
|
* never connected, so the settings page still gets a fresh answer while
|
|
114
121
|
* the startup `connect()` is still unpaired. */
|
|
115
122
|
getRelayClient?: () => RelayClient | undefined;
|
|
123
|
+
/** MS-5 POOL mode: the multi-server relay pool. When present it REPLACES
|
|
124
|
+
* the row-driven single-client facts everywhere: the paired list (not the
|
|
125
|
+
* row's serverUrl/deviceToken) is the truth, claim pairs straight into the
|
|
126
|
+
* pool (the token never reaches the browser), unpair/reconnect address
|
|
127
|
+
* pool entries, and status / remote-status report the whole list (the
|
|
128
|
+
* top level keeps the FIRST entry's fields so the existing page keeps
|
|
129
|
+
* rendering). The single-`getRelayClient` form above stays exactly as it
|
|
130
|
+
* was for the old wiring and the tests. */
|
|
131
|
+
pool?: RelayPool;
|
|
132
|
+
/** MS-5: the PB-2 bridge verdict for ONE pool entry, computed PER CALL off
|
|
133
|
+
* that entry's own handshake table and connection state — per-server
|
|
134
|
+
* isolation for the status / remote-status bodies. Undefined (old tests,
|
|
135
|
+
* the unwired host mount): every per-server `pluginBridge` / per-server
|
|
136
|
+
* `bridgedPlugins` list reads `[]`. */
|
|
137
|
+
getPluginBridgeStatusForServer?: (serverId: string | undefined, client: RelayClient) => BridgeStatus[];
|
|
116
138
|
/** The typert interception's diagnostics (T23b-1), read live per request.
|
|
117
139
|
* Shapes, counters and failure codes only — never a token. Undefined when
|
|
118
140
|
* this composition never even attempted an install (no typertGateway). */
|
|
@@ -147,7 +169,9 @@ export interface ClientHandlerOptions {
|
|
|
147
169
|
* mount's remoteStatusOnly wall 404s the route before this matters, and
|
|
148
170
|
* a client handler WITHOUT the sink answers the same 404 (no sink, no
|
|
149
171
|
* route). */
|
|
150
|
-
onCurrentSession?: (read: CurrentSessionRead) => void;
|
|
172
|
+
onCurrentSession?: (read: CurrentSessionRead, reportedLang?: 'zh' | 'en') => void;
|
|
173
|
+
/** Language for route error messages (`'zh'` default, `'en'` English). */
|
|
174
|
+
lang?: 'zh' | 'en' | (() => 'zh' | 'en') | undefined;
|
|
151
175
|
/** CU-3, the debug-report route's inputs — all optional; the route answers
|
|
152
176
|
* its 404-shaped refusal without them (an unwired composition must not
|
|
153
177
|
* pretend to have diagnostics). Wired on BOTH role mounts.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-routes.d.ts","sourceRoot":"","sources":["../../src/client-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAKvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAA;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAC9E,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAA;AAElF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGtD,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"client-routes.d.ts","sourceRoot":"","sources":["../../src/client-routes.ts"],"names":[],"mappings":"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"}
|
package/lib/types/config.d.ts
CHANGED
|
@@ -32,9 +32,11 @@ import z from '@deepseek-ai/schemastery';
|
|
|
32
32
|
export type ConfigSource = 'env' | 'row' | 'file' | 'default';
|
|
33
33
|
/** The effective configuration one resolved value set, defaults included. */
|
|
34
34
|
export interface ZenRemoteConfig {
|
|
35
|
-
/** Which half of the plugin runs in this DSH process
|
|
36
|
-
*
|
|
37
|
-
|
|
35
|
+
/** Which half of the plugin runs in this DSH process. `'host'` serves the
|
|
36
|
+
* gateway and never dials out; `'client'` dials one server and serves no
|
|
37
|
+
* gateway; `'peer'` (MS Phase 2) does both. Anything the layers leave
|
|
38
|
+
* unresolved means `'host'` (see {@link resolveRole}). */
|
|
39
|
+
role: 'host' | 'client' | 'peer';
|
|
38
40
|
/** Port the gateway child listens on. */
|
|
39
41
|
port: number;
|
|
40
42
|
/** Bind address of the gateway child. */
|
|
@@ -60,6 +62,12 @@ export interface ZenRemoteConfig {
|
|
|
60
62
|
pushTurnEnd: boolean;
|
|
61
63
|
/** Register the model-facing `push_notify` tool. */
|
|
62
64
|
pushTool: boolean;
|
|
65
|
+
/** Master switch for session notifications: when false, disables all push
|
|
66
|
+
* listeners and does not register push_notify. */
|
|
67
|
+
pushEnabled: boolean;
|
|
68
|
+
/** Include the source session name on the first line of push notification
|
|
69
|
+
* bodies. */
|
|
70
|
+
pushSessionName: boolean;
|
|
63
71
|
/** Server display name, at most {@link SERVER_NAME_MAX} characters. */
|
|
64
72
|
serverName: string;
|
|
65
73
|
/** Idle-sleep window of a remote-enabled session: after this many hours
|
|
@@ -127,18 +135,32 @@ export declare function resolveConfig(row: unknown, file: Record<string, unknown
|
|
|
127
135
|
*/
|
|
128
136
|
export declare function readFileConfig(env?: NodeJS.ProcessEnv): Record<string, unknown>;
|
|
129
137
|
/**
|
|
130
|
-
* The normalized role behind a row's `role` knob.
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
*
|
|
134
|
-
* a `{ get() }` live reference,
|
|
135
|
-
*
|
|
136
|
-
* {@link resolveConfig} validates each
|
|
137
|
-
* first, so an invalid row role can still be rescued
|
|
138
|
-
* function answers the final merged value. Kept on
|
|
139
|
-
* surface for test/role-wiring.test.cjs.
|
|
138
|
+
* The normalized role behind a row's `role` knob. Only the exact strings
|
|
139
|
+
* `'client'` and `'peer'` mean those roles — everything else degrades to
|
|
140
|
+
* host, so a typo runs the full plugin rather than silently dropping the
|
|
141
|
+
* gateway and push halves. The value is read through {@link unwrapVolatile}
|
|
142
|
+
* first: since T17 every row field arrives as a `{ get() }` live reference,
|
|
143
|
+
* and comparing the wrapper itself against a role string would always answer
|
|
144
|
+
* host (T17b). Resolution-order note: {@link resolveConfig} validates each
|
|
145
|
+
* layer against the enum first, so an invalid row role can still be rescued
|
|
146
|
+
* by the file layer; this function answers the final merged value. Kept on
|
|
147
|
+
* the main entry's export surface for test/role-wiring.test.cjs.
|
|
140
148
|
*/
|
|
141
|
-
export declare function resolveRole(row: unknown): 'host' | 'client';
|
|
149
|
+
export declare function resolveRole(row: unknown): 'host' | 'client' | 'peer';
|
|
150
|
+
/**
|
|
151
|
+
* Whether the role serves remote access to OTHER machines: host and peer do
|
|
152
|
+
* (the gateway, relay and push halves mount), a pure client does not. The
|
|
153
|
+
* role-gate the wiring reads INSTEAD of a `=== 'host'` compare, so a peer
|
|
154
|
+
* deploy gets the serving halves without every call site growing a third
|
|
155
|
+
* branch (MS Phase 2 wires it through).
|
|
156
|
+
*/
|
|
157
|
+
export declare function servesRole(role: 'host' | 'client' | 'peer'): boolean;
|
|
158
|
+
/**
|
|
159
|
+
* Whether the role dials OUT to paired servers: client and peer do (the
|
|
160
|
+
* relay client / pool), a pure host has nothing to dial. {@link servesRole}'s
|
|
161
|
+
* counterpart.
|
|
162
|
+
*/
|
|
163
|
+
export declare function connectsRole(role: 'host' | 'client' | 'peer'): boolean;
|
|
142
164
|
/**
|
|
143
165
|
* The DSH loader's config schema for the plugin row: what the settings form
|
|
144
166
|
* renders and what it hands `apply()`. Every field is `z.any()` on purpose —
|
|
@@ -185,6 +207,8 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
|
185
207
|
pushSummary: z<any, any, "volatile">;
|
|
186
208
|
pushTurnEnd: z<any, any, "volatile">;
|
|
187
209
|
pushTool: z<any, any, "volatile">;
|
|
210
|
+
pushEnabled: z<any, any, "volatile">;
|
|
211
|
+
pushSessionName: z<any, any, "volatile">;
|
|
188
212
|
serverName: z<any, any, "volatile">;
|
|
189
213
|
idleHours: z<any, any, "volatile">;
|
|
190
214
|
autoShareNewSessions: z<any, any, "volatile">;
|
|
@@ -215,6 +239,8 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
|
215
239
|
pushSummary: z<any, any, "volatile">;
|
|
216
240
|
pushTurnEnd: z<any, any, "volatile">;
|
|
217
241
|
pushTool: z<any, any, "volatile">;
|
|
242
|
+
pushEnabled: z<any, any, "volatile">;
|
|
243
|
+
pushSessionName: z<any, any, "volatile">;
|
|
218
244
|
serverName: z<any, any, "volatile">;
|
|
219
245
|
idleHours: z<any, any, "volatile">;
|
|
220
246
|
autoShareNewSessions: z<any, any, "volatile">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAKH,OAAO,CAAC,MAAM,0BAA0B,CAAA;AAExC,mEAAmE;AACnE,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAA;AAK7D,6EAA6E;AAC7E,MAAM,WAAW,eAAe;IAC9B;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug-report.d.ts","sourceRoot":"","sources":["../../src/debug-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD,gEAAgE;AAChE,MAAM,WAAW,oBAAoB;IACnC,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAA;IACnB,qEAAqE;IACrE,aAAa,EAAE,MAAM,CAAA;IACrB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAA;IAClB,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAA;IAChB,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAA;IACZ,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;2EAC2E;AAC3E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,oBAAoB,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC;mDAC+C;IAC/C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC;kDAC8C;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACxC,6CAA6C;IAC7C,IAAI,EAAE,SAAS,YAAY,EAAE,CAAA;IAC7B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"debug-report.d.ts","sourceRoot":"","sources":["../../src/debug-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD,gEAAgE;AAChE,MAAM,WAAW,oBAAoB;IACnC,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAA;IACnB,qEAAqE;IACrE,aAAa,EAAE,MAAM,CAAA;IACrB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAA;IAClB,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAA;IAChB,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAA;IACZ,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;2EAC2E;AAC3E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,oBAAoB,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC;mDAC+C;IAC/C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC;kDAC8C;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACxC,6CAA6C;IAC7C,IAAI,EAAE,SAAS,YAAY,EAAE,CAAA;IAC7B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAyDpF"}
|
|
@@ -46,12 +46,28 @@
|
|
|
46
46
|
* and ours goes inert instead (the same posture as intercept.ts).
|
|
47
47
|
*/
|
|
48
48
|
import type { RelayClient } from './relay-client.js';
|
|
49
|
+
import { MAX_FILE_MEDIA_BYTES } from './upload-limits.js';
|
|
49
50
|
/** The host's upload route, verbatim from its registration (RT
|
|
50
51
|
* dsh-client-file-upload lib/index.js:73). */
|
|
51
52
|
export declare const FILE_UPLOAD_PATH = "/api/session/uploadFileBinary";
|
|
52
53
|
/** The host's session-log export route (RT dsh-session-log-export
|
|
53
54
|
* lib/index.js:488). */
|
|
54
55
|
export declare const SESSION_EXPORT_PATH = "/api/session.export";
|
|
56
|
+
/** The host's media route (P55-2): how a Markdown image `` in a
|
|
57
|
+
* session body actually loads — the renderer resolves the path against the
|
|
58
|
+
* session cwd into an ABSOLUTE server path and the browser's `<img>` asks
|
|
59
|
+
* for `/api/file?path=<encoded>` natively (no `window.fetch`, no
|
|
60
|
+
* `sessionId`), landing in this very table (RT
|
|
61
|
+
* dsh-api-session-controller lib/types/media-references.js:
|
|
62
|
+
* `registerFetchRoute({ path: '/api/file', methods: ['GET','HEAD'],
|
|
63
|
+
* requestBody: 'buffered', … })`). */
|
|
64
|
+
export declare const FILE_MEDIA_PATH = "/api/file";
|
|
65
|
+
/** The byte cap one forwarded file may answer with — defined once in
|
|
66
|
+
* src/upload-limits.ts (the one home of every MiB-scale ceiling, per the
|
|
67
|
+
* upload unification and scripts/check-upload-limits.mjs), re-exported
|
|
68
|
+
* here for the consumers the route narrative belongs to. */
|
|
69
|
+
export { MAX_FILE_MEDIA_BYTES };
|
|
70
|
+
export type FetchRouteLang = 'zh' | 'en';
|
|
55
71
|
/** Verdict of {@link checkFetchRouteShape}. STRUCTURAL only: `ok` answers
|
|
56
72
|
* "is this a connection service with a fetch-route table at all"; each
|
|
57
73
|
* route's entry findings travel as `notes` — present/absent/misshaped — and
|
|
@@ -100,15 +116,20 @@ export declare function shouldFallbackInstall(state: {
|
|
|
100
116
|
* Check the RAW connection service instance against the shape the wrap
|
|
101
117
|
* depends on. Pure inspection — nothing is mutated, so a failed check
|
|
102
118
|
* leaves every route exactly as it was. Only the structural facts refuse;
|
|
103
|
-
* the
|
|
119
|
+
* the entries' facts are described in `notes` (they attach lazily).
|
|
120
|
+
*
|
|
121
|
+
* `probeFileMedia` (P55-2) adds the `/api/file` entry's note and — load-
|
|
122
|
+
* bearing for the legacy probe-count pins — its table READ. It defaults to
|
|
123
|
+
* false so a caller without a `resolveRemoteFileScope` (every pre-P55-2
|
|
124
|
+
* call site and test) touches exactly the two routes it always did.
|
|
104
125
|
*/
|
|
105
|
-
export declare function checkFetchRouteShape(connection: unknown): FetchRouteShapeCheck;
|
|
126
|
+
export declare function checkFetchRouteShape(connection: unknown, probeFileMedia?: boolean): FetchRouteShapeCheck;
|
|
106
127
|
/** One refusal the wrappers answered, in the diagnostics ring. */
|
|
107
128
|
export interface FetchRouteFailureRecord {
|
|
108
129
|
/** ISO timestamp of the moment the refusal was answered. */
|
|
109
130
|
time: string;
|
|
110
131
|
/** Which wrapper answered it. */
|
|
111
|
-
route: 'upload' | 'export';
|
|
132
|
+
route: 'upload' | 'export' | 'file';
|
|
112
133
|
code: string;
|
|
113
134
|
}
|
|
114
135
|
/** What the client status route surfaces about this interception: flags,
|
|
@@ -143,17 +164,51 @@ export interface FetchRouteInterceptDiagnostics {
|
|
|
143
164
|
exportBlocked: number;
|
|
144
165
|
/** The most recent refusals, oldest first, capped. */
|
|
145
166
|
recentFailures: FetchRouteFailureRecord[];
|
|
167
|
+
/** The media entry currently holds our wrapper. */
|
|
168
|
+
fileWrapped?: boolean;
|
|
169
|
+
/** The media entry was absent at last check and the attach retry is still
|
|
170
|
+
* running. */
|
|
171
|
+
filePending?: boolean;
|
|
172
|
+
/** The media entry was present but misshaped — attach refused for THIS
|
|
173
|
+
* route only; the reason is stable diagnostics text. */
|
|
174
|
+
fileAttachRefused?: string | undefined;
|
|
175
|
+
/** Every media request that entered the wrapper, passthroughs included. */
|
|
176
|
+
fileCalls?: number;
|
|
177
|
+
/** Media requests served through the relay. */
|
|
178
|
+
fileForwarded?: number;
|
|
179
|
+
/** Media requests refused (offline, mismatch, relay/remote errors,
|
|
180
|
+
* oversize). */
|
|
181
|
+
fileRefused?: number;
|
|
146
182
|
}
|
|
147
183
|
export interface InstallFetchRouteInterceptOptions {
|
|
148
184
|
/** The RAW connection service instance
|
|
149
185
|
* (`ctx.connection[symbols.original]`) — the one whose `fetchRoutes` Map
|
|
150
186
|
* the shared handler reads per request. */
|
|
151
187
|
connection: object;
|
|
152
|
-
/**
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
188
|
+
/** SINGLE-SERVER mode: the client relay client (T23a) the uploads travel
|
|
189
|
+
* through. Required together with {@link getServerId} unless
|
|
190
|
+
* {@link getRelayForServer} is given (MS-5's pool wiring). */
|
|
191
|
+
relay?: RelayClient;
|
|
192
|
+
/** SINGLE-SERVER mode: the CURRENT handshake's server id, read live per
|
|
193
|
+
* call; `undefined` makes every remote upload a `remote-offline`. */
|
|
194
|
+
getServerId?: () => string | undefined;
|
|
195
|
+
/** MS-4: the relay client serving ONE paired server, looked up by the
|
|
196
|
+
* virtual id's serverId half per upload (the connection pool's
|
|
197
|
+
* `getByServerId`). When given, routing reads it alone: `undefined` (a
|
|
198
|
+
* server the pool does not hold) answers `remote-mismatch`, a held client
|
|
199
|
+
* that is not online `remote-offline`. Absent — the single-server wiring —
|
|
200
|
+
* the upload goes through `relay` exactly when the id belongs to
|
|
201
|
+
* `getServerId()`, with the original verdict order. */
|
|
202
|
+
getRelayForServer?: (serverId: string) => RelayClient | undefined;
|
|
203
|
+
/** P55-2: the intercept handle's session-attribution answer (live, so the
|
|
204
|
+
* wiring forwards `interceptHandle?.resolveRemoteFileScope`). Its PRESENCE
|
|
205
|
+
* is the media mount's switch: without it, `/api/file` is never probed,
|
|
206
|
+
* wrapped, or counted — the pre-P55-2 behavior, byte for byte (the
|
|
207
|
+
* legacy probe-count pins depend on this). */
|
|
208
|
+
resolveRemoteFileScope?: (path: string) => {
|
|
209
|
+
serverId: string;
|
|
210
|
+
sessionId: string;
|
|
211
|
+
} | undefined;
|
|
157
212
|
/** Progress logging, wired to the context logger by index.ts. */
|
|
158
213
|
log?: (format: string, ...args: unknown[]) => void;
|
|
159
214
|
/** The lazy-attach retry cadence (T51-fix): how often the table is
|
|
@@ -161,6 +216,9 @@ export interface InstallFetchRouteInterceptOptions {
|
|
|
161
216
|
* before giving up. Defaults 3000 ms × 10; tests shrink both. */
|
|
162
217
|
attachRetryMs?: number;
|
|
163
218
|
attachAttempts?: number;
|
|
219
|
+
/** Language for error messages (`'zh'` default, `'en'` English). Accepts a
|
|
220
|
+
* getter for live resolution. */
|
|
221
|
+
lang?: FetchRouteLang | (() => FetchRouteLang) | undefined;
|
|
164
222
|
}
|
|
165
223
|
export interface FetchRouteInterceptHandle {
|
|
166
224
|
/** Restore every attached entry — each ONLY while it still holds our
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-route-intercept.d.ts","sourceRoot":"","sources":["../../src/fetch-route-intercept.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAIpD;8CAC8C;AAC9C,eAAO,MAAM,gBAAgB,kCAAkC,CAAA;AAE/D;wBACwB;AACxB,eAAO,MAAM,mBAAmB,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"fetch-route-intercept.d.ts","sourceRoot":"","sources":["../../src/fetch-route-intercept.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAIpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAEzD;8CAC8C;AAC9C,eAAO,MAAM,gBAAgB,kCAAkC,CAAA;AAE/D;wBACwB;AACxB,eAAO,MAAM,mBAAmB,wBAAwB,CAAA;AAExD;;;;;;;sCAOsC;AACtC,eAAO,MAAM,eAAe,cAAc,CAAA;AAE1C;;;4DAG4D;AAC5D,OAAO,EAAE,oBAAoB,EAAE,CAAA;AAqD/B,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,CAAA;AAkCxC;;;0EAG0E;AAC1E,MAAM,MAAM,oBAAoB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAEnG;kDACkD;AAClD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;CAC/C;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,UAAU,EAAE,OAAO,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,EAAE,OAAO,CAAA;CACzB,GAAG,OAAO,CAEV;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,OAAO,EAAE,cAAc,UAAQ,GAAG,oBAAoB,CAgBtG;AA0BD,kEAAkE;AAClE,MAAM,WAAW,uBAAuB;IACtC,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAA;IACZ,iCAAiC;IACjC,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;IACnC,IAAI,EAAE,MAAM,CAAA;CACb;AAED;sEACsE;AACtE,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,oBAAoB,CAAA;IAC3B,oDAAoD;IACpD,aAAa,EAAE,OAAO,CAAA;IACtB;mBACe;IACf,aAAa,EAAE,OAAO,CAAA;IACtB;kCAC8B;IAC9B,aAAa,EAAE,OAAO,CAAA;IACtB;kCAC8B;IAC9B,aAAa,EAAE,OAAO,CAAA;IACtB;sEACkE;IAClE,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,kCAAkC;IAClC,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAA;IACnB,8DAA8D;IAC9D,eAAe,EAAE,MAAM,CAAA;IACvB;2CACuC;IACvC,aAAa,EAAE,MAAM,CAAA;IACrB,yDAAyD;IACzD,aAAa,EAAE,MAAM,CAAA;IACrB,sDAAsD;IACtD,cAAc,EAAE,uBAAuB,EAAE,CAAA;IAIzC,mDAAmD;IACnD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;kBACc;IACd,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;4DACwD;IACxD,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;oBACgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,iCAAiC;IAChD;;+CAE2C;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB;;kEAE8D;IAC9D,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB;yEACqE;IACrE,WAAW,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;IACtC;;;;;;2DAMuD;IACvD,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAA;IACjE;;;;kDAI8C;IAC9C,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;IAC9F,iEAAiE;IACjE,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;IAClD;;qEAEiE;IACjE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;qCACiC;IACjC,IAAI,CAAC,EAAE,cAAc,GAAG,CAAC,MAAM,cAAc,CAAC,GAAG,SAAS,CAAA;CAC3D;AAED,MAAM,WAAW,yBAAyB;IACxC;;;yCAGqC;IACrC,SAAS,IAAI,IAAI,CAAA;IACjB,6BAA6B;IAC7B,WAAW,IAAI,8BAA8B,CAAA;CAC9C;AAkDD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,iCAAiC,GAAG,yBAAyB,CA2chH"}
|
package/lib/types/index.d.ts
CHANGED
|
@@ -22,11 +22,12 @@ declare module '@deepseek-ai/cordis' {
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
import type { AdminAdmission } from './admin-routes.js';
|
|
25
|
+
import type { RelayPool } from './relay-pool.js';
|
|
25
26
|
import type { RelayClient } from './relay-client.js';
|
|
26
27
|
import type { BridgeRegistry } from './plugin-bridge.js';
|
|
27
28
|
import { DEFAULT_MAX_UPLOAD_BYTES } from './upload-limits.js';
|
|
28
29
|
export type { BridgeDeclaration, ZenRemoteService } from './plugin-bridge.js';
|
|
29
|
-
export { Config, resolveRole } from './config.js';
|
|
30
|
+
export { Config, resolveRole, servesRole, connectsRole } from './config.js';
|
|
30
31
|
export { sameOriginPost } from './http.js';
|
|
31
32
|
/** Exact route the phone composer POSTs one file body to. */
|
|
32
33
|
export declare const UPLOAD_ROUTE = "/_dsh/mobile-nav/upload";
|
|
@@ -37,8 +38,14 @@ export declare const CLIENT_CONFIG_ROUTE = "/_dsh/mobile-nav/client-config";
|
|
|
37
38
|
/** Workspace-relative directory uploads land in (also the `@` prefix the composer inserts). */
|
|
38
39
|
export declare const UPLOAD_DIR = ".dsh-uploads";
|
|
39
40
|
export { DEFAULT_MAX_UPLOAD_BYTES };
|
|
40
|
-
/** The live client-role relay client, if one was built.
|
|
41
|
+
/** The live client-role relay client, if one was built. MS-5: the wiring no
|
|
42
|
+
* longer builds one — the relay POOL below replaced it — so this stays
|
|
43
|
+
* undefined in production compositions; the getter (and the client-routes
|
|
44
|
+
* option of the same shape) remain for the single-client contract's old
|
|
45
|
+
* consumers and tests. */
|
|
41
46
|
export declare function getRelayClient(): RelayClient | undefined;
|
|
47
|
+
/** The live client-role relay pool, if one was built. */
|
|
48
|
+
export declare function getRelayPool(): RelayPool | undefined;
|
|
42
49
|
/** The live bridge registry, if a plugin row is currently applied. */
|
|
43
50
|
export declare function getBridgeRegistry(): BridgeRegistry | undefined;
|
|
44
51
|
/** Host half config. Every field below arrives through the loader as a
|
package/lib/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAIhE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAWlD,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,MAAM;QACd,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,CAAA;KAClD;CACF;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAIhE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAWlD,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,MAAM;QACd,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,CAAA;KAClD;CACF;AASD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAKvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAgCpD,OAAO,KAAK,EAAqB,cAAc,EAAqD,MAAM,oBAAoB,CAAA;AAI9H,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAQ7D,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAO7E,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAS1C,6DAA6D;AAC7D,eAAO,MAAM,YAAY,4BAA4B,CAAA;AA8BrD;;kEAEkE;AAClE,eAAO,MAAM,mBAAmB,mCAAmC,CAAA;AAEnE,+FAA+F;AAC/F,eAAO,MAAM,UAAU,iBAAiB,CAAA;AAMxC,OAAO,EAAE,wBAAwB,EAAE,CAAA;AAiBnC;;;;0BAI0B;AAC1B,wBAAgB,cAAc,IAAI,WAAW,GAAG,SAAS,CAExD;AAYD,yDAAyD;AACzD,wBAAgB,YAAY,IAAI,SAAS,GAAG,SAAS,CAEpD;AAaD,sEAAsE;AACtE,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,SAAS,CAE9D;AAED;;;;;8DAK8D;AAC9D,MAAM,WAAW,eAAe;IAC9B;;;;qEAIiE;IACjE,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;iEAC6D;IAC7D,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;uDAGmD;IACnD,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;;;;;+DAO2D;IAC3D,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B;wCACoC;IACpC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B;wEACoE;IACpE,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGhH;AA6BD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAKnE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAgBlD;AA+ID;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,cAAc,EAChD,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAClD,OAAO,CAAC,IAAI,CAAC,CA0Cf;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,eAAoB,GAAG,IAAI,CA0kDtE"}
|
package/lib/types/intercept.d.ts
CHANGED
|
@@ -79,8 +79,10 @@
|
|
|
79
79
|
* generation (client face: pumpEvents aborts on answer failures).
|
|
80
80
|
*/
|
|
81
81
|
import type { RelayClient, RelayClock } from './relay-client.js';
|
|
82
|
+
import type { RelayPool } from './relay-pool.js';
|
|
82
83
|
import type { GatewayShapeCheck } from './intercept-shape.js';
|
|
83
84
|
import { type ResultAttachment } from './invoke-binary.js';
|
|
85
|
+
import type { MergerLang } from './merge-streams.js';
|
|
84
86
|
/** The session-locating argument fields, as registered per method. Identical
|
|
85
87
|
* in name and meaning to relay-access.ts's `SessionField`; a field named
|
|
86
88
|
* without a dot is TOP-LEVEL. `request.workspaceId` locates a remote create
|
|
@@ -166,6 +168,19 @@ export declare const REMOTE_READ_METHODS: ReadonlySet<string>;
|
|
|
166
168
|
/** Whether `endpoint` (a client-table method) is a remote WRITE: anything
|
|
167
169
|
* the read whitelist does not name (T34-fix). */
|
|
168
170
|
export declare function isRemoteWrite(endpoint: string): boolean;
|
|
171
|
+
/**
|
|
172
|
+
* Stream endpoints whose caller-supplied `uplink` iterable and
|
|
173
|
+
* `uplinkWindow` travel to the relay instead of being half-closed locally
|
|
174
|
+
* with `releaseUplink`. DSH 0.2.2+ replaced `terminal/follow|write|resize`
|
|
175
|
+
* with the duplex `terminal/attach` stream (`TerminalInput` write/resize
|
|
176
|
+
* commands ride the uplink; `ack` frames ride the downlink). The relay
|
|
177
|
+
* client's pump (relay-client.ts) is the other half: it forwards the host's
|
|
178
|
+
* frames through the server's `/v1/stream-uplink` channel and releases the
|
|
179
|
+
* host inbox itself when the stream ends — the interceptor only hands the
|
|
180
|
+
* iterable over, it never half-closes a member of this set.
|
|
181
|
+
*/
|
|
182
|
+
export declare const REMOTE_UPLINK_STREAM_METHODS: ReadonlySet<string>;
|
|
183
|
+
export type InterceptLang = MergerLang;
|
|
169
184
|
/**
|
|
170
185
|
* T58/T62: the vocabulary of the current-session signal. The value travels
|
|
171
186
|
* from the BROWSER — the only place the host's persisted selection
|
|
@@ -286,12 +301,21 @@ export interface InstallInterceptOptions {
|
|
|
286
301
|
/** The RAW gateway instance (`ctx.typertGateway[symbols.original]`), not
|
|
287
302
|
* the cordis proxy — own properties on the proxy are ignored by everyone. */
|
|
288
303
|
raw: object;
|
|
289
|
-
/**
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
304
|
+
/** SINGLE-SERVER mode (the original wiring, kept for compatibility): the
|
|
305
|
+
* one client relay client the calls travel through. Either this +
|
|
306
|
+
* {@link getServerId}, or {@link pool} — never required together. */
|
|
307
|
+
relay?: RelayClient;
|
|
308
|
+
/** SINGLE-SERVER mode: the CURRENT handshake's server id, read live per
|
|
309
|
+
* call; `undefined` (never handshook) makes every remote call a
|
|
310
|
+
* `remote-offline` — a different fact from pointing at the wrong server
|
|
311
|
+
* (`remote-mismatch`). */
|
|
312
|
+
getServerId?: () => string | undefined;
|
|
313
|
+
/** MS-3 POOL mode: the multi-server relay pool (up to
|
|
314
|
+
* `MAX_PAIRED_SERVERS` paired servers). When present it replaces the
|
|
315
|
+
* single-relay routing: every call/stream/event routes by the virtual
|
|
316
|
+
* id's `serverId` to the matching pool entry, and the three global reads
|
|
317
|
+
* plus the model catalog merge ALL paired servers in pairing order. */
|
|
318
|
+
pool?: RelayPool;
|
|
295
319
|
/** Progress logging, wired to the context logger by index.ts. */
|
|
296
320
|
log?: (format: string, ...args: unknown[]) => void;
|
|
297
321
|
/** Clock/timers for the merged streams' reopen backoff (CP4); defaults to
|
|
@@ -309,10 +333,15 @@ export interface InstallInterceptOptions {
|
|
|
309
333
|
/** PB-25b: the inventory slot factory — one slot per merged global stream
|
|
310
334
|
* (only the workspace merger ever reports; the control merger has no
|
|
311
335
|
* session inventory). The wiring unions the live slots' shares into the
|
|
312
|
-
* set the plugin-route rewrite
|
|
313
|
-
*
|
|
314
|
-
*
|
|
315
|
-
|
|
336
|
+
* set the plugin-route rewrite consults. MS-3: the factory receives the
|
|
337
|
+
* slot's `serverId`, so a pool wiring can keep per-server inventories
|
|
338
|
+
* (the plain single-server wiring can ignore the argument). Absent: no
|
|
339
|
+
* shares are ever reported and the plugin-route value scan stays exactly
|
|
340
|
+
* the request-local behavior. */
|
|
341
|
+
createSessionInventorySlot?: (serverId?: string) => SessionInventorySlot;
|
|
342
|
+
/** Language for error messages and sidebar group suffixes (`'zh'` default,
|
|
343
|
+
* `'en'` English). Accepts a getter for live resolution. */
|
|
344
|
+
lang?: InterceptLang | (() => InterceptLang) | undefined;
|
|
316
345
|
}
|
|
317
346
|
export interface InterceptHandle {
|
|
318
347
|
/** Remove both own properties, restoring exactly what was installed over
|
|
@@ -343,6 +372,23 @@ export interface InterceptHandle {
|
|
|
343
372
|
* entries are dropped; a batch with nothing left is a no-op. Reaches every
|
|
344
373
|
* live merged `$events` stream, and the pending slot when none is open. */
|
|
345
374
|
nudgeSummarySync(ids: readonly string[]): void;
|
|
375
|
+
/** MS-3 (pool mode only meaningful, harmless otherwise): the pool's entry
|
|
376
|
+
* set or any entry's identity moved — the wiring forwards the pool's
|
|
377
|
+
* `onServerRemoved` / `onStateChange` callbacks here. Every live merged
|
|
378
|
+
* stream re-scans `pool.entries()` NOW: slots for removed entries leave
|
|
379
|
+
* (only THAT server's shown groups and pending events are torn down),
|
|
380
|
+
* slots for new entries start, and renames re-title the groups. */
|
|
381
|
+
notePoolEvent(): void;
|
|
382
|
+
/** P55-2: resolve which remote session (serverId + real sessionId) should
|
|
383
|
+
* serve a path-only `/api/file?path=...` request, or `undefined` when the
|
|
384
|
+
* local route should handle it. Read by the fetch-route wrap (its media
|
|
385
|
+
* mount only exists while the wiring hands THIS handle's method over), so
|
|
386
|
+
* a Markdown image of a remote session's reply loads from the server's
|
|
387
|
+
* disk instead of 404ing on the sub-client's own. */
|
|
388
|
+
resolveRemoteFileScope(path: string): {
|
|
389
|
+
serverId: string;
|
|
390
|
+
sessionId: string;
|
|
391
|
+
} | undefined;
|
|
346
392
|
}
|
|
347
393
|
/** Rewrite one stream frame's session ids to virtual form. */
|
|
348
394
|
export declare function rewriteFrame(endpoint: string, frame: unknown, serverId: string): unknown;
|
|
@@ -423,6 +469,22 @@ export interface SessionSummarySync {
|
|
|
423
469
|
* records the verdict but does not re-gate, so it stays usable in tests
|
|
424
470
|
* that install over deliberately odd shapes.
|
|
425
471
|
*/
|
|
472
|
+
/**
|
|
473
|
+
* P55-2: whether `filePath` lives at or under `cwd` — the /api/file
|
|
474
|
+
* attribution test. Both paths are compared backslash-folded to `/` (a
|
|
475
|
+
* server-Windows cwd meets a server-Windows image path, and the Markdown
|
|
476
|
+
* renderer may hand either separator over), trailing separators of `cwd`
|
|
477
|
+
* are dropped, and the match is exact-or-subpath (`cwd + '/'` prefix — a
|
|
478
|
+
* directory merely PREFIXED by the cwd string is not a match). Windows
|
|
479
|
+
* drive-rooted pairs compare case-insensitively WHOLE (`C:\Users` vs
|
|
480
|
+
* `c:\users` — the drive letter is the visible case hazard, but NTFS is
|
|
481
|
+
* case-insensitive end to end, and a missed match costs a permanently
|
|
482
|
+
* broken image while an over-match needs two same-server cwds differing
|
|
483
|
+
* only by case); everything else stays case-sensitive (POSIX is).
|
|
484
|
+
* Deliberately NOT node:path — the two ends may run on different platforms,
|
|
485
|
+
* so the rule is pure string arithmetic over the server's paths.
|
|
486
|
+
*/
|
|
487
|
+
export declare function pathMatchesCwd(filePath: string, cwd: string): boolean;
|
|
426
488
|
export declare function installIntercept(options: InstallInterceptOptions): InterceptHandle;
|
|
427
489
|
export interface SelfCheckOptions {
|
|
428
490
|
/** How long the probe may wait for its first frame; default 5000 ms. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intercept.d.ts","sourceRoot":"","sources":["../../src/intercept.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+EG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAc,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"intercept.d.ts","sourceRoot":"","sources":["../../src/intercept.ts"],"names":[],"mappings":"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"}
|