frely-cli 0.10.3 → 0.10.4
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/README.md +15 -1
- package/README.zh-CN.md +1 -1
- package/dist/agent-help.d.ts +4 -4
- package/dist/agent-help.js +2 -2
- package/dist/agent-help.js.map +1 -1
- package/dist/device/relay-client.d.ts +2 -2
- package/dist/device/relay-client.js +5 -5
- package/dist/device/relay-client.js.map +1 -1
- package/dist/diagnostics.d.ts +4 -4
- package/dist/diagnostics.js +6 -6
- package/dist/diagnostics.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp-command.js +1 -1
- package/dist/mcp-command.js.map +1 -1
- package/dist/runtime/mcp.d.ts +1 -1
- package/dist/runtime/mcp.js +23 -4
- package/dist/runtime/mcp.js.map +1 -1
- package/dist/runtime/protected-paths.d.ts +12 -0
- package/dist/runtime/protected-paths.js +52 -0
- package/dist/runtime/protected-paths.js.map +1 -0
- package/dist/runtime/web-fetch.d.ts +54 -0
- package/dist/runtime/web-fetch.js +209 -0
- package/dist/runtime/web-fetch.js.map +1 -0
- package/dist/runtime/workspace.d.ts +6 -0
- package/dist/runtime/workspace.js +26 -2
- package/dist/runtime/workspace.js.map +1 -1
- package/dist/{upgrade → update}/installation.d.ts +2 -2
- package/dist/{upgrade → update}/installation.js +2 -2
- package/dist/update/installation.js.map +1 -0
- package/dist/{upgrade → update}/maintenance.d.ts +1 -1
- package/dist/{upgrade → update}/maintenance.js +4 -4
- package/dist/update/maintenance.js.map +1 -0
- package/dist/update/release.d.ts +14 -0
- package/dist/{upgrade → update}/release.js +29 -3
- package/dist/update/release.js.map +1 -0
- package/dist/{upgrade → update}/service-refresh.js +2 -2
- package/dist/update/service-refresh.js.map +1 -0
- package/dist/{upgrade → update}/update.d.ts +7 -7
- package/dist/{upgrade → update}/update.js +42 -19
- package/dist/update/update.js.map +1 -0
- package/package.json +1 -1
- package/dist/upgrade/installation.js.map +0 -1
- package/dist/upgrade/maintenance.js.map +0 -1
- package/dist/upgrade/release.d.ts +0 -9
- package/dist/upgrade/release.js.map +0 -1
- package/dist/upgrade/service-refresh.js.map +0 -1
- package/dist/upgrade/update.js.map +0 -1
- /package/dist/{upgrade → update}/service-refresh.d.ts +0 -0
package/dist/mcp-command.js
CHANGED
|
@@ -13,7 +13,7 @@ export function normalizeMcpArgs(input) {
|
|
|
13
13
|
return args;
|
|
14
14
|
if (args.slice(1).some((arg) => arg === "--help" || arg === "-h") || args[1] === "help")
|
|
15
15
|
return ["mcp", "help"];
|
|
16
|
-
//
|
|
16
|
+
// Update bridge: Windows update commands printed by 0.7.x run `mcp service stop|start`.
|
|
17
17
|
if (args[1] === "service" && args.length === 3 && (args[2] === "start" || args[2] === "stop"))
|
|
18
18
|
return ["mcp", args[2]];
|
|
19
19
|
if (!args[1])
|
package/dist/mcp-command.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-command.js","sourceRoot":"","sources":["../src/mcp-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,8BAA8B,EAAE,uBAAuB,EAAE,qBAAqB,EAA2D,MAAM,wBAAwB,CAAC;AACjL,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAwB;IACvD,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IACxB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM;QAAE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAChH,
|
|
1
|
+
{"version":3,"file":"mcp-command.js","sourceRoot":"","sources":["../src/mcp-command.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/mcp.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { MaintenanceGate } from "../
|
|
1
|
+
import type { MaintenanceGate } from "../update/maintenance.js";
|
|
2
2
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
3
3
|
import type { LocalMcpHub } from "./local-mcp.js";
|
|
4
4
|
export interface McpRuntimeOptions {
|
package/dist/runtime/mcp.js
CHANGED
|
@@ -8,6 +8,7 @@ import { VERSION } from "../version.js";
|
|
|
8
8
|
import { ensureWorkspaceRegistered, listWorkspaces } from "./workspace-registry.js";
|
|
9
9
|
import { resolveWorkspace, resolveWorkspacePair } from "./workspace-router.js";
|
|
10
10
|
import { pathGrantsFromMeta } from "./sandbox.js";
|
|
11
|
+
import { networkAllowFromMeta, webFetch } from "./web-fetch.js";
|
|
11
12
|
/** agent_* MCP tools exposed when the frely-app toolset is enabled (plan §5). */
|
|
12
13
|
export const AGENT_TOOLS = [
|
|
13
14
|
{ op: "agent_start_task", description: "Start an agent task in a worktree. Returns immediately; poll agent_get_task/agent_get_events.", properties: { goal: stringSchema("What the task should accomplish"), workspace: stringSchema("Workspace root (defaults to the relay workspace)"), model: stringSchema("Model id"), maxCostUsd: { type: "number", minimum: 0.01, maximum: 50 } }, required: ["goal"] },
|
|
@@ -115,6 +116,7 @@ export async function createMcpServer(workspaceInput, options = {}) {
|
|
|
115
116
|
timeoutMs: intSchema(30000, 100, 120000),
|
|
116
117
|
concurrency: { type: "string", enum: ["parallel", "exclusive"], default: "parallel" },
|
|
117
118
|
}, { readOnly: false, destructive: true, idempotent: false }),
|
|
119
|
+
tool("web_fetch", "Fetch a public web page or API from this device's own network connection (GET, HEAD or POST over http/https, ports 80 and 443). Addresses on private or local networks are refused. Returns status, content type and the body as text, up to maxBytes.", { url: stringSchema("http or https URL"), method: { type: "string", enum: ["GET", "HEAD", "POST"], default: "GET" }, headers: { type: "object", description: "Extra request headers", additionalProperties: { type: "string" } }, body: stringSchema("Request body for POST"), maxBytes: intSchema(262144, 1, 1048576), timeoutMs: intSchema(30000, 100, 120000) }, { readOnly: false, idempotent: false }),
|
|
118
120
|
tool("start_process", "Start a persistent shell process as the current OS user.", { command: stringSchema("Shell command"), cwd: stringSchema("Relative working directory", ".") }, { readOnly: false, destructive: true, idempotent: false }),
|
|
119
121
|
tool("list_processes", "List processes started by this MCP runtime.", {}, { readOnly: true }),
|
|
120
122
|
tool("read_process", "Read process output using absolute cursors.", { processId: stringSchema("Process id"), stdoutCursor: intSchema(0, 0, Number.MAX_SAFE_INTEGER), stderrCursor: intSchema(0, 0, Number.MAX_SAFE_INTEGER) }, { readOnly: true }),
|
|
@@ -153,7 +155,7 @@ export async function createMcpServer(workspaceInput, options = {}) {
|
|
|
153
155
|
}
|
|
154
156
|
// `frely mcp workspace add|remove` edits the registry while this runtime keeps running; pick the change up per call.
|
|
155
157
|
await syncWorkspaces(workspaces, primaryRoot);
|
|
156
|
-
const result = await dispatch(name, args, workspaces, primaryRoot, processes, workspaceScheduler, commandScheduler, processScheduler, AbortSignal.any([lifecycle.signal, extra.signal]), pathGrantsFromMeta(request.params._meta));
|
|
158
|
+
const result = await dispatch(name, args, workspaces, primaryRoot, processes, workspaceScheduler, commandScheduler, processScheduler, AbortSignal.any([lifecycle.signal, extra.signal]), pathGrantsFromMeta(request.params._meta), networkAllowFromMeta(request.params._meta));
|
|
157
159
|
return { content: [{ type: "text", text: typeof result === "string" ? result : JSON.stringify(result) }] };
|
|
158
160
|
}
|
|
159
161
|
catch (error) {
|
|
@@ -192,7 +194,7 @@ export async function startStdioMcp(workspaceInput, options = {}) {
|
|
|
192
194
|
const server = await createMcpServer(workspaceInput, options);
|
|
193
195
|
await server.connect(new StdioServerTransport());
|
|
194
196
|
}
|
|
195
|
-
async function dispatch(name, args, workspaces, primaryRoot, processes, workspaceScheduler, commandScheduler, processScheduler, signal, pathGrants = []) {
|
|
197
|
+
async function dispatch(name, args, workspaces, primaryRoot, processes, workspaceScheduler, commandScheduler, processScheduler, signal, pathGrants = [], networkAllow = []) {
|
|
196
198
|
const guarded = (work) => async () => { signal.throwIfAborted(); return work(); };
|
|
197
199
|
const read = (work) => workspaceScheduler.read(guarded(work));
|
|
198
200
|
const write = (work) => workspaceScheduler.write(guarded(work));
|
|
@@ -213,8 +215,25 @@ async function dispatch(name, args, workspaces, primaryRoot, processes, workspac
|
|
|
213
215
|
return processRead(() => processes.write(textArg(args, "processId"), textArg(args, "input")));
|
|
214
216
|
if (name === "stop_process")
|
|
215
217
|
return processRead(() => processes.stop(textArg(args, "processId")));
|
|
218
|
+
// Network access is not a workspace operation: no path routing, no workspace locks.
|
|
219
|
+
if (name === "web_fetch") {
|
|
220
|
+
const headers = args.headers ?? {};
|
|
221
|
+
if (!headers || typeof headers !== "object" || Array.isArray(headers))
|
|
222
|
+
throw new Error("headers must be an object.");
|
|
223
|
+
const method = optionalTextArg(args, "method");
|
|
224
|
+
const body = optionalTextArg(args, "body");
|
|
225
|
+
return webFetch({
|
|
226
|
+
url: textArg(args, "url"),
|
|
227
|
+
...(method ? { method: method } : {}),
|
|
228
|
+
headers: headers,
|
|
229
|
+
...(body !== undefined ? { body } : {}),
|
|
230
|
+
maxBytes: intArg(args, "maxBytes", 262144, 1, 1048576),
|
|
231
|
+
timeoutMs: intArg(args, "timeoutMs", 30000, 100, 120000),
|
|
232
|
+
}, { signal, allow: networkAllow });
|
|
233
|
+
}
|
|
216
234
|
// For all other tools, resolve the workspace based on the input path/cwd
|
|
217
|
-
const
|
|
235
|
+
const resolved = resolveWorkspace(workspaces, name === "run_command" || name === "start_process" ? textArg(args, "cwd", ".") : (name === "move_path" ? textArg(args, "from", ".") : textArg(args, "path", ".")));
|
|
236
|
+
const workspace = resolved.workspace.withGrants(pathGrants), relativeInput = resolved.relativeInput;
|
|
218
237
|
if (name === "list_directory")
|
|
219
238
|
return read(() => workspace.listDirectory(relativeInput));
|
|
220
239
|
if (name === "stat_path")
|
|
@@ -237,7 +256,7 @@ async function dispatch(name, args, workspaces, primaryRoot, processes, workspac
|
|
|
237
256
|
return write(() => workspace.deletePath(relativeInput, boolArg(args, "recursive", false)));
|
|
238
257
|
if (name === "move_path") {
|
|
239
258
|
const pair = resolveWorkspacePair(workspaces, textArg(args, "from", "."), textArg(args, "to"));
|
|
240
|
-
return write(() => pair.workspace.movePath(pair.relativeFrom, pair.relativeTo, boolArg(args, "overwrite", false)));
|
|
259
|
+
return write(() => pair.workspace.withGrants(pathGrants).movePath(pair.relativeFrom, pair.relativeTo, boolArg(args, "overwrite", false)));
|
|
241
260
|
}
|
|
242
261
|
if (name === "run_command") {
|
|
243
262
|
const command = textArg(args, "command");
|
package/dist/runtime/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/runtime/mcp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/runtime/mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface PathProtection {
|
|
2
|
+
/** Credential stores that were not approved for this call (and the never-openable ones). */
|
|
3
|
+
readBlocked(path: string): boolean;
|
|
4
|
+
/** Everything readBlocked covers, approved credential stores included, plus shell start-up files. */
|
|
5
|
+
writeBlocked(path: string): boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* File tools share the command sandbox's credential list (`sandbox.ts`), so a workspace that contains the
|
|
9
|
+
* home directory does not turn read_file into a way around the sandbox. `grants` are the group names the
|
|
10
|
+
* relay approved for this call.
|
|
11
|
+
*/
|
|
12
|
+
export declare function pathProtection(grants?: readonly string[]): PathProtection;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { homedir } from "node:os";
|
|
2
|
+
import { join, sep } from "node:path";
|
|
3
|
+
import { realpathSync } from "node:fs";
|
|
4
|
+
import { SENSITIVE_PATH_GROUPS, sensitiveReadPaths } from "./sandbox.js";
|
|
5
|
+
/** Shell start-up files: a remote file tool must not plant commands that run at the owner's next login. */
|
|
6
|
+
const SHELL_STARTUP_FILES = [".zshrc", ".zshenv", ".zprofile", ".zlogin", ".bashrc", ".bash_profile", ".bash_login", ".profile", ".config/fish/config.fish"].map((name) => `~/${name}`);
|
|
7
|
+
function expand(path) {
|
|
8
|
+
return path.startsWith("~/") ? join(homedir(), path.slice(2)) : path;
|
|
9
|
+
}
|
|
10
|
+
/** The lexical path plus its canonical form, so a symlinked home directory does not hide a match. */
|
|
11
|
+
function variants(path) {
|
|
12
|
+
const lexical = expand(path);
|
|
13
|
+
const set = new Set([lexical]);
|
|
14
|
+
const real = (() => { try {
|
|
15
|
+
return realpathSync(lexical);
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return undefined;
|
|
19
|
+
} })();
|
|
20
|
+
if (real)
|
|
21
|
+
set.add(real);
|
|
22
|
+
const home = (() => { try {
|
|
23
|
+
return realpathSync(homedir());
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return undefined;
|
|
27
|
+
} })();
|
|
28
|
+
if (home && path.startsWith("~/"))
|
|
29
|
+
set.add(join(home, path.slice(2)));
|
|
30
|
+
return [...set];
|
|
31
|
+
}
|
|
32
|
+
function under(path, base) {
|
|
33
|
+
if (process.platform === "win32") {
|
|
34
|
+
path = path.toLowerCase();
|
|
35
|
+
base = base.toLowerCase();
|
|
36
|
+
}
|
|
37
|
+
return path === base || path.startsWith(base.endsWith(sep) ? base : base + sep);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* File tools share the command sandbox's credential list (`sandbox.ts`), so a workspace that contains the
|
|
41
|
+
* home directory does not turn read_file into a way around the sandbox. `grants` are the group names the
|
|
42
|
+
* relay approved for this call.
|
|
43
|
+
*/
|
|
44
|
+
export function pathProtection(grants = []) {
|
|
45
|
+
const readRoots = sensitiveReadPaths(grants).flatMap(variants);
|
|
46
|
+
const writeRoots = [...Object.values(SENSITIVE_PATH_GROUPS).flat(), ...sensitiveReadPaths(), ...SHELL_STARTUP_FILES].flatMap(variants);
|
|
47
|
+
return {
|
|
48
|
+
readBlocked: (path) => readRoots.some((root) => under(path, root)),
|
|
49
|
+
writeBlocked: (path) => writeRoots.some((root) => under(path, root)),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=protected-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protected-paths.js","sourceRoot":"","sources":["../../src/runtime/protected-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEzE,2GAA2G;AAC3G,MAAM,mBAAmB,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,0BAA0B,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;AAExL,SAAS,MAAM,CAAC,IAAY;IAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACvE,CAAC;AAED,qGAAqG;AACrG,SAAS,QAAQ,CAAC,IAAY;IAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QAAC,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,SAAS,CAAC;IAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7F,IAAI,IAAI;QAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QAAC,OAAO,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,SAAS,CAAC;IAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/F,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,KAAK,CAAC,IAAY,EAAE,IAAY;IACvC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAAC,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAAC,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAAC,CAAC;IAC3F,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;AAClF,CAAC;AASD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,SAA4B,EAAE;IAC3D,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,kBAAkB,EAAE,EAAE,GAAG,mBAAmB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvI,OAAO;QACL,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClE,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KACrE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `web_fetch`: an HTTP request made from this device, so a hosted Agent's web access leaves from the owner's own network
|
|
3
|
+
* instead of Frely's servers (plan mcp/云Agent借用户本机磁盘与网络).
|
|
4
|
+
*
|
|
5
|
+
* By default the request reaches only the public internet. Every address the host name resolves to is checked, the connection is pinned to
|
|
6
|
+
* the checked address, ports are limited to 80/443, and each redirect is checked again. Loopback, private, link-local, CGNAT,
|
|
7
|
+
* cloud-metadata and other special-purpose ranges are refused, so a prompt-injected Agent cannot use the owner's machine to
|
|
8
|
+
* reach their router, NAS, local services or cloud metadata endpoint.
|
|
9
|
+
*
|
|
10
|
+
* The owner can open specific targets for one Agent (`allow`, set in Frely > Connections and passed by the relay): "lan" opens
|
|
11
|
+
* the private LAN ranges (never loopback or the cloud-metadata address), and a host name, IP or CIDR opens exactly that, so
|
|
12
|
+
* network diagnosis of the owner's own machine or network is possible when the owner chose it. An opened target may use any port.
|
|
13
|
+
*/
|
|
14
|
+
export declare const WEB_FETCH_DEFAULT_BYTES: number;
|
|
15
|
+
export declare const WEB_FETCH_MAX_BYTES: number;
|
|
16
|
+
export declare const WEB_FETCH_MAX_REQUEST_BODY: number;
|
|
17
|
+
declare const METHODS: readonly ["GET", "HEAD", "POST"];
|
|
18
|
+
type WebFetchMethod = (typeof METHODS)[number];
|
|
19
|
+
/** True when the address is not a plain public internet address. IPv4-mapped and NAT64 IPv6 forms are judged by the IPv4 address inside. */
|
|
20
|
+
export declare function isBlockedAddress(address: string): boolean;
|
|
21
|
+
/** Request `_meta` key the relay sets on a web_fetch call with the targets the owner opened; the relay overwrites anything a client sent. */
|
|
22
|
+
export declare const NETWORK_ALLOW_META_KEY = "frely/networkAllow";
|
|
23
|
+
/** Entries from a tools/call `_meta`: strings only, at most 32. Which entries mean what is decided in `allowEntryMatches`. */
|
|
24
|
+
export declare function networkAllowFromMeta(meta: unknown): string[];
|
|
25
|
+
/** True when one `allow` entry opens this host name or address. "lan" covers the private ranges, not loopback or metadata. */
|
|
26
|
+
export declare function allowEntryMatches(entry: string, hostname: string, address: string): boolean;
|
|
27
|
+
export interface WebFetchArgs {
|
|
28
|
+
url: string;
|
|
29
|
+
method?: WebFetchMethod;
|
|
30
|
+
headers?: Record<string, string>;
|
|
31
|
+
body?: string;
|
|
32
|
+
maxBytes?: number;
|
|
33
|
+
timeoutMs?: number;
|
|
34
|
+
}
|
|
35
|
+
export interface WebFetchResult {
|
|
36
|
+
url: string;
|
|
37
|
+
status: number;
|
|
38
|
+
contentType: string | null;
|
|
39
|
+
redirects: number;
|
|
40
|
+
truncated: boolean;
|
|
41
|
+
/** UTF-8 text; non-text responses are replaced by a one-line description. */
|
|
42
|
+
body: string;
|
|
43
|
+
}
|
|
44
|
+
export interface WebFetchOptions {
|
|
45
|
+
signal?: AbortSignal;
|
|
46
|
+
/** Targets the owner opened for this Agent (see the header). Empty means the public internet only. */
|
|
47
|
+
allow?: readonly string[];
|
|
48
|
+
/** Test seam: replaces DNS. Production always resolves through the system resolver. */
|
|
49
|
+
resolve?: (hostname: string) => Promise<string[]>;
|
|
50
|
+
/** Test seam: host names exempt from the address and port checks so a loopback test server can answer. Never set in production. */
|
|
51
|
+
trustedTestHosts?: readonly string[];
|
|
52
|
+
}
|
|
53
|
+
export declare function webFetch(args: WebFetchArgs, options?: WebFetchOptions): Promise<WebFetchResult>;
|
|
54
|
+
export {};
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import { lookup as dnsLookup } from "node:dns/promises";
|
|
2
|
+
import { request as httpRequest } from "node:http";
|
|
3
|
+
import { request as httpsRequest } from "node:https";
|
|
4
|
+
import { BlockList, isIP } from "node:net";
|
|
5
|
+
/**
|
|
6
|
+
* `web_fetch`: an HTTP request made from this device, so a hosted Agent's web access leaves from the owner's own network
|
|
7
|
+
* instead of Frely's servers (plan mcp/云Agent借用户本机磁盘与网络).
|
|
8
|
+
*
|
|
9
|
+
* By default the request reaches only the public internet. Every address the host name resolves to is checked, the connection is pinned to
|
|
10
|
+
* the checked address, ports are limited to 80/443, and each redirect is checked again. Loopback, private, link-local, CGNAT,
|
|
11
|
+
* cloud-metadata and other special-purpose ranges are refused, so a prompt-injected Agent cannot use the owner's machine to
|
|
12
|
+
* reach their router, NAS, local services or cloud metadata endpoint.
|
|
13
|
+
*
|
|
14
|
+
* The owner can open specific targets for one Agent (`allow`, set in Frely > Connections and passed by the relay): "lan" opens
|
|
15
|
+
* the private LAN ranges (never loopback or the cloud-metadata address), and a host name, IP or CIDR opens exactly that, so
|
|
16
|
+
* network diagnosis of the owner's own machine or network is possible when the owner chose it. An opened target may use any port.
|
|
17
|
+
*/
|
|
18
|
+
export const WEB_FETCH_DEFAULT_BYTES = 256 * 1024;
|
|
19
|
+
export const WEB_FETCH_MAX_BYTES = 1024 * 1024;
|
|
20
|
+
export const WEB_FETCH_MAX_REQUEST_BODY = 256 * 1024;
|
|
21
|
+
const MAX_REDIRECTS = 5;
|
|
22
|
+
const ALLOWED_PORTS = new Set([80, 443]);
|
|
23
|
+
const METHODS = ["GET", "HEAD", "POST"];
|
|
24
|
+
const FORBIDDEN_REQUEST_HEADERS = new Set(["host", "connection", "content-length", "transfer-encoding", "upgrade", "proxy-authorization", "te", "expect"]);
|
|
25
|
+
const blocked = new BlockList();
|
|
26
|
+
for (const [network, prefix] of [
|
|
27
|
+
["0.0.0.0", 8], ["10.0.0.0", 8], ["100.64.0.0", 10], ["127.0.0.0", 8], ["169.254.0.0", 16], ["172.16.0.0", 12], ["192.0.0.0", 24],
|
|
28
|
+
["192.0.2.0", 24], ["192.88.99.0", 24], ["192.168.0.0", 16], ["198.18.0.0", 15], ["198.51.100.0", 24], ["203.0.113.0", 24], ["224.0.0.0", 4], ["240.0.0.0", 4],
|
|
29
|
+
])
|
|
30
|
+
blocked.addSubnet(network, prefix, "ipv4");
|
|
31
|
+
for (const [network, prefix] of [
|
|
32
|
+
["::", 128], ["::1", 128], ["64:ff9b:1::", 48], ["100::", 64], ["2001::", 23], ["2001:db8::", 32], ["fc00::", 7], ["fe80::", 10], ["ff00::", 8],
|
|
33
|
+
])
|
|
34
|
+
blocked.addSubnet(network, prefix, "ipv6");
|
|
35
|
+
/** True when the address is not a plain public internet address. IPv4-mapped and NAT64 IPv6 forms are judged by the IPv4 address inside. */
|
|
36
|
+
export function isBlockedAddress(address) {
|
|
37
|
+
const family = isIP(address);
|
|
38
|
+
if (family === 4)
|
|
39
|
+
return blocked.check(address, "ipv4");
|
|
40
|
+
if (family !== 6)
|
|
41
|
+
return true;
|
|
42
|
+
const mapped = /^(?:::ffff:|64:ff9b::)(\d+\.\d+\.\d+\.\d+)$/iu.exec(address);
|
|
43
|
+
if (mapped?.[1])
|
|
44
|
+
return blocked.check(mapped[1], "ipv4");
|
|
45
|
+
const hexMapped = /^(?:::ffff:|64:ff9b::)([0-9a-f]{1,4}):([0-9a-f]{1,4})$/iu.exec(address);
|
|
46
|
+
if (hexMapped) {
|
|
47
|
+
const high = Number.parseInt(hexMapped[1], 16), low = Number.parseInt(hexMapped[2], 16);
|
|
48
|
+
return blocked.check(`${high >> 8}.${high & 255}.${low >> 8}.${low & 255}`, "ipv4");
|
|
49
|
+
}
|
|
50
|
+
return blocked.check(address, "ipv6");
|
|
51
|
+
}
|
|
52
|
+
/** Request `_meta` key the relay sets on a web_fetch call with the targets the owner opened; the relay overwrites anything a client sent. */
|
|
53
|
+
export const NETWORK_ALLOW_META_KEY = "frely/networkAllow";
|
|
54
|
+
/** Entries from a tools/call `_meta`: strings only, at most 32. Which entries mean what is decided in `allowEntryMatches`. */
|
|
55
|
+
export function networkAllowFromMeta(meta) {
|
|
56
|
+
const value = meta && typeof meta === "object" ? meta[NETWORK_ALLOW_META_KEY] : undefined;
|
|
57
|
+
return Array.isArray(value) ? value.filter((entry) => typeof entry === "string" && entry.length <= 260).slice(0, 32) : [];
|
|
58
|
+
}
|
|
59
|
+
const lan = new BlockList();
|
|
60
|
+
for (const [network, prefix] of [["10.0.0.0", 8], ["100.64.0.0", 10], ["169.254.0.0", 16], ["172.16.0.0", 12], ["192.168.0.0", 16]])
|
|
61
|
+
lan.addSubnet(network, prefix, "ipv4");
|
|
62
|
+
for (const [network, prefix] of [["fc00::", 7], ["fe80::", 10]])
|
|
63
|
+
lan.addSubnet(network, prefix, "ipv6");
|
|
64
|
+
const METADATA_ADDRESSES = new Set(["169.254.169.254", "169.254.170.2", "fd00:ec2::254"]);
|
|
65
|
+
/** True when one `allow` entry opens this host name or address. "lan" covers the private ranges, not loopback or metadata. */
|
|
66
|
+
export function allowEntryMatches(entry, hostname, address) {
|
|
67
|
+
const value = entry.trim().toLowerCase();
|
|
68
|
+
if (value === "lan")
|
|
69
|
+
return !METADATA_ADDRESSES.has(address) && lan.check(address, isIP(address) === 6 ? "ipv6" : "ipv4");
|
|
70
|
+
if (value === hostname.toLowerCase())
|
|
71
|
+
return true;
|
|
72
|
+
const [base, prefix] = value.split("/");
|
|
73
|
+
const family = base ? isIP(base) : 0;
|
|
74
|
+
if (!base || family === 0 || isIP(address) !== family)
|
|
75
|
+
return false;
|
|
76
|
+
const list = new BlockList();
|
|
77
|
+
if (prefix === undefined)
|
|
78
|
+
list.addAddress(base, family === 6 ? "ipv6" : "ipv4");
|
|
79
|
+
else {
|
|
80
|
+
const bits = Number(prefix);
|
|
81
|
+
if (!Number.isInteger(bits) || bits < 0 || bits > (family === 6 ? 128 : 32))
|
|
82
|
+
return false;
|
|
83
|
+
list.addSubnet(base, bits, family === 6 ? "ipv6" : "ipv4");
|
|
84
|
+
}
|
|
85
|
+
return list.check(address, family === 6 ? "ipv6" : "ipv4");
|
|
86
|
+
}
|
|
87
|
+
async function resolveHost(hostname, options) {
|
|
88
|
+
if (isIP(hostname))
|
|
89
|
+
return [hostname];
|
|
90
|
+
if (options.resolve)
|
|
91
|
+
return options.resolve(hostname);
|
|
92
|
+
return (await dnsLookup(hostname, { all: true })).map((entry) => entry.address);
|
|
93
|
+
}
|
|
94
|
+
async function checkedTarget(url, options) {
|
|
95
|
+
if (url.protocol !== "http:" && url.protocol !== "https:")
|
|
96
|
+
throw new Error("Only http and https URLs can be fetched.");
|
|
97
|
+
if (url.username || url.password)
|
|
98
|
+
throw new Error("URLs with embedded credentials are not allowed.");
|
|
99
|
+
const port = url.port ? Number(url.port) : url.protocol === "https:" ? 443 : 80;
|
|
100
|
+
const hostname = url.hostname.startsWith("[") ? url.hostname.slice(1, -1) : url.hostname;
|
|
101
|
+
const trusted = options.trustedTestHosts?.includes(hostname) === true;
|
|
102
|
+
const addresses = await resolveHost(hostname, options);
|
|
103
|
+
if (addresses.length === 0)
|
|
104
|
+
throw new Error(`Could not resolve ${hostname}.`);
|
|
105
|
+
const allow = options.allow ?? [];
|
|
106
|
+
const opened = (address) => allow.some((entry) => allowEntryMatches(entry, hostname, address));
|
|
107
|
+
if (!trusted && !ALLOWED_PORTS.has(port) && !addresses.some(opened))
|
|
108
|
+
throw new Error("Only ports 80 and 443 can be fetched.");
|
|
109
|
+
if (!trusted && addresses.some((address) => isBlockedAddress(address) && !opened(address))) {
|
|
110
|
+
throw new Error("This address is on a private or local network, which this Agent has not been allowed to reach. The owner can allow it for this Agent in Frely > Connections.");
|
|
111
|
+
}
|
|
112
|
+
return { address: addresses[0] };
|
|
113
|
+
}
|
|
114
|
+
function readText(contentType, bytes) {
|
|
115
|
+
const text = !contentType || /^(?:text\/|application\/(?:json|xml|xhtml\+xml|javascript|x-www-form-urlencoded|ld\+json|rss\+xml|atom\+xml)|image\/svg\+xml)|\+(?:json|xml)\b/iu.test(contentType);
|
|
116
|
+
return text ? bytes.toString("utf8") : `[${contentType} response, ${bytes.length} bytes, not shown as text]`;
|
|
117
|
+
}
|
|
118
|
+
function once(url, method, headers, body, address, maxBytes, timeoutMs, signal) {
|
|
119
|
+
return new Promise((resolve, reject) => {
|
|
120
|
+
const secure = url.protocol === "https:";
|
|
121
|
+
const family = isIP(address) === 6 ? 6 : 4;
|
|
122
|
+
const request = (secure ? httpsRequest : httpRequest)({
|
|
123
|
+
protocol: url.protocol, hostname: url.hostname.replace(/^\[|\]$/gu, ""), port: url.port || undefined, path: `${url.pathname}${url.search}`, method, headers,
|
|
124
|
+
// Pin the connection to the address that was checked; the system resolver is never asked again.
|
|
125
|
+
lookup: (_host, _options, callback) => _options.all ? callback(null, [{ address, family }]) : callback(null, address, family),
|
|
126
|
+
...(secure && !isIP(url.hostname.replace(/^\[|\]$/gu, "")) ? { servername: url.hostname } : {}),
|
|
127
|
+
agent: false,
|
|
128
|
+
timeout: timeoutMs,
|
|
129
|
+
...(signal ? { signal } : {}),
|
|
130
|
+
}, (response) => {
|
|
131
|
+
const chunks = [];
|
|
132
|
+
let size = 0;
|
|
133
|
+
let truncated = false;
|
|
134
|
+
response.on("data", (chunk) => {
|
|
135
|
+
if (truncated)
|
|
136
|
+
return;
|
|
137
|
+
const room = maxBytes - size;
|
|
138
|
+
if (chunk.length > room) {
|
|
139
|
+
chunks.push(chunk.subarray(0, room));
|
|
140
|
+
size = maxBytes;
|
|
141
|
+
truncated = true;
|
|
142
|
+
response.destroy();
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
chunks.push(chunk);
|
|
146
|
+
size += chunk.length;
|
|
147
|
+
});
|
|
148
|
+
const done = () => resolve({ status: response.statusCode ?? 0, location: typeof response.headers.location === "string" ? response.headers.location : null, contentType: typeof response.headers["content-type"] === "string" ? response.headers["content-type"] : null, bytes: Buffer.concat(chunks), truncated });
|
|
149
|
+
response.once("end", done);
|
|
150
|
+
response.once("close", done);
|
|
151
|
+
response.once("error", reject);
|
|
152
|
+
});
|
|
153
|
+
request.once("timeout", () => request.destroy(new Error("The request timed out.")));
|
|
154
|
+
request.once("error", reject);
|
|
155
|
+
if (body !== undefined && method === "POST")
|
|
156
|
+
request.write(body);
|
|
157
|
+
request.end();
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
export async function webFetch(args, options = {}) {
|
|
161
|
+
const method = args.method ?? "GET";
|
|
162
|
+
if (!METHODS.includes(method))
|
|
163
|
+
throw new Error("method must be GET, HEAD or POST.");
|
|
164
|
+
if (args.body !== undefined && Buffer.byteLength(args.body) > WEB_FETCH_MAX_REQUEST_BODY)
|
|
165
|
+
throw new Error("The request body is too large.");
|
|
166
|
+
const maxBytes = Math.min(Math.max(1, args.maxBytes ?? WEB_FETCH_DEFAULT_BYTES), WEB_FETCH_MAX_BYTES);
|
|
167
|
+
const timeoutMs = Math.min(Math.max(100, args.timeoutMs ?? 30_000), 120_000);
|
|
168
|
+
const headers = { "user-agent": "Mozilla/5.0 (compatible; FrelyAgent/1.0)", accept: "*/*", "accept-encoding": "identity" };
|
|
169
|
+
for (const [name, value] of Object.entries(args.headers ?? {})) {
|
|
170
|
+
if (typeof value !== "string" || FORBIDDEN_REQUEST_HEADERS.has(name.toLowerCase()) || /[\r\n]/u.test(name + value))
|
|
171
|
+
throw new Error(`Header ${JSON.stringify(name.slice(0, 40))} is not allowed.`);
|
|
172
|
+
headers[name.toLowerCase()] = value;
|
|
173
|
+
}
|
|
174
|
+
if (args.body !== undefined && method === "POST")
|
|
175
|
+
headers["content-length"] = String(Buffer.byteLength(args.body));
|
|
176
|
+
let url;
|
|
177
|
+
try {
|
|
178
|
+
url = new URL(args.url);
|
|
179
|
+
}
|
|
180
|
+
catch {
|
|
181
|
+
throw new Error("url is not a valid URL.");
|
|
182
|
+
}
|
|
183
|
+
let currentMethod = method;
|
|
184
|
+
let currentBody = args.body;
|
|
185
|
+
for (let redirects = 0;; redirects += 1) {
|
|
186
|
+
options.signal?.throwIfAborted();
|
|
187
|
+
const target = await checkedTarget(url, options);
|
|
188
|
+
const sameOriginHeaders = { ...headers, host: url.host };
|
|
189
|
+
const response = await once(url, currentMethod, sameOriginHeaders, currentBody, target.address, maxBytes, timeoutMs, options.signal);
|
|
190
|
+
if (response.status >= 300 && response.status < 400 && response.location) {
|
|
191
|
+
if (redirects >= MAX_REDIRECTS)
|
|
192
|
+
throw new Error("Too many redirects.");
|
|
193
|
+
const next = new URL(response.location, url);
|
|
194
|
+
// Credentials the Agent attached belong to the first origin only.
|
|
195
|
+
if (next.origin !== url.origin)
|
|
196
|
+
for (const name of ["authorization", "cookie"])
|
|
197
|
+
delete headers[name];
|
|
198
|
+
if (response.status === 303 || ((response.status === 301 || response.status === 302) && currentMethod === "POST")) {
|
|
199
|
+
currentMethod = "GET";
|
|
200
|
+
currentBody = undefined;
|
|
201
|
+
delete headers["content-length"];
|
|
202
|
+
}
|
|
203
|
+
url = next;
|
|
204
|
+
continue;
|
|
205
|
+
}
|
|
206
|
+
return { url: url.toString(), status: response.status, contentType: response.contentType, redirects, truncated: response.truncated, body: readText(response.contentType, response.bytes) };
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=web-fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-fetch.js","sourceRoot":"","sources":["../../src/runtime/web-fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,11 @@ export declare const MAX_FILE_BYTES: number;
|
|
|
2
2
|
export declare const MAX_OUTPUT_BYTES: number;
|
|
3
3
|
export declare class Workspace {
|
|
4
4
|
readonly root: string;
|
|
5
|
+
readonly grants: readonly string[];
|
|
6
|
+
private readonly protection;
|
|
5
7
|
private constructor();
|
|
8
|
+
/** The same workspace for one tool call, with the credential groups the owner approved for it. */
|
|
9
|
+
withGrants(grants: readonly string[]): Workspace;
|
|
6
10
|
static open(input: string): Promise<Workspace>;
|
|
7
11
|
info(): {
|
|
8
12
|
root: string;
|
|
@@ -68,5 +72,7 @@ export declare class Workspace {
|
|
|
68
72
|
private createPath;
|
|
69
73
|
private lexicalPath;
|
|
70
74
|
private assertCanonicalInside;
|
|
75
|
+
private assertReadable;
|
|
76
|
+
private assertWritable;
|
|
71
77
|
}
|
|
72
78
|
export declare function safeEnv(): NodeJS.ProcessEnv;
|