@ai-hero/sandcastle 0.4.7 → 0.5.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 (122) hide show
  1. package/README.md +258 -69
  2. package/dist/AgentProvider.d.ts +9 -0
  3. package/dist/AgentProvider.d.ts.map +1 -1
  4. package/dist/AgentProvider.js +14 -2
  5. package/dist/AgentProvider.js.map +1 -1
  6. package/dist/CopyToWorktree.d.ts +9 -0
  7. package/dist/CopyToWorktree.d.ts.map +1 -0
  8. package/dist/{CopyToWorkspace.js → CopyToWorktree.js} +9 -3
  9. package/dist/CopyToWorktree.js.map +1 -0
  10. package/dist/DockerLifecycle.d.ts +2 -0
  11. package/dist/DockerLifecycle.d.ts.map +1 -1
  12. package/dist/DockerLifecycle.js +7 -0
  13. package/dist/DockerLifecycle.js.map +1 -1
  14. package/dist/ErrorHandler.d.ts.map +1 -1
  15. package/dist/ErrorHandler.js +22 -2
  16. package/dist/ErrorHandler.js.map +1 -1
  17. package/dist/InitService.d.ts +6 -1
  18. package/dist/InitService.d.ts.map +1 -1
  19. package/dist/InitService.js +90 -56
  20. package/dist/InitService.js.map +1 -1
  21. package/dist/MountConfig.d.ts +13 -2
  22. package/dist/MountConfig.d.ts.map +1 -1
  23. package/dist/Orchestrator.d.ts +14 -2
  24. package/dist/Orchestrator.d.ts.map +1 -1
  25. package/dist/Orchestrator.js +56 -12
  26. package/dist/Orchestrator.js.map +1 -1
  27. package/dist/PodmanLifecycle.d.ts +10 -0
  28. package/dist/PodmanLifecycle.d.ts.map +1 -1
  29. package/dist/PodmanLifecycle.js +22 -0
  30. package/dist/PodmanLifecycle.js.map +1 -1
  31. package/dist/PromptPreprocessor.d.ts +2 -2
  32. package/dist/PromptPreprocessor.d.ts.map +1 -1
  33. package/dist/PromptPreprocessor.js +7 -2
  34. package/dist/PromptPreprocessor.js.map +1 -1
  35. package/dist/SandboxFactory.d.ts +13 -11
  36. package/dist/SandboxFactory.d.ts.map +1 -1
  37. package/dist/SandboxFactory.js +59 -41
  38. package/dist/SandboxFactory.js.map +1 -1
  39. package/dist/SandboxLifecycle.d.ts +23 -5
  40. package/dist/SandboxLifecycle.d.ts.map +1 -1
  41. package/dist/SandboxLifecycle.js +88 -18
  42. package/dist/SandboxLifecycle.js.map +1 -1
  43. package/dist/SandboxProvider.d.ts +11 -7
  44. package/dist/SandboxProvider.d.ts.map +1 -1
  45. package/dist/SandboxProvider.js.map +1 -1
  46. package/dist/SessionStore.d.ts +50 -0
  47. package/dist/SessionStore.d.ts.map +1 -0
  48. package/dist/SessionStore.js +120 -0
  49. package/dist/SessionStore.js.map +1 -0
  50. package/dist/WorktreeManager.d.ts +3 -3
  51. package/dist/WorktreeManager.d.ts.map +1 -1
  52. package/dist/WorktreeManager.js +14 -3
  53. package/dist/WorktreeManager.js.map +1 -1
  54. package/dist/createSandbox.d.ts +25 -10
  55. package/dist/createSandbox.d.ts.map +1 -1
  56. package/dist/createSandbox.js +253 -133
  57. package/dist/createSandbox.js.map +1 -1
  58. package/dist/createWorktree.d.ts +121 -0
  59. package/dist/createWorktree.d.ts.map +1 -0
  60. package/dist/createWorktree.js +318 -0
  61. package/dist/createWorktree.js.map +1 -0
  62. package/dist/errors.d.ts +110 -6
  63. package/dist/errors.d.ts.map +1 -1
  64. package/dist/errors.js +41 -3
  65. package/dist/errors.js.map +1 -1
  66. package/dist/index.d.ts +6 -1
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +2 -0
  69. package/dist/index.js.map +1 -1
  70. package/dist/interactive.d.ts +1 -1
  71. package/dist/interactive.d.ts.map +1 -1
  72. package/dist/interactive.js +63 -46
  73. package/dist/interactive.js.map +1 -1
  74. package/dist/run.d.ts +10 -10
  75. package/dist/run.d.ts.map +1 -1
  76. package/dist/run.js +23 -6
  77. package/dist/run.js.map +1 -1
  78. package/dist/sandboxes/daytona.js +4 -4
  79. package/dist/sandboxes/daytona.js.map +1 -1
  80. package/dist/sandboxes/docker.d.ts +9 -0
  81. package/dist/sandboxes/docker.d.ts.map +1 -1
  82. package/dist/sandboxes/docker.js +35 -5
  83. package/dist/sandboxes/docker.js.map +1 -1
  84. package/dist/sandboxes/no-sandbox.js +4 -4
  85. package/dist/sandboxes/no-sandbox.js.map +1 -1
  86. package/dist/sandboxes/podman.d.ts +9 -0
  87. package/dist/sandboxes/podman.d.ts.map +1 -1
  88. package/dist/sandboxes/podman.js +47 -5
  89. package/dist/sandboxes/podman.js.map +1 -1
  90. package/dist/sandboxes/test-bind-mount.d.ts +17 -0
  91. package/dist/sandboxes/test-bind-mount.d.ts.map +1 -0
  92. package/dist/sandboxes/test-bind-mount.js +91 -0
  93. package/dist/sandboxes/test-bind-mount.js.map +1 -0
  94. package/dist/sandboxes/test-isolated.js +5 -5
  95. package/dist/sandboxes/test-isolated.js.map +1 -1
  96. package/dist/sandboxes/vercel.js +7 -7
  97. package/dist/sandboxes/vercel.js.map +1 -1
  98. package/dist/startSandbox.d.ts +7 -6
  99. package/dist/startSandbox.d.ts.map +1 -1
  100. package/dist/startSandbox.js +38 -19
  101. package/dist/startSandbox.js.map +1 -1
  102. package/dist/syncIn.js +7 -7
  103. package/dist/syncIn.js.map +1 -1
  104. package/dist/syncOut.js +6 -6
  105. package/dist/syncOut.js.map +1 -1
  106. package/dist/templates/parallel-planner/implement-prompt.md +2 -2
  107. package/dist/templates/parallel-planner/main.mts +3 -7
  108. package/dist/templates/parallel-planner/merge-prompt.md +5 -1
  109. package/dist/templates/parallel-planner-with-review/implement-prompt.md +2 -2
  110. package/dist/templates/parallel-planner-with-review/main.mts +29 -63
  111. package/dist/templates/parallel-planner-with-review/merge-prompt.md +5 -1
  112. package/dist/templates/sequential-reviewer/main.mts +4 -4
  113. package/dist/templates/simple-loop/main.mts +9 -7
  114. package/package.json +1 -1
  115. package/dist/CopyToWorkspace.d.ts +0 -8
  116. package/dist/CopyToWorkspace.d.ts.map +0 -1
  117. package/dist/CopyToWorkspace.js.map +0 -1
  118. package/dist/templates/blank/.env.example +0 -5
  119. package/dist/templates/parallel-planner/.env.example +0 -5
  120. package/dist/templates/parallel-planner-with-review/.env.example +0 -5
  121. package/dist/templates/sequential-reviewer/.env.example +0 -5
  122. package/dist/templates/simple-loop/.env.example +0 -5
@@ -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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"}
package/dist/syncIn.js CHANGED
@@ -75,14 +75,14 @@ export const syncIn = (hostRepoDir, handle) => Effect.gen(function* () {
75
75
  message: `Failed to copy bundle into sandbox: ${e instanceof Error ? e.message : String(e)}`,
76
76
  }),
77
77
  });
78
- // Clone from bundle into the workspace
79
- const workspacePath = handle.workspacePath;
80
- yield* execOk(handle, `git clone "${bundleSandboxPath}" "${workspacePath}_clone"`);
81
- // Move contents from clone into workspace (git clone requires empty target)
82
- yield* execOk(handle, `rm -rf "${workspacePath}" && mv "${workspacePath}_clone" "${workspacePath}"`);
78
+ // Clone from bundle into the worktree
79
+ const worktreePath = handle.worktreePath;
80
+ yield* execOk(handle, `git clone "${bundleSandboxPath}" "${worktreePath}_clone"`);
81
+ // Move contents from clone into worktree (git clone requires empty target)
82
+ yield* execOk(handle, `rm -rf "${worktreePath}" && mv "${worktreePath}_clone" "${worktreePath}"`);
83
83
  // Checkout the correct branch
84
84
  yield* execOk(handle, `git checkout "${branch}"`, {
85
- cwd: workspacePath,
85
+ cwd: worktreePath,
86
86
  });
87
87
  // Clean up sandbox temp files
88
88
  yield* Effect.tryPromise({
@@ -92,7 +92,7 @@ export const syncIn = (hostRepoDir, handle) => Effect.gen(function* () {
92
92
  // Verify sync succeeded
93
93
  const hostHead = (yield* execHost("git rev-parse HEAD", hostRepoDir)).trim();
94
94
  const sandboxHead = (yield* execOk(handle, "git rev-parse HEAD", {
95
- cwd: workspacePath,
95
+ cwd: worktreePath,
96
96
  })).stdout.trim();
97
97
  if (hostHead !== sandboxHead) {
98
98
  yield* Effect.fail(new SyncError({
@@ -1 +1 @@
1
- {"version":3,"file":"syncIn.js","sourceRoot":"","sources":["../src/syncIn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"syncIn.js","sourceRoot":"","sources":["../src/syncIn.ts"],"names":[],"mappings":"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"}
package/dist/syncOut.js CHANGED
@@ -110,19 +110,19 @@ const createPatchDir = (hostRepoDir) => Effect.tryPromise({
110
110
  * 2. Apply from saved directory; on failure, preserve artifacts and print recovery
111
111
  */
112
112
  export const syncOut = (hostRepoDir, handle) => Effect.gen(function* () {
113
- const workspacePath = handle.workspacePath;
113
+ const worktreePath = handle.worktreePath;
114
114
  const hostHead = (yield* execHost("git rev-parse HEAD", hostRepoDir)).trim();
115
115
  const sandboxHead = (yield* execOk(handle, "git rev-parse HEAD", {
116
- cwd: workspacePath,
116
+ cwd: worktreePath,
117
117
  })).stdout.trim();
118
118
  const hasCommits = hostHead !== sandboxHead;
119
119
  // Check for uncommitted changes
120
120
  const diffResult = yield* execSandbox(handle, "git diff HEAD", {
121
- cwd: workspacePath,
121
+ cwd: worktreePath,
122
122
  });
123
123
  const hasDiff = diffResult.exitCode === 0 && diffResult.stdout.trim().length > 0;
124
124
  // Check for untracked files
125
- const lsFilesResult = yield* execSandbox(handle, "git ls-files --others --exclude-standard", { cwd: workspacePath });
125
+ const lsFilesResult = yield* execSandbox(handle, "git ls-files --others --exclude-standard", { cwd: worktreePath });
126
126
  const hasUntracked = lsFilesResult.exitCode === 0 && lsFilesResult.stdout.trim().length > 0;
127
127
  const untrackedFiles = hasUntracked
128
128
  ? lsFilesResult.stdout
@@ -143,7 +143,7 @@ export const syncOut = (hostRepoDir, handle) => Effect.gen(function* () {
143
143
  const mkTempResult = yield* execOk(handle, "mktemp -d -t sandcastle-patches-XXXXXX");
144
144
  const sandboxPatchDir = mkTempResult.stdout.trim();
145
145
  try {
146
- yield* execOk(handle, `git format-patch "${hostHead}..HEAD" -o "${sandboxPatchDir}"`, { cwd: workspacePath });
146
+ yield* execOk(handle, `git format-patch "${hostHead}..HEAD" -o "${sandboxPatchDir}"`, { cwd: worktreePath });
147
147
  const lsResult = yield* execOk(handle, `ls -1 "${sandboxPatchDir}"`);
148
148
  const patchNames = lsResult.stdout
149
149
  .trim()
@@ -181,7 +181,7 @@ export const syncOut = (hostRepoDir, handle) => Effect.gen(function* () {
181
181
  if (hasUntracked) {
182
182
  const untrackedDir = join(patchDir, "untracked");
183
183
  for (const relPath of untrackedFiles) {
184
- const sandboxFilePath = `${workspacePath}/${relPath}`;
184
+ const sandboxFilePath = `${worktreePath}/${relPath}`;
185
185
  const hostFilePath = join(untrackedDir, relPath);
186
186
  yield* Effect.tryPromise({
187
187
  try: async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"syncOut.js","sourceRoot":"","sources":["../src/syncOut.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"syncOut.js","sourceRoot":"","sources":["../src/syncOut.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ Pull in the issue using `{{VIEW_TASK_COMMAND}}`. If it has a parent PRD, pull th
6
6
 
7
7
  Only work on the issue specified.
8
8
 
9
- Work on branch {{BRANCH}}. Make commits, run tests, and close the issue when done.
9
+ Work on branch {{BRANCH}}. Make commits, run tests, and close the issue when done using `{{CLOSE_TASK_COMMAND}}`.
10
10
 
11
11
  # CONTEXT
12
12
 
@@ -51,7 +51,7 @@ Keep it concise.
51
51
 
52
52
  # THE ISSUE
53
53
 
54
- If the task is not complete, leave a comment on the GitHub issue with what was done.
54
+ If the task is not complete, leave a comment on the issue with what was done.
55
55
 
56
56
  Do not close the issue - this will be done later.
57
57
 
@@ -30,13 +30,13 @@ const MAX_ITERATIONS = 10;
30
30
  // Hooks run inside the sandbox before the agent starts each iteration.
31
31
  // npm install ensures the sandbox always has fresh dependencies.
32
32
  const hooks = {
33
- onSandboxReady: [{ command: "npm install" }],
33
+ sandbox: { onSandboxReady: [{ command: "npm install" }] },
34
34
  };
35
35
 
36
36
  // Copy node_modules from the host into the worktree before each sandbox
37
37
  // starts. Avoids a full npm install from scratch; the hook above handles
38
38
  // platform-specific binaries and any packages added since the last copy.
39
- const copyToWorkspace = ["node_modules"];
39
+ const copyToWorktree = ["node_modules"];
40
40
 
41
41
  // ---------------------------------------------------------------------------
42
42
  // Main loop
@@ -56,9 +56,7 @@ for (let iteration = 1; iteration <= MAX_ITERATIONS; iteration++) {
56
56
  // -------------------------------------------------------------------------
57
57
  const plan = await sandcastle.run({
58
58
  hooks,
59
- copyToWorkspace,
60
59
  sandbox: docker(),
61
- branchStrategy: { type: "merge-to-head" },
62
60
  name: "planner",
63
61
  // One iteration is enough: the planner just needs to read and reason,
64
62
  // not write code.
@@ -107,7 +105,7 @@ for (let iteration = 1; iteration <= MAX_ITERATIONS; iteration++) {
107
105
  issues.map((issue) =>
108
106
  sandcastle.run({
109
107
  hooks,
110
- copyToWorkspace,
108
+ copyToWorktree,
111
109
  // Each agent starts on its own branch via branchStrategy on run().
112
110
  sandbox: docker(),
113
111
  branchStrategy: { type: "branch", branch: issue.branch },
@@ -182,9 +180,7 @@ for (let iteration = 1; iteration <= MAX_ITERATIONS; iteration++) {
182
180
  // -------------------------------------------------------------------------
183
181
  await sandcastle.run({
184
182
  hooks,
185
- copyToWorkspace,
186
183
  sandbox: docker(),
187
- branchStrategy: { type: "merge-to-head" },
188
184
  name: "merger",
189
185
  maxIterations: 1,
190
186
  // Sonnet is sufficient for merge conflict resolution.
@@ -15,7 +15,11 @@ After all branches are merged, make a single commit summarizing the merge.
15
15
 
16
16
  # CLOSE ISSUES
17
17
 
18
- For each branch that was merged, close its issue. Here are all the issues:
18
+ For each branch that was merged, close its issue using the following command:
19
+
20
+ `{{CLOSE_TASK_COMMAND}}`
21
+
22
+ Here are all the issues:
19
23
 
20
24
  {{ISSUES}}
21
25
 
@@ -6,7 +6,7 @@ Pull in the issue using `{{VIEW_TASK_COMMAND}}`. If it has a parent PRD, pull th
6
6
 
7
7
  Only work on the issue specified.
8
8
 
9
- Work on branch {{BRANCH}}. Make commits, run tests, and close the issue when done.
9
+ Work on branch {{BRANCH}}. Make commits, run tests, and close the issue when done using `{{CLOSE_TASK_COMMAND}}`.
10
10
 
11
11
  # CONTEXT
12
12
 
@@ -51,7 +51,7 @@ Keep it concise.
51
51
 
52
52
  # THE ISSUE
53
53
 
54
- If the task is not complete, leave a comment on the GitHub issue with what was done.
54
+ If the task is not complete, leave a comment on the issue with what was done.
55
55
 
56
56
  Do not close the issue - this will be done later.
57
57
 
@@ -35,16 +35,13 @@ const MAX_ITERATIONS = 10;
35
35
  // Hooks run inside the sandbox before the agent starts each iteration.
36
36
  // npm install ensures the sandbox always has fresh dependencies.
37
37
  const hooks = {
38
- onSandboxReady: [{ command: "npm install" }],
38
+ sandbox: { onSandboxReady: [{ command: "npm install" }] },
39
39
  };
40
40
 
41
41
  // Copy node_modules from the host into the worktree before each sandbox
42
42
  // starts. Avoids a full npm install from scratch; the hook above handles
43
43
  // platform-specific binaries and any packages added since the last copy.
44
- const copyToWorkspace = ["node_modules"];
45
-
46
- // Cap the number of concurrent sandboxes to avoid resource exhaustion.
47
- const MAX_CONCURRENCY = 4;
44
+ const copyToWorktree = ["node_modules"];
48
45
 
49
46
  // ---------------------------------------------------------------------------
50
47
  // Main loop
@@ -64,9 +61,7 @@ for (let iteration = 1; iteration <= MAX_ITERATIONS; iteration++) {
64
61
  // -------------------------------------------------------------------------
65
62
  const plan = await sandcastle.run({
66
63
  hooks,
67
- copyToWorkspace,
68
64
  sandbox: docker(),
69
- branchStrategy: { type: "merge-to-head" },
70
65
  name: "planner",
71
66
  // One iteration is enough: the planner just needs to read and reason,
72
67
  // not write code.
@@ -109,75 +104,48 @@ for (let iteration = 1; iteration <= MAX_ITERATIONS; iteration++) {
109
104
  // and reviewer share the same sandbox instance per branch. The implementer
110
105
  // runs first; if it produces commits, the reviewer runs in the same sandbox.
111
106
  //
112
- // A semaphore limits concurrency to MAX_CONCURRENCY sandboxes at once.
113
107
  // Promise.allSettled means one failing pipeline doesn't cancel the others.
114
108
  // -------------------------------------------------------------------------
115
109
 
116
- // Simple semaphore for concurrency limiting
117
- let running = 0;
118
- const waiting: Array<() => void> = [];
119
- const acquire = (): Promise<void> => {
120
- if (running < MAX_CONCURRENCY) {
121
- running++;
122
- return Promise.resolve();
123
- }
124
- return new Promise<void>((resolve) => {
125
- waiting.push(() => {
126
- running++;
127
- resolve();
128
- });
129
- });
130
- };
131
- const release = () => {
132
- running--;
133
- const next = waiting.shift();
134
- if (next) next();
135
- };
136
-
137
110
  const settled = await Promise.allSettled(
138
111
  issues.map(async (issue) => {
139
- await acquire();
112
+ const sandbox = await sandcastle.createSandbox({
113
+ branch: issue.branch,
114
+ sandbox: docker(),
115
+ hooks,
116
+ copyToWorktree,
117
+ });
118
+
140
119
  try {
141
- const sandbox = await sandcastle.createSandbox({
142
- branch: issue.branch,
143
- sandbox: docker(),
144
- hooks,
145
- copyToWorkspace,
120
+ // Run the implementer
121
+ const implement = await sandbox.run({
122
+ name: "implementer",
123
+ maxIterations: 100,
124
+ agent: sandcastle.claudeCode("claude-sonnet-4-6"),
125
+ promptFile: "./.sandcastle/implement-prompt.md",
126
+ promptArgs: {
127
+ TASK_ID: issue.id,
128
+ ISSUE_TITLE: issue.title,
129
+ BRANCH: issue.branch,
130
+ },
146
131
  });
147
132
 
148
- try {
149
- // Run the implementer
150
- const implement = await sandbox.run({
151
- name: "implementer",
152
- maxIterations: 100,
133
+ // Only review if the implementer produced commits
134
+ if (implement.commits.length > 0) {
135
+ await sandbox.run({
136
+ name: "reviewer",
137
+ maxIterations: 1,
153
138
  agent: sandcastle.claudeCode("claude-sonnet-4-6"),
154
- promptFile: "./.sandcastle/implement-prompt.md",
139
+ promptFile: "./.sandcastle/review-prompt.md",
155
140
  promptArgs: {
156
- TASK_ID: issue.id,
157
- ISSUE_TITLE: issue.title,
158
141
  BRANCH: issue.branch,
159
142
  },
160
143
  });
161
-
162
- // Only review if the implementer produced commits
163
- if (implement.commits.length > 0) {
164
- await sandbox.run({
165
- name: "reviewer",
166
- maxIterations: 1,
167
- agent: sandcastle.claudeCode("claude-sonnet-4-6"),
168
- promptFile: "./.sandcastle/review-prompt.md",
169
- promptArgs: {
170
- BRANCH: issue.branch,
171
- },
172
- });
173
- }
174
-
175
- return implement;
176
- } finally {
177
- await sandbox.close();
178
144
  }
145
+
146
+ return implement;
179
147
  } finally {
180
- release();
148
+ await sandbox.close();
181
149
  }
182
150
  }),
183
151
  );
@@ -228,9 +196,7 @@ for (let iteration = 1; iteration <= MAX_ITERATIONS; iteration++) {
228
196
  // -------------------------------------------------------------------------
229
197
  await sandcastle.run({
230
198
  hooks,
231
- copyToWorkspace,
232
199
  sandbox: docker(),
233
- branchStrategy: { type: "merge-to-head" },
234
200
  name: "merger",
235
201
  maxIterations: 1,
236
202
  agent: sandcastle.claudeCode("claude-sonnet-4-6"),
@@ -15,7 +15,11 @@ After all branches are merged, make a single commit summarizing the merge.
15
15
 
16
16
  # CLOSE ISSUES
17
17
 
18
- For each branch that was merged, close its issue. Here are all the issues:
18
+ For each branch that was merged, close its issue using the following command:
19
+
20
+ `{{CLOSE_TASK_COMMAND}}`
21
+
22
+ Here are all the issues:
19
23
 
20
24
  {{ISSUES}}
21
25
 
@@ -30,13 +30,13 @@ const MAX_ITERATIONS = 10;
30
30
  // Hooks run inside the sandbox before the agent starts each iteration.
31
31
  // npm install ensures the sandbox always has fresh dependencies.
32
32
  const hooks = {
33
- onSandboxReady: [{ command: "npm install" }],
33
+ sandbox: { onSandboxReady: [{ command: "npm install" }] },
34
34
  };
35
35
 
36
36
  // Copy node_modules from the host into the worktree before each sandbox
37
37
  // starts. Avoids a full npm install from scratch; the hook above handles
38
38
  // platform-specific binaries and any packages added since the last copy.
39
- const copyToWorkspace = ["node_modules"];
39
+ const copyToWorktree = ["node_modules"];
40
40
 
41
41
  // ---------------------------------------------------------------------------
42
42
  // Main loop
@@ -57,7 +57,7 @@ for (let iteration = 1; iteration <= MAX_ITERATIONS; iteration++) {
57
57
  // -------------------------------------------------------------------------
58
58
  const implement = await sandcastle.run({
59
59
  hooks,
60
- copyToWorkspace,
60
+ copyToWorktree,
61
61
  sandbox: docker(),
62
62
  branchStrategy: { type: "merge-to-head" },
63
63
  name: "implementer",
@@ -86,7 +86,7 @@ for (let iteration = 1; iteration <= MAX_ITERATIONS; iteration++) {
86
86
  // -------------------------------------------------------------------------
87
87
  await sandcastle.run({
88
88
  hooks,
89
- copyToWorkspace,
89
+ copyToWorktree,
90
90
  sandbox: docker(),
91
91
  branchStrategy: { type: "branch", branch },
92
92
  name: "reviewer",
@@ -28,7 +28,7 @@ await run({
28
28
 
29
29
  // Branch strategy — merge-to-head creates a temporary branch for the agent
30
30
  // to work on, then merges the result back to HEAD when the run completes.
31
- // This is required when using copyToWorkspace, since head mode bind-mounts
31
+ // This is required when using copyToWorktree, since head mode bind-mounts
32
32
  // the host directory directly (no worktree to copy into).
33
33
  branchStrategy: { type: "merge-to-head" },
34
34
 
@@ -36,13 +36,15 @@ await run({
36
36
  // starts. This avoids a full npm install from scratch on every iteration.
37
37
  // The onSandboxReady hook still runs npm install as a safety net to handle
38
38
  // platform-specific binaries and any packages added since the last copy.
39
- copyToWorkspace: ["node_modules"],
39
+ copyToWorktree: ["node_modules"],
40
40
 
41
- // Lifecycle hooks — commands that run inside the sandbox at specific points.
41
+ // Lifecycle hooks — commands grouped by where they run (host or sandbox).
42
42
  hooks: {
43
- // onSandboxReady runs once after the sandbox is initialised and the repo is
44
- // synced in, before the agent starts. Use it to install dependencies or run
45
- // any other setup steps your project needs.
46
- onSandboxReady: [{ command: "npm install" }],
43
+ sandbox: {
44
+ // onSandboxReady runs once after the sandbox is initialised and the repo is
45
+ // synced in, before the agent starts. Use it to install dependencies or run
46
+ // any other setup steps your project needs.
47
+ onSandboxReady: [{ command: "npm install" }],
48
+ },
47
49
  },
48
50
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-hero/sandcastle",
3
- "version": "0.4.7",
3
+ "version": "0.5.0",
4
4
  "description": "CLI for orchestrating AI agents in isolated sandbox environments",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,8 +0,0 @@
1
- import { Effect } from "effect";
2
- /**
3
- * Copy files and directories from the host repo root to the worktree root,
4
- * using `cp -R --reflink=auto` for copy-on-write when the filesystem supports it.
5
- * Missing paths are silently skipped.
6
- */
7
- export declare const copyToWorkspace: (paths: string[], hostRepoDir: string, worktreePath: string) => Effect.Effect<void, never, never>;
8
- //# sourceMappingURL=CopyToWorkspace.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CopyToWorkspace.d.ts","sourceRoot":"","sources":["../src/CopyToWorkspace.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC;;;;GAIG;AACH,eAAO,MAAM,eAAe,mGAyBxB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"CopyToWorkspace.js","sourceRoot":"","sources":["../src/CopyToWorkspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,KAAe,EACf,WAAmB,EACnB,YAAoB,EACQ,EAAE,CAC9B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,KAAK,MAAM,YAAY,IAAI,KAAK,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAC9C,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAc,CAAC,MAAM,EAAE,EAAE;YAC1C,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC5D,IAAI,KAAK,EAAE,CAAC;oBACV,0DAA0D;oBAC1D,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE;wBACrC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;oBACpC,CAAC,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1,5 +0,0 @@
1
- # Anthropic API key
2
- # If you want to use your Claude subscription instead of an API key, see https://github.com/mattpocock/sandcastle/issues/191
3
- ANTHROPIC_API_KEY=
4
- # GitHub personal access token
5
- GH_TOKEN=
@@ -1,5 +0,0 @@
1
- # Anthropic API key
2
- # If you want to use your Claude subscription instead of an API key, see https://github.com/mattpocock/sandcastle/issues/191
3
- ANTHROPIC_API_KEY=
4
- # GitHub personal access token
5
- GH_TOKEN=
@@ -1,5 +0,0 @@
1
- # Anthropic API key
2
- # If you want to use your Claude subscription instead of an API key, see https://github.com/mattpocock/sandcastle/issues/191
3
- ANTHROPIC_API_KEY=
4
- # GitHub personal access token
5
- GH_TOKEN=
@@ -1,5 +0,0 @@
1
- # Anthropic API key
2
- # If you want to use your Claude subscription instead of an API key, see https://github.com/mattpocock/sandcastle/issues/191
3
- ANTHROPIC_API_KEY=
4
- # GitHub personal access token
5
- GH_TOKEN=
@@ -1,5 +0,0 @@
1
- # Anthropic API key
2
- # If you want to use your Claude subscription instead of an API key, see https://github.com/mattpocock/sandcastle/issues/191
3
- ANTHROPIC_API_KEY=
4
- # GitHub personal access token
5
- GH_TOKEN=