@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 +21 -0
- package/README.md +42 -0
- package/dist/compose.d.ts +11 -0
- package/dist/compose.d.ts.map +1 -0
- package/dist/compose.js +14 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/local-exec.d.ts +13 -0
- package/dist/local-exec.d.ts.map +1 -0
- package/dist/local-exec.js +35 -0
- package/dist/local-filesystem.d.ts +10 -0
- package/dist/local-filesystem.d.ts.map +1 -0
- package/dist/local-filesystem.js +67 -0
- package/dist/node.d.ts +12 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +11 -0
- package/dist/sandbox-types.d.ts +89 -0
- package/dist/sandbox-types.d.ts.map +1 -0
- package/dist/sandbox-types.js +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types.d.ts +91 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +10 -0
- package/dist/with-logging.d.ts +16 -0
- package/dist/with-logging.d.ts.map +1 -0
- package/dist/with-logging.js +55 -0
- package/package.json +58 -0
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"}
|
package/dist/compose.js
ADDED
|
@@ -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
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -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,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"}
|
package/dist/types.d.ts
ADDED
|
@@ -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
|
+
}
|