@ai-hero/sandcastle 0.3.0 → 0.4.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 +384 -58
- package/dist/AgentProvider.d.ts +22 -12
- package/dist/AgentProvider.d.ts.map +1 -1
- package/dist/AgentProvider.js +46 -47
- package/dist/AgentProvider.js.map +1 -1
- package/dist/DockerLifecycle.d.ts +5 -1
- package/dist/DockerLifecycle.d.ts.map +1 -1
- package/dist/DockerLifecycle.js +8 -1
- package/dist/DockerLifecycle.js.map +1 -1
- package/dist/InitService.d.ts.map +1 -1
- package/dist/InitService.js +57 -6
- package/dist/InitService.js.map +1 -1
- package/dist/MountConfig.d.ts +15 -0
- package/dist/MountConfig.d.ts.map +1 -0
- package/dist/MountConfig.js +7 -0
- package/dist/MountConfig.js.map +1 -0
- package/dist/Orchestrator.d.ts +0 -1
- package/dist/Orchestrator.d.ts.map +1 -1
- package/dist/Orchestrator.js +28 -29
- package/dist/Orchestrator.js.map +1 -1
- package/dist/SandboxFactory.d.ts +21 -17
- package/dist/SandboxFactory.d.ts.map +1 -1
- package/dist/SandboxFactory.js +48 -50
- package/dist/SandboxFactory.js.map +1 -1
- package/dist/SandboxLifecycle.d.ts +1 -1
- package/dist/SandboxLifecycle.d.ts.map +1 -1
- package/dist/SandboxLifecycle.js +2 -2
- package/dist/SandboxLifecycle.js.map +1 -1
- package/dist/SandboxProvider.d.ts +50 -13
- package/dist/SandboxProvider.d.ts.map +1 -1
- package/dist/SandboxProvider.js +2 -0
- package/dist/SandboxProvider.js.map +1 -1
- package/dist/TextDeltaBuffer.d.ts +24 -0
- package/dist/TextDeltaBuffer.d.ts.map +1 -0
- package/dist/TextDeltaBuffer.js +68 -0
- package/dist/TextDeltaBuffer.js.map +1 -0
- package/dist/WorktreeManager.d.ts +2 -0
- package/dist/WorktreeManager.d.ts.map +1 -1
- package/dist/WorktreeManager.js +3 -0
- package/dist/WorktreeManager.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +11 -6
- package/dist/cli.js.map +1 -1
- package/dist/createSandbox.d.ts +6 -5
- package/dist/createSandbox.d.ts.map +1 -1
- package/dist/createSandbox.js +14 -6
- package/dist/createSandbox.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mergeProviderEnv.d.ts +13 -0
- package/dist/mergeProviderEnv.d.ts.map +1 -0
- package/dist/mergeProviderEnv.js +23 -0
- package/dist/mergeProviderEnv.js.map +1 -0
- package/dist/run.d.ts +7 -18
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +35 -22
- package/dist/run.js.map +1 -1
- package/dist/sandboxes/daytona.d.ts +48 -0
- package/dist/sandboxes/daytona.d.ts.map +1 -0
- package/dist/sandboxes/daytona.js +125 -0
- package/dist/sandboxes/daytona.js.map +1 -0
- package/dist/sandboxes/docker.d.ts +10 -0
- package/dist/sandboxes/docker.d.ts.map +1 -1
- package/dist/sandboxes/docker.js +69 -42
- package/dist/sandboxes/docker.js.map +1 -1
- package/dist/sandboxes/podman.d.ts +46 -0
- package/dist/sandboxes/podman.d.ts.map +1 -0
- package/dist/sandboxes/podman.js +195 -0
- package/dist/sandboxes/podman.js.map +1 -0
- package/dist/sandboxes/test-isolated.d.ts +1 -1
- package/dist/sandboxes/test-isolated.d.ts.map +1 -1
- package/dist/sandboxes/test-isolated.js +56 -45
- package/dist/sandboxes/test-isolated.js.map +1 -1
- package/dist/sandboxes/vercel.d.ts +92 -0
- package/dist/sandboxes/vercel.d.ts.map +1 -0
- package/dist/sandboxes/vercel.js +165 -0
- package/dist/sandboxes/vercel.js.map +1 -0
- package/dist/syncIn.d.ts +4 -2
- package/dist/syncIn.d.ts.map +1 -1
- package/dist/syncIn.js +72 -22
- package/dist/syncIn.js.map +1 -1
- package/dist/syncOut.d.ts +4 -2
- package/dist/syncOut.d.ts.map +1 -1
- package/dist/syncOut.js +156 -77
- package/dist/syncOut.js.map +1 -1
- package/dist/templates/blank/.env.example +1 -0
- package/dist/templates/parallel-planner/.env.example +1 -0
- package/dist/templates/parallel-planner/main.mts +3 -3
- package/dist/templates/parallel-planner-with-review/.env.example +5 -0
- package/dist/templates/parallel-planner-with-review/CODING_STANDARDS.md +27 -0
- package/dist/templates/parallel-planner-with-review/implement-prompt.md +62 -0
- package/dist/templates/parallel-planner-with-review/main.mts +249 -0
- package/dist/templates/parallel-planner-with-review/merge-prompt.md +22 -0
- package/dist/templates/parallel-planner-with-review/plan-prompt.md +33 -0
- package/dist/templates/parallel-planner-with-review/review-prompt.md +55 -0
- package/dist/templates/parallel-planner-with-review/template.json +4 -0
- package/dist/templates/sequential-reviewer/.env.example +1 -0
- package/dist/templates/sequential-reviewer/CODING_STANDARDS.md +27 -0
- package/dist/templates/sequential-reviewer/implement-prompt.md +34 -45
- package/dist/templates/sequential-reviewer/main.mts +2 -2
- package/dist/templates/sequential-reviewer/review-prompt.md +1 -1
- package/dist/templates/simple-loop/.env.example +1 -0
- package/dist/testSandbox.d.ts.map +1 -1
- package/dist/testSandbox.js +58 -53
- package/dist/testSandbox.js.map +1 -1
- package/package.json +25 -1
package/dist/SandboxFactory.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Context, Effect, Layer } from "effect";
|
|
2
2
|
import { FileSystem } from "@effect/platform";
|
|
3
3
|
import type { PlatformError } from "@effect/platform/Error";
|
|
4
|
-
import { CopyError, ExecError, WorktreeError, type DockerError } from "./errors.js";
|
|
4
|
+
import { CopyError, ExecError, SyncError, WorktreeError, type DockerError } from "./errors.js";
|
|
5
5
|
import { Display } from "./Display.js";
|
|
6
|
-
import type { SandboxProvider, BindMountSandboxHandle, IsolatedSandboxHandle } from "./SandboxProvider.js";
|
|
6
|
+
import type { SandboxProvider, BranchStrategy, BindMountSandboxHandle, IsolatedSandboxHandle } from "./SandboxProvider.js";
|
|
7
7
|
export interface ExecResult {
|
|
8
8
|
readonly stdout: string;
|
|
9
9
|
readonly stderr: string;
|
|
@@ -11,24 +11,24 @@ export interface ExecResult {
|
|
|
11
11
|
}
|
|
12
12
|
export interface SandboxService {
|
|
13
13
|
readonly exec: (command: string, options?: {
|
|
14
|
+
onLine?: (line: string) => void;
|
|
14
15
|
cwd?: string;
|
|
15
16
|
}) => Effect.Effect<ExecResult, ExecError>;
|
|
16
|
-
|
|
17
|
-
cwd?: string;
|
|
18
|
-
}) => Effect.Effect<ExecResult, ExecError>;
|
|
17
|
+
/** Copy a file or directory from the host into the sandbox. */
|
|
19
18
|
readonly copyIn: (hostPath: string, sandboxPath: string) => Effect.Effect<void, CopyError>;
|
|
20
|
-
|
|
19
|
+
/** Copy a single file from the sandbox to the host. */
|
|
20
|
+
readonly copyFileOut: (sandboxPath: string, hostPath: string) => Effect.Effect<void, CopyError>;
|
|
21
21
|
}
|
|
22
22
|
declare const Sandbox_base: Context.TagClass<Sandbox, "Sandbox", SandboxService>;
|
|
23
23
|
export declare class Sandbox extends Sandbox_base {
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* Wrap a Promise-based sandbox handle into an Effect-based SandboxService layer.
|
|
27
|
-
* Works with both bind-mount handles (copyIn/
|
|
28
|
-
* isolated handles (copyIn/
|
|
27
|
+
* Works with both bind-mount handles (copyIn/copyFileOut unsupported) and
|
|
28
|
+
* isolated handles (copyIn/copyFileOut delegated to the handle).
|
|
29
29
|
*/
|
|
30
30
|
export declare const makeSandboxLayerFromHandle: (handle: BindMountSandboxHandle | IsolatedSandboxHandle) => Layer.Layer<Sandbox, never, never>;
|
|
31
|
-
/** The mount point inside the
|
|
31
|
+
/** The mount point inside the sandbox where the project worktree is bound. */
|
|
32
32
|
export declare const SANDBOX_WORKSPACE_DIR = "/home/agent/workspace";
|
|
33
33
|
export interface SandboxInfo {
|
|
34
34
|
/** Host-side path to the worktree directory (worktree mode only). */
|
|
@@ -40,24 +40,28 @@ export interface WithSandboxResult<A> {
|
|
|
40
40
|
readonly preservedWorktreePath?: string;
|
|
41
41
|
}
|
|
42
42
|
declare const SandboxFactory_base: Context.TagClass<SandboxFactory, "SandboxFactory", {
|
|
43
|
-
readonly withSandbox: <A, E, R>(makeEffect: (info: SandboxInfo) => Effect.Effect<A, E, R | Sandbox>) => Effect.Effect<WithSandboxResult<A>, E | DockerError | WorktreeError, Exclude<R, Sandbox>>;
|
|
43
|
+
readonly withSandbox: <A, E, R>(makeEffect: (info: SandboxInfo) => Effect.Effect<A, E, R | Sandbox>) => Effect.Effect<WithSandboxResult<A>, E | DockerError | SyncError | WorktreeError, Exclude<R, Sandbox>>;
|
|
44
44
|
}>;
|
|
45
45
|
export declare class SandboxFactory extends SandboxFactory_base {
|
|
46
46
|
}
|
|
47
|
-
declare const
|
|
47
|
+
declare const SandboxConfig_base: Context.TagClass<SandboxConfig, "SandboxConfig", {
|
|
48
48
|
readonly env: Record<string, string>;
|
|
49
49
|
readonly hostRepoDir: string;
|
|
50
|
-
/**
|
|
51
|
-
readonly worktree?: import("./run.js").WorktreeMode | undefined;
|
|
52
|
-
/** Paths relative to the host repo root to copy into the worktree before container start. */
|
|
50
|
+
/** Paths relative to the host repo root to copy into the worktree before sandbox start. */
|
|
53
51
|
readonly copyToSandbox?: string[] | undefined;
|
|
54
52
|
/** When specified, the run name is included in the auto-generated branch and worktree names. */
|
|
55
53
|
readonly name?: string | undefined;
|
|
56
|
-
/** Sandbox provider — delegates
|
|
54
|
+
/** Sandbox provider — delegates sandbox lifecycle to the provider. */
|
|
57
55
|
readonly sandboxProvider: SandboxProvider;
|
|
56
|
+
/** Branch strategy — controls how the agent's changes relate to branches. */
|
|
57
|
+
readonly branchStrategy: BranchStrategy;
|
|
58
|
+
/** When false, reuse an existing worktree instead of failing on collision. Default: true. */
|
|
59
|
+
readonly throwOnDuplicateWorktree?: boolean | undefined;
|
|
58
60
|
}>;
|
|
59
|
-
export declare class
|
|
61
|
+
export declare class SandboxConfig extends SandboxConfig_base {
|
|
60
62
|
}
|
|
63
|
+
/** @deprecated Use SandboxConfig instead. */
|
|
64
|
+
export declare const WorktreeSandboxConfig: typeof SandboxConfig;
|
|
61
65
|
export interface MountEntry {
|
|
62
66
|
readonly hostPath: string;
|
|
63
67
|
readonly sandboxPath: string;
|
|
@@ -69,7 +73,7 @@ export interface MountEntry {
|
|
|
69
73
|
*/
|
|
70
74
|
export declare const resolveGitMounts: (gitPath: string) => Effect.Effect<MountEntry[], PlatformError, FileSystem.FileSystem>;
|
|
71
75
|
export declare const WorktreeDockerSandboxFactory: {
|
|
72
|
-
layer: Layer.Layer<SandboxFactory, never, Display | FileSystem.FileSystem |
|
|
76
|
+
layer: Layer.Layer<SandboxFactory, never, Display | FileSystem.FileSystem | SandboxConfig>;
|
|
73
77
|
};
|
|
74
78
|
export {};
|
|
75
79
|
//# sourceMappingURL=SandboxFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SandboxFactory.d.ts","sourceRoot":"","sources":["../src/SandboxFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAQ,KAAK,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAEL,SAAS,EACT,SAAS,EAET,aAAa,EACb,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EACV,eAAe,
|
|
1
|
+
{"version":3,"file":"SandboxFactory.d.ts","sourceRoot":"","sources":["../src/SandboxFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAQ,KAAK,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAEL,SAAS,EACT,SAAS,EACT,SAAS,EAET,aAAa,EACb,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EAEd,sBAAsB,EAEtB,qBAAqB,EACtB,MAAM,sBAAsB,CAAC;AAI9B,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,CACb,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,KACxD,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAE1C,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,EAAE,CACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAEpC,uDAAuD;IACvD,QAAQ,CAAC,WAAW,EAAE,CACpB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;CACrC;;AAED,qBAAa,OAAQ,SAAQ,YAG1B;CAAG;AAEN;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,gGA+CnC,CAAC;AAEL,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAE7D,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,6GAA6G;IAC7G,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CACzC;;2BAK0B,CAAC,EAAE,CAAC,EAAE,CAAC;;AAHlC,qBAAa,cAAe,SAAQ,mBAWjC;CAAG;;;;IAOF,2FAA2F;;IAE3F,gGAAgG;;IAEhG,sEAAsE;;IAEtE,6EAA6E;;IAE7E,6FAA6F;;;AAbjG,qBAAa,aAAc,SAAQ,kBAgBhC;CAAG;AAEN,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,sBAAgB,CAAC;AAcnD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,wFAwBzB,CAAC;AA4GL,eAAO,MAAM,4BAA4B;;CAqQxC,CAAC"}
|
package/dist/SandboxFactory.js
CHANGED
|
@@ -12,8 +12,8 @@ export class Sandbox extends Context.Tag("Sandbox")() {
|
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
14
|
* Wrap a Promise-based sandbox handle into an Effect-based SandboxService layer.
|
|
15
|
-
* Works with both bind-mount handles (copyIn/
|
|
16
|
-
* isolated handles (copyIn/
|
|
15
|
+
* Works with both bind-mount handles (copyIn/copyFileOut unsupported) and
|
|
16
|
+
* isolated handles (copyIn/copyFileOut delegated to the handle).
|
|
17
17
|
*/
|
|
18
18
|
export const makeSandboxLayerFromHandle = (handle) => Layer.succeed(Sandbox, {
|
|
19
19
|
exec: (command, options) => Effect.tryPromise({
|
|
@@ -23,13 +23,6 @@ export const makeSandboxLayerFromHandle = (handle) => Layer.succeed(Sandbox, {
|
|
|
23
23
|
message: `exec failed: ${e instanceof Error ? e.message : String(e)}`,
|
|
24
24
|
}),
|
|
25
25
|
}),
|
|
26
|
-
execStreaming: (command, onStdoutLine, options) => Effect.tryPromise({
|
|
27
|
-
try: () => handle.execStreaming(command, onStdoutLine, options),
|
|
28
|
-
catch: (e) => new ExecError({
|
|
29
|
-
command,
|
|
30
|
-
message: `exec streaming failed: ${e instanceof Error ? e.message : String(e)}`,
|
|
31
|
-
}),
|
|
32
|
-
}),
|
|
33
26
|
copyIn: "copyIn" in handle
|
|
34
27
|
? (hostPath, sandboxPath) => Effect.tryPromise({
|
|
35
28
|
try: () => handle.copyIn(hostPath, sandboxPath),
|
|
@@ -40,23 +33,25 @@ export const makeSandboxLayerFromHandle = (handle) => Layer.succeed(Sandbox, {
|
|
|
40
33
|
: () => Effect.fail(new CopyError({
|
|
41
34
|
message: "copyIn is not supported for bind-mount sandbox providers",
|
|
42
35
|
})),
|
|
43
|
-
|
|
36
|
+
copyFileOut: "copyFileOut" in handle
|
|
44
37
|
? (sandboxPath, hostPath) => Effect.tryPromise({
|
|
45
|
-
try: () => handle.
|
|
38
|
+
try: () => handle.copyFileOut(sandboxPath, hostPath),
|
|
46
39
|
catch: (e) => new CopyError({
|
|
47
|
-
message: `
|
|
40
|
+
message: `copyFileOut failed: ${e instanceof Error ? e.message : String(e)}`,
|
|
48
41
|
}),
|
|
49
42
|
})
|
|
50
43
|
: () => Effect.fail(new CopyError({
|
|
51
|
-
message: "
|
|
44
|
+
message: "copyFileOut is not supported for bind-mount sandbox providers",
|
|
52
45
|
})),
|
|
53
46
|
});
|
|
54
|
-
/** The mount point inside the
|
|
47
|
+
/** The mount point inside the sandbox where the project worktree is bound. */
|
|
55
48
|
export const SANDBOX_WORKSPACE_DIR = "/home/agent/workspace";
|
|
56
49
|
export class SandboxFactory extends Context.Tag("SandboxFactory")() {
|
|
57
50
|
}
|
|
58
|
-
export class
|
|
51
|
+
export class SandboxConfig extends Context.Tag("SandboxConfig")() {
|
|
59
52
|
}
|
|
53
|
+
/** @deprecated Use SandboxConfig instead. */
|
|
54
|
+
export const WorktreeSandboxConfig = SandboxConfig;
|
|
60
55
|
/**
|
|
61
56
|
* Print a message to stderr about a preserved worktree, with review and cleanup instructions.
|
|
62
57
|
*/
|
|
@@ -124,35 +119,40 @@ const startProviderSandbox = (provider, worktreeOrRepoPath, hostRepoDir, env, gi
|
|
|
124
119
|
* Start an isolated sandbox: create handle, sync host repo via git bundle.
|
|
125
120
|
* Returns the handle, sandbox layer, and workspace path.
|
|
126
121
|
*/
|
|
127
|
-
const startIsolatedProviderSandbox = (provider, hostRepoDir, env, copyPaths) => Effect.
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
122
|
+
const startIsolatedProviderSandbox = (provider, hostRepoDir, env, copyPaths) => Effect.gen(function* () {
|
|
123
|
+
const handle = yield* Effect.tryPromise({
|
|
124
|
+
try: () => provider.create({ env }),
|
|
125
|
+
catch: (e) => new WorktreeError({
|
|
126
|
+
message: `Isolated provider '${provider.name}' setup failed: ${e instanceof Error ? e.message : String(e)}`,
|
|
127
|
+
}),
|
|
128
|
+
});
|
|
129
|
+
yield* syncIn(hostRepoDir, handle);
|
|
130
|
+
if (copyPaths && copyPaths.length > 0) {
|
|
131
|
+
for (const relativePath of copyPaths) {
|
|
132
|
+
const hostPath = join(hostRepoDir, relativePath);
|
|
133
|
+
if (!existsSync(hostPath)) {
|
|
134
|
+
continue;
|
|
139
135
|
}
|
|
136
|
+
const sandboxPath = join(handle.workspacePath, relativePath);
|
|
137
|
+
yield* Effect.tryPromise({
|
|
138
|
+
try: () => handle.copyIn(hostPath, sandboxPath),
|
|
139
|
+
catch: (e) => new WorktreeError({
|
|
140
|
+
message: `Failed to copy ${relativePath} into sandbox: ${e instanceof Error ? e.message : String(e)}`,
|
|
141
|
+
}),
|
|
142
|
+
});
|
|
140
143
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
sandboxLayer: makeSandboxLayerFromHandle(handle),
|
|
149
|
-
workspacePath: handle.workspacePath,
|
|
150
|
-
})));
|
|
144
|
+
}
|
|
145
|
+
return {
|
|
146
|
+
handle,
|
|
147
|
+
sandboxLayer: makeSandboxLayerFromHandle(handle),
|
|
148
|
+
workspacePath: handle.workspacePath,
|
|
149
|
+
};
|
|
150
|
+
});
|
|
151
151
|
export const WorktreeDockerSandboxFactory = {
|
|
152
152
|
layer: Layer.effect(SandboxFactory, Effect.gen(function* () {
|
|
153
|
-
const { env, hostRepoDir,
|
|
154
|
-
const
|
|
155
|
-
const branch =
|
|
153
|
+
const { env, hostRepoDir, copyToSandbox: copyPaths, name, sandboxProvider, branchStrategy, throwOnDuplicateWorktree, } = yield* SandboxConfig;
|
|
154
|
+
const isHeadMode = branchStrategy.type === "head";
|
|
155
|
+
const branch = branchStrategy.type === "branch" ? branchStrategy.branch : undefined;
|
|
156
156
|
const fileSystem = yield* FileSystem.FileSystem;
|
|
157
157
|
const display = yield* Display;
|
|
158
158
|
return {
|
|
@@ -163,12 +163,7 @@ export const WorktreeDockerSandboxFactory = {
|
|
|
163
163
|
// Use
|
|
164
164
|
({ sandboxLayer }) => makeEffect({}).pipe(Effect.provide(sandboxLayer)),
|
|
165
165
|
// Release: sync commits back to host, then close
|
|
166
|
-
({ handle }) => Effect.
|
|
167
|
-
try: () => syncOut(hostRepoDir, handle),
|
|
168
|
-
catch: (e) => new WorktreeError({
|
|
169
|
-
message: `syncOut failed: ${e instanceof Error ? e.message : String(e)}`,
|
|
170
|
-
}),
|
|
171
|
-
}).pipe(Effect.catchAll((e) => Effect.sync(() => {
|
|
166
|
+
({ handle }) => syncOut(hostRepoDir, handle).pipe(Effect.catchAll((e) => Effect.sync(() => {
|
|
172
167
|
console.error(`[sandcastle] Warning: syncOut failed: ${e.message}`);
|
|
173
168
|
})), Effect.andThen(Effect.tryPromise({
|
|
174
169
|
try: () => handle.close(),
|
|
@@ -178,8 +173,8 @@ export const WorktreeDockerSandboxFactory = {
|
|
|
178
173
|
preservedWorktreePath: undefined,
|
|
179
174
|
})));
|
|
180
175
|
}
|
|
181
|
-
if (
|
|
182
|
-
//
|
|
176
|
+
if (isHeadMode) {
|
|
177
|
+
// Head mode: bind-mount host directory directly, no worktree
|
|
183
178
|
const gitPath = join(hostRepoDir, ".git");
|
|
184
179
|
return resolveGitMounts(gitPath).pipe(Effect.provideService(FileSystem.FileSystem, fileSystem), Effect.mapError((e) => new WorktreeError({
|
|
185
180
|
message: `Failed to resolve git mounts: ${e}`,
|
|
@@ -195,7 +190,7 @@ export const WorktreeDockerSandboxFactory = {
|
|
|
195
190
|
preservedWorktreePath: undefined,
|
|
196
191
|
})))));
|
|
197
192
|
}
|
|
198
|
-
// Worktree mode (
|
|
193
|
+
// Worktree mode (merge-to-head or explicit branch)
|
|
199
194
|
// Populated by the release phase when a worktree is preserved on failure,
|
|
200
195
|
// so we can attach the path to recognized error types before they propagate.
|
|
201
196
|
let preservedWorktreePath;
|
|
@@ -206,7 +201,10 @@ export const WorktreeDockerSandboxFactory = {
|
|
|
206
201
|
console.error("[sandcastle] Warning: failed to prune stale worktrees:", e.message);
|
|
207
202
|
})))
|
|
208
203
|
.pipe(Effect.andThen(branch
|
|
209
|
-
? WorktreeManager.create(hostRepoDir, {
|
|
204
|
+
? WorktreeManager.create(hostRepoDir, {
|
|
205
|
+
branch,
|
|
206
|
+
throwOnDuplicateWorktree,
|
|
207
|
+
})
|
|
210
208
|
: WorktreeManager.create(hostRepoDir, { name })))
|
|
211
209
|
.pipe(Effect.provideService(FileSystem.FileSystem, fileSystem))
|
|
212
210
|
.pipe(Effect.flatMap((worktreeInfo) => (copyPaths && copyPaths.length > 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SandboxFactory.js","sourceRoot":"","sources":["../src/SandboxFactory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SandboxFactory.js","sourceRoot":"","sources":["../src/SandboxFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ export interface SandboxLifecycleOptions {
|
|
|
13
13
|
readonly hooks?: SandboxHooks;
|
|
14
14
|
readonly branch?: string;
|
|
15
15
|
/** Host-side path to the worktree directory. Required when sandboxRepoDir
|
|
16
|
-
* is a
|
|
16
|
+
* is a sandbox path that doesn't exist on the host (e.g. /home/agent/workspace). */
|
|
17
17
|
readonly hostWorktreePath?: string;
|
|
18
18
|
}
|
|
19
19
|
export interface SandboxContext {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SandboxLifecycle.d.ts","sourceRoot":"","sources":["../src/SandboxLifecycle.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAwB,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EACL,OAAO,EAEP,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAoB7B,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvE,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;
|
|
1
|
+
{"version":3,"file":"SandboxLifecycle.d.ts","sourceRoot":"","sources":["../src/SandboxLifecycle.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAwB,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EACL,OAAO,EAEP,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAoB7B,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvE,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;yFACqF;IACrF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACrC;AAED,eAAO,MAAM,oBAAoB,GAAI,CAAC,kMA6LlC,CAAC"}
|
package/dist/SandboxLifecycle.js
CHANGED
|
@@ -38,7 +38,7 @@ export const withSandboxLifecycle = (options, work) => Effect.gen(function* () {
|
|
|
38
38
|
let resolvedBranch = "";
|
|
39
39
|
yield* display.taskLog("Setting up sandbox", (message) => Effect.gen(function* () {
|
|
40
40
|
// The bind-mounted worktree may be owned by a different UID (host user
|
|
41
|
-
// vs
|
|
41
|
+
// vs sandbox user). Mark it safe so git doesn't reject it with
|
|
42
42
|
// "dubious ownership".
|
|
43
43
|
yield* execOk(sandbox, `git config --global --add safe.directory "${sandboxRepoDir}"`);
|
|
44
44
|
// Propagate host git identity into the sandbox so commits are attributed
|
|
@@ -69,7 +69,7 @@ export const withSandboxLifecycle = (options, work) => Effect.gen(function* () {
|
|
|
69
69
|
let commits;
|
|
70
70
|
let finalBranch;
|
|
71
71
|
// For host-side git operations in worktree mode, use hostWorktreePath
|
|
72
|
-
// (the real path on the host) instead of sandboxRepoDir (which may be a
|
|
72
|
+
// (the real path on the host) instead of sandboxRepoDir (which may be a sandbox path
|
|
73
73
|
// like /home/agent/workspace that doesn't exist on the host).
|
|
74
74
|
const hostSideWorktreePath = hostWorktreePath ?? sandboxRepoDir;
|
|
75
75
|
if (hostCurrentBranch !== null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SandboxLifecycle.js","sourceRoot":"","sources":["../src/SandboxLifecycle.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SandboxLifecycle.js","sourceRoot":"","sources":["../src/SandboxLifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,12 +14,17 @@ export interface ExecResult {
|
|
|
14
14
|
export interface BindMountSandboxHandle {
|
|
15
15
|
/** Absolute path to the workspace inside the sandbox. */
|
|
16
16
|
readonly workspacePath: string;
|
|
17
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Execute a command in the sandbox.
|
|
19
|
+
*
|
|
20
|
+
* Implementations MUST support line-by-line streaming via `onLine`. This is
|
|
21
|
+
* how Sandcastle delivers live feedback to the user and enforces idle timeouts —
|
|
22
|
+
* without a streaming implementation, neither will work. A buffered/batch
|
|
23
|
+
* implementation that only calls `onLine` after the process exits does NOT
|
|
24
|
+
* satisfy this contract.
|
|
25
|
+
*/
|
|
18
26
|
exec(command: string, options?: {
|
|
19
|
-
|
|
20
|
-
}): Promise<ExecResult>;
|
|
21
|
-
/** Execute a command, streaming stdout line-by-line. */
|
|
22
|
-
execStreaming(command: string, onLine: (line: string) => void, options?: {
|
|
27
|
+
onLine?: (line: string) => void;
|
|
23
28
|
cwd?: string;
|
|
24
29
|
}): Promise<ExecResult>;
|
|
25
30
|
/** Tear down the sandbox. */
|
|
@@ -44,6 +49,8 @@ export interface BindMountCreateOptions {
|
|
|
44
49
|
export interface BindMountSandboxProviderConfig {
|
|
45
50
|
/** Human-readable name for this provider (e.g. "docker", "podman"). */
|
|
46
51
|
readonly name: string;
|
|
52
|
+
/** Environment variables injected by this provider. Merged at launch time. */
|
|
53
|
+
readonly env?: Record<string, string>;
|
|
47
54
|
/** Create a sandbox handle from the given options. */
|
|
48
55
|
readonly create: (options: BindMountCreateOptions) => Promise<BindMountSandboxHandle>;
|
|
49
56
|
}
|
|
@@ -51,18 +58,23 @@ export interface BindMountSandboxProviderConfig {
|
|
|
51
58
|
export interface IsolatedSandboxHandle {
|
|
52
59
|
/** Absolute path to the workspace inside the sandbox. */
|
|
53
60
|
readonly workspacePath: string;
|
|
54
|
-
/**
|
|
61
|
+
/**
|
|
62
|
+
* Execute a command in the sandbox.
|
|
63
|
+
*
|
|
64
|
+
* Implementations MUST support line-by-line streaming via `onLine`. This is
|
|
65
|
+
* how Sandcastle delivers live feedback to the user and enforces idle timeouts —
|
|
66
|
+
* without a streaming implementation, neither will work. A buffered/batch
|
|
67
|
+
* implementation that only calls `onLine` after the process exits does NOT
|
|
68
|
+
* satisfy this contract.
|
|
69
|
+
*/
|
|
55
70
|
exec(command: string, options?: {
|
|
71
|
+
onLine?: (line: string) => void;
|
|
56
72
|
cwd?: string;
|
|
57
73
|
}): Promise<ExecResult>;
|
|
58
|
-
/**
|
|
59
|
-
execStreaming(command: string, onLine: (line: string) => void, options?: {
|
|
60
|
-
cwd?: string;
|
|
61
|
-
}): Promise<ExecResult>;
|
|
62
|
-
/** Copy a file from the host into the sandbox. */
|
|
74
|
+
/** Copy a file or directory from the host into the sandbox. */
|
|
63
75
|
copyIn(hostPath: string, sandboxPath: string): Promise<void>;
|
|
64
|
-
/** Copy a file from the sandbox to the host. */
|
|
65
|
-
|
|
76
|
+
/** Copy a single file from the sandbox to the host. */
|
|
77
|
+
copyFileOut(sandboxPath: string, hostPath: string): Promise<void>;
|
|
66
78
|
/** Tear down the sandbox. */
|
|
67
79
|
close(): Promise<void>;
|
|
68
80
|
}
|
|
@@ -75,6 +87,8 @@ export interface IsolatedCreateOptions {
|
|
|
75
87
|
export interface IsolatedSandboxProviderConfig {
|
|
76
88
|
/** Human-readable name for this provider (e.g. "daytona", "e2b"). */
|
|
77
89
|
readonly name: string;
|
|
90
|
+
/** Environment variables injected by this provider. Merged at launch time. */
|
|
91
|
+
readonly env?: Record<string, string>;
|
|
78
92
|
/** Create an isolated sandbox handle from the given options. */
|
|
79
93
|
readonly create: (options: IsolatedCreateOptions) => Promise<IsolatedSandboxHandle>;
|
|
80
94
|
}
|
|
@@ -84,6 +98,8 @@ export interface BindMountSandboxProvider {
|
|
|
84
98
|
readonly tag: "bind-mount";
|
|
85
99
|
/** Human-readable provider name. */
|
|
86
100
|
readonly name: string;
|
|
101
|
+
/** Environment variables injected by this provider. */
|
|
102
|
+
readonly env: Record<string, string>;
|
|
87
103
|
/** @internal Create a sandbox handle. */
|
|
88
104
|
readonly create: (options: BindMountCreateOptions) => Promise<BindMountSandboxHandle>;
|
|
89
105
|
}
|
|
@@ -93,9 +109,30 @@ export interface IsolatedSandboxProvider {
|
|
|
93
109
|
readonly tag: "isolated";
|
|
94
110
|
/** Human-readable provider name. */
|
|
95
111
|
readonly name: string;
|
|
112
|
+
/** Environment variables injected by this provider. */
|
|
113
|
+
readonly env: Record<string, string>;
|
|
96
114
|
/** @internal Create an isolated sandbox handle. */
|
|
97
115
|
readonly create: (options: IsolatedCreateOptions) => Promise<IsolatedSandboxHandle>;
|
|
98
116
|
}
|
|
117
|
+
/** Head strategy: agent writes directly to host working directory. Bind-mount only. */
|
|
118
|
+
export interface HeadBranchStrategy {
|
|
119
|
+
readonly type: "head";
|
|
120
|
+
}
|
|
121
|
+
/** Merge-to-head strategy: temp branch, merge back to HEAD, delete temp branch. */
|
|
122
|
+
export interface MergeToHeadBranchStrategy {
|
|
123
|
+
readonly type: "merge-to-head";
|
|
124
|
+
}
|
|
125
|
+
/** Branch strategy: commits land on an explicit named branch. */
|
|
126
|
+
export interface NamedBranchStrategy {
|
|
127
|
+
readonly type: "branch";
|
|
128
|
+
readonly branch: string;
|
|
129
|
+
}
|
|
130
|
+
/** Branch strategy for bind-mount providers (all three variants). */
|
|
131
|
+
export type BindMountBranchStrategy = HeadBranchStrategy | MergeToHeadBranchStrategy | NamedBranchStrategy;
|
|
132
|
+
/** Branch strategy for isolated providers (no head — can't write to host). */
|
|
133
|
+
export type IsolatedBranchStrategy = MergeToHeadBranchStrategy | NamedBranchStrategy;
|
|
134
|
+
/** Union of all branch strategy variants. */
|
|
135
|
+
export type BranchStrategy = BindMountBranchStrategy | IsolatedBranchStrategy;
|
|
99
136
|
/**
|
|
100
137
|
* A sandbox provider — the pluggable unit that `run()` and `createSandbox()` accept.
|
|
101
138
|
* Tagged for internal dispatch: "bind-mount" or "isolated".
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SandboxProvider.d.ts","sourceRoot":"","sources":["../src/SandboxProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,sDAAsD;AACtD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACrC,yDAAyD;IACzD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B
|
|
1
|
+
{"version":3,"file":"SandboxProvider.d.ts","sourceRoot":"","sources":["../src/SandboxProvider.ts"],"names":[],"mappings":"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"}
|
package/dist/SandboxProvider.js
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
export const createBindMountSandboxProvider = (config) => ({
|
|
12
12
|
tag: "bind-mount",
|
|
13
13
|
name: config.name,
|
|
14
|
+
env: config.env ?? {},
|
|
14
15
|
create: config.create,
|
|
15
16
|
});
|
|
16
17
|
/**
|
|
@@ -20,6 +21,7 @@ export const createBindMountSandboxProvider = (config) => ({
|
|
|
20
21
|
export const createIsolatedSandboxProvider = (config) => ({
|
|
21
22
|
tag: "isolated",
|
|
22
23
|
name: config.name,
|
|
24
|
+
env: config.env ?? {},
|
|
23
25
|
create: config.create,
|
|
24
26
|
});
|
|
25
27
|
//# sourceMappingURL=SandboxProvider.js.map
|
|
@@ -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;AAyKH;;;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,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Buffers streaming text deltas and flushes them as readable multi-word chunks.
|
|
3
|
+
*
|
|
4
|
+
* Flush triggers:
|
|
5
|
+
* - Newline character in the accumulated buffer
|
|
6
|
+
* - Sentence boundary (`. `, `! `, `? ` at end of buffer)
|
|
7
|
+
* - Buffer exceeds ~80 characters
|
|
8
|
+
* - Debounce timer (~50ms of no new writes)
|
|
9
|
+
*/
|
|
10
|
+
export declare class TextDeltaBuffer {
|
|
11
|
+
private buffer;
|
|
12
|
+
private timer;
|
|
13
|
+
private readonly onFlush;
|
|
14
|
+
constructor(onFlush: (text: string) => void);
|
|
15
|
+
write(text: string): void;
|
|
16
|
+
/** Force-flush any buffered text. */
|
|
17
|
+
flush(): void;
|
|
18
|
+
/** Flush remaining buffer and clean up. */
|
|
19
|
+
dispose(): void;
|
|
20
|
+
private shouldFlush;
|
|
21
|
+
private doFlush;
|
|
22
|
+
private clearTimer;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=TextDeltaBuffer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextDeltaBuffer.d.ts","sourceRoot":"","sources":["../src/TextDeltaBuffer.ts"],"names":[],"mappings":"AAQA;;;;;;;;GAQG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IAEjD,YAAY,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAE1C;IAED,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAaxB;IAED,qCAAqC;IACrC,KAAK,IAAI,IAAI,CAGZ;IAED,2CAA2C;IAC3C,OAAO,IAAI,IAAI,CAEd;IAED,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,UAAU;CAMnB"}
|