@ai-hero/sandcastle 0.6.5 → 0.7.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 (229) hide show
  1. package/README.md +137 -62
  2. package/dist/{MountConfig.d.ts → MountConfig-CmXclHA5.d.ts} +3 -2
  3. package/dist/{SandboxProvider.d.ts → SandboxProvider-EkSMuBp8.d.ts} +25 -39
  4. package/dist/chunk-52CIJF45.js +25569 -0
  5. package/dist/chunk-52CIJF45.js.map +1 -0
  6. package/dist/chunk-5VM5QZ26.js +26988 -0
  7. package/dist/chunk-5VM5QZ26.js.map +1 -0
  8. package/dist/chunk-72UVAC7B.js +99 -0
  9. package/dist/chunk-72UVAC7B.js.map +1 -0
  10. package/dist/chunk-BIWNFKGV.js +22 -0
  11. package/dist/chunk-BIWNFKGV.js.map +1 -0
  12. package/dist/chunk-NGBM7T3E.js +76 -0
  13. package/dist/chunk-NGBM7T3E.js.map +1 -0
  14. package/dist/chunk-NSFQW6ML.js +362 -0
  15. package/dist/chunk-NSFQW6ML.js.map +1 -0
  16. package/dist/index.d.ts +920 -22
  17. package/dist/index.js +3212 -9
  18. package/dist/index.js.map +1 -1
  19. package/dist/main.d.ts +0 -2
  20. package/dist/main.js +19349 -13
  21. package/dist/main.js.map +1 -1
  22. package/dist/mountUtils-CCA-bbpK.d.ts +25 -0
  23. package/dist/sandboxes/daytona.d.ts +8 -5
  24. package/dist/sandboxes/daytona.js +118 -124
  25. package/dist/sandboxes/daytona.js.map +1 -1
  26. package/dist/sandboxes/docker.d.ts +10 -8
  27. package/dist/sandboxes/docker.js +8 -255
  28. package/dist/sandboxes/docker.js.map +1 -1
  29. package/dist/sandboxes/no-sandbox.d.ts +7 -4
  30. package/dist/sandboxes/no-sandbox.js +6 -114
  31. package/dist/sandboxes/no-sandbox.js.map +1 -1
  32. package/dist/sandboxes/podman.d.ts +10 -8
  33. package/dist/sandboxes/podman.js +287 -297
  34. package/dist/sandboxes/podman.js.map +1 -1
  35. package/dist/sandboxes/vercel.d.ts +7 -4
  36. package/dist/sandboxes/vercel.js +144 -165
  37. package/dist/sandboxes/vercel.js.map +1 -1
  38. package/dist/templates/sequential-reviewer/implement-prompt.md +2 -2
  39. package/dist/templates/simple-loop/prompt.md +2 -2
  40. package/package.json +15 -14
  41. package/dist/AgentProvider.d.ts +0 -134
  42. package/dist/AgentProvider.d.ts.map +0 -1
  43. package/dist/AgentProvider.js +0 -647
  44. package/dist/AgentProvider.js.map +0 -1
  45. package/dist/AgentStreamEmitter.d.ts +0 -36
  46. package/dist/AgentStreamEmitter.d.ts.map +0 -1
  47. package/dist/AgentStreamEmitter.js +0 -21
  48. package/dist/AgentStreamEmitter.js.map +0 -1
  49. package/dist/CopyToWorktree.d.ts +0 -15
  50. package/dist/CopyToWorktree.d.ts.map +0 -1
  51. package/dist/CopyToWorktree.js +0 -60
  52. package/dist/CopyToWorktree.js.map +0 -1
  53. package/dist/Display.d.ts +0 -58
  54. package/dist/Display.d.ts.map +0 -1
  55. package/dist/Display.js +0 -142
  56. package/dist/Display.js.map +0 -1
  57. package/dist/DockerLifecycle.d.ts +0 -54
  58. package/dist/DockerLifecycle.d.ts.map +0 -1
  59. package/dist/DockerLifecycle.js +0 -123
  60. package/dist/DockerLifecycle.js.map +0 -1
  61. package/dist/EnvResolver.d.ts +0 -11
  62. package/dist/EnvResolver.d.ts.map +0 -1
  63. package/dist/EnvResolver.js +0 -63
  64. package/dist/EnvResolver.js.map +0 -1
  65. package/dist/ErrorHandler.d.ts +0 -15
  66. package/dist/ErrorHandler.d.ts.map +0 -1
  67. package/dist/ErrorHandler.js +0 -85
  68. package/dist/ErrorHandler.js.map +0 -1
  69. package/dist/InitService.d.ts +0 -92
  70. package/dist/InitService.d.ts.map +0 -1
  71. package/dist/InitService.js +0 -836
  72. package/dist/InitService.js.map +0 -1
  73. package/dist/MountConfig.d.ts.map +0 -1
  74. package/dist/MountConfig.js +0 -7
  75. package/dist/MountConfig.js.map +0 -1
  76. package/dist/Orchestrator.d.ts +0 -56
  77. package/dist/Orchestrator.d.ts.map +0 -1
  78. package/dist/Orchestrator.js +0 -293
  79. package/dist/Orchestrator.js.map +0 -1
  80. package/dist/Output.d.ts +0 -107
  81. package/dist/Output.d.ts.map +0 -1
  82. package/dist/Output.js +0 -95
  83. package/dist/Output.js.map +0 -1
  84. package/dist/PodmanLifecycle.d.ts +0 -17
  85. package/dist/PodmanLifecycle.d.ts.map +0 -1
  86. package/dist/PodmanLifecycle.js +0 -45
  87. package/dist/PodmanLifecycle.js.map +0 -1
  88. package/dist/PromptArgumentSubstitution.d.ts +0 -32
  89. package/dist/PromptArgumentSubstitution.d.ts.map +0 -1
  90. package/dist/PromptArgumentSubstitution.js +0 -104
  91. package/dist/PromptArgumentSubstitution.js.map +0 -1
  92. package/dist/PromptPreprocessor.d.ts +0 -15
  93. package/dist/PromptPreprocessor.d.ts.map +0 -1
  94. package/dist/PromptPreprocessor.js +0 -55
  95. package/dist/PromptPreprocessor.js.map +0 -1
  96. package/dist/PromptResolver.d.ts +0 -21
  97. package/dist/PromptResolver.d.ts.map +0 -1
  98. package/dist/PromptResolver.js +0 -27
  99. package/dist/PromptResolver.js.map +0 -1
  100. package/dist/RecoveryMessage.d.ts +0 -15
  101. package/dist/RecoveryMessage.d.ts.map +0 -1
  102. package/dist/RecoveryMessage.js +0 -81
  103. package/dist/RecoveryMessage.js.map +0 -1
  104. package/dist/SandboxFactory.d.ts +0 -90
  105. package/dist/SandboxFactory.d.ts.map +0 -1
  106. package/dist/SandboxFactory.js +0 -324
  107. package/dist/SandboxFactory.js.map +0 -1
  108. package/dist/SandboxLifecycle.d.ts +0 -65
  109. package/dist/SandboxLifecycle.d.ts.map +0 -1
  110. package/dist/SandboxLifecycle.js +0 -296
  111. package/dist/SandboxLifecycle.js.map +0 -1
  112. package/dist/SandboxProvider.d.ts.map +0 -1
  113. package/dist/SandboxProvider.js +0 -28
  114. package/dist/SandboxProvider.js.map +0 -1
  115. package/dist/SessionStore.d.ts +0 -110
  116. package/dist/SessionStore.d.ts.map +0 -1
  117. package/dist/SessionStore.js +0 -330
  118. package/dist/SessionStore.js.map +0 -1
  119. package/dist/TextDeltaBuffer.d.ts +0 -24
  120. package/dist/TextDeltaBuffer.d.ts.map +0 -1
  121. package/dist/TextDeltaBuffer.js +0 -68
  122. package/dist/TextDeltaBuffer.js.map +0 -1
  123. package/dist/WorktreeManager.d.ts +0 -79
  124. package/dist/WorktreeManager.d.ts.map +0 -1
  125. package/dist/WorktreeManager.js +0 -283
  126. package/dist/WorktreeManager.js.map +0 -1
  127. package/dist/boundedTail.d.ts +0 -48
  128. package/dist/boundedTail.d.ts.map +0 -1
  129. package/dist/boundedTail.js +0 -64
  130. package/dist/boundedTail.js.map +0 -1
  131. package/dist/cli.d.ts +0 -30
  132. package/dist/cli.d.ts.map +0 -1
  133. package/dist/cli.js +0 -340
  134. package/dist/cli.js.map +0 -1
  135. package/dist/createSandbox.d.ts +0 -154
  136. package/dist/createSandbox.d.ts.map +0 -1
  137. package/dist/createSandbox.js +0 -476
  138. package/dist/createSandbox.js.map +0 -1
  139. package/dist/createWorktree.d.ts +0 -154
  140. package/dist/createWorktree.d.ts.map +0 -1
  141. package/dist/createWorktree.js +0 -391
  142. package/dist/createWorktree.js.map +0 -1
  143. package/dist/errors.d.ts +0 -227
  144. package/dist/errors.d.ts.map +0 -1
  145. package/dist/errors.js +0 -81
  146. package/dist/errors.js.map +0 -1
  147. package/dist/extractStructuredOutput.d.ts +0 -23
  148. package/dist/extractStructuredOutput.d.ts.map +0 -1
  149. package/dist/extractStructuredOutput.js +0 -102
  150. package/dist/extractStructuredOutput.js.map +0 -1
  151. package/dist/index.d.ts.map +0 -1
  152. package/dist/interactive.d.ts +0 -74
  153. package/dist/interactive.d.ts.map +0 -1
  154. package/dist/interactive.js +0 -279
  155. package/dist/interactive.js.map +0 -1
  156. package/dist/main.d.ts.map +0 -1
  157. package/dist/mergeProviderEnv.d.ts +0 -13
  158. package/dist/mergeProviderEnv.d.ts.map +0 -1
  159. package/dist/mergeProviderEnv.js +0 -23
  160. package/dist/mergeProviderEnv.js.map +0 -1
  161. package/dist/mountUtils.d.ts +0 -146
  162. package/dist/mountUtils.d.ts.map +0 -1
  163. package/dist/mountUtils.js +0 -301
  164. package/dist/mountUtils.js.map +0 -1
  165. package/dist/raceAbortSignal.d.ts +0 -18
  166. package/dist/raceAbortSignal.d.ts.map +0 -1
  167. package/dist/raceAbortSignal.js +0 -32
  168. package/dist/raceAbortSignal.js.map +0 -1
  169. package/dist/resolveCwd.d.ts +0 -24
  170. package/dist/resolveCwd.d.ts.map +0 -1
  171. package/dist/resolveCwd.js +0 -32
  172. package/dist/resolveCwd.js.map +0 -1
  173. package/dist/resumePrecheck.d.ts +0 -26
  174. package/dist/resumePrecheck.d.ts.map +0 -1
  175. package/dist/resumePrecheck.js +0 -40
  176. package/dist/resumePrecheck.js.map +0 -1
  177. package/dist/run.d.ts +0 -216
  178. package/dist/run.d.ts.map +0 -1
  179. package/dist/run.js +0 -313
  180. package/dist/run.js.map +0 -1
  181. package/dist/sandboxExec.d.ts +0 -12
  182. package/dist/sandboxExec.d.ts.map +0 -1
  183. package/dist/sandboxExec.js +0 -26
  184. package/dist/sandboxExec.js.map +0 -1
  185. package/dist/sandboxes/daytona.d.ts.map +0 -1
  186. package/dist/sandboxes/docker.d.ts.map +0 -1
  187. package/dist/sandboxes/no-sandbox.d.ts.map +0 -1
  188. package/dist/sandboxes/podman.d.ts.map +0 -1
  189. package/dist/sandboxes/test-bind-mount.d.ts +0 -17
  190. package/dist/sandboxes/test-bind-mount.d.ts.map +0 -1
  191. package/dist/sandboxes/test-bind-mount.js +0 -92
  192. package/dist/sandboxes/test-bind-mount.js.map +0 -1
  193. package/dist/sandboxes/test-isolated.d.ts +0 -17
  194. package/dist/sandboxes/test-isolated.d.ts.map +0 -1
  195. package/dist/sandboxes/test-isolated.js +0 -98
  196. package/dist/sandboxes/test-isolated.js.map +0 -1
  197. package/dist/sandboxes/vercel.d.ts.map +0 -1
  198. package/dist/shutdownRegistry.d.ts +0 -30
  199. package/dist/shutdownRegistry.d.ts.map +0 -1
  200. package/dist/shutdownRegistry.js +0 -73
  201. package/dist/shutdownRegistry.js.map +0 -1
  202. package/dist/startSandbox.d.ts +0 -50
  203. package/dist/startSandbox.d.ts.map +0 -1
  204. package/dist/startSandbox.js +0 -117
  205. package/dist/startSandbox.js.map +0 -1
  206. package/dist/syncIn.d.ts +0 -24
  207. package/dist/syncIn.d.ts.map +0 -1
  208. package/dist/syncIn.js +0 -107
  209. package/dist/syncIn.js.map +0 -1
  210. package/dist/syncOut.d.ts +0 -27
  211. package/dist/syncOut.d.ts.map +0 -1
  212. package/dist/syncOut.js +0 -271
  213. package/dist/syncOut.js.map +0 -1
  214. package/dist/templates.d.ts +0 -2
  215. package/dist/templates.d.ts.map +0 -1
  216. package/dist/templates.js +0 -26
  217. package/dist/templates.js.map +0 -1
  218. package/dist/terminalCleanup.d.ts +0 -30
  219. package/dist/terminalCleanup.d.ts.map +0 -1
  220. package/dist/terminalCleanup.js +0 -37
  221. package/dist/terminalCleanup.js.map +0 -1
  222. package/dist/testSandbox.d.ts +0 -8
  223. package/dist/testSandbox.d.ts.map +0 -1
  224. package/dist/testSandbox.js +0 -109
  225. package/dist/testSandbox.js.map +0 -1
  226. package/dist/testSetup.d.ts +0 -2
  227. package/dist/testSetup.d.ts.map +0 -1
  228. package/dist/testSetup.js +0 -29
  229. package/dist/testSetup.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"daytona.d.ts","sourceRoot":"","sources":["../../src/sandboxes/daytona.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EAGV,4BAA4B,EAC5B,+BAA+B,EAChC,MAAM,cAAc,CAAC;AAEtB,gDAAgD;AAChD,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EACZ,4BAA4B,GAC5B,+BAA+B,CAAC;IAEpC,uHAAuH;IACvH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtC;;;;;;;OAOG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,OAAO,mEA+IhB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/sandboxes/docker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,OAAO,EAEL,KAAK,eAAe,EAKrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACL,gBAAgB,EAGjB,MAAM,kBAAkB,CAAC;AAI1B,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,uHAAuH;IACvH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;IAC9C;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC/C;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC;;;;;;;OAOG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC;;;;;;;;;OASG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,eAAO,MAAM,MAAM,0DAqQlB,CAAC;AAGF,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"no-sandbox.d.ts","sourceRoot":"","sources":["../../src/sandboxes/no-sandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EACV,iBAAiB,EAIlB,MAAM,uBAAuB,CAAC;AAG/B,MAAM,WAAW,gBAAgB;IAC/B,8EAA8E;IAC9E,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC;;;;;;;OAOG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,+DAgHpB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"podman.d.ts","sourceRoot":"","sources":["../../src/sandboxes/podman.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,OAAO,EAEL,KAAK,eAAe,EAKrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACL,gBAAgB,EAIjB,MAAM,kBAAkB,CAAC;AAI1B,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,uHAAuH;IACvH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;IAC9C;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC/C;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC;;;;;;;OAOG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC;;;;;;;;;OASG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,MAAM,0DAwTlB,CAAC;AAGF,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Filesystem-based test bind-mount sandbox provider.
3
- *
4
- * Uses a temp directory on the local filesystem as the "sandbox".
5
- * Intended for testing the bind-mount provider abstraction without
6
- * requiring Docker or Podman.
7
- */
8
- import { type BindMountSandboxProvider } from "../SandboxProvider.js";
9
- /**
10
- * Create a filesystem-based test bind-mount sandbox provider.
11
- *
12
- * The "sandbox" is a temp directory. `exec` runs shell commands in it,
13
- * `copyFileIn`/`copyFileOut` copy single files between host and the temp dir,
14
- * and `close` removes the temp dir.
15
- */
16
- export declare const testBindMount: () => BindMountSandboxProvider;
17
- //# sourceMappingURL=test-bind-mount.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-bind-mount.d.ts","sourceRoot":"","sources":["../../src/sandboxes/test-bind-mount.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,EAGL,KAAK,wBAAwB,EAE9B,MAAM,uBAAuB,CAAC;AAG/B;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,gCAkGtB,CAAC"}
@@ -1,92 +0,0 @@
1
- /**
2
- * Filesystem-based test bind-mount sandbox provider.
3
- *
4
- * Uses a temp directory on the local filesystem as the "sandbox".
5
- * Intended for testing the bind-mount provider abstraction without
6
- * requiring Docker or Podman.
7
- */
8
- import { execFile, spawn } from "node:child_process";
9
- import { copyFile, mkdir, mkdtemp, rm } from "node:fs/promises";
10
- import { tmpdir } from "node:os";
11
- import { dirname, join } from "node:path";
12
- import { createInterface } from "node:readline";
13
- import { createBindMountSandboxProvider, } from "../SandboxProvider.js";
14
- import { BoundedTail, MAX_TAIL_CHARS } from "../boundedTail.js";
15
- /**
16
- * Create a filesystem-based test bind-mount sandbox provider.
17
- *
18
- * The "sandbox" is a temp directory. `exec` runs shell commands in it,
19
- * `copyFileIn`/`copyFileOut` copy single files between host and the temp dir,
20
- * and `close` removes the temp dir.
21
- */
22
- export const testBindMount = () => createBindMountSandboxProvider({
23
- name: "test-bind-mount",
24
- create: async () => {
25
- const sandboxRoot = await mkdtemp(join(tmpdir(), "sandcastle-test-bm-"));
26
- const worktreePath = join(sandboxRoot, "workspace");
27
- await mkdir(worktreePath, { recursive: true });
28
- return {
29
- worktreePath,
30
- exec: (command, options) => {
31
- if (options?.onLine) {
32
- const onLine = options.onLine;
33
- return new Promise((resolve, reject) => {
34
- const proc = spawn("sh", ["-c", command], {
35
- cwd: options?.cwd ?? worktreePath,
36
- stdio: ["ignore", "pipe", "pipe"],
37
- });
38
- const stdoutTail = new BoundedTail(MAX_TAIL_CHARS, "\n");
39
- const stderrTail = new BoundedTail(MAX_TAIL_CHARS, "");
40
- const rl = createInterface({ input: proc.stdout });
41
- rl.on("line", (line) => {
42
- stdoutTail.push(line);
43
- onLine(line);
44
- });
45
- proc.stderr.on("data", (chunk) => {
46
- stderrTail.push(chunk.toString());
47
- });
48
- proc.on("error", (error) => {
49
- reject(new Error(`exec failed: ${error.message}`));
50
- });
51
- proc.on("close", (code) => {
52
- resolve({
53
- stdout: stdoutTail.toString(),
54
- stderr: stderrTail.toString(),
55
- exitCode: code ?? 0,
56
- });
57
- });
58
- });
59
- }
60
- return new Promise((resolve, reject) => {
61
- execFile("sh", ["-c", command], {
62
- cwd: options?.cwd ?? worktreePath,
63
- maxBuffer: 10 * 1024 * 1024,
64
- }, (error, stdout, stderr) => {
65
- if (error && error.code === undefined) {
66
- reject(new Error(`exec failed: ${error.message}`));
67
- }
68
- else {
69
- resolve({
70
- stdout: stdout.toString(),
71
- stderr: stderr.toString(),
72
- exitCode: typeof error?.code === "number" ? error.code : 0,
73
- });
74
- }
75
- });
76
- });
77
- },
78
- copyFileIn: async (hostPath, sandboxPath) => {
79
- await mkdir(dirname(sandboxPath), { recursive: true });
80
- await copyFile(hostPath, sandboxPath);
81
- },
82
- copyFileOut: async (sandboxPath, hostPath) => {
83
- await mkdir(dirname(hostPath), { recursive: true });
84
- await copyFile(sandboxPath, hostPath);
85
- },
86
- close: async () => {
87
- await rm(sandboxRoot, { recursive: true, force: true });
88
- },
89
- };
90
- },
91
- });
92
- //# sourceMappingURL=test-bind-mount.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-bind-mount.js","sourceRoot":"","sources":["../../src/sandboxes/test-bind-mount.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Filesystem-based test isolated sandbox provider.
3
- *
4
- * Uses a temp directory on the local filesystem as the "sandbox".
5
- * Intended for testing the isolated provider abstraction without
6
- * requiring a real remote environment.
7
- */
8
- import { type IsolatedSandboxProvider } from "../SandboxProvider.js";
9
- /**
10
- * Create a filesystem-based test isolated sandbox provider.
11
- *
12
- * The "sandbox" is a temp directory. `exec` runs shell commands in it,
13
- * `copyIn`/`copyFileOut` copy files between host and the temp dir,
14
- * and `close` removes the temp dir.
15
- */
16
- export declare const testIsolated: () => IsolatedSandboxProvider;
17
- //# sourceMappingURL=test-isolated.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-isolated.d.ts","sourceRoot":"","sources":["../../src/sandboxes/test-isolated.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,uBAAuB,CAAC;AAG/B;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,+BAuGrB,CAAC"}
@@ -1,98 +0,0 @@
1
- /**
2
- * Filesystem-based test isolated sandbox provider.
3
- *
4
- * Uses a temp directory on the local filesystem as the "sandbox".
5
- * Intended for testing the isolated provider abstraction without
6
- * requiring a real remote environment.
7
- */
8
- import { execFile, spawn } from "node:child_process";
9
- import { copyFile, cp, mkdir, mkdtemp, rm, stat } from "node:fs/promises";
10
- import { tmpdir } from "node:os";
11
- import { dirname, join } from "node:path";
12
- import { createInterface } from "node:readline";
13
- import { createIsolatedSandboxProvider, } from "../SandboxProvider.js";
14
- import { BoundedTail, MAX_TAIL_CHARS } from "../boundedTail.js";
15
- /**
16
- * Create a filesystem-based test isolated sandbox provider.
17
- *
18
- * The "sandbox" is a temp directory. `exec` runs shell commands in it,
19
- * `copyIn`/`copyFileOut` copy files between host and the temp dir,
20
- * and `close` removes the temp dir.
21
- */
22
- export const testIsolated = () => createIsolatedSandboxProvider({
23
- name: "test-isolated",
24
- create: async () => {
25
- const sandboxRoot = await mkdtemp(join(tmpdir(), "sandcastle-test-"));
26
- const worktreePath = join(sandboxRoot, "workspace");
27
- await mkdir(worktreePath, { recursive: true });
28
- return {
29
- worktreePath,
30
- exec: (command, options) => {
31
- if (options?.onLine) {
32
- const onLine = options.onLine;
33
- return new Promise((resolve, reject) => {
34
- const proc = spawn("sh", ["-c", command], {
35
- cwd: options?.cwd ?? worktreePath,
36
- stdio: ["ignore", "pipe", "pipe"],
37
- });
38
- const stdoutTail = new BoundedTail(MAX_TAIL_CHARS, "\n");
39
- const stderrTail = new BoundedTail(MAX_TAIL_CHARS, "");
40
- const rl = createInterface({ input: proc.stdout });
41
- rl.on("line", (line) => {
42
- stdoutTail.push(line);
43
- onLine(line);
44
- });
45
- proc.stderr.on("data", (chunk) => {
46
- stderrTail.push(chunk.toString());
47
- });
48
- proc.on("error", (error) => {
49
- reject(new Error(`exec failed: ${error.message}`));
50
- });
51
- proc.on("close", (code) => {
52
- resolve({
53
- stdout: stdoutTail.toString(),
54
- stderr: stderrTail.toString(),
55
- exitCode: code ?? 0,
56
- });
57
- });
58
- });
59
- }
60
- return new Promise((resolve, reject) => {
61
- execFile("sh", ["-c", command], {
62
- cwd: options?.cwd ?? worktreePath,
63
- maxBuffer: 10 * 1024 * 1024,
64
- }, (error, stdout, stderr) => {
65
- if (error && error.code === undefined) {
66
- reject(new Error(`exec failed: ${error.message}`));
67
- }
68
- else {
69
- resolve({
70
- stdout: stdout.toString(),
71
- stderr: stderr.toString(),
72
- exitCode: typeof error?.code === "number" ? error.code : 0,
73
- });
74
- }
75
- });
76
- });
77
- },
78
- copyIn: async (hostPath, sandboxPath) => {
79
- const info = await stat(hostPath);
80
- if (info.isDirectory()) {
81
- await cp(hostPath, sandboxPath, { recursive: true });
82
- }
83
- else {
84
- await mkdir(dirname(sandboxPath), { recursive: true });
85
- await copyFile(hostPath, sandboxPath);
86
- }
87
- },
88
- copyFileOut: async (sandboxPath, hostPath) => {
89
- await mkdir(dirname(hostPath), { recursive: true });
90
- await copyFile(sandboxPath, hostPath);
91
- },
92
- close: async () => {
93
- await rm(sandboxRoot, { recursive: true, force: true });
94
- },
95
- };
96
- },
97
- });
98
- //# sourceMappingURL=test-isolated.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-isolated.js","sourceRoot":"","sources":["../../src/sandboxes/test-isolated.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../src/sandboxes/vercel.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,uBAAuB,CAAC;AAM/B;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAIxB;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EACZ;QACE,IAAI,EAAE,KAAK,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GACD;QACE,IAAI,EAAE,SAAS,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,GACD;QACE,IAAI,EAAE,UAAU,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAEN,kEAAkE;IAClE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,kEAAkE;IAClE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAEF;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjD;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B,uHAAuH;IACvH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtC;;;;;;;OAOG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,MAAM,kEA4Kf,CAAC"}
@@ -1,30 +0,0 @@
1
- /**
2
- * Process-wide shutdown registry.
3
- *
4
- * Sandboxes need to run synchronous cleanup (remove a container, print
5
- * worktree-recovery guidance) when the host process is interrupted. Registering
6
- * `SIGINT`/`SIGTERM`/`exit` listeners per sandbox makes Node emit a
7
- * `MaxListenersExceededWarning` once more than ~10 sandboxes exist concurrently.
8
- *
9
- * This module installs exactly one listener per signal — no matter how many
10
- * sandboxes are alive — and fans out to a set of teardown callbacks. On
11
- * `SIGINT`/`SIGTERM` it runs every teardown and then exits once with code 1;
12
- * on a plain `exit` it runs every teardown without forcing the exit code.
13
- */
14
- /**
15
- * A synchronous cleanup step run during shutdown. It must not call
16
- * `process.exit` — the registry owns the single exit — and must not rely on
17
- * async work completing, because a signal handler cannot await before the
18
- * process exits.
19
- */
20
- export type ShutdownCallback = () => void;
21
- /**
22
- * Register a teardown to run when the process receives `SIGINT`/`SIGTERM` or
23
- * exits. The first registration installs the shared listeners; the last
24
- * unregistration removes them, restoring the default signal behavior.
25
- *
26
- * @param teardown Synchronous cleanup to run on shutdown.
27
- * @returns An idempotent function that unregisters the teardown.
28
- */
29
- export declare const registerShutdown: (teardown: ShutdownCallback) => () => void;
30
- //# sourceMappingURL=shutdownRegistry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shutdownRegistry.d.ts","sourceRoot":"","sources":["../src/shutdownRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC;AA2C1C;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,4CAW5B,CAAC"}
@@ -1,73 +0,0 @@
1
- /**
2
- * Process-wide shutdown registry.
3
- *
4
- * Sandboxes need to run synchronous cleanup (remove a container, print
5
- * worktree-recovery guidance) when the host process is interrupted. Registering
6
- * `SIGINT`/`SIGTERM`/`exit` listeners per sandbox makes Node emit a
7
- * `MaxListenersExceededWarning` once more than ~10 sandboxes exist concurrently.
8
- *
9
- * This module installs exactly one listener per signal — no matter how many
10
- * sandboxes are alive — and fans out to a set of teardown callbacks. On
11
- * `SIGINT`/`SIGTERM` it runs every teardown and then exits once with code 1;
12
- * on a plain `exit` it runs every teardown without forcing the exit code.
13
- */
14
- const teardownCallbacks = new Set();
15
- let listenersInstalled = false;
16
- const runTeardowns = () => {
17
- for (const teardown of teardownCallbacks) {
18
- try {
19
- teardown();
20
- }
21
- catch {
22
- // Best-effort: one teardown failing must not block the others.
23
- }
24
- }
25
- };
26
- const handleExit = () => {
27
- runTeardowns();
28
- };
29
- const handleSignal = () => {
30
- // Detach first so the synchronous "exit" event triggered by process.exit()
31
- // below does not run the same teardowns a second time.
32
- detachListeners();
33
- runTeardowns();
34
- process.exit(1);
35
- };
36
- const attachListeners = () => {
37
- if (listenersInstalled)
38
- return;
39
- listenersInstalled = true;
40
- process.on("exit", handleExit);
41
- process.on("SIGINT", handleSignal);
42
- process.on("SIGTERM", handleSignal);
43
- };
44
- const detachListeners = () => {
45
- if (!listenersInstalled)
46
- return;
47
- listenersInstalled = false;
48
- process.removeListener("exit", handleExit);
49
- process.removeListener("SIGINT", handleSignal);
50
- process.removeListener("SIGTERM", handleSignal);
51
- };
52
- /**
53
- * Register a teardown to run when the process receives `SIGINT`/`SIGTERM` or
54
- * exits. The first registration installs the shared listeners; the last
55
- * unregistration removes them, restoring the default signal behavior.
56
- *
57
- * @param teardown Synchronous cleanup to run on shutdown.
58
- * @returns An idempotent function that unregisters the teardown.
59
- */
60
- export const registerShutdown = (teardown) => {
61
- teardownCallbacks.add(teardown);
62
- attachListeners();
63
- let active = true;
64
- return () => {
65
- if (!active)
66
- return;
67
- active = false;
68
- teardownCallbacks.delete(teardown);
69
- if (teardownCallbacks.size === 0)
70
- detachListeners();
71
- };
72
- };
73
- //# sourceMappingURL=shutdownRegistry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shutdownRegistry.js","sourceRoot":"","sources":["../src/shutdownRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAUH,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAoB,CAAC;AACtD,IAAI,kBAAkB,GAAG,KAAK,CAAC;AAE/B,MAAM,YAAY,GAAG,GAAS,EAAE;IAC9B,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,QAAQ,EAAE,CAAC;QACb,CAAC;QAAC,MAAM,CAAC;YACP,+DAA+D;QACjE,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,GAAS,EAAE;IAC5B,YAAY,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,GAAS,EAAE;IAC9B,2EAA2E;IAC3E,uDAAuD;IACvD,eAAe,EAAE,CAAC;IAClB,YAAY,EAAE,CAAC;IACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,GAAS,EAAE;IACjC,IAAI,kBAAkB;QAAE,OAAO;IAC/B,kBAAkB,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,GAAS,EAAE;IACjC,IAAI,CAAC,kBAAkB;QAAE,OAAO;IAChC,kBAAkB,GAAG,KAAK,CAAC;IAC3B,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC3C,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC/C,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAA0B,EAAgB,EAAE;IAC3E,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChC,eAAe,EAAE,CAAC;IAElB,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,OAAO,GAAG,EAAE;QACV,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,GAAG,KAAK,CAAC;QACf,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,iBAAiB,CAAC,IAAI,KAAK,CAAC;YAAE,eAAe,EAAE,CAAC;IACtD,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -1,50 +0,0 @@
1
- import { Effect, Layer } from "effect";
2
- import { ContainerStartTimeoutError, CopyToWorktreeTimeoutError, SyncError, SyncInTimeoutError, WorktreeError, type DockerError } from "./errors.js";
3
- import type { BindMountSandboxProvider, BindMountSandboxHandle, IsolatedSandboxProvider, IsolatedSandboxHandle, NoSandboxProvider, NoSandboxHandle } from "./SandboxProvider.js";
4
- import { type Sandbox, type MountEntry } from "./SandboxFactory.js";
5
- export interface StartSandboxBindMountOptions {
6
- provider: BindMountSandboxProvider;
7
- hostRepoDir: string;
8
- env: Record<string, string>;
9
- worktreeOrRepoPath: string;
10
- gitMounts: MountEntry[];
11
- repoDir: string;
12
- copyPaths?: undefined;
13
- }
14
- export interface StartSandboxIsolatedOptions {
15
- provider: IsolatedSandboxProvider;
16
- hostRepoDir: string;
17
- env: Record<string, string>;
18
- worktreeOrRepoPath?: undefined;
19
- gitMounts?: undefined;
20
- repoDir?: undefined;
21
- copyPaths?: string[];
22
- }
23
- export interface StartSandboxNoSandboxOptions {
24
- provider: NoSandboxProvider;
25
- hostRepoDir: string;
26
- env: Record<string, string>;
27
- /** Host-side worktree path the agent will run in. Equal to hostRepoDir in head mode. */
28
- worktreeOrRepoPath: string;
29
- gitMounts?: undefined;
30
- repoDir?: undefined;
31
- copyPaths?: undefined;
32
- }
33
- export type StartSandboxOptions = StartSandboxBindMountOptions | StartSandboxIsolatedOptions | StartSandboxNoSandboxOptions;
34
- export interface StartSandboxResult {
35
- handle: BindMountSandboxHandle | IsolatedSandboxHandle | NoSandboxHandle;
36
- sandboxLayer: Layer.Layer<Sandbox>;
37
- worktreePath: string;
38
- }
39
- export declare const COPY_PATHS_TIMEOUT_MS = 120000;
40
- /**
41
- * Start a sandbox by dispatching on `provider.tag`.
42
- *
43
- * - `"bind-mount"`: creates mounts and delegates to the provider's `create()`.
44
- * - `"isolated"`: creates handle, syncs host repo via git bundle, then copies
45
- * optional `copyPaths` via `handle.copyIn()`.
46
- *
47
- * Returns the handle, a `SandboxService` layer, and the worktree path.
48
- */
49
- export declare const startSandbox: (options: StartSandboxOptions) => Effect.Effect<StartSandboxResult, ContainerStartTimeoutError | CopyToWorktreeTimeoutError | DockerError | SyncError | SyncInTimeoutError | WorktreeError, never>;
50
- //# sourceMappingURL=startSandbox.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"startSandbox.d.ts","sourceRoot":"","sources":["../src/startSandbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAGvC,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,SAAS,EACT,kBAAkB,EAClB,aAAa,EAEb,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAEV,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,UAAU,EAGhB,MAAM,qBAAqB,CAAC;AAI7B,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,wBAAwB,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,uBAAuB,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,wFAAwF;IACxF,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,MAAM,mBAAmB,GAC3B,4BAA4B,GAC5B,2BAA2B,GAC3B,4BAA4B,CAAC;AAEjC,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,sBAAsB,GAAG,qBAAqB,GAAG,eAAe,CAAC;IACzE,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;CACtB;AAID,eAAO,MAAM,qBAAqB,SAAU,CAAC;AAE7C;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,oMAkBxB,CAAC"}
@@ -1,117 +0,0 @@
1
- import { Effect } from "effect";
2
- import { existsSync } from "node:fs";
3
- import { join, posix } from "node:path";
4
- import { ContainerStartTimeoutError, CopyToWorktreeTimeoutError, SyncInTimeoutError, WorktreeError, withTimeout, } from "./errors.js";
5
- import { makeSandboxLayerFromHandle, SANDBOX_REPO_DIR, } from "./SandboxFactory.js";
6
- import { syncIn } from "./syncIn.js";
7
- import { normalizeMounts } from "./mountUtils.js";
8
- const CONTAINER_START_TIMEOUT_MS = 120_000;
9
- const SYNC_IN_TIMEOUT_MS = 120_000;
10
- export const COPY_PATHS_TIMEOUT_MS = 120_000;
11
- /**
12
- * Start a sandbox by dispatching on `provider.tag`.
13
- *
14
- * - `"bind-mount"`: creates mounts and delegates to the provider's `create()`.
15
- * - `"isolated"`: creates handle, syncs host repo via git bundle, then copies
16
- * optional `copyPaths` via `handle.copyIn()`.
17
- *
18
- * Returns the handle, a `SandboxService` layer, and the worktree path.
19
- */
20
- export const startSandbox = (options) => {
21
- if (options.provider.tag === "bind-mount") {
22
- return startBindMountSandbox(options);
23
- }
24
- if (options.provider.tag === "none") {
25
- return startNoSandbox(options);
26
- }
27
- return startIsolatedSandbox(options);
28
- };
29
- const startNoSandbox = (options) => Effect.tryPromise({
30
- try: () => options.provider.create({
31
- worktreePath: options.worktreeOrRepoPath,
32
- env: options.env,
33
- }),
34
- catch: (e) => new WorktreeError({
35
- message: `Provider '${options.provider.name}' create failed: ${e instanceof Error ? e.message : String(e)}`,
36
- }),
37
- }).pipe(Effect.map((handle) => ({
38
- handle,
39
- sandboxLayer: makeSandboxLayerFromHandle(handle),
40
- worktreePath: handle.worktreePath,
41
- })));
42
- const startBindMountSandbox = (options) => Effect.tryPromise({
43
- try: () => {
44
- const rawMounts = [
45
- {
46
- hostPath: options.worktreeOrRepoPath,
47
- sandboxPath: options.repoDir,
48
- },
49
- ...options.gitMounts,
50
- ];
51
- const mounts = normalizeMounts(rawMounts, options.worktreeOrRepoPath, SANDBOX_REPO_DIR);
52
- const worktreePath = process.platform === "win32"
53
- ? options.worktreeOrRepoPath.replace(/\\/g, "/")
54
- : options.worktreeOrRepoPath;
55
- return options.provider.create({
56
- worktreePath,
57
- hostRepoPath: options.hostRepoDir,
58
- mounts,
59
- env: options.env,
60
- });
61
- },
62
- catch: (e) => new WorktreeError({
63
- message: `Provider '${options.provider.name}' create failed: ${e instanceof Error ? e.message : String(e)}`,
64
- }),
65
- }).pipe(Effect.map((handle) => ({
66
- handle,
67
- sandboxLayer: makeSandboxLayerFromHandle(handle),
68
- worktreePath: handle.worktreePath,
69
- })), withTimeout(CONTAINER_START_TIMEOUT_MS, () => new ContainerStartTimeoutError({
70
- message: `Sandbox container start timed out after ${CONTAINER_START_TIMEOUT_MS}ms`,
71
- timeoutMs: CONTAINER_START_TIMEOUT_MS,
72
- })));
73
- const startIsolatedSandbox = (options) => Effect.gen(function* () {
74
- const handle = yield* Effect.tryPromise({
75
- try: () => options.provider.create({ env: options.env }),
76
- catch: (e) => new WorktreeError({
77
- message: `Isolated provider '${options.provider.name}' setup failed: ${e instanceof Error ? e.message : String(e)}`,
78
- }),
79
- }).pipe(withTimeout(CONTAINER_START_TIMEOUT_MS, () => new ContainerStartTimeoutError({
80
- message: `Isolated sandbox container start timed out after ${CONTAINER_START_TIMEOUT_MS}ms`,
81
- timeoutMs: CONTAINER_START_TIMEOUT_MS,
82
- })));
83
- yield* syncIn(options.hostRepoDir, handle).pipe(withTimeout(SYNC_IN_TIMEOUT_MS, () => new SyncInTimeoutError({
84
- message: `Sync-in timed out after ${SYNC_IN_TIMEOUT_MS}ms`,
85
- timeoutMs: SYNC_IN_TIMEOUT_MS,
86
- })));
87
- if (options.copyPaths && options.copyPaths.length > 0) {
88
- const pathsToCopy = options.copyPaths;
89
- yield* Effect.gen(function* () {
90
- for (const relativePath of pathsToCopy) {
91
- const hostPath = join(options.hostRepoDir, relativePath);
92
- if (!existsSync(hostPath)) {
93
- continue;
94
- }
95
- // Sandbox-side path: Linux container, must use POSIX separators
96
- // regardless of host platform.
97
- const sandboxPath = posix.join(handle.worktreePath, relativePath);
98
- yield* Effect.tryPromise({
99
- try: () => handle.copyIn(hostPath, sandboxPath),
100
- catch: (e) => new WorktreeError({
101
- message: `Failed to copy ${relativePath} into sandbox: ${e instanceof Error ? e.message : String(e)}`,
102
- }),
103
- });
104
- }
105
- }).pipe(withTimeout(COPY_PATHS_TIMEOUT_MS, () => new CopyToWorktreeTimeoutError({
106
- message: `Copying paths to worktree timed out after ${COPY_PATHS_TIMEOUT_MS}ms`,
107
- timeoutMs: COPY_PATHS_TIMEOUT_MS,
108
- paths: pathsToCopy,
109
- })));
110
- }
111
- return {
112
- handle,
113
- sandboxLayer: makeSandboxLayerFromHandle(handle),
114
- worktreePath: handle.worktreePath,
115
- };
116
- });
117
- //# sourceMappingURL=startSandbox.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"startSandbox.js","sourceRoot":"","sources":["../src/startSandbox.ts"],"names":[],"mappings":"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"}
package/dist/syncIn.d.ts DELETED
@@ -1,24 +0,0 @@
1
- /**
2
- * Sync-in: transfer a host git repo into an isolated sandbox via git bundle.
3
- *
4
- * Creates a git bundle capturing all refs from the host repo,
5
- * copies it into the sandbox via the provider's copyIn, and
6
- * clones from the bundle inside the sandbox.
7
- */
8
- import { Effect } from "effect";
9
- import type { IsolatedSandboxHandle } from "./SandboxProvider.js";
10
- import { SyncError } from "./errors.js";
11
- /**
12
- * Sync a host git repo into an isolated sandbox.
13
- *
14
- * 1. `git bundle create --all` on the host
15
- * 2. `copyIn` the bundle to the sandbox
16
- * 3. `git clone` from the bundle inside the sandbox
17
- * 4. Verify HEAD matches
18
- *
19
- * @returns The branch name that was checked out
20
- */
21
- export declare const syncIn: (hostRepoDir: string, handle: IsolatedSandboxHandle) => Effect.Effect<{
22
- branch: string;
23
- }, SyncError, never>;
24
- //# sourceMappingURL=syncIn.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"syncIn.d.ts","sourceRoot":"","sources":["../src/syncIn.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAwDxC;;;;;;;;;GASG;AACH,eAAO,MAAM,MAAM;;oBA2Ff,CAAC"}