@vhyxvoid/agent 1.0.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 (37) hide show
  1. package/dist/AgentClient.d.ts +70 -0
  2. package/dist/AgentClient.d.ts.map +1 -0
  3. package/dist/AgentClient.js +261 -0
  4. package/dist/AgentClient.js.map +1 -0
  5. package/dist/batcher/MessageBatcher.d.ts +40 -0
  6. package/dist/batcher/MessageBatcher.d.ts.map +1 -0
  7. package/dist/batcher/MessageBatcher.js +86 -0
  8. package/dist/batcher/MessageBatcher.js.map +1 -0
  9. package/dist/cache/ResponseCache.d.ts +50 -0
  10. package/dist/cache/ResponseCache.d.ts.map +1 -0
  11. package/dist/cache/ResponseCache.js +127 -0
  12. package/dist/cache/ResponseCache.js.map +1 -0
  13. package/dist/cli.d.ts +3 -0
  14. package/dist/cli.d.ts.map +1 -0
  15. package/dist/cli.js +106 -0
  16. package/dist/cli.js.map +1 -0
  17. package/dist/discovery/LocalDiscoveryServer.d.ts +24 -0
  18. package/dist/discovery/LocalDiscoveryServer.d.ts.map +1 -0
  19. package/dist/discovery/LocalDiscoveryServer.js +58 -0
  20. package/dist/discovery/LocalDiscoveryServer.js.map +1 -0
  21. package/dist/index.d.ts +13 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +21 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/proxy/BackendProxy.d.ts +19 -0
  26. package/dist/proxy/BackendProxy.d.ts.map +1 -0
  27. package/dist/proxy/BackendProxy.js +122 -0
  28. package/dist/proxy/BackendProxy.js.map +1 -0
  29. package/dist/queue/DurableQueue.d.ts +37 -0
  30. package/dist/queue/DurableQueue.d.ts.map +1 -0
  31. package/dist/queue/DurableQueue.js +142 -0
  32. package/dist/queue/DurableQueue.js.map +1 -0
  33. package/dist/replay/replayQueue.d.ts +11 -0
  34. package/dist/replay/replayQueue.d.ts.map +1 -0
  35. package/dist/replay/replayQueue.js +58 -0
  36. package/dist/replay/replayQueue.js.map +1 -0
  37. package/package.json +39 -0
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ // packages/agent/src/replay/replayQueue.ts
3
+ // Single replay path. Outbound first, then inbound.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.replayQueue = replayQueue;
6
+ const protocol_1 = require("@vhyxvoid/protocol");
7
+ async function replayQueue(queue, send, proxy) {
8
+ const items = queue.drainForReplay();
9
+ if (items.length === 0) {
10
+ return { succeeded: 0, failed: 0, skipped: 0 };
11
+ }
12
+ console.info(`[replay] processing ${items.length} queued items`);
13
+ let succeeded = 0;
14
+ let failed = 0;
15
+ let skipped = 0;
16
+ for (const item of items) {
17
+ try {
18
+ if (item.direction === "outbound") {
19
+ await replayOutbound(item, send);
20
+ }
21
+ else {
22
+ await replayInbound(item, send, proxy);
23
+ }
24
+ queue.markSuccess(item.id);
25
+ succeeded++;
26
+ }
27
+ catch (err) {
28
+ queue.markFailed(item.id);
29
+ failed++;
30
+ console.warn(`[replay] item ${item.id} failed (attempt ${item.attempts + 1}): ${err.message}`);
31
+ }
32
+ }
33
+ const counts = queue.count();
34
+ console.info(`[replay] done — succeeded: ${succeeded}, failed: ${failed}, ` +
35
+ `remaining: ${counts.ready + counts.pending}`);
36
+ return { succeeded, failed, skipped };
37
+ }
38
+ // ── Direction handlers ────────────────────────────────────────────────────────
39
+ async function replayOutbound(item, send) {
40
+ // Outbound = a response/error the agent computed but couldn't send
41
+ // because WS was down. Just send it now.
42
+ const msg = JSON.parse(item.payload);
43
+ send((0, protocol_1.serialize)(msg));
44
+ }
45
+ async function replayInbound(item, send, proxy) {
46
+ // Inbound = a tunnel:forward the agent received but couldn't forward
47
+ // to the local backend (backend was down). Try forwarding again now.
48
+ const forward = JSON.parse(item.payload);
49
+ const result = await proxy.forward(forward);
50
+ const response = {
51
+ v: protocol_1.PROTOCOL_VERSION,
52
+ type: "tunnel:response",
53
+ requestId: forward.requestId,
54
+ ...result,
55
+ };
56
+ send((0, protocol_1.serialize)(response));
57
+ }
58
+ //# sourceMappingURL=replayQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replayQueue.js","sourceRoot":"","sources":["../../src/replay/replayQueue.ts"],"names":[],"mappings":";AAAA,2CAA2C;AAC3C,oDAAoD;;AAmBpD,kCA0CC;AAzDD,iDAM4B;AASrB,KAAK,UAAU,WAAW,CAC/B,KAAmB,EACnB,IAAY,EACZ,KAAmB;IAEnB,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;IAErC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACjD,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,uBAAuB,KAAK,CAAC,MAAM,eAAe,CAAC,CAAC;IAEjE,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;gBAClC,MAAM,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,MAAM,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3B,SAAS,EAAE,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1B,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CACV,iBAAiB,IAAI,CAAC,EAAE,oBAAoB,IAAI,CAAC,QAAQ,GAAG,CAAC,MAAO,GAAa,CAAC,OAAO,EAAE,CAC5F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC7B,OAAO,CAAC,IAAI,CACV,8BAA8B,SAAS,aAAa,MAAM,IAAI;QAC5D,cAAc,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,EAAE,CAChD,CAAC;IAEF,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACxC,CAAC;AAED,iFAAiF;AAEjF,KAAK,UAAU,cAAc,CAAC,IAAe,EAAE,IAAY;IACzD,mEAAmE;IACnE,yCAAyC;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAEZ,CAAC;IACxB,IAAI,CAAC,IAAA,oBAAS,EAAC,GAAU,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,IAAe,EACf,IAAY,EACZ,KAAmB;IAEnB,qEAAqE;IACrE,qEAAqE;IACrE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAqB,CAAC;IAE7D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5C,MAAM,QAAQ,GAAsB;QAClC,CAAC,EAAE,2BAAgB;QACnB,IAAI,EAAE,iBAAiB;QACvB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,GAAG,MAAM;KACV,CAAC;IAEF,IAAI,CAAC,IAAA,oBAAS,EAAC,QAAQ,CAAC,CAAC,CAAC;AAC5B,CAAC"}
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@vhyxvoid/agent",
3
+ "version": "1.0.0",
4
+ "description": "Platform tunnel agent — connect your local server to the platform",
5
+ "keywords": [
6
+ "tunnel",
7
+ "proxy",
8
+ "websocket",
9
+ "ngrok-alternative"
10
+ ],
11
+ "bin": {
12
+ "vhyxvoid": "dist/cli.js"
13
+ },
14
+ "main": "dist/AgentClient.js",
15
+ "types": "dist/AgentClient.d.ts",
16
+ "files": [
17
+ "dist/**/*"
18
+ ],
19
+ "scripts": {
20
+ "build": "tsc -b && chmod +x dist/cli.js",
21
+ "dev": "tsx src/cli.ts",
22
+ "typecheck": "tsc --noEmit",
23
+ "clean": "rm -rf dist tsconfig.tsbuildinfo",
24
+ "prepublishOnly": "npm run build"
25
+ },
26
+ "dependencies": {
27
+ "@vhyxvoid/protocol": "workspace:*",
28
+ "axios": "^1.13.2",
29
+ "better-sqlite3": "^12.8.0",
30
+ "commander": "^14.0.3",
31
+ "ws": "^8.18.3"
32
+ },
33
+ "devDependencies": {
34
+ "@types/better-sqlite3": "^7.6.13",
35
+ "@types/commander": "^2.12.5",
36
+ "@types/node": "^24.10.1",
37
+ "@types/ws": "^8.18.1"
38
+ }
39
+ }