olympus-ai 3.2.3 → 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.
- package/.claude-plugin/plugin.json +1 -1
- package/dist/__tests__/ascent-checkpoint.test.d.ts +2 -0
- package/dist/__tests__/ascent-checkpoint.test.d.ts.map +1 -0
- package/dist/__tests__/ascent-checkpoint.test.js +261 -0
- package/dist/__tests__/ascent-checkpoint.test.js.map +1 -0
- package/dist/__tests__/config-ascent.test.d.ts +2 -0
- package/dist/__tests__/config-ascent.test.d.ts.map +1 -0
- package/dist/__tests__/config-ascent.test.js +134 -0
- package/dist/__tests__/config-ascent.test.js.map +1 -0
- package/dist/__tests__/hook-blocking.test.d.ts +8 -0
- package/dist/__tests__/hook-blocking.test.d.ts.map +1 -0
- package/dist/__tests__/hook-blocking.test.js +277 -0
- package/dist/__tests__/hook-blocking.test.js.map +1 -0
- package/dist/__tests__/installer.test.js +1 -1
- package/dist/__tests__/metrics-cli.test.d.ts +5 -0
- package/dist/__tests__/metrics-cli.test.d.ts.map +1 -0
- package/dist/__tests__/metrics-cli.test.js +24 -0
- package/dist/__tests__/metrics-cli.test.js.map +1 -0
- package/dist/__tests__/skill-auto-detection.test.d.ts +2 -0
- package/dist/__tests__/skill-auto-detection.test.d.ts.map +1 -0
- package/dist/__tests__/skill-auto-detection.test.js +255 -0
- package/dist/__tests__/skill-auto-detection.test.js.map +1 -0
- package/dist/__tests__/token-estimator.test.d.ts +5 -0
- package/dist/__tests__/token-estimator.test.d.ts.map +1 -0
- package/dist/__tests__/token-estimator.test.js +192 -0
- package/dist/__tests__/token-estimator.test.js.map +1 -0
- package/dist/agents/definitions.d.ts.map +1 -1
- package/dist/agents/definitions.js +83 -1
- package/dist/agents/definitions.js.map +1 -1
- package/dist/agents/document-writer.d.ts.map +1 -1
- package/dist/agents/document-writer.js +38 -0
- package/dist/agents/document-writer.js.map +1 -1
- package/dist/agents/frontend-engineer.d.ts.map +1 -1
- package/dist/agents/frontend-engineer.js +16 -0
- package/dist/agents/frontend-engineer.js.map +1 -1
- package/dist/agents/olympian.d.ts.map +1 -1
- package/dist/agents/olympian.js +15 -0
- package/dist/agents/olympian.js.map +1 -1
- package/dist/cli/commands/metrics.d.ts +31 -0
- package/dist/cli/commands/metrics.d.ts.map +1 -0
- package/dist/cli/commands/metrics.js +266 -0
- package/dist/cli/commands/metrics.js.map +1 -0
- package/dist/cli/index.js +39 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +16 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/features/ascent-checkpoint/index.d.ts +48 -0
- package/dist/features/ascent-checkpoint/index.d.ts.map +1 -0
- package/dist/features/ascent-checkpoint/index.js +144 -0
- package/dist/features/ascent-checkpoint/index.js.map +1 -0
- package/dist/features/hook-logging/index.d.ts +37 -0
- package/dist/features/hook-logging/index.d.ts.map +1 -0
- package/dist/features/hook-logging/index.js +120 -0
- package/dist/features/hook-logging/index.js.map +1 -0
- package/dist/features/hook-logging/index.test.d.ts +5 -0
- package/dist/features/hook-logging/index.test.d.ts.map +1 -0
- package/dist/features/hook-logging/index.test.js +268 -0
- package/dist/features/hook-logging/index.test.js.map +1 -0
- package/dist/features/index.d.ts +3 -0
- package/dist/features/index.d.ts.map +1 -1
- package/dist/features/index.js +8 -0
- package/dist/features/index.js.map +1 -1
- package/dist/features/magic-keywords.d.ts +51 -0
- package/dist/features/magic-keywords.d.ts.map +1 -1
- package/dist/features/magic-keywords.js +172 -0
- package/dist/features/magic-keywords.js.map +1 -1
- package/dist/features/session-state/index.d.ts +50 -0
- package/dist/features/session-state/index.d.ts.map +1 -0
- package/dist/features/session-state/index.js +64 -0
- package/dist/features/session-state/index.js.map +1 -0
- package/dist/features/session-state/index.test.d.ts +5 -0
- package/dist/features/session-state/index.test.d.ts.map +1 -0
- package/dist/features/session-state/index.test.js +221 -0
- package/dist/features/session-state/index.test.js.map +1 -0
- package/dist/features/token-metrics/index.d.ts +6 -0
- package/dist/features/token-metrics/index.d.ts.map +1 -0
- package/dist/features/token-metrics/index.js +5 -0
- package/dist/features/token-metrics/index.js.map +1 -0
- package/dist/features/token-metrics/storage.d.ts +16 -0
- package/dist/features/token-metrics/storage.d.ts.map +1 -0
- package/dist/features/token-metrics/storage.js +144 -0
- package/dist/features/token-metrics/storage.js.map +1 -0
- package/dist/features/token-metrics/token-estimator.d.ts +66 -0
- package/dist/features/token-metrics/token-estimator.d.ts.map +1 -0
- package/dist/features/token-metrics/token-estimator.js +230 -0
- package/dist/features/token-metrics/token-estimator.js.map +1 -0
- package/dist/features/token-metrics/types.d.ts +63 -0
- package/dist/features/token-metrics/types.d.ts.map +1 -0
- package/dist/features/token-metrics/types.js +5 -0
- package/dist/features/token-metrics/types.js.map +1 -0
- package/dist/hooks/olympus-orchestrator/constants.d.ts +2 -0
- package/dist/hooks/olympus-orchestrator/constants.d.ts.map +1 -1
- package/dist/hooks/olympus-orchestrator/constants.js +41 -0
- package/dist/hooks/olympus-orchestrator/constants.js.map +1 -1
- package/dist/hooks/olympus-orchestrator/index.d.ts +10 -1
- package/dist/hooks/olympus-orchestrator/index.d.ts.map +1 -1
- package/dist/hooks/olympus-orchestrator/index.js +108 -14
- package/dist/hooks/olympus-orchestrator/index.js.map +1 -1
- package/dist/hooks/registrations/index.d.ts +2 -1
- package/dist/hooks/registrations/index.d.ts.map +1 -1
- package/dist/hooks/registrations/index.js +3 -1
- package/dist/hooks/registrations/index.js.map +1 -1
- package/dist/hooks/registrations/token-metrics.d.ts +11 -0
- package/dist/hooks/registrations/token-metrics.d.ts.map +1 -0
- package/dist/hooks/registrations/token-metrics.js +119 -0
- package/dist/hooks/registrations/token-metrics.js.map +1 -0
- package/dist/installer/index.d.ts +1 -1
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +334 -9
- package/dist/installer/index.js.map +1 -1
- package/dist/shared/types.d.ts +16 -0
- package/dist/shared/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/scripts/.olympus/token-metrics.jsonl +1 -0
- package/scripts/dist/hooks/olympus-hooks.cjs +127 -128
- package/scripts/esbuild.hooks.mjs +1 -1
- package/.claude/CLAUDE.md +0 -66
- package/scripts/generate-logo-hybrid-v2.mjs +0 -213
- package/scripts/generate-logo-hybrid.mjs +0 -209
- package/scripts/generate-logo-infinity.mjs +0 -239
- package/scripts/generate-logo-mythology.mjs +0 -190
- package/scripts/generate-logo-orchestration.mjs +0 -228
- package/scripts/generate-logo-recraft.mjs +0 -147
- package/scripts/generate-logo-simple.mjs +0 -154
- package/scripts/generate-logo.mjs +0 -117
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ascent-checkpoint.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/ascent-checkpoint.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
2
|
+
import { saveCheckpoint, loadCheckpoint, listCheckpoints, validateCheckpoint, hashPlanContent, getGitSha } from '../features/ascent-checkpoint/index.js';
|
|
3
|
+
import { existsSync, mkdirSync, rmSync, readdirSync, writeFileSync } from 'fs';
|
|
4
|
+
import { join } from 'path';
|
|
5
|
+
describe('Ascent Checkpoint System', () => {
|
|
6
|
+
const testCheckpointsDir = join(process.cwd(), '.olympus-test', 'checkpoints');
|
|
7
|
+
beforeEach(() => {
|
|
8
|
+
// Clean up test directory
|
|
9
|
+
if (existsSync(testCheckpointsDir)) {
|
|
10
|
+
rmSync(testCheckpointsDir, { recursive: true, force: true });
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
afterEach(() => {
|
|
14
|
+
// Clean up after tests
|
|
15
|
+
if (existsSync(testCheckpointsDir)) {
|
|
16
|
+
rmSync(testCheckpointsDir, { recursive: true, force: true });
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
describe('hashPlanContent', () => {
|
|
20
|
+
it('should generate consistent hash for same content', () => {
|
|
21
|
+
const content = 'Test plan content';
|
|
22
|
+
const hash1 = hashPlanContent(content);
|
|
23
|
+
const hash2 = hashPlanContent(content);
|
|
24
|
+
expect(hash1).toBe(hash2);
|
|
25
|
+
expect(hash1).toHaveLength(16);
|
|
26
|
+
});
|
|
27
|
+
it('should generate different hashes for different content', () => {
|
|
28
|
+
const content1 = 'Plan version 1';
|
|
29
|
+
const content2 = 'Plan version 2';
|
|
30
|
+
const hash1 = hashPlanContent(content1);
|
|
31
|
+
const hash2 = hashPlanContent(content2);
|
|
32
|
+
expect(hash1).not.toBe(hash2);
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
describe('getGitSha', () => {
|
|
36
|
+
it('should return a git SHA or unknown', () => {
|
|
37
|
+
const sha = getGitSha();
|
|
38
|
+
// Should be either a valid SHA (40 hex chars) or 'unknown'
|
|
39
|
+
expect(sha === 'unknown' || /^[a-f0-9]{40}$/i.test(sha)).toBe(true);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
describe('saveCheckpoint', () => {
|
|
43
|
+
it('should create checkpoints directory if it does not exist', () => {
|
|
44
|
+
expect(existsSync(testCheckpointsDir)).toBe(false);
|
|
45
|
+
saveCheckpoint('test-plan', {
|
|
46
|
+
gitSha: 'abc123',
|
|
47
|
+
planHash: 'hash123',
|
|
48
|
+
iterationCount: 50,
|
|
49
|
+
tasks: []
|
|
50
|
+
}, testCheckpointsDir);
|
|
51
|
+
expect(existsSync(testCheckpointsDir)).toBe(true);
|
|
52
|
+
});
|
|
53
|
+
it('should save checkpoint with correct structure', () => {
|
|
54
|
+
const checkpoint = {
|
|
55
|
+
gitSha: 'abc123def456',
|
|
56
|
+
planHash: 'plan-hash-123',
|
|
57
|
+
iterationCount: 75,
|
|
58
|
+
tasks: [
|
|
59
|
+
{ id: 'task-1', status: 'completed', description: 'First task' },
|
|
60
|
+
{ id: 'task-2', status: 'in_progress', description: 'Second task' }
|
|
61
|
+
]
|
|
62
|
+
};
|
|
63
|
+
saveCheckpoint('my-plan', checkpoint, testCheckpointsDir);
|
|
64
|
+
const files = readdirSync(testCheckpointsDir);
|
|
65
|
+
expect(files.length).toBe(1);
|
|
66
|
+
expect(files[0]).toMatch(/^my-plan-\d+\.json$/);
|
|
67
|
+
const loaded = loadCheckpoint('my-plan', testCheckpointsDir);
|
|
68
|
+
expect(loaded).not.toBeNull();
|
|
69
|
+
expect(loaded?.planName).toBe('my-plan');
|
|
70
|
+
expect(loaded?.gitSha).toBe('abc123def456');
|
|
71
|
+
expect(loaded?.iterationCount).toBe(75);
|
|
72
|
+
expect(loaded?.tasks).toHaveLength(2);
|
|
73
|
+
expect(loaded?.timestamp).toBeDefined();
|
|
74
|
+
});
|
|
75
|
+
it('should allow multiple checkpoints for same plan', () => {
|
|
76
|
+
saveCheckpoint('plan-a', {
|
|
77
|
+
gitSha: 'sha1',
|
|
78
|
+
planHash: 'hash1',
|
|
79
|
+
iterationCount: 10,
|
|
80
|
+
tasks: []
|
|
81
|
+
}, testCheckpointsDir);
|
|
82
|
+
// Wait a bit to ensure different timestamp
|
|
83
|
+
const now = Date.now();
|
|
84
|
+
while (Date.now() === now) {
|
|
85
|
+
// Busy wait
|
|
86
|
+
}
|
|
87
|
+
saveCheckpoint('plan-a', {
|
|
88
|
+
gitSha: 'sha2',
|
|
89
|
+
planHash: 'hash2',
|
|
90
|
+
iterationCount: 20,
|
|
91
|
+
tasks: []
|
|
92
|
+
}, testCheckpointsDir);
|
|
93
|
+
const checkpoints = listCheckpoints('plan-a', testCheckpointsDir);
|
|
94
|
+
expect(checkpoints.length).toBe(2);
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
describe('loadCheckpoint', () => {
|
|
98
|
+
it('should return null if no checkpoints exist', () => {
|
|
99
|
+
const loaded = loadCheckpoint('nonexistent-plan', testCheckpointsDir);
|
|
100
|
+
expect(loaded).toBeNull();
|
|
101
|
+
});
|
|
102
|
+
it('should load the most recent checkpoint', () => {
|
|
103
|
+
const now = Date.now();
|
|
104
|
+
// Create checkpoints directory
|
|
105
|
+
mkdirSync(testCheckpointsDir, { recursive: true });
|
|
106
|
+
// Save older checkpoint
|
|
107
|
+
const older = {
|
|
108
|
+
planName: 'plan-b',
|
|
109
|
+
timestamp: new Date(now - 10000).toISOString(),
|
|
110
|
+
gitSha: 'old-sha',
|
|
111
|
+
planHash: 'old-hash',
|
|
112
|
+
iterationCount: 10,
|
|
113
|
+
tasks: []
|
|
114
|
+
};
|
|
115
|
+
writeFileSync(join(testCheckpointsDir, `plan-b-${now - 10000}.json`), JSON.stringify(older), 'utf-8');
|
|
116
|
+
// Save newer checkpoint
|
|
117
|
+
const newer = {
|
|
118
|
+
planName: 'plan-b',
|
|
119
|
+
timestamp: new Date(now).toISOString(),
|
|
120
|
+
gitSha: 'new-sha',
|
|
121
|
+
planHash: 'new-hash',
|
|
122
|
+
iterationCount: 50,
|
|
123
|
+
tasks: []
|
|
124
|
+
};
|
|
125
|
+
writeFileSync(join(testCheckpointsDir, `plan-b-${now}.json`), JSON.stringify(newer), 'utf-8');
|
|
126
|
+
const loaded = loadCheckpoint('plan-b', testCheckpointsDir);
|
|
127
|
+
expect(loaded).not.toBeNull();
|
|
128
|
+
expect(loaded?.gitSha).toBe('new-sha');
|
|
129
|
+
expect(loaded?.iterationCount).toBe(50);
|
|
130
|
+
});
|
|
131
|
+
it('should handle corrupted checkpoint files gracefully', () => {
|
|
132
|
+
mkdirSync(testCheckpointsDir, { recursive: true });
|
|
133
|
+
// Write invalid JSON
|
|
134
|
+
writeFileSync(join(testCheckpointsDir, 'plan-c-123456.json'), 'invalid json {{{', 'utf-8');
|
|
135
|
+
const loaded = loadCheckpoint('plan-c', testCheckpointsDir);
|
|
136
|
+
expect(loaded).toBeNull();
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
describe('listCheckpoints', () => {
|
|
140
|
+
it('should return empty array if directory does not exist', () => {
|
|
141
|
+
const checkpoints = listCheckpoints('any-plan', testCheckpointsDir);
|
|
142
|
+
expect(checkpoints).toEqual([]);
|
|
143
|
+
});
|
|
144
|
+
it('should list only checkpoints for specified plan', () => {
|
|
145
|
+
mkdirSync(testCheckpointsDir, { recursive: true });
|
|
146
|
+
// Create checkpoints for different plans
|
|
147
|
+
writeFileSync(join(testCheckpointsDir, 'plan-a-100.json'), '{}', 'utf-8');
|
|
148
|
+
writeFileSync(join(testCheckpointsDir, 'plan-a-200.json'), '{}', 'utf-8');
|
|
149
|
+
writeFileSync(join(testCheckpointsDir, 'plan-b-100.json'), '{}', 'utf-8');
|
|
150
|
+
writeFileSync(join(testCheckpointsDir, 'other-file.txt'), 'text', 'utf-8');
|
|
151
|
+
const planACheckpoints = listCheckpoints('plan-a', testCheckpointsDir);
|
|
152
|
+
expect(planACheckpoints).toHaveLength(2);
|
|
153
|
+
expect(planACheckpoints.every(f => f.startsWith('plan-a-'))).toBe(true);
|
|
154
|
+
const planBCheckpoints = listCheckpoints('plan-b', testCheckpointsDir);
|
|
155
|
+
expect(planBCheckpoints).toHaveLength(1);
|
|
156
|
+
});
|
|
157
|
+
it('should sort checkpoints by most recent first', () => {
|
|
158
|
+
mkdirSync(testCheckpointsDir, { recursive: true });
|
|
159
|
+
writeFileSync(join(testCheckpointsDir, 'plan-x-100.json'), '{}', 'utf-8');
|
|
160
|
+
writeFileSync(join(testCheckpointsDir, 'plan-x-300.json'), '{}', 'utf-8');
|
|
161
|
+
writeFileSync(join(testCheckpointsDir, 'plan-x-200.json'), '{}', 'utf-8');
|
|
162
|
+
const checkpoints = listCheckpoints('plan-x', testCheckpointsDir);
|
|
163
|
+
expect(checkpoints).toEqual([
|
|
164
|
+
'plan-x-300.json',
|
|
165
|
+
'plan-x-200.json',
|
|
166
|
+
'plan-x-100.json'
|
|
167
|
+
]);
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
describe('validateCheckpoint', () => {
|
|
171
|
+
const checkpoint = {
|
|
172
|
+
planName: 'test-plan',
|
|
173
|
+
timestamp: new Date().toISOString(),
|
|
174
|
+
gitSha: 'abc123',
|
|
175
|
+
planHash: 'hash456',
|
|
176
|
+
iterationCount: 50,
|
|
177
|
+
tasks: []
|
|
178
|
+
};
|
|
179
|
+
it('should validate checkpoint with no changes', () => {
|
|
180
|
+
const result = validateCheckpoint(checkpoint, 'abc123', 'hash456');
|
|
181
|
+
expect(result.valid).toBe(true);
|
|
182
|
+
expect(result.warnings).toHaveLength(0);
|
|
183
|
+
});
|
|
184
|
+
it('should warn if git SHA changed', () => {
|
|
185
|
+
const result = validateCheckpoint(checkpoint, 'different-sha', 'hash456');
|
|
186
|
+
expect(result.valid).toBe(true);
|
|
187
|
+
expect(result.warnings).toHaveLength(1);
|
|
188
|
+
expect(result.warnings[0]).toContain('Git SHA has changed');
|
|
189
|
+
expect(result.warnings[0]).toContain('abc123');
|
|
190
|
+
expect(result.warnings[0]).toContain('different-sha');
|
|
191
|
+
});
|
|
192
|
+
it('should not warn if checkpoint SHA is unknown', () => {
|
|
193
|
+
const unknownCheckpoint = { ...checkpoint, gitSha: 'unknown' };
|
|
194
|
+
const result = validateCheckpoint(unknownCheckpoint, 'any-sha', 'hash456');
|
|
195
|
+
expect(result.valid).toBe(true);
|
|
196
|
+
expect(result.warnings).toHaveLength(0);
|
|
197
|
+
});
|
|
198
|
+
it('should warn if plan hash changed', () => {
|
|
199
|
+
const result = validateCheckpoint(checkpoint, 'abc123', 'different-hash');
|
|
200
|
+
expect(result.valid).toBe(true);
|
|
201
|
+
expect(result.warnings).toHaveLength(1);
|
|
202
|
+
expect(result.warnings[0]).toContain('Plan has been modified');
|
|
203
|
+
expect(result.warnings[0]).toContain('hash456');
|
|
204
|
+
expect(result.warnings[0]).toContain('different-hash');
|
|
205
|
+
});
|
|
206
|
+
it('should warn for both git SHA and plan hash changes', () => {
|
|
207
|
+
const result = validateCheckpoint(checkpoint, 'new-sha', 'new-hash');
|
|
208
|
+
expect(result.valid).toBe(true);
|
|
209
|
+
expect(result.warnings).toHaveLength(2);
|
|
210
|
+
expect(result.warnings[0]).toContain('Git SHA has changed');
|
|
211
|
+
expect(result.warnings[1]).toContain('Plan has been modified');
|
|
212
|
+
});
|
|
213
|
+
});
|
|
214
|
+
describe('Integration test', () => {
|
|
215
|
+
it('should handle full checkpoint lifecycle', () => {
|
|
216
|
+
// 1. Save initial checkpoint
|
|
217
|
+
saveCheckpoint('integration-test', {
|
|
218
|
+
gitSha: getGitSha(),
|
|
219
|
+
planHash: hashPlanContent('Plan content v1'),
|
|
220
|
+
iterationCount: 25,
|
|
221
|
+
tasks: [
|
|
222
|
+
{ id: '1', status: 'completed', description: 'Task 1' },
|
|
223
|
+
{ id: '2', status: 'in_progress', description: 'Task 2' },
|
|
224
|
+
{ id: '3', status: 'pending', description: 'Task 3' }
|
|
225
|
+
]
|
|
226
|
+
}, testCheckpointsDir);
|
|
227
|
+
// 2. List checkpoints
|
|
228
|
+
const checkpoints = listCheckpoints('integration-test', testCheckpointsDir);
|
|
229
|
+
expect(checkpoints).toHaveLength(1);
|
|
230
|
+
// 3. Load checkpoint
|
|
231
|
+
const loaded = loadCheckpoint('integration-test', testCheckpointsDir);
|
|
232
|
+
expect(loaded).not.toBeNull();
|
|
233
|
+
expect(loaded?.planName).toBe('integration-test');
|
|
234
|
+
expect(loaded?.iterationCount).toBe(25);
|
|
235
|
+
expect(loaded?.tasks).toHaveLength(3);
|
|
236
|
+
// 4. Validate checkpoint
|
|
237
|
+
const validation = validateCheckpoint(loaded, loaded.gitSha, loaded.planHash);
|
|
238
|
+
expect(validation.valid).toBe(true);
|
|
239
|
+
expect(validation.warnings).toHaveLength(0);
|
|
240
|
+
// 5. Save another checkpoint (progress)
|
|
241
|
+
saveCheckpoint('integration-test', {
|
|
242
|
+
gitSha: getGitSha(),
|
|
243
|
+
planHash: hashPlanContent('Plan content v1'),
|
|
244
|
+
iterationCount: 50,
|
|
245
|
+
tasks: [
|
|
246
|
+
{ id: '1', status: 'completed', description: 'Task 1' },
|
|
247
|
+
{ id: '2', status: 'completed', description: 'Task 2' },
|
|
248
|
+
{ id: '3', status: 'in_progress', description: 'Task 3' }
|
|
249
|
+
]
|
|
250
|
+
}, testCheckpointsDir);
|
|
251
|
+
// 6. Verify most recent is loaded
|
|
252
|
+
const latest = loadCheckpoint('integration-test', testCheckpointsDir);
|
|
253
|
+
expect(latest?.iterationCount).toBe(50);
|
|
254
|
+
expect(latest?.tasks[1].status).toBe('completed');
|
|
255
|
+
// 7. List all checkpoints
|
|
256
|
+
const allCheckpoints = listCheckpoints('integration-test', testCheckpointsDir);
|
|
257
|
+
expect(allCheckpoints).toHaveLength(2);
|
|
258
|
+
});
|
|
259
|
+
});
|
|
260
|
+
});
|
|
261
|
+
//# sourceMappingURL=ascent-checkpoint.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ascent-checkpoint.test.js","sourceRoot":"","sources":["../../src/__tests__/ascent-checkpoint.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-ascent.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/config-ascent.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
2
|
+
import { loadEnvConfig } from '../config/loader.js';
|
|
3
|
+
describe('Config Loader - Ascent Configuration', () => {
|
|
4
|
+
let originalEnv;
|
|
5
|
+
beforeEach(() => {
|
|
6
|
+
// Save original environment
|
|
7
|
+
originalEnv = { ...process.env };
|
|
8
|
+
});
|
|
9
|
+
afterEach(() => {
|
|
10
|
+
// Restore original environment
|
|
11
|
+
process.env = originalEnv;
|
|
12
|
+
});
|
|
13
|
+
describe('loadEnvConfig - OLYMPUS_MAX_ASCENT_ITERATIONS', () => {
|
|
14
|
+
it('should load valid max iterations from environment', () => {
|
|
15
|
+
process.env.OLYMPUS_MAX_ASCENT_ITERATIONS = '150';
|
|
16
|
+
const config = loadEnvConfig();
|
|
17
|
+
expect(config.ascent?.maxIterations).toBe(150);
|
|
18
|
+
});
|
|
19
|
+
it('should accept minimum value of 10', () => {
|
|
20
|
+
process.env.OLYMPUS_MAX_ASCENT_ITERATIONS = '10';
|
|
21
|
+
const config = loadEnvConfig();
|
|
22
|
+
expect(config.ascent?.maxIterations).toBe(10);
|
|
23
|
+
});
|
|
24
|
+
it('should accept maximum value of 1000', () => {
|
|
25
|
+
process.env.OLYMPUS_MAX_ASCENT_ITERATIONS = '1000';
|
|
26
|
+
const config = loadEnvConfig();
|
|
27
|
+
expect(config.ascent?.maxIterations).toBe(1000);
|
|
28
|
+
});
|
|
29
|
+
it('should reject values below 10', () => {
|
|
30
|
+
process.env.OLYMPUS_MAX_ASCENT_ITERATIONS = '5';
|
|
31
|
+
const config = loadEnvConfig();
|
|
32
|
+
expect(config.ascent?.maxIterations).toBeUndefined();
|
|
33
|
+
});
|
|
34
|
+
it('should reject values above 1000', () => {
|
|
35
|
+
process.env.OLYMPUS_MAX_ASCENT_ITERATIONS = '2000';
|
|
36
|
+
const config = loadEnvConfig();
|
|
37
|
+
expect(config.ascent?.maxIterations).toBeUndefined();
|
|
38
|
+
});
|
|
39
|
+
it('should ignore non-numeric values', () => {
|
|
40
|
+
process.env.OLYMPUS_MAX_ASCENT_ITERATIONS = 'not-a-number';
|
|
41
|
+
const config = loadEnvConfig();
|
|
42
|
+
expect(config.ascent?.maxIterations).toBeUndefined();
|
|
43
|
+
});
|
|
44
|
+
it('should ignore empty string', () => {
|
|
45
|
+
process.env.OLYMPUS_MAX_ASCENT_ITERATIONS = '';
|
|
46
|
+
const config = loadEnvConfig();
|
|
47
|
+
expect(config.ascent?.maxIterations).toBeUndefined();
|
|
48
|
+
});
|
|
49
|
+
it('should not set ascent config if env var not set', () => {
|
|
50
|
+
delete process.env.OLYMPUS_MAX_ASCENT_ITERATIONS;
|
|
51
|
+
const config = loadEnvConfig();
|
|
52
|
+
// ascent should not be set at all, or should be undefined
|
|
53
|
+
expect(config.ascent).toBeUndefined();
|
|
54
|
+
});
|
|
55
|
+
it('should handle decimal values by truncating', () => {
|
|
56
|
+
process.env.OLYMPUS_MAX_ASCENT_ITERATIONS = '150.7';
|
|
57
|
+
const config = loadEnvConfig();
|
|
58
|
+
expect(config.ascent?.maxIterations).toBe(150);
|
|
59
|
+
});
|
|
60
|
+
it('should handle negative values correctly (reject)', () => {
|
|
61
|
+
process.env.OLYMPUS_MAX_ASCENT_ITERATIONS = '-50';
|
|
62
|
+
const config = loadEnvConfig();
|
|
63
|
+
expect(config.ascent?.maxIterations).toBeUndefined();
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
describe('Integration with other env configs', () => {
|
|
67
|
+
it('should not interfere with other environment configurations', () => {
|
|
68
|
+
process.env.OLYMPUS_MAX_ASCENT_ITERATIONS = '200';
|
|
69
|
+
process.env.OLYMPUS_MAX_BACKGROUND_TASKS = '3';
|
|
70
|
+
process.env.OLYMPUS_PARALLEL_EXECUTION = 'true';
|
|
71
|
+
const config = loadEnvConfig();
|
|
72
|
+
expect(config.ascent?.maxIterations).toBe(200);
|
|
73
|
+
expect(config.permissions?.maxBackgroundTasks).toBe(3);
|
|
74
|
+
expect(config.features?.parallelExecution).toBe(true);
|
|
75
|
+
});
|
|
76
|
+
it('should work when only ascent env var is set', () => {
|
|
77
|
+
process.env.OLYMPUS_MAX_ASCENT_ITERATIONS = '75';
|
|
78
|
+
const config = loadEnvConfig();
|
|
79
|
+
expect(config.ascent?.maxIterations).toBe(75);
|
|
80
|
+
// Other configs should be undefined (not set from env)
|
|
81
|
+
expect(config.permissions).toBeUndefined();
|
|
82
|
+
expect(config.features).toBeUndefined();
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
describe('Type validation', () => {
|
|
86
|
+
it('should return PluginConfig type', () => {
|
|
87
|
+
process.env.OLYMPUS_MAX_ASCENT_ITERATIONS = '100';
|
|
88
|
+
const config = loadEnvConfig();
|
|
89
|
+
expect(config).toBeDefined();
|
|
90
|
+
expect(typeof config).toBe('object');
|
|
91
|
+
});
|
|
92
|
+
it('should have correct ascent config structure', () => {
|
|
93
|
+
process.env.OLYMPUS_MAX_ASCENT_ITERATIONS = '250';
|
|
94
|
+
const config = loadEnvConfig();
|
|
95
|
+
expect(config.ascent).toBeDefined();
|
|
96
|
+
expect(config.ascent).toHaveProperty('maxIterations');
|
|
97
|
+
expect(typeof config.ascent?.maxIterations).toBe('number');
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
describe('Edge cases', () => {
|
|
101
|
+
it('should handle boundary value 10 correctly', () => {
|
|
102
|
+
process.env.OLYMPUS_MAX_ASCENT_ITERATIONS = '10';
|
|
103
|
+
const config = loadEnvConfig();
|
|
104
|
+
expect(config.ascent?.maxIterations).toBe(10);
|
|
105
|
+
});
|
|
106
|
+
it('should handle boundary value 1000 correctly', () => {
|
|
107
|
+
process.env.OLYMPUS_MAX_ASCENT_ITERATIONS = '1000';
|
|
108
|
+
const config = loadEnvConfig();
|
|
109
|
+
expect(config.ascent?.maxIterations).toBe(1000);
|
|
110
|
+
});
|
|
111
|
+
it('should reject boundary minus one (9)', () => {
|
|
112
|
+
process.env.OLYMPUS_MAX_ASCENT_ITERATIONS = '9';
|
|
113
|
+
const config = loadEnvConfig();
|
|
114
|
+
expect(config.ascent?.maxIterations).toBeUndefined();
|
|
115
|
+
});
|
|
116
|
+
it('should reject boundary plus one (1001)', () => {
|
|
117
|
+
process.env.OLYMPUS_MAX_ASCENT_ITERATIONS = '1001';
|
|
118
|
+
const config = loadEnvConfig();
|
|
119
|
+
expect(config.ascent?.maxIterations).toBeUndefined();
|
|
120
|
+
});
|
|
121
|
+
it('should handle zero correctly (reject)', () => {
|
|
122
|
+
process.env.OLYMPUS_MAX_ASCENT_ITERATIONS = '0';
|
|
123
|
+
const config = loadEnvConfig();
|
|
124
|
+
expect(config.ascent?.maxIterations).toBeUndefined();
|
|
125
|
+
});
|
|
126
|
+
it('should handle whitespace in value', () => {
|
|
127
|
+
process.env.OLYMPUS_MAX_ASCENT_ITERATIONS = ' 100 ';
|
|
128
|
+
const config = loadEnvConfig();
|
|
129
|
+
// parseInt handles leading/trailing whitespace
|
|
130
|
+
expect(config.ascent?.maxIterations).toBe(100);
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
//# sourceMappingURL=config-ascent.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-ascent.test.js","sourceRoot":"","sources":["../../src/__tests__/config-ascent.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-blocking.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/hook-blocking.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|