@lumenflow/shims 1.0.0 → 1.3.2
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/git-shim.d.ts +18 -1
- package/dist/git-shim.d.ts.map +1 -1
- package/dist/git-shim.js +86 -4
- package/dist/git-shim.js.map +1 -1
- package/dist/types.d.ts +12 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -1
- package/package.json +5 -3
package/dist/git-shim.d.ts
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
*
|
|
20
20
|
* @module @lumenflow/shims/git
|
|
21
21
|
*/
|
|
22
|
-
import type { GitShimConfig, BannedPatternResult, ProtectedContextResult } from './types.js';
|
|
22
|
+
import type { GitShimConfig, BannedPatternResult, ProtectedContextResult, WorktreeRemoveCheckResult } from './types.js';
|
|
23
23
|
/**
|
|
24
24
|
* Detect user type based on environment variables.
|
|
25
25
|
*
|
|
@@ -38,10 +38,27 @@ export declare function checkBannedPattern(args: string[], config?: GitShimConfi
|
|
|
38
38
|
/**
|
|
39
39
|
* Check if we're in a protected context (main branch or main worktree).
|
|
40
40
|
*
|
|
41
|
+
* Updated in WU-1026 to support:
|
|
42
|
+
* - Agent branches (bypass protection)
|
|
43
|
+
* - Guarded headless mode (LUMENFLOW_HEADLESS + admin/CI)
|
|
44
|
+
* - Detached HEAD (fail-closed)
|
|
45
|
+
* - Core config for protected branches (single source of truth)
|
|
46
|
+
*
|
|
41
47
|
* @param config - Git shim configuration
|
|
42
48
|
* @returns Object with protected status and context description
|
|
43
49
|
*/
|
|
44
50
|
export declare function checkProtectedContext(config?: GitShimConfig): ProtectedContextResult;
|
|
51
|
+
/**
|
|
52
|
+
* Check if a worktree remove command should be blocked for agents (WU-1027).
|
|
53
|
+
*
|
|
54
|
+
* Agents must not delete worktrees that belong to other sessions.
|
|
55
|
+
* Only proper workflow (wu:done, wu:prune) should remove worktrees.
|
|
56
|
+
*
|
|
57
|
+
* @param args - Git command arguments
|
|
58
|
+
* @param config - Git shim configuration
|
|
59
|
+
* @returns Object with blocked status and reason
|
|
60
|
+
*/
|
|
61
|
+
export declare function checkWorktreeRemoveForAgent(args: string[], config?: GitShimConfig): WorktreeRemoveCheckResult;
|
|
45
62
|
/**
|
|
46
63
|
* Format error message for blocked command.
|
|
47
64
|
*
|
package/dist/git-shim.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-shim.d.ts","sourceRoot":"","sources":["../src/git-shim.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"git-shim.d.ts","sourceRoot":"","sources":["../src/git-shim.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AAkDpB;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,GAAE,aAA8B,GAAG,MAAM,CAO7E;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,GAAE,aAA8B,GACrC,mBAAmB,CAqCrB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,GAAE,aAA8B,GACrC,sBAAsB,CA+CxB;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,GAAE,aAA8B,GACrC,yBAAyB,CA8B3B;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAwB3F;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,aAAa,GAAE,MAAuB,GAAG,MAAM,CAe1E;AAcD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,GAAE,aAA8B,GAAG,MAAM,CA6DzF;AAED;;GAEG;AACH,wBAAgB,IAAI,IAAI,IAAI,CAI3B"}
|
package/dist/git-shim.js
CHANGED
|
@@ -20,12 +20,23 @@
|
|
|
20
20
|
* @module @lumenflow/shims/git
|
|
21
21
|
*/
|
|
22
22
|
import { spawnSync } from 'node:child_process';
|
|
23
|
-
import { GitShimConfigSchema, UserType, CommandOutcome } from './types.js';
|
|
23
|
+
import { GitShimConfigSchema, UserType, CommandOutcome, WORKTREE_REMOVE_BYPASS_ENV_VAR, } from './types.js';
|
|
24
24
|
import { getCurrentBranch, isMainWorktree } from './worktree.js';
|
|
25
|
+
import { isAgentBranch, isHeadlessAllowed, getConfig } from '@lumenflow/core';
|
|
25
26
|
/**
|
|
26
27
|
* Default configuration.
|
|
27
28
|
*/
|
|
28
29
|
const DEFAULT_CONFIG = GitShimConfigSchema.parse({});
|
|
30
|
+
/**
|
|
31
|
+
* Get protected branches from core config (single source of truth).
|
|
32
|
+
* Derives from mainBranch + legacy 'master'.
|
|
33
|
+
*/
|
|
34
|
+
function getProtectedBranchesFromCore() {
|
|
35
|
+
const config = getConfig();
|
|
36
|
+
const mainBranch = config?.git?.mainBranch ?? 'main';
|
|
37
|
+
const branches = new Set([mainBranch, 'master']);
|
|
38
|
+
return Array.from(branches);
|
|
39
|
+
}
|
|
29
40
|
/**
|
|
30
41
|
* Build context string for protected/unprotected state.
|
|
31
42
|
*
|
|
@@ -102,14 +113,28 @@ export function checkBannedPattern(args, config = DEFAULT_CONFIG) {
|
|
|
102
113
|
/**
|
|
103
114
|
* Check if we're in a protected context (main branch or main worktree).
|
|
104
115
|
*
|
|
116
|
+
* Updated in WU-1026 to support:
|
|
117
|
+
* - Agent branches (bypass protection)
|
|
118
|
+
* - Guarded headless mode (LUMENFLOW_HEADLESS + admin/CI)
|
|
119
|
+
* - Detached HEAD (fail-closed)
|
|
120
|
+
* - Core config for protected branches (single source of truth)
|
|
121
|
+
*
|
|
105
122
|
* @param config - Git shim configuration
|
|
106
123
|
* @returns Object with protected status and context description
|
|
107
124
|
*/
|
|
108
125
|
export function checkProtectedContext(config = DEFAULT_CONFIG) {
|
|
126
|
+
// NEW: Check guarded headless mode first
|
|
127
|
+
if (isHeadlessAllowed()) {
|
|
128
|
+
return { protected: false, context: 'headless mode (admin/CI)' };
|
|
129
|
+
}
|
|
109
130
|
// Allow TEST_MODE for integration tests
|
|
110
131
|
if (process.env['TEST_MODE'] === 'true') {
|
|
111
132
|
const branch = process.env['TEST_BRANCH'] || config.protectedBranch;
|
|
112
133
|
const inMainWorktree = process.env['TEST_IS_MAIN_WORKTREE'] === 'true';
|
|
134
|
+
// NEW: Check agent branch in test mode
|
|
135
|
+
if (isAgentBranch(branch)) {
|
|
136
|
+
return { protected: false, context: `agent branch: ${branch}` };
|
|
137
|
+
}
|
|
113
138
|
const isProtectedBranch = branch === config.protectedBranch;
|
|
114
139
|
const isProtected = isProtectedBranch || inMainWorktree;
|
|
115
140
|
const context = buildContextString(isProtected, inMainWorktree, config.protectedBranch, branch);
|
|
@@ -117,13 +142,61 @@ export function checkProtectedContext(config = DEFAULT_CONFIG) {
|
|
|
117
142
|
}
|
|
118
143
|
const branch = getCurrentBranch(config.realGitPath);
|
|
119
144
|
const inMainWorktree = isMainWorktree(config.realGitPath);
|
|
145
|
+
// NEW: Detached HEAD = protected (fail-closed)
|
|
146
|
+
if (!branch || branch === 'HEAD') {
|
|
147
|
+
return { protected: true, context: 'detached HEAD' };
|
|
148
|
+
}
|
|
149
|
+
// NEW: Agent branches bypass protection (regardless of worktree)
|
|
150
|
+
if (isAgentBranch(branch)) {
|
|
151
|
+
return { protected: false, context: `agent branch: ${branch}` };
|
|
152
|
+
}
|
|
153
|
+
// Use core config's mainBranch (single source of truth)
|
|
154
|
+
const protectedBranches = getProtectedBranchesFromCore();
|
|
155
|
+
const mainBranch = protectedBranches[0] ?? 'main'; // First is always mainBranch from config
|
|
156
|
+
const isOnProtectedBranch = protectedBranches.includes(branch);
|
|
120
157
|
// Protected if:
|
|
121
|
-
// 1. On protected branch (regardless of worktree)
|
|
158
|
+
// 1. On protected branch (mainBranch or 'master', regardless of worktree)
|
|
122
159
|
// 2. OR in main worktree (even if on a lane branch)
|
|
123
|
-
const isProtected =
|
|
124
|
-
const context = buildContextString(isProtected, inMainWorktree,
|
|
160
|
+
const isProtected = isOnProtectedBranch || inMainWorktree;
|
|
161
|
+
const context = buildContextString(isProtected, inMainWorktree, mainBranch, branch);
|
|
125
162
|
return { protected: isProtected, context };
|
|
126
163
|
}
|
|
164
|
+
/**
|
|
165
|
+
* Check if a worktree remove command should be blocked for agents (WU-1027).
|
|
166
|
+
*
|
|
167
|
+
* Agents must not delete worktrees that belong to other sessions.
|
|
168
|
+
* Only proper workflow (wu:done, wu:prune) should remove worktrees.
|
|
169
|
+
*
|
|
170
|
+
* @param args - Git command arguments
|
|
171
|
+
* @param config - Git shim configuration
|
|
172
|
+
* @returns Object with blocked status and reason
|
|
173
|
+
*/
|
|
174
|
+
export function checkWorktreeRemoveForAgent(args, config = DEFAULT_CONFIG) {
|
|
175
|
+
const command = args[0]?.toLowerCase();
|
|
176
|
+
const subcommand = args[1]?.toLowerCase();
|
|
177
|
+
// Only check worktree remove commands
|
|
178
|
+
if (command !== 'worktree' || subcommand !== 'remove') {
|
|
179
|
+
return { blocked: false, reason: null };
|
|
180
|
+
}
|
|
181
|
+
// Check if bypass env var is set (set by wu:done and wu:prune)
|
|
182
|
+
if (process.env[WORKTREE_REMOVE_BYPASS_ENV_VAR] === '1') {
|
|
183
|
+
return { blocked: false, reason: null };
|
|
184
|
+
}
|
|
185
|
+
// Check if user is an agent
|
|
186
|
+
const userType = detectUserType(config);
|
|
187
|
+
if (userType !== UserType.AGENT) {
|
|
188
|
+
return { blocked: false, reason: null };
|
|
189
|
+
}
|
|
190
|
+
// Block the command for agents
|
|
191
|
+
return {
|
|
192
|
+
blocked: true,
|
|
193
|
+
reason: 'Agents must not delete worktrees directly.\n' +
|
|
194
|
+
'Worktrees belong to WU sessions and may contain uncommitted work.\n\n' +
|
|
195
|
+
'Proper workflow:\n' +
|
|
196
|
+
' - To complete a WU: pnpm wu:done --id WU-XXXX\n' +
|
|
197
|
+
' - To clean up orphaned worktrees: pnpm wu:prune',
|
|
198
|
+
};
|
|
199
|
+
}
|
|
127
200
|
/**
|
|
128
201
|
* Format error message for blocked command.
|
|
129
202
|
*
|
|
@@ -208,6 +281,15 @@ export function runGitShim(args, config = DEFAULT_CONFIG) {
|
|
|
208
281
|
process.env[config.recursionEnvVar] = '1';
|
|
209
282
|
// Detect user type for audit trail
|
|
210
283
|
const user = detectUserType(config);
|
|
284
|
+
// WU-1027: Check worktree remove for agents BEFORE protected context check
|
|
285
|
+
// This applies everywhere, not just in protected context
|
|
286
|
+
const worktreeCheck = checkWorktreeRemoveForAgent(args, config);
|
|
287
|
+
if (worktreeCheck.blocked && worktreeCheck.reason) {
|
|
288
|
+
const command = args.join(' ');
|
|
289
|
+
const errorMsg = formatBlockedError(command, worktreeCheck.reason, 'agent session');
|
|
290
|
+
console.error(errorMsg);
|
|
291
|
+
return 1;
|
|
292
|
+
}
|
|
211
293
|
// Check if we're in a protected context
|
|
212
294
|
const { protected: isProtected, context } = checkProtectedContext(config);
|
|
213
295
|
let outcome = CommandOutcome.ALLOWED;
|
package/dist/git-shim.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-shim.js","sourceRoot":"","sources":["../src/git-shim.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"git-shim.js","sourceRoot":"","sources":["../src/git-shim.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -62,4 +62,16 @@ export interface ProtectedContextResult {
|
|
|
62
62
|
protected: boolean;
|
|
63
63
|
context: string;
|
|
64
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Result of worktree remove check for agents (WU-1027).
|
|
67
|
+
*/
|
|
68
|
+
export interface WorktreeRemoveCheckResult {
|
|
69
|
+
blocked: boolean;
|
|
70
|
+
reason: string | null;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Environment variable to bypass worktree remove blocking.
|
|
74
|
+
* Set by wu:done and wu:prune before removing worktrees.
|
|
75
|
+
*/
|
|
76
|
+
export declare const WORKTREE_REMOVE_BYPASS_ENV_VAR = "LUMENFLOW_WORKTREE_REMOVE_ALLOWED";
|
|
65
77
|
//# 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":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;iBA8B9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,oBAAoB;;;;;iBAS/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;iBAG3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,QAAQ;;;;CAIX,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAEhE,eAAO,MAAM,cAAc;;;;CAIjB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAElF,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;iBA8B9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,oBAAoB;;;;;iBAS/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;iBAG3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,QAAQ;;;;CAIX,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAEhE,eAAO,MAAM,cAAc;;;;CAIjB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAElF,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;GAGG;AACH,eAAO,MAAM,8BAA8B,sCAAsC,CAAC"}
|
package/dist/types.js
CHANGED
|
@@ -56,4 +56,9 @@ export const CommandOutcome = {
|
|
|
56
56
|
BLOCKED: 'blocked',
|
|
57
57
|
UNKNOWN: 'unknown',
|
|
58
58
|
};
|
|
59
|
+
/**
|
|
60
|
+
* Environment variable to bypass worktree remove blocking.
|
|
61
|
+
* Set by wu:done and wu:prune before removing worktrees.
|
|
62
|
+
*/
|
|
63
|
+
export const WORKTREE_REMOVE_BYPASS_ENV_VAR = 'LUMENFLOW_WORKTREE_REMOVE_ALLOWED';
|
|
59
64
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lumenflow/shims",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.2",
|
|
4
4
|
"description": "Git and pnpm safety shims for LumenFlow worktree discipline",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"lumenflow",
|
|
@@ -48,10 +48,12 @@
|
|
|
48
48
|
"README.md"
|
|
49
49
|
],
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"zod": "^4.3.5"
|
|
51
|
+
"zod": "^4.3.5",
|
|
52
|
+
"@lumenflow/core": "1.3.2"
|
|
52
53
|
},
|
|
53
54
|
"devDependencies": {
|
|
54
|
-
"@vitest/coverage-v8": "^4.0.
|
|
55
|
+
"@vitest/coverage-v8": "^4.0.17",
|
|
56
|
+
"vitest": "^4.0.17"
|
|
55
57
|
},
|
|
56
58
|
"engines": {
|
|
57
59
|
"node": ">=22"
|