@b4run/workspace 0.8.28

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) Brian Love
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,42 @@
1
+ # @b4run/workspace
2
+
3
+ Filesystem and shell backend contracts for B4.run agent workspaces.
4
+
5
+ **Use this when:** You are supplying filesystem or shell backends, middleware, or workspace tools to a B4.run application.
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ pnpm add @b4run/workspace
11
+ ```
12
+
13
+ ## Example
14
+
15
+ ```ts
16
+ import { compose, type FilesystemBackend, withFilesystemLogging } from "@b4run/workspace"
17
+ import { localFilesystem } from "@b4run/workspace/node"
18
+
19
+ const base: FilesystemBackend = localFilesystem({ maxFileBytes: 512 * 1024 })
20
+ const filesystem = compose(withFilesystemLogging())(base)
21
+ ```
22
+
23
+ ## Runtime and stability
24
+
25
+ - `@b4run/workspace` is an edge-safe, supported application surface.
26
+ - `@b4run/workspace/node` is a node-only, supported application surface.
27
+
28
+ Workspace backends define where operations run; they are not an isolation boundary by themselves. Use a sandbox provider when untrusted execution must leave the host process.
29
+
30
+ ## Related
31
+
32
+ - [Workspace API reference](https://b4.run/docs/api/workspace) — exact backend, middleware, and tool contracts.
33
+ - [Workspace Filesystem](https://b4.run/docs/workspace) — application configuration and backend behavior.
34
+ - [`@b4run/sandbox`](https://www.npmjs.com/package/@b4run/sandbox) — isolated execution providers for workspace operations.
35
+
36
+ ## Maturity and support
37
+
38
+ B4.run is pre-1.0, and its public surface can change. All publishable B4.run packages release together as a fixed group; review the [`@b4run/workspace` changelog](https://github.com/cacheplane/b4run/blob/main/packages/workspace/CHANGELOG.md) and [upgrading guide](https://b4.run/docs/upgrading) before upgrading. For support, use [GitHub Discussions](https://github.com/cacheplane/b4run/discussions); report defects in [GitHub Issues](https://github.com/cacheplane/b4run/issues).
39
+
40
+ ## License
41
+
42
+ MIT. See the [repository license](https://github.com/cacheplane/b4run/blob/main/LICENSE).
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Compose middleware functions into a single wrapper.
3
+ *
4
+ * Order: the LEFTMOST middleware is the OUTERMOST. Given
5
+ * `compose(a, b, c)(base)`, the call order is `a -> b -> c -> base`,
6
+ * mirroring how function call stacks read top-down.
7
+ *
8
+ * With zero middlewares, returns the base unchanged (no wrapper object).
9
+ */
10
+ export declare function compose<T>(...middlewares: ReadonlyArray<(next: T) => T>): (base: T) => T;
11
+ //# sourceMappingURL=compose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,WAAW,EAAE,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAGxF"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Compose middleware functions into a single wrapper.
3
+ *
4
+ * Order: the LEFTMOST middleware is the OUTERMOST. Given
5
+ * `compose(a, b, c)(base)`, the call order is `a -> b -> c -> base`,
6
+ * mirroring how function call stacks read top-down.
7
+ *
8
+ * With zero middlewares, returns the base unchanged (no wrapper object).
9
+ */
10
+ export function compose(...middlewares) {
11
+ if (middlewares.length === 0)
12
+ return (base) => base;
13
+ return (base) => middlewares.reduceRight((acc, mw) => mw(acc), base);
14
+ }
@@ -0,0 +1,7 @@
1
+ export { compose } from "./compose.js";
2
+ export type { LocalExecOptions } from "./local-exec.js";
3
+ export type { LocalFilesystemOptions } from "./local-filesystem.js";
4
+ export type { SandboxConfig, SandboxHandle, SandboxPolicy, SandboxProvider, SandboxSecurityPolicy, } from "./sandbox-types.js";
5
+ export type { BackendContext, ExecBackend, ExecMiddleware, FilesystemBackend, FilesystemMiddleware, } from "./types.js";
6
+ export { type LoggingOptions, withExecLogging, withFilesystemLogging } from "./with-logging.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAGtC,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACvD,YAAY,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AACnE,YAAY,EACV,aAAa,EACb,aAAa,EACb,aAAa,EACb,eAAe,EACf,qBAAqB,GACtB,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,cAAc,EACd,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,KAAK,cAAc,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export { compose } from "./compose.js";
2
+ export { withExecLogging, withFilesystemLogging } from "./with-logging.js";
@@ -0,0 +1,13 @@
1
+ import type { ExecBackend } from "./types.js";
2
+ export interface LocalExecOptions {
3
+ /** Kill the command if it runs longer than this. Default 30 seconds. */
4
+ readonly timeout?: number;
5
+ /**
6
+ * Optional allowlist of command-line patterns. When non-empty, every
7
+ * command must match at least one regex or `runCommand` throws before
8
+ * spawning anything. Use to deny dangerous commands in production.
9
+ */
10
+ readonly allowedCommands?: readonly RegExp[];
11
+ }
12
+ export declare function localExec(opts?: LocalExecOptions): ExecBackend;
13
+ //# sourceMappingURL=local-exec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-exec.d.ts","sourceRoot":"","sources":["../src/local-exec.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,YAAY,CAAA;AAK7D,MAAM,WAAW,gBAAgB;IAC/B,wEAAwE;IACxE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC7C;AAED,wBAAgB,SAAS,CAAC,IAAI,GAAE,gBAAqB,GAAG,WAAW,CAkClE"}
@@ -0,0 +1,35 @@
1
+ import { exec as cpExec } from "node:child_process";
2
+ import { promisify } from "node:util";
3
+ const execAsync = promisify(cpExec);
4
+ const DEFAULT_TIMEOUT_MS = 30_000;
5
+ export function localExec(opts = {}) {
6
+ const timeout = opts.timeout ?? DEFAULT_TIMEOUT_MS;
7
+ const allowed = opts.allowedCommands;
8
+ return {
9
+ async runCommand(args, ctx) {
10
+ if (allowed && allowed.length > 0 && !allowed.some((re) => re.test(args.command))) {
11
+ throw new Error(`Command not allowed by allowedCommands policy: ${args.command}`);
12
+ }
13
+ try {
14
+ const result = await execAsync(args.command, {
15
+ cwd: args.cwd ?? ctx.workspaceRoot,
16
+ env: args.env ?? process.env,
17
+ timeout,
18
+ signal: ctx.signal,
19
+ });
20
+ return { stdout: result.stdout, stderr: result.stderr, exitCode: 0 };
21
+ }
22
+ catch (err) {
23
+ const e = err;
24
+ if (e.killed && typeof e.code !== "number") {
25
+ throw new Error(`Command timeout after ${timeout}ms: ${args.command}`);
26
+ }
27
+ return {
28
+ stdout: e.stdout ?? "",
29
+ stderr: e.stderr ?? "",
30
+ exitCode: typeof e.code === "number" ? e.code : 1,
31
+ };
32
+ }
33
+ },
34
+ };
35
+ }
@@ -0,0 +1,10 @@
1
+ import type { FilesystemBackend } from "./types.js";
2
+ export interface LocalFilesystemOptions {
3
+ /**
4
+ * Reject `readFile` when the target file exceeds this size.
5
+ * Default: 256 KiB.
6
+ */
7
+ readonly maxFileBytes?: number;
8
+ }
9
+ export declare function localFilesystem(opts?: LocalFilesystemOptions): FilesystemBackend;
10
+ //# sourceMappingURL=local-filesystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-filesystem.d.ts","sourceRoot":"","sources":["../src/local-filesystem.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAkB,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAInE,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,wBAAgB,eAAe,CAAC,IAAI,GAAE,sBAA2B,GAAG,iBAAiB,CA0EpF"}
@@ -0,0 +1,67 @@
1
+ import { mkdir as mkdirFs, readdir, readFile, realpath, rm, stat, utimes, writeFile, } from "node:fs/promises";
2
+ import { basename, dirname, join } from "node:path";
3
+ const DEFAULT_MAX_FILE_BYTES = 256 * 1024;
4
+ export function localFilesystem(opts = {}) {
5
+ const maxBytes = opts.maxFileBytes ?? DEFAULT_MAX_FILE_BYTES;
6
+ async function assertWithinCap(path, limit) {
7
+ const s = await stat(path);
8
+ if (s.size > limit) {
9
+ throw new Error(`File too large: ${s.size} bytes (max ${limit}) at ${path}`);
10
+ }
11
+ }
12
+ return {
13
+ async readFile(path, _ctx, opts) {
14
+ await assertWithinCap(path, opts?.maxBytes ?? maxBytes);
15
+ return await readFile(path, "utf8");
16
+ },
17
+ async readBinaryFile(path, _ctx, opts) {
18
+ await assertWithinCap(path, opts?.maxBytes ?? maxBytes);
19
+ // No encoding arg → Buffer, which satisfies Uint8Array.
20
+ return await readFile(path);
21
+ },
22
+ async writeFile(path, content, _ctx) {
23
+ // Create missing parent directories so writing to a nested workspace
24
+ // path (e.g. "reports/result.md") succeeds without a separate mkdir.
25
+ // `path` is already resolved and path-jailed inside the workspace root.
26
+ await mkdirFs(dirname(path), { recursive: true });
27
+ await writeFile(path, content, "utf8");
28
+ return { bytesWritten: Buffer.byteLength(content, "utf8") };
29
+ },
30
+ async realPath(path, _ctx) {
31
+ const tail = [];
32
+ let current = path;
33
+ for (;;) {
34
+ try {
35
+ const resolved = await realpath(current);
36
+ return tail.length === 0 ? resolved : join(resolved, ...tail);
37
+ }
38
+ catch (error) {
39
+ if (error.code !== "ENOENT")
40
+ throw error;
41
+ const parent = dirname(current);
42
+ if (parent === current)
43
+ return path;
44
+ tail.unshift(basename(current));
45
+ current = parent;
46
+ }
47
+ }
48
+ },
49
+ async listDir(path, _ctx) {
50
+ return await readdir(path);
51
+ },
52
+ async statFile(path, _ctx) {
53
+ const s = await stat(path);
54
+ return { size: s.size, mtimeMs: s.mtimeMs };
55
+ },
56
+ async removeFile(path, _ctx) {
57
+ await rm(path, { force: true });
58
+ },
59
+ async touchFile(path, _ctx) {
60
+ const now = new Date();
61
+ await utimes(path, now, now);
62
+ },
63
+ async mkdir(path, _ctx) {
64
+ await mkdirFs(path, { recursive: true });
65
+ },
66
+ };
67
+ }
package/dist/node.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ /**
2
+ * The NODE backends. Split out of the `.` barrel so a runtime that only needs
3
+ * the backend CONTRACTS (`FilesystemBackend`, `ExecBackend`, the middleware and
4
+ * sandbox types — all of which stay on `.`) never drags `node:child_process`,
5
+ * `node:fs/promises`, `node:path` or `node:util` into its module graph.
6
+ *
7
+ * Import these from a node entry point and inject them; `@b4run/core`'s
8
+ * capability markers take them through `CapabilityMarkerContext`.
9
+ */
10
+ export { type LocalExecOptions, localExec } from "./local-exec.js";
11
+ export { type LocalFilesystemOptions, localFilesystem } from "./local-filesystem.js";
12
+ //# sourceMappingURL=node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,gBAAgB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAE,KAAK,sBAAsB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA"}
package/dist/node.js ADDED
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The NODE backends. Split out of the `.` barrel so a runtime that only needs
3
+ * the backend CONTRACTS (`FilesystemBackend`, `ExecBackend`, the middleware and
4
+ * sandbox types — all of which stay on `.`) never drags `node:child_process`,
5
+ * `node:fs/promises`, `node:path` or `node:util` into its module graph.
6
+ *
7
+ * Import these from a node entry point and inject them; `@b4run/core`'s
8
+ * capability markers take them through `CapabilityMarkerContext`.
9
+ */
10
+ export { localExec } from "./local-exec.js";
11
+ export { localFilesystem } from "./local-filesystem.js";
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Execution-sandbox contract. A SandboxProvider yields, per conversation
3
+ * thread, a SandboxHandle whose filesystem/exec backends implement the same
4
+ * interfaces the workspace capability already consumes — so swapping them in
5
+ * redirects all of readFile/writeFile/listDir/runBash into the isolated env
6
+ * with no change to the capability. See the execution-sandbox spec.
7
+ */
8
+ import type { ExecBackend, FilesystemBackend } from "./types.js";
9
+ export interface SandboxPolicy {
10
+ readonly network: {
11
+ readonly mode: "allow";
12
+ readonly denylist?: readonly string[];
13
+ } | {
14
+ readonly mode: "deny";
15
+ readonly allowlist?: readonly string[];
16
+ };
17
+ /** Explicit env injected into the sandbox. The host env is NEVER inherited. */
18
+ readonly env?: Readonly<Record<string, string>>;
19
+ readonly resources?: {
20
+ readonly memoryMb?: number;
21
+ readonly cpus?: number;
22
+ readonly timeoutMs?: number;
23
+ /** Per-thread workspace volume size in GiB (PVC providers, e.g. Kubernetes). Docker ignores it. */
24
+ readonly diskGb?: number;
25
+ };
26
+ readonly security?: SandboxSecurityPolicy;
27
+ }
28
+ /**
29
+ * Provider-agnostic hardening intent. Each provider translates these to its own
30
+ * mechanism; a field left unset means the provider applies its SECURE default
31
+ * (all of these default ON/hardened at the Docker provider). Authors relax
32
+ * explicitly. See the sandbox-hardening spec.
33
+ */
34
+ export interface SandboxSecurityPolicy {
35
+ /** Drop all Linux capabilities. Secure default: true. */
36
+ readonly dropAllCapabilities?: boolean;
37
+ /** Block setuid/setgid privilege escalation. Secure default: true. */
38
+ readonly noNewPrivileges?: boolean;
39
+ /** Immutable root filesystem (workspace + scratch stay writable). Secure default: true. */
40
+ readonly readOnlyRootFilesystem?: boolean;
41
+ /** Run as non-root. Secure default: true → uid/gid 1000:1000. `false` = image default (often root). */
42
+ readonly runAsNonRoot?: boolean | {
43
+ readonly uid: number;
44
+ readonly gid: number;
45
+ };
46
+ /** Max process count (fork-bomb defense). Secure default: 512. */
47
+ readonly pidsLimit?: number;
48
+ }
49
+ export interface SandboxHandle {
50
+ readonly threadId: string;
51
+ readonly filesystem: FilesystemBackend;
52
+ readonly exec: ExecBackend;
53
+ /** Absolute path of the workspace root INSIDE the sandbox, e.g. "/workspace". */
54
+ readonly workspaceRoot: string;
55
+ }
56
+ export interface SandboxProvider {
57
+ readonly name: string;
58
+ /**
59
+ * Create-or-reattach the thread's sandbox. Idempotent per threadId: called at
60
+ * the start of every turn; returns the same live sandbox across turns until
61
+ * release()/destroy(). Reattaches an existing workspace volume by deterministic
62
+ * name after a restart or container reap rather than starting empty.
63
+ */
64
+ acquire(input: {
65
+ readonly threadId: string;
66
+ readonly policy: SandboxPolicy;
67
+ readonly signal: AbortSignal;
68
+ }): Promise<SandboxHandle>;
69
+ /** Drop warm compute but KEEP the workspace volume (idle-reap + shutdown). */
70
+ release(threadId: string): Promise<void>;
71
+ /** Destroy the sandbox AND its workspace volume (thread delete). */
72
+ destroy(threadId: string): Promise<void>;
73
+ /** Optional availability probe surfaced by `b4 check`. `warnings` are non-fatal notes (e.g. best-effort enforcement). */
74
+ preflight?(): Promise<{
75
+ readonly ok: boolean;
76
+ readonly detail?: string;
77
+ readonly warnings?: readonly string[];
78
+ }>;
79
+ }
80
+ export interface SandboxConfig {
81
+ readonly provider: SandboxProvider;
82
+ readonly network?: SandboxPolicy["network"];
83
+ readonly env?: SandboxPolicy["env"];
84
+ readonly resources?: SandboxPolicy["resources"];
85
+ readonly security?: SandboxSecurityPolicy;
86
+ /** Manager-level idle reap window. Default 600_000 (10 min). */
87
+ readonly idleTimeoutMs?: number;
88
+ }
89
+ //# sourceMappingURL=sandbox-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox-types.d.ts","sourceRoot":"","sources":["../src/sandbox-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEhE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EACZ;QAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,GACjE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAA;IACrE,+EAA+E;IAC/E,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC/C,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;QAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;QACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;QAC3B,mGAAmG;QACnG,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KACzB,CAAA;IACD,QAAQ,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAA;CAC1C;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,yDAAyD;IACzD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,sEAAsE;IACtE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,2FAA2F;IAC3F,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,uGAAuG;IACvG,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IAChF,kEAAkE;IAClE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAA;IACtC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,iFAAiF;IACjF,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;;;;;OAKG;IACH,OAAO,CAAC,KAAK,EAAE;QACb,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;QACzB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;QAC9B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;KAC7B,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IAC1B,8EAA8E;IAC9E,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxC,oEAAoE;IACpE,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxC,yHAAyH;IACzH,SAAS,CAAC,IAAI,OAAO,CAAC;QACpB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;QACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KACtC,CAAC,CAAA;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAA;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;IAC3C,QAAQ,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;IAC/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAA;IACzC,gEAAgE;IAChE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ {"version":"7.0.2","root":[[60,67]],"packageJsons":["../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/package.json","../../../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/package.json","../../../node_modules/.pnpm/events@3.3.0/node_modules/events/package.json","../../../node_modules/.pnpm/process@0.11.10/node_modules/process/package.json","../../../node_modules/.pnpm/punycode@2.3.1/node_modules/punycode/package.json","../../../node_modules/.pnpm/string_decoder@1.3.0/node_modules/string_decoder/package.json","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/package.json","../package.json"],"missingPackageJsons":["../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/assert/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/assert/strict/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/async_hooks/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/buffer/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/child_process/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/cluster/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/console/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/constants/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/crypto/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/dgram/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/diagnostics_channel/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/dns/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/dns/promises/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/domain/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/events/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/fs/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/fs/promises/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/http/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/http2/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/https/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/inspector/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/inspector/promises/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/module/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/net/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/assert/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/dns/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/fs/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/inspector/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/path/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/readline/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/stream/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/test/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/timers/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/util/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/web-globals/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/zlib/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/os/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/path/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/path/posix/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/path/win32/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/perf_hooks/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/process/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/punycode/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/querystring/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/readline/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/readline/promises/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/repl/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/stream/consumers/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/stream/iter/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/stream/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/stream/promises/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/stream/web/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/string_decoder/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/timers/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/timers/promises/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/tls/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/trace_events/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/tty/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/url/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/util/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/util/types/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/v8/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/vm/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/wasi/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/worker_threads/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/zlib/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/assert/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/assert/strict/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/async_hooks/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/buffer/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/child_process/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/cluster/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/console/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/constants/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/crypto/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/dgram/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/diagnostics_channel/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/dns/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/dns/promises/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/domain/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/events/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/fs/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/fs/promises/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/http/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/http2/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/https/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/inspector/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/inspector/promises/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/module/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/net/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/os/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/path/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/path/posix/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/path/win32/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/perf_hooks/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/process/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/punycode/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/querystring/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/readline/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/readline/promises/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/repl/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/stream/consumers/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/stream/iter/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/stream/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/stream/promises/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/stream/web/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/string_decoder/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/timers/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/timers/promises/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/tls/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/trace_events/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/tty/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/url/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/util/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/util/types/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/v8/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/vm/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/wasi/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/worker_threads/package.json","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/zlib/package.json","../../../node_modules/.pnpm/node_modules/@types/assert/package.json","../../../node_modules/.pnpm/node_modules/@types/assert/strict/package.json","../../../node_modules/.pnpm/node_modules/@types/async_hooks/package.json","../../../node_modules/.pnpm/node_modules/@types/child_process/package.json","../../../node_modules/.pnpm/node_modules/@types/cluster/package.json","../../../node_modules/.pnpm/node_modules/@types/console/package.json","../../../node_modules/.pnpm/node_modules/@types/constants/package.json","../../../node_modules/.pnpm/node_modules/@types/crypto/package.json","../../../node_modules/.pnpm/node_modules/@types/dgram/package.json","../../../node_modules/.pnpm/node_modules/@types/diagnostics_channel/package.json","../../../node_modules/.pnpm/node_modules/@types/dns/package.json","../../../node_modules/.pnpm/node_modules/@types/dns/promises/package.json","../../../node_modules/.pnpm/node_modules/@types/domain/package.json","../../../node_modules/.pnpm/node_modules/@types/events/package.json","../../../node_modules/.pnpm/node_modules/@types/fs/package.json","../../../node_modules/.pnpm/node_modules/@types/fs/promises/package.json","../../../node_modules/.pnpm/node_modules/@types/http/package.json","../../../node_modules/.pnpm/node_modules/@types/http2/package.json","../../../node_modules/.pnpm/node_modules/@types/https/package.json","../../../node_modules/.pnpm/node_modules/@types/inspector/package.json","../../../node_modules/.pnpm/node_modules/@types/inspector/promises/package.json","../../../node_modules/.pnpm/node_modules/@types/module/package.json","../../../node_modules/.pnpm/node_modules/@types/net/package.json","../../../node_modules/.pnpm/node_modules/@types/os/package.json","../../../node_modules/.pnpm/node_modules/@types/path/package.json","../../../node_modules/.pnpm/node_modules/@types/path/posix/package.json","../../../node_modules/.pnpm/node_modules/@types/path/win32/package.json","../../../node_modules/.pnpm/node_modules/@types/perf_hooks/package.json","../../../node_modules/.pnpm/node_modules/@types/process/package.json","../../../node_modules/.pnpm/node_modules/@types/punycode/package.json","../../../node_modules/.pnpm/node_modules/@types/querystring/package.json","../../../node_modules/.pnpm/node_modules/@types/readline/package.json","../../../node_modules/.pnpm/node_modules/@types/readline/promises/package.json","../../../node_modules/.pnpm/node_modules/@types/repl/package.json","../../../node_modules/.pnpm/node_modules/@types/stream/consumers/package.json","../../../node_modules/.pnpm/node_modules/@types/stream/iter/package.json","../../../node_modules/.pnpm/node_modules/@types/stream/package.json","../../../node_modules/.pnpm/node_modules/@types/stream/promises/package.json","../../../node_modules/.pnpm/node_modules/@types/stream/web/package.json","../../../node_modules/.pnpm/node_modules/@types/string_decoder/package.json","../../../node_modules/.pnpm/node_modules/@types/timers/package.json","../../../node_modules/.pnpm/node_modules/@types/timers/promises/package.json","../../../node_modules/.pnpm/node_modules/@types/tls/package.json","../../../node_modules/.pnpm/node_modules/@types/trace_events/package.json","../../../node_modules/.pnpm/node_modules/@types/tty/package.json","../../../node_modules/.pnpm/node_modules/@types/url/package.json","../../../node_modules/.pnpm/node_modules/@types/util/package.json","../../../node_modules/.pnpm/node_modules/@types/util/types/package.json","../../../node_modules/.pnpm/node_modules/@types/v8/package.json","../../../node_modules/.pnpm/node_modules/@types/vm/package.json","../../../node_modules/.pnpm/node_modules/@types/wasi/package.json","../../../node_modules/.pnpm/node_modules/@types/worker_threads/package.json","../../../node_modules/.pnpm/node_modules/@types/zlib/package.json","../../../node_modules/.pnpm/node_modules/assert/package.json","../../../node_modules/.pnpm/node_modules/assert/strict/package.json","../../../node_modules/.pnpm/node_modules/async_hooks/package.json","../../../node_modules/.pnpm/node_modules/child_process/package.json","../../../node_modules/.pnpm/node_modules/cluster/package.json","../../../node_modules/.pnpm/node_modules/console/package.json","../../../node_modules/.pnpm/node_modules/constants/package.json","../../../node_modules/.pnpm/node_modules/crypto/package.json","../../../node_modules/.pnpm/node_modules/dgram/package.json","../../../node_modules/.pnpm/node_modules/diagnostics_channel/package.json","../../../node_modules/.pnpm/node_modules/dns/package.json","../../../node_modules/.pnpm/node_modules/dns/promises/package.json","../../../node_modules/.pnpm/node_modules/domain/package.json","../../../node_modules/.pnpm/node_modules/fs/package.json","../../../node_modules/.pnpm/node_modules/fs/promises/package.json","../../../node_modules/.pnpm/node_modules/http/package.json","../../../node_modules/.pnpm/node_modules/http2/package.json","../../../node_modules/.pnpm/node_modules/https/package.json","../../../node_modules/.pnpm/node_modules/inspector/package.json","../../../node_modules/.pnpm/node_modules/inspector/promises/package.json","../../../node_modules/.pnpm/node_modules/module/package.json","../../../node_modules/.pnpm/node_modules/net/package.json","../../../node_modules/.pnpm/node_modules/os/package.json","../../../node_modules/.pnpm/node_modules/path/package.json","../../../node_modules/.pnpm/node_modules/path/posix/package.json","../../../node_modules/.pnpm/node_modules/path/win32/package.json","../../../node_modules/.pnpm/node_modules/perf_hooks/package.json","../../../node_modules/.pnpm/node_modules/querystring/package.json","../../../node_modules/.pnpm/node_modules/readline/package.json","../../../node_modules/.pnpm/node_modules/readline/promises/package.json","../../../node_modules/.pnpm/node_modules/repl/package.json","../../../node_modules/.pnpm/node_modules/stream/consumers/package.json","../../../node_modules/.pnpm/node_modules/stream/iter/package.json","../../../node_modules/.pnpm/node_modules/stream/package.json","../../../node_modules/.pnpm/node_modules/stream/promises/package.json","../../../node_modules/.pnpm/node_modules/stream/web/package.json","../../../node_modules/.pnpm/node_modules/timers/package.json","../../../node_modules/.pnpm/node_modules/timers/promises/package.json","../../../node_modules/.pnpm/node_modules/tls/package.json","../../../node_modules/.pnpm/node_modules/trace_events/package.json","../../../node_modules/.pnpm/node_modules/tty/package.json","../../../node_modules/.pnpm/node_modules/url/package.json","../../../node_modules/.pnpm/node_modules/util/package.json","../../../node_modules/.pnpm/node_modules/util/types/package.json","../../../node_modules/.pnpm/node_modules/v8/package.json","../../../node_modules/.pnpm/node_modules/vm/package.json","../../../node_modules/.pnpm/node_modules/wasi/package.json","../../../node_modules/.pnpm/node_modules/worker_threads/package.json","../../../node_modules/.pnpm/node_modules/zlib/package.json","../../../node_modules/@types/assert/package.json","../../../node_modules/@types/assert/strict/package.json","../../../node_modules/@types/async_hooks/package.json","../../../node_modules/@types/child_process/package.json","../../../node_modules/@types/cluster/package.json","../../../node_modules/@types/console/package.json","../../../node_modules/@types/constants/package.json","../../../node_modules/@types/crypto/package.json","../../../node_modules/@types/dgram/package.json","../../../node_modules/@types/diagnostics_channel/package.json","../../../node_modules/@types/dns/package.json","../../../node_modules/@types/dns/promises/package.json","../../../node_modules/@types/domain/package.json","../../../node_modules/@types/events/package.json","../../../node_modules/@types/fs/package.json","../../../node_modules/@types/fs/promises/package.json","../../../node_modules/@types/http/package.json","../../../node_modules/@types/http2/package.json","../../../node_modules/@types/https/package.json","../../../node_modules/@types/inspector/package.json","../../../node_modules/@types/inspector/promises/package.json","../../../node_modules/@types/module/package.json","../../../node_modules/@types/net/package.json","../../../node_modules/@types/os/package.json","../../../node_modules/@types/path/package.json","../../../node_modules/@types/path/posix/package.json","../../../node_modules/@types/path/win32/package.json","../../../node_modules/@types/perf_hooks/package.json","../../../node_modules/@types/process/package.json","../../../node_modules/@types/punycode/package.json","../../../node_modules/@types/querystring/package.json","../../../node_modules/@types/readline/package.json","../../../node_modules/@types/readline/promises/package.json","../../../node_modules/@types/repl/package.json","../../../node_modules/@types/stream/consumers/package.json","../../../node_modules/@types/stream/iter/package.json","../../../node_modules/@types/stream/package.json","../../../node_modules/@types/stream/promises/package.json","../../../node_modules/@types/stream/web/package.json","../../../node_modules/@types/string_decoder/package.json","../../../node_modules/@types/timers/package.json","../../../node_modules/@types/timers/promises/package.json","../../../node_modules/@types/tls/package.json","../../../node_modules/@types/trace_events/package.json","../../../node_modules/@types/tty/package.json","../../../node_modules/@types/url/package.json","../../../node_modules/@types/util/package.json","../../../node_modules/@types/util/types/package.json","../../../node_modules/@types/v8/package.json","../../../node_modules/@types/vm/package.json","../../../node_modules/@types/wasi/package.json","../../../node_modules/@types/worker_threads/package.json","../../../node_modules/@types/zlib/package.json","../../../node_modules/assert/package.json","../../../node_modules/assert/strict/package.json","../../../node_modules/async_hooks/package.json","../../../node_modules/child_process/package.json","../../../node_modules/cluster/package.json","../../../node_modules/console/package.json","../../../node_modules/constants/package.json","../../../node_modules/crypto/package.json","../../../node_modules/dgram/package.json","../../../node_modules/diagnostics_channel/package.json","../../../node_modules/dns/package.json","../../../node_modules/dns/promises/package.json","../../../node_modules/domain/package.json","../../../node_modules/events/package.json","../../../node_modules/fs/package.json","../../../node_modules/fs/promises/package.json","../../../node_modules/http/package.json","../../../node_modules/http2/package.json","../../../node_modules/https/package.json","../../../node_modules/inspector/package.json","../../../node_modules/inspector/promises/package.json","../../../node_modules/module/package.json","../../../node_modules/net/package.json","../../../node_modules/os/package.json","../../../node_modules/path/package.json","../../../node_modules/path/posix/package.json","../../../node_modules/path/win32/package.json","../../../node_modules/perf_hooks/package.json","../../../node_modules/process/package.json","../../../node_modules/punycode/package.json","../../../node_modules/querystring/package.json","../../../node_modules/readline/package.json","../../../node_modules/readline/promises/package.json","../../../node_modules/repl/package.json","../../../node_modules/stream/consumers/package.json","../../../node_modules/stream/iter/package.json","../../../node_modules/stream/package.json","../../../node_modules/stream/promises/package.json","../../../node_modules/stream/web/package.json","../../../node_modules/string_decoder/package.json","../../../node_modules/timers/package.json","../../../node_modules/timers/promises/package.json","../../../node_modules/tls/package.json","../../../node_modules/trace_events/package.json","../../../node_modules/tty/package.json","../../../node_modules/url/package.json","../../../node_modules/util/package.json","../../../node_modules/util/types/package.json","../../../node_modules/v8/package.json","../../../node_modules/vm/package.json","../../../node_modules/wasi/package.json","../../../node_modules/worker_threads/package.json","../../../node_modules/zlib/package.json"],"fileNames":["lib.es5.d.ts","lib.es2015.d.ts","lib.es2016.d.ts","lib.es2017.d.ts","lib.es2018.d.ts","lib.es2019.d.ts","lib.es2020.d.ts","lib.es2021.d.ts","lib.es2022.d.ts","lib.es2015.core.d.ts","lib.es2015.collection.d.ts","lib.es2015.generator.d.ts","lib.es2015.iterable.d.ts","lib.es2015.promise.d.ts","lib.es2015.proxy.d.ts","lib.es2015.reflect.d.ts","lib.es2015.symbol.d.ts","lib.es2015.symbol.wellknown.d.ts","lib.es2016.array.include.d.ts","lib.es2016.intl.d.ts","lib.es2017.arraybuffer.d.ts","lib.es2017.date.d.ts","lib.es2017.object.d.ts","lib.es2017.sharedmemory.d.ts","lib.es2017.string.d.ts","lib.es2017.intl.d.ts","lib.es2017.typedarrays.d.ts","lib.es2018.asyncgenerator.d.ts","lib.es2018.asynciterable.d.ts","lib.es2018.intl.d.ts","lib.es2018.promise.d.ts","lib.es2018.regexp.d.ts","lib.es2019.array.d.ts","lib.es2019.object.d.ts","lib.es2019.string.d.ts","lib.es2019.symbol.d.ts","lib.es2019.intl.d.ts","lib.es2020.bigint.d.ts","lib.es2020.date.d.ts","lib.es2020.promise.d.ts","lib.es2020.sharedmemory.d.ts","lib.es2020.string.d.ts","lib.es2020.symbol.wellknown.d.ts","lib.es2020.intl.d.ts","lib.es2020.number.d.ts","lib.es2021.promise.d.ts","lib.es2021.string.d.ts","lib.es2021.weakref.d.ts","lib.es2021.intl.d.ts","lib.es2022.array.d.ts","lib.es2022.error.d.ts","lib.es2022.intl.d.ts","lib.es2022.object.d.ts","lib.es2022.string.d.ts","lib.es2022.regexp.d.ts","lib.es2025.float16.d.ts","lib.esnext.disposable.d.ts","lib.decorators.d.ts","lib.decorators.legacy.d.ts","../src/compose.ts","../src/types.ts","../src/local-exec.ts","../src/local-filesystem.ts","../src/sandbox-types.ts","../src/with-logging.ts","../src/index.ts","../src/node.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/web-globals/blob.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/web-globals/console.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/web-globals/encoding.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/utility.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/client-stats.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/round-robin-pool.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/h2c-client.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/dispatcher1-wrapper.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/socks5-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/web-globals/importmeta.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/web-globals/messaging.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/web-globals/performance.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/web-globals/timers.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/web-globals/url.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/ffi.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/inspector/promises.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/path/posix.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/path/win32.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/quic.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/stream/iter.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/test/reporters.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/util/types.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/zlib/iter.d.ts","../../../node_modules/.pnpm/@types+node@26.1.2/node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"16934abaab7026ac114da441aabea1a0","affectsGlobalScope":true,"impliedNodeFormat":1},"d4306fb2e47f74835e8674ffac07d76f","e437c5c1302869326c3bb93da85bbbcf","e4324975a566567b21d350615f1fc6ac","333b1b9a2a9ac3b8497dba5c63b5ba50","6cffacd662b6eb5fa7a36aa2ea366bfa","b4c34f9c23304dbef2d23698637ed638","e5cb86a5fc491796ecd1d2dd348d208f","feb6c6fb19cdb246a5d8acb36a6901c7",{"version":"926204c28cd3d073865348473ae28d2e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f25e42c801b2cb3cf2b39792006a9beb","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6344b55f26a4e81d9608777dbfb877dd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3c0ed28e53d3695b363e256ec1c023fd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4c2761daba7f17141c25baa0821ac5da","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b87656acabd63e69379ff6ffcfe52fc7","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"597469522da047a5af5222cc6989f405","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1708ea4d34dc37fadadc63ca01127e80","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"55d97a8c6fbf34a30450a7b1e5f7a298","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0ee05eb59426d33e374226d8dcfa708b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e347c14030993906efcfbb88915b6a05","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b0231263857c9b6a03641acdc9280ceb","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3b15c4a83b598cacb4067676e6f0abed","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b417d97b7934cef63b1889abec0bbfbf","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"09a6cf4032ebba60ce22a501e663f881","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2b056277dd138e8f5650fc04e20eaa8d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e22cc07e3f3cc242ba52fa3f8ea1fc58","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2c45da767a1bfbb220848df1bc4029e4","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b44c3e0fbaf2130cdcf6ac38b120ffa1","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b612fb5cf8e5d964b92063a75207632a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"02705151a5e1551b9162a9ed8ab763f7","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"41025e398be9215d32e4337335da8f0b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"52684c2b1f353a5538e4f275182a54cd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6dedb6a4f90d1df3a6fbe5693e44886c","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ca3f36fe3562c07e0f0d71c2bebd3f6d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"409974d6129befbb8226ddd1c6558568","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4d9cfde2a1ae1b4925f1f9bc10848e5d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7e1daecc66dd564144e3bb1a0266b5fd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a8e1d9bb35fd0637f2f9fd2b2a54f2ec","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4f168501772a6543182765bfd5f2fbfe","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a19c80aad1b2162103496f5ba293a732","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b69afa63cd5d059851c78adb2856ee09","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ae2fc5d954e9b0f5feee3d481b953c27","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1cfd3091a071d8b6feec15277643bafe","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1da2c1f258970fd3cc91184f69e91a9d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a0d87491913d843139e0c993650a3235","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4ef72aa378127e7b7abba915b0110b1e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3ec74c6a7d4463f0254db3a74cf75646","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"84c2bdfa470d075526cce6322d81b0b6","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0b3844c2b8c73e4e1ab91431411cad11","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4fc71cf4a15b8d99675a31df77f26e07","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d1b49564ddaeca3df5b6dbae925d2242","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6a25be566d60ccfc2d6e8b7bfdeefa83","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"8a20e27646985dfd58c57ca6566553dd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9969f02ad3cdcbf4f709405cda44167f","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9c9be4792a7a4f42c15ae7360bf28779","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0219894bfe5042c7e1aa2d22e4a91ed0","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"be41035d7b941482a1e1ae6a5c5dcca5","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f64453cbf9671f28158677fa5c43967a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"33f317af5428801f944a478d2c1e38e5","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"c18bad325711a4f86f9168adc7947f1c","signature":"2b976a9fefc9c31d9419428b4bbf6b68","impliedNodeFormat":99},{"version":"72d5ae081ec9c63826ddee0d4d40822c","signature":"9d23a58101ee8ab9974290ed1066316f","impliedNodeFormat":99},{"version":"59d28980fafc784c8a4c06df36b4529c","signature":"74972e52536824eb738f16ddc7274c37","impliedNodeFormat":99},{"version":"b8d0be16cb1f963120794da49272270d","signature":"2c5387027a9e74887acb1e677a808862","impliedNodeFormat":99},{"version":"3361c78b12be8d02445b06525f22193f","signature":"d7966f165f84c69057a50663715fa991","impliedNodeFormat":99},{"version":"80cc97526c3bbc7e6ca12b121a6d11b4","signature":"66f3ebbc3f43ad341e4cfd70f209377b","impliedNodeFormat":99},{"version":"bf317fd061fc1d4cf6c8109071fe0505","signature":"890f101bad3bdc3f601eb12dced95b76","impliedNodeFormat":99},{"version":"e74937a2b8f48ddfd4ef94b9000bbfb3","signature":"67cadf33d8fa8853df7c5cf80d877813","impliedNodeFormat":99},{"version":"014eb4d3e0618e548a7001fb52d9f78b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"29aa5df597455c046c2c88185c75534b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"c5eb15737c858d986e0d5a542103b1df","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ec83150a952000d42a7e6ccedac2d892","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"494755686d9e421e630117d917760e4f","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"c3f3d4053311f68af31e07f6e167faf6","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"86013697f2045d357ef20d7a952cdc12","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"fbef359f7184dcd12e5b3b95b171cca0","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1ca5302f6fe11154128eef397b5a285b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"13835e9ba9b025ad7cab01fe7bad1fe3","affectsGlobalScope":true,"impliedNodeFormat":1},"49133c0dfbc32ab95668c3443dea49e5","d0b24ed45e91de84ca0fbafde3797006","9f970a4ba4bb3ed6326d46b3ddab3f63","7326b52c300bf65ac2f7e089fa536421","75de66fc4824402123c0d694ccc0a085","ff1283d1b4e6fa719203127857079e2e","fcd1a513c1e5802916fa602e8b8e64bc","78963d55a7500f2a08ecf81c3e2f2351","c1ace754853b3b972549a44a2316ca86","cf4561df3889c71b6b70fda4afe61f62","705645fe223430c696f47b708d592ca8","28d57c837c94adb42add03d499793cab","8c01a9bbae8449be21b3e018d59a74ac","b4a1cb50a619bde79c20d19aeb560633","21dc8b1a2dfd71b39278fd1db4055489","74d351e4ed233e82c6d74c444c1a6b86","35b9b5981aa2c74f808ba3334548e89b","81870445ff689f1a6c65a6d62e034298","d7131a7789ae06e6ba79d7cd1841fde7","dd373f44a8c44dd9286f3b43e07fc873","d7e5f7a0f1f883f28458f684106e7643","c2364011a80b6a9e3cc0e77895bad577","38da5c670190f4a35cbc204ca6c616bf","d95cc0eb29beed58f5ce72db21398f53","ecd53256b1ec7379c73316eaf392a69c","9871d4fb594b51eb13a3f6db71e01844","69c7bb9c3befe9ae37eed0e6a6310fee","c9351e1ed4d066672ad38be5c44f60b9","71e556084722c2a3f00f47d999db1e35","094ecadae30f65a82b77343dde77a666","f75df12d75dd783b03a0329b95abdb25","b438b08b2f0ed94a95a75c8990d9021b","f2becd2589591db92ab14e803eb8bdd5","230b29c24dac9c9800ba909debbaf7c4","518eaa3ff1153eacd0343a6bab2ce870","0468c0ccd0ec7770b76481b165564d62","188234d616a4f50ed9b14c8f84a39f33","4c116bcf0a47ea8fbf4072f380925fa7","213fda99209bff9d0330b6d9f5c9c7f3","add85ec26ba695fc99c698dbec065f8c","5bfde23f96fc502b5413d772c35e1abf","b744265d8ad12b7d4d5c5dc35d18d44e","eff32168b8348b822afeed9cbf61afa7","531a291f1cbe853ce3a138313c7448e9",{"version":"3b4fc11e9a5d20c846f1ba38889cbc8d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"53b0e86dfe96eb781a056e2662bf1e3b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d0bac56ae60094675c08a325b81d3b1a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"292c9398a407b33b1d9c9812b673387a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"83bc735c360e42b09f2b102d7b831ede","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"45df94b3c51b898624bacc2bcd6d9eb2","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0b1a6b0b0f8828c286f9ae2ba01c4a5c","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"8617a23553d74c31be6da303c668bd18","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3f2d808ba5f1ae3681bf7df616488dcd","affectsGlobalScope":true,"impliedNodeFormat":1},"4e58ba439fc661a1e2337fd17ae89d94","604aab8dd7c02abe3fcf1218fa951439","eb8c0e64b0e0e76f43e7c552937a365f",{"version":"d9f08c6ae1f16ca22e5a7ee7c02e8f55","affectsGlobalScope":true,"impliedNodeFormat":1},"1b0b3ba726724a8114fae4fe32b2e813","2c43726da10a0a524992e6fd4a561aba","75c6ee2c7a0e7d54f06ae1941553f44f","9af5958f27aacf7d18939d710f5b0da4","63d472a34b62f28ec36de487ed66e5f4","e83763b51773b219b802af074c41c158","dca9e0bed5a66eaef8e9d2533b733526","3913881dcc0e8e56499d4bb2d58cd5cd","96e4ab680765cf32feb71a88bbae18ae","2d8ebe6eb639d14875e12acf069d9c65",{"version":"2d30f3e526b72134674afeee7eb5f870","affectsGlobalScope":true,"impliedNodeFormat":1},"3dc88bd6dd1ffa2f65dbb913face44d9","156e7ba4d6075df40c44fe3b42d518c3","cd2631f28a9d8693684fdf8a4fd85b6c","52cd6b1193a0309e8782055ac7967d5e","42152e8a9fc3c2ee8955f5742cc930b2","8383fa58c2f75291c454f84915f12190","856e7f9f1e0e64dfa73b2026886d9380","fc81ee7b08868ee0973983110e2ef386","f7be6b8b253b7d07c8476f23bbdc98c1",{"version":"48b2540ad661c32ab2cf99d5d0300f98","affectsGlobalScope":true,"impliedNodeFormat":1},"552f49661c80ae3d5da105854ee1d892","8e91e7228778516936913f666d057c19","a91bb5d596fbbd6d7aa1e3978c2ef93f","860f49c8d6ad48b19bf7ed0bc5d2824e","235cc33b85ac998f0f2df0807648acb8","c0c62035e8f8a0b6da47b6277fd6dbb2","9b2cd7ec10805b4f47901fa3a8fb0635",{"version":"a471ff2dab1b5f8bcdbdfb743e001792","affectsGlobalScope":true,"impliedNodeFormat":1},"196cd3003168b4ee2df015d15cfed000","66b5b9b84ab95e019a6e1f5edb8bd250","6014f5bba998f243250331699b5c4fc0","2e2ed32d5133fb4c60f95543217e669e","2580385b74019e646d76a9f68fdbf31b","aa0f7a546acda88ef0a5df40ff0e5122","b3bdce048b1c601e1a19a4c3ee32053b","0243207cb0498a7e930f0374672b9a0a",{"version":"c18928bec3bc65892c54962be1683163","affectsGlobalScope":true,"impliedNodeFormat":1},"f9c43b0225ab4f6dc8aff6e619d322a8","28f9ca9da65e883dd2fbac1909329856","6e1de2df81bd936ffb5509f921f1fc8c","c7576162a5c832fc7681771ad7a50357","9959a7e96eedcbc697460cf0d31bda74","629718571a9e12edba8d52caefedbfb8","0b355907ec29bf7f68cedaff3b6b71f5",{"version":"b73a052b5fd08948bd559dcca4424ede","affectsGlobalScope":true,"impliedNodeFormat":1},"e6ad9a1d5cc3099621a4a7bba328d248","13c7d30ec9c5b3f2e8030aa28afcd9f3","b4dbe09999921e219d6ff56b29720eae","4d2cb96ef76779819df8963314db8b6b","93f25f3a36ba4dd4c8efff0cc442f118","513ff65469f15b8059ed4edd7033614a","b0466c3034f5921a2c78e7da534f2b19","61b988e4a671a41f33463227249c0b13","8e0c0fb59513333b77efcbd43da1ce7f","3b1ae8bab308b1e5ac7e7a26d27167ad","a41a5f7019678ba4b53936492dc465d1","35c1d312d8ffabf1e4546bfeaeb4142e","6728fae9ef4170f6403bf6db25cc60c6","9fd5b314bfba8a89299a1031ae1d82c0"],"fileIdsList":[[69,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,121,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[68,69,70,71,72,73,74,75,76,77,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193],[69,121,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,121,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192],[69,84,87,90,91,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,87,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,87,91,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,81,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,85,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,83,84,87,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194],[69,81,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194],[69,83,87,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,78,79,80,82,86,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,87,96,105,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,79,85,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,87,115,116,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,79,82,87,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194],[69,78,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,81,82,83,85,86,87,88,89,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,116,117,118,119,120,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,87,108,111,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,87,96,98,99,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,85,87,98,100,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,86,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,79,81,87,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,87,91,98,100,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,91,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,85,87,90,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,79,83,87,96,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,87,108,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,100,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,79,83,87,91,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[69,81,87,115,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194],[60,61,62,63,64,65,69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[61,69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[62,63,69,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193]],"options":{"allowJs":false,"composite":true,"declaration":true,"declarationMap":true,"exactOptionalPropertyTypes":true,"module":199,"noUncheckedIndexedAccess":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"strict":true,"stripInternal":true,"target":9,"tsBuildInfoFile":"./tsconfig.tsbuildinfo"},"referencedMap":[[131,1],[132,2],[133,3],[69,4],[134,5],[135,6],[136,7],[137,8],[138,9],[139,10],[140,11],[141,12],[142,13],[143,14],[144,15],[145,16],[146,17],[147,18],[148,19],[70,20],[68,20],[149,21],[150,22],[151,23],[194,24],[152,25],[153,26],[154,27],[155,28],[156,29],[158,30],[159,31],[160,32],[161,33],[162,34],[163,35],[164,36],[165,37],[166,38],[167,39],[168,40],[169,41],[170,42],[171,43],[172,44],[173,45],[174,46],[175,47],[176,48],[177,49],[178,50],[179,51],[180,52],[181,53],[182,54],[183,55],[184,56],[185,57],[186,58],[187,59],[188,60],[189,61],[190,62],[71,20],[72,20],[73,20],[74,20],[75,20],[76,20],[77,20],[122,63],[123,20],[124,20],[125,20],[126,20],[127,20],[128,20],[129,20],[130,20],[191,64],[192,65],[193,66],[58,20],[59,20],[11,20],[10,20],[2,20],[12,20],[13,20],[14,20],[15,20],[16,20],[17,20],[18,20],[19,20],[3,20],[20,20],[21,20],[4,20],[22,20],[26,20],[23,20],[24,20],[25,20],[27,20],[28,20],[29,20],[5,20],[30,20],[31,20],[32,20],[33,20],[6,20],[37,20],[34,20],[35,20],[36,20],[38,20],[7,20],[39,20],[44,20],[45,20],[40,20],[41,20],[42,20],[43,20],[8,20],[49,20],[46,20],[47,20],[48,20],[50,20],[9,20],[51,20],[52,20],[53,20],[55,20],[54,20],[56,20],[1,20],[57,20],[157,20],[96,67],[110,68],[93,69],[111,20],[120,70],[84,71],[85,72],[83,20],[119,73],[114,74],[118,75],[87,76],[97,68],[107,77],[86,78],[117,79],[81,80],[82,74],[88,68],[89,20],[95,75],[92,68],[79,81],[121,82],[112,83],[100,84],[99,68],[101,85],[104,86],[98,87],[102,88],[115,73],[90,89],[91,90],[105,91],[80,20],[109,92],[108,68],[94,90],[103,93],[106,94],[113,20],[78,20],[116,95],[60,20],[66,96],[62,97],[63,97],[67,98],[64,97],[61,20],[65,97]],"latestChangedDtsFile":"./node.d.ts"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Workspace backend type interfaces.
3
+ *
4
+ * Backends are plain objects implementing these interfaces. The
5
+ * workspace capability calls into them to perform filesystem reads,
6
+ * writes, listings, and shell command execution. Defaults
7
+ * (`localFilesystem`, `localExec`) ship in this package; users can
8
+ * provide their own implementations via b4.config.ts.
9
+ */
10
+ export interface BackendContext {
11
+ /** Aborts when the parent agent run is cancelled. */
12
+ readonly signal: AbortSignal;
13
+ /** Absolute filesystem path of the route's workspace directory. */
14
+ readonly workspaceRoot: string;
15
+ }
16
+ export interface FilesystemBackend {
17
+ /**
18
+ * Read a UTF-8 file. `path` is an already-resolved absolute path
19
+ * inside `ctx.workspaceRoot` — the capability has done the path-jail.
20
+ * Pass `opts.maxBytes` to override the backend's default size cap for
21
+ * this single call (e.g. use `Number.POSITIVE_INFINITY` for uncapped reads
22
+ * of offloaded tool outputs).
23
+ */
24
+ readFile(path: string, ctx: BackendContext, opts?: {
25
+ readonly maxBytes?: number;
26
+ }): Promise<string>;
27
+ /**
28
+ * Read a file's raw bytes. Like `readFile`, `path` is an already-resolved
29
+ * absolute path inside `ctx.workspaceRoot` — the capability has done the
30
+ * path-jail. No decoding is applied. `opts.maxBytes` overrides the
31
+ * backend's default size cap for this single call (same semantics as
32
+ * `readFile`).
33
+ *
34
+ * Optional — backends that omit it provide no binary read; callers must
35
+ * handle absence with a clear error (mirror how offload GC handles a
36
+ * missing `statFile`).
37
+ */
38
+ readBinaryFile?(path: string, ctx: BackendContext, opts?: {
39
+ readonly maxBytes?: number;
40
+ }): Promise<Uint8Array>;
41
+ /** Write a UTF-8 file. Returns the byte count of `content`. */
42
+ writeFile(path: string, content: string, ctx: BackendContext): Promise<{
43
+ readonly bytesWritten: number;
44
+ }>;
45
+ /** List entries in a directory. Returns leaf names (not full paths). */
46
+ listDir(path: string, ctx: BackendContext): Promise<readonly string[]>;
47
+ /**
48
+ * Canonicalize an already-resolved absolute path — resolving symlinks and
49
+ * `..` to a real target location — so the permission gate compares true
50
+ * locations, not lexical strings. Must tolerate a path that does not exist
51
+ * yet (e.g. a writeFile target): resolve the deepest existing ancestor and
52
+ * re-append the non-existent tail. Backends with no symlink concept
53
+ * (in-memory, remote) may return the path unchanged.
54
+ */
55
+ realPath(path: string, ctx: BackendContext): Promise<string>;
56
+ /** Stat a file. Optional — backends that omit it disable offload GC. */
57
+ statFile?(path: string, ctx: BackendContext): Promise<{
58
+ readonly size: number;
59
+ readonly mtimeMs: number;
60
+ }>;
61
+ /** Delete a file. Optional — required for offload GC eviction. */
62
+ removeFile?(path: string, ctx: BackendContext): Promise<void>;
63
+ /** Bump a file's mtime to now (LRU-by-access). Optional. */
64
+ touchFile?(path: string, ctx: BackendContext): Promise<void>;
65
+ /** Create a directory (recursive). Optional — offloading uses it to ensure the tool-outputs/ dir exists. */
66
+ mkdir?(path: string, ctx: BackendContext): Promise<void>;
67
+ }
68
+ export interface ExecBackend {
69
+ /**
70
+ * Run a shell command. `args.cwd`, if provided, is already-resolved
71
+ * to an absolute path inside `ctx.workspaceRoot`.
72
+ */
73
+ runCommand(args: {
74
+ readonly command: string;
75
+ readonly cwd?: string;
76
+ readonly env?: Readonly<Record<string, string>>;
77
+ }, ctx: BackendContext): Promise<{
78
+ readonly stdout: string;
79
+ readonly stderr: string;
80
+ readonly exitCode: number;
81
+ }>;
82
+ }
83
+ /**
84
+ * A filesystem middleware is a function that wraps a backend to add
85
+ * cross-cutting behavior (logging, caching, etc.). Compose multiple
86
+ * middlewares via `compose()`.
87
+ */
88
+ export type FilesystemMiddleware = (next: FilesystemBackend) => FilesystemBackend;
89
+ /** See FilesystemMiddleware. */
90
+ export type ExecMiddleware = (next: ExecBackend) => ExecBackend;
91
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,mEAAmE;IACnE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC;;;;;;OAMG;IACH,QAAQ,CACN,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,cAAc,EACnB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GACpC,OAAO,CAAC,MAAM,CAAC,CAAA;IAElB;;;;;;;;;;OAUG;IACH,cAAc,CAAC,CACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,cAAc,EACnB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GACpC,OAAO,CAAC,UAAU,CAAC,CAAA;IAEtB,+DAA+D;IAC/D,SAAS,CACP,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC;QAAE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAE7C,wEAAwE;IACxE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAA;IAEtE;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAE5D,wEAAwE;IACxE,QAAQ,CAAC,CACP,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAE/D,kEAAkE;IAClE,UAAU,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE7D,4DAA4D;IAC5D,SAAS,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE5D,4GAA4G;IAC5G,KAAK,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACzD;AAED,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,UAAU,CACR,IAAI,EAAE;QACJ,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;KAChD,EACD,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC;QACT,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAC1B,CAAC,CAAA;CACH;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE,iBAAiB,KAAK,iBAAiB,CAAA;AAEjF,gCAAgC;AAChC,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,WAAW,KAAK,WAAW,CAAA"}
package/dist/types.js ADDED
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Workspace backend type interfaces.
3
+ *
4
+ * Backends are plain objects implementing these interfaces. The
5
+ * workspace capability calls into them to perform filesystem reads,
6
+ * writes, listings, and shell command execution. Defaults
7
+ * (`localFilesystem`, `localExec`) ship in this package; users can
8
+ * provide their own implementations via b4.config.ts.
9
+ */
10
+ export {};
@@ -0,0 +1,16 @@
1
+ import type { ExecMiddleware, FilesystemMiddleware } from "./types.js";
2
+ export interface LoggingOptions {
3
+ /**
4
+ * Where to send log lines. Default: `console.error`.
5
+ *
6
+ * Pass a function for structured logging. The argument is
7
+ * `{ method, args }` so the function can format however it wants.
8
+ */
9
+ readonly destination?: (entry: {
10
+ method: string;
11
+ args: unknown[];
12
+ }) => void;
13
+ }
14
+ export declare function withFilesystemLogging(opts?: LoggingOptions): FilesystemMiddleware;
15
+ export declare function withExecLogging(opts?: LoggingOptions): ExecMiddleware;
16
+ //# sourceMappingURL=with-logging.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"with-logging.d.ts","sourceRoot":"","sources":["../src/with-logging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,cAAc,EAEd,oBAAoB,EACrB,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,EAAE,CAAA;KAAE,KAAK,IAAI,CAAA;CAC5E;AAUD,wBAAgB,qBAAqB,CAAC,IAAI,GAAE,cAAmB,GAAG,oBAAoB,CA0CrF;AAED,wBAAgB,eAAe,CAAC,IAAI,GAAE,cAAmB,GAAG,cAAc,CAOzE"}
@@ -0,0 +1,55 @@
1
+ function emit(opts, method, args) {
2
+ if (opts.destination) {
3
+ opts.destination({ method, args });
4
+ return;
5
+ }
6
+ console.error(`[b4:workspace] ${method}(${args.map((a) => JSON.stringify(a)).join(", ")})`);
7
+ }
8
+ export function withFilesystemLogging(opts = {}) {
9
+ return (next) => {
10
+ const wrapped = {
11
+ readFile: async (path, ctx, readOpts) => {
12
+ emit(opts, "readFile", [path]);
13
+ return next.readFile(path, ctx, readOpts);
14
+ },
15
+ writeFile: async (path, content, ctx) => {
16
+ emit(opts, "writeFile", [path, content]);
17
+ return next.writeFile(path, content, ctx);
18
+ },
19
+ listDir: async (path, ctx) => {
20
+ emit(opts, "listDir", [path]);
21
+ return next.listDir(path, ctx);
22
+ },
23
+ // Required; internal canonicalization, not a user-facing read/write — passthrough, no log.
24
+ realPath: (path, ctx) => next.realPath(path, ctx),
25
+ };
26
+ // Forward binary read with PATH-ONLY logging — never serialize the bytes.
27
+ const { readBinaryFile } = next;
28
+ if (readBinaryFile) {
29
+ wrapped.readBinaryFile = async (path, ctx, readOpts) => {
30
+ emit(opts, "readBinaryFile", [path]);
31
+ return readBinaryFile(path, ctx, readOpts);
32
+ };
33
+ }
34
+ // Preserve optional capabilities the middleware previously dropped — dropping
35
+ // statFile/removeFile/touchFile silently disabled offload GC behind the logger.
36
+ // These are passthrough-only (not logged); the point of the fix is preservation.
37
+ if (next.statFile)
38
+ wrapped.statFile = next.statFile;
39
+ if (next.removeFile)
40
+ wrapped.removeFile = next.removeFile;
41
+ if (next.touchFile)
42
+ wrapped.touchFile = next.touchFile;
43
+ if (next.mkdir)
44
+ wrapped.mkdir = next.mkdir;
45
+ return wrapped;
46
+ };
47
+ }
48
+ export function withExecLogging(opts = {}) {
49
+ return (next) => ({
50
+ runCommand: async (args, ctx) => {
51
+ emit(opts, "runCommand", [args.command, args.cwd]);
52
+ return next.runCommand(args, ctx);
53
+ },
54
+ });
55
+ }
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "@b4run/workspace",
3
+ "version": "0.8.28",
4
+ "private": false,
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "description": "Filesystem and shell workspace contracts and tools for B4.run agent applications.",
8
+ "keywords": [
9
+ "b4",
10
+ "typescript",
11
+ "ai-agents",
12
+ "filesystem",
13
+ "shell",
14
+ "developer-tools"
15
+ ],
16
+ "homepage": "https://github.com/cacheplane/b4run/tree/main/packages/workspace#readme",
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git+https://github.com/cacheplane/b4run.git",
20
+ "directory": "packages/workspace"
21
+ },
22
+ "bugs": {
23
+ "url": "https://github.com/cacheplane/b4run/issues"
24
+ },
25
+ "engines": {
26
+ "node": ">=24.0.0"
27
+ },
28
+ "files": [
29
+ "dist"
30
+ ],
31
+ "types": "./dist/index.d.ts",
32
+ "exports": {
33
+ ".": {
34
+ "types": "./dist/index.d.ts",
35
+ "default": "./dist/index.js"
36
+ },
37
+ "./node": {
38
+ "types": "./dist/node.d.ts",
39
+ "default": "./dist/node.js"
40
+ }
41
+ },
42
+ "publishConfig": {
43
+ "access": "public"
44
+ },
45
+ "dependencies": {
46
+ "@b4run/sdk": "0.8.28"
47
+ },
48
+ "devDependencies": {
49
+ "@types/node": "26.1.2",
50
+ "@b4run/config-typescript": "0.8.28"
51
+ },
52
+ "scripts": {
53
+ "build": "tsc -b tsconfig.json",
54
+ "lint": "biome check --config-path ../config-biome/biome.json package.json src test tsconfig.json vitest.config.ts",
55
+ "test": "vitest --run --config vitest.config.ts --passWithNoTests",
56
+ "typecheck": "tsc --noEmit && tsc -p tsconfig.test.json"
57
+ }
58
+ }