oh-my-claude-sisyphus 2.4.1 → 2.6.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.
Files changed (85) hide show
  1. package/README.md +56 -29
  2. package/dist/__tests__/hooks.test.js +255 -1
  3. package/dist/__tests__/hooks.test.js.map +1 -1
  4. package/dist/__tests__/installer.test.js +3 -1
  5. package/dist/__tests__/installer.test.js.map +1 -1
  6. package/dist/__tests__/notepad.test.d.ts +2 -0
  7. package/dist/__tests__/notepad.test.d.ts.map +1 -0
  8. package/dist/__tests__/notepad.test.js +374 -0
  9. package/dist/__tests__/notepad.test.js.map +1 -0
  10. package/dist/__tests__/ralph-prd.test.d.ts +2 -0
  11. package/dist/__tests__/ralph-prd.test.d.ts.map +1 -0
  12. package/dist/__tests__/ralph-prd.test.js +308 -0
  13. package/dist/__tests__/ralph-prd.test.js.map +1 -0
  14. package/dist/__tests__/ralph-progress.test.d.ts +2 -0
  15. package/dist/__tests__/ralph-progress.test.d.ts.map +1 -0
  16. package/dist/__tests__/ralph-progress.test.js +312 -0
  17. package/dist/__tests__/ralph-progress.test.js.map +1 -0
  18. package/dist/__tests__/skills.test.js +5 -3
  19. package/dist/__tests__/skills.test.js.map +1 -1
  20. package/dist/agents/definitions.d.ts +4 -0
  21. package/dist/agents/definitions.d.ts.map +1 -1
  22. package/dist/agents/definitions.js +147 -3
  23. package/dist/agents/definitions.js.map +1 -1
  24. package/dist/agents/index.d.ts +1 -0
  25. package/dist/agents/index.d.ts.map +1 -1
  26. package/dist/agents/index.js +2 -0
  27. package/dist/agents/index.js.map +1 -1
  28. package/dist/agents/prometheus.js +2 -2
  29. package/dist/agents/prometheus.js.map +1 -1
  30. package/dist/cli/index.js +6 -4
  31. package/dist/cli/index.js.map +1 -1
  32. package/dist/features/builtin-skills/skills.d.ts.map +1 -1
  33. package/dist/features/builtin-skills/skills.js +61 -0
  34. package/dist/features/builtin-skills/skills.js.map +1 -1
  35. package/dist/features/magic-keywords.js +1 -1
  36. package/dist/hooks/index.d.ts +5 -1
  37. package/dist/hooks/index.d.ts.map +1 -1
  38. package/dist/hooks/index.js +15 -1
  39. package/dist/hooks/index.js.map +1 -1
  40. package/dist/hooks/notepad/index.d.ts +114 -0
  41. package/dist/hooks/notepad/index.d.ts.map +1 -0
  42. package/dist/hooks/notepad/index.js +372 -0
  43. package/dist/hooks/notepad/index.js.map +1 -0
  44. package/dist/hooks/persistent-mode/index.d.ts +5 -0
  45. package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
  46. package/dist/hooks/persistent-mode/index.js +71 -5
  47. package/dist/hooks/persistent-mode/index.js.map +1 -1
  48. package/dist/hooks/ralph-loop/index.d.ts +48 -0
  49. package/dist/hooks/ralph-loop/index.d.ts.map +1 -1
  50. package/dist/hooks/ralph-loop/index.js +127 -0
  51. package/dist/hooks/ralph-loop/index.js.map +1 -1
  52. package/dist/hooks/ralph-prd/index.d.ts +130 -0
  53. package/dist/hooks/ralph-prd/index.d.ts.map +1 -0
  54. package/dist/hooks/ralph-prd/index.js +310 -0
  55. package/dist/hooks/ralph-prd/index.js.map +1 -0
  56. package/dist/hooks/ralph-progress/index.d.ts +102 -0
  57. package/dist/hooks/ralph-progress/index.d.ts.map +1 -0
  58. package/dist/hooks/ralph-progress/index.js +408 -0
  59. package/dist/hooks/ralph-progress/index.js.map +1 -0
  60. package/dist/hooks/sisyphus-orchestrator/index.d.ts.map +1 -1
  61. package/dist/hooks/sisyphus-orchestrator/index.js +26 -0
  62. package/dist/hooks/sisyphus-orchestrator/index.js.map +1 -1
  63. package/dist/hooks/ultraqa-loop/index.d.ts +94 -0
  64. package/dist/hooks/ultraqa-loop/index.d.ts.map +1 -0
  65. package/dist/hooks/ultraqa-loop/index.js +216 -0
  66. package/dist/hooks/ultraqa-loop/index.js.map +1 -0
  67. package/dist/installer/hooks.d.ts +28 -0
  68. package/dist/installer/hooks.d.ts.map +1 -1
  69. package/dist/installer/hooks.js +262 -2
  70. package/dist/installer/hooks.js.map +1 -1
  71. package/dist/installer/index.d.ts +1 -1
  72. package/dist/installer/index.d.ts.map +1 -1
  73. package/dist/installer/index.js +533 -23
  74. package/dist/installer/index.js.map +1 -1
  75. package/package.json +1 -1
  76. package/scripts/install.sh +119 -16
  77. package/scripts/persistent-mode.mjs +167 -6
  78. package/scripts/post-tool-verifier.mjs +62 -1
  79. package/scripts/session-start.mjs +22 -0
  80. package/scripts/test-max-attempts.ts +94 -0
  81. package/scripts/test-mutual-exclusion.ts +152 -0
  82. package/scripts/test-notepad-integration.ts +495 -0
  83. package/scripts/test-remember-tags.ts +121 -0
  84. package/scripts/test-session-injection.ts +41 -0
  85. package/scripts/uninstall.sh +1 -0
@@ -10,7 +10,9 @@
10
10
  * - Bridge returns JSON response that shell passes back to Claude Code
11
11
  */
12
12
  export { detectKeywordsWithType, extractPromptText, removeCodeBlocks, type DetectedKeyword, type KeywordType } from './keyword-detector/index.js';
13
- export { createRalphLoopHook, readRalphState, writeRalphState, clearRalphState, type RalphLoopState, type RalphLoopHook } from './ralph-loop/index.js';
13
+ export { createRalphLoopHook, readRalphState, writeRalphState, clearRalphState, hasPrd, getPrdCompletionStatus, getRalphContext, setCurrentStory, enablePrdMode, recordStoryProgress, recordPattern, shouldCompleteByPrd, type RalphLoopState, type RalphLoopHook, type PRD, type PRDStatus, type UserStory } from './ralph-loop/index.js';
14
+ export { readPrd, writePrd, findPrdPath, getPrdStatus, markStoryComplete, markStoryIncomplete, getStory, getNextStory, createPrd, createSimplePrd, initPrd, formatPrdStatus, formatStory, formatPrd, formatNextStoryPrompt, PRD_FILENAME, type UserStory as PrdUserStory } from './ralph-prd/index.js';
15
+ export { readProgress, readProgressRaw, parseProgress, initProgress, appendProgress, addPattern, getPatterns, getRecentLearnings, formatPatternsForContext, formatProgressForContext, formatLearningsForContext, getProgressContext, PROGRESS_FILENAME, type ProgressEntry, type CodebasePattern, type ProgressLog } from './ralph-progress/index.js';
14
16
  export { createTodoContinuationHook, checkIncompleteTodos, type TodoContinuationHook } from './todo-continuation/index.js';
15
17
  export { processHook, type HookInput, type HookOutput } from './bridge.js';
16
18
  export { createEditErrorRecoveryHook, detectEditError, injectEditErrorRecovery, processEditOutput, EDIT_ERROR_PATTERNS, EDIT_ERROR_REMINDER, type ToolExecuteInput, type ToolExecuteOutput } from './edit-error-recovery/index.js';
@@ -32,4 +34,6 @@ export { activateUltrawork, deactivateUltrawork, readUltraworkState, writeUltraw
32
34
  export { checkPersistentModes, createHookOutput, type PersistentModeResult } from './persistent-mode/index.js';
33
35
  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
36
  export { readVerificationState, writeVerificationState, clearVerificationState, startVerification, recordOracleFeedback, getOracleVerificationPrompt, getOracleRejectionContinuationPrompt, detectOracleApproval, detectOracleRejection, type VerificationState } from './ralph-verifier/index.js';
37
+ export { readUltraQAState, writeUltraQAState, clearUltraQAState, startUltraQA, recordFailure, completeUltraQA, stopUltraQA, cancelUltraQA, getGoalCommand, formatProgressMessage, type UltraQAState, type UltraQAGoalType, type UltraQAOptions, type UltraQAResult } from './ultraqa-loop/index.js';
38
+ export { initNotepad, readNotepad, getPriorityContext, getWorkingMemory, getManualSection, setPriorityContext, addWorkingMemoryEntry, addManualEntry, pruneOldEntries, getNotepadStats, formatNotepadContext, formatFullNotepad, getNotepadPath, DEFAULT_CONFIG as NOTEPAD_DEFAULT_CONFIG, NOTEPAD_FILENAME, PRIORITY_HEADER, WORKING_MEMORY_HEADER, MANUAL_HEADER, type NotepadConfig, type NotepadStats, type PriorityContextResult, type PruneResult } from './notepad/index.js';
35
39
  //# 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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"}
@@ -14,7 +14,15 @@ export {
14
14
  detectKeywordsWithType, extractPromptText, removeCodeBlocks } from './keyword-detector/index.js';
15
15
  export {
16
16
  // Ralph Loop (persistence)
17
- createRalphLoopHook, readRalphState, writeRalphState, clearRalphState } from './ralph-loop/index.js';
17
+ createRalphLoopHook, readRalphState, writeRalphState, clearRalphState,
18
+ // PRD Integration
19
+ hasPrd, getPrdCompletionStatus, getRalphContext, setCurrentStory, enablePrdMode, recordStoryProgress, recordPattern, shouldCompleteByPrd } from './ralph-loop/index.js';
20
+ export {
21
+ // Ralph PRD (Structured Task Tracking)
22
+ readPrd, writePrd, findPrdPath, getPrdStatus, markStoryComplete, markStoryIncomplete, getStory, getNextStory, createPrd, createSimplePrd, initPrd, formatPrdStatus, formatStory, formatPrd, formatNextStoryPrompt, PRD_FILENAME } from './ralph-prd/index.js';
23
+ export {
24
+ // Ralph Progress (Memory Persistence)
25
+ readProgress, readProgressRaw, parseProgress, initProgress, appendProgress, addPattern, getPatterns, getRecentLearnings, formatPatternsForContext, formatProgressForContext, formatLearningsForContext, getProgressContext, PROGRESS_FILENAME } from './ralph-progress/index.js';
18
26
  export {
19
27
  // Todo Continuation
20
28
  createTodoContinuationHook, checkIncompleteTodos } from './todo-continuation/index.js';
@@ -78,4 +86,10 @@ getFormatter, isFormatterAvailable, formatFile, getLinter, lintFile, validateCom
78
86
  export {
79
87
  // Ralph Verifier (Oracle-verified completion)
80
88
  readVerificationState, writeVerificationState, clearVerificationState, startVerification, recordOracleFeedback, getOracleVerificationPrompt, getOracleRejectionContinuationPrompt, detectOracleApproval, detectOracleRejection } from './ralph-verifier/index.js';
89
+ export {
90
+ // UltraQA Loop (QA cycling workflow)
91
+ readUltraQAState, writeUltraQAState, clearUltraQAState, startUltraQA, recordFailure, completeUltraQA, stopUltraQA, cancelUltraQA, getGoalCommand, formatProgressMessage } from './ultraqa-loop/index.js';
92
+ export {
93
+ // Notepad (Compaction-Resilient Memory)
94
+ initNotepad, readNotepad, getPriorityContext, getWorkingMemory, getManualSection, setPriorityContext, addWorkingMemoryEntry, addManualEntry, pruneOldEntries, getNotepadStats, formatNotepadContext, formatFullNotepad, getNotepadPath, DEFAULT_CONFIG as NOTEPAD_DEFAULT_CONFIG, NOTEPAD_FILENAME, PRIORITY_HEADER, WORKING_MEMORY_HEADER, MANUAL_HEADER } from './notepad/index.js';
81
95
  //# sourceMappingURL=index.js.map
@@ -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,114 @@
1
+ /**
2
+ * Notepad Support
3
+ *
4
+ * Implements compaction-resilient memory persistence using notepad.md format.
5
+ * Provides a three-tier memory system:
6
+ * 1. Priority Context - Always loaded, critical discoveries (max 500 chars)
7
+ * 2. Working Memory - Session notes, auto-pruned after 7 days
8
+ * 3. MANUAL - User content, never auto-pruned
9
+ *
10
+ * Structure:
11
+ * ```markdown
12
+ * # Notepad
13
+ * <!-- Auto-managed by Sisyphus. Manual edits preserved in MANUAL section. -->
14
+ *
15
+ * ## Priority Context
16
+ * <!-- ALWAYS loaded. Keep under 500 chars. Critical discoveries only. -->
17
+ *
18
+ * ## Working Memory
19
+ * <!-- Session notes. Auto-pruned after 7 days. -->
20
+ *
21
+ * ## MANUAL
22
+ * <!-- User content. Never auto-pruned. -->
23
+ * ```
24
+ */
25
+ export interface NotepadConfig {
26
+ /** Maximum characters for Priority Context section */
27
+ priorityMaxChars: number;
28
+ /** Days to keep Working Memory entries before pruning */
29
+ workingMemoryDays: number;
30
+ /** Maximum total file size in bytes */
31
+ maxTotalSize: number;
32
+ }
33
+ export interface NotepadStats {
34
+ /** Whether notepad.md exists */
35
+ exists: boolean;
36
+ /** Total file size in bytes */
37
+ totalSize: number;
38
+ /** Priority Context section size in bytes */
39
+ prioritySize: number;
40
+ /** Number of Working Memory entries */
41
+ workingMemoryEntries: number;
42
+ /** ISO timestamp of oldest Working Memory entry */
43
+ oldestEntry: string | null;
44
+ }
45
+ export interface PriorityContextResult {
46
+ /** Whether the operation succeeded */
47
+ success: boolean;
48
+ /** Warning message if content exceeds limit */
49
+ warning?: string;
50
+ }
51
+ export interface PruneResult {
52
+ /** Number of entries pruned */
53
+ pruned: number;
54
+ /** Number of entries remaining */
55
+ remaining: number;
56
+ }
57
+ export declare const NOTEPAD_FILENAME = "notepad.md";
58
+ export declare const DEFAULT_CONFIG: NotepadConfig;
59
+ export declare const PRIORITY_HEADER = "## Priority Context";
60
+ export declare const WORKING_MEMORY_HEADER = "## Working Memory";
61
+ export declare const MANUAL_HEADER = "## MANUAL";
62
+ /**
63
+ * Get the path to notepad.md in .sisyphus subdirectory
64
+ */
65
+ export declare function getNotepadPath(directory: string): string;
66
+ /**
67
+ * Initialize notepad.md if it doesn't exist
68
+ */
69
+ export declare function initNotepad(directory: string): boolean;
70
+ /**
71
+ * Read entire notepad content
72
+ */
73
+ export declare function readNotepad(directory: string): string | null;
74
+ /**
75
+ * Get Priority Context section only (for injection)
76
+ */
77
+ export declare function getPriorityContext(directory: string): string | null;
78
+ /**
79
+ * Get Working Memory section
80
+ */
81
+ export declare function getWorkingMemory(directory: string): string | null;
82
+ /**
83
+ * Get MANUAL section
84
+ */
85
+ export declare function getManualSection(directory: string): string | null;
86
+ /**
87
+ * Add/update Priority Context (replaces content, warns if over limit)
88
+ */
89
+ export declare function setPriorityContext(directory: string, content: string, config?: NotepadConfig): PriorityContextResult;
90
+ /**
91
+ * Add entry to Working Memory with timestamp
92
+ */
93
+ export declare function addWorkingMemoryEntry(directory: string, content: string): boolean;
94
+ /**
95
+ * Add to MANUAL section
96
+ */
97
+ export declare function addManualEntry(directory: string, content: string): boolean;
98
+ /**
99
+ * Prune Working Memory entries older than N days
100
+ */
101
+ export declare function pruneOldEntries(directory: string, daysOld?: number): PruneResult;
102
+ /**
103
+ * Get notepad stats
104
+ */
105
+ export declare function getNotepadStats(directory: string): NotepadStats;
106
+ /**
107
+ * Format context for injection into session
108
+ */
109
+ export declare function formatNotepadContext(directory: string): string | null;
110
+ /**
111
+ * Format full notepad for display
112
+ */
113
+ export declare function formatFullNotepad(directory: string): string | null;
114
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/notepad/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AASH,MAAM,WAAW,aAAa;IAC5B,sDAAsD;IACtD,gBAAgB,EAAE,MAAM,CAAC;IACzB,yDAAyD;IACzD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mDAAmD;IACnD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAE7C,eAAO,MAAM,cAAc,EAAE,aAI5B,CAAC;AAEF,eAAO,MAAM,eAAe,wBAAwB,CAAC;AACrD,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AACzD,eAAO,MAAM,aAAa,cAAc,CAAC;AAMzC;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAmCtD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAW5D;AAsCD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOnE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOjE;AAMD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,aAA8B,GACrC,qBAAqB,CAyBvB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CA+BjF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CA6B1E;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,MAAyC,GACjD,WAAW,CAkDb;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAqC/D;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAwBrE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOlE"}
@@ -0,0 +1,372 @@
1
+ /**
2
+ * Notepad Support
3
+ *
4
+ * Implements compaction-resilient memory persistence using notepad.md format.
5
+ * Provides a three-tier memory system:
6
+ * 1. Priority Context - Always loaded, critical discoveries (max 500 chars)
7
+ * 2. Working Memory - Session notes, auto-pruned after 7 days
8
+ * 3. MANUAL - User content, never auto-pruned
9
+ *
10
+ * Structure:
11
+ * ```markdown
12
+ * # Notepad
13
+ * <!-- Auto-managed by Sisyphus. Manual edits preserved in MANUAL section. -->
14
+ *
15
+ * ## Priority Context
16
+ * <!-- ALWAYS loaded. Keep under 500 chars. Critical discoveries only. -->
17
+ *
18
+ * ## Working Memory
19
+ * <!-- Session notes. Auto-pruned after 7 days. -->
20
+ *
21
+ * ## MANUAL
22
+ * <!-- User content. Never auto-pruned. -->
23
+ * ```
24
+ */
25
+ import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
26
+ import { join } from 'path';
27
+ // ============================================================================
28
+ // Constants
29
+ // ============================================================================
30
+ export const NOTEPAD_FILENAME = 'notepad.md';
31
+ export const DEFAULT_CONFIG = {
32
+ priorityMaxChars: 500,
33
+ workingMemoryDays: 7,
34
+ maxTotalSize: 8192 // 8KB
35
+ };
36
+ export const PRIORITY_HEADER = '## Priority Context';
37
+ export const WORKING_MEMORY_HEADER = '## Working Memory';
38
+ export const MANUAL_HEADER = '## MANUAL';
39
+ // ============================================================================
40
+ // File Operations
41
+ // ============================================================================
42
+ /**
43
+ * Get the path to notepad.md in .sisyphus subdirectory
44
+ */
45
+ export function getNotepadPath(directory) {
46
+ return join(directory, '.sisyphus', NOTEPAD_FILENAME);
47
+ }
48
+ /**
49
+ * Initialize notepad.md if it doesn't exist
50
+ */
51
+ export function initNotepad(directory) {
52
+ const sisyphusDir = join(directory, '.sisyphus');
53
+ if (!existsSync(sisyphusDir)) {
54
+ try {
55
+ mkdirSync(sisyphusDir, { recursive: true });
56
+ }
57
+ catch {
58
+ return false;
59
+ }
60
+ }
61
+ const notepadPath = getNotepadPath(directory);
62
+ if (existsSync(notepadPath)) {
63
+ return true; // Already exists
64
+ }
65
+ const content = `# Notepad
66
+ <!-- Auto-managed by Sisyphus. Manual edits preserved in MANUAL section. -->
67
+
68
+ ${PRIORITY_HEADER}
69
+ <!-- ALWAYS loaded. Keep under 500 chars. Critical discoveries only. -->
70
+
71
+ ${WORKING_MEMORY_HEADER}
72
+ <!-- Session notes. Auto-pruned after 7 days. -->
73
+
74
+ ${MANUAL_HEADER}
75
+ <!-- User content. Never auto-pruned. -->
76
+
77
+ `;
78
+ try {
79
+ writeFileSync(notepadPath, content);
80
+ return true;
81
+ }
82
+ catch {
83
+ return false;
84
+ }
85
+ }
86
+ /**
87
+ * Read entire notepad content
88
+ */
89
+ export function readNotepad(directory) {
90
+ const notepadPath = getNotepadPath(directory);
91
+ if (!existsSync(notepadPath)) {
92
+ return null;
93
+ }
94
+ try {
95
+ return readFileSync(notepadPath, 'utf-8');
96
+ }
97
+ catch {
98
+ return null;
99
+ }
100
+ }
101
+ /**
102
+ * Extract a section from notepad content using regex
103
+ */
104
+ function extractSection(content, header) {
105
+ // Match from header to next section (## followed by space, at start of line)
106
+ // We need to match ## at the start of a line, not ### which is a subsection
107
+ const regex = new RegExp(`${header}\\n([\\s\\S]*?)(?=\\n## [^#]|$)`);
108
+ const match = content.match(regex);
109
+ if (!match) {
110
+ return null;
111
+ }
112
+ // Clean up the content - remove HTML comments and trim
113
+ let section = match[1];
114
+ section = section.replace(/<!--[\s\S]*?-->/g, '').trim();
115
+ return section || null;
116
+ }
117
+ /**
118
+ * Replace a section in notepad content
119
+ */
120
+ function replaceSection(content, header, newContent) {
121
+ const regex = new RegExp(`(${header}\\n)([\\s\\S]*?)(?=## |$)`);
122
+ // Preserve comment if it exists
123
+ const commentMatch = content.match(new RegExp(`${header}\\n(<!--[\\s\\S]*?-->)`));
124
+ const comment = commentMatch ? commentMatch[1] + '\n' : '';
125
+ return content.replace(regex, `$1${comment}${newContent}\n\n`);
126
+ }
127
+ // ============================================================================
128
+ // Section Access
129
+ // ============================================================================
130
+ /**
131
+ * Get Priority Context section only (for injection)
132
+ */
133
+ export function getPriorityContext(directory) {
134
+ const content = readNotepad(directory);
135
+ if (!content) {
136
+ return null;
137
+ }
138
+ return extractSection(content, PRIORITY_HEADER);
139
+ }
140
+ /**
141
+ * Get Working Memory section
142
+ */
143
+ export function getWorkingMemory(directory) {
144
+ const content = readNotepad(directory);
145
+ if (!content) {
146
+ return null;
147
+ }
148
+ return extractSection(content, WORKING_MEMORY_HEADER);
149
+ }
150
+ /**
151
+ * Get MANUAL section
152
+ */
153
+ export function getManualSection(directory) {
154
+ const content = readNotepad(directory);
155
+ if (!content) {
156
+ return null;
157
+ }
158
+ return extractSection(content, MANUAL_HEADER);
159
+ }
160
+ // ============================================================================
161
+ // Section Updates
162
+ // ============================================================================
163
+ /**
164
+ * Add/update Priority Context (replaces content, warns if over limit)
165
+ */
166
+ export function setPriorityContext(directory, content, config = DEFAULT_CONFIG) {
167
+ // Initialize if needed
168
+ if (!existsSync(getNotepadPath(directory))) {
169
+ if (!initNotepad(directory)) {
170
+ return { success: false };
171
+ }
172
+ }
173
+ const notepadPath = getNotepadPath(directory);
174
+ let notepadContent = readFileSync(notepadPath, 'utf-8');
175
+ // Check size
176
+ const warning = content.length > config.priorityMaxChars
177
+ ? `Priority Context exceeds ${config.priorityMaxChars} chars (${content.length} chars). Consider condensing.`
178
+ : undefined;
179
+ // Replace the section
180
+ notepadContent = replaceSection(notepadContent, PRIORITY_HEADER, content);
181
+ try {
182
+ writeFileSync(notepadPath, notepadContent);
183
+ return { success: true, warning };
184
+ }
185
+ catch {
186
+ return { success: false };
187
+ }
188
+ }
189
+ /**
190
+ * Add entry to Working Memory with timestamp
191
+ */
192
+ export function addWorkingMemoryEntry(directory, content) {
193
+ // Initialize if needed
194
+ if (!existsSync(getNotepadPath(directory))) {
195
+ if (!initNotepad(directory)) {
196
+ return false;
197
+ }
198
+ }
199
+ const notepadPath = getNotepadPath(directory);
200
+ let notepadContent = readFileSync(notepadPath, 'utf-8');
201
+ // Get current Working Memory content
202
+ const currentMemory = extractSection(notepadContent, WORKING_MEMORY_HEADER) || '';
203
+ // Format timestamp
204
+ const now = new Date();
205
+ const timestamp = now.toISOString().slice(0, 16).replace('T', ' '); // YYYY-MM-DD HH:MM
206
+ // Add new entry
207
+ const newEntry = `### ${timestamp}\n${content}\n`;
208
+ const updatedMemory = currentMemory ? currentMemory + '\n' + newEntry : newEntry;
209
+ // Replace the section
210
+ notepadContent = replaceSection(notepadContent, WORKING_MEMORY_HEADER, updatedMemory);
211
+ try {
212
+ writeFileSync(notepadPath, notepadContent);
213
+ return true;
214
+ }
215
+ catch {
216
+ return false;
217
+ }
218
+ }
219
+ /**
220
+ * Add to MANUAL section
221
+ */
222
+ export function addManualEntry(directory, content) {
223
+ // Initialize if needed
224
+ if (!existsSync(getNotepadPath(directory))) {
225
+ if (!initNotepad(directory)) {
226
+ return false;
227
+ }
228
+ }
229
+ const notepadPath = getNotepadPath(directory);
230
+ let notepadContent = readFileSync(notepadPath, 'utf-8');
231
+ // Get current MANUAL content
232
+ const currentManual = extractSection(notepadContent, MANUAL_HEADER) || '';
233
+ // Add new entry with timestamp
234
+ const now = new Date();
235
+ const timestamp = now.toISOString().slice(0, 16).replace('T', ' '); // YYYY-MM-DD HH:MM
236
+ const newEntry = `### ${timestamp}\n${content}\n`;
237
+ const updatedManual = currentManual ? currentManual + '\n' + newEntry : newEntry;
238
+ // Replace the section
239
+ notepadContent = replaceSection(notepadContent, MANUAL_HEADER, updatedManual);
240
+ try {
241
+ writeFileSync(notepadPath, notepadContent);
242
+ return true;
243
+ }
244
+ catch {
245
+ return false;
246
+ }
247
+ }
248
+ // ============================================================================
249
+ // Pruning
250
+ // ============================================================================
251
+ /**
252
+ * Prune Working Memory entries older than N days
253
+ */
254
+ export function pruneOldEntries(directory, daysOld = DEFAULT_CONFIG.workingMemoryDays) {
255
+ const notepadPath = getNotepadPath(directory);
256
+ if (!existsSync(notepadPath)) {
257
+ return { pruned: 0, remaining: 0 };
258
+ }
259
+ let notepadContent = readFileSync(notepadPath, 'utf-8');
260
+ const workingMemory = extractSection(notepadContent, WORKING_MEMORY_HEADER);
261
+ if (!workingMemory) {
262
+ return { pruned: 0, remaining: 0 };
263
+ }
264
+ // Parse entries
265
+ const entryRegex = /### (\d{4}-\d{2}-\d{2} \d{2}:\d{2})\n([\s\S]*?)(?=### |$)/g;
266
+ const entries = [];
267
+ let match;
268
+ while ((match = entryRegex.exec(workingMemory)) !== null) {
269
+ entries.push({
270
+ timestamp: match[1],
271
+ content: match[2].trim()
272
+ });
273
+ }
274
+ // Calculate cutoff date
275
+ const cutoff = new Date();
276
+ cutoff.setDate(cutoff.getDate() - daysOld);
277
+ // Filter entries
278
+ const kept = entries.filter(entry => {
279
+ const entryDate = new Date(entry.timestamp);
280
+ return entryDate >= cutoff;
281
+ });
282
+ const pruned = entries.length - kept.length;
283
+ // Rebuild Working Memory section
284
+ const newContent = kept
285
+ .map(entry => `### ${entry.timestamp}\n${entry.content}`)
286
+ .join('\n\n');
287
+ notepadContent = replaceSection(notepadContent, WORKING_MEMORY_HEADER, newContent);
288
+ try {
289
+ writeFileSync(notepadPath, notepadContent);
290
+ return { pruned, remaining: kept.length };
291
+ }
292
+ catch {
293
+ return { pruned: 0, remaining: entries.length };
294
+ }
295
+ }
296
+ // ============================================================================
297
+ // Stats and Info
298
+ // ============================================================================
299
+ /**
300
+ * Get notepad stats
301
+ */
302
+ export function getNotepadStats(directory) {
303
+ const notepadPath = getNotepadPath(directory);
304
+ if (!existsSync(notepadPath)) {
305
+ return {
306
+ exists: false,
307
+ totalSize: 0,
308
+ prioritySize: 0,
309
+ workingMemoryEntries: 0,
310
+ oldestEntry: null
311
+ };
312
+ }
313
+ const content = readFileSync(notepadPath, 'utf-8');
314
+ const priorityContext = extractSection(content, PRIORITY_HEADER) || '';
315
+ const workingMemory = extractSection(content, WORKING_MEMORY_HEADER) || '';
316
+ // Count entries
317
+ const entryMatches = workingMemory.match(/### \d{4}-\d{2}-\d{2} \d{2}:\d{2}/g);
318
+ const entryCount = entryMatches ? entryMatches.length : 0;
319
+ // Find oldest entry
320
+ let oldestEntry = null;
321
+ if (entryMatches && entryMatches.length > 0) {
322
+ // Extract just the timestamp part
323
+ const timestamps = entryMatches.map(m => m.replace('### ', ''));
324
+ timestamps.sort();
325
+ oldestEntry = timestamps[0];
326
+ }
327
+ return {
328
+ exists: true,
329
+ totalSize: Buffer.byteLength(content, 'utf-8'),
330
+ prioritySize: Buffer.byteLength(priorityContext, 'utf-8'),
331
+ workingMemoryEntries: entryCount,
332
+ oldestEntry
333
+ };
334
+ }
335
+ // ============================================================================
336
+ // Context Formatting
337
+ // ============================================================================
338
+ /**
339
+ * Format context for injection into session
340
+ */
341
+ export function formatNotepadContext(directory) {
342
+ const notepadPath = getNotepadPath(directory);
343
+ if (!existsSync(notepadPath)) {
344
+ return null;
345
+ }
346
+ const priorityContext = getPriorityContext(directory);
347
+ if (!priorityContext) {
348
+ return null;
349
+ }
350
+ const lines = [
351
+ '<notepad-priority>',
352
+ '',
353
+ '## Priority Context',
354
+ '',
355
+ priorityContext,
356
+ '',
357
+ '</notepad-priority>',
358
+ ''
359
+ ];
360
+ return lines.join('\n');
361
+ }
362
+ /**
363
+ * Format full notepad for display
364
+ */
365
+ export function formatFullNotepad(directory) {
366
+ const content = readNotepad(directory);
367
+ if (!content) {
368
+ return null;
369
+ }
370
+ return content;
371
+ }
372
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/notepad/index.ts"],"names":[],"mappings":"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"}
@@ -22,8 +22,13 @@ export interface PersistentModeResult {
22
22
  iteration?: number;
23
23
  maxIterations?: number;
24
24
  reinforcementCount?: number;
25
+ todoContinuationAttempts?: number;
25
26
  };
26
27
  }
28
+ /**
29
+ * Reset todo-continuation attempt counter (call when todos actually change)
30
+ */
31
+ export declare function resetTodoContinuationAttempts(sessionId: string): void;
27
32
  /**
28
33
  * Main persistent mode checker
29
34
  * Checks all persistent modes in priority order and returns appropriate action
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/persistent-mode/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA8BH,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"}
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;QAC5B,wBAAwB,CAAC,EAAE,MAAM,CAAC;KACnC,CAAC;CACH;AAkBD;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAErE;AA0VD;;;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"}