olympus-ai 2.7.4 → 3.1.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 (103) hide show
  1. package/.claude/.olympus-version.json +6 -0
  2. package/.claude/CLAUDE.md +1 -49
  3. package/.claude/agents/document-writer.md +152 -0
  4. package/.claude/agents/explore-medium.md +25 -0
  5. package/.claude/agents/explore.md +86 -0
  6. package/.claude/agents/frontend-engineer-high.md +17 -0
  7. package/.claude/agents/frontend-engineer-low.md +17 -0
  8. package/.claude/agents/frontend-engineer.md +80 -0
  9. package/.claude/agents/librarian-low.md +22 -0
  10. package/.claude/agents/librarian.md +70 -0
  11. package/.claude/agents/metis.md +85 -0
  12. package/.claude/agents/momus.md +97 -0
  13. package/.claude/agents/multimodal-looker.md +39 -0
  14. package/.claude/agents/olympian-high.md +32 -0
  15. package/.claude/agents/olympian-low.md +22 -0
  16. package/.claude/agents/olympian.md +78 -0
  17. package/.claude/agents/oracle-low.md +23 -0
  18. package/.claude/agents/oracle-medium.md +28 -0
  19. package/.claude/agents/oracle.md +77 -0
  20. package/.claude/agents/prometheus.md +125 -0
  21. package/.claude/agents/qa-tester.md +220 -0
  22. package/.claude/commands/analyze/skill.md +14 -0
  23. package/.claude/commands/ascent/skill.md +152 -0
  24. package/.claude/commands/cancel-ascent.md +9 -0
  25. package/.claude/commands/complete-plan.md +101 -0
  26. package/.claude/commands/deepsearch/skill.md +15 -0
  27. package/.claude/commands/olympus/skill.md +82 -0
  28. package/.claude/commands/olympus-default.md +26 -0
  29. package/.claude/commands/plan.md +30 -0
  30. package/.claude/commands/prometheus/skill.md +38 -0
  31. package/.claude/commands/review/skill.md +34 -0
  32. package/.claude/commands/ultrawork/skill.md +90 -0
  33. package/.claude/commands/update.md +38 -0
  34. package/.claude-plugin/plugin.json +1 -1
  35. package/COPYRIGHT +22 -0
  36. package/LICENSE +1 -1
  37. package/NOTICE +24 -0
  38. package/README.md +376 -10
  39. package/dist/__tests__/installer.test.js +1 -1
  40. package/dist/__tests__/learning/cleanup.test.d.ts +2 -0
  41. package/dist/__tests__/learning/cleanup.test.d.ts.map +1 -0
  42. package/dist/__tests__/learning/cleanup.test.js +122 -0
  43. package/dist/__tests__/learning/cleanup.test.js.map +1 -0
  44. package/dist/__tests__/learning/storage.test.d.ts +2 -0
  45. package/dist/__tests__/learning/storage.test.d.ts.map +1 -0
  46. package/dist/__tests__/learning/storage.test.js +75 -0
  47. package/dist/__tests__/learning/storage.test.js.map +1 -0
  48. package/dist/agents/definitions.d.ts.map +1 -1
  49. package/dist/agents/definitions.js +22 -6
  50. package/dist/agents/definitions.js.map +1 -1
  51. package/dist/agents/olympian.d.ts.map +1 -1
  52. package/dist/agents/olympian.js +23 -7
  53. package/dist/agents/olympian.js.map +1 -1
  54. package/dist/agents/orchestrator-olympus.js +1 -1
  55. package/dist/cli/index.js +128 -9
  56. package/dist/cli/index.js.map +1 -1
  57. package/dist/hooks/context-window-limit-recovery/index.d.ts +2 -3
  58. package/dist/hooks/context-window-limit-recovery/index.d.ts.map +1 -1
  59. package/dist/hooks/context-window-limit-recovery/index.js +2 -3
  60. package/dist/hooks/context-window-limit-recovery/index.js.map +1 -1
  61. package/dist/hooks/olympus-orchestrator/constants.d.ts +3 -3
  62. package/dist/hooks/olympus-orchestrator/constants.d.ts.map +1 -1
  63. package/dist/hooks/olympus-orchestrator/constants.js +3 -3
  64. package/dist/hooks/preemptive-compaction/index.d.ts +2 -3
  65. package/dist/hooks/preemptive-compaction/index.d.ts.map +1 -1
  66. package/dist/hooks/preemptive-compaction/index.js +2 -3
  67. package/dist/hooks/preemptive-compaction/index.js.map +1 -1
  68. package/dist/installer/index.d.ts +1 -1
  69. package/dist/installer/index.d.ts.map +1 -1
  70. package/dist/installer/index.js +24 -8
  71. package/dist/installer/index.js.map +1 -1
  72. package/dist/learning/cleanup.d.ts +18 -0
  73. package/dist/learning/cleanup.d.ts.map +1 -0
  74. package/dist/learning/cleanup.js +160 -0
  75. package/dist/learning/cleanup.js.map +1 -0
  76. package/dist/learning/discovery.d.ts.map +1 -1
  77. package/dist/learning/discovery.js +3 -1
  78. package/dist/learning/discovery.js.map +1 -1
  79. package/dist/learning/pattern-extractor.d.ts +1 -1
  80. package/dist/learning/pattern-extractor.d.ts.map +1 -1
  81. package/dist/learning/pattern-extractor.js +4 -2
  82. package/dist/learning/pattern-extractor.js.map +1 -1
  83. package/dist/learning/stats.d.ts +28 -0
  84. package/dist/learning/stats.d.ts.map +1 -0
  85. package/dist/learning/stats.js +112 -0
  86. package/dist/learning/stats.js.map +1 -0
  87. package/dist/learning/storage.d.ts +4 -0
  88. package/dist/learning/storage.d.ts.map +1 -1
  89. package/dist/learning/storage.js +26 -1
  90. package/dist/learning/storage.js.map +1 -1
  91. package/package.json +9 -4
  92. package/{dist → scripts/dist}/hooks/olympus-hooks.cjs +70 -69
  93. package/scripts/esbuild.hooks.mjs +67 -0
  94. package/scripts/generate-logo-hybrid-v2.mjs +213 -0
  95. package/scripts/generate-logo-hybrid.mjs +209 -0
  96. package/scripts/generate-logo-infinity.mjs +239 -0
  97. package/scripts/generate-logo-mythology.mjs +190 -0
  98. package/scripts/generate-logo-orchestration.mjs +228 -0
  99. package/scripts/generate-logo-recraft.mjs +147 -0
  100. package/scripts/generate-logo-simple.mjs +154 -0
  101. package/scripts/generate-logo.mjs +117 -0
  102. package/scripts/rebrand.mjs +206 -0
  103. package/.claude-plugin/nul +0 -3
@@ -0,0 +1,122 @@
1
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
+ import { existsSync, mkdirSync, rmSync, writeFileSync } from 'fs';
3
+ import { join } from 'path';
4
+ import { cleanupLearning } from '../../learning/cleanup.js';
5
+ const TEST_DIR = join(process.cwd(), '.test-cleanup');
6
+ describe('Learning Cleanup', () => {
7
+ beforeEach(() => {
8
+ if (existsSync(TEST_DIR)) {
9
+ rmSync(TEST_DIR, { recursive: true });
10
+ }
11
+ mkdirSync(TEST_DIR, { recursive: true });
12
+ process.env.HOME = TEST_DIR;
13
+ });
14
+ afterEach(() => {
15
+ if (existsSync(TEST_DIR)) {
16
+ rmSync(TEST_DIR, { recursive: true });
17
+ }
18
+ delete process.env.HOME;
19
+ });
20
+ it('removes old feedback entries', () => {
21
+ const learningDir = join(TEST_DIR, '.claude', 'olympus', 'learning');
22
+ mkdirSync(learningDir, { recursive: true });
23
+ const logPath = join(learningDir, 'feedback-log.jsonl');
24
+ const oldDate = new Date();
25
+ oldDate.setDate(oldDate.getDate() - 200); // 200 days ago
26
+ const entries = [
27
+ {
28
+ id: 'old-1',
29
+ timestamp: oldDate.toISOString(),
30
+ session_id: 'session-1',
31
+ project_path: '/test',
32
+ event_type: 'revision',
33
+ user_message: 'Old message',
34
+ feedback_category: 'correction',
35
+ confidence: 0.9,
36
+ },
37
+ {
38
+ id: 'new-1',
39
+ timestamp: new Date().toISOString(),
40
+ session_id: 'session-2',
41
+ project_path: '/test',
42
+ event_type: 'revision',
43
+ user_message: 'New message',
44
+ feedback_category: 'correction',
45
+ confidence: 0.9,
46
+ },
47
+ ];
48
+ writeFileSync(logPath, entries.map(e => JSON.stringify(e)).join('\n') + '\n', 'utf-8');
49
+ const result = cleanupLearning('/test', { ageDays: 180, dryRun: false });
50
+ expect(result.feedback_entries_removed).toBe(1);
51
+ expect(result.space_freed_mb).toBeGreaterThan(0);
52
+ });
53
+ it('removes expired discoveries', () => {
54
+ const learningDir = join(TEST_DIR, '.claude', 'olympus', 'learning');
55
+ mkdirSync(learningDir, { recursive: true });
56
+ const discoveryPath = join(learningDir, 'discoveries.jsonl');
57
+ const expiredDate = new Date();
58
+ expiredDate.setDate(expiredDate.getDate() - 10);
59
+ const futureDate = new Date();
60
+ futureDate.setDate(futureDate.getDate() + 10);
61
+ const discoveries = [
62
+ {
63
+ id: 'expired-1',
64
+ timestamp: new Date().toISOString(),
65
+ session_id: 'session-1',
66
+ project_path: '/test',
67
+ category: 'workaround',
68
+ summary: 'Expired discovery',
69
+ details: 'This is expired',
70
+ agent_name: 'oracle',
71
+ confidence: 0.9,
72
+ verified: false,
73
+ verification_count: 0,
74
+ scope: 'global',
75
+ expires_at: expiredDate.toISOString(),
76
+ last_useful: new Date().toISOString(),
77
+ },
78
+ {
79
+ id: 'active-1',
80
+ timestamp: new Date().toISOString(),
81
+ session_id: 'session-1',
82
+ project_path: '/test',
83
+ category: 'pattern',
84
+ summary: 'Active discovery',
85
+ details: 'This is active',
86
+ agent_name: 'oracle',
87
+ confidence: 0.9,
88
+ verified: false,
89
+ verification_count: 0,
90
+ scope: 'global',
91
+ expires_at: futureDate.toISOString(),
92
+ last_useful: new Date().toISOString(),
93
+ },
94
+ ];
95
+ writeFileSync(discoveryPath, discoveries.map(d => JSON.stringify(d)).join('\n') + '\n', 'utf-8');
96
+ const result = cleanupLearning('/test', { compactExpired: true, dryRun: false });
97
+ expect(result.discoveries_removed).toBe(1);
98
+ });
99
+ it('dry run does not modify files', () => {
100
+ const learningDir = join(TEST_DIR, '.claude', 'olympus', 'learning');
101
+ mkdirSync(learningDir, { recursive: true });
102
+ const logPath = join(learningDir, 'feedback-log.jsonl');
103
+ const oldDate = new Date();
104
+ oldDate.setDate(oldDate.getDate() - 200);
105
+ const entry = {
106
+ id: 'old-1',
107
+ timestamp: oldDate.toISOString(),
108
+ session_id: 'session-1',
109
+ project_path: '/test',
110
+ event_type: 'revision',
111
+ user_message: 'Old message',
112
+ feedback_category: 'correction',
113
+ confidence: 0.9,
114
+ };
115
+ writeFileSync(logPath, JSON.stringify(entry) + '\n', 'utf-8');
116
+ const sizeBefore = require('fs').statSync(logPath).size;
117
+ cleanupLearning('/test', { ageDays: 180, dryRun: true });
118
+ const sizeAfter = require('fs').statSync(logPath).size;
119
+ expect(sizeBefore).toBe(sizeAfter);
120
+ });
121
+ });
122
+ //# sourceMappingURL=cleanup.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup.test.js","sourceRoot":"","sources":["../../../src/__tests__/learning/cleanup.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=storage.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/learning/storage.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,75 @@
1
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
+ import { existsSync, mkdirSync, rmSync, writeFileSync } from 'fs';
3
+ import { join } from 'path';
4
+ import { appendFeedback, readFeedbackLog } from '../../learning/storage.js';
5
+ const TEST_DIR = join(process.cwd(), '.test-learning');
6
+ describe('Storage with Rotation', () => {
7
+ beforeEach(() => {
8
+ // Override getLearningDir for testing
9
+ process.env.HOME = TEST_DIR;
10
+ if (existsSync(TEST_DIR)) {
11
+ rmSync(TEST_DIR, { recursive: true });
12
+ }
13
+ mkdirSync(TEST_DIR, { recursive: true });
14
+ });
15
+ afterEach(() => {
16
+ if (existsSync(TEST_DIR)) {
17
+ rmSync(TEST_DIR, { recursive: true });
18
+ }
19
+ delete process.env.HOME;
20
+ });
21
+ it('rotates JSONL file when exceeding threshold', () => {
22
+ const testEntry = {
23
+ id: 'test-1',
24
+ timestamp: new Date().toISOString(),
25
+ session_id: 'session-1',
26
+ project_path: '/test',
27
+ event_type: 'revision',
28
+ user_message: 'Test message',
29
+ feedback_category: 'correction',
30
+ confidence: 0.9,
31
+ };
32
+ // Create a file with many lines (simulating large file)
33
+ const learningDir = join(TEST_DIR, '.claude', 'olympus', 'learning');
34
+ mkdirSync(learningDir, { recursive: true });
35
+ const logPath = join(learningDir, 'feedback-log.jsonl');
36
+ // Write 10,001 lines to trigger rotation
37
+ const lines = [];
38
+ for (let i = 0; i < 10001; i++) {
39
+ lines.push(JSON.stringify({ ...testEntry, id: `test-${i}` }));
40
+ }
41
+ writeFileSync(logPath, lines.join('\n') + '\n', 'utf-8');
42
+ // Append new entry (should trigger rotation)
43
+ appendFeedback(testEntry);
44
+ // Check that archive file was created
45
+ const files = require('fs').readdirSync(learningDir);
46
+ const archiveFiles = files.filter((f) => f.includes('.old.jsonl'));
47
+ expect(archiveFiles.length).toBeGreaterThan(0);
48
+ // Check that new file has only 1 entry
49
+ const newLog = readFeedbackLog();
50
+ expect(newLog.length).toBe(1);
51
+ });
52
+ it('does not rotate when below threshold', () => {
53
+ const testEntry = {
54
+ id: 'test-1',
55
+ timestamp: new Date().toISOString(),
56
+ session_id: 'session-1',
57
+ project_path: '/test',
58
+ event_type: 'revision',
59
+ user_message: 'Test message',
60
+ feedback_category: 'correction',
61
+ confidence: 0.9,
62
+ };
63
+ // Add a few entries (below threshold)
64
+ for (let i = 0; i < 5; i++) {
65
+ appendFeedback({ ...testEntry, id: `test-${i}` });
66
+ }
67
+ const learningDir = join(TEST_DIR, '.claude', 'olympus', 'learning');
68
+ const files = require('fs').readdirSync(learningDir);
69
+ const archiveFiles = files.filter((f) => f.includes('.old.jsonl'));
70
+ expect(archiveFiles.length).toBe(0);
71
+ const log = readFeedbackLog();
72
+ expect(log.length).toBe(5);
73
+ });
74
+ });
75
+ //# sourceMappingURL=storage.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.test.js","sourceRoot":"","sources":["../../../src/__tests__/learning/storage.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAgB,MAAM,IAAI,CAAC;AAChF,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,eAAe,EAAkB,MAAM,2BAA2B,CAAC;AAG5F,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAEvD,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,UAAU,CAAC,GAAG,EAAE;QACd,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;QAC5B,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,SAAS,GAAkB;YAC/B,EAAE,EAAE,QAAQ;YACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,UAAU,EAAE,WAAW;YACvB,YAAY,EAAE,OAAO;YACrB,UAAU,EAAE,UAAU;YACtB,YAAY,EAAE,cAAc;YAC5B,iBAAiB,EAAE,YAAY;YAC/B,UAAU,EAAE,GAAG;SAChB,CAAC;QAEF,wDAAwD;QACxD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACrE,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;QAExD,yCAAyC;QACzC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;QAEzD,6CAA6C;QAC7C,cAAc,CAAC,SAAS,CAAC,CAAC;QAE1B,sCAAsC;QACtC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QAE3E,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAE/C,uCAAuC;QACvC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,SAAS,GAAkB;YAC/B,EAAE,EAAE,QAAQ;YACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,UAAU,EAAE,WAAW;YACvB,YAAY,EAAE,OAAO;YACrB,UAAU,EAAE,UAAU;YACtB,YAAY,EAAE,cAAc;YAC5B,iBAAiB,EAAE,YAAY;YAC/B,UAAU,EAAE,GAAG;SAChB,CAAC;QAEF,sCAAsC;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,cAAc,CAAC,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACrE,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QAE3E,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpC,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/agents/definitions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGjE;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,WA+GzB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,WAqE5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,WAoE1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,WA8EnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAgLjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAqCnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,WAuGxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,WAmFxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,WA+EtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,WA4DhC,CAAC;AAUF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,WA0B/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,WAqB5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,WA8BpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAoBnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAoB/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAuBhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,WAetC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,WAevC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,WA2H7B,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE;IAC7G,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC,CAuCD;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,i9IAuFkC,CAAC"}
1
+ {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/agents/definitions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGjE;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,WA+GzB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,WAqE5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,WAoE1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,WA8EnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAgLjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAqCnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,WAuGxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,WAmFxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,WA+EtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,WA4EhC,CAAC;AAUF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,WA0B/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,WAqB5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,WA8BpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAoBnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAoB/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAuBhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,WAetC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,WAevC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,WA2H7B,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE;IAC7G,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC,CAuCD;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,i9IAuFkC,CAAC"}
@@ -881,13 +881,29 @@ You work ALONE. No delegation. No background tasks. Execute directly.
881
881
  </Critical_Constraints>
882
882
 
883
883
  <Work_Context>
884
- ## Notepad Location (for recording learnings)
885
- NOTEPAD PATH: .olympus/notepads/{plan-name}/
886
- - learnings.md: Record patterns, conventions, successful approaches
887
- - issues.md: Record problems, blockers, gotchas encountered
888
- - decisions.md: Record architectural choices and rationales
884
+ ## Learning System
885
+ LEARNING PATH: .olympus/learning/discoveries.jsonl
886
+ GLOBAL LEARNING: ~/.claude/olympus/learning/
889
887
 
890
- You SHOULD append findings to notepad files after completing work.
888
+ **Recording Discoveries:**
889
+ When you encounter important insights during work, document them:
890
+
891
+ olympus discover "category | summary | details"
892
+
893
+ **Categories:** pattern, gotcha, workaround, performance, dependency, configuration, technical_insight
894
+
895
+ **Examples:**
896
+ olympus discover "pattern | Use kebab-case for files | This codebase consistently uses kebab-case..."
897
+ olympus discover "gotcha | Migrations before seeding | Database seed fails if migrations haven't run"
898
+ olympus discover "workaround | Build requires --force flag | Standard build fails without --force"
899
+
900
+ **When to record:**
901
+ - You discover a pattern/convention in the codebase
902
+ - You encounter a gotcha or edge case
903
+ - You find a workaround for a problem
904
+ - You learn something about performance, dependencies, or configuration
905
+
906
+ Future agents will see your discoveries and benefit from your learnings.
891
907
 
892
908
  ## Plan Location (READ ONLY)
893
909
  PLAN PATH: .olympus/plans/{plan-name}.md
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/agents/definitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/agents/definitions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"olympian.d.ts","sourceRoot":"","sources":["../../src/agents/olympian.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEnE,eAAO,MAAM,wBAAwB,EAAE,mBAoBtC,CAAC;AA0DF,eAAO,MAAM,kBAAkB,EAAE,WAOhC,CAAC"}
1
+ {"version":3,"file":"olympian.d.ts","sourceRoot":"","sources":["../../src/agents/olympian.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEnE,eAAO,MAAM,wBAAwB,EAAE,mBAoBtC,CAAC;AA0EF,eAAO,MAAM,kBAAkB,EAAE,WAOhC,CAAC"}
@@ -38,7 +38,7 @@ export const OLYMPIAN_PROMPT_METADATA = {
38
38
  ],
39
39
  };
40
40
  const OLYMPIAN_PROMPT = `<Role>
41
- Olympus-Junior - Focused executor from OhMyOpenCode.
41
+ Olympus-Junior - Focused executor for direct implementation.
42
42
  Execute tasks directly. NEVER delegate or spawn other agents.
43
43
  </Role>
44
44
 
@@ -51,13 +51,29 @@ You work ALONE. No delegation. No background tasks. Execute directly.
51
51
  </Critical_Constraints>
52
52
 
53
53
  <Work_Context>
54
- ## Notepad Location (for recording learnings)
55
- NOTEPAD PATH: .olympus/notepads/{plan-name}/
56
- - learnings.md: Record patterns, conventions, successful approaches
57
- - issues.md: Record problems, blockers, gotchas encountered
58
- - decisions.md: Record architectural choices and rationales
54
+ ## Learning System
55
+ LEARNING PATH: .olympus/learning/discoveries.jsonl
56
+ GLOBAL LEARNING: ~/.claude/olympus/learning/
59
57
 
60
- You SHOULD append findings to notepad files after completing work.
58
+ **Recording Discoveries:**
59
+ When you encounter important insights during work, document them:
60
+
61
+ olympus discover "category | summary | details"
62
+
63
+ **Categories:** pattern, gotcha, workaround, performance, dependency, configuration, technical_insight
64
+
65
+ **Examples:**
66
+ olympus discover "pattern | Use kebab-case for files | This codebase consistently uses kebab-case..."
67
+ olympus discover "gotcha | Migrations before seeding | Database seed fails if migrations haven't run"
68
+ olympus discover "workaround | Build requires --force flag | Standard build fails without --force"
69
+
70
+ **When to record:**
71
+ - You discover a pattern/convention in the codebase
72
+ - You encounter a gotcha or edge case
73
+ - You find a workaround for a problem
74
+ - You learn something about performance, dependencies, or configuration
75
+
76
+ Future agents will see your discoveries and benefit from your learnings.
61
77
 
62
78
  ## Plan Location (READ ONLY)
63
79
  PLAN PATH: .olympus/plans/{plan-name}.md
@@ -1 +1 @@
1
- {"version":3,"file":"olympian.js","sourceRoot":"","sources":["../../src/agents/olympian.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,MAAM,CAAC,MAAM,wBAAwB,GAAwB;IAC3D,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,QAAQ;IACrB,QAAQ,EAAE;QACR,EAAE,MAAM,EAAE,uBAAuB,EAAE,OAAO,EAAE,oCAAoC,EAAE;QAClF,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,qBAAqB,EAAE;QACvD,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,6BAA6B,EAAE;KACrE;IACD,OAAO,EAAE;QACP,sCAAsC;QACtC,iCAAiC;QACjC,0CAA0C;QAC1C,+BAA+B;KAChC;IACD,SAAS,EAAE;QACT,2CAA2C;QAC3C,wDAAwD;QACxD,oCAAoC;KACrC;CACF,CAAC;AAEF,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAsDf,CAAC;AAEV,MAAM,CAAC,MAAM,kBAAkB,GAAgB;IAC7C,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,iIAAiI;IAC9I,MAAM,EAAE,eAAe;IACvB,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IACxD,KAAK,EAAE,QAAQ;IACf,QAAQ,EAAE,wBAAwB;CACnC,CAAC"}
1
+ {"version":3,"file":"olympian.js","sourceRoot":"","sources":["../../src/agents/olympian.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,MAAM,CAAC,MAAM,wBAAwB,GAAwB;IAC3D,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,QAAQ;IACrB,QAAQ,EAAE;QACR,EAAE,MAAM,EAAE,uBAAuB,EAAE,OAAO,EAAE,oCAAoC,EAAE;QAClF,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,qBAAqB,EAAE;QACvD,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,6BAA6B,EAAE;KACrE;IACD,OAAO,EAAE;QACP,sCAAsC;QACtC,iCAAiC;QACjC,0CAA0C;QAC1C,+BAA+B;KAChC;IACD,SAAS,EAAE;QACT,2CAA2C;QAC3C,wDAAwD;QACxD,oCAAoC;KACrC;CACF,CAAC;AAEF,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAsEf,CAAC;AAEV,MAAM,CAAC,MAAM,kBAAkB,GAAgB;IAC7C,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,iIAAiI;IAC9I,MAAM,EAAE,eAAe;IACvB,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IACxD,KAAK,EAAE,QAAQ;IACf,QAAQ,EAAE,wBAAwB;CACnC,CAAC"}
@@ -44,7 +44,7 @@ export const ORCHESTRATOR_OLYMPUS_PROMPT_METADATA = {
44
44
  export const orchestratorOlympusAgent = {
45
45
  name: 'orchestrator-olympus',
46
46
  description: `Master orchestrator for complex multi-step tasks. Reads todo lists, delegates to specialist agents via olympus_task(), coordinates parallel execution, and ensures ALL tasks complete.`,
47
- prompt: `You are "Olympus" - Powerful AI Agent with orchestration capabilities from OhMyOpenCode.
47
+ prompt: `You are "Olympus" - Powerful AI Agent with orchestration capabilities.
48
48
 
49
49
  **Why Olympus?**: Named after the home of the gods, where champions ascend through challenge and perseverance. Your code should be indistinguishable from a senior engineer's—divine-grade implementation.
50
50
 
package/dist/cli/index.js CHANGED
@@ -23,8 +23,10 @@ import { extractPatterns } from '../learning/pattern-extractor.js';
23
23
  import { updatePreferences, createDefaultPreferences } from '../learning/preference-learner.js';
24
24
  import { evaluateAgentPerformance } from '../learning/agent-evaluator.js';
25
25
  import { generatePromptPatches, previewPatches, applyPromptPatches } from '../learning/prompt-patcher.js';
26
- import { readDiscoveries } from '../learning/discovery.js';
26
+ import { readDiscoveries, recordDiscovery } from '../learning/discovery.js';
27
27
  import { migrateNotepads } from '../learning/migrate-notepads.js';
28
+ import { generateLearningStats, formatLearningStats } from '../learning/stats.js';
29
+ import { cleanupLearning, formatCleanupResult } from '../learning/cleanup.js';
28
30
  import { randomUUID } from 'crypto';
29
31
  import { rmSync, appendFileSync } from 'fs';
30
32
  const __dirname = dirname(fileURLToPath(import.meta.url));
@@ -518,6 +520,11 @@ program
518
520
  .command('learn')
519
521
  .description('View and manage learned preferences and patterns')
520
522
  .option('-s, --show', 'Show current learnings')
523
+ .option('--stats', 'Show learning system statistics')
524
+ .option('--cleanup', 'Clean up old learning data')
525
+ .option('--dry-run', 'Preview cleanup without executing (use with --cleanup)')
526
+ .option('--age <days>', 'Age threshold in days for cleanup (default: 180)', '180')
527
+ .option('--remove-archived', 'Remove archived .old.jsonl files (use with --cleanup)')
521
528
  .option('-a, --analyze', 'Analyze feedback and show insights')
522
529
  .option('--suggest', 'Show suggested prompt improvements')
523
530
  .option('--apply', 'Apply suggested improvements')
@@ -527,6 +534,21 @@ program
527
534
  .option('-i, --import <file>', 'Import learnings from JSON')
528
535
  .action(async (options) => {
529
536
  const learningDir = getLearningDir();
537
+ if (options.stats) {
538
+ const stats = generateLearningStats(process.cwd());
539
+ console.log(formatLearningStats(stats));
540
+ return;
541
+ }
542
+ if (options.cleanup) {
543
+ const result = cleanupLearning(process.cwd(), {
544
+ dryRun: options.dryRun,
545
+ ageDays: parseInt(options.age),
546
+ removeArchived: options.removeArchived,
547
+ compactExpired: true,
548
+ });
549
+ console.log(formatCleanupResult(result, options.dryRun));
550
+ return;
551
+ }
530
552
  if (options.show) {
531
553
  console.log(chalk.blue.bold('\n╭─────────────────────────────────────────────────────────────╮'));
532
554
  console.log(chalk.blue.bold('│ OLYMPUS LEARNING STATUS │'));
@@ -698,14 +720,111 @@ program
698
720
  console.log('Usage: olympus learn [options]');
699
721
  console.log('');
700
722
  console.log('Options:');
701
- console.log(' -s, --show Show current learnings');
702
- console.log(' -a, --analyze Analyze feedback and update patterns');
703
- console.log(' --suggest Show suggested prompt improvements');
704
- console.log(' --apply Apply suggested improvements');
705
- console.log(' -f, --forget Forget all learnings');
706
- console.log(' -p, --project Scope to current project (with --forget)');
707
- console.log(' -e, --export Export learnings to JSON');
708
- console.log(' -i, --import Import learnings from JSON file');
723
+ console.log(' -s, --show Show current learnings');
724
+ console.log(' --stats Show learning system statistics');
725
+ console.log(' --cleanup Clean up old learning data');
726
+ console.log(' --dry-run Preview cleanup without executing');
727
+ console.log(' --age <days> Age threshold for cleanup (default: 180)');
728
+ console.log(' --remove-archived Remove archived .old.jsonl files');
729
+ console.log(' -a, --analyze Analyze feedback and update patterns');
730
+ console.log(' --suggest Show suggested prompt improvements');
731
+ console.log(' --apply Apply suggested improvements');
732
+ console.log(' -f, --forget Forget all learnings');
733
+ console.log(' -p, --project Scope to current project (with --forget)');
734
+ console.log(' -e, --export Export learnings to JSON');
735
+ console.log(' -i, --import <file> Import learnings from JSON file');
736
+ });
737
+ /**
738
+ * Discover command - Record agent discoveries
739
+ */
740
+ program
741
+ .command('discover <input>')
742
+ .description('Record a discovery made during work (for agents to use)')
743
+ .option('-c, --category <category>', 'Discovery category (pattern, gotcha, workaround, etc.)')
744
+ .option('-s, --scope <scope>', 'Scope: global or project (default: project)', 'project')
745
+ .option('--confidence <number>', 'Confidence level 0-1 (default: 0.8)', '0.8')
746
+ .option('--agent <name>', 'Agent name making the discovery (default: olympian)', 'olympian')
747
+ .action(async (input, options) => {
748
+ const cwd = process.cwd();
749
+ // Parse input format: "category | summary | details"
750
+ // OR if category option provided: "summary | details"
751
+ const parts = input.split('|').map((s) => s.trim());
752
+ let category;
753
+ let summary;
754
+ let details;
755
+ if (options.category) {
756
+ // Category provided via option
757
+ category = options.category;
758
+ summary = parts[0] || '';
759
+ details = parts[1] || parts[0] || '';
760
+ }
761
+ else if (parts.length >= 3) {
762
+ // Full format: "category | summary | details"
763
+ category = parts[0];
764
+ summary = parts[1];
765
+ details = parts[2];
766
+ }
767
+ else if (parts.length === 2) {
768
+ // Two parts: "category | summary" (details = summary)
769
+ category = parts[0];
770
+ summary = parts[1];
771
+ details = parts[1];
772
+ }
773
+ else {
774
+ console.error(chalk.red('Error: Invalid format'));
775
+ console.log('\nUsage:');
776
+ console.log(' olympus discover "category | summary | details"');
777
+ console.log(' olympus discover "summary | details" --category <cat>');
778
+ console.log('\nCategories:');
779
+ console.log(' pattern, gotcha, workaround, performance, dependency, configuration, technical_insight');
780
+ console.log('\nExamples:');
781
+ console.log(' olympus discover "gotcha | Migrations must run first | Database seed fails if..."');
782
+ console.log(' olympus discover "Use kebab-case for files | This codebase consistently..." -c pattern');
783
+ process.exit(1);
784
+ }
785
+ // Validate category
786
+ const validCategories = [
787
+ 'technical_insight', 'workaround', 'pattern', 'gotcha',
788
+ 'performance', 'dependency', 'configuration'
789
+ ];
790
+ if (!validCategories.includes(category)) {
791
+ console.error(chalk.red(`Error: Invalid category "${category}"`));
792
+ console.log(`Valid categories: ${validCategories.join(', ')}`);
793
+ process.exit(1);
794
+ }
795
+ // Validate confidence
796
+ const confidence = parseFloat(options.confidence);
797
+ if (isNaN(confidence) || confidence < 0 || confidence > 1) {
798
+ console.error(chalk.red('Error: Confidence must be between 0 and 1'));
799
+ process.exit(1);
800
+ }
801
+ // Validate scope
802
+ if (options.scope !== 'global' && options.scope !== 'project') {
803
+ console.error(chalk.red('Error: Scope must be "global" or "project"'));
804
+ process.exit(1);
805
+ }
806
+ try {
807
+ const discovery = recordDiscovery({
808
+ category: category,
809
+ summary: summary.substring(0, 100), // Limit to 100 chars
810
+ details: details,
811
+ agent_name: options.agent,
812
+ project_path: cwd,
813
+ confidence: confidence,
814
+ scope: options.scope,
815
+ session_id: process.env.CLAUDE_SESSION_ID || 'cli',
816
+ });
817
+ console.log(chalk.green('✓ Discovery recorded successfully'));
818
+ console.log(chalk.gray(` ID: ${discovery.id}`));
819
+ console.log(chalk.white(` Category: ${discovery.category}`));
820
+ console.log(chalk.white(` Summary: ${discovery.summary}`));
821
+ console.log(chalk.gray(` Scope: ${discovery.scope}`));
822
+ console.log(chalk.gray(` Location: .olympus/learning/discoveries.jsonl`));
823
+ }
824
+ catch (error) {
825
+ console.error(chalk.red('Error recording discovery:'), error);
826
+ process.exit(1);
827
+ }
709
828
  });
710
829
  /**
711
830
  * Feedback command - Manual preference logging