@openai/agents-extensions 0.8.5 → 0.9.1
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/dist/metadata.js +2 -2
- package/dist/metadata.mjs +2 -2
- package/dist/sandbox/blaxel/index.d.ts +2 -0
- package/dist/sandbox/blaxel/index.js +19 -0
- package/dist/sandbox/blaxel/index.js.map +1 -0
- package/dist/sandbox/blaxel/index.mjs +3 -0
- package/dist/sandbox/blaxel/index.mjs.map +1 -0
- package/dist/sandbox/blaxel/mounts.d.ts +101 -0
- package/dist/sandbox/blaxel/mounts.js +542 -0
- package/dist/sandbox/blaxel/mounts.js.map +1 -0
- package/dist/sandbox/blaxel/mounts.mjs +529 -0
- package/dist/sandbox/blaxel/mounts.mjs.map +1 -0
- package/dist/sandbox/blaxel/sandbox.d.ts +155 -0
- package/dist/sandbox/blaxel/sandbox.js +1110 -0
- package/dist/sandbox/blaxel/sandbox.js.map +1 -0
- package/dist/sandbox/blaxel/sandbox.mjs +1072 -0
- package/dist/sandbox/blaxel/sandbox.mjs.map +1 -0
- package/dist/sandbox/cloudflare/index.d.ts +2 -0
- package/dist/sandbox/cloudflare/index.js +19 -0
- package/dist/sandbox/cloudflare/index.js.map +1 -0
- package/dist/sandbox/cloudflare/index.mjs +3 -0
- package/dist/sandbox/cloudflare/index.mjs.map +1 -0
- package/dist/sandbox/cloudflare/mounts.d.ts +28 -0
- package/dist/sandbox/cloudflare/mounts.js +150 -0
- package/dist/sandbox/cloudflare/mounts.js.map +1 -0
- package/dist/sandbox/cloudflare/mounts.mjs +143 -0
- package/dist/sandbox/cloudflare/mounts.mjs.map +1 -0
- package/dist/sandbox/cloudflare/sandbox.d.ts +91 -0
- package/dist/sandbox/cloudflare/sandbox.js +1163 -0
- package/dist/sandbox/cloudflare/sandbox.js.map +1 -0
- package/dist/sandbox/cloudflare/sandbox.mjs +1125 -0
- package/dist/sandbox/cloudflare/sandbox.mjs.map +1 -0
- package/dist/sandbox/daytona/index.d.ts +2 -0
- package/dist/sandbox/daytona/index.js +19 -0
- package/dist/sandbox/daytona/index.js.map +1 -0
- package/dist/sandbox/daytona/index.mjs +3 -0
- package/dist/sandbox/daytona/index.mjs.map +1 -0
- package/dist/sandbox/daytona/mounts.d.ts +11 -0
- package/dist/sandbox/daytona/mounts.js +17 -0
- package/dist/sandbox/daytona/mounts.js.map +1 -0
- package/dist/sandbox/daytona/mounts.mjs +12 -0
- package/dist/sandbox/daytona/mounts.mjs.map +1 -0
- package/dist/sandbox/daytona/sandbox.d.ts +160 -0
- package/dist/sandbox/daytona/sandbox.js +938 -0
- package/dist/sandbox/daytona/sandbox.js.map +1 -0
- package/dist/sandbox/daytona/sandbox.mjs +900 -0
- package/dist/sandbox/daytona/sandbox.mjs.map +1 -0
- package/dist/sandbox/e2b/index.d.ts +2 -0
- package/dist/sandbox/e2b/index.js +19 -0
- package/dist/sandbox/e2b/index.js.map +1 -0
- package/dist/sandbox/e2b/index.mjs +3 -0
- package/dist/sandbox/e2b/index.mjs.map +1 -0
- package/dist/sandbox/e2b/mounts.d.ts +11 -0
- package/dist/sandbox/e2b/mounts.js +17 -0
- package/dist/sandbox/e2b/mounts.js.map +1 -0
- package/dist/sandbox/e2b/mounts.mjs +12 -0
- package/dist/sandbox/e2b/mounts.mjs.map +1 -0
- package/dist/sandbox/e2b/sandbox.d.ts +169 -0
- package/dist/sandbox/e2b/sandbox.js +829 -0
- package/dist/sandbox/e2b/sandbox.js.map +1 -0
- package/dist/sandbox/e2b/sandbox.mjs +791 -0
- package/dist/sandbox/e2b/sandbox.mjs.map +1 -0
- package/dist/sandbox/modal/index.d.ts +2 -0
- package/dist/sandbox/modal/index.js +19 -0
- package/dist/sandbox/modal/index.js.map +1 -0
- package/dist/sandbox/modal/index.mjs +3 -0
- package/dist/sandbox/modal/index.mjs.map +1 -0
- package/dist/sandbox/modal/mounts.d.ts +24 -0
- package/dist/sandbox/modal/mounts.js +194 -0
- package/dist/sandbox/modal/mounts.js.map +1 -0
- package/dist/sandbox/modal/mounts.mjs +188 -0
- package/dist/sandbox/modal/mounts.mjs.map +1 -0
- package/dist/sandbox/modal/sandbox.d.ts +220 -0
- package/dist/sandbox/modal/sandbox.js +1621 -0
- package/dist/sandbox/modal/sandbox.js.map +1 -0
- package/dist/sandbox/modal/sandbox.mjs +1581 -0
- package/dist/sandbox/modal/sandbox.mjs.map +1 -0
- package/dist/sandbox/runloop/index.d.ts +2 -0
- package/dist/sandbox/runloop/index.js +19 -0
- package/dist/sandbox/runloop/index.js.map +1 -0
- package/dist/sandbox/runloop/index.mjs +3 -0
- package/dist/sandbox/runloop/index.mjs.map +1 -0
- package/dist/sandbox/runloop/mounts.d.ts +11 -0
- package/dist/sandbox/runloop/mounts.js +17 -0
- package/dist/sandbox/runloop/mounts.js.map +1 -0
- package/dist/sandbox/runloop/mounts.mjs +12 -0
- package/dist/sandbox/runloop/mounts.mjs.map +1 -0
- package/dist/sandbox/runloop/sandbox.d.ts +266 -0
- package/dist/sandbox/runloop/sandbox.js +1390 -0
- package/dist/sandbox/runloop/sandbox.js.map +1 -0
- package/dist/sandbox/runloop/sandbox.mjs +1346 -0
- package/dist/sandbox/runloop/sandbox.mjs.map +1 -0
- package/dist/sandbox/shared/archive.d.ts +34 -0
- package/dist/sandbox/shared/archive.js +397 -0
- package/dist/sandbox/shared/archive.js.map +1 -0
- package/dist/sandbox/shared/archive.mjs +389 -0
- package/dist/sandbox/shared/archive.mjs.map +1 -0
- package/dist/sandbox/shared/editor.d.ts +17 -0
- package/dist/sandbox/shared/editor.js +65 -0
- package/dist/sandbox/shared/editor.js.map +1 -0
- package/dist/sandbox/shared/editor.mjs +61 -0
- package/dist/sandbox/shared/editor.mjs.map +1 -0
- package/dist/sandbox/shared/environment.d.ts +1 -0
- package/dist/sandbox/shared/environment.js +13 -0
- package/dist/sandbox/shared/environment.js.map +1 -0
- package/dist/sandbox/shared/environment.mjs +2 -0
- package/dist/sandbox/shared/environment.mjs.map +1 -0
- package/dist/sandbox/shared/git.d.ts +4 -0
- package/dist/sandbox/shared/git.js +20 -0
- package/dist/sandbox/shared/git.js.map +1 -0
- package/dist/sandbox/shared/git.mjs +17 -0
- package/dist/sandbox/shared/git.mjs.map +1 -0
- package/dist/sandbox/shared/inContainerMounts.d.ts +40 -0
- package/dist/sandbox/shared/inContainerMounts.js +670 -0
- package/dist/sandbox/shared/inContainerMounts.js.map +1 -0
- package/dist/sandbox/shared/inContainerMounts.mjs +662 -0
- package/dist/sandbox/shared/inContainerMounts.mjs.map +1 -0
- package/dist/sandbox/shared/index.d.ts +23 -0
- package/dist/sandbox/shared/index.js +112 -0
- package/dist/sandbox/shared/index.js.map +1 -0
- package/dist/sandbox/shared/index.mjs +18 -0
- package/dist/sandbox/shared/index.mjs.map +1 -0
- package/dist/sandbox/shared/localSources.d.ts +8 -0
- package/dist/sandbox/shared/localSources.js +378 -0
- package/dist/sandbox/shared/localSources.js.map +1 -0
- package/dist/sandbox/shared/localSources.mjs +372 -0
- package/dist/sandbox/shared/localSources.mjs.map +1 -0
- package/dist/sandbox/shared/manifest.d.ts +38 -0
- package/dist/sandbox/shared/manifest.js +254 -0
- package/dist/sandbox/shared/manifest.js.map +1 -0
- package/dist/sandbox/shared/manifest.mjs +233 -0
- package/dist/sandbox/shared/manifest.mjs.map +1 -0
- package/dist/sandbox/shared/media.d.ts +1 -0
- package/dist/sandbox/shared/media.js +10 -0
- package/dist/sandbox/shared/media.js.map +1 -0
- package/dist/sandbox/shared/media.mjs +2 -0
- package/dist/sandbox/shared/media.mjs.map +1 -0
- package/dist/sandbox/shared/metadata.d.ts +7 -0
- package/dist/sandbox/shared/metadata.js +87 -0
- package/dist/sandbox/shared/metadata.js.map +1 -0
- package/dist/sandbox/shared/metadata.mjs +81 -0
- package/dist/sandbox/shared/metadata.mjs.map +1 -0
- package/dist/sandbox/shared/output.d.ts +1 -0
- package/dist/sandbox/shared/output.js +8 -0
- package/dist/sandbox/shared/output.js.map +1 -0
- package/dist/sandbox/shared/output.mjs +2 -0
- package/dist/sandbox/shared/output.mjs.map +1 -0
- package/dist/sandbox/shared/paths.d.ts +27 -0
- package/dist/sandbox/shared/paths.js +245 -0
- package/dist/sandbox/shared/paths.js.map +1 -0
- package/dist/sandbox/shared/paths.mjs +236 -0
- package/dist/sandbox/shared/paths.mjs.map +1 -0
- package/dist/sandbox/shared/ports.d.ts +14 -0
- package/dist/sandbox/shared/ports.js +75 -0
- package/dist/sandbox/shared/ports.js.map +1 -0
- package/dist/sandbox/shared/ports.mjs +69 -0
- package/dist/sandbox/shared/ports.mjs.map +1 -0
- package/dist/sandbox/shared/process.d.ts +16 -0
- package/dist/sandbox/shared/process.js +90 -0
- package/dist/sandbox/shared/process.js.map +1 -0
- package/dist/sandbox/shared/process.mjs +86 -0
- package/dist/sandbox/shared/process.mjs.map +1 -0
- package/dist/sandbox/shared/pty.d.ts +81 -0
- package/dist/sandbox/shared/pty.js +382 -0
- package/dist/sandbox/shared/pty.js.map +1 -0
- package/dist/sandbox/shared/pty.mjs +335 -0
- package/dist/sandbox/shared/pty.mjs.map +1 -0
- package/dist/sandbox/shared/runAs.d.ts +46 -0
- package/dist/sandbox/shared/runAs.js +149 -0
- package/dist/sandbox/shared/runAs.js.map +1 -0
- package/dist/sandbox/shared/runAs.mjs +141 -0
- package/dist/sandbox/shared/runAs.mjs.map +1 -0
- package/dist/sandbox/shared/session.d.ts +16 -0
- package/dist/sandbox/shared/session.js +138 -0
- package/dist/sandbox/shared/session.js.map +1 -0
- package/dist/sandbox/shared/session.mjs +128 -0
- package/dist/sandbox/shared/session.mjs.map +1 -0
- package/dist/sandbox/shared/sessionBase.d.ts +90 -0
- package/dist/sandbox/shared/sessionBase.js +446 -0
- package/dist/sandbox/shared/sessionBase.js.map +1 -0
- package/dist/sandbox/shared/sessionBase.mjs +442 -0
- package/dist/sandbox/shared/sessionBase.mjs.map +1 -0
- package/dist/sandbox/shared/sessionState.d.ts +7 -0
- package/dist/sandbox/shared/sessionState.js +35 -0
- package/dist/sandbox/shared/sessionState.js.map +1 -0
- package/dist/sandbox/shared/sessionState.mjs +31 -0
- package/dist/sandbox/shared/sessionState.mjs.map +1 -0
- package/dist/sandbox/shared/snapshots.d.ts +9 -0
- package/dist/sandbox/shared/snapshots.js +62 -0
- package/dist/sandbox/shared/snapshots.js.map +1 -0
- package/dist/sandbox/shared/snapshots.mjs +57 -0
- package/dist/sandbox/shared/snapshots.mjs.map +1 -0
- package/dist/sandbox/shared/typeGuards.d.ts +10 -0
- package/dist/sandbox/shared/typeGuards.js +50 -0
- package/dist/sandbox/shared/typeGuards.js.map +1 -0
- package/dist/sandbox/shared/typeGuards.mjs +38 -0
- package/dist/sandbox/shared/typeGuards.mjs.map +1 -0
- package/dist/sandbox/shared/types.d.ts +24 -0
- package/dist/sandbox/shared/types.js +3 -0
- package/dist/sandbox/shared/types.js.map +1 -0
- package/dist/sandbox/shared/types.mjs +2 -0
- package/dist/sandbox/shared/types.mjs.map +1 -0
- package/dist/sandbox/vercel/index.d.ts +1 -0
- package/dist/sandbox/vercel/index.js +18 -0
- package/dist/sandbox/vercel/index.js.map +1 -0
- package/dist/sandbox/vercel/index.mjs +2 -0
- package/dist/sandbox/vercel/index.mjs.map +1 -0
- package/dist/sandbox/vercel/sandbox.d.ts +135 -0
- package/dist/sandbox/vercel/sandbox.js +1001 -0
- package/dist/sandbox/vercel/sandbox.js.map +1 -0
- package/dist/sandbox/vercel/sandbox.mjs +963 -0
- package/dist/sandbox/vercel/sandbox.mjs.map +1 -0
- package/package.json +108 -4
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serializeManifestRecord = exports.mergeManifestEntryDelta = exports.mergeManifestDelta = exports.deserializeManifest = void 0;
|
|
4
|
+
exports.cloneManifestWithRoot = cloneManifestWithRoot;
|
|
5
|
+
exports.cloneManifestWithoutMountEntries = cloneManifestWithoutMountEntries;
|
|
6
|
+
exports.manifestContainsLocalSource = manifestContainsLocalSource;
|
|
7
|
+
exports.entryContainsLocalSource = entryContainsLocalSource;
|
|
8
|
+
exports.applyInlineManifestEntryToState = applyInlineManifestEntryToState;
|
|
9
|
+
exports.applyInlineManifestToState = applyInlineManifestToState;
|
|
10
|
+
exports.materializeInlineManifest = materializeInlineManifest;
|
|
11
|
+
exports.applyMaterializedManifestEntryToState = applyMaterializedManifestEntryToState;
|
|
12
|
+
exports.applyMaterializedManifestToState = applyMaterializedManifestToState;
|
|
13
|
+
exports.materializeManifestEntries = materializeManifestEntries;
|
|
14
|
+
exports.runLimited = runLimited;
|
|
15
|
+
exports.resolveManifestEntryConcurrency = resolveManifestEntryConcurrency;
|
|
16
|
+
exports.resolveLocalDirFileConcurrency = resolveLocalDirFileConcurrency;
|
|
17
|
+
exports.materializeInlineManifestEntry = materializeInlineManifestEntry;
|
|
18
|
+
exports.resolveMaterializedChildPath = resolveMaterializedChildPath;
|
|
19
|
+
const agents_core_1 = require("@openai/agents-core");
|
|
20
|
+
const sandbox_1 = require("@openai/agents-core/sandbox");
|
|
21
|
+
const internal_1 = require("@openai/agents-core/sandbox/internal");
|
|
22
|
+
Object.defineProperty(exports, "deserializeManifest", { enumerable: true, get: function () { return internal_1.deserializeManifest; } });
|
|
23
|
+
Object.defineProperty(exports, "mergeManifestDelta", { enumerable: true, get: function () { return internal_1.mergeManifestDelta; } });
|
|
24
|
+
Object.defineProperty(exports, "mergeManifestEntryDelta", { enumerable: true, get: function () { return internal_1.mergeManifestEntryDelta; } });
|
|
25
|
+
Object.defineProperty(exports, "serializeManifestRecord", { enumerable: true, get: function () { return internal_1.serializeManifestRecord; } });
|
|
26
|
+
const environment_1 = require("./environment.js");
|
|
27
|
+
const paths_1 = require("./paths.js");
|
|
28
|
+
function cloneManifestWithRoot(manifest, root) {
|
|
29
|
+
return cloneManifestWithOverrides(manifest, {
|
|
30
|
+
root,
|
|
31
|
+
entries: rebaseManifestEntryPathsForRoot(manifest.entries, manifest.root, root),
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
function cloneManifestWithoutMountEntries(manifest) {
|
|
35
|
+
return cloneManifestWithOverrides(manifest, {
|
|
36
|
+
entries: removeMountEntries(manifest.entries),
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function manifestContainsLocalSource(manifest) {
|
|
40
|
+
for (const { entry } of manifest.iterEntries()) {
|
|
41
|
+
if (isLocalSourceEntry(entry)) {
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
function entryContainsLocalSource(entry) {
|
|
48
|
+
if (isLocalSourceEntry(entry)) {
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
if (entry.type !== 'dir' || !entry.children) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
return Object.values(entry.children).some((childEntry) => entryContainsLocalSource(childEntry));
|
|
55
|
+
}
|
|
56
|
+
function isLocalSourceEntry(entry) {
|
|
57
|
+
return (entry.type === 'local_file' ||
|
|
58
|
+
entry.type === 'local_dir' ||
|
|
59
|
+
entry.type === 'git_repo');
|
|
60
|
+
}
|
|
61
|
+
function cloneManifestWithOverrides(manifest, overrides = {}) {
|
|
62
|
+
return new sandbox_1.Manifest({
|
|
63
|
+
version: manifest.version,
|
|
64
|
+
root: overrides.root ?? manifest.root,
|
|
65
|
+
entries: structuredClone(overrides.entries ?? manifest.entries),
|
|
66
|
+
environment: Object.fromEntries(Object.entries(manifest.environment).map(([key, value]) => [
|
|
67
|
+
key,
|
|
68
|
+
value.init(),
|
|
69
|
+
])),
|
|
70
|
+
users: structuredClone(manifest.users),
|
|
71
|
+
groups: structuredClone(manifest.groups),
|
|
72
|
+
extraPathGrants: structuredClone(manifest.extraPathGrants),
|
|
73
|
+
remoteMountCommandAllowlist: [...manifest.remoteMountCommandAllowlist],
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
function rebaseManifestEntryPathsForRoot(entries, fromRoot, toRoot) {
|
|
77
|
+
return Object.fromEntries(Object.entries(entries).map(([path, entry]) => [
|
|
78
|
+
path,
|
|
79
|
+
rebaseManifestEntryForRoot(entry, fromRoot, toRoot),
|
|
80
|
+
]));
|
|
81
|
+
}
|
|
82
|
+
function rebaseManifestEntryForRoot(entry, fromRoot, toRoot) {
|
|
83
|
+
const cloned = structuredClone(entry);
|
|
84
|
+
if ((0, sandbox_1.isMount)(cloned) && cloned.mountPath?.startsWith('/')) {
|
|
85
|
+
cloned.mountPath = rebaseAbsolutePathWithinRoot(cloned.mountPath, fromRoot, toRoot);
|
|
86
|
+
}
|
|
87
|
+
if (cloned.type === 'dir' && cloned.children) {
|
|
88
|
+
cloned.children = rebaseManifestEntryPathsForRoot(cloned.children, fromRoot, toRoot);
|
|
89
|
+
}
|
|
90
|
+
return cloned;
|
|
91
|
+
}
|
|
92
|
+
function rebaseAbsolutePathWithinRoot(path, fromRoot, toRoot) {
|
|
93
|
+
const relativePath = (0, internal_1.relativePosixPathWithinRoot)((0, internal_1.normalizePosixPath)(fromRoot), (0, internal_1.normalizePosixPath)(path));
|
|
94
|
+
if (relativePath === null) {
|
|
95
|
+
return path;
|
|
96
|
+
}
|
|
97
|
+
if (!relativePath) {
|
|
98
|
+
return (0, internal_1.normalizePosixPath)(toRoot);
|
|
99
|
+
}
|
|
100
|
+
const normalizedToRoot = (0, internal_1.normalizePosixPath)(toRoot);
|
|
101
|
+
if (normalizedToRoot === '/') {
|
|
102
|
+
return `/${relativePath}`;
|
|
103
|
+
}
|
|
104
|
+
return `${normalizedToRoot}/${relativePath}`;
|
|
105
|
+
}
|
|
106
|
+
async function applyInlineManifestEntryToState(state, path, entry, providerLabel, writer, resolvePath, options = {}) {
|
|
107
|
+
await applyMaterializedManifestEntryToState(state, path, entry, providerLabel, writer, resolvePath, materializeInlineManifestEntry, options);
|
|
108
|
+
}
|
|
109
|
+
async function applyInlineManifestToState(state, manifest, providerLabel, writer, resolvePath, options = {}) {
|
|
110
|
+
await applyMaterializedManifestToState(state, manifest, providerLabel, writer, resolvePath, materializeInlineManifestEntry, options);
|
|
111
|
+
}
|
|
112
|
+
async function materializeInlineManifest(writer, manifest, providerLabel, resolvePath, options = {}) {
|
|
113
|
+
await materializeManifestEntries(writer, manifest, providerLabel, resolvePath, materializeInlineManifestEntry, options);
|
|
114
|
+
}
|
|
115
|
+
async function applyMaterializedManifestEntryToState(state, path, entry, providerLabel, writer, resolvePath, materializeEntry, options) {
|
|
116
|
+
const logicalPath = (0, paths_1.resolveSandboxRelativePath)(state.manifest.root, path);
|
|
117
|
+
await materializeManifestEntries(writer, new sandbox_1.Manifest({
|
|
118
|
+
root: state.manifest.root,
|
|
119
|
+
entries: {
|
|
120
|
+
[logicalPath]: entry,
|
|
121
|
+
},
|
|
122
|
+
}), providerLabel, resolvePath, materializeEntry, options);
|
|
123
|
+
state.manifest = (0, internal_1.mergeManifestEntryDelta)(state.manifest, logicalPath, entry);
|
|
124
|
+
}
|
|
125
|
+
async function applyMaterializedManifestToState(state, manifest, providerLabel, writer, resolvePath, materializeEntry, options) {
|
|
126
|
+
const previousManifest = state.manifest;
|
|
127
|
+
await materializeManifestEntries(writer, manifest, providerLabel, resolvePath, materializeEntry, options);
|
|
128
|
+
state.manifest = (0, internal_1.mergeManifestDelta)(previousManifest, manifest);
|
|
129
|
+
state.environment = await (0, environment_1.mergeMaterializedEnvironment)(previousManifest, state.manifest, state.environment);
|
|
130
|
+
}
|
|
131
|
+
async function materializeManifestEntries(writer, manifest, providerLabel, resolvePath, materializeEntry, options) {
|
|
132
|
+
const deferredOptions = {
|
|
133
|
+
...options,
|
|
134
|
+
skipMountEntries: true,
|
|
135
|
+
};
|
|
136
|
+
const entries = Object.entries(manifest.entries).filter(([, entry]) => !(0, sandbox_1.isMount)(entry));
|
|
137
|
+
await runLimited(entries, resolveManifestEntryConcurrency(options.concurrencyLimits), async ([path, entry]) => {
|
|
138
|
+
const logicalPath = (0, sandbox_1.normalizeRelativePath)(path);
|
|
139
|
+
const absolutePath = await resolvePath(logicalPath, { forWrite: true });
|
|
140
|
+
const entryOptions = {
|
|
141
|
+
...deferredOptions,
|
|
142
|
+
resolvePath,
|
|
143
|
+
logicalPath,
|
|
144
|
+
};
|
|
145
|
+
await materializeEntry(writer, absolutePath, entry, providerLabel, entryOptions);
|
|
146
|
+
});
|
|
147
|
+
for (const { mountPath, entry, } of manifest.mountTargetsForMaterialization()) {
|
|
148
|
+
const logicalPath = (0, paths_1.resolveSandboxRelativePath)(manifest.root, mountPath);
|
|
149
|
+
const absolutePath = await resolvePath(logicalPath, { forWrite: true });
|
|
150
|
+
await materializeEntry(writer, absolutePath, entry, providerLabel, options);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
async function runLimited(items, limit, fn) {
|
|
154
|
+
if (items.length === 0) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
let nextIndex = 0;
|
|
158
|
+
const workers = Array.from({ length: Math.min(limit, items.length) }, async () => {
|
|
159
|
+
while (nextIndex < items.length) {
|
|
160
|
+
const item = items[nextIndex++];
|
|
161
|
+
await fn(item);
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
await Promise.all(workers);
|
|
165
|
+
}
|
|
166
|
+
function resolveManifestEntryConcurrency(limits) {
|
|
167
|
+
return normalizeConcurrencyLimit(limits?.manifestEntries, 4);
|
|
168
|
+
}
|
|
169
|
+
function resolveLocalDirFileConcurrency(limits) {
|
|
170
|
+
return normalizeConcurrencyLimit(limits?.localDirFiles, 4);
|
|
171
|
+
}
|
|
172
|
+
function normalizeConcurrencyLimit(value, fallback) {
|
|
173
|
+
if (value === undefined) {
|
|
174
|
+
return fallback;
|
|
175
|
+
}
|
|
176
|
+
if (!Number.isFinite(value) || value < 1) {
|
|
177
|
+
throw new agents_core_1.UserError('Sandbox concurrency limits must be positive numbers.');
|
|
178
|
+
}
|
|
179
|
+
return Math.floor(value);
|
|
180
|
+
}
|
|
181
|
+
async function materializeInlineManifestEntry(writer, absolutePath, entry, providerLabel, options = {}) {
|
|
182
|
+
if ((0, sandbox_1.isMount)(entry)) {
|
|
183
|
+
if (options.skipMountEntries) {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
if (options.materializeMount) {
|
|
187
|
+
await options.materializeMount(absolutePath, entry);
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
throw new sandbox_1.SandboxUnsupportedFeatureError(`${providerLabel} does not support mount entries yet: ${absolutePath}`);
|
|
191
|
+
}
|
|
192
|
+
switch (entry.type) {
|
|
193
|
+
case 'dir':
|
|
194
|
+
await writer.mkdir(absolutePath);
|
|
195
|
+
if (entry.children) {
|
|
196
|
+
for (const [childPath, childEntry] of Object.entries(entry.children)) {
|
|
197
|
+
const child = await resolveMaterializedChildPath(absolutePath, childPath, options);
|
|
198
|
+
await materializeInlineManifestEntry(writer, child.absolutePath, childEntry, providerLabel, {
|
|
199
|
+
...options,
|
|
200
|
+
logicalPath: child.logicalPath,
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
break;
|
|
205
|
+
case 'file':
|
|
206
|
+
await writer.writeFile(absolutePath, entry.content);
|
|
207
|
+
break;
|
|
208
|
+
case 'local_file':
|
|
209
|
+
case 'local_dir':
|
|
210
|
+
case 'git_repo':
|
|
211
|
+
// This helper can run in Worker/browser-like runtimes where host filesystem
|
|
212
|
+
// access is unavailable; Node adapters use shared/localSources for these entries.
|
|
213
|
+
throw new agents_core_1.UserError(`${providerLabel} cannot materialize ${entry.type} entries in this runtime. Use inline file or dir entries, or materialize local sources from a Node-compatible runtime.`);
|
|
214
|
+
default:
|
|
215
|
+
throw new agents_core_1.UserError(`Unsupported sandbox entry type: ${entry.type}`);
|
|
216
|
+
}
|
|
217
|
+
await options.applyMetadata?.(absolutePath, entry);
|
|
218
|
+
}
|
|
219
|
+
async function resolveMaterializedChildPath(parentAbsolutePath, childPath, options) {
|
|
220
|
+
const normalizedChildPath = (0, sandbox_1.normalizeRelativePath)(childPath);
|
|
221
|
+
const logicalPath = options.logicalPath !== undefined
|
|
222
|
+
? options.logicalPath
|
|
223
|
+
? `${options.logicalPath}/${normalizedChildPath}`
|
|
224
|
+
: normalizedChildPath
|
|
225
|
+
: undefined;
|
|
226
|
+
if (options.resolvePath && logicalPath !== undefined) {
|
|
227
|
+
return {
|
|
228
|
+
absolutePath: await options.resolvePath(logicalPath, { forWrite: true }),
|
|
229
|
+
logicalPath,
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
return {
|
|
233
|
+
absolutePath: `${parentAbsolutePath}/${normalizedChildPath}`,
|
|
234
|
+
logicalPath,
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
function removeMountEntries(entries) {
|
|
238
|
+
const result = {};
|
|
239
|
+
for (const [path, entry] of Object.entries(entries)) {
|
|
240
|
+
if ((0, sandbox_1.isMount)(entry)) {
|
|
241
|
+
continue;
|
|
242
|
+
}
|
|
243
|
+
if (entry.type === 'dir' && entry.children) {
|
|
244
|
+
result[path] = {
|
|
245
|
+
...structuredClone(entry),
|
|
246
|
+
children: removeMountEntries(entry.children),
|
|
247
|
+
};
|
|
248
|
+
continue;
|
|
249
|
+
}
|
|
250
|
+
result[path] = structuredClone(entry);
|
|
251
|
+
}
|
|
252
|
+
return result;
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/sandbox/shared/manifest.ts"],"names":[],"mappings":";;;AA+BA,sDAYC;AAED,4EAIC;AAED,kEAOC;AAED,4DAUC;AA4HD,0EAmBC;AAED,gEAiBC;AAED,8DAeC;AAED,sFA2BC;AAED,4EAwBC;AAED,gEA+CC;AAED,gCAoBC;AAED,0EAIC;AAED,wEAIC;AAeD,wEA6DC;AAED,oEAwBC;AAzeD,qDAAgD;AAChD,yDASqC;AACrC,mEAO8C;AAO5C,oGAbA,8BAAmB,OAaA;AACnB,mGAbA,6BAAkB,OAaA;AAClB,wGAbA,kCAAuB,OAaA;AACvB,wGAXA,kCAAuB,OAWA;AATzB,kDAA6D;AAC7D,sCAAqD;AAWrD,SAAgB,qBAAqB,CACnC,QAAkB,EAClB,IAAY;IAEZ,OAAO,0BAA0B,CAAC,QAAQ,EAAE;QAC1C,IAAI;QACJ,OAAO,EAAE,+BAA+B,CACtC,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,IAAI,EACb,IAAI,CACL;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,gCAAgC,CAAC,QAAkB;IACjE,OAAO,0BAA0B,CAAC,QAAQ,EAAE;QAC1C,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC;KAC9C,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,2BAA2B,CAAC,QAAkB;IAC5D,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;QAC/C,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,wBAAwB,CAAC,KAAY;IACnD,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CACvD,wBAAwB,CAAC,UAAU,CAAC,CACrC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAY;IACtC,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,YAAY;QAC3B,KAAK,CAAC,IAAI,KAAK,WAAW;QAC1B,KAAK,CAAC,IAAI,KAAK,UAAU,CAC1B,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CACjC,QAAkB,EAClB,YAGI,EAAE;IAEN,OAAO,IAAI,kBAAQ,CAAC;QAClB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI;QACrC,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC;QAC/D,WAAW,EAAE,MAAM,CAAC,WAAW,CAC7B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YACzD,GAAG;YACH,KAAK,CAAC,IAAI,EAAE;SACb,CAAC,CACH;QACD,KAAK,EAAE,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC;QACxC,eAAe,EAAE,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC1D,2BAA2B,EAAE,CAAC,GAAG,QAAQ,CAAC,2BAA2B,CAAC;KACvE,CAAC,CAAC;AACL,CAAC;AAED,SAAS,+BAA+B,CACtC,OAA8B,EAC9B,QAAgB,EAChB,MAAc;IAEd,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QAC7C,IAAI;QACJ,0BAA0B,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;KACpD,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CACjC,KAAY,EACZ,QAAgB,EAChB,MAAc;IAEd,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,IAAA,iBAAO,EAAC,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzD,MAAM,CAAC,SAAS,GAAG,4BAA4B,CAC7C,MAAM,CAAC,SAAS,EAChB,QAAQ,EACR,MAAM,CACP,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC7C,MAAM,CAAC,QAAQ,GAAG,+BAA+B,CAC/C,MAAM,CAAC,QAAQ,EACf,QAAQ,EACR,MAAM,CACP,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,4BAA4B,CACnC,IAAY,EACZ,QAAgB,EAChB,MAAc;IAEd,MAAM,YAAY,GAAG,IAAA,sCAA2B,EAC9C,IAAA,6BAAkB,EAAC,QAAQ,CAAC,EAC5B,IAAA,6BAAkB,EAAC,IAAI,CAAC,CACzB,CAAC;IACF,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAA,6BAAkB,EAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,gBAAgB,GAAG,IAAA,6BAAkB,EAAC,MAAM,CAAC,CAAC;IACpD,IAAI,gBAAgB,KAAK,GAAG,EAAE,CAAC;QAC7B,OAAO,IAAI,YAAY,EAAE,CAAC;IAC5B,CAAC;IACD,OAAO,GAAG,gBAAgB,IAAI,YAAY,EAAE,CAAC;AAC/C,CAAC;AAkCM,KAAK,UAAU,+BAA+B,CACnD,KAAqC,EACrC,IAAY,EACZ,KAAY,EACZ,aAAqB,EACrB,MAA4B,EAC5B,WAAsC,EACtC,UAA0C,EAAE;IAE5C,MAAM,qCAAqC,CACzC,KAAK,EACL,IAAI,EACJ,KAAK,EACL,aAAa,EACb,MAAM,EACN,WAAW,EACX,8BAA8B,EAC9B,OAAO,CACR,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,0BAA0B,CAC9C,KAAgC,EAChC,QAAkB,EAClB,aAAqB,EACrB,MAA4B,EAC5B,WAAsC,EACtC,UAA0C,EAAE;IAE5C,MAAM,gCAAgC,CACpC,KAAK,EACL,QAAQ,EACR,aAAa,EACb,MAAM,EACN,WAAW,EACX,8BAA8B,EAC9B,OAAO,CACR,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,yBAAyB,CAC7C,MAA4B,EAC5B,QAAkB,EAClB,aAAqB,EACrB,WAAsC,EACtC,UAA0C,EAAE;IAE5C,MAAM,0BAA0B,CAC9B,MAAM,EACN,QAAQ,EACR,aAAa,EACb,WAAW,EACX,8BAA8B,EAC9B,OAAO,CACR,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,qCAAqC,CAGzD,KAAqC,EACrC,IAAY,EACZ,KAAY,EACZ,aAAqB,EACrB,MAA4B,EAC5B,WAAsC,EACtC,gBAAqD,EACrD,OAAiB;IAEjB,MAAM,WAAW,GAAG,IAAA,kCAA0B,EAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1E,MAAM,0BAA0B,CAC9B,MAAM,EACN,IAAI,kBAAQ,CAAC;QACX,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;QACzB,OAAO,EAAE;YACP,CAAC,WAAW,CAAC,EAAE,KAAK;SACrB;KACF,CAAC,EACF,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,OAAO,CACR,CAAC;IACF,KAAK,CAAC,QAAQ,GAAG,IAAA,kCAAuB,EAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AAC/E,CAAC;AAEM,KAAK,UAAU,gCAAgC,CACpD,KAAgC,EAChC,QAAkB,EAClB,aAAqB,EACrB,MAA4B,EAC5B,WAAsC,EACtC,gBAAqD,EACrD,OAAiB;IAEjB,MAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC;IACxC,MAAM,0BAA0B,CAC9B,MAAM,EACN,QAAQ,EACR,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,OAAO,CACR,CAAC;IACF,KAAK,CAAC,QAAQ,GAAG,IAAA,6BAAkB,EAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IAChE,KAAK,CAAC,WAAW,GAAG,MAAM,IAAA,0CAA4B,EACpD,gBAAgB,EAChB,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,WAAW,CAClB,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,0BAA0B,CAC9C,MAA4B,EAC5B,QAAkB,EAClB,aAAqB,EACrB,WAAsC,EACtC,gBAAqD,EACrD,OAAiB;IAEjB,MAAM,eAAe,GAAG;QACtB,GAAG,OAAO;QACV,gBAAgB,EAAE,IAAI;KACX,CAAC;IAEd,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CACrD,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,iBAAO,EAAC,KAAK,CAAC,CAC/B,CAAC;IACF,MAAM,UAAU,CACd,OAAO,EACP,+BAA+B,CAC5B,OAA0C,CAAC,iBAAiB,CAC9D,EACD,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;QACtB,MAAM,WAAW,GAAG,IAAA,+BAAqB,EAAC,IAAI,CAAC,CAAC;QAChD,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,MAAM,YAAY,GAAG;YACnB,GAAG,eAAe;YAClB,WAAW;YACX,WAAW;SACZ,CAAC;QACF,MAAM,gBAAgB,CACpB,MAAM,EACN,YAAY,EACZ,KAAK,EACL,aAAa,EACb,YAAwB,CACzB,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,KAAK,MAAM,EACT,SAAS,EACT,KAAK,GACN,IAAI,QAAQ,CAAC,8BAA8B,EAAE,EAAE,CAAC;QAC/C,MAAM,WAAW,GAAG,IAAA,kCAA0B,EAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACzE,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,MAAM,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,UAAU,CAC9B,KAAU,EACV,KAAa,EACb,EAA8B;IAE9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CACxB,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EACzC,KAAK,IAAI,EAAE;QACT,OAAO,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YAChC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CACF,CAAC;IACF,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED,SAAgB,+BAA+B,CAC7C,MAAiC;IAEjC,OAAO,yBAAyB,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,SAAgB,8BAA8B,CAC5C,MAAiC;IAEjC,OAAO,yBAAyB,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,yBAAyB,CAChC,KAAyB,EACzB,QAAgB;IAEhB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,uBAAS,CAAC,sDAAsD,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAEM,KAAK,UAAU,8BAA8B,CAClD,MAA4B,EAC5B,YAAoB,EACpB,KAAY,EACZ,aAAqB,EACrB,UAA0C,EAAE;IAE5C,IAAI,IAAA,iBAAO,EAAC,KAAK,CAAC,EAAE,CAAC;QACnB,IAAK,OAA+C,CAAC,gBAAgB,EAAE,CAAC;YACtE,OAAO;QACT,CAAC;QACD,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC7B,MAAM,OAAO,CAAC,gBAAgB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QACD,MAAM,IAAI,wCAA8B,CACtC,GAAG,aAAa,wCAAwC,YAAY,EAAE,CACvE,CAAC;IACJ,CAAC;IAED,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,KAAK;YACR,MAAM,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACjC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACrE,MAAM,KAAK,GAAG,MAAM,4BAA4B,CAC9C,YAAY,EACZ,SAAS,EACT,OAAO,CACR,CAAC;oBACF,MAAM,8BAA8B,CAClC,MAAM,EACN,KAAK,CAAC,YAAY,EAClB,UAAU,EACV,aAAa,EACb;wBACE,GAAG,OAAO;wBACV,WAAW,EAAE,KAAK,CAAC,WAAW;qBAC/B,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,MAAM;QACR,KAAK,MAAM;YACT,MAAM,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACpD,MAAM;QACR,KAAK,YAAY,CAAC;QAClB,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU;YACb,4EAA4E;YAC5E,kFAAkF;YAClF,MAAM,IAAI,uBAAS,CACjB,GAAG,aAAa,uBAAuB,KAAK,CAAC,IAAI,wHAAwH,CAC1K,CAAC;QACJ;YACE,MAAM,IAAI,uBAAS,CACjB,mCAAoC,KAAe,CAAC,IAAI,EAAE,CAC3D,CAAC;IACN,CAAC;IAED,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AACrD,CAAC;AAEM,KAAK,UAAU,4BAA4B,CAChD,kBAA0B,EAC1B,SAAiB,EACjB,OAAuC;IAEvC,MAAM,mBAAmB,GAAG,IAAA,+BAAqB,EAAC,SAAS,CAAC,CAAC;IAC7D,MAAM,WAAW,GACf,OAAO,CAAC,WAAW,KAAK,SAAS;QAC/B,CAAC,CAAC,OAAO,CAAC,WAAW;YACnB,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,IAAI,mBAAmB,EAAE;YACjD,CAAC,CAAC,mBAAmB;QACvB,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,OAAO,CAAC,WAAW,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QACrD,OAAO;YACL,YAAY,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACxE,WAAW;SACZ,CAAC;IACJ,CAAC;IAED,OAAO;QACL,YAAY,EAAE,GAAG,kBAAkB,IAAI,mBAAmB,EAAE;QAC5D,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,OAA8B;IAE9B,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,IAAI,IAAA,iBAAO,EAAC,KAAK,CAAC,EAAE,CAAC;YACnB,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,GAAG;gBACb,GAAG,eAAe,CAAC,KAAK,CAAC;gBACzB,QAAQ,EAAE,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC;aAC7C,CAAC;YACF,SAAS;QACX,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import { UserError } from '@openai/agents-core';
|
|
2
|
+
import { isMount, Manifest, normalizeRelativePath, SandboxUnsupportedFeatureError, } from '@openai/agents-core/sandbox';
|
|
3
|
+
import { deserializeManifest, mergeManifestDelta, mergeManifestEntryDelta, normalizePosixPath, relativePosixPathWithinRoot, serializeManifestRecord, } from '@openai/agents-core/sandbox/internal';
|
|
4
|
+
import { mergeMaterializedEnvironment } from "./environment.mjs";
|
|
5
|
+
import { resolveSandboxRelativePath } from "./paths.mjs";
|
|
6
|
+
export { deserializeManifest, mergeManifestDelta, mergeManifestEntryDelta, serializeManifestRecord, };
|
|
7
|
+
export function cloneManifestWithRoot(manifest, root) {
|
|
8
|
+
return cloneManifestWithOverrides(manifest, {
|
|
9
|
+
root,
|
|
10
|
+
entries: rebaseManifestEntryPathsForRoot(manifest.entries, manifest.root, root),
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
export function cloneManifestWithoutMountEntries(manifest) {
|
|
14
|
+
return cloneManifestWithOverrides(manifest, {
|
|
15
|
+
entries: removeMountEntries(manifest.entries),
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
export function manifestContainsLocalSource(manifest) {
|
|
19
|
+
for (const { entry } of manifest.iterEntries()) {
|
|
20
|
+
if (isLocalSourceEntry(entry)) {
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
export function entryContainsLocalSource(entry) {
|
|
27
|
+
if (isLocalSourceEntry(entry)) {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
if (entry.type !== 'dir' || !entry.children) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
return Object.values(entry.children).some((childEntry) => entryContainsLocalSource(childEntry));
|
|
34
|
+
}
|
|
35
|
+
function isLocalSourceEntry(entry) {
|
|
36
|
+
return (entry.type === 'local_file' ||
|
|
37
|
+
entry.type === 'local_dir' ||
|
|
38
|
+
entry.type === 'git_repo');
|
|
39
|
+
}
|
|
40
|
+
function cloneManifestWithOverrides(manifest, overrides = {}) {
|
|
41
|
+
return new Manifest({
|
|
42
|
+
version: manifest.version,
|
|
43
|
+
root: overrides.root ?? manifest.root,
|
|
44
|
+
entries: structuredClone(overrides.entries ?? manifest.entries),
|
|
45
|
+
environment: Object.fromEntries(Object.entries(manifest.environment).map(([key, value]) => [
|
|
46
|
+
key,
|
|
47
|
+
value.init(),
|
|
48
|
+
])),
|
|
49
|
+
users: structuredClone(manifest.users),
|
|
50
|
+
groups: structuredClone(manifest.groups),
|
|
51
|
+
extraPathGrants: structuredClone(manifest.extraPathGrants),
|
|
52
|
+
remoteMountCommandAllowlist: [...manifest.remoteMountCommandAllowlist],
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
function rebaseManifestEntryPathsForRoot(entries, fromRoot, toRoot) {
|
|
56
|
+
return Object.fromEntries(Object.entries(entries).map(([path, entry]) => [
|
|
57
|
+
path,
|
|
58
|
+
rebaseManifestEntryForRoot(entry, fromRoot, toRoot),
|
|
59
|
+
]));
|
|
60
|
+
}
|
|
61
|
+
function rebaseManifestEntryForRoot(entry, fromRoot, toRoot) {
|
|
62
|
+
const cloned = structuredClone(entry);
|
|
63
|
+
if (isMount(cloned) && cloned.mountPath?.startsWith('/')) {
|
|
64
|
+
cloned.mountPath = rebaseAbsolutePathWithinRoot(cloned.mountPath, fromRoot, toRoot);
|
|
65
|
+
}
|
|
66
|
+
if (cloned.type === 'dir' && cloned.children) {
|
|
67
|
+
cloned.children = rebaseManifestEntryPathsForRoot(cloned.children, fromRoot, toRoot);
|
|
68
|
+
}
|
|
69
|
+
return cloned;
|
|
70
|
+
}
|
|
71
|
+
function rebaseAbsolutePathWithinRoot(path, fromRoot, toRoot) {
|
|
72
|
+
const relativePath = relativePosixPathWithinRoot(normalizePosixPath(fromRoot), normalizePosixPath(path));
|
|
73
|
+
if (relativePath === null) {
|
|
74
|
+
return path;
|
|
75
|
+
}
|
|
76
|
+
if (!relativePath) {
|
|
77
|
+
return normalizePosixPath(toRoot);
|
|
78
|
+
}
|
|
79
|
+
const normalizedToRoot = normalizePosixPath(toRoot);
|
|
80
|
+
if (normalizedToRoot === '/') {
|
|
81
|
+
return `/${relativePath}`;
|
|
82
|
+
}
|
|
83
|
+
return `${normalizedToRoot}/${relativePath}`;
|
|
84
|
+
}
|
|
85
|
+
export async function applyInlineManifestEntryToState(state, path, entry, providerLabel, writer, resolvePath, options = {}) {
|
|
86
|
+
await applyMaterializedManifestEntryToState(state, path, entry, providerLabel, writer, resolvePath, materializeInlineManifestEntry, options);
|
|
87
|
+
}
|
|
88
|
+
export async function applyInlineManifestToState(state, manifest, providerLabel, writer, resolvePath, options = {}) {
|
|
89
|
+
await applyMaterializedManifestToState(state, manifest, providerLabel, writer, resolvePath, materializeInlineManifestEntry, options);
|
|
90
|
+
}
|
|
91
|
+
export async function materializeInlineManifest(writer, manifest, providerLabel, resolvePath, options = {}) {
|
|
92
|
+
await materializeManifestEntries(writer, manifest, providerLabel, resolvePath, materializeInlineManifestEntry, options);
|
|
93
|
+
}
|
|
94
|
+
export async function applyMaterializedManifestEntryToState(state, path, entry, providerLabel, writer, resolvePath, materializeEntry, options) {
|
|
95
|
+
const logicalPath = resolveSandboxRelativePath(state.manifest.root, path);
|
|
96
|
+
await materializeManifestEntries(writer, new Manifest({
|
|
97
|
+
root: state.manifest.root,
|
|
98
|
+
entries: {
|
|
99
|
+
[logicalPath]: entry,
|
|
100
|
+
},
|
|
101
|
+
}), providerLabel, resolvePath, materializeEntry, options);
|
|
102
|
+
state.manifest = mergeManifestEntryDelta(state.manifest, logicalPath, entry);
|
|
103
|
+
}
|
|
104
|
+
export async function applyMaterializedManifestToState(state, manifest, providerLabel, writer, resolvePath, materializeEntry, options) {
|
|
105
|
+
const previousManifest = state.manifest;
|
|
106
|
+
await materializeManifestEntries(writer, manifest, providerLabel, resolvePath, materializeEntry, options);
|
|
107
|
+
state.manifest = mergeManifestDelta(previousManifest, manifest);
|
|
108
|
+
state.environment = await mergeMaterializedEnvironment(previousManifest, state.manifest, state.environment);
|
|
109
|
+
}
|
|
110
|
+
export async function materializeManifestEntries(writer, manifest, providerLabel, resolvePath, materializeEntry, options) {
|
|
111
|
+
const deferredOptions = {
|
|
112
|
+
...options,
|
|
113
|
+
skipMountEntries: true,
|
|
114
|
+
};
|
|
115
|
+
const entries = Object.entries(manifest.entries).filter(([, entry]) => !isMount(entry));
|
|
116
|
+
await runLimited(entries, resolveManifestEntryConcurrency(options.concurrencyLimits), async ([path, entry]) => {
|
|
117
|
+
const logicalPath = normalizeRelativePath(path);
|
|
118
|
+
const absolutePath = await resolvePath(logicalPath, { forWrite: true });
|
|
119
|
+
const entryOptions = {
|
|
120
|
+
...deferredOptions,
|
|
121
|
+
resolvePath,
|
|
122
|
+
logicalPath,
|
|
123
|
+
};
|
|
124
|
+
await materializeEntry(writer, absolutePath, entry, providerLabel, entryOptions);
|
|
125
|
+
});
|
|
126
|
+
for (const { mountPath, entry, } of manifest.mountTargetsForMaterialization()) {
|
|
127
|
+
const logicalPath = resolveSandboxRelativePath(manifest.root, mountPath);
|
|
128
|
+
const absolutePath = await resolvePath(logicalPath, { forWrite: true });
|
|
129
|
+
await materializeEntry(writer, absolutePath, entry, providerLabel, options);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
export async function runLimited(items, limit, fn) {
|
|
133
|
+
if (items.length === 0) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
let nextIndex = 0;
|
|
137
|
+
const workers = Array.from({ length: Math.min(limit, items.length) }, async () => {
|
|
138
|
+
while (nextIndex < items.length) {
|
|
139
|
+
const item = items[nextIndex++];
|
|
140
|
+
await fn(item);
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
await Promise.all(workers);
|
|
144
|
+
}
|
|
145
|
+
export function resolveManifestEntryConcurrency(limits) {
|
|
146
|
+
return normalizeConcurrencyLimit(limits?.manifestEntries, 4);
|
|
147
|
+
}
|
|
148
|
+
export function resolveLocalDirFileConcurrency(limits) {
|
|
149
|
+
return normalizeConcurrencyLimit(limits?.localDirFiles, 4);
|
|
150
|
+
}
|
|
151
|
+
function normalizeConcurrencyLimit(value, fallback) {
|
|
152
|
+
if (value === undefined) {
|
|
153
|
+
return fallback;
|
|
154
|
+
}
|
|
155
|
+
if (!Number.isFinite(value) || value < 1) {
|
|
156
|
+
throw new UserError('Sandbox concurrency limits must be positive numbers.');
|
|
157
|
+
}
|
|
158
|
+
return Math.floor(value);
|
|
159
|
+
}
|
|
160
|
+
export async function materializeInlineManifestEntry(writer, absolutePath, entry, providerLabel, options = {}) {
|
|
161
|
+
if (isMount(entry)) {
|
|
162
|
+
if (options.skipMountEntries) {
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
if (options.materializeMount) {
|
|
166
|
+
await options.materializeMount(absolutePath, entry);
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
throw new SandboxUnsupportedFeatureError(`${providerLabel} does not support mount entries yet: ${absolutePath}`);
|
|
170
|
+
}
|
|
171
|
+
switch (entry.type) {
|
|
172
|
+
case 'dir':
|
|
173
|
+
await writer.mkdir(absolutePath);
|
|
174
|
+
if (entry.children) {
|
|
175
|
+
for (const [childPath, childEntry] of Object.entries(entry.children)) {
|
|
176
|
+
const child = await resolveMaterializedChildPath(absolutePath, childPath, options);
|
|
177
|
+
await materializeInlineManifestEntry(writer, child.absolutePath, childEntry, providerLabel, {
|
|
178
|
+
...options,
|
|
179
|
+
logicalPath: child.logicalPath,
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
break;
|
|
184
|
+
case 'file':
|
|
185
|
+
await writer.writeFile(absolutePath, entry.content);
|
|
186
|
+
break;
|
|
187
|
+
case 'local_file':
|
|
188
|
+
case 'local_dir':
|
|
189
|
+
case 'git_repo':
|
|
190
|
+
// This helper can run in Worker/browser-like runtimes where host filesystem
|
|
191
|
+
// access is unavailable; Node adapters use shared/localSources for these entries.
|
|
192
|
+
throw new UserError(`${providerLabel} cannot materialize ${entry.type} entries in this runtime. Use inline file or dir entries, or materialize local sources from a Node-compatible runtime.`);
|
|
193
|
+
default:
|
|
194
|
+
throw new UserError(`Unsupported sandbox entry type: ${entry.type}`);
|
|
195
|
+
}
|
|
196
|
+
await options.applyMetadata?.(absolutePath, entry);
|
|
197
|
+
}
|
|
198
|
+
export async function resolveMaterializedChildPath(parentAbsolutePath, childPath, options) {
|
|
199
|
+
const normalizedChildPath = normalizeRelativePath(childPath);
|
|
200
|
+
const logicalPath = options.logicalPath !== undefined
|
|
201
|
+
? options.logicalPath
|
|
202
|
+
? `${options.logicalPath}/${normalizedChildPath}`
|
|
203
|
+
: normalizedChildPath
|
|
204
|
+
: undefined;
|
|
205
|
+
if (options.resolvePath && logicalPath !== undefined) {
|
|
206
|
+
return {
|
|
207
|
+
absolutePath: await options.resolvePath(logicalPath, { forWrite: true }),
|
|
208
|
+
logicalPath,
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
return {
|
|
212
|
+
absolutePath: `${parentAbsolutePath}/${normalizedChildPath}`,
|
|
213
|
+
logicalPath,
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
function removeMountEntries(entries) {
|
|
217
|
+
const result = {};
|
|
218
|
+
for (const [path, entry] of Object.entries(entries)) {
|
|
219
|
+
if (isMount(entry)) {
|
|
220
|
+
continue;
|
|
221
|
+
}
|
|
222
|
+
if (entry.type === 'dir' && entry.children) {
|
|
223
|
+
result[path] = {
|
|
224
|
+
...structuredClone(entry),
|
|
225
|
+
children: removeMountEntries(entry.children),
|
|
226
|
+
};
|
|
227
|
+
continue;
|
|
228
|
+
}
|
|
229
|
+
result[path] = structuredClone(entry);
|
|
230
|
+
}
|
|
231
|
+
return result;
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=manifest.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.mjs","sourceRoot":"","sources":["../../../src/sandbox/shared/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { assertViewImageByteLength, imageOutputFromBytes, MAX_VIEW_IMAGE_BYTES, sniffImageMediaType, toUint8Array, } from '@openai/agents-core/sandbox/internal';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toUint8Array = exports.sniffImageMediaType = exports.MAX_VIEW_IMAGE_BYTES = exports.imageOutputFromBytes = exports.assertViewImageByteLength = void 0;
|
|
4
|
+
var internal_1 = require("@openai/agents-core/sandbox/internal");
|
|
5
|
+
Object.defineProperty(exports, "assertViewImageByteLength", { enumerable: true, get: function () { return internal_1.assertViewImageByteLength; } });
|
|
6
|
+
Object.defineProperty(exports, "imageOutputFromBytes", { enumerable: true, get: function () { return internal_1.imageOutputFromBytes; } });
|
|
7
|
+
Object.defineProperty(exports, "MAX_VIEW_IMAGE_BYTES", { enumerable: true, get: function () { return internal_1.MAX_VIEW_IMAGE_BYTES; } });
|
|
8
|
+
Object.defineProperty(exports, "sniffImageMediaType", { enumerable: true, get: function () { return internal_1.sniffImageMediaType; } });
|
|
9
|
+
Object.defineProperty(exports, "toUint8Array", { enumerable: true, get: function () { return internal_1.toUint8Array; } });
|
|
10
|
+
//# sourceMappingURL=media.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/sandbox/shared/media.ts"],"names":[],"mappings":";;;AAAA,iEAM8C;AAL5C,qHAAA,yBAAyB,OAAA;AACzB,gHAAA,oBAAoB,OAAA;AACpB,gHAAA,oBAAoB,OAAA;AACpB,+GAAA,mBAAmB,OAAA;AACnB,wGAAA,YAAY,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.mjs","sourceRoot":"","sources":["../../../src/sandbox/shared/media.ts"],"names":[],"mappings":"OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,GACb,MAAM,sCAAsC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type Entry, type Manifest } from '@openai/agents-core/sandbox';
|
|
2
|
+
import type { SandboxManifestMetadataSupport } from './types';
|
|
3
|
+
export declare const MOUNT_MANIFEST_METADATA_SUPPORT: SandboxManifestMetadataSupport;
|
|
4
|
+
export declare const SANDBOX_MANIFEST_METADATA_SUPPORT: SandboxManifestMetadataSupport;
|
|
5
|
+
export declare function sandboxEntryPermissionsMode(entry: Entry): string;
|
|
6
|
+
export declare function assertSandboxManifestMetadataSupported(providerName: string, manifest: Manifest, support?: SandboxManifestMetadataSupport): void;
|
|
7
|
+
export declare function assertSandboxEntryMetadataSupported(providerName: string, logicalPath: string, entry: Entry, support?: SandboxManifestMetadataSupport): void;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SANDBOX_MANIFEST_METADATA_SUPPORT = exports.MOUNT_MANIFEST_METADATA_SUPPORT = void 0;
|
|
4
|
+
exports.sandboxEntryPermissionsMode = sandboxEntryPermissionsMode;
|
|
5
|
+
exports.assertSandboxManifestMetadataSupported = assertSandboxManifestMetadataSupported;
|
|
6
|
+
exports.assertSandboxEntryMetadataSupported = assertSandboxEntryMetadataSupported;
|
|
7
|
+
const sandbox_1 = require("@openai/agents-core/sandbox");
|
|
8
|
+
exports.MOUNT_MANIFEST_METADATA_SUPPORT = {
|
|
9
|
+
mounts: true,
|
|
10
|
+
};
|
|
11
|
+
exports.SANDBOX_MANIFEST_METADATA_SUPPORT = {
|
|
12
|
+
users: true,
|
|
13
|
+
groups: true,
|
|
14
|
+
entryPermissions: true,
|
|
15
|
+
entryGroups: true,
|
|
16
|
+
mounts: true,
|
|
17
|
+
};
|
|
18
|
+
function sandboxEntryPermissionsMode(entry) {
|
|
19
|
+
const permissions = new sandbox_1.Permissions(entry.permissions ?? {
|
|
20
|
+
owner: sandbox_1.FileMode.ALL,
|
|
21
|
+
group: sandbox_1.FileMode.READ | sandbox_1.FileMode.EXEC,
|
|
22
|
+
other: sandbox_1.FileMode.READ | sandbox_1.FileMode.EXEC,
|
|
23
|
+
});
|
|
24
|
+
return (permissions.toMode() & 0o777).toString(8).padStart(4, '0');
|
|
25
|
+
}
|
|
26
|
+
function assertSandboxManifestMetadataSupported(providerName, manifest, support = {}) {
|
|
27
|
+
if (!support.users && manifest.users.length > 0) {
|
|
28
|
+
throw new sandbox_1.SandboxUnsupportedFeatureError(`${providerName} does not support manifest users yet.`, {
|
|
29
|
+
provider: providerName,
|
|
30
|
+
feature: 'manifest.users',
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
if (!support.groups && manifest.groups.length > 0) {
|
|
34
|
+
throw new sandbox_1.SandboxUnsupportedFeatureError(`${providerName} does not support manifest groups yet.`, {
|
|
35
|
+
provider: providerName,
|
|
36
|
+
feature: 'manifest.groups',
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
if (!support.extraPathGrants && manifest.extraPathGrants.length > 0) {
|
|
40
|
+
throw new sandbox_1.SandboxUnsupportedFeatureError(`${providerName} does not support extra path grants yet.`, {
|
|
41
|
+
provider: providerName,
|
|
42
|
+
feature: 'manifest.extraPathGrants',
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
for (const [logicalPath, entry] of Object.entries(manifest.entries)) {
|
|
46
|
+
assertSandboxEntryMetadataSupported(providerName, logicalPath, entry, support);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function assertSandboxEntryMetadataSupported(providerName, logicalPath, entry, support = {}) {
|
|
50
|
+
const displayPath = logicalPath || '.';
|
|
51
|
+
if (!support.entryPermissions && entry.permissions !== undefined) {
|
|
52
|
+
throw new sandbox_1.SandboxUnsupportedFeatureError(`${providerName} does not support sandbox entry permissions yet: ${displayPath}`, {
|
|
53
|
+
provider: providerName,
|
|
54
|
+
feature: 'entry.permissions',
|
|
55
|
+
path: displayPath,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
if (!support.entryGroups && entry.group !== undefined) {
|
|
59
|
+
throw new sandbox_1.SandboxUnsupportedFeatureError(`${providerName} does not support sandbox entry group ownership yet: ${displayPath}`, {
|
|
60
|
+
provider: providerName,
|
|
61
|
+
feature: 'entry.group',
|
|
62
|
+
path: displayPath,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
if (!support.mounts && (0, sandbox_1.isMount)(entry)) {
|
|
66
|
+
throw new sandbox_1.SandboxUnsupportedFeatureError(`${providerName} does not support mount entries yet: ${displayPath}`, {
|
|
67
|
+
provider: providerName,
|
|
68
|
+
feature: 'entry.mount',
|
|
69
|
+
path: displayPath,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
if (!(0, sandbox_1.isDir)(entry) || !entry.children) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
for (const [childPath, childEntry] of Object.entries(entry.children)) {
|
|
76
|
+
const childLogicalPath = joinSandboxPath(logicalPath, childPath);
|
|
77
|
+
assertSandboxEntryMetadataSupported(providerName, childLogicalPath, childEntry, support);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
function joinSandboxPath(parent, child) {
|
|
81
|
+
const normalizedChild = (0, sandbox_1.normalizeRelativePath)(child);
|
|
82
|
+
if (!parent || parent === '.') {
|
|
83
|
+
return normalizedChild;
|
|
84
|
+
}
|
|
85
|
+
return `${parent.replace(/\/+$/u, '')}/${normalizedChild}`;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/sandbox/shared/metadata.ts"],"names":[],"mappings":"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"}
|