@openai/agents-extensions 0.8.4 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/dist/ai-sdk-ui/uiMessageStream.d.ts +5 -0
  2. package/dist/ai-sdk-ui/uiMessageStream.js +10 -3
  3. package/dist/ai-sdk-ui/uiMessageStream.js.map +1 -1
  4. package/dist/ai-sdk-ui/uiMessageStream.mjs +9 -3
  5. package/dist/ai-sdk-ui/uiMessageStream.mjs.map +1 -1
  6. package/dist/metadata.js +2 -2
  7. package/dist/metadata.mjs +2 -2
  8. package/dist/sandbox/blaxel/index.d.ts +2 -0
  9. package/dist/sandbox/blaxel/index.js +19 -0
  10. package/dist/sandbox/blaxel/index.js.map +1 -0
  11. package/dist/sandbox/blaxel/index.mjs +3 -0
  12. package/dist/sandbox/blaxel/index.mjs.map +1 -0
  13. package/dist/sandbox/blaxel/mounts.d.ts +101 -0
  14. package/dist/sandbox/blaxel/mounts.js +542 -0
  15. package/dist/sandbox/blaxel/mounts.js.map +1 -0
  16. package/dist/sandbox/blaxel/mounts.mjs +529 -0
  17. package/dist/sandbox/blaxel/mounts.mjs.map +1 -0
  18. package/dist/sandbox/blaxel/sandbox.d.ts +155 -0
  19. package/dist/sandbox/blaxel/sandbox.js +1110 -0
  20. package/dist/sandbox/blaxel/sandbox.js.map +1 -0
  21. package/dist/sandbox/blaxel/sandbox.mjs +1072 -0
  22. package/dist/sandbox/blaxel/sandbox.mjs.map +1 -0
  23. package/dist/sandbox/cloudflare/index.d.ts +2 -0
  24. package/dist/sandbox/cloudflare/index.js +19 -0
  25. package/dist/sandbox/cloudflare/index.js.map +1 -0
  26. package/dist/sandbox/cloudflare/index.mjs +3 -0
  27. package/dist/sandbox/cloudflare/index.mjs.map +1 -0
  28. package/dist/sandbox/cloudflare/mounts.d.ts +28 -0
  29. package/dist/sandbox/cloudflare/mounts.js +150 -0
  30. package/dist/sandbox/cloudflare/mounts.js.map +1 -0
  31. package/dist/sandbox/cloudflare/mounts.mjs +143 -0
  32. package/dist/sandbox/cloudflare/mounts.mjs.map +1 -0
  33. package/dist/sandbox/cloudflare/sandbox.d.ts +91 -0
  34. package/dist/sandbox/cloudflare/sandbox.js +1163 -0
  35. package/dist/sandbox/cloudflare/sandbox.js.map +1 -0
  36. package/dist/sandbox/cloudflare/sandbox.mjs +1125 -0
  37. package/dist/sandbox/cloudflare/sandbox.mjs.map +1 -0
  38. package/dist/sandbox/daytona/index.d.ts +2 -0
  39. package/dist/sandbox/daytona/index.js +19 -0
  40. package/dist/sandbox/daytona/index.js.map +1 -0
  41. package/dist/sandbox/daytona/index.mjs +3 -0
  42. package/dist/sandbox/daytona/index.mjs.map +1 -0
  43. package/dist/sandbox/daytona/mounts.d.ts +11 -0
  44. package/dist/sandbox/daytona/mounts.js +17 -0
  45. package/dist/sandbox/daytona/mounts.js.map +1 -0
  46. package/dist/sandbox/daytona/mounts.mjs +12 -0
  47. package/dist/sandbox/daytona/mounts.mjs.map +1 -0
  48. package/dist/sandbox/daytona/sandbox.d.ts +160 -0
  49. package/dist/sandbox/daytona/sandbox.js +938 -0
  50. package/dist/sandbox/daytona/sandbox.js.map +1 -0
  51. package/dist/sandbox/daytona/sandbox.mjs +900 -0
  52. package/dist/sandbox/daytona/sandbox.mjs.map +1 -0
  53. package/dist/sandbox/e2b/index.d.ts +2 -0
  54. package/dist/sandbox/e2b/index.js +19 -0
  55. package/dist/sandbox/e2b/index.js.map +1 -0
  56. package/dist/sandbox/e2b/index.mjs +3 -0
  57. package/dist/sandbox/e2b/index.mjs.map +1 -0
  58. package/dist/sandbox/e2b/mounts.d.ts +11 -0
  59. package/dist/sandbox/e2b/mounts.js +17 -0
  60. package/dist/sandbox/e2b/mounts.js.map +1 -0
  61. package/dist/sandbox/e2b/mounts.mjs +12 -0
  62. package/dist/sandbox/e2b/mounts.mjs.map +1 -0
  63. package/dist/sandbox/e2b/sandbox.d.ts +169 -0
  64. package/dist/sandbox/e2b/sandbox.js +829 -0
  65. package/dist/sandbox/e2b/sandbox.js.map +1 -0
  66. package/dist/sandbox/e2b/sandbox.mjs +791 -0
  67. package/dist/sandbox/e2b/sandbox.mjs.map +1 -0
  68. package/dist/sandbox/modal/index.d.ts +2 -0
  69. package/dist/sandbox/modal/index.js +19 -0
  70. package/dist/sandbox/modal/index.js.map +1 -0
  71. package/dist/sandbox/modal/index.mjs +3 -0
  72. package/dist/sandbox/modal/index.mjs.map +1 -0
  73. package/dist/sandbox/modal/mounts.d.ts +24 -0
  74. package/dist/sandbox/modal/mounts.js +194 -0
  75. package/dist/sandbox/modal/mounts.js.map +1 -0
  76. package/dist/sandbox/modal/mounts.mjs +188 -0
  77. package/dist/sandbox/modal/mounts.mjs.map +1 -0
  78. package/dist/sandbox/modal/sandbox.d.ts +220 -0
  79. package/dist/sandbox/modal/sandbox.js +1621 -0
  80. package/dist/sandbox/modal/sandbox.js.map +1 -0
  81. package/dist/sandbox/modal/sandbox.mjs +1581 -0
  82. package/dist/sandbox/modal/sandbox.mjs.map +1 -0
  83. package/dist/sandbox/runloop/index.d.ts +2 -0
  84. package/dist/sandbox/runloop/index.js +19 -0
  85. package/dist/sandbox/runloop/index.js.map +1 -0
  86. package/dist/sandbox/runloop/index.mjs +3 -0
  87. package/dist/sandbox/runloop/index.mjs.map +1 -0
  88. package/dist/sandbox/runloop/mounts.d.ts +11 -0
  89. package/dist/sandbox/runloop/mounts.js +17 -0
  90. package/dist/sandbox/runloop/mounts.js.map +1 -0
  91. package/dist/sandbox/runloop/mounts.mjs +12 -0
  92. package/dist/sandbox/runloop/mounts.mjs.map +1 -0
  93. package/dist/sandbox/runloop/sandbox.d.ts +266 -0
  94. package/dist/sandbox/runloop/sandbox.js +1390 -0
  95. package/dist/sandbox/runloop/sandbox.js.map +1 -0
  96. package/dist/sandbox/runloop/sandbox.mjs +1346 -0
  97. package/dist/sandbox/runloop/sandbox.mjs.map +1 -0
  98. package/dist/sandbox/shared/archive.d.ts +34 -0
  99. package/dist/sandbox/shared/archive.js +397 -0
  100. package/dist/sandbox/shared/archive.js.map +1 -0
  101. package/dist/sandbox/shared/archive.mjs +389 -0
  102. package/dist/sandbox/shared/archive.mjs.map +1 -0
  103. package/dist/sandbox/shared/editor.d.ts +17 -0
  104. package/dist/sandbox/shared/editor.js +65 -0
  105. package/dist/sandbox/shared/editor.js.map +1 -0
  106. package/dist/sandbox/shared/editor.mjs +61 -0
  107. package/dist/sandbox/shared/editor.mjs.map +1 -0
  108. package/dist/sandbox/shared/environment.d.ts +1 -0
  109. package/dist/sandbox/shared/environment.js +13 -0
  110. package/dist/sandbox/shared/environment.js.map +1 -0
  111. package/dist/sandbox/shared/environment.mjs +2 -0
  112. package/dist/sandbox/shared/environment.mjs.map +1 -0
  113. package/dist/sandbox/shared/git.d.ts +4 -0
  114. package/dist/sandbox/shared/git.js +20 -0
  115. package/dist/sandbox/shared/git.js.map +1 -0
  116. package/dist/sandbox/shared/git.mjs +17 -0
  117. package/dist/sandbox/shared/git.mjs.map +1 -0
  118. package/dist/sandbox/shared/inContainerMounts.d.ts +40 -0
  119. package/dist/sandbox/shared/inContainerMounts.js +670 -0
  120. package/dist/sandbox/shared/inContainerMounts.js.map +1 -0
  121. package/dist/sandbox/shared/inContainerMounts.mjs +662 -0
  122. package/dist/sandbox/shared/inContainerMounts.mjs.map +1 -0
  123. package/dist/sandbox/shared/index.d.ts +23 -0
  124. package/dist/sandbox/shared/index.js +112 -0
  125. package/dist/sandbox/shared/index.js.map +1 -0
  126. package/dist/sandbox/shared/index.mjs +18 -0
  127. package/dist/sandbox/shared/index.mjs.map +1 -0
  128. package/dist/sandbox/shared/localSources.d.ts +8 -0
  129. package/dist/sandbox/shared/localSources.js +378 -0
  130. package/dist/sandbox/shared/localSources.js.map +1 -0
  131. package/dist/sandbox/shared/localSources.mjs +372 -0
  132. package/dist/sandbox/shared/localSources.mjs.map +1 -0
  133. package/dist/sandbox/shared/manifest.d.ts +38 -0
  134. package/dist/sandbox/shared/manifest.js +254 -0
  135. package/dist/sandbox/shared/manifest.js.map +1 -0
  136. package/dist/sandbox/shared/manifest.mjs +233 -0
  137. package/dist/sandbox/shared/manifest.mjs.map +1 -0
  138. package/dist/sandbox/shared/media.d.ts +1 -0
  139. package/dist/sandbox/shared/media.js +10 -0
  140. package/dist/sandbox/shared/media.js.map +1 -0
  141. package/dist/sandbox/shared/media.mjs +2 -0
  142. package/dist/sandbox/shared/media.mjs.map +1 -0
  143. package/dist/sandbox/shared/metadata.d.ts +7 -0
  144. package/dist/sandbox/shared/metadata.js +87 -0
  145. package/dist/sandbox/shared/metadata.js.map +1 -0
  146. package/dist/sandbox/shared/metadata.mjs +81 -0
  147. package/dist/sandbox/shared/metadata.mjs.map +1 -0
  148. package/dist/sandbox/shared/output.d.ts +1 -0
  149. package/dist/sandbox/shared/output.js +8 -0
  150. package/dist/sandbox/shared/output.js.map +1 -0
  151. package/dist/sandbox/shared/output.mjs +2 -0
  152. package/dist/sandbox/shared/output.mjs.map +1 -0
  153. package/dist/sandbox/shared/paths.d.ts +27 -0
  154. package/dist/sandbox/shared/paths.js +245 -0
  155. package/dist/sandbox/shared/paths.js.map +1 -0
  156. package/dist/sandbox/shared/paths.mjs +236 -0
  157. package/dist/sandbox/shared/paths.mjs.map +1 -0
  158. package/dist/sandbox/shared/ports.d.ts +14 -0
  159. package/dist/sandbox/shared/ports.js +75 -0
  160. package/dist/sandbox/shared/ports.js.map +1 -0
  161. package/dist/sandbox/shared/ports.mjs +69 -0
  162. package/dist/sandbox/shared/ports.mjs.map +1 -0
  163. package/dist/sandbox/shared/process.d.ts +16 -0
  164. package/dist/sandbox/shared/process.js +90 -0
  165. package/dist/sandbox/shared/process.js.map +1 -0
  166. package/dist/sandbox/shared/process.mjs +86 -0
  167. package/dist/sandbox/shared/process.mjs.map +1 -0
  168. package/dist/sandbox/shared/pty.d.ts +81 -0
  169. package/dist/sandbox/shared/pty.js +382 -0
  170. package/dist/sandbox/shared/pty.js.map +1 -0
  171. package/dist/sandbox/shared/pty.mjs +335 -0
  172. package/dist/sandbox/shared/pty.mjs.map +1 -0
  173. package/dist/sandbox/shared/runAs.d.ts +46 -0
  174. package/dist/sandbox/shared/runAs.js +149 -0
  175. package/dist/sandbox/shared/runAs.js.map +1 -0
  176. package/dist/sandbox/shared/runAs.mjs +141 -0
  177. package/dist/sandbox/shared/runAs.mjs.map +1 -0
  178. package/dist/sandbox/shared/session.d.ts +16 -0
  179. package/dist/sandbox/shared/session.js +138 -0
  180. package/dist/sandbox/shared/session.js.map +1 -0
  181. package/dist/sandbox/shared/session.mjs +128 -0
  182. package/dist/sandbox/shared/session.mjs.map +1 -0
  183. package/dist/sandbox/shared/sessionBase.d.ts +90 -0
  184. package/dist/sandbox/shared/sessionBase.js +446 -0
  185. package/dist/sandbox/shared/sessionBase.js.map +1 -0
  186. package/dist/sandbox/shared/sessionBase.mjs +442 -0
  187. package/dist/sandbox/shared/sessionBase.mjs.map +1 -0
  188. package/dist/sandbox/shared/sessionState.d.ts +7 -0
  189. package/dist/sandbox/shared/sessionState.js +35 -0
  190. package/dist/sandbox/shared/sessionState.js.map +1 -0
  191. package/dist/sandbox/shared/sessionState.mjs +31 -0
  192. package/dist/sandbox/shared/sessionState.mjs.map +1 -0
  193. package/dist/sandbox/shared/snapshots.d.ts +9 -0
  194. package/dist/sandbox/shared/snapshots.js +62 -0
  195. package/dist/sandbox/shared/snapshots.js.map +1 -0
  196. package/dist/sandbox/shared/snapshots.mjs +57 -0
  197. package/dist/sandbox/shared/snapshots.mjs.map +1 -0
  198. package/dist/sandbox/shared/typeGuards.d.ts +10 -0
  199. package/dist/sandbox/shared/typeGuards.js +50 -0
  200. package/dist/sandbox/shared/typeGuards.js.map +1 -0
  201. package/dist/sandbox/shared/typeGuards.mjs +38 -0
  202. package/dist/sandbox/shared/typeGuards.mjs.map +1 -0
  203. package/dist/sandbox/shared/types.d.ts +24 -0
  204. package/dist/sandbox/shared/types.js +3 -0
  205. package/dist/sandbox/shared/types.js.map +1 -0
  206. package/dist/sandbox/shared/types.mjs +2 -0
  207. package/dist/sandbox/shared/types.mjs.map +1 -0
  208. package/dist/sandbox/vercel/index.d.ts +1 -0
  209. package/dist/sandbox/vercel/index.js +18 -0
  210. package/dist/sandbox/vercel/index.js.map +1 -0
  211. package/dist/sandbox/vercel/index.mjs +2 -0
  212. package/dist/sandbox/vercel/index.mjs.map +1 -0
  213. package/dist/sandbox/vercel/sandbox.d.ts +135 -0
  214. package/dist/sandbox/vercel/sandbox.js +1001 -0
  215. package/dist/sandbox/vercel/sandbox.js.map +1 -0
  216. package/dist/sandbox/vercel/sandbox.mjs +963 -0
  217. package/dist/sandbox/vercel/sandbox.mjs.map +1 -0
  218. package/package.json +108 -4
@@ -0,0 +1,389 @@
1
+ import { SandboxArchiveError, SandboxUnsupportedFeatureError, } from '@openai/agents-core/sandbox';
2
+ import { shellQuote, validateRemoteSandboxPathForManifest } from "./paths.mjs";
3
+ const TAR_BLOCK_SIZE = 512;
4
+ const ZERO_BLOCK = new Uint8Array(TAR_BLOCK_SIZE);
5
+ export function assertTarWorkspacePersistence(providerName, workspacePersistence) {
6
+ if (workspacePersistence === undefined ||
7
+ workspacePersistence === true ||
8
+ workspacePersistence === 'tar') {
9
+ return;
10
+ }
11
+ throw new SandboxUnsupportedFeatureError(`${providerName} currently supports only tar workspace persistence in TypeScript.`, {
12
+ provider: providerName,
13
+ feature: 'workspacePersistence',
14
+ workspacePersistence,
15
+ });
16
+ }
17
+ export async function persistRemoteWorkspaceTar(args) {
18
+ const root = args.manifest.root;
19
+ const archivePath = args.archivePath ?? remoteArchivePath(args.providerName);
20
+ assertRemoteWorkspaceTarRoot(args.providerName, root, archivePath, 'persist');
21
+ await validateRemoteSandboxPathForManifest({
22
+ manifest: args.manifest,
23
+ path: root,
24
+ options: { forWrite: true },
25
+ runCommand: args.io.runCommand,
26
+ });
27
+ const excludeArgs = workspaceTarExcludeArgs(args.manifest);
28
+ const tarCommand = [
29
+ `mkdir -p -- ${shellQuote(root)}`,
30
+ [
31
+ 'tar',
32
+ ...excludeArgs,
33
+ '-C',
34
+ shellQuote(root),
35
+ '-cf',
36
+ shellQuote(archivePath),
37
+ '.',
38
+ ].join(' '),
39
+ ].join(' && ');
40
+ try {
41
+ const result = await args.io.runCommand(tarCommand);
42
+ if (result.status !== 0) {
43
+ throw new SandboxArchiveError(`${args.providerName} failed to create a workspace tar archive.`, {
44
+ provider: args.providerName,
45
+ root,
46
+ archivePath,
47
+ stdout: result.stdout ?? '',
48
+ stderr: result.stderr ?? '',
49
+ });
50
+ }
51
+ const archive = await args.io.readFile(archivePath);
52
+ validateWorkspaceTarArchive(archive);
53
+ return archive;
54
+ }
55
+ catch (error) {
56
+ if (error instanceof SandboxArchiveError) {
57
+ throw error;
58
+ }
59
+ throw new SandboxArchiveError(`${args.providerName} failed to persist the workspace archive.`, {
60
+ provider: args.providerName,
61
+ root,
62
+ archivePath,
63
+ cause: error instanceof Error ? error.message : String(error),
64
+ });
65
+ }
66
+ finally {
67
+ await args.io
68
+ .runCommand(`rm -f -- ${shellQuote(archivePath)}`)
69
+ .catch(() => { });
70
+ }
71
+ }
72
+ export async function hydrateRemoteWorkspaceTar(args) {
73
+ const root = args.manifest.root;
74
+ const archive = toWorkspaceArchiveBytes(args.data);
75
+ validateWorkspaceTarArchive(archive, { allowSymlinks: false });
76
+ const archivePath = args.archivePath ?? remoteArchivePath(args.providerName);
77
+ assertRemoteWorkspaceTarRoot(args.providerName, root, archivePath, 'hydrate');
78
+ await validateRemoteSandboxPathForManifest({
79
+ manifest: args.manifest,
80
+ path: root,
81
+ options: { forWrite: true },
82
+ runCommand: args.io.runCommand,
83
+ });
84
+ try {
85
+ await args.io.writeFile(archivePath, archive);
86
+ const result = await args.io.runCommand([
87
+ `mkdir -p -- ${shellQuote(root)}`,
88
+ `find ${shellQuote(root)} -mindepth 1 -maxdepth 1 -exec rm -rf -- {} +`,
89
+ `tar -C ${shellQuote(root)} -xf ${shellQuote(archivePath)}`,
90
+ ].join(' && '));
91
+ if (result.status !== 0) {
92
+ throw new SandboxArchiveError(`${args.providerName} failed to hydrate a workspace tar archive.`, {
93
+ provider: args.providerName,
94
+ root,
95
+ archivePath,
96
+ stdout: result.stdout ?? '',
97
+ stderr: result.stderr ?? '',
98
+ });
99
+ }
100
+ }
101
+ catch (error) {
102
+ if (error instanceof SandboxArchiveError) {
103
+ throw error;
104
+ }
105
+ throw new SandboxArchiveError(`${args.providerName} failed to hydrate the workspace archive.`, {
106
+ provider: args.providerName,
107
+ root,
108
+ archivePath,
109
+ cause: error instanceof Error ? error.message : String(error),
110
+ });
111
+ }
112
+ finally {
113
+ await args.io
114
+ .runCommand(`rm -f -- ${shellQuote(archivePath)}`)
115
+ .catch(() => { });
116
+ }
117
+ }
118
+ function assertRemoteWorkspaceTarRoot(providerName, root, archivePath, operation) {
119
+ if (root !== '/') {
120
+ return;
121
+ }
122
+ throw new SandboxArchiveError(`${providerName} refuses to ${operation} a workspace tar archive at filesystem root.`, {
123
+ provider: providerName,
124
+ root,
125
+ archivePath,
126
+ });
127
+ }
128
+ export function validateWorkspaceTarArchive(data, options = {}) {
129
+ const bytes = toWorkspaceArchiveBytes(data);
130
+ const membersByPath = new Map();
131
+ const symlinkPaths = new Set();
132
+ const members = [];
133
+ let pendingLongName;
134
+ let pendingPax;
135
+ try {
136
+ for (let offset = 0; offset < bytes.byteLength;) {
137
+ const header = bytes.subarray(offset, offset + TAR_BLOCK_SIZE);
138
+ if (header.byteLength < TAR_BLOCK_SIZE) {
139
+ throw tarError('<tar>', 'truncated header');
140
+ }
141
+ offset += TAR_BLOCK_SIZE;
142
+ if (blocksEqual(header, ZERO_BLOCK)) {
143
+ break;
144
+ }
145
+ const rawType = header[156] === 0 ? '' : String.fromCharCode(header[156]);
146
+ const size = parseTarOctal(header, 124, 12);
147
+ const payload = bytes.subarray(offset, offset + size);
148
+ if (payload.byteLength !== size) {
149
+ throw tarError('<tar>', 'truncated member payload');
150
+ }
151
+ offset += Math.ceil(size / TAR_BLOCK_SIZE) * TAR_BLOCK_SIZE;
152
+ if (rawType === 'x') {
153
+ pendingPax = parsePaxPayload(payload);
154
+ continue;
155
+ }
156
+ if (rawType === 'g') {
157
+ continue;
158
+ }
159
+ if (rawType === 'L') {
160
+ pendingLongName = trimTarString(decodeBytes(payload));
161
+ continue;
162
+ }
163
+ const name = pendingPax?.path ??
164
+ pendingLongName ??
165
+ joinTarName(readTarString(header, 0, 100), readTarString(header, 345, 155));
166
+ pendingPax = undefined;
167
+ pendingLongName = undefined;
168
+ if (shouldSkipTarMember(name, {
169
+ skipRelPaths: options.skipRelPaths ?? [],
170
+ rootName: options.rootName,
171
+ })) {
172
+ continue;
173
+ }
174
+ const member = validateTarMember(name, rawType, options);
175
+ if (!member) {
176
+ continue;
177
+ }
178
+ const previous = membersByPath.get(member.path);
179
+ if (previous &&
180
+ !(previous.type === 'directory' && member.type === 'directory')) {
181
+ throw tarError(name, `duplicate archive path: ${member.path}`);
182
+ }
183
+ membersByPath.set(member.path, member);
184
+ if (member.type === 'symlink') {
185
+ symlinkPaths.add(member.path);
186
+ }
187
+ members.push(member);
188
+ }
189
+ // Remote providers often hand this archive to a plain tar extractor, so catch
190
+ // symlink-parent escapes here instead of relying on provider-specific safety flags.
191
+ for (const member of members) {
192
+ for (const parent of parentPaths(member.path)) {
193
+ const parentMember = membersByPath.get(parent);
194
+ if (parentMember && parentMember.type !== 'directory') {
195
+ throw tarError(member.rawName, `archive path descends through non-directory: ${parent}`);
196
+ }
197
+ if (symlinkPaths.has(parent)) {
198
+ throw tarError(member.rawName, `archive path descends through symlink: ${parent}`);
199
+ }
200
+ }
201
+ }
202
+ }
203
+ catch (error) {
204
+ if (error instanceof SandboxArchiveError) {
205
+ throw error;
206
+ }
207
+ throw new SandboxArchiveError('Invalid workspace tar archive.', {
208
+ cause: error instanceof Error ? error.message : String(error),
209
+ });
210
+ }
211
+ }
212
+ export function toWorkspaceArchiveBytes(data) {
213
+ if (typeof data === 'string') {
214
+ return new TextEncoder().encode(data);
215
+ }
216
+ if (data instanceof ArrayBuffer) {
217
+ return new Uint8Array(data);
218
+ }
219
+ return Uint8Array.from(data);
220
+ }
221
+ export function workspaceTarExcludeArgs(manifest) {
222
+ return [...manifest.ephemeralPersistencePaths()]
223
+ .filter((path) => path.length > 0)
224
+ .sort((left, right) => left.localeCompare(right))
225
+ .flatMap((path) => [
226
+ `--exclude=${shellQuote(path)}`,
227
+ `--exclude=${shellQuote(`./${path}`)}`,
228
+ ]);
229
+ }
230
+ function validateTarMember(name, typeFlag, options) {
231
+ const relPath = safeTarMemberRelPath(name);
232
+ if (relPath === null) {
233
+ if (typeFlag === '5') {
234
+ return null;
235
+ }
236
+ if (typeFlag === '2') {
237
+ throw tarError(name, 'archive root symlink');
238
+ }
239
+ if (typeFlag === '1') {
240
+ throw tarError(name, 'archive root hardlink');
241
+ }
242
+ throw tarError(name, 'archive root member must be directory');
243
+ }
244
+ if (typeFlag === '1') {
245
+ throw tarError(name, 'hardlink member not allowed');
246
+ }
247
+ if (typeFlag === '2') {
248
+ if (options.allowSymlinks === false ||
249
+ matchesNormalizedPath(relPath, options.rejectSymlinkRelPaths ?? [])) {
250
+ throw tarError(name, `symlink member not allowed: ${relPath}`);
251
+ }
252
+ return { rawName: name, path: relPath, type: 'symlink' };
253
+ }
254
+ if (typeFlag === '5') {
255
+ return { rawName: name, path: relPath, type: 'directory' };
256
+ }
257
+ if (typeFlag === '' || typeFlag === '0') {
258
+ return { rawName: name, path: relPath, type: 'file' };
259
+ }
260
+ throw tarError(name, 'unsupported member type');
261
+ }
262
+ function safeTarMemberRelPath(name) {
263
+ if (name === '' || name === '.' || name === './') {
264
+ return null;
265
+ }
266
+ if (name.startsWith('/')) {
267
+ throw tarError(name, 'absolute path');
268
+ }
269
+ if (/^[A-Za-z]:/u.test(name)) {
270
+ throw tarError(name, 'windows drive path');
271
+ }
272
+ if (name.includes('\\')) {
273
+ throw tarError(name, 'windows path separator');
274
+ }
275
+ const parts = name
276
+ .split('/')
277
+ .filter((part) => part.length > 0 && part !== '.');
278
+ if (parts.length === 0) {
279
+ return null;
280
+ }
281
+ if (parts.includes('..')) {
282
+ throw tarError(name, 'parent traversal');
283
+ }
284
+ return parts.join('/');
285
+ }
286
+ function shouldSkipTarMember(memberName, options) {
287
+ const relPath = safeTarMemberRelPath(memberName);
288
+ if (relPath === null) {
289
+ return false;
290
+ }
291
+ const variants = [relPath];
292
+ const rootName = options.rootName;
293
+ if (rootName && relPath === rootName) {
294
+ variants.push('');
295
+ }
296
+ else if (rootName && relPath.startsWith(`${rootName}/`)) {
297
+ variants.push(relPath.slice(rootName.length + 1));
298
+ }
299
+ return variants.some((variant) => matchesNormalizedPath(variant, options.skipRelPaths));
300
+ }
301
+ function matchesNormalizedPath(path, candidates) {
302
+ return [...candidates].some((candidate) => {
303
+ const normalized = normalizeTarRelPath(candidate);
304
+ return path === normalized || path.startsWith(`${normalized}/`);
305
+ });
306
+ }
307
+ function normalizeTarRelPath(path) {
308
+ const normalized = safeTarMemberRelPath(path);
309
+ return normalized ?? '';
310
+ }
311
+ function parentPaths(path) {
312
+ const parts = path.split('/');
313
+ const parents = [];
314
+ for (let index = 1; index < parts.length; index += 1) {
315
+ parents.push(parts.slice(0, index).join('/'));
316
+ }
317
+ return parents;
318
+ }
319
+ function parsePaxPayload(payload) {
320
+ const text = decodeBytes(payload);
321
+ const values = {};
322
+ let offset = 0;
323
+ while (offset < text.length) {
324
+ const space = text.indexOf(' ', offset);
325
+ if (space === -1) {
326
+ break;
327
+ }
328
+ const length = Number(text.slice(offset, space));
329
+ if (!Number.isInteger(length) || length <= 0) {
330
+ break;
331
+ }
332
+ const record = text.slice(space + 1, offset + length);
333
+ const trimmed = record.endsWith('\n') ? record.slice(0, -1) : record;
334
+ const equals = trimmed.indexOf('=');
335
+ if (equals > 0) {
336
+ values[trimmed.slice(0, equals)] = trimmed.slice(equals + 1);
337
+ }
338
+ offset += length;
339
+ }
340
+ return values;
341
+ }
342
+ function parseTarOctal(header, start, length) {
343
+ if ((header[start] & 0x80) !== 0) {
344
+ throw tarError('<tar>', 'base-256 tar sizes are not supported');
345
+ }
346
+ const text = readTarString(header, start, length).trim();
347
+ if (text.length === 0) {
348
+ return 0;
349
+ }
350
+ if (!/^[0-7]+$/u.test(text)) {
351
+ throw tarError('<tar>', 'invalid octal size');
352
+ }
353
+ return Number.parseInt(text, 8);
354
+ }
355
+ function readTarString(bytes, start, length) {
356
+ return trimTarString(decodeBytes(bytes.subarray(start, start + length)));
357
+ }
358
+ function trimTarString(value) {
359
+ return value.replace(/\0.*$/u, '').replace(/\n$/u, '');
360
+ }
361
+ function decodeBytes(bytes) {
362
+ return new TextDecoder().decode(bytes);
363
+ }
364
+ function joinTarName(name, prefix) {
365
+ return prefix ? `${prefix}/${name}` : name;
366
+ }
367
+ function blocksEqual(left, right) {
368
+ if (left.byteLength !== right.byteLength) {
369
+ return false;
370
+ }
371
+ for (let index = 0; index < left.byteLength; index += 1) {
372
+ if (left[index] !== right[index]) {
373
+ return false;
374
+ }
375
+ }
376
+ return true;
377
+ }
378
+ function remoteArchivePath(providerName) {
379
+ const suffix = Math.random().toString(16).slice(2);
380
+ const provider = providerName.toLowerCase().replace(/[^a-z0-9]+/gu, '-');
381
+ return `/tmp/openai-agents-${provider}-${Date.now()}-${suffix}.tar`;
382
+ }
383
+ function tarError(member, reason) {
384
+ return new SandboxArchiveError(`Unsafe tar member "${member}": ${reason}`, {
385
+ member,
386
+ reason,
387
+ });
388
+ }
389
+ //# sourceMappingURL=archive.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archive.mjs","sourceRoot":"","sources":["../../../src/sandbox/shared/archive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { type ApplyPatchOperation, type ApplyPatchResult, type Editor } from '@openai/agents-core';
2
+ import type { RemoteEditorIo } from './types';
3
+ export declare class RemoteSandboxEditor implements Editor {
4
+ private readonly io;
5
+ constructor(io: RemoteEditorIo);
6
+ createFile(operation: Extract<ApplyPatchOperation, {
7
+ type: 'create_file';
8
+ }>): Promise<ApplyPatchResult>;
9
+ updateFile(operation: Extract<ApplyPatchOperation, {
10
+ type: 'update_file';
11
+ }>): Promise<ApplyPatchResult>;
12
+ deleteFile(operation: Extract<ApplyPatchOperation, {
13
+ type: 'delete_file';
14
+ }>): Promise<ApplyPatchResult>;
15
+ private resolvePath;
16
+ private pathExists;
17
+ }
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RemoteSandboxEditor = void 0;
4
+ const agents_core_1 = require("@openai/agents-core");
5
+ const paths_1 = require("./paths.js");
6
+ class RemoteSandboxEditor {
7
+ io;
8
+ constructor(io) {
9
+ this.io = io;
10
+ }
11
+ async createFile(operation) {
12
+ const path = await this.resolvePath(operation.path, { forWrite: true });
13
+ if (await this.pathExists(path)) {
14
+ throw new agents_core_1.UserError(`Cannot create file because it already exists: ${path}`);
15
+ }
16
+ const content = (0, agents_core_1.applyDiff)('', operation.diff, 'create');
17
+ const parent = (0, paths_1.posixDirname)(path);
18
+ if (this.io.mkdir && parent !== '.' && parent !== '/') {
19
+ await this.io.mkdir(parent);
20
+ }
21
+ await this.io.writeText(path, content);
22
+ return {};
23
+ }
24
+ async updateFile(operation) {
25
+ const moveTo = operation.moveTo;
26
+ const path = await this.resolvePath(operation.path, { forWrite: true });
27
+ const destination = moveTo
28
+ ? await this.resolvePath(moveTo, { forWrite: true })
29
+ : path;
30
+ const current = await this.io.readText(path);
31
+ const next = (0, agents_core_1.applyDiff)(current, operation.diff);
32
+ const parent = (0, paths_1.posixDirname)(destination);
33
+ if (this.io.mkdir && parent !== '.' && parent !== '/') {
34
+ await this.io.mkdir(parent);
35
+ }
36
+ await this.io.writeText(destination, next);
37
+ if (moveTo && destination !== path) {
38
+ await this.io.deletePath(path);
39
+ }
40
+ return {};
41
+ }
42
+ async deleteFile(operation) {
43
+ await this.io.deletePath(await this.resolvePath(operation.path, { forWrite: true }));
44
+ return {};
45
+ }
46
+ async resolvePath(path, options) {
47
+ return this.io.resolvePath
48
+ ? await this.io.resolvePath(path, options)
49
+ : path;
50
+ }
51
+ async pathExists(path) {
52
+ if (this.io.pathExists) {
53
+ return await this.io.pathExists(path);
54
+ }
55
+ try {
56
+ await this.io.readText(path);
57
+ return true;
58
+ }
59
+ catch {
60
+ return false;
61
+ }
62
+ }
63
+ }
64
+ exports.RemoteSandboxEditor = RemoteSandboxEditor;
65
+ //# sourceMappingURL=editor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.js","sourceRoot":"","sources":["../../../src/sandbox/shared/editor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import { applyDiff, UserError, } from '@openai/agents-core';
2
+ import { posixDirname } from "./paths.mjs";
3
+ export class RemoteSandboxEditor {
4
+ io;
5
+ constructor(io) {
6
+ this.io = io;
7
+ }
8
+ async createFile(operation) {
9
+ const path = await this.resolvePath(operation.path, { forWrite: true });
10
+ if (await this.pathExists(path)) {
11
+ throw new UserError(`Cannot create file because it already exists: ${path}`);
12
+ }
13
+ const content = applyDiff('', operation.diff, 'create');
14
+ const parent = posixDirname(path);
15
+ if (this.io.mkdir && parent !== '.' && parent !== '/') {
16
+ await this.io.mkdir(parent);
17
+ }
18
+ await this.io.writeText(path, content);
19
+ return {};
20
+ }
21
+ async updateFile(operation) {
22
+ const moveTo = operation.moveTo;
23
+ const path = await this.resolvePath(operation.path, { forWrite: true });
24
+ const destination = moveTo
25
+ ? await this.resolvePath(moveTo, { forWrite: true })
26
+ : path;
27
+ const current = await this.io.readText(path);
28
+ const next = applyDiff(current, operation.diff);
29
+ const parent = posixDirname(destination);
30
+ if (this.io.mkdir && parent !== '.' && parent !== '/') {
31
+ await this.io.mkdir(parent);
32
+ }
33
+ await this.io.writeText(destination, next);
34
+ if (moveTo && destination !== path) {
35
+ await this.io.deletePath(path);
36
+ }
37
+ return {};
38
+ }
39
+ async deleteFile(operation) {
40
+ await this.io.deletePath(await this.resolvePath(operation.path, { forWrite: true }));
41
+ return {};
42
+ }
43
+ async resolvePath(path, options) {
44
+ return this.io.resolvePath
45
+ ? await this.io.resolvePath(path, options)
46
+ : path;
47
+ }
48
+ async pathExists(path) {
49
+ if (this.io.pathExists) {
50
+ return await this.io.pathExists(path);
51
+ }
52
+ try {
53
+ await this.io.readText(path);
54
+ return true;
55
+ }
56
+ catch {
57
+ return false;
58
+ }
59
+ }
60
+ }
61
+ //# sourceMappingURL=editor.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.mjs","sourceRoot":"","sources":["../../../src/sandbox/shared/editor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { assertShellEnvironmentName, deserializePersistedEnvironmentForRuntime, materializeEnvironment, materializeStaticEnvironment, mergeMaterializedEnvironment, mergeStaticMaterializedEnvironment, serializeManifestEnvironment, serializeRuntimeEnvironmentForPersistence, } from '@openai/agents-core/sandbox/internal';
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.serializeRuntimeEnvironmentForPersistence = exports.serializeManifestEnvironment = exports.mergeStaticMaterializedEnvironment = exports.mergeMaterializedEnvironment = exports.materializeStaticEnvironment = exports.materializeEnvironment = exports.deserializePersistedEnvironmentForRuntime = exports.assertShellEnvironmentName = void 0;
4
+ var internal_1 = require("@openai/agents-core/sandbox/internal");
5
+ Object.defineProperty(exports, "assertShellEnvironmentName", { enumerable: true, get: function () { return internal_1.assertShellEnvironmentName; } });
6
+ Object.defineProperty(exports, "deserializePersistedEnvironmentForRuntime", { enumerable: true, get: function () { return internal_1.deserializePersistedEnvironmentForRuntime; } });
7
+ Object.defineProperty(exports, "materializeEnvironment", { enumerable: true, get: function () { return internal_1.materializeEnvironment; } });
8
+ Object.defineProperty(exports, "materializeStaticEnvironment", { enumerable: true, get: function () { return internal_1.materializeStaticEnvironment; } });
9
+ Object.defineProperty(exports, "mergeMaterializedEnvironment", { enumerable: true, get: function () { return internal_1.mergeMaterializedEnvironment; } });
10
+ Object.defineProperty(exports, "mergeStaticMaterializedEnvironment", { enumerable: true, get: function () { return internal_1.mergeStaticMaterializedEnvironment; } });
11
+ Object.defineProperty(exports, "serializeManifestEnvironment", { enumerable: true, get: function () { return internal_1.serializeManifestEnvironment; } });
12
+ Object.defineProperty(exports, "serializeRuntimeEnvironmentForPersistence", { enumerable: true, get: function () { return internal_1.serializeRuntimeEnvironmentForPersistence; } });
13
+ //# sourceMappingURL=environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/sandbox/shared/environment.ts"],"names":[],"mappings":";;;AAAA,iEAS8C;AAR5C,sHAAA,0BAA0B,OAAA;AAC1B,qIAAA,yCAAyC,OAAA;AACzC,kHAAA,sBAAsB,OAAA;AACtB,wHAAA,4BAA4B,OAAA;AAC5B,wHAAA,4BAA4B,OAAA;AAC5B,8HAAA,kCAAkC,OAAA;AAClC,wHAAA,4BAA4B,OAAA;AAC5B,qIAAA,yCAAyC,OAAA"}
@@ -0,0 +1,2 @@
1
+ export { assertShellEnvironmentName, deserializePersistedEnvironmentForRuntime, materializeEnvironment, materializeStaticEnvironment, mergeMaterializedEnvironment, mergeStaticMaterializedEnvironment, serializeManifestEnvironment, serializeRuntimeEnvironmentForPersistence, } from '@openai/agents-core/sandbox/internal';
2
+ //# sourceMappingURL=environment.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.mjs","sourceRoot":"","sources":["../../../src/sandbox/shared/environment.ts"],"names":[],"mappings":"OAAO,EACL,0BAA0B,EAC1B,yCAAyC,EACzC,sBAAsB,EACtB,4BAA4B,EAC5B,4BAA4B,EAC5B,kCAAkC,EAClC,4BAA4B,EAC5B,yCAAyC,GAC1C,MAAM,sCAAsC"}
@@ -0,0 +1,4 @@
1
+ export declare function normalizeGitRepository(repositoryOrEntry: string | {
2
+ host?: string;
3
+ repo: string;
4
+ }): string;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeGitRepository = normalizeGitRepository;
4
+ const agents_core_1 = require("@openai/agents-core");
5
+ function normalizeGitRepository(repositoryOrEntry) {
6
+ const repository = typeof repositoryOrEntry === 'string'
7
+ ? repositoryOrEntry
8
+ : repositoryOrEntry.repo;
9
+ if (!repository) {
10
+ throw new agents_core_1.UserError('git_repo entries require a repo.');
11
+ }
12
+ if (repository.includes('://') || repository.startsWith('git@')) {
13
+ return repository;
14
+ }
15
+ const host = typeof repositoryOrEntry === 'string'
16
+ ? 'github.com'
17
+ : (repositoryOrEntry.host ?? 'github.com');
18
+ return `https://${host}/${repository}.git`;
19
+ }
20
+ //# sourceMappingURL=git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/sandbox/shared/git.ts"],"names":[],"mappings":";;AAEA,wDAwBC;AA1BD,qDAAgD;AAEhD,SAAgB,sBAAsB,CACpC,iBAKK;IAEL,MAAM,UAAU,GACd,OAAO,iBAAiB,KAAK,QAAQ;QACnC,CAAC,CAAC,iBAAiB;QACnB,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC;IAC7B,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,uBAAS,CAAC,kCAAkC,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAChE,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,IAAI,GACR,OAAO,iBAAiB,KAAK,QAAQ;QACnC,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC;IAC/C,OAAO,WAAW,IAAI,IAAI,UAAU,MAAM,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { UserError } from '@openai/agents-core';
2
+ export function normalizeGitRepository(repositoryOrEntry) {
3
+ const repository = typeof repositoryOrEntry === 'string'
4
+ ? repositoryOrEntry
5
+ : repositoryOrEntry.repo;
6
+ if (!repository) {
7
+ throw new UserError('git_repo entries require a repo.');
8
+ }
9
+ if (repository.includes('://') || repository.startsWith('git@')) {
10
+ return repository;
11
+ }
12
+ const host = typeof repositoryOrEntry === 'string'
13
+ ? 'github.com'
14
+ : (repositoryOrEntry.host ?? 'github.com');
15
+ return `https://${host}/${repository}.git`;
16
+ }
17
+ //# sourceMappingURL=git.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.mjs","sourceRoot":"","sources":["../../../src/sandbox/shared/git.ts"],"names":[],"mappings":"OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB;AAE/C,MAAM,UAAU,sBAAsB,CACpC,iBAKK;IAEL,MAAM,UAAU,GACd,OAAO,iBAAiB,KAAK,QAAQ;QACnC,CAAC,CAAC,iBAAiB;QACnB,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC;IAC7B,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAChE,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,IAAI,GACR,OAAO,iBAAiB,KAAK,QAAQ;QACnC,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC;IAC/C,OAAO,WAAW,IAAI,IAAI,UAAU,MAAM,CAAC;AAC7C,CAAC"}