olympus-ai 3.2.2 → 3.3.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 (158) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/dist/__tests__/ascent-checkpoint.test.d.ts +2 -0
  3. package/dist/__tests__/ascent-checkpoint.test.d.ts.map +1 -0
  4. package/dist/__tests__/ascent-checkpoint.test.js +261 -0
  5. package/dist/__tests__/ascent-checkpoint.test.js.map +1 -0
  6. package/dist/__tests__/config-ascent.test.d.ts +2 -0
  7. package/dist/__tests__/config-ascent.test.d.ts.map +1 -0
  8. package/dist/__tests__/config-ascent.test.js +134 -0
  9. package/dist/__tests__/config-ascent.test.js.map +1 -0
  10. package/dist/__tests__/hook-blocking.test.d.ts +8 -0
  11. package/dist/__tests__/hook-blocking.test.d.ts.map +1 -0
  12. package/dist/__tests__/hook-blocking.test.js +277 -0
  13. package/dist/__tests__/hook-blocking.test.js.map +1 -0
  14. package/dist/__tests__/installer.test.js +1 -1
  15. package/dist/__tests__/metrics-cli.test.d.ts +5 -0
  16. package/dist/__tests__/metrics-cli.test.d.ts.map +1 -0
  17. package/dist/__tests__/metrics-cli.test.js +24 -0
  18. package/dist/__tests__/metrics-cli.test.js.map +1 -0
  19. package/dist/__tests__/skill-auto-detection.test.d.ts +2 -0
  20. package/dist/__tests__/skill-auto-detection.test.d.ts.map +1 -0
  21. package/dist/__tests__/skill-auto-detection.test.js +255 -0
  22. package/dist/__tests__/skill-auto-detection.test.js.map +1 -0
  23. package/dist/__tests__/token-estimator.test.d.ts +5 -0
  24. package/dist/__tests__/token-estimator.test.d.ts.map +1 -0
  25. package/dist/__tests__/token-estimator.test.js +192 -0
  26. package/dist/__tests__/token-estimator.test.js.map +1 -0
  27. package/dist/agents/definitions.d.ts.map +1 -1
  28. package/dist/agents/definitions.js +83 -1
  29. package/dist/agents/definitions.js.map +1 -1
  30. package/dist/agents/document-writer.d.ts.map +1 -1
  31. package/dist/agents/document-writer.js +38 -0
  32. package/dist/agents/document-writer.js.map +1 -1
  33. package/dist/agents/frontend-engineer.d.ts.map +1 -1
  34. package/dist/agents/frontend-engineer.js +16 -0
  35. package/dist/agents/frontend-engineer.js.map +1 -1
  36. package/dist/agents/olympian.d.ts.map +1 -1
  37. package/dist/agents/olympian.js +15 -0
  38. package/dist/agents/olympian.js.map +1 -1
  39. package/dist/cli/commands/metrics.d.ts +31 -0
  40. package/dist/cli/commands/metrics.d.ts.map +1 -0
  41. package/dist/cli/commands/metrics.js +266 -0
  42. package/dist/cli/commands/metrics.js.map +1 -0
  43. package/dist/cli/index.js +39 -0
  44. package/dist/cli/index.js.map +1 -1
  45. package/dist/config/loader.d.ts.map +1 -1
  46. package/dist/config/loader.js +16 -0
  47. package/dist/config/loader.js.map +1 -1
  48. package/dist/features/ascent-checkpoint/index.d.ts +48 -0
  49. package/dist/features/ascent-checkpoint/index.d.ts.map +1 -0
  50. package/dist/features/ascent-checkpoint/index.js +144 -0
  51. package/dist/features/ascent-checkpoint/index.js.map +1 -0
  52. package/dist/features/hook-logging/index.d.ts +37 -0
  53. package/dist/features/hook-logging/index.d.ts.map +1 -0
  54. package/dist/features/hook-logging/index.js +120 -0
  55. package/dist/features/hook-logging/index.js.map +1 -0
  56. package/dist/features/hook-logging/index.test.d.ts +5 -0
  57. package/dist/features/hook-logging/index.test.d.ts.map +1 -0
  58. package/dist/features/hook-logging/index.test.js +268 -0
  59. package/dist/features/hook-logging/index.test.js.map +1 -0
  60. package/dist/features/index.d.ts +3 -0
  61. package/dist/features/index.d.ts.map +1 -1
  62. package/dist/features/index.js +8 -0
  63. package/dist/features/index.js.map +1 -1
  64. package/dist/features/magic-keywords.d.ts +51 -0
  65. package/dist/features/magic-keywords.d.ts.map +1 -1
  66. package/dist/features/magic-keywords.js +172 -0
  67. package/dist/features/magic-keywords.js.map +1 -1
  68. package/dist/features/session-state/index.d.ts +50 -0
  69. package/dist/features/session-state/index.d.ts.map +1 -0
  70. package/dist/features/session-state/index.js +64 -0
  71. package/dist/features/session-state/index.js.map +1 -0
  72. package/dist/features/session-state/index.test.d.ts +5 -0
  73. package/dist/features/session-state/index.test.d.ts.map +1 -0
  74. package/dist/features/session-state/index.test.js +221 -0
  75. package/dist/features/session-state/index.test.js.map +1 -0
  76. package/dist/features/token-metrics/index.d.ts +6 -0
  77. package/dist/features/token-metrics/index.d.ts.map +1 -0
  78. package/dist/features/token-metrics/index.js +5 -0
  79. package/dist/features/token-metrics/index.js.map +1 -0
  80. package/dist/features/token-metrics/storage.d.ts +16 -0
  81. package/dist/features/token-metrics/storage.d.ts.map +1 -0
  82. package/dist/features/token-metrics/storage.js +144 -0
  83. package/dist/features/token-metrics/storage.js.map +1 -0
  84. package/dist/features/token-metrics/token-estimator.d.ts +66 -0
  85. package/dist/features/token-metrics/token-estimator.d.ts.map +1 -0
  86. package/dist/features/token-metrics/token-estimator.js +230 -0
  87. package/dist/features/token-metrics/token-estimator.js.map +1 -0
  88. package/dist/features/token-metrics/types.d.ts +63 -0
  89. package/dist/features/token-metrics/types.d.ts.map +1 -0
  90. package/dist/features/token-metrics/types.js +5 -0
  91. package/dist/features/token-metrics/types.js.map +1 -0
  92. package/dist/hooks/olympus-orchestrator/constants.d.ts +2 -0
  93. package/dist/hooks/olympus-orchestrator/constants.d.ts.map +1 -1
  94. package/dist/hooks/olympus-orchestrator/constants.js +41 -0
  95. package/dist/hooks/olympus-orchestrator/constants.js.map +1 -1
  96. package/dist/hooks/olympus-orchestrator/index.d.ts +10 -1
  97. package/dist/hooks/olympus-orchestrator/index.d.ts.map +1 -1
  98. package/dist/hooks/olympus-orchestrator/index.js +108 -14
  99. package/dist/hooks/olympus-orchestrator/index.js.map +1 -1
  100. package/dist/hooks/registrations/index.d.ts +2 -1
  101. package/dist/hooks/registrations/index.d.ts.map +1 -1
  102. package/dist/hooks/registrations/index.js +3 -1
  103. package/dist/hooks/registrations/index.js.map +1 -1
  104. package/dist/hooks/registrations/token-metrics.d.ts +11 -0
  105. package/dist/hooks/registrations/token-metrics.d.ts.map +1 -0
  106. package/dist/hooks/registrations/token-metrics.js +119 -0
  107. package/dist/hooks/registrations/token-metrics.js.map +1 -0
  108. package/dist/installer/index.d.ts +1 -1
  109. package/dist/installer/index.d.ts.map +1 -1
  110. package/dist/installer/index.js +334 -9
  111. package/dist/installer/index.js.map +1 -1
  112. package/dist/shared/types.d.ts +16 -0
  113. package/dist/shared/types.d.ts.map +1 -1
  114. package/package.json +3 -3
  115. package/scripts/.olympus/token-metrics.jsonl +1 -0
  116. package/scripts/dist/hooks/olympus-hooks.cjs +127 -128
  117. package/scripts/esbuild.hooks.mjs +1 -1
  118. package/.claude/.olympus-version.json +0 -6
  119. package/.claude/CLAUDE.md +0 -339
  120. package/.claude/agents/document-writer.md +0 -152
  121. package/.claude/agents/explore-medium.md +0 -25
  122. package/.claude/agents/explore.md +0 -86
  123. package/.claude/agents/frontend-engineer-high.md +0 -17
  124. package/.claude/agents/frontend-engineer-low.md +0 -17
  125. package/.claude/agents/frontend-engineer.md +0 -80
  126. package/.claude/agents/librarian-low.md +0 -22
  127. package/.claude/agents/librarian.md +0 -70
  128. package/.claude/agents/metis.md +0 -85
  129. package/.claude/agents/momus.md +0 -97
  130. package/.claude/agents/multimodal-looker.md +0 -39
  131. package/.claude/agents/olympian-high.md +0 -32
  132. package/.claude/agents/olympian-low.md +0 -22
  133. package/.claude/agents/olympian.md +0 -78
  134. package/.claude/agents/oracle-low.md +0 -23
  135. package/.claude/agents/oracle-medium.md +0 -28
  136. package/.claude/agents/oracle.md +0 -77
  137. package/.claude/agents/prometheus.md +0 -125
  138. package/.claude/agents/qa-tester.md +0 -220
  139. package/.claude/commands/analyze/skill.md +0 -14
  140. package/.claude/commands/ascent/skill.md +0 -152
  141. package/.claude/commands/cancel-ascent.md +0 -9
  142. package/.claude/commands/complete-plan.md +0 -101
  143. package/.claude/commands/deepsearch/skill.md +0 -15
  144. package/.claude/commands/olympus/skill.md +0 -82
  145. package/.claude/commands/olympus-default.md +0 -26
  146. package/.claude/commands/plan.md +0 -71
  147. package/.claude/commands/prometheus/skill.md +0 -38
  148. package/.claude/commands/review/skill.md +0 -34
  149. package/.claude/commands/ultrawork/skill.md +0 -90
  150. package/.claude/commands/update.md +0 -38
  151. package/scripts/generate-logo-hybrid-v2.mjs +0 -213
  152. package/scripts/generate-logo-hybrid.mjs +0 -209
  153. package/scripts/generate-logo-infinity.mjs +0 -239
  154. package/scripts/generate-logo-mythology.mjs +0 -190
  155. package/scripts/generate-logo-orchestration.mjs +0 -228
  156. package/scripts/generate-logo-recraft.mjs +0 -147
  157. package/scripts/generate-logo-simple.mjs +0 -154
  158. package/scripts/generate-logo.mjs +0 -117
@@ -0,0 +1,230 @@
1
+ /**
2
+ * Token estimation utilities for Olympus metrics
3
+ *
4
+ * Uses gpt-tokenizer for accurate token counting with fallback to character-based estimation.
5
+ * Token counts are approximations for tracking trends, not exact billing calculations.
6
+ */
7
+ let encode = null;
8
+ let tokenizerInitialized = false;
9
+ /**
10
+ * Initialize the GPT tokenizer (lazy-loaded)
11
+ */
12
+ async function initTokenizer() {
13
+ if (tokenizerInitialized)
14
+ return;
15
+ try {
16
+ // Dynamic import for gpt-tokenizer
17
+ const { encode: gptEncode } = await import('gpt-tokenizer');
18
+ encode = gptEncode;
19
+ tokenizerInitialized = true;
20
+ }
21
+ catch (error) {
22
+ // Tokenizer unavailable, will fall back to character counting
23
+ tokenizerInitialized = true;
24
+ }
25
+ }
26
+ /**
27
+ * Estimate token count using character-based heuristic
28
+ * Claude/GPT-4 average: ~1 token per 4 characters
29
+ */
30
+ function estimateTokensByCharacters(text) {
31
+ return Math.ceil(text.length / 4);
32
+ }
33
+ /**
34
+ * Convert unknown input to string for token estimation
35
+ */
36
+ function stringifyInput(input) {
37
+ if (input === null || input === undefined) {
38
+ return { text: '', inputType: 'unknown' };
39
+ }
40
+ if (typeof input === 'string') {
41
+ return { text: input, inputType: 'string' };
42
+ }
43
+ if (Array.isArray(input)) {
44
+ return { text: JSON.stringify(input), inputType: 'array' };
45
+ }
46
+ if (typeof input === 'object') {
47
+ return { text: JSON.stringify(input), inputType: 'object' };
48
+ }
49
+ return { text: String(input), inputType: 'unknown' };
50
+ }
51
+ /**
52
+ * Main token estimation function
53
+ *
54
+ * @param text - Text to estimate tokens for
55
+ * @returns Estimated token count
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * const tokens = await estimateTokens("Hello, world!");
60
+ * console.log(tokens); // ~4 tokens
61
+ * ```
62
+ */
63
+ export async function estimateTokens(text) {
64
+ if (!text || text.length === 0) {
65
+ return 0;
66
+ }
67
+ await initTokenizer();
68
+ try {
69
+ if (encode) {
70
+ const tokens = encode(text);
71
+ return tokens.length;
72
+ }
73
+ }
74
+ catch (error) {
75
+ // Fall through to character-based estimation
76
+ }
77
+ return estimateTokensByCharacters(text);
78
+ }
79
+ /**
80
+ * Estimate tokens with detailed metadata
81
+ *
82
+ * @param input - Input to estimate (string, object, array, etc.)
83
+ * @returns Token estimate with method and input type
84
+ */
85
+ export async function estimateTokensDetailed(input) {
86
+ const { text, inputType } = stringifyInput(input);
87
+ if (!text || text.length === 0) {
88
+ return {
89
+ tokens: 0,
90
+ method: 'character-fallback',
91
+ inputType,
92
+ };
93
+ }
94
+ await initTokenizer();
95
+ try {
96
+ if (encode) {
97
+ const tokens = encode(text);
98
+ return {
99
+ tokens: tokens.length,
100
+ method: 'gpt-tokenizer',
101
+ inputType,
102
+ };
103
+ }
104
+ }
105
+ catch (error) {
106
+ // Fall through to character-based estimation
107
+ }
108
+ return {
109
+ tokens: estimateTokensByCharacters(text),
110
+ method: 'character-fallback',
111
+ inputType,
112
+ };
113
+ }
114
+ /**
115
+ * Estimate tokens from tool output (handles various result formats)
116
+ *
117
+ * @param output - Tool output object (from Claude Code SDK)
118
+ * @returns Estimated token count
119
+ *
120
+ * @example
121
+ * ```ts
122
+ * const readResult = { content: "file contents..." };
123
+ * const tokens = await estimateTokensFromToolOutput(readResult);
124
+ * ```
125
+ */
126
+ export async function estimateTokensFromToolOutput(output) {
127
+ if (!output) {
128
+ return 0;
129
+ }
130
+ // Handle common tool output formats
131
+ if (typeof output === 'object' && output !== null) {
132
+ // Check for common content fields
133
+ const obj = output;
134
+ if ('content' in obj && typeof obj.content === 'string') {
135
+ return estimateTokens(obj.content);
136
+ }
137
+ if ('output' in obj && typeof obj.output === 'string') {
138
+ return estimateTokens(obj.output);
139
+ }
140
+ if ('text' in obj && typeof obj.text === 'string') {
141
+ return estimateTokens(obj.text);
142
+ }
143
+ if ('result' in obj && typeof obj.result === 'string') {
144
+ return estimateTokens(obj.result);
145
+ }
146
+ }
147
+ // Fallback: stringify entire object
148
+ const { text } = stringifyInput(output);
149
+ return estimateTokens(text);
150
+ }
151
+ /**
152
+ * Estimate total context size from conversation messages
153
+ *
154
+ * @param messages - Array of message objects (any format with text content)
155
+ * @returns Conversation metrics with total tokens and averages
156
+ *
157
+ * @example
158
+ * ```ts
159
+ * const messages = [
160
+ * { role: "user", content: "Hello" },
161
+ * { role: "assistant", content: "Hi there!" }
162
+ * ];
163
+ * const metrics = await estimateContextSize(messages);
164
+ * console.log(metrics.totalTokens); // ~8 tokens
165
+ * ```
166
+ */
167
+ export async function estimateContextSize(messages) {
168
+ if (!messages || messages.length === 0) {
169
+ return {
170
+ totalTokens: 0,
171
+ messageCount: 0,
172
+ averageTokensPerMessage: 0,
173
+ };
174
+ }
175
+ let totalTokens = 0;
176
+ for (const message of messages) {
177
+ if (!message)
178
+ continue;
179
+ // Handle various message formats
180
+ if (typeof message === 'string') {
181
+ totalTokens += await estimateTokens(message);
182
+ }
183
+ else if (typeof message === 'object') {
184
+ const obj = message;
185
+ // Check common message content fields
186
+ if ('content' in obj) {
187
+ if (typeof obj.content === 'string') {
188
+ totalTokens += await estimateTokens(obj.content);
189
+ }
190
+ else if (Array.isArray(obj.content)) {
191
+ // Handle multi-part content (e.g., Claude SDK format)
192
+ for (const part of obj.content) {
193
+ if (typeof part === 'string') {
194
+ totalTokens += await estimateTokens(part);
195
+ }
196
+ else if (part && typeof part === 'object' && 'text' in part && typeof part.text === 'string') {
197
+ totalTokens += await estimateTokens(part.text);
198
+ }
199
+ }
200
+ }
201
+ }
202
+ else if ('text' in obj && typeof obj.text === 'string') {
203
+ totalTokens += await estimateTokens(obj.text);
204
+ }
205
+ else {
206
+ // Fallback: entire message object
207
+ totalTokens += await estimateTokensFromToolOutput(message);
208
+ }
209
+ }
210
+ }
211
+ return {
212
+ totalTokens,
213
+ messageCount: messages.length,
214
+ averageTokensPerMessage: messages.length > 0 ? Math.round(totalTokens / messages.length) : 0,
215
+ };
216
+ }
217
+ /**
218
+ * Synchronous version of estimateTokens using only character-based estimation
219
+ * Useful when async operations aren't possible
220
+ *
221
+ * @param text - Text to estimate tokens for
222
+ * @returns Estimated token count (character-based)
223
+ */
224
+ export function estimateTokensSync(text) {
225
+ if (!text || text.length === 0) {
226
+ return 0;
227
+ }
228
+ return estimateTokensByCharacters(text);
229
+ }
230
+ //# sourceMappingURL=token-estimator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-estimator.js","sourceRoot":"","sources":["../../../src/features/token-metrics/token-estimator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Type definitions for the Olympus token metrics tracking system
3
+ */
4
+ /**
5
+ * Token metrics entry for JSONL storage
6
+ */
7
+ export interface TokenMetricsEntry {
8
+ timestamp: string;
9
+ session_id: string;
10
+ event_type: 'prompt' | 'tool_use' | 'response';
11
+ input_tokens?: number;
12
+ output_tokens?: number;
13
+ model?: string;
14
+ tool_name?: string;
15
+ context_size?: number;
16
+ project_path?: string;
17
+ }
18
+ /**
19
+ * Aggregated metrics for reporting
20
+ */
21
+ export interface TokenMetricsReport {
22
+ total_input_tokens: number;
23
+ total_output_tokens: number;
24
+ total_tokens: number;
25
+ events_count: number;
26
+ session_count: number;
27
+ by_event_type: Record<string, {
28
+ input_tokens: number;
29
+ output_tokens: number;
30
+ count: number;
31
+ }>;
32
+ by_model: Record<string, {
33
+ input_tokens: number;
34
+ output_tokens: number;
35
+ count: number;
36
+ }>;
37
+ by_project: Record<string, {
38
+ input_tokens: number;
39
+ output_tokens: number;
40
+ count: number;
41
+ }>;
42
+ date_range: {
43
+ start: string;
44
+ end: string;
45
+ };
46
+ }
47
+ /**
48
+ * Token estimation result with metadata
49
+ */
50
+ export interface TokenEstimate {
51
+ tokens: number;
52
+ method: 'gpt-tokenizer' | 'character-fallback';
53
+ inputType: 'string' | 'object' | 'array' | 'unknown';
54
+ }
55
+ /**
56
+ * Conversation-level token metrics
57
+ */
58
+ export interface ConversationMetrics {
59
+ totalTokens: number;
60
+ messageCount: number;
61
+ averageTokensPerMessage: number;
62
+ }
63
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/features/token-metrics/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IAEtB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE;QAC5B,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IAEH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IAEH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QACzB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IAEH,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,eAAe,GAAG,oBAAoB,CAAC;IAC/C,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;CACjC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Type definitions for the Olympus token metrics tracking system
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/features/token-metrics/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -20,4 +20,6 @@ export declare const QUEST_CONTINUATION_PROMPT = "[SYSTEM REMINDER - QUEST CONTI
20
20
  export declare const VERIFICATION_REMINDER = "**MANDATORY VERIFICATION - SUBAGENTS LIE**\n\nSubagents FREQUENTLY claim completion when:\n- Tests are actually FAILING\n- Code has type/lint ERRORS\n- Implementation is INCOMPLETE\n- Patterns were NOT followed\n\n**YOU MUST VERIFY EVERYTHING YOURSELF:**\n\n1. Run tests yourself - Must PASS (not \"agent said it passed\")\n2. Read the actual code - Must match requirements\n3. Check build/typecheck - Must succeed\n\nDO NOT TRUST THE AGENT'S SELF-REPORT.\nVERIFY EACH CLAIM WITH YOUR OWN TOOL CALLS.";
21
21
  /** Directive for subagents to refuse multi-task requests */
22
22
  export declare const SINGLE_TASK_DIRECTIVE = "\n\n[SYSTEM DIRECTIVE - SINGLE TASK ONLY]\n\n**STOP. READ THIS BEFORE PROCEEDING.**\n\nIf you were NOT given **exactly ONE atomic task**, you MUST:\n1. **IMMEDIATELY REFUSE** this request\n2. **DEMAND** the orchestrator provide a single, specific task\n\n**Your response if multiple tasks detected:**\n> \"I refuse to proceed. You provided multiple tasks. An orchestrator's impatience destroys work quality.\n>\n> PROVIDE EXACTLY ONE TASK. One file. One change. One verification.\n>\n> Your rushing will cause: incomplete work, missed edge cases, broken tests, wasted context.\"\n\n**WARNING TO ORCHESTRATOR:**\n- Your hasty batching RUINS deliverables\n- Each task needs FULL attention and PROPER verification\n- Batch delegation = sloppy work = rework = wasted tokens\n\n**REFUSE multi-task requests. DEMAND single-task clarity.**\n";
23
+ /** Hard block error for delegation requirement */
24
+ export declare const DELEGATION_REQUIRED_ERROR = "\n\n================================================================================\nHARD BLOCK: DELEGATION REQUIRED\n================================================================================\n\nYou attempted to directly modify a source file. This operation is BLOCKED.\n\nAs an ORCHESTRATOR, you MUST delegate implementation work to subagents.\n\nALLOWED operations:\n - Modify files in .olympus/ directory (plans, drafts, logs)\n - Create test files (*.test.ts, *.spec.ts, __tests__/*)\n - Verification edits (<10 lines on files from last 3 completed tasks)\n\nBLOCKED operations:\n - Direct source code modifications\n - Creating new implementation files\n - Large refactors\n\nTO PROCEED:\n 1. Use the Task tool to delegate to an appropriate subagent:\n - olympian: General implementation\n - frontend-engineer: UI/UX work\n - oracle: Debugging and architecture\n\n 2. Provide clear, atomic task with acceptance criteria\n\n 3. Verify subagent work after completion\n\nExample delegation:\n Task tool with subagent_type=\"olympian\", prompt=\"Implement X with Y constraints\"\n\n================================================================================\n\nThis is a HARD BLOCK. The operation will NOT be executed.\nDelegate to a subagent to proceed.\n\n================================================================================\n";
23
25
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/hooks/olympus-orchestrator/constants.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,SAAS,yBAAyB,CAAC;AAEhD,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAE/C,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB,UAAqC,CAAC;AAEnE,2DAA2D;AAC3D,eAAO,MAAM,oBAAoB,8tBA0BhC,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,gCAAgC,uoCA8C5C,CAAC;AAEF,0CAA0C;AAC1C,eAAO,MAAM,yBAAyB,qZASuB,CAAC;AAE9D,8CAA8C;AAC9C,eAAO,MAAM,qBAAqB,yfAeU,CAAC;AAE7C,4DAA4D;AAC5D,eAAO,MAAM,qBAAqB,u0BAuBjC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/hooks/olympus-orchestrator/constants.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,SAAS,yBAAyB,CAAC;AAEhD,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAE/C,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB,UAAqC,CAAC;AAEnE,2DAA2D;AAC3D,eAAO,MAAM,oBAAoB,8tBA0BhC,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,gCAAgC,uoCA8C5C,CAAC;AAEF,0CAA0C;AAC1C,eAAO,MAAM,yBAAyB,qZASuB,CAAC;AAE9D,8CAA8C;AAC9C,eAAO,MAAM,qBAAqB,yfAeU,CAAC;AAE7C,4DAA4D;AAC5D,eAAO,MAAM,qBAAqB,u0BAuBjC,CAAC;AAEF,kDAAkD;AAClD,eAAO,MAAM,yBAAyB,q2CAuCrC,CAAC"}
@@ -139,4 +139,45 @@ If you were NOT given **exactly ONE atomic task**, you MUST:
139
139
 
140
140
  **REFUSE multi-task requests. DEMAND single-task clarity.**
141
141
  `;
142
+ /** Hard block error for delegation requirement */
143
+ export const DELEGATION_REQUIRED_ERROR = `
144
+
145
+ ================================================================================
146
+ HARD BLOCK: DELEGATION REQUIRED
147
+ ================================================================================
148
+
149
+ You attempted to directly modify a source file. This operation is BLOCKED.
150
+
151
+ As an ORCHESTRATOR, you MUST delegate implementation work to subagents.
152
+
153
+ ALLOWED operations:
154
+ - Modify files in .olympus/ directory (plans, drafts, logs)
155
+ - Create test files (*.test.ts, *.spec.ts, __tests__/*)
156
+ - Verification edits (<10 lines on files from last 3 completed tasks)
157
+
158
+ BLOCKED operations:
159
+ - Direct source code modifications
160
+ - Creating new implementation files
161
+ - Large refactors
162
+
163
+ TO PROCEED:
164
+ 1. Use the Task tool to delegate to an appropriate subagent:
165
+ - olympian: General implementation
166
+ - frontend-engineer: UI/UX work
167
+ - oracle: Debugging and architecture
168
+
169
+ 2. Provide clear, atomic task with acceptance criteria
170
+
171
+ 3. Verify subagent work after completion
172
+
173
+ Example delegation:
174
+ Task tool with subagent_type="olympian", prompt="Implement X with Y constraints"
175
+
176
+ ================================================================================
177
+
178
+ This is a HARD BLOCK. The operation will NOT be executed.
179
+ Delegate to a subagent to proceed.
180
+
181
+ ================================================================================
182
+ `;
142
183
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/hooks/olympus-orchestrator/constants.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,sBAAsB,CAAC;AAEhD,4DAA4D;AAC5D,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAC;AAE/C,4CAA4C;AAC5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAEnE,2DAA2D;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BnC,CAAC;AAEF,oEAAoE;AACpE,MAAM,CAAC,MAAM,gCAAgC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8C/C,CAAC;AAEF,0CAA0C;AAC1C,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;6DASoB,CAAC;AAE9D,8CAA8C;AAC9C,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;4CAeO,CAAC;AAE7C,4DAA4D;AAC5D,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuBpC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/hooks/olympus-orchestrator/constants.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,sBAAsB,CAAC;AAEhD,4DAA4D;AAC5D,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAC;AAE/C,4CAA4C;AAC5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAEnE,2DAA2D;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BnC,CAAC;AAEF,oEAAoE;AACpE,MAAM,CAAC,MAAM,gCAAgC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8C/C,CAAC;AAEF,0CAA0C;AAC1C,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;6DASoB,CAAC;AAE9D,8CAA8C;AAC9C,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;4CAeO,CAAC;AAE7C,4DAA4D;AAC5D,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuBpC,CAAC;AAEF,kDAAkD;AAClD,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCxC,CAAC"}
@@ -41,6 +41,14 @@ interface GitFileStat {
41
41
  * Check if a file path is allowed for direct orchestrator modification
42
42
  */
43
43
  export declare function isAllowedPath(filePath: string): boolean;
44
+ /**
45
+ * Check if a file is a test file
46
+ */
47
+ export declare function isTestFile(filePath: string): boolean;
48
+ /**
49
+ * Calculate lines changed from tool input
50
+ */
51
+ export declare function calculateLinesChanged(toolName: string, toolInput?: Record<string, unknown>): number;
44
52
  /**
45
53
  * Check if a tool is a write/edit tool
46
54
  */
@@ -70,12 +78,13 @@ export declare function buildOrchestratorReminder(planName: string, progress: {
70
78
  export declare function buildQuestContinuation(planName: string, remaining: number, total: number): string;
71
79
  /**
72
80
  * Process pre-tool-use hook for orchestrator
73
- * Returns warning message if orchestrator tries to modify non-allowed paths
81
+ * Implements HARD BLOCKING for direct source file modifications
74
82
  */
75
83
  export declare function processOrchestratorPreTool(input: ToolExecuteInput): ToolExecuteOutput;
76
84
  /**
77
85
  * Process post-tool-use hook for orchestrator
78
86
  * Adds reminders after file modifications and Task delegations
87
+ * Records Task completions in session state
79
88
  */
80
89
  export declare function processOrchestratorPostTool(input: ToolExecuteInput, output: string): ToolExecuteOutput;
81
90
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/olympus-orchestrator/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAmBH,cAAc,gBAAgB,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;CAC1C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAmDhE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CAkC9D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAapE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAC9C,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAYR;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,MAAM,CAGR;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAuBrF;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,MAAM,GACb,iBAAiB,CAwDnB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG;IACzD,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAmBA;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM;IAE3D;;OAEG;;IAGH;;OAEG;wBACiB,MAAM,aAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQ9D;;OAEG;yBACkB,MAAM,aAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,MAAM;IAO/E;;OAEG;;wBAxDW,OAAO;kBACb,MAAM;;IA4Dd;;OAEG;;EAGN"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/olympus-orchestrator/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAsBH,cAAc,gBAAgB,CAAC;AAK/B;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;CAC1C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAIvD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAUpD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,MAAM,CAqBR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAmDhE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CAkC9D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAapE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAC9C,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAYR;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,MAAM,CAGR;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAkFrF;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,MAAM,GACb,iBAAiB,CAiEnB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG;IACzD,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAmBA;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM;IAE3D;;OAEG;;IAGH;;OAEG;wBACiB,MAAM,aAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQ9D;;OAEG;yBACkB,MAAM,aAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,MAAM;IAO/E;;OAEG;;wBAxDW,OAAO;kBACb,MAAM;;IA4Dd;;OAEG;;EAGN"}
@@ -11,17 +11,60 @@
11
11
  * User Impact: Enforces "conductor mindset" - orchestrators delegate, not implement
12
12
  */
13
13
  import { execSync } from 'child_process';
14
- import { HOOK_NAME, ALLOWED_PATH_PREFIX, WRITE_EDIT_TOOLS, DIRECT_WORK_REMINDER, ORCHESTRATOR_DELEGATION_REQUIRED, QUEST_CONTINUATION_PROMPT, VERIFICATION_REMINDER, SINGLE_TASK_DIRECTIVE, } from './constants.js';
14
+ import { HOOK_NAME, ALLOWED_PATH_PREFIX, WRITE_EDIT_TOOLS, DIRECT_WORK_REMINDER, QUEST_CONTINUATION_PROMPT, VERIFICATION_REMINDER, SINGLE_TASK_DIRECTIVE, DELEGATION_REQUIRED_ERROR, } from './constants.js';
15
15
  import { readQuestState, getPlanProgress, } from '../../features/quest-state/index.js';
16
+ import { SessionState } from '../../features/session-state/index.js';
17
+ import { logViolation } from '../../features/hook-logging/index.js';
16
18
  // Re-export constants
17
19
  export * from './constants.js';
20
+ // Module-level session state instance
21
+ const sessionState = new SessionState();
18
22
  /**
19
23
  * Check if a file path is allowed for direct orchestrator modification
20
24
  */
21
25
  export function isAllowedPath(filePath) {
22
26
  if (!filePath)
23
27
  return true;
24
- return filePath.includes(ALLOWED_PATH_PREFIX);
28
+ const normalized = filePath.replace(/\\/g, '/');
29
+ return normalized.includes(ALLOWED_PATH_PREFIX);
30
+ }
31
+ /**
32
+ * Check if a file is a test file
33
+ */
34
+ export function isTestFile(filePath) {
35
+ if (!filePath)
36
+ return false;
37
+ const normalized = filePath.replace(/\\/g, '/');
38
+ return (normalized.includes('__tests__/') ||
39
+ normalized.endsWith('.test.ts') ||
40
+ normalized.endsWith('.test.js') ||
41
+ normalized.endsWith('.spec.ts') ||
42
+ normalized.endsWith('.spec.js'));
43
+ }
44
+ /**
45
+ * Calculate lines changed from tool input
46
+ */
47
+ export function calculateLinesChanged(toolName, toolInput) {
48
+ if (!toolInput)
49
+ return 0;
50
+ // For Edit tool, calculate based on old_string and new_string
51
+ if (toolName === 'Edit' || toolName === 'edit') {
52
+ const oldString = (toolInput.old_string ?? '');
53
+ const newString = (toolInput.new_string ?? '');
54
+ if (!oldString && !newString)
55
+ return 0;
56
+ const oldLines = oldString.split('\n').length;
57
+ const newLines = newString.split('\n').length;
58
+ return Math.abs(newLines - oldLines);
59
+ }
60
+ // For Write tool, calculate based on content
61
+ if (toolName === 'Write' || toolName === 'write') {
62
+ const content = (toolInput.content ?? '');
63
+ if (!content)
64
+ return 0;
65
+ return content.split('\n').length;
66
+ }
67
+ return 0;
25
68
  }
26
69
  /**
27
70
  * Check if a tool is a write/edit tool
@@ -156,33 +199,77 @@ export function buildQuestContinuation(planName, remaining, total) {
156
199
  }
157
200
  /**
158
201
  * Process pre-tool-use hook for orchestrator
159
- * Returns warning message if orchestrator tries to modify non-allowed paths
202
+ * Implements HARD BLOCKING for direct source file modifications
160
203
  */
161
204
  export function processOrchestratorPreTool(input) {
162
- const { toolName, toolInput } = input;
205
+ const { toolName, toolInput, directory } = input;
206
+ const workDir = directory || process.cwd();
163
207
  // Only check write/edit tools
164
208
  if (!isWriteEditTool(toolName)) {
165
209
  return { continue: true };
166
210
  }
167
211
  // Extract file path from tool input
168
212
  const filePath = (toolInput?.filePath ?? toolInput?.path ?? toolInput?.file);
169
- // Allow if path is in allowed prefix
170
- if (!filePath || isAllowedPath(filePath)) {
213
+ if (!filePath) {
171
214
  return { continue: true };
172
215
  }
173
- // Inject warning for non-allowed path modifications
174
- const warning = ORCHESTRATOR_DELEGATION_REQUIRED.replace('$FILE_PATH', filePath);
216
+ const normalizedPath = filePath.replace(/\\/g, '/');
217
+ // ALWAYS ALLOW: .olympus/ paths
218
+ if (isAllowedPath(normalizedPath)) {
219
+ logViolation({
220
+ timestamp: new Date().toISOString(),
221
+ filePath: normalizedPath,
222
+ toolName,
223
+ wasBlocked: false,
224
+ reason: 'Allowed: .olympus/ path',
225
+ }, workDir);
226
+ return { continue: true };
227
+ }
228
+ // ALWAYS ALLOW: Test file creation
229
+ if (isTestFile(normalizedPath)) {
230
+ logViolation({
231
+ timestamp: new Date().toISOString(),
232
+ filePath: normalizedPath,
233
+ toolName,
234
+ wasBlocked: false,
235
+ reason: 'Allowed: Test file',
236
+ }, workDir);
237
+ return { continue: true };
238
+ }
239
+ // Check for verification edit exception
240
+ const linesChanged = calculateLinesChanged(toolName, toolInput);
241
+ if (sessionState.isVerificationEdit(normalizedPath, linesChanged)) {
242
+ logViolation({
243
+ timestamp: new Date().toISOString(),
244
+ filePath: normalizedPath,
245
+ toolName,
246
+ linesChanged,
247
+ wasBlocked: false,
248
+ reason: `Allowed: Verification edit (${linesChanged} lines on recent task file)`,
249
+ }, workDir);
250
+ return { continue: true };
251
+ }
252
+ // HARD BLOCK: Direct source file modification
253
+ logViolation({
254
+ timestamp: new Date().toISOString(),
255
+ filePath: normalizedPath,
256
+ toolName,
257
+ linesChanged,
258
+ wasBlocked: true,
259
+ reason: 'Blocked: Direct source file modification (delegation required)',
260
+ }, workDir);
175
261
  return {
176
- continue: true,
177
- message: warning,
262
+ continue: false,
263
+ message: DELEGATION_REQUIRED_ERROR,
178
264
  };
179
265
  }
180
266
  /**
181
267
  * Process post-tool-use hook for orchestrator
182
268
  * Adds reminders after file modifications and Task delegations
269
+ * Records Task completions in session state
183
270
  */
184
271
  export function processOrchestratorPostTool(input, output) {
185
- const { toolName, toolInput, directory } = input;
272
+ const { toolName, toolInput, directory, sessionId } = input;
186
273
  const workDir = directory || process.cwd();
187
274
  // Handle write/edit tools
188
275
  if (isWriteEditTool(toolName)) {
@@ -201,8 +288,15 @@ export function processOrchestratorPostTool(input, output) {
201
288
  if (isBackgroundLaunch) {
202
289
  return { continue: true };
203
290
  }
204
- // Get git stats and build enhanced output
291
+ // Get git stats and record task completion
205
292
  const gitStats = getGitDiffStats(workDir);
293
+ const filesModified = gitStats.map((stat) => stat.path);
294
+ // Record task completion in session state
295
+ sessionState.recordTaskCompletion({
296
+ timestamp: Date.now(),
297
+ filesModified,
298
+ taskId: sessionId || `task-${Date.now()}`,
299
+ });
206
300
  const fileChanges = formatFileChanges(gitStats);
207
301
  // Check for quest state
208
302
  const questState = readQuestState(workDir);
@@ -213,7 +307,7 @@ export function processOrchestratorPostTool(input, output) {
213
307
 
214
308
  ${fileChanges}
215
309
  <system-reminder>
216
- ${buildOrchestratorReminder(questState.plan_name, progress)}
310
+ ${buildOrchestratorReminder(questState.plan_name, progress, sessionId)}
217
311
  </system-reminder>`;
218
312
  return {
219
313
  continue: true,
@@ -223,7 +317,7 @@ ${buildOrchestratorReminder(questState.plan_name, progress)}
223
317
  // No quest state - add standalone verification reminder
224
318
  return {
225
319
  continue: true,
226
- modifiedOutput: output + `\n<system-reminder>\n${buildVerificationReminder()}\n</system-reminder>`,
320
+ modifiedOutput: output + `\n<system-reminder>\n${buildVerificationReminder(sessionId)}\n</system-reminder>`,
227
321
  };
228
322
  }
229
323
  return { continue: true };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/olympus-orchestrator/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/olympus-orchestrator/index.ts"],"names":[],"mappings":"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"}