ds-harness-remote 0.3.36 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +26 -24
  2. package/dist/client-runtime.d.ts +9 -4
  3. package/dist/client-runtime.d.ts.map +1 -1
  4. package/dist/client-runtime.js +140 -23
  5. package/dist/client-runtime.js.map +1 -1
  6. package/dist/harness-api-bridge.d.ts +2 -9
  7. package/dist/harness-api-bridge.d.ts.map +1 -1
  8. package/dist/harness-api-bridge.js.map +1 -1
  9. package/dist/harness-remote-bridge.d.ts +46 -0
  10. package/dist/harness-remote-bridge.d.ts.map +1 -0
  11. package/dist/harness-remote-bridge.js +321 -0
  12. package/dist/harness-remote-bridge.js.map +1 -0
  13. package/dist/index.d.ts +4 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1066 -83
  16. package/dist/index.js.map +4 -4
  17. package/dist/native-rtc-helper.d.ts +10 -0
  18. package/dist/native-rtc-helper.d.ts.map +1 -1
  19. package/dist/native-rtc-helper.js +21 -3
  20. package/dist/native-rtc-helper.js.map +1 -1
  21. package/dist/remote-typert-gateway.d.ts +13 -0
  22. package/dist/remote-typert-gateway.d.ts.map +1 -0
  23. package/dist/remote-typert-gateway.js +242 -0
  24. package/dist/remote-typert-gateway.js.map +1 -0
  25. package/dist/rpc-router.d.ts +7 -2
  26. package/dist/rpc-router.d.ts.map +1 -1
  27. package/dist/rpc-router.js +61 -12
  28. package/dist/rpc-router.js.map +1 -1
  29. package/dist/server-connection.d.ts +5 -0
  30. package/dist/server-connection.d.ts.map +1 -1
  31. package/dist/server-connection.js +120 -5
  32. package/dist/server-connection.js.map +1 -1
  33. package/dist/service.d.ts +5 -3
  34. package/dist/service.d.ts.map +1 -1
  35. package/dist/service.js +26 -8
  36. package/dist/service.js.map +1 -1
  37. package/dist/typert-gateway-contract.d.ts +48 -0
  38. package/dist/typert-gateway-contract.d.ts.map +1 -0
  39. package/dist/typert-gateway-contract.js +2 -0
  40. package/dist/typert-gateway-contract.js.map +1 -0
  41. package/dist/typert-gateway-switch.d.ts +28 -7
  42. package/dist/typert-gateway-switch.d.ts.map +1 -1
  43. package/dist/typert-gateway-switch.js +121 -23
  44. package/dist/typert-gateway-switch.js.map +1 -1
  45. package/dist/version.d.ts +1 -1
  46. package/dist/version.d.ts.map +1 -1
  47. package/dist/version.js +1 -1
  48. package/dist/version.js.map +1 -1
  49. package/package.json +13 -8
@@ -1,24 +1,45 @@
1
- import type { TypertGatewayLike } from './harness-api-bridge.js';
2
- type RemoteInvoke = (request: Parameters<TypertGatewayLike['invoke']>[0]) => Promise<unknown>;
1
+ import type { LocalTypertGateway, RemoteTypertGatewayTarget, TypertGatewayLike, TypertGatewayRequest } from './typert-gateway-contract.js';
2
+ type RemoteInvoke = (request: TypertGatewayRequest) => Promise<unknown>;
3
3
  export interface RemoteCommandSupport {
4
4
  execute: boolean;
5
5
  list: boolean;
6
6
  }
7
- /** Keeps the native gateway identity stable while command catalog and execution follow the selected Host. */
7
+ /** Keeps the official Gateway object stable while its selected Host changes. */
8
8
  export declare class TypertGatewaySwitch {
9
- private readonly gateway;
9
+ private readonly runtime;
10
10
  private readonly originalInvoke;
11
11
  private readonly localInvoke;
12
+ private readonly originalStream?;
13
+ private readonly localStream?;
14
+ private readonly originalDispatch?;
15
+ private readonly localDispatch?;
16
+ private readonly originalOpen?;
17
+ private readonly localOpen?;
12
18
  private remoteInvoke?;
19
+ private remoteTarget?;
13
20
  private remoteSupport;
21
+ private target?;
14
22
  private installed;
15
23
  constructor(gateway: TypertGatewayLike);
16
- /** A facade that always invokes the original local gateway. */
17
- local(): TypertGatewayLike;
24
+ /** Original local dispatcher, used by the Host bridge without switch recursion. */
25
+ local(): LocalTypertGateway;
26
+ supportsCarrier(): boolean;
27
+ status(): {
28
+ mode: 'local' | 'remote';
29
+ target?: {
30
+ deviceId: string;
31
+ name: string;
32
+ };
33
+ };
18
34
  install(): void;
19
- selectRemote(invoke: RemoteInvoke, support?: RemoteCommandSupport): void;
35
+ selectRemote(remote: RemoteInvoke | RemoteTypertGatewayTarget, support?: RemoteCommandSupport, target?: {
36
+ deviceId: string;
37
+ name: string;
38
+ }): void;
20
39
  selectLocal(): void;
21
40
  restore(): void;
41
+ private selectInvoke;
42
+ private failure;
22
43
  }
23
44
  export {};
24
45
  //# sourceMappingURL=typert-gateway-switch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typert-gateway-switch.d.ts","sourceRoot":"","sources":["../src/typert-gateway-switch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,KAAK,YAAY,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAK7F,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,OAAO,CAAA;CACd;AAID,6GAA6G;AAC7G,qBAAa,mBAAmB;IAOlB,OAAO,CAAC,QAAQ,CAAC,OAAO;IANpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,YAAY,CAAC,CAAc;IACnC,OAAO,CAAC,aAAa,CAAwD;IAC7E,OAAO,CAAC,SAAS,CAAQ;gBAEI,OAAO,EAAE,iBAAiB;IAKvD,+DAA+D;IAC/D,KAAK,IAAI,iBAAiB;IAI1B,OAAO,IAAI,IAAI;IAiBf,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,GAAE,oBAA0C,GAAG,IAAI;IAM7F,WAAW,IAAI,IAAI;IAKnB,OAAO,IAAI,IAAI;CAMhB"}
1
+ {"version":3,"file":"typert-gateway-switch.d.ts","sourceRoot":"","sources":["../src/typert-gateway-switch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EAErB,MAAM,8BAA8B,CAAA;AAErC,KAAK,YAAY,GAAG,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAavE,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,OAAO,CAAA;CACd;AAID,gFAAgF;AAChF,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAA0C;IAC1E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAA0C;IACvE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAiB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAa;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAa;IACxC,OAAO,CAAC,YAAY,CAAC,CAAc;IACnC,OAAO,CAAC,YAAY,CAAC,CAA2B;IAChD,OAAO,CAAC,aAAa,CAAwD;IAC7E,OAAO,CAAC,MAAM,CAAC,CAAoC;IACnD,OAAO,CAAC,SAAS,CAAQ;gBAEb,OAAO,EAAE,iBAAiB;IAYtC,mFAAmF;IACnF,KAAK,IAAI,kBAAkB;IAuB3B,eAAe,IAAI,OAAO;IAI1B,MAAM,IAAI;QAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;QAAC,MAAM,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE;IAMnF,OAAO,IAAI,IAAI;IAqBf,YAAY,CACV,MAAM,EAAE,YAAY,GAAG,yBAAyB,EAChD,OAAO,GAAE,oBAA0C,EACnD,MAAM,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAC1C,IAAI;IAQP,WAAW,IAAI,IAAI;IAOnB,OAAO,IAAI,IAAI;IAUf,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,OAAO;CAQhB"}
@@ -1,61 +1,159 @@
1
- /** Typert `commands` methods that follow the selected Host (catalog + execution). */
2
1
  const REMOTE_COMMAND_METHODS = ['execute', 'list'];
2
+ const LOCAL_ONLY_NAMESPACES = new Set(['dynamicCordisRunner']);
3
3
  const ALL_REMOTE_COMMANDS = { execute: true, list: true };
4
- /** Keeps the native gateway identity stable while command catalog and execution follow the selected Host. */
4
+ /** Keeps the official Gateway object stable while its selected Host changes. */
5
5
  export class TypertGatewaySwitch {
6
- gateway;
6
+ runtime;
7
7
  originalInvoke;
8
8
  localInvoke;
9
+ originalStream;
10
+ localStream;
11
+ originalDispatch;
12
+ localDispatch;
13
+ originalOpen;
14
+ localOpen;
9
15
  remoteInvoke;
16
+ remoteTarget;
10
17
  remoteSupport = { execute: false, list: false };
18
+ target;
11
19
  installed = false;
12
20
  constructor(gateway) {
13
- this.gateway = gateway;
21
+ this.runtime = gateway;
14
22
  this.originalInvoke = gateway.invoke;
15
23
  this.localInvoke = this.originalInvoke.bind(gateway);
24
+ this.originalStream = gateway.stream;
25
+ this.localStream = gateway.stream?.bind(gateway);
26
+ this.originalDispatch = this.runtime.dispatchRpc;
27
+ this.localDispatch = this.runtime.dispatchRpc?.bind(gateway);
28
+ this.originalOpen = this.runtime.openWireStream;
29
+ this.localOpen = this.runtime.openWireStream?.bind(gateway) ?? gateway.wireStream?.open.bind(gateway.wireStream);
16
30
  }
17
- /** A facade that always invokes the original local gateway. */
31
+ /** Original local dispatcher, used by the Host bridge without switch recursion. */
18
32
  local() {
19
- return { invoke: this.localInvoke };
33
+ const dispatch = this.localDispatch ?? (async (endpoint, payload, signal) => {
34
+ try {
35
+ const request = requestFromCarrier(endpoint, payload, signal);
36
+ return { ok: true, value: await this.localInvoke(request) };
37
+ }
38
+ catch (error) {
39
+ return { ok: false, error: this.failure(error) };
40
+ }
41
+ });
42
+ const open = this.localOpen ?? (async (endpoint, payload, signal) => {
43
+ if (this.localStream === undefined)
44
+ throw new Error('The local Harness Gateway does not support Remote streams.');
45
+ return this.localStream(requestFromCarrier(endpoint, payload, signal));
46
+ });
47
+ return {
48
+ invoke: this.localInvoke,
49
+ ...(this.localStream === undefined ? {} : { stream: this.localStream }),
50
+ dispatch,
51
+ open,
52
+ failure: error => this.failure(error),
53
+ supportsCarrier: this.localDispatch !== undefined && this.localOpen !== undefined,
54
+ };
55
+ }
56
+ supportsCarrier() {
57
+ return this.localDispatch !== undefined && this.localOpen !== undefined;
58
+ }
59
+ status() {
60
+ return this.remoteInvoke === undefined
61
+ ? { mode: 'local' }
62
+ : { mode: 'remote', ...(this.target === undefined ? {} : { target: { ...this.target } }) };
20
63
  }
21
64
  install() {
22
65
  if (this.installed)
23
66
  return;
24
- this.gateway.invoke = request => {
25
- if (request.namespace !== 'commands' || !isRemoteCommandMethod(request.method) || this.remoteInvoke === undefined) {
26
- return this.localInvoke(request);
27
- }
28
- if (this.remoteSupport[request.method])
29
- return this.remoteInvoke(request);
30
- // A legacy Host cannot resolve commands.list, while the local registry
31
- // cannot resolve the selected remote session id. An empty compatibility
32
- // catalog keeps the workspace UI usable without misrepresenting local
33
- // commands as remotely executable.
34
- if (request.method === 'list')
35
- return Promise.resolve([]);
36
- return this.localInvoke(request);
37
- };
67
+ this.runtime.invoke = request => this.selectInvoke(request);
68
+ if (this.originalStream !== undefined) {
69
+ this.runtime.stream = request => this.remoteTarget === undefined || isLocalOnlyEndpoint(endpointOf(request))
70
+ ? this.localStream(request)
71
+ : this.remoteTarget.open(endpointOf(request), { args: request.args }, request.signal ?? new AbortController().signal);
72
+ }
73
+ if (this.originalDispatch !== undefined) {
74
+ this.runtime.dispatchRpc = (endpoint, payload, signal) => this.remoteTarget === undefined || isLocalOnlyEndpoint(endpoint)
75
+ ? this.localDispatch(endpoint, payload, signal)
76
+ : this.remoteTarget.dispatch(endpoint, payload, signal);
77
+ }
78
+ if (this.originalOpen !== undefined) {
79
+ this.runtime.openWireStream = (endpoint, payload, signal) => this.remoteTarget === undefined || isLocalOnlyEndpoint(endpoint)
80
+ ? this.localOpen(endpoint, payload, signal)
81
+ : this.remoteTarget.open(endpoint, payload, signal);
82
+ }
38
83
  this.installed = true;
39
84
  }
40
- selectRemote(invoke, support = ALL_REMOTE_COMMANDS) {
85
+ selectRemote(remote, support = ALL_REMOTE_COMMANDS, target) {
41
86
  if (!this.installed)
42
87
  throw new Error('The Typert gateway switch is not installed.');
43
- this.remoteInvoke = invoke;
88
+ this.remoteInvoke = typeof remote === 'function' ? remote : request => remote.invoke(request);
89
+ this.remoteTarget = typeof remote === 'function' ? undefined : remote;
44
90
  this.remoteSupport = { ...support };
91
+ this.target = target === undefined ? undefined : { ...target };
45
92
  }
46
93
  selectLocal() {
47
94
  this.remoteInvoke = undefined;
95
+ this.remoteTarget = undefined;
48
96
  this.remoteSupport = { execute: false, list: false };
97
+ this.target = undefined;
49
98
  }
50
99
  restore() {
51
100
  if (!this.installed)
52
101
  return;
53
102
  this.selectLocal();
54
- this.gateway.invoke = this.originalInvoke;
103
+ this.runtime.invoke = this.originalInvoke;
104
+ if (this.originalStream !== undefined)
105
+ this.runtime.stream = this.originalStream;
106
+ if (this.originalDispatch !== undefined)
107
+ this.runtime.dispatchRpc = this.originalDispatch;
108
+ if (this.originalOpen !== undefined)
109
+ this.runtime.openWireStream = this.originalOpen;
55
110
  this.installed = false;
56
111
  }
112
+ selectInvoke(request) {
113
+ if (isLocalOnlyEndpoint(endpointOf(request)))
114
+ return this.localInvoke(request);
115
+ if (this.remoteTarget !== undefined)
116
+ return this.remoteTarget.invoke(request);
117
+ if (request.namespace !== 'commands' || !isRemoteCommandMethod(request.method) || this.remoteInvoke === undefined) {
118
+ return this.localInvoke(request);
119
+ }
120
+ if (this.remoteSupport[request.method])
121
+ return this.remoteInvoke(request);
122
+ if (request.method === 'list')
123
+ return Promise.resolve([]);
124
+ return this.localInvoke(request);
125
+ }
126
+ failure(error) {
127
+ const normalized = this.runtime.wireStream?.failure(error);
128
+ if (normalized !== undefined)
129
+ return normalized;
130
+ const source = error instanceof Error ? error : new Error('The Harness Gateway rejected the request.');
131
+ const code = 'code' in source && typeof source.code === 'string' ? source.code : 'internal';
132
+ const details = 'details' in source && isRecord(source.details) ? source.details : {};
133
+ return { code, message: source.message, details };
134
+ }
135
+ }
136
+ function requestFromCarrier(endpoint, payload, signal) {
137
+ const segments = endpoint.split('/');
138
+ if (segments.length !== 2 || segments.some(segment => segment.length === 0)) {
139
+ throw new Error('The Harness Gateway endpoint is invalid.');
140
+ }
141
+ if (!isRecord(payload) || !isRecord(payload.args)) {
142
+ throw new Error('The Harness Gateway payload is invalid.');
143
+ }
144
+ return { namespace: segments[0], method: segments[1], args: payload.args, signal };
145
+ }
146
+ function endpointOf(request) {
147
+ return `${request.namespace}/${request.method}`;
148
+ }
149
+ function isLocalOnlyEndpoint(endpoint) {
150
+ const separator = endpoint.indexOf('/');
151
+ return separator > 0 && LOCAL_ONLY_NAMESPACES.has(endpoint.slice(0, separator));
57
152
  }
58
153
  function isRemoteCommandMethod(method) {
59
154
  return REMOTE_COMMAND_METHODS.includes(method);
60
155
  }
156
+ function isRecord(value) {
157
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
158
+ }
61
159
  //# sourceMappingURL=typert-gateway-switch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typert-gateway-switch.js","sourceRoot":"","sources":["../src/typert-gateway-switch.ts"],"names":[],"mappings":"AAIA,qFAAqF;AACrF,MAAM,sBAAsB,GAAG,CAAC,SAAS,EAAE,MAAM,CAAU,CAAA;AAO3D,MAAM,mBAAmB,GAAyB,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AAE/E,6GAA6G;AAC7G,MAAM,OAAO,mBAAmB;IAOD;IANZ,cAAc,CAA6B;IAC3C,WAAW,CAA6B;IACjD,YAAY,CAAe;IAC3B,aAAa,GAAyB,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IACrE,SAAS,GAAG,KAAK,CAAA;IAEzB,YAA6B,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;QACrD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAA;QACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACtD,CAAC;IAED,+DAA+D;IAC/D,KAAK;QACH,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAA;IACrC,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,SAAS;YAAE,OAAM;QAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE;YAC9B,IAAI,OAAO,CAAC,SAAS,KAAK,UAAU,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBAClH,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YAClC,CAAC;YACD,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;gBAAE,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;YACzE,uEAAuE;YACvE,wEAAwE;YACxE,sEAAsE;YACtE,mCAAmC;YACnC,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YACzD,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAClC,CAAC,CAAA;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IACvB,CAAC;IAED,YAAY,CAAC,MAAoB,EAAE,UAAgC,mBAAmB;QACpF,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;QACnF,IAAI,CAAC,YAAY,GAAG,MAAM,CAAA;QAC1B,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,OAAO,EAAE,CAAA;IACrC,CAAC;IAED,WAAW;QACT,IAAI,CAAC,YAAY,GAAG,SAAS,CAAA;QAC7B,IAAI,CAAC,aAAa,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IACtD,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAM;QAC3B,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAA;QACzC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;IACxB,CAAC;CACF;AAED,SAAS,qBAAqB,CAAC,MAAc;IAC3C,OAAQ,sBAA4C,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AACvE,CAAC"}
1
+ {"version":3,"file":"typert-gateway-switch.js","sourceRoot":"","sources":["../src/typert-gateway-switch.ts"],"names":[],"mappings":"AAkBA,MAAM,sBAAsB,GAAG,CAAC,SAAS,EAAE,MAAM,CAAU,CAAA;AAC3D,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAA;AAO9D,MAAM,mBAAmB,GAAyB,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AAE/E,gFAAgF;AAChF,MAAM,OAAO,mBAAmB;IACb,OAAO,CAAgB;IACvB,cAAc,CAA6B;IAC3C,WAAW,CAA6B;IACxC,cAAc,CAA2C;IACzD,WAAW,CAA2C;IACtD,gBAAgB,CAAkB;IAClC,aAAa,CAAkB;IAC/B,YAAY,CAAc;IAC1B,SAAS,CAAc;IAChC,YAAY,CAAe;IAC3B,YAAY,CAA4B;IACxC,aAAa,GAAyB,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IACrE,MAAM,CAAqC;IAC3C,SAAS,GAAG,KAAK,CAAA;IAEzB,YAAY,OAA0B;QACpC,IAAI,CAAC,OAAO,GAAG,OAAyB,CAAA;QACxC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAA;QACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACpD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAA;QACpC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAChD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAA;QAChD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAC5D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAA;QAC/C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAClH,CAAC;IAED,mFAAmF;IACnF,KAAK;QACH,MAAM,QAAQ,GAAoB,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3F,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;gBAC7D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAA;YAC7D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAA;YAClD,CAAC;QACH,CAAC,CAAC,CAAA;QACF,MAAM,IAAI,GAAgB,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC/E,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;YACjH,OAAO,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;QACxE,CAAC,CAAC,CAAA;QACF,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,WAAW;YACxB,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;YACvE,QAAQ;YACR,IAAI;YACJ,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YACrC,eAAe,EAAE,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;SAClF,CAAA;IACH,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAA;IACzE,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,YAAY,KAAK,SAAS;YACpC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;YACnB,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAA;IAC9F,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,SAAS;YAAE,OAAM;QAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAC3D,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,mBAAmB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBAC1G,CAAC,CAAC,IAAI,CAAC,WAAY,CAAC,OAAO,CAAC;gBAC5B,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC,CAAA;QACzH,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,mBAAmB,CAAC,QAAQ,CAAC;gBACxH,CAAC,CAAC,IAAI,CAAC,aAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;gBAChD,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QAC3D,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,mBAAmB,CAAC,QAAQ,CAAC;gBAC3H,CAAC,CAAC,IAAI,CAAC,SAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;gBAC5C,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QACvD,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IACvB,CAAC;IAED,YAAY,CACV,MAAgD,EAChD,UAAgC,mBAAmB,EACnD,MAA2C;QAE3C,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;QACnF,IAAI,CAAC,YAAY,GAAG,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC7F,IAAI,CAAC,YAAY,GAAG,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAA;QACrE,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,OAAO,EAAE,CAAA;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAA;IAChE,CAAC;IAED,WAAW;QACT,IAAI,CAAC,YAAY,GAAG,SAAS,CAAA;QAC7B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAA;QAC7B,IAAI,CAAC,aAAa,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;QACpD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;IACzB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAM;QAC3B,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAA;QACzC,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAA;QAChF,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAA;QACzF,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAA;QACpF,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;IACxB,CAAC;IAEO,YAAY,CAAC,OAA6B;QAChD,IAAI,mBAAmB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAC9E,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC7E,IAAI,OAAO,CAAC,SAAS,KAAK,UAAU,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YAClH,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAClC,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QACzE,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACzD,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IAClC,CAAC;IAEO,OAAO,CAAC,KAAc;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QAC1D,IAAI,UAAU,KAAK,SAAS;YAAE,OAAO,UAAU,CAAA;QAC/C,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;QACtG,MAAM,IAAI,GAAG,MAAM,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAA;QAC3F,MAAM,OAAO,GAAG,SAAS,IAAI,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;QACrF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,CAAA;IACnD,CAAC;CACF;AAED,SAAS,kBAAkB,CAAC,QAAgB,EAAE,OAAgB,EAAE,MAAmB;IACjF,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACpC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;IAC7D,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;IAC5D,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,CAAA;AACtF,CAAC;AAED,SAAS,UAAU,CAAC,OAA6B;IAC/C,OAAO,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAA;AACjD,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB;IAC3C,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACvC,OAAO,SAAS,GAAG,CAAC,IAAI,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;AACjF,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc;IAC3C,OAAQ,sBAA4C,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AACvE,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC"}
package/dist/version.d.ts CHANGED
@@ -8,5 +8,5 @@
8
8
  * If they diverge, `npm scripts` checks in `scripts/verify-version-sync.mjs`
9
9
  * will fail fast during build/check/test.
10
10
  */
11
- export declare const PLUGIN_VERSION = "0.3.36";
11
+ export declare const PLUGIN_VERSION = "0.4.1";
12
12
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,UAAU,CAAA"}
package/dist/version.js CHANGED
@@ -8,5 +8,5 @@
8
8
  * If they diverge, `npm scripts` checks in `scripts/verify-version-sync.mjs`
9
9
  * will fail fast during build/check/test.
10
10
  */
11
- export const PLUGIN_VERSION = '0.3.36';
11
+ export const PLUGIN_VERSION = '0.4.1';
12
12
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAA"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ds-harness-remote",
3
- "version": "0.3.36",
3
+ "version": "0.4.1",
4
4
  "description": "DeepSeek 远程连接",
5
5
  "repository": {
6
6
  "type": "git",
@@ -61,17 +61,21 @@
61
61
  },
62
62
  "peerDependencies": {
63
63
  "@deepseek-ai/cordis": ">=4.0.1 <5",
64
- "@deepseek-ai/dsh-client-connection": ">=0.1.0-rc.6 <0.2.0",
65
- "@deepseek-ai/dsh-client-locale": ">=0.1.0-rc.6 <0.2.0",
66
- "@deepseek-ai/dsh-client-ui-settings": ">=0.1.0-rc.6 <0.2.0",
67
- "@deepseek-ai/dsh-client-ui-settings-plugins": ">=0.1.0-rc.6 <0.2.0",
68
- "@deepseek-ai/dsh-client-ui-sidebar": ">=0.1.0-rc.6 <0.2.0",
69
- "@deepseek-ai/dsh-client-ui-slots": ">=0.1.0-rc.6 <0.2.0",
64
+ "@deepseek-ai/dsh-api-gateway": ">=0.1.1-rc.2 <0.1.2 || >=0.1.2-alpha.1 <0.2.0",
65
+ "@deepseek-ai/dsh-client-connection": ">=0.1.0-rc.6 <0.1.2 || >=0.1.2-alpha.1 <0.2.0",
66
+ "@deepseek-ai/dsh-client-locale": ">=0.1.0-rc.6 <0.1.2 || >=0.1.2-alpha.1 <0.2.0",
67
+ "@deepseek-ai/dsh-client-ui-settings": ">=0.1.0-rc.6 <0.1.2 || >=0.1.2-alpha.1 <0.2.0",
68
+ "@deepseek-ai/dsh-client-ui-settings-plugins": ">=0.1.0-rc.6 <0.1.2 || >=0.1.2-alpha.1 <0.2.0",
69
+ "@deepseek-ai/dsh-client-ui-sidebar": ">=0.1.0-rc.6 <0.1.2 || >=0.1.2-alpha.1 <0.2.0",
70
+ "@deepseek-ai/dsh-client-ui-slots": ">=0.1.0-rc.6 <0.1.2 || >=0.1.2-alpha.1 <0.2.0",
70
71
  "@deepseek-ai/dsh-host-apiproxy": ">=0.1.0-rc.6 <0.2.0",
71
- "@deepseek-ai/dsh-settings": ">=0.1.0-rc.6 <0.2.0",
72
+ "@deepseek-ai/dsh-settings": ">=0.1.0-rc.6 <0.1.2 || >=0.1.2-alpha.1 <0.2.0",
72
73
  "react": ">=18.2.0 <19"
73
74
  },
74
75
  "peerDependenciesMeta": {
76
+ "@deepseek-ai/dsh-host-apiproxy": {
77
+ "optional": true
78
+ },
75
79
  "@deepseek-ai/dsh-client-connection": {
76
80
  "optional": true
77
81
  },
@@ -93,6 +97,7 @@
93
97
  },
94
98
  "devDependencies": {
95
99
  "@deepseek-ai/cordis": "4.0.1",
100
+ "@deepseek-ai/dsh-api-gateway": "0.1.1-rc.2",
96
101
  "@deepseek-ai/dsh-client-connection": "0.1.1-rc.2",
97
102
  "@deepseek-ai/dsh-client-locale": "0.1.1-rc.2",
98
103
  "@deepseek-ai/dsh-client-ui-settings": "0.1.1-rc.2",