@slope-dev/slope 1.57.1 → 1.57.3
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/cli/commands/auto-card.d.ts.map +1 -1
- package/dist/cli/commands/auto-card.js +27 -1
- package/dist/cli/commands/auto-card.js.map +1 -1
- package/dist/cli/commands/pr.d.ts +2 -0
- package/dist/cli/commands/pr.d.ts.map +1 -1
- package/dist/cli/commands/pr.js +21 -0
- package/dist/cli/commands/pr.js.map +1 -1
- package/dist/cli/commands/review-state.d.ts.map +1 -1
- package/dist/cli/commands/review-state.js +7 -1
- package/dist/cli/commands/review-state.js.map +1 -1
- package/dist/cli/commands/session.d.ts.map +1 -1
- package/dist/cli/commands/session.js +28 -0
- package/dist/cli/commands/session.js.map +1 -1
- package/dist/cli/commands/worktree.js +1 -1
- package/dist/cli/guards/docs.js +1 -1
- package/dist/cli/guards/docs.js.map +1 -1
- package/dist/cli/guards/hazard.d.ts.map +1 -1
- package/dist/cli/guards/hazard.js +7 -2
- package/dist/cli/guards/hazard.js.map +1 -1
- package/dist/cli/guards/phase-boundary.d.ts.map +1 -1
- package/dist/cli/guards/phase-boundary.js +111 -11
- package/dist/cli/guards/phase-boundary.js.map +1 -1
- package/dist/cli/guards/sprint-completion.d.ts.map +1 -1
- package/dist/cli/guards/sprint-completion.js +32 -4
- package/dist/cli/guards/sprint-completion.js.map +1 -1
- package/dist/cli/guards/worktree-check.d.ts.map +1 -1
- package/dist/cli/guards/worktree-check.js +209 -6
- package/dist/cli/guards/worktree-check.js.map +1 -1
- package/dist/cli/guards/worktree-reuse.d.ts.map +1 -1
- package/dist/cli/guards/worktree-reuse.js +39 -11
- package/dist/cli/guards/worktree-reuse.js.map +1 -1
- package/dist/cli/index.js +2 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/pr-closeout.d.ts +38 -0
- package/dist/cli/pr-closeout.d.ts.map +1 -0
- package/dist/cli/pr-closeout.js +197 -0
- package/dist/cli/pr-closeout.js.map +1 -0
- package/dist/cli/registry.d.ts.map +1 -1
- package/dist/cli/registry.js +9 -1
- package/dist/cli/registry.js.map +1 -1
- package/dist/core/config.d.ts +2 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/roadmap.d.ts +7 -0
- package/dist/core/roadmap.d.ts.map +1 -1
- package/dist/core/roadmap.js +42 -8
- package/dist/core/roadmap.js.map +1 -1
- package/dist/core/store.d.ts +2 -0
- package/dist/core/store.d.ts.map +1 -1
- package/dist/core/store.js.map +1 -1
- package/dist/mcp/index.test.js +7 -0
- package/dist/mcp/index.test.js.map +1 -1
- package/dist/mcp/registry.d.ts +1 -1
- package/dist/mcp/registry.d.ts.map +1 -1
- package/dist/mcp/registry.js +1 -1
- package/dist/store/index.d.ts +2 -1
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +26 -0
- package/dist/store/index.js.map +1 -1
- package/dist/store-pg/index.d.ts +2 -1
- package/dist/store-pg/index.d.ts.map +1 -1
- package/dist/store-pg/index.js +36 -0
- package/dist/store-pg/index.js.map +1 -1
- package/package.json +1 -1
- package/templates/codex/plugins/slope/.codex-plugin/plugin.json +1 -1
package/dist/cli/guards/docs.js
CHANGED
|
@@ -115,7 +115,7 @@ export const GUARD_DOCS = {
|
|
|
115
115
|
'worktree-check': {
|
|
116
116
|
purpose: 'Blocks concurrent sessions from operating in the same directory without worktree isolation. Prevents file conflicts between agents.',
|
|
117
117
|
triggers: 'PreToolUse on Read, Glob, Grep, Edit, Write, Bash. Fires on most tool calls.',
|
|
118
|
-
behavior: 'Block — if another session is active in the same directory, denies the tool call and
|
|
118
|
+
behavior: 'Block — if another session is active in the same directory, denies the tool call and points agents to `slope worktree start`, which defaults to `.slope/worktrees/` outside Claude Code\'s protected `.claude/` tree.',
|
|
119
119
|
configuration: 'Disable: add "worktree-check" to guidance.disabled.',
|
|
120
120
|
level: 'full',
|
|
121
121
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../src/cli/guards/docs.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../src/cli/guards/docs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hazard.d.ts","sourceRoot":"","sources":["../../../src/cli/guards/hazard.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAwDlE;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"hazard.d.ts","sourceRoot":"","sources":["../../../src/cli/guards/hazard.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAwDlE;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAkFrF"}
|
|
@@ -103,10 +103,15 @@ export async function hazardGuard(input, cwd) {
|
|
|
103
103
|
if (allWarnings.length === 0)
|
|
104
104
|
continue;
|
|
105
105
|
const fullContext = formatHazardContext(area, allWarnings);
|
|
106
|
-
//
|
|
106
|
+
// Duplicate hazard payloads add transcript noise on Edit/Write; record the
|
|
107
|
+
// dedup metric but do not inject another context block.
|
|
107
108
|
const dedup = dedupGuardContext(cwd, input.session_id, 'hazard', fullContext);
|
|
108
|
-
if (dedup)
|
|
109
|
+
if (dedup) {
|
|
110
|
+
if (dedup.startsWith('SLOPE hazard: (same as prior warning')) {
|
|
111
|
+
return { metricReason: 'deduped' };
|
|
112
|
+
}
|
|
109
113
|
return { context: dedup, metricReason: 'deduped' };
|
|
114
|
+
}
|
|
110
115
|
return { context: fullContext, metricReason: 'matched' };
|
|
111
116
|
}
|
|
112
117
|
return { metricReason: issues || scorecardSourceAvailable ? 'no-match' : 'state-unavailable' };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hazard.js","sourceRoot":"","sources":["../../../src/cli/guards/hazard.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hazard.js","sourceRoot":"","sources":["../../../src/cli/guards/hazard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase-boundary.d.ts","sourceRoot":"","sources":["../../../src/cli/guards/phase-boundary.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAc,MAAM,qBAAqB,CAAC;AAU9E;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"phase-boundary.d.ts","sourceRoot":"","sources":["../../../src/cli/guards/phase-boundary.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAc,MAAM,qBAAqB,CAAC;AAU9E;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAwF5F"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
-
import { loadConfig, parseRoadmap } from '../../core/index.js';
|
|
3
|
+
import { castRoadmapStructure, loadConfig, parseRoadmap } from '../../core/index.js';
|
|
4
4
|
import { isPhaseComplete, pendingPhaseGates } from '../phase-cleanup.js';
|
|
5
5
|
/** Extract phase number from name like "Phase 7 — Helmsman 3D". Falls back to array index + 1. */
|
|
6
6
|
function extractPhaseNumber(name, index) {
|
|
@@ -13,13 +13,15 @@ function extractPhaseNumber(name, index) {
|
|
|
13
13
|
*/
|
|
14
14
|
export async function phaseBoundaryGuard(input, cwd) {
|
|
15
15
|
const command = input.tool_input?.command ?? '';
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
const slopeArgs = extractRelevantSlopeArgs(command);
|
|
17
|
+
// Match actual slope sprint-start, sprint-run, or claim invocations.
|
|
18
|
+
if (!slopeArgs)
|
|
18
19
|
return {};
|
|
19
20
|
// Parse target sprint number from command args
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
const argText = slopeArgs.join(' ');
|
|
22
|
+
const sprintMatch = argText.match(/--sprint[=\s]+(\d+)/i) ??
|
|
23
|
+
argText.match(/\bS(\d+)\b/i) ??
|
|
24
|
+
argText.match(/--target[=\s]+S?(\d+)/i);
|
|
23
25
|
// If we can't determine the target sprint, allow (don't block blindly)
|
|
24
26
|
if (!sprintMatch)
|
|
25
27
|
return {};
|
|
@@ -33,16 +35,18 @@ export async function phaseBoundaryGuard(input, cwd) {
|
|
|
33
35
|
return {};
|
|
34
36
|
const raw = JSON.parse(readFileSync(roadmapPath, 'utf8'));
|
|
35
37
|
const result = parseRoadmap(raw);
|
|
36
|
-
roadmap = result.roadmap;
|
|
38
|
+
roadmap = result.roadmap ?? castRoadmapStructure(raw);
|
|
37
39
|
}
|
|
38
40
|
catch {
|
|
39
41
|
return {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
+
context: 'SLOPE phase-boundary: Cannot determine phase because the roadmap is unreadable. Allowing command; run `slope roadmap validate`.',
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
if (!roadmap || !roadmap.phases) {
|
|
46
|
+
return {
|
|
47
|
+
context: 'SLOPE phase-boundary: Cannot determine phase because the roadmap is structurally invalid. Allowing command; run `slope roadmap validate`.',
|
|
42
48
|
};
|
|
43
49
|
}
|
|
44
|
-
if (!roadmap || !roadmap.phases)
|
|
45
|
-
return {};
|
|
46
50
|
// Build phase-to-number mapping (RoadmapPhase has name + sprints[], no id)
|
|
47
51
|
const phaseNumbers = roadmap.phases.map((p, i) => extractPhaseNumber(p.name, i));
|
|
48
52
|
// Find which phase the target sprint belongs to
|
|
@@ -90,4 +94,100 @@ export async function phaseBoundaryGuard(input, cwd) {
|
|
|
90
94
|
suggestion,
|
|
91
95
|
};
|
|
92
96
|
}
|
|
97
|
+
function extractRelevantSlopeArgs(command) {
|
|
98
|
+
for (const segment of splitShellSegments(command)) {
|
|
99
|
+
const words = tokenizeShellWords(segment);
|
|
100
|
+
const slopeIndex = findSlopeExecutableIndex(words);
|
|
101
|
+
if (slopeIndex < 0)
|
|
102
|
+
continue;
|
|
103
|
+
const args = words.slice(slopeIndex + 1);
|
|
104
|
+
if (args[0] === 'sprint' && (args[1] === 'start' || args[1] === 'run'))
|
|
105
|
+
return args;
|
|
106
|
+
if (args[0] === 'claim')
|
|
107
|
+
return args;
|
|
108
|
+
}
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
function splitShellSegments(command) {
|
|
112
|
+
const segments = [];
|
|
113
|
+
let current = '';
|
|
114
|
+
let quote = null;
|
|
115
|
+
for (let i = 0; i < command.length; i++) {
|
|
116
|
+
const char = command[i];
|
|
117
|
+
if (char === '\\' && quote !== "'") {
|
|
118
|
+
current += char;
|
|
119
|
+
if (i + 1 < command.length)
|
|
120
|
+
current += command[++i];
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
if ((char === '"' || char === "'") && (!quote || quote === char)) {
|
|
124
|
+
quote = quote ? null : char;
|
|
125
|
+
current += char;
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
if (!quote && (char === ';' || char === '\n' || char === '&' || char === '|')) {
|
|
129
|
+
if (current.trim())
|
|
130
|
+
segments.push(current.trim());
|
|
131
|
+
current = '';
|
|
132
|
+
if ((char === '&' && command[i + 1] === '&') || (char === '|' && command[i + 1] === '|'))
|
|
133
|
+
i++;
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
current += char;
|
|
137
|
+
}
|
|
138
|
+
if (current.trim())
|
|
139
|
+
segments.push(current.trim());
|
|
140
|
+
return segments;
|
|
141
|
+
}
|
|
142
|
+
function tokenizeShellWords(segment) {
|
|
143
|
+
const words = [];
|
|
144
|
+
let current = '';
|
|
145
|
+
let quote = null;
|
|
146
|
+
for (let i = 0; i < segment.length; i++) {
|
|
147
|
+
const char = segment[i];
|
|
148
|
+
if (char === '\\' && quote !== "'") {
|
|
149
|
+
if (i + 1 < segment.length)
|
|
150
|
+
current += segment[++i];
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
if ((char === '"' || char === "'") && (!quote || quote === char)) {
|
|
154
|
+
quote = quote ? null : char;
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
if (!quote && /\s/.test(char)) {
|
|
158
|
+
if (current) {
|
|
159
|
+
words.push(current);
|
|
160
|
+
current = '';
|
|
161
|
+
}
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
current += char;
|
|
165
|
+
}
|
|
166
|
+
if (current)
|
|
167
|
+
words.push(current);
|
|
168
|
+
return words;
|
|
169
|
+
}
|
|
170
|
+
function findSlopeExecutableIndex(words) {
|
|
171
|
+
let i = 0;
|
|
172
|
+
if (words[i] === 'env')
|
|
173
|
+
i++;
|
|
174
|
+
while (isEnvAssignment(words[i]))
|
|
175
|
+
i++;
|
|
176
|
+
if (words[i] === 'command')
|
|
177
|
+
i++;
|
|
178
|
+
if (words[i] === 'slope')
|
|
179
|
+
return i;
|
|
180
|
+
if ((words[i] === 'npx' || words[i] === 'bunx') && words[i + 1] === 'slope')
|
|
181
|
+
return i + 1;
|
|
182
|
+
if (['pnpm', 'npm', 'yarn', 'bun'].includes(words[i])) {
|
|
183
|
+
if (words[i + 1] === 'exec' && words[i + 2] === 'slope')
|
|
184
|
+
return i + 2;
|
|
185
|
+
if (words[i + 1] === 'slope')
|
|
186
|
+
return i + 1;
|
|
187
|
+
}
|
|
188
|
+
return -1;
|
|
189
|
+
}
|
|
190
|
+
function isEnvAssignment(word) {
|
|
191
|
+
return !!word && /^[A-Za-z_][A-Za-z0-9_]*=/.test(word);
|
|
192
|
+
}
|
|
93
193
|
//# sourceMappingURL=phase-boundary.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase-boundary.js","sourceRoot":"","sources":["../../../src/cli/guards/phase-boundary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"phase-boundary.js","sourceRoot":"","sources":["../../../src/cli/guards/phase-boundary.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sprint-completion.d.ts","sourceRoot":"","sources":["../../../src/cli/guards/sprint-completion.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"sprint-completion.d.ts","sourceRoot":"","sources":["../../../src/cli/guards/sprint-completion.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKlE;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAgB/F"}
|
|
@@ -2,6 +2,7 @@ import { execSync } from 'node:child_process';
|
|
|
2
2
|
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
import { loadConfig } from '../config.js';
|
|
5
|
+
import { loadPrReviewState } from '../pr-review-state.js';
|
|
5
6
|
import { loadSprintState, mutateSprintState, updateGate, isSprintComplete, pendingGates } from '../sprint-state.js';
|
|
6
7
|
/**
|
|
7
8
|
* Sprint-completion guard: enforces post-implementation gates.
|
|
@@ -205,10 +206,37 @@ function handleReviewCompletion(input, cwd) {
|
|
|
205
206
|
const state = loadSprintState(cwd);
|
|
206
207
|
if (!state)
|
|
207
208
|
return {};
|
|
208
|
-
if (state.gates.review_md)
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
209
|
+
if (!state.gates.review_md)
|
|
210
|
+
updateGate(cwd, 'review_md', true);
|
|
211
|
+
const lines = [state.gates.review_md
|
|
212
|
+
? 'SLOPE: Review generated — gate was already complete.'
|
|
213
|
+
: 'SLOPE: Review generated — gate marked complete.'];
|
|
214
|
+
const prReviewWarning = missingPrReviewWarning(cwd, state.sprint);
|
|
215
|
+
if (prReviewWarning)
|
|
216
|
+
lines.push('', prReviewWarning);
|
|
217
|
+
return { context: lines.join('\n') };
|
|
218
|
+
}
|
|
219
|
+
function missingPrReviewWarning(cwd, sprint) {
|
|
220
|
+
const branch = currentBranch(cwd);
|
|
221
|
+
const reviews = loadPrReviewState(cwd).reviews;
|
|
222
|
+
const matching = reviews.filter(review => review.sprint === sprint
|
|
223
|
+
|| (branch && review.branch === branch));
|
|
224
|
+
if (matching.some(review => review.status === 'reviewed'))
|
|
225
|
+
return null;
|
|
226
|
+
const pending = matching.find(review => review.status === 'pending');
|
|
227
|
+
const target = pending ? `PR #${pending.pr}` : 'the current branch PR';
|
|
228
|
+
return [
|
|
229
|
+
'SLOPE PR closeout: sprint retrospective review is not PR implementation review.',
|
|
230
|
+
`Run \`slope pr status --sprint=${sprint}\` and \`slope pr review${pending ? ` --pr=${pending.pr}` : ''} --sprint=${sprint}\` before presenting ${target} as ready.`,
|
|
231
|
+
].join(' ');
|
|
232
|
+
}
|
|
233
|
+
function currentBranch(cwd) {
|
|
234
|
+
try {
|
|
235
|
+
return execSync('git branch --show-current', { cwd, encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }).trim() || undefined;
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
return undefined;
|
|
239
|
+
}
|
|
212
240
|
}
|
|
213
241
|
/** Detect `slope auto-card` completion → suggest validate next. */
|
|
214
242
|
function handleAutoCardCompletion(input, cwd) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sprint-completion.js","sourceRoot":"","sources":["../../../src/cli/guards/sprint-completion.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sprint-completion.js","sourceRoot":"","sources":["../../../src/cli/guards/sprint-completion.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree-check.d.ts","sourceRoot":"","sources":["../../../src/cli/guards/worktree-check.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAgBlE,oDAAoD;AACpD,wBAAgB,uBAAuB,CAAC,SAAS,SAAK,GAAG,IAAI,CAK5D;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"worktree-check.d.ts","sourceRoot":"","sources":["../../../src/cli/guards/worktree-check.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAgBlE,oDAAoD;AACpD,wBAAgB,uBAAuB,CAAC,SAAS,SAAK,GAAG,IAAI,CAK5D;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAmG5F"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { execFileSync } from 'node:child_process';
|
|
2
2
|
import { existsSync, writeFileSync, mkdirSync, unlinkSync } from 'node:fs';
|
|
3
|
-
import { join } from 'node:path';
|
|
3
|
+
import { join, resolve } from 'node:path';
|
|
4
4
|
import { tmpdir } from 'node:os';
|
|
5
5
|
import { createHash } from 'node:crypto';
|
|
6
6
|
import { STALE_SESSION_THRESHOLD_MS } from '../../core/constants.js';
|
|
@@ -55,8 +55,10 @@ export async function worktreeCheckGuard(input, cwd) {
|
|
|
55
55
|
return {};
|
|
56
56
|
}
|
|
57
57
|
// If git-common-dir is not '.git', we're in a worktree (already isolated)
|
|
58
|
-
if (gitCommonDir !== '.git')
|
|
58
|
+
if (gitCommonDir !== '.git') {
|
|
59
|
+
await reconcileWorktreeSession(input, cwd, sessionId);
|
|
59
60
|
return {};
|
|
61
|
+
}
|
|
60
62
|
// Get current branch for session registration
|
|
61
63
|
let branch;
|
|
62
64
|
try {
|
|
@@ -115,7 +117,7 @@ export async function worktreeCheckGuard(input, cwd) {
|
|
|
115
117
|
// Do NOT write sentinel — denied sessions should re-check next invocation
|
|
116
118
|
return {
|
|
117
119
|
decision: 'deny',
|
|
118
|
-
blockReason: `BLOCKED: Another session is active in this directory:\n${sessionList}\n\
|
|
120
|
+
blockReason: `BLOCKED: Another session is active in this directory:\n${sessionList}\n\nCreate an isolated working copy before proceeding:\n slope worktree start --branch=<branch> --role=secondary --ide=<ide>\n\nSLOPE worktrees default to .slope/worktrees/<branch>, outside Claude Code's protected .claude/ tree. Avoid Claude Code's native .claude/worktrees/ default because ordinary source edits there can trigger self-configuration permission prompts. If the listed session is stale, run \`slope session list\` and then \`slope session end --session-id=<id>\`. Do not attempt implementation work until you are in a worktree.`,
|
|
119
121
|
};
|
|
120
122
|
}
|
|
121
123
|
// No conflict — write sentinel so we don't re-check this session
|
|
@@ -137,9 +139,124 @@ function isWorktreeRecoveryInput(input) {
|
|
|
137
139
|
if (input.tool_name === 'EnterWorktree')
|
|
138
140
|
return true;
|
|
139
141
|
const command = extractCommandText(input);
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
142
|
+
if (command === 'EnterWorktree')
|
|
143
|
+
return true;
|
|
144
|
+
const segments = splitShellSegments(command);
|
|
145
|
+
if (segments.length !== 1)
|
|
146
|
+
return false;
|
|
147
|
+
const words = tokenizeShellWords(segments[0]);
|
|
148
|
+
return isGitWorktreeAdd(words) || isSlopeRecoveryCommand(words);
|
|
149
|
+
}
|
|
150
|
+
function isGitWorktreeAdd(words) {
|
|
151
|
+
const start = skipCommandPrefix(words, 0);
|
|
152
|
+
if (words[start] !== 'git')
|
|
153
|
+
return false;
|
|
154
|
+
if (words[start + 1] === 'worktree' && words[start + 2] === 'add')
|
|
155
|
+
return true;
|
|
156
|
+
return words[start + 1] === '-C'
|
|
157
|
+
&& !!words[start + 2]
|
|
158
|
+
&& words[start + 3] === 'worktree'
|
|
159
|
+
&& words[start + 4] === 'add';
|
|
160
|
+
}
|
|
161
|
+
function isSlopeRecoveryCommand(words) {
|
|
162
|
+
const slopeIndex = findSlopeExecutableIndex(words);
|
|
163
|
+
if (slopeIndex < 0)
|
|
164
|
+
return false;
|
|
165
|
+
const args = words.slice(slopeIndex + 1);
|
|
166
|
+
if (args[0] === 'worktree' && args[1] === 'start')
|
|
167
|
+
return true;
|
|
168
|
+
if (args[0] !== 'session')
|
|
169
|
+
return false;
|
|
170
|
+
return args[1] === 'end'
|
|
171
|
+
|| args[1] === 'list'
|
|
172
|
+
|| args[1] === 'prune'
|
|
173
|
+
|| args[1] === 'dashboard';
|
|
174
|
+
}
|
|
175
|
+
function splitShellSegments(command) {
|
|
176
|
+
const segments = [];
|
|
177
|
+
let current = '';
|
|
178
|
+
let quote = null;
|
|
179
|
+
for (let i = 0; i < command.length; i++) {
|
|
180
|
+
const char = command[i];
|
|
181
|
+
if (char === '\\' && quote !== "'") {
|
|
182
|
+
current += char;
|
|
183
|
+
if (i + 1 < command.length)
|
|
184
|
+
current += command[++i];
|
|
185
|
+
continue;
|
|
186
|
+
}
|
|
187
|
+
if ((char === '"' || char === "'") && (!quote || quote === char)) {
|
|
188
|
+
quote = quote ? null : char;
|
|
189
|
+
current += char;
|
|
190
|
+
continue;
|
|
191
|
+
}
|
|
192
|
+
if (!quote && (char === ';' || char === '\n' || char === '&' || char === '|')) {
|
|
193
|
+
if (current.trim())
|
|
194
|
+
segments.push(current.trim());
|
|
195
|
+
current = '';
|
|
196
|
+
if ((char === '&' && command[i + 1] === '&') || (char === '|' && command[i + 1] === '|'))
|
|
197
|
+
i++;
|
|
198
|
+
continue;
|
|
199
|
+
}
|
|
200
|
+
current += char;
|
|
201
|
+
}
|
|
202
|
+
if (current.trim())
|
|
203
|
+
segments.push(current.trim());
|
|
204
|
+
return segments;
|
|
205
|
+
}
|
|
206
|
+
function tokenizeShellWords(segment) {
|
|
207
|
+
const words = [];
|
|
208
|
+
let current = '';
|
|
209
|
+
let quote = null;
|
|
210
|
+
for (let i = 0; i < segment.length; i++) {
|
|
211
|
+
const char = segment[i];
|
|
212
|
+
if (char === '\\' && quote !== "'") {
|
|
213
|
+
if (i + 1 < segment.length)
|
|
214
|
+
current += segment[++i];
|
|
215
|
+
continue;
|
|
216
|
+
}
|
|
217
|
+
if ((char === '"' || char === "'") && (!quote || quote === char)) {
|
|
218
|
+
quote = quote ? null : char;
|
|
219
|
+
continue;
|
|
220
|
+
}
|
|
221
|
+
if (!quote && /\s/.test(char)) {
|
|
222
|
+
if (current) {
|
|
223
|
+
words.push(current);
|
|
224
|
+
current = '';
|
|
225
|
+
}
|
|
226
|
+
continue;
|
|
227
|
+
}
|
|
228
|
+
current += char;
|
|
229
|
+
}
|
|
230
|
+
if (current)
|
|
231
|
+
words.push(current);
|
|
232
|
+
return words;
|
|
233
|
+
}
|
|
234
|
+
function findSlopeExecutableIndex(words) {
|
|
235
|
+
const i = skipCommandPrefix(words, 0);
|
|
236
|
+
if (words[i] === 'slope')
|
|
237
|
+
return i;
|
|
238
|
+
if ((words[i] === 'npx' || words[i] === 'bunx') && words[i + 1] === 'slope')
|
|
239
|
+
return i + 1;
|
|
240
|
+
if (['pnpm', 'npm', 'yarn', 'bun'].includes(words[i])) {
|
|
241
|
+
if (words[i + 1] === 'exec' && words[i + 2] === 'slope')
|
|
242
|
+
return i + 2;
|
|
243
|
+
if (words[i + 1] === 'slope')
|
|
244
|
+
return i + 1;
|
|
245
|
+
}
|
|
246
|
+
return -1;
|
|
247
|
+
}
|
|
248
|
+
function skipCommandPrefix(words, start) {
|
|
249
|
+
let i = start;
|
|
250
|
+
if (words[i] === 'env')
|
|
251
|
+
i++;
|
|
252
|
+
while (isEnvAssignment(words[i]))
|
|
253
|
+
i++;
|
|
254
|
+
if (words[i] === 'command')
|
|
255
|
+
i++;
|
|
256
|
+
return i;
|
|
257
|
+
}
|
|
258
|
+
function isEnvAssignment(word) {
|
|
259
|
+
return !!word && /^[A-Za-z_][A-Za-z0-9_]*=/.test(word);
|
|
143
260
|
}
|
|
144
261
|
function gitRevParse(cwd, ...args) {
|
|
145
262
|
return execFileSync('git', ['rev-parse', ...args], {
|
|
@@ -148,6 +265,92 @@ function gitRevParse(cwd, ...args) {
|
|
|
148
265
|
stdio: ['ignore', 'pipe', 'ignore'],
|
|
149
266
|
}).trim();
|
|
150
267
|
}
|
|
268
|
+
async function reconcileWorktreeSession(input, cwd, sessionId) {
|
|
269
|
+
let store;
|
|
270
|
+
try {
|
|
271
|
+
const stateCwd = resolveSlopeStateCwd(cwd);
|
|
272
|
+
if (!stateCwd)
|
|
273
|
+
return;
|
|
274
|
+
store = await resolveStore(stateCwd);
|
|
275
|
+
const worktreePath = gitRevParse(cwd, '--show-toplevel');
|
|
276
|
+
const branch = safeGitRevParse(cwd, '--abbrev-ref', 'HEAD') ?? 'unknown';
|
|
277
|
+
try {
|
|
278
|
+
await store.updateSession(sessionId, {
|
|
279
|
+
role: 'secondary',
|
|
280
|
+
branch,
|
|
281
|
+
worktree_path: worktreePath,
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
catch (err) {
|
|
285
|
+
if (err instanceof SlopeStoreError && err.code === 'NOT_FOUND') {
|
|
286
|
+
await store.registerSession({
|
|
287
|
+
session_id: sessionId,
|
|
288
|
+
role: 'secondary',
|
|
289
|
+
ide: resolveIde(input),
|
|
290
|
+
branch,
|
|
291
|
+
worktree_path: worktreePath,
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
throw err;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
catch {
|
|
300
|
+
// Worktree sessions are already isolated; reconciliation is best-effort.
|
|
301
|
+
}
|
|
302
|
+
finally {
|
|
303
|
+
try {
|
|
304
|
+
store?.close();
|
|
305
|
+
}
|
|
306
|
+
catch { /* ignore */ }
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
function resolveSlopeStateCwd(cwd) {
|
|
310
|
+
if (existsSync(join(cwd, '.slope', 'config.json')))
|
|
311
|
+
return cwd;
|
|
312
|
+
for (const worktree of listGitWorktrees(cwd)) {
|
|
313
|
+
if (resolve(worktree) === resolve(cwd))
|
|
314
|
+
continue;
|
|
315
|
+
if (existsSync(join(worktree, '.slope', 'config.json')))
|
|
316
|
+
return worktree;
|
|
317
|
+
}
|
|
318
|
+
return undefined;
|
|
319
|
+
}
|
|
320
|
+
function listGitWorktrees(cwd) {
|
|
321
|
+
try {
|
|
322
|
+
const raw = execFileSync('git', ['worktree', 'list', '--porcelain'], {
|
|
323
|
+
cwd,
|
|
324
|
+
encoding: 'utf8',
|
|
325
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
326
|
+
});
|
|
327
|
+
return raw
|
|
328
|
+
.split('\n')
|
|
329
|
+
.filter(line => line.startsWith('worktree '))
|
|
330
|
+
.map(line => line.slice('worktree '.length).trim())
|
|
331
|
+
.filter(Boolean);
|
|
332
|
+
}
|
|
333
|
+
catch {
|
|
334
|
+
return [];
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
function safeGitRevParse(cwd, ...args) {
|
|
338
|
+
try {
|
|
339
|
+
return gitRevParse(cwd, ...args);
|
|
340
|
+
}
|
|
341
|
+
catch {
|
|
342
|
+
return undefined;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
function resolveIde(input) {
|
|
346
|
+
const metadata = input.tool_input ?? {};
|
|
347
|
+
for (const key of ['ide', 'agent', 'harness']) {
|
|
348
|
+
const value = metadata[key];
|
|
349
|
+
if (typeof value === 'string' && value.trim())
|
|
350
|
+
return value.trim();
|
|
351
|
+
}
|
|
352
|
+
return process.env.SLOPE_IDE || 'unknown';
|
|
353
|
+
}
|
|
151
354
|
function resolveSessionId(input, cwd) {
|
|
152
355
|
const explicit = typeof input.session_id === 'string' ? input.session_id.trim() : '';
|
|
153
356
|
if (explicit)
|