@ai-hero/sandcastle 0.4.7 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +258 -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/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 +22 -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 +14 -2
- package/dist/Orchestrator.d.ts.map +1 -1
- package/dist/Orchestrator.js +56 -12
- 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/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 +13 -11
- package/dist/SandboxFactory.d.ts.map +1 -1
- package/dist/SandboxFactory.js +59 -41
- 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 +88 -18
- package/dist/SandboxLifecycle.js.map +1 -1
- package/dist/SandboxProvider.d.ts +11 -7
- package/dist/SandboxProvider.d.ts.map +1 -1
- package/dist/SandboxProvider.js.map +1 -1
- package/dist/SessionStore.d.ts +50 -0
- package/dist/SessionStore.d.ts.map +1 -0
- package/dist/SessionStore.js +120 -0
- package/dist/SessionStore.js.map +1 -0
- 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 +25 -10
- package/dist/createSandbox.d.ts.map +1 -1
- package/dist/createSandbox.js +253 -133
- 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 +318 -0
- package/dist/createWorktree.js.map +1 -0
- package/dist/errors.d.ts +110 -6
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +41 -3
- 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 +2 -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 +63 -46
- package/dist/interactive.js.map +1 -1
- package/dist/run.d.ts +10 -10
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +23 -6
- 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 +35 -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 +47 -5
- 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/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 +3 -7
- 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 +29 -63
- package/dist/templates/parallel-planner-with-review/merge-prompt.md +5 -1
- package/dist/templates/sequential-reviewer/main.mts +4 -4
- package/dist/templates/simple-loop/main.mts +9 -7
- 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
package/dist/interactive.js
CHANGED
|
@@ -5,11 +5,11 @@ import { Effect } from "effect";
|
|
|
5
5
|
import { ClackDisplay, Display } from "./Display.js";
|
|
6
6
|
import { preprocessPrompt } from "./PromptPreprocessor.js";
|
|
7
7
|
import { resolvePrompt } from "./PromptResolver.js";
|
|
8
|
-
import { makeSandboxLayerFromHandle, resolveGitMounts,
|
|
9
|
-
import { withSandboxLifecycle } from "./SandboxLifecycle.js";
|
|
8
|
+
import { makeSandboxLayerFromHandle, resolveGitMounts, SANDBOX_REPO_DIR, } from "./SandboxFactory.js";
|
|
9
|
+
import { withSandboxLifecycle, runHostHooks, } from "./SandboxLifecycle.js";
|
|
10
10
|
import { resolveEnv } from "./EnvResolver.js";
|
|
11
11
|
import { mergeProviderEnv } from "./mergeProviderEnv.js";
|
|
12
|
-
import {
|
|
12
|
+
import { copyToWorktree } from "./CopyToWorktree.js";
|
|
13
13
|
import { startSandbox } from "./startSandbox.js";
|
|
14
14
|
import { syncOut } from "./syncOut.js";
|
|
15
15
|
import * as WorktreeManager from "./WorktreeManager.js";
|
|
@@ -39,11 +39,11 @@ export const interactive = async (options) => {
|
|
|
39
39
|
if (branchStrategy.type === "head" && resolvedSandbox.tag === "isolated") {
|
|
40
40
|
throw new Error("head branch strategy is not supported with isolated providers");
|
|
41
41
|
}
|
|
42
|
-
// Validate:
|
|
42
|
+
// Validate: copyToWorktree is incompatible with head strategy
|
|
43
43
|
if (branchStrategy.type === "head" &&
|
|
44
|
-
options.
|
|
45
|
-
options.
|
|
46
|
-
throw new Error("
|
|
44
|
+
options.copyToWorktree &&
|
|
45
|
+
options.copyToWorktree.length > 0) {
|
|
46
|
+
throw new Error("copyToWorktree is not supported with head branch strategy. " +
|
|
47
47
|
"In head mode the host working directory is bind-mounted directly.");
|
|
48
48
|
}
|
|
49
49
|
// Validate buildInteractiveArgs is available
|
|
@@ -56,8 +56,11 @@ export const interactive = async (options) => {
|
|
|
56
56
|
const sandboxProvider = resolvedSandbox;
|
|
57
57
|
const inner = Effect.gen(function* () {
|
|
58
58
|
const d = yield* Display;
|
|
59
|
-
// 1. Resolve prompt (from string or file)
|
|
60
|
-
const
|
|
59
|
+
// 1. Resolve prompt (from string or file), or skip if neither provided
|
|
60
|
+
const hasPromptSource = prompt !== undefined || promptFile !== undefined;
|
|
61
|
+
const rawPrompt = hasPromptSource
|
|
62
|
+
? yield* resolvePrompt({ prompt, promptFile })
|
|
63
|
+
: "";
|
|
61
64
|
// 2. Resolve env vars
|
|
62
65
|
const resolvedEnv = yield* resolveEnv(hostRepoDir);
|
|
63
66
|
const env = mergeProviderEnv({
|
|
@@ -71,34 +74,37 @@ export const interactive = async (options) => {
|
|
|
71
74
|
const resolvedBranch = branchStrategy.type === "head"
|
|
72
75
|
? currentHostBranch
|
|
73
76
|
: (branch ?? generateTempBranchName(options.name));
|
|
74
|
-
// 4. Validate prompt args and collect missing ones interactively
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
77
|
+
// 4. Validate prompt args and collect missing ones interactively (skip when no prompt)
|
|
78
|
+
let substitutedPrompt = rawPrompt;
|
|
79
|
+
if (hasPromptSource) {
|
|
80
|
+
const userArgs = options.promptArgs ?? {};
|
|
81
|
+
yield* validateNoBuiltInArgOverride(userArgs);
|
|
82
|
+
// Scan for missing keys and prompt the user for each one
|
|
83
|
+
const missingKeys = findMissingPromptArgKeys(rawPrompt, userArgs);
|
|
84
|
+
const collectedArgs = {};
|
|
85
|
+
for (const key of missingKeys) {
|
|
86
|
+
const value = yield* Effect.promise(() => clack.text({
|
|
87
|
+
message: `Enter value for {{${key}}}`,
|
|
88
|
+
validate: (v) => {
|
|
89
|
+
if (!v)
|
|
90
|
+
return `A value is required for {{${key}}}`;
|
|
91
|
+
},
|
|
92
|
+
}));
|
|
93
|
+
if (clack.isCancel(value)) {
|
|
94
|
+
clack.cancel("Prompt arg collection cancelled.");
|
|
95
|
+
return yield* Effect.fail(new Error("User cancelled prompt arg collection"));
|
|
96
|
+
}
|
|
97
|
+
collectedArgs[key] = value;
|
|
91
98
|
}
|
|
92
|
-
|
|
99
|
+
const mergedUserArgs = { ...userArgs, ...collectedArgs };
|
|
100
|
+
const effectiveArgs = {
|
|
101
|
+
SOURCE_BRANCH: resolvedBranch,
|
|
102
|
+
TARGET_BRANCH: currentHostBranch,
|
|
103
|
+
...mergedUserArgs,
|
|
104
|
+
};
|
|
105
|
+
const builtInArgKeysSet = new Set(BUILT_IN_PROMPT_ARG_KEYS);
|
|
106
|
+
substitutedPrompt = yield* substitutePromptArgs(rawPrompt, effectiveArgs, builtInArgKeysSet);
|
|
93
107
|
}
|
|
94
|
-
const mergedUserArgs = { ...userArgs, ...collectedArgs };
|
|
95
|
-
const effectiveArgs = {
|
|
96
|
-
SOURCE_BRANCH: resolvedBranch,
|
|
97
|
-
TARGET_BRANCH: currentHostBranch,
|
|
98
|
-
...mergedUserArgs,
|
|
99
|
-
};
|
|
100
|
-
const builtInArgKeysSet = new Set(BUILT_IN_PROMPT_ARG_KEYS);
|
|
101
|
-
const substitutedPrompt = yield* substitutePromptArgs(rawPrompt, effectiveArgs, builtInArgKeysSet);
|
|
102
108
|
// In head mode, pass the host branch so SandboxLifecycle skips the merge step.
|
|
103
109
|
const lifecycleBranch = isHeadMode ? currentHostBranch : branch;
|
|
104
110
|
// Display intro and summary
|
|
@@ -117,18 +123,26 @@ export const interactive = async (options) => {
|
|
|
117
123
|
// Copy files to worktree (bind-mount and no-sandbox, non-head)
|
|
118
124
|
if ((sandboxProvider.tag === "bind-mount" ||
|
|
119
125
|
sandboxProvider.tag === "none") &&
|
|
120
|
-
options.
|
|
121
|
-
options.
|
|
122
|
-
yield* d.taskLog("Copying files to
|
|
126
|
+
options.copyToWorktree &&
|
|
127
|
+
options.copyToWorktree.length > 0) {
|
|
128
|
+
yield* d.taskLog("Copying files to worktree", () => copyToWorktree(options.copyToWorktree, hostRepoDir, worktreeInfo.path));
|
|
129
|
+
}
|
|
130
|
+
// Run host.onWorktreeReady hooks
|
|
131
|
+
if (hooks?.host?.onWorktreeReady?.length) {
|
|
132
|
+
yield* runHostHooks(hooks.host.onWorktreeReady, worktreeInfo.path);
|
|
123
133
|
}
|
|
124
134
|
}
|
|
135
|
+
else if (hooks?.host?.onWorktreeReady?.length) {
|
|
136
|
+
// Head strategy: cwd is the host repo root
|
|
137
|
+
yield* runHostHooks(hooks.host.onWorktreeReady, hostRepoDir);
|
|
138
|
+
}
|
|
125
139
|
// 6. Start sandbox
|
|
126
140
|
let handle;
|
|
127
141
|
if (sandboxProvider.tag === "none") {
|
|
128
142
|
// No-sandbox: run directly on the host, no container
|
|
129
|
-
const
|
|
143
|
+
const worktreePath = isHeadMode ? hostRepoDir : worktreeInfo.path;
|
|
130
144
|
handle = yield* Effect.promise(() => sandboxProvider.create({
|
|
131
|
-
|
|
145
|
+
worktreePath,
|
|
132
146
|
env: effectiveEnv,
|
|
133
147
|
}));
|
|
134
148
|
}
|
|
@@ -137,7 +151,7 @@ export const interactive = async (options) => {
|
|
|
137
151
|
provider: sandboxProvider,
|
|
138
152
|
hostRepoDir: worktreeInfo.path,
|
|
139
153
|
env: effectiveEnv,
|
|
140
|
-
copyPaths: options.
|
|
154
|
+
copyPaths: options.copyToWorktree,
|
|
141
155
|
}));
|
|
142
156
|
handle = startResult.handle;
|
|
143
157
|
}
|
|
@@ -150,7 +164,7 @@ export const interactive = async (options) => {
|
|
|
150
164
|
env: effectiveEnv,
|
|
151
165
|
worktreeOrRepoPath: isHeadMode ? hostRepoDir : worktreeInfo.path,
|
|
152
166
|
gitMounts,
|
|
153
|
-
|
|
167
|
+
repoDir: SANDBOX_REPO_DIR,
|
|
154
168
|
}));
|
|
155
169
|
handle = startResult.handle;
|
|
156
170
|
}
|
|
@@ -164,20 +178,23 @@ export const interactive = async (options) => {
|
|
|
164
178
|
const interactiveExecFn = handle.interactiveExec.bind(handle);
|
|
165
179
|
// Build sandbox layer and run withSandboxLifecycle
|
|
166
180
|
const sandboxLayer = makeSandboxLayerFromHandle(handle);
|
|
167
|
-
const
|
|
181
|
+
const worktreePath = handle.worktreePath;
|
|
168
182
|
const applyToHost = sandboxProvider.tag === "isolated" && worktreeInfo
|
|
169
183
|
? () => syncOut(worktreeInfo.path, handle)
|
|
170
184
|
: () => Effect.void; // bind-mount and no-sandbox don't need sync
|
|
171
185
|
const lifecycleEffect = withSandboxLifecycle({
|
|
172
186
|
hostRepoDir,
|
|
173
|
-
sandboxRepoDir:
|
|
187
|
+
sandboxRepoDir: worktreePath,
|
|
174
188
|
hooks,
|
|
175
189
|
branch: lifecycleBranch,
|
|
176
190
|
hostWorktreePath: isHeadMode ? hostRepoDir : worktreeInfo?.path,
|
|
177
191
|
applyToHost,
|
|
178
192
|
}, (ctx) => Effect.gen(function* () {
|
|
179
193
|
// Preprocess prompt (expand !`command` shell expressions inside sandbox)
|
|
180
|
-
|
|
194
|
+
// Skip when no prompt source was provided
|
|
195
|
+
const fullPrompt = hasPromptSource
|
|
196
|
+
? yield* preprocessPrompt(substitutedPrompt, ctx.sandbox, ctx.sandboxRepoDir)
|
|
197
|
+
: "";
|
|
181
198
|
// Build interactive args and run the session
|
|
182
199
|
const interactiveArgs = provider.buildInteractiveArgs({
|
|
183
200
|
prompt: fullPrompt,
|
|
@@ -187,7 +204,7 @@ export const interactive = async (options) => {
|
|
|
187
204
|
stdin: process.stdin,
|
|
188
205
|
stdout: process.stdout,
|
|
189
206
|
stderr: process.stderr,
|
|
190
|
-
cwd:
|
|
207
|
+
cwd: worktreePath,
|
|
191
208
|
}));
|
|
192
209
|
return result.exitCode;
|
|
193
210
|
}));
|
package/dist/interactive.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../src/interactive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../src/interactive.ts"],"names":[],"mappings":"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"}
|
package/dist/run.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { AgentProvider } from "./AgentProvider.js";
|
|
2
2
|
import { type Severity } from "./Display.js";
|
|
3
|
+
import { type IterationResult } from "./Orchestrator.js";
|
|
3
4
|
import type { SandboxProvider, BranchStrategy } from "./SandboxProvider.js";
|
|
5
|
+
import type { SandboxHooks } from "./SandboxLifecycle.js";
|
|
4
6
|
import { type PromptArgs } from "./PromptArgumentSubstitution.js";
|
|
5
7
|
/** Default maximum number of iterations for a run. */
|
|
6
8
|
export declare const DEFAULT_MAX_ITERATIONS = 1;
|
|
@@ -72,13 +74,8 @@ export interface RunOptions {
|
|
|
72
74
|
readonly promptFile?: string;
|
|
73
75
|
/** Maximum iterations to run (default: 1) */
|
|
74
76
|
readonly maxIterations?: number;
|
|
75
|
-
/**
|
|
76
|
-
readonly hooks?:
|
|
77
|
-
readonly onSandboxReady?: ReadonlyArray<{
|
|
78
|
-
command: string;
|
|
79
|
-
sudo?: boolean;
|
|
80
|
-
}>;
|
|
81
|
-
};
|
|
77
|
+
/** Lifecycle hooks grouped by execution location (host or sandbox). */
|
|
78
|
+
readonly hooks?: SandboxHooks;
|
|
82
79
|
/** Key-value map for {{KEY}} placeholder substitution in prompts */
|
|
83
80
|
readonly promptArgs?: PromptArgs;
|
|
84
81
|
/** Logging mode (default: { type: 'file' } with auto-generated path under .sandcastle/logs/) */
|
|
@@ -90,16 +87,19 @@ export interface RunOptions {
|
|
|
90
87
|
/** Optional name for the run, shown as a prefix in log output */
|
|
91
88
|
readonly name?: string;
|
|
92
89
|
/** Paths relative to the host repo root to copy into the worktree before sandbox start. */
|
|
93
|
-
readonly
|
|
90
|
+
readonly copyToWorktree?: string[];
|
|
94
91
|
/** Branch strategy — controls how the agent's changes relate to branches.
|
|
95
92
|
* Defaults to { type: "head" } for bind-mount providers and { type: "merge-to-head" } for isolated providers. */
|
|
96
93
|
readonly branchStrategy?: BranchStrategy;
|
|
97
94
|
/** When false, reuse an existing worktree for the target branch instead of failing on collision. Default: true. */
|
|
98
95
|
readonly throwOnDuplicateWorktree?: boolean;
|
|
96
|
+
/** Resume a prior Claude Code session by ID. The session JSONL must exist on the host. Incompatible with maxIterations > 1. */
|
|
97
|
+
readonly resumeSession?: string;
|
|
99
98
|
}
|
|
99
|
+
export type { IterationResult } from "./Orchestrator.js";
|
|
100
100
|
export interface RunResult {
|
|
101
|
-
/**
|
|
102
|
-
readonly
|
|
101
|
+
/** Per-iteration results (use `iterations.length` for the count). */
|
|
102
|
+
readonly iterations: IterationResult[];
|
|
103
103
|
/** The matched completion signal string, or undefined if no signal fired before the iteration limit. */
|
|
104
104
|
readonly completionSignal?: string;
|
|
105
105
|
/** Combined stdout output from all agent iterations. */
|
package/dist/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
package/dist/run.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { NodeContext, NodeFileSystem } from "@effect/platform-node";
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
2
3
|
import path, { join } from "node:path";
|
|
3
4
|
import { styleText } from "node:util";
|
|
4
5
|
import { Effect, Layer } from "effect";
|
|
@@ -9,6 +10,7 @@ import { WorktreeDockerSandboxFactory, SandboxConfig, } from "./SandboxFactory.j
|
|
|
9
10
|
import { resolveEnv } from "./EnvResolver.js";
|
|
10
11
|
import { formatErrorMessage } from "./ErrorHandler.js";
|
|
11
12
|
import { mergeProviderEnv } from "./mergeProviderEnv.js";
|
|
13
|
+
import { hostSessionStore } from "./SessionStore.js";
|
|
12
14
|
import { generateTempBranchName, getCurrentBranch } from "./WorktreeManager.js";
|
|
13
15
|
import { substitutePromptArgs, validateNoBuiltInArgOverride, BUILT_IN_PROMPT_ARG_KEYS, } from "./PromptArgumentSubstitution.js";
|
|
14
16
|
/** Default maximum number of iterations for a run. */
|
|
@@ -84,16 +86,29 @@ export const run = async (options) => {
|
|
|
84
86
|
if (effectiveBranchType === "head" && options.sandbox.tag === "isolated") {
|
|
85
87
|
throw new Error("head branch strategy is not supported with isolated providers");
|
|
86
88
|
}
|
|
87
|
-
// Validate:
|
|
89
|
+
// Validate: copyToWorktree is incompatible with head strategy
|
|
88
90
|
if (effectiveBranchType === "head" &&
|
|
89
|
-
options.
|
|
90
|
-
options.
|
|
91
|
-
throw new Error("
|
|
91
|
+
options.copyToWorktree &&
|
|
92
|
+
options.copyToWorktree.length > 0) {
|
|
93
|
+
throw new Error("copyToWorktree is not supported with head branch strategy. " +
|
|
92
94
|
"In head mode the host working directory is bind-mounted directly.");
|
|
93
95
|
}
|
|
96
|
+
// Validate: resumeSession + maxIterations > 1 is not allowed
|
|
97
|
+
if (options.resumeSession && maxIterations > 1) {
|
|
98
|
+
throw new Error("resumeSession cannot be combined with maxIterations > 1. " +
|
|
99
|
+
"Resume applies to iteration 1 only; multi-iteration resume semantics are not supported.");
|
|
100
|
+
}
|
|
94
101
|
// Extract explicit branch when in branch mode
|
|
95
102
|
const branch = branchStrategy.type === "branch" ? branchStrategy.branch : undefined;
|
|
96
103
|
const hostRepoDir = process.cwd();
|
|
104
|
+
// Validate: resumeSession file must exist on the host
|
|
105
|
+
if (options.resumeSession) {
|
|
106
|
+
const hStore = hostSessionStore(hostRepoDir);
|
|
107
|
+
const sessionPath = hStore.sessionFilePath(options.resumeSession);
|
|
108
|
+
if (!existsSync(sessionPath)) {
|
|
109
|
+
throw new Error(`resumeSession "${options.resumeSession}" not found: expected session file at ${sessionPath}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
97
112
|
// Resolve prompt
|
|
98
113
|
const rawPrompt = await Effect.runPromise(resolvePrompt({ prompt, promptFile }).pipe(Effect.provide(NodeContext.layer)));
|
|
99
114
|
const agentName = provider.name;
|
|
@@ -133,11 +148,12 @@ export const run = async (options) => {
|
|
|
133
148
|
const factoryLayer = Layer.provide(WorktreeDockerSandboxFactory.layer, Layer.mergeAll(Layer.succeed(SandboxConfig, {
|
|
134
149
|
env,
|
|
135
150
|
hostRepoDir,
|
|
136
|
-
|
|
151
|
+
copyToWorktree: options.copyToWorktree,
|
|
137
152
|
name: options.name,
|
|
138
153
|
sandboxProvider: options.sandbox,
|
|
139
154
|
branchStrategy,
|
|
140
155
|
throwOnDuplicateWorktree: options.throwOnDuplicateWorktree,
|
|
156
|
+
hooks,
|
|
141
157
|
}), NodeFileSystem.layer, displayLayer));
|
|
142
158
|
const runLayer = Layer.merge(factoryLayer, displayLayer);
|
|
143
159
|
const baseEffect = Effect.gen(function* () {
|
|
@@ -177,8 +193,9 @@ export const run = async (options) => {
|
|
|
177
193
|
completionSignal: options.completionSignal,
|
|
178
194
|
idleTimeoutSeconds: options.idleTimeoutSeconds,
|
|
179
195
|
name: options.name,
|
|
196
|
+
resumeSession: options.resumeSession,
|
|
180
197
|
});
|
|
181
|
-
const completion = buildCompletionMessage(orchestrateResult.completionSignal, orchestrateResult.
|
|
198
|
+
const completion = buildCompletionMessage(orchestrateResult.completionSignal, orchestrateResult.iterations.length);
|
|
182
199
|
yield* d.status(completion.message, completion.severity);
|
|
183
200
|
return orchestrateResult;
|
|
184
201
|
});
|
package/dist/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,EACL,YAAY,EACZ,OAAO,EACP,WAAW,GAEZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,11 +34,11 @@ export const daytona = (options) => createIsolatedSandboxProvider({
|
|
|
34
34
|
config.target = options.target;
|
|
35
35
|
const client = new Daytona(config);
|
|
36
36
|
const sandbox = await client.create(options?.create);
|
|
37
|
-
const
|
|
37
|
+
const worktreePath = (await sandbox.getWorkDir()) ??
|
|
38
38
|
(await sandbox.getUserHomeDir()) ??
|
|
39
39
|
"/home/daytona";
|
|
40
40
|
return {
|
|
41
|
-
|
|
41
|
+
worktreePath,
|
|
42
42
|
exec: async (command, opts) => {
|
|
43
43
|
const effectiveCommand = opts?.sudo ? `sudo ${command}` : command;
|
|
44
44
|
if (opts?.onLine) {
|
|
@@ -47,7 +47,7 @@ export const daytona = (options) => createIsolatedSandboxProvider({
|
|
|
47
47
|
await sandbox.process.createSession(sessionId);
|
|
48
48
|
try {
|
|
49
49
|
const execResponse = await sandbox.process.executeSessionCommand(sessionId, {
|
|
50
|
-
command: `cd ${opts?.cwd ??
|
|
50
|
+
command: `cd ${opts?.cwd ?? worktreePath} && ${effectiveCommand}`,
|
|
51
51
|
async: true,
|
|
52
52
|
});
|
|
53
53
|
const cmdId = execResponse.cmdId;
|
|
@@ -80,7 +80,7 @@ export const daytona = (options) => createIsolatedSandboxProvider({
|
|
|
80
80
|
await sandbox.process.deleteSession(sessionId).catch(() => { });
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
|
-
const response = await sandbox.process.executeCommand(effectiveCommand, opts?.cwd ??
|
|
83
|
+
const response = await sandbox.process.executeCommand(effectiveCommand, opts?.cwd ?? worktreePath);
|
|
84
84
|
return {
|
|
85
85
|
stdout: response.result,
|
|
86
86
|
stderr: "",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daytona.js","sourceRoot":"","sources":["../../src/sandboxes/daytona.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EACL,6BAA6B,GAI9B,MAAM,uBAAuB,CAAC;AAyC/B;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAwB,EAA2B,EAAE,CAC3E,6BAA6B,CAAC;IAC5B,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,OAAO,EAAE,GAAG;IACjB,MAAM,EAAE,KAAK,IAAoC,EAAE;QACjD,MAAM,EAAE,OAAO,EAAE,GACf,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAkC,CAAC;QAElE,MAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,IAAI,OAAO,EAAE,MAAM;YAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QACpD,IAAI,OAAO,EAAE,MAAM;YAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QACpD,IAAI,OAAO,EAAE,MAAM;YAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAEpD,MAAM,MAAM,GAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAa,CAAC,CAAC;QAE5D,MAAM,
|
|
1
|
+
{"version":3,"file":"daytona.js","sourceRoot":"","sources":["../../src/sandboxes/daytona.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,15 @@ export interface DockerOptions {
|
|
|
19
19
|
readonly mounts?: readonly MountConfig[];
|
|
20
20
|
/** Environment variables injected by this provider. Merged at launch time with env resolver and agent provider env. */
|
|
21
21
|
readonly env?: Record<string, string>;
|
|
22
|
+
/**
|
|
23
|
+
* Docker network(s) to attach the container to.
|
|
24
|
+
*
|
|
25
|
+
* - `"my-network"` → `--network my-network`
|
|
26
|
+
* - `["net1", "net2"]` → `--network net1 --network net2`
|
|
27
|
+
*
|
|
28
|
+
* When omitted, Docker's default bridge network is used.
|
|
29
|
+
*/
|
|
30
|
+
readonly network?: string | readonly string[];
|
|
22
31
|
}
|
|
23
32
|
/**
|
|
24
33
|
* Create a Docker sandbox provider.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/sandboxes/docker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH,OAAO,EAEL,KAAK,eAAe,EAKrB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/sandboxes/docker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH,OAAO,EAEL,KAAK,eAAe,EAKrB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,uHAAuH;IACvH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;CAC/C;AAED;;;;;GAKG;AACH,eAAO,MAAM,MAAM,0DA0NlB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,6BAI5B,CAAC"}
|
package/dist/sandboxes/docker.js
CHANGED
|
@@ -13,6 +13,8 @@ import { startContainer, removeContainer, chownInContainer, } from "../DockerLif
|
|
|
13
13
|
import { createBindMountSandboxProvider, } from "../SandboxProvider.js";
|
|
14
14
|
import { existsSync } from "node:fs";
|
|
15
15
|
import { homedir } from "node:os";
|
|
16
|
+
import { isAbsolute, resolve } from "node:path";
|
|
17
|
+
import { SANDBOX_REPO_DIR } from "../SandboxFactory.js";
|
|
16
18
|
/**
|
|
17
19
|
* Create a Docker sandbox provider.
|
|
18
20
|
*
|
|
@@ -27,7 +29,7 @@ export const docker = (options) => {
|
|
|
27
29
|
env: options?.env,
|
|
28
30
|
create: async (createOptions) => {
|
|
29
31
|
const containerName = `sandcastle-${randomUUID()}`;
|
|
30
|
-
const
|
|
32
|
+
const worktreePath = createOptions.mounts.find((m) => m.hostPath === createOptions.worktreePath)?.sandboxPath ?? "/home/agent/workspace";
|
|
31
33
|
// Build volume mount strings (internal mounts + user-provided mounts)
|
|
32
34
|
const allMounts = [...createOptions.mounts, ...userMounts];
|
|
33
35
|
const volumeMounts = allMounts.map((m) => {
|
|
@@ -44,8 +46,9 @@ export const docker = (options) => {
|
|
|
44
46
|
HOME: "/home/agent",
|
|
45
47
|
}, {
|
|
46
48
|
volumeMounts,
|
|
47
|
-
workdir:
|
|
49
|
+
workdir: worktreePath,
|
|
48
50
|
user: `${hostUid}:${hostGid}`,
|
|
51
|
+
network: options?.network,
|
|
49
52
|
}).pipe(Effect.andThen(chownInContainer(containerName, `${hostUid}:${hostGid}`, "/home/agent"))));
|
|
50
53
|
// Set up signal handlers for cleanup
|
|
51
54
|
const onExit = () => {
|
|
@@ -66,7 +69,7 @@ export const docker = (options) => {
|
|
|
66
69
|
process.on("SIGINT", onSignal);
|
|
67
70
|
process.on("SIGTERM", onSignal);
|
|
68
71
|
const handle = {
|
|
69
|
-
|
|
72
|
+
worktreePath,
|
|
70
73
|
exec: (command, opts) => {
|
|
71
74
|
const effectiveCommand = opts?.sudo ? `sudo ${command}` : command;
|
|
72
75
|
const args = ["exec"];
|
|
@@ -141,6 +144,26 @@ export const docker = (options) => {
|
|
|
141
144
|
});
|
|
142
145
|
});
|
|
143
146
|
},
|
|
147
|
+
copyFileIn: (hostPath, sandboxPath) => new Promise((resolve, reject) => {
|
|
148
|
+
execFile("docker", ["cp", hostPath, `${containerName}:${sandboxPath}`], (error) => {
|
|
149
|
+
if (error) {
|
|
150
|
+
reject(new Error(`docker cp (in) failed: ${error.message}`));
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
resolve();
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
}),
|
|
157
|
+
copyFileOut: (sandboxPath, hostPath) => new Promise((resolve, reject) => {
|
|
158
|
+
execFile("docker", ["cp", `${containerName}:${sandboxPath}`, hostPath], (error) => {
|
|
159
|
+
if (error) {
|
|
160
|
+
reject(new Error(`docker cp (out) failed: ${error.message}`));
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
resolve();
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
}),
|
|
144
167
|
close: async () => {
|
|
145
168
|
process.removeListener("exit", onExit);
|
|
146
169
|
process.removeListener("SIGINT", onSignal);
|
|
@@ -169,8 +192,15 @@ const expandTilde = (p) => {
|
|
|
169
192
|
return homedir() + p.slice(1);
|
|
170
193
|
return p;
|
|
171
194
|
};
|
|
195
|
+
const resolveHostPath = (hostPath) => {
|
|
196
|
+
const expanded = expandTilde(hostPath);
|
|
197
|
+
return isAbsolute(expanded) ? expanded : resolve(process.cwd(), expanded);
|
|
198
|
+
};
|
|
199
|
+
const resolveSandboxPath = (sandboxPath) => isAbsolute(sandboxPath)
|
|
200
|
+
? sandboxPath
|
|
201
|
+
: resolve(SANDBOX_REPO_DIR, sandboxPath);
|
|
172
202
|
const resolveUserMounts = (mounts) => mounts.map((m) => {
|
|
173
|
-
const resolvedHostPath =
|
|
203
|
+
const resolvedHostPath = resolveHostPath(m.hostPath);
|
|
174
204
|
if (!existsSync(resolvedHostPath)) {
|
|
175
205
|
throw new Error(`Mount hostPath does not exist: ${m.hostPath}` +
|
|
176
206
|
(m.hostPath !== resolvedHostPath
|
|
@@ -179,7 +209,7 @@ const resolveUserMounts = (mounts) => mounts.map((m) => {
|
|
|
179
209
|
}
|
|
180
210
|
return {
|
|
181
211
|
hostPath: resolvedHostPath,
|
|
182
|
-
sandboxPath: m.sandboxPath,
|
|
212
|
+
sandboxPath: resolveSandboxPath(m.sandboxPath),
|
|
183
213
|
...(m.readonly ? { readonly: true } : {}),
|
|
184
214
|
};
|
|
185
215
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/sandboxes/docker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,KAAK,GAEN,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EACL,cAAc,EACd,eAAe,EACf,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,8BAA8B,GAM/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/sandboxes/docker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,KAAK,GAEN,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EACL,cAAc,EACd,eAAe,EACf,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,8BAA8B,GAM/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAyBxD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAuB,EAAmB,EAAE;IACjE,MAAM,mBAAmB,GAAG,OAAO,EAAE,SAAS,CAAC;IAC/C,MAAM,UAAU,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5E,OAAO,8BAA8B,CAAC;QACpC,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,OAAO,EAAE,GAAG;QACjB,MAAM,EAAE,KAAK,EACX,aAAqC,EACJ,EAAE;YACnC,MAAM,aAAa,GAAG,cAAc,UAAU,EAAE,EAAE,CAAC;YAEnD,MAAM,YAAY,GAChB,aAAa,CAAC,MAAM,CAAC,IAAI,CACvB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,aAAa,CAAC,YAAY,CACjD,EAAE,WAAW,IAAI,uBAAuB,CAAC;YAE5C,sEAAsE;YACtE,MAAM,SAAS,GAAG,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC;YAC3D,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACvC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC9C,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1C,CAAC,CAAC,CAAC;YAEH,qBAAqB;YACrB,MAAM,SAAS,GACb,mBAAmB,IAAI,gBAAgB,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YAEtE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,IAAI,CAAC;YAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,IAAI,CAAC;YAE3C,kBAAkB;YAClB,MAAM,MAAM,CAAC,UAAU,CACrB,cAAc,CACZ,aAAa,EACb,SAAS,EACT;gBACE,GAAG,aAAa,CAAC,GAAG;gBACpB,IAAI,EAAE,aAAa;aACpB,EACD;gBACE,YAAY;gBACZ,OAAO,EAAE,YAAY;gBACrB,IAAI,EAAE,GAAG,OAAO,IAAI,OAAO,EAAE;gBAC7B,OAAO,EAAE,OAAO,EAAE,OAAO;aAC1B,CACF,CAAC,IAAI,CACJ,MAAM,CAAC,OAAO,CACZ,gBAAgB,CACd,aAAa,EACb,GAAG,OAAO,IAAI,OAAO,EAAE,EACvB,aAAa,CACd,CACF,CACF,CACF,CAAC;YAEF,qCAAqC;YACrC,MAAM,MAAM,GAAG,GAAG,EAAE;gBAClB,IAAI,CAAC;oBACH,YAAY,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE;wBAClD,KAAK,EAAE,QAAQ;qBAChB,CAAC,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC;oBACP,iBAAiB;gBACnB,CAAC;YACH,CAAC,CAAC;YACF,MAAM,QAAQ,GAAG,GAAG,EAAE;gBACpB,MAAM,EAAE,CAAC;gBACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC;YACF,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAEhC,MAAM,MAAM,GAA2B;gBACrC,YAAY;gBAEZ,IAAI,EAAE,CACJ,OAAe,EACf,IAIC,EACoB,EAAE;oBACvB,MAAM,gBAAgB,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;oBAClE,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;oBACtB,IAAI,IAAI,EAAE,GAAG;wBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;oBACzC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;oBAEvD,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;wBACjB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;wBAC3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;4BACrC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE;gCACjC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;6BAClC,CAAC,CAAC;4BAEH,MAAM,YAAY,GAAa,EAAE,CAAC;4BAClC,MAAM,YAAY,GAAa,EAAE,CAAC;4BAElC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAO,EAAE,CAAC,CAAC;4BACpD,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gCACrB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCACxB,MAAM,CAAC,IAAI,CAAC,CAAC;4BACf,CAAC,CAAC,CAAC;4BAEH,IAAI,CAAC,MAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gCACxC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;4BACtC,CAAC,CAAC,CAAC;4BAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gCACzB,MAAM,CAAC,IAAI,KAAK,CAAC,uBAAuB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;4BAC5D,CAAC,CAAC,CAAC;4BAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gCACxB,OAAO,CAAC;oCACN,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;oCAC/B,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;oCAC7B,QAAQ,EAAE,IAAI,IAAI,CAAC;iCACpB,CAAC,CAAC;4BACL,CAAC,CAAC,CAAC;wBACL,CAAC,CAAC,CAAC;oBACL,CAAC;oBAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;wBACrC,QAAQ,CACN,QAAQ,EACR,IAAI,EACJ,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,EAC/B,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;4BACxB,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gCACtC,MAAM,CAAC,IAAI,KAAK,CAAC,uBAAuB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;4BAC5D,CAAC;iCAAM,CAAC;gCACN,OAAO,CAAC;oCACN,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;oCACzB,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;oCACzB,QAAQ,EAAE,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iCAC3D,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC,CACF,CAAC;oBACJ,CAAC,CAAC,CAAC;gBACL,CAAC;gBAED,eAAe,EAAE,CACf,IAAc,EACd,IAA4B,EACG,EAAE;oBACjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;wBACrC,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,CAAC;wBAC5B,yDAAyD;wBACzD,IACE,OAAO,IAAI,IAAI,CAAC,KAAK;4BACpB,IAAI,CAAC,KAA6B,CAAC,KAAK,EACzC,CAAC;4BACD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACzB,CAAC;6BAAM,CAAC;4BACN,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACxB,CAAC;wBACD,IAAI,IAAI,CAAC,GAAG;4BAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;wBAC9C,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,CAAC;wBAExC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE;4BACvC,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAiB;yBAC9D,CAAC,CAAC;wBAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;4BAChC,MAAM,CAAC,IAAI,KAAK,CAAC,uBAAuB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;wBAC5D,CAAC,CAAC,CAAC;wBAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAmB,EAAE,EAAE;4BACvC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;wBACnC,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC;gBAED,UAAU,EAAE,CAAC,QAAgB,EAAE,WAAmB,EAAiB,EAAE,CACnE,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC9B,QAAQ,CACN,QAAQ,EACR,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,aAAa,IAAI,WAAW,EAAE,CAAC,EACnD,CAAC,KAAK,EAAE,EAAE;wBACR,IAAI,KAAK,EAAE,CAAC;4BACV,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;wBAC/D,CAAC;6BAAM,CAAC;4BACN,OAAO,EAAE,CAAC;wBACZ,CAAC;oBACH,CAAC,CACF,CAAC;gBACJ,CAAC,CAAC;gBAEJ,WAAW,EAAE,CAAC,WAAmB,EAAE,QAAgB,EAAiB,EAAE,CACpE,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC9B,QAAQ,CACN,QAAQ,EACR,CAAC,IAAI,EAAE,GAAG,aAAa,IAAI,WAAW,EAAE,EAAE,QAAQ,CAAC,EACnD,CAAC,KAAK,EAAE,EAAE;wBACR,IAAI,KAAK,EAAE,CAAC;4BACV,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;wBAChE,CAAC;6BAAM,CAAC;4BACN,OAAO,EAAE,CAAC;wBACZ,CAAC;oBACH,CAAC,CACF,CAAC;gBACJ,CAAC,CAAC;gBAEJ,KAAK,EAAE,KAAK,IAAmB,EAAE;oBAC/B,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBACvC,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBAC3C,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;oBAC5C,MAAM,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC;gBAC1D,CAAC;aACF,CAAC;YAEF,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAU,EAAE;IAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC;IACxE,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACtE,OAAO,cAAc,SAAS,EAAE,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,CAAS,EAAU,EAAE;IACxC,IAAI,CAAC,KAAK,GAAG;QAAE,OAAO,OAAO,EAAE,CAAC;IAChC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAU,EAAE;IACnD,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACvC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC5E,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,WAAmB,EAAU,EAAE,CACzD,UAAU,CAAC,WAAW,CAAC;IACrB,CAAC,CAAC,WAAW;IACb,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;AAE7C,MAAM,iBAAiB,GAAG,CACxB,MAA8B,EACwC,EAAE,CACxE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;IACf,MAAM,gBAAgB,GAAG,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAErD,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,kCAAkC,CAAC,CAAC,QAAQ,EAAE;YAC5C,CAAC,CAAC,CAAC,QAAQ,KAAK,gBAAgB;gBAC9B,CAAC,CAAC,iBAAiB,gBAAgB,GAAG;gBACtC,CAAC,CAAC,EAAE,CAAC,CACV,CAAC;IACJ,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,gBAAgB;QAC1B,WAAW,EAAE,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC;QAC9C,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC;AACJ,CAAC,CAAC,CAAC"}
|