@ai-hero/sandcastle 0.4.8 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +145 -69
- package/dist/AgentProvider.d.ts +9 -0
- package/dist/AgentProvider.d.ts.map +1 -1
- package/dist/AgentProvider.js +14 -2
- package/dist/AgentProvider.js.map +1 -1
- package/dist/ErrorHandler.d.ts.map +1 -1
- package/dist/ErrorHandler.js +4 -0
- package/dist/ErrorHandler.js.map +1 -1
- package/dist/Orchestrator.d.ts +13 -2
- package/dist/Orchestrator.d.ts.map +1 -1
- package/dist/Orchestrator.js +53 -7
- package/dist/Orchestrator.js.map +1 -1
- package/dist/PodmanLifecycle.d.ts +10 -0
- package/dist/PodmanLifecycle.d.ts.map +1 -1
- package/dist/PodmanLifecycle.js +22 -0
- package/dist/PodmanLifecycle.js.map +1 -1
- package/dist/SandboxFactory.d.ts +6 -2
- package/dist/SandboxFactory.d.ts.map +1 -1
- package/dist/SandboxFactory.js +41 -21
- package/dist/SandboxFactory.js.map +1 -1
- package/dist/SandboxLifecycle.d.ts +23 -5
- package/dist/SandboxLifecycle.d.ts.map +1 -1
- package/dist/SandboxLifecycle.js +59 -13
- package/dist/SandboxLifecycle.js.map +1 -1
- package/dist/SandboxProvider.d.ts +4 -0
- package/dist/SandboxProvider.d.ts.map +1 -1
- package/dist/SandboxProvider.js.map +1 -1
- package/dist/SessionPaths.d.ts +26 -0
- package/dist/SessionPaths.d.ts.map +1 -0
- package/dist/SessionPaths.js +20 -0
- package/dist/SessionPaths.js.map +1 -0
- package/dist/SessionStore.d.ts +49 -0
- package/dist/SessionStore.d.ts.map +1 -0
- package/dist/SessionStore.js +119 -0
- package/dist/SessionStore.js.map +1 -0
- package/dist/createSandbox.d.ts +16 -16
- package/dist/createSandbox.d.ts.map +1 -1
- package/dist/createSandbox.js +53 -26
- package/dist/createSandbox.js.map +1 -1
- package/dist/createWorktree.d.ts +18 -13
- package/dist/createWorktree.d.ts.map +1 -1
- package/dist/createWorktree.js +12 -6
- package/dist/createWorktree.js.map +1 -1
- package/dist/errors.d.ts +13 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +5 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/interactive.d.ts +8 -0
- package/dist/interactive.d.ts.map +1 -1
- package/dist/interactive.js +11 -2
- package/dist/interactive.js.map +1 -1
- package/dist/resolveCwd.d.ts +24 -0
- package/dist/resolveCwd.d.ts.map +1 -0
- package/dist/resolveCwd.js +32 -0
- package/dist/resolveCwd.js.map +1 -0
- package/dist/run.d.ts +31 -10
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +28 -5
- package/dist/run.js.map +1 -1
- package/dist/sandboxes/docker.d.ts.map +1 -1
- package/dist/sandboxes/docker.js +20 -0
- package/dist/sandboxes/docker.js.map +1 -1
- package/dist/sandboxes/podman.d.ts.map +1 -1
- package/dist/sandboxes/podman.js +26 -0
- package/dist/sandboxes/podman.js.map +1 -1
- package/dist/sandboxes/test-bind-mount.d.ts +17 -0
- package/dist/sandboxes/test-bind-mount.d.ts.map +1 -0
- package/dist/sandboxes/test-bind-mount.js +91 -0
- package/dist/sandboxes/test-bind-mount.js.map +1 -0
- package/dist/templates/parallel-planner/main.mts +1 -1
- package/dist/templates/parallel-planner-with-review/main.mts +1 -1
- package/dist/templates/sequential-reviewer/main.mts +1 -1
- package/dist/templates/simple-loop/main.mts +7 -5
- package/package.json +1 -1
package/dist/SandboxLifecycle.js
CHANGED
|
@@ -20,6 +20,26 @@ const execOkWithGitTimeout = (sandbox, command, options) => execOk(sandbox, comm
|
|
|
20
20
|
command,
|
|
21
21
|
})));
|
|
22
22
|
const execAsync = promisify(exec);
|
|
23
|
+
/**
|
|
24
|
+
* Runs an array of host-side hook commands sequentially.
|
|
25
|
+
* Each command runs on the host with the given cwd.
|
|
26
|
+
* Fails fast on non-zero exit.
|
|
27
|
+
*/
|
|
28
|
+
export const runHostHooks = (hooks, cwd) => Effect.gen(function* () {
|
|
29
|
+
for (const hook of hooks) {
|
|
30
|
+
yield* Effect.tryPromise({
|
|
31
|
+
try: () => execAsync(hook.command, { cwd }),
|
|
32
|
+
catch: (err) => new ExecError({
|
|
33
|
+
command: hook.command,
|
|
34
|
+
message: `Host hook failed: ${hook.command}\n${err instanceof Error ? err.message : String(err)}`,
|
|
35
|
+
}),
|
|
36
|
+
}).pipe(withTimeout(HOOK_TIMEOUT_MS, () => new HookTimeoutError({
|
|
37
|
+
message: `Host hook '${hook.command}' timed out after ${HOOK_TIMEOUT_MS}ms`,
|
|
38
|
+
timeoutMs: HOOK_TIMEOUT_MS,
|
|
39
|
+
command: hook.command,
|
|
40
|
+
})));
|
|
41
|
+
}
|
|
42
|
+
});
|
|
23
43
|
export const withSandboxLifecycle = (options, work) => Effect.gen(function* () {
|
|
24
44
|
const sandbox = yield* Sandbox;
|
|
25
45
|
const display = yield* Display;
|
|
@@ -43,6 +63,9 @@ export const withSandboxLifecycle = (options, work) => Effect.gen(function* () {
|
|
|
43
63
|
]);
|
|
44
64
|
return [nameResult, emailResult];
|
|
45
65
|
});
|
|
66
|
+
// For host-side operations, use hostWorktreePath (the real path on the host)
|
|
67
|
+
// instead of sandboxRepoDir (which may be a sandbox path like /home/agent/workspace).
|
|
68
|
+
const hostSideWorktreePath = hostWorktreePath ?? sandboxRepoDir;
|
|
46
69
|
// Setup: onSandboxReady hooks
|
|
47
70
|
let resolvedBranch = "";
|
|
48
71
|
yield* display.taskLog("Setting up sandbox", (message) => Effect.gen(function* () {
|
|
@@ -60,25 +83,48 @@ export const withSandboxLifecycle = (options, work) => Effect.gen(function* () {
|
|
|
60
83
|
}
|
|
61
84
|
// Repo is bind-mounted — discover branch directly
|
|
62
85
|
resolvedBranch = (yield* execOkWithGitTimeout(sandbox, "git rev-parse --abbrev-ref HEAD", { cwd: sandboxRepoDir })).stdout.trim();
|
|
63
|
-
|
|
64
|
-
|
|
86
|
+
// Run sandbox.onSandboxReady and host.onSandboxReady in parallel
|
|
87
|
+
const sandboxHooks = hooks?.sandbox?.onSandboxReady;
|
|
88
|
+
const hostOnSandboxReady = hooks?.host?.onSandboxReady;
|
|
89
|
+
if (sandboxHooks?.length) {
|
|
90
|
+
for (const hook of sandboxHooks) {
|
|
65
91
|
message(hook.command);
|
|
66
92
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
93
|
+
}
|
|
94
|
+
if (hostOnSandboxReady?.length) {
|
|
95
|
+
for (const hook of hostOnSandboxReady) {
|
|
96
|
+
message(`[host] ${hook.command}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const sandboxHookEffects = (sandboxHooks ?? []).map((hook) => execOk(sandbox, hook.command, {
|
|
100
|
+
cwd: sandboxRepoDir,
|
|
101
|
+
sudo: hook.sudo,
|
|
102
|
+
}).pipe(withTimeout(HOOK_TIMEOUT_MS, () => new HookTimeoutError({
|
|
103
|
+
message: `Hook '${hook.command}' timed out after ${HOOK_TIMEOUT_MS}ms`,
|
|
104
|
+
timeoutMs: HOOK_TIMEOUT_MS,
|
|
105
|
+
command: hook.command,
|
|
106
|
+
}))));
|
|
107
|
+
const hostHookEffects = (hostOnSandboxReady ?? []).map((hook) => Effect.tryPromise({
|
|
108
|
+
try: () => execAsync(hook.command, {
|
|
109
|
+
cwd: hostSideWorktreePath,
|
|
110
|
+
}),
|
|
111
|
+
catch: (err) => new ExecError({
|
|
73
112
|
command: hook.command,
|
|
74
|
-
|
|
113
|
+
message: `Host hook failed: ${hook.command}\n${err instanceof Error ? err.message : String(err)}`,
|
|
114
|
+
}),
|
|
115
|
+
}).pipe(withTimeout(HOOK_TIMEOUT_MS, () => new HookTimeoutError({
|
|
116
|
+
message: `Host hook '${hook.command}' timed out after ${HOOK_TIMEOUT_MS}ms`,
|
|
117
|
+
timeoutMs: HOOK_TIMEOUT_MS,
|
|
118
|
+
command: hook.command,
|
|
119
|
+
}))));
|
|
120
|
+
const allOnSandboxReady = [...sandboxHookEffects, ...hostHookEffects];
|
|
121
|
+
if (allOnSandboxReady.length > 0) {
|
|
122
|
+
yield* Effect.all(allOnSandboxReady, {
|
|
123
|
+
concurrency: "unbounded",
|
|
124
|
+
});
|
|
75
125
|
}
|
|
76
126
|
}));
|
|
77
127
|
const targetBranch = branch ?? resolvedBranch;
|
|
78
|
-
// For host-side git operations in worktree mode, use hostWorktreePath
|
|
79
|
-
// (the real path on the host) instead of sandboxRepoDir (which may be a sandbox path
|
|
80
|
-
// like /home/agent/workspace that doesn't exist on the host).
|
|
81
|
-
const hostSideWorktreePath = hostWorktreePath ?? sandboxRepoDir;
|
|
82
128
|
// Record base HEAD from the host worktree (not the sandbox).
|
|
83
129
|
// For bind-mount providers, these are the same. For isolated providers,
|
|
84
130
|
// the host-side SHA is the correct baseline for git rev-list after applyToHost
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SandboxLifecycle.js","sourceRoot":"","sources":["../src/SandboxLifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EACL,4BAA4B,EAC5B,SAAS,EACT,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,SAAS,EACT,WAAW,GAEZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,OAAO,GAGR,MAAM,qBAAqB,CAAC;AAE7B,MAAM,oBAAoB,GAAG,MAAM,CAAC;AACpC,MAAM,eAAe,GAAG,MAAM,CAAC;AAC/B,MAAM,4BAA4B,GAAG,MAAM,CAAC;AAC5C,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAExC,MAAM,MAAM,GAAG,CACb,OAAuB,EACvB,OAAe,EACf,OAA0C,EACJ,EAAE,CACxC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CACxD,MAAM,CAAC,QAAQ,KAAK,CAAC;IACnB,CAAC,CAAC,MAAM,CAAC,IAAI,CACT,IAAI,SAAS,CAAC;QACZ,OAAO;QACP,OAAO,EAAE,wBAAwB,MAAM,CAAC,QAAQ,MAAM,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE;KAClF,CAAC,CACH;IACH,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAC3B,CAAC;AAEJ,MAAM,oBAAoB,GAAG,CAC3B,OAAuB,EACvB,OAAe,EACf,OAA0B,EACmC,EAAE,CAC/D,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CACpC,WAAW,CACT,oBAAoB,EACpB,GAAG,EAAE,CACH,IAAI,oBAAoB,CAAC;IACvB,OAAO,EAAE,+BAA+B,oBAAoB,OAAO,OAAO,EAAE;IAC5E,SAAS,EAAE,oBAAoB;IAC/B,OAAO;CACR,CAAC,CACL,CACF,CAAC;AAEJ,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"SandboxLifecycle.js","sourceRoot":"","sources":["../src/SandboxLifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,6 +44,10 @@ export interface BindMountSandboxHandle {
|
|
|
44
44
|
interactiveExec?(args: string[], options: InteractiveExecOptions): Promise<{
|
|
45
45
|
exitCode: number;
|
|
46
46
|
}>;
|
|
47
|
+
/** Copy a single file from the host into the sandbox. */
|
|
48
|
+
copyFileIn(hostPath: string, sandboxPath: string): Promise<void>;
|
|
49
|
+
/** Copy a single file from the sandbox to the host. */
|
|
50
|
+
copyFileOut(sandboxPath: string, hostPath: string): Promise<void>;
|
|
47
51
|
/** Tear down the sandbox. */
|
|
48
52
|
close(): Promise<void>;
|
|
49
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SandboxProvider.d.ts","sourceRoot":"","sources":["../src/SandboxProvider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SandboxProvider.d.ts","sourceRoot":"","sources":["../src/SandboxProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SandboxProvider.js","sourceRoot":"","sources":["../src/SandboxProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"SandboxProvider.js","sourceRoot":"","sources":["../src/SandboxProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqQH;;;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,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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Context, Layer } from "effect";
|
|
2
|
+
declare const SessionPaths_base: Context.TagClass<SessionPaths, "SessionPaths", {
|
|
3
|
+
/** Host path to the Claude Code projects directory. */
|
|
4
|
+
readonly hostProjectsDir: string;
|
|
5
|
+
/** Sandbox path to the Claude Code projects directory. */
|
|
6
|
+
readonly sandboxProjectsDir: string;
|
|
7
|
+
}>;
|
|
8
|
+
/**
|
|
9
|
+
* Host- and sandbox-side Claude `projects` directories used by the
|
|
10
|
+
* orchestrator when capturing and resuming agent sessions.
|
|
11
|
+
*/
|
|
12
|
+
export declare class SessionPaths extends SessionPaths_base {
|
|
13
|
+
}
|
|
14
|
+
/** Build a `SessionPaths` layer with explicit host and sandbox project directories. */
|
|
15
|
+
export declare const sessionPathsLayer: (config: {
|
|
16
|
+
readonly hostProjectsDir: string;
|
|
17
|
+
readonly sandboxProjectsDir: string;
|
|
18
|
+
}) => Layer.Layer<SessionPaths, never, never>;
|
|
19
|
+
/**
|
|
20
|
+
* Default `SessionPaths` layer using Claude Code's conventional locations:
|
|
21
|
+
* `~/.claude/projects` on the host and `/home/agent/.claude/projects` in the
|
|
22
|
+
* sandbox.
|
|
23
|
+
*/
|
|
24
|
+
export declare const defaultSessionPathsLayer: Layer.Layer<SessionPaths>;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=SessionPaths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionPaths.d.ts","sourceRoot":"","sources":["../src/SessionPaths.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;;IASpC,uDAAuD;;IAEvD,0DAA0D;;;AAT9D;;;GAGG;AACH,qBAAa,YAAa,SAAQ,iBAQ/B;CAAG;AAEN,uFAAuF;AACvF,eAAO,MAAM,iBAAiB;;;6CAGsC,CAAC;AAErE;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,CAM9D,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { Context, Layer } from "effect";
|
|
3
|
+
/**
|
|
4
|
+
* Host- and sandbox-side Claude `projects` directories used by the
|
|
5
|
+
* orchestrator when capturing and resuming agent sessions.
|
|
6
|
+
*/
|
|
7
|
+
export class SessionPaths extends Context.Tag("SessionPaths")() {
|
|
8
|
+
}
|
|
9
|
+
/** Build a `SessionPaths` layer with explicit host and sandbox project directories. */
|
|
10
|
+
export const sessionPathsLayer = (config) => Layer.succeed(SessionPaths, config);
|
|
11
|
+
/**
|
|
12
|
+
* Default `SessionPaths` layer using Claude Code's conventional locations:
|
|
13
|
+
* `~/.claude/projects` on the host and `/home/agent/.claude/projects` in the
|
|
14
|
+
* sandbox.
|
|
15
|
+
*/
|
|
16
|
+
export const defaultSessionPathsLayer = Layer.sync(SessionPaths, () => ({
|
|
17
|
+
hostProjectsDir: join(process.env.HOME ?? "~", ".claude", "projects"),
|
|
18
|
+
sandboxProjectsDir: join("/home/agent", ".claude", "projects"),
|
|
19
|
+
}));
|
|
20
|
+
//# sourceMappingURL=SessionPaths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionPaths.js","sourceRoot":"","sources":["../src/SessionPaths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAExC;;;GAGG;AACH,MAAM,OAAO,YAAa,SAAQ,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAQ1D;CAAG;AAEN,uFAAuF;AACvF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAGjC,EAA6B,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAErE;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAA8B,KAAK,CAAC,IAAI,CAC3E,YAAY,EACZ,GAAG,EAAE,CAAC,CAAC;IACL,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC;IACrE,kBAAkB,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,UAAU,CAAC;CAC/D,CAAC,CACH,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SessionStore — keyed collection of agent session JSONLs.
|
|
3
|
+
*
|
|
4
|
+
* Provides read/write access to Claude Code session files, with two
|
|
5
|
+
* implementations: host-backed (filesystem) and sandbox-backed (via
|
|
6
|
+
* bind-mount handle file-transfer primitives). The `transferSession`
|
|
7
|
+
* function copies a session between stores, rewriting `cwd` fields in
|
|
8
|
+
* the JSONL entries from source cwd to target cwd.
|
|
9
|
+
*/
|
|
10
|
+
import type { BindMountSandboxHandle } from "./SandboxProvider.js";
|
|
11
|
+
/** A keyed collection of agent session JSONLs associated with a cwd. */
|
|
12
|
+
export interface SessionStore {
|
|
13
|
+
/** The working directory this store is associated with. */
|
|
14
|
+
readonly cwd: string;
|
|
15
|
+
/** Absolute path where a session's JSONL would be stored. */
|
|
16
|
+
sessionFilePath(id: string): string;
|
|
17
|
+
/** Read a session's JSONL content by ID. Throws if not found. */
|
|
18
|
+
readSession(id: string): Promise<string>;
|
|
19
|
+
/** Write a session's JSONL content by ID. Creates or overwrites. */
|
|
20
|
+
writeSession(id: string, content: string): Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Encode a cwd into the Claude Code `~/.claude/projects/<encoded>/` layout.
|
|
24
|
+
* Replaces path separators with hyphens, matching Claude Code's convention.
|
|
25
|
+
*/
|
|
26
|
+
export declare const encodeProjectPath: (cwd: string) => string;
|
|
27
|
+
/**
|
|
28
|
+
* Create a host-backed SessionStore that reads/writes session JSONLs on the
|
|
29
|
+
* host filesystem using Claude Code's `~/.claude/projects/<encoded>/` layout.
|
|
30
|
+
*
|
|
31
|
+
* @param cwd - The host repo directory this store is associated with.
|
|
32
|
+
* @param projectsDir - Override for the projects directory (default: `~/.claude/projects`).
|
|
33
|
+
*/
|
|
34
|
+
export declare const hostSessionStore: (cwd: string, projectsDir?: string | undefined) => SessionStore;
|
|
35
|
+
/**
|
|
36
|
+
* Create a sandbox-backed SessionStore that uses a bind-mount handle's
|
|
37
|
+
* `copyFileIn`/`copyFileOut` to transfer session files.
|
|
38
|
+
*
|
|
39
|
+
* @param cwd - The sandbox-side working directory.
|
|
40
|
+
* @param handle - The bind-mount sandbox handle for file transfer.
|
|
41
|
+
* @param projectsDir - The sandbox-side path to `~/.claude/projects`.
|
|
42
|
+
*/
|
|
43
|
+
export declare const sandboxSessionStore: (cwd: string, handle: Pick<BindMountSandboxHandle, "copyFileIn" | "copyFileOut">, projectsDir: string) => SessionStore;
|
|
44
|
+
/**
|
|
45
|
+
* Transfer a session from one store to another, rewriting `cwd` fields in
|
|
46
|
+
* the JSONL entries from the source store's cwd to the target store's cwd.
|
|
47
|
+
*/
|
|
48
|
+
export declare const transferSession: (from: SessionStore, to: SessionStore, id: string) => Promise<void>;
|
|
49
|
+
//# sourceMappingURL=SessionStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionStore.d.ts","sourceRoot":"","sources":["../src/SessionStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAMnE,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,iEAAiE;IACjE,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,oEAAoE;IACpE,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAMD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,yBAI7B,CAAC;AAMF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,iEAoB5B,CAAC;AAMF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,wHAsC/B,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,eAAe,qEAyB3B,CAAC"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SessionStore — keyed collection of agent session JSONLs.
|
|
3
|
+
*
|
|
4
|
+
* Provides read/write access to Claude Code session files, with two
|
|
5
|
+
* implementations: host-backed (filesystem) and sandbox-backed (via
|
|
6
|
+
* bind-mount handle file-transfer primitives). The `transferSession`
|
|
7
|
+
* function copies a session between stores, rewriting `cwd` fields in
|
|
8
|
+
* the JSONL entries from source cwd to target cwd.
|
|
9
|
+
*/
|
|
10
|
+
import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
|
|
11
|
+
import { tmpdir } from "node:os";
|
|
12
|
+
import { join } from "node:path";
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
// Path encoding
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
/**
|
|
17
|
+
* Encode a cwd into the Claude Code `~/.claude/projects/<encoded>/` layout.
|
|
18
|
+
* Replaces path separators with hyphens, matching Claude Code's convention.
|
|
19
|
+
*/
|
|
20
|
+
export const encodeProjectPath = (cwd) => {
|
|
21
|
+
// Strip trailing slash (but preserve root "/")
|
|
22
|
+
const normalized = cwd.length > 1 ? cwd.replace(/\/+$/, "") : cwd;
|
|
23
|
+
return normalized.replaceAll("/", "-");
|
|
24
|
+
};
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
// Host-backed SessionStore
|
|
27
|
+
// ---------------------------------------------------------------------------
|
|
28
|
+
/**
|
|
29
|
+
* Create a host-backed SessionStore that reads/writes session JSONLs on the
|
|
30
|
+
* host filesystem using Claude Code's `~/.claude/projects/<encoded>/` layout.
|
|
31
|
+
*
|
|
32
|
+
* @param cwd - The host repo directory this store is associated with.
|
|
33
|
+
* @param projectsDir - Override for the projects directory (default: `~/.claude/projects`).
|
|
34
|
+
*/
|
|
35
|
+
export const hostSessionStore = (cwd, projectsDir) => {
|
|
36
|
+
const baseDir = projectsDir ?? join(process.env.HOME ?? "~", ".claude", "projects");
|
|
37
|
+
const encoded = encodeProjectPath(cwd);
|
|
38
|
+
const projectDir = join(baseDir, encoded);
|
|
39
|
+
return {
|
|
40
|
+
cwd,
|
|
41
|
+
sessionFilePath: (id) => join(projectDir, `${id}.jsonl`),
|
|
42
|
+
readSession: async (id) => {
|
|
43
|
+
return await readFile(join(projectDir, `${id}.jsonl`), "utf-8");
|
|
44
|
+
},
|
|
45
|
+
writeSession: async (id, content) => {
|
|
46
|
+
await mkdir(projectDir, { recursive: true });
|
|
47
|
+
await writeFile(join(projectDir, `${id}.jsonl`), content);
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
// ---------------------------------------------------------------------------
|
|
52
|
+
// Sandbox-backed SessionStore
|
|
53
|
+
// ---------------------------------------------------------------------------
|
|
54
|
+
/**
|
|
55
|
+
* Create a sandbox-backed SessionStore that uses a bind-mount handle's
|
|
56
|
+
* `copyFileIn`/`copyFileOut` to transfer session files.
|
|
57
|
+
*
|
|
58
|
+
* @param cwd - The sandbox-side working directory.
|
|
59
|
+
* @param handle - The bind-mount sandbox handle for file transfer.
|
|
60
|
+
* @param projectsDir - The sandbox-side path to `~/.claude/projects`.
|
|
61
|
+
*/
|
|
62
|
+
export const sandboxSessionStore = (cwd, handle, projectsDir) => {
|
|
63
|
+
const encoded = encodeProjectPath(cwd);
|
|
64
|
+
const projectDir = join(projectsDir, encoded);
|
|
65
|
+
return {
|
|
66
|
+
cwd,
|
|
67
|
+
sessionFilePath: (id) => join(projectDir, `${id}.jsonl`),
|
|
68
|
+
readSession: async (id) => {
|
|
69
|
+
const sandboxPath = join(projectDir, `${id}.jsonl`);
|
|
70
|
+
const tmpPath = join(tmpdir(), `sandcastle-session-${id}-${Date.now()}.jsonl`);
|
|
71
|
+
await handle.copyFileOut(sandboxPath, tmpPath);
|
|
72
|
+
try {
|
|
73
|
+
return await readFile(tmpPath, "utf-8");
|
|
74
|
+
}
|
|
75
|
+
finally {
|
|
76
|
+
await rm(tmpPath, { force: true }).catch(() => { });
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
writeSession: async (id, content) => {
|
|
80
|
+
const sandboxPath = join(projectDir, `${id}.jsonl`);
|
|
81
|
+
const tmpPath = join(tmpdir(), `sandcastle-session-${id}-${Date.now()}.jsonl`);
|
|
82
|
+
await writeFile(tmpPath, content);
|
|
83
|
+
try {
|
|
84
|
+
await handle.copyFileIn(tmpPath, sandboxPath);
|
|
85
|
+
}
|
|
86
|
+
finally {
|
|
87
|
+
await rm(tmpPath, { force: true }).catch(() => { });
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
// ---------------------------------------------------------------------------
|
|
93
|
+
// transferSession
|
|
94
|
+
// ---------------------------------------------------------------------------
|
|
95
|
+
/**
|
|
96
|
+
* Transfer a session from one store to another, rewriting `cwd` fields in
|
|
97
|
+
* the JSONL entries from the source store's cwd to the target store's cwd.
|
|
98
|
+
*/
|
|
99
|
+
export const transferSession = async (from, to, id) => {
|
|
100
|
+
const content = await from.readSession(id);
|
|
101
|
+
if (content === "") {
|
|
102
|
+
await to.writeSession(id, "");
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const rewritten = content
|
|
106
|
+
.split("\n")
|
|
107
|
+
.map((line) => {
|
|
108
|
+
if (line === "")
|
|
109
|
+
return line;
|
|
110
|
+
const entry = JSON.parse(line);
|
|
111
|
+
if (typeof entry.cwd === "string" && entry.cwd === from.cwd) {
|
|
112
|
+
entry.cwd = to.cwd;
|
|
113
|
+
}
|
|
114
|
+
return JSON.stringify(entry);
|
|
115
|
+
})
|
|
116
|
+
.join("\n");
|
|
117
|
+
await to.writeSession(id, rewritten);
|
|
118
|
+
};
|
|
119
|
+
//# sourceMappingURL=SessionStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionStore.js","sourceRoot":"","sources":["../src/SessionStore.ts"],"names":[],"mappings":"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"}
|
package/dist/createSandbox.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { Layer } from "effect";
|
|
2
2
|
import type { AgentProvider } from "./AgentProvider.js";
|
|
3
|
+
import { type IterationResult } from "./Orchestrator.js";
|
|
3
4
|
import { type PromptArgs } from "./PromptArgumentSubstitution.js";
|
|
4
5
|
import type { LoggingOption } from "./run.js";
|
|
6
|
+
import { type SandboxHooks } from "./SandboxLifecycle.js";
|
|
5
7
|
import { Sandbox as SandboxTag } from "./SandboxFactory.js";
|
|
6
8
|
import type { SandboxProvider } from "./SandboxProvider.js";
|
|
7
9
|
export interface CreateSandboxOptions {
|
|
@@ -9,20 +11,23 @@ export interface CreateSandboxOptions {
|
|
|
9
11
|
readonly branch: string;
|
|
10
12
|
/** Sandbox provider (e.g. docker({ imageName: "sandcastle:myrepo" })). */
|
|
11
13
|
readonly sandbox: SandboxProvider;
|
|
12
|
-
/**
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Host repo directory. Replaces `process.cwd()` as the anchor for
|
|
16
|
+
* `.sandcastle/worktrees/`, `.sandcastle/.env`, and git operations.
|
|
17
|
+
*
|
|
18
|
+
* - Relative paths are resolved against `process.cwd()`.
|
|
19
|
+
* - Absolute paths are used as-is.
|
|
20
|
+
* - Defaults to `process.cwd()` when omitted.
|
|
21
|
+
*/
|
|
22
|
+
readonly cwd?: string;
|
|
23
|
+
/** Lifecycle hooks grouped by execution location (host or sandbox). */
|
|
24
|
+
readonly hooks?: SandboxHooks;
|
|
19
25
|
/** Paths relative to the host repo root to copy into the worktree at creation time. */
|
|
20
26
|
readonly copyToWorktree?: string[];
|
|
21
27
|
/** When false, reuse an existing worktree instead of failing on collision. Default: true. */
|
|
22
28
|
readonly throwOnDuplicateWorktree?: boolean;
|
|
23
29
|
/** @internal Test-only overrides to bypass the sandbox provider. */
|
|
24
30
|
readonly _test?: {
|
|
25
|
-
readonly hostRepoDir?: string;
|
|
26
31
|
readonly buildSandboxLayer?: (sandboxDir: string) => Layer.Layer<SandboxTag>;
|
|
27
32
|
};
|
|
28
33
|
}
|
|
@@ -47,8 +52,8 @@ export interface SandboxRunOptions {
|
|
|
47
52
|
readonly logging?: LoggingOption;
|
|
48
53
|
}
|
|
49
54
|
export interface SandboxRunResult {
|
|
50
|
-
/**
|
|
51
|
-
readonly
|
|
55
|
+
/** Per-iteration results (use `iterations.length` for the count). */
|
|
56
|
+
readonly iterations: IterationResult[];
|
|
52
57
|
/** The matched completion signal string, or undefined if none fired. */
|
|
53
58
|
readonly completionSignal?: string;
|
|
54
59
|
/** Combined stdout output from all agent iterations. */
|
|
@@ -104,12 +109,7 @@ export interface CreateSandboxFromWorktreeOptions {
|
|
|
104
109
|
readonly worktreePath: string;
|
|
105
110
|
readonly hostRepoDir: string;
|
|
106
111
|
readonly sandbox: SandboxProvider;
|
|
107
|
-
readonly hooks?:
|
|
108
|
-
readonly onSandboxReady?: ReadonlyArray<{
|
|
109
|
-
command: string;
|
|
110
|
-
sudo?: boolean;
|
|
111
|
-
}>;
|
|
112
|
-
};
|
|
112
|
+
readonly hooks?: SandboxHooks;
|
|
113
113
|
readonly copyToWorktree?: string[];
|
|
114
114
|
readonly _test?: {
|
|
115
115
|
readonly buildSandboxLayer?: (sandboxDir: string) => Layer.Layer<SandboxTag>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSandbox.d.ts","sourceRoot":"","sources":["../src/createSandbox.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,KAAK,EAAO,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"createSandbox.d.ts","sourceRoot":"","sources":["../src/createSandbox.ts"],"names":[],"mappings":"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"}
|