@tyvm/knowhow 0.0.64 → 0.0.65
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.
- package/package.json +2 -1
- package/src/chat/modules/AgentModule.ts +11 -1
- package/src/cli.ts +5 -4
- package/src/clients/anthropic.ts +37 -6
- package/src/config.ts +7 -0
- package/src/services/AgentSynchronization.ts +27 -10
- package/src/types.ts +11 -0
- package/src/worker.ts +145 -8
- package/src/workers/tools/index.ts +10 -0
- package/src/workers/tools/listAllowedPorts.ts +30 -0
- package/ts_build/package.json +2 -1
- package/ts_build/src/chat/modules/AgentModule.js +7 -1
- package/ts_build/src/chat/modules/AgentModule.js.map +1 -1
- package/ts_build/src/cli.js +5 -4
- package/ts_build/src/cli.js.map +1 -1
- package/ts_build/src/clients/anthropic.d.ts +9 -0
- package/ts_build/src/clients/anthropic.js +31 -4
- package/ts_build/src/clients/anthropic.js.map +1 -1
- package/ts_build/src/config.js +6 -0
- package/ts_build/src/config.js.map +1 -1
- package/ts_build/src/services/AgentSynchronization.d.ts +2 -0
- package/ts_build/src/services/AgentSynchronization.js +20 -10
- package/ts_build/src/services/AgentSynchronization.js.map +1 -1
- package/ts_build/src/types.d.ts +11 -0
- package/ts_build/src/types.js +1 -0
- package/ts_build/src/types.js.map +1 -1
- package/ts_build/src/worker/handlers/proxyHandler.d.ts +2 -0
- package/ts_build/src/worker/handlers/proxyHandler.js +41 -0
- package/ts_build/src/worker/handlers/proxyHandler.js.map +1 -0
- package/ts_build/src/worker/tools/index.d.ts +1 -0
- package/ts_build/src/worker/tools/index.js +18 -0
- package/ts_build/src/worker/tools/index.js.map +1 -0
- package/ts_build/src/worker/tools/portForwarding.d.ts +49 -0
- package/ts_build/src/worker/tools/portForwarding.js +173 -0
- package/ts_build/src/worker/tools/portForwarding.js.map +1 -0
- package/ts_build/src/worker/types/proxy.d.ts +18 -0
- package/ts_build/src/worker/types/proxy.js +3 -0
- package/ts_build/src/worker/types/proxy.js.map +1 -0
- package/ts_build/src/worker.js +119 -3
- package/ts_build/src/worker.js.map +1 -1
- package/ts_build/src/workers/tools/index.d.ts +9 -0
- package/ts_build/src/workers/tools/index.js +23 -0
- package/ts_build/src/workers/tools/index.js.map +1 -0
- package/ts_build/src/workers/tools/listAllowedPorts.d.ts +3 -0
- package/ts_build/src/workers/tools/listAllowedPorts.js +25 -0
- package/ts_build/src/workers/tools/listAllowedPorts.js.map +1 -0
- package/ts_build/src/workers/tools/listForwardedPorts.d.ts +10 -0
- package/ts_build/src/workers/tools/listForwardedPorts.js +22 -0
- package/ts_build/src/workers/tools/listForwardedPorts.js.map +1 -0
- package/ts_build/tests/worker/handlers/proxyHandler.test.d.ts +1 -0
- package/ts_build/tests/worker/handlers/proxyHandler.test.js +170 -0
- package/ts_build/tests/worker/handlers/proxyHandler.test.js.map +1 -0
- package/tsconfig.json +1 -1
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.listAllowedPorts = exports.listAllowedPortsTool = exports.forwardRequest = exports.portForwardingRequestTool = void 0;
|
|
27
|
+
const http = __importStar(require("http"));
|
|
28
|
+
const https = __importStar(require("https"));
|
|
29
|
+
const config_1 = require("../../config");
|
|
30
|
+
const forwardingSessions = new Map();
|
|
31
|
+
exports.portForwardingRequestTool = {
|
|
32
|
+
type: "function",
|
|
33
|
+
function: {
|
|
34
|
+
name: "forwardRequest",
|
|
35
|
+
description: "Forward an HTTP request to a local port that is allowed in the worker configuration. This enables remote access to local services running on the worker machine.",
|
|
36
|
+
parameters: {
|
|
37
|
+
type: "object",
|
|
38
|
+
positional: true,
|
|
39
|
+
properties: {
|
|
40
|
+
port: {
|
|
41
|
+
type: "number",
|
|
42
|
+
description: "The local port to forward the request to",
|
|
43
|
+
},
|
|
44
|
+
method: {
|
|
45
|
+
type: "string",
|
|
46
|
+
description: "HTTP method (GET, POST, PUT, DELETE, etc.)",
|
|
47
|
+
},
|
|
48
|
+
path: {
|
|
49
|
+
type: "string",
|
|
50
|
+
description: "URL path to request (e.g., /api/data)",
|
|
51
|
+
},
|
|
52
|
+
headers: {
|
|
53
|
+
type: "object",
|
|
54
|
+
description: "HTTP headers to include in the request",
|
|
55
|
+
},
|
|
56
|
+
body: {
|
|
57
|
+
type: "string",
|
|
58
|
+
description: "Request body (for POST, PUT, etc.)",
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
required: ["port", "method", "path"],
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
function isPortAllowed(port, allowedPorts) {
|
|
66
|
+
return allowedPorts.includes(port);
|
|
67
|
+
}
|
|
68
|
+
async function forwardRequest(port, method, path, headers, body) {
|
|
69
|
+
try {
|
|
70
|
+
const config = await (0, config_1.getConfig)();
|
|
71
|
+
const allowedPorts = config.worker?.allowedPorts || [];
|
|
72
|
+
if (!isPortAllowed(port, allowedPorts)) {
|
|
73
|
+
throw new Error(`Port ${port} is not allowed in worker configuration. Allowed ports: ${allowedPorts.join(", ")}`);
|
|
74
|
+
}
|
|
75
|
+
const isInsideDocker = process.env.KNOWHOW_DOCKER === "true";
|
|
76
|
+
let targetPort = port;
|
|
77
|
+
if (isInsideDocker && config.worker?.portMappings) {
|
|
78
|
+
const mapping = config.worker.portMappings.find((m) => {
|
|
79
|
+
const [hostPort, containerPort] = m.split(":").map(Number);
|
|
80
|
+
return containerPort === port;
|
|
81
|
+
});
|
|
82
|
+
if (mapping) {
|
|
83
|
+
const [hostPort, containerPort] = mapping.split(":").map(Number);
|
|
84
|
+
targetPort = containerPort;
|
|
85
|
+
console.log(`Port mapping found: ${hostPort} (host) -> ${containerPort} (container)`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
const result = await makeHttpRequest(targetPort, method, path, headers || {}, body);
|
|
89
|
+
return JSON.stringify({
|
|
90
|
+
success: true,
|
|
91
|
+
statusCode: result.statusCode,
|
|
92
|
+
headers: result.headers,
|
|
93
|
+
body: result.body,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
return JSON.stringify({
|
|
98
|
+
success: false,
|
|
99
|
+
error: error.message,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
exports.forwardRequest = forwardRequest;
|
|
104
|
+
function makeHttpRequest(port, method, path, headers, body) {
|
|
105
|
+
return new Promise((resolve, reject) => {
|
|
106
|
+
const options = {
|
|
107
|
+
hostname: "localhost",
|
|
108
|
+
port,
|
|
109
|
+
path,
|
|
110
|
+
method: method.toUpperCase(),
|
|
111
|
+
headers: {
|
|
112
|
+
...headers,
|
|
113
|
+
"User-Agent": "knowhow-worker-port-forwarder",
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
if (body) {
|
|
117
|
+
options.headers["Content-Length"] = Buffer.byteLength(body);
|
|
118
|
+
}
|
|
119
|
+
const protocol = port === 443 ? https : http;
|
|
120
|
+
const req = protocol.request(options, (res) => {
|
|
121
|
+
let data = "";
|
|
122
|
+
res.on("data", (chunk) => {
|
|
123
|
+
data += chunk;
|
|
124
|
+
});
|
|
125
|
+
res.on("end", () => {
|
|
126
|
+
resolve({
|
|
127
|
+
statusCode: res.statusCode || 0,
|
|
128
|
+
headers: res.headers,
|
|
129
|
+
body: data,
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
req.on("error", (error) => {
|
|
134
|
+
reject(error);
|
|
135
|
+
});
|
|
136
|
+
if (body) {
|
|
137
|
+
req.write(body);
|
|
138
|
+
}
|
|
139
|
+
req.end();
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
exports.listAllowedPortsTool = {
|
|
143
|
+
type: "function",
|
|
144
|
+
function: {
|
|
145
|
+
name: "listAllowedPorts",
|
|
146
|
+
description: "List all ports that are allowed for port forwarding in the worker configuration",
|
|
147
|
+
parameters: {
|
|
148
|
+
type: "object",
|
|
149
|
+
positional: true,
|
|
150
|
+
properties: {},
|
|
151
|
+
required: [],
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
};
|
|
155
|
+
async function listAllowedPorts() {
|
|
156
|
+
try {
|
|
157
|
+
const config = await (0, config_1.getConfig)();
|
|
158
|
+
const allowedPorts = config.worker?.allowedPorts || [];
|
|
159
|
+
const portMappings = config.worker?.portMappings || [];
|
|
160
|
+
return JSON.stringify({
|
|
161
|
+
allowedPorts,
|
|
162
|
+
portMappings,
|
|
163
|
+
isDocker: process.env.KNOWHOW_DOCKER === "true",
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
return JSON.stringify({
|
|
168
|
+
error: error.message,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
exports.listAllowedPorts = listAllowedPorts;
|
|
173
|
+
//# sourceMappingURL=portForwarding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portForwarding.js","sourceRoot":"","sources":["../../../../src/worker/tools/portForwarding.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface ProxyHttpRequest {
|
|
2
|
+
type: 'proxy_http_request';
|
|
3
|
+
requestId: string;
|
|
4
|
+
port: number;
|
|
5
|
+
method: string;
|
|
6
|
+
path: string;
|
|
7
|
+
headers: Record<string, string>;
|
|
8
|
+
body?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ProxyHttpResponse {
|
|
11
|
+
type: 'proxy_http_response';
|
|
12
|
+
requestId: string;
|
|
13
|
+
statusCode: number;
|
|
14
|
+
headers: Record<string, string | string[]>;
|
|
15
|
+
body: string;
|
|
16
|
+
error?: string;
|
|
17
|
+
}
|
|
18
|
+
export type ProxyMessage = ProxyHttpRequest | ProxyHttpResponse;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../../src/worker/types/proxy.ts"],"names":[],"mappings":""}
|
package/ts_build/src/worker.js
CHANGED
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
@@ -6,9 +29,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
29
|
exports.worker = void 0;
|
|
7
30
|
const os_1 = __importDefault(require("os"));
|
|
8
31
|
const ws_1 = require("ws");
|
|
32
|
+
const knowhow_tunnel_1 = require("@tyvm/knowhow-tunnel");
|
|
33
|
+
const list_1 = require("./agents/tools/list");
|
|
9
34
|
const login_1 = require("./login");
|
|
10
35
|
const services_1 = require("./services");
|
|
11
36
|
const Mcp_1 = require("./services/Mcp");
|
|
37
|
+
const allTools = __importStar(require("./agents/tools"));
|
|
38
|
+
const tools_1 = __importDefault(require("./workers/tools"));
|
|
12
39
|
const utils_1 = require("./utils");
|
|
13
40
|
const config_1 = require("./config");
|
|
14
41
|
const KnowhowClient_1 = require("./services/KnowhowClient");
|
|
@@ -111,6 +138,9 @@ async function worker(options) {
|
|
|
111
138
|
return runWorkerInSandbox(options, config);
|
|
112
139
|
}
|
|
113
140
|
const { Tools } = (0, services_1.services)();
|
|
141
|
+
const combinedTools = { ...allTools, ...tools_1.default.tools };
|
|
142
|
+
Tools.defineTools(list_1.includedTools, combinedTools);
|
|
143
|
+
Tools.defineTools(tools_1.default.definitions, tools_1.default.tools);
|
|
114
144
|
const mcpServer = new Mcp_1.McpServerService(Tools);
|
|
115
145
|
const clientName = "knowhow-worker";
|
|
116
146
|
const clientVersion = "1.1.1";
|
|
@@ -133,13 +163,63 @@ async function worker(options) {
|
|
|
133
163
|
const toolsToUse = Tools.getToolsByNames(config.worker.allowedTools);
|
|
134
164
|
mcpServer.createServer(clientName, clientVersion).withTools(toolsToUse);
|
|
135
165
|
let connected = false;
|
|
166
|
+
let tunnelHandler = null;
|
|
167
|
+
let tunnelWs = null;
|
|
168
|
+
const tunnelEnabled = config.worker?.tunnel?.enabled ?? false;
|
|
169
|
+
let tunnelLocalHost = config.worker?.tunnel?.localHost;
|
|
170
|
+
if (!tunnelLocalHost) {
|
|
171
|
+
if (isInsideDocker) {
|
|
172
|
+
tunnelLocalHost = "host.docker.internal";
|
|
173
|
+
console.log("🐳 Docker detected: tunnel will use host.docker.internal to reach host services");
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
tunnelLocalHost = "127.0.0.1";
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
const portMapping = config.worker?.tunnel?.portMapping || {};
|
|
180
|
+
if (Object.keys(portMapping).length > 0) {
|
|
181
|
+
console.log("🔀 Port mapping configured:");
|
|
182
|
+
for (const [containerPort, hostPort] of Object.entries(portMapping)) {
|
|
183
|
+
console.log(` Container port ${containerPort} → Host port ${hostPort}`);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
if (tunnelEnabled) {
|
|
187
|
+
const tunnelPorts = config.worker?.tunnel?.allowedPorts || [];
|
|
188
|
+
if (tunnelPorts.length === 0) {
|
|
189
|
+
console.warn("⚠️ Tunnel enabled but no allowedPorts configured. Add tunnel.allowedPorts to knowhow.json");
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
console.log(`🌐 Tunnel enabled for ports: ${tunnelPorts.join(", ")}`);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
console.log("🚫 Tunnel disabled (enable in knowhow.json: worker.tunnel.enabled = true)");
|
|
197
|
+
}
|
|
198
|
+
function extractTunnelDomain(apiUrl) {
|
|
199
|
+
try {
|
|
200
|
+
const url = new URL(apiUrl);
|
|
201
|
+
const useHttps = url.protocol === "https:";
|
|
202
|
+
if (url.hostname === "localhost" || url.hostname === "127.0.0.1") {
|
|
203
|
+
return {
|
|
204
|
+
domain: `worker.${url.hostname}:${url.port || "80"}`,
|
|
205
|
+
useHttps,
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
return { domain: `worker.${url.hostname}`, useHttps };
|
|
209
|
+
}
|
|
210
|
+
catch (err) {
|
|
211
|
+
console.error("Failed to parse API_URL for tunnel domain:", err);
|
|
212
|
+
return { domain: "worker.localhost:4000", useHttps: false };
|
|
213
|
+
}
|
|
214
|
+
}
|
|
136
215
|
async function connectWebSocket() {
|
|
137
216
|
const jwt = await (0, login_1.loadJwt)();
|
|
138
217
|
console.log(`Connecting to ${API_URL}`);
|
|
139
218
|
const dir = process.cwd();
|
|
140
219
|
const homedir = os_1.default.homedir();
|
|
141
220
|
const hostname = process.env.WORKER_HOSTNAME || os_1.default.hostname();
|
|
142
|
-
const root = process.env.WORKER_ROOT ||
|
|
221
|
+
const root = process.env.WORKER_ROOT ||
|
|
222
|
+
(dir === homedir ? "~" : dir.replace(homedir, "~"));
|
|
143
223
|
const headers = {
|
|
144
224
|
Authorization: `Bearer ${jwt}`,
|
|
145
225
|
"User-Agent": `${clientName}/${clientVersion}/${hostname}`,
|
|
@@ -156,23 +236,59 @@ async function worker(options) {
|
|
|
156
236
|
else {
|
|
157
237
|
console.log("🔒 Worker is private (only you can use it)");
|
|
158
238
|
}
|
|
239
|
+
const { domain: tunnelDomain, useHttps: tunnelUseHttps } = extractTunnelDomain(API_URL);
|
|
159
240
|
const ws = new ws_1.WebSocket(`${API_URL}/ws/worker`, {
|
|
160
241
|
headers,
|
|
161
242
|
});
|
|
243
|
+
let tunnelConnection = null;
|
|
244
|
+
if (tunnelEnabled) {
|
|
245
|
+
tunnelConnection = new ws_1.WebSocket(`${API_URL}/ws/tunnel`, {
|
|
246
|
+
headers,
|
|
247
|
+
});
|
|
248
|
+
tunnelConnection.on("open", () => {
|
|
249
|
+
console.log("Tunnel WebSocket connected");
|
|
250
|
+
tunnelHandler = (0, knowhow_tunnel_1.createTunnelHandler)(tunnelConnection, {
|
|
251
|
+
allowedPorts: config.worker?.tunnel?.allowedPorts || [],
|
|
252
|
+
maxConcurrentStreams: config.worker?.tunnel?.maxConcurrentStreams || 50,
|
|
253
|
+
localHost: tunnelLocalHost,
|
|
254
|
+
tunnelDomain,
|
|
255
|
+
tunnelUseHttps,
|
|
256
|
+
enableUrlRewriting: config.worker?.tunnel?.enableUrlRewriting !== false,
|
|
257
|
+
portMapping,
|
|
258
|
+
logLevel: "info",
|
|
259
|
+
});
|
|
260
|
+
console.log("🌐 Tunnel handler initialized");
|
|
261
|
+
});
|
|
262
|
+
tunnelConnection.on("close", (code, reason) => {
|
|
263
|
+
console.log(`Tunnel WebSocket closed. Code: ${code}, Reason: ${reason.toString()}`);
|
|
264
|
+
if (tunnelHandler) {
|
|
265
|
+
tunnelHandler.cleanup();
|
|
266
|
+
tunnelHandler = null;
|
|
267
|
+
}
|
|
268
|
+
tunnelWs = null;
|
|
269
|
+
});
|
|
270
|
+
tunnelConnection.on("error", (error) => {
|
|
271
|
+
console.error("Tunnel WebSocket error:", error);
|
|
272
|
+
});
|
|
273
|
+
tunnelWs = tunnelConnection;
|
|
274
|
+
}
|
|
162
275
|
ws.on("open", () => {
|
|
163
|
-
console.log("
|
|
276
|
+
console.log("Worker WebSocket connected");
|
|
164
277
|
connected = true;
|
|
165
278
|
});
|
|
166
279
|
ws.on("close", async (code, reason) => {
|
|
167
280
|
console.log(`WebSocket closed. Code: ${code}, Reason: ${reason.toString()}`);
|
|
168
281
|
console.log("Attempting to reconnect...");
|
|
282
|
+
if (tunnelHandler) {
|
|
283
|
+
tunnelHandler = null;
|
|
284
|
+
}
|
|
169
285
|
connected = false;
|
|
170
286
|
});
|
|
171
287
|
ws.on("error", (error) => {
|
|
172
288
|
console.error("WebSocket error:", error);
|
|
173
289
|
});
|
|
174
290
|
mcpServer.runWsServer(ws);
|
|
175
|
-
return { ws, mcpServer };
|
|
291
|
+
return { ws, mcpServer, tunnelWs };
|
|
176
292
|
}
|
|
177
293
|
while (true) {
|
|
178
294
|
let connection = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/worker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./listAllowedPorts"), exports);
|
|
18
|
+
const listAllowedPorts_1 = require("./listAllowedPorts");
|
|
19
|
+
exports.default = {
|
|
20
|
+
tools: { listAllowedPorts: listAllowedPorts_1.listAllowedPorts },
|
|
21
|
+
definitions: [listAllowedPorts_1.listAllowedPortsDefinition],
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/workers/tools/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,yDAG4B;AAE5B,kBAAe;IACb,KAAK,EAAE,EAAE,gBAAgB,EAAhB,mCAAgB,EAAE;IAC3B,WAAW,EAAE,CAAC,6CAA0B,CAAC;CAC1C,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.listAllowedPortsDefinition = exports.listAllowedPorts = void 0;
|
|
4
|
+
const config_1 = require("../../config");
|
|
5
|
+
async function listAllowedPorts() {
|
|
6
|
+
const config = await (0, config_1.getConfig)();
|
|
7
|
+
if (!config.worker?.tunnel?.enabled) {
|
|
8
|
+
return [];
|
|
9
|
+
}
|
|
10
|
+
return config.worker.tunnel.allowedPorts || [];
|
|
11
|
+
}
|
|
12
|
+
exports.listAllowedPorts = listAllowedPorts;
|
|
13
|
+
exports.listAllowedPortsDefinition = {
|
|
14
|
+
type: "function",
|
|
15
|
+
function: {
|
|
16
|
+
name: "listAllowedPorts",
|
|
17
|
+
description: "List all ports that are being forwarded through the worker tunnel. Returns an array of port numbers that can be accessed via the tunnel system.",
|
|
18
|
+
parameters: {
|
|
19
|
+
type: "object",
|
|
20
|
+
properties: {},
|
|
21
|
+
required: [],
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=listAllowedPorts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listAllowedPorts.js","sourceRoot":"","sources":["../../../../src/workers/tools/listAllowedPorts.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AAOlC,KAAK,UAAU,gBAAgB;IACpC,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAS,GAAE,CAAC;IAEjC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;QACnC,OAAO,EAAE,CAAC;KACX;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;AACjD,CAAC;AARD,4CAQC;AAEY,QAAA,0BAA0B,GAAS;IAC9C,IAAI,EAAE,UAAmB;IACzB,QAAQ,EAAE;QACR,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,iJAAiJ;QACnJ,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE;SACb;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.listForwardedPortsDefinition = exports.listAllowedPorts = void 0;
|
|
4
|
+
const config_1 = require("../../config");
|
|
5
|
+
async function listAllowedPorts() {
|
|
6
|
+
const config = await (0, config_1.getConfig)();
|
|
7
|
+
if (!config.worker?.tunnel?.enabled) {
|
|
8
|
+
return [];
|
|
9
|
+
}
|
|
10
|
+
return config.worker.tunnel.allowedPorts || [];
|
|
11
|
+
}
|
|
12
|
+
exports.listAllowedPorts = listAllowedPorts;
|
|
13
|
+
exports.listForwardedPortsDefinition = {
|
|
14
|
+
name: "listAllowedPorts",
|
|
15
|
+
description: "List all ports that are being forwarded through the worker tunnel. Returns an array of port numbers that can be accessed via the tunnel system.",
|
|
16
|
+
parameters: {
|
|
17
|
+
type: "object",
|
|
18
|
+
properties: {},
|
|
19
|
+
required: [],
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=listForwardedPorts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listForwardedPorts.js","sourceRoot":"","sources":["../../../../src/workers/tools/listForwardedPorts.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AAMlC,KAAK,UAAU,gBAAgB;IACpC,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAS,GAAE,CAAC;IAEjC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;QACnC,OAAO,EAAE,CAAC;KACX;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;AACjD,CAAC;AARD,4CAQC;AAEY,QAAA,4BAA4B,GAAG;IAC1C,IAAI,EAAE,kBAAkB;IACxB,WAAW,EACT,iJAAiJ;IACnJ,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;KACb;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|