@linkshell/host 0.1.3 → 0.3.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.
Files changed (68) hide show
  1. package/dist/host/src/direct.d.ts +32 -0
  2. package/dist/host/src/direct.js +144 -0
  3. package/dist/host/src/direct.js.map +1 -0
  4. package/dist/host/src/drivers/acp/connection.js +3 -0
  5. package/dist/host/src/drivers/acp/connection.js.map +1 -1
  6. package/dist/host/src/drivers/acp/driver.d.ts +10 -1
  7. package/dist/host/src/drivers/acp/driver.js +48 -0
  8. package/dist/host/src/drivers/acp/driver.js.map +1 -1
  9. package/dist/host/src/drivers/claude/transcript.d.ts +40 -13
  10. package/dist/host/src/drivers/claude/transcript.js +8 -0
  11. package/dist/host/src/drivers/claude/transcript.js.map +1 -1
  12. package/dist/host/src/drivers/codex/app-server.d.ts +4 -0
  13. package/dist/host/src/drivers/codex/app-server.js +28 -2
  14. package/dist/host/src/drivers/codex/app-server.js.map +1 -1
  15. package/dist/host/src/drivers/codex/driver.d.ts +2 -1
  16. package/dist/host/src/drivers/codex/driver.js +17 -4
  17. package/dist/host/src/drivers/codex/driver.js.map +1 -1
  18. package/dist/host/src/drivers/codex/mapper.d.ts +11 -1
  19. package/dist/host/src/drivers/codex/mapper.js +80 -0
  20. package/dist/host/src/drivers/codex/mapper.js.map +1 -1
  21. package/dist/host/src/drivers/codex/settings.d.ts +7 -2
  22. package/dist/host/src/drivers/codex/settings.js +21 -2
  23. package/dist/host/src/drivers/codex/settings.js.map +1 -1
  24. package/dist/host/src/drivers/types.d.ts +3 -1
  25. package/dist/host/src/host.d.ts +8 -1
  26. package/dist/host/src/host.js +14 -0
  27. package/dist/host/src/host.js.map +1 -1
  28. package/dist/host/src/hub.d.ts +3 -1
  29. package/dist/host/src/hub.js +25 -0
  30. package/dist/host/src/hub.js.map +1 -1
  31. package/dist/host/src/input-helper.d.ts +1 -0
  32. package/dist/host/src/input-helper.js +208 -0
  33. package/dist/host/src/input-helper.js.map +1 -0
  34. package/dist/host/src/input.d.ts +121 -0
  35. package/dist/host/src/input.js +159 -0
  36. package/dist/host/src/input.js.map +1 -0
  37. package/dist/host/src/ports.d.ts +11 -2
  38. package/dist/host/src/ports.js +45 -7
  39. package/dist/host/src/ports.js.map +1 -1
  40. package/dist/host/src/questions.d.ts +21 -0
  41. package/dist/host/src/questions.js +102 -0
  42. package/dist/host/src/questions.js.map +1 -0
  43. package/dist/host/src/rpc/server.js +11 -2
  44. package/dist/host/src/rpc/server.js.map +1 -1
  45. package/dist/host/src/screen-viewer.d.ts +1 -0
  46. package/dist/host/src/screen-viewer.js +783 -0
  47. package/dist/host/src/screen-viewer.js.map +1 -0
  48. package/dist/host/src/screen.d.ts +23 -0
  49. package/dist/host/src/screen.js +65 -69
  50. package/dist/host/src/screen.js.map +1 -1
  51. package/dist/host/src/terminals.d.ts +2 -2
  52. package/dist/host/tsconfig.tsbuildinfo +1 -1
  53. package/dist/wire/src/direct.d.ts +22 -0
  54. package/dist/wire/src/direct.js +37 -0
  55. package/dist/wire/src/direct.js.map +1 -0
  56. package/dist/wire/src/index.d.ts +1 -0
  57. package/dist/wire/src/index.js +1 -0
  58. package/dist/wire/src/index.js.map +1 -1
  59. package/dist/wire/src/model.d.ts +385 -104
  60. package/dist/wire/src/model.js +33 -0
  61. package/dist/wire/src/model.js.map +1 -1
  62. package/dist/wire/src/rpc.d.ts +3395 -1700
  63. package/dist/wire/src/rpc.js +27 -3
  64. package/dist/wire/src/rpc.js.map +1 -1
  65. package/dist/wire/src/updates.d.ts +804 -448
  66. package/dist/wire/src/updates.js +11 -1
  67. package/dist/wire/src/updates.js.map +1 -1
  68. package/package.json +3 -2
@@ -0,0 +1,22 @@
1
+ /** The data channel both sides use. */
2
+ export declare const DIRECT_LABEL = "linkshell-bulk";
3
+ /** The most stream bytes in one message: every WebRTC stack takes this size. */
4
+ export declare const DIRECT_CHUNK: number;
5
+ /**
6
+ * STUN servers used when a host names none: they only tell each side its
7
+ * public address. (Several, because none of them is reachable everywhere.)
8
+ */
9
+ export declare const DEFAULT_ICE_SERVERS: string[];
10
+ export type DirectFrame = {
11
+ type: "data";
12
+ stream: number;
13
+ data: Uint8Array;
14
+ }
15
+ /** The sender's end of the stream is finished (`error`: why, when it broke). */
16
+ | {
17
+ type: "close";
18
+ stream: number;
19
+ error?: string;
20
+ };
21
+ export declare function encodeDirectFrame(frame: DirectFrame): Uint8Array;
22
+ export declare function decodeDirectFrame(bytes: Uint8Array): DirectFrame | undefined;
@@ -0,0 +1,37 @@
1
+ // The direct channel: bulk streams (the screen, port previews) go from the
2
+ // computer to the device peer to peer, over a WebRTC data channel, instead of
3
+ // through the gateway. The offer and answer travel over the end-to-end
4
+ // encrypted RPC channel, so the gateway can neither read them nor stand in for
5
+ // either side; it carries only what little sets the connection up. When no
6
+ // direct path can be made, the streams stay on the RPC channel as before.
7
+ /** The data channel both sides use. */
8
+ export const DIRECT_LABEL = "linkshell-bulk";
9
+ /** The most stream bytes in one message: every WebRTC stack takes this size. */
10
+ export const DIRECT_CHUNK = 16 * 1024;
11
+ /**
12
+ * STUN servers used when a host names none: they only tell each side its
13
+ * public address. (Several, because none of them is reachable everywhere.)
14
+ */
15
+ export const DEFAULT_ICE_SERVERS = ["stun:stun.cloudflare.com:3478", "stun:stun.chat.bilibili.com:3478", "stun:stun.l.google.com:19302"];
16
+ const DATA = 1;
17
+ const CLOSE = 2;
18
+ export function encodeDirectFrame(frame) {
19
+ const payload = frame.type === "data" ? frame.data : new TextEncoder().encode(frame.error ?? "");
20
+ const bytes = new Uint8Array(5 + payload.length);
21
+ bytes[0] = frame.type === "data" ? DATA : CLOSE;
22
+ new DataView(bytes.buffer).setUint32(1, frame.stream);
23
+ bytes.set(payload, 5);
24
+ return bytes;
25
+ }
26
+ export function decodeDirectFrame(bytes) {
27
+ if (bytes.length < 5)
28
+ return undefined;
29
+ const stream = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength).getUint32(1);
30
+ const payload = bytes.subarray(5);
31
+ if (bytes[0] === DATA)
32
+ return { type: "data", stream, data: payload };
33
+ if (bytes[0] === CLOSE)
34
+ return { type: "close", stream, error: payload.length ? new TextDecoder().decode(payload) : undefined };
35
+ return undefined;
36
+ }
37
+ //# sourceMappingURL=direct.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"direct.js","sourceRoot":"","sources":["../../../../wire/src/direct.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,8EAA8E;AAC9E,uEAAuE;AACvE,+EAA+E;AAC/E,2EAA2E;AAC3E,0EAA0E;AAE1E,uCAAuC;AACvC,MAAM,CAAC,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAE7C,gFAAgF;AAChF,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,GAAG,IAAI,CAAC;AAEtC;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,+BAA+B,EAAE,kCAAkC,EAAE,8BAA8B,CAAC,CAAC;AAOzI,MAAM,IAAI,GAAG,CAAC,CAAC;AACf,MAAM,KAAK,GAAG,CAAC,CAAC;AAEhB,MAAM,UAAU,iBAAiB,CAAC,KAAkB;IAClD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACjG,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAChD,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACtD,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACtB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAiB;IACjD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3F,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACtE,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAChI,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -6,3 +6,4 @@ export * from "./shell.js";
6
6
  export * from "./crypto.js";
7
7
  export * from "./relay.js";
8
8
  export * from "./relay-client.js";
9
+ export * from "./direct.js";
@@ -6,4 +6,5 @@ export * from "./shell.js";
6
6
  export * from "./crypto.js";
7
7
  export * from "./relay.js";
8
8
  export * from "./relay-client.js";
9
+ export * from "./direct.js";
9
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../wire/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../wire/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC"}