olympus-ai 3.3.0 → 3.4.1

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 (116) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +2 -0
  4. package/dist/__tests__/installer.test.js +1 -1
  5. package/dist/__tests__/learning/aggregation.test.d.ts +2 -0
  6. package/dist/__tests__/learning/aggregation.test.d.ts.map +1 -0
  7. package/dist/__tests__/learning/aggregation.test.js +282 -0
  8. package/dist/__tests__/learning/aggregation.test.js.map +1 -0
  9. package/dist/__tests__/learning/anomaly.test.d.ts +2 -0
  10. package/dist/__tests__/learning/anomaly.test.d.ts.map +1 -0
  11. package/dist/__tests__/learning/anomaly.test.js +107 -0
  12. package/dist/__tests__/learning/anomaly.test.js.map +1 -0
  13. package/dist/__tests__/learning/baselines.test.d.ts +2 -0
  14. package/dist/__tests__/learning/baselines.test.d.ts.map +1 -0
  15. package/dist/__tests__/learning/baselines.test.js +155 -0
  16. package/dist/__tests__/learning/baselines.test.js.map +1 -0
  17. package/dist/__tests__/learning/efficiency.test.d.ts +2 -0
  18. package/dist/__tests__/learning/efficiency.test.d.ts.map +1 -0
  19. package/dist/__tests__/learning/efficiency.test.js +94 -0
  20. package/dist/__tests__/learning/efficiency.test.js.map +1 -0
  21. package/dist/__tests__/learning/feedback-loop-injection.test.d.ts +6 -0
  22. package/dist/__tests__/learning/feedback-loop-injection.test.d.ts.map +1 -0
  23. package/dist/__tests__/learning/feedback-loop-injection.test.js +288 -0
  24. package/dist/__tests__/learning/feedback-loop-injection.test.js.map +1 -0
  25. package/dist/__tests__/learning/learning-capture-integration.test.d.ts +6 -0
  26. package/dist/__tests__/learning/learning-capture-integration.test.d.ts.map +1 -0
  27. package/dist/__tests__/learning/learning-capture-integration.test.js +151 -0
  28. package/dist/__tests__/learning/learning-capture-integration.test.js.map +1 -0
  29. package/dist/__tests__/learning/token-metrics.test.d.ts +2 -0
  30. package/dist/__tests__/learning/token-metrics.test.d.ts.map +1 -0
  31. package/dist/__tests__/learning/token-metrics.test.js +308 -0
  32. package/dist/__tests__/learning/token-metrics.test.js.map +1 -0
  33. package/dist/__tests__/token-tracking-integration.test.d.ts +8 -0
  34. package/dist/__tests__/token-tracking-integration.test.d.ts.map +1 -0
  35. package/dist/__tests__/token-tracking-integration.test.js +669 -0
  36. package/dist/__tests__/token-tracking-integration.test.js.map +1 -0
  37. package/dist/agents/prometheus.d.ts.map +1 -1
  38. package/dist/agents/prometheus.js +27 -0
  39. package/dist/agents/prometheus.js.map +1 -1
  40. package/dist/cli/commands/metrics.d.ts +10 -2
  41. package/dist/cli/commands/metrics.d.ts.map +1 -1
  42. package/dist/cli/commands/metrics.js +25 -239
  43. package/dist/cli/commands/metrics.js.map +1 -1
  44. package/dist/cli/index.js +196 -1
  45. package/dist/cli/index.js.map +1 -1
  46. package/dist/config/loader.d.ts.map +1 -1
  47. package/dist/config/loader.js +14 -0
  48. package/dist/config/loader.js.map +1 -1
  49. package/dist/hooks/registrations/budget-warning.d.ts +8 -0
  50. package/dist/hooks/registrations/budget-warning.d.ts.map +1 -0
  51. package/dist/hooks/registrations/budget-warning.js +63 -0
  52. package/dist/hooks/registrations/budget-warning.js.map +1 -0
  53. package/dist/hooks/registrations/index.d.ts +3 -2
  54. package/dist/hooks/registrations/index.d.ts.map +1 -1
  55. package/dist/hooks/registrations/index.js +5 -3
  56. package/dist/hooks/registrations/index.js.map +1 -1
  57. package/dist/hooks/registrations/learning-capture.d.ts +19 -0
  58. package/dist/hooks/registrations/learning-capture.d.ts.map +1 -0
  59. package/dist/hooks/registrations/learning-capture.js +220 -0
  60. package/dist/hooks/registrations/learning-capture.js.map +1 -0
  61. package/dist/hooks/registrations/session-start.d.ts.map +1 -1
  62. package/dist/hooks/registrations/session-start.js +13 -0
  63. package/dist/hooks/registrations/session-start.js.map +1 -1
  64. package/dist/hooks/registrations/token-metrics.d.ts +10 -2
  65. package/dist/hooks/registrations/token-metrics.d.ts.map +1 -1
  66. package/dist/hooks/registrations/token-metrics.js +18 -4
  67. package/dist/hooks/registrations/token-metrics.js.map +1 -1
  68. package/dist/installer/index.d.ts +2 -2
  69. package/dist/installer/index.d.ts.map +1 -1
  70. package/dist/installer/index.js +202 -15
  71. package/dist/installer/index.js.map +1 -1
  72. package/dist/learning/aggregation.d.ts +39 -0
  73. package/dist/learning/aggregation.d.ts.map +1 -0
  74. package/dist/learning/aggregation.js +101 -0
  75. package/dist/learning/aggregation.js.map +1 -0
  76. package/dist/learning/anomaly.d.ts +30 -0
  77. package/dist/learning/anomaly.d.ts.map +1 -0
  78. package/dist/learning/anomaly.js +102 -0
  79. package/dist/learning/anomaly.js.map +1 -0
  80. package/dist/learning/baselines.d.ts +44 -0
  81. package/dist/learning/baselines.d.ts.map +1 -0
  82. package/dist/learning/baselines.js +126 -0
  83. package/dist/learning/baselines.js.map +1 -0
  84. package/dist/learning/efficiency.d.ts +23 -0
  85. package/dist/learning/efficiency.d.ts.map +1 -0
  86. package/dist/learning/efficiency.js +67 -0
  87. package/dist/learning/efficiency.js.map +1 -0
  88. package/dist/learning/hooks/learned-context.d.ts.map +1 -1
  89. package/dist/learning/hooks/learned-context.js +46 -0
  90. package/dist/learning/hooks/learned-context.js.map +1 -1
  91. package/dist/learning/pricing.d.ts +30 -0
  92. package/dist/learning/pricing.d.ts.map +1 -0
  93. package/dist/learning/pricing.js +98 -0
  94. package/dist/learning/pricing.js.map +1 -0
  95. package/dist/learning/session-state.d.ts +12 -2
  96. package/dist/learning/session-state.d.ts.map +1 -1
  97. package/dist/learning/session-state.js +72 -3
  98. package/dist/learning/session-state.js.map +1 -1
  99. package/dist/learning/storage.d.ts +21 -1
  100. package/dist/learning/storage.d.ts.map +1 -1
  101. package/dist/learning/storage.js +84 -0
  102. package/dist/learning/storage.js.map +1 -1
  103. package/dist/learning/token-estimator.d.ts +41 -0
  104. package/dist/learning/token-estimator.d.ts.map +1 -0
  105. package/dist/learning/token-estimator.js +111 -0
  106. package/dist/learning/token-estimator.js.map +1 -0
  107. package/dist/learning/types.d.ts +32 -0
  108. package/dist/learning/types.d.ts.map +1 -1
  109. package/dist/learning/utils.d.ts +42 -0
  110. package/dist/learning/utils.d.ts.map +1 -0
  111. package/dist/learning/utils.js +76 -0
  112. package/dist/learning/utils.js.map +1 -0
  113. package/dist/shared/types.d.ts +29 -0
  114. package/dist/shared/types.d.ts.map +1 -1
  115. package/package.json +1 -1
  116. package/scripts/dist/hooks/olympus-hooks.cjs +86 -84
@@ -11,7 +11,8 @@ import { registerPreToolUseHooks } from './pre-tool-use.js';
11
11
  import { registerPostToolUseHooks } from './post-tool-use.js';
12
12
  import { registerPostToolUseFailureHooks } from './post-tool-use-failure.js';
13
13
  import { registerNotificationHooks } from './notification.js';
14
- import { registerTokenMetricsHooks } from './token-metrics.js';
14
+ import { registerLearningCaptureHooks } from './learning-capture.js';
15
+ import { registerBudgetWarningHook } from './budget-warning.js';
15
16
  /** Flag to prevent double registration */
16
17
  let registered = false;
17
18
  /**
@@ -30,7 +31,8 @@ export function registerAllHooks() {
30
31
  registerPostToolUseHooks();
31
32
  registerPostToolUseFailureHooks();
32
33
  registerNotificationHooks();
33
- registerTokenMetricsHooks();
34
+ registerLearningCaptureHooks();
35
+ registerBudgetWarningHook(); // Token budget warning (informational)
34
36
  registered = true;
35
37
  }
36
38
  /**
@@ -41,5 +43,5 @@ export function resetRegistration() {
41
43
  registered = false;
42
44
  }
43
45
  // Re-export individual registration functions for selective use
44
- export { registerUserPromptSubmitHooks, registerSessionStartHooks, registerStopHooks, registerPreToolUseHooks, registerPostToolUseHooks, registerPostToolUseFailureHooks, registerNotificationHooks, registerTokenMetricsHooks, };
46
+ export { registerUserPromptSubmitHooks, registerSessionStartHooks, registerStopHooks, registerPreToolUseHooks, registerPostToolUseHooks, registerPostToolUseFailureHooks, registerNotificationHooks, registerLearningCaptureHooks, registerBudgetWarningHook, };
45
47
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/registrations/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,0CAA0C;AAC1C,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,UAAU,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,+BAA+B;IAC/B,6BAA6B,EAAE,CAAC;IAChC,yBAAyB,EAAE,CAAC;IAC5B,iBAAiB,EAAE,CAAC;IACpB,uBAAuB,EAAE,CAAC;IAC1B,wBAAwB,EAAE,CAAC;IAC3B,+BAA+B,EAAE,CAAC;IAClC,yBAAyB,EAAE,CAAC;IAC5B,yBAAyB,EAAE,CAAC;IAE5B,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,UAAU,GAAG,KAAK,CAAC;AACrB,CAAC;AAED,gEAAgE;AAChE,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,+BAA+B,EAC/B,yBAAyB,EACzB,yBAAyB,GAC1B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/registrations/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,0CAA0C;AAC1C,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,UAAU,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,+BAA+B;IAC/B,6BAA6B,EAAE,CAAC;IAChC,yBAAyB,EAAE,CAAC;IAC5B,iBAAiB,EAAE,CAAC;IACpB,uBAAuB,EAAE,CAAC;IAC1B,wBAAwB,EAAE,CAAC;IAC3B,+BAA+B,EAAE,CAAC;IAClC,yBAAyB,EAAE,CAAC;IAC5B,4BAA4B,EAAE,CAAC;IAC/B,yBAAyB,EAAE,CAAC,CAAC,uCAAuC;IAEpE,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,UAAU,GAAG,KAAK,CAAC;AACrB,CAAC;AAED,gEAAgE;AAChE,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,+BAA+B,EAC/B,yBAAyB,EACzB,4BAA4B,EAC5B,yBAAyB,GAC1B,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Learning Capture Hook Registrations
3
+ *
4
+ * Captures token metrics data for the learning system by:
5
+ * 1. UserPromptSubmit: Estimate input tokens and accumulate in session state
6
+ * 2. PostToolUse: Estimate output tokens and accumulate in session state
7
+ * 3. Stop: Aggregate session totals and save as a single FeedbackEntry
8
+ *
9
+ * ARCHITECTURE:
10
+ * - High-frequency: Accumulate in SessionState.token_budget.current_usage during session
11
+ * - Low-frequency: On Stop, create ONE FeedbackEntry with session totals
12
+ * - Zero LLM calls - purely passive data collection
13
+ * - Backward compatible: works with existing SessionState without token_budget
14
+ */
15
+ /**
16
+ * Register learning capture hooks for token metrics
17
+ */
18
+ export declare function registerLearningCaptureHooks(): void;
19
+ //# sourceMappingURL=learning-capture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learning-capture.d.ts","sourceRoot":"","sources":["../../../src/hooks/registrations/learning-capture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AA8DH;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAuKnD"}
@@ -0,0 +1,220 @@
1
+ /**
2
+ * Learning Capture Hook Registrations
3
+ *
4
+ * Captures token metrics data for the learning system by:
5
+ * 1. UserPromptSubmit: Estimate input tokens and accumulate in session state
6
+ * 2. PostToolUse: Estimate output tokens and accumulate in session state
7
+ * 3. Stop: Aggregate session totals and save as a single FeedbackEntry
8
+ *
9
+ * ARCHITECTURE:
10
+ * - High-frequency: Accumulate in SessionState.token_budget.current_usage during session
11
+ * - Low-frequency: On Stop, create ONE FeedbackEntry with session totals
12
+ * - Zero LLM calls - purely passive data collection
13
+ * - Backward compatible: works with existing SessionState without token_budget
14
+ */
15
+ import { registerHook } from '../registry.js';
16
+ import { estimateTokens, estimateTokensFromToolOutput } from '../../learning/token-estimator.js';
17
+ import { calculateCost } from '../../learning/pricing.js';
18
+ import { loadSessionState, saveSessionState } from '../../learning/session-state.js';
19
+ import { appendFeedback, updateAgentPerformance, loadFeedback } from '../../learning/storage.js';
20
+ import { randomUUID } from 'crypto';
21
+ /**
22
+ * Extract prompt text from various input formats
23
+ */
24
+ function getPromptText(ctx) {
25
+ if (ctx.prompt) {
26
+ return ctx.prompt;
27
+ }
28
+ if (ctx.message?.content) {
29
+ return ctx.message.content;
30
+ }
31
+ if (ctx.parts) {
32
+ return ctx.parts
33
+ .filter(p => p.type === 'text' && p.text)
34
+ .map(p => p.text)
35
+ .join(' ');
36
+ }
37
+ return '';
38
+ }
39
+ /**
40
+ * Extract model identifier from context
41
+ */
42
+ function getModelIdentifier(ctx) {
43
+ if (ctx.message?.model) {
44
+ const { providerId, modelId } = ctx.message.model;
45
+ if (providerId && modelId) {
46
+ return `${providerId}/${modelId}`;
47
+ }
48
+ if (modelId) {
49
+ return modelId;
50
+ }
51
+ }
52
+ return undefined;
53
+ }
54
+ /**
55
+ * Initialize token budget in session state if not present
56
+ */
57
+ function ensureTokenBudget(state, sessionBaseline = 10000) {
58
+ if (!state.token_budget) {
59
+ state.token_budget = {
60
+ session_baseline: sessionBaseline,
61
+ current_usage: 0,
62
+ warning_threshold: 1.5,
63
+ warning_issued: false,
64
+ started_at: new Date().toISOString(),
65
+ };
66
+ }
67
+ return state;
68
+ }
69
+ /**
70
+ * Register learning capture hooks for token metrics
71
+ */
72
+ export function registerLearningCaptureHooks() {
73
+ // Hook 1: Capture user prompt submissions
74
+ registerHook({
75
+ name: 'learningCapturePrompt',
76
+ event: 'UserPromptSubmit',
77
+ priority: 110, // Low priority - passive capture, run after other hooks
78
+ handler: async (ctx) => {
79
+ try {
80
+ if (!ctx.directory) {
81
+ return { continue: true };
82
+ }
83
+ const promptText = getPromptText(ctx);
84
+ if (!promptText) {
85
+ return { continue: true };
86
+ }
87
+ // Estimate input tokens (will be 0 if empty)
88
+ const inputTokens = await estimateTokens(promptText);
89
+ // Load session state
90
+ const state = loadSessionState(ctx.directory, ctx.sessionId);
91
+ ensureTokenBudget(state);
92
+ // Accumulate input tokens
93
+ if (state.token_budget) {
94
+ state.token_budget.current_usage += inputTokens;
95
+ saveSessionState(ctx.directory, state);
96
+ }
97
+ }
98
+ catch (error) {
99
+ // Silent failure - metrics should never break hooks
100
+ console.error('[Olympus Learning Capture] Error in prompt handler:', error);
101
+ }
102
+ return { continue: true };
103
+ }
104
+ });
105
+ // Hook 2: Capture tool executions
106
+ registerHook({
107
+ name: 'learningCaptureTool',
108
+ event: 'PostToolUse',
109
+ priority: 70, // Lower priority - passive capture
110
+ handler: async (ctx) => {
111
+ try {
112
+ if (!ctx.directory || !ctx.toolName) {
113
+ return { continue: true };
114
+ }
115
+ // Estimate output tokens from tool result
116
+ const outputTokens = ctx.toolOutput
117
+ ? await estimateTokensFromToolOutput(ctx.toolOutput)
118
+ : 0;
119
+ // Load session state
120
+ const state = loadSessionState(ctx.directory, ctx.sessionId);
121
+ ensureTokenBudget(state);
122
+ // Accumulate output tokens
123
+ if (state.token_budget) {
124
+ state.token_budget.current_usage += outputTokens;
125
+ saveSessionState(ctx.directory, state);
126
+ }
127
+ }
128
+ catch (error) {
129
+ // Silent failure - metrics should never break hooks
130
+ console.error('[Olympus Learning Capture] Error in tool use handler:', error);
131
+ }
132
+ return { continue: true };
133
+ }
134
+ });
135
+ // Hook 3: Aggregate session totals on Stop
136
+ registerHook({
137
+ name: 'learningCaptureStop',
138
+ event: 'Stop',
139
+ priority: 90, // Run before cancellation detection (priority 100), after persistent mode (priority 10)
140
+ handler: async (ctx) => {
141
+ try {
142
+ if (!ctx.directory) {
143
+ return { continue: true };
144
+ }
145
+ // Load session state
146
+ const state = loadSessionState(ctx.directory, ctx.sessionId);
147
+ // Skip if no token budget (backward compatibility)
148
+ if (!state.token_budget) {
149
+ return { continue: true };
150
+ }
151
+ const totalTokens = state.token_budget.current_usage;
152
+ // Only create entry if there's actual usage
153
+ if (totalTokens === 0) {
154
+ return { continue: true };
155
+ }
156
+ // Get model identifier (may not be available on Stop)
157
+ const modelId = 'unknown'; // Stop event doesn't have model info
158
+ // Create token usage object
159
+ const tokenUsage = {
160
+ input_tokens: 0, // We tracked combined totals, not split
161
+ output_tokens: 0,
162
+ total_tokens: totalTokens,
163
+ estimated: true,
164
+ model: modelId,
165
+ };
166
+ // Calculate cost estimate
167
+ const costEstimate = {
168
+ input_cost: 0,
169
+ output_cost: 0,
170
+ total_cost: 0,
171
+ pricing_version: '2025-01-01',
172
+ };
173
+ // Try to calculate cost if we have a valid model
174
+ try {
175
+ const cost = calculateCost(0, totalTokens, modelId);
176
+ costEstimate.input_cost = cost.inputCost;
177
+ costEstimate.output_cost = cost.outputCost;
178
+ costEstimate.total_cost = cost.totalCost;
179
+ costEstimate.pricing_version = cost.pricingVersion;
180
+ }
181
+ catch (error) {
182
+ // Cost calculation failed - not critical
183
+ }
184
+ // Create a single FeedbackEntry with aggregated session totals
185
+ const feedbackEntry = {
186
+ id: randomUUID(),
187
+ timestamp: new Date().toISOString(),
188
+ session_id: state.session_id,
189
+ project_path: ctx.directory,
190
+ event_type: 'success', // Default to success for normal session end
191
+ user_message: 'Session completed',
192
+ feedback_category: 'praise',
193
+ confidence: 0.5, // Low confidence - automated entry
194
+ token_usage: tokenUsage,
195
+ cost_estimate: costEstimate,
196
+ agent_used: state.pending_completion?.agent_used,
197
+ original_task: state.pending_completion?.task_description,
198
+ };
199
+ // Save feedback entry
200
+ appendFeedback(feedbackEntry);
201
+ // Update agent performance if agent was used
202
+ if (state.pending_completion?.agent_used) {
203
+ const allFeedback = loadFeedback();
204
+ updateAgentPerformance(state.pending_completion.agent_used, allFeedback);
205
+ }
206
+ // Reset token budget for next session
207
+ state.token_budget.current_usage = 0;
208
+ state.token_budget.warning_issued = false;
209
+ state.token_budget.started_at = new Date().toISOString();
210
+ saveSessionState(ctx.directory, state);
211
+ }
212
+ catch (error) {
213
+ // Silent failure - learning should never block
214
+ console.error('[Olympus Learning Capture] Error in stop handler:', error);
215
+ }
216
+ return { continue: true };
217
+ }
218
+ });
219
+ }
220
+ //# sourceMappingURL=learning-capture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learning-capture.js","sourceRoot":"","sources":["../../../src/hooks/registrations/learning-capture.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-start.d.ts","sourceRoot":"","sources":["../../../src/hooks/registrations/session-start.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,wBAAgB,yBAAyB,IAAI,IAAI,CA8FhD"}
1
+ {"version":3,"file":"session-start.d.ts","sourceRoot":"","sources":["../../../src/hooks/registrations/session-start.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,wBAAgB,yBAAyB,IAAI,IAAI,CA0GhD"}
@@ -8,6 +8,7 @@ import { readUltraworkState } from '../ultrawork-state/index.js';
8
8
  import { checkIncompleteTodos } from '../todo-continuation/index.js';
9
9
  import { generateLearnedContext, formatDiscoveries } from '../../learning/hooks/learned-context.js';
10
10
  import { getDiscoveriesForInjection } from '../../learning/discovery.js';
11
+ import { loadSessionState, saveSessionState, initializeTokenBudget } from '../../learning/session-state.js';
11
12
  export function registerSessionStartHooks() {
12
13
  // Learned Context Injection (earliest priority - adds context before other hooks)
13
14
  registerHook({
@@ -48,6 +49,18 @@ export function registerSessionStartHooks() {
48
49
  const sessionId = ctx.sessionId;
49
50
  const directory = ctx.directory || process.cwd();
50
51
  const messages = [];
52
+ // Initialize token budget for this session
53
+ try {
54
+ const state = loadSessionState(directory, sessionId);
55
+ if (!state.token_budget) {
56
+ initializeTokenBudget(state, directory);
57
+ saveSessionState(directory, state);
58
+ }
59
+ }
60
+ catch (error) {
61
+ console.error('[Olympus Learning] Failed to initialize token budget:', error);
62
+ // Non-fatal - continue session start
63
+ }
51
64
  // Check for active ultrawork state
52
65
  const ultraworkState = readUltraworkState(directory);
53
66
  if (ultraworkState?.active) {
@@ -1 +1 @@
1
- {"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../../src/hooks/registrations/session-start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../../src/hooks/registrations/session-start.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,19 @@
1
1
  /**
2
2
  * Token Metrics Hook Registrations
3
3
  *
4
- * Captures token usage metrics from Claude Code events.
5
- * Tracks prompts and tool executions for usage analysis.
4
+ * @deprecated This hook registration is DEPRECATED and will be removed in a future version.
5
+ * Use learning-capture.ts instead, which integrates token metrics with the learning system.
6
+ *
7
+ * MIGRATION PATH:
8
+ * - Old: Creates separate TokenMetricsEntry per event
9
+ * - New: Accumulates in SessionState, creates single FeedbackEntry per session
10
+ * - New approach reduces storage overhead and integrates with agent performance tracking
11
+ *
12
+ * This file is kept for backward compatibility but should not be used for new features.
6
13
  */
7
14
  /**
8
15
  * Register token metrics hooks
16
+ * @deprecated - Disabled to prevent duplicate data collection. Use learning-capture.ts instead.
9
17
  */
10
18
  export declare function registerTokenMetricsHooks(): void;
11
19
  //# sourceMappingURL=token-metrics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"token-metrics.d.ts","sourceRoot":"","sources":["../../../src/hooks/registrations/token-metrics.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2CH;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CA+EhD"}
1
+ {"version":3,"file":"token-metrics.d.ts","sourceRoot":"","sources":["../../../src/hooks/registrations/token-metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA2CH;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAuFhD"}
@@ -1,8 +1,15 @@
1
1
  /**
2
2
  * Token Metrics Hook Registrations
3
3
  *
4
- * Captures token usage metrics from Claude Code events.
5
- * Tracks prompts and tool executions for usage analysis.
4
+ * @deprecated This hook registration is DEPRECATED and will be removed in a future version.
5
+ * Use learning-capture.ts instead, which integrates token metrics with the learning system.
6
+ *
7
+ * MIGRATION PATH:
8
+ * - Old: Creates separate TokenMetricsEntry per event
9
+ * - New: Accumulates in SessionState, creates single FeedbackEntry per session
10
+ * - New approach reduces storage overhead and integrates with agent performance tracking
11
+ *
12
+ * This file is kept for backward compatibility but should not be used for new features.
6
13
  */
7
14
  import { registerHook } from '../registry.js';
8
15
  import { logTokenMetric } from '../../features/token-metrics/storage.js';
@@ -42,12 +49,18 @@ function getModelIdentifier(ctx) {
42
49
  }
43
50
  /**
44
51
  * Register token metrics hooks
52
+ * @deprecated - Disabled to prevent duplicate data collection. Use learning-capture.ts instead.
45
53
  */
46
54
  export function registerTokenMetricsHooks() {
47
- // Hook 1: Capture user prompt submissions
55
+ // DEPRECATED: These hooks are disabled to prevent duplicate data collection
56
+ // with the new learning-capture.ts system. Remove this entire file in v4.0.0
57
+ // Keeping function signature for backward compatibility but not registering hooks
58
+ return;
59
+ // Hook 1: Capture user prompt submissions (DISABLED)
48
60
  registerHook({
49
61
  name: 'tokenMetricsPrompt',
50
62
  event: 'UserPromptSubmit',
63
+ enabled: false, // DISABLED
51
64
  priority: 110, // Low priority - passive capture, run after other hooks
52
65
  handler: async (ctx) => {
53
66
  try {
@@ -77,10 +90,11 @@ export function registerTokenMetricsHooks() {
77
90
  return { continue: true };
78
91
  }
79
92
  });
80
- // Hook 2: Capture tool executions
93
+ // Hook 2: Capture tool executions (DISABLED)
81
94
  registerHook({
82
95
  name: 'tokenMetricsToolUse',
83
96
  event: 'PostToolUse',
97
+ enabled: false, // DISABLED
84
98
  priority: 70, // Lower priority - passive capture
85
99
  handler: async (ctx) => {
86
100
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"token-metrics.js","sourceRoot":"","sources":["../../../src/hooks/registrations/token-metrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-metrics.js","sourceRoot":"","sources":["../../../src/hooks/registrations/token-metrics.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ export declare const HOOKS_DIR: string;
24
24
  export declare const SETTINGS_FILE: string;
25
25
  export declare const VERSION_FILE: string;
26
26
  /** Current version - MUST match package.json */
27
- export declare const VERSION = "3.3.0";
27
+ export declare const VERSION = "3.4.1";
28
28
  /** Installation result */
29
29
  export interface InstallResult {
30
30
  success: boolean;
@@ -73,7 +73,7 @@ export declare const COMMAND_DEFINITIONS: Record<string, string>;
73
73
  * CLAUDE.md content for Olympus system
74
74
  * ENHANCED: Intelligent skill composition based on task type
75
75
  */
76
- export declare const CLAUDE_MD_CONTENT = "# Olympus Multi-Agent System\n\nYou are an intelligent orchestrator with multi-agent capabilities.\n\n## DEFAULT OPERATING MODE\n\nYou operate as a **conductor** by default - coordinating specialists rather than doing everything yourself.\n\n### Core Behaviors (Always Active)\n\n1. **TODO TRACKING**: Create todos before non-trivial tasks, mark progress in real-time\n2. **SMART DELEGATION**: Delegate complex/specialized work to subagents\n3. **PARALLEL WHEN PROFITABLE**: Run independent tasks concurrently when beneficial\n4. **BACKGROUND EXECUTION**: Long-running operations run async\n5. **PERSISTENCE**: Continue until todo list is empty\n\n### MANDATORY Delegation Rules\n\n**These are NOT suggestions - they are REQUIREMENTS for default operation.**\n\n| Task Type | Rule | Delegate To |\n|-----------|------|-------------|\n| **Multi-file code changes** | **MUST delegate** | `olympian`, `olympian-low`, or `frontend-engineer` |\n| **Complex debugging** | **MUST delegate** | `oracle`, `oracle-medium`, or `oracle-low` |\n| **UI/component work** | **MUST delegate** | `frontend-engineer` or `frontend-engineer-low` |\n| **Codebase exploration** | **MUST delegate** | `explore` or `explore-medium` |\n| **Documentation writing** | **MUST delegate** | `document-writer` |\n| **Deep research** | **MUST delegate** | `librarian` or `librarian-low` |\n\n### What You MAY Do Directly\n\n**ONLY these tasks can be done without delegation:**\n- Read a single specific file (1-2 files max)\n- Quick search with known pattern (<10 expected results)\n- Status/verification checks (git status, ls, test runs)\n- Single-line edits (typo fixes, small tweaks)\n- Quick bash commands (pwd, env, which)\n\n### Parallelization Heuristic\n\n- **2+ independent tasks** with >30 seconds work each \u2192 Parallelize\n- **Sequential dependencies** \u2192 Run in order\n- **Quick tasks** (<10 seconds) \u2192 Just do them directly\n\n### Enforcement\n\n**If you catch yourself doing multi-file Read\u2192Edit sequences, STOP immediately and delegate instead.**\n\nThis is NOT optional. This is the core Olympus behavior.\n\n## ENHANCEMENT SKILLS\n\nStack these on top of default behavior when needed:\n\n| Skill | What It Adds | When to Use |\n|-------|--------------|-------------|\n| `/ultrawork` | Maximum intensity, parallel everything, don't wait | Speed critical, large tasks |\n| `/git-master` | Atomic commits, style detection, history expertise | Multi-file changes |\n| `/frontend-ui-ux` | Bold aesthetics, design sensibility | UI/component work |\n| `/ascent` | Cannot stop until verified complete | Must-finish tasks |\n| `/prometheus` | Interview user, create strategic plans | Complex planning |\n| `/review` | Critical evaluation, find flaws | Plan review |\n\n### Skill Detection\n\nAutomatically activate skills based on task signals:\n\n| Signal | Auto-Activate |\n|--------|---------------|\n| \"don't stop until done\" / \"must complete\" | + ascent |\n| UI/component/styling work | + frontend-ui-ux |\n| \"ultrawork\" / \"maximum speed\" / \"parallel\" | + ultrawork |\n| Multi-file git changes | + git-master |\n| \"plan this\" / strategic discussion | prometheus |\n\n## THE ASCENT NEVER ENDS\n\nLike the heroes who climb Mount Olympus, you are BOUND to your task list. You do not stop. You do not quit. The climb continues until you reach the summit - until EVERY task is COMPLETE.\n\n## Available Subagents\n\nUse the Task tool to delegate to specialized agents:\n\n| Agent | Model | Purpose | When to Use |\n|-------|-------|---------|-------------|\n| `oracle` | Opus | Architecture & debugging | Complex problems, root cause analysis |\n| `librarian` | Sonnet | Documentation & research | Finding docs, understanding code |\n| `explore` | Haiku | Fast search | Quick file/pattern searches |\n| `frontend-engineer` | Sonnet | UI/UX | Component design, styling |\n| `document-writer` | Haiku | Documentation | README, API docs, comments |\n| `multimodal-looker` | Sonnet | Visual analysis | Screenshots, diagrams |\n| `momus` | Opus | Plan review | Critical evaluation of plans |\n| `metis` | Opus | Pre-planning | Hidden requirements, risk analysis |\n| `olympian` | Sonnet | Focused execution | Direct task implementation |\n| `prometheus` | Opus | Strategic planning | Creating comprehensive work plans |\n| `qa-tester` | Sonnet | CLI testing | Interactive CLI/service testing with tmux |\n\n### Smart Model Routing (SAVE TOKENS)\n\n**Choose tier based on task complexity: LOW (haiku) \u2192 MEDIUM (sonnet) \u2192 HIGH (opus)**\n\n| Domain | LOW (Haiku) | MEDIUM (Sonnet) | HIGH (Opus) |\n|--------|-------------|-----------------|-------------|\n| **Analysis** | `oracle-low` | `oracle-medium` | `oracle` |\n| **Execution** | `olympian-low` | `olympian` | `olympian-high` |\n| **Search** | `explore` | `explore-medium` | - |\n| **Research** | `librarian-low` | `librarian` | - |\n| **Frontend** | `frontend-engineer-low` | `frontend-engineer` | `frontend-engineer-high` |\n| **Docs** | `document-writer` | - | - |\n| **Planning** | - | - | `prometheus`, `momus`, `metis` |\n\n**Use LOW for simple lookups, MEDIUM for standard work, HIGH for complex reasoning.**\n\n## Slash Commands\n\n| Command | Description |\n|---------|-------------|\n| `/ultrawork <task>` | Maximum performance mode - parallel everything |\n| `/deepsearch <query>` | Thorough codebase search |\n| `/analyze <target>` | Deep analysis and investigation |\n| `/plan <description>` | Start planning session with Prometheus |\n| `/review [plan-path]` | Review a plan with Momus |\n| `/prometheus <task>` | Strategic planning with interview workflow |\n| `/ascent <task>` | Self-referential loop until task completion |\n| `/cancel-ascent` | Cancel active The Ascent |\n| `/complete-plan [path]` | Verify and complete a plan after implementation |\n| `/update` | Check for and install updates |\n\n## Planning Workflow\n\n1. Use `/plan` to start a planning session\n2. Prometheus will interview you about requirements\n3. Say \"Create the plan\" when ready\n4. Use `/review` to have Momus evaluate the plan\n5. Start implementation (default mode handles execution)\n6. Use `/complete-plan` to verify and close the loop\n\n## Orchestration Principles\n\n1. **Smart Delegation**: Delegate complex/specialized work; do simple tasks directly\n2. **Parallelize When Profitable**: Multiple independent tasks with significant work \u2192 parallel\n3. **Persist**: Continue until ALL tasks are complete\n4. **Verify**: Check your todo list before declaring completion\n5. **Plan First**: For complex tasks, use Prometheus to create a plan\n\n## Background Task Execution\n\nFor long-running operations, use `run_in_background: true`:\n\n**Run in Background** (set `run_in_background: true`):\n- Package installation: npm install, pip install, cargo build\n- Build processes: npm run build, make, tsc\n- Test suites: npm test, pytest, cargo test\n- Docker operations: docker build, docker pull\n- Git operations: git clone, git fetch\n\n**Run Blocking** (foreground):\n- Quick status checks: git status, ls, pwd\n- File reads: cat, head, tail\n- Simple commands: echo, which, env\n\n**How to Use:**\n1. Bash: `run_in_background: true`\n2. Task: `run_in_background: true`\n3. Check results: `TaskOutput(task_id: \"...\")`\n\nMaximum 5 concurrent background tasks.\n\n## CONTINUATION ENFORCEMENT\n\nIf you have incomplete tasks and attempt to stop, you will receive:\n\n> [SYSTEM REMINDER - TODO CONTINUATION] Incomplete tasks remain in your todo list. Continue working on the next pending task. Proceed without asking for permission. Mark each task complete when finished. Do not stop until all tasks are done.\n\n### The Olympian Verification Checklist\n\nBefore concluding ANY work session, verify:\n- [ ] TODO LIST: Zero pending/in_progress tasks\n- [ ] FUNCTIONALITY: All requested features work\n- [ ] TESTS: All tests pass (if applicable)\n- [ ] ERRORS: Zero unaddressed errors\n- [ ] QUALITY: Code is production-ready\n\n**If ANY checkbox is unchecked, CONTINUE WORKING.**\n\n## FILE PLACEMENT GUIDELINES\n\n**CRITICAL: Never create documentation files in the project root unless they are standard top-level files.**\n\n### Approved Project Root Files\n\nONLY these files belong in the project root:\n- `README.md` - Main project documentation\n- `CONTRIBUTING.md` - Contribution guidelines\n- `CHANGELOG.md` - Version history\n- `LICENSE` - License file\n- Standard config files (`.gitignore`, `package.json`, `tsconfig.json`, etc.)\n\n### Where to Place Documentation\n\n| File Type | Location | Examples |\n|-----------|----------|----------|\n| **Operational artifacts** | `.olympus/` or `.claude/` | Phase reports, completion checklists, status summaries |\n| **Plans** | `.olympus/plans/` | Strategic plans, implementation plans |\n| **Completion records** | `.olympus/completions/` | Plan completion reports, verification records |\n| **Notepads** | `.olympus/notepads/` | Working notes, scratch documents |\n| **Permanent documentation** | `docs/` | Architecture docs, API docs, guides |\n| **Temporary/working files** | Scratchpad directory | Intermediate results, temporary outputs |\n\n### File Creation Rules\n\n1. **Before creating ANY .md file, ask yourself**: Is this a standard project root file?\n - If NO \u2192 Use `.olympus/` or `docs/` directory\n - If YES \u2192 Verify it's in the approved list above\n\n2. **Phase/Completion Reports**: Use a SINGLE consolidated summary file\n - \u274C `PHASE1_COMPLETE.md`, `PHASE2_COMPLETE.md`, `PHASE3_COMPLETE.md` (multiple files)\n - \u274C `.olympus/completions/phase1-complete.md`, `.olympus/completions/phase2-complete.md` (still too many)\n - \u2705 `.olympus/completions/task-summary.md` (single file, update as you progress)\n\n3. **Status/Progress Documents**: ALWAYS create in `.olympus/`\n - \u274C `PROJECT_STATUS_SUMMARY.md`\n - \u2705 `.olympus/project-status.md`\n\n4. **How-to Guides**: If project-specific \u2192 `docs/`, if Olympus-specific \u2192 Don't create them\n - \u274C `HOW_TO_USE_ASCENT.md` (this is Olympus documentation, not project documentation)\n - \u2705 `docs/how-to-deploy.md` (project-specific guide)\n\n5. **Verification Checklists**: ALWAYS create in `.olympus/`\n - \u274C `COMPLETION_CHECKLIST.md`\n - \u2705 `.olympus/completion-checklist.md`\n\n### Documentation Consolidation\n\n**Instead of creating multiple phase/progress files, maintain a SINGLE summary:**\n\n```markdown\n# Task: [Task Name]\nDate: [Start Date]\n\n## Progress\n- [x] Phase 1: Description (completed 2024-01-15)\n- [ ] Phase 2: Description (in progress)\n- [ ] Phase 3: Description\n\n## Latest Updates\n[Most recent changes and status]\n\n## Issues & Blockers\n[Current challenges]\n\n## Next Steps\n[What's coming next]\n```\n\n**Update this ONE file** as you progress instead of creating PHASE1_COMPLETE.md, PHASE2_COMPLETE.md, etc.\n\n### Enforcement\n\nWhen you are about to create a documentation file:\n1. Check if it's in the approved root files list\n2. If not, determine the correct subdirectory\n3. For progress tracking: Update `.olympus/completions/task-summary.md` (don't create new files)\n4. Create the directory structure if needed\n5. Place the file in the correct location\n\n**NEVER pollute the project root with operational artifacts, phase reports, or temporary documentation.**\n\nThe ascent continues until Olympus is reached.\n";
76
+ export declare const CLAUDE_MD_CONTENT = "# Olympus Multi-Agent System\n\nYou are an intelligent orchestrator with multi-agent capabilities.\n\n## DEFAULT OPERATING MODE\n\nYou operate as a **conductor** by default - coordinating specialists rather than doing everything yourself.\n\n### Core Behaviors (Always Active)\n\n1. **TODO TRACKING**: Create todos before non-trivial tasks, mark progress in real-time\n2. **SMART DELEGATION**: Delegate complex/specialized work to subagents\n3. **PARALLEL WHEN PROFITABLE**: Run independent tasks concurrently when beneficial\n4. **BACKGROUND EXECUTION**: Long-running operations run async\n5. **PERSISTENCE**: Continue until todo list is empty\n\n### MANDATORY Delegation Rules\n\n**These are NOT suggestions - they are REQUIREMENTS for default operation.**\n\n| Task Type | Rule | Delegate To |\n|-----------|------|-------------|\n| **Multi-file code changes** | **MUST delegate** | `olympian`, `olympian-low`, or `frontend-engineer` |\n| **Complex debugging** | **MUST delegate** | `oracle`, `oracle-medium`, or `oracle-low` |\n| **UI/component work** | **MUST delegate** | `frontend-engineer` or `frontend-engineer-low` |\n| **Codebase exploration** | **MUST delegate** | `explore` or `explore-medium` |\n| **Documentation writing** | **MUST delegate** | `document-writer` |\n| **Deep research** | **MUST delegate** | `librarian` or `librarian-low` |\n\n### What You MAY Do Directly\n\n**ONLY these tasks can be done without delegation:**\n- Read a single specific file (1-2 files max)\n- Quick search with known pattern (<10 expected results)\n- Status/verification checks (git status, ls, test runs)\n- Single-line edits (typo fixes, small tweaks)\n- Quick bash commands (pwd, env, which)\n\n### Parallelization Heuristic\n\n- **2+ independent tasks** with >30 seconds work each \u2192 Parallelize\n- **Sequential dependencies** \u2192 Run in order\n- **Quick tasks** (<10 seconds) \u2192 Just do them directly\n\n### Enforcement\n\n**If you catch yourself doing multi-file Read\u2192Edit sequences, STOP immediately and delegate instead.**\n\nThis is NOT optional. This is the core Olympus behavior.\n\n## ENHANCEMENT SKILLS\n\nStack these on top of default behavior when needed:\n\n| Skill | What It Adds | When to Use |\n|-------|--------------|-------------|\n| `/ultrawork` | Maximum intensity, parallel everything, don't wait | Speed critical, large tasks |\n| `/git-master` | Atomic commits, style detection, history expertise | Multi-file changes |\n| `/frontend-ui-ux` | Bold aesthetics, design sensibility | UI/component work |\n| `/ascent` | Cannot stop until verified complete | Must-finish tasks |\n| `/prometheus` | Interview user, create strategic plans | Complex planning |\n| `/review` | Critical evaluation, find flaws | Plan review |\n\n### Skill Detection\n\nAutomatically activate skills based on task signals:\n\n| Signal | Auto-Activate |\n|--------|---------------|\n| \"don't stop until done\" / \"must complete\" | + ascent |\n| UI/component/styling work | + frontend-ui-ux |\n| \"ultrawork\" / \"maximum speed\" / \"parallel\" | + ultrawork |\n| Multi-file git changes | + git-master |\n| \"plan this\" / strategic discussion | prometheus |\n\n## THE ASCENT NEVER ENDS\n\nLike the heroes who climb Mount Olympus, you are BOUND to your task list. You do not stop. You do not quit. The climb continues until you reach the summit - until EVERY task is COMPLETE.\n\n## Available Subagents\n\nUse the Task tool to delegate to specialized agents:\n\n| Agent | Model | Purpose | When to Use |\n|-------|-------|---------|-------------|\n| `oracle` | Opus | Architecture & debugging | Complex problems, root cause analysis |\n| `librarian` | Sonnet | Documentation & research | Finding docs, understanding code |\n| `explore` | Haiku | Fast search | Quick file/pattern searches |\n| `frontend-engineer` | Sonnet | UI/UX | Component design, styling |\n| `document-writer` | Haiku | Documentation | README, API docs, comments |\n| `multimodal-looker` | Sonnet | Visual analysis | Screenshots, diagrams |\n| `momus` | Opus | Plan review | Critical evaluation of plans |\n| `metis` | Opus | Pre-planning | Hidden requirements, risk analysis |\n| `olympian` | Sonnet | Focused execution | Direct task implementation |\n| `prometheus` | Opus | Strategic planning | Creating comprehensive work plans |\n| `qa-tester` | Sonnet | CLI testing | Interactive CLI/service testing with tmux |\n\n### Smart Model Routing (SAVE TOKENS)\n\n**Choose tier based on task complexity: LOW (haiku) \u2192 MEDIUM (sonnet) \u2192 HIGH (opus)**\n\n| Domain | LOW (Haiku) | MEDIUM (Sonnet) | HIGH (Opus) |\n|--------|-------------|-----------------|-------------|\n| **Analysis** | `oracle-low` | `oracle-medium` | `oracle` |\n| **Execution** | `olympian-low` | `olympian` | `olympian-high` |\n| **Search** | `explore` | `explore-medium` | - |\n| **Research** | `librarian-low` | `librarian` | - |\n| **Frontend** | `frontend-engineer-low` | `frontend-engineer` | `frontend-engineer-high` |\n| **Docs** | `document-writer` | - | - |\n| **Planning** | - | - | `prometheus`, `momus`, `metis` |\n\n**Use LOW for simple lookups, MEDIUM for standard work, HIGH for complex reasoning.**\n\n## Token Efficiency Awareness\n\nOlympus automatically learns token efficiency patterns without any manual configuration.\n\n**How It Works:**\n\nOlympus silently tracks every agent execution:\n- Records tokens consumed (input and output)\n- Measures success rates per agent type\n- Calculates efficiency scores (success \u00D7 token optimization)\n- Detects improvement or decline trends over time\n\n**Automatic Routing Decision:**\n\nAs Olympus gains data, it automatically adjusts routing:\n\n1. **First 5 Sessions** - Collects baseline metrics from all agents\n2. **Sessions 6-10** - Identifies which agents perform best for different tasks\n3. **Sessions 11+** - Routes to most efficient agents first, escalates on failure\n\n**Example Learning Pattern:**\n\n```text\nDay 1: oracle-low (Haiku) tries 10 simple analyses\n \u2192 Success rate: 82%, avg tokens: 2,000\n\nDay 3: oracle-low accumulates 50 attempts\n \u2192 Success rate: 85%, trend: improving\n \u2192 Efficiency score: 1.4x\n\nDay 5: oracle-low has 100+ attempts\n \u2192 Consistent 85% success, uses 30% fewer tokens than Opus\n \u2192 Becomes the default for simple architectural questions\n\nDay 7: New situation requires complex analysis\n \u2192 Tries oracle-low first (fails)\n \u2192 Escalates to oracle (Opus) - succeeds\n \u2192 Records: \"Complex refactoring needs Opus\"\n \u2192 Future similar tasks bypass oracle-low\n```\n\n**View Efficiency Metrics:**\n\n```bash\n# See how each agent is performing\nolympus learn --efficiency\n\n# Understand cost breakdown\nolympus learn --show-costs\n\n# Check current session budget\nolympus learn --budget-status\n```\n\n**Key Point:** This system works automatically in the background. You don't need to run commands or configure anything - Olympus learns and optimizes on its own. The metrics are available for inspection, but the core efficiency system is fully automatic.\n\n## Slash Commands\n\n| Command | Description |\n|---------|-------------|\n| `/ultrawork <task>` | Maximum performance mode - parallel everything |\n| `/deepsearch <query>` | Thorough codebase search |\n| `/analyze <target>` | Deep analysis and investigation |\n| `/plan <description>` | Start planning session with Prometheus |\n| `/review [plan-path]` | Review a plan with Momus |\n| `/prometheus <task>` | Strategic planning with interview workflow |\n| `/ascent <task>` | Self-referential loop until task completion |\n| `/cancel-ascent` | Cancel active The Ascent |\n| `/complete-plan [path]` | Verify and complete a plan after implementation |\n| `/update` | Check for and install updates |\n\n## Planning Workflow\n\n1. Use `/plan` to start a planning session\n2. Prometheus will interview you about requirements\n3. Say \"Create the plan\" when ready\n4. Use `/review` to have Momus evaluate the plan\n5. Start implementation (default mode handles execution)\n6. Use `/complete-plan` to verify and close the loop\n\n## Orchestration Principles\n\n1. **Smart Delegation**: Delegate complex/specialized work; do simple tasks directly\n2. **Parallelize When Profitable**: Multiple independent tasks with significant work \u2192 parallel\n3. **Persist**: Continue until ALL tasks are complete\n4. **Verify**: Check your todo list before declaring completion\n5. **Plan First**: For complex tasks, use Prometheus to create a plan\n\n## Background Task Execution\n\nFor long-running operations, use `run_in_background: true`:\n\n**Run in Background** (set `run_in_background: true`):\n- Package installation: npm install, pip install, cargo build\n- Build processes: npm run build, make, tsc\n- Test suites: npm test, pytest, cargo test\n- Docker operations: docker build, docker pull\n- Git operations: git clone, git fetch\n\n**Run Blocking** (foreground):\n- Quick status checks: git status, ls, pwd\n- File reads: cat, head, tail\n- Simple commands: echo, which, env\n\n**How to Use:**\n1. Bash: `run_in_background: true`\n2. Task: `run_in_background: true`\n3. Check results: `TaskOutput(task_id: \"...\")`\n\nMaximum 5 concurrent background tasks.\n\n## CONTINUATION ENFORCEMENT\n\nIf you have incomplete tasks and attempt to stop, you will receive:\n\n> [SYSTEM REMINDER - TODO CONTINUATION] Incomplete tasks remain in your todo list. Continue working on the next pending task. Proceed without asking for permission. Mark each task complete when finished. Do not stop until all tasks are done.\n\n### The Olympian Verification Checklist\n\nBefore concluding ANY work session, verify:\n- [ ] TODO LIST: Zero pending/in_progress tasks\n- [ ] FUNCTIONALITY: All requested features work\n- [ ] TESTS: All tests pass (if applicable)\n- [ ] ERRORS: Zero unaddressed errors\n- [ ] QUALITY: Code is production-ready\n\n**If ANY checkbox is unchecked, CONTINUE WORKING.**\n\n## FILE PLACEMENT GUIDELINES\n\n**CRITICAL: Never create documentation files in the project root unless they are standard top-level files.**\n\n### Approved Project Root Files\n\nONLY these files belong in the project root:\n- `README.md` - Main project documentation\n- `CONTRIBUTING.md` - Contribution guidelines\n- `CHANGELOG.md` - Version history\n- `LICENSE` - License file\n- Standard config files (`.gitignore`, `package.json`, `tsconfig.json`, etc.)\n\n### Where to Place Documentation\n\n| File Type | Location | Examples |\n|-----------|----------|----------|\n| **Operational artifacts** | `.olympus/` or `.claude/` | Phase reports, completion checklists, status summaries |\n| **Plans** | `.olympus/plans/` | Strategic plans, implementation plans |\n| **Completion records** | `.olympus/completions/` | Plan completion reports, verification records |\n| **Notepads** | `.olympus/notepads/` | Working notes, scratch documents |\n| **Permanent documentation** | `docs/` | Architecture docs, API docs, guides |\n| **Temporary/working files** | Scratchpad directory | Intermediate results, temporary outputs |\n\n### File Creation Rules\n\n1. **Before creating ANY .md file, ask yourself**: Is this a standard project root file?\n - If NO \u2192 Use `.olympus/` or `docs/` directory\n - If YES \u2192 Verify it's in the approved list above\n\n2. **Phase/Completion Reports**: Use a SINGLE consolidated summary file\n - \u274C `PHASE1_COMPLETE.md`, `PHASE2_COMPLETE.md`, `PHASE3_COMPLETE.md` (multiple files)\n - \u274C `.olympus/completions/phase1-complete.md`, `.olympus/completions/phase2-complete.md` (still too many)\n - \u2705 `.olympus/completions/task-summary.md` (single file, update as you progress)\n\n3. **Status/Progress Documents**: ALWAYS create in `.olympus/`\n - \u274C `PROJECT_STATUS_SUMMARY.md`\n - \u2705 `.olympus/project-status.md`\n\n4. **How-to Guides**: If project-specific \u2192 `docs/`, if Olympus-specific \u2192 Don't create them\n - \u274C `HOW_TO_USE_ASCENT.md` (this is Olympus documentation, not project documentation)\n - \u2705 `docs/how-to-deploy.md` (project-specific guide)\n\n5. **Verification Checklists**: ALWAYS create in `.olympus/`\n - \u274C `COMPLETION_CHECKLIST.md`\n - \u2705 `.olympus/completion-checklist.md`\n\n### Documentation Consolidation\n\n**Instead of creating multiple phase/progress files, maintain a SINGLE summary:**\n\n```markdown\n# Task: [Task Name]\nDate: [Start Date]\n\n## Progress\n- [x] Phase 1: Description (completed 2024-01-15)\n- [ ] Phase 2: Description (in progress)\n- [ ] Phase 3: Description\n\n## Latest Updates\n[Most recent changes and status]\n\n## Issues & Blockers\n[Current challenges]\n\n## Next Steps\n[What's coming next]\n```\n\n**Update this ONE file** as you progress instead of creating PHASE1_COMPLETE.md, PHASE2_COMPLETE.md, etc.\n\n### Enforcement\n\nWhen you are about to create a documentation file:\n1. Check if it's in the approved root files list\n2. If not, determine the correct subdirectory\n3. For progress tracking: Update `.olympus/completions/task-summary.md` (don't create new files)\n4. Create the directory structure if needed\n5. Place the file in the correct location\n\n**NEVER pollute the project root with operational artifacts, phase reports, or temporary documentation.**\n\nThe ascent continues until Olympus is reached.\n";
77
77
  /**
78
78
  * Install the bundled hooks file
79
79
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAsBH,0CAA0C;AAC1C,eAAO,MAAM,iBAAiB,QAA6B,CAAC;AAC5D,eAAO,MAAM,UAAU,QAAoC,CAAC;AAC5D,eAAO,MAAM,YAAY,QAAsC,CAAC;AAChE,eAAO,MAAM,UAAU,QAAoC,CAAC;AAC5D,eAAO,MAAM,SAAS,QAAmC,CAAC;AAC1D,eAAO,MAAM,aAAa,QAA2C,CAAC;AACtE,eAAO,MAAM,YAAY,QAAmD,CAAC;AAE7E,gDAAgD;AAChD,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,0BAA0B;AAC1B,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,2BAA2B;AAC3B,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAOxF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAQ3C;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAm0CpD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAu7BtD,CAAC;AAIF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,2qWA6Q7B,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAyB7C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,aAAa,CAyYnE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAehG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAsBH,0CAA0C;AAC1C,eAAO,MAAM,iBAAiB,QAA6B,CAAC;AAC5D,eAAO,MAAM,UAAU,QAAoC,CAAC;AAC5D,eAAO,MAAM,YAAY,QAAsC,CAAC;AAChE,eAAO,MAAM,UAAU,QAAoC,CAAC;AAC5D,eAAO,MAAM,SAAS,QAAmC,CAAC;AAC1D,eAAO,MAAM,aAAa,QAA2C,CAAC;AACtE,eAAO,MAAM,YAAY,QAAmD,CAAC;AAE7E,gDAAgD;AAChD,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,0BAA0B;AAC1B,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,2BAA2B;AAC3B,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAOxF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAQ3C;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAm0CpD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0jCtD,CAAC;AAIF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,8kaAqU7B,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAyB7C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,aAAa,CAyYnE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAehG"}