@agent-link/agent 0.1.131 → 0.1.133

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.
@@ -13,6 +13,7 @@ import { listBriefings, getBriefingDetail } from './briefing.js';
13
13
  import { listDevops, getDevopsDetail } from './devops.js';
14
14
  import { listProjects, getProjectDetail } from './project.js';
15
15
  import { brainSearch, getSearchIndexStats } from './search.js';
16
+ import { createTunnelHandler } from './tunnel.js';
16
17
  const require = createRequire(import.meta.url);
17
18
  const pkg = require('../package.json');
18
19
  import { handleChat as claudeHandleChat, setSendFn, abort as abortClaude, abortAll as abortAllClaude, cancelExecution as claudeCancelExecution, handleUserAnswer, handleBtwQuestion, getConversation, getConversations, getIsCompacting, clearSessionId, evictByClaudeSessionId, rebindConversation, addOutputObserver, removeOutputObserver, addCloseObserver, removeCloseObserver, setOutputObserver, clearOutputObserver, setCloseObserver, clearCloseObserver, restartConversation, createPlaceholderConversation } from './claude.js';
@@ -21,6 +22,7 @@ import { listMemoryFiles, updateMemoryFile, deleteMemoryFile } from './memory.js
21
22
  import { decodeKey, parseMessage, encryptAndSend } from './encryption.js';
22
23
  import { setTeamSendFn, setTeamClaudeFns, getActiveTeam, serializeTeam } from './team.js';
23
24
  import { initScheduler, getRunningExecutions, } from './scheduler.js';
25
+ let tunnelHandler = null;
24
26
  const RECONNECT_BASE_DELAY = 1000;
25
27
  const RECONNECT_MAX_DELAY = 10_000;
26
28
  const HEARTBEAT_INTERVAL = 45_000; // Send ping every 45s (staggered from server's 30s)
@@ -52,6 +54,8 @@ export function connect(config) {
52
54
  }
53
55
  // Wire up the Claude module to send messages through our WebSocket
54
56
  setSendFn(send);
57
+ // Initialize the tunnel handler for port proxy
58
+ tunnelHandler = createTunnelHandler(send);
55
59
  // Wire up the Team module with send and claude dependencies
56
60
  setTeamSendFn(send);
57
61
  setTeamClaudeFns({
@@ -177,6 +181,10 @@ function doConnect(config, onRegistered, onError) {
177
181
  }
178
182
  }
179
183
  console.log(`[AgentLink] Registered, session: ${state.sessionId}`);
184
+ // Sync initial proxy config to server
185
+ if (tunnelHandler) {
186
+ send({ type: 'proxy_config_updated', config: tunnelHandler.getProxyConfig() });
187
+ }
180
188
  }
181
189
  else {
182
190
  const msg = await parseMessage(raw, state.sessionKey);
@@ -209,6 +217,8 @@ export function disconnect() {
209
217
  state.shouldReconnect = false;
210
218
  stopHeartbeat();
211
219
  abortAllClaude();
220
+ if (tunnelHandler)
221
+ tunnelHandler.cleanup();
212
222
  if (state.ws) {
213
223
  state.ws.close();
214
224
  state.ws = null;
@@ -588,6 +598,31 @@ function handleServerMessage(msg) {
588
598
  case 'get_search_index_stats':
589
599
  handleGetSearchIndexStats();
590
600
  break;
601
+ // ── Port Proxy tunnel handlers ──────────────────────────────────────
602
+ case 'tunnel_request':
603
+ if (tunnelHandler)
604
+ tunnelHandler.handleTunnelRequest(msg);
605
+ break;
606
+ case 'tunnel_ws_open':
607
+ if (tunnelHandler)
608
+ tunnelHandler.handleTunnelWsOpen(msg);
609
+ break;
610
+ case 'tunnel_ws_message':
611
+ if (tunnelHandler)
612
+ tunnelHandler.handleTunnelWsMessage(msg);
613
+ break;
614
+ case 'tunnel_ws_close':
615
+ if (tunnelHandler)
616
+ tunnelHandler.handleTunnelWsClose(msg);
617
+ break;
618
+ case 'get_proxy_config':
619
+ if (tunnelHandler)
620
+ send({ type: 'proxy_config_updated', config: tunnelHandler.getProxyConfig() });
621
+ break;
622
+ case 'proxy_config_update':
623
+ if (tunnelHandler)
624
+ tunnelHandler.handleProxyConfigUpdate(msg);
625
+ break;
591
626
  default:
592
627
  console.log(`[AgentLink] Unhandled server message: ${msg.type}`);
593
628
  send({ type: 'error', message: `Unsupported command: ${msg.type}. Please upgrade your agent: agentlink-client upgrade` });
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChL,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACxI,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAE,aAAa,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACzK,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACrP,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC3G,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AACvC,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAE,SAAS,EAAE,KAAK,IAAI,WAAW,EAAE,QAAQ,IAAI,cAAc,EAAE,eAAe,IAAI,qBAAqB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,6BAA6B,EAAiB,MAAM,aAAa,CAAC;AAC1hB,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACtH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1F,OAAO,EACL,aAAa,EAEb,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,IAAI,aAAa,GAAkD,IAAI,CAAC;AAExE,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAClC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AACnC,MAAM,kBAAkB,GAAG,MAAM,CAAC,CAAE,oDAAoD;AACxF,MAAM,iBAAiB,GAAG,MAAM,CAAC,CAAG,0CAA0C;AAY9E,MAAM,KAAK,GAAoB;IAC7B,EAAE,EAAE,IAAI;IACR,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,IAAI;IAChB,iBAAiB,EAAE,CAAC;IACpB,eAAe,EAAE,IAAI;IACrB,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;IACtB,MAAM,EAAE,IAAI;CACb,CAAC;AAEF,IAAI,iBAAiB,GAA0C,IAAI,CAAC;AACpE,IAAI,gBAAgB,GAAyC,IAAI,CAAC;AAElE;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,MAAmB;IACzC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;IAC3B,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;IAE7B,uFAAuF;IACvF,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;IAChC,IAAI,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QACrD,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,mEAAmE;IACnE,SAAS,CAAC,IAAI,CAAC,CAAC;IAEhB,+CAA+C;IAC/C,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAE1C,4DAA4D;IAC5D,aAAa,CAAC,IAAI,CAAC,CAAC;IACpB,gBAAgB,CAAC;QACf,UAAU,EAAE,gBAAgB;QAC5B,eAAe,EAAE,qBAAqB;QACtC,iBAAiB;QACjB,oBAAoB;QACpB,gBAAgB;QAChB,mBAAmB;QACnB,sDAAsD;QACtD,iBAAiB;QACjB,mBAAmB;QACnB,gBAAgB;QAChB,kBAAkB;KACnB,CAAC,CAAC;IAEH,gCAAgC;IAChC,aAAa,CAAC;QACZ,IAAI;QACJ,UAAU,EAAE,gBAAgB;QAC5B,eAAe,EAAE,qBAAqB;QACtC,iBAAiB;QACjB,oBAAoB;QACpB,gBAAgB;QAChB,mBAAmB;KACpB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,SAAS,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa;IACpB,IAAI,iBAAiB,EAAE,CAAC;QACtB,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACjC,iBAAiB,GAAG,IAAI,CAAC;IAC3B,CAAC;IACD,IAAI,gBAAgB,EAAE,CAAC;QACrB,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAC/B,gBAAgB,GAAG,IAAI,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,SAAS,cAAc;IACrB,aAAa,EAAE,CAAC;IAEhB,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO;IACtB,MAAM,EAAE,GAAc,KAAK,CAAC,EAAE,CAAC;IAE/B,SAAS,QAAQ;QACf,qEAAqE;QACrE,mEAAmE;QACnE,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YACpB,aAAa,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI;YAAE,OAAO;QAE7C,EAAE,CAAC,IAAI,EAAE,CAAC;QAEV,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE;YACjC,gBAAgB,GAAG,IAAI,CAAC;YACxB,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE;gBAAE,OAAO;YAC5B,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI;gBAAE,OAAO;YAE7C,OAAO,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;YACrF,EAAE,CAAC,SAAS,EAAE,CAAC;QACjB,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACxB,CAAC;IAED,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QACjB,IAAI,gBAAgB,EAAE,CAAC;YACrB,YAAY,CAAC,gBAAgB,CAAC,CAAC;YAC/B,gBAAgB,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,QAAQ,EAAE,CAAC;IACX,iBAAiB,GAAG,WAAW,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAChB,MAAmB,EACnB,YAAyC,EACzC,OAA6B;IAE7B,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,6BAA6B,MAAM,CAAC,MAAM,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEvH,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;IACd,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QACjB,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAC/C,cAAc,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,IAAI,MAA+B,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAmB,CAAC;YAChD,MAAM,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAAC;YAC1C,KAAK,CAAC,SAAS,GAAG,YAAY,CAAC;YAC/B,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC1C,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAClD,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,IAAI,CAAC;gBACf,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAChC,CAAC;YACD,+DAA+D;YAC/D,IAAI,iBAAiB,IAAI,iBAAiB,KAAK,YAAY,EAAE,CAAC;gBAC5D,OAAO,CAAC,IAAI,CAAC,mCAAmC,iBAAiB,MAAM,YAAY,EAAE,CAAC,CAAC;gBACvF,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;gBAChC,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC;yBAC1C,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;yBAC1B,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAC5B,gBAAgB,CAAC;wBACf,GAAG,IAAI;wBACP,SAAS,EAAE,YAAY;wBACvB,UAAU,EAAE,GAAG,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,YAAY,EAAE;qBAC9E,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,oCAAoC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YACnE,sCAAsC;YACtC,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,GAAG,EAAE,CAAC;gBACR,mBAAmB,CAAC,GAA+C,CAAC,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,8CAA8C,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9H,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAClB,aAAa,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,gCAAgC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,yEAAyE;QACzE,0EAA0E;QAC1E,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACjC,OAAO,GAAG,IAAI,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC;IAC9B,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,CAAC;IACjB,IAAI,aAAa;QAAE,aAAa,CAAC,OAAO,EAAE,CAAC;IAC3C,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;QACb,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AAElC,MAAM,UAAU,IAAI,CAAC,GAA4B;IAC/C,IAAI,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;QACvD,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAC9B,cAAc,CAAC,KAAK,CAAC,EAAG,EAAE,GAAG,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,2BAA2B,GAAG,CAAC,IAAI,oCAAoC,KAAK,CAAC,EAAE,EAAE,UAAU,GAAG,CAAC,CAAC;IAC/G,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,MAAmB;IACrC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,IAAI,EAAE,OAAO;QACb,EAAE,EAAE,MAAM,CAAC,IAAI;QACf,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;QACvB,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB,CAAC,CAAC;IACH,+DAA+D;IAC/D,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;IAC/F,CAAC;IACD,oDAAoD;IACpD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IACD,6BAA6B;IAC7B,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,IAAI,KAAK,MAAM,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAmB;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,iBAAiB,CAAC,EAC7D,mBAAmB,CACpB,CAAC;IACF,KAAK,CAAC,iBAAiB,EAAE,CAAC;IAE1B,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,KAAK,CAAC,iBAAiB,MAAM,CAAC,CAAC;IAEhH,UAAU,CAAC,GAAG,EAAE;QACd,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,2CAA2C;QACpE,gFAAgF;QAChF,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE;YACrB,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACtD,CAAC,EAAE,GAAG,EAAE;YACN,8DAA8D;QAChE,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,KAAK,CAAC,CAAC;AACZ,CAAC;AAED,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AACzE,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AAE/D,SAAS,cAAc,CAAC,GAAW;IACjC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,cAAc,CAAC;AAC9C,CAAC;AAED,SAAS,mBAAmB,CAAC,GAA6C;IACxE,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,UAAU,GAAI,GAA8C,CAAC,cAAc,CAAC;YAClF,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;YAClF,MAAM,WAAW,GAAI,GAA0C,CAAC,SAAS,CAAC;YAC1E,MAAM,OAAO,GAAI,GAAuC,CAAC,OAAO,CAAC;YACjE,MAAM,YAAY,GAAI,GAA4C,CAAC,YAAY,CAAC;YAChF,MAAM,gBAAgB,GAAI,GAAgD,CAAC,gBAAgB,CAAC;YAC5F,MAAM,cAAc,GAAI,GAA8C,CAAC,cAAc,CAAC;YACtF,MAAM,iBAAiB,GAAI,GAAiD,CAAC,iBAAiB,CAAC;YAC/F,MAAM,WAAW,GAAI,GAA2C,CAAC,WAAW,CAAC;YAC7E,MAAM,WAAW,GAAG,YAAY,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;YAC3D,MAAM,kBAAkB,GAAG,WAAW,IAAI,cAAc,CAAC,WAAW,CAAC,CAAC;YACtE,OAAO,CAAC,GAAG,CAAC,oCAAoC,UAAU,2BAA2B,YAAY,EAAE,QAAQ,eAAe,kBAAkB,cAAc,WAAW,aAAa,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAClN,MAAM,WAAW,GAAqM;gBACpN,eAAe,EAAG,GAA+C,CAAC,eAAe;aAClF,CAAC;YACF,IAAI,kBAAkB,EAAE,CAAC;gBACvB,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC;YAC/B,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;YAChC,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,WAAW,CAAC,YAAY,GAAG,YAAY,CAAC;YAC1C,CAAC;YACD,IAAI,gBAAgB,EAAE,CAAC;gBACrB,WAAW,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;YAClD,CAAC;YACD,IAAI,cAAc,EAAE,CAAC;gBACnB,WAAW,CAAC,cAAc,GAAG,cAAc,CAAC;YAC9C,CAAC;YACD,IAAI,iBAAiB,EAAE,CAAC;gBACtB,WAAW,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;YACpD,CAAC;YACD,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;YACxC,CAAC;YACD,MAAM,OAAO,GAAG,CAAC,OAAO,IAAI,YAAY,IAAI,gBAAgB,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;YACzI,gBAAgB,CACd,UAAU,EACT,GAAqC,CAAC,MAAM,EAC7C,OAAO,EACP,WAAW,EACV,GAAyC,CAAC,KAAK,CACjD,CAAC;YACF,MAAM;QACR,CAAC;QACD,KAAK,kBAAkB;YACrB,qBAAqB,CAAE,GAA8C,CAAC,cAAc,CAAC,CAAC;YACtF,MAAM;QACR,KAAK,eAAe;YAClB,kBAAkB,EAAE,CAAC;YACrB,MAAM;QACR,KAAK,sBAAsB;YACzB,wBAAwB,CAAC,GAAoC,CAAC,CAAC;YAC/D,MAAM;QACR,KAAK,gBAAgB;YACnB,mBAAmB,CAAC,GAAsD,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACjG,MAAM;QACR,KAAK,WAAW;YACd,cAAc,CAAC,GAAsC,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5E,MAAM;QACR,KAAK,aAAa;YAChB,gBAAgB,CAAC,GAAuD,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC/F,MAAM;QACR,KAAK,aAAa;YAChB,gBAAgB,CAAC,GAAuD,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC/F,MAAM;QACR,KAAK,kBAAkB;YACrB,qBAAqB,CAAC,GAAsD,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACnG,MAAM;QACR,KAAK,aAAa;YAChB,gBAAgB,CAAC,GAAsC,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC9E,MAAM;QACR,KAAK,gBAAgB;YACnB,mBAAmB,CAAC,GAAqC,EAAE,KAAK,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;YAC5F,MAAM;QACR,KAAK,kBAAkB;YACrB,8EAA8E;YAC9E,WAAW,EAAE,CAAC;YACd,cAAc,CAAC,SAAS,CAAC,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;YAC9D,MAAM;QACR,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC3B,MAAM,CAAC,GAAG,GAAsE,CAAC;YACjF,MAAM,MAAM,GAAG,CAAC,CAAC,cAAc,CAAC;YAEhC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,uCAAuC;gBACvC,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;gBAC/B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,CAAC,eAAe,EAAE,CAAC;oBACxD,WAAW,EAAE,CAAC;gBAChB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,mEAAmE;gBACnE,+DAA+D;gBAC/D,kBAAkB,CAAC,CAAC,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YAChD,CAAC;YAED,0FAA0F;YAC1F,IAAI,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC;YACpE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,YAAY,GAAG,mBAAmB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;gBAC5D,IAAI,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,YAAY,IAAI,YAAY,CAAC,gBAAgB,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;oBACnH,OAAO,GAAG,mBAAmB,CAAC,cAAc,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,uCAAuC,OAAO,CAAC,MAAM,sBAAsB,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAEzH,gFAAgF;YAChF,wFAAwF;YACxF,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;YACzE,MAAM,aAAa,GAAG,WAAW,EAAE,eAAe,KAAK,CAAC,CAAC,eAAe;mBACnE,WAAW,EAAE,mBAAmB,KAAK,CAAC,CAAC,eAAe,CAAC;YAE5D,yEAAyE;YACzE,2DAA2D;YAC3D,yEAAyE;YACzE,6EAA6E;YAC7E,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;gBACxC,mBAAmB,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YACnD,CAAC;iBAAM,IAAI,WAAW,EAAE,CAAC;gBACvB,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC/B,CAAC;YAED,0DAA0D;YAC1D,MAAM,WAAW,GAAG,mBAAmB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YAC3D,MAAM,eAAe,GAAG,WAAW,CAAC,SAAS,IAAI,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAE/E,IAAI,CAAC;gBACH,IAAI,EAAE,sBAAsB;gBAC5B,cAAc,EAAE,MAAM;gBACtB,eAAe,EAAE,CAAC,CAAC,eAAe;gBAClC,OAAO;gBACP,YAAY,EAAE,aAAa,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;gBACrF,YAAY,EAAE,aAAa,IAAI,WAAW,EAAE,UAAU,KAAK,IAAI;gBAC/D,QAAQ,EAAE,KAAK;gBACf,SAAS,EAAE,eAAe;aAC3B,CAAC,CAAC;YACH,MAAM;QACR,CAAC;QACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,CAAC,GAAG,GAAyE,CAAC;YACpF,gBAAgB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;YACzC,MAAM;QACR,CAAC;QACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,GAAG,GAAuC,CAAC;YAClD,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACjC,MAAM;QACR,CAAC;QACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,GAAG,GAAyD,CAAC;YACpE,mBAAmB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM;QACR,CAAC;QACD,KAAK,4BAA4B,CAAC,CAAC,CAAC;YAClC,MAAM,MAAM,GAAoH,EAAE,CAAC;YACnI,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,gBAAgB,EAAE,EAAE,CAAC;gBAChD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC;wBACV,cAAc,EAAE,MAAM;wBACtB,eAAe,EAAE,IAAI,CAAC,eAAe;wBACrC,YAAY,EAAE,IAAI;wBAClB,YAAY,EAAE,eAAe,CAAC,MAAM,CAAC;qBACtC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,MAAM,eAAe,GAAG,aAAa,EAAE,CAAC;YACxC,sDAAsD;YACtD,MAAM,YAAY,GAA4E,EAAE,CAAC;YACjG,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,oBAAoB,EAAE,EAAE,CAAC;gBACpD,YAAY,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;YACvG,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,uCAAuC,MAAM,CAAC,MAAM,UAAU,CAAC,CAAC;YAC5E,IAAI,CAAC;gBACH,IAAI,EAAE,sBAAsB;gBAC5B,aAAa,EAAE,MAAM;gBACrB,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI;gBACnE,qBAAqB,EAAE,YAAY;aACpC,CAAC,CAAC;YACH,MAAM;QACR,CAAC;QACD,KAAK,aAAa;YAChB,gBAAgB,CAAC,GAAmH,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC3J,MAAM;QACR,KAAK,eAAe;YAClB,kBAAkB,EAAE,CAAC;YACrB,MAAM;QACR,KAAK,YAAY;YACf,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACrC,MAAM;QACR,KAAK,UAAU;YACb,aAAa,CAAC,GAAoC,EAAE,IAAI,CAAC,CAAC;YAC1D,MAAM;QACR,KAAK,wBAAwB;YAC3B,yBAAyB,CAAC,GAAqD,EAAE,IAAI,CAAC,CAAC;YACvF,MAAM;QACR,KAAK,aAAa;YAChB,gBAAgB,CAAC,GAAoC,EAAE,IAAI,CAAC,CAAC;YAC7D,MAAM;QACR,KAAK,aAAa;YAChB,gBAAgB,CAAC,GAAsD,EAAE,IAAI,CAAC,CAAC;YAC/E,MAAM;QACR,sEAAsE;QACtE,KAAK,aAAa;YAChB,gBAAgB,CAAC,GAAuN,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC/P,MAAM;QACR,KAAK,aAAa;YAChB,gBAAgB,CAAC,GAA8Q,EAAE,IAAI,CAAC,CAAC;YACvS,MAAM;QACR,KAAK,aAAa;YAChB,gBAAgB,CAAC,GAAoC,EAAE,IAAI,CAAC,CAAC;YAC7D,MAAM;QACR,KAAK,YAAY;YACf,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACrC,MAAM;QACR,KAAK,UAAU;YACb,aAAa,CAAC,GAAoC,EAAE,IAAI,CAAC,CAAC;YAC1D,MAAM;QACR,KAAK,UAAU;YACb,aAAa,CAAC,GAAoC,EAAE,IAAI,CAAC,CAAC;YAC1D,MAAM;QACR,KAAK,uBAAuB;YAC1B,yBAAyB,CAAC,GAAoC,CAAC,CAAC;YAChE,MAAM;QACR,KAAK,sBAAsB;YACzB,wBAAwB,CAAC,GAAoD,EAAE,IAAI,CAAC,CAAC;YACrF,MAAM;QACR,KAAK,6BAA6B;YAChC,8BAA8B,CAAC,GAAyD,EAAE,IAAI,CAAC,CAAC;YAChG,MAAM;QACR,KAAK,mBAAmB;YACtB,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM;QACR,KAAK,MAAM;YACT,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAG,GAAiC,CAAC,EAAE,EAAE,CAAC,CAAC;YAClE,MAAM;QACR,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAChF,MAAM;QACR,CAAC;QACD,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,GAAuD,CAAC;YACtF,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAClE,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;YACtD,MAAM;QACR,CAAC;QACD,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAsC,CAAC;YAC5D,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACzD,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;YACtD,MAAM;QACR,CAAC;QACD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,GAAyF,CAAC;YAChJ,iBAAiB,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;YAClF,MAAM;QACR,CAAC;QACD,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,GAGnC,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,sCAAsC,OAAO,oBAAoB,cAAc,EAAE,CAAC,CAAC;YAE/F,MAAM,IAAI,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;YAC7C,IAAI,IAAI,EAAE,CAAC;gBACT,wBAAwB;gBACxB,MAAM,MAAM,GAAG,mBAAmB,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC1E,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;oBACzB,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,cAAc,EAAE,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,2CAA2C;gBAC3C,6BAA6B,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YACvE,CAAC;YAED,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;YAC7D,MAAM;QACR,CAAC;QACD,KAAK,YAAY;YACf,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC1C,MAAM;QACR,KAAK,UAAU;YACb,aAAa,CAAC,GAA2F,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAChI,MAAM;QACR,KAAK,WAAW;YACd,cAAc,CAAC,GAAmD,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACzF,MAAM;QACR,KAAK,aAAa;YAChB,gBAAgB,CAAC,GAAmD,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC3F,MAAM;QACR,KAAK,aAAa;YAChB,gBAAgB,CAAC,GAAmD,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC3F,MAAM;QACR,KAAK,YAAY;YACf,eAAe,CAAC,GAAmD,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC1F,MAAM;QACR,KAAK,aAAa;YAChB,gBAAgB,EAAE,CAAC;YACnB,MAAM;QACR,KAAK,kBAAkB;YACrB,uBAAuB,CAAC,GAA0D,CAAC,CAAC;YACpF,MAAM;QACR,KAAK,gBAAgB;YACnB,mBAAmB,EAAE,CAAC;YACtB,MAAM;QACR,KAAK,qBAAqB;YACxB,0BAA0B,CAAC,GAAkC,CAAC,CAAC;YAC/D,MAAM;QACR,KAAK,aAAa;YAChB,gBAAgB,EAAE,CAAC;YACnB,MAAM;QACR,KAAK,mBAAmB;YACtB,wBAAwB,CAAC,GAA+D,CAAC,CAAC;YAC1F,MAAM;QACR,KAAK,eAAe;YAClB,kBAAkB,EAAE,CAAC;YACrB,MAAM;QACR,KAAK,oBAAoB;YACvB,yBAAyB,CAAC,GAAyC,CAAC,CAAC;YACrE,MAAM;QACR,KAAK,cAAc;YACjB,iBAAiB,CAAC,GAAuE,CAAC,CAAC;YAC3F,MAAM;QACR,KAAK,wBAAwB;YAC3B,yBAAyB,EAAE,CAAC;YAC5B,MAAM;QACR,uEAAuE;QACvE,KAAK,gBAAgB;YACnB,IAAI,aAAa;gBAAE,aAAa,CAAC,mBAAmB,CAAC,GAA0J,CAAC,CAAC;YACjN,MAAM;QACR,KAAK,gBAAgB;YACnB,IAAI,aAAa;gBAAE,aAAa,CAAC,kBAAkB,CAAC,GAA2H,CAAC,CAAC;YACjL,MAAM;QACR,KAAK,mBAAmB;YACtB,IAAI,aAAa;gBAAE,aAAa,CAAC,qBAAqB,CAAC,GAAgG,CAAC,CAAC;YACzJ,MAAM;QACR,KAAK,iBAAiB;YACpB,IAAI,aAAa;gBAAE,aAAa,CAAC,mBAAmB,CAAC,GAA+F,CAAC,CAAC;YACtJ,MAAM;QACR,KAAK,kBAAkB;YACrB,IAAI,aAAa;gBAAE,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YAClG,MAAM;QACR,KAAK,qBAAqB;YACxB,IAAI,aAAa;gBAAE,aAAa,CAAC,uBAAuB,CAAC,GAAoH,CAAC,CAAC;YAC/K,MAAM;QACR;YACE,OAAO,CAAC,GAAG,CAAC,yCAAyC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,wBAAwB,GAAG,CAAC,IAAI,uDAAuD,EAAE,CAAC,CAAC;IAC9H,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,8BAA8B,MAAM,CAAC,MAAM,UAAU,CAAC,CAAC;QACnE,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,GAA6C;IAClF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,cAAc,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,+BAA+B,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;QAC3D,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,yCAAyC,GAAG,CAAC,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5E,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzF,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB;IAChC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,cAAc,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,iCAAiC,SAAS,CAAC,MAAM,aAAa,CAAC,CAAC;QAC5E,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAC;QACxD,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,0BAA0B,CAAC,GAAqB;IAC7D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,kCAAkC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;QAC3D,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,4CAA4C,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5E,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACvF,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,8BAA8B,MAAM,CAAC,YAAY,CAAC,MAAM,SAAS,MAAM,CAAC,SAAS,CAAC,MAAM,OAAO,CAAC,CAAC;QAC7G,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3H,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnG,CAAC;AACH,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,GAAkD;IACxF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,cAAc,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,gCAAgC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC/E,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,0CAA0C,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC;QAChG,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzI,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB;IAC/B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,gCAAgC,QAAQ,CAAC,MAAM,YAAY,CAAC,CAAC;QACzE,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,GAA4B;IACnE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,cAAc,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,iCAAiC,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC;QACjE,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,2CAA2C,GAAG,CAAC,WAAW,GAAG,EAAE,GAAG,CAAC,CAAC;QAClF,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,GAA0D;IACzF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,iCAAiC,MAAM,CAAC,YAAY,iBAAiB,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;QAChG,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,uCAAuC,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC;QACzE,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtG,CAAC;AACH,CAAC;AAED,KAAK,UAAU,yBAAyB;IACtC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,cAAc,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,qCAAqC,KAAK,CAAC,OAAO,CAAC,MAAM,WAAW,CAAC,CAAC;QAClF,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAC;QAC9D,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB;IACzB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAClC,GAAG,CAAC;YACJ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3B,mDAAmD;YACnD,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,CAAC,CAAC,CAAC;QAEJ,gGAAgG;QAChG,+EAA+E;QAC/E,sEAAsE;QACtE,MAAM,aAAa,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5D,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;YAC/B,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;gBAAE,SAAS;YAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;YACvC,IAAI,IAAI,EAAE,OAAO,IAAI,IAAI,EAAE,YAAY,IAAI,IAAI,EAAE,gBAAgB,IAAI,IAAI,EAAE,WAAW,EAAE,CAAC;gBACvF,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,gCAAgC,QAAQ,CAAC,MAAM,iBAAiB,KAAK,CAAC,OAAO,eAAe,WAAW,GAAG,CAAC,CAAC;QACxH,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,GAAuB;IAC7D,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,uCAAuC,QAAQ,CAAC,MAAM,gCAAgC,CAAC,CAAC;QACpG,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAC;QAChE,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAiB;IAC5C,kEAAkE;IAClE,IAAI,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,iDAAiD,EAAE,CAAC,CAAC;QACpF,OAAO;IACT,CAAC;IACD,8GAA8G;IAC9G,IAAI,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACtD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnF,OAAO,GAAG,aAAa,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,qBAAqB,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAiB,EAAE,QAAgB;IAC9D,8GAA8G;IAC9G,IAAI,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnF,OAAO,GAAG,aAAa,CAAC,cAAc,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC,CAAC;IACjF,CAAC;AACH,CAAC"}
@@ -0,0 +1,50 @@
1
+ type SendFn = (msg: Record<string, unknown>) => void;
2
+ export interface ProxyPortConfig {
3
+ port: number;
4
+ enabled: boolean;
5
+ label?: string;
6
+ }
7
+ export interface ProxyConfig {
8
+ enabled: boolean;
9
+ ports: ProxyPortConfig[];
10
+ }
11
+ interface TunnelRequest {
12
+ type: 'tunnel_request';
13
+ tunnelId: string;
14
+ port: number;
15
+ method: string;
16
+ path: string;
17
+ headers: Record<string, string>;
18
+ body?: string;
19
+ }
20
+ interface TunnelWsOpen {
21
+ type: 'tunnel_ws_open';
22
+ tunnelId: string;
23
+ port: number;
24
+ path: string;
25
+ headers: Record<string, string>;
26
+ }
27
+ interface TunnelWsMessage {
28
+ type: 'tunnel_ws_message';
29
+ tunnelId: string;
30
+ data: string;
31
+ binary: boolean;
32
+ }
33
+ interface TunnelWsClose {
34
+ type: 'tunnel_ws_close';
35
+ tunnelId: string;
36
+ code?: number;
37
+ reason?: string;
38
+ }
39
+ export declare function createTunnelHandler(send: SendFn): {
40
+ handleTunnelRequest: (msg: TunnelRequest) => void;
41
+ handleTunnelWsOpen: (msg: TunnelWsOpen) => void;
42
+ handleTunnelWsMessage: (msg: TunnelWsMessage) => void;
43
+ handleTunnelWsClose: (msg: TunnelWsClose) => void;
44
+ handleProxyConfigUpdate: (msg: {
45
+ config: ProxyConfig;
46
+ }) => void;
47
+ getProxyConfig: () => ProxyConfig;
48
+ cleanup: () => void;
49
+ };
50
+ export {};
package/dist/tunnel.js ADDED
@@ -0,0 +1,216 @@
1
+ // ── Port Proxy tunnel executor (agent side) ─────────────────────────────────
2
+ // Handles tunnel_request (HTTP) and tunnel_ws_* (WebSocket) messages from the
3
+ // server, forwarding them to localhost:<port> on the agent machine.
4
+ import http from 'http';
5
+ import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'fs';
6
+ import { join } from 'path';
7
+ import { homedir } from 'os';
8
+ import WebSocket from 'ws';
9
+ const MAX_BODY_SIZE = 10 * 1024 * 1024; // 10MB
10
+ const HTTP_TIMEOUT = 30_000;
11
+ // ── Persistence ──
12
+ const TOOLS_DIR = join(homedir(), '.agentlink', 'tools');
13
+ const PROXY_CONFIG_FILE = join(TOOLS_DIR, 'proxy-config.json');
14
+ function loadPersistedConfig() {
15
+ try {
16
+ const raw = readFileSync(PROXY_CONFIG_FILE, 'utf-8');
17
+ const parsed = JSON.parse(raw);
18
+ // Validate loaded data
19
+ if (typeof parsed.enabled !== 'boolean' || !Array.isArray(parsed.ports)) {
20
+ return { enabled: false, ports: [] };
21
+ }
22
+ return {
23
+ enabled: parsed.enabled,
24
+ ports: parsed.ports.filter(p => validatePort(p.port)).map(p => ({
25
+ port: p.port,
26
+ enabled: !!p.enabled,
27
+ ...(p.label ? { label: p.label } : {}),
28
+ })),
29
+ };
30
+ }
31
+ catch {
32
+ return { enabled: false, ports: [] };
33
+ }
34
+ }
35
+ function persistConfig(config) {
36
+ try {
37
+ if (!existsSync(TOOLS_DIR)) {
38
+ mkdirSync(TOOLS_DIR, { recursive: true });
39
+ }
40
+ writeFileSync(PROXY_CONFIG_FILE, JSON.stringify(config, null, 2) + '\n', 'utf-8');
41
+ }
42
+ catch (err) {
43
+ console.warn('[AgentLink] Failed to persist proxy config:', err);
44
+ }
45
+ }
46
+ // Active tunnel WebSocket connections (tunnelId → ws to localhost)
47
+ const activeTunnelWs = new Map();
48
+ let proxyConfig = loadPersistedConfig();
49
+ function isPortAllowed(port) {
50
+ if (!proxyConfig.enabled)
51
+ return false;
52
+ const entry = proxyConfig.ports.find(p => p.port === port);
53
+ return !!entry && entry.enabled;
54
+ }
55
+ function validatePort(port) {
56
+ return Number.isInteger(port) && port >= 1024 && port <= 65535;
57
+ }
58
+ export function createTunnelHandler(send) {
59
+ function handleTunnelRequest(msg) {
60
+ const { tunnelId, port, method, path, headers, body } = msg;
61
+ if (!validatePort(port)) {
62
+ send({ type: 'tunnel_response', tunnelId, status: 403, error: `Invalid port: ${port}` });
63
+ return;
64
+ }
65
+ if (!isPortAllowed(port)) {
66
+ send({ type: 'tunnel_response', tunnelId, status: 403, error: `Port ${port} is not enabled for proxy` });
67
+ return;
68
+ }
69
+ const bodyBuffer = body ? Buffer.from(body, 'base64') : undefined;
70
+ if (bodyBuffer && bodyBuffer.length > MAX_BODY_SIZE) {
71
+ send({ type: 'tunnel_response', tunnelId, status: 413, error: 'Request body too large' });
72
+ return;
73
+ }
74
+ // Strip hop-by-hop headers that shouldn't be forwarded
75
+ const forwardHeaders = {};
76
+ for (const [k, v] of Object.entries(headers)) {
77
+ const lower = k.toLowerCase();
78
+ if (lower === 'host' || lower === 'connection' || lower === 'upgrade' || lower === 'transfer-encoding')
79
+ continue;
80
+ forwardHeaders[k] = v;
81
+ }
82
+ forwardHeaders['host'] = `localhost:${port}`;
83
+ const req = http.request({
84
+ hostname: '127.0.0.1',
85
+ port,
86
+ method,
87
+ path,
88
+ headers: forwardHeaders,
89
+ timeout: HTTP_TIMEOUT,
90
+ }, (res) => {
91
+ const chunks = [];
92
+ let totalSize = 0;
93
+ res.on('data', (chunk) => {
94
+ totalSize += chunk.length;
95
+ if (totalSize > MAX_BODY_SIZE) {
96
+ res.destroy();
97
+ send({ type: 'tunnel_response', tunnelId, status: 502, error: 'Response body too large' });
98
+ return;
99
+ }
100
+ chunks.push(chunk);
101
+ });
102
+ res.on('end', () => {
103
+ const respHeaders = {};
104
+ for (const [k, v] of Object.entries(res.headers)) {
105
+ if (v)
106
+ respHeaders[k] = Array.isArray(v) ? v.join(', ') : v;
107
+ }
108
+ send({
109
+ type: 'tunnel_response',
110
+ tunnelId,
111
+ status: res.statusCode || 502,
112
+ headers: respHeaders,
113
+ body: Buffer.concat(chunks).toString('base64'),
114
+ });
115
+ });
116
+ res.on('error', (err) => {
117
+ send({ type: 'tunnel_response', tunnelId, status: 502, error: err.message });
118
+ });
119
+ });
120
+ req.on('error', (err) => {
121
+ send({ type: 'tunnel_response', tunnelId, status: 502, error: err.message });
122
+ });
123
+ req.on('timeout', () => {
124
+ req.destroy();
125
+ send({ type: 'tunnel_response', tunnelId, status: 504, error: 'Request timed out' });
126
+ });
127
+ if (bodyBuffer) {
128
+ req.write(bodyBuffer);
129
+ }
130
+ req.end();
131
+ }
132
+ function handleTunnelWsOpen(msg) {
133
+ const { tunnelId, port, path, headers } = msg;
134
+ if (!validatePort(port) || !isPortAllowed(port)) {
135
+ send({ type: 'tunnel_ws_error', tunnelId, message: `Port ${port} is not enabled for proxy` });
136
+ send({ type: 'tunnel_ws_close', tunnelId, code: 1008, reason: 'Port not allowed' });
137
+ return;
138
+ }
139
+ const wsUrl = `ws://127.0.0.1:${port}${path || '/'}`;
140
+ const forwardHeaders = {};
141
+ for (const [k, v] of Object.entries(headers)) {
142
+ const lower = k.toLowerCase();
143
+ if (lower === 'host' || lower === 'connection' || lower === 'upgrade' ||
144
+ lower === 'sec-websocket-key' || lower === 'sec-websocket-version' ||
145
+ lower === 'sec-websocket-extensions')
146
+ continue;
147
+ forwardHeaders[k] = v;
148
+ }
149
+ const ws = new WebSocket(wsUrl, { headers: forwardHeaders });
150
+ ws.on('open', () => {
151
+ activeTunnelWs.set(tunnelId, ws);
152
+ send({ type: 'tunnel_ws_opened', tunnelId });
153
+ });
154
+ ws.on('message', (data, isBinary) => {
155
+ const buf = Buffer.isBuffer(data) ? data : Buffer.from(data);
156
+ send({ type: 'tunnel_ws_message', tunnelId, data: buf.toString('base64'), binary: isBinary });
157
+ });
158
+ ws.on('close', (code, reason) => {
159
+ activeTunnelWs.delete(tunnelId);
160
+ send({ type: 'tunnel_ws_close', tunnelId, code, reason: reason?.toString() });
161
+ });
162
+ ws.on('error', (err) => {
163
+ activeTunnelWs.delete(tunnelId);
164
+ send({ type: 'tunnel_ws_error', tunnelId, message: err.message });
165
+ });
166
+ }
167
+ function handleTunnelWsMessage(msg) {
168
+ const ws = activeTunnelWs.get(msg.tunnelId);
169
+ if (!ws || ws.readyState !== WebSocket.OPEN)
170
+ return;
171
+ const buf = Buffer.from(msg.data, 'base64');
172
+ ws.send(msg.binary ? buf : buf.toString('utf8'));
173
+ }
174
+ function handleTunnelWsClose(msg) {
175
+ const ws = activeTunnelWs.get(msg.tunnelId);
176
+ if (ws) {
177
+ activeTunnelWs.delete(msg.tunnelId);
178
+ ws.close(msg.code || 1000, msg.reason || '');
179
+ }
180
+ }
181
+ function handleProxyConfigUpdate(msg) {
182
+ // Validate ports
183
+ const validPorts = msg.config.ports.filter(p => validatePort(p.port));
184
+ proxyConfig = {
185
+ enabled: !!msg.config.enabled,
186
+ ports: validPorts.map(p => ({
187
+ port: p.port,
188
+ enabled: !!p.enabled,
189
+ ...(p.label ? { label: p.label } : {}),
190
+ })),
191
+ };
192
+ console.log(`[AgentLink] Proxy config updated: enabled=${proxyConfig.enabled}, ports=[${proxyConfig.ports.map(p => `${p.port}(${p.enabled ? 'on' : 'off'})`).join(', ')}]`);
193
+ persistConfig(proxyConfig);
194
+ // Echo back confirmed config to server/web
195
+ send({ type: 'proxy_config_updated', config: proxyConfig });
196
+ }
197
+ function getProxyConfig() {
198
+ return proxyConfig;
199
+ }
200
+ function cleanup() {
201
+ for (const [tunnelId, ws] of activeTunnelWs) {
202
+ ws.close(1001, 'Agent shutting down');
203
+ activeTunnelWs.delete(tunnelId);
204
+ }
205
+ }
206
+ return {
207
+ handleTunnelRequest,
208
+ handleTunnelWsOpen,
209
+ handleTunnelWsMessage,
210
+ handleTunnelWsClose,
211
+ handleProxyConfigUpdate,
212
+ getProxyConfig,
213
+ cleanup,
214
+ };
215
+ }
216
+ //# sourceMappingURL=tunnel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../src/tunnel.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-link/agent",
3
- "version": "0.1.131",
3
+ "version": "0.1.133",
4
4
  "description": "AgentLink local agent CLI",
5
5
  "license": "MIT",
6
6
  "repository": {