@whittlelabs/sifter 0.13.0 → 0.14.0
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/bin.js +25 -2
- package/bin.js.map +2 -2
- package/package.json +1 -1
package/bin.js
CHANGED
|
@@ -20747,6 +20747,7 @@ var require_shuttle = __commonJS({
|
|
|
20747
20747
|
"use strict";
|
|
20748
20748
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
20749
20749
|
exports2.Shuttle = void 0;
|
|
20750
|
+
exports2.mergeExecutorDefaults = mergeExecutorDefaults;
|
|
20750
20751
|
var os_1 = require("os");
|
|
20751
20752
|
var jobs_1 = require_dist2();
|
|
20752
20753
|
var self_update_1 = require_self_update();
|
|
@@ -20806,7 +20807,7 @@ var require_shuttle = __commonJS({
|
|
|
20806
20807
|
});
|
|
20807
20808
|
const registry = new registry_1.ExecutorRegistry(this.brand.executorAllowlist);
|
|
20808
20809
|
registerBuiltInExecutors(registry, this.brand.executorAllowlist);
|
|
20809
|
-
const executors = registry.build(this.config.executors);
|
|
20810
|
+
const executors = registry.build(mergeExecutorDefaults(this.brand.executorDefaults, this.config.executors));
|
|
20810
20811
|
const byStrategy = /* @__PURE__ */ new Map();
|
|
20811
20812
|
for (const executor of executors) {
|
|
20812
20813
|
for (const strategy of executor.strategies)
|
|
@@ -20965,6 +20966,15 @@ var require_shuttle = __commonJS({
|
|
|
20965
20966
|
}
|
|
20966
20967
|
};
|
|
20967
20968
|
exports2.Shuttle = Shuttle;
|
|
20969
|
+
function mergeExecutorDefaults(defaults, userExecutors) {
|
|
20970
|
+
if (!defaults)
|
|
20971
|
+
return userExecutors;
|
|
20972
|
+
const merged = {};
|
|
20973
|
+
for (const [name, userConfig] of Object.entries(userExecutors)) {
|
|
20974
|
+
merged[name] = { ...defaults[name] ?? {}, ...userConfig };
|
|
20975
|
+
}
|
|
20976
|
+
return merged;
|
|
20977
|
+
}
|
|
20968
20978
|
function registerBuiltInExecutors(registry, allowlist) {
|
|
20969
20979
|
const all = [
|
|
20970
20980
|
["claude-code", claude_code_1.createClaudeCodeExecutor],
|
|
@@ -21539,7 +21549,7 @@ var import_shuttle = __toESM(require_dist5());
|
|
|
21539
21549
|
// package.json
|
|
21540
21550
|
var package_default = {
|
|
21541
21551
|
name: "@whittlelabs/sifter",
|
|
21542
|
-
version: "0.
|
|
21552
|
+
version: "0.14.0",
|
|
21543
21553
|
description: "Whittle Sifter: paired AI reviewer for Whittle Sift job pools.",
|
|
21544
21554
|
bin: {
|
|
21545
21555
|
"whittle-sifter": "./dist/bin.js"
|
|
@@ -21598,6 +21608,19 @@ var sifterBrand = {
|
|
|
21598
21608
|
configSearchPaths: ["~/.sifter/sifter.yaml"]
|
|
21599
21609
|
},
|
|
21600
21610
|
executorAllowlist: ["claude-code", "anthropic-api", "http-api", "webhook", "custom-script"],
|
|
21611
|
+
// Overlay-fetch origins for the signed standards-content URLs each Sift
|
|
21612
|
+
// tier signs (SIFT_PUBLIC_API_URL). Without these, the executor's SSRF
|
|
21613
|
+
// guard silently skips the standards overlay and every review runs
|
|
21614
|
+
// standards-blind (2026-07-13). User config overrides per key.
|
|
21615
|
+
executorDefaults: {
|
|
21616
|
+
"claude-code": {
|
|
21617
|
+
overlayAllowedHosts: [
|
|
21618
|
+
"https://api.sift.whittlelabs.com",
|
|
21619
|
+
"https://api.sift.stage.whittlelabs.com",
|
|
21620
|
+
"http://localhost:3008"
|
|
21621
|
+
]
|
|
21622
|
+
}
|
|
21623
|
+
},
|
|
21601
21624
|
keepRegistration: {
|
|
21602
21625
|
keepApiUrl: process.env.KEEP_API_URL ?? "https://keep.whittlelabs.com",
|
|
21603
21626
|
jobsApiUrl: process.env.JOBS_API_URL ?? "https://jobs.whittlelabs.com",
|