@ai-hero/sandcastle 0.4.7 → 0.4.8
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 +152 -27
- package/dist/CopyToWorktree.d.ts +9 -0
- package/dist/CopyToWorktree.d.ts.map +1 -0
- package/dist/{CopyToWorkspace.js → CopyToWorktree.js} +9 -3
- package/dist/CopyToWorktree.js.map +1 -0
- package/dist/DockerLifecycle.d.ts +2 -0
- package/dist/DockerLifecycle.d.ts.map +1 -1
- package/dist/DockerLifecycle.js +7 -0
- package/dist/DockerLifecycle.js.map +1 -1
- package/dist/ErrorHandler.d.ts.map +1 -1
- package/dist/ErrorHandler.js +20 -2
- package/dist/ErrorHandler.js.map +1 -1
- package/dist/InitService.d.ts +6 -1
- package/dist/InitService.d.ts.map +1 -1
- package/dist/InitService.js +90 -56
- package/dist/InitService.js.map +1 -1
- package/dist/MountConfig.d.ts +13 -2
- package/dist/MountConfig.d.ts.map +1 -1
- package/dist/Orchestrator.d.ts +1 -1
- package/dist/Orchestrator.d.ts.map +1 -1
- package/dist/Orchestrator.js +6 -7
- package/dist/Orchestrator.js.map +1 -1
- package/dist/PromptPreprocessor.d.ts +2 -2
- package/dist/PromptPreprocessor.d.ts.map +1 -1
- package/dist/PromptPreprocessor.js +7 -2
- package/dist/PromptPreprocessor.js.map +1 -1
- package/dist/SandboxFactory.d.ts +7 -9
- package/dist/SandboxFactory.d.ts.map +1 -1
- package/dist/SandboxFactory.js +21 -23
- package/dist/SandboxFactory.js.map +1 -1
- package/dist/SandboxLifecycle.d.ts.map +1 -1
- package/dist/SandboxLifecycle.js +33 -9
- package/dist/SandboxLifecycle.js.map +1 -1
- package/dist/SandboxProvider.d.ts +7 -7
- package/dist/SandboxProvider.d.ts.map +1 -1
- package/dist/WorktreeManager.d.ts +3 -3
- package/dist/WorktreeManager.d.ts.map +1 -1
- package/dist/WorktreeManager.js +14 -3
- package/dist/WorktreeManager.js.map +1 -1
- package/dist/createSandbox.d.ts +24 -1
- package/dist/createSandbox.d.ts.map +1 -1
- package/dist/createSandbox.js +227 -131
- package/dist/createSandbox.js.map +1 -1
- package/dist/createWorktree.d.ts +121 -0
- package/dist/createWorktree.d.ts.map +1 -0
- package/dist/createWorktree.js +314 -0
- package/dist/createWorktree.js.map +1 -0
- package/dist/errors.d.ts +101 -6
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +38 -3
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/interactive.d.ts +1 -1
- package/dist/interactive.d.ts.map +1 -1
- package/dist/interactive.js +54 -45
- package/dist/interactive.js.map +1 -1
- package/dist/run.d.ts +1 -1
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +5 -5
- package/dist/run.js.map +1 -1
- package/dist/sandboxes/daytona.js +4 -4
- package/dist/sandboxes/daytona.js.map +1 -1
- package/dist/sandboxes/docker.d.ts +9 -0
- package/dist/sandboxes/docker.d.ts.map +1 -1
- package/dist/sandboxes/docker.js +15 -5
- package/dist/sandboxes/docker.js.map +1 -1
- package/dist/sandboxes/no-sandbox.js +4 -4
- package/dist/sandboxes/no-sandbox.js.map +1 -1
- package/dist/sandboxes/podman.d.ts +9 -0
- package/dist/sandboxes/podman.d.ts.map +1 -1
- package/dist/sandboxes/podman.js +21 -5
- package/dist/sandboxes/podman.js.map +1 -1
- package/dist/sandboxes/test-isolated.js +5 -5
- package/dist/sandboxes/test-isolated.js.map +1 -1
- package/dist/sandboxes/vercel.js +7 -7
- package/dist/sandboxes/vercel.js.map +1 -1
- package/dist/startSandbox.d.ts +7 -6
- package/dist/startSandbox.d.ts.map +1 -1
- package/dist/startSandbox.js +38 -19
- package/dist/startSandbox.js.map +1 -1
- package/dist/syncIn.js +7 -7
- package/dist/syncIn.js.map +1 -1
- package/dist/syncOut.js +6 -6
- package/dist/syncOut.js.map +1 -1
- package/dist/templates/parallel-planner/implement-prompt.md +2 -2
- package/dist/templates/parallel-planner/main.mts +2 -6
- package/dist/templates/parallel-planner/merge-prompt.md +5 -1
- package/dist/templates/parallel-planner-with-review/implement-prompt.md +2 -2
- package/dist/templates/parallel-planner-with-review/main.mts +28 -62
- package/dist/templates/parallel-planner-with-review/merge-prompt.md +5 -1
- package/dist/templates/sequential-reviewer/main.mts +3 -3
- package/dist/templates/simple-loop/main.mts +2 -2
- package/package.json +1 -1
- package/dist/CopyToWorkspace.d.ts +0 -8
- package/dist/CopyToWorkspace.d.ts.map +0 -1
- package/dist/CopyToWorkspace.js.map +0 -1
- package/dist/templates/blank/.env.example +0 -5
- package/dist/templates/parallel-planner/.env.example +0 -5
- package/dist/templates/parallel-planner-with-review/.env.example +0 -5
- package/dist/templates/sequential-reviewer/.env.example +0 -5
- package/dist/templates/simple-loop/.env.example +0 -5
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
import { NodeContext, NodeFileSystem } from "@effect/platform-node";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { Effect, Layer } from "effect";
|
|
4
|
+
import { ClackDisplay, Display, FileDisplay } from "./Display.js";
|
|
5
|
+
import { preprocessPrompt } from "./PromptPreprocessor.js";
|
|
6
|
+
import { resolvePrompt } from "./PromptResolver.js";
|
|
7
|
+
import { SandboxFactory, makeSandboxLayerFromHandle, resolveGitMounts, SANDBOX_REPO_DIR, } from "./SandboxFactory.js";
|
|
8
|
+
import { withSandboxLifecycle } from "./SandboxLifecycle.js";
|
|
9
|
+
import { createSandboxFromWorktree } from "./createSandbox.js";
|
|
10
|
+
import { buildLogFilename, printFileDisplayStartup } from "./run.js";
|
|
11
|
+
import { orchestrate } from "./Orchestrator.js";
|
|
12
|
+
import { resolveEnv } from "./EnvResolver.js";
|
|
13
|
+
import { mergeProviderEnv } from "./mergeProviderEnv.js";
|
|
14
|
+
import { startSandbox } from "./startSandbox.js";
|
|
15
|
+
import { syncOut } from "./syncOut.js";
|
|
16
|
+
import * as WorktreeManager from "./WorktreeManager.js";
|
|
17
|
+
import { copyToWorktree } from "./CopyToWorktree.js";
|
|
18
|
+
import { substitutePromptArgs, validateNoBuiltInArgOverride, BUILT_IN_PROMPT_ARG_KEYS, } from "./PromptArgumentSubstitution.js";
|
|
19
|
+
import { noSandbox } from "./sandboxes/no-sandbox.js";
|
|
20
|
+
/**
|
|
21
|
+
* Creates a git worktree as an independent, first-class worktree.
|
|
22
|
+
* Returns a Worktree handle with close() and [Symbol.asyncDispose]().
|
|
23
|
+
*
|
|
24
|
+
* Only accepts 'branch' and 'merge-to-head' strategies — 'head' is a
|
|
25
|
+
* compile-time type error since head means no worktree.
|
|
26
|
+
*/
|
|
27
|
+
export const createWorktree = async (options) => {
|
|
28
|
+
const hostRepoDir = options._test?.hostRepoDir ?? process.cwd();
|
|
29
|
+
const branch = options.branchStrategy.type === "branch"
|
|
30
|
+
? options.branchStrategy.branch
|
|
31
|
+
: undefined;
|
|
32
|
+
const worktreeInfo = await Effect.gen(function* () {
|
|
33
|
+
yield* WorktreeManager.pruneStale(hostRepoDir).pipe(Effect.catchAll(() => Effect.void));
|
|
34
|
+
const info = yield* WorktreeManager.create(hostRepoDir, { branch });
|
|
35
|
+
if (options.copyToWorktree && options.copyToWorktree.length > 0) {
|
|
36
|
+
yield* copyToWorktree(options.copyToWorktree, hostRepoDir, info.path);
|
|
37
|
+
}
|
|
38
|
+
return info;
|
|
39
|
+
}).pipe(Effect.provide(NodeContext.layer), Effect.runPromise);
|
|
40
|
+
let closed = false;
|
|
41
|
+
const close = async () => {
|
|
42
|
+
if (closed)
|
|
43
|
+
return { preservedWorktreePath: undefined };
|
|
44
|
+
closed = true;
|
|
45
|
+
return Effect.gen(function* () {
|
|
46
|
+
const isDirty = yield* WorktreeManager.hasUncommittedChanges(worktreeInfo.path).pipe(Effect.catchAll(() => Effect.succeed(false)));
|
|
47
|
+
if (isDirty) {
|
|
48
|
+
return { preservedWorktreePath: worktreeInfo.path };
|
|
49
|
+
}
|
|
50
|
+
yield* WorktreeManager.remove(worktreeInfo.path).pipe(Effect.catchAll(() => Effect.void));
|
|
51
|
+
return { preservedWorktreePath: undefined };
|
|
52
|
+
}).pipe(Effect.runPromise);
|
|
53
|
+
};
|
|
54
|
+
const worktreeInteractive = async (opts) => {
|
|
55
|
+
const { prompt, promptFile, hooks, agent: provider } = opts;
|
|
56
|
+
const resolvedSandbox = opts.sandbox ?? noSandbox();
|
|
57
|
+
// Validate buildInteractiveArgs is available
|
|
58
|
+
if (!provider.buildInteractiveArgs) {
|
|
59
|
+
throw new Error(`Agent provider "${provider.name}" does not support buildInteractiveArgs, required for interactive sessions.`);
|
|
60
|
+
}
|
|
61
|
+
const inner = Effect.gen(function* () {
|
|
62
|
+
const d = yield* Display;
|
|
63
|
+
// 1. Resolve prompt (from string or file), or skip if neither provided
|
|
64
|
+
const hasPromptSource = prompt !== undefined || promptFile !== undefined;
|
|
65
|
+
const rawPrompt = hasPromptSource
|
|
66
|
+
? yield* resolvePrompt({ prompt, promptFile })
|
|
67
|
+
: "";
|
|
68
|
+
// 2. Resolve env vars
|
|
69
|
+
const resolvedEnv = yield* resolveEnv(hostRepoDir);
|
|
70
|
+
const env = mergeProviderEnv({
|
|
71
|
+
resolvedEnv,
|
|
72
|
+
agentProviderEnv: provider.env,
|
|
73
|
+
sandboxProviderEnv: resolvedSandbox.env,
|
|
74
|
+
});
|
|
75
|
+
const effectiveEnv = { ...env, ...(opts.env ?? {}) };
|
|
76
|
+
// 3. Prompt args substitution (skip when no prompt)
|
|
77
|
+
let substitutedPrompt = rawPrompt;
|
|
78
|
+
if (hasPromptSource) {
|
|
79
|
+
const userArgs = opts.promptArgs ?? {};
|
|
80
|
+
yield* validateNoBuiltInArgOverride(userArgs);
|
|
81
|
+
const effectiveArgs = {
|
|
82
|
+
SOURCE_BRANCH: worktreeInfo.branch,
|
|
83
|
+
TARGET_BRANCH: worktreeInfo.branch,
|
|
84
|
+
...userArgs,
|
|
85
|
+
};
|
|
86
|
+
const builtInArgKeysSet = new Set(BUILT_IN_PROMPT_ARG_KEYS);
|
|
87
|
+
substitutedPrompt = yield* substitutePromptArgs(rawPrompt, effectiveArgs, builtInArgKeysSet);
|
|
88
|
+
}
|
|
89
|
+
// Display intro
|
|
90
|
+
yield* d.intro(opts.name ?? "sandcastle interactive");
|
|
91
|
+
yield* d.summary("Interactive Session", {
|
|
92
|
+
Agent: opts.name ?? provider.name,
|
|
93
|
+
Sandbox: resolvedSandbox.name,
|
|
94
|
+
Branch: worktreeInfo.branch,
|
|
95
|
+
});
|
|
96
|
+
// 4. Start sandbox
|
|
97
|
+
let handle;
|
|
98
|
+
if (resolvedSandbox.tag === "none") {
|
|
99
|
+
handle = yield* Effect.promise(() => resolvedSandbox.create({
|
|
100
|
+
worktreePath: worktreeInfo.path,
|
|
101
|
+
env: effectiveEnv,
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
104
|
+
else if (resolvedSandbox.tag === "isolated") {
|
|
105
|
+
const startResult = yield* d.taskLog("Starting sandbox", () => startSandbox({
|
|
106
|
+
provider: resolvedSandbox,
|
|
107
|
+
hostRepoDir: worktreeInfo.path,
|
|
108
|
+
env: effectiveEnv,
|
|
109
|
+
}));
|
|
110
|
+
handle = startResult.handle;
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
const gitPath = join(hostRepoDir, ".git");
|
|
114
|
+
const gitMounts = yield* resolveGitMounts(gitPath);
|
|
115
|
+
const startResult = yield* d.taskLog("Starting sandbox", () => startSandbox({
|
|
116
|
+
provider: resolvedSandbox,
|
|
117
|
+
hostRepoDir,
|
|
118
|
+
env: effectiveEnv,
|
|
119
|
+
worktreeOrRepoPath: worktreeInfo.path,
|
|
120
|
+
gitMounts,
|
|
121
|
+
repoDir: SANDBOX_REPO_DIR,
|
|
122
|
+
}));
|
|
123
|
+
handle = startResult.handle;
|
|
124
|
+
}
|
|
125
|
+
// Run lifecycle — worktree owns worktree, so no worktree cleanup here
|
|
126
|
+
return yield* Effect.gen(function* () {
|
|
127
|
+
if (!handle.interactiveExec) {
|
|
128
|
+
throw new Error(`Sandbox provider does not support interactiveExec. ` +
|
|
129
|
+
`The provider must implement the optional interactiveExec method to use interactive().`);
|
|
130
|
+
}
|
|
131
|
+
const interactiveExecFn = handle.interactiveExec.bind(handle);
|
|
132
|
+
const sandboxLayer = makeSandboxLayerFromHandle(handle);
|
|
133
|
+
const worktreePath = handle.worktreePath;
|
|
134
|
+
const applyToHost = resolvedSandbox.tag === "isolated"
|
|
135
|
+
? () => syncOut(worktreeInfo.path, handle)
|
|
136
|
+
: () => Effect.void;
|
|
137
|
+
const lifecycleEffect = withSandboxLifecycle({
|
|
138
|
+
hostRepoDir,
|
|
139
|
+
sandboxRepoDir: worktreePath,
|
|
140
|
+
hooks,
|
|
141
|
+
branch: worktreeInfo.branch,
|
|
142
|
+
hostWorktreePath: worktreeInfo.path,
|
|
143
|
+
applyToHost,
|
|
144
|
+
}, (ctx) => Effect.gen(function* () {
|
|
145
|
+
const fullPrompt = hasPromptSource
|
|
146
|
+
? yield* preprocessPrompt(substitutedPrompt, ctx.sandbox, ctx.sandboxRepoDir)
|
|
147
|
+
: "";
|
|
148
|
+
const interactiveArgs = provider.buildInteractiveArgs({
|
|
149
|
+
prompt: fullPrompt,
|
|
150
|
+
dangerouslySkipPermissions: resolvedSandbox.tag !== "none",
|
|
151
|
+
});
|
|
152
|
+
const result = yield* Effect.promise(() => interactiveExecFn(interactiveArgs, {
|
|
153
|
+
stdin: process.stdin,
|
|
154
|
+
stdout: process.stdout,
|
|
155
|
+
stderr: process.stderr,
|
|
156
|
+
cwd: worktreePath,
|
|
157
|
+
}));
|
|
158
|
+
return result.exitCode;
|
|
159
|
+
}));
|
|
160
|
+
const lifecycleResult = yield* lifecycleEffect.pipe(Effect.provide(sandboxLayer));
|
|
161
|
+
const exitCode = lifecycleResult.result;
|
|
162
|
+
// Summary
|
|
163
|
+
yield* d.summary("Session Complete", {
|
|
164
|
+
Commits: String(lifecycleResult.commits.length),
|
|
165
|
+
Branch: lifecycleResult.branch,
|
|
166
|
+
"Exit code": String(exitCode),
|
|
167
|
+
});
|
|
168
|
+
return {
|
|
169
|
+
commits: lifecycleResult.commits,
|
|
170
|
+
branch: lifecycleResult.branch,
|
|
171
|
+
preservedWorktreePath: undefined,
|
|
172
|
+
exitCode,
|
|
173
|
+
};
|
|
174
|
+
}).pipe(
|
|
175
|
+
// Always close sandbox handle
|
|
176
|
+
Effect.ensuring(Effect.promise(() => handle.close().catch(() => { }))));
|
|
177
|
+
});
|
|
178
|
+
return Effect.runPromise(inner.pipe(Effect.provide(ClackDisplay.layer), Effect.provide(NodeContext.layer), Effect.provide(NodeFileSystem.layer)));
|
|
179
|
+
};
|
|
180
|
+
const worktreeRun = async (opts) => {
|
|
181
|
+
const { prompt, promptFile, hooks, agent: provider } = opts;
|
|
182
|
+
const sandboxProvider = opts.sandbox;
|
|
183
|
+
const maxIterations = opts.maxIterations ?? 1;
|
|
184
|
+
const inner = Effect.gen(function* () {
|
|
185
|
+
// 1. Resolve prompt
|
|
186
|
+
const rawPrompt = yield* resolvePrompt({ prompt, promptFile });
|
|
187
|
+
// 2. Resolve env vars
|
|
188
|
+
const resolvedEnv = yield* resolveEnv(hostRepoDir);
|
|
189
|
+
const env = mergeProviderEnv({
|
|
190
|
+
resolvedEnv,
|
|
191
|
+
agentProviderEnv: provider.env,
|
|
192
|
+
sandboxProviderEnv: sandboxProvider.env,
|
|
193
|
+
});
|
|
194
|
+
const effectiveEnv = { ...env, ...(opts.env ?? {}) };
|
|
195
|
+
// 3. Prompt args substitution
|
|
196
|
+
const userArgs = opts.promptArgs ?? {};
|
|
197
|
+
yield* validateNoBuiltInArgOverride(userArgs);
|
|
198
|
+
const effectiveArgs = {
|
|
199
|
+
SOURCE_BRANCH: worktreeInfo.branch,
|
|
200
|
+
TARGET_BRANCH: worktreeInfo.branch,
|
|
201
|
+
...userArgs,
|
|
202
|
+
};
|
|
203
|
+
const builtInArgKeysSet = new Set(BUILT_IN_PROMPT_ARG_KEYS);
|
|
204
|
+
const resolvedPrompt = yield* substitutePromptArgs(rawPrompt, effectiveArgs, builtInArgKeysSet);
|
|
205
|
+
// 4. Start sandbox
|
|
206
|
+
let handle;
|
|
207
|
+
let sandboxRepoDir;
|
|
208
|
+
if (sandboxProvider.tag === "isolated") {
|
|
209
|
+
const startResult = yield* startSandbox({
|
|
210
|
+
provider: sandboxProvider,
|
|
211
|
+
hostRepoDir: worktreeInfo.path,
|
|
212
|
+
env: effectiveEnv,
|
|
213
|
+
});
|
|
214
|
+
handle = startResult.handle;
|
|
215
|
+
sandboxRepoDir = startResult.worktreePath;
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
const gitPath = join(hostRepoDir, ".git");
|
|
219
|
+
const gitMounts = yield* resolveGitMounts(gitPath);
|
|
220
|
+
const startResult = yield* startSandbox({
|
|
221
|
+
provider: sandboxProvider,
|
|
222
|
+
hostRepoDir,
|
|
223
|
+
env: effectiveEnv,
|
|
224
|
+
worktreeOrRepoPath: worktreeInfo.path,
|
|
225
|
+
gitMounts,
|
|
226
|
+
repoDir: SANDBOX_REPO_DIR,
|
|
227
|
+
});
|
|
228
|
+
handle = startResult.handle;
|
|
229
|
+
sandboxRepoDir = startResult.worktreePath;
|
|
230
|
+
}
|
|
231
|
+
const sandboxLayer = makeSandboxLayerFromHandle(handle);
|
|
232
|
+
const applyToHost = sandboxProvider.tag === "isolated"
|
|
233
|
+
? () => syncOut(worktreeInfo.path, handle)
|
|
234
|
+
: () => Effect.void;
|
|
235
|
+
// 5. Resolve logging
|
|
236
|
+
const resolvedLogging = opts.logging ?? {
|
|
237
|
+
type: "file",
|
|
238
|
+
path: join(hostRepoDir, ".sandcastle", "logs", buildLogFilename(worktreeInfo.branch, undefined, opts.name)),
|
|
239
|
+
};
|
|
240
|
+
const runDisplayLayer = resolvedLogging.type === "file"
|
|
241
|
+
? (() => {
|
|
242
|
+
printFileDisplayStartup({
|
|
243
|
+
logPath: resolvedLogging.path,
|
|
244
|
+
agentName: opts.name,
|
|
245
|
+
branch: worktreeInfo.branch,
|
|
246
|
+
});
|
|
247
|
+
return Layer.provide(FileDisplay.layer(resolvedLogging.path), NodeFileSystem.layer);
|
|
248
|
+
})()
|
|
249
|
+
: ClackDisplay.layer;
|
|
250
|
+
// 6. Build a SandboxFactory that reuses the started sandbox
|
|
251
|
+
const reuseFactoryLayer = Layer.succeed(SandboxFactory, {
|
|
252
|
+
withSandbox: (makeEffect) => makeEffect({
|
|
253
|
+
hostWorktreePath: worktreeInfo.path,
|
|
254
|
+
sandboxRepoPath: sandboxRepoDir,
|
|
255
|
+
applyToHost,
|
|
256
|
+
}).pipe(Effect.provide(sandboxLayer), Effect.map((value) => ({
|
|
257
|
+
value,
|
|
258
|
+
preservedWorktreePath: undefined,
|
|
259
|
+
}))),
|
|
260
|
+
});
|
|
261
|
+
const runLayer = Layer.merge(reuseFactoryLayer, runDisplayLayer);
|
|
262
|
+
// 7. Run orchestration
|
|
263
|
+
const result = yield* Effect.gen(function* () {
|
|
264
|
+
const display = yield* Display;
|
|
265
|
+
yield* display.intro(opts.name ?? "sandcastle");
|
|
266
|
+
return yield* orchestrate({
|
|
267
|
+
hostRepoDir,
|
|
268
|
+
iterations: maxIterations,
|
|
269
|
+
hooks,
|
|
270
|
+
prompt: resolvedPrompt,
|
|
271
|
+
branch: worktreeInfo.branch,
|
|
272
|
+
provider,
|
|
273
|
+
completionSignal: opts.completionSignal,
|
|
274
|
+
idleTimeoutSeconds: opts.idleTimeoutSeconds,
|
|
275
|
+
name: opts.name,
|
|
276
|
+
});
|
|
277
|
+
}).pipe(Effect.provide(runLayer),
|
|
278
|
+
// Always close sandbox handle
|
|
279
|
+
Effect.ensuring(Effect.promise(() => handle.close().catch(() => { }))));
|
|
280
|
+
return {
|
|
281
|
+
iterationsRun: result.iterationsRun,
|
|
282
|
+
completionSignal: result.completionSignal,
|
|
283
|
+
stdout: result.stdout,
|
|
284
|
+
commits: result.commits,
|
|
285
|
+
branch: result.branch,
|
|
286
|
+
logFilePath: resolvedLogging.type === "file" ? resolvedLogging.path : undefined,
|
|
287
|
+
};
|
|
288
|
+
});
|
|
289
|
+
return Effect.runPromise(inner.pipe(Effect.provide(ClackDisplay.layer), Effect.provide(NodeContext.layer), Effect.provide(NodeFileSystem.layer)));
|
|
290
|
+
};
|
|
291
|
+
const worktreeCreateSandbox = async (opts) => {
|
|
292
|
+
return createSandboxFromWorktree({
|
|
293
|
+
branch: worktreeInfo.branch,
|
|
294
|
+
worktreePath: worktreeInfo.path,
|
|
295
|
+
hostRepoDir,
|
|
296
|
+
sandbox: opts.sandbox,
|
|
297
|
+
hooks: opts.hooks,
|
|
298
|
+
copyToWorktree: opts.copyToWorktree,
|
|
299
|
+
_test: opts._test,
|
|
300
|
+
});
|
|
301
|
+
};
|
|
302
|
+
return {
|
|
303
|
+
branch: worktreeInfo.branch,
|
|
304
|
+
worktreePath: worktreeInfo.path,
|
|
305
|
+
run: worktreeRun,
|
|
306
|
+
interactive: worktreeInteractive,
|
|
307
|
+
createSandbox: worktreeCreateSandbox,
|
|
308
|
+
close,
|
|
309
|
+
async [Symbol.asyncDispose]() {
|
|
310
|
+
await close();
|
|
311
|
+
},
|
|
312
|
+
};
|
|
313
|
+
};
|
|
314
|
+
//# sourceMappingURL=createWorktree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createWorktree.js","sourceRoot":"","sources":["../src/createWorktree.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
1
2
|
declare const ExecError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
2
3
|
readonly _tag: "ExecError";
|
|
3
4
|
} & Readonly<A>;
|
|
@@ -90,18 +91,112 @@ export declare class InitError extends InitError_base<{
|
|
|
90
91
|
readonly message: string;
|
|
91
92
|
}> {
|
|
92
93
|
}
|
|
93
|
-
declare const
|
|
94
|
-
readonly _tag: "
|
|
94
|
+
declare const AgentIdleTimeoutError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
95
|
+
readonly _tag: "AgentIdleTimeoutError";
|
|
95
96
|
} & Readonly<A>;
|
|
96
|
-
/** Run exceeded the configured idle timeout */
|
|
97
|
-
export declare class
|
|
97
|
+
/** Run exceeded the configured agent idle timeout */
|
|
98
|
+
export declare class AgentIdleTimeoutError extends AgentIdleTimeoutError_base<{
|
|
98
99
|
readonly message: string;
|
|
99
|
-
readonly
|
|
100
|
+
readonly timeoutMs: number;
|
|
100
101
|
/** Host path to the preserved worktree, set when the worktree was kept after failure. */
|
|
101
102
|
readonly preservedWorktreePath?: string;
|
|
102
103
|
}> {
|
|
103
104
|
}
|
|
105
|
+
declare const WorktreeTimeoutError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
106
|
+
readonly _tag: "WorktreeTimeoutError";
|
|
107
|
+
} & Readonly<A>;
|
|
108
|
+
/** Git worktree create or prune timed out */
|
|
109
|
+
export declare class WorktreeTimeoutError extends WorktreeTimeoutError_base<{
|
|
110
|
+
readonly message: string;
|
|
111
|
+
readonly timeoutMs: number;
|
|
112
|
+
readonly path: string;
|
|
113
|
+
readonly operation: "create" | "prune";
|
|
114
|
+
}> {
|
|
115
|
+
}
|
|
116
|
+
declare const ContainerStartTimeoutError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
117
|
+
readonly _tag: "ContainerStartTimeoutError";
|
|
118
|
+
} & Readonly<A>;
|
|
119
|
+
/** Sandbox container start timed out */
|
|
120
|
+
export declare class ContainerStartTimeoutError extends ContainerStartTimeoutError_base<{
|
|
121
|
+
readonly message: string;
|
|
122
|
+
readonly timeoutMs: number;
|
|
123
|
+
}> {
|
|
124
|
+
}
|
|
125
|
+
declare const CopyToWorktreeTimeoutError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
126
|
+
readonly _tag: "CopyToWorktreeTimeoutError";
|
|
127
|
+
} & Readonly<A>;
|
|
128
|
+
/** Copying files to worktree timed out */
|
|
129
|
+
export declare class CopyToWorktreeTimeoutError extends CopyToWorktreeTimeoutError_base<{
|
|
130
|
+
readonly message: string;
|
|
131
|
+
readonly timeoutMs: number;
|
|
132
|
+
readonly paths: string[];
|
|
133
|
+
}> {
|
|
134
|
+
}
|
|
135
|
+
declare const SyncInTimeoutError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
136
|
+
readonly _tag: "SyncInTimeoutError";
|
|
137
|
+
} & Readonly<A>;
|
|
138
|
+
/** Git sync-in for isolated providers timed out */
|
|
139
|
+
export declare class SyncInTimeoutError extends SyncInTimeoutError_base<{
|
|
140
|
+
readonly message: string;
|
|
141
|
+
readonly timeoutMs: number;
|
|
142
|
+
}> {
|
|
143
|
+
}
|
|
144
|
+
declare const HookTimeoutError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
145
|
+
readonly _tag: "HookTimeoutError";
|
|
146
|
+
} & Readonly<A>;
|
|
147
|
+
/** onSandboxReady hook command timed out */
|
|
148
|
+
export declare class HookTimeoutError extends HookTimeoutError_base<{
|
|
149
|
+
readonly message: string;
|
|
150
|
+
readonly timeoutMs: number;
|
|
151
|
+
readonly command: string;
|
|
152
|
+
}> {
|
|
153
|
+
}
|
|
154
|
+
declare const GitSetupTimeoutError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
155
|
+
readonly _tag: "GitSetupTimeoutError";
|
|
156
|
+
} & Readonly<A>;
|
|
157
|
+
/** Git config setup command timed out */
|
|
158
|
+
export declare class GitSetupTimeoutError extends GitSetupTimeoutError_base<{
|
|
159
|
+
readonly message: string;
|
|
160
|
+
readonly timeoutMs: number;
|
|
161
|
+
readonly command: string;
|
|
162
|
+
}> {
|
|
163
|
+
}
|
|
164
|
+
declare const PromptExpansionTimeoutError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
165
|
+
readonly _tag: "PromptExpansionTimeoutError";
|
|
166
|
+
} & Readonly<A>;
|
|
167
|
+
/** Prompt shell expression expansion timed out */
|
|
168
|
+
export declare class PromptExpansionTimeoutError extends PromptExpansionTimeoutError_base<{
|
|
169
|
+
readonly message: string;
|
|
170
|
+
readonly timeoutMs: number;
|
|
171
|
+
readonly expression: string;
|
|
172
|
+
}> {
|
|
173
|
+
}
|
|
174
|
+
declare const CommitCollectionTimeoutError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
175
|
+
readonly _tag: "CommitCollectionTimeoutError";
|
|
176
|
+
} & Readonly<A>;
|
|
177
|
+
/** Commit collection timed out */
|
|
178
|
+
export declare class CommitCollectionTimeoutError extends CommitCollectionTimeoutError_base<{
|
|
179
|
+
readonly message: string;
|
|
180
|
+
readonly timeoutMs: number;
|
|
181
|
+
}> {
|
|
182
|
+
}
|
|
183
|
+
declare const MergeToHostTimeoutError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
184
|
+
readonly _tag: "MergeToHostTimeoutError";
|
|
185
|
+
} & Readonly<A>;
|
|
186
|
+
/** Merge-to-host branch timed out */
|
|
187
|
+
export declare class MergeToHostTimeoutError extends MergeToHostTimeoutError_base<{
|
|
188
|
+
readonly message: string;
|
|
189
|
+
readonly timeoutMs: number;
|
|
190
|
+
readonly sourceBranch: string;
|
|
191
|
+
readonly targetBranch: string;
|
|
192
|
+
}> {
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Wrap an effect with a timeout that fails with a specific error on expiry.
|
|
196
|
+
* Uses `Effect.timeoutFail` under the hood.
|
|
197
|
+
*/
|
|
198
|
+
export declare const withTimeout: <E>(timeoutMs: number, onTimeout: () => E) => <A, E2, R>(effect: Effect.Effect<A, E2, R>) => Effect.Effect<A, E | E2, R>;
|
|
104
199
|
/** Union of all sandbox-related errors */
|
|
105
|
-
export type SandboxError = ExecError | ExecHostError | CopyError | DockerError | PodmanError | SyncError | WorktreeError | PromptError | AgentError | ConfigDirError | InitError |
|
|
200
|
+
export type SandboxError = ExecError | ExecHostError | CopyError | DockerError | PodmanError | SyncError | WorktreeError | PromptError | AgentError | ConfigDirError | InitError | AgentIdleTimeoutError | WorktreeTimeoutError | ContainerStartTimeoutError | CopyToWorktreeTimeoutError | SyncInTimeoutError | HookTimeoutError | GitSetupTimeoutError | PromptExpansionTimeoutError | CommitCollectionTimeoutError | MergeToHostTimeoutError;
|
|
106
201
|
export {};
|
|
107
202
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Data } from "effect";
|
|
1
|
+
import { Data, Duration, Effect } from "effect";
|
|
2
2
|
/** Command execution failed in the sandbox */
|
|
3
3
|
export class ExecError extends Data.TaggedError("ExecError") {
|
|
4
4
|
}
|
|
@@ -32,7 +32,42 @@ export class ConfigDirError extends Data.TaggedError("ConfigDirError") {
|
|
|
32
32
|
/** Initialization or setup operation failed */
|
|
33
33
|
export class InitError extends Data.TaggedError("InitError") {
|
|
34
34
|
}
|
|
35
|
-
/** Run exceeded the configured idle timeout */
|
|
36
|
-
export class
|
|
35
|
+
/** Run exceeded the configured agent idle timeout */
|
|
36
|
+
export class AgentIdleTimeoutError extends Data.TaggedError("AgentIdleTimeoutError") {
|
|
37
37
|
}
|
|
38
|
+
/** Git worktree create or prune timed out */
|
|
39
|
+
export class WorktreeTimeoutError extends Data.TaggedError("WorktreeTimeoutError") {
|
|
40
|
+
}
|
|
41
|
+
/** Sandbox container start timed out */
|
|
42
|
+
export class ContainerStartTimeoutError extends Data.TaggedError("ContainerStartTimeoutError") {
|
|
43
|
+
}
|
|
44
|
+
/** Copying files to worktree timed out */
|
|
45
|
+
export class CopyToWorktreeTimeoutError extends Data.TaggedError("CopyToWorktreeTimeoutError") {
|
|
46
|
+
}
|
|
47
|
+
/** Git sync-in for isolated providers timed out */
|
|
48
|
+
export class SyncInTimeoutError extends Data.TaggedError("SyncInTimeoutError") {
|
|
49
|
+
}
|
|
50
|
+
/** onSandboxReady hook command timed out */
|
|
51
|
+
export class HookTimeoutError extends Data.TaggedError("HookTimeoutError") {
|
|
52
|
+
}
|
|
53
|
+
/** Git config setup command timed out */
|
|
54
|
+
export class GitSetupTimeoutError extends Data.TaggedError("GitSetupTimeoutError") {
|
|
55
|
+
}
|
|
56
|
+
/** Prompt shell expression expansion timed out */
|
|
57
|
+
export class PromptExpansionTimeoutError extends Data.TaggedError("PromptExpansionTimeoutError") {
|
|
58
|
+
}
|
|
59
|
+
/** Commit collection timed out */
|
|
60
|
+
export class CommitCollectionTimeoutError extends Data.TaggedError("CommitCollectionTimeoutError") {
|
|
61
|
+
}
|
|
62
|
+
/** Merge-to-host branch timed out */
|
|
63
|
+
export class MergeToHostTimeoutError extends Data.TaggedError("MergeToHostTimeoutError") {
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Wrap an effect with a timeout that fails with a specific error on expiry.
|
|
67
|
+
* Uses `Effect.timeoutFail` under the hood.
|
|
68
|
+
*/
|
|
69
|
+
export const withTimeout = (timeoutMs, onTimeout) => (effect) => effect.pipe(Effect.timeoutFail({
|
|
70
|
+
duration: Duration.millis(timeoutMs),
|
|
71
|
+
onTimeout,
|
|
72
|
+
}));
|
|
38
73
|
//# sourceMappingURL=errors.js.map
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhD,8CAA8C;AAC9C,MAAM,OAAO,SAAU,SAAQ,IAAI,CAAC,WAAW,CAAC,WAAW,CAGzD;CAAG;AAEL,2CAA2C;AAC3C,MAAM,OAAO,aAAc,SAAQ,IAAI,CAAC,WAAW,CAAC,eAAe,CAGjE;CAAG;AAEL,gDAAgD;AAChD,MAAM,OAAO,SAAU,SAAQ,IAAI,CAAC,WAAW,CAAC,WAAW,CAEzD;CAAG;AAEL,6CAA6C;AAC7C,MAAM,OAAO,WAAY,SAAQ,IAAI,CAAC,WAAW,CAAC,aAAa,CAE7D;CAAG;AAEL,6CAA6C;AAC7C,MAAM,OAAO,WAAY,SAAQ,IAAI,CAAC,WAAW,CAAC,aAAa,CAE7D;CAAG;AAEL,+CAA+C;AAC/C,MAAM,OAAO,SAAU,SAAQ,IAAI,CAAC,WAAW,CAAC,WAAW,CAEzD;CAAG;AAEL,oCAAoC;AACpC,MAAM,OAAO,aAAc,SAAQ,IAAI,CAAC,WAAW,CAAC,eAAe,CAEjE;CAAG;AAEL,gDAAgD;AAChD,MAAM,OAAO,WAAY,SAAQ,IAAI,CAAC,WAAW,CAAC,aAAa,CAE7D;CAAG;AAEL,8BAA8B;AAC9B,MAAM,OAAO,UAAW,SAAQ,IAAI,CAAC,WAAW,CAAC,YAAY,CAI3D;CAAG;AAEL,4CAA4C;AAC5C,MAAM,OAAO,cAAe,SAAQ,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAEnE;CAAG;AAEL,+CAA+C;AAC/C,MAAM,OAAO,SAAU,SAAQ,IAAI,CAAC,WAAW,CAAC,WAAW,CAEzD;CAAG;AAEL,qDAAqD;AACrD,MAAM,OAAO,qBAAsB,SAAQ,IAAI,CAAC,WAAW,CACzD,uBAAuB,CAMvB;CAAG;AAEL,6CAA6C;AAC7C,MAAM,OAAO,oBAAqB,SAAQ,IAAI,CAAC,WAAW,CACxD,sBAAsB,CAMtB;CAAG;AAEL,wCAAwC;AACxC,MAAM,OAAO,0BAA2B,SAAQ,IAAI,CAAC,WAAW,CAC9D,4BAA4B,CAI5B;CAAG;AAEL,0CAA0C;AAC1C,MAAM,OAAO,0BAA2B,SAAQ,IAAI,CAAC,WAAW,CAC9D,4BAA4B,CAK5B;CAAG;AAEL,mDAAmD;AACnD,MAAM,OAAO,kBAAmB,SAAQ,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAG3E;CAAG;AAEL,4CAA4C;AAC5C,MAAM,OAAO,gBAAiB,SAAQ,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAIvE;CAAG;AAEL,yCAAyC;AACzC,MAAM,OAAO,oBAAqB,SAAQ,IAAI,CAAC,WAAW,CACxD,sBAAsB,CAKtB;CAAG;AAEL,kDAAkD;AAClD,MAAM,OAAO,2BAA4B,SAAQ,IAAI,CAAC,WAAW,CAC/D,6BAA6B,CAK7B;CAAG;AAEL,kCAAkC;AAClC,MAAM,OAAO,4BAA6B,SAAQ,IAAI,CAAC,WAAW,CAChE,8BAA8B,CAI9B;CAAG;AAEL,qCAAqC;AACrC,MAAM,OAAO,uBAAwB,SAAQ,IAAI,CAAC,WAAW,CAC3D,yBAAyB,CAMzB;CAAG;AAEL;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GACtB,CAAI,SAAiB,EAAE,SAAkB,EAAE,EAAE,CAC7C,CAAW,MAA+B,EAA+B,EAAE,CACzE,MAAM,CAAC,IAAI,CACT,MAAM,CAAC,WAAW,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;IACpC,SAAS;CACV,CAAC,CACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export { interactive } from "./interactive.js";
|
|
|
4
4
|
export type { InteractiveOptions, InteractiveResult } from "./interactive.js";
|
|
5
5
|
export { createSandbox } from "./createSandbox.js";
|
|
6
6
|
export type { CreateSandboxOptions, Sandbox, SandboxRunOptions, SandboxRunResult, SandboxInteractiveOptions, SandboxInteractiveResult, CloseResult, } from "./createSandbox.js";
|
|
7
|
+
export { createWorktree } from "./createWorktree.js";
|
|
8
|
+
export type { CreateWorktreeOptions, Worktree, WorktreeBranchStrategy, WorktreeInteractiveOptions, WorktreeRunOptions, WorktreeRunResult, WorktreeCreateSandboxOptions, } from "./createWorktree.js";
|
|
7
9
|
export type { PromptArgs } from "./PromptArgumentSubstitution.js";
|
|
8
10
|
export type { MountConfig } from "./MountConfig.js";
|
|
9
11
|
export { claudeCode, codex, opencode, pi } from "./AgentProvider.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EACV,oBAAoB,EACpB,OAAO,EACP,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,wBAAwB,EACxB,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACrE,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,SAAS,GACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,sBAAsB,EACtB,UAAU,EACV,sBAAsB,EACtB,8BAA8B,EAC9B,qBAAqB,EACrB,6BAA6B,EAC7B,cAAc,EACd,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EACV,oBAAoB,EACpB,OAAO,EACP,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,wBAAwB,EACxB,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EACV,qBAAqB,EACrB,QAAQ,EACR,sBAAsB,EACtB,0BAA0B,EAC1B,kBAAkB,EAClB,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACrE,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,SAAS,GACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,sBAAsB,EACtB,UAAU,EACV,sBAAsB,EACtB,8BAA8B,EAC9B,qBAAqB,EACrB,6BAA6B,EAC7B,cAAc,EACd,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { run } from "./run.js";
|
|
2
2
|
export { interactive } from "./interactive.js";
|
|
3
3
|
export { createSandbox } from "./createSandbox.js";
|
|
4
|
+
export { createWorktree } from "./createWorktree.js";
|
|
4
5
|
export { claudeCode, codex, opencode, pi } from "./AgentProvider.js";
|
|
5
6
|
export { createBindMountSandboxProvider, createIsolatedSandboxProvider, } from "./SandboxProvider.js";
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAUnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAYrD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AASrE,OAAO,EACL,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,sBAAsB,CAAC"}
|
package/dist/interactive.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ export interface InteractiveOptions {
|
|
|
19
19
|
/** Hooks to run during sandbox lifecycle */
|
|
20
20
|
readonly hooks?: SandboxHooks;
|
|
21
21
|
/** Paths relative to the host repo root to copy into the worktree before sandbox start. */
|
|
22
|
-
readonly
|
|
22
|
+
readonly copyToWorktree?: string[];
|
|
23
23
|
/** Key-value map for {{KEY}} placeholder substitution in prompts */
|
|
24
24
|
readonly promptArgs?: PromptArgs;
|
|
25
25
|
/** Environment variables to inject into the sandbox. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../src/interactive.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AASxD,OAAO,EAAwB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EAIf,MAAM,sBAAsB,CAAC;AAQ9B,OAAO,EACL,KAAK,UAAU,EAKhB,MAAM,iCAAiC,CAAC;AAGzC,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,qDAAqD;IACrD,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IACtC,iEAAiE;IACjE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,8DAA8D;IAC9D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,iDAAiD;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;qHACiH;IACjH,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,2FAA2F;IAC3F,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../src/interactive.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AASxD,OAAO,EAAwB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EAIf,MAAM,sBAAsB,CAAC;AAQ9B,OAAO,EACL,KAAK,UAAU,EAKhB,MAAM,iCAAiC,CAAC;AAGzC,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,qDAAqD;IACrD,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IACtC,iEAAiE;IACjE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,8DAA8D;IAC9D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,iDAAiD;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;qHACiH;IACjH,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,2FAA2F;IAC3F,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,oEAAoE;IACpE,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,wDAAwD;IACxD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACpC,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gFAAgF;IAChF,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW,6DA8TvB,CAAC"}
|