@ai-hero/sandcastle 0.5.8 → 0.5.11

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.
Files changed (80) hide show
  1. package/README.md +72 -29
  2. package/dist/AgentProvider.d.ts +3 -1
  3. package/dist/AgentProvider.d.ts.map +1 -1
  4. package/dist/AgentProvider.js +5 -2
  5. package/dist/AgentProvider.js.map +1 -1
  6. package/dist/DockerLifecycle.d.ts +16 -1
  7. package/dist/DockerLifecycle.d.ts.map +1 -1
  8. package/dist/DockerLifecycle.js +12 -2
  9. package/dist/DockerLifecycle.js.map +1 -1
  10. package/dist/EnvResolver.d.ts.map +1 -1
  11. package/dist/EnvResolver.js +18 -3
  12. package/dist/EnvResolver.js.map +1 -1
  13. package/dist/InitService.d.ts.map +1 -1
  14. package/dist/InitService.js +38 -22
  15. package/dist/InitService.js.map +1 -1
  16. package/dist/Output.d.ts +80 -0
  17. package/dist/Output.d.ts.map +1 -0
  18. package/dist/Output.js +68 -0
  19. package/dist/Output.js.map +1 -0
  20. package/dist/SandboxFactory.d.ts.map +1 -1
  21. package/dist/SandboxFactory.js +51 -0
  22. package/dist/SandboxFactory.js.map +1 -1
  23. package/dist/SandboxProvider.d.ts +7 -9
  24. package/dist/SandboxProvider.d.ts.map +1 -1
  25. package/dist/SandboxProvider.js.map +1 -1
  26. package/dist/cli.d.ts.map +1 -1
  27. package/dist/cli.js +16 -1
  28. package/dist/cli.js.map +1 -1
  29. package/dist/createSandbox.d.ts +2 -2
  30. package/dist/createSandbox.d.ts.map +1 -1
  31. package/dist/createSandbox.js +29 -2
  32. package/dist/createSandbox.js.map +1 -1
  33. package/dist/createWorktree.d.ts +2 -2
  34. package/dist/createWorktree.d.ts.map +1 -1
  35. package/dist/createWorktree.js +10 -0
  36. package/dist/createWorktree.js.map +1 -1
  37. package/dist/extractStructuredOutput.d.ts +21 -0
  38. package/dist/extractStructuredOutput.d.ts.map +1 -0
  39. package/dist/extractStructuredOutput.js +97 -0
  40. package/dist/extractStructuredOutput.js.map +1 -0
  41. package/dist/index.d.ts +2 -0
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +1 -0
  44. package/dist/index.js.map +1 -1
  45. package/dist/interactive.d.ts +1 -1
  46. package/dist/mountUtils.d.ts +42 -0
  47. package/dist/mountUtils.d.ts.map +1 -1
  48. package/dist/mountUtils.js +58 -2
  49. package/dist/mountUtils.js.map +1 -1
  50. package/dist/run.d.ts +31 -2
  51. package/dist/run.d.ts.map +1 -1
  52. package/dist/run.js +27 -3
  53. package/dist/run.js.map +1 -1
  54. package/dist/sandboxes/docker.d.ts +23 -1
  55. package/dist/sandboxes/docker.d.ts.map +1 -1
  56. package/dist/sandboxes/docker.js +72 -10
  57. package/dist/sandboxes/docker.js.map +1 -1
  58. package/dist/sandboxes/no-sandbox.d.ts +4 -3
  59. package/dist/sandboxes/no-sandbox.d.ts.map +1 -1
  60. package/dist/sandboxes/no-sandbox.js +4 -3
  61. package/dist/sandboxes/no-sandbox.js.map +1 -1
  62. package/dist/sandboxes/podman.d.ts +3 -2
  63. package/dist/sandboxes/podman.d.ts.map +1 -1
  64. package/dist/sandboxes/podman.js +29 -9
  65. package/dist/sandboxes/podman.js.map +1 -1
  66. package/dist/sandboxes/vercel.d.ts +1 -1
  67. package/dist/sandboxes/vercel.js +1 -1
  68. package/dist/startSandbox.d.ts +13 -3
  69. package/dist/startSandbox.d.ts.map +1 -1
  70. package/dist/startSandbox.js +16 -0
  71. package/dist/startSandbox.js.map +1 -1
  72. package/dist/templates/blank/main.mts +1 -1
  73. package/dist/templates/parallel-planner/main.mts +1 -1
  74. package/dist/templates/parallel-planner-with-review/main.mts +1 -1
  75. package/dist/templates/sequential-reviewer/implement-prompt.md +1 -1
  76. package/dist/templates/sequential-reviewer/main.mts +54 -49
  77. package/dist/templates/simple-loop/main.mts +2 -2
  78. package/dist/templates/simple-loop/prompt.md +1 -1
  79. package/dist/templates/simple-loop/template.json +1 -1
  80. package/package.json +3 -2
package/README.md CHANGED
@@ -57,7 +57,7 @@ import { run, claudeCode } from "@ai-hero/sandcastle";
57
57
  import { docker } from "@ai-hero/sandcastle/sandboxes/docker";
58
58
 
59
59
  await run({
60
- agent: claudeCode("claude-opus-4-6"),
60
+ agent: claudeCode("claude-opus-4-7"),
61
61
  sandbox: docker(), // or podman(), vercel(), or your own provider
62
62
  promptFile: ".sandcastle/prompt.md",
63
63
  });
@@ -65,14 +65,14 @@ await run({
65
65
 
66
66
  ## Sandbox Providers
67
67
 
68
- Sandcastle uses a `SandboxProvider` to create isolated environments. The `sandbox` option on `run()` and `createSandbox()` accepts any provider. A no-sandbox option is also available for `interactive()` and `wt.interactive()`. Built-in providers:
68
+ Sandcastle uses a `SandboxProvider` to create isolated environments. The `sandbox` option on `run()`, `interactive()`, and `createSandbox()` accepts any provider, including `noSandbox()` opt in to running the agent directly on the host when container isolation is undesired. Built-in providers:
69
69
 
70
- | Provider | Import path | Type | Accepted by |
71
- | ---------- | ------------------------------------------ | ---------- | --------------------------------------------- |
72
- | Docker | `@ai-hero/sandcastle/sandboxes/docker` | Bind-mount | `run()`, `createSandbox()`, `interactive()` |
73
- | Podman | `@ai-hero/sandcastle/sandboxes/podman` | Bind-mount | `run()`, `createSandbox()`, `interactive()` |
74
- | Vercel | `@ai-hero/sandcastle/sandboxes/vercel` | Isolated | `run()`, `createSandbox()`, `interactive()` |
75
- | No-sandbox | `@ai-hero/sandcastle/sandboxes/no-sandbox` | None | `interactive()`, `wt.interactive()` (default) |
70
+ | Provider | Import path | Type | Accepted by |
71
+ | ---------- | ------------------------------------------ | ---------- | ------------------------------------------- |
72
+ | Docker | `@ai-hero/sandcastle/sandboxes/docker` | Bind-mount | `run()`, `createSandbox()`, `interactive()` |
73
+ | Podman | `@ai-hero/sandcastle/sandboxes/podman` | Bind-mount | `run()`, `createSandbox()`, `interactive()` |
74
+ | Vercel | `@ai-hero/sandcastle/sandboxes/vercel` | Isolated | `run()`, `createSandbox()`, `interactive()` |
75
+ | No-sandbox | `@ai-hero/sandcastle/sandboxes/no-sandbox` | None | `run()`, `createSandbox()`, `interactive()` |
76
76
 
77
77
  Worktree methods (`wt.run()`, `wt.interactive()`, `wt.createSandbox()`) accept the same providers as their top-level counterparts. `wt.interactive()` defaults to `noSandbox()` when no sandbox is specified.
78
78
 
@@ -84,14 +84,15 @@ import { noSandbox } from "@ai-hero/sandcastle/sandboxes/no-sandbox";
84
84
 
85
85
  // Docker, Podman, and Vercel are interchangeable in run() and createSandbox():
86
86
  await run({
87
- agent: claudeCode("claude-opus-4-6"),
87
+ agent: claudeCode("claude-opus-4-7"),
88
88
  sandbox: docker(),
89
89
  prompt: "...",
90
90
  });
91
91
 
92
- // No-sandbox runs the agent directly on the host — interactive() only:
92
+ // No-sandbox runs the agent directly on the host — accepted by run(),
93
+ // createSandbox(), and interactive(). Skips container isolation entirely:
93
94
  await interactive({
94
- agent: claudeCode("claude-opus-4-6"),
95
+ agent: claudeCode("claude-opus-4-7"),
95
96
  sandbox: noSandbox(),
96
97
  prompt: "...", // optional — omit to launch the TUI with no initial prompt
97
98
  cwd: "/path/to/other-repo", // optional — defaults to process.cwd()
@@ -109,7 +110,7 @@ import { run, claudeCode } from "@ai-hero/sandcastle";
109
110
  import { docker } from "@ai-hero/sandcastle/sandboxes/docker";
110
111
 
111
112
  const result = await run({
112
- agent: claudeCode("claude-opus-4-6"),
113
+ agent: claudeCode("claude-opus-4-7"),
113
114
  sandbox: docker(),
114
115
  promptFile: ".sandcastle/prompt.md",
115
116
  });
@@ -129,12 +130,16 @@ import { docker } from "@ai-hero/sandcastle/sandboxes/docker";
129
130
  const result = await run({
130
131
  // Agent provider — required. Pass a model string to claudeCode().
131
132
  // Optional second arg for provider-specific options like effort level.
132
- agent: claudeCode("claude-opus-4-6", { effort: "high" }),
133
+ agent: claudeCode("claude-opus-4-7", { effort: "high" }),
133
134
 
134
135
  // Sandbox provider — required. Any SandboxProvider works (docker, podman, vercel, or custom).
135
136
  // Provider-specific config (like imageName, mounts) lives inside the provider factory call.
136
137
  sandbox: docker({
137
138
  imageName: "sandcastle:local",
139
+ // Optional: override the UID/GID used for --user flag (defaults to host UID/GID).
140
+ // Must match the UID baked into the image. Pre-flight check catches mismatches.
141
+ // containerUid: 1000,
142
+ // containerGid: 1000,
138
143
  // Optional: mount host directories into the sandbox (e.g. package manager caches)
139
144
  // hostPath supports absolute, tilde-expanded (~), and relative paths (resolved from cwd).
140
145
  // sandboxPath supports absolute and relative paths (resolved from the sandbox repo directory).
@@ -142,6 +147,9 @@ const result = await run({
142
147
  { hostPath: "~/.npm", sandboxPath: "/home/agent/.npm", readonly: true },
143
148
  { hostPath: "data", sandboxPath: "data" }, // mounts <cwd>/data → <sandbox-repo>/data
144
149
  ],
150
+ // Optional: SELinux volume label — "z" (default, shared), "Z" (private), or false (none).
151
+ // No-op on non-SELinux systems (Docker Desktop on macOS/Windows, Linux without SELinux).
152
+ selinuxLabel: "z",
145
153
  // Optional: provider-level env vars merged at launch time
146
154
  env: { DOCKER_SPECIFIC: "value" },
147
155
  // Optional: attach container to Docker network(s) — string or string[]
@@ -214,6 +222,11 @@ const result = await run({
214
222
 
215
223
  // Idle timeout in seconds — resets whenever the agent produces output. Default: 600 (10 minutes)
216
224
  idleTimeoutSeconds: 600,
225
+
226
+ // Structured output — extract a typed payload from the agent's stdout.
227
+ // Requires maxIterations === 1 and the tag must appear in the prompt.
228
+ // output: Output.object({ tag: "result", schema: z.object({ answer: z.number() }) }),
229
+ // output: Output.string({ tag: "summary" }),
217
230
  });
218
231
 
219
232
  console.log(result.iterations.length); // number of iterations executed
@@ -240,7 +253,7 @@ await using sandbox = await createSandbox({
240
253
  });
241
254
 
242
255
  const result = await sandbox.run({
243
- agent: claudeCode("claude-opus-4-6"),
256
+ agent: claudeCode("claude-opus-4-7"),
244
257
  prompt: "Fix issue #42 in this repo.",
245
258
  });
246
259
 
@@ -261,7 +274,7 @@ await using sandbox = await createSandbox({
261
274
 
262
275
  // Step 1: implement
263
276
  const implResult = await sandbox.run({
264
- agent: claudeCode("claude-opus-4-6"),
277
+ agent: claudeCode("claude-opus-4-7"),
265
278
  promptFile: ".sandcastle/implement.md",
266
279
  maxIterations: 5,
267
280
  });
@@ -319,7 +332,7 @@ if (closeResult.preservedWorktreePath) {
319
332
 
320
333
  | Option | Type | Default | Description |
321
334
  | -------------------- | ------------------ | ----------------------------- | ------------------------------------------------------------------- |
322
- | `agent` | AgentProvider | — | **Required.** Agent provider (e.g. `claudeCode("claude-opus-4-6")`) |
335
+ | `agent` | AgentProvider | — | **Required.** Agent provider (e.g. `claudeCode("claude-opus-4-7")`) |
323
336
  | `prompt` | string | — | Inline prompt (mutually exclusive with `promptFile`) |
324
337
  | `promptFile` | string | — | Path to prompt file (mutually exclusive with `prompt`) |
325
338
  | `promptArgs` | PromptArgs | — | Key-value map for `{{KEY}}` placeholder substitution |
@@ -368,13 +381,13 @@ console.log(wt.branch); // "agent/fix-42"
368
381
 
369
382
  // Run an interactive session in the worktree (defaults to noSandbox)
370
383
  await wt.interactive({
371
- agent: claudeCode("claude-opus-4-6"),
384
+ agent: claudeCode("claude-opus-4-7"),
372
385
  prompt: "Explore the codebase and understand the bug.",
373
386
  });
374
387
 
375
388
  // Run an AFK agent in the worktree (sandbox is required)
376
389
  const result = await wt.run({
377
- agent: claudeCode("claude-opus-4-6"),
390
+ agent: claudeCode("claude-opus-4-7"),
378
391
  sandbox: docker({ imageName: "sandcastle:myrepo" }),
379
392
  prompt: "Fix issue #42.",
380
393
  maxIterations: 3,
@@ -590,6 +603,34 @@ await run({
590
603
 
591
604
  Tell the agent to output your chosen string(s) in the prompt, and the orchestrator will stop when it detects any of them. The matched signal is returned as `result.completionSignal`.
592
605
 
606
+ ### Structured output
607
+
608
+ Use `Output.object()` to extract a typed, schema-validated JSON payload from the agent's stdout. The agent emits its answer inside an XML tag you specify, and Sandcastle parses, validates, and returns it on `result.output`. See [ADR 0010](docs/adr/0010-structured-output.md) for design rationale.
609
+
610
+ ```ts
611
+ import { run, Output, claudeCode } from "@ai-hero/sandcastle";
612
+ import { docker } from "@ai-hero/sandcastle/sandboxes/docker";
613
+ import { z } from "zod";
614
+
615
+ const result = await run({
616
+ agent: claudeCode("claude-opus-4-7"),
617
+ sandbox: docker(),
618
+ prompt: `Analyze the code, and output the result as JSON inside <result> tags.
619
+ The result must match this schema:
620
+ { summary: string; score: string }
621
+ `,
622
+ output: Output.object({
623
+ tag: "result",
624
+ schema: z.object({ summary: z.string(), score: z.number() }),
625
+ }),
626
+ });
627
+
628
+ console.log(result.output.summary); // typed as string
629
+ console.log(result.output.score); // typed as number
630
+ ```
631
+
632
+ `Output.string({ tag })` extracts the tag contents as a plain string (trimmed, no JSON parsing). Both helpers require `maxIterations` to be `1` (the default). The resolved prompt must contain the configured opening tag literal.
633
+
593
634
  ### Templates
594
635
 
595
636
  `sandcastle init` prompts you to choose a sandbox provider (Docker or Podman), a backlog manager (GitHub Issues or Beads), and a template, which scaffolds a ready-to-use prompt and `main.mts` suited to a specific workflow. If your project's `package.json` has `"type": "module"`, the file will be named `main.ts` instead. Five templates are available:
@@ -597,7 +638,7 @@ Tell the agent to output your chosen string(s) in the prompt, and the orchestrat
597
638
  | Template | Description |
598
639
  | ------------------------------ | ------------------------------------------------------------------------- |
599
640
  | `blank` | Bare scaffold — write your own prompt and orchestration |
600
- | `simple-loop` | Picks GitHub issues one by one and closes them |
641
+ | `simple-loop` | Picks issues one by one and closes them |
601
642
  | `sequential-reviewer` | Implements issues one by one, with a code review step after each |
602
643
  | `parallel-planner` | Plans parallelizable issues, executes on separate branches, then merges |
603
644
  | `parallel-planner-with-review` | Plans parallelizable issues, executes with per-branch review, then merges |
@@ -631,7 +672,7 @@ Errors if `.sandcastle/` already exists to prevent overwriting customizations.
631
672
 
632
673
  ### `sandcastle docker build-image`
633
674
 
634
- Rebuilds the Docker image from an existing `.sandcastle/` directory. Use this after modifying the Dockerfile.
675
+ Rebuilds the Docker image from an existing `.sandcastle/` directory. Use this after modifying the Dockerfile. On Linux/macOS, the build automatically passes `--build-arg AGENT_UID=$(id -u)` and `AGENT_GID=$(id -g)` so the image's `agent` user matches the host UID — this prevents permission errors on image-built files without runtime chown.
635
676
 
636
677
  | Option | Required | Default | Description |
637
678
  | -------------- | -------- | ---------------------------- | --------------------------------------------------------------------------------- |
@@ -667,7 +708,7 @@ Removes the Podman image.
667
708
 
668
709
  | Option | Type | Default | Description |
669
710
  | -------------------- | ------------------ | ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
670
- | `agent` | AgentProvider | — | **Required.** Agent provider (e.g. `claudeCode("claude-opus-4-6")`, `pi("claude-sonnet-4-6")`, `codex("gpt-5.4-mini")`, `opencode("opencode/big-pickle")`) |
711
+ | `agent` | AgentProvider | — | **Required.** Agent provider (e.g. `claudeCode("claude-opus-4-7")`, `pi("claude-sonnet-4-6")`, `codex("gpt-5.4-mini")`, `opencode("opencode/big-pickle")`) |
671
712
  | `sandbox` | SandboxProvider | — | **Required.** Sandbox provider (e.g. `docker()`, `podman()`, `docker({ imageName: "sandcastle:local" })`) |
672
713
  | `cwd` | string | `process.cwd()` | Host repo directory — anchor for `.sandcastle/` artifacts and git operations. Relative paths resolve against `process.cwd()`. |
673
714
  | `prompt` | string | — | Inline prompt (mutually exclusive with `promptFile`) |
@@ -684,6 +725,7 @@ Removes the Podman image.
684
725
  | `resumeSession` | string | — | Resume a prior Claude Code session by ID. Incompatible with `maxIterations > 1`. Session file must exist on host. |
685
726
  | `signal` | AbortSignal | — | Cancel the run when aborted. Kills the in-flight agent subprocess and cancels lifecycle hooks; the worktree is preserved on disk. Rejects with `signal.reason`. |
686
727
  | `timeouts` | Timeouts | — | Override default timeouts for built-in lifecycle steps. Currently supports `{ copyToWorktreeMs?: number }` (default: 60 000). |
728
+ | `output` | OutputDefinition | — | Structured output definition (`Output.object(…)` or `Output.string(…)`). Requires `maxIterations === 1`. See [Structured output](#structured-output). |
687
729
 
688
730
  ### `RunResult`
689
731
 
@@ -695,6 +737,7 @@ Removes the Podman image.
695
737
  | `commits` | `{ sha }[]` | Commits created during the run |
696
738
  | `branch` | string | Target branch name |
697
739
  | `logFilePath` | string? | Path to the log file (only when logging to a file) |
740
+ | `output` | T? | Typed structured output (only present when `output` option is set) |
698
741
 
699
742
  ### `IterationResult`
700
743
 
@@ -725,7 +768,7 @@ Pass `resumeSession` to `run()` to continue a prior Claude Code conversation ins
725
768
 
726
769
  ```typescript
727
770
  const result = await run({
728
- agent: claudeCode("claude-opus-4-6"),
771
+ agent: claudeCode("claude-opus-4-7"),
729
772
  sandbox: docker(),
730
773
  prompt: "Continue where you left off",
731
774
  resumeSession: "abc-123-def",
@@ -746,7 +789,7 @@ Constraints:
746
789
  The `claudeCode()` factory accepts an optional second argument for provider-specific options:
747
790
 
748
791
  ```typescript
749
- agent: claudeCode("claude-opus-4-6", { effort: "high" });
792
+ agent: claudeCode("claude-opus-4-7", { effort: "high" });
750
793
  ```
751
794
 
752
795
  | Option | Type | Default | Description |
@@ -774,7 +817,7 @@ Both **agent providers** and **sandbox providers** accept an optional `env: Reco
774
817
 
775
818
  ```typescript
776
819
  await run({
777
- agent: claudeCode("claude-opus-4-6", {
820
+ agent: claudeCode("claude-opus-4-7", {
778
821
  env: { ANTHROPIC_API_KEY: "sk-ant-..." },
779
822
  }),
780
823
  sandbox: docker({
@@ -1055,19 +1098,19 @@ import { docker } from "@ai-hero/sandcastle/sandboxes/docker";
1055
1098
 
1056
1099
  // head — direct write, bind-mount only (default for bind-mount providers)
1057
1100
  await run({
1058
- agent: claudeCode("claude-opus-4-6"),
1101
+ agent: claudeCode("claude-opus-4-7"),
1059
1102
  sandbox: docker(),
1060
1103
  prompt: "…",
1061
1104
  });
1062
1105
  // merge-to-head — temp branch, merge back (default for isolated providers)
1063
1106
  await run({
1064
- agent: claudeCode("claude-opus-4-6"),
1107
+ agent: claudeCode("claude-opus-4-7"),
1065
1108
  sandbox: tempDir(),
1066
1109
  prompt: "…",
1067
1110
  });
1068
1111
  // branch — explicit named branch
1069
1112
  await run({
1070
- agent: claudeCode("claude-opus-4-6"),
1113
+ agent: claudeCode("claude-opus-4-7"),
1071
1114
  sandbox: docker(),
1072
1115
  branchStrategy: { type: "branch", branch: "agent/fix-42" },
1073
1116
  prompt: "…",
@@ -1082,7 +1125,7 @@ Pass your custom provider via the `sandbox` option — it works the same as the
1082
1125
  import { run, claudeCode } from "@ai-hero/sandcastle";
1083
1126
 
1084
1127
  const result = await run({
1085
- agent: claudeCode("claude-opus-4-6"),
1128
+ agent: claudeCode("claude-opus-4-7"),
1086
1129
  sandbox: localProcess(), // your custom provider
1087
1130
  prompt: "Fix issue #42 in this repo.",
1088
1131
  });
@@ -1092,7 +1135,7 @@ const result = await run({
1092
1135
 
1093
1136
  For real-world examples, see:
1094
1137
 
1095
- - [`src/sandboxes/docker.ts`](src/sandboxes/docker.ts) — bind-mount provider using Docker containers
1138
+ - [`src/sandboxes/docker.ts`](src/sandboxes/docker.ts) — bind-mount provider using Docker containers (with SELinux label support)
1096
1139
  - [`src/sandboxes/vercel.ts`](src/sandboxes/vercel.ts) — isolated provider using Vercel Firecracker microVMs via `@vercel/sandbox`
1097
1140
  - [`src/sandboxes/podman.ts`](src/sandboxes/podman.ts) — bind-mount provider using Podman containers (with SELinux label support)
1098
1141
  - [`src/sandboxes/test-isolated.ts`](src/sandboxes/test-isolated.ts) — isolated provider using temp directories (used in tests)
@@ -45,7 +45,7 @@ export interface AgentProvider {
45
45
  /** Parse token usage from the captured session JSONL content. Only implemented by Claude Code. */
46
46
  parseSessionUsage?(content: string): IterationUsage | undefined;
47
47
  }
48
- export declare const DEFAULT_MODEL = "claude-opus-4-6";
48
+ export declare const DEFAULT_MODEL = "claude-opus-4-7";
49
49
  /** Options for the pi agent provider. */
50
50
  export interface PiOptions {
51
51
  /** Environment variables injected by this agent provider. */
@@ -61,6 +61,8 @@ export interface CodexOptions {
61
61
  export declare const codex: (model: string, options?: CodexOptions | undefined) => AgentProvider;
62
62
  /** Options for the opencode agent provider. */
63
63
  export interface OpenCodeOptions {
64
+ /** Provider-specific reasoning effort variant (e.g. "high", "max", "low", "minimal"). */
65
+ readonly variant?: string;
64
66
  /** Environment variables injected by this agent provider. */
65
67
  readonly env?: Record<string, string>;
66
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AgentProvider.d.ts","sourceRoot":"","sources":["../src/AgentProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentProvider.d.ts","sourceRoot":"","sources":["../src/AgentProvider.ts"],"names":[],"mappings":"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"}
@@ -72,7 +72,7 @@ const parseStreamJsonLine = (line) => {
72
72
  }
73
73
  return [];
74
74
  };
75
- export const DEFAULT_MODEL = "claude-opus-4-6";
75
+ export const DEFAULT_MODEL = "claude-opus-4-7";
76
76
  // ---------------------------------------------------------------------------
77
77
  // Pi agent provider
78
78
  // ---------------------------------------------------------------------------
@@ -221,8 +221,11 @@ export const opencode = (model, options) => ({
221
221
  env: options?.env ?? {},
222
222
  captureSessions: false,
223
223
  buildPrintCommand({ prompt }) {
224
+ const variantFlag = options?.variant
225
+ ? ` --variant ${shellEscape(options.variant)}`
226
+ : "";
224
227
  return {
225
- command: `opencode run --model ${shellEscape(model)} ${shellEscape(prompt)}`,
228
+ command: `opencode run --model ${shellEscape(model)}${variantFlag} ${shellEscape(prompt)}`,
226
229
  };
227
230
  },
228
231
  buildInteractiveArgs({ prompt }) {
@@ -1 +1 @@
1
- {"version":3,"file":"AgentProvider.js","sourceRoot":"","sources":["../src/AgentProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentProvider.js","sourceRoot":"","sources":["../src/AgentProvider.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { Effect } from "effect";
2
2
  import { DockerError } from "./errors.js";
3
+ import { type SelinuxLabel } from "./mountUtils.js";
3
4
  /**
4
5
  * Build the sandcastle Docker image.
5
6
  *
@@ -9,14 +10,28 @@ import { DockerError } from "./errors.js";
9
10
  */
10
11
  export declare const buildImage: (imageName: string, dockerfileDir: string, options?: {
11
12
  readonly dockerfile?: string | undefined;
13
+ readonly buildArgs?: Record<string, string> | undefined;
12
14
  } | undefined) => Effect.Effect<void, DockerError, never>;
15
+ export interface VolumeMount {
16
+ readonly hostPath: string;
17
+ readonly sandboxPath: string;
18
+ readonly readonly?: boolean;
19
+ }
13
20
  export interface StartContainerOptions {
14
- readonly volumeMounts?: readonly string[];
21
+ readonly volumeMounts?: readonly VolumeMount[];
15
22
  readonly workdir?: string;
16
23
  /** Run the container as this uid:gid instead of the Dockerfile's USER. */
17
24
  readonly user?: string;
18
25
  /** Docker network(s) to attach the container to. Passed as `--network` flags. */
19
26
  readonly network?: string | readonly string[];
27
+ /**
28
+ * SELinux volume label suffix applied to bind mounts (default `"z"`).
29
+ *
30
+ * - `"z"` — shared label. No-op on non-SELinux systems.
31
+ * - `"Z"` — private label; only this container can access the mount.
32
+ * - `false` — disable labeling entirely.
33
+ */
34
+ readonly selinuxLabel?: SelinuxLabel;
20
35
  }
21
36
  /**
22
37
  * Start a new container with environment variables injected.
@@ -1 +1 @@
1
- {"version":3,"file":"DockerLifecycle.d.ts","sourceRoot":"","sources":["../src/DockerLifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAwB1C;;;;;;GAMG;AACH,eAAO,MAAM,UAAU;;yDAkBnB,CAAC;AAEL,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;CAC/C;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,iKAwDvB,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,eAAe,oEAQxB,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,WAAW,gEAKpB,CAAC"}
1
+ {"version":3,"file":"DockerLifecycle.d.ts","sourceRoot":"","sources":["../src/DockerLifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAwBvE;;;;;;GAMG;AACH,eAAO,MAAM,UAAU;;;yDA+BnB,CAAC;AAEL,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;IAC9C;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;CACtC;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,iKAyDvB,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,eAAe,oEAQxB,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,WAAW,gEAKpB,CAAC"}
@@ -2,6 +2,7 @@ import { Effect } from "effect";
2
2
  import { execFile } from "node:child_process";
3
3
  import { resolve } from "node:path";
4
4
  import { DockerError } from "./errors.js";
5
+ import { formatVolumeMount } from "./mountUtils.js";
5
6
  const dockerExec = (args) => Effect.async((resume) => {
6
7
  execFile("docker", args, { maxBuffer: 10 * 1024 * 1024 }, (error, stdout, stderr) => {
7
8
  if (error) {
@@ -22,18 +23,26 @@ const dockerExec = (args) => Effect.async((resume) => {
22
23
  * Otherwise, uses `docker build <dockerfileDir>` (the default .sandcastle/ directory).
23
24
  */
24
25
  export const buildImage = (imageName, dockerfileDir, options) => Effect.gen(function* () {
26
+ const buildArgFlags = Object.entries(options?.buildArgs ?? {}).flatMap(([k, v]) => ["--build-arg", `${k}=${v}`]);
25
27
  if (options?.dockerfile) {
26
28
  yield* dockerExec([
27
29
  "build",
28
30
  "-t",
29
31
  imageName,
32
+ ...buildArgFlags,
30
33
  "-f",
31
34
  resolve(options.dockerfile),
32
35
  process.cwd(),
33
36
  ]);
34
37
  }
35
38
  else {
36
- yield* dockerExec(["build", "-t", imageName, resolve(dockerfileDir)]);
39
+ yield* dockerExec([
40
+ "build",
41
+ "-t",
42
+ imageName,
43
+ ...buildArgFlags,
44
+ resolve(dockerfileDir),
45
+ ]);
37
46
  }
38
47
  });
39
48
  /**
@@ -58,9 +67,10 @@ export const startContainer = (containerName, imageName, env, options) => Effect
58
67
  "-e",
59
68
  `${k}=${v}`,
60
69
  ]);
70
+ const selinuxLabel = options?.selinuxLabel ?? "z";
61
71
  const volumeFlags = (options?.volumeMounts ?? []).flatMap((mount) => [
62
72
  "-v",
63
- mount,
73
+ formatVolumeMount(mount, selinuxLabel),
64
74
  ]);
65
75
  const workdirFlags = options?.workdir ? ["-w", options.workdir] : [];
66
76
  const userFlags = options?.user ? ["--user", options.user] : [];
@@ -1 +1 @@
1
- {"version":3,"file":"DockerLifecycle.js","sourceRoot":"","sources":["../src/DockerLifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DockerLifecycle.js","sourceRoot":"","sources":["../src/DockerLifecycle.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EnvResolver.d.ts","sourceRoot":"","sources":["../src/EnvResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAgChC;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,0FAiBnB,CAAC"}
1
+ {"version":3,"file":"EnvResolver.d.ts","sourceRoot":"","sources":["../src/EnvResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AA+ChC;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,0FAiBnB,CAAC"}
@@ -18,11 +18,26 @@ const parseEnvFile = (filePath) => Effect.gen(function* () {
18
18
  continue;
19
19
  const key = trimmed.slice(0, eqIndex).trim();
20
20
  let value = trimmed.slice(eqIndex + 1).trim();
21
- if (value.length >= 2 &&
22
- ((value[0] === '"' && value[value.length - 1] === '"') ||
23
- (value[0] === "'" && value[value.length - 1] === "'"))) {
21
+ const isDoubleQuoted = value.length >= 2 &&
22
+ value[0] === '"' &&
23
+ value[value.length - 1] === '"';
24
+ const isSingleQuoted = value.length >= 2 &&
25
+ value[0] === "'" &&
26
+ value[value.length - 1] === "'";
27
+ if (isDoubleQuoted || isSingleQuoted) {
24
28
  value = value.slice(1, -1);
25
29
  }
30
+ if (isDoubleQuoted) {
31
+ value = value.replace(/\\([nrt\\])/g, (_, ch) => {
32
+ const escapes = {
33
+ n: "\n",
34
+ r: "\r",
35
+ t: "\t",
36
+ "\\": "\\",
37
+ };
38
+ return escapes[ch] ?? ch;
39
+ });
40
+ }
26
41
  vars[key] = value;
27
42
  }
28
43
  return vars;
@@ -1 +1 @@
1
- {"version":3,"file":"EnvResolver.js","sourceRoot":"","sources":["../src/EnvResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,YAAY,GAAG,CACnB,QAAgB,EACqD,EAAE,CACvE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IACxC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,EAAE;SACtB,cAAc,CAAC,QAAQ,CAAC;SACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrD,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAChC,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAClD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,OAAO,KAAK,CAAC,CAAC;YAAE,SAAS;QAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9C,IACE,KAAK,CAAC,MAAM,IAAI,CAAC;YACjB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;gBACpD,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,EACxD,CAAC;YACD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACpB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC,CAAC;AAEL;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,OAAe,EACsD,EAAE,CACvE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,YAAY,CACvC,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,CACrC,CAAC;IAEF,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"EnvResolver.js","sourceRoot":"","sources":["../src/EnvResolver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"InitService.d.ts","sourceRoot":"","sources":["../src/InitService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAUhC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AA4BD,eAAO,MAAM,aAAa,0BAAsC,CAAC;AAMjE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,iFAAiF;IACjF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAgKD,eAAO,MAAM,UAAU,oBAAqC,CAAC;AAM7D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE;QACrB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;QACpC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;QACnC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;QACpC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;KACxC,CAAC;IACF,kGAAkG;IAClG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAkDD,eAAO,MAAM,mBAAmB,6BACN,CAAC;AAE3B,eAAO,MAAM,iBAAiB,mDAGyB,CAAC;AAExD,eAAO,MAAM,QAAQ,0CACwB,CAAC;AAM9C,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,0EAA0E;IAC1E,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAiBD,eAAO,MAAM,oBAAoB,8BACN,CAAC;AAE5B,eAAO,MAAM,kBAAkB,oDAGyB,CAAC;AAMzD,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,MAAM,EAAE,CA8BV;AAqND,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,eAAe,CAAC,EAAE,oBAAoB,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;CACtB;AA2BD,eAAO,MAAM,QAAQ,4GAyEjB,CAAC"}
1
+ {"version":3,"file":"InitService.d.ts","sourceRoot":"","sources":["../src/InitService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAUhC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AA4BD,eAAO,MAAM,aAAa,0BAAsC,CAAC;AAMjE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,iFAAiF;IACjF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAgLD,eAAO,MAAM,UAAU,oBAAqC,CAAC;AAM7D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE;QACrB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;QACpC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;QACnC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;QACpC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;KACxC,CAAC;IACF,kGAAkG;IAClG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAkDD,eAAO,MAAM,mBAAmB,6BACN,CAAC;AAE3B,eAAO,MAAM,iBAAiB,mDAGyB,CAAC;AAExD,eAAO,MAAM,QAAQ,0CACwB,CAAC;AAM9C,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,0EAA0E;IAC1E,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAiBD,eAAO,MAAM,oBAAoB,8BACN,CAAC;AAE5B,eAAO,MAAM,kBAAkB,oDAGyB,CAAC;AAMzD,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,MAAM,EAAE,CA8BV;AAqND,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,eAAe,CAAC,EAAE,oBAAoB,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;CACtB;AA2BD,eAAO,MAAM,QAAQ,4GAyEjB,CAAC"}