@ai-hero/sandcastle 0.4.5 → 0.4.6

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 (89) hide show
  1. package/README.md +35 -19
  2. package/dist/AgentProvider.d.ts +7 -2
  3. package/dist/AgentProvider.d.ts.map +1 -1
  4. package/dist/AgentProvider.js +28 -15
  5. package/dist/AgentProvider.js.map +1 -1
  6. package/dist/{CopyToSandbox.d.ts → CopyToWorkspace.d.ts} +2 -2
  7. package/dist/CopyToWorkspace.d.ts.map +1 -0
  8. package/dist/{CopyToSandbox.js → CopyToWorkspace.js} +2 -2
  9. package/dist/CopyToWorkspace.js.map +1 -0
  10. package/dist/ErrorHandler.d.ts.map +1 -1
  11. package/dist/ErrorHandler.js +3 -0
  12. package/dist/ErrorHandler.js.map +1 -1
  13. package/dist/InitService.d.ts +24 -0
  14. package/dist/InitService.d.ts.map +1 -1
  15. package/dist/InitService.js +117 -11
  16. package/dist/InitService.js.map +1 -1
  17. package/dist/Orchestrator.d.ts.map +1 -1
  18. package/dist/Orchestrator.js +4 -1
  19. package/dist/Orchestrator.js.map +1 -1
  20. package/dist/PodmanLifecycle.d.ts +17 -0
  21. package/dist/PodmanLifecycle.d.ts.map +1 -0
  22. package/dist/PodmanLifecycle.js +45 -0
  23. package/dist/PodmanLifecycle.js.map +1 -0
  24. package/dist/PromptArgumentSubstitution.d.ts +5 -0
  25. package/dist/PromptArgumentSubstitution.d.ts.map +1 -1
  26. package/dist/PromptArgumentSubstitution.js +22 -0
  27. package/dist/PromptArgumentSubstitution.js.map +1 -1
  28. package/dist/PromptPreprocessor.d.ts.map +1 -1
  29. package/dist/PromptPreprocessor.js +6 -0
  30. package/dist/PromptPreprocessor.js.map +1 -1
  31. package/dist/SandboxFactory.d.ts +3 -3
  32. package/dist/SandboxFactory.d.ts.map +1 -1
  33. package/dist/SandboxFactory.js +3 -3
  34. package/dist/SandboxFactory.js.map +1 -1
  35. package/dist/SandboxLifecycle.d.ts.map +1 -1
  36. package/dist/SandboxLifecycle.js +7 -7
  37. package/dist/SandboxLifecycle.js.map +1 -1
  38. package/dist/SandboxProvider.d.ts +73 -1
  39. package/dist/SandboxProvider.d.ts.map +1 -1
  40. package/dist/SandboxProvider.js.map +1 -1
  41. package/dist/cli.d.ts +10 -6
  42. package/dist/cli.d.ts.map +1 -1
  43. package/dist/cli.js +113 -113
  44. package/dist/cli.js.map +1 -1
  45. package/dist/createSandbox.d.ts +23 -1
  46. package/dist/createSandbox.d.ts.map +1 -1
  47. package/dist/createSandbox.js +63 -6
  48. package/dist/createSandbox.js.map +1 -1
  49. package/dist/errors.d.ts +9 -1
  50. package/dist/errors.d.ts.map +1 -1
  51. package/dist/errors.js +3 -0
  52. package/dist/errors.js.map +1 -1
  53. package/dist/index.d.ts +5 -3
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +1 -0
  56. package/dist/index.js.map +1 -1
  57. package/dist/interactive.d.ts +52 -0
  58. package/dist/interactive.d.ts.map +1 -0
  59. package/dist/interactive.js +231 -0
  60. package/dist/interactive.js.map +1 -0
  61. package/dist/run.d.ts +1 -1
  62. package/dist/run.d.ts.map +1 -1
  63. package/dist/run.js +5 -5
  64. package/dist/run.js.map +1 -1
  65. package/dist/sandboxes/docker.d.ts.map +1 -1
  66. package/dist/sandboxes/docker.js +26 -1
  67. package/dist/sandboxes/docker.js.map +1 -1
  68. package/dist/sandboxes/no-sandbox.d.ts +25 -0
  69. package/dist/sandboxes/no-sandbox.d.ts.map +1 -0
  70. package/dist/sandboxes/no-sandbox.js +91 -0
  71. package/dist/sandboxes/no-sandbox.js.map +1 -0
  72. package/dist/sandboxes/podman.d.ts +10 -2
  73. package/dist/sandboxes/podman.d.ts.map +1 -1
  74. package/dist/sandboxes/podman.js +79 -11
  75. package/dist/sandboxes/podman.js.map +1 -1
  76. package/dist/templates/blank/prompt.md +1 -1
  77. package/dist/templates/parallel-planner/implement-prompt.md +2 -2
  78. package/dist/templates/parallel-planner/main.mts +12 -12
  79. package/dist/templates/parallel-planner/plan-prompt.md +3 -3
  80. package/dist/templates/parallel-planner-with-review/implement-prompt.md +2 -2
  81. package/dist/templates/parallel-planner-with-review/main.mts +11 -11
  82. package/dist/templates/parallel-planner-with-review/plan-prompt.md +3 -3
  83. package/dist/templates/sequential-reviewer/implement-prompt.md +2 -2
  84. package/dist/templates/sequential-reviewer/main.mts +3 -3
  85. package/dist/templates/simple-loop/main.mts +2 -2
  86. package/dist/templates/simple-loop/prompt.md +2 -2
  87. package/package.json +8 -2
  88. package/dist/CopyToSandbox.d.ts.map +0 -1
  89. package/dist/CopyToSandbox.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SandboxProvider.d.ts","sourceRoot":"","sources":["../src/SandboxProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SandboxProvider.d.ts","sourceRoot":"","sources":["../src/SandboxProvider.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SandboxProvider.js","sourceRoot":"","sources":["../src/SandboxProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;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"}
1
+ {"version":3,"file":"SandboxProvider.js","sourceRoot":"","sources":["../src/SandboxProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiQH;;;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"}
package/dist/cli.d.ts CHANGED
@@ -2,16 +2,13 @@ import { Command } from "@effect/cli";
2
2
  import { FileSystem } from "@effect/platform";
3
3
  import { Effect } from "effect";
4
4
  import { Display } from "./Display.js";
5
- export declare const sandcastle: Command.Command<"sandcastle", Display | FileSystem.FileSystem, import("./errors.js").SandboxError, {
5
+ import { ConfigDirError, InitError } from "./errors.js";
6
+ export declare const sandcastle: Command.Command<"sandcastle", Display | FileSystem.FileSystem, ConfigDirError | import("./errors.js").DockerError | InitError | import("./errors.js").PodmanError, {
6
7
  readonly subcommand: import("effect/Option").Option<{
7
8
  readonly imageName: import("effect/Option").Option<string>;
8
9
  readonly template: import("effect/Option").Option<string>;
9
10
  readonly agent: import("effect/Option").Option<string>;
10
11
  readonly model: import("effect/Option").Option<string>;
11
- } | {
12
- readonly imageName: import("effect/Option").Option<string>;
13
- readonly agent: string;
14
- readonly model: import("effect/Option").Option<string>;
15
12
  } | {
16
13
  readonly subcommand: import("effect/Option").Option<{
17
14
  readonly imageName: import("effect/Option").Option<string>;
@@ -19,7 +16,14 @@ export declare const sandcastle: Command.Command<"sandcastle", Display | FileSys
19
16
  } | {
20
17
  readonly imageName: import("effect/Option").Option<string>;
21
18
  }>;
19
+ } | {
20
+ readonly subcommand: import("effect/Option").Option<{
21
+ readonly imageName: import("effect/Option").Option<string>;
22
+ readonly containerfile: import("effect/Option").Option<string>;
23
+ } | {
24
+ readonly imageName: import("effect/Option").Option<string>;
25
+ }>;
22
26
  }>;
23
27
  }>;
24
- export declare const cli: (args: readonly string[]) => Effect.Effect<void, import("./errors.js").SandboxError | import("@effect/cli/ValidationError").ValidationError, Display | import("@effect/cli/CliApp").CliApp.Environment>;
28
+ export declare const cli: (args: readonly string[]) => Effect.Effect<void, ConfigDirError | import("./errors.js").DockerError | InitError | import("./errors.js").PodmanError | import("@effect/cli/ValidationError").ValidationError, Display | import("@effect/cli/CliApp").CliApp.Environment>;
25
29
  //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAW,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAS,MAAM,QAAQ,CAAC;AAOvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAmevC,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;EAEtB,CAAC;AAEF,eAAO,MAAM,GAAG,yMAGd,CAAC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAW,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAOhC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAuBvC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAwbxD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;EAEtB,CAAC;AAEF,eAAO,MAAM,GAAG,yQAGd,CAAC"}
package/dist/cli.js CHANGED
@@ -1,22 +1,17 @@
1
1
  import { Command, Options } from "@effect/cli";
2
2
  import { FileSystem } from "@effect/platform";
3
- import { NodeFileSystem } from "@effect/platform-node";
4
- import { Effect, Layer } from "effect";
3
+ import { Effect } from "effect";
5
4
  import * as clack from "@clack/prompts";
6
- import { execSync, spawn } from "node:child_process";
5
+ import { execSync } from "node:child_process";
7
6
  import { createRequire } from "node:module";
8
7
  import { join } from "node:path";
9
8
  import { styleText } from "node:util";
10
9
  import { Display } from "./Display.js";
11
10
  import { buildImage, removeImage } from "./DockerLifecycle.js";
12
- import { scaffold, listTemplates, listAgents, getAgent, getNextStepsLines, } from "./InitService.js";
11
+ import { buildImage as podmanBuildImage, removeImage as podmanRemoveImage, } from "./PodmanLifecycle.js";
12
+ import { scaffold, listTemplates, listAgents, getAgent, listBacklogManagers, getBacklogManager, listSandboxProviders, getSandboxProvider, getNextStepsLines, } from "./InitService.js";
13
13
  import { defaultImageName } from "./sandboxes/docker.js";
14
- import { claudeCode, codex as codexFactory, opencode as opencodeFactory, pi as piFactory, DEFAULT_MODEL, } from "./AgentProvider.js";
15
- import { AgentError, ConfigDirError, InitError } from "./errors.js";
16
- import { SandboxFactory, WorktreeDockerSandboxFactory, SandboxConfig, } from "./SandboxFactory.js";
17
- import { withSandboxLifecycle } from "./SandboxLifecycle.js";
18
- import { resolveEnv } from "./EnvResolver.js";
19
- import { docker } from "./sandboxes/docker.js";
14
+ import { ConfigDirError, InitError } from "./errors.js";
20
15
  const require = createRequire(import.meta.url);
21
16
  const VERSION = require("../package.json").version;
22
17
  // --- Shared options ---
@@ -48,6 +43,17 @@ const initCommand = Command.make("init", {
48
43
  const d = yield* Display;
49
44
  const cwd = process.cwd();
50
45
  const imageName = resolveImageName(imageNameFlag, cwd);
46
+ // Early validation of CLI flags before interactive prompts
47
+ const templates = listTemplates();
48
+ if (template._tag === "Some") {
49
+ const valid = templates.find((tmpl) => tmpl.name === template.value);
50
+ if (!valid) {
51
+ const names = templates.map((tmpl) => tmpl.name).join(", ");
52
+ yield* Effect.fail(new InitError({
53
+ message: `Unknown template "${template.value}". Available: ${names}`,
54
+ }));
55
+ }
56
+ }
51
57
  // Resolve agent: CLI flag > interactive select
52
58
  const agents = listAgents();
53
59
  let selectedAgent;
@@ -80,19 +86,47 @@ const initCommand = Command.make("init", {
80
86
  const selectedModel = modelFlag._tag === "Some"
81
87
  ? modelFlag.value
82
88
  : selectedAgent.defaultModel;
83
- // Resolve template: CLI flag > interactive select
84
- const templates = listTemplates();
85
- let selectedTemplate;
86
- if (template._tag === "Some") {
87
- const t = template.value;
88
- const valid = templates.find((tmpl) => tmpl.name === t);
89
- if (!valid) {
90
- const names = templates.map((tmpl) => tmpl.name).join(", ");
89
+ // Resolve sandbox provider: interactive select (no default — user must choose)
90
+ const sandboxProviders = listSandboxProviders();
91
+ let selectedSandboxProvider;
92
+ {
93
+ const selected = yield* Effect.promise(() => clack.select({
94
+ message: "Select a sandbox provider:",
95
+ options: sandboxProviders.map((p) => ({
96
+ value: p.name,
97
+ label: p.label,
98
+ })),
99
+ }));
100
+ if (clack.isCancel(selected)) {
101
+ yield* Effect.fail(new InitError({
102
+ message: "Sandbox provider selection cancelled.",
103
+ }));
104
+ }
105
+ selectedSandboxProvider = getSandboxProvider(selected);
106
+ }
107
+ // Resolve backlog manager: interactive select
108
+ const backlogManagers = listBacklogManagers();
109
+ let selectedBacklogManager;
110
+ {
111
+ const selected = yield* Effect.promise(() => clack.select({
112
+ message: "Select a backlog manager:",
113
+ initialValue: "github-issues",
114
+ options: backlogManagers.map((b) => ({
115
+ value: b.name,
116
+ label: b.label,
117
+ })),
118
+ }));
119
+ if (clack.isCancel(selected)) {
91
120
  yield* Effect.fail(new InitError({
92
- message: `Unknown template "${t}". Available: ${names}`,
121
+ message: "Backlog manager selection cancelled.",
93
122
  }));
94
123
  }
95
- selectedTemplate = t;
124
+ selectedBacklogManager = getBacklogManager(selected);
125
+ }
126
+ // Resolve template: CLI flag > interactive select (already validated above)
127
+ let selectedTemplate;
128
+ if (template._tag === "Some") {
129
+ selectedTemplate = template.value;
96
130
  }
97
131
  else {
98
132
  const selected = yield* Effect.promise(() => clack.select({
@@ -109,36 +143,48 @@ const initCommand = Command.make("init", {
109
143
  }
110
144
  selectedTemplate = selected;
111
145
  }
112
- // Offer to create the "Sandcastle" label on the repo
113
- const shouldCreateLabel = yield* Effect.promise(() => clack.confirm({
114
- message: 'Create a "Sandcastle" GitHub label? (Templates filter issues by this label)',
115
- initialValue: true,
116
- }));
117
- if (shouldCreateLabel === true) {
118
- yield* Effect.try({
119
- try: () => execSync('gh label create "Sandcastle" --description "Issues for Sandcastle to work on" --color "F9A825" 2>/dev/null', { cwd, stdio: "ignore" }),
120
- catch: () => undefined,
121
- }).pipe(Effect.ignore);
146
+ // Offer to create the "Sandcastle" label on the repo (skip for non-GitHub backlog managers)
147
+ let shouldCreateLabel = false;
148
+ if (selectedBacklogManager.name === "github-issues") {
149
+ shouldCreateLabel = yield* Effect.promise(() => clack.confirm({
150
+ message: 'Create a "Sandcastle" GitHub label? (Templates filter issues by this label)',
151
+ initialValue: true,
152
+ }));
153
+ if (shouldCreateLabel === true) {
154
+ yield* Effect.try({
155
+ try: () => execSync('gh label create "Sandcastle" --description "Issues for Sandcastle to work on" --color "F9A825" 2>/dev/null', { cwd, stdio: "ignore" }),
156
+ catch: () => undefined,
157
+ }).pipe(Effect.ignore);
158
+ }
122
159
  }
123
160
  const scaffoldResult = yield* d.spinner("Scaffolding .sandcastle/ config directory...", scaffold(cwd, {
124
161
  agent: selectedAgent,
125
162
  model: selectedModel,
126
163
  templateName: selectedTemplate,
164
+ createLabel: shouldCreateLabel === true,
165
+ backlogManager: selectedBacklogManager,
166
+ sandboxProvider: selectedSandboxProvider,
127
167
  }).pipe(Effect.mapError((e) => new InitError({
128
168
  message: `${e instanceof Error ? e.message : e}`,
129
169
  }))));
130
170
  // Prompt user before building image
171
+ const providerLabel = selectedSandboxProvider.label;
131
172
  const shouldBuild = yield* Effect.promise(() => clack.confirm({
132
- message: "Build the default Docker image now?",
173
+ message: `Build the default ${providerLabel} image now?`,
133
174
  initialValue: true,
134
175
  }));
135
176
  if (shouldBuild === true) {
136
- const dockerfileDir = join(cwd, CONFIG_DIR);
137
- yield* d.spinner(`Building Docker image '${imageName}'...`, buildImage(imageName, dockerfileDir));
177
+ const containerfileDir = join(cwd, CONFIG_DIR);
178
+ if (selectedSandboxProvider.name === "podman") {
179
+ yield* d.spinner(`Building ${providerLabel} image '${imageName}'...`, podmanBuildImage(imageName, containerfileDir));
180
+ }
181
+ else {
182
+ yield* d.spinner(`Building ${providerLabel} image '${imageName}'...`, buildImage(imageName, containerfileDir));
183
+ }
138
184
  yield* d.status("Init complete! Image built successfully.", "success");
139
185
  }
140
186
  else {
141
- yield* d.status("Init complete! Run `sandcastle docker build-image` to build the Docker image later.", "success");
187
+ yield* d.status(`Init complete! Run \`sandcastle ${selectedSandboxProvider.cliNamespace} build-image\` to build the ${providerLabel} image later.`, "success");
142
188
  }
143
189
  // Show template-specific next steps
144
190
  const nextSteps = getNextStepsLines(selectedTemplate, scaffoldResult.mainFilename);
@@ -173,96 +219,50 @@ const removeImageCommand = Command.make("remove-image", {
173
219
  yield* d.spinner(`Removing Docker image '${imageName}'...`, removeImage(imageName));
174
220
  yield* d.status("Image removed.", "success");
175
221
  }));
176
- // --- Interactive command ---
177
- /** CLI-internal registry mapping agent names to factory + default model */
178
- const AGENT_REGISTRY = {
179
- "claude-code": { factory: claudeCode, defaultModel: DEFAULT_MODEL },
180
- pi: { factory: piFactory, defaultModel: "claude-sonnet-4-6" },
181
- codex: { factory: codexFactory, defaultModel: "gpt-5.4-mini" },
182
- opencode: { factory: opencodeFactory, defaultModel: "opencode/big-pickle" },
183
- };
184
- const interactiveAgentOption = Options.text("agent").pipe(Options.withDescription(`Agent provider to use (${Object.keys(AGENT_REGISTRY).join(", ")})`), Options.withDefault("claude-code"));
185
- const modelOption = Options.text("model").pipe(Options.withDescription("Model to use for the agent (e.g. claude-sonnet-4-6)"), Options.optional);
186
- const interactiveSession = (options) => Effect.gen(function* () {
187
- const { hostRepoDir, provider } = options;
188
- const factory = yield* SandboxFactory;
189
- const d = yield* Display;
190
- yield* factory.withSandbox(({ hostWorktreePath, sandboxWorkspacePath }) => withSandboxLifecycle({ hostRepoDir, sandboxRepoDir: sandboxWorkspacePath, hostWorktreePath }, (ctx) => Effect.gen(function* () {
191
- // Get sandbox ID for interactive session
192
- const hostnameResult = yield* ctx.sandbox.exec("hostname");
193
- const containerId = hostnameResult.stdout.trim();
194
- yield* d.status(`Launching interactive ${provider.name} session...`, "info");
195
- const exitCode = yield* Effect.async((resume) => {
196
- const proc = spawn("docker", [
197
- "exec",
198
- "-it",
199
- "-w",
200
- ctx.sandboxRepoDir,
201
- containerId,
202
- ...provider.buildInteractiveArgs(""),
203
- ], { stdio: "inherit" });
204
- proc.on("error", (error) => {
205
- resume(Effect.fail(new AgentError({
206
- message: `Failed to launch ${provider.name}: ${error.message}`,
207
- })));
208
- });
209
- proc.on("close", (code) => {
210
- resume(Effect.succeed(code ?? 0));
211
- });
212
- });
213
- yield* d.status(`Session ended (exit code ${exitCode}). Syncing changes back...`, "info");
214
- })));
215
- });
216
- const interactiveCommand = Command.make("interactive", {
217
- imageName: imageNameOption,
218
- agent: interactiveAgentOption,
219
- model: modelOption,
220
- }, ({ imageName: imageNameFlag, agent: agentName, model }) => Effect.gen(function* () {
221
- const hostRepoDir = process.cwd();
222
- yield* requireConfigDir(hostRepoDir);
223
- const imageName = resolveImageName(imageNameFlag, hostRepoDir);
224
- // Resolve agent provider from registry
225
- const entry = AGENT_REGISTRY[agentName];
226
- if (!entry) {
227
- const available = Object.keys(AGENT_REGISTRY).join(", ");
228
- yield* Effect.fail(new AgentError({
229
- message: `Unknown agent "${agentName}". Available: ${available}`,
230
- }));
231
- return; // unreachable, satisfies TypeScript
232
- }
233
- const resolvedModel = model._tag === "Some" ? model.value : entry.defaultModel;
234
- const provider = entry.factory(resolvedModel);
235
- // Resolve env vars
236
- const env = yield* resolveEnv(hostRepoDir);
237
- const d = yield* Display;
238
- yield* d.summary("Sandcastle Interactive", {
239
- Image: imageName,
240
- Agent: provider.name,
241
- Model: resolvedModel,
242
- });
243
- const factoryLayer = Layer.provide(WorktreeDockerSandboxFactory.layer, Layer.merge(Layer.succeed(SandboxConfig, {
244
- env,
245
- hostRepoDir,
246
- sandboxProvider: docker({ imageName }),
247
- branchStrategy: { type: "head" },
248
- }), NodeFileSystem.layer));
249
- yield* interactiveSession({
250
- hostRepoDir,
251
- provider,
252
- }).pipe(Effect.provide(factoryLayer));
253
- }));
254
222
  // --- Docker namespace command ---
255
223
  const dockerCommand = Command.make("docker", {}, () => Effect.gen(function* () {
256
224
  const d = yield* Display;
257
225
  yield* d.status("Docker sandbox commands. Use --help to see available subcommands.", "info");
258
226
  })).pipe(Command.withSubcommands([buildImageCommand, removeImageCommand]));
227
+ // --- Podman build-image command ---
228
+ const containerfileOption = Options.file("containerfile").pipe(Options.withDescription("Path to a custom Containerfile (build context will be the current working directory)"), Options.optional);
229
+ const podmanBuildImageCommand = Command.make("build-image", {
230
+ imageName: imageNameOption,
231
+ containerfile: containerfileOption,
232
+ }, ({ imageName: imageNameFlag, containerfile }) => Effect.gen(function* () {
233
+ const d = yield* Display;
234
+ const cwd = process.cwd();
235
+ yield* requireConfigDir(cwd);
236
+ const imageName = resolveImageName(imageNameFlag, cwd);
237
+ const containerfileDir = join(cwd, CONFIG_DIR);
238
+ const containerfilePath = containerfile._tag === "Some" ? containerfile.value : undefined;
239
+ yield* d.spinner(`Building Podman image '${imageName}'...`, podmanBuildImage(imageName, containerfileDir, {
240
+ containerfile: containerfilePath,
241
+ }));
242
+ yield* d.status("Build complete!", "success");
243
+ }));
244
+ // --- Podman remove-image command ---
245
+ const podmanRemoveImageCommand = Command.make("remove-image", {
246
+ imageName: imageNameOption,
247
+ }, ({ imageName: imageNameFlag }) => Effect.gen(function* () {
248
+ const d = yield* Display;
249
+ const cwd = process.cwd();
250
+ const imageName = resolveImageName(imageNameFlag, cwd);
251
+ yield* d.spinner(`Removing Podman image '${imageName}'...`, podmanRemoveImage(imageName));
252
+ yield* d.status("Image removed.", "success");
253
+ }));
254
+ // --- Podman namespace command ---
255
+ const podmanCommand = Command.make("podman", {}, () => Effect.gen(function* () {
256
+ const d = yield* Display;
257
+ yield* d.status("Podman sandbox commands. Use --help to see available subcommands.", "info");
258
+ })).pipe(Command.withSubcommands([podmanBuildImageCommand, podmanRemoveImageCommand]));
259
259
  // --- Root command ---
260
260
  const rootCommand = Command.make("sandcastle", {}, () => Effect.gen(function* () {
261
261
  const d = yield* Display;
262
262
  yield* d.status(`Sandcastle v${VERSION}`, "info");
263
263
  yield* d.status("Use --help to see available commands.", "info");
264
264
  }));
265
- export const sandcastle = rootCommand.pipe(Command.withSubcommands([initCommand, dockerCommand, interactiveCommand]));
265
+ export const sandcastle = rootCommand.pipe(Command.withSubcommands([initCommand, dockerCommand, podmanCommand]));
266
266
  export const cli = Command.run(sandcastle, {
267
267
  name: "sandcastle",
268
268
  version: VERSION,
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ export interface CreateSandboxOptions {
17
17
  }>;
18
18
  };
19
19
  /** Paths relative to the host repo root to copy into the worktree at creation time. */
20
- readonly copyToSandbox?: string[];
20
+ readonly copyToWorkspace?: string[];
21
21
  /** When false, reuse an existing worktree instead of failing on collision. Default: true. */
22
22
  readonly throwOnDuplicateWorktree?: boolean;
23
23
  /** @internal Test-only overrides to bypass the sandbox provider. */
@@ -60,6 +60,26 @@ export interface SandboxRunResult {
60
60
  /** Path to the log file, if logging was drained to a file. */
61
61
  readonly logFilePath?: string;
62
62
  }
63
+ export interface SandboxInteractiveOptions {
64
+ /** Agent provider to use (e.g. claudeCode("claude-opus-4-6")). */
65
+ readonly agent: AgentProvider;
66
+ /** Inline prompt string (mutually exclusive with promptFile). */
67
+ readonly prompt?: string;
68
+ /** Path to a prompt file (mutually exclusive with prompt). */
69
+ readonly promptFile?: string;
70
+ /** Key-value map for {{KEY}} placeholder substitution in prompts. */
71
+ readonly promptArgs?: PromptArgs;
72
+ /** Display name for this interactive session. */
73
+ readonly name?: string;
74
+ }
75
+ export interface SandboxInteractiveResult {
76
+ /** List of commits made during the interactive session. */
77
+ readonly commits: {
78
+ sha: string;
79
+ }[];
80
+ /** Exit code of the interactive process. */
81
+ readonly exitCode: number;
82
+ }
63
83
  export interface CloseResult {
64
84
  /** Host path to the preserved worktree, set when the worktree had uncommitted changes. */
65
85
  readonly preservedWorktreePath?: string;
@@ -71,6 +91,8 @@ export interface Sandbox {
71
91
  readonly worktreePath: string;
72
92
  /** Invoke an agent inside the existing sandbox. */
73
93
  run(options: SandboxRunOptions): Promise<SandboxRunResult>;
94
+ /** Launch an interactive agent session inside the existing sandbox. */
95
+ interactive(options: SandboxInteractiveOptions): Promise<SandboxInteractiveResult>;
74
96
  /** Tear down the sandbox and worktree. */
75
97
  close(): Promise<CloseResult>;
76
98
  /** Auto teardown via `await using`. */
@@ -1 +1 @@
1
- {"version":3,"file":"createSandbox.d.ts","sourceRoot":"","sources":["../src/createSandbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createSandbox.d.ts","sourceRoot":"","sources":["../src/createSandbox.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,20 @@
1
1
  import { NodeContext, NodeFileSystem } from "@effect/platform-node";
2
2
  import { join } from "node:path";
3
3
  import { Effect, Layer, Ref } from "effect";
4
- import { Display, FileDisplay, SilentDisplay, } from "./Display.js";
4
+ import { ClackDisplay, Display, FileDisplay, SilentDisplay, } from "./Display.js";
5
5
  import { resolveEnv } from "./EnvResolver.js";
6
6
  import { mergeProviderEnv } from "./mergeProviderEnv.js";
7
7
  import { orchestrate } from "./Orchestrator.js";
8
8
  import { substitutePromptArgs, validateNoBuiltInArgOverride, BUILT_IN_PROMPT_ARG_KEYS, } from "./PromptArgumentSubstitution.js";
9
9
  import { resolvePrompt } from "./PromptResolver.js";
10
+ import { preprocessPrompt } from "./PromptPreprocessor.js";
10
11
  import { buildLogFilename, printFileDisplayStartup } from "./run.js";
12
+ import { withSandboxLifecycle } from "./SandboxLifecycle.js";
11
13
  import { Sandbox as SandboxTag, SandboxFactory, SANDBOX_WORKSPACE_DIR, resolveGitMounts, } from "./SandboxFactory.js";
12
14
  import { startSandbox } from "./startSandbox.js";
13
15
  import { syncOut } from "./syncOut.js";
14
16
  import * as WorktreeManager from "./WorktreeManager.js";
15
- import { copyToSandbox } from "./CopyToSandbox.js";
17
+ import { copyToWorkspace } from "./CopyToWorkspace.js";
16
18
  /**
17
19
  * Eagerly creates a git worktree on the provided explicit branch and starts
18
20
  * a sandbox with the worktree bind-mounted. Returns a Sandbox handle that
@@ -32,10 +34,10 @@ export const createSandbox = async (options) => {
32
34
  .pipe(Effect.provide(NodeContext.layer)));
33
35
  const worktreePath = worktreeInfo.path;
34
36
  // 2. Copy files if requested (bind-mount only; isolated providers handle this in startSandbox)
35
- if (options.copyToSandbox &&
36
- options.copyToSandbox.length > 0 &&
37
+ if (options.copyToWorkspace &&
38
+ options.copyToWorkspace.length > 0 &&
37
39
  options.sandbox.tag !== "isolated") {
38
- await Effect.runPromise(copyToSandbox(options.copyToSandbox, hostRepoDir, worktreePath));
40
+ await Effect.runPromise(copyToWorkspace(options.copyToWorkspace, hostRepoDir, worktreePath));
39
41
  }
40
42
  // 3. Start sandbox via provider or local sandbox layer (test mode)
41
43
  let providerHandle;
@@ -61,7 +63,7 @@ export const createSandbox = async (options) => {
61
63
  provider,
62
64
  hostRepoDir: worktreePath,
63
65
  env,
64
- copyPaths: options.copyToSandbox,
66
+ copyPaths: options.copyToWorkspace,
65
67
  });
66
68
  }
67
69
  else {
@@ -197,6 +199,61 @@ export const createSandbox = async (options) => {
197
199
  logFilePath: resolvedLogging.type === "file" ? resolvedLogging.path : undefined,
198
200
  };
199
201
  },
202
+ interactive: async (interactiveOptions) => {
203
+ const { agent: provider, prompt, promptFile } = interactiveOptions;
204
+ // Validate buildInteractiveArgs is available
205
+ if (!provider.buildInteractiveArgs) {
206
+ throw new Error(`Agent provider "${provider.name}" does not support buildInteractiveArgs, required for interactive sessions.`);
207
+ }
208
+ // Validate interactiveExec is available on the handle
209
+ if (!providerHandle?.interactiveExec) {
210
+ throw new Error(`Sandbox provider does not support interactiveExec. ` +
211
+ `The provider must implement the optional interactiveExec method to use interactive().`);
212
+ }
213
+ const interactiveExecFn = providerHandle.interactiveExec.bind(providerHandle);
214
+ const lifecycleResult = await Effect.runPromise(Effect.gen(function* () {
215
+ // Resolve prompt
216
+ const rawPrompt = yield* resolvePrompt({ prompt, promptFile });
217
+ // Resolve prompt arguments
218
+ const userArgs = interactiveOptions.promptArgs ?? {};
219
+ const currentHostBranch = yield* WorktreeManager.getCurrentBranch(hostRepoDir);
220
+ yield* validateNoBuiltInArgOverride(userArgs);
221
+ const effectiveArgs = {
222
+ SOURCE_BRANCH: branch,
223
+ TARGET_BRANCH: currentHostBranch,
224
+ ...userArgs,
225
+ };
226
+ const builtInArgKeysSet = new Set(BUILT_IN_PROMPT_ARG_KEYS);
227
+ const resolvedPrompt = yield* substitutePromptArgs(rawPrompt, effectiveArgs, builtInArgKeysSet);
228
+ // Run interactive session using withSandboxLifecycle for commit collection
229
+ return yield* withSandboxLifecycle({
230
+ hostRepoDir,
231
+ sandboxRepoDir,
232
+ branch,
233
+ hostWorktreePath: worktreePath,
234
+ applyToHost,
235
+ }, (ctx) => Effect.gen(function* () {
236
+ // Preprocess prompt (expand !`command` shell expressions inside sandbox)
237
+ const fullPrompt = yield* preprocessPrompt(resolvedPrompt, ctx.sandbox, ctx.sandboxRepoDir);
238
+ // Build interactive args and run the session
239
+ const interactiveArgs = provider.buildInteractiveArgs({
240
+ prompt: fullPrompt,
241
+ dangerouslySkipPermissions: true,
242
+ });
243
+ const result = yield* Effect.promise(() => interactiveExecFn(interactiveArgs, {
244
+ stdin: process.stdin,
245
+ stdout: process.stdout,
246
+ stderr: process.stderr,
247
+ cwd: sandboxRepoDir,
248
+ }));
249
+ return result.exitCode;
250
+ }));
251
+ }).pipe(Effect.provide(sandboxLayer), Effect.provide(ClackDisplay.layer), Effect.provide(NodeContext.layer)));
252
+ return {
253
+ commits: lifecycleResult.commits,
254
+ exitCode: lifecycleResult.result,
255
+ };
256
+ },
200
257
  close: async () => {
201
258
  process.removeListener("SIGINT", onSignal);
202
259
  process.removeListener("SIGTERM", onSignal);