@lumenflow/cli 2.18.2 → 2.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -41
- package/dist/delegation-list.js +140 -0
- package/dist/delegation-list.js.map +1 -0
- package/dist/doctor.js +35 -99
- package/dist/doctor.js.map +1 -1
- package/dist/gates-plan-resolvers.js +150 -0
- package/dist/gates-plan-resolvers.js.map +1 -0
- package/dist/gates-runners.js +533 -0
- package/dist/gates-runners.js.map +1 -0
- package/dist/gates-types.js +3 -0
- package/dist/gates-types.js.map +1 -1
- package/dist/gates-utils.js +316 -0
- package/dist/gates-utils.js.map +1 -0
- package/dist/gates.js +44 -1016
- package/dist/gates.js.map +1 -1
- package/dist/hooks/enforcement-generator.js +16 -880
- package/dist/hooks/enforcement-generator.js.map +1 -1
- package/dist/hooks/enforcement-sync.js +1 -4
- package/dist/hooks/enforcement-sync.js.map +1 -1
- package/dist/hooks/generators/auto-checkpoint.js +123 -0
- package/dist/hooks/generators/auto-checkpoint.js.map +1 -0
- package/dist/hooks/generators/enforce-worktree.js +188 -0
- package/dist/hooks/generators/enforce-worktree.js.map +1 -0
- package/dist/hooks/generators/index.js +16 -0
- package/dist/hooks/generators/index.js.map +1 -0
- package/dist/hooks/generators/pre-compact-checkpoint.js +134 -0
- package/dist/hooks/generators/pre-compact-checkpoint.js.map +1 -0
- package/dist/hooks/generators/require-wu.js +115 -0
- package/dist/hooks/generators/require-wu.js.map +1 -0
- package/dist/hooks/generators/session-start-recovery.js +101 -0
- package/dist/hooks/generators/session-start-recovery.js.map +1 -0
- package/dist/hooks/generators/signal-utils.js +52 -0
- package/dist/hooks/generators/signal-utils.js.map +1 -0
- package/dist/hooks/generators/warn-incomplete.js +65 -0
- package/dist/hooks/generators/warn-incomplete.js.map +1 -0
- package/dist/init-detection.js +228 -0
- package/dist/init-detection.js.map +1 -0
- package/dist/init-scaffolding.js +146 -0
- package/dist/init-scaffolding.js.map +1 -0
- package/dist/init-templates.js +1928 -0
- package/dist/init-templates.js.map +1 -0
- package/dist/init.js +136 -2425
- package/dist/init.js.map +1 -1
- package/dist/initiative-edit.js +42 -11
- package/dist/initiative-edit.js.map +1 -1
- package/dist/initiative-remove-wu.js +0 -0
- package/dist/initiative-status.js +29 -2
- package/dist/initiative-status.js.map +1 -1
- package/dist/mem-context.js +22 -9
- package/dist/mem-context.js.map +1 -1
- package/dist/orchestrate-init-status.js +32 -1
- package/dist/orchestrate-init-status.js.map +1 -1
- package/dist/orchestrate-monitor.js +38 -38
- package/dist/orchestrate-monitor.js.map +1 -1
- package/dist/public-manifest.js +12 -5
- package/dist/public-manifest.js.map +1 -1
- package/dist/shared-validators.js +1 -0
- package/dist/shared-validators.js.map +1 -1
- package/dist/spawn-list.js +0 -0
- package/dist/wu-claim-branch.js +121 -0
- package/dist/wu-claim-branch.js.map +1 -0
- package/dist/wu-claim-output.js +83 -0
- package/dist/wu-claim-output.js.map +1 -0
- package/dist/wu-claim-resume-handler.js +85 -0
- package/dist/wu-claim-resume-handler.js.map +1 -0
- package/dist/wu-claim-state.js +572 -0
- package/dist/wu-claim-state.js.map +1 -0
- package/dist/wu-claim-validation.js +439 -0
- package/dist/wu-claim-validation.js.map +1 -0
- package/dist/wu-claim-worktree.js +221 -0
- package/dist/wu-claim-worktree.js.map +1 -0
- package/dist/wu-claim.js +54 -1402
- package/dist/wu-claim.js.map +1 -1
- package/dist/wu-create-content.js +254 -0
- package/dist/wu-create-content.js.map +1 -0
- package/dist/wu-create-readiness.js +57 -0
- package/dist/wu-create-readiness.js.map +1 -0
- package/dist/wu-create-validation.js +149 -0
- package/dist/wu-create-validation.js.map +1 -0
- package/dist/wu-create.js +39 -441
- package/dist/wu-create.js.map +1 -1
- package/dist/wu-done.js +144 -249
- package/dist/wu-done.js.map +1 -1
- package/dist/wu-edit-operations.js +432 -0
- package/dist/wu-edit-operations.js.map +1 -0
- package/dist/wu-edit-validators.js +280 -0
- package/dist/wu-edit-validators.js.map +1 -0
- package/dist/wu-edit.js +27 -713
- package/dist/wu-edit.js.map +1 -1
- package/dist/wu-prep.js +32 -2
- package/dist/wu-prep.js.map +1 -1
- package/dist/wu-repair.js +1 -1
- package/dist/wu-repair.js.map +1 -1
- package/dist/wu-spawn-prompt-builders.js +1123 -0
- package/dist/wu-spawn-prompt-builders.js.map +1 -0
- package/dist/wu-spawn-strategy-resolver.js +314 -0
- package/dist/wu-spawn-strategy-resolver.js.map +1 -0
- package/dist/wu-spawn.js +9 -1398
- package/dist/wu-spawn.js.map +1 -1
- package/package.json +10 -7
- package/templates/core/LUMENFLOW.md.template +29 -99
- package/templates/core/ai/onboarding/agent-invocation-guide.md.template +1 -1
- package/templates/core/ai/onboarding/quick-ref-commands.md.template +29 -4
- package/templates/vendors/claude/.claude/skills/orchestration/SKILL.md.template +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enforcement-generator.js","sourceRoot":"","sources":["../../src/hooks/enforcement-generator.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"enforcement-generator.js","sourceRoot":"","sources":["../../src/hooks/enforcement-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
import * as fs from 'node:fs';
|
|
11
11
|
import * as path from 'node:path';
|
|
12
12
|
import * as yaml from 'yaml';
|
|
13
|
-
import { generateEnforcementHooks, generateEnforceWorktreeScript, generateRequireWuScript, generateWarnIncompleteScript,
|
|
13
|
+
import { generateEnforcementHooks, generateEnforceWorktreeScript, generateRequireWuScript, generateWarnIncompleteScript, generatePreCompactCheckpointScript, generateSessionStartRecoveryScript, generateAutoCheckpointScript, HOOK_SCRIPTS, } from './enforcement-generator.js';
|
|
14
14
|
import { checkAutoCheckpointWarning } from './auto-checkpoint-utils.js';
|
|
15
15
|
/**
|
|
16
16
|
* Read LumenFlow configuration from .lumenflow.config.yaml
|
|
@@ -310,9 +310,6 @@ export async function syncEnforcementHooks(projectDir) {
|
|
|
310
310
|
if (enforcement.auto_checkpoint?.enabled) {
|
|
311
311
|
writeHookScript(projectDir, HOOK_SCRIPTS.AUTO_CHECKPOINT, generateAutoCheckpointScript(enforcement.auto_checkpoint.interval_tool_calls));
|
|
312
312
|
}
|
|
313
|
-
// WU-1502: Always write dirty-main warning hook when enforcement.hooks is enabled
|
|
314
|
-
// Detects file modifications on main after Bash commands
|
|
315
|
-
writeHookScript(projectDir, HOOK_SCRIPTS.WARN_DIRTY_MAIN, generateWarnDirtyMainScript());
|
|
316
313
|
// Always write recovery hook scripts when enforcement.hooks is enabled (WU-1394)
|
|
317
314
|
// These enable durable context recovery after compaction
|
|
318
315
|
writeHookScript(projectDir, HOOK_SCRIPTS.PRE_COMPACT_CHECKPOINT, generatePreCompactCheckpointScript());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enforcement-sync.js","sourceRoot":"","sources":["../../src/hooks/enforcement-sync.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"enforcement-sync.js","sourceRoot":"","sources":["../../src/hooks/enforcement-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file generators/auto-checkpoint.ts
|
|
3
|
+
* Generate the auto-checkpoint.sh hook script content (WU-1471).
|
|
4
|
+
*
|
|
5
|
+
* Extracted from enforcement-generator.ts by WU-1645.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* WU-1471: Generate the auto-checkpoint.sh hook script content.
|
|
9
|
+
*
|
|
10
|
+
* This hook is used by both PostToolUse and SubagentStop events.
|
|
11
|
+
* It branches on the hook_event_name environment variable:
|
|
12
|
+
* - PostToolUse: Increments a per-WU counter and checkpoints at interval
|
|
13
|
+
* - SubagentStop: Always creates a checkpoint (sub-agent finished work)
|
|
14
|
+
*
|
|
15
|
+
* Uses a defensive subshell to background checkpoint writes so the hook
|
|
16
|
+
* returns quickly and does not block the agent.
|
|
17
|
+
*
|
|
18
|
+
* @param intervalToolCalls - Number of tool calls between auto-checkpoints
|
|
19
|
+
* @returns Shell script content
|
|
20
|
+
*/
|
|
21
|
+
export function generateAutoCheckpointScript(intervalToolCalls) {
|
|
22
|
+
// Note: Shell variable escapes (\$, \") are intentional for the generated bash script
|
|
23
|
+
/* eslint-disable no-useless-escape */
|
|
24
|
+
return `#!/bin/bash
|
|
25
|
+
#
|
|
26
|
+
# auto-checkpoint.sh (WU-1471)
|
|
27
|
+
#
|
|
28
|
+
# PostToolUse + SubagentStop hook for automatic checkpointing.
|
|
29
|
+
# Branches on hook_event_name to decide behavior:
|
|
30
|
+
# - PostToolUse: counter-based checkpoint at interval
|
|
31
|
+
# - SubagentStop: always checkpoint (sub-agent completed work)
|
|
32
|
+
#
|
|
33
|
+
# Checkpoint writes are backgrounded in a defensive subshell
|
|
34
|
+
# to avoid blocking the agent.
|
|
35
|
+
#
|
|
36
|
+
# Exit codes:
|
|
37
|
+
# 0 = Always (never blocks tool execution)
|
|
38
|
+
#
|
|
39
|
+
|
|
40
|
+
# Fail-open: any error allows the operation to continue
|
|
41
|
+
set +e
|
|
42
|
+
|
|
43
|
+
INTERVAL=${intervalToolCalls}
|
|
44
|
+
|
|
45
|
+
# Derive repo paths
|
|
46
|
+
if [[ -z "\\\${CLAUDE_PROJECT_DIR:-}" ]]; then
|
|
47
|
+
exit 0
|
|
48
|
+
fi
|
|
49
|
+
|
|
50
|
+
REPO_PATH="\\\$CLAUDE_PROJECT_DIR"
|
|
51
|
+
LUMENFLOW_DIR="\\\${REPO_PATH}/.lumenflow"
|
|
52
|
+
COUNTERS_DIR="\\\${LUMENFLOW_DIR}/state/hook-counters"
|
|
53
|
+
|
|
54
|
+
# Check if LumenFlow is configured
|
|
55
|
+
if [[ ! -d "\\\$LUMENFLOW_DIR" ]]; then
|
|
56
|
+
exit 0
|
|
57
|
+
fi
|
|
58
|
+
|
|
59
|
+
# Detect WU ID from worktree context
|
|
60
|
+
WU_ID=""
|
|
61
|
+
CWD=\\\$(pwd 2>/dev/null || echo "")
|
|
62
|
+
if [[ "\\\$CWD" == *"/worktrees/"* ]]; then
|
|
63
|
+
# Extract WU ID from worktree path (e.g., worktrees/framework-cli-wu-1471)
|
|
64
|
+
WORKTREE_NAME=\\\$(basename "\\\$CWD")
|
|
65
|
+
WU_ID=\\\$(echo "\\\$WORKTREE_NAME" | grep -oiE 'wu-[0-9]+' | head -1 | tr '[:lower:]' '[:upper:]')
|
|
66
|
+
fi
|
|
67
|
+
|
|
68
|
+
if [[ -z "\\\$WU_ID" ]]; then
|
|
69
|
+
exit 0
|
|
70
|
+
fi
|
|
71
|
+
|
|
72
|
+
# Determine hook event name (set by Claude Code runtime)
|
|
73
|
+
HOOK_EVENT="\\\${hook_event_name:-PostToolUse}"
|
|
74
|
+
|
|
75
|
+
# Branch on event type
|
|
76
|
+
case "\\\$HOOK_EVENT" in
|
|
77
|
+
SubagentStop)
|
|
78
|
+
# Always checkpoint when sub-agent stops
|
|
79
|
+
(
|
|
80
|
+
pnpm mem:checkpoint "Auto: sub-agent completed" --wu "\\\$WU_ID" --trigger "subagent-stop" --quiet 2>/dev/null || true
|
|
81
|
+
) &
|
|
82
|
+
;;
|
|
83
|
+
*)
|
|
84
|
+
# PostToolUse (default): counter-based checkpointing
|
|
85
|
+
mkdir -p "\\\$COUNTERS_DIR" 2>/dev/null || true
|
|
86
|
+
COUNTER_FILE="\\\${COUNTERS_DIR}/\\\${WU_ID}.json"
|
|
87
|
+
|
|
88
|
+
# Read current count (default 0)
|
|
89
|
+
COUNT=0
|
|
90
|
+
if [[ -f "\\\$COUNTER_FILE" ]]; then
|
|
91
|
+
COUNT=\\\$(python3 -c "
|
|
92
|
+
import json
|
|
93
|
+
try:
|
|
94
|
+
with open('\\\$COUNTER_FILE', 'r') as f:
|
|
95
|
+
data = json.load(f)
|
|
96
|
+
print(data.get('count', 0))
|
|
97
|
+
except:
|
|
98
|
+
print(0)
|
|
99
|
+
" 2>/dev/null || echo "0")
|
|
100
|
+
fi
|
|
101
|
+
|
|
102
|
+
# Increment counter
|
|
103
|
+
COUNT=\\\$((COUNT + 1))
|
|
104
|
+
|
|
105
|
+
# Check if we've reached the interval
|
|
106
|
+
if [[ \\\$COUNT -ge \\\$INTERVAL ]]; then
|
|
107
|
+
# Reset counter and checkpoint in background
|
|
108
|
+
echo '{"count": 0}' > "\\\$COUNTER_FILE" 2>/dev/null || true
|
|
109
|
+
(
|
|
110
|
+
pnpm mem:checkpoint "Auto: \\\${COUNT} tool calls" --wu "\\\$WU_ID" --trigger "auto-interval" --quiet 2>/dev/null || true
|
|
111
|
+
) &
|
|
112
|
+
else
|
|
113
|
+
# Just update the counter
|
|
114
|
+
echo "{\\\\\\"count\\\\\\": \\\$COUNT}" > "\\\$COUNTER_FILE" 2>/dev/null || true
|
|
115
|
+
fi
|
|
116
|
+
;;
|
|
117
|
+
esac
|
|
118
|
+
|
|
119
|
+
exit 0
|
|
120
|
+
`;
|
|
121
|
+
/* eslint-enable no-useless-escape */
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=auto-checkpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-checkpoint.js","sourceRoot":"","sources":["../../../src/hooks/generators/auto-checkpoint.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,4BAA4B,CAAC,iBAAyB;IACpE,sFAAsF;IACtF,sCAAsC;IACtC,OAAO;;;;;;;;;;;;;;;;;;;WAmBE,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6E3B,CAAC;IACA,qCAAqC;AACvC,CAAC"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file generators/enforce-worktree.ts
|
|
3
|
+
* Generate the enforce-worktree.sh hook script content (WU-1367, WU-1501).
|
|
4
|
+
*
|
|
5
|
+
* Extracted from enforcement-generator.ts by WU-1645.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Generate the enforce-worktree.sh hook script content.
|
|
9
|
+
*
|
|
10
|
+
* WU-1501: Fail-closed on main. Blocks Write/Edit when no active claim context.
|
|
11
|
+
* Graceful degradation only when LumenFlow is NOT configured.
|
|
12
|
+
* Allowlist: docs/04-operations/tasks/wu/, .lumenflow/, .claude/, plan/
|
|
13
|
+
* Branch-PR claimed_mode remains writable from main checkout.
|
|
14
|
+
*/
|
|
15
|
+
export function generateEnforceWorktreeScript() {
|
|
16
|
+
// Note: Shell variable escapes (\$, \") are intentional for the generated bash script
|
|
17
|
+
/* eslint-disable no-useless-escape */
|
|
18
|
+
return `#!/bin/bash
|
|
19
|
+
#
|
|
20
|
+
# enforce-worktree.sh (WU-1367, WU-1501)
|
|
21
|
+
#
|
|
22
|
+
# PreToolUse hook that blocks Write/Edit on main checkout.
|
|
23
|
+
# WU-1501: Fail-closed - blocks even when no worktrees exist.
|
|
24
|
+
# Graceful degradation only when LumenFlow is NOT configured.
|
|
25
|
+
#
|
|
26
|
+
# Allowlist: docs/04-operations/tasks/wu/, .lumenflow/, .claude/, plan/
|
|
27
|
+
# Branch-PR claimed_mode permits writes from main checkout.
|
|
28
|
+
#
|
|
29
|
+
# Exit codes:
|
|
30
|
+
# 0 = Allow operation
|
|
31
|
+
# 2 = Block operation (stderr shown to Claude as guidance)
|
|
32
|
+
#
|
|
33
|
+
|
|
34
|
+
set -euo pipefail
|
|
35
|
+
|
|
36
|
+
SCRIPT_DIR="$(cd "$(dirname "\${BASH_SOURCE[0]}")" && pwd)"
|
|
37
|
+
|
|
38
|
+
# Graceful degradation: if we can't determine state, allow the operation
|
|
39
|
+
graceful_allow() {
|
|
40
|
+
local reason="\$1"
|
|
41
|
+
exit 0
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
# Derive repo paths from CLAUDE_PROJECT_DIR
|
|
45
|
+
if [[ -z "\${CLAUDE_PROJECT_DIR:-}" ]]; then
|
|
46
|
+
graceful_allow "CLAUDE_PROJECT_DIR not set"
|
|
47
|
+
fi
|
|
48
|
+
|
|
49
|
+
MAIN_REPO_PATH="\$CLAUDE_PROJECT_DIR"
|
|
50
|
+
WORKTREES_DIR="\${MAIN_REPO_PATH}/worktrees"
|
|
51
|
+
LUMENFLOW_DIR="\${MAIN_REPO_PATH}/.lumenflow"
|
|
52
|
+
|
|
53
|
+
# Check if .lumenflow exists (LumenFlow is configured)
|
|
54
|
+
if [[ ! -d "\$LUMENFLOW_DIR" ]]; then
|
|
55
|
+
graceful_allow "No .lumenflow directory (LumenFlow not configured)"
|
|
56
|
+
fi
|
|
57
|
+
|
|
58
|
+
# Read JSON input from stdin
|
|
59
|
+
INPUT=\$(cat)
|
|
60
|
+
|
|
61
|
+
if [[ -z "\$INPUT" ]]; then
|
|
62
|
+
graceful_allow "No input provided"
|
|
63
|
+
fi
|
|
64
|
+
|
|
65
|
+
# Parse JSON with Python
|
|
66
|
+
TMPFILE=\$(mktemp)
|
|
67
|
+
echo "\$INPUT" > "\$TMPFILE"
|
|
68
|
+
|
|
69
|
+
PARSE_RESULT=\$(python3 -c "
|
|
70
|
+
import json
|
|
71
|
+
import sys
|
|
72
|
+
try:
|
|
73
|
+
with open('\$TMPFILE', 'r') as f:
|
|
74
|
+
data = json.load(f)
|
|
75
|
+
tool_name = data.get('tool_name', '')
|
|
76
|
+
tool_input = data.get('tool_input', {})
|
|
77
|
+
if not isinstance(tool_input, dict):
|
|
78
|
+
tool_input = {}
|
|
79
|
+
file_path = tool_input.get('file_path', '')
|
|
80
|
+
print('OK')
|
|
81
|
+
print(tool_name if tool_name else '')
|
|
82
|
+
print(file_path if file_path else '')
|
|
83
|
+
except Exception as e:
|
|
84
|
+
print('ERROR')
|
|
85
|
+
print(str(e))
|
|
86
|
+
print('')
|
|
87
|
+
" 2>&1)
|
|
88
|
+
|
|
89
|
+
rm -f "\$TMPFILE"
|
|
90
|
+
|
|
91
|
+
# Parse the result
|
|
92
|
+
PARSE_STATUS=\$(echo "\$PARSE_RESULT" | head -1)
|
|
93
|
+
TOOL_NAME=\$(echo "\$PARSE_RESULT" | sed -n '2p')
|
|
94
|
+
FILE_PATH=\$(echo "\$PARSE_RESULT" | sed -n '3p')
|
|
95
|
+
|
|
96
|
+
if [[ "\$PARSE_STATUS" != "OK" ]]; then
|
|
97
|
+
graceful_allow "JSON parse failed"
|
|
98
|
+
fi
|
|
99
|
+
|
|
100
|
+
# Only process Write and Edit tools
|
|
101
|
+
if [[ "\$TOOL_NAME" != "Write" && "\$TOOL_NAME" != "Edit" ]]; then
|
|
102
|
+
exit 0
|
|
103
|
+
fi
|
|
104
|
+
|
|
105
|
+
if [[ -z "\$FILE_PATH" ]]; then
|
|
106
|
+
graceful_allow "No file_path in input"
|
|
107
|
+
fi
|
|
108
|
+
|
|
109
|
+
# Resolve the file path
|
|
110
|
+
RESOLVED_PATH=\$(realpath -m "\$FILE_PATH" 2>/dev/null || echo "\$FILE_PATH")
|
|
111
|
+
|
|
112
|
+
# Allow if path is outside repo entirely
|
|
113
|
+
if [[ "\$RESOLVED_PATH" != "\${MAIN_REPO_PATH}/"* && "\$RESOLVED_PATH" != "\${MAIN_REPO_PATH}" ]]; then
|
|
114
|
+
exit 0
|
|
115
|
+
fi
|
|
116
|
+
|
|
117
|
+
# Allow if path is inside a worktree
|
|
118
|
+
if [[ "\$RESOLVED_PATH" == "\${WORKTREES_DIR}/"* ]]; then
|
|
119
|
+
exit 0
|
|
120
|
+
fi
|
|
121
|
+
|
|
122
|
+
# Check if any active worktrees exist
|
|
123
|
+
WORKTREE_COUNT=0
|
|
124
|
+
if [[ -d "\$WORKTREES_DIR" ]]; then
|
|
125
|
+
WORKTREE_COUNT=\$(find "\$WORKTREES_DIR" -mindepth 1 -maxdepth 1 -type d 2>/dev/null | wc -l)
|
|
126
|
+
fi
|
|
127
|
+
|
|
128
|
+
# If worktrees exist, block writes to main repo (original behavior)
|
|
129
|
+
if [[ "\$WORKTREE_COUNT" -gt 0 ]]; then
|
|
130
|
+
ACTIVE_WORKTREES=\$(find "\$WORKTREES_DIR" -mindepth 1 -maxdepth 1 -type d -printf '%f\\n' 2>/dev/null | head -5 | tr '\\n' ', ' | sed 's/,\$//')
|
|
131
|
+
|
|
132
|
+
echo "" >&2
|
|
133
|
+
echo "=== Worktree Enforcement ===" >&2
|
|
134
|
+
echo "" >&2
|
|
135
|
+
echo "BLOCKED: \$TOOL_NAME to main repo" >&2
|
|
136
|
+
echo "" >&2
|
|
137
|
+
echo "Active worktrees: \${ACTIVE_WORKTREES:-none detected}" >&2
|
|
138
|
+
echo "" >&2
|
|
139
|
+
echo "USE INSTEAD:" >&2
|
|
140
|
+
echo " 1. cd to your worktree: cd worktrees/<lane>-wu-<id>/" >&2
|
|
141
|
+
echo " 2. Make your edits in the worktree" >&2
|
|
142
|
+
echo "" >&2
|
|
143
|
+
echo "See: LUMENFLOW.md for worktree discipline" >&2
|
|
144
|
+
echo "==============================" >&2
|
|
145
|
+
exit 2
|
|
146
|
+
fi
|
|
147
|
+
|
|
148
|
+
# WU-1501: Fail-closed on main when no active worktrees exist
|
|
149
|
+
# Check allowlist: paths that are always safe to write on main
|
|
150
|
+
RELATIVE_PATH="\${RESOLVED_PATH#\${MAIN_REPO_PATH}/}"
|
|
151
|
+
|
|
152
|
+
case "\$RELATIVE_PATH" in
|
|
153
|
+
docs/04-operations/tasks/wu/*) exit 0 ;; # WU YAML specs
|
|
154
|
+
.lumenflow/*) exit 0 ;; # LumenFlow state/config
|
|
155
|
+
.claude/*) exit 0 ;; # Claude Code config
|
|
156
|
+
plan/*) exit 0 ;; # Plan/spec scaffolds
|
|
157
|
+
esac
|
|
158
|
+
|
|
159
|
+
# Check for branch-pr claimed_mode (allows main writes without worktree)
|
|
160
|
+
STATE_FILE="\${LUMENFLOW_DIR}/state/wu-events.jsonl"
|
|
161
|
+
if [[ -f "\$STATE_FILE" ]]; then
|
|
162
|
+
if grep -q '"claimed_mode":"branch-pr"' "\$STATE_FILE" 2>/dev/null; then
|
|
163
|
+
if grep -q '"status":"in_progress"' "\$STATE_FILE" 2>/dev/null; then
|
|
164
|
+
exit 0 # Branch-PR WU active - allow main writes
|
|
165
|
+
fi
|
|
166
|
+
fi
|
|
167
|
+
fi
|
|
168
|
+
|
|
169
|
+
# WU-1501: Fail-closed - no active claim context, block the write
|
|
170
|
+
echo "" >&2
|
|
171
|
+
echo "=== Worktree Enforcement ===" >&2
|
|
172
|
+
echo "" >&2
|
|
173
|
+
echo "BLOCKED: \$TOOL_NAME on main (no active WU claim)" >&2
|
|
174
|
+
echo "" >&2
|
|
175
|
+
echo "No worktrees exist and no branch-pr WU is in progress." >&2
|
|
176
|
+
echo "" >&2
|
|
177
|
+
echo "WHAT TO DO:" >&2
|
|
178
|
+
echo " 1. Claim a WU: pnpm wu:claim --id WU-XXXX --lane \\"<Lane>\\"" >&2
|
|
179
|
+
echo " 2. cd worktrees/<lane>-wu-xxxx" >&2
|
|
180
|
+
echo " 3. Make your edits in the worktree" >&2
|
|
181
|
+
echo "" >&2
|
|
182
|
+
echo "See: LUMENFLOW.md for worktree discipline" >&2
|
|
183
|
+
echo "==============================" >&2
|
|
184
|
+
exit 2
|
|
185
|
+
`;
|
|
186
|
+
/* eslint-enable no-useless-escape */
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=enforce-worktree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enforce-worktree.js","sourceRoot":"","sources":["../../../src/hooks/generators/enforce-worktree.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,6BAA6B;IAC3C,sFAAsF;IACtF,sCAAsC;IACtC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuKR,CAAC;IACA,qCAAqC;AACvC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file generators/index.ts
|
|
3
|
+
* Barrel export for per-hook generator modules (WU-1645).
|
|
4
|
+
*
|
|
5
|
+
* Each hook script builder lives in its own file for focused maintainability.
|
|
6
|
+
* This barrel re-exports all generators so that enforcement-generator.ts
|
|
7
|
+
* (and other consumers) can import from a single location.
|
|
8
|
+
*/
|
|
9
|
+
export { generateEnforceWorktreeScript } from './enforce-worktree.js';
|
|
10
|
+
export { generateRequireWuScript } from './require-wu.js';
|
|
11
|
+
export { generateWarnIncompleteScript } from './warn-incomplete.js';
|
|
12
|
+
export { generatePreCompactCheckpointScript } from './pre-compact-checkpoint.js';
|
|
13
|
+
export { generateSessionStartRecoveryScript } from './session-start-recovery.js';
|
|
14
|
+
export { generateAutoCheckpointScript } from './auto-checkpoint.js';
|
|
15
|
+
export { surfaceUnreadSignals, markCompletedWUSignalsAsRead, } from './signal-utils.js';
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/generators/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,kCAAkC,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,kCAAkC,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EACL,oBAAoB,EACpB,4BAA4B,GAG7B,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file generators/pre-compact-checkpoint.ts
|
|
3
|
+
* Generate the pre-compact-checkpoint.sh hook script content (WU-1394).
|
|
4
|
+
*
|
|
5
|
+
* Extracted from enforcement-generator.ts by WU-1645.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Generate the pre-compact-checkpoint.sh hook script content.
|
|
9
|
+
*
|
|
10
|
+
* This PreCompact hook saves a checkpoint and writes a durable recovery file
|
|
11
|
+
* before context compaction. The recovery file survives compaction and is
|
|
12
|
+
* read by session-start-recovery.sh on the next session start.
|
|
13
|
+
*
|
|
14
|
+
* Part of WU-1394: Durable recovery pattern for context preservation.
|
|
15
|
+
*/
|
|
16
|
+
export function generatePreCompactCheckpointScript() {
|
|
17
|
+
// Note: Shell variable escapes (\$, \") are intentional for the generated bash script
|
|
18
|
+
/* eslint-disable no-useless-escape */
|
|
19
|
+
return `#!/bin/bash
|
|
20
|
+
#
|
|
21
|
+
# pre-compact-checkpoint.sh
|
|
22
|
+
#
|
|
23
|
+
# PreCompact hook - auto-checkpoint + durable recovery marker (WU-1390)
|
|
24
|
+
#
|
|
25
|
+
# Fires before context compaction to:
|
|
26
|
+
# 1. Save a checkpoint with the current WU progress
|
|
27
|
+
# 2. Write a durable recovery file that survives compaction
|
|
28
|
+
#
|
|
29
|
+
# The recovery file is read by session-start-recovery.sh on the next
|
|
30
|
+
# session start (after compact, resume, or clear) to restore context.
|
|
31
|
+
#
|
|
32
|
+
# Exit codes:
|
|
33
|
+
# 0 = Always allow (cannot block compaction)
|
|
34
|
+
#
|
|
35
|
+
# Uses python3 for JSON parsing (consistent with other hooks)
|
|
36
|
+
#
|
|
37
|
+
|
|
38
|
+
set -euo pipefail
|
|
39
|
+
|
|
40
|
+
SCRIPT_DIR="$(cd "$(dirname "\${BASH_SOURCE[0]}")" && pwd)"
|
|
41
|
+
|
|
42
|
+
# Derive repo paths from CLAUDE_PROJECT_DIR
|
|
43
|
+
if [[ -n "\${CLAUDE_PROJECT_DIR:-}" ]]; then
|
|
44
|
+
REPO_PATH="\$CLAUDE_PROJECT_DIR"
|
|
45
|
+
else
|
|
46
|
+
REPO_PATH=\$(git rev-parse --show-toplevel 2>/dev/null || echo "")
|
|
47
|
+
if [[ -z "\$REPO_PATH" ]]; then
|
|
48
|
+
exit 0
|
|
49
|
+
fi
|
|
50
|
+
fi
|
|
51
|
+
|
|
52
|
+
# Read JSON input from stdin
|
|
53
|
+
INPUT=\$(cat)
|
|
54
|
+
|
|
55
|
+
# Parse trigger from hook input (defensive - default to "auto")
|
|
56
|
+
# PreCompact provides: { "trigger": "manual" | "auto" }
|
|
57
|
+
TRIGGER=\$(python3 -c "
|
|
58
|
+
import json
|
|
59
|
+
import sys
|
|
60
|
+
try:
|
|
61
|
+
data = json.loads('''\$INPUT''')
|
|
62
|
+
trigger = data.get('trigger', 'auto')
|
|
63
|
+
print(trigger if trigger else 'auto')
|
|
64
|
+
except:
|
|
65
|
+
print('auto')
|
|
66
|
+
" 2>/dev/null || echo "auto")
|
|
67
|
+
|
|
68
|
+
# Get WU ID from worktree context (wu:status --json)
|
|
69
|
+
# Location.worktreeWuId is set when in a worktree
|
|
70
|
+
WU_ID=\$(pnpm wu:status --json 2>/dev/null | python3 -c "
|
|
71
|
+
import json
|
|
72
|
+
import sys
|
|
73
|
+
try:
|
|
74
|
+
data = json.load(sys.stdin)
|
|
75
|
+
location = data.get('location', {})
|
|
76
|
+
wu_id = location.get('worktreeWuId') or ''
|
|
77
|
+
print(wu_id)
|
|
78
|
+
except:
|
|
79
|
+
print('')
|
|
80
|
+
" 2>/dev/null || echo "")
|
|
81
|
+
|
|
82
|
+
# Proceed with worktree-based recovery if we have a WU ID
|
|
83
|
+
if [[ -n "\$WU_ID" ]]; then
|
|
84
|
+
# Save checkpoint with pre-compact trigger
|
|
85
|
+
# Note: This may fail if CLI not built, but that's OK - recovery file is more important
|
|
86
|
+
pnpm mem:checkpoint "Auto: pre-\${TRIGGER}-compaction" --wu "\$WU_ID" --trigger "pre-compact" --quiet 2>/dev/null || true
|
|
87
|
+
|
|
88
|
+
# Write durable recovery marker (survives compaction)
|
|
89
|
+
# This is the key mechanism - file persists and is read by session-start-recovery.sh
|
|
90
|
+
RECOVERY_DIR="\${REPO_PATH}/.lumenflow/state"
|
|
91
|
+
RECOVERY_FILE="\${RECOVERY_DIR}/recovery-pending-\${WU_ID}.md"
|
|
92
|
+
|
|
93
|
+
mkdir -p "\$RECOVERY_DIR"
|
|
94
|
+
|
|
95
|
+
# Generate recovery context using mem:recover
|
|
96
|
+
# The --quiet flag outputs only the recovery context without headers
|
|
97
|
+
pnpm mem:recover --wu "\$WU_ID" --quiet > "\$RECOVERY_FILE" 2>/dev/null || {
|
|
98
|
+
# Fallback minimal recovery if mem:recover fails
|
|
99
|
+
cat > "\$RECOVERY_FILE" << EOF
|
|
100
|
+
# POST-COMPACTION RECOVERY
|
|
101
|
+
|
|
102
|
+
You are resuming work after context compaction. Your previous context was lost.
|
|
103
|
+
**WU:** \${WU_ID}
|
|
104
|
+
|
|
105
|
+
## Next Action
|
|
106
|
+
Run \\\`pnpm wu:brief --id \${WU_ID} --client claude-code\\\` to generate a fresh handoff prompt.
|
|
107
|
+
EOF
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
# Output brief warning to stderr (may be compacted away, but recovery file persists)
|
|
111
|
+
echo "" >&2
|
|
112
|
+
echo "═══════════════════════════════════════════════════════" >&2
|
|
113
|
+
echo "⚠️ COMPACTION: Checkpoint saved for \${WU_ID}" >&2
|
|
114
|
+
echo "Recovery context: \${RECOVERY_FILE}" >&2
|
|
115
|
+
echo "Next: pnpm wu:brief --id \${WU_ID} --client claude-code" >&2
|
|
116
|
+
echo "═══════════════════════════════════════════════════════" >&2
|
|
117
|
+
else
|
|
118
|
+
# WU-1473: Non-worktree orchestrator context recovery
|
|
119
|
+
# When not in a worktree (e.g., orchestrator on main), surface unread inbox
|
|
120
|
+
# so agents have coordination context after compaction
|
|
121
|
+
echo "" >&2
|
|
122
|
+
echo "═══════════════════════════════════════════════════════" >&2
|
|
123
|
+
echo "⚠️ COMPACTION: No active WU detected (non-worktree context)" >&2
|
|
124
|
+
echo "Surfacing recent coordination signals via mem:inbox..." >&2
|
|
125
|
+
pnpm mem:inbox --since 1h --quiet 2>/dev/null >&2 || true
|
|
126
|
+
echo "═══════════════════════════════════════════════════════" >&2
|
|
127
|
+
fi
|
|
128
|
+
|
|
129
|
+
# Always exit 0 - cannot block compaction
|
|
130
|
+
exit 0
|
|
131
|
+
`;
|
|
132
|
+
/* eslint-enable no-useless-escape */
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=pre-compact-checkpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pre-compact-checkpoint.js","sourceRoot":"","sources":["../../../src/hooks/generators/pre-compact-checkpoint.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,kCAAkC;IAChD,sFAAsF;IACtF,sCAAsC;IACtC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgHR,CAAC;IACA,qCAAqC;AACvC,CAAC"}
|