@whittlelabs/sifter 0.30.12 → 0.30.14

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 (3) hide show
  1. package/bin.js +43 -5
  2. package/bin.js.map +2 -2
  3. package/package.json +1 -1
package/bin.js CHANGED
@@ -10030,6 +10030,7 @@ var require_claude_code = __commonJS({
10030
10030
  Object.defineProperty(exports2, "__esModule", { value: true });
10031
10031
  exports2.classifyEnvironmentFault = classifyEnvironmentFault;
10032
10032
  exports2.createClaudeCodeExecutor = createClaudeCodeExecutor;
10033
+ exports2.checkoutScopedTools = checkoutScopedTools;
10033
10034
  exports2.parseStreamJson = parseStreamJson;
10034
10035
  exports2.relativeWorkspaceReads = relativeWorkspaceReads;
10035
10036
  exports2.globToRegExp = globToRegExp;
@@ -10046,6 +10047,26 @@ var require_claude_code = __commonJS({
10046
10047
  var progress_1 = require_progress();
10047
10048
  var apply_1 = require_apply();
10048
10049
  var DEFAULT_TIMEOUT = 6e5;
10050
+ var UNTRUSTED_TREE_ARGS = ["--setting-sources", "user", "--strict-mcp-config"];
10051
+ var CHECKOUT_READ_TOOLS = ["Read", "Grep", "Glob", "LS"];
10052
+ var HOSTED_ENV_PASSTHROUGH = [
10053
+ "PATH",
10054
+ "HOME",
10055
+ "TMPDIR",
10056
+ "LANG",
10057
+ "LC_ALL",
10058
+ "LC_CTYPE",
10059
+ "TZ",
10060
+ "NODE_EXTRA_CA_CERTS",
10061
+ "SSL_CERT_FILE",
10062
+ "SSL_CERT_DIR",
10063
+ "HTTPS_PROXY",
10064
+ "HTTP_PROXY",
10065
+ "NO_PROXY",
10066
+ "https_proxy",
10067
+ "http_proxy",
10068
+ "no_proxy"
10069
+ ];
10049
10070
  function describeClaudeFailure(meta, fallback) {
10050
10071
  if (!meta)
10051
10072
  return fallback;
@@ -10308,8 +10329,9 @@ var require_claude_code = __commonJS({
10308
10329
  runClaude(prompt, spec, cwd, childEnv, signal, modelOverride, reporter, resumeSessionId, transcriptName, local = false) {
10309
10330
  const outputLabel = spec.outputLabel;
10310
10331
  const model = modelOverride ?? this.config.model;
10332
+ const allowedTools = local ? this.config.allowedTools : checkoutScopedTools(this.config.allowedTools);
10311
10333
  return new Promise((resolve, reject) => {
10312
- const args = ["--print", "--output-format", "stream-json", "--verbose"];
10334
+ const args = ["--print", "--output-format", "stream-json", "--verbose", ...UNTRUSTED_TREE_ARGS];
10313
10335
  if (resumeSessionId)
10314
10336
  args.push("--resume", resumeSessionId);
10315
10337
  if (spec.outputSchema && typeof spec.outputSchema === "object" && Object.keys(spec.outputSchema).length > 0) {
@@ -10319,8 +10341,8 @@ var require_claude_code = __commonJS({
10319
10341
  args.push("--model", model);
10320
10342
  if (this.config.maxTurns !== void 0)
10321
10343
  args.push("--max-turns", String(this.config.maxTurns));
10322
- if (this.config.allowedTools && this.config.allowedTools.length > 0) {
10323
- args.push("--allowedTools", this.config.allowedTools.join(","));
10344
+ if (allowedTools && allowedTools.length > 0) {
10345
+ args.push("--allowedTools", allowedTools.join(","));
10324
10346
  }
10325
10347
  let child;
10326
10348
  try {
@@ -10517,11 +10539,27 @@ var require_claude_code = __commonJS({
10517
10539
  }
10518
10540
  return new ClaudeCodeExecutor(validated);
10519
10541
  }
10542
+ function checkoutScopedTools(tools) {
10543
+ if (!tools)
10544
+ return void 0;
10545
+ return tools.map((tool) => {
10546
+ const name = CHECKOUT_READ_TOOLS.find((t) => tool === t || tool === `${t}(./**)`);
10547
+ if (!name) {
10548
+ throw new Error(`claude-code: a hosted run may use only ${CHECKOUT_READ_TOOLS.join(", ")} inside the checkout; "${tool}" is not allowed`);
10549
+ }
10550
+ return `${name}(./**)`;
10551
+ });
10552
+ }
10520
10553
  function buildChildEnv(modelKey, configDir) {
10521
10554
  if (!modelKey && !configDir)
10522
10555
  return void 0;
10556
+ const env = {};
10557
+ for (const name of HOSTED_ENV_PASSTHROUGH) {
10558
+ if (process.env[name] !== void 0)
10559
+ env[name] = process.env[name];
10560
+ }
10523
10561
  return {
10524
- ...process.env,
10562
+ ...env,
10525
10563
  ...modelKey ? { ANTHROPIC_API_KEY: modelKey } : {},
10526
10564
  ...configDir ? { CLAUDE_CONFIG_DIR: configDir } : {}
10527
10565
  };
@@ -26869,7 +26907,7 @@ var import_path = require("path");
26869
26907
  var import_promises = require("fs/promises");
26870
26908
  var import_yaml = __toESM(require_dist3());
26871
26909
  var import_shuttle = __toESM(require_dist5());
26872
- var buildVersion = true ? "0.30.12" : pkg.version;
26910
+ var buildVersion = true ? "0.30.14" : pkg.version;
26873
26911
  var sifterBrand = {
26874
26912
  product: {
26875
26913
  id: "sifter",