ridgeline 0.2.9 → 0.2.10
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/README.md +42 -16
- package/dist/agents/core/hooks/network-guard.md +23 -0
- package/dist/agents/core/plugin.json +4 -0
- package/dist/cli.js +14 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/build.js +61 -3
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/clean.d.ts +1 -0
- package/dist/commands/clean.js +12 -0
- package/dist/commands/clean.js.map +1 -0
- package/dist/config.js +4 -2
- package/dist/config.js.map +1 -1
- package/dist/engine/claude/claude.exec.d.ts +3 -2
- package/dist/engine/claude/claude.exec.js +4 -4
- package/dist/engine/claude/claude.exec.js.map +1 -1
- package/dist/engine/claude/sandbox.bwrap.d.ts +2 -0
- package/dist/engine/claude/sandbox.bwrap.js +19 -0
- package/dist/engine/claude/sandbox.bwrap.js.map +1 -0
- package/dist/engine/claude/sandbox.d.ts +6 -2
- package/dist/engine/claude/sandbox.greywall.d.ts +2 -0
- package/dist/engine/claude/sandbox.greywall.js +19 -0
- package/dist/engine/claude/sandbox.greywall.js.map +1 -0
- package/dist/engine/claude/sandbox.js +19 -22
- package/dist/engine/claude/sandbox.js.map +1 -1
- package/dist/engine/discovery/plugin.scan.d.ts +1 -0
- package/dist/engine/discovery/plugin.scan.js +15 -1
- package/dist/engine/discovery/plugin.scan.js.map +1 -1
- package/dist/engine/pipeline/build.exec.js +10 -3
- package/dist/engine/pipeline/build.exec.js.map +1 -1
- package/dist/engine/pipeline/phase.sequence.js +1 -1
- package/dist/engine/pipeline/phase.sequence.js.map +1 -1
- package/dist/engine/pipeline/review.exec.js +10 -3
- package/dist/engine/pipeline/review.exec.js.map +1 -1
- package/dist/engine/worktree.d.ts +7 -0
- package/dist/engine/worktree.js +128 -0
- package/dist/engine/worktree.js.map +1 -0
- package/dist/store/settings.d.ts +8 -0
- package/dist/store/settings.js +70 -0
- package/dist/store/settings.js.map +1 -0
- package/dist/types.d.ts +4 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -30,6 +30,16 @@ npm install -g ridgeline
|
|
|
30
30
|
Ridgeline requires the [Claude CLI](https://docs.anthropic.com/en/docs/claude-code)
|
|
31
31
|
to be installed and authenticated.
|
|
32
32
|
|
|
33
|
+
For sandboxing (recommended), install one of:
|
|
34
|
+
|
|
35
|
+
- **macOS/Linux:** [Greywall](https://github.com/GreyhavenHQ/greywall) --
|
|
36
|
+
`brew install greywall` (domain-level network allowlisting + filesystem
|
|
37
|
+
isolation)
|
|
38
|
+
- **Linux:** [bubblewrap](https://github.com/containers/bubblewrap) --
|
|
39
|
+
`apt install bubblewrap` (full network block + read-only filesystem)
|
|
40
|
+
|
|
41
|
+
Sandboxing is on by default when a provider is detected. No flags needed.
|
|
42
|
+
|
|
33
43
|
## Quick start
|
|
34
44
|
|
|
35
45
|
```sh
|
|
@@ -51,6 +61,9 @@ ridgeline build my-feature
|
|
|
51
61
|
|
|
52
62
|
# Resume after a failure (re-run build)
|
|
53
63
|
ridgeline build my-feature
|
|
64
|
+
|
|
65
|
+
# Clean up stale worktrees from failed builds
|
|
66
|
+
ridgeline clean
|
|
54
67
|
```
|
|
55
68
|
|
|
56
69
|
## Commands
|
|
@@ -100,28 +113,38 @@ and advance on success.
|
|
|
100
113
|
| `--max-budget-usd <n>` | none | Halt if cumulative cost exceeds this |
|
|
101
114
|
| `--constraints <path>` | auto | Path to constraints file |
|
|
102
115
|
| `--taste <path>` | auto | Path to taste file |
|
|
103
|
-
| `--
|
|
104
|
-
| `--allow-network` | off | Permit network access inside sandbox |
|
|
116
|
+
| `--unsafe` | off | Disable sandbox auto-detection |
|
|
105
117
|
|
|
106
118
|
The build command automatically resumes from the last successful phase if
|
|
107
|
-
previous state exists.
|
|
119
|
+
previous state exists. Each build runs in an isolated git worktree -- completed
|
|
120
|
+
phases are reflected back to your branch, and failed builds leave the worktree
|
|
121
|
+
intact for inspection.
|
|
122
|
+
|
|
123
|
+
### `ridgeline clean`
|
|
124
|
+
|
|
125
|
+
Removes all build worktrees under `.ridgeline/worktrees/` and their associated
|
|
126
|
+
WIP branches. Use this after inspecting a failed build.
|
|
108
127
|
|
|
109
128
|
## Build directory structure
|
|
110
129
|
|
|
111
130
|
```text
|
|
112
|
-
.ridgeline/
|
|
113
|
-
├──
|
|
114
|
-
├──
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
├──
|
|
122
|
-
├──
|
|
123
|
-
├──
|
|
124
|
-
└──
|
|
131
|
+
.ridgeline/
|
|
132
|
+
├── settings.json # Optional project-level config (network allowlist, etc.)
|
|
133
|
+
├── worktrees/ # Git worktrees for active builds
|
|
134
|
+
│ └── <build-name>/ # Isolated working directory per build
|
|
135
|
+
└── builds/<build-name>/
|
|
136
|
+
├── spec.md # What to build
|
|
137
|
+
├── constraints.md # Technical constraints and check commands
|
|
138
|
+
├── taste.md # Optional coding style preferences
|
|
139
|
+
├── phases/
|
|
140
|
+
│ ├── 01-scaffold.md
|
|
141
|
+
│ ├── 01-scaffold.feedback.md # Generated by harness on review failure
|
|
142
|
+
│ ├── 02-core.md
|
|
143
|
+
│ └── ...
|
|
144
|
+
├── state.json # Phase statuses, retries, timestamps, git tags
|
|
145
|
+
├── budget.json # Per-invocation cost tracking
|
|
146
|
+
├── trajectory.jsonl # Event log (plan/build/eval start/complete)
|
|
147
|
+
└── handoff.md # Context passed to the next phase
|
|
125
148
|
```
|
|
126
149
|
|
|
127
150
|
## Configuration resolution
|
|
@@ -132,6 +155,9 @@ Constraint and taste files are resolved in order:
|
|
|
132
155
|
2. Build-level (`.ridgeline/builds/<build-name>/constraints.md`)
|
|
133
156
|
3. Project-level (`.ridgeline/constraints.md`)
|
|
134
157
|
|
|
158
|
+
Project-level settings (network allowlist, etc.) are loaded from
|
|
159
|
+
`.ridgeline/settings.json`. See [SECURITY.md](SECURITY.md) for details.
|
|
160
|
+
|
|
135
161
|
## Development
|
|
136
162
|
|
|
137
163
|
```sh
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
event: PreToolUse
|
|
3
|
+
tool: Bash
|
|
4
|
+
---
|
|
5
|
+
Block any bash command that makes outbound network requests.
|
|
6
|
+
|
|
7
|
+
Deny commands containing: curl, wget, nc, ncat, netcat, ssh, scp, sftp,
|
|
8
|
+
rsync (with remote paths), python -m http.server, node -e with http/https
|
|
9
|
+
modules, telnet, ftp.
|
|
10
|
+
|
|
11
|
+
Allow these exceptions:
|
|
12
|
+
- npm install, npm ci, npm update
|
|
13
|
+
- npx (any arguments)
|
|
14
|
+
- pip install, pip3 install
|
|
15
|
+
- cargo build, cargo install
|
|
16
|
+
- gem install, bundle install
|
|
17
|
+
- go get, go install, go mod download
|
|
18
|
+
- git fetch, git pull, git clone, git push
|
|
19
|
+
- brew install
|
|
20
|
+
|
|
21
|
+
If the command is blocked, return "block" with a message explaining that
|
|
22
|
+
network access is restricted. Suggest using an allowed package manager
|
|
23
|
+
command instead.
|
package/dist/cli.js
CHANGED
|
@@ -86,8 +86,7 @@ program
|
|
|
86
86
|
.option("--max-budget-usd <n>", "Halt if cumulative cost exceeds this amount")
|
|
87
87
|
.option("--constraints <path>", "Path to constraints.md")
|
|
88
88
|
.option("--taste <path>", "Path to taste.md")
|
|
89
|
-
.option("--
|
|
90
|
-
.option("--allow-network", "Permit network access inside sandbox")
|
|
89
|
+
.option("--unsafe", "Disable sandbox auto-detection")
|
|
91
90
|
.action(async (buildName, opts) => {
|
|
92
91
|
if (!buildName)
|
|
93
92
|
buildName = await (0, prompt_1.askBuildName)();
|
|
@@ -100,5 +99,18 @@ program
|
|
|
100
99
|
process.exit(1);
|
|
101
100
|
}
|
|
102
101
|
});
|
|
102
|
+
program
|
|
103
|
+
.command("clean")
|
|
104
|
+
.description("Remove all build worktrees and WIP branches")
|
|
105
|
+
.action(() => {
|
|
106
|
+
try {
|
|
107
|
+
const { runClean } = require("./commands/clean");
|
|
108
|
+
runClean(process.cwd());
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
console.error(`Error: ${err}`);
|
|
112
|
+
process.exit(1);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
103
115
|
program.parse();
|
|
104
116
|
//# sourceMappingURL=cli.js.map
|
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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"}
|
package/dist/commands/build.js
CHANGED
|
@@ -1,4 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.runBuild = void 0;
|
|
4
37
|
const output_1 = require("../ui/output");
|
|
@@ -9,6 +42,8 @@ const state_1 = require("../store/state");
|
|
|
9
42
|
const budget_1 = require("../store/budget");
|
|
10
43
|
const tags_1 = require("../store/tags");
|
|
11
44
|
const plan_1 = require("./plan");
|
|
45
|
+
const worktree_1 = require("../engine/worktree");
|
|
46
|
+
const fs = __importStar(require("node:fs"));
|
|
12
47
|
const formatDuration = (ms) => {
|
|
13
48
|
const seconds = Math.round(ms / 1000);
|
|
14
49
|
if (seconds < 60)
|
|
@@ -96,14 +131,35 @@ const runBuild = async (config) => {
|
|
|
96
131
|
(0, output_1.printInfo)(`Resuming build '${config.buildName}' from phase ${completedCount + 1}/${state.phases.length}`);
|
|
97
132
|
}
|
|
98
133
|
// Validate sandbox availability before starting phases
|
|
99
|
-
if (config.
|
|
100
|
-
(0, sandbox_1.
|
|
101
|
-
|
|
134
|
+
if (!config.unsafe) {
|
|
135
|
+
const provider = (0, sandbox_1.detectSandbox)();
|
|
136
|
+
config.sandboxProvider = provider;
|
|
137
|
+
if (provider) {
|
|
138
|
+
(0, output_1.printInfo)(`Sandbox: ${provider.name}`);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
(0, output_1.printInfo)("Warning: no sandbox available (install greywall or bwrap)");
|
|
142
|
+
}
|
|
102
143
|
}
|
|
103
144
|
const startTime = Date.now();
|
|
104
145
|
let completed = 0;
|
|
105
146
|
let failed = 0;
|
|
106
147
|
(0, output_1.printInfo)(`Starting build: ${config.buildName} (${phases.length} phases)\n`);
|
|
148
|
+
// Set up worktree
|
|
149
|
+
const repoRoot = process.cwd();
|
|
150
|
+
if ((0, worktree_1.validateWorktree)(repoRoot, config.buildName)) {
|
|
151
|
+
config.worktreePath = (0, worktree_1.worktreePath)(repoRoot, config.buildName);
|
|
152
|
+
(0, output_1.printInfo)(`Resuming in worktree: ${config.worktreePath}`);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
// Clean up broken worktree if it exists
|
|
156
|
+
const existingPath = (0, worktree_1.worktreePath)(repoRoot, config.buildName);
|
|
157
|
+
if (fs.existsSync(existingPath)) {
|
|
158
|
+
(0, worktree_1.removeWorktree)(repoRoot, config.buildName);
|
|
159
|
+
}
|
|
160
|
+
config.worktreePath = (0, worktree_1.createWorktree)(repoRoot, config.buildName);
|
|
161
|
+
(0, output_1.printInfo)(`Worktree: ${config.worktreePath}`);
|
|
162
|
+
}
|
|
107
163
|
// Run phases
|
|
108
164
|
let nextPhaseState = (0, state_1.getNextIncompletePhase)(state);
|
|
109
165
|
while (nextPhaseState) {
|
|
@@ -116,6 +172,7 @@ const runBuild = async (config) => {
|
|
|
116
172
|
const result = await (0, phase_sequence_1.runPhase)(phase, config, state);
|
|
117
173
|
if (result === "passed") {
|
|
118
174
|
completed++;
|
|
175
|
+
(0, worktree_1.reflectCommits)(repoRoot, config.buildName);
|
|
119
176
|
}
|
|
120
177
|
else {
|
|
121
178
|
failed++;
|
|
@@ -143,6 +200,7 @@ const runBuild = async (config) => {
|
|
|
143
200
|
(0, output_1.printInfo)("All phases complete!");
|
|
144
201
|
(0, output_1.printInfo)("Cleaning up...");
|
|
145
202
|
(0, tags_1.cleanupBuildTags)(config.buildName);
|
|
203
|
+
(0, worktree_1.removeWorktree)(repoRoot, config.buildName);
|
|
146
204
|
}
|
|
147
205
|
};
|
|
148
206
|
exports.runBuild = runBuild;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const runClean: (repoRoot: string) => void;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runClean = void 0;
|
|
4
|
+
const output_1 = require("../ui/output");
|
|
5
|
+
const worktree_1 = require("../engine/worktree");
|
|
6
|
+
const runClean = (repoRoot) => {
|
|
7
|
+
(0, output_1.printInfo)("Cleaning up worktrees...");
|
|
8
|
+
(0, worktree_1.cleanAllWorktrees)(repoRoot);
|
|
9
|
+
(0, output_1.printInfo)("Done.");
|
|
10
|
+
};
|
|
11
|
+
exports.runClean = runClean;
|
|
12
|
+
//# sourceMappingURL=clean.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":";;;AAAA,yCAAwC;AACxC,iDAAsD;AAE/C,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAQ,EAAE;IACjD,IAAA,kBAAS,EAAC,0BAA0B,CAAC,CAAA;IACrC,IAAA,4BAAiB,EAAC,QAAQ,CAAC,CAAA;IAC3B,IAAA,kBAAS,EAAC,OAAO,CAAC,CAAA;AACpB,CAAC,CAAA;AAJY,QAAA,QAAQ,YAIpB"}
|
package/dist/config.js
CHANGED
|
@@ -37,6 +37,7 @@ exports.resolveConfig = exports.loadVersion = void 0;
|
|
|
37
37
|
const fs = __importStar(require("node:fs"));
|
|
38
38
|
const path = __importStar(require("node:path"));
|
|
39
39
|
const inputs_1 = require("./store/inputs");
|
|
40
|
+
const settings_1 = require("./store/settings");
|
|
40
41
|
// Load version from package.json at runtime
|
|
41
42
|
const loadVersion = () => {
|
|
42
43
|
// Try dist location first (installed), then source root
|
|
@@ -81,8 +82,9 @@ const resolveConfig = (buildName, opts) => {
|
|
|
81
82
|
checkTimeoutSeconds: parseInt(String(opts.checkTimeout ?? "1200"), 10),
|
|
82
83
|
checkCommand,
|
|
83
84
|
maxBudgetUsd: opts.maxBudgetUsd ? parseFloat(String(opts.maxBudgetUsd)) : null,
|
|
84
|
-
|
|
85
|
-
|
|
85
|
+
unsafe: opts.unsafe === true,
|
|
86
|
+
networkAllowlist: (0, settings_1.resolveNetworkAllowlist)(ridgelineDir),
|
|
87
|
+
worktreePath: null,
|
|
86
88
|
};
|
|
87
89
|
};
|
|
88
90
|
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,2CAA+D;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA6B;AAC7B,gDAAiC;AAEjC,2CAA+D;AAC/D,+CAA0D;AAE1D,4CAA4C;AACrC,MAAM,WAAW,GAAG,GAAW,EAAE;IACtC,wDAAwD;IACxD,KAAK,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QACjH,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;YACrD,IAAI,GAAG,CAAC,OAAO;gBAAE,OAAO,GAAG,CAAC,OAAO,CAAA;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAXY,QAAA,WAAW,eAWvB;AAED,6CAA6C;AACtC,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAE,IAAkD,EAAmB,EAAE;IACtH,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAA;IAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;IAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAE/C,MAAM,eAAe,GAAG,IAAA,oBAAW,EACjC,IAAI,CAAC,WAAiC,EACtC,QAAQ,EACR,gBAAgB,EAChB,YAAY,CACb,CAAA;IACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,sCAAsC;YACtC,OAAO,QAAQ,mBAAmB;YAClC,OAAO,YAAY,mBAAmB;YACtC,mCAAmC,SAAS,gCAAgC,CAC7E,CAAA;IACH,CAAC;IAED,MAAM,SAAS,GAAG,IAAA,oBAAW,EAC3B,IAAI,CAAC,KAA2B,EAChC,QAAQ,EACR,UAAU,EACV,YAAY,CACb,CAAA;IAED,MAAM,YAAY,GAAI,IAAI,CAAC,KAAgB,IAAI,IAAA,0BAAiB,EAAC,eAAe,CAAC,CAAA;IAEjF,OAAO;QACL,SAAS;QACT,YAAY;QACZ,QAAQ;QACR,eAAe;QACf,SAAS;QACT,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC;QAC9C,SAAS;QACT,KAAK,EAAG,IAAI,CAAC,KAAgB,IAAI,MAAM;QACvC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;QACxD,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;QAC3D,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACtE,YAAY;QACZ,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QAC9E,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI;QAC5B,gBAAgB,EAAE,IAAA,kCAAuB,EAAC,YAAY,CAAC;QACvD,YAAY,EAAE,IAAI;KACnB,CAAA;AACH,CAAC,CAAA;AA/CY,QAAA,aAAa,iBA+CzB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ClaudeResult } from "../../types";
|
|
2
|
+
import { SandboxProvider } from "./sandbox";
|
|
2
3
|
export type InvokeOptions = {
|
|
3
4
|
systemPrompt: string;
|
|
4
5
|
userPrompt: string;
|
|
@@ -15,7 +16,7 @@ export type InvokeOptions = {
|
|
|
15
16
|
sessionId?: string;
|
|
16
17
|
jsonSchema?: string;
|
|
17
18
|
onStdout?: (chunk: string) => void;
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
sandboxProvider?: SandboxProvider | null;
|
|
20
|
+
networkAllowlist?: string[];
|
|
20
21
|
};
|
|
21
22
|
export declare const invokeClaude: (opts: InvokeOptions) => Promise<ClaudeResult>;
|
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.invokeClaude = void 0;
|
|
4
4
|
const node_child_process_1 = require("node:child_process");
|
|
5
5
|
const stream_decode_1 = require("./stream.decode");
|
|
6
|
-
const sandbox_1 = require("./sandbox");
|
|
7
6
|
const invokeClaude = (opts) => {
|
|
8
7
|
return new Promise((resolve, reject) => {
|
|
9
8
|
const args = [
|
|
@@ -31,9 +30,10 @@ const invokeClaude = (opts) => {
|
|
|
31
30
|
}
|
|
32
31
|
// System prompt passed via --system-prompt flag
|
|
33
32
|
args.push("--system-prompt", opts.systemPrompt);
|
|
34
|
-
const
|
|
35
|
-
const
|
|
36
|
-
|
|
33
|
+
const provider = opts.sandboxProvider ?? null;
|
|
34
|
+
const spawnCmd = provider ? provider.command : "claude";
|
|
35
|
+
const spawnArgs = provider
|
|
36
|
+
? [...provider.buildArgs(opts.cwd, opts.networkAllowlist ?? []), "claude", ...args]
|
|
37
37
|
: args;
|
|
38
38
|
const proc = (0, node_child_process_1.spawn)(spawnCmd, spawnArgs, {
|
|
39
39
|
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;
|
|
1
|
+
{"version":3,"file":"claude.exec.js","sourceRoot":"","sources":["../../../src/engine/claude/claude.exec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.bwrapProvider = void 0;
|
|
4
|
+
exports.bwrapProvider = {
|
|
5
|
+
name: "bwrap",
|
|
6
|
+
command: "bwrap",
|
|
7
|
+
buildArgs(repoRoot, _networkAllowlist) {
|
|
8
|
+
return [
|
|
9
|
+
"--ro-bind", "/", "/",
|
|
10
|
+
"--bind", repoRoot, repoRoot,
|
|
11
|
+
"--bind", "/tmp", "/tmp",
|
|
12
|
+
"--dev", "/dev",
|
|
13
|
+
"--proc", "/proc",
|
|
14
|
+
"--die-with-parent",
|
|
15
|
+
"--unshare-net",
|
|
16
|
+
];
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=sandbox.bwrap.js.map
|
|
@@ -0,0 +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,CAAC,QAAgB,EAAE,iBAA2B;QACrD,OAAO;YACL,WAAW,EAAE,GAAG,EAAE,GAAG;YACrB,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YAC5B,QAAQ,EAAE,MAAM,EAAE,MAAM;YACxB,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,OAAO;YACjB,mBAAmB;YACnB,eAAe;SAChB,CAAA;IACH,CAAC;CACF,CAAA"}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
1
|
+
export type SandboxProvider = {
|
|
2
|
+
name: "bwrap" | "greywall";
|
|
3
|
+
command: string;
|
|
4
|
+
buildArgs: (repoRoot: string, networkAllowlist: string[]) => string[];
|
|
5
|
+
};
|
|
6
|
+
export declare const detectSandbox: () => SandboxProvider | null;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.greywallProvider = void 0;
|
|
4
|
+
exports.greywallProvider = {
|
|
5
|
+
name: "greywall",
|
|
6
|
+
command: "greywall",
|
|
7
|
+
buildArgs(repoRoot, networkAllowlist) {
|
|
8
|
+
const args = [
|
|
9
|
+
"--allow-dir", repoRoot,
|
|
10
|
+
"--allow-dir", "/tmp",
|
|
11
|
+
];
|
|
12
|
+
for (const domain of networkAllowlist) {
|
|
13
|
+
args.push("--allow-network", domain);
|
|
14
|
+
}
|
|
15
|
+
args.push("--");
|
|
16
|
+
return args;
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=sandbox.greywall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox.greywall.js","sourceRoot":"","sources":["../../../src/engine/claude/sandbox.greywall.ts"],"names":[],"mappings":";;;AAEa,QAAA,gBAAgB,GAAoB;IAC/C,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,UAAU;IACnB,SAAS,CAAC,QAAgB,EAAE,gBAA0B;QACpD,MAAM,IAAI,GAAa;YACrB,aAAa,EAAE,QAAQ;YACvB,aAAa,EAAE,MAAM;SACtB,CAAA;QACD,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAA;QACtC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACf,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA"}
|
|
@@ -1,31 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
// src/engine/claude/sandbox.ts
|
|
3
|
+
exports.detectSandbox = void 0;
|
|
5
4
|
const node_child_process_1 = require("node:child_process");
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
"--bind", repoRoot, repoRoot,
|
|
10
|
-
"--bind", "/tmp", "/tmp",
|
|
11
|
-
"--dev", "/dev",
|
|
12
|
-
"--proc", "/proc",
|
|
13
|
-
"--die-with-parent",
|
|
14
|
-
];
|
|
15
|
-
if (!allowNetwork) {
|
|
16
|
-
args.push("--unshare-net");
|
|
17
|
-
}
|
|
18
|
-
return args;
|
|
19
|
-
};
|
|
20
|
-
exports.buildBwrapArgs = buildBwrapArgs;
|
|
21
|
-
const assertBwrapAvailable = () => {
|
|
5
|
+
const sandbox_bwrap_1 = require("./sandbox.bwrap");
|
|
6
|
+
const sandbox_greywall_1 = require("./sandbox.greywall");
|
|
7
|
+
const isAvailable = (cmd) => {
|
|
22
8
|
try {
|
|
23
|
-
(0, node_child_process_1.
|
|
9
|
+
(0, node_child_process_1.execFileSync)("which", [cmd], { stdio: ["pipe", "pipe", "pipe"] });
|
|
10
|
+
return true;
|
|
24
11
|
}
|
|
25
12
|
catch {
|
|
26
|
-
|
|
27
|
-
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
const detectSandbox = () => {
|
|
17
|
+
// Prefer greywall (cross-platform, supports domain allowlisting)
|
|
18
|
+
if (isAvailable("greywall")) {
|
|
19
|
+
return sandbox_greywall_1.greywallProvider;
|
|
20
|
+
}
|
|
21
|
+
// Fall back to bwrap (Linux only, binary network toggle)
|
|
22
|
+
if (process.platform === "linux" && isAvailable("bwrap")) {
|
|
23
|
+
return sandbox_bwrap_1.bwrapProvider;
|
|
28
24
|
}
|
|
25
|
+
return null;
|
|
29
26
|
};
|
|
30
|
-
exports.
|
|
27
|
+
exports.detectSandbox = detectSandbox;
|
|
31
28
|
//# sourceMappingURL=sandbox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../../src/engine/claude/sandbox.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../../src/engine/claude/sandbox.ts"],"names":[],"mappings":";;;AAAA,2DAAiD;AACjD,mDAA+C;AAC/C,yDAAqD;AAQrD,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;AAEM,MAAM,aAAa,GAAG,GAA2B,EAAE;IACxD,iEAAiE;IACjE,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,mCAAgB,CAAA;IACzB,CAAC;IAED,yDAAyD;IACzD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,OAAO,6BAAa,CAAA;IACtB,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAZY,QAAA,aAAa,iBAYzB"}
|
|
@@ -4,4 +4,5 @@ export type PluginDir = {
|
|
|
4
4
|
createdPluginJson: boolean;
|
|
5
5
|
};
|
|
6
6
|
export declare const discoverPluginDirs: (config: RidgelineConfig) => PluginDir[];
|
|
7
|
+
export declare const getCorePluginDir: () => string | null;
|
|
7
8
|
export declare const cleanupPluginDirs: (dirs: PluginDir[]) => void;
|
|
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.cleanupPluginDirs = exports.discoverPluginDirs = void 0;
|
|
36
|
+
exports.cleanupPluginDirs = exports.getCorePluginDir = exports.discoverPluginDirs = void 0;
|
|
37
37
|
const fs = __importStar(require("node:fs"));
|
|
38
38
|
const path = __importStar(require("node:path"));
|
|
39
39
|
const PLUGIN_JSON_MARKER = "ridgeline-auto-generated";
|
|
@@ -77,6 +77,20 @@ const discoverPluginDirs = (config) => {
|
|
|
77
77
|
return dirs;
|
|
78
78
|
};
|
|
79
79
|
exports.discoverPluginDirs = discoverPluginDirs;
|
|
80
|
+
const getCorePluginDir = () => {
|
|
81
|
+
const candidates = [
|
|
82
|
+
path.join(__dirname, "..", "..", "agents", "core"), // dist
|
|
83
|
+
path.join(__dirname, "..", "..", "..", "agents", "core"), // src
|
|
84
|
+
path.join(__dirname, "..", "..", "..", "..", "src", "agents", "core"), // dev fallback
|
|
85
|
+
];
|
|
86
|
+
for (const dir of candidates) {
|
|
87
|
+
if (fs.existsSync(path.join(dir, "hooks")) && fs.existsSync(path.join(dir, "plugin.json"))) {
|
|
88
|
+
return dir;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return null;
|
|
92
|
+
};
|
|
93
|
+
exports.getCorePluginDir = getCorePluginDir;
|
|
80
94
|
const cleanupPluginDirs = (dirs) => {
|
|
81
95
|
for (const { dir, createdPluginJson } of dirs) {
|
|
82
96
|
if (!createdPluginJson)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.scan.js","sourceRoot":"","sources":["../../../src/engine/discovery/plugin.scan.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.scan.js","sourceRoot":"","sources":["../../../src/engine/discovery/plugin.scan.ts"],"names":[],"mappings":"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"}
|
|
@@ -89,6 +89,13 @@ const invokeBuilder = async (config, phase, feedbackPath) => {
|
|
|
89
89
|
const builtinAgents = (0, agent_scan_1.discoverBuiltinAgents)();
|
|
90
90
|
const agents = (0, agent_scan_1.buildAgentsFlag)(builtinAgents);
|
|
91
91
|
const pluginDirs = (0, plugin_scan_1.discoverPluginDirs)(config);
|
|
92
|
+
// Include core hooks plugin when running in unsafe mode (no sandbox)
|
|
93
|
+
if (config.unsafe && !config.sandboxProvider) {
|
|
94
|
+
const coreDir = (0, plugin_scan_1.getCorePluginDir)();
|
|
95
|
+
if (coreDir) {
|
|
96
|
+
pluginDirs.push({ dir: coreDir, createdPluginJson: false });
|
|
97
|
+
}
|
|
98
|
+
}
|
|
92
99
|
try {
|
|
93
100
|
const result = await (0, claude_exec_1.invokeClaude)({
|
|
94
101
|
systemPrompt,
|
|
@@ -97,11 +104,11 @@ const invokeBuilder = async (config, phase, feedbackPath) => {
|
|
|
97
104
|
allowedTools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep", "Agent"],
|
|
98
105
|
agents: Object.keys(agents).length > 0 ? agents : undefined,
|
|
99
106
|
pluginDirs: pluginDirs.length > 0 ? pluginDirs.map((p) => p.dir) : undefined,
|
|
100
|
-
cwd: process.cwd(),
|
|
107
|
+
cwd: config.worktreePath ?? process.cwd(),
|
|
101
108
|
timeoutMs: config.timeoutMinutes * 60 * 1000,
|
|
102
109
|
onStdout,
|
|
103
|
-
|
|
104
|
-
|
|
110
|
+
sandboxProvider: config.sandboxProvider,
|
|
111
|
+
networkAllowlist: config.networkAllowlist,
|
|
105
112
|
});
|
|
106
113
|
flush();
|
|
107
114
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.exec.js","sourceRoot":"","sources":["../../../src/engine/pipeline/build.exec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA6B;AAC7B,gDAAiC;AAEjC,uDAAoD;AACpD,yDAA2D;AAC3D,2DAAgE;AAChE,iDAAiD;AACjD,wDAAgF;AAChF,
|
|
1
|
+
{"version":3,"file":"build.exec.js","sourceRoot":"","sources":["../../../src/engine/pipeline/build.exec.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ const runPhase = async (phase, config, state) => {
|
|
|
21
21
|
(0, handoff_1.ensureHandoffExists)(config.buildDir);
|
|
22
22
|
let attempt = phaseState.retries;
|
|
23
23
|
const maxAttempts = config.maxRetries + 1; // retries + initial attempt
|
|
24
|
-
const sandboxNote = config.
|
|
24
|
+
const sandboxNote = config.sandboxProvider ? ` [sandbox: ${config.sandboxProvider.name}]` : "";
|
|
25
25
|
while (attempt < maxAttempts) {
|
|
26
26
|
const isRetry = attempt > 0;
|
|
27
27
|
const feedbackFilePath = isRetry
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase.sequence.js","sourceRoot":"","sources":["../../../src/engine/pipeline/phase.sequence.ts"],"names":[],"mappings":";;;AACA,2CAAwE;AACxE,+CAA+C;AAC/C,iDAAyD;AACzD,mDAAkF;AAClF,uDAA2E;AAC3E,6CAAqD;AACrD,4CAA4C;AAC5C,6CAA4C;AAC5C,+CAA8C;AAEvC,MAAM,QAAQ,GAAG,KAAK,EAC3B,KAAgB,EAChB,MAAuB,EACvB,KAAiB,EACa,EAAE;IAChC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAA;IAC9D,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,EAAE,qBAAqB,CAAC,CAAA;IAExE,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAA;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAE5B,mCAAmC;IACnC,IAAA,uBAAgB,EAAC,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;IAEzC,IAAA,6BAAmB,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAEpC,IAAI,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;IAChC,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,GAAG,CAAC,CAAA,CAAC,4BAA4B;IACtE,MAAM,WAAW,GAAG,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"phase.sequence.js","sourceRoot":"","sources":["../../../src/engine/pipeline/phase.sequence.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,6 +70,13 @@ const invokeReviewer = async (config, phase, checkpointTag) => {
|
|
|
70
70
|
const builtinAgents = (0, agent_scan_1.discoverBuiltinAgents)();
|
|
71
71
|
const agents = (0, agent_scan_1.buildAgentsFlag)(builtinAgents);
|
|
72
72
|
const pluginDirs = (0, plugin_scan_1.discoverPluginDirs)(config);
|
|
73
|
+
// Include core hooks plugin when running in unsafe mode (no sandbox)
|
|
74
|
+
if (config.unsafe && !config.sandboxProvider) {
|
|
75
|
+
const coreDir = (0, plugin_scan_1.getCorePluginDir)();
|
|
76
|
+
if (coreDir) {
|
|
77
|
+
pluginDirs.push({ dir: coreDir, createdPluginJson: false });
|
|
78
|
+
}
|
|
79
|
+
}
|
|
73
80
|
try {
|
|
74
81
|
const result = await (0, claude_exec_1.invokeClaude)({
|
|
75
82
|
systemPrompt,
|
|
@@ -78,11 +85,11 @@ const invokeReviewer = async (config, phase, checkpointTag) => {
|
|
|
78
85
|
allowedTools: ["Read", "Bash", "Glob", "Grep", "Agent"],
|
|
79
86
|
agents: Object.keys(agents).length > 0 ? agents : undefined,
|
|
80
87
|
pluginDirs: pluginDirs.length > 0 ? pluginDirs.map((p) => p.dir) : undefined,
|
|
81
|
-
cwd: process.cwd(),
|
|
88
|
+
cwd: config.worktreePath ?? process.cwd(),
|
|
82
89
|
timeoutMs: config.timeoutMinutes * 60 * 1000,
|
|
83
90
|
onStdout,
|
|
84
|
-
|
|
85
|
-
|
|
91
|
+
sandboxProvider: config.sandboxProvider,
|
|
92
|
+
networkAllowlist: config.networkAllowlist,
|
|
86
93
|
});
|
|
87
94
|
flush();
|
|
88
95
|
const verdict = (0, feedback_1.parseVerdict)(result.result);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review.exec.js","sourceRoot":"","sources":["../../../src/engine/pipeline/review.exec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA6B;AAE7B,uDAAoD;AACpD,yDAA2D;AAC3D,2DAAgE;AAChE,mCAAmC;AACnC,wDAAgF;AAChF,
|
|
1
|
+
{"version":3,"file":"review.exec.js","sourceRoot":"","sources":["../../../src/engine/pipeline/review.exec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const worktreePath: (repoRoot: string, buildName: string) => string;
|
|
2
|
+
export declare const wipBranch: (buildName: string) => string;
|
|
3
|
+
export declare const createWorktree: (repoRoot: string, buildName: string) => string;
|
|
4
|
+
export declare const validateWorktree: (repoRoot: string, buildName: string) => boolean;
|
|
5
|
+
export declare const reflectCommits: (repoRoot: string, buildName: string) => void;
|
|
6
|
+
export declare const removeWorktree: (repoRoot: string, buildName: string) => void;
|
|
7
|
+
export declare const cleanAllWorktrees: (repoRoot: string) => void;
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.cleanAllWorktrees = exports.removeWorktree = exports.reflectCommits = exports.validateWorktree = exports.createWorktree = exports.wipBranch = exports.worktreePath = void 0;
|
|
37
|
+
const node_child_process_1 = require("node:child_process");
|
|
38
|
+
const fs = __importStar(require("node:fs"));
|
|
39
|
+
const path = __importStar(require("node:path"));
|
|
40
|
+
const run = (cmd, cwd) => (0, node_child_process_1.execSync)(cmd, { cwd, encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] }).trim();
|
|
41
|
+
const worktreePath = (repoRoot, buildName) => path.join(repoRoot, ".ridgeline", "worktrees", buildName);
|
|
42
|
+
exports.worktreePath = worktreePath;
|
|
43
|
+
const wipBranch = (buildName) => `ridgeline/wip/${buildName}`;
|
|
44
|
+
exports.wipBranch = wipBranch;
|
|
45
|
+
const createWorktree = (repoRoot, buildName) => {
|
|
46
|
+
const wtPath = (0, exports.worktreePath)(repoRoot, buildName);
|
|
47
|
+
const branch = (0, exports.wipBranch)(buildName);
|
|
48
|
+
// Ensure parent directory exists
|
|
49
|
+
fs.mkdirSync(path.dirname(wtPath), { recursive: true });
|
|
50
|
+
run(`git worktree add ${wtPath} -b ${branch}`, repoRoot);
|
|
51
|
+
return wtPath;
|
|
52
|
+
};
|
|
53
|
+
exports.createWorktree = createWorktree;
|
|
54
|
+
const validateWorktree = (repoRoot, buildName) => {
|
|
55
|
+
const wtPath = (0, exports.worktreePath)(repoRoot, buildName);
|
|
56
|
+
if (!fs.existsSync(wtPath))
|
|
57
|
+
return false;
|
|
58
|
+
// Check if .git file/dir exists (worktrees have a .git file pointing to main repo)
|
|
59
|
+
const gitPath = path.join(wtPath, ".git");
|
|
60
|
+
if (!fs.existsSync(gitPath))
|
|
61
|
+
return false;
|
|
62
|
+
// Check if HEAD is valid
|
|
63
|
+
try {
|
|
64
|
+
run("git rev-parse HEAD", wtPath);
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
exports.validateWorktree = validateWorktree;
|
|
72
|
+
const reflectCommits = (repoRoot, buildName) => {
|
|
73
|
+
const branch = (0, exports.wipBranch)(buildName);
|
|
74
|
+
try {
|
|
75
|
+
// Try fast-forward first
|
|
76
|
+
run(`git merge --ff-only ${branch}`, repoRoot);
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
// Fall back to regular merge if user's branch diverged
|
|
80
|
+
run(`git merge ${branch} -m "ridgeline: merge ${buildName} phase"`, repoRoot);
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
exports.reflectCommits = reflectCommits;
|
|
84
|
+
const removeWorktree = (repoRoot, buildName) => {
|
|
85
|
+
const wtPath = (0, exports.worktreePath)(repoRoot, buildName);
|
|
86
|
+
const branch = (0, exports.wipBranch)(buildName);
|
|
87
|
+
try {
|
|
88
|
+
run(`git worktree remove ${wtPath} --force`, repoRoot);
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
// If worktree remove fails, try manual cleanup
|
|
92
|
+
if (fs.existsSync(wtPath)) {
|
|
93
|
+
fs.rmSync(wtPath, { recursive: true, force: true });
|
|
94
|
+
}
|
|
95
|
+
try {
|
|
96
|
+
run("git worktree prune", repoRoot);
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
// best effort
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
try {
|
|
103
|
+
run(`git branch -d ${branch}`, repoRoot);
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
try {
|
|
107
|
+
run(`git branch -D ${branch}`, repoRoot);
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
// best effort
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
exports.removeWorktree = removeWorktree;
|
|
115
|
+
const cleanAllWorktrees = (repoRoot) => {
|
|
116
|
+
const worktreesDir = path.join(repoRoot, ".ridgeline", "worktrees");
|
|
117
|
+
if (!fs.existsSync(worktreesDir))
|
|
118
|
+
return;
|
|
119
|
+
const entries = fs.readdirSync(worktreesDir);
|
|
120
|
+
for (const entry of entries) {
|
|
121
|
+
const fullPath = path.join(worktreesDir, entry);
|
|
122
|
+
if (fs.statSync(fullPath).isDirectory()) {
|
|
123
|
+
(0, exports.removeWorktree)(repoRoot, entry);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
exports.cleanAllWorktrees = cleanAllWorktrees;
|
|
128
|
+
//# sourceMappingURL=worktree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../src/engine/worktree.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const DEFAULT_NETWORK_ALLOWLIST: string[];
|
|
2
|
+
export type RidgelineSettings = {
|
|
3
|
+
network?: {
|
|
4
|
+
allowlist?: string[];
|
|
5
|
+
};
|
|
6
|
+
};
|
|
7
|
+
export declare const loadSettings: (ridgelineDir: string) => RidgelineSettings;
|
|
8
|
+
export declare const resolveNetworkAllowlist: (ridgelineDir: string) => string[];
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.resolveNetworkAllowlist = exports.loadSettings = exports.DEFAULT_NETWORK_ALLOWLIST = void 0;
|
|
37
|
+
const fs = __importStar(require("node:fs"));
|
|
38
|
+
const path = __importStar(require("node:path"));
|
|
39
|
+
exports.DEFAULT_NETWORK_ALLOWLIST = [
|
|
40
|
+
"registry.npmjs.org",
|
|
41
|
+
"pypi.org",
|
|
42
|
+
"files.pythonhosted.org",
|
|
43
|
+
"crates.io",
|
|
44
|
+
"static.crates.io",
|
|
45
|
+
"rubygems.org",
|
|
46
|
+
"proxy.golang.org",
|
|
47
|
+
"github.com",
|
|
48
|
+
"gitlab.com",
|
|
49
|
+
"bitbucket.org",
|
|
50
|
+
];
|
|
51
|
+
const loadSettings = (ridgelineDir) => {
|
|
52
|
+
const settingsPath = path.join(ridgelineDir, "settings.json");
|
|
53
|
+
try {
|
|
54
|
+
const raw = fs.readFileSync(settingsPath, "utf-8");
|
|
55
|
+
return JSON.parse(raw);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return {};
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
exports.loadSettings = loadSettings;
|
|
62
|
+
const resolveNetworkAllowlist = (ridgelineDir) => {
|
|
63
|
+
const settings = (0, exports.loadSettings)(ridgelineDir);
|
|
64
|
+
if (settings.network?.allowlist && settings.network.allowlist.length > 0) {
|
|
65
|
+
return settings.network.allowlist;
|
|
66
|
+
}
|
|
67
|
+
return [...exports.DEFAULT_NETWORK_ALLOWLIST];
|
|
68
|
+
};
|
|
69
|
+
exports.resolveNetworkAllowlist = resolveNetworkAllowlist;
|
|
70
|
+
//# sourceMappingURL=settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/store/settings.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA6B;AAC7B,gDAAiC;AAEpB,QAAA,yBAAyB,GAAa;IACjD,oBAAoB;IACpB,UAAU;IACV,wBAAwB;IACxB,WAAW;IACX,kBAAkB;IAClB,cAAc;IACd,kBAAkB;IAClB,YAAY;IACZ,YAAY;IACZ,eAAe;CAChB,CAAA;AAQM,MAAM,YAAY,GAAG,CAAC,YAAoB,EAAqB,EAAE;IACtE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAA;IAC7D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsB,CAAA;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC,CAAA;AARY,QAAA,YAAY,gBAQxB;AAEM,MAAM,uBAAuB,GAAG,CAAC,YAAoB,EAAY,EAAE;IACxE,MAAM,QAAQ,GAAG,IAAA,oBAAY,EAAC,YAAY,CAAC,CAAA;IAC3C,IAAI,QAAQ,CAAC,OAAO,EAAE,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzE,OAAO,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAA;IACnC,CAAC;IACD,OAAO,CAAC,GAAG,iCAAyB,CAAC,CAAA;AACvC,CAAC,CAAA;AANY,QAAA,uBAAuB,2BAMnC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -12,8 +12,10 @@ export type RidgelineConfig = {
|
|
|
12
12
|
checkTimeoutSeconds: number;
|
|
13
13
|
checkCommand: string | null;
|
|
14
14
|
maxBudgetUsd: number | null;
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
unsafe: boolean;
|
|
16
|
+
networkAllowlist: string[];
|
|
17
|
+
sandboxProvider?: import("./engine/claude/sandbox").SandboxProvider | null;
|
|
18
|
+
worktreePath: string | null;
|
|
17
19
|
};
|
|
18
20
|
export type PhaseInfo = {
|
|
19
21
|
id: string;
|