@ai-hero/sandcastle 0.6.5 → 0.6.6
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.
- package/README.md +123 -54
- package/dist/{MountConfig.d.ts → MountConfig-CmXclHA5.d.ts} +3 -2
- package/dist/{SandboxProvider.d.ts → SandboxProvider-EkSMuBp8.d.ts} +25 -39
- package/dist/chunk-72UVAC7B.js +99 -0
- package/dist/chunk-72UVAC7B.js.map +1 -0
- package/dist/chunk-BIWNFKGV.js +22 -0
- package/dist/chunk-BIWNFKGV.js.map +1 -0
- package/dist/chunk-NGBM7T3E.js +76 -0
- package/dist/chunk-NGBM7T3E.js.map +1 -0
- package/dist/chunk-Q5W3WQVU.js +25569 -0
- package/dist/chunk-Q5W3WQVU.js.map +1 -0
- package/dist/chunk-UPDEQ2U7.js +362 -0
- package/dist/chunk-UPDEQ2U7.js.map +1 -0
- package/dist/chunk-Z7O2WNRU.js +26934 -0
- package/dist/chunk-Z7O2WNRU.js.map +1 -0
- package/dist/index.d.ts +920 -22
- package/dist/index.js +3212 -9
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +0 -2
- package/dist/main.js +19256 -13
- package/dist/main.js.map +1 -1
- package/dist/mountUtils-CCA-bbpK.d.ts +25 -0
- package/dist/sandboxes/daytona.d.ts +8 -5
- package/dist/sandboxes/daytona.js +118 -124
- package/dist/sandboxes/daytona.js.map +1 -1
- package/dist/sandboxes/docker.d.ts +10 -8
- package/dist/sandboxes/docker.js +8 -255
- package/dist/sandboxes/docker.js.map +1 -1
- package/dist/sandboxes/no-sandbox.d.ts +7 -4
- package/dist/sandboxes/no-sandbox.js +6 -114
- package/dist/sandboxes/no-sandbox.js.map +1 -1
- package/dist/sandboxes/podman.d.ts +10 -8
- package/dist/sandboxes/podman.js +287 -297
- package/dist/sandboxes/podman.js.map +1 -1
- package/dist/sandboxes/vercel.d.ts +7 -4
- package/dist/sandboxes/vercel.js +144 -165
- package/dist/sandboxes/vercel.js.map +1 -1
- package/package.json +15 -14
- package/dist/AgentProvider.d.ts +0 -134
- package/dist/AgentProvider.d.ts.map +0 -1
- package/dist/AgentProvider.js +0 -647
- package/dist/AgentProvider.js.map +0 -1
- package/dist/AgentStreamEmitter.d.ts +0 -36
- package/dist/AgentStreamEmitter.d.ts.map +0 -1
- package/dist/AgentStreamEmitter.js +0 -21
- package/dist/AgentStreamEmitter.js.map +0 -1
- package/dist/CopyToWorktree.d.ts +0 -15
- package/dist/CopyToWorktree.d.ts.map +0 -1
- package/dist/CopyToWorktree.js +0 -60
- package/dist/CopyToWorktree.js.map +0 -1
- package/dist/Display.d.ts +0 -58
- package/dist/Display.d.ts.map +0 -1
- package/dist/Display.js +0 -142
- package/dist/Display.js.map +0 -1
- package/dist/DockerLifecycle.d.ts +0 -54
- package/dist/DockerLifecycle.d.ts.map +0 -1
- package/dist/DockerLifecycle.js +0 -123
- package/dist/DockerLifecycle.js.map +0 -1
- package/dist/EnvResolver.d.ts +0 -11
- package/dist/EnvResolver.d.ts.map +0 -1
- package/dist/EnvResolver.js +0 -63
- package/dist/EnvResolver.js.map +0 -1
- package/dist/ErrorHandler.d.ts +0 -15
- package/dist/ErrorHandler.d.ts.map +0 -1
- package/dist/ErrorHandler.js +0 -85
- package/dist/ErrorHandler.js.map +0 -1
- package/dist/InitService.d.ts +0 -92
- package/dist/InitService.d.ts.map +0 -1
- package/dist/InitService.js +0 -836
- package/dist/InitService.js.map +0 -1
- package/dist/MountConfig.d.ts.map +0 -1
- package/dist/MountConfig.js +0 -7
- package/dist/MountConfig.js.map +0 -1
- package/dist/Orchestrator.d.ts +0 -56
- package/dist/Orchestrator.d.ts.map +0 -1
- package/dist/Orchestrator.js +0 -293
- package/dist/Orchestrator.js.map +0 -1
- package/dist/Output.d.ts +0 -107
- package/dist/Output.d.ts.map +0 -1
- package/dist/Output.js +0 -95
- package/dist/Output.js.map +0 -1
- package/dist/PodmanLifecycle.d.ts +0 -17
- package/dist/PodmanLifecycle.d.ts.map +0 -1
- package/dist/PodmanLifecycle.js +0 -45
- package/dist/PodmanLifecycle.js.map +0 -1
- package/dist/PromptArgumentSubstitution.d.ts +0 -32
- package/dist/PromptArgumentSubstitution.d.ts.map +0 -1
- package/dist/PromptArgumentSubstitution.js +0 -104
- package/dist/PromptArgumentSubstitution.js.map +0 -1
- package/dist/PromptPreprocessor.d.ts +0 -15
- package/dist/PromptPreprocessor.d.ts.map +0 -1
- package/dist/PromptPreprocessor.js +0 -55
- package/dist/PromptPreprocessor.js.map +0 -1
- package/dist/PromptResolver.d.ts +0 -21
- package/dist/PromptResolver.d.ts.map +0 -1
- package/dist/PromptResolver.js +0 -27
- package/dist/PromptResolver.js.map +0 -1
- package/dist/RecoveryMessage.d.ts +0 -15
- package/dist/RecoveryMessage.d.ts.map +0 -1
- package/dist/RecoveryMessage.js +0 -81
- package/dist/RecoveryMessage.js.map +0 -1
- package/dist/SandboxFactory.d.ts +0 -90
- package/dist/SandboxFactory.d.ts.map +0 -1
- package/dist/SandboxFactory.js +0 -324
- package/dist/SandboxFactory.js.map +0 -1
- package/dist/SandboxLifecycle.d.ts +0 -65
- package/dist/SandboxLifecycle.d.ts.map +0 -1
- package/dist/SandboxLifecycle.js +0 -296
- package/dist/SandboxLifecycle.js.map +0 -1
- package/dist/SandboxProvider.d.ts.map +0 -1
- package/dist/SandboxProvider.js +0 -28
- package/dist/SandboxProvider.js.map +0 -1
- package/dist/SessionStore.d.ts +0 -110
- package/dist/SessionStore.d.ts.map +0 -1
- package/dist/SessionStore.js +0 -330
- package/dist/SessionStore.js.map +0 -1
- package/dist/TextDeltaBuffer.d.ts +0 -24
- package/dist/TextDeltaBuffer.d.ts.map +0 -1
- package/dist/TextDeltaBuffer.js +0 -68
- package/dist/TextDeltaBuffer.js.map +0 -1
- package/dist/WorktreeManager.d.ts +0 -79
- package/dist/WorktreeManager.d.ts.map +0 -1
- package/dist/WorktreeManager.js +0 -283
- package/dist/WorktreeManager.js.map +0 -1
- package/dist/boundedTail.d.ts +0 -48
- package/dist/boundedTail.d.ts.map +0 -1
- package/dist/boundedTail.js +0 -64
- package/dist/boundedTail.js.map +0 -1
- package/dist/cli.d.ts +0 -30
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -340
- package/dist/cli.js.map +0 -1
- package/dist/createSandbox.d.ts +0 -154
- package/dist/createSandbox.d.ts.map +0 -1
- package/dist/createSandbox.js +0 -476
- package/dist/createSandbox.js.map +0 -1
- package/dist/createWorktree.d.ts +0 -154
- package/dist/createWorktree.d.ts.map +0 -1
- package/dist/createWorktree.js +0 -391
- package/dist/createWorktree.js.map +0 -1
- package/dist/errors.d.ts +0 -227
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -81
- package/dist/errors.js.map +0 -1
- package/dist/extractStructuredOutput.d.ts +0 -23
- package/dist/extractStructuredOutput.d.ts.map +0 -1
- package/dist/extractStructuredOutput.js +0 -102
- package/dist/extractStructuredOutput.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/interactive.d.ts +0 -74
- package/dist/interactive.d.ts.map +0 -1
- package/dist/interactive.js +0 -279
- package/dist/interactive.js.map +0 -1
- package/dist/main.d.ts.map +0 -1
- package/dist/mergeProviderEnv.d.ts +0 -13
- package/dist/mergeProviderEnv.d.ts.map +0 -1
- package/dist/mergeProviderEnv.js +0 -23
- package/dist/mergeProviderEnv.js.map +0 -1
- package/dist/mountUtils.d.ts +0 -146
- package/dist/mountUtils.d.ts.map +0 -1
- package/dist/mountUtils.js +0 -301
- package/dist/mountUtils.js.map +0 -1
- package/dist/raceAbortSignal.d.ts +0 -18
- package/dist/raceAbortSignal.d.ts.map +0 -1
- package/dist/raceAbortSignal.js +0 -32
- package/dist/raceAbortSignal.js.map +0 -1
- package/dist/resolveCwd.d.ts +0 -24
- package/dist/resolveCwd.d.ts.map +0 -1
- package/dist/resolveCwd.js +0 -32
- package/dist/resolveCwd.js.map +0 -1
- package/dist/resumePrecheck.d.ts +0 -26
- package/dist/resumePrecheck.d.ts.map +0 -1
- package/dist/resumePrecheck.js +0 -40
- package/dist/resumePrecheck.js.map +0 -1
- package/dist/run.d.ts +0 -216
- package/dist/run.d.ts.map +0 -1
- package/dist/run.js +0 -313
- package/dist/run.js.map +0 -1
- package/dist/sandboxExec.d.ts +0 -12
- package/dist/sandboxExec.d.ts.map +0 -1
- package/dist/sandboxExec.js +0 -26
- package/dist/sandboxExec.js.map +0 -1
- package/dist/sandboxes/daytona.d.ts.map +0 -1
- package/dist/sandboxes/docker.d.ts.map +0 -1
- package/dist/sandboxes/no-sandbox.d.ts.map +0 -1
- package/dist/sandboxes/podman.d.ts.map +0 -1
- package/dist/sandboxes/test-bind-mount.d.ts +0 -17
- package/dist/sandboxes/test-bind-mount.d.ts.map +0 -1
- package/dist/sandboxes/test-bind-mount.js +0 -92
- package/dist/sandboxes/test-bind-mount.js.map +0 -1
- package/dist/sandboxes/test-isolated.d.ts +0 -17
- package/dist/sandboxes/test-isolated.d.ts.map +0 -1
- package/dist/sandboxes/test-isolated.js +0 -98
- package/dist/sandboxes/test-isolated.js.map +0 -1
- package/dist/sandboxes/vercel.d.ts.map +0 -1
- package/dist/shutdownRegistry.d.ts +0 -30
- package/dist/shutdownRegistry.d.ts.map +0 -1
- package/dist/shutdownRegistry.js +0 -73
- package/dist/shutdownRegistry.js.map +0 -1
- package/dist/startSandbox.d.ts +0 -50
- package/dist/startSandbox.d.ts.map +0 -1
- package/dist/startSandbox.js +0 -117
- package/dist/startSandbox.js.map +0 -1
- package/dist/syncIn.d.ts +0 -24
- package/dist/syncIn.d.ts.map +0 -1
- package/dist/syncIn.js +0 -107
- package/dist/syncIn.js.map +0 -1
- package/dist/syncOut.d.ts +0 -27
- package/dist/syncOut.d.ts.map +0 -1
- package/dist/syncOut.js +0 -271
- package/dist/syncOut.js.map +0 -1
- package/dist/templates.d.ts +0 -2
- package/dist/templates.d.ts.map +0 -1
- package/dist/templates.js +0 -26
- package/dist/templates.js.map +0 -1
- package/dist/terminalCleanup.d.ts +0 -30
- package/dist/terminalCleanup.d.ts.map +0 -1
- package/dist/terminalCleanup.js +0 -37
- package/dist/terminalCleanup.js.map +0 -1
- package/dist/testSandbox.d.ts +0 -8
- package/dist/testSandbox.d.ts.map +0 -1
- package/dist/testSandbox.js +0 -109
- package/dist/testSandbox.js.map +0 -1
- package/dist/testSetup.d.ts +0 -2
- package/dist/testSetup.d.ts.map +0 -1
- package/dist/testSetup.js +0 -29
- package/dist/testSetup.js.map +0 -1
package/dist/SandboxFactory.js
DELETED
|
@@ -1,324 +0,0 @@
|
|
|
1
|
-
import { Context, Effect, Exit, Layer } from "effect";
|
|
2
|
-
import { FileSystem } from "@effect/platform";
|
|
3
|
-
import { join, resolve } from "node:path";
|
|
4
|
-
import { AgentError, AgentIdleTimeoutError, CopyError, ExecError, WorktreeError, } from "./errors.js";
|
|
5
|
-
import * as WorktreeManager from "./WorktreeManager.js";
|
|
6
|
-
import { copyToWorktree } from "./CopyToWorktree.js";
|
|
7
|
-
import { Display } from "./Display.js";
|
|
8
|
-
import { runHostHooks } from "./SandboxLifecycle.js";
|
|
9
|
-
import { startSandbox } from "./startSandbox.js";
|
|
10
|
-
import { syncOut } from "./syncOut.js";
|
|
11
|
-
import { patchGitMountsForWindows } from "./mountUtils.js";
|
|
12
|
-
export class Sandbox extends Context.Tag("Sandbox")() {
|
|
13
|
-
}
|
|
14
|
-
const getCopyIn = (handle) => {
|
|
15
|
-
if ("copyIn" in handle) {
|
|
16
|
-
return (hostPath, sandboxPath) => Effect.tryPromise({
|
|
17
|
-
try: () => handle.copyIn(hostPath, sandboxPath),
|
|
18
|
-
catch: (e) => new CopyError({
|
|
19
|
-
message: `copyIn failed: ${e instanceof Error ? e.message : String(e)}`,
|
|
20
|
-
}),
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
if ("copyFileIn" in handle) {
|
|
24
|
-
return (hostPath, sandboxPath) => Effect.tryPromise({
|
|
25
|
-
try: () => handle.copyFileIn(hostPath, sandboxPath),
|
|
26
|
-
catch: (e) => new CopyError({
|
|
27
|
-
message: `copyFileIn failed: ${e instanceof Error ? e.message : String(e)}`,
|
|
28
|
-
}),
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
return () => Effect.fail(new CopyError({
|
|
32
|
-
message: "copyIn is not supported for this sandbox provider",
|
|
33
|
-
}));
|
|
34
|
-
};
|
|
35
|
-
/**
|
|
36
|
-
* Wrap a Promise-based sandbox handle into an Effect-based SandboxService layer.
|
|
37
|
-
* Delegates copyIn/copyFileOut to the handle when available.
|
|
38
|
-
*/
|
|
39
|
-
export const makeSandboxLayerFromHandle = (handle) => Layer.succeed(Sandbox, {
|
|
40
|
-
exec: (command, options) => Effect.tryPromise({
|
|
41
|
-
try: () => handle.exec(command, options),
|
|
42
|
-
catch: (e) => new ExecError({
|
|
43
|
-
command,
|
|
44
|
-
message: `exec failed: ${e instanceof Error ? e.message : String(e)}`,
|
|
45
|
-
}),
|
|
46
|
-
}),
|
|
47
|
-
copyIn: getCopyIn(handle),
|
|
48
|
-
copyFileOut: "copyFileOut" in handle
|
|
49
|
-
? (sandboxPath, hostPath) => Effect.tryPromise({
|
|
50
|
-
try: () => handle.copyFileOut(sandboxPath, hostPath),
|
|
51
|
-
catch: (e) => new CopyError({
|
|
52
|
-
message: `copyFileOut failed: ${e instanceof Error ? e.message : String(e)}`,
|
|
53
|
-
}),
|
|
54
|
-
})
|
|
55
|
-
: () => Effect.fail(new CopyError({
|
|
56
|
-
message: "copyFileOut is not supported for this sandbox provider",
|
|
57
|
-
})),
|
|
58
|
-
});
|
|
59
|
-
/** The mount point inside the sandbox where the project worktree is bound. */
|
|
60
|
-
export const SANDBOX_REPO_DIR = "/home/agent/workspace";
|
|
61
|
-
export class SandboxFactory extends Context.Tag("SandboxFactory")() {
|
|
62
|
-
}
|
|
63
|
-
export class SandboxConfig extends Context.Tag("SandboxConfig")() {
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Print a message to stderr about a preserved worktree, with review and cleanup instructions.
|
|
67
|
-
*/
|
|
68
|
-
const printWorktreePreservedMessage = (worktreePath, reason) => {
|
|
69
|
-
console.error(`\n${reason}`);
|
|
70
|
-
console.error(` To review: cd ${worktreePath}`);
|
|
71
|
-
console.error(` To clean up: git worktree remove --force ${worktreePath}`);
|
|
72
|
-
};
|
|
73
|
-
/**
|
|
74
|
-
* Check for uncommitted changes and either preserve or remove the worktree.
|
|
75
|
-
* Returns the preserved path if preserved, undefined if removed.
|
|
76
|
-
*/
|
|
77
|
-
const cleanupWorktree = (worktreePath, exit) => WorktreeManager.hasUncommittedChanges(worktreePath).pipe(Effect.catchAll(() => Effect.succeed(false)), Effect.flatMap((isDirty) => {
|
|
78
|
-
if (isDirty) {
|
|
79
|
-
printWorktreePreservedMessage(worktreePath, Exit.isSuccess(exit)
|
|
80
|
-
? `Run succeeded but worktree has uncommitted changes at ${worktreePath}`
|
|
81
|
-
: `Worktree preserved at ${worktreePath}`);
|
|
82
|
-
return Effect.succeed(worktreePath);
|
|
83
|
-
}
|
|
84
|
-
if (!Exit.isSuccess(exit)) {
|
|
85
|
-
console.error(`\nWorktree removed (no uncommitted changes)`);
|
|
86
|
-
}
|
|
87
|
-
return WorktreeManager.remove(worktreePath).pipe(Effect.map(() => undefined));
|
|
88
|
-
}));
|
|
89
|
-
/**
|
|
90
|
-
* Attach the preserved worktree path to AgentIdleTimeoutError and AgentError so
|
|
91
|
-
* programmatic callers can build on top of the preserved worktree.
|
|
92
|
-
*/
|
|
93
|
-
const attachPreservedPath = (path, e) => {
|
|
94
|
-
if (path !== undefined) {
|
|
95
|
-
if (e instanceof AgentIdleTimeoutError) {
|
|
96
|
-
return new AgentIdleTimeoutError({
|
|
97
|
-
message: e.message,
|
|
98
|
-
timeoutMs: e.timeoutMs,
|
|
99
|
-
preservedWorktreePath: path,
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
if (e instanceof AgentError) {
|
|
103
|
-
return new AgentError({
|
|
104
|
-
message: e.message,
|
|
105
|
-
preservedWorktreePath: path,
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
return e;
|
|
110
|
-
};
|
|
111
|
-
/**
|
|
112
|
-
* Resolves the git-related mounts needed for the sandbox.
|
|
113
|
-
* Handles both normal repos (where .git is a directory) and worktrees
|
|
114
|
-
* (where .git is a file pointing to the parent repo's .git/worktrees/<name>).
|
|
115
|
-
*/
|
|
116
|
-
export const resolveGitMounts = (gitPath) => Effect.gen(function* () {
|
|
117
|
-
const fs = yield* FileSystem.FileSystem;
|
|
118
|
-
const stat = yield* fs.stat(gitPath);
|
|
119
|
-
if (stat.type === "Directory") {
|
|
120
|
-
return [{ hostPath: gitPath, sandboxPath: gitPath }];
|
|
121
|
-
}
|
|
122
|
-
// Worktree: .git is a file with "gitdir: <path>"
|
|
123
|
-
const content = (yield* fs.readFileString(gitPath)).trim();
|
|
124
|
-
const match = content.match(/^gitdir:\s*(.+)$/);
|
|
125
|
-
if (!match) {
|
|
126
|
-
// Unrecognized format — fall back to mounting the file as-is
|
|
127
|
-
return [{ hostPath: gitPath, sandboxPath: gitPath }];
|
|
128
|
-
}
|
|
129
|
-
const gitdirPath = match[1];
|
|
130
|
-
// gitdirPath is like /path/to/repo/.git/worktrees/<name>
|
|
131
|
-
// Mount both the .git file and the parent .git directory
|
|
132
|
-
const parentGitDir = resolve(gitdirPath, "..", "..");
|
|
133
|
-
return [
|
|
134
|
-
{ hostPath: gitPath, sandboxPath: gitPath },
|
|
135
|
-
{ hostPath: parentGitDir, sandboxPath: parentGitDir },
|
|
136
|
-
];
|
|
137
|
-
});
|
|
138
|
-
export const WorktreeDockerSandboxFactory = {
|
|
139
|
-
layer: Layer.effect(SandboxFactory, Effect.gen(function* () {
|
|
140
|
-
const { env, hostRepoDir, copyToWorktree: copyPaths, name, sandboxProvider, branchStrategy, hooks, signal, timeouts, } = yield* SandboxConfig;
|
|
141
|
-
const isHeadMode = branchStrategy.type === "head";
|
|
142
|
-
const branch = branchStrategy.type === "branch" ? branchStrategy.branch : undefined;
|
|
143
|
-
const baseBranch = branchStrategy.type === "branch"
|
|
144
|
-
? branchStrategy.baseBranch
|
|
145
|
-
: undefined;
|
|
146
|
-
const fileSystem = yield* FileSystem.FileSystem;
|
|
147
|
-
const display = yield* Display;
|
|
148
|
-
/** Prune stale worktrees (best-effort), then create a fresh one. */
|
|
149
|
-
const pruneAndCreate = () => WorktreeManager.pruneStale(hostRepoDir).pipe(Effect.catchAll((e) => Effect.sync(() => {
|
|
150
|
-
console.error("[sandcastle] Warning: failed to prune stale worktrees:", e.message);
|
|
151
|
-
})), Effect.andThen(branch
|
|
152
|
-
? WorktreeManager.create(hostRepoDir, { branch, baseBranch })
|
|
153
|
-
: WorktreeManager.create(hostRepoDir, { name })), Effect.provideService(FileSystem.FileSystem, fileSystem));
|
|
154
|
-
return {
|
|
155
|
-
withSandbox: (makeEffect) => {
|
|
156
|
-
// No-sandbox providers: run directly on the host, no container or mounts.
|
|
157
|
-
if (sandboxProvider.tag === "none") {
|
|
158
|
-
let preservedPath;
|
|
159
|
-
// Head mode: use hostRepoDir directly, no worktree.
|
|
160
|
-
if (isHeadMode) {
|
|
161
|
-
return (hooks?.host?.onWorktreeReady?.length
|
|
162
|
-
? runHostHooks(hooks.host.onWorktreeReady, hostRepoDir, signal)
|
|
163
|
-
: Effect.void).pipe(Effect.andThen(Effect.acquireUseRelease(startSandbox({
|
|
164
|
-
provider: sandboxProvider,
|
|
165
|
-
hostRepoDir,
|
|
166
|
-
env,
|
|
167
|
-
worktreeOrRepoPath: hostRepoDir,
|
|
168
|
-
}), ({ sandboxLayer, worktreePath, handle }) => makeEffect({
|
|
169
|
-
hostWorktreePath: hostRepoDir,
|
|
170
|
-
sandboxRepoPath: worktreePath,
|
|
171
|
-
}).pipe(Effect.provide(sandboxLayer)), ({ handle }) => Effect.tryPromise({
|
|
172
|
-
try: () => handle.close(),
|
|
173
|
-
catch: () => undefined,
|
|
174
|
-
}).pipe(Effect.orDie)).pipe(Effect.map((value) => ({
|
|
175
|
-
value,
|
|
176
|
-
preservedWorktreePath: undefined,
|
|
177
|
-
})))));
|
|
178
|
-
}
|
|
179
|
-
// Worktree mode (merge-to-head or explicit branch).
|
|
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
|
|
184
|
-
? display.spinner("Copying to worktree", copyToWorktree(copyPaths, hostRepoDir, worktreeInfo.path, timeouts?.copyToWorktreeMs))
|
|
185
|
-
: Effect.succeed(undefined)).pipe(Effect.andThen(hooks?.host?.onWorktreeReady?.length
|
|
186
|
-
? runHostHooks(hooks.host.onWorktreeReady, worktreeInfo.path, signal)
|
|
187
|
-
: Effect.void), Effect.andThen(Effect.acquireUseRelease(startSandbox({
|
|
188
|
-
provider: sandboxProvider,
|
|
189
|
-
hostRepoDir,
|
|
190
|
-
env,
|
|
191
|
-
worktreeOrRepoPath: worktreeInfo.path,
|
|
192
|
-
}), ({ sandboxLayer, worktreePath }) => makeEffect({
|
|
193
|
-
hostWorktreePath: worktreeInfo.path,
|
|
194
|
-
sandboxRepoPath: worktreePath,
|
|
195
|
-
}).pipe(Effect.provide(sandboxLayer)), ({ handle }) => Effect.tryPromise({
|
|
196
|
-
try: () => handle.close(),
|
|
197
|
-
catch: () => undefined,
|
|
198
|
-
}).pipe(Effect.orDie)))), (worktreeInfo, exit) => cleanupWorktree(worktreeInfo.path, exit).pipe(Effect.tap((p) => {
|
|
199
|
-
preservedPath = p;
|
|
200
|
-
}), Effect.asVoid, Effect.orDie)).pipe(Effect.map((value) => ({
|
|
201
|
-
value,
|
|
202
|
-
preservedWorktreePath: preservedPath,
|
|
203
|
-
})), Effect.mapError((e) => attachPreservedPath(preservedPath, e)));
|
|
204
|
-
}
|
|
205
|
-
// Isolated providers: create worktree, sync via git bundle
|
|
206
|
-
if (sandboxProvider.tag === "isolated") {
|
|
207
|
-
let preservedPath;
|
|
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
|
|
212
|
-
? runHostHooks(hooks.host.onWorktreeReady, worktreeInfo.path, signal)
|
|
213
|
-
: Effect.void).pipe(Effect.andThen(Effect.acquireUseRelease(startSandbox({
|
|
214
|
-
provider: sandboxProvider,
|
|
215
|
-
hostRepoDir: worktreeInfo.path,
|
|
216
|
-
env,
|
|
217
|
-
copyPaths,
|
|
218
|
-
}), ({ sandboxLayer, worktreePath, handle }) => makeEffect({
|
|
219
|
-
hostWorktreePath: worktreeInfo.path,
|
|
220
|
-
sandboxRepoPath: worktreePath,
|
|
221
|
-
applyToHost: () => syncOut(worktreeInfo.path, handle),
|
|
222
|
-
}).pipe(Effect.provide(sandboxLayer)), ({ handle }) => Effect.tryPromise({
|
|
223
|
-
try: () => handle.close(),
|
|
224
|
-
catch: () => undefined,
|
|
225
|
-
}).pipe(Effect.orDie)))), (worktreeInfo, exit) => cleanupWorktree(worktreeInfo.path, exit).pipe(Effect.tap((p) => {
|
|
226
|
-
preservedPath = p;
|
|
227
|
-
}), Effect.asVoid, Effect.orDie)).pipe(Effect.map((value) => ({
|
|
228
|
-
value,
|
|
229
|
-
preservedWorktreePath: preservedPath,
|
|
230
|
-
})), Effect.mapError((e) => attachPreservedPath(preservedPath, e)));
|
|
231
|
-
}
|
|
232
|
-
if (isHeadMode) {
|
|
233
|
-
// Head mode: bind-mount host directory directly, no worktree
|
|
234
|
-
const gitPath = join(hostRepoDir, ".git");
|
|
235
|
-
return (hooks?.host?.onWorktreeReady?.length
|
|
236
|
-
? runHostHooks(hooks.host.onWorktreeReady, hostRepoDir, signal)
|
|
237
|
-
: Effect.void).pipe(Effect.andThen(resolveGitMounts(gitPath)), Effect.provideService(FileSystem.FileSystem, fileSystem), Effect.mapError((e) => new WorktreeError({
|
|
238
|
-
message: `Failed to resolve git mounts: ${e}`,
|
|
239
|
-
})), Effect.flatMap((gitMounts) =>
|
|
240
|
-
// Patch git mounts for Windows worktree compatibility (ADR-0006)
|
|
241
|
-
Effect.tryPromise({
|
|
242
|
-
try: () => patchGitMountsForWindows(gitMounts, hostRepoDir, SANDBOX_REPO_DIR),
|
|
243
|
-
catch: (e) => new WorktreeError({
|
|
244
|
-
message: `Failed to patch git mounts: ${e instanceof Error ? e.message : String(e)}`,
|
|
245
|
-
}),
|
|
246
|
-
})), Effect.flatMap((gitMounts) => Effect.acquireUseRelease(startSandbox({
|
|
247
|
-
provider: sandboxProvider,
|
|
248
|
-
hostRepoDir,
|
|
249
|
-
env,
|
|
250
|
-
worktreeOrRepoPath: hostRepoDir,
|
|
251
|
-
gitMounts,
|
|
252
|
-
repoDir: SANDBOX_REPO_DIR,
|
|
253
|
-
}),
|
|
254
|
-
// Use
|
|
255
|
-
({ sandboxLayer, worktreePath, handle }) => makeEffect({
|
|
256
|
-
hostWorktreePath: hostRepoDir,
|
|
257
|
-
sandboxRepoPath: worktreePath,
|
|
258
|
-
bindMountHandle: handle,
|
|
259
|
-
}).pipe(Effect.provide(sandboxLayer)),
|
|
260
|
-
// Release
|
|
261
|
-
({ handle }) => Effect.tryPromise({
|
|
262
|
-
try: () => handle.close(),
|
|
263
|
-
catch: () => undefined,
|
|
264
|
-
}).pipe(Effect.orDie)).pipe(Effect.map((value) => ({
|
|
265
|
-
value,
|
|
266
|
-
preservedWorktreePath: undefined,
|
|
267
|
-
})))));
|
|
268
|
-
}
|
|
269
|
-
// Worktree mode (merge-to-head or explicit branch)
|
|
270
|
-
// Populated by the release phase when a worktree is preserved on failure,
|
|
271
|
-
// so we can attach the path to recognized error types before they propagate.
|
|
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.
|
|
277
|
-
return Effect.acquireUseRelease(
|
|
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
|
|
283
|
-
? display.spinner("Copying to worktree", copyToWorktree(copyPaths, hostRepoDir, worktreeInfo.path, timeouts?.copyToWorktreeMs))
|
|
284
|
-
: Effect.succeed(undefined)).pipe(Effect.andThen(hooks?.host?.onWorktreeReady?.length
|
|
285
|
-
? runHostHooks(hooks.host.onWorktreeReady, worktreeInfo.path, signal)
|
|
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({
|
|
306
|
-
hostWorktreePath: worktreeInfo.path,
|
|
307
|
-
sandboxRepoPath: worktreePath,
|
|
308
|
-
bindMountHandle: handle,
|
|
309
|
-
}).pipe(Effect.provide(sandboxLayer)), ({ handle }) => Effect.tryPromise({
|
|
310
|
-
try: () => handle.close(),
|
|
311
|
-
catch: () => undefined,
|
|
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) => {
|
|
315
|
-
preservedWorktreePath = p;
|
|
316
|
-
}), Effect.asVoid, Effect.orDie)).pipe(Effect.map((value) => ({
|
|
317
|
-
value,
|
|
318
|
-
preservedWorktreePath,
|
|
319
|
-
})), Effect.mapError((e) => attachPreservedPath(preservedWorktreePath, e)));
|
|
320
|
-
},
|
|
321
|
-
};
|
|
322
|
-
})),
|
|
323
|
-
};
|
|
324
|
-
//# sourceMappingURL=SandboxFactory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SandboxFactory.js","sourceRoot":"","sources":["../src/SandboxFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { Effect } from "effect";
|
|
2
|
-
import { Display } from "./Display.js";
|
|
3
|
-
import { ExecError, HookTimeoutError, SyncError, type SandboxError } from "./errors.js";
|
|
4
|
-
import { Sandbox, type SandboxService } from "./SandboxFactory.js";
|
|
5
|
-
import type { Timeouts } from "./run.js";
|
|
6
|
-
export type SandboxHooks = {
|
|
7
|
-
readonly host?: {
|
|
8
|
-
readonly onWorktreeReady?: ReadonlyArray<{
|
|
9
|
-
readonly command: string;
|
|
10
|
-
readonly timeoutMs?: number;
|
|
11
|
-
}>;
|
|
12
|
-
readonly onSandboxReady?: ReadonlyArray<{
|
|
13
|
-
readonly command: string;
|
|
14
|
-
readonly timeoutMs?: number;
|
|
15
|
-
}>;
|
|
16
|
-
};
|
|
17
|
-
readonly sandbox?: {
|
|
18
|
-
readonly onSandboxReady?: ReadonlyArray<{
|
|
19
|
-
readonly command: string;
|
|
20
|
-
readonly sudo?: boolean;
|
|
21
|
-
readonly timeoutMs?: number;
|
|
22
|
-
}>;
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
/**
|
|
26
|
-
* Runs an array of host-side hook commands sequentially.
|
|
27
|
-
* Each command runs on the host with the given cwd.
|
|
28
|
-
* Fails fast on non-zero exit.
|
|
29
|
-
*/
|
|
30
|
-
export declare const runHostHooks: (hooks: readonly {
|
|
31
|
-
readonly command: string;
|
|
32
|
-
readonly timeoutMs?: number | undefined;
|
|
33
|
-
}[], cwd: string, signal?: AbortSignal | undefined) => Effect.Effect<void, ExecError | HookTimeoutError, never>;
|
|
34
|
-
export interface SandboxLifecycleOptions {
|
|
35
|
-
readonly hostRepoDir: string;
|
|
36
|
-
readonly sandboxRepoDir: string;
|
|
37
|
-
readonly hooks?: SandboxHooks;
|
|
38
|
-
readonly branch?: string;
|
|
39
|
-
/** Host-side path to the worktree directory. Required when sandboxRepoDir
|
|
40
|
-
* is a sandbox path that doesn't exist on the host (e.g. /home/agent/workspace). */
|
|
41
|
-
readonly hostWorktreePath?: string;
|
|
42
|
-
/** Called after agent work completes but before host-side git operations (merge, commit collection).
|
|
43
|
-
* For isolated providers, this syncs changes from the sandbox to the host worktree.
|
|
44
|
-
* For bind-mount providers, this is a no-op (filesystem is already shared). */
|
|
45
|
-
readonly applyToHost?: () => Effect.Effect<void, SyncError>;
|
|
46
|
-
/** AbortSignal passed through to lifecycle hooks so they can cooperatively cancel.
|
|
47
|
-
* When omitted, hooks receive a never-aborted signal. */
|
|
48
|
-
readonly signal?: AbortSignal;
|
|
49
|
-
/** Override default timeouts for built-in lifecycle steps. Unset keys keep their defaults. */
|
|
50
|
-
readonly timeouts?: Timeouts;
|
|
51
|
-
}
|
|
52
|
-
export interface SandboxContext {
|
|
53
|
-
readonly sandbox: SandboxService;
|
|
54
|
-
readonly sandboxRepoDir: string;
|
|
55
|
-
readonly baseHead: string;
|
|
56
|
-
}
|
|
57
|
-
export interface SandboxLifecycleResult<A> {
|
|
58
|
-
readonly result: A;
|
|
59
|
-
readonly branch: string;
|
|
60
|
-
readonly commits: {
|
|
61
|
-
sha: string;
|
|
62
|
-
}[];
|
|
63
|
-
}
|
|
64
|
-
export declare const withSandboxLifecycle: <A>(options: SandboxLifecycleOptions, work: (ctx: SandboxContext) => Effect.Effect<A, SandboxError, Display | Sandbox>) => Effect.Effect<SandboxLifecycleResult<A>, SandboxError, Display | Sandbox>;
|
|
65
|
-
//# sourceMappingURL=SandboxLifecycle.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|