runshift 0.0.3 → 0.0.5
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/.claude/settings.local.json +4 -1
- package/dist/commands/init.d.ts +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +149 -16
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/remove.d.ts +2 -0
- package/dist/commands/remove.d.ts.map +1 -0
- package/dist/commands/remove.js +49 -0
- package/dist/commands/remove.js.map +1 -0
- package/dist/context/collector.d.ts.map +1 -1
- package/dist/context/collector.js +33 -0
- package/dist/context/collector.js.map +1 -1
- package/dist/index.js +17 -5
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/display.d.ts +5 -0
- package/dist/ui/display.d.ts.map +1 -1
- package/dist/ui/display.js +56 -4
- package/dist/ui/display.js.map +1 -1
- package/dist/ui/prompt.d.ts +2 -0
- package/dist/ui/prompt.d.ts.map +1 -1
- package/dist/ui/prompt.js +37 -0
- package/dist/ui/prompt.js.map +1 -1
- package/package.json +1 -1
- package/src/commands/init.ts +180 -18
- package/src/commands/remove.ts +59 -0
- package/src/context/collector.ts +44 -0
- package/src/index.ts +17 -5
- package/src/types.ts +2 -0
- package/src/ui/display.ts +59 -4
- package/src/ui/prompt.ts +42 -0
|
@@ -5,7 +5,10 @@
|
|
|
5
5
|
"Bash(npm install:*)",
|
|
6
6
|
"Bash(npm run:*)",
|
|
7
7
|
"Read(//private/tmp/**)",
|
|
8
|
-
"Bash(node /Users/dc/runshift-cli/dist/index.js init)"
|
|
8
|
+
"Bash(node /Users/dc/runshift-cli/dist/index.js init)",
|
|
9
|
+
"Bash(node /Users/dc/runshift-cli/dist/index.js init --help)",
|
|
10
|
+
"Bash(node /Users/dc/runshift-cli/dist/index.js --help)",
|
|
11
|
+
"Bash(node /Users/dc/runshift-cli/dist/index.js remove)"
|
|
9
12
|
]
|
|
10
13
|
}
|
|
11
14
|
}
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function init(): Promise<void>;
|
|
1
|
+
export declare function init(args?: string[]): Promise<void>;
|
|
2
2
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAyEA,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA2P7D"}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,14 +1,53 @@
|
|
|
1
1
|
import ora from "ora";
|
|
2
|
+
import { exec, execSync } from "node:child_process";
|
|
2
3
|
import { collectRepoContext, addFileToContext } from "../context/collector.js";
|
|
3
4
|
import { getGitState } from "../context/git.js";
|
|
4
|
-
import { showBanner, showNotGitRepo, showDirtyWarning, showBranchInfo, showScanResults, showFindings, showFileList, showSummary, showSuccess, showError, } from "../ui/display.js";
|
|
5
|
-
import { confirm, promptChoice, promptFilePath } from "../ui/prompt.js";
|
|
5
|
+
import { showBanner, showNotGitRepo, showDirtyWarning, showBranchInfo, showScanResults, showDataPolicy, showFindings, showFileList, showSelectedFiles, showProtectedFiles, showSummary, showSuccess, showDryRunComplete, showCancelled, showError, } from "../ui/display.js";
|
|
6
|
+
import { confirm, promptChoice, promptFilePath, promptFileSelection, promptPreview } from "../ui/prompt.js";
|
|
6
7
|
import { writeFiles, commitFiles } from "../writer.js";
|
|
7
|
-
const
|
|
8
|
+
const IS_DEV = process.env.RUNSHIFT_DEV === "true";
|
|
9
|
+
const API_URL = IS_DEV
|
|
8
10
|
? "http://localhost:3000/api/cli/init"
|
|
9
11
|
: "https://runshift.ai/api/cli/init";
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
+
const BASE_URL = IS_DEV
|
|
13
|
+
? "http://localhost:3000"
|
|
14
|
+
: "https://runshift.ai";
|
|
15
|
+
const TIMEOUT_MS = 180_000;
|
|
16
|
+
function parseFlags(args) {
|
|
17
|
+
const flags = { dryRun: false, branch: null, help: false };
|
|
18
|
+
for (let i = 0; i < args.length; i++) {
|
|
19
|
+
const arg = args[i];
|
|
20
|
+
if (arg === "--dry-run") {
|
|
21
|
+
flags.dryRun = true;
|
|
22
|
+
}
|
|
23
|
+
else if (arg === "--branch") {
|
|
24
|
+
const next = args[i + 1];
|
|
25
|
+
flags.branch = next && !next.startsWith("--") ? next : "relay-init";
|
|
26
|
+
if (next && !next.startsWith("--"))
|
|
27
|
+
i++;
|
|
28
|
+
}
|
|
29
|
+
else if (arg === "--help") {
|
|
30
|
+
flags.help = true;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return flags;
|
|
34
|
+
}
|
|
35
|
+
function showInitHelp() {
|
|
36
|
+
console.log(`
|
|
37
|
+
npx runshift init [options]
|
|
38
|
+
|
|
39
|
+
options:
|
|
40
|
+
--dry-run preview changes without writing files
|
|
41
|
+
--branch <name> run on a new branch (default: relay-init)
|
|
42
|
+
--help show this help
|
|
43
|
+
`);
|
|
44
|
+
}
|
|
45
|
+
export async function init(args = []) {
|
|
46
|
+
const flags = parseFlags(args);
|
|
47
|
+
if (flags.help) {
|
|
48
|
+
showInitHelp();
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
12
51
|
showBanner();
|
|
13
52
|
// ── 1. Git safety ─────────────────────────────────────────────────
|
|
14
53
|
const git = getGitState();
|
|
@@ -21,14 +60,30 @@ export async function init() {
|
|
|
21
60
|
showDirtyWarning();
|
|
22
61
|
const proceed = await confirm(" continue with uncommitted changes? (y/n) ");
|
|
23
62
|
if (!proceed) {
|
|
63
|
+
showCancelled();
|
|
24
64
|
process.exit(0);
|
|
25
65
|
}
|
|
26
66
|
}
|
|
67
|
+
// ── 1b. Branch flag — create and switch ───────────────────────────
|
|
68
|
+
if (flags.branch) {
|
|
69
|
+
try {
|
|
70
|
+
execSync(`git rev-parse --verify ${flags.branch}`, { stdio: "pipe" });
|
|
71
|
+
console.log(` branch ${flags.branch} already exists.\n`);
|
|
72
|
+
process.exit(1);
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
// branch doesn't exist — good
|
|
76
|
+
}
|
|
77
|
+
execSync(`git checkout -b ${flags.branch}`, { stdio: "pipe" });
|
|
78
|
+
console.log(` switched to new branch ${flags.branch}\n`);
|
|
79
|
+
}
|
|
27
80
|
// ── 2. Collect context ────────────────────────────────────────────
|
|
28
81
|
const root = process.cwd();
|
|
29
82
|
const context = collectRepoContext(root);
|
|
30
|
-
// ── 3. Show scan results + prompt
|
|
83
|
+
// ── 3. Show scan results + protected files + data policy + prompt ─
|
|
31
84
|
showScanResults(context);
|
|
85
|
+
showProtectedFiles(context.protectedPaths);
|
|
86
|
+
showDataPolicy();
|
|
32
87
|
let choice = await promptChoice(" proceed? [y] add more files? [a] cancel? [n] ");
|
|
33
88
|
while (choice === "a") {
|
|
34
89
|
const filePath = await promptFilePath(" file path: ");
|
|
@@ -39,9 +94,11 @@ export async function init() {
|
|
|
39
94
|
}
|
|
40
95
|
}
|
|
41
96
|
showScanResults(context);
|
|
97
|
+
showDataPolicy();
|
|
42
98
|
choice = await promptChoice(" proceed? [y] add more files? [a] cancel? [n] ");
|
|
43
99
|
}
|
|
44
100
|
if (choice === "n") {
|
|
101
|
+
showCancelled();
|
|
45
102
|
process.exit(0);
|
|
46
103
|
}
|
|
47
104
|
// ── 4. Call API ───────────────────────────────────────────────────
|
|
@@ -49,7 +106,13 @@ export async function init() {
|
|
|
49
106
|
text: "relay is reading your repository...",
|
|
50
107
|
color: "yellow",
|
|
51
108
|
}).start();
|
|
52
|
-
|
|
109
|
+
const spinnerMessages = [
|
|
110
|
+
{ delay: 8000, text: "relay is analyzing your stack..." },
|
|
111
|
+
{ delay: 20000, text: "generating governance rules..." },
|
|
112
|
+
{ delay: 45000, text: "reviewing with second model..." },
|
|
113
|
+
{ delay: 70000, text: "synthesizing final rules..." },
|
|
114
|
+
];
|
|
115
|
+
const spinnerTimeouts = spinnerMessages.map(({ delay, text }) => setTimeout(() => { spinner.text = text; }, delay));
|
|
53
116
|
let response;
|
|
54
117
|
try {
|
|
55
118
|
const controller = new AbortController();
|
|
@@ -61,11 +124,13 @@ export async function init() {
|
|
|
61
124
|
signal: controller.signal,
|
|
62
125
|
});
|
|
63
126
|
clearTimeout(timeout);
|
|
127
|
+
spinnerTimeouts.forEach((t) => clearTimeout(t));
|
|
64
128
|
}
|
|
65
129
|
catch (err) {
|
|
130
|
+
spinnerTimeouts.forEach((t) => clearTimeout(t));
|
|
66
131
|
spinner.stop();
|
|
67
132
|
if (err instanceof Error && err.name === "AbortError") {
|
|
68
|
-
showError("network", "request timed out after
|
|
133
|
+
showError("network", "request timed out after 180s");
|
|
69
134
|
}
|
|
70
135
|
else {
|
|
71
136
|
showError("network");
|
|
@@ -102,28 +167,96 @@ export async function init() {
|
|
|
102
167
|
showSummary(data.summary);
|
|
103
168
|
showFindings(data.findings);
|
|
104
169
|
showFileList(data.files);
|
|
105
|
-
// ── 6.
|
|
106
|
-
|
|
107
|
-
|
|
170
|
+
// ── 6. Preview link ───────────────────────────────────────────────
|
|
171
|
+
if (data.previewId) {
|
|
172
|
+
const previewUrl = `${BASE_URL}/preview/${data.previewId}`;
|
|
173
|
+
const open = await promptPreview(` preview ready — ${previewUrl}\n\n [o] open in browser [enter] continue `);
|
|
174
|
+
if (open) {
|
|
175
|
+
exec(`open ${previewUrl}`);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
// ── 7. Dry run exit ───────────────────────────────────────────────
|
|
179
|
+
if (flags.dryRun) {
|
|
180
|
+
showDryRunComplete();
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
// ── 8. File selection ────────────────────────────────────────────
|
|
184
|
+
const fileChoice = await promptFileSelection(" [a] accept all [s] select files [n] don't change anything ");
|
|
185
|
+
if (fileChoice === "n") {
|
|
186
|
+
showCancelled();
|
|
108
187
|
process.exit(0);
|
|
109
188
|
}
|
|
110
|
-
|
|
189
|
+
let filesToWrite = data.files;
|
|
190
|
+
if (fileChoice === "a") {
|
|
191
|
+
const preserved = context.protectedPaths.length;
|
|
192
|
+
if (preserved > 0) {
|
|
193
|
+
console.log(`\n relay will write ${data.files.length} files.`);
|
|
194
|
+
console.log(` ${preserved} file${preserved === 1 ? " was" : "s were"} preserved (human-written).\n`);
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
console.log(`\n relay will write all ${data.files.length} files.\n`);
|
|
198
|
+
}
|
|
199
|
+
const acceptConfirm = await confirm(" confirm? (y/n) ");
|
|
200
|
+
if (!acceptConfirm) {
|
|
201
|
+
showCancelled();
|
|
202
|
+
process.exit(0);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
else if (fileChoice === "s") {
|
|
206
|
+
console.log("\n which files do you want? you can say things like:");
|
|
207
|
+
console.log(" 'all except CLAUDE.md'");
|
|
208
|
+
console.log(" 'only the cursor rules'");
|
|
209
|
+
console.log(" 'just core.mdc and worktrees'\n");
|
|
210
|
+
const instruction = await promptFilePath(" → ");
|
|
211
|
+
const selectUrl = `${BASE_URL}/api/cli/select`;
|
|
212
|
+
let selectedPaths;
|
|
213
|
+
try {
|
|
214
|
+
const selectRes = await fetch(selectUrl, {
|
|
215
|
+
method: "POST",
|
|
216
|
+
headers: { "Content-Type": "application/json" },
|
|
217
|
+
body: JSON.stringify({
|
|
218
|
+
files: data.files.map((f) => f.path),
|
|
219
|
+
instruction,
|
|
220
|
+
}),
|
|
221
|
+
});
|
|
222
|
+
if (!selectRes.ok) {
|
|
223
|
+
showError("server", "file selection failed");
|
|
224
|
+
process.exit(1);
|
|
225
|
+
}
|
|
226
|
+
const selectData = (await selectRes.json());
|
|
227
|
+
selectedPaths = selectData.selectedPaths;
|
|
228
|
+
}
|
|
229
|
+
catch {
|
|
230
|
+
showError("network");
|
|
231
|
+
process.exit(1);
|
|
232
|
+
}
|
|
233
|
+
filesToWrite = data.files.filter((f) => selectedPaths.includes(f.path));
|
|
234
|
+
showSelectedFiles(data.files, selectedPaths);
|
|
235
|
+
console.log(` relay will write ${filesToWrite.length} of ${data.files.length} files.\n`);
|
|
236
|
+
const selectConfirm = await confirm(" confirm? (y/n) ");
|
|
237
|
+
if (!selectConfirm) {
|
|
238
|
+
showCancelled();
|
|
239
|
+
process.exit(0);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
// ── 9. Re-check git before writing ────────────────────────────────
|
|
111
243
|
const gitNow = getGitState();
|
|
112
244
|
if (gitNow.isDirty && !git.isDirty) {
|
|
113
245
|
const proceed = await confirm(" working tree changed since scan — continue? (y/n) ");
|
|
114
246
|
if (!proceed) {
|
|
247
|
+
showCancelled();
|
|
115
248
|
process.exit(0);
|
|
116
249
|
}
|
|
117
250
|
}
|
|
118
|
-
// ──
|
|
251
|
+
// ── 10. Write + commit ────────────────────────────────────────────
|
|
119
252
|
console.log();
|
|
120
|
-
writeFiles(root,
|
|
253
|
+
writeFiles(root, filesToWrite);
|
|
121
254
|
console.log();
|
|
122
|
-
const committed = commitFiles(root,
|
|
255
|
+
const committed = commitFiles(root, filesToWrite);
|
|
123
256
|
if (!committed) {
|
|
124
257
|
console.log(" ⚠ files written but git commit failed\n");
|
|
125
258
|
}
|
|
126
|
-
// ──
|
|
259
|
+
// ── 11. Success ───────────────────────────────────────────────────
|
|
127
260
|
showSuccess();
|
|
128
261
|
}
|
|
129
262
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"AAUA,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAgD5C"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { execSync } from "node:child_process";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import { showBanner, showCancelled } from "../ui/display.js";
|
|
4
|
+
import { confirm } from "../ui/prompt.js";
|
|
5
|
+
const amber = chalk.hex("#f5a623");
|
|
6
|
+
const dim = chalk.dim;
|
|
7
|
+
const COMMIT_GREP = "install runshift agent governance rules";
|
|
8
|
+
export async function remove() {
|
|
9
|
+
showBanner();
|
|
10
|
+
// ── Find the most recent runshift commit ──────────────────────────
|
|
11
|
+
let logLine;
|
|
12
|
+
try {
|
|
13
|
+
logLine = execSync(`git log --oneline --grep="${COMMIT_GREP}" -1 --format="%H %s %ad" --date=short`, { stdio: "pipe" })
|
|
14
|
+
.toString()
|
|
15
|
+
.trim();
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
console.log(amber(" no runshift commit found in this repository.\n"));
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
if (!logLine) {
|
|
22
|
+
console.log(amber(" no runshift commit found in this repository.\n"));
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const spaceIdx = logLine.indexOf(" ");
|
|
26
|
+
const hash = logLine.slice(0, spaceIdx);
|
|
27
|
+
const rest = logLine.slice(spaceIdx + 1);
|
|
28
|
+
// Split rest into message and date (date is last 10 chars: YYYY-MM-DD)
|
|
29
|
+
const date = rest.slice(-10);
|
|
30
|
+
const message = rest.slice(0, -11).trim();
|
|
31
|
+
console.log(amber(" relay will revert commit:\n"));
|
|
32
|
+
console.log(dim(` ${hash.slice(0, 7)}`));
|
|
33
|
+
console.log(dim(` ${message}`));
|
|
34
|
+
console.log(dim(` ${date}\n`));
|
|
35
|
+
const proceed = await confirm(" revert this commit? (y/n) ");
|
|
36
|
+
if (!proceed) {
|
|
37
|
+
showCancelled();
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
execSync(`git revert ${hash} --no-edit`, { stdio: "pipe" });
|
|
42
|
+
console.log(amber("\n ✓ reverted — runshift governance rules removed\n"));
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
console.log(amber("\n revert failed."));
|
|
46
|
+
console.log(dim(` ${err instanceof Error ? err.message : err}\n`));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=remove.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACnC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;AAEtB,MAAM,WAAW,GAAG,yCAAyC,CAAC;AAE9D,MAAM,CAAC,KAAK,UAAU,MAAM;IAC1B,UAAU,EAAE,CAAC;IAEb,qEAAqE;IACrE,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,QAAQ,CAChB,6BAA6B,WAAW,wCAAwC,EAChF,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB;aACE,QAAQ,EAAE;aACV,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC,CAAC;QACvE,OAAO;IACT,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC,CAAC;QACvE,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAEzC,uEAAuE;IACvE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAE1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;IAEhC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC9D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,aAAa,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,QAAQ,CAAC,cAAc,IAAI,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC,CAAC;IAC7E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACtE,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../src/context/collector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../src/context/collector.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAuI/C,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAsG5D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAM9F"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as fs from "node:fs";
|
|
2
2
|
import * as path from "node:path";
|
|
3
|
+
import { execSync } from "node:child_process";
|
|
3
4
|
import { getGitState } from "./git.js";
|
|
4
5
|
const IGNORE_DIRS = new Set([
|
|
5
6
|
"node_modules", ".git", "dist", ".next", ".vercel", ".turbo",
|
|
@@ -89,6 +90,35 @@ function getRootConfigs(root) {
|
|
|
89
90
|
return [];
|
|
90
91
|
}
|
|
91
92
|
}
|
|
93
|
+
function getProtectedPaths(root, existingRules) {
|
|
94
|
+
const protectedPaths = [];
|
|
95
|
+
for (const filePath of Object.keys(existingRules)) {
|
|
96
|
+
// CLAUDE.md is always protected regardless of git history
|
|
97
|
+
if (filePath === "CLAUDE.md") {
|
|
98
|
+
protectedPaths.push(filePath);
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
try {
|
|
102
|
+
const lastCommitMsg = execSync(`git log --follow -1 --pretty=format:"%s" -- "${filePath}"`, { cwd: root, stdio: "pipe" }).toString().trim();
|
|
103
|
+
if (!lastCommitMsg) {
|
|
104
|
+
// Not in git → human created → protect
|
|
105
|
+
protectedPaths.push(filePath);
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
const isRelay = lastCommitMsg.includes("install runshift agent governance rules") ||
|
|
109
|
+
lastCommitMsg.includes("runshift update");
|
|
110
|
+
if (!isRelay) {
|
|
111
|
+
// Last commit was by a human → protect
|
|
112
|
+
protectedPaths.push(filePath);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
// git log failed → protect to be safe
|
|
117
|
+
protectedPaths.push(filePath);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return protectedPaths;
|
|
121
|
+
}
|
|
92
122
|
export function collectRepoContext(root) {
|
|
93
123
|
// ── package.json ──
|
|
94
124
|
const pkgJson = readJsonSafe(path.join(root, "package.json"));
|
|
@@ -150,6 +180,8 @@ export function collectRepoContext(root) {
|
|
|
150
180
|
if (claudeMd) {
|
|
151
181
|
existingRules["CLAUDE.md"] = claudeMd;
|
|
152
182
|
}
|
|
183
|
+
// ── Protected paths ──
|
|
184
|
+
const protectedPaths = getProtectedPaths(root, existingRules);
|
|
153
185
|
// ── Migrations ──
|
|
154
186
|
let migrationCount = 0;
|
|
155
187
|
let migrationNames = [];
|
|
@@ -177,6 +209,7 @@ export function collectRepoContext(root) {
|
|
|
177
209
|
migrationCount,
|
|
178
210
|
migrationNames,
|
|
179
211
|
rootConfigs,
|
|
212
|
+
protectedPaths,
|
|
180
213
|
gitState,
|
|
181
214
|
};
|
|
182
215
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collector.js","sourceRoot":"","sources":["../../src/context/collector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"collector.js","sourceRoot":"","sources":["../../src/context/collector.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,17 +1,24 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { init } from "./commands/init.js";
|
|
3
|
+
import { remove } from "./commands/remove.js";
|
|
3
4
|
const args = process.argv.slice(2);
|
|
4
5
|
const command = args[0] ?? "init";
|
|
5
6
|
switch (command) {
|
|
6
7
|
case "init":
|
|
7
|
-
init().catch((err) => {
|
|
8
|
+
init(args.slice(1)).catch((err) => {
|
|
9
|
+
console.error(err.message ?? err);
|
|
10
|
+
process.exit(1);
|
|
11
|
+
});
|
|
12
|
+
break;
|
|
13
|
+
case "remove":
|
|
14
|
+
remove().catch((err) => {
|
|
8
15
|
console.error(err.message ?? err);
|
|
9
16
|
process.exit(1);
|
|
10
17
|
});
|
|
11
18
|
break;
|
|
12
19
|
case "--version":
|
|
13
20
|
case "-v":
|
|
14
|
-
console.log("runshift 0.0.
|
|
21
|
+
console.log("runshift 0.0.3");
|
|
15
22
|
break;
|
|
16
23
|
case "--help":
|
|
17
24
|
case "-h":
|
|
@@ -19,11 +26,16 @@ switch (command) {
|
|
|
19
26
|
runshift — the control plane for agents, wherever they run.
|
|
20
27
|
|
|
21
28
|
Usage:
|
|
22
|
-
npx runshift init
|
|
29
|
+
npx runshift init [options] Read your repo, generate governance rules
|
|
30
|
+
npx runshift remove Revert the runshift install commit
|
|
23
31
|
|
|
24
32
|
Options:
|
|
25
|
-
--version, -v
|
|
26
|
-
--help, -h
|
|
33
|
+
--version, -v Show version
|
|
34
|
+
--help, -h Show this help
|
|
35
|
+
|
|
36
|
+
Init options:
|
|
37
|
+
--dry-run Preview changes without writing files
|
|
38
|
+
--branch <name> Run on a new branch (default: relay-init)
|
|
27
39
|
`);
|
|
28
40
|
break;
|
|
29
41
|
default:
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;AAElC,QAAQ,OAAO,EAAE,CAAC;IAChB,KAAK,MAAM;QACT,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAChC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,MAAM;IACR,KAAK,QAAQ;QACX,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACrB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,MAAM;IACR,KAAK,WAAW,CAAC;IACjB,KAAK,IAAI;QACP,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC9B,MAAM;IACR,KAAK,QAAQ,CAAC;IACd,KAAK,IAAI;QACP,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;CAcf,CAAC,CAAC;QACC,MAAM;IACR;QACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,oCAAoC,CAAC,CAAC;QAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export interface RepoContext {
|
|
|
17
17
|
migrationCount: number;
|
|
18
18
|
migrationNames: string[];
|
|
19
19
|
rootConfigs: string[];
|
|
20
|
+
protectedPaths: string[];
|
|
20
21
|
gitState: {
|
|
21
22
|
branch: string;
|
|
22
23
|
isDirty: boolean;
|
|
@@ -38,5 +39,6 @@ export interface InitResponse {
|
|
|
38
39
|
files: GeneratedFile[];
|
|
39
40
|
findings: Findings;
|
|
40
41
|
summary: string;
|
|
42
|
+
previewId?: string;
|
|
41
43
|
}
|
|
42
44
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG;YAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;KAChD,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;KAClB,GAAG,IAAI,CAAC;CACV;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC7B;AAED,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG;YAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;KAChD,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;KAClB,GAAG,IAAI,CAAC;CACV;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC7B;AAED,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
package/dist/ui/display.d.ts
CHANGED
|
@@ -6,9 +6,14 @@ export declare function showBranchInfo(branch: string): void;
|
|
|
6
6
|
export declare function showScanResults(context: RepoContext): void;
|
|
7
7
|
export declare function showFindings(findings: Findings): void;
|
|
8
8
|
export declare function showFileList(files: GeneratedFile[]): void;
|
|
9
|
+
export declare function showSelectedFiles(allFiles: GeneratedFile[], selectedPaths: string[]): void;
|
|
9
10
|
export declare function showWriting(filePath: string): void;
|
|
10
11
|
export declare function showCommit(): void;
|
|
12
|
+
export declare function showProtectedFiles(protectedPaths: string[]): void;
|
|
11
13
|
export declare function showSummary(summary: string): void;
|
|
12
14
|
export declare function showSuccess(): void;
|
|
15
|
+
export declare function showDataPolicy(): void;
|
|
16
|
+
export declare function showDryRunComplete(): void;
|
|
17
|
+
export declare function showCancelled(): void;
|
|
13
18
|
export declare function showError(type: "network" | "rate-limit" | "validation" | "server", message?: string): void;
|
|
14
19
|
//# sourceMappingURL=display.d.ts.map
|
package/dist/ui/display.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/ui/display.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAOxE,wBAAgB,UAAU,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/ui/display.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAOxE,wBAAgB,UAAU,IAAI,IAAI,CAUjC;AAED,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAEnD;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAyD1D;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAsBrD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI,CAQzD;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAW1F;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI,CAQjE;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEjD;AAED,wBAAgB,WAAW,IAAI,IAAI,CAQlC;AAED,wBAAgB,cAAc,IAAI,IAAI,CAUrC;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAKzC;AAED,wBAAgB,aAAa,IAAI,IAAI,CAMpC;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,YAAY,GAAG,YAAY,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAmB1G"}
|