@ai-hero/sandcastle 0.5.12 → 0.6.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 (111) hide show
  1. package/README.md +106 -79
  2. package/dist/AgentProvider.d.ts +56 -3
  3. package/dist/AgentProvider.d.ts.map +1 -1
  4. package/dist/AgentProvider.js +324 -9
  5. package/dist/AgentProvider.js.map +1 -1
  6. package/dist/DockerLifecycle.d.ts +6 -0
  7. package/dist/DockerLifecycle.d.ts.map +1 -1
  8. package/dist/DockerLifecycle.js +12 -0
  9. package/dist/DockerLifecycle.js.map +1 -1
  10. package/dist/InitService.d.ts.map +1 -1
  11. package/dist/InitService.js +115 -14
  12. package/dist/InitService.js.map +1 -1
  13. package/dist/Orchestrator.d.ts +4 -2
  14. package/dist/Orchestrator.d.ts.map +1 -1
  15. package/dist/Orchestrator.js +15 -14
  16. package/dist/Orchestrator.js.map +1 -1
  17. package/dist/SandboxFactory.d.ts.map +1 -1
  18. package/dist/SandboxFactory.js +51 -64
  19. package/dist/SandboxFactory.js.map +1 -1
  20. package/dist/SandboxLifecycle.d.ts +3 -0
  21. package/dist/SandboxLifecycle.d.ts.map +1 -1
  22. package/dist/SandboxLifecycle.js +44 -18
  23. package/dist/SandboxLifecycle.js.map +1 -1
  24. package/dist/SessionStore.d.ts +71 -10
  25. package/dist/SessionStore.d.ts.map +1 -1
  26. package/dist/SessionStore.js +222 -17
  27. package/dist/SessionStore.js.map +1 -1
  28. package/dist/WorktreeManager.d.ts +27 -0
  29. package/dist/WorktreeManager.d.ts.map +1 -1
  30. package/dist/WorktreeManager.js +50 -8
  31. package/dist/WorktreeManager.js.map +1 -1
  32. package/dist/boundedTail.d.ts +48 -0
  33. package/dist/boundedTail.d.ts.map +1 -0
  34. package/dist/boundedTail.js +64 -0
  35. package/dist/boundedTail.js.map +1 -0
  36. package/dist/cli.d.ts +1 -0
  37. package/dist/cli.d.ts.map +1 -1
  38. package/dist/cli.js +19 -3
  39. package/dist/cli.js.map +1 -1
  40. package/dist/createSandbox.d.ts.map +1 -1
  41. package/dist/createSandbox.js +116 -122
  42. package/dist/createSandbox.js.map +1 -1
  43. package/dist/createWorktree.d.ts.map +1 -1
  44. package/dist/createWorktree.js +10 -9
  45. package/dist/createWorktree.js.map +1 -1
  46. package/dist/errors.d.ts +3 -0
  47. package/dist/errors.d.ts.map +1 -1
  48. package/dist/errors.js.map +1 -1
  49. package/dist/index.d.ts +3 -4
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +2 -3
  52. package/dist/index.js.map +1 -1
  53. package/dist/interactive.d.ts.map +1 -1
  54. package/dist/interactive.js +55 -46
  55. package/dist/interactive.js.map +1 -1
  56. package/dist/resumePrecheck.d.ts +26 -0
  57. package/dist/resumePrecheck.d.ts.map +1 -0
  58. package/dist/resumePrecheck.js +40 -0
  59. package/dist/resumePrecheck.js.map +1 -0
  60. package/dist/run.d.ts +15 -5
  61. package/dist/run.d.ts.map +1 -1
  62. package/dist/run.js +23 -9
  63. package/dist/run.js.map +1 -1
  64. package/dist/sandboxes/daytona.d.ts +9 -0
  65. package/dist/sandboxes/daytona.d.ts.map +1 -1
  66. package/dist/sandboxes/daytona.js +9 -7
  67. package/dist/sandboxes/daytona.js.map +1 -1
  68. package/dist/sandboxes/docker.d.ts +45 -0
  69. package/dist/sandboxes/docker.d.ts.map +1 -1
  70. package/dist/sandboxes/docker.js +40 -28
  71. package/dist/sandboxes/docker.js.map +1 -1
  72. package/dist/sandboxes/no-sandbox.d.ts +9 -0
  73. package/dist/sandboxes/no-sandbox.d.ts.map +1 -1
  74. package/dist/sandboxes/no-sandbox.js +32 -17
  75. package/dist/sandboxes/no-sandbox.js.map +1 -1
  76. package/dist/sandboxes/podman.d.ts +47 -0
  77. package/dist/sandboxes/podman.d.ts.map +1 -1
  78. package/dist/sandboxes/podman.js +49 -28
  79. package/dist/sandboxes/podman.js.map +1 -1
  80. package/dist/sandboxes/test-bind-mount.d.ts.map +1 -1
  81. package/dist/sandboxes/test-bind-mount.js +7 -6
  82. package/dist/sandboxes/test-bind-mount.js.map +1 -1
  83. package/dist/sandboxes/test-isolated.d.ts.map +1 -1
  84. package/dist/sandboxes/test-isolated.js +7 -6
  85. package/dist/sandboxes/test-isolated.js.map +1 -1
  86. package/dist/sandboxes/vercel.d.ts +9 -0
  87. package/dist/sandboxes/vercel.d.ts.map +1 -1
  88. package/dist/sandboxes/vercel.js +9 -7
  89. package/dist/sandboxes/vercel.js.map +1 -1
  90. package/dist/shutdownRegistry.d.ts +30 -0
  91. package/dist/shutdownRegistry.d.ts.map +1 -0
  92. package/dist/shutdownRegistry.js +73 -0
  93. package/dist/shutdownRegistry.js.map +1 -0
  94. package/dist/syncOut.js +1 -1
  95. package/dist/syncOut.js.map +1 -1
  96. package/dist/templates/parallel-planner/main.mts +19 -17
  97. package/dist/templates/parallel-planner/plan-prompt.md +4 -2
  98. package/dist/templates/parallel-planner-with-review/main.mts +19 -17
  99. package/dist/templates/parallel-planner-with-review/plan-prompt.md +4 -2
  100. package/dist/templates/parallel-planner-with-review/review-prompt.md +2 -2
  101. package/dist/templates/sequential-reviewer/main.mts +13 -5
  102. package/dist/templates/sequential-reviewer/review-prompt.md +2 -2
  103. package/dist/templates/simple-loop/main.mts +1 -1
  104. package/dist/testSandbox.d.ts.map +1 -1
  105. package/dist/testSandbox.js +32 -19
  106. package/dist/testSandbox.js.map +1 -1
  107. package/package.json +3 -2
  108. package/dist/SessionPaths.d.ts +0 -26
  109. package/dist/SessionPaths.d.ts.map +0 -1
  110. package/dist/SessionPaths.js +0 -22
  111. package/dist/SessionPaths.js.map +0 -1
@@ -177,27 +177,25 @@ export const WorktreeDockerSandboxFactory = {
177
177
  })))));
178
178
  }
179
179
  // Worktree mode (merge-to-head or explicit branch).
180
- return Effect.acquireUseRelease(pruneAndCreate().pipe(Effect.flatMap((worktreeInfo) => (copyPaths && copyPaths.length > 0
180
+ // Nested so the worktree is always cleaned up (outer release) even
181
+ // when copying, hooks, or sandbox start fail. The provider handle is
182
+ // closed by the inner release, which only runs once it exists.
183
+ return Effect.acquireUseRelease(pruneAndCreate(), (worktreeInfo) => (copyPaths && copyPaths.length > 0
181
184
  ? display.spinner("Copying to worktree", copyToWorktree(copyPaths, hostRepoDir, worktreeInfo.path, timeouts?.copyToWorktreeMs))
182
- : Effect.succeed(undefined)).pipe(Effect.map(() => worktreeInfo))), Effect.tap((worktreeInfo) => hooks?.host?.onWorktreeReady?.length
185
+ : Effect.succeed(undefined)).pipe(Effect.andThen(hooks?.host?.onWorktreeReady?.length
183
186
  ? runHostHooks(hooks.host.onWorktreeReady, worktreeInfo.path, signal)
184
- : Effect.void), Effect.flatMap((worktreeInfo) => startSandbox({
187
+ : Effect.void), Effect.andThen(Effect.acquireUseRelease(startSandbox({
185
188
  provider: sandboxProvider,
186
189
  hostRepoDir,
187
190
  env,
188
191
  worktreeOrRepoPath: worktreeInfo.path,
189
- }).pipe(Effect.map(({ handle, sandboxLayer, worktreePath }) => ({
190
- worktreeInfo,
191
- handle,
192
- sandboxLayer,
193
- worktreePath,
194
- }))))), ({ worktreeInfo, sandboxLayer, worktreePath }) => makeEffect({
192
+ }), ({ sandboxLayer, worktreePath }) => makeEffect({
195
193
  hostWorktreePath: worktreeInfo.path,
196
194
  sandboxRepoPath: worktreePath,
197
- }).pipe(Effect.provide(sandboxLayer)), ({ worktreeInfo, handle }, exit) => Effect.tryPromise({
195
+ }).pipe(Effect.provide(sandboxLayer)), ({ handle }) => Effect.tryPromise({
198
196
  try: () => handle.close(),
199
197
  catch: () => undefined,
200
- }).pipe(Effect.andThen(cleanupWorktree(worktreeInfo.path, exit)), Effect.tap((p) => {
198
+ }).pipe(Effect.orDie)))), (worktreeInfo, exit) => cleanupWorktree(worktreeInfo.path, exit).pipe(Effect.tap((p) => {
201
199
  preservedPath = p;
202
200
  }), Effect.asVoid, Effect.orDie)).pipe(Effect.map((value) => ({
203
201
  value,
@@ -207,32 +205,24 @@ export const WorktreeDockerSandboxFactory = {
207
205
  // Isolated providers: create worktree, sync via git bundle
208
206
  if (sandboxProvider.tag === "isolated") {
209
207
  let preservedPath;
210
- return Effect.acquireUseRelease(
211
- // Acquire: prune stale worktrees, create worktree, run host hooks, then start sandbox
212
- pruneAndCreate().pipe(Effect.tap((worktreeInfo) => hooks?.host?.onWorktreeReady?.length
208
+ // Nested so the worktree is always cleaned up (outer release) even
209
+ // when hooks or sandbox start fail. The provider handle is closed by
210
+ // the inner release, which only runs once it exists.
211
+ return Effect.acquireUseRelease(pruneAndCreate(), (worktreeInfo) => (hooks?.host?.onWorktreeReady?.length
213
212
  ? runHostHooks(hooks.host.onWorktreeReady, worktreeInfo.path, signal)
214
- : Effect.void), Effect.flatMap((worktreeInfo) => startSandbox({
213
+ : Effect.void).pipe(Effect.andThen(Effect.acquireUseRelease(startSandbox({
215
214
  provider: sandboxProvider,
216
215
  hostRepoDir: worktreeInfo.path,
217
216
  env,
218
217
  copyPaths,
219
- }).pipe(Effect.map(({ handle, sandboxLayer, worktreePath }) => ({
220
- worktreeInfo,
221
- handle,
222
- sandboxLayer,
223
- worktreePath,
224
- }))))),
225
- // Use
226
- ({ worktreeInfo, sandboxLayer, worktreePath, handle }) => makeEffect({
218
+ }), ({ sandboxLayer, worktreePath, handle }) => makeEffect({
227
219
  hostWorktreePath: worktreeInfo.path,
228
220
  sandboxRepoPath: worktreePath,
229
221
  applyToHost: () => syncOut(worktreeInfo.path, handle),
230
- }).pipe(Effect.provide(sandboxLayer)),
231
- // Release: close handle, then cleanup worktree
232
- ({ worktreeInfo, handle }, exit) => Effect.tryPromise({
222
+ }).pipe(Effect.provide(sandboxLayer)), ({ handle }) => Effect.tryPromise({
233
223
  try: () => handle.close(),
234
224
  catch: () => undefined,
235
- }).pipe(Effect.andThen(cleanupWorktree(worktreeInfo.path, exit)), Effect.tap((p) => {
225
+ }).pipe(Effect.orDie)))), (worktreeInfo, exit) => cleanupWorktree(worktreeInfo.path, exit).pipe(Effect.tap((p) => {
236
226
  preservedPath = p;
237
227
  }), Effect.asVoid, Effect.orDie)).pipe(Effect.map((value) => ({
238
228
  value,
@@ -280,51 +270,48 @@ export const WorktreeDockerSandboxFactory = {
280
270
  // Populated by the release phase when a worktree is preserved on failure,
281
271
  // so we can attach the path to recognized error types before they propagate.
282
272
  let preservedWorktreePath;
273
+ // Worktree creation and sandbox start are nested so the worktree is
274
+ // always cleaned up (outer release) even when a later step — copying,
275
+ // hooks, or sandbox start — fails. The provider handle is closed by the
276
+ // inner release, which only runs once the handle exists.
283
277
  return Effect.acquireUseRelease(
284
- // Acquire: prune stale worktrees (best-effort), create worktree, run host hooks, then start sandbox
285
- pruneAndCreate().pipe(Effect.flatMap((worktreeInfo) => (copyPaths && copyPaths.length > 0
278
+ // Acquire: prune stale worktrees (best-effort), then create the worktree.
279
+ pruneAndCreate(),
280
+ // Use: copy files, run host hooks, resolve+patch git mounts, then start
281
+ // the sandbox under a nested acquireUseRelease.
282
+ (worktreeInfo) => (copyPaths && copyPaths.length > 0
286
283
  ? display.spinner("Copying to worktree", copyToWorktree(copyPaths, hostRepoDir, worktreeInfo.path, timeouts?.copyToWorktreeMs))
287
- : Effect.succeed(undefined)).pipe(Effect.map(() => worktreeInfo))), Effect.tap((worktreeInfo) => hooks?.host?.onWorktreeReady?.length
284
+ : Effect.succeed(undefined)).pipe(Effect.andThen(hooks?.host?.onWorktreeReady?.length
288
285
  ? runHostHooks(hooks.host.onWorktreeReady, worktreeInfo.path, signal)
289
- : Effect.void), Effect.flatMap((worktreeInfo) => {
290
- const gitPath = join(hostRepoDir, ".git");
291
- return resolveGitMounts(gitPath).pipe(Effect.provideService(FileSystem.FileSystem, fileSystem), Effect.mapError((e) => new WorktreeError({
292
- message: `Failed to resolve git mounts: ${e}`,
293
- })),
294
- // Patch git mounts for Windows worktree compatibility (ADR-0006)
295
- Effect.flatMap((gitMounts) => Effect.tryPromise({
296
- try: () => patchGitMountsForWindows(gitMounts, worktreeInfo.path, SANDBOX_REPO_DIR),
297
- catch: (e) => new WorktreeError({
298
- message: `Failed to patch git mounts: ${e instanceof Error ? e.message : String(e)}`,
299
- }),
300
- })), Effect.flatMap((gitMounts) =>
301
- // sandboxProvider is guaranteed bind-mount here
302
- // (isolated providers return early above)
303
- startSandbox({
304
- provider: sandboxProvider,
305
- hostRepoDir,
306
- env,
307
- worktreeOrRepoPath: worktreeInfo.path,
308
- gitMounts,
309
- repoDir: SANDBOX_REPO_DIR,
310
- }).pipe(Effect.map(({ handle, sandboxLayer, worktreePath }) => ({
311
- worktreeInfo,
312
- handle,
313
- sandboxLayer,
314
- worktreePath,
315
- })))));
316
- })),
317
- // Use
318
- ({ worktreeInfo, sandboxLayer, worktreePath, handle }) => makeEffect({
286
+ : Effect.void), Effect.andThen(resolveGitMounts(join(hostRepoDir, ".git")).pipe(Effect.provideService(FileSystem.FileSystem, fileSystem), Effect.mapError((e) => new WorktreeError({
287
+ message: `Failed to resolve git mounts: ${e}`,
288
+ })))),
289
+ // Patch git mounts for Windows worktree compatibility (ADR-0006)
290
+ Effect.flatMap((gitMounts) => Effect.tryPromise({
291
+ try: () => patchGitMountsForWindows(gitMounts, worktreeInfo.path, SANDBOX_REPO_DIR),
292
+ catch: (e) => new WorktreeError({
293
+ message: `Failed to patch git mounts: ${e instanceof Error ? e.message : String(e)}`,
294
+ }),
295
+ })), Effect.flatMap((gitMounts) => Effect.acquireUseRelease(
296
+ // sandboxProvider is guaranteed bind-mount here
297
+ // (isolated providers return early above)
298
+ startSandbox({
299
+ provider: sandboxProvider,
300
+ hostRepoDir,
301
+ env,
302
+ worktreeOrRepoPath: worktreeInfo.path,
303
+ gitMounts,
304
+ repoDir: SANDBOX_REPO_DIR,
305
+ }), ({ sandboxLayer, worktreePath, handle }) => makeEffect({
319
306
  hostWorktreePath: worktreeInfo.path,
320
307
  sandboxRepoPath: worktreePath,
321
308
  bindMountHandle: handle,
322
- }).pipe(Effect.provide(sandboxLayer)),
323
- // Release: close provider handle, then remove/preserve worktree based on dirty state.
324
- ({ worktreeInfo, handle }, exit) => Effect.tryPromise({
309
+ }).pipe(Effect.provide(sandboxLayer)), ({ handle }) => Effect.tryPromise({
325
310
  try: () => handle.close(),
326
311
  catch: () => undefined,
327
- }).pipe(Effect.andThen(cleanupWorktree(worktreeInfo.path, exit)), Effect.tap((p) => {
312
+ }).pipe(Effect.orDie)))),
313
+ // Release: remove or preserve the worktree based on dirty state.
314
+ (worktreeInfo, exit) => cleanupWorktree(worktreeInfo.path, exit).pipe(Effect.tap((p) => {
328
315
  preservedWorktreePath = p;
329
316
  }), Effect.asVoid, Effect.orDie)).pipe(Effect.map((value) => ({
330
317
  value,
@@ -1 +1 @@
1
- {"version":3,"file":"SandboxFactory.js","sourceRoot":"","sources":["../src/SandboxFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SandboxFactory.js","sourceRoot":"","sources":["../src/SandboxFactory.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { Effect } from "effect";
2
2
  import { Display } from "./Display.js";
3
3
  import { ExecError, HookTimeoutError, SyncError, type SandboxError } from "./errors.js";
4
4
  import { Sandbox, type SandboxService } from "./SandboxFactory.js";
5
+ import type { Timeouts } from "./run.js";
5
6
  export type SandboxHooks = {
6
7
  readonly host?: {
7
8
  readonly onWorktreeReady?: ReadonlyArray<{
@@ -45,6 +46,8 @@ export interface SandboxLifecycleOptions {
45
46
  /** AbortSignal passed through to lifecycle hooks so they can cooperatively cancel.
46
47
  * When omitted, hooks receive a never-aborted signal. */
47
48
  readonly signal?: AbortSignal;
49
+ /** Override default timeouts for built-in lifecycle steps. Unset keys keep their defaults. */
50
+ readonly timeouts?: Timeouts;
48
51
  }
49
52
  export interface SandboxContext {
50
53
  readonly sandbox: SandboxService;
@@ -1 +1 @@
1
- {"version":3,"file":"SandboxLifecycle.d.ts","sourceRoot":"","sources":["../src/SandboxLifecycle.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAEL,SAAS,EAET,gBAAgB,EAEhB,SAAS,EAET,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,OAAO,EAEP,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AA0C7B,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE;QACd,QAAQ,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC;YACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;YACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;SAC7B,CAAC,CAAC;QACH,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;YACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;YACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;SAC7B,CAAC,CAAC;KACJ,CAAC;IACF,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;YACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;YACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;SAC7B,CAAC,CAAC;KACJ,CAAC;CACH,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;+GA8BrB,CAAC;AAEL,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;yFACqF;IACrF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC;;oFAEgF;IAChF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC5D;8DAC0D;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACrC;AAED,eAAO,MAAM,oBAAoB,GAAI,CAAC,kMA0VlC,CAAC"}
1
+ {"version":3,"file":"SandboxLifecycle.d.ts","sourceRoot":"","sources":["../src/SandboxLifecycle.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,MAAM,EAAY,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAEL,SAAS,EAET,gBAAgB,EAEhB,SAAS,EAET,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,OAAO,EAEP,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAqEzC,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE;QACd,QAAQ,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC;YACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;YACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;SAC7B,CAAC,CAAC;QACH,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;YACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;YACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;SAC7B,CAAC,CAAC;KACJ,CAAC;IACF,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;YACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;YACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;SAC7B,CAAC,CAAC;KACJ,CAAC;CACH,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;+GA8BrB,CAAC;AAEL,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;yFACqF;IACrF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC;;oFAEgF;IAChF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC5D;8DAC0D;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,8FAA8F;IAC9F,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACrC;AAED,eAAO,MAAM,oBAAoB,GAAI,CAAC,kMAsWlC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { exec } from "node:child_process";
2
2
  import { promisify } from "node:util";
3
- import { Deferred, Effect } from "effect";
3
+ import { Deferred, Duration, Effect, Schedule } from "effect";
4
4
  import { Display } from "./Display.js";
5
5
  import { CommitCollectionTimeoutError, ExecError, GitSetupTimeoutError, HookTimeoutError, MergeToHostTimeoutError, SyncError, withTimeout, } from "./errors.js";
6
6
  import { Sandbox, } from "./SandboxFactory.js";
@@ -8,17 +8,39 @@ const GIT_SETUP_TIMEOUT_MS = 10_000;
8
8
  const HOOK_TIMEOUT_MS = 60_000;
9
9
  const COMMIT_COLLECTION_TIMEOUT_MS = 30_000;
10
10
  const MERGE_TO_HOST_TIMEOUT_MS = 30_000;
11
+ /** Number of times a transient git setup exec is retried after the first attempt. */
12
+ const GIT_SETUP_MAX_RETRIES = 2;
13
+ /** Delay between git setup retries — long enough to let a transient exec race clear. */
14
+ const GIT_SETUP_RETRY_DELAY_MS = 250;
15
+ /**
16
+ * Exit codes that indicate the shell could not exec the command rather than the
17
+ * command itself failing — symptoms of a transient race under heavy container
18
+ * load (e.g. overlayfs not yet ready, or the process being killed). Worth a retry.
19
+ * 126: command found but not executable / exec failed. 137: killed (128 + SIGKILL).
20
+ */
21
+ const TRANSIENT_EXEC_EXIT_CODES = new Set([126, 137]);
22
+ const isTransientExecError = (err) => err._tag === "ExecError" &&
23
+ err.exitCode !== undefined &&
24
+ TRANSIENT_EXEC_EXIT_CODES.has(err.exitCode);
11
25
  const execOk = (sandbox, command, options) => Effect.flatMap(sandbox.exec(command, options), (result) => result.exitCode !== 0
12
26
  ? Effect.fail(new ExecError({
13
27
  command,
28
+ exitCode: result.exitCode,
14
29
  message: `Command failed (exit ${result.exitCode}): ${command}\n${result.stderr}`,
15
30
  }))
16
31
  : Effect.succeed(result));
17
- const execOkWithGitTimeout = (sandbox, command, options) => execOk(sandbox, command, options).pipe(withTimeout(GIT_SETUP_TIMEOUT_MS, () => new GitSetupTimeoutError({
18
- message: `Git command timed out after ${GIT_SETUP_TIMEOUT_MS}ms: ${command}`,
19
- timeoutMs: GIT_SETUP_TIMEOUT_MS,
32
+ const execOkWithGitTimeout = (sandbox, command, gitSetupTimeoutMs, options) => execOk(sandbox, command, options).pipe(withTimeout(gitSetupTimeoutMs, () => new GitSetupTimeoutError({
33
+ message: `Git command timed out after ${gitSetupTimeoutMs}ms: ${command}`,
34
+ timeoutMs: gitSetupTimeoutMs,
20
35
  command,
21
- })));
36
+ })),
37
+ // Each attempt is bounded by its own timeout (above); retry only transient
38
+ // exec races, so a genuine git error or a hung exec still fails fast.
39
+ Effect.retry({
40
+ while: isTransientExecError,
41
+ times: GIT_SETUP_MAX_RETRIES,
42
+ schedule: Schedule.spaced(Duration.millis(GIT_SETUP_RETRY_DELAY_MS)),
43
+ }));
22
44
  const execAsync = promisify(exec);
23
45
  /**
24
46
  * Runs an array of host-side hook commands sequentially.
@@ -45,6 +67,10 @@ export const withSandboxLifecycle = (options, work) => Effect.gen(function* () {
45
67
  const sandbox = yield* Sandbox;
46
68
  const display = yield* Display;
47
69
  const { hostRepoDir, sandboxRepoDir, hooks, branch, hostWorktreePath } = options;
70
+ // Resolve effective timeouts, falling back to the built-in defaults.
71
+ const gitSetupTimeoutMs = options.timeouts?.gitSetupMs ?? GIT_SETUP_TIMEOUT_MS;
72
+ const commitCollectionTimeoutMs = options.timeouts?.commitCollectionMs ?? COMMIT_COLLECTION_TIMEOUT_MS;
73
+ const mergeToHostTimeoutMs = options.timeouts?.mergeToHostMs ?? MERGE_TO_HOST_TIMEOUT_MS;
48
74
  // Resolve signal: use caller's signal or a never-aborted one so hooks
49
75
  // can unconditionally reference it without null-checking.
50
76
  const signal = options.signal ?? new AbortController().signal;
@@ -76,17 +102,17 @@ export const withSandboxLifecycle = (options, work) => Effect.gen(function* () {
76
102
  // The bind-mounted worktree may be owned by a different UID (host user
77
103
  // vs sandbox user). Mark it safe so git doesn't reject it with
78
104
  // "dubious ownership".
79
- yield* execOkWithGitTimeout(sandbox, `git config --global --add safe.directory "${sandboxRepoDir}"`);
105
+ yield* execOkWithGitTimeout(sandbox, `git config --global --add safe.directory "${sandboxRepoDir}"`, gitSetupTimeoutMs);
80
106
  // Propagate host git identity into the sandbox so commits are attributed
81
107
  // to the actual developer without requiring manual setup.
82
108
  if (hostGitName) {
83
- yield* execOkWithGitTimeout(sandbox, `git config --global user.name "${hostGitName.replace(/"/g, '\\"')}"`);
109
+ yield* execOkWithGitTimeout(sandbox, `git config --global user.name "${hostGitName.replace(/"/g, '\\"')}"`, gitSetupTimeoutMs);
84
110
  }
85
111
  if (hostGitEmail) {
86
- yield* execOkWithGitTimeout(sandbox, `git config --global user.email "${hostGitEmail.replace(/"/g, '\\"')}"`);
112
+ yield* execOkWithGitTimeout(sandbox, `git config --global user.email "${hostGitEmail.replace(/"/g, '\\"')}"`, gitSetupTimeoutMs);
87
113
  }
88
114
  // Repo is bind-mounted — discover branch directly
89
- resolvedBranch = (yield* execOkWithGitTimeout(sandbox, "git rev-parse --abbrev-ref HEAD", { cwd: sandboxRepoDir })).stdout.trim();
115
+ resolvedBranch = (yield* execOkWithGitTimeout(sandbox, "git rev-parse --abbrev-ref HEAD", gitSetupTimeoutMs, { cwd: sandboxRepoDir })).stdout.trim();
90
116
  // Run sandbox.onSandboxReady and host.onSandboxReady in parallel
91
117
  const sandboxHooks = hooks?.sandbox?.onSandboxReady;
92
118
  const hostOnSandboxReady = hooks?.host?.onSandboxReady;
@@ -216,9 +242,9 @@ export const withSandboxLifecycle = (options, work) => Effect.gen(function* () {
216
242
  catch: (e) => new SyncError({
217
243
  message: String(e instanceof Error ? e.message : e),
218
244
  }),
219
- }).pipe(withTimeout(MERGE_TO_HOST_TIMEOUT_MS, () => new MergeToHostTimeoutError({
220
- message: `Merge of '${resolvedBranch}' to '${hostCurrentBranch}' timed out after ${MERGE_TO_HOST_TIMEOUT_MS}ms`,
221
- timeoutMs: MERGE_TO_HOST_TIMEOUT_MS,
245
+ }).pipe(withTimeout(mergeToHostTimeoutMs, () => new MergeToHostTimeoutError({
246
+ message: `Merge of '${resolvedBranch}' to '${hostCurrentBranch}' timed out after ${mergeToHostTimeoutMs}ms`,
247
+ timeoutMs: mergeToHostTimeoutMs,
222
248
  sourceBranch: resolvedBranch,
223
249
  targetBranch: hostCurrentBranch,
224
250
  }))));
@@ -239,9 +265,9 @@ export const withSandboxLifecycle = (options, work) => Effect.gen(function* () {
239
265
  catch {
240
266
  return [];
241
267
  }
242
- }).pipe(withTimeout(COMMIT_COLLECTION_TIMEOUT_MS, () => new CommitCollectionTimeoutError({
243
- message: `Commit collection timed out after ${COMMIT_COLLECTION_TIMEOUT_MS}ms`,
244
- timeoutMs: COMMIT_COLLECTION_TIMEOUT_MS,
268
+ }).pipe(withTimeout(commitCollectionTimeoutMs, () => new CommitCollectionTimeoutError({
269
+ message: `Commit collection timed out after ${commitCollectionTimeoutMs}ms`,
270
+ timeoutMs: commitCollectionTimeoutMs,
245
271
  }))));
246
272
  finalBranch = hostCurrentBranch;
247
273
  }
@@ -259,9 +285,9 @@ export const withSandboxLifecycle = (options, work) => Effect.gen(function* () {
259
285
  // Branch doesn't exist on host (no commits were produced)
260
286
  return [];
261
287
  }
262
- }).pipe(withTimeout(COMMIT_COLLECTION_TIMEOUT_MS, () => new CommitCollectionTimeoutError({
263
- message: `Commit collection timed out after ${COMMIT_COLLECTION_TIMEOUT_MS}ms`,
264
- timeoutMs: COMMIT_COLLECTION_TIMEOUT_MS,
288
+ }).pipe(withTimeout(commitCollectionTimeoutMs, () => new CommitCollectionTimeoutError({
289
+ message: `Commit collection timed out after ${commitCollectionTimeoutMs}ms`,
290
+ timeoutMs: commitCollectionTimeoutMs,
265
291
  }))));
266
292
  finalBranch = targetBranch;
267
293
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SandboxLifecycle.js","sourceRoot":"","sources":["../src/SandboxLifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SandboxLifecycle.js","sourceRoot":"","sources":["../src/SandboxLifecycle.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,35 @@
1
1
  /**
2
2
  * SessionStore — keyed collection of agent session JSONLs.
3
3
  *
4
- * Provides read/write access to Claude Code session files, with two
5
- * implementations: host-backed (filesystem) and sandbox-backed (via
6
- * bind-mount handle file-transfer primitives). The `transferSession`
7
- * function copies a session between stores, rewriting `cwd` fields in
8
- * the JSONL entries from source cwd to target cwd.
4
+ * Provides read/write access to agent session files, with host-backed
5
+ * (filesystem) and sandbox-backed (via bind-mount handle file-transfer
6
+ * primitives) implementations. Per ADR 0012, the per-provider `transfer`
7
+ * op (e.g. `transferClaudeSession`, `transferCodexSession`) copies a session
8
+ * between stores and applies any format-specific content rewriting — for
9
+ * JSONL agents, rewriting `cwd` fields from source cwd to target cwd via the
10
+ * shared `rewriteSessionCwd` primitive.
9
11
  */
10
12
  import type { BindMountSandboxHandle } from "./SandboxProvider.js";
13
+ /**
14
+ * Result of locating a session on the host by its unique id, independent of any
15
+ * cwd-derived path encoding.
16
+ */
17
+ export interface HostSessionLookup {
18
+ /** Absolute path to the located session file, or `undefined` when no session
19
+ * with this id exists anywhere under the searched root. */
20
+ readonly path: string | undefined;
21
+ /** The host directory that was scanned — surfaced in not-found errors so the
22
+ * user knows where Sandcastle looked. */
23
+ readonly searchedRoot: string;
24
+ }
11
25
  /** A keyed collection of agent session JSONLs associated with a cwd. */
12
26
  export interface SessionStore {
13
27
  /** The working directory this store is associated with. */
14
28
  readonly cwd: string;
15
- /** Absolute path where a session's JSONL would be stored. */
16
- sessionFilePath(id: string): string;
29
+ /** Whether a session exists in this store. */
30
+ exists(id: string): Promise<boolean>;
31
+ /** Absolute path where a session is stored, when the store is file-backed and locatable. */
32
+ sessionFilePath(id: string): string | undefined;
17
33
  /** Read a session's JSONL content by ID. Throws if not found. */
18
34
  readSession(id: string): Promise<string>;
19
35
  /** Write a session's JSONL content by ID. Creates or overwrites. */
@@ -32,6 +48,17 @@ export declare const encodeProjectPath: (cwd: string) => string;
32
48
  * @param projectsDir - Override for the projects directory (default: `~/.claude/projects`).
33
49
  */
34
50
  export declare const hostSessionStore: (cwd: string, projectsDir?: string | undefined) => SessionStore;
51
+ /**
52
+ * Locate a Claude Code session JSONL on the host by its unique id, scanning each
53
+ * `~/.claude/projects/<encoded-cwd>/` directory rather than reconstructing the
54
+ * cwd encoding. The session id is globally unique, so the first match wins. Used
55
+ * by the no-sandbox resume precheck, where the agent wrote the file in place
56
+ * under a cwd-derived directory Sandcastle cannot reliably reconstruct.
57
+ *
58
+ * @param id - The session id (file basename without `.jsonl`).
59
+ * @param projectsDir - Override for the projects directory (default: `~/.claude/projects`).
60
+ */
61
+ export declare const findClaudeSessionOnHost: (id: string, projectsDir?: string | undefined) => Promise<HostSessionLookup>;
35
62
  /**
36
63
  * Create a sandbox-backed SessionStore that uses a bind-mount handle's
37
64
  * `copyFileIn`/`copyFileOut` to transfer session files.
@@ -42,8 +69,42 @@ export declare const hostSessionStore: (cwd: string, projectsDir?: string | unde
42
69
  */
43
70
  export declare const sandboxSessionStore: (cwd: string, handle: Pick<BindMountSandboxHandle, "copyFileIn" | "copyFileOut" | "exec">, projectsDir: string) => SessionStore;
44
71
  /**
45
- * Transfer a session from one store to another, rewriting `cwd` fields in
46
- * the JSONL entries from the source store's cwd to the target store's cwd.
72
+ * claudeCode's `sessionStorage.transfer` (ADR 0012). Copies a Claude Code
73
+ * session between stores, rewriting `cwd` fields in the JSONL entries from the
74
+ * source store's cwd to the target store's cwd. The rewrite is specific to
75
+ * Claude Code's JSONL format, so it lives with the provider rather than in
76
+ * central code.
77
+ */
78
+ export declare const transferClaudeSession: (from: SessionStore, to: SessionStore, id: string) => Promise<void>;
79
+ /**
80
+ * A file-backed `SessionStore` that can locate a session's on-disk path and
81
+ * write content at a specific relative path. Codex sessions are date-nested
82
+ * (`YYYY/MM/DD/rollout-*-<id>.jsonl`) rather than cwd-partitioned, so `transfer`
83
+ * must preserve the source's relative path on the target. Not part of the
84
+ * public API — the codex factory pairs these stores with `transferCodexSession`.
85
+ */
86
+ export interface LocatableSessionStore extends SessionStore {
87
+ locateSession(id: string): Promise<{
88
+ path: string;
89
+ relativePath: string;
90
+ }>;
91
+ writeSessionAt(relativePath: string, content: string): Promise<void>;
92
+ }
93
+ /**
94
+ * Locate a Codex session rollout file on the host by its id, reusing the
95
+ * date-nested scan. Used by the no-sandbox resume precheck.
96
+ *
97
+ * @param id - The session id.
98
+ * @param sessionsDir - Override for the sessions directory (default: `~/.codex/sessions`).
99
+ */
100
+ export declare const findCodexSessionOnHost: (id: string, sessionsDir?: string | undefined) => Promise<HostSessionLookup>;
101
+ export declare const codexHostSessionStore: (cwd: string, sessionsDir?: string | undefined) => LocatableSessionStore;
102
+ export declare const codexSandboxSessionStore: (cwd: string, handle: Pick<BindMountSandboxHandle, "copyFileIn" | "copyFileOut" | "exec">, sessionsDir?: string) => LocatableSessionStore;
103
+ /**
104
+ * codex's `sessionStorage.transfer` (ADR 0012). Copies a Codex session between
105
+ * locatable stores, rewriting the `cwd` in the `session_meta` line and
106
+ * preserving the source's relative date-path on the target so Codex's id-scan
107
+ * rediscovers the file.
47
108
  */
48
- export declare const transferSession: (from: SessionStore, to: SessionStore, id: string) => Promise<void>;
109
+ export declare const transferCodexSession: (from: LocatableSessionStore, to: LocatableSessionStore, id: string) => Promise<void>;
49
110
  //# sourceMappingURL=SessionStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SessionStore.d.ts","sourceRoot":"","sources":["../src/SessionStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAMnE,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,iEAAiE;IACjE,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,oEAAoE;IACpE,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAMD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,yBAI7B,CAAC;AAMF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,iEAoB5B,CAAC;AAMF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,iIA6C/B,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,eAAe,qEAyB3B,CAAC"}
1
+ {"version":3,"file":"SessionStore.d.ts","sourceRoot":"","sources":["../src/SessionStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAYH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAMnE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;gEAC4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC;8CAC0C;IAC1C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,4FAA4F;IAC5F,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAChD,iEAAiE;IACjE,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,oEAAoE;IACpE,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAeD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,yBAI7B,CAAC;AAMF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,iEAsB5B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,8EAoBnC,CAAC;AAMF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,iIAmD/B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,qEAcjC,CAAC;AAMF;;;;;;GAMG;AACH,MAAM,WAAW,qBAAsB,SAAQ,YAAY;IACzD,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3E,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE;AAyCD;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,8EAQlC,CAAC;AAEF,eAAO,MAAM,qBAAqB,0EAkDjC,CAAC;AAEF,eAAO,MAAM,wBAAwB,2IA2EpC,CAAC;AA0BF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,uFAUhC,CAAC"}