oh-my-claude-sisyphus 1.9.0 → 1.10.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/agents/definitions.js +1 -1
- package/dist/agents/orchestrator-sisyphus.js +1 -1
- package/dist/features/auto-update.d.ts +20 -0
- package/dist/features/auto-update.d.ts.map +1 -1
- package/dist/features/auto-update.js +35 -0
- package/dist/features/auto-update.js.map +1 -1
- package/dist/features/builtin-skills/skills.d.ts.map +1 -1
- package/dist/features/builtin-skills/skills.js +146 -13
- package/dist/features/builtin-skills/skills.js.map +1 -1
- package/dist/hooks/bridge.d.ts +1 -1
- package/dist/hooks/bridge.d.ts.map +1 -1
- package/dist/hooks/bridge.js +97 -1
- package/dist/hooks/bridge.js.map +1 -1
- package/dist/hooks/index.d.ts +4 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +12 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/persistent-mode/index.d.ts +40 -0
- package/dist/hooks/persistent-mode/index.d.ts.map +1 -0
- package/dist/hooks/persistent-mode/index.js +322 -0
- package/dist/hooks/persistent-mode/index.js.map +1 -0
- package/dist/hooks/plugin-patterns/index.d.ts +107 -0
- package/dist/hooks/plugin-patterns/index.d.ts.map +1 -0
- package/dist/hooks/plugin-patterns/index.js +286 -0
- package/dist/hooks/plugin-patterns/index.js.map +1 -0
- package/dist/hooks/preemptive-compaction/index.js +2 -2
- package/dist/hooks/preemptive-compaction/index.js.map +1 -1
- package/dist/hooks/ralph-verifier/index.d.ts +72 -0
- package/dist/hooks/ralph-verifier/index.d.ts.map +1 -0
- package/dist/hooks/ralph-verifier/index.js +223 -0
- package/dist/hooks/ralph-verifier/index.js.map +1 -0
- package/dist/hooks/thinking-block-validator/index.d.ts +3 -34
- package/dist/hooks/thinking-block-validator/index.d.ts.map +1 -1
- package/dist/hooks/thinking-block-validator/index.js +21 -70
- package/dist/hooks/thinking-block-validator/index.js.map +1 -1
- package/dist/hooks/ultrawork-state/index.d.ts +60 -0
- package/dist/hooks/ultrawork-state/index.d.ts.map +1 -0
- package/dist/hooks/ultrawork-state/index.js +207 -0
- package/dist/hooks/ultrawork-state/index.js.map +1 -0
- package/dist/installer/hooks.d.ts +38 -2
- package/dist/installer/hooks.d.ts.map +1 -1
- package/dist/installer/hooks.js +682 -8
- package/dist/installer/hooks.js.map +1 -1
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +126 -10
- package/dist/installer/index.js.map +1 -1
- package/dist/tools/ast-tools.d.ts +3 -3
- package/dist/tools/ast-tools.d.ts.map +1 -1
- package/dist/tools/ast-tools.js +205 -104
- package/dist/tools/ast-tools.js.map +1 -1
- package/package.json +1 -1
- package/scripts/install.sh +70 -3
- package/scripts/uninstall.sh +116 -3
package/dist/hooks/index.d.ts
CHANGED
|
@@ -28,4 +28,8 @@ export { createThinkingBlockValidatorHook, isExtendedThinkingModel, hasContentPa
|
|
|
28
28
|
export { nonInteractiveEnvHook, isNonInteractive, HOOK_NAME as NON_INTERACTIVE_ENV_HOOK_NAME, NON_INTERACTIVE_ENV, SHELL_COMMAND_PATTERNS, type NonInteractiveEnvConfig, type ShellHook } from './non-interactive-env/index.js';
|
|
29
29
|
export { createSessionRecoveryHook, handleSessionRecovery, detectErrorType, isRecoverableError, findEmptyMessages as findRecoveryEmptyMessages, findMessagesWithThinkingBlocks as findRecoveryThinkingBlocks, findMessagesWithOrphanThinking as findRecoveryOrphanThinking, readMessages as readRecoveryMessages, readParts as readRecoveryParts, RECOVERY_MESSAGES, RECOVERY_RESUME_TEXT, PLACEHOLDER_TEXT as RECOVERY_PLACEHOLDER_TEXT, type MessageData, type RecoveryErrorType, type RecoveryResult as SessionRecoveryResult, type SessionRecoveryConfig, type StoredMessageMeta, type StoredPart, type StoredTextPart, type StoredToolPart } from './session-recovery/index.js';
|
|
30
30
|
export { createAgentUsageReminderHook, loadAgentUsageState, saveAgentUsageState, clearAgentUsageState, AGENT_USAGE_STORAGE_DIR, TARGET_TOOLS, AGENT_TOOLS, REMINDER_MESSAGE, type AgentUsageState } from './agent-usage-reminder/index.js';
|
|
31
|
+
export { activateUltrawork, deactivateUltrawork, readUltraworkState, writeUltraworkState, incrementReinforcement, shouldReinforceUltrawork, getUltraworkPersistenceMessage, createUltraworkStateHook, type UltraworkState } from './ultrawork-state/index.js';
|
|
32
|
+
export { checkPersistentModes, createHookOutput, type PersistentModeResult } from './persistent-mode/index.js';
|
|
33
|
+
export { getFormatter, isFormatterAvailable, formatFile, getLinter, lintFile, validateCommitMessage, runTypeCheck, runTests, runPreCommitChecks, getPreCommitReminderMessage, getAutoFormatMessage, type FormatConfig, type LintConfig, type CommitConfig, type PreCommitResult } from './plugin-patterns/index.js';
|
|
34
|
+
export { readVerificationState, writeVerificationState, clearVerificationState, startVerification, recordOracleFeedback, getOracleVerificationPrompt, getOracleRejectionContinuationPrompt, detectOracleApproval, detectOracleRejection, type VerificationState } from './ralph-verifier/index.js';
|
|
31
35
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks/index.js
CHANGED
|
@@ -66,4 +66,16 @@ createSessionRecoveryHook, handleSessionRecovery, detectErrorType, isRecoverable
|
|
|
66
66
|
export {
|
|
67
67
|
// Agent Usage Reminder
|
|
68
68
|
createAgentUsageReminderHook, loadAgentUsageState, saveAgentUsageState, clearAgentUsageState, AGENT_USAGE_STORAGE_DIR, TARGET_TOOLS, AGENT_TOOLS, REMINDER_MESSAGE } from './agent-usage-reminder/index.js';
|
|
69
|
+
export {
|
|
70
|
+
// Ultrawork State (Persistent Mode)
|
|
71
|
+
activateUltrawork, deactivateUltrawork, readUltraworkState, writeUltraworkState, incrementReinforcement, shouldReinforceUltrawork, getUltraworkPersistenceMessage, createUltraworkStateHook } from './ultrawork-state/index.js';
|
|
72
|
+
export {
|
|
73
|
+
// Persistent Mode (Unified Stop Handler)
|
|
74
|
+
checkPersistentModes, createHookOutput } from './persistent-mode/index.js';
|
|
75
|
+
export {
|
|
76
|
+
// Plugin Patterns (Popular Community Patterns)
|
|
77
|
+
getFormatter, isFormatterAvailable, formatFile, getLinter, lintFile, validateCommitMessage, runTypeCheck, runTests, runPreCommitChecks, getPreCommitReminderMessage, getAutoFormatMessage } from './plugin-patterns/index.js';
|
|
78
|
+
export {
|
|
79
|
+
// Ralph Verifier (Oracle-verified completion)
|
|
80
|
+
readVerificationState, writeVerificationState, clearVerificationState, startVerification, recordOracleFeedback, getOracleVerificationPrompt, getOracleRejectionContinuationPrompt, detectOracleApproval, detectOracleRejection } from './ralph-verifier/index.js';
|
|
69
81
|
//# sourceMappingURL=index.js.map
|
package/dist/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persistent Mode Hook
|
|
3
|
+
*
|
|
4
|
+
* Unified handler for persistent work modes: ultrawork, ralph-loop, and todo-continuation.
|
|
5
|
+
* This hook intercepts Stop events and enforces work continuation based on:
|
|
6
|
+
* 1. Active ultrawork mode with pending todos
|
|
7
|
+
* 2. Active ralph-loop with incomplete promise
|
|
8
|
+
* 3. Any pending todos (general enforcement)
|
|
9
|
+
*
|
|
10
|
+
* Priority order: Ralph Loop > Ultrawork > Todo Continuation
|
|
11
|
+
*/
|
|
12
|
+
export interface PersistentModeResult {
|
|
13
|
+
/** Whether to block the stop event */
|
|
14
|
+
shouldBlock: boolean;
|
|
15
|
+
/** Message to inject into context */
|
|
16
|
+
message: string;
|
|
17
|
+
/** Which mode triggered the block */
|
|
18
|
+
mode: 'ralph-loop' | 'ultrawork' | 'todo-continuation' | 'none';
|
|
19
|
+
/** Additional metadata */
|
|
20
|
+
metadata?: {
|
|
21
|
+
todoCount?: number;
|
|
22
|
+
iteration?: number;
|
|
23
|
+
maxIterations?: number;
|
|
24
|
+
reinforcementCount?: number;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Main persistent mode checker
|
|
29
|
+
* Checks all persistent modes in priority order and returns appropriate action
|
|
30
|
+
*/
|
|
31
|
+
export declare function checkPersistentModes(sessionId?: string, directory?: string): Promise<PersistentModeResult>;
|
|
32
|
+
/**
|
|
33
|
+
* Create hook output for Claude Code
|
|
34
|
+
*/
|
|
35
|
+
export declare function createHookOutput(result: PersistentModeResult): {
|
|
36
|
+
continue: boolean;
|
|
37
|
+
reason?: string;
|
|
38
|
+
message?: string;
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/persistent-mode/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAgCH,MAAM,WAAW,oBAAoB;IACnC,sCAAsC;IACtC,WAAW,EAAE,OAAO,CAAC;IACrB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,IAAI,EAAE,YAAY,GAAG,WAAW,GAAG,mBAAmB,GAAG,MAAM,CAAC;IAChE,0BAA0B;IAC1B,QAAQ,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B,CAAC;CACH;AAsSD;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,oBAAoB,CAAC,CAiC/B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,GAAG;IAC9D,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAcA"}
|
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persistent Mode Hook
|
|
3
|
+
*
|
|
4
|
+
* Unified handler for persistent work modes: ultrawork, ralph-loop, and todo-continuation.
|
|
5
|
+
* This hook intercepts Stop events and enforces work continuation based on:
|
|
6
|
+
* 1. Active ultrawork mode with pending todos
|
|
7
|
+
* 2. Active ralph-loop with incomplete promise
|
|
8
|
+
* 3. Any pending todos (general enforcement)
|
|
9
|
+
*
|
|
10
|
+
* Priority order: Ralph Loop > Ultrawork > Todo Continuation
|
|
11
|
+
*/
|
|
12
|
+
import { existsSync, readFileSync } from 'fs';
|
|
13
|
+
import { join } from 'path';
|
|
14
|
+
import { homedir } from 'os';
|
|
15
|
+
import { readUltraworkState, incrementReinforcement, deactivateUltrawork, getUltraworkPersistenceMessage } from '../ultrawork-state/index.js';
|
|
16
|
+
import { readRalphState, incrementRalphIteration, clearRalphState, detectCompletionPromise } from '../ralph-loop/index.js';
|
|
17
|
+
import { readVerificationState, startVerification, recordOracleFeedback, getOracleVerificationPrompt, getOracleRejectionContinuationPrompt, detectOracleApproval, detectOracleRejection, clearVerificationState } from '../ralph-verifier/index.js';
|
|
18
|
+
import { checkIncompleteTodos, getNextPendingTodo } from '../todo-continuation/index.js';
|
|
19
|
+
import { TODO_CONTINUATION_PROMPT } from '../../installer/hooks.js';
|
|
20
|
+
/**
|
|
21
|
+
* Check for oracle approval in session transcript
|
|
22
|
+
*/
|
|
23
|
+
function checkOracleApprovalInTranscript(sessionId) {
|
|
24
|
+
const claudeDir = join(homedir(), '.claude');
|
|
25
|
+
const possiblePaths = [
|
|
26
|
+
join(claudeDir, 'sessions', sessionId, 'transcript.md'),
|
|
27
|
+
join(claudeDir, 'sessions', sessionId, 'messages.json'),
|
|
28
|
+
join(claudeDir, 'transcripts', `${sessionId}.md`)
|
|
29
|
+
];
|
|
30
|
+
for (const transcriptPath of possiblePaths) {
|
|
31
|
+
if (existsSync(transcriptPath)) {
|
|
32
|
+
try {
|
|
33
|
+
const content = readFileSync(transcriptPath, 'utf-8');
|
|
34
|
+
if (detectOracleApproval(content)) {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Check for oracle rejection in session transcript
|
|
47
|
+
*/
|
|
48
|
+
function checkOracleRejectionInTranscript(sessionId) {
|
|
49
|
+
const claudeDir = join(homedir(), '.claude');
|
|
50
|
+
const possiblePaths = [
|
|
51
|
+
join(claudeDir, 'sessions', sessionId, 'transcript.md'),
|
|
52
|
+
join(claudeDir, 'sessions', sessionId, 'messages.json'),
|
|
53
|
+
join(claudeDir, 'transcripts', `${sessionId}.md`)
|
|
54
|
+
];
|
|
55
|
+
for (const transcriptPath of possiblePaths) {
|
|
56
|
+
if (existsSync(transcriptPath)) {
|
|
57
|
+
try {
|
|
58
|
+
const content = readFileSync(transcriptPath, 'utf-8');
|
|
59
|
+
const result = detectOracleRejection(content);
|
|
60
|
+
if (result.rejected) {
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return { rejected: false, feedback: '' };
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Check Ralph Loop state and determine if it should continue
|
|
73
|
+
* Now includes Oracle verification for completion claims
|
|
74
|
+
*/
|
|
75
|
+
async function checkRalphLoop(sessionId, directory) {
|
|
76
|
+
const workingDir = directory || process.cwd();
|
|
77
|
+
const state = readRalphState(workingDir);
|
|
78
|
+
if (!state || !state.active) {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
// Check if this is the right session
|
|
82
|
+
if (state.session_id && sessionId && state.session_id !== sessionId) {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
// Check for existing verification state (oracle verification in progress)
|
|
86
|
+
const verificationState = readVerificationState(workingDir);
|
|
87
|
+
if (verificationState?.pending) {
|
|
88
|
+
// Verification is in progress - check for oracle's response
|
|
89
|
+
if (sessionId) {
|
|
90
|
+
// Check for oracle approval
|
|
91
|
+
if (checkOracleApprovalInTranscript(sessionId)) {
|
|
92
|
+
// Oracle approved - truly complete
|
|
93
|
+
clearVerificationState(workingDir);
|
|
94
|
+
clearRalphState(workingDir);
|
|
95
|
+
return {
|
|
96
|
+
shouldBlock: false,
|
|
97
|
+
message: `[RALPH LOOP VERIFIED COMPLETE] Oracle verified task completion after ${state.iteration} iteration(s). Excellent work!`,
|
|
98
|
+
mode: 'none'
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
// Check for oracle rejection
|
|
102
|
+
const rejection = checkOracleRejectionInTranscript(sessionId);
|
|
103
|
+
if (rejection.rejected) {
|
|
104
|
+
// Oracle rejected - continue with feedback
|
|
105
|
+
recordOracleFeedback(workingDir, false, rejection.feedback);
|
|
106
|
+
const updatedVerification = readVerificationState(workingDir);
|
|
107
|
+
if (updatedVerification) {
|
|
108
|
+
const continuationPrompt = getOracleRejectionContinuationPrompt(updatedVerification);
|
|
109
|
+
return {
|
|
110
|
+
shouldBlock: true,
|
|
111
|
+
message: continuationPrompt,
|
|
112
|
+
mode: 'ralph-loop',
|
|
113
|
+
metadata: {
|
|
114
|
+
iteration: state.iteration,
|
|
115
|
+
maxIterations: state.max_iterations
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// Verification still pending - remind to spawn oracle
|
|
122
|
+
const verificationPrompt = getOracleVerificationPrompt(verificationState);
|
|
123
|
+
return {
|
|
124
|
+
shouldBlock: true,
|
|
125
|
+
message: verificationPrompt,
|
|
126
|
+
mode: 'ralph-loop',
|
|
127
|
+
metadata: {
|
|
128
|
+
iteration: state.iteration,
|
|
129
|
+
maxIterations: state.max_iterations
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
// Check for completion promise in transcript
|
|
134
|
+
const completed = detectCompletionPromise(sessionId || '', state.completion_promise);
|
|
135
|
+
if (completed) {
|
|
136
|
+
// Completion promise detected - START oracle verification instead of completing
|
|
137
|
+
startVerification(workingDir, state.completion_promise, state.prompt);
|
|
138
|
+
const newVerificationState = readVerificationState(workingDir);
|
|
139
|
+
if (newVerificationState) {
|
|
140
|
+
const verificationPrompt = getOracleVerificationPrompt(newVerificationState);
|
|
141
|
+
return {
|
|
142
|
+
shouldBlock: true,
|
|
143
|
+
message: verificationPrompt,
|
|
144
|
+
mode: 'ralph-loop',
|
|
145
|
+
metadata: {
|
|
146
|
+
iteration: state.iteration,
|
|
147
|
+
maxIterations: state.max_iterations
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
// Fallback if verification state couldn't be created
|
|
152
|
+
clearRalphState(workingDir);
|
|
153
|
+
return {
|
|
154
|
+
shouldBlock: false,
|
|
155
|
+
message: `[RALPH LOOP COMPLETE] Task completed after ${state.iteration} iteration(s). Great work!`,
|
|
156
|
+
mode: 'none'
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
// Check max iterations
|
|
160
|
+
if (state.iteration >= state.max_iterations) {
|
|
161
|
+
clearRalphState(workingDir);
|
|
162
|
+
clearVerificationState(workingDir);
|
|
163
|
+
return {
|
|
164
|
+
shouldBlock: false,
|
|
165
|
+
message: `[RALPH LOOP STOPPED] Max iterations (${state.max_iterations}) reached without completion promise. Consider reviewing the task requirements.`,
|
|
166
|
+
mode: 'none'
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
// Increment and continue
|
|
170
|
+
const newState = incrementRalphIteration(workingDir);
|
|
171
|
+
if (!newState) {
|
|
172
|
+
return null;
|
|
173
|
+
}
|
|
174
|
+
const continuationPrompt = `<ralph-loop-continuation>
|
|
175
|
+
|
|
176
|
+
[RALPH LOOP - ITERATION ${newState.iteration}/${newState.max_iterations}]
|
|
177
|
+
|
|
178
|
+
Your previous attempt did not output the completion promise. The work is NOT done yet.
|
|
179
|
+
|
|
180
|
+
CRITICAL INSTRUCTIONS:
|
|
181
|
+
1. Review your progress and the original task
|
|
182
|
+
2. Check your todo list - are ALL items marked complete?
|
|
183
|
+
3. Continue from where you left off
|
|
184
|
+
4. When FULLY complete, output: <promise>${newState.completion_promise}</promise>
|
|
185
|
+
5. Do NOT stop until the task is truly done
|
|
186
|
+
|
|
187
|
+
${newState.prompt ? `Original task: ${newState.prompt}` : ''}
|
|
188
|
+
|
|
189
|
+
</ralph-loop-continuation>
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
`;
|
|
194
|
+
return {
|
|
195
|
+
shouldBlock: true,
|
|
196
|
+
message: continuationPrompt,
|
|
197
|
+
mode: 'ralph-loop',
|
|
198
|
+
metadata: {
|
|
199
|
+
iteration: newState.iteration,
|
|
200
|
+
maxIterations: newState.max_iterations
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Check Ultrawork state and determine if it should reinforce
|
|
206
|
+
*/
|
|
207
|
+
async function checkUltrawork(sessionId, directory, hasIncompleteTodos) {
|
|
208
|
+
const state = readUltraworkState(directory);
|
|
209
|
+
if (!state || !state.active) {
|
|
210
|
+
return null;
|
|
211
|
+
}
|
|
212
|
+
// If bound to a session, only reinforce for that session
|
|
213
|
+
if (state.session_id && sessionId && state.session_id !== sessionId) {
|
|
214
|
+
return null;
|
|
215
|
+
}
|
|
216
|
+
// If no incomplete todos, ultrawork can complete
|
|
217
|
+
if (!hasIncompleteTodos) {
|
|
218
|
+
deactivateUltrawork(directory);
|
|
219
|
+
return {
|
|
220
|
+
shouldBlock: false,
|
|
221
|
+
message: `[ULTRAWORK COMPLETE] All tasks finished. Ultrawork mode deactivated. Well done!`,
|
|
222
|
+
mode: 'none'
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
// Reinforce ultrawork mode
|
|
226
|
+
const newState = incrementReinforcement(directory);
|
|
227
|
+
if (!newState) {
|
|
228
|
+
return null;
|
|
229
|
+
}
|
|
230
|
+
const message = getUltraworkPersistenceMessage(newState);
|
|
231
|
+
return {
|
|
232
|
+
shouldBlock: true,
|
|
233
|
+
message,
|
|
234
|
+
mode: 'ultrawork',
|
|
235
|
+
metadata: {
|
|
236
|
+
reinforcementCount: newState.reinforcement_count
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Check for incomplete todos (baseline enforcement)
|
|
242
|
+
*/
|
|
243
|
+
async function checkTodoContinuation(sessionId, directory) {
|
|
244
|
+
const result = await checkIncompleteTodos(sessionId, directory);
|
|
245
|
+
if (result.count === 0) {
|
|
246
|
+
return null;
|
|
247
|
+
}
|
|
248
|
+
const nextTodo = getNextPendingTodo(result);
|
|
249
|
+
const nextTaskInfo = nextTodo
|
|
250
|
+
? `\n\nNext task: "${nextTodo.content}" (${nextTodo.status})`
|
|
251
|
+
: '';
|
|
252
|
+
const message = `<todo-continuation>
|
|
253
|
+
|
|
254
|
+
${TODO_CONTINUATION_PROMPT}
|
|
255
|
+
|
|
256
|
+
[Status: ${result.count} of ${result.total} tasks remaining]${nextTaskInfo}
|
|
257
|
+
|
|
258
|
+
</todo-continuation>
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
`;
|
|
263
|
+
return {
|
|
264
|
+
shouldBlock: true,
|
|
265
|
+
message,
|
|
266
|
+
mode: 'todo-continuation',
|
|
267
|
+
metadata: {
|
|
268
|
+
todoCount: result.count
|
|
269
|
+
}
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Main persistent mode checker
|
|
274
|
+
* Checks all persistent modes in priority order and returns appropriate action
|
|
275
|
+
*/
|
|
276
|
+
export async function checkPersistentModes(sessionId, directory) {
|
|
277
|
+
const workingDir = directory || process.cwd();
|
|
278
|
+
// First, check for incomplete todos (we need this info for ultrawork)
|
|
279
|
+
const todoResult = await checkIncompleteTodos(sessionId, workingDir);
|
|
280
|
+
const hasIncompleteTodos = todoResult.count > 0;
|
|
281
|
+
// Priority 1: Ralph Loop (explicit loop mode)
|
|
282
|
+
const ralphResult = await checkRalphLoop(sessionId, workingDir);
|
|
283
|
+
if (ralphResult?.shouldBlock) {
|
|
284
|
+
return ralphResult;
|
|
285
|
+
}
|
|
286
|
+
// Priority 2: Ultrawork Mode (performance mode with persistence)
|
|
287
|
+
const ultraworkResult = await checkUltrawork(sessionId, workingDir, hasIncompleteTodos);
|
|
288
|
+
if (ultraworkResult?.shouldBlock) {
|
|
289
|
+
return ultraworkResult;
|
|
290
|
+
}
|
|
291
|
+
// Priority 3: Todo Continuation (baseline enforcement)
|
|
292
|
+
if (hasIncompleteTodos) {
|
|
293
|
+
const todoContResult = await checkTodoContinuation(sessionId, workingDir);
|
|
294
|
+
if (todoContResult?.shouldBlock) {
|
|
295
|
+
return todoContResult;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
// No blocking needed
|
|
299
|
+
return {
|
|
300
|
+
shouldBlock: false,
|
|
301
|
+
message: '',
|
|
302
|
+
mode: 'none'
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Create hook output for Claude Code
|
|
307
|
+
*/
|
|
308
|
+
export function createHookOutput(result) {
|
|
309
|
+
if (!result.shouldBlock) {
|
|
310
|
+
// Allow stop, but optionally inject completion message
|
|
311
|
+
return {
|
|
312
|
+
continue: true,
|
|
313
|
+
message: result.message || undefined
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
// Block stop and inject continuation message
|
|
317
|
+
return {
|
|
318
|
+
continue: false,
|
|
319
|
+
reason: result.message
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/persistent-mode/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Popular Plugin Patterns
|
|
3
|
+
*
|
|
4
|
+
* Common hook patterns from the Claude Code community:
|
|
5
|
+
* - Auto-format on file save
|
|
6
|
+
* - Lint validation before commit
|
|
7
|
+
* - Commit message validation
|
|
8
|
+
* - Test runner before commit
|
|
9
|
+
* - Type checking enforcement
|
|
10
|
+
*/
|
|
11
|
+
export interface FormatConfig {
|
|
12
|
+
/** File extensions to format */
|
|
13
|
+
extensions: string[];
|
|
14
|
+
/** Formatter command (e.g., 'prettier --write', 'black') */
|
|
15
|
+
command: string;
|
|
16
|
+
/** Whether to run on file save */
|
|
17
|
+
enabled: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Get formatter command for a file extension
|
|
21
|
+
*/
|
|
22
|
+
export declare function getFormatter(ext: string): string | null;
|
|
23
|
+
/**
|
|
24
|
+
* Check if a formatter is available
|
|
25
|
+
*/
|
|
26
|
+
export declare function isFormatterAvailable(command: string): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Format a file using the appropriate formatter
|
|
29
|
+
*/
|
|
30
|
+
export declare function formatFile(filePath: string): {
|
|
31
|
+
success: boolean;
|
|
32
|
+
message: string;
|
|
33
|
+
};
|
|
34
|
+
export interface LintConfig {
|
|
35
|
+
/** Lint command to run */
|
|
36
|
+
command: string;
|
|
37
|
+
/** File patterns to lint */
|
|
38
|
+
patterns: string[];
|
|
39
|
+
/** Whether to block on lint errors */
|
|
40
|
+
blocking: boolean;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Get linter command for a file extension
|
|
44
|
+
*/
|
|
45
|
+
export declare function getLinter(ext: string): string | null;
|
|
46
|
+
/**
|
|
47
|
+
* Run linter on a file
|
|
48
|
+
*/
|
|
49
|
+
export declare function lintFile(filePath: string): {
|
|
50
|
+
success: boolean;
|
|
51
|
+
message: string;
|
|
52
|
+
};
|
|
53
|
+
export interface CommitConfig {
|
|
54
|
+
/** Conventional commit types allowed */
|
|
55
|
+
types: string[];
|
|
56
|
+
/** Maximum subject length */
|
|
57
|
+
maxSubjectLength: number;
|
|
58
|
+
/** Require scope */
|
|
59
|
+
requireScope: boolean;
|
|
60
|
+
/** Require body */
|
|
61
|
+
requireBody: boolean;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Validate a commit message against conventional commit format
|
|
65
|
+
*/
|
|
66
|
+
export declare function validateCommitMessage(message: string, config?: Partial<CommitConfig>): {
|
|
67
|
+
valid: boolean;
|
|
68
|
+
errors: string[];
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Run TypeScript type checking
|
|
72
|
+
*/
|
|
73
|
+
export declare function runTypeCheck(directory: string): {
|
|
74
|
+
success: boolean;
|
|
75
|
+
message: string;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Detect and run tests for a project
|
|
79
|
+
*/
|
|
80
|
+
export declare function runTests(directory: string): {
|
|
81
|
+
success: boolean;
|
|
82
|
+
message: string;
|
|
83
|
+
};
|
|
84
|
+
export interface PreCommitResult {
|
|
85
|
+
canCommit: boolean;
|
|
86
|
+
checks: Array<{
|
|
87
|
+
name: string;
|
|
88
|
+
passed: boolean;
|
|
89
|
+
message: string;
|
|
90
|
+
}>;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Run all pre-commit checks
|
|
94
|
+
*/
|
|
95
|
+
export declare function runPreCommitChecks(directory: string, commitMessage?: string): PreCommitResult;
|
|
96
|
+
/**
|
|
97
|
+
* Generate pre-commit check reminder message
|
|
98
|
+
*/
|
|
99
|
+
export declare function getPreCommitReminderMessage(result: PreCommitResult): string;
|
|
100
|
+
/**
|
|
101
|
+
* Generate auto-format reminder message
|
|
102
|
+
*/
|
|
103
|
+
export declare function getAutoFormatMessage(filePath: string, result: {
|
|
104
|
+
success: boolean;
|
|
105
|
+
message: string;
|
|
106
|
+
}): string;
|
|
107
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/plugin-patterns/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC;CAClB;AAgBD;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEvD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQ7D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAkBlF;AAMD,MAAM,WAAW,UAAU;IACzB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,sCAAsC;IACtC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAYD;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEpD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAqBhF;AAMD,MAAM,WAAW,YAAY;IAC3B,wCAAwC;IACxC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,6BAA6B;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,mBAAmB;IACnB,WAAW,EAAE,OAAO,CAAC;CACtB;AAkBD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAC7B;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAyCtC;AAMD;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAmBrF;AAMD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA0BjF;AAMD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,OAAO,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,MAAM,GACrB,eAAe,CAyBjB;AAMD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAqB3E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAmB5G"}
|