@dev-anywhere/relay 0.4.73 → 0.4.75

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.
@@ -4,10 +4,11 @@ import type { RelayRegistry } from "../registry.js";
4
4
  import type { RelayChaos } from "../chaos.js";
5
5
  import type { VoiceConfigStore } from "../voice/config-store.js";
6
6
  import type { VoiceProviderRegistry } from "../voice/provider.js";
7
+ import type { RemoteFileBridge } from "../remote-file-bridge.js";
7
8
  interface ClientConnectionInfo {
8
9
  userAgent?: string;
9
10
  remoteAddress?: string;
10
11
  }
11
- export declare function handleClientConnection(ws: WebSocket, registry: RelayRegistry, logger: Logger, chaos?: RelayChaos, voiceConfigStore?: VoiceConfigStore, voiceProviders?: VoiceProviderRegistry, connectionInfo?: ClientConnectionInfo): void;
12
+ export declare function handleClientConnection(ws: WebSocket, registry: RelayRegistry, logger: Logger, chaos?: RelayChaos, voiceConfigStore?: VoiceConfigStore, voiceProviders?: VoiceProviderRegistry, remoteFileBridge?: RemoteFileBridge, connectionInfo?: ClientConnectionInfo): void;
12
13
  export {};
13
14
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/handlers/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAQ/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAalE,UAAU,oBAAoB;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAiOD,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,UAAU,EAClB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,cAAc,CAAC,EAAE,qBAAqB,EACtC,cAAc,GAAE,oBAAyB,GACxC,IAAI,CAgON"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/handlers/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAS/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAYjE,UAAU,oBAAoB;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAuQD,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,UAAU,EAClB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,cAAc,CAAC,EAAE,qBAAqB,EACtC,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,cAAc,GAAE,oBAAyB,GACxC,IAAI,CA+UN"}
@@ -2,5 +2,6 @@ import { WebSocket } from "ws";
2
2
  import type { Logger } from "@dev-anywhere/shared/logger";
3
3
  import type { RelayRegistry } from "../registry.js";
4
4
  import type { RelayChaos } from "../chaos.js";
5
- export declare function handleProxyConnection(ws: WebSocket, registry: RelayRegistry, logger: Logger, chaos?: RelayChaos): void;
5
+ import type { RemoteFileBridge } from "../remote-file-bridge.js";
6
+ export declare function handleProxyConnection(ws: WebSocket, registry: RelayRegistry, logger: Logger, chaos?: RelayChaos, remoteFileBridge?: RemoteFileBridge): void;
6
7
  //# sourceMappingURL=proxy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/handlers/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAM/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA0E9C,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,UAAU,GACjB,IAAI,CA4MN"}
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/handlers/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAM/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAyEjE,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,UAAU,EAClB,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,IAAI,CA2NN"}
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  RELAY_VERSION,
4
4
  createRelayServer,
5
5
  parseRelayChaosFromEnv
6
- } from "./chunk-UV7DNQUI.js";
6
+ } from "./chunk-XY4ATTV2.js";
7
7
 
8
8
  // ../../packages/shared/dist/logger.js
9
9
  import { lstatSync, mkdirSync, readdirSync, renameSync, statSync, symlinkSync, unlinkSync } from "fs";
@@ -0,0 +1,57 @@
1
+ import type { Request, Response } from "express";
2
+ import { type ControlMessage } from "@dev-anywhere/shared";
3
+ import type { Logger } from "@dev-anywhere/shared/logger";
4
+ import type { RelayRegistry } from "./registry.js";
5
+ type RemoteFileDisposition = "inline" | "download";
6
+ type RemoteFileUploadKind = "clipboard_image" | "file";
7
+ interface RemoteFileBridgeDeps {
8
+ registry: RelayRegistry;
9
+ logger: Logger;
10
+ }
11
+ export declare class RemoteFileBridge {
12
+ private readonly deps;
13
+ private readonly tokens;
14
+ private readonly uploadTokens;
15
+ private readonly pendingStreams;
16
+ private readonly pendingUploads;
17
+ constructor(deps: RemoteFileBridgeDeps);
18
+ createUrl(input: {
19
+ clientId: string;
20
+ proxyId: string;
21
+ sessionId: string;
22
+ path: string;
23
+ disposition: RemoteFileDisposition;
24
+ }): {
25
+ url: string;
26
+ expiresAt: number;
27
+ };
28
+ createUploadUrl(input: {
29
+ clientId: string;
30
+ proxyId: string;
31
+ sessionId: string;
32
+ kind: RemoteFileUploadKind;
33
+ fileName?: string;
34
+ mimeType: string;
35
+ size?: number;
36
+ }): {
37
+ uploadUrl: string;
38
+ expiresAt: number;
39
+ };
40
+ handleHttpRequest(req: Request, res: Response): void;
41
+ handleUploadHttpRequest(req: Request, res: Response): void;
42
+ handleProxyControl(proxyId: string, msg: ControlMessage<"remote_file_stream_response">): boolean;
43
+ handleProxyControl(proxyId: string, msg: ControlMessage<"remote_file_stream_complete">): boolean;
44
+ handleProxyControl(proxyId: string, msg: ControlMessage<"remote_file_upload_stream_response">): boolean;
45
+ handleProxyBinary(proxyId: string, data: Buffer): boolean;
46
+ private handleStreamResponse;
47
+ private handleStreamComplete;
48
+ private handleUploadResponse;
49
+ private failStream;
50
+ private failUpload;
51
+ private writeJsonError;
52
+ private sendCancel;
53
+ private sendUploadCancel;
54
+ private cleanupExpiredTokens;
55
+ }
56
+ export {};
57
+ //# sourceMappingURL=remote-file-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-file-bridge.d.ts","sourceRoot":"","sources":["../src/remote-file-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGjD,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAMnD,KAAK,qBAAqB,GAAG,QAAQ,GAAG,UAAU,CAAC;AACnD,KAAK,oBAAoB,GAAG,iBAAiB,GAAG,MAAM,CAAC;AA2CvD,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB;AAqBD,qBAAa,gBAAgB;IAMf,OAAO,CAAC,QAAQ,CAAC,IAAI;IALjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAC7D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4C;IACzE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwC;IACvE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwC;gBAE1C,IAAI,EAAE,oBAAoB;IAEvD,SAAS,CAAC,KAAK,EAAE;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,qBAAqB,CAAC;KACpC,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAgBtC,eAAe,CAAC,KAAK,EAAE;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,oBAAoB,CAAC;QAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAkB5C,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI;IAqDpD,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI;IA6E1D,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,6BAA6B,CAAC,GAAG,OAAO;IAChG,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,6BAA6B,CAAC,GAAG,OAAO;IAChG,kBAAkB,CAChB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,cAAc,CAAC,oCAAoC,CAAC,GACxD,OAAO;IA+BV,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAmBzD,OAAO,CAAC,oBAAoB;IA8B5B,OAAO,CAAC,oBAAoB;IAuB5B,OAAO,CAAC,oBAAoB;IAiC5B,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,oBAAoB;CAS7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsC,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAK5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAK9C,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEtE,OAAO,EAA4B,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAA4B,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAEzF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAA+B,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE9F,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE;QACd,MAAM,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IACtD,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;CAC/C;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAiBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CA+O1E"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsC,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAK5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAK9C,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEtE,OAAO,EAA4B,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAA4B,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAEzF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAA+B,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAG9F,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE;QACd,MAAM,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IACtD,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;CAC/C;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAiBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CA+P1E"}
package/dist/server.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  createRelayServer
4
- } from "./chunk-UV7DNQUI.js";
4
+ } from "./chunk-XY4ATTV2.js";
5
5
  export {
6
6
  createRelayServer
7
7
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dev-anywhere/relay",
3
- "version": "0.4.73",
3
+ "version": "0.4.75",
4
4
  "description": "Relay server for DEV Anywhere — bridges local AI CLI proxies to remote web clients via WebSocket.",
5
5
  "keywords": [
6
6
  "claude-code",
@@ -54,7 +54,7 @@
54
54
  "@types/node": "^22.15.30",
55
55
  "@types/ws": "^8.18.1",
56
56
  "vitest": "^4.1.2",
57
- "@dev-anywhere/shared": "0.4.73"
57
+ "@dev-anywhere/shared": "0.4.75"
58
58
  },
59
59
  "scripts": {
60
60
  "build": "tsup && rm -f tsconfig.build.tsbuildinfo && tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist",