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.
Files changed (49) hide show
  1. package/README.md +15 -1
  2. package/README.zh-CN.md +1 -1
  3. package/dist/agent-help.d.ts +4 -4
  4. package/dist/agent-help.js +2 -2
  5. package/dist/agent-help.js.map +1 -1
  6. package/dist/device/relay-client.d.ts +2 -2
  7. package/dist/device/relay-client.js +5 -5
  8. package/dist/device/relay-client.js.map +1 -1
  9. package/dist/diagnostics.d.ts +4 -4
  10. package/dist/diagnostics.js +6 -6
  11. package/dist/diagnostics.js.map +1 -1
  12. package/dist/index.js +3 -3
  13. package/dist/index.js.map +1 -1
  14. package/dist/mcp-command.js +1 -1
  15. package/dist/mcp-command.js.map +1 -1
  16. package/dist/runtime/mcp.d.ts +1 -1
  17. package/dist/runtime/mcp.js +23 -4
  18. package/dist/runtime/mcp.js.map +1 -1
  19. package/dist/runtime/protected-paths.d.ts +12 -0
  20. package/dist/runtime/protected-paths.js +52 -0
  21. package/dist/runtime/protected-paths.js.map +1 -0
  22. package/dist/runtime/web-fetch.d.ts +54 -0
  23. package/dist/runtime/web-fetch.js +209 -0
  24. package/dist/runtime/web-fetch.js.map +1 -0
  25. package/dist/runtime/workspace.d.ts +6 -0
  26. package/dist/runtime/workspace.js +26 -2
  27. package/dist/runtime/workspace.js.map +1 -1
  28. package/dist/{upgrade → update}/installation.d.ts +2 -2
  29. package/dist/{upgrade → update}/installation.js +2 -2
  30. package/dist/update/installation.js.map +1 -0
  31. package/dist/{upgrade → update}/maintenance.d.ts +1 -1
  32. package/dist/{upgrade → update}/maintenance.js +4 -4
  33. package/dist/update/maintenance.js.map +1 -0
  34. package/dist/update/release.d.ts +14 -0
  35. package/dist/{upgrade → update}/release.js +29 -3
  36. package/dist/update/release.js.map +1 -0
  37. package/dist/{upgrade → update}/service-refresh.js +2 -2
  38. package/dist/update/service-refresh.js.map +1 -0
  39. package/dist/{upgrade → update}/update.d.ts +7 -7
  40. package/dist/{upgrade → update}/update.js +42 -19
  41. package/dist/update/update.js.map +1 -0
  42. package/package.json +1 -1
  43. package/dist/upgrade/installation.js.map +0 -1
  44. package/dist/upgrade/maintenance.js.map +0 -1
  45. package/dist/upgrade/release.d.ts +0 -9
  46. package/dist/upgrade/release.js.map +0 -1
  47. package/dist/upgrade/service-refresh.js.map +0 -1
  48. package/dist/upgrade/update.js.map +0 -1
  49. /package/dist/{upgrade → update}/service-refresh.d.ts +0 -0
@@ -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
- // Upgrade bridge: Windows upgrade commands printed by 0.7.x run `mcp service stop|start`.
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])
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-command.js","sourceRoot":"","sources":["../src/mcp-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-command.js","sourceRoot":"","sources":["../src/mcp-command.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { MaintenanceGate } from "../upgrade/maintenance.js";
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 {
@@ -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 { workspace, relativeInput } = resolveWorkspace(workspaces, name === "run_command" || name === "start_process" ? textArg(args, "cwd", ".") : (name === "move_path" ? textArg(args, "from", ".") : textArg(args, "path", ".")));
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");
@@ -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":"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"}
@@ -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;