@ai-hero/sandcastle 0.5.8 → 0.5.11

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 (80) hide show
  1. package/README.md +72 -29
  2. package/dist/AgentProvider.d.ts +3 -1
  3. package/dist/AgentProvider.d.ts.map +1 -1
  4. package/dist/AgentProvider.js +5 -2
  5. package/dist/AgentProvider.js.map +1 -1
  6. package/dist/DockerLifecycle.d.ts +16 -1
  7. package/dist/DockerLifecycle.d.ts.map +1 -1
  8. package/dist/DockerLifecycle.js +12 -2
  9. package/dist/DockerLifecycle.js.map +1 -1
  10. package/dist/EnvResolver.d.ts.map +1 -1
  11. package/dist/EnvResolver.js +18 -3
  12. package/dist/EnvResolver.js.map +1 -1
  13. package/dist/InitService.d.ts.map +1 -1
  14. package/dist/InitService.js +38 -22
  15. package/dist/InitService.js.map +1 -1
  16. package/dist/Output.d.ts +80 -0
  17. package/dist/Output.d.ts.map +1 -0
  18. package/dist/Output.js +68 -0
  19. package/dist/Output.js.map +1 -0
  20. package/dist/SandboxFactory.d.ts.map +1 -1
  21. package/dist/SandboxFactory.js +51 -0
  22. package/dist/SandboxFactory.js.map +1 -1
  23. package/dist/SandboxProvider.d.ts +7 -9
  24. package/dist/SandboxProvider.d.ts.map +1 -1
  25. package/dist/SandboxProvider.js.map +1 -1
  26. package/dist/cli.d.ts.map +1 -1
  27. package/dist/cli.js +16 -1
  28. package/dist/cli.js.map +1 -1
  29. package/dist/createSandbox.d.ts +2 -2
  30. package/dist/createSandbox.d.ts.map +1 -1
  31. package/dist/createSandbox.js +29 -2
  32. package/dist/createSandbox.js.map +1 -1
  33. package/dist/createWorktree.d.ts +2 -2
  34. package/dist/createWorktree.d.ts.map +1 -1
  35. package/dist/createWorktree.js +10 -0
  36. package/dist/createWorktree.js.map +1 -1
  37. package/dist/extractStructuredOutput.d.ts +21 -0
  38. package/dist/extractStructuredOutput.d.ts.map +1 -0
  39. package/dist/extractStructuredOutput.js +97 -0
  40. package/dist/extractStructuredOutput.js.map +1 -0
  41. package/dist/index.d.ts +2 -0
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +1 -0
  44. package/dist/index.js.map +1 -1
  45. package/dist/interactive.d.ts +1 -1
  46. package/dist/mountUtils.d.ts +42 -0
  47. package/dist/mountUtils.d.ts.map +1 -1
  48. package/dist/mountUtils.js +58 -2
  49. package/dist/mountUtils.js.map +1 -1
  50. package/dist/run.d.ts +31 -2
  51. package/dist/run.d.ts.map +1 -1
  52. package/dist/run.js +27 -3
  53. package/dist/run.js.map +1 -1
  54. package/dist/sandboxes/docker.d.ts +23 -1
  55. package/dist/sandboxes/docker.d.ts.map +1 -1
  56. package/dist/sandboxes/docker.js +72 -10
  57. package/dist/sandboxes/docker.js.map +1 -1
  58. package/dist/sandboxes/no-sandbox.d.ts +4 -3
  59. package/dist/sandboxes/no-sandbox.d.ts.map +1 -1
  60. package/dist/sandboxes/no-sandbox.js +4 -3
  61. package/dist/sandboxes/no-sandbox.js.map +1 -1
  62. package/dist/sandboxes/podman.d.ts +3 -2
  63. package/dist/sandboxes/podman.d.ts.map +1 -1
  64. package/dist/sandboxes/podman.js +29 -9
  65. package/dist/sandboxes/podman.js.map +1 -1
  66. package/dist/sandboxes/vercel.d.ts +1 -1
  67. package/dist/sandboxes/vercel.js +1 -1
  68. package/dist/startSandbox.d.ts +13 -3
  69. package/dist/startSandbox.d.ts.map +1 -1
  70. package/dist/startSandbox.js +16 -0
  71. package/dist/startSandbox.js.map +1 -1
  72. package/dist/templates/blank/main.mts +1 -1
  73. package/dist/templates/parallel-planner/main.mts +1 -1
  74. package/dist/templates/parallel-planner-with-review/main.mts +1 -1
  75. package/dist/templates/sequential-reviewer/implement-prompt.md +1 -1
  76. package/dist/templates/sequential-reviewer/main.mts +54 -49
  77. package/dist/templates/simple-loop/main.mts +2 -2
  78. package/dist/templates/simple-loop/prompt.md +1 -1
  79. package/dist/templates/simple-loop/template.json +1 -1
  80. package/package.json +3 -2
@@ -3,13 +3,13 @@
3
3
  *
4
4
  * Usage:
5
5
  * import { podman } from "sandcastle/sandboxes/podman";
6
- * await run({ agent: claudeCode("claude-opus-4-6"), sandbox: podman() });
6
+ * await run({ agent: claudeCode("claude-opus-4-7"), sandbox: podman() });
7
7
  */
8
8
  import { execFile, execFileSync, spawn, } from "node:child_process";
9
9
  import { randomUUID } from "node:crypto";
10
10
  import { createInterface } from "node:readline";
11
11
  import { createBindMountSandboxProvider, } from "../SandboxProvider.js";
12
- import { defaultImageName, resolveUserMounts } from "../mountUtils.js";
12
+ import { defaultImageName, resolveUserMounts, formatVolumeMount, processFileMountParents, } from "../mountUtils.js";
13
13
  /**
14
14
  * Create a Podman sandbox provider.
15
15
  *
@@ -28,6 +28,9 @@ export const podman = (options) => {
28
28
  const userMounts = options?.mounts
29
29
  ? resolveUserMounts(options.mounts, sandboxHomedir)
30
30
  : [];
31
+ // Validate file mounts and collect parent dirs to create at container start.
32
+ // Throws at construction time if any file mount parent is outside sandboxHomedir.
33
+ const parentDirsToCreate = processFileMountParents(userMounts, sandboxHomedir);
31
34
  return createBindMountSandboxProvider({
32
35
  name: "podman",
33
36
  env: options?.env,
@@ -89,6 +92,30 @@ export const podman = (options) => {
89
92
  }
90
93
  });
91
94
  });
95
+ // Create parent directories for file mounts and chown to the container user
96
+ for (const dir of parentDirsToCreate) {
97
+ await new Promise((resolve, reject) => {
98
+ execFile("podman", [
99
+ "exec",
100
+ "--user",
101
+ "0:0",
102
+ containerName,
103
+ "sh",
104
+ "-c",
105
+ `mkdir -p "$1" && chown "$2" "$1"`,
106
+ "sh",
107
+ dir,
108
+ `${containerUid}:${containerGid}`,
109
+ ], (error) => {
110
+ if (error) {
111
+ reject(new Error(`Failed to create parent directory '${dir}' in container: ${error.message}`));
112
+ }
113
+ else {
114
+ resolve();
115
+ }
116
+ });
117
+ });
118
+ }
92
119
  // Set up signal handlers for cleanup
93
120
  const onExit = () => {
94
121
  try {
@@ -258,11 +285,4 @@ const checkPodmanMachine = () => new Promise((resolve, reject) => {
258
285
  }
259
286
  });
260
287
  });
261
- const formatVolumeMount = (mount, selinuxLabel) => {
262
- const base = `${mount.hostPath}:${mount.sandboxPath}`;
263
- const options = [mount.readonly ? "ro" : undefined, selinuxLabel || undefined]
264
- .filter((option) => option !== undefined)
265
- .join(",");
266
- return options ? `${base}:${options}` : base;
267
- };
268
288
  //# sourceMappingURL=podman.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"podman.js","sourceRoot":"","sources":["../../src/sandboxes/podman.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"podman.js","sourceRoot":"","sources":["../../src/sandboxes/podman.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Usage:
5
5
  * import { vercel } from "sandcastle/sandboxes/vercel";
6
- * await run({ agent: claudeCode("claude-opus-4-6"), sandbox: vercel() });
6
+ * await run({ agent: claudeCode("claude-opus-4-7"), sandbox: vercel() });
7
7
  */
8
8
  import { type IsolatedSandboxProvider } from "../SandboxProvider.js";
9
9
  /**
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Usage:
5
5
  * import { vercel } from "sandcastle/sandboxes/vercel";
6
- * await run({ agent: claudeCode("claude-opus-4-6"), sandbox: vercel() });
6
+ * await run({ agent: claudeCode("claude-opus-4-7"), sandbox: vercel() });
7
7
  */
8
8
  import { execSync } from "node:child_process";
9
9
  import { readFile, unlink, writeFile, mkdir, stat } from "node:fs/promises";
@@ -1,6 +1,6 @@
1
1
  import { Effect, Layer } from "effect";
2
2
  import { ContainerStartTimeoutError, CopyToWorktreeTimeoutError, SyncError, SyncInTimeoutError, WorktreeError, type DockerError } from "./errors.js";
3
- import type { BindMountSandboxProvider, BindMountSandboxHandle, IsolatedSandboxProvider, IsolatedSandboxHandle } from "./SandboxProvider.js";
3
+ import type { BindMountSandboxProvider, BindMountSandboxHandle, IsolatedSandboxProvider, IsolatedSandboxHandle, NoSandboxProvider, NoSandboxHandle } from "./SandboxProvider.js";
4
4
  import { type Sandbox, type MountEntry } from "./SandboxFactory.js";
5
5
  export interface StartSandboxBindMountOptions {
6
6
  provider: BindMountSandboxProvider;
@@ -20,9 +20,19 @@ export interface StartSandboxIsolatedOptions {
20
20
  repoDir?: undefined;
21
21
  copyPaths?: string[];
22
22
  }
23
- export type StartSandboxOptions = StartSandboxBindMountOptions | StartSandboxIsolatedOptions;
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;
24
34
  export interface StartSandboxResult {
25
- handle: BindMountSandboxHandle | IsolatedSandboxHandle;
35
+ handle: BindMountSandboxHandle | IsolatedSandboxHandle | NoSandboxHandle;
26
36
  sandboxLayer: Layer.Layer<Sandbox>;
27
37
  worktreePath: string;
28
38
  }
@@ -1 +1 @@
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,EACtB,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,MAAM,mBAAmB,GAC3B,4BAA4B,GAC5B,2BAA2B,CAAC;AAEhC,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,sBAAsB,GAAG,qBAAqB,CAAC;IACvD,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,oMAexB,CAAC"}
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"}
@@ -21,8 +21,24 @@ export const startSandbox = (options) => {
21
21
  if (options.provider.tag === "bind-mount") {
22
22
  return startBindMountSandbox(options);
23
23
  }
24
+ if (options.provider.tag === "none") {
25
+ return startNoSandbox(options);
26
+ }
24
27
  return startIsolatedSandbox(options);
25
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
+ })));
26
42
  const startBindMountSandbox = (options) => Effect.tryPromise({
27
43
  try: () => {
28
44
  const rawMounts = [
@@ -1 +1 @@
1
- {"version":3,"file":"startSandbox.js","sourceRoot":"","sources":["../src/startSandbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startSandbox.js","sourceRoot":"","sources":["../src/startSandbox.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import { docker } from "@ai-hero/sandcastle/sandboxes/docker";
6
6
  // Or add to package.json scripts: "sandcastle": "npx tsx .sandcastle/main.mts"
7
7
 
8
8
  await run({
9
- agent: claudeCode("claude-opus-4-6"),
9
+ agent: claudeCode("claude-opus-4-7"),
10
10
  sandbox: docker(),
11
11
  promptFile: "./.sandcastle/prompt.md",
12
12
  });
@@ -62,7 +62,7 @@ for (let iteration = 1; iteration <= MAX_ITERATIONS; iteration++) {
62
62
  // not write code.
63
63
  maxIterations: 1,
64
64
  // Opus for planning: dependency analysis benefits from deeper reasoning.
65
- agent: sandcastle.claudeCode("claude-opus-4-6"),
65
+ agent: sandcastle.claudeCode("claude-opus-4-7"),
66
66
  promptFile: "./.sandcastle/plan-prompt.md",
67
67
  });
68
68
 
@@ -67,7 +67,7 @@ for (let iteration = 1; iteration <= MAX_ITERATIONS; iteration++) {
67
67
  // not write code.
68
68
  maxIterations: 1,
69
69
  // Opus for planning: dependency analysis benefits from deeper reasoning.
70
- agent: sandcastle.claudeCode("claude-opus-4-6"),
70
+ agent: sandcastle.claudeCode("claude-opus-4-7"),
71
71
  promptFile: "./.sandcastle/plan-prompt.md",
72
72
  });
73
73
 
@@ -10,7 +10,7 @@
10
10
 
11
11
  # Task
12
12
 
13
- You are RALPH — an autonomous coding agent working through GitHub issues one at a time.
13
+ You are RALPH — an autonomous coding agent working through issues one at a time.
14
14
 
15
15
  ## Priority order
16
16
 
@@ -1,12 +1,15 @@
1
1
  // Sequential Reviewer — implement-then-review loop
2
2
  //
3
3
  // This template drives a two-phase workflow per issue:
4
- // Phase 1 (Implement): A sonnet agent picks an open GitHub issue, works on it
4
+ // Phase 1 (Implement): A sonnet agent picks an open issue, works on it
5
5
  // on a dedicated branch, commits the changes, and signals
6
6
  // completion.
7
7
  // Phase 2 (Review): A second sonnet agent reviews the branch diff and either
8
8
  // approves it or makes corrections directly on the branch.
9
9
  //
10
+ // Both phases share a single sandbox created via createSandbox(), so the
11
+ // implementer and reviewer work on the same explicit branch.
12
+ //
10
13
  // The outer loop repeats up to MAX_ITERATIONS times, processing one issue per
11
14
  // iteration. This is a middle-complexity option between the simple-loop (no review
12
15
  // gate) and the parallel-planner (concurrent execution with a planning phase).
@@ -45,62 +48,64 @@ const copyToWorktree = ["node_modules"];
45
48
  for (let iteration = 1; iteration <= MAX_ITERATIONS; iteration++) {
46
49
  console.log(`\n=== Iteration ${iteration}/${MAX_ITERATIONS} ===\n`);
47
50
 
48
- // -------------------------------------------------------------------------
49
- // Phase 1: Implement
50
- //
51
- // A sonnet agent picks the next open GitHub issue, creates a branch, writes
52
- // the implementation (using RGR: Red Green Repeat Refactor), and
53
- // commits the result.
54
- //
55
- // The agent signals completion via <promise>COMPLETE</promise> when done.
56
- // The result contains the branch name the agent worked on.
57
- // -------------------------------------------------------------------------
58
- const implement = await sandcastle.run({
51
+ // Generate a unique branch name for this iteration.
52
+ const branch = `sandcastle/sequential-reviewer/${Date.now()}`;
53
+
54
+ // Create a single sandbox that both the implementer and reviewer share.
55
+ // This gives both agents a real, named branch that persists across phases.
56
+ const sandbox = await sandcastle.createSandbox({
57
+ branch,
58
+ sandbox: docker(),
59
59
  hooks,
60
60
  copyToWorktree,
61
- sandbox: docker(),
62
- branchStrategy: { type: "merge-to-head" },
63
- name: "implementer",
64
- maxIterations: 100,
65
- agent: sandcastle.claudeCode("claude-sonnet-4-6"),
66
- promptFile: "./.sandcastle/implement-prompt.md",
67
61
  });
68
62
 
69
- // Extract the branch the agent worked on so the reviewer can target it.
70
- const branch = implement.branch;
63
+ try {
64
+ // -----------------------------------------------------------------------
65
+ // Phase 1: Implement
66
+ //
67
+ // A sonnet agent picks the next open issue, writes the
68
+ // implementation (using RGR: Red → Green → Repeat → Refactor), and
69
+ // commits the result.
70
+ //
71
+ // The agent signals completion via <promise>COMPLETE</promise> when done.
72
+ // -----------------------------------------------------------------------
73
+ const implement = await sandbox.run({
74
+ name: "implementer",
75
+ maxIterations: 100,
76
+ agent: sandcastle.claudeCode("claude-sonnet-4-6"),
77
+ promptFile: "./.sandcastle/implement-prompt.md",
78
+ });
71
79
 
72
- if (!implement.commits.length) {
73
- console.log("Implementation agent made no commits. Skipping review.");
74
- continue;
75
- }
80
+ if (!implement.commits.length) {
81
+ console.log("Implementation agent made no commits. Skipping review.");
82
+ continue;
83
+ }
76
84
 
77
- console.log(`\nImplementation complete on branch: ${branch}`);
78
- console.log(`Commits: ${implement.commits.length}`);
85
+ console.log(`\nImplementation complete on branch: ${branch}`);
86
+ console.log(`Commits: ${implement.commits.length}`);
79
87
 
80
- // -------------------------------------------------------------------------
81
- // Phase 2: Review
82
- //
83
- // A second sonnet agent reviews the diff of the branch produced by Phase 1.
84
- // It uses the {{BRANCH}} prompt argument to inspect the right branch, and
85
- // either approves or makes corrections directly on the branch.
86
- // -------------------------------------------------------------------------
87
- await sandcastle.run({
88
- hooks,
89
- copyToWorktree,
90
- sandbox: docker(),
91
- branchStrategy: { type: "branch", branch },
92
- name: "reviewer",
93
- maxIterations: 1,
94
- agent: sandcastle.claudeCode("claude-sonnet-4-6"),
95
- promptFile: "./.sandcastle/review-prompt.md",
96
- // Prompt arguments substitute {{BRANCH}} in review-prompt.md before the
97
- // agent sees the prompt.
98
- promptArgs: {
99
- BRANCH: branch,
100
- },
101
- });
88
+ // -----------------------------------------------------------------------
89
+ // Phase 2: Review
90
+ //
91
+ // A second sonnet agent reviews the diff of the branch produced by
92
+ // Phase 1. It uses the {{BRANCH}} prompt argument to inspect the right
93
+ // branch, and either approves or makes corrections directly on the branch.
94
+ // -----------------------------------------------------------------------
95
+ await sandbox.run({
96
+ name: "reviewer",
97
+ maxIterations: 1,
98
+ agent: sandcastle.claudeCode("claude-sonnet-4-6"),
99
+ promptFile: "./.sandcastle/review-prompt.md",
100
+ promptArgs: {
101
+ BRANCH: branch,
102
+ },
103
+ });
102
104
 
103
- console.log("\nReview complete.");
105
+ console.log("\nReview complete.");
106
+ } finally {
107
+ await sandbox.close();
108
+ }
104
109
  }
105
110
 
106
111
  console.log("\nAll done.");
@@ -1,7 +1,7 @@
1
1
  import { run, claudeCode } from "@ai-hero/sandcastle";
2
2
  import { docker } from "@ai-hero/sandcastle/sandboxes/docker";
3
3
 
4
- // Simple loop: an agent that picks open GitHub issues one by one and closes them.
4
+ // Simple loop: an agent that picks open issues one by one and closes them.
5
5
  // Run this with: npx tsx .sandcastle/main.mts
6
6
  // Or add to package.json scripts: "sandcastle": "npx tsx .sandcastle/main.mts"
7
7
 
@@ -13,7 +13,7 @@ await run({
13
13
  sandbox: docker(),
14
14
 
15
15
  // The agent provider. Pass a model string to claudeCode() — sonnet balances
16
- // capability and speed for most tasks. Switch to claude-opus-4-6 for harder
16
+ // capability and speed for most tasks. Switch to claude-opus-4-7 for harder
17
17
  // problems, or claude-haiku-4-5-20251001 for speed.
18
18
  agent: claudeCode("claude-sonnet-4-6"),
19
19
 
@@ -10,7 +10,7 @@
10
10
 
11
11
  # Task
12
12
 
13
- You are RALPH — an autonomous coding agent working through GitHub issues one at a time.
13
+ You are RALPH — an autonomous coding agent working through issues one at a time.
14
14
 
15
15
  ## Priority order
16
16
 
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "simple-loop",
3
- "description": "Picks GitHub issues one by one and closes them"
3
+ "description": "Picks issues one by one and closes them"
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-hero/sandcastle",
3
- "version": "0.5.8",
3
+ "version": "0.5.11",
4
4
  "description": "CLI for orchestrating AI agents in isolated sandbox environments",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -71,7 +71,8 @@
71
71
  "lint-staged": "^15.5.1",
72
72
  "prettier": "^3.5.3",
73
73
  "tsx": "^4.21.0",
74
- "vitest": "^3.2.0"
74
+ "vitest": "^3.2.0",
75
+ "@daytona/sdk": "^0.164.0"
75
76
  },
76
77
  "dependencies": {
77
78
  "@clack/prompts": "^1.1.0",