@rosthq/cli 0.7.48 → 0.7.49

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/dist/index.js CHANGED
@@ -53459,7 +53459,7 @@ function resolveTurnPlan(input) {
53459
53459
  };
53460
53460
  }
53461
53461
  function buildTurnCommand(input) {
53462
- const { runtime, prompt, configPath, plan, resumeSessionId } = input;
53462
+ const { runtime, prompt, configPath, plan, resumeSessionId, disableClaudeBashSandbox } = input;
53463
53463
  if (runtime === "codex") {
53464
53464
  return {
53465
53465
  command: "codex",
@@ -53488,6 +53488,9 @@ function buildTurnCommand(input) {
53488
53488
  plan.claudeAllowedTools.join(","),
53489
53489
  "--output-format",
53490
53490
  plan.outputFormat,
53491
+ // DER-1397: turn off Claude Code's own nested Bash sandbox when the outer seatbelt confines
53492
+ // us — the JSON is passed inline (no secret; sandbox-exec reads its profile from a file).
53493
+ ...disableClaudeBashSandbox ? ["--settings", '{"sandbox":{"enabled":false}}'] : [],
53491
53494
  ...plan.repoDir !== null ? ["--add-dir", plan.repoDir] : [],
53492
53495
  ...resumeSessionId ? ["--resume", resumeSessionId] : []
53493
53496
  ]
@@ -53728,7 +53731,15 @@ async function spawnRunnerTurn(ctx, workOrder, runtime, kind) {
53728
53731
  `, { mode: 384 });
53729
53732
  await chmod2(configPath, 384);
53730
53733
  const resumeSessionId = runtime === "claude" ? getClaudeResumeSessionId(ctx.state, workOrder) : void 0;
53731
- const built = buildTurnCommand({ runtime, prompt, configPath, plan, resumeSessionId });
53734
+ const built = buildTurnCommand({
53735
+ runtime,
53736
+ prompt,
53737
+ configPath,
53738
+ plan,
53739
+ resumeSessionId,
53740
+ // DER-1397: outer seatbelt active ⇒ disable claude's nested bash sandbox (bash runs in the repo cwd).
53741
+ disableClaudeBashSandbox: sandbox.kind === "seatbelt"
53742
+ });
53732
53743
  let sandboxProfilePath = null;
53733
53744
  if (sandbox.kind === "seatbelt") {
53734
53745
  sandboxProfilePath = path5.join(
@@ -53935,7 +53946,14 @@ async function spawnMergeConflictModel(ctx, input) {
53935
53946
  await writeFile3(sandboxProfilePath, input.sandbox.profile, { mode: 384 });
53936
53947
  await chmod2(sandboxProfilePath, 384);
53937
53948
  }
53938
- const built = buildTurnCommand({ runtime: input.runtime, prompt, configPath, plan });
53949
+ const built = buildTurnCommand({
53950
+ runtime: input.runtime,
53951
+ prompt,
53952
+ configPath,
53953
+ plan,
53954
+ // DER-1397: outer seatbelt active ⇒ disable claude's nested bash sandbox (bash runs in the repo cwd).
53955
+ disableClaudeBashSandbox: input.sandbox.kind === "seatbelt"
53956
+ });
53939
53957
  const { command, args } = wrapCommandWithSandbox(input.sandbox, built.command, built.args, sandboxProfilePath);
53940
53958
  const spawnStartedAt = (/* @__PURE__ */ new Date()).toISOString();
53941
53959
  const result = await runModelProcess({