ridgeline 0.8.4 → 0.9.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/dist/agents/core/builder.md +2 -0
- package/dist/agents/core/plan-reviewer.md +58 -0
- package/dist/agents/core/retrospective.md +19 -2
- package/dist/agents/core/reviewer.md +2 -0
- package/dist/agents/planners/context.md +19 -6
- package/dist/cli.js +49 -11
- package/dist/cli.js.map +1 -1
- package/dist/commands/build.js +5 -3
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/create.d.ts +1 -0
- package/dist/commands/create.js +1 -0
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/plan.js +29 -2
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/research.d.ts +1 -1
- package/dist/commands/research.js +1 -1
- package/dist/commands/research.js.map +1 -1
- package/dist/commands/spec.d.ts +1 -1
- package/dist/commands/spec.js +1 -1
- package/dist/commands/spec.js.map +1 -1
- package/dist/config.js +17 -2
- package/dist/config.js.map +1 -1
- package/dist/engine/claude/claude.exec.d.ts +2 -0
- package/dist/engine/claude/claude.exec.js +11 -4
- package/dist/engine/claude/claude.exec.js.map +1 -1
- package/dist/engine/claude/sandbox.bwrap.js +10 -2
- package/dist/engine/claude/sandbox.bwrap.js.map +1 -1
- package/dist/engine/claude/sandbox.d.ts +9 -1
- package/dist/engine/claude/sandbox.greywall.js +45 -24
- package/dist/engine/claude/sandbox.greywall.js.map +1 -1
- package/dist/engine/claude/sandbox.js +10 -1
- package/dist/engine/claude/sandbox.js.map +1 -1
- package/dist/engine/claude/sandbox.types.d.ts +7 -1
- package/dist/engine/detect/index.d.ts +2 -2
- package/dist/engine/detect/index.js +1 -1
- package/dist/engine/detect/index.js.map +1 -1
- package/dist/engine/pipeline/ensemble.exec.d.ts +3 -3
- package/dist/engine/pipeline/ensemble.exec.js +4 -7
- package/dist/engine/pipeline/ensemble.exec.js.map +1 -1
- package/dist/engine/pipeline/phase.sequence.d.ts +6 -0
- package/dist/engine/pipeline/phase.sequence.js +70 -1
- package/dist/engine/pipeline/phase.sequence.js.map +1 -1
- package/dist/engine/pipeline/pipeline.shared.d.ts +2 -0
- package/dist/engine/pipeline/pipeline.shared.js +2 -0
- package/dist/engine/pipeline/pipeline.shared.js.map +1 -1
- package/dist/engine/pipeline/plan.exec.js +2 -0
- package/dist/engine/pipeline/plan.exec.js.map +1 -1
- package/dist/engine/pipeline/plan.review.d.ts +22 -0
- package/dist/engine/pipeline/plan.review.js +183 -0
- package/dist/engine/pipeline/plan.review.js.map +1 -0
- package/dist/engine/pipeline/research.exec.d.ts +1 -1
- package/dist/engine/pipeline/research.exec.js +3 -4
- package/dist/engine/pipeline/research.exec.js.map +1 -1
- package/dist/engine/pipeline/specify.exec.d.ts +1 -1
- package/dist/engine/pipeline/specify.exec.js +2 -2
- package/dist/engine/pipeline/specify.exec.js.map +1 -1
- package/dist/stores/settings.d.ts +38 -0
- package/dist/stores/settings.js +58 -1
- package/dist/stores/settings.js.map +1 -1
- package/dist/types.d.ts +14 -1
- package/dist/ui/preflight.toolprobe.d.ts +32 -0
- package/dist/ui/preflight.toolprobe.js +118 -0
- package/dist/ui/preflight.toolprobe.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"research.js","sourceRoot":"","sources":["../../src/commands/research.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA6B;AAC7B,gDAAiC;AACjC,yCAAoD;AACpD,oEAAmF;AACnF,2CAAiD;AACjD,qDAAoD;AACpD,6CAA6C;AAC7C,
|
|
1
|
+
{"version":3,"file":"research.js","sourceRoot":"","sources":["../../src/commands/research.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/spec.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export type SpecOptions = {
|
|
|
4
4
|
maxBudgetUsd?: number;
|
|
5
5
|
/** Optional path to a file (e.g., idea.md) or raw text to feed as authoritative spec guidance. */
|
|
6
6
|
input?: string;
|
|
7
|
-
|
|
7
|
+
specialistCount?: 1 | 2 | 3;
|
|
8
8
|
specialistTimeoutSeconds?: number;
|
|
9
9
|
};
|
|
10
10
|
export declare const runSpec: (buildName: string, opts: SpecOptions) => Promise<void>;
|
package/dist/commands/spec.js
CHANGED
|
@@ -111,7 +111,7 @@ const runSpec = async (buildName, opts) => {
|
|
|
111
111
|
maxBudgetUsd: opts.maxBudgetUsd ?? null,
|
|
112
112
|
buildDir,
|
|
113
113
|
matchedShapes: (0, state_1.getMatchedShapes)(buildDir),
|
|
114
|
-
|
|
114
|
+
specialistCount: opts.specialistCount ?? settings_1.DEFAULT_SPECIALIST_COUNT,
|
|
115
115
|
userInput,
|
|
116
116
|
};
|
|
117
117
|
const result = await (0, specify_exec_1.invokeSpecifier)(shapeMd, config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec.js","sourceRoot":"","sources":["../../src/commands/spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA6B;AAC7B,gDAAiC;AACjC,wDAAyC;AACzC,yCAAoD;AACpD,kEAAqF;AACrF,2CAAmE;AACnE,
|
|
1
|
+
{"version":3,"file":"spec.js","sourceRoot":"","sources":["../../src/commands/spec.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -76,6 +76,17 @@ const resolveConfig = (buildName, opts) => {
|
|
|
76
76
|
}
|
|
77
77
|
const tastePath = (0, inputs_1.resolveFile)(opts.taste, buildDir, "taste.md", ridgelineDir);
|
|
78
78
|
const checkCommand = opts.check ?? (0, inputs_1.parseCheckCommand)(constraintsPath);
|
|
79
|
+
const specialistCliOverride = opts.specialists !== undefined
|
|
80
|
+
? parseInt(String(opts.specialists), 10)
|
|
81
|
+
: opts.thorough === true || opts.deepEnsemble === true
|
|
82
|
+
? 3
|
|
83
|
+
: undefined;
|
|
84
|
+
const specialistCount = (0, settings_1.resolveSpecialistCount)(ridgelineDir, specialistCliOverride);
|
|
85
|
+
// --unsafe is the legacy alias for --sandbox=off
|
|
86
|
+
const sandboxCliOverride = opts.unsafe === true
|
|
87
|
+
? "off"
|
|
88
|
+
: opts.sandbox;
|
|
89
|
+
const sandboxMode = (0, settings_1.resolveSandboxMode)(ridgelineDir, sandboxCliOverride);
|
|
79
90
|
return {
|
|
80
91
|
buildName,
|
|
81
92
|
ridgelineDir,
|
|
@@ -90,11 +101,15 @@ const resolveConfig = (buildName, opts) => {
|
|
|
90
101
|
checkTimeoutSeconds: parseInt(String(opts.checkTimeout ?? "1200"), 10),
|
|
91
102
|
checkCommand,
|
|
92
103
|
maxBudgetUsd: opts.maxBudgetUsd ? parseFloat(String(opts.maxBudgetUsd)) : null,
|
|
93
|
-
unsafe:
|
|
104
|
+
unsafe: sandboxMode === "off",
|
|
105
|
+
sandboxMode,
|
|
106
|
+
sandboxExtras: (0, settings_1.resolveSandboxExtras)(ridgelineDir),
|
|
94
107
|
networkAllowlist: (0, settings_1.resolveNetworkAllowlist)(ridgelineDir),
|
|
95
108
|
extraContext: opts.context ?? null,
|
|
96
|
-
|
|
109
|
+
specialistCount,
|
|
97
110
|
specialistTimeoutSeconds: (0, settings_1.resolveSpecialistTimeoutSeconds)(ridgelineDir),
|
|
111
|
+
phaseBudgetLimit: (0, settings_1.resolvePhaseBudgetLimit)(ridgelineDir),
|
|
112
|
+
phaseTokenLimit: (0, settings_1.resolvePhaseTokenLimit)(ridgelineDir),
|
|
98
113
|
};
|
|
99
114
|
};
|
|
100
115
|
exports.resolveConfig = resolveConfig;
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA6B;AAC7B,gDAAiC;AAEjC,4CAAgE;AAChE,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,8 @@ export type InvokeOptions = {
|
|
|
27
27
|
onStdout?: (chunk: string) => void;
|
|
28
28
|
onStderr?: (chunk: string) => void;
|
|
29
29
|
sandboxProvider?: SandboxProvider | null;
|
|
30
|
+
sandboxMode?: import("../../stores/settings").SandboxMode;
|
|
31
|
+
sandboxExtras?: import("../../stores/settings").SandboxExtras;
|
|
30
32
|
networkAllowlist?: string[];
|
|
31
33
|
additionalWritePaths?: string[];
|
|
32
34
|
/**
|
|
@@ -7,8 +7,8 @@ const stable_prompt_1 = require("./stable.prompt");
|
|
|
7
7
|
const trajectory_1 = require("../../stores/trajectory");
|
|
8
8
|
/** Default: kill if no stdout arrives within 2 minutes of spawn. */
|
|
9
9
|
const DEFAULT_STARTUP_TIMEOUT_MS = 2 * 60 * 1000;
|
|
10
|
-
/** Default: kill if no stdout arrives for
|
|
11
|
-
const DEFAULT_STALL_TIMEOUT_MS =
|
|
10
|
+
/** Default: kill if no stdout arrives for 10 minutes during execution. */
|
|
11
|
+
const DEFAULT_STALL_TIMEOUT_MS = 10 * 60 * 1000;
|
|
12
12
|
// --- Process registry: track all live Claude subprocesses ---
|
|
13
13
|
const liveProcs = new Set();
|
|
14
14
|
/** Graceful kill: SIGTERM all process groups, then SIGKILL after 2s. */
|
|
@@ -140,8 +140,15 @@ const invokeClaude = async (opts) => {
|
|
|
140
140
|
}
|
|
141
141
|
(0, exports.assertSystemPromptFlagsExclusive)(args);
|
|
142
142
|
const spawnCmd = provider ? provider.command : "claude";
|
|
143
|
-
const
|
|
144
|
-
?
|
|
143
|
+
const sandboxBuildOptions = provider
|
|
144
|
+
? {
|
|
145
|
+
mode: opts.sandboxMode ?? "semi-locked",
|
|
146
|
+
extras: opts.sandboxExtras ?? { writePaths: [], readPaths: [], profiles: [], networkAllowlist: [] },
|
|
147
|
+
additionalWritePaths: opts.additionalWritePaths,
|
|
148
|
+
}
|
|
149
|
+
: undefined;
|
|
150
|
+
const spawnArgs = provider && sandboxBuildOptions
|
|
151
|
+
? [...provider.buildArgs(opts.cwd, opts.networkAllowlist ?? [], sandboxBuildOptions), "claude", ...args]
|
|
145
152
|
: args;
|
|
146
153
|
const proc = (0, node_child_process_1.spawn)(spawnCmd, spawnArgs, {
|
|
147
154
|
cwd: opts.cwd,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.exec.js","sourceRoot":"","sources":["../../../src/engine/claude/claude.exec.ts"],"names":[],"mappings":";;;AAAA,2DAAwD;AAExD,mDAA+C;AAE/C,mDAMwB;AACxB,wDAAuD;AAEvD,oEAAoE;AACpE,MAAM,0BAA0B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;AAEhD,
|
|
1
|
+
{"version":3,"file":"claude.exec.js","sourceRoot":"","sources":["../../../src/engine/claude/claude.exec.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,12 +4,20 @@ exports.bwrapProvider = void 0;
|
|
|
4
4
|
exports.bwrapProvider = {
|
|
5
5
|
name: "bwrap",
|
|
6
6
|
command: "bwrap",
|
|
7
|
-
buildArgs(repoRoot, _networkAllowlist,
|
|
8
|
-
const
|
|
7
|
+
buildArgs(repoRoot, _networkAllowlist, options) {
|
|
8
|
+
const extras = options?.extras;
|
|
9
|
+
const additionalWritePaths = options?.additionalWritePaths ?? [];
|
|
10
|
+
const extraWritePaths = [
|
|
11
|
+
...(extras?.writePaths ?? []),
|
|
12
|
+
...additionalWritePaths,
|
|
13
|
+
];
|
|
14
|
+
const extraBinds = extraWritePaths.flatMap((p) => ["--bind", p, p]);
|
|
15
|
+
const extraReadBinds = (extras?.readPaths ?? []).flatMap((p) => ["--ro-bind", p, p]);
|
|
9
16
|
return [
|
|
10
17
|
"--ro-bind", "/", "/",
|
|
11
18
|
"--bind", repoRoot, repoRoot,
|
|
12
19
|
...extraBinds,
|
|
20
|
+
...extraReadBinds,
|
|
13
21
|
"--bind", "/tmp", "/tmp",
|
|
14
22
|
"--dev", "/dev",
|
|
15
23
|
"--proc", "/proc",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.bwrap.js","sourceRoot":"","sources":["../../../src/engine/claude/sandbox.bwrap.ts"],"names":[],"mappings":";;;AAEa,QAAA,aAAa,GAAoB;IAC5C,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,OAAO;IAChB,SAAS,
|
|
1
|
+
{"version":3,"file":"sandbox.bwrap.js","sourceRoot":"","sources":["../../../src/engine/claude/sandbox.bwrap.ts"],"names":[],"mappings":";;;AAEa,QAAA,aAAa,GAAoB;IAC5C,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,OAAO;IAChB,SAAS,CACP,QAAgB,EAChB,iBAA2B,EAC3B,OAAiC;QAEjC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAA;QAC9B,MAAM,oBAAoB,GAAG,OAAO,EAAE,oBAAoB,IAAI,EAAE,CAAA;QAChE,MAAM,eAAe,GAAG;YACtB,GAAG,CAAC,MAAM,EAAE,UAAU,IAAI,EAAE,CAAC;YAC7B,GAAG,oBAAoB;SACxB,CAAA;QACD,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACnE,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACpF,OAAO;YACL,WAAW,EAAE,GAAG,EAAE,GAAG;YACrB,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YAC5B,GAAG,UAAU;YACb,GAAG,cAAc;YACjB,QAAQ,EAAE,MAAM,EAAE,MAAM;YACxB,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,OAAO;YACjB,mBAAmB;YACnB,eAAe;SAChB,CAAA;IACH,CAAC;CACF,CAAA"}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import type { SandboxProvider } from "./sandbox.types";
|
|
2
|
+
import type { SandboxMode } from "../../stores/settings";
|
|
2
3
|
export type { SandboxProvider } from "./sandbox.types";
|
|
3
4
|
type SandboxDetectionResult = {
|
|
4
5
|
provider: SandboxProvider | null;
|
|
5
6
|
warning: string | null;
|
|
6
7
|
};
|
|
7
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Resolve a sandbox provider for the requested mode.
|
|
10
|
+
*
|
|
11
|
+
* - `off`: explicit opt-out, returns no provider with no warning.
|
|
12
|
+
* - `strict` / `semi-locked`: prefer greywall (cross-platform, domain allowlist),
|
|
13
|
+
* then bwrap on Linux. Both are configured by `mode` later via `buildArgs`.
|
|
14
|
+
*/
|
|
15
|
+
export declare const detectSandbox: (mode?: SandboxMode) => SandboxDetectionResult;
|
|
@@ -3,19 +3,34 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.greywallProvider = void 0;
|
|
4
4
|
const node_child_process_1 = require("node:child_process");
|
|
5
5
|
const node_fs_1 = require("node:fs");
|
|
6
|
-
const node_path_1 = require("node:path");
|
|
7
6
|
const node_os_1 = require("node:os");
|
|
7
|
+
const node_path_1 = require("node:path");
|
|
8
8
|
const GREYPROXY_API = "http://localhost:43080";
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
// Greywall profiles compose two halves: an agent profile (claude config dirs +
|
|
10
|
+
// Anthropic/GitHub endpoints) and toolchain profiles (npm/pnpm/yarn/bun/deno,
|
|
11
|
+
// python via uv, ruby, go, rust, container runtimes, generic SCM). Strict mode
|
|
12
|
+
// stays minimal; semi-locked mode (default) opts into the broad ecosystem set
|
|
13
|
+
// so binary tools the build needs (Playwright, MCP servers, agent-browser)
|
|
14
|
+
// generally just work without per-build configuration.
|
|
15
|
+
const STRICT_PROFILES = ["claude", "node"];
|
|
16
|
+
const SEMI_LOCKED_PROFILES = ["claude", "node", "python", "ruby", "go", "rust", "containers", "scm"];
|
|
17
|
+
const resolveProfiles = (mode, extra) => {
|
|
18
|
+
const base = mode === "strict" ? STRICT_PROFILES : SEMI_LOCKED_PROFILES;
|
|
19
|
+
return Array.from(new Set([...base, ...extra])).join(",");
|
|
20
|
+
};
|
|
21
|
+
// Path-specific holes the semi-locked mode opens beyond what greywall's
|
|
22
|
+
// built-in profiles cover. Each entry was a known break in the strict mode
|
|
23
|
+
// during v0 weft (chromium cache, agent-browser socket dir, uv cache, etc.).
|
|
24
|
+
// Users can layer more via `sandbox.extraWritePaths` in settings.json.
|
|
25
|
+
const semiLockedWritePaths = () => {
|
|
11
26
|
const home = (0, node_os_1.homedir)();
|
|
12
27
|
return [
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
28
|
+
`${home}/.agent-browser`,
|
|
29
|
+
`${home}/.cache/uv`,
|
|
30
|
+
`${home}/.cache/pip`,
|
|
31
|
+
`${home}/.cache/playwright`,
|
|
32
|
+
`${home}/Library/Caches/Cypress`,
|
|
33
|
+
`${home}/Library/Caches/ms-playwright`,
|
|
19
34
|
];
|
|
20
35
|
};
|
|
21
36
|
/** Ensure a greyproxy allow rule exists for the given domain. */
|
|
@@ -45,7 +60,7 @@ exports.greywallProvider = {
|
|
|
45
60
|
command: "greywall",
|
|
46
61
|
checkReady() {
|
|
47
62
|
try {
|
|
48
|
-
const output = (0, node_child_process_1.
|
|
63
|
+
const output = (0, node_child_process_1.execFileSync)("greywall", ["check"], { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] });
|
|
49
64
|
if (/✓.*greyproxy running/i.test(output)) {
|
|
50
65
|
return null;
|
|
51
66
|
}
|
|
@@ -53,8 +68,8 @@ exports.greywallProvider = {
|
|
|
53
68
|
}
|
|
54
69
|
catch (err) {
|
|
55
70
|
// greywall check exits non-zero when not ready — check stdout/stderr in the error
|
|
56
|
-
const
|
|
57
|
-
|
|
71
|
+
const e = err;
|
|
72
|
+
const output = (e.stdout ?? "") + (e.stderr ?? "");
|
|
58
73
|
if (/✓.*greyproxy running/i.test(output)) {
|
|
59
74
|
return null;
|
|
60
75
|
}
|
|
@@ -73,25 +88,31 @@ exports.greywallProvider = {
|
|
|
73
88
|
const existing = new Set(data.items.map((r) => r.destination_pattern));
|
|
74
89
|
await Promise.all(networkAllowlist.map((domain) => ensureRule(domain, existing)));
|
|
75
90
|
},
|
|
76
|
-
buildArgs(repoRoot, _networkAllowlist,
|
|
77
|
-
const
|
|
91
|
+
buildArgs(repoRoot, _networkAllowlist, options) {
|
|
92
|
+
const mode = options?.mode ?? "semi-locked";
|
|
93
|
+
const extras = options?.extras ?? { writePaths: [], readPaths: [], profiles: [], networkAllowlist: [] };
|
|
94
|
+
const additionalWritePaths = options?.additionalWritePaths ?? [];
|
|
95
|
+
const writePaths = [
|
|
96
|
+
repoRoot,
|
|
97
|
+
"/tmp",
|
|
98
|
+
...(mode === "semi-locked" ? semiLockedWritePaths() : []),
|
|
99
|
+
...extras.writePaths,
|
|
100
|
+
...additionalWritePaths,
|
|
101
|
+
];
|
|
78
102
|
const settings = {
|
|
79
103
|
filesystem: {
|
|
80
104
|
allowWrite: writePaths,
|
|
105
|
+
...(extras.readPaths.length > 0 ? { allowRead: extras.readPaths } : {}),
|
|
81
106
|
},
|
|
82
107
|
};
|
|
83
108
|
const settingsPath = (0, node_path_1.join)((0, node_os_1.tmpdir)(), `ridgeline-greywall-${process.pid}.json`);
|
|
84
109
|
(0, node_fs_1.writeFileSync)(settingsPath, JSON.stringify(settings));
|
|
85
|
-
return [
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
// exposing registry tokens to the agent.
|
|
92
|
-
return {
|
|
93
|
-
NPM_CONFIG_USERCONFIG: "/dev/null",
|
|
94
|
-
};
|
|
110
|
+
return [
|
|
111
|
+
"--profile", resolveProfiles(mode, extras.profiles),
|
|
112
|
+
"--no-credential-protection",
|
|
113
|
+
"--settings", settingsPath,
|
|
114
|
+
"--",
|
|
115
|
+
];
|
|
95
116
|
},
|
|
96
117
|
};
|
|
97
118
|
//# sourceMappingURL=sandbox.greywall.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.greywall.js","sourceRoot":"","sources":["../../../src/engine/claude/sandbox.greywall.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"sandbox.greywall.js","sourceRoot":"","sources":["../../../src/engine/claude/sandbox.greywall.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,16 @@ const isAvailable = (cmd) => {
|
|
|
13
13
|
return false;
|
|
14
14
|
}
|
|
15
15
|
};
|
|
16
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Resolve a sandbox provider for the requested mode.
|
|
18
|
+
*
|
|
19
|
+
* - `off`: explicit opt-out, returns no provider with no warning.
|
|
20
|
+
* - `strict` / `semi-locked`: prefer greywall (cross-platform, domain allowlist),
|
|
21
|
+
* then bwrap on Linux. Both are configured by `mode` later via `buildArgs`.
|
|
22
|
+
*/
|
|
23
|
+
const detectSandbox = (mode = "semi-locked") => {
|
|
24
|
+
if (mode === "off")
|
|
25
|
+
return { provider: null, warning: null };
|
|
17
26
|
// Prefer greywall (cross-platform, supports domain allowlisting)
|
|
18
27
|
if (isAvailable("greywall")) {
|
|
19
28
|
const readyError = sandbox_greywall_1.greywallProvider.checkReady?.() ?? null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../../src/engine/claude/sandbox.ts"],"names":[],"mappings":";;;AAAA,2DAAiD;AACjD,mDAA+C;AAC/C,yDAAqD;
|
|
1
|
+
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../../src/engine/claude/sandbox.ts"],"names":[],"mappings":";;;AAAA,2DAAiD;AACjD,mDAA+C;AAC/C,yDAAqD;AAKrD,MAAM,WAAW,GAAG,CAAC,GAAW,EAAW,EAAE;IAC3C,IAAI,CAAC;QACH,IAAA,iCAAY,EAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;QACjE,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAA;AAOD;;;;;;GAMG;AACI,MAAM,aAAa,GAAG,CAAC,OAAoB,aAAa,EAA0B,EAAE;IACzF,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAE5D,iEAAiE;IACjE,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,mCAAgB,CAAC,UAAU,EAAE,EAAE,IAAI,IAAI,CAAA;QAC1D,IAAI,UAAU,EAAE,CAAC;YACf,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,wCAAwC,UAAU,qCAAqC;aACjG,CAAA;QACH,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,mCAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IACtD,CAAC;IAED,yDAAyD;IACzD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,OAAO,EAAE,QAAQ,EAAE,6BAAa,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IACnD,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC1C,CAAC,CAAA;AArBY,QAAA,aAAa,iBAqBzB"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
+
import type { SandboxMode, SandboxExtras } from "../../stores/settings";
|
|
2
|
+
export type SandboxBuildArgsOptions = {
|
|
3
|
+
mode: SandboxMode;
|
|
4
|
+
extras: SandboxExtras;
|
|
5
|
+
additionalWritePaths?: string[];
|
|
6
|
+
};
|
|
1
7
|
export type SandboxProvider = {
|
|
2
8
|
name: "bwrap" | "greywall";
|
|
3
9
|
command: string;
|
|
4
|
-
buildArgs: (repoRoot: string, networkAllowlist: string[],
|
|
10
|
+
buildArgs: (repoRoot: string, networkAllowlist: string[], options?: SandboxBuildArgsOptions) => string[];
|
|
5
11
|
/** Check if the sandbox is ready to use. Returns null if ready, or an error message. */
|
|
6
12
|
checkReady?: () => string | null;
|
|
7
13
|
/** Sync network allowlist rules with the proxy before spawning the sandboxed process. */
|
|
@@ -7,9 +7,9 @@ export interface DetectionReport {
|
|
|
7
7
|
hasDesignMd: boolean;
|
|
8
8
|
hasAssetDir: boolean;
|
|
9
9
|
suggestedSensors: SensorName[];
|
|
10
|
-
suggestedEnsembleSize: 2 | 3;
|
|
10
|
+
suggestedEnsembleSize: 1 | 2 | 3;
|
|
11
11
|
}
|
|
12
12
|
export interface DetectOptions {
|
|
13
|
-
|
|
13
|
+
specialistCount?: 1 | 2 | 3;
|
|
14
14
|
}
|
|
15
15
|
export declare const detect: (cwd: string, opts?: DetectOptions) => Promise<DetectionReport>;
|
|
@@ -145,7 +145,7 @@ const detect = async (cwd, opts = {}) => {
|
|
|
145
145
|
else
|
|
146
146
|
projectType = "node";
|
|
147
147
|
const suggestedSensors = isVisualSurface ? [...SENSOR_ORDER] : [];
|
|
148
|
-
const suggestedEnsembleSize = opts.
|
|
148
|
+
const suggestedEnsembleSize = opts.specialistCount ?? 3;
|
|
149
149
|
return {
|
|
150
150
|
projectType,
|
|
151
151
|
isVisualSurface,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/detect/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/detect/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -91,10 +91,10 @@ type EnsembleConfig<TDraft> = {
|
|
|
91
91
|
export declare const invokeEnsemble: <TDraft>(config: EnsembleConfig<TDraft>) => Promise<EnsembleResult>;
|
|
92
92
|
/**
|
|
93
93
|
* Cap a registered specialist list to the configured ensemble size.
|
|
94
|
-
* Default size: 2
|
|
94
|
+
* Default size: 3 (use all). Pass 1 or 2 to opt out of the deeper ensemble.
|
|
95
95
|
*/
|
|
96
|
-
export declare const selectSpecialists: (all: SpecialistDef[], {
|
|
97
|
-
|
|
96
|
+
export declare const selectSpecialists: (all: SpecialistDef[], { specialistCount }: {
|
|
97
|
+
specialistCount: 1 | 2 | 3;
|
|
98
98
|
}) => SpecialistDef[];
|
|
99
99
|
/**
|
|
100
100
|
* Append the audit note that marks an agreement-based synthesis skip.
|
|
@@ -332,12 +332,9 @@ const invokeEnsemble = async (config) => {
|
|
|
332
332
|
exports.invokeEnsemble = invokeEnsemble;
|
|
333
333
|
/**
|
|
334
334
|
* Cap a registered specialist list to the configured ensemble size.
|
|
335
|
-
* Default size: 2
|
|
335
|
+
* Default size: 3 (use all). Pass 1 or 2 to opt out of the deeper ensemble.
|
|
336
336
|
*/
|
|
337
|
-
const selectSpecialists = (all, {
|
|
338
|
-
const size = isThorough ? 3 : 2;
|
|
339
|
-
return all.slice(0, size);
|
|
340
|
-
};
|
|
337
|
+
const selectSpecialists = (all, { specialistCount }) => all.slice(0, specialistCount);
|
|
341
338
|
exports.selectSpecialists = selectSpecialists;
|
|
342
339
|
/**
|
|
343
340
|
* Append the audit note that marks an agreement-based synthesis skip.
|
|
@@ -518,7 +515,7 @@ const invokePlanner = async (config) => {
|
|
|
518
515
|
const registry = (0, agent_registry_1.buildAgentRegistry)();
|
|
519
516
|
const context = registry.getContext("planners") ?? "";
|
|
520
517
|
const availableSpecialists = registry.getSpecialists("planners");
|
|
521
|
-
const specialists = (0, exports.selectSpecialists)(availableSpecialists, {
|
|
518
|
+
const specialists = (0, exports.selectSpecialists)(availableSpecialists, { specialistCount: config.specialistCount });
|
|
522
519
|
const ensemble = await (0, exports.invokeEnsemble)({
|
|
523
520
|
label: "Planning",
|
|
524
521
|
specialists,
|
|
@@ -533,7 +530,7 @@ const invokePlanner = async (config) => {
|
|
|
533
530
|
specialistTimeoutSeconds: config.specialistTimeoutSeconds,
|
|
534
531
|
maxBudgetUsd: config.maxBudgetUsd,
|
|
535
532
|
stallTimeoutMs: exports.SYNTHESIZER_STALL_TIMEOUT_MS,
|
|
536
|
-
isTwoRound: config.
|
|
533
|
+
isTwoRound: config.specialistCount === 3,
|
|
537
534
|
buildAnnotationPrompt: (ownPerspective, otherDrafts) => {
|
|
538
535
|
const sections = [
|
|
539
536
|
`You are the ${ownPerspective} specialist. You have already submitted your proposal.`,
|