@openai/agents-core 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.
Files changed (476) hide show
  1. package/dist/agentToolRunConfig.js +3 -0
  2. package/dist/agentToolRunConfig.js.map +1 -1
  3. package/dist/agentToolRunConfig.mjs +3 -0
  4. package/dist/agentToolRunConfig.mjs.map +1 -1
  5. package/dist/errors.d.ts +10 -0
  6. package/dist/errors.js +15 -1
  7. package/dist/errors.js.map +1 -1
  8. package/dist/errors.mjs +13 -0
  9. package/dist/errors.mjs.map +1 -1
  10. package/dist/handoff.js +1 -1
  11. package/dist/handoff.js.map +1 -1
  12. package/dist/handoff.mjs +1 -1
  13. package/dist/handoff.mjs.map +1 -1
  14. package/dist/index.d.ts +5 -4
  15. package/dist/index.js +6 -2
  16. package/dist/index.js.map +1 -1
  17. package/dist/index.mjs +3 -2
  18. package/dist/index.mjs.map +1 -1
  19. package/dist/items.d.ts +13 -0
  20. package/dist/items.js +15 -0
  21. package/dist/items.js.map +1 -1
  22. package/dist/items.mjs +15 -0
  23. package/dist/items.mjs.map +1 -1
  24. package/dist/memory/historyMutations.d.ts +6 -0
  25. package/dist/memory/historyMutations.js +32 -0
  26. package/dist/memory/historyMutations.js.map +1 -0
  27. package/dist/memory/historyMutations.mjs +29 -0
  28. package/dist/memory/historyMutations.mjs.map +1 -0
  29. package/dist/memory/memorySession.d.ts +3 -2
  30. package/dist/memory/memorySession.js +7 -0
  31. package/dist/memory/memorySession.js.map +1 -1
  32. package/dist/memory/memorySession.mjs +7 -0
  33. package/dist/memory/memorySession.mjs.map +1 -1
  34. package/dist/memory/session.d.ts +22 -0
  35. package/dist/memory/session.js +6 -0
  36. package/dist/memory/session.js.map +1 -1
  37. package/dist/memory/session.mjs +5 -0
  38. package/dist/memory/session.mjs.map +1 -1
  39. package/dist/metadata.js +2 -2
  40. package/dist/metadata.mjs +2 -2
  41. package/dist/model.d.ts +21 -0
  42. package/dist/run.d.ts +7 -1
  43. package/dist/run.js +152 -57
  44. package/dist/run.js.map +1 -1
  45. package/dist/run.mjs +153 -58
  46. package/dist/run.mjs.map +1 -1
  47. package/dist/runState.d.ts +110 -3
  48. package/dist/runState.js +414 -53
  49. package/dist/runState.js.map +1 -1
  50. package/dist/runState.mjs +412 -53
  51. package/dist/runState.mjs.map +1 -1
  52. package/dist/runner/errorHandlers.d.ts +13 -4
  53. package/dist/runner/errorHandlers.js +22 -4
  54. package/dist/runner/errorHandlers.js.map +1 -1
  55. package/dist/runner/errorHandlers.mjs +21 -4
  56. package/dist/runner/errorHandlers.mjs.map +1 -1
  57. package/dist/runner/items.js +11 -1
  58. package/dist/runner/items.js.map +1 -1
  59. package/dist/runner/items.mjs +11 -1
  60. package/dist/runner/items.mjs.map +1 -1
  61. package/dist/runner/modelPreparation.d.ts +1 -1
  62. package/dist/runner/modelPreparation.js +7 -7
  63. package/dist/runner/modelPreparation.js.map +1 -1
  64. package/dist/runner/modelPreparation.mjs +7 -7
  65. package/dist/runner/modelPreparation.mjs.map +1 -1
  66. package/dist/runner/runLoop.d.ts +2 -1
  67. package/dist/runner/runLoop.js +2 -2
  68. package/dist/runner/runLoop.js.map +1 -1
  69. package/dist/runner/runLoop.mjs +2 -2
  70. package/dist/runner/runLoop.mjs.map +1 -1
  71. package/dist/runner/sandbox.d.ts +33 -0
  72. package/dist/runner/sandbox.js +92 -0
  73. package/dist/runner/sandbox.js.map +1 -0
  74. package/dist/runner/sandbox.mjs +83 -0
  75. package/dist/runner/sandbox.mjs.map +1 -0
  76. package/dist/runner/sessionPersistence.js +33 -12
  77. package/dist/runner/sessionPersistence.js.map +1 -1
  78. package/dist/runner/sessionPersistence.mjs +33 -12
  79. package/dist/runner/sessionPersistence.mjs.map +1 -1
  80. package/dist/runner/streamReconciliation.d.ts +14 -0
  81. package/dist/runner/streamReconciliation.js +80 -0
  82. package/dist/runner/streamReconciliation.js.map +1 -0
  83. package/dist/runner/streamReconciliation.mjs +72 -0
  84. package/dist/runner/streamReconciliation.mjs.map +1 -0
  85. package/dist/runner/toolExecution.js +25 -13
  86. package/dist/runner/toolExecution.js.map +1 -1
  87. package/dist/runner/toolExecution.mjs +25 -13
  88. package/dist/runner/toolExecution.mjs.map +1 -1
  89. package/dist/runner/toolUseTracker.d.ts +3 -1
  90. package/dist/runner/toolUseTracker.js +2 -2
  91. package/dist/runner/toolUseTracker.js.map +1 -1
  92. package/dist/runner/toolUseTracker.mjs +2 -2
  93. package/dist/runner/toolUseTracker.mjs.map +1 -1
  94. package/dist/runner/tracing.js +1 -0
  95. package/dist/runner/tracing.js.map +1 -1
  96. package/dist/runner/tracing.mjs +1 -0
  97. package/dist/runner/tracing.mjs.map +1 -1
  98. package/dist/runner/turnPreparation.d.ts +2 -4
  99. package/dist/runner/turnPreparation.js +7 -3
  100. package/dist/runner/turnPreparation.js.map +1 -1
  101. package/dist/runner/turnPreparation.mjs +7 -3
  102. package/dist/runner/turnPreparation.mjs.map +1 -1
  103. package/dist/runner/turnResolution.js +158 -31
  104. package/dist/runner/turnResolution.js.map +1 -1
  105. package/dist/runner/turnResolution.mjs +160 -33
  106. package/dist/runner/turnResolution.mjs.map +1 -1
  107. package/dist/runner/types.d.ts +8 -8
  108. package/dist/sandbox/agent.d.ts +24 -0
  109. package/dist/sandbox/agent.js +68 -0
  110. package/dist/sandbox/agent.js.map +1 -0
  111. package/dist/sandbox/agent.mjs +64 -0
  112. package/dist/sandbox/agent.mjs.map +1 -0
  113. package/dist/sandbox/brand.d.ts +1 -0
  114. package/dist/sandbox/brand.js +5 -0
  115. package/dist/sandbox/brand.js.map +1 -0
  116. package/dist/sandbox/brand.mjs +2 -0
  117. package/dist/sandbox/brand.mjs.map +1 -0
  118. package/dist/sandbox/capabilities/base.d.ts +25 -0
  119. package/dist/sandbox/capabilities/base.js +89 -0
  120. package/dist/sandbox/capabilities/base.js.map +1 -0
  121. package/dist/sandbox/capabilities/base.mjs +84 -0
  122. package/dist/sandbox/capabilities/base.mjs.map +1 -0
  123. package/dist/sandbox/capabilities/compaction.d.ts +33 -0
  124. package/dist/sandbox/capabilities/compaction.js +172 -0
  125. package/dist/sandbox/capabilities/compaction.js.map +1 -0
  126. package/dist/sandbox/capabilities/compaction.mjs +164 -0
  127. package/dist/sandbox/capabilities/compaction.mjs.map +1 -0
  128. package/dist/sandbox/capabilities/filesystem.d.ts +14 -0
  129. package/dist/sandbox/capabilities/filesystem.js +447 -0
  130. package/dist/sandbox/capabilities/filesystem.js.map +1 -0
  131. package/dist/sandbox/capabilities/filesystem.mjs +444 -0
  132. package/dist/sandbox/capabilities/filesystem.mjs.map +1 -0
  133. package/dist/sandbox/capabilities/index.d.ts +19 -0
  134. package/dist/sandbox/capabilities/index.js +31 -0
  135. package/dist/sandbox/capabilities/index.js.map +1 -0
  136. package/dist/sandbox/capabilities/index.mjs +17 -0
  137. package/dist/sandbox/capabilities/index.mjs.map +1 -0
  138. package/dist/sandbox/capabilities/memory.d.ts +52 -0
  139. package/dist/sandbox/capabilities/memory.js +290 -0
  140. package/dist/sandbox/capabilities/memory.js.map +1 -0
  141. package/dist/sandbox/capabilities/memory.mjs +286 -0
  142. package/dist/sandbox/capabilities/memory.mjs.map +1 -0
  143. package/dist/sandbox/capabilities/shell.d.ts +15 -0
  144. package/dist/sandbox/capabilities/shell.js +130 -0
  145. package/dist/sandbox/capabilities/shell.js.map +1 -0
  146. package/dist/sandbox/capabilities/shell.mjs +127 -0
  147. package/dist/sandbox/capabilities/shell.mjs.map +1 -0
  148. package/dist/sandbox/capabilities/skills.d.ts +47 -0
  149. package/dist/sandbox/capabilities/skills.js +453 -0
  150. package/dist/sandbox/capabilities/skills.js.map +1 -0
  151. package/dist/sandbox/capabilities/skills.mjs +449 -0
  152. package/dist/sandbox/capabilities/skills.mjs.map +1 -0
  153. package/dist/sandbox/capabilities/transport.d.ts +3 -0
  154. package/dist/sandbox/capabilities/transport.js +33 -0
  155. package/dist/sandbox/capabilities/transport.js.map +1 -0
  156. package/dist/sandbox/capabilities/transport.mjs +28 -0
  157. package/dist/sandbox/capabilities/transport.mjs.map +1 -0
  158. package/dist/sandbox/client.d.ts +53 -0
  159. package/dist/sandbox/client.js +34 -0
  160. package/dist/sandbox/client.js.map +1 -0
  161. package/dist/sandbox/client.mjs +31 -0
  162. package/dist/sandbox/client.mjs.map +1 -0
  163. package/dist/sandbox/entries/factories.d.ts +17 -0
  164. package/dist/sandbox/entries/factories.js +112 -0
  165. package/dist/sandbox/entries/factories.js.map +1 -0
  166. package/dist/sandbox/entries/factories.mjs +94 -0
  167. package/dist/sandbox/entries/factories.mjs.map +1 -0
  168. package/dist/sandbox/entries/guards.d.ts +5 -0
  169. package/dist/sandbox/entries/guards.js +19 -0
  170. package/dist/sandbox/entries/guards.js.map +1 -0
  171. package/dist/sandbox/entries/guards.mjs +13 -0
  172. package/dist/sandbox/entries/guards.mjs.map +1 -0
  173. package/dist/sandbox/entries/index.d.ts +3 -0
  174. package/dist/sandbox/entries/index.js +26 -0
  175. package/dist/sandbox/entries/index.js.map +1 -0
  176. package/dist/sandbox/entries/index.mjs +3 -0
  177. package/dist/sandbox/entries/index.mjs.map +1 -0
  178. package/dist/sandbox/entries/types.d.ts +177 -0
  179. package/dist/sandbox/entries/types.js +3 -0
  180. package/dist/sandbox/entries/types.js.map +1 -0
  181. package/dist/sandbox/entries/types.mjs +2 -0
  182. package/dist/sandbox/entries/types.mjs.map +1 -0
  183. package/dist/sandbox/errors.d.ts +151 -0
  184. package/dist/sandbox/errors.js +303 -0
  185. package/dist/sandbox/errors.js.map +1 -0
  186. package/dist/sandbox/errors.mjs +251 -0
  187. package/dist/sandbox/errors.mjs.map +1 -0
  188. package/dist/sandbox/events.d.ts +51 -0
  189. package/dist/sandbox/events.js +104 -0
  190. package/dist/sandbox/events.js.map +1 -0
  191. package/dist/sandbox/events.mjs +95 -0
  192. package/dist/sandbox/events.mjs.map +1 -0
  193. package/dist/sandbox/index.d.ts +14 -0
  194. package/dist/sandbox/index.js +31 -0
  195. package/dist/sandbox/index.js.map +1 -0
  196. package/dist/sandbox/index.mjs +15 -0
  197. package/dist/sandbox/index.mjs.map +1 -0
  198. package/dist/sandbox/internal.d.ts +7 -0
  199. package/dist/sandbox/internal.js +46 -0
  200. package/dist/sandbox/internal.js.map +1 -0
  201. package/dist/sandbox/internal.mjs +8 -0
  202. package/dist/sandbox/internal.mjs.map +1 -0
  203. package/dist/sandbox/local.d.ts +3 -0
  204. package/dist/sandbox/local.js +20 -0
  205. package/dist/sandbox/local.js.map +1 -0
  206. package/dist/sandbox/local.mjs +4 -0
  207. package/dist/sandbox/local.mjs.map +1 -0
  208. package/dist/sandbox/localSkills.d.ts +13 -0
  209. package/dist/sandbox/localSkills.js +62 -0
  210. package/dist/sandbox/localSkills.js.map +1 -0
  211. package/dist/sandbox/localSkills.mjs +59 -0
  212. package/dist/sandbox/localSkills.mjs.map +1 -0
  213. package/dist/sandbox/manifest.d.ts +86 -0
  214. package/dist/sandbox/manifest.js +553 -0
  215. package/dist/sandbox/manifest.js.map +1 -0
  216. package/dist/sandbox/manifest.mjs +545 -0
  217. package/dist/sandbox/manifest.mjs.map +1 -0
  218. package/dist/sandbox/memory/generation.d.ts +56 -0
  219. package/dist/sandbox/memory/generation.js +426 -0
  220. package/dist/sandbox/memory/generation.js.map +1 -0
  221. package/dist/sandbox/memory/generation.mjs +385 -0
  222. package/dist/sandbox/memory/generation.mjs.map +1 -0
  223. package/dist/sandbox/memory/prompts.d.ts +16 -0
  224. package/dist/sandbox/memory/prompts.js +1685 -0
  225. package/dist/sandbox/memory/prompts.js.map +1 -0
  226. package/dist/sandbox/memory/prompts.mjs +1679 -0
  227. package/dist/sandbox/memory/prompts.mjs.map +1 -0
  228. package/dist/sandbox/memory/rollouts.d.ts +33 -0
  229. package/dist/sandbox/memory/rollouts.js +228 -0
  230. package/dist/sandbox/memory/rollouts.js.map +1 -0
  231. package/dist/sandbox/memory/rollouts.mjs +221 -0
  232. package/dist/sandbox/memory/rollouts.mjs.map +1 -0
  233. package/dist/sandbox/memory/storage.d.ts +70 -0
  234. package/dist/sandbox/memory/storage.js +543 -0
  235. package/dist/sandbox/memory/storage.js.map +1 -0
  236. package/dist/sandbox/memory/storage.mjs +537 -0
  237. package/dist/sandbox/memory/storage.mjs.map +1 -0
  238. package/dist/sandbox/pathGrants.d.ts +11 -0
  239. package/dist/sandbox/pathGrants.js +28 -0
  240. package/dist/sandbox/pathGrants.js.map +1 -0
  241. package/dist/sandbox/pathGrants.mjs +25 -0
  242. package/dist/sandbox/pathGrants.mjs.map +1 -0
  243. package/dist/sandbox/permissions.d.ts +29 -0
  244. package/dist/sandbox/permissions.js +140 -0
  245. package/dist/sandbox/permissions.js.map +1 -0
  246. package/dist/sandbox/permissions.mjs +134 -0
  247. package/dist/sandbox/permissions.mjs.map +1 -0
  248. package/dist/sandbox/runtime/agentKeys.d.ts +7 -0
  249. package/dist/sandbox/runtime/agentKeys.js +76 -0
  250. package/dist/sandbox/runtime/agentKeys.js.map +1 -0
  251. package/dist/sandbox/runtime/agentKeys.mjs +69 -0
  252. package/dist/sandbox/runtime/agentKeys.mjs.map +1 -0
  253. package/dist/sandbox/runtime/agentPreparation.d.ts +20 -0
  254. package/dist/sandbox/runtime/agentPreparation.js +178 -0
  255. package/dist/sandbox/runtime/agentPreparation.js.map +1 -0
  256. package/dist/sandbox/runtime/agentPreparation.mjs +172 -0
  257. package/dist/sandbox/runtime/agentPreparation.mjs.map +1 -0
  258. package/dist/sandbox/runtime/index.d.ts +5 -0
  259. package/dist/sandbox/runtime/index.js +22 -0
  260. package/dist/sandbox/runtime/index.js.map +1 -0
  261. package/dist/sandbox/runtime/index.mjs +6 -0
  262. package/dist/sandbox/runtime/index.mjs.map +1 -0
  263. package/dist/sandbox/runtime/livePreservedSessions.d.ts +25 -0
  264. package/dist/sandbox/runtime/livePreservedSessions.js +58 -0
  265. package/dist/sandbox/runtime/livePreservedSessions.js.map +1 -0
  266. package/dist/sandbox/runtime/livePreservedSessions.mjs +51 -0
  267. package/dist/sandbox/runtime/livePreservedSessions.mjs.map +1 -0
  268. package/dist/sandbox/runtime/manager.d.ts +68 -0
  269. package/dist/sandbox/runtime/manager.js +704 -0
  270. package/dist/sandbox/runtime/manager.js.map +1 -0
  271. package/dist/sandbox/runtime/manager.mjs +697 -0
  272. package/dist/sandbox/runtime/manager.mjs.map +1 -0
  273. package/dist/sandbox/runtime/prompts.d.ts +6 -0
  274. package/dist/sandbox/runtime/prompts.js +108 -0
  275. package/dist/sandbox/runtime/prompts.js.map +1 -0
  276. package/dist/sandbox/runtime/prompts.mjs +101 -0
  277. package/dist/sandbox/runtime/prompts.mjs.map +1 -0
  278. package/dist/sandbox/runtime/providedSessionManifest.d.ts +3 -0
  279. package/dist/sandbox/runtime/providedSessionManifest.js +175 -0
  280. package/dist/sandbox/runtime/providedSessionManifest.js.map +1 -0
  281. package/dist/sandbox/runtime/providedSessionManifest.mjs +172 -0
  282. package/dist/sandbox/runtime/providedSessionManifest.mjs.map +1 -0
  283. package/dist/sandbox/runtime/runAsManifest.d.ts +4 -0
  284. package/dist/sandbox/runtime/runAsManifest.js +40 -0
  285. package/dist/sandbox/runtime/runAsManifest.js.map +1 -0
  286. package/dist/sandbox/runtime/runAsManifest.mjs +36 -0
  287. package/dist/sandbox/runtime/runAsManifest.mjs.map +1 -0
  288. package/dist/sandbox/runtime/sessionLifecycle.d.ts +6 -0
  289. package/dist/sandbox/runtime/sessionLifecycle.js +222 -0
  290. package/dist/sandbox/runtime/sessionLifecycle.js.map +1 -0
  291. package/dist/sandbox/runtime/sessionLifecycle.mjs +215 -0
  292. package/dist/sandbox/runtime/sessionLifecycle.mjs.map +1 -0
  293. package/dist/sandbox/runtime/sessionSerialization.d.ts +12 -0
  294. package/dist/sandbox/runtime/sessionSerialization.js +74 -0
  295. package/dist/sandbox/runtime/sessionSerialization.js.map +1 -0
  296. package/dist/sandbox/runtime/sessionSerialization.mjs +71 -0
  297. package/dist/sandbox/runtime/sessionSerialization.mjs.map +1 -0
  298. package/dist/sandbox/runtime/sessionState.d.ts +26 -0
  299. package/dist/sandbox/runtime/sessionState.js +113 -0
  300. package/dist/sandbox/runtime/sessionState.js.map +1 -0
  301. package/dist/sandbox/runtime/sessionState.mjs +104 -0
  302. package/dist/sandbox/runtime/sessionState.mjs.map +1 -0
  303. package/dist/sandbox/runtime/spans.d.ts +1 -0
  304. package/dist/sandbox/runtime/spans.js +51 -0
  305. package/dist/sandbox/runtime/spans.js.map +1 -0
  306. package/dist/sandbox/runtime/spans.mjs +48 -0
  307. package/dist/sandbox/runtime/spans.mjs.map +1 -0
  308. package/dist/sandbox/runtime/toolRehydration.d.ts +34 -0
  309. package/dist/sandbox/runtime/toolRehydration.js +207 -0
  310. package/dist/sandbox/runtime/toolRehydration.js.map +1 -0
  311. package/dist/sandbox/runtime/toolRehydration.mjs +200 -0
  312. package/dist/sandbox/runtime/toolRehydration.mjs.map +1 -0
  313. package/dist/sandbox/sandboxes/docker.d.ts +75 -0
  314. package/dist/sandbox/sandboxes/docker.js +2015 -0
  315. package/dist/sandbox/sandboxes/docker.js.map +1 -0
  316. package/dist/sandbox/sandboxes/docker.mjs +2010 -0
  317. package/dist/sandbox/sandboxes/docker.mjs.map +1 -0
  318. package/dist/sandbox/sandboxes/index.d.ts +3 -0
  319. package/dist/sandbox/sandboxes/index.js +20 -0
  320. package/dist/sandbox/sandboxes/index.js.map +1 -0
  321. package/dist/sandbox/sandboxes/index.mjs +4 -0
  322. package/dist/sandbox/sandboxes/index.mjs.map +1 -0
  323. package/dist/sandbox/sandboxes/shared/localSnapshotPaths.d.ts +1 -0
  324. package/dist/sandbox/sandboxes/shared/localSnapshotPaths.js +22 -0
  325. package/dist/sandbox/sandboxes/shared/localSnapshotPaths.js.map +1 -0
  326. package/dist/sandbox/sandboxes/shared/localSnapshotPaths.mjs +19 -0
  327. package/dist/sandbox/sandboxes/shared/localSnapshotPaths.mjs.map +1 -0
  328. package/dist/sandbox/sandboxes/shared/localSnapshots.d.ts +34 -0
  329. package/dist/sandbox/sandboxes/shared/localSnapshots.js +525 -0
  330. package/dist/sandbox/sandboxes/shared/localSnapshots.js.map +1 -0
  331. package/dist/sandbox/sandboxes/shared/localSnapshots.mjs +508 -0
  332. package/dist/sandbox/sandboxes/shared/localSnapshots.mjs.map +1 -0
  333. package/dist/sandbox/sandboxes/shared/localWorkspace.d.ts +27 -0
  334. package/dist/sandbox/sandboxes/shared/localWorkspace.js +693 -0
  335. package/dist/sandbox/sandboxes/shared/localWorkspace.js.map +1 -0
  336. package/dist/sandbox/sandboxes/shared/localWorkspace.mjs +684 -0
  337. package/dist/sandbox/sandboxes/shared/localWorkspace.mjs.map +1 -0
  338. package/dist/sandbox/sandboxes/shared/manifestPersistence.d.ts +15 -0
  339. package/dist/sandbox/sandboxes/shared/manifestPersistence.js +191 -0
  340. package/dist/sandbox/sandboxes/shared/manifestPersistence.js.map +1 -0
  341. package/dist/sandbox/sandboxes/shared/manifestPersistence.mjs +182 -0
  342. package/dist/sandbox/sandboxes/shared/manifestPersistence.mjs.map +1 -0
  343. package/dist/sandbox/sandboxes/shared/pty.d.ts +9 -0
  344. package/dist/sandbox/sandboxes/shared/pty.js +151 -0
  345. package/dist/sandbox/sandboxes/shared/pty.js.map +1 -0
  346. package/dist/sandbox/sandboxes/shared/pty.mjs +148 -0
  347. package/dist/sandbox/sandboxes/shared/pty.mjs.map +1 -0
  348. package/dist/sandbox/sandboxes/shared/runProcess.d.ts +16 -0
  349. package/dist/sandbox/sandboxes/shared/runProcess.js +90 -0
  350. package/dist/sandbox/sandboxes/shared/runProcess.js.map +1 -0
  351. package/dist/sandbox/sandboxes/shared/runProcess.mjs +86 -0
  352. package/dist/sandbox/sandboxes/shared/runProcess.mjs.map +1 -0
  353. package/dist/sandbox/sandboxes/shared/sessionStateValues.d.ts +18 -0
  354. package/dist/sandbox/sandboxes/shared/sessionStateValues.js +40 -0
  355. package/dist/sandbox/sandboxes/shared/sessionStateValues.js.map +1 -0
  356. package/dist/sandbox/sandboxes/shared/sessionStateValues.mjs +35 -0
  357. package/dist/sandbox/sandboxes/shared/sessionStateValues.mjs.map +1 -0
  358. package/dist/sandbox/sandboxes/shared/shellCommand.d.ts +17 -0
  359. package/dist/sandbox/sandboxes/shared/shellCommand.js +38 -0
  360. package/dist/sandbox/sandboxes/shared/shellCommand.js.map +1 -0
  361. package/dist/sandbox/sandboxes/shared/shellCommand.mjs +34 -0
  362. package/dist/sandbox/sandboxes/shared/shellCommand.mjs.map +1 -0
  363. package/dist/sandbox/sandboxes/types.d.ts +11 -0
  364. package/dist/sandbox/sandboxes/types.js +3 -0
  365. package/dist/sandbox/sandboxes/types.js.map +1 -0
  366. package/dist/sandbox/sandboxes/types.mjs +2 -0
  367. package/dist/sandbox/sandboxes/types.mjs.map +1 -0
  368. package/dist/sandbox/sandboxes/unixLocal.d.ts +95 -0
  369. package/dist/sandbox/sandboxes/unixLocal.js +863 -0
  370. package/dist/sandbox/sandboxes/unixLocal.js.map +1 -0
  371. package/dist/sandbox/sandboxes/unixLocal.mjs +858 -0
  372. package/dist/sandbox/sandboxes/unixLocal.mjs.map +1 -0
  373. package/dist/sandbox/session.d.ts +123 -0
  374. package/dist/sandbox/session.js +58 -0
  375. package/dist/sandbox/session.js.map +1 -0
  376. package/dist/sandbox/session.mjs +50 -0
  377. package/dist/sandbox/session.mjs.map +1 -0
  378. package/dist/sandbox/shared/compare.d.ts +2 -0
  379. package/dist/sandbox/shared/compare.js +13 -0
  380. package/dist/sandbox/shared/compare.js.map +1 -0
  381. package/dist/sandbox/shared/compare.mjs +9 -0
  382. package/dist/sandbox/shared/compare.mjs.map +1 -0
  383. package/dist/sandbox/shared/environment.d.ts +14 -0
  384. package/dist/sandbox/shared/environment.js +69 -0
  385. package/dist/sandbox/shared/environment.js.map +1 -0
  386. package/dist/sandbox/shared/environment.mjs +59 -0
  387. package/dist/sandbox/shared/environment.mjs.map +1 -0
  388. package/dist/sandbox/shared/hostPath.d.ts +4 -0
  389. package/dist/sandbox/shared/hostPath.js +22 -0
  390. package/dist/sandbox/shared/hostPath.js.map +1 -0
  391. package/dist/sandbox/shared/hostPath.mjs +16 -0
  392. package/dist/sandbox/shared/hostPath.mjs.map +1 -0
  393. package/dist/sandbox/shared/manifestCollections.d.ts +12 -0
  394. package/dist/sandbox/shared/manifestCollections.js +40 -0
  395. package/dist/sandbox/shared/manifestCollections.js.map +1 -0
  396. package/dist/sandbox/shared/manifestCollections.mjs +34 -0
  397. package/dist/sandbox/shared/manifestCollections.mjs.map +1 -0
  398. package/dist/sandbox/shared/media.d.ts +6 -0
  399. package/dist/sandbox/shared/media.js +126 -0
  400. package/dist/sandbox/shared/media.js.map +1 -0
  401. package/dist/sandbox/shared/media.mjs +119 -0
  402. package/dist/sandbox/shared/media.mjs.map +1 -0
  403. package/dist/sandbox/shared/output.d.ts +12 -0
  404. package/dist/sandbox/shared/output.js +108 -0
  405. package/dist/sandbox/shared/output.js.map +1 -0
  406. package/dist/sandbox/shared/output.mjs +103 -0
  407. package/dist/sandbox/shared/output.mjs.map +1 -0
  408. package/dist/sandbox/shared/posixPath.d.ts +7 -0
  409. package/dist/sandbox/shared/posixPath.js +90 -0
  410. package/dist/sandbox/shared/posixPath.js.map +1 -0
  411. package/dist/sandbox/shared/posixPath.mjs +81 -0
  412. package/dist/sandbox/shared/posixPath.mjs.map +1 -0
  413. package/dist/sandbox/shared/remoteMountCommandAllowlist.d.ts +3 -0
  414. package/dist/sandbox/shared/remoteMountCommandAllowlist.js +33 -0
  415. package/dist/sandbox/shared/remoteMountCommandAllowlist.js.map +1 -0
  416. package/dist/sandbox/shared/remoteMountCommandAllowlist.mjs +28 -0
  417. package/dist/sandbox/shared/remoteMountCommandAllowlist.mjs.map +1 -0
  418. package/dist/sandbox/shared/shell.d.ts +1 -0
  419. package/dist/sandbox/shared/shell.js +7 -0
  420. package/dist/sandbox/shared/shell.js.map +1 -0
  421. package/dist/sandbox/shared/shell.mjs +4 -0
  422. package/dist/sandbox/shared/shell.mjs.map +1 -0
  423. package/dist/sandbox/shared/stableJson.d.ts +12 -0
  424. package/dist/sandbox/shared/stableJson.js +40 -0
  425. package/dist/sandbox/shared/stableJson.js.map +1 -0
  426. package/dist/sandbox/shared/stableJson.mjs +35 -0
  427. package/dist/sandbox/shared/stableJson.mjs.map +1 -0
  428. package/dist/sandbox/shared/typeGuards.d.ts +6 -0
  429. package/dist/sandbox/shared/typeGuards.js +34 -0
  430. package/dist/sandbox/shared/typeGuards.js.map +1 -0
  431. package/dist/sandbox/shared/typeGuards.mjs +26 -0
  432. package/dist/sandbox/shared/typeGuards.mjs.map +1 -0
  433. package/dist/sandbox/snapshot.d.ts +60 -0
  434. package/dist/sandbox/snapshot.js +45 -0
  435. package/dist/sandbox/snapshot.js.map +1 -0
  436. package/dist/sandbox/snapshot.mjs +39 -0
  437. package/dist/sandbox/snapshot.mjs.map +1 -0
  438. package/dist/sandbox/users.d.ts +11 -0
  439. package/dist/sandbox/users.js +31 -0
  440. package/dist/sandbox/users.js.map +1 -0
  441. package/dist/sandbox/users.mjs +26 -0
  442. package/dist/sandbox/users.mjs.map +1 -0
  443. package/dist/sandbox/workspacePaths.d.ts +20 -0
  444. package/dist/sandbox/workspacePaths.js +73 -0
  445. package/dist/sandbox/workspacePaths.js.map +1 -0
  446. package/dist/sandbox/workspacePaths.mjs +69 -0
  447. package/dist/sandbox/workspacePaths.mjs.map +1 -0
  448. package/dist/tool.js +1 -1
  449. package/dist/tool.js.map +1 -1
  450. package/dist/tool.mjs +1 -1
  451. package/dist/tool.mjs.map +1 -1
  452. package/dist/types/protocol.d.ts +8 -0
  453. package/dist/types/protocol.js +1 -0
  454. package/dist/types/protocol.js.map +1 -1
  455. package/dist/types/protocol.mjs +1 -0
  456. package/dist/types/protocol.mjs.map +1 -1
  457. package/dist/utils/messages.d.ts +6 -0
  458. package/dist/utils/messages.js +21 -0
  459. package/dist/utils/messages.js.map +1 -1
  460. package/dist/utils/messages.mjs +20 -0
  461. package/dist/utils/messages.mjs.map +1 -1
  462. package/dist/utils/strictToolSchema.d.ts +4 -0
  463. package/dist/utils/strictToolSchema.js +358 -0
  464. package/dist/utils/strictToolSchema.js.map +1 -0
  465. package/dist/utils/strictToolSchema.mjs +353 -0
  466. package/dist/utils/strictToolSchema.mjs.map +1 -0
  467. package/dist/utils/tools.d.ts +3 -1
  468. package/dist/utils/tools.js +18 -7
  469. package/dist/utils/tools.js.map +1 -1
  470. package/dist/utils/tools.mjs +18 -7
  471. package/dist/utils/tools.mjs.map +1 -1
  472. package/dist/utils/zodJsonSchemaCompat.js +18 -16
  473. package/dist/utils/zodJsonSchemaCompat.js.map +1 -1
  474. package/dist/utils/zodJsonSchemaCompat.mjs +18 -16
  475. package/dist/utils/zodJsonSchemaCompat.mjs.map +1 -1
  476. package/package.json +25 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localWorkspace.mjs","sourceRoot":"","sources":["../../../../src/sandbox/sandboxes/shared/localWorkspace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { type Entry } from '../../entries';
2
+ import { Manifest } from '../../manifest';
3
+ import { type SerializedManifestEnvironment } from '../../shared/environment';
4
+ type ManifestPersistenceState = {
5
+ manifest: Manifest;
6
+ environment?: Record<string, string>;
7
+ };
8
+ export declare function serializeManifest(manifest: Manifest): Manifest;
9
+ export declare function serializeManifestRecord(manifest: Manifest): Record<string, unknown>;
10
+ export declare function deserializeManifest(value: Record<string, unknown> | undefined): Manifest;
11
+ export declare function sanitizeEnvironmentForPersistence(state: ManifestPersistenceState): Record<string, string>;
12
+ export declare function serializeEnvironmentForPersistence(state: ManifestPersistenceState): SerializedManifestEnvironment;
13
+ export declare function mergeManifestDelta(base: Manifest, update: Manifest): Manifest;
14
+ export declare function mergeManifestEntryDelta(base: Manifest, path: string, entry: Entry): Manifest;
15
+ export {};
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.serializeManifest = serializeManifest;
4
+ exports.serializeManifestRecord = serializeManifestRecord;
5
+ exports.deserializeManifest = deserializeManifest;
6
+ exports.sanitizeEnvironmentForPersistence = sanitizeEnvironmentForPersistence;
7
+ exports.serializeEnvironmentForPersistence = serializeEnvironmentForPersistence;
8
+ exports.mergeManifestDelta = mergeManifestDelta;
9
+ exports.mergeManifestEntryDelta = mergeManifestEntryDelta;
10
+ const entries_1 = require("../../entries/index.js");
11
+ const manifest_1 = require("../../manifest.js");
12
+ const manifestCollections_1 = require("../../shared/manifestCollections.js");
13
+ const remoteMountCommandAllowlist_1 = require("../../shared/remoteMountCommandAllowlist.js");
14
+ const environment_1 = require("../../shared/environment.js");
15
+ const base64_1 = require("../../../utils/base64.js");
16
+ function serializeManifest(manifest) {
17
+ return deserializeManifest(serializeManifestRecord(manifest));
18
+ }
19
+ function serializeManifestRecord(manifest) {
20
+ return {
21
+ version: manifest.version,
22
+ root: manifest.root,
23
+ entries: sanitizeEntriesForPersistence(manifest.entries),
24
+ environment: serializePersistentManifestEnvironment(manifest),
25
+ users: structuredClone(manifest.users),
26
+ groups: structuredClone(manifest.groups),
27
+ extraPathGrants: structuredClone(manifest.extraPathGrants),
28
+ remoteMountCommandAllowlist: [...manifest.remoteMountCommandAllowlist],
29
+ };
30
+ }
31
+ function deserializeManifest(value) {
32
+ return new manifest_1.Manifest(deserializeManifestRecord(value ?? {}));
33
+ }
34
+ function sanitizeEnvironmentForPersistence(state) {
35
+ const environment = serializeEnvironmentForPersistence(state);
36
+ return Object.fromEntries(Object.entries(environment).map(([key, value]) => [key, value.value]));
37
+ }
38
+ function serializeEnvironmentForPersistence(state) {
39
+ const runtimeEnvironment = state.environment ?? {};
40
+ const ephemeralKeys = new Set();
41
+ const serialized = {};
42
+ for (const [key, value] of Object.entries(state.manifest.environment)) {
43
+ if (value.ephemeral) {
44
+ ephemeralKeys.add(key);
45
+ continue;
46
+ }
47
+ serialized[key] = {
48
+ ...value.normalized(),
49
+ value: runtimeEnvironment[key] ?? value.value,
50
+ };
51
+ }
52
+ for (const [key, value] of Object.entries(runtimeEnvironment)) {
53
+ if (key in state.manifest.environment || ephemeralKeys.has(key)) {
54
+ continue;
55
+ }
56
+ // Provider startup may add runtime env vars that are not in the manifest; keep them
57
+ // unless they collide with an explicitly ephemeral manifest key.
58
+ serialized[key] = { value };
59
+ }
60
+ return serialized;
61
+ }
62
+ function mergeManifestDelta(base, update) {
63
+ return new manifest_1.Manifest({
64
+ version: update.version ?? base.version,
65
+ root: base.root,
66
+ entries: {
67
+ ...structuredClone(base.entries),
68
+ ...structuredClone(update.entries),
69
+ },
70
+ environment: {
71
+ ...(0, environment_1.serializeManifestEnvironment)(base),
72
+ ...(0, environment_1.serializeManifestEnvironment)(update),
73
+ },
74
+ users: (0, manifestCollections_1.mergeNamedObjects)(base.users, update.users),
75
+ groups: (0, manifestCollections_1.mergeNamedObjects)(base.groups, update.groups),
76
+ extraPathGrants: (0, manifestCollections_1.mergePathKeyedObjects)(base.extraPathGrants, update.extraPathGrants),
77
+ remoteMountCommandAllowlist: shouldMergeRemoteMountCommandAllowlist(update)
78
+ ? update.remoteMountCommandAllowlist
79
+ : base.remoteMountCommandAllowlist,
80
+ });
81
+ }
82
+ function mergeManifestEntryDelta(base, path, entry) {
83
+ return mergeManifestDelta(base, new manifest_1.Manifest({
84
+ root: base.root,
85
+ entries: {
86
+ [path]: structuredClone(entry),
87
+ },
88
+ }));
89
+ }
90
+ function serializePersistentManifestEnvironment(manifest) {
91
+ const environment = (0, environment_1.serializeManifestEnvironment)(manifest);
92
+ // Ephemeral envs are runtime-only and must not be persisted.
93
+ // Persisting them would leak values into snapshots.
94
+ // Resume would also depend on regenerated data.
95
+ return Object.fromEntries(Object.entries(environment).filter(([key]) => !manifest.environment[key]?.ephemeral));
96
+ }
97
+ function shouldMergeRemoteMountCommandAllowlist(update) {
98
+ return (0, remoteMountCommandAllowlist_1.hasCustomRemoteMountCommandAllowlist)(update.remoteMountCommandAllowlist);
99
+ }
100
+ function sanitizeEntriesForPersistence(entries, ancestorEphemeral = false) {
101
+ const sanitizedEntries = {};
102
+ for (const [path, entry] of Object.entries(entries)) {
103
+ const sanitizedEntry = sanitizeEntryForPersistence(entry, ancestorEphemeral);
104
+ if (sanitizedEntry) {
105
+ sanitizedEntries[path] = sanitizedEntry;
106
+ }
107
+ }
108
+ return sanitizedEntries;
109
+ }
110
+ function sanitizeEntryForPersistence(entry, ancestorEphemeral) {
111
+ const effectiveEphemeral = ancestorEphemeral || Boolean(entry.ephemeral);
112
+ if (entry.type === 'file') {
113
+ return !effectiveEphemeral
114
+ ? {
115
+ ...entry,
116
+ content: serializeFileContentForPersistence(entry.content),
117
+ }
118
+ : undefined;
119
+ }
120
+ if (entry.type !== 'dir' || !entry.children) {
121
+ return !effectiveEphemeral || (0, entries_1.isMount)(entry) ? { ...entry } : undefined;
122
+ }
123
+ const children = sanitizeEntriesForPersistence(entry.children, effectiveEphemeral);
124
+ if (effectiveEphemeral && Object.keys(children).length === 0) {
125
+ return undefined;
126
+ }
127
+ return {
128
+ ...entry,
129
+ children,
130
+ };
131
+ }
132
+ function deserializeManifestRecord(value) {
133
+ return {
134
+ ...value,
135
+ entries: deserializeEntriesForRuntime(value.entries),
136
+ };
137
+ }
138
+ function deserializeEntriesForRuntime(entries) {
139
+ if (!entries) {
140
+ return {};
141
+ }
142
+ return Object.fromEntries(Object.entries(entries).map(([path, entry]) => [
143
+ path,
144
+ deserializeEntryForRuntime(entry),
145
+ ]));
146
+ }
147
+ function deserializeEntryForRuntime(entry) {
148
+ if (entry.type === 'file') {
149
+ const content = entry.content;
150
+ return {
151
+ ...entry,
152
+ content: isSerializedFileContent(content)
153
+ ? decodeBase64ToUint8Array(content.data)
154
+ : entry.content,
155
+ };
156
+ }
157
+ if (entry.type === 'dir' && entry.children) {
158
+ return {
159
+ ...entry,
160
+ children: deserializeEntriesForRuntime(entry.children),
161
+ };
162
+ }
163
+ return { ...entry };
164
+ }
165
+ function serializeFileContentForPersistence(content) {
166
+ return typeof content === 'string'
167
+ ? content
168
+ : {
169
+ type: 'base64',
170
+ data: (0, base64_1.encodeUint8ArrayToBase64)(content),
171
+ };
172
+ }
173
+ function isSerializedFileContent(value) {
174
+ return (typeof value === 'object' &&
175
+ value !== null &&
176
+ value.type === 'base64' &&
177
+ typeof value.data === 'string');
178
+ }
179
+ function decodeBase64ToUint8Array(value) {
180
+ const bufferCtor = globalThis.Buffer;
181
+ if (bufferCtor) {
182
+ return Uint8Array.from(bufferCtor.from(value, 'base64'));
183
+ }
184
+ const binary = atob(value);
185
+ const bytes = new Uint8Array(binary.length);
186
+ for (let index = 0; index < binary.length; index += 1) {
187
+ bytes[index] = binary.charCodeAt(index);
188
+ }
189
+ return bytes;
190
+ }
191
+ //# sourceMappingURL=manifestPersistence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifestPersistence.js","sourceRoot":"","sources":["../../../../src/sandbox/sandboxes/shared/manifestPersistence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,182 @@
1
+ import { isMount } from "../../entries/index.mjs";
2
+ import { Manifest } from "../../manifest.mjs";
3
+ import { mergeNamedObjects, mergePathKeyedObjects, } from "../../shared/manifestCollections.mjs";
4
+ import { hasCustomRemoteMountCommandAllowlist } from "../../shared/remoteMountCommandAllowlist.mjs";
5
+ import { serializeManifestEnvironment, } from "../../shared/environment.mjs";
6
+ import { encodeUint8ArrayToBase64 } from "../../../utils/base64.mjs";
7
+ export function serializeManifest(manifest) {
8
+ return deserializeManifest(serializeManifestRecord(manifest));
9
+ }
10
+ export function serializeManifestRecord(manifest) {
11
+ return {
12
+ version: manifest.version,
13
+ root: manifest.root,
14
+ entries: sanitizeEntriesForPersistence(manifest.entries),
15
+ environment: serializePersistentManifestEnvironment(manifest),
16
+ users: structuredClone(manifest.users),
17
+ groups: structuredClone(manifest.groups),
18
+ extraPathGrants: structuredClone(manifest.extraPathGrants),
19
+ remoteMountCommandAllowlist: [...manifest.remoteMountCommandAllowlist],
20
+ };
21
+ }
22
+ export function deserializeManifest(value) {
23
+ return new Manifest(deserializeManifestRecord(value ?? {}));
24
+ }
25
+ export function sanitizeEnvironmentForPersistence(state) {
26
+ const environment = serializeEnvironmentForPersistence(state);
27
+ return Object.fromEntries(Object.entries(environment).map(([key, value]) => [key, value.value]));
28
+ }
29
+ export function serializeEnvironmentForPersistence(state) {
30
+ const runtimeEnvironment = state.environment ?? {};
31
+ const ephemeralKeys = new Set();
32
+ const serialized = {};
33
+ for (const [key, value] of Object.entries(state.manifest.environment)) {
34
+ if (value.ephemeral) {
35
+ ephemeralKeys.add(key);
36
+ continue;
37
+ }
38
+ serialized[key] = {
39
+ ...value.normalized(),
40
+ value: runtimeEnvironment[key] ?? value.value,
41
+ };
42
+ }
43
+ for (const [key, value] of Object.entries(runtimeEnvironment)) {
44
+ if (key in state.manifest.environment || ephemeralKeys.has(key)) {
45
+ continue;
46
+ }
47
+ // Provider startup may add runtime env vars that are not in the manifest; keep them
48
+ // unless they collide with an explicitly ephemeral manifest key.
49
+ serialized[key] = { value };
50
+ }
51
+ return serialized;
52
+ }
53
+ export function mergeManifestDelta(base, update) {
54
+ return new Manifest({
55
+ version: update.version ?? base.version,
56
+ root: base.root,
57
+ entries: {
58
+ ...structuredClone(base.entries),
59
+ ...structuredClone(update.entries),
60
+ },
61
+ environment: {
62
+ ...serializeManifestEnvironment(base),
63
+ ...serializeManifestEnvironment(update),
64
+ },
65
+ users: mergeNamedObjects(base.users, update.users),
66
+ groups: mergeNamedObjects(base.groups, update.groups),
67
+ extraPathGrants: mergePathKeyedObjects(base.extraPathGrants, update.extraPathGrants),
68
+ remoteMountCommandAllowlist: shouldMergeRemoteMountCommandAllowlist(update)
69
+ ? update.remoteMountCommandAllowlist
70
+ : base.remoteMountCommandAllowlist,
71
+ });
72
+ }
73
+ export function mergeManifestEntryDelta(base, path, entry) {
74
+ return mergeManifestDelta(base, new Manifest({
75
+ root: base.root,
76
+ entries: {
77
+ [path]: structuredClone(entry),
78
+ },
79
+ }));
80
+ }
81
+ function serializePersistentManifestEnvironment(manifest) {
82
+ const environment = serializeManifestEnvironment(manifest);
83
+ // Ephemeral envs are runtime-only and must not be persisted.
84
+ // Persisting them would leak values into snapshots.
85
+ // Resume would also depend on regenerated data.
86
+ return Object.fromEntries(Object.entries(environment).filter(([key]) => !manifest.environment[key]?.ephemeral));
87
+ }
88
+ function shouldMergeRemoteMountCommandAllowlist(update) {
89
+ return hasCustomRemoteMountCommandAllowlist(update.remoteMountCommandAllowlist);
90
+ }
91
+ function sanitizeEntriesForPersistence(entries, ancestorEphemeral = false) {
92
+ const sanitizedEntries = {};
93
+ for (const [path, entry] of Object.entries(entries)) {
94
+ const sanitizedEntry = sanitizeEntryForPersistence(entry, ancestorEphemeral);
95
+ if (sanitizedEntry) {
96
+ sanitizedEntries[path] = sanitizedEntry;
97
+ }
98
+ }
99
+ return sanitizedEntries;
100
+ }
101
+ function sanitizeEntryForPersistence(entry, ancestorEphemeral) {
102
+ const effectiveEphemeral = ancestorEphemeral || Boolean(entry.ephemeral);
103
+ if (entry.type === 'file') {
104
+ return !effectiveEphemeral
105
+ ? {
106
+ ...entry,
107
+ content: serializeFileContentForPersistence(entry.content),
108
+ }
109
+ : undefined;
110
+ }
111
+ if (entry.type !== 'dir' || !entry.children) {
112
+ return !effectiveEphemeral || isMount(entry) ? { ...entry } : undefined;
113
+ }
114
+ const children = sanitizeEntriesForPersistence(entry.children, effectiveEphemeral);
115
+ if (effectiveEphemeral && Object.keys(children).length === 0) {
116
+ return undefined;
117
+ }
118
+ return {
119
+ ...entry,
120
+ children,
121
+ };
122
+ }
123
+ function deserializeManifestRecord(value) {
124
+ return {
125
+ ...value,
126
+ entries: deserializeEntriesForRuntime(value.entries),
127
+ };
128
+ }
129
+ function deserializeEntriesForRuntime(entries) {
130
+ if (!entries) {
131
+ return {};
132
+ }
133
+ return Object.fromEntries(Object.entries(entries).map(([path, entry]) => [
134
+ path,
135
+ deserializeEntryForRuntime(entry),
136
+ ]));
137
+ }
138
+ function deserializeEntryForRuntime(entry) {
139
+ if (entry.type === 'file') {
140
+ const content = entry.content;
141
+ return {
142
+ ...entry,
143
+ content: isSerializedFileContent(content)
144
+ ? decodeBase64ToUint8Array(content.data)
145
+ : entry.content,
146
+ };
147
+ }
148
+ if (entry.type === 'dir' && entry.children) {
149
+ return {
150
+ ...entry,
151
+ children: deserializeEntriesForRuntime(entry.children),
152
+ };
153
+ }
154
+ return { ...entry };
155
+ }
156
+ function serializeFileContentForPersistence(content) {
157
+ return typeof content === 'string'
158
+ ? content
159
+ : {
160
+ type: 'base64',
161
+ data: encodeUint8ArrayToBase64(content),
162
+ };
163
+ }
164
+ function isSerializedFileContent(value) {
165
+ return (typeof value === 'object' &&
166
+ value !== null &&
167
+ value.type === 'base64' &&
168
+ typeof value.data === 'string');
169
+ }
170
+ function decodeBase64ToUint8Array(value) {
171
+ const bufferCtor = globalThis.Buffer;
172
+ if (bufferCtor) {
173
+ return Uint8Array.from(bufferCtor.from(value, 'base64'));
174
+ }
175
+ const binary = atob(value);
176
+ const bytes = new Uint8Array(binary.length);
177
+ for (let index = 0; index < binary.length; index += 1) {
178
+ bytes[index] = binary.charCodeAt(index);
179
+ }
180
+ return bytes;
181
+ }
182
+ //# sourceMappingURL=manifestPersistence.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifestPersistence.mjs","sourceRoot":"","sources":["../../../../src/sandbox/sandboxes/shared/manifestPersistence.ts"],"names":[],"mappings":"OAAO,EAAE,OAAO,EAAc;OACvB,EAAE,QAAQ,EAAE;OACZ,EACL,iBAAiB,EACjB,qBAAqB,GACtB;OACM,EAAE,oCAAoC,EAAE;OACxC,EACL,4BAA4B,GAE7B;OACM,EAAE,wBAAwB,EAAE;AAOnC,MAAM,UAAU,iBAAiB,CAAC,QAAkB;IAClD,OAAO,mBAAmB,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,QAAkB;IAElB,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,OAAO,EAAE,6BAA6B,CAAC,QAAQ,CAAC,OAAO,CAAC;QACxD,WAAW,EAAE,sCAAsC,CAAC,QAAQ,CAAC;QAC7D,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;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,KAA0C;IAE1C,OAAO,IAAI,QAAQ,CAAC,yBAAyB,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,KAA+B;IAE/B,MAAM,WAAW,GAAG,kCAAkC,CAAC,KAAK,CAAC,CAAC;IAC9D,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CACtE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,KAA+B;IAE/B,MAAM,kBAAkB,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;IACnD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,MAAM,UAAU,GAAkC,EAAE,CAAC;IAErD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACtE,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvB,SAAS;QACX,CAAC;QAED,UAAU,CAAC,GAAG,CAAC,GAAG;YAChB,GAAG,KAAK,CAAC,UAAU,EAAE;YACrB,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK;SAC9C,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC9D,IAAI,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAChE,SAAS;QACX,CAAC;QACD,oFAAoF;QACpF,iEAAiE;QACjE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAc,EAAE,MAAgB;IACjE,OAAO,IAAI,QAAQ,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;QACvC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE;YACP,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;YAChC,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC;SACnC;QACD,WAAW,EAAE;YACX,GAAG,4BAA4B,CAAC,IAAI,CAAC;YACrC,GAAG,4BAA4B,CAAC,MAAM,CAAC;SACxC;QACD,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;QAClD,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;QACrD,eAAe,EAAE,qBAAqB,CACpC,IAAI,CAAC,eAAe,EACpB,MAAM,CAAC,eAAe,CACvB;QACD,2BAA2B,EAAE,sCAAsC,CAAC,MAAM,CAAC;YACzE,CAAC,CAAC,MAAM,CAAC,2BAA2B;YACpC,CAAC,CAAC,IAAI,CAAC,2BAA2B;KACrC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,IAAc,EACd,IAAY,EACZ,KAAY;IAEZ,OAAO,kBAAkB,CACvB,IAAI,EACJ,IAAI,QAAQ,CAAC;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE;YACP,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC;SAC/B;KACF,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,sCAAsC,CAC7C,QAAkB;IAElB,MAAM,WAAW,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IAC3D,6DAA6D;IAC7D,oDAAoD;IACpD,gDAAgD;IAChD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAChC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,SAAS,CACjD,CACF,CAAC;AACJ,CAAC;AAED,SAAS,sCAAsC,CAAC,MAAgB;IAC9D,OAAO,oCAAoC,CACzC,MAAM,CAAC,2BAA2B,CACnC,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CACpC,OAA8B,EAC9B,iBAAiB,GAAG,KAAK;IAEzB,MAAM,gBAAgB,GAA0B,EAAE,CAAC;IAEnD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,MAAM,cAAc,GAAG,2BAA2B,CAChD,KAAK,EACL,iBAAiB,CAClB,CAAC;QACF,IAAI,cAAc,EAAE,CAAC;YACnB,gBAAgB,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,SAAS,2BAA2B,CAClC,KAAY,EACZ,iBAA0B;IAE1B,MAAM,kBAAkB,GAAG,iBAAiB,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEzE,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,CAAC,kBAAkB;YACxB,CAAC,CAAE;gBACC,GAAG,KAAK;gBACR,OAAO,EAAE,kCAAkC,CAAC,KAAK,CAAC,OAAO,CAAC;aACtC;YACxB,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC5C,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,CAAC;IAED,MAAM,QAAQ,GAAG,6BAA6B,CAC5C,KAAK,CAAC,QAAQ,EACd,kBAAkB,CACnB,CAAC;IACF,IAAI,kBAAkB,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,GAAG,KAAK;QACR,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAChC,KAA8B;IAE9B,OAAO;QACL,GAAG,KAAK;QACR,OAAO,EAAE,4BAA4B,CACnC,KAAK,CAAC,OAA4C,CACnD;KACF,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CACnC,OAA0C;IAE1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;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,CAAC;KAClC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAY;IAC9C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAI,KAA+B,CAAC,OAAO,CAAC;QACzD,OAAO;YACL,GAAG,KAAK;YACR,OAAO,EAAE,uBAAuB,CAAC,OAAO,CAAC;gBACvC,CAAC,CAAC,wBAAwB,CAAC,OAAO,CAAC,IAAI,CAAC;gBACxC,CAAC,CAAC,KAAK,CAAC,OAAO;SAClB,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC3C,OAAO;YACL,GAAG,KAAK;YACR,QAAQ,EAAE,4BAA4B,CAAC,KAAK,CAAC,QAAQ,CAAC;SACvD,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;AACtB,CAAC;AAOD,SAAS,kCAAkC,CACzC,OAA4B;IAE5B,OAAO,OAAO,OAAO,KAAK,QAAQ;QAChC,CAAC,CAAC,OAAO;QACT,CAAC,CAAC;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,wBAAwB,CAAC,OAAO,CAAC;SACxC,CAAC;AACR,CAAC;AAED,SAAS,uBAAuB,CAC9B,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAA4B,CAAC,IAAI,KAAK,QAAQ;QAC/C,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ,CACvD,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAa;IAC7C,MAAM,UAAU,GACd,UAGD,CAAC,MAAM,CAAC;IACT,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACtD,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type ChildProcessWithoutNullStreams } from 'node:child_process';
2
+ type PseudoTerminalSpawnOptions = {
3
+ cwd?: string;
4
+ env?: NodeJS.ProcessEnv;
5
+ uid?: number;
6
+ gid?: number;
7
+ };
8
+ export declare function spawnInPseudoTerminal(executable: string, args: string[], options?: PseudoTerminalSpawnOptions): ChildProcessWithoutNullStreams;
9
+ export {};
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.spawnInPseudoTerminal = spawnInPseudoTerminal;
4
+ const node_child_process_1 = require("node:child_process");
5
+ const errors_1 = require("../../errors.js");
6
+ const PTY_BRIDGE_UID_ENV = '__OPENAI_AGENTS_PTY_UID';
7
+ const PTY_BRIDGE_GID_ENV = '__OPENAI_AGENTS_PTY_GID';
8
+ const PTY_BRIDGE_PYTHON_CHECK_SCRIPT = String.raw `
9
+ import pty
10
+ import select
11
+ import signal
12
+ import sys
13
+
14
+ sys.exit(0 if sys.version_info[0] >= 3 else 1)
15
+ `;
16
+ const PTY_BRIDGE_SCRIPT = String.raw `
17
+ import errno
18
+ import os
19
+ import pty
20
+ import select
21
+ import signal
22
+ import sys
23
+
24
+ PTY_CHILD_SIGNAL_DEFAULTS = (signal.SIGINT, signal.SIGQUIT)
25
+
26
+ def restore_pty_child_signal_defaults():
27
+ for signum in PTY_CHILD_SIGNAL_DEFAULTS:
28
+ signal.signal(signum, signal.SIG_DFL)
29
+
30
+ executable = sys.argv[1]
31
+ argv = sys.argv[1:]
32
+ pid, fd = pty.fork()
33
+
34
+ if pid == 0:
35
+ try:
36
+ uid = os.environ.pop('__OPENAI_AGENTS_PTY_UID', '')
37
+ gid = os.environ.pop('__OPENAI_AGENTS_PTY_GID', '')
38
+ if gid:
39
+ os.setgid(int(gid))
40
+ if uid:
41
+ os.setuid(int(uid))
42
+ restore_pty_child_signal_defaults()
43
+ os.execvpe(executable, argv, os.environ)
44
+ except BaseException as exc:
45
+ os.write(2, (str(exc) + '\n').encode())
46
+ os._exit(127)
47
+
48
+ def forward_signal(signum, _frame):
49
+ try:
50
+ os.kill(pid, signum)
51
+ except ProcessLookupError:
52
+ pass
53
+
54
+ signal.signal(signal.SIGTERM, forward_signal)
55
+ signal.signal(signal.SIGINT, forward_signal)
56
+
57
+ exit_status = 0
58
+ stdin_open = True
59
+
60
+ while True:
61
+ readable = [fd]
62
+ if stdin_open:
63
+ readable.append(sys.stdin.fileno())
64
+ try:
65
+ ready, _, _ = select.select(readable, [], [], 0.1)
66
+ except OSError:
67
+ break
68
+
69
+ if fd in ready:
70
+ try:
71
+ data = os.read(fd, 4096)
72
+ except OSError as exc:
73
+ if exc.errno == errno.EIO:
74
+ data = b''
75
+ else:
76
+ raise
77
+ if data:
78
+ os.write(sys.stdout.fileno(), data)
79
+ else:
80
+ break
81
+
82
+ if stdin_open and sys.stdin.fileno() in ready:
83
+ data = os.read(sys.stdin.fileno(), 4096)
84
+ if data:
85
+ os.write(fd, data)
86
+ else:
87
+ stdin_open = False
88
+
89
+ waited_pid, status = os.waitpid(pid, os.WNOHANG)
90
+ if waited_pid == pid:
91
+ if os.WIFEXITED(status):
92
+ exit_status = os.WEXITSTATUS(status)
93
+ elif os.WIFSIGNALED(status):
94
+ exit_status = 128 + os.WTERMSIG(status)
95
+ break
96
+
97
+ try:
98
+ _, status = os.waitpid(pid, 0)
99
+ if os.WIFEXITED(status):
100
+ exit_status = os.WEXITSTATUS(status)
101
+ elif os.WIFSIGNALED(status):
102
+ exit_status = 128 + os.WTERMSIG(status)
103
+ except ChildProcessError:
104
+ pass
105
+
106
+ sys.exit(exit_status)
107
+ `;
108
+ const checkedPtyBridgePythonExecutables = new Set();
109
+ function spawnInPseudoTerminal(executable, args, options = {}) {
110
+ const env = { ...(options.env ?? process.env) };
111
+ const pythonExecutable = process.env.OPENAI_AGENTS_PYTHON ?? 'python3';
112
+ assertPtyBridgePythonAvailable(pythonExecutable, {
113
+ cwd: options.cwd,
114
+ env,
115
+ });
116
+ if (typeof options.uid === 'number') {
117
+ env[PTY_BRIDGE_UID_ENV] = String(options.uid);
118
+ }
119
+ if (typeof options.gid === 'number') {
120
+ env[PTY_BRIDGE_GID_ENV] = String(options.gid);
121
+ }
122
+ return (0, node_child_process_1.spawn)(pythonExecutable, ['-c', PTY_BRIDGE_SCRIPT, executable, ...args], {
123
+ cwd: options.cwd,
124
+ env,
125
+ stdio: 'pipe',
126
+ });
127
+ }
128
+ function assertPtyBridgePythonAvailable(pythonExecutable, options) {
129
+ const cacheKey = `${pythonExecutable}\0${options.cwd ?? ''}\0${options.env.PATH ?? ''}`;
130
+ if (checkedPtyBridgePythonExecutables.has(cacheKey)) {
131
+ return;
132
+ }
133
+ const result = (0, node_child_process_1.spawnSync)(pythonExecutable, ['-c', PTY_BRIDGE_PYTHON_CHECK_SCRIPT], {
134
+ cwd: options.cwd,
135
+ env: options.env,
136
+ stdio: 'pipe',
137
+ });
138
+ if (result.error || result.status !== 0) {
139
+ throw new errors_1.SandboxConfigurationError('PTY support requires Python 3. Install python3 or set OPENAI_AGENTS_PYTHON to a Python 3 executable.', {
140
+ pythonExecutable,
141
+ cwd: options.cwd,
142
+ path: options.env.PATH,
143
+ status: result.status,
144
+ signal: result.signal,
145
+ error: result.error?.message,
146
+ stderr: result.stderr?.toString('utf8').trim() ?? '',
147
+ });
148
+ }
149
+ checkedPtyBridgePythonExecutables.add(cacheKey);
150
+ }
151
+ //# sourceMappingURL=pty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pty.js","sourceRoot":"","sources":["../../../../src/sandbox/sandboxes/shared/pty.ts"],"names":[],"mappings":";;AAuHA,sDA4BC;AAnJD,2DAI4B;AAC5B,4CAAyD;AAEzD,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;AACrD,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;AACrD,MAAM,8BAA8B,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;CAOhD,CAAC;AACF,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2FnC,CAAC;AAEF,MAAM,iCAAiC,GAAG,IAAI,GAAG,EAAU,CAAC;AAS5D,SAAgB,qBAAqB,CACnC,UAAkB,EAClB,IAAc,EACd,UAAsC,EAAE;IAExC,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;IAChD,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,SAAS,CAAC;IACvE,8BAA8B,CAAC,gBAAgB,EAAE;QAC/C,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG;KACJ,CAAC,CAAC;IAEH,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,GAAG,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,GAAG,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,IAAA,0BAAK,EACV,gBAAgB,EAChB,CAAC,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,EAC9C;QACE,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG;QACH,KAAK,EAAE,MAAM;KACd,CACF,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CACrC,gBAAwB,EACxB,OAGC;IAED,MAAM,QAAQ,GAAG,GAAG,gBAAgB,KAAK,OAAO,CAAC,GAAG,IAAI,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;IACxF,IAAI,iCAAiC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,8BAAS,EACtB,gBAAgB,EAChB,CAAC,IAAI,EAAE,8BAA8B,CAAC,EACtC;QACE,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,MAAM;KACd,CACF,CAAC;IACF,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,kCAAyB,CACjC,sGAAsG,EACtG;YACE,gBAAgB;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;YACtB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO;YAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE;SACrD,CACF,CAAC;IACJ,CAAC;IAED,iCAAiC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAClD,CAAC"}