@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/SandboxLifecycle.js
DELETED
|
@@ -1,296 +0,0 @@
|
|
|
1
|
-
import { exec } from "node:child_process";
|
|
2
|
-
import { promisify } from "node:util";
|
|
3
|
-
import { Deferred, Duration, Effect, Schedule } from "effect";
|
|
4
|
-
import { Display } from "./Display.js";
|
|
5
|
-
import { CommitCollectionTimeoutError, ExecError, GitSetupTimeoutError, HookTimeoutError, MergeToHostTimeoutError, SyncError, withTimeout, } from "./errors.js";
|
|
6
|
-
import { Sandbox, } from "./SandboxFactory.js";
|
|
7
|
-
const GIT_SETUP_TIMEOUT_MS = 10_000;
|
|
8
|
-
const HOOK_TIMEOUT_MS = 60_000;
|
|
9
|
-
const COMMIT_COLLECTION_TIMEOUT_MS = 30_000;
|
|
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);
|
|
25
|
-
const execOk = (sandbox, command, options) => Effect.flatMap(sandbox.exec(command, options), (result) => result.exitCode !== 0
|
|
26
|
-
? Effect.fail(new ExecError({
|
|
27
|
-
command,
|
|
28
|
-
exitCode: result.exitCode,
|
|
29
|
-
message: `Command failed (exit ${result.exitCode}): ${command}\n${result.stderr}`,
|
|
30
|
-
}))
|
|
31
|
-
: Effect.succeed(result));
|
|
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,
|
|
35
|
-
command,
|
|
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
|
-
}));
|
|
44
|
-
const execAsync = promisify(exec);
|
|
45
|
-
/**
|
|
46
|
-
* Runs an array of host-side hook commands sequentially.
|
|
47
|
-
* Each command runs on the host with the given cwd.
|
|
48
|
-
* Fails fast on non-zero exit.
|
|
49
|
-
*/
|
|
50
|
-
export const runHostHooks = (hooks, cwd, signal) => Effect.gen(function* () {
|
|
51
|
-
for (const hook of hooks) {
|
|
52
|
-
const timeout = hook.timeoutMs ?? HOOK_TIMEOUT_MS;
|
|
53
|
-
yield* Effect.tryPromise({
|
|
54
|
-
try: () => execAsync(hook.command, { cwd, signal }),
|
|
55
|
-
catch: (err) => new ExecError({
|
|
56
|
-
command: hook.command,
|
|
57
|
-
message: `Host hook failed: ${hook.command}\n${err instanceof Error ? err.message : String(err)}`,
|
|
58
|
-
}),
|
|
59
|
-
}).pipe(withTimeout(timeout, () => new HookTimeoutError({
|
|
60
|
-
message: `Host hook '${hook.command}' timed out after ${timeout}ms`,
|
|
61
|
-
timeoutMs: timeout,
|
|
62
|
-
command: hook.command,
|
|
63
|
-
})));
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
export const withSandboxLifecycle = (options, work) => Effect.gen(function* () {
|
|
67
|
-
const sandbox = yield* Sandbox;
|
|
68
|
-
const display = yield* Display;
|
|
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;
|
|
74
|
-
// Resolve signal: use caller's signal or a never-aborted one so hooks
|
|
75
|
-
// can unconditionally reference it without null-checking.
|
|
76
|
-
const signal = options.signal ?? new AbortController().signal;
|
|
77
|
-
// Without an explicit branch, record host's current branch for cherry-pick
|
|
78
|
-
const hostCurrentBranch = !branch
|
|
79
|
-
? yield* Effect.promise(async () => {
|
|
80
|
-
const { stdout } = await execAsync("git rev-parse --abbrev-ref HEAD", { cwd: hostRepoDir });
|
|
81
|
-
return stdout.trim();
|
|
82
|
-
})
|
|
83
|
-
: null;
|
|
84
|
-
// Read host git identity before entering the sandbox
|
|
85
|
-
const [hostGitName, hostGitEmail] = yield* Effect.promise(async () => {
|
|
86
|
-
const [nameResult, emailResult] = await Promise.all([
|
|
87
|
-
execAsync("git config user.name", { cwd: hostRepoDir })
|
|
88
|
-
.then((r) => r.stdout.trim())
|
|
89
|
-
.catch(() => ""),
|
|
90
|
-
execAsync("git config user.email", { cwd: hostRepoDir })
|
|
91
|
-
.then((r) => r.stdout.trim())
|
|
92
|
-
.catch(() => ""),
|
|
93
|
-
]);
|
|
94
|
-
return [nameResult, emailResult];
|
|
95
|
-
});
|
|
96
|
-
// For host-side operations, use hostWorktreePath (the real path on the host)
|
|
97
|
-
// instead of sandboxRepoDir (which may be a sandbox path like /home/agent/workspace).
|
|
98
|
-
const hostSideWorktreePath = hostWorktreePath ?? sandboxRepoDir;
|
|
99
|
-
// Setup: onSandboxReady hooks
|
|
100
|
-
let resolvedBranch = "";
|
|
101
|
-
yield* display.taskLog("Setting up sandbox", (message) => Effect.gen(function* () {
|
|
102
|
-
// The bind-mounted worktree may be owned by a different UID (host user
|
|
103
|
-
// vs sandbox user). Mark it safe so git doesn't reject it with
|
|
104
|
-
// "dubious ownership".
|
|
105
|
-
yield* execOkWithGitTimeout(sandbox, `git config --global --add safe.directory "${sandboxRepoDir}"`, gitSetupTimeoutMs);
|
|
106
|
-
// Propagate host git identity into the sandbox so commits are attributed
|
|
107
|
-
// to the actual developer without requiring manual setup.
|
|
108
|
-
if (hostGitName) {
|
|
109
|
-
yield* execOkWithGitTimeout(sandbox, `git config --global user.name "${hostGitName.replace(/"/g, '\\"')}"`, gitSetupTimeoutMs);
|
|
110
|
-
}
|
|
111
|
-
if (hostGitEmail) {
|
|
112
|
-
yield* execOkWithGitTimeout(sandbox, `git config --global user.email "${hostGitEmail.replace(/"/g, '\\"')}"`, gitSetupTimeoutMs);
|
|
113
|
-
}
|
|
114
|
-
// Repo is bind-mounted — discover branch directly
|
|
115
|
-
resolvedBranch = (yield* execOkWithGitTimeout(sandbox, "git rev-parse --abbrev-ref HEAD", gitSetupTimeoutMs, { cwd: sandboxRepoDir })).stdout.trim();
|
|
116
|
-
// Run sandbox.onSandboxReady and host.onSandboxReady in parallel
|
|
117
|
-
const sandboxHooks = hooks?.sandbox?.onSandboxReady;
|
|
118
|
-
const hostOnSandboxReady = hooks?.host?.onSandboxReady;
|
|
119
|
-
if (sandboxHooks?.length) {
|
|
120
|
-
for (const hook of sandboxHooks) {
|
|
121
|
-
message(hook.command);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
if (hostOnSandboxReady?.length) {
|
|
125
|
-
for (const hook of hostOnSandboxReady) {
|
|
126
|
-
message(`[host] ${hook.command}`);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
// Set up abort racing for sandbox hooks (sandbox.exec doesn't
|
|
130
|
-
// natively support AbortSignal, so we race via Deferred).
|
|
131
|
-
const abortDeferred = yield* Deferred.make();
|
|
132
|
-
let abortCleanup = null;
|
|
133
|
-
if (signal.aborted) {
|
|
134
|
-
yield* Deferred.fail(abortDeferred, new ExecError({
|
|
135
|
-
command: "abort",
|
|
136
|
-
message: `Aborted: ${signal.reason}`,
|
|
137
|
-
}));
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
const onAbort = () => {
|
|
141
|
-
Effect.runPromise(Deferred.fail(abortDeferred, new ExecError({
|
|
142
|
-
command: "abort",
|
|
143
|
-
message: `Aborted: ${signal.reason}`,
|
|
144
|
-
}))).catch(() => { });
|
|
145
|
-
};
|
|
146
|
-
signal.addEventListener("abort", onAbort, { once: true });
|
|
147
|
-
abortCleanup = () => signal.removeEventListener("abort", onAbort);
|
|
148
|
-
}
|
|
149
|
-
const sandboxHookEffects = (sandboxHooks ?? []).map((hook) => {
|
|
150
|
-
const timeout = hook.timeoutMs ?? HOOK_TIMEOUT_MS;
|
|
151
|
-
return Effect.raceFirst(execOk(sandbox, hook.command, {
|
|
152
|
-
cwd: sandboxRepoDir,
|
|
153
|
-
sudo: hook.sudo,
|
|
154
|
-
}).pipe(withTimeout(timeout, () => new HookTimeoutError({
|
|
155
|
-
message: `Hook '${hook.command}' timed out after ${timeout}ms`,
|
|
156
|
-
timeoutMs: timeout,
|
|
157
|
-
command: hook.command,
|
|
158
|
-
}))), Deferred.await(abortDeferred));
|
|
159
|
-
});
|
|
160
|
-
const hostHookEffects = (hostOnSandboxReady ?? []).map((hook) => {
|
|
161
|
-
const timeout = hook.timeoutMs ?? HOOK_TIMEOUT_MS;
|
|
162
|
-
return Effect.tryPromise({
|
|
163
|
-
try: () => execAsync(hook.command, {
|
|
164
|
-
cwd: hostSideWorktreePath,
|
|
165
|
-
signal,
|
|
166
|
-
}),
|
|
167
|
-
catch: (err) => new ExecError({
|
|
168
|
-
command: hook.command,
|
|
169
|
-
message: `Host hook failed: ${hook.command}\n${err instanceof Error ? err.message : String(err)}`,
|
|
170
|
-
}),
|
|
171
|
-
}).pipe(withTimeout(timeout, () => new HookTimeoutError({
|
|
172
|
-
message: `Host hook '${hook.command}' timed out after ${timeout}ms`,
|
|
173
|
-
timeoutMs: timeout,
|
|
174
|
-
command: hook.command,
|
|
175
|
-
})));
|
|
176
|
-
});
|
|
177
|
-
const allOnSandboxReady = [...sandboxHookEffects, ...hostHookEffects];
|
|
178
|
-
yield* (allOnSandboxReady.length > 0
|
|
179
|
-
? Effect.all(allOnSandboxReady, { concurrency: "unbounded" })
|
|
180
|
-
: Effect.void).pipe(Effect.ensuring(Effect.sync(() => abortCleanup?.())));
|
|
181
|
-
}));
|
|
182
|
-
const targetBranch = branch ?? resolvedBranch;
|
|
183
|
-
// Record base HEAD from the host worktree (not the sandbox).
|
|
184
|
-
// For bind-mount providers, these are the same. For isolated providers,
|
|
185
|
-
// the host-side SHA is the correct baseline for git rev-list after applyToHost
|
|
186
|
-
// syncs commits back (syncOut creates new SHAs via format-patch/am).
|
|
187
|
-
const baseHead = yield* Effect.promise(async () => {
|
|
188
|
-
const { stdout } = await execAsync("git rev-parse HEAD", {
|
|
189
|
-
cwd: hostSideWorktreePath,
|
|
190
|
-
});
|
|
191
|
-
return stdout.trim();
|
|
192
|
-
});
|
|
193
|
-
// Run the caller's work
|
|
194
|
-
const result = yield* work({ sandbox, sandboxRepoDir, baseHead });
|
|
195
|
-
// Sync changes from sandbox to host worktree (isolated sandbox only)
|
|
196
|
-
if (options.applyToHost) {
|
|
197
|
-
const countResult = yield* sandbox.exec(`git rev-list "${baseHead}..HEAD" --count`, { cwd: sandboxRepoDir });
|
|
198
|
-
const commitCount = countResult.exitCode === 0
|
|
199
|
-
? parseInt(countResult.stdout.trim(), 10)
|
|
200
|
-
: 0;
|
|
201
|
-
yield* display.taskLog(commitCount > 0
|
|
202
|
-
? `Syncing ${commitCount} commit${commitCount !== 1 ? "s" : ""} to host`
|
|
203
|
-
: "No commits to sync out", () => options.applyToHost());
|
|
204
|
-
}
|
|
205
|
-
// Collect commits and handle cherry-pick for temp branches
|
|
206
|
-
let commits;
|
|
207
|
-
let finalBranch;
|
|
208
|
-
if (hostCurrentBranch !== null) {
|
|
209
|
-
// Temp branch mode: merge temp branch into host branch, then delete temp branch.
|
|
210
|
-
// We use merge instead of cherry-pick because cherry-pick breaks when the
|
|
211
|
-
// temp branch contains merge commits (e.g. a merge agent merging multiple parallel
|
|
212
|
-
// branches). A regular merge handles both the fast-forward case (host branch hasn't
|
|
213
|
-
// moved) and the diverged case (host branch has new commits since the worktree started).
|
|
214
|
-
// Check if there are any new commits on the temp branch
|
|
215
|
-
const hasNewCommits = yield* Effect.promise(async () => {
|
|
216
|
-
try {
|
|
217
|
-
const { stdout } = await execAsync(`git rev-list "${baseHead}..HEAD" --count`, { cwd: hostSideWorktreePath });
|
|
218
|
-
return parseInt(stdout.trim(), 10) > 0;
|
|
219
|
-
}
|
|
220
|
-
catch {
|
|
221
|
-
return false;
|
|
222
|
-
}
|
|
223
|
-
});
|
|
224
|
-
// Detach the worktree from the temp branch so the branch can be deleted
|
|
225
|
-
yield* execOk(sandbox, "git checkout --detach", { cwd: sandboxRepoDir });
|
|
226
|
-
if (hasNewCommits) {
|
|
227
|
-
// Fast-forward host's current branch to the temp branch
|
|
228
|
-
yield* display.taskLog(`Merging to ${hostCurrentBranch}`, () => Effect.tryPromise({
|
|
229
|
-
try: async () => {
|
|
230
|
-
try {
|
|
231
|
-
await execAsync(`git merge "${resolvedBranch}"`, {
|
|
232
|
-
cwd: hostRepoDir,
|
|
233
|
-
});
|
|
234
|
-
}
|
|
235
|
-
catch {
|
|
236
|
-
throw new Error(`Merge of '${resolvedBranch}' onto '${hostCurrentBranch}' failed. ` +
|
|
237
|
-
`The temporary branch '${resolvedBranch}' has been preserved. ` +
|
|
238
|
-
`To retry: git merge ${resolvedBranch}, ` +
|
|
239
|
-
`then clean up: git branch -D ${resolvedBranch}`);
|
|
240
|
-
}
|
|
241
|
-
},
|
|
242
|
-
catch: (e) => new SyncError({
|
|
243
|
-
message: String(e instanceof Error ? e.message : e),
|
|
244
|
-
}),
|
|
245
|
-
}).pipe(withTimeout(mergeToHostTimeoutMs, () => new MergeToHostTimeoutError({
|
|
246
|
-
message: `Merge of '${resolvedBranch}' to '${hostCurrentBranch}' timed out after ${mergeToHostTimeoutMs}ms`,
|
|
247
|
-
timeoutMs: mergeToHostTimeoutMs,
|
|
248
|
-
sourceBranch: resolvedBranch,
|
|
249
|
-
targetBranch: hostCurrentBranch,
|
|
250
|
-
}))));
|
|
251
|
-
}
|
|
252
|
-
// Delete the temp branch (now merged into host branch)
|
|
253
|
-
yield* Effect.promise(() => execAsync(`git branch -D "${resolvedBranch}"`, {
|
|
254
|
-
cwd: hostRepoDir,
|
|
255
|
-
}).catch(() => { }));
|
|
256
|
-
// Collect the commits now on the host branch
|
|
257
|
-
commits = yield* display.taskLog("Collecting commits", () => Effect.promise(async () => {
|
|
258
|
-
try {
|
|
259
|
-
const { stdout } = await execAsync(`git rev-list "${baseHead}..HEAD" --reverse`, { cwd: hostRepoDir });
|
|
260
|
-
const lines = stdout.trim();
|
|
261
|
-
if (!lines)
|
|
262
|
-
return [];
|
|
263
|
-
return lines.split("\n").map((sha) => ({ sha }));
|
|
264
|
-
}
|
|
265
|
-
catch {
|
|
266
|
-
return [];
|
|
267
|
-
}
|
|
268
|
-
}).pipe(withTimeout(commitCollectionTimeoutMs, () => new CommitCollectionTimeoutError({
|
|
269
|
-
message: `Commit collection timed out after ${commitCollectionTimeoutMs}ms`,
|
|
270
|
-
timeoutMs: commitCollectionTimeoutMs,
|
|
271
|
-
}))));
|
|
272
|
-
finalBranch = hostCurrentBranch;
|
|
273
|
-
}
|
|
274
|
-
else {
|
|
275
|
-
// Explicit branch: commits stay on that branch
|
|
276
|
-
commits = yield* display.taskLog("Collecting commits", () => Effect.promise(async () => {
|
|
277
|
-
try {
|
|
278
|
-
const { stdout } = await execAsync(`git rev-list "${baseHead}..refs/heads/${targetBranch}" --reverse`, { cwd: hostRepoDir });
|
|
279
|
-
const lines = stdout.trim();
|
|
280
|
-
if (!lines)
|
|
281
|
-
return [];
|
|
282
|
-
return lines.split("\n").map((sha) => ({ sha }));
|
|
283
|
-
}
|
|
284
|
-
catch {
|
|
285
|
-
// Branch doesn't exist on host (no commits were produced)
|
|
286
|
-
return [];
|
|
287
|
-
}
|
|
288
|
-
}).pipe(withTimeout(commitCollectionTimeoutMs, () => new CommitCollectionTimeoutError({
|
|
289
|
-
message: `Commit collection timed out after ${commitCollectionTimeoutMs}ms`,
|
|
290
|
-
timeoutMs: commitCollectionTimeoutMs,
|
|
291
|
-
}))));
|
|
292
|
-
finalBranch = targetBranch;
|
|
293
|
-
}
|
|
294
|
-
return { result, branch: finalBranch, commits };
|
|
295
|
-
});
|
|
296
|
-
//# sourceMappingURL=SandboxLifecycle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SandboxLifecycle.js","sourceRoot":"","sources":["../src/SandboxLifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SandboxProvider.d.ts","sourceRoot":"","sources":["../src/SandboxProvider.ts"],"names":[],"mappings":"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"}
|
package/dist/SandboxProvider.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sandbox provider types — the pluggable interface for sandbox runtimes.
|
|
3
|
-
*
|
|
4
|
-
* Provider authors implement a small Promise-based interface. Sandcastle
|
|
5
|
-
* handles worktree creation, git mount resolution, and commit extraction.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Create a bind-mount sandbox provider from a config object.
|
|
9
|
-
* The returned provider can be passed to `run()` or `createSandbox()`.
|
|
10
|
-
*/
|
|
11
|
-
export const createBindMountSandboxProvider = (config) => ({
|
|
12
|
-
tag: "bind-mount",
|
|
13
|
-
name: config.name,
|
|
14
|
-
env: config.env ?? {},
|
|
15
|
-
sandboxHomedir: config.sandboxHomedir,
|
|
16
|
-
create: config.create,
|
|
17
|
-
});
|
|
18
|
-
/**
|
|
19
|
-
* Create an isolated sandbox provider from a config object.
|
|
20
|
-
* The returned provider can be passed to `run()` or `createSandbox()`.
|
|
21
|
-
*/
|
|
22
|
-
export const createIsolatedSandboxProvider = (config) => ({
|
|
23
|
-
tag: "isolated",
|
|
24
|
-
name: config.name,
|
|
25
|
-
env: config.env ?? {},
|
|
26
|
-
create: config.create,
|
|
27
|
-
});
|
|
28
|
-
//# sourceMappingURL=SandboxProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SandboxProvider.js","sourceRoot":"","sources":["../src/SandboxProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2SH;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,MAAsC,EACZ,EAAE,CAAC,CAAC;IAC9B,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,MAAM,CAAC,IAAI;IACjB,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE;IACrB,cAAc,EAAE,MAAM,CAAC,cAAc;IACrC,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,MAAqC,EACZ,EAAE,CAAC,CAAC;IAC7B,GAAG,EAAE,UAAU;IACf,IAAI,EAAE,MAAM,CAAC,IAAI;IACjB,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CAAC,CAAC"}
|
package/dist/SessionStore.d.ts
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SessionStore — keyed collection of agent session JSONLs.
|
|
3
|
-
*
|
|
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.
|
|
11
|
-
*/
|
|
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
|
-
}
|
|
25
|
-
/** A keyed collection of agent session JSONLs associated with a cwd. */
|
|
26
|
-
export interface SessionStore {
|
|
27
|
-
/** The working directory this store is associated with. */
|
|
28
|
-
readonly cwd: 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;
|
|
33
|
-
/** Read a session's JSONL content by ID. Throws if not found. */
|
|
34
|
-
readSession(id: string): Promise<string>;
|
|
35
|
-
/** Write a session's JSONL content by ID. Creates or overwrites. */
|
|
36
|
-
writeSession(id: string, content: string): Promise<void>;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Encode a cwd into the Claude Code `~/.claude/projects/<encoded>/` layout.
|
|
40
|
-
* Replaces path separators with hyphens, matching Claude Code's convention.
|
|
41
|
-
*/
|
|
42
|
-
export declare const encodeProjectPath: (cwd: string) => string;
|
|
43
|
-
/**
|
|
44
|
-
* Create a host-backed SessionStore that reads/writes session JSONLs on the
|
|
45
|
-
* host filesystem using Claude Code's `~/.claude/projects/<encoded>/` layout.
|
|
46
|
-
*
|
|
47
|
-
* @param cwd - The host repo directory this store is associated with.
|
|
48
|
-
* @param projectsDir - Override for the projects directory (default: `~/.claude/projects`).
|
|
49
|
-
*/
|
|
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>;
|
|
62
|
-
/**
|
|
63
|
-
* Create a sandbox-backed SessionStore that uses a bind-mount handle's
|
|
64
|
-
* `copyFileIn`/`copyFileOut` to transfer session files.
|
|
65
|
-
*
|
|
66
|
-
* @param cwd - The sandbox-side working directory.
|
|
67
|
-
* @param handle - The bind-mount sandbox handle for file transfer.
|
|
68
|
-
* @param projectsDir - The sandbox-side path to `~/.claude/projects`.
|
|
69
|
-
*/
|
|
70
|
-
export declare const sandboxSessionStore: (cwd: string, handle: Pick<BindMountSandboxHandle, "copyFileIn" | "copyFileOut" | "exec">, projectsDir: string) => SessionStore;
|
|
71
|
-
/**
|
|
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.
|
|
108
|
-
*/
|
|
109
|
-
export declare const transferCodexSession: (from: LocatableSessionStore, to: LocatableSessionStore, id: string) => Promise<void>;
|
|
110
|
-
//# sourceMappingURL=SessionStore.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|