olympus-ai 2.4.1 → 2.5.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/dist/__tests__/hooks/bundle.test.d.ts +2 -0
- package/dist/__tests__/hooks/bundle.test.d.ts.map +1 -0
- package/dist/__tests__/hooks/bundle.test.js +120 -0
- package/dist/__tests__/hooks/bundle.test.js.map +1 -0
- package/dist/__tests__/hooks/integration.test.d.ts +2 -0
- package/dist/__tests__/hooks/integration.test.d.ts.map +1 -0
- package/dist/__tests__/hooks/integration.test.js +132 -0
- package/dist/__tests__/hooks/integration.test.js.map +1 -0
- package/dist/__tests__/hooks/performance.test.d.ts +2 -0
- package/dist/__tests__/hooks/performance.test.d.ts.map +1 -0
- package/dist/__tests__/hooks/performance.test.js +266 -0
- package/dist/__tests__/hooks/performance.test.js.map +1 -0
- package/dist/__tests__/hooks/router.test.d.ts +2 -0
- package/dist/__tests__/hooks/router.test.d.ts.map +1 -0
- package/dist/__tests__/hooks/router.test.js +793 -0
- package/dist/__tests__/hooks/router.test.js.map +1 -0
- package/dist/hooks/config.d.ts +47 -0
- package/dist/hooks/config.d.ts.map +1 -0
- package/dist/hooks/config.js +120 -0
- package/dist/hooks/config.js.map +1 -0
- package/dist/hooks/entry.d.ts +17 -0
- package/dist/hooks/entry.d.ts.map +1 -0
- package/dist/hooks/entry.js +66 -0
- package/dist/hooks/entry.js.map +1 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +6 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/olympus-hooks.cjs +653 -0
- package/dist/hooks/registrations/index.d.ts +25 -0
- package/dist/hooks/registrations/index.d.ts.map +1 -0
- package/dist/hooks/registrations/index.js +43 -0
- package/dist/hooks/registrations/index.js.map +1 -0
- package/dist/hooks/registrations/messages-transform.d.ts +8 -0
- package/dist/hooks/registrations/messages-transform.d.ts.map +1 -0
- package/dist/hooks/registrations/messages-transform.js +63 -0
- package/dist/hooks/registrations/messages-transform.js.map +1 -0
- package/dist/hooks/registrations/notification.d.ts +7 -0
- package/dist/hooks/registrations/notification.d.ts.map +1 -0
- package/dist/hooks/registrations/notification.js +34 -0
- package/dist/hooks/registrations/notification.js.map +1 -0
- package/dist/hooks/registrations/post-tool-use.d.ts +18 -0
- package/dist/hooks/registrations/post-tool-use.d.ts.map +1 -0
- package/dist/hooks/registrations/post-tool-use.js +198 -0
- package/dist/hooks/registrations/post-tool-use.js.map +1 -0
- package/dist/hooks/registrations/pre-tool-use.d.ts +11 -0
- package/dist/hooks/registrations/pre-tool-use.d.ts.map +1 -0
- package/dist/hooks/registrations/pre-tool-use.js +102 -0
- package/dist/hooks/registrations/pre-tool-use.js.map +1 -0
- package/dist/hooks/registrations/session-start.d.ts +7 -0
- package/dist/hooks/registrations/session-start.d.ts.map +1 -0
- package/dist/hooks/registrations/session-start.js +60 -0
- package/dist/hooks/registrations/session-start.js.map +1 -0
- package/dist/hooks/registrations/stop.d.ts +8 -0
- package/dist/hooks/registrations/stop.d.ts.map +1 -0
- package/dist/hooks/registrations/stop.js +28 -0
- package/dist/hooks/registrations/stop.js.map +1 -0
- package/dist/hooks/registrations/user-prompt-submit.d.ts +7 -0
- package/dist/hooks/registrations/user-prompt-submit.d.ts.map +1 -0
- package/dist/hooks/registrations/user-prompt-submit.js +114 -0
- package/dist/hooks/registrations/user-prompt-submit.js.map +1 -0
- package/dist/hooks/registry.d.ts +39 -0
- package/dist/hooks/registry.d.ts.map +1 -0
- package/dist/hooks/registry.js +58 -0
- package/dist/hooks/registry.js.map +1 -0
- package/dist/hooks/router.d.ts +31 -0
- package/dist/hooks/router.d.ts.map +1 -0
- package/dist/hooks/router.js +155 -0
- package/dist/hooks/router.js.map +1 -0
- package/dist/hooks/types.d.ts +102 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.js +8 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/installer/default-config.d.ts +112 -0
- package/dist/installer/default-config.d.ts.map +1 -0
- package/dist/installer/default-config.js +153 -0
- package/dist/installer/default-config.js.map +1 -0
- package/dist/installer/hooks.d.ts +104 -0
- package/dist/installer/hooks.d.ts.map +1 -1
- package/dist/installer/hooks.js +80 -0
- package/dist/installer/hooks.js.map +1 -1
- package/dist/installer/index.d.ts +5 -1
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +2108 -2064
- package/dist/installer/index.js.map +1 -1
- package/dist/installer/migrate.d.ts +28 -0
- package/dist/installer/migrate.d.ts.map +1 -0
- package/dist/installer/migrate.js +99 -0
- package/dist/installer/migrate.js.map +1 -0
- package/dist/shared/types.d.ts +60 -0
- package/dist/shared/types.d.ts.map +1 -1
- package/package.json +3 -1
- package/.claude/agents/document-writer.md +0 -152
- package/.claude/agents/explore-medium.md +0 -25
- package/.claude/agents/explore.md +0 -86
- package/.claude/agents/frontend-engineer-high.md +0 -24
- package/.claude/agents/frontend-engineer-low.md +0 -23
- package/.claude/agents/frontend-engineer.md +0 -89
- package/.claude/agents/librarian-low.md +0 -22
- package/.claude/agents/librarian.md +0 -70
- package/.claude/agents/metis.md +0 -85
- package/.claude/agents/momus.md +0 -97
- package/.claude/agents/multimodal-looker.md +0 -39
- package/.claude/agents/olympian-high.md +0 -39
- package/.claude/agents/olympian-low.md +0 -29
- package/.claude/agents/olympian.md +0 -71
- package/.claude/agents/oracle-low.md +0 -23
- package/.claude/agents/oracle-medium.md +0 -28
- package/.claude/agents/oracle.md +0 -77
- package/.claude/agents/prometheus.md +0 -126
- package/.claude/agents/qa-tester.md +0 -220
- package/.claude/commands/analyze/skill.md +0 -14
- package/.claude/commands/analyze.md +0 -14
- package/.claude/commands/ascent/skill.md +0 -152
- package/.claude/commands/ascent.md +0 -152
- package/.claude/commands/cancel-ascent.md +0 -9
- package/.claude/commands/complete-plan.md +0 -101
- package/.claude/commands/deepinit.md +0 -114
- package/.claude/commands/deepsearch/skill.md +0 -15
- package/.claude/commands/deepsearch.md +0 -15
- package/.claude/commands/doctor.md +0 -190
- package/.claude/commands/olympus/skill.md +0 -82
- package/.claude/commands/olympus-default.md +0 -26
- package/.claude/commands/plan.md +0 -37
- package/.claude/commands/prometheus/skill.md +0 -41
- package/.claude/commands/prometheus.md +0 -41
- package/.claude/commands/review/skill.md +0 -40
- package/.claude/commands/review.md +0 -40
- package/.claude/commands/ultrawork/skill.md +0 -90
- package/.claude/commands/ultrawork.md +0 -90
- package/.claude/commands/update.md +0 -38
- package/dist/features/boulder-state/constants.d.ts +0 -20
- package/dist/features/boulder-state/constants.d.ts.map +0 -1
- package/dist/features/boulder-state/constants.js +0 -20
- package/dist/features/boulder-state/constants.js.map +0 -1
- package/dist/features/boulder-state/index.d.ts +0 -12
- package/dist/features/boulder-state/index.d.ts.map +0 -1
- package/dist/features/boulder-state/index.js +0 -13
- package/dist/features/boulder-state/index.js.map +0 -1
- package/dist/features/boulder-state/storage.d.ts +0 -58
- package/dist/features/boulder-state/storage.d.ts.map +0 -1
- package/dist/features/boulder-state/storage.js +0 -174
- package/dist/features/boulder-state/storage.js.map +0 -1
- package/dist/features/boulder-state/types.d.ts +0 -48
- package/dist/features/boulder-state/types.d.ts.map +0 -1
- package/dist/features/boulder-state/types.js +0 -10
- package/dist/features/boulder-state/types.js.map +0 -1
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Review a plan with Momus
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
[PLAN REVIEW MODE]
|
|
6
|
-
|
|
7
|
-
$ARGUMENTS
|
|
8
|
-
|
|
9
|
-
## Plan Review with Momus
|
|
10
|
-
|
|
11
|
-
I will critically evaluate the specified plan using Momus, the ruthless plan reviewer.
|
|
12
|
-
|
|
13
|
-
### Evaluation Criteria
|
|
14
|
-
- **Clarity**: 80%+ of claims must cite specific file/line references
|
|
15
|
-
- **Testability**: 90%+ of acceptance criteria must be concrete and testable
|
|
16
|
-
- **Verification**: All file references must be verified to exist
|
|
17
|
-
- **Specificity**: No vague terms like "improve", "optimize" without metrics
|
|
18
|
-
|
|
19
|
-
### Output Format
|
|
20
|
-
- **APPROVED** - Plan meets all criteria, ready for execution
|
|
21
|
-
- **REVISE** - Plan has issues that need to be addressed (with specific feedback)
|
|
22
|
-
- **REJECT** - Plan has fundamental problems requiring replanning
|
|
23
|
-
|
|
24
|
-
### Usage
|
|
25
|
-
```
|
|
26
|
-
/review .olympus/plans/my-feature.md
|
|
27
|
-
/review # Review the most recent plan
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
### What Gets Checked
|
|
31
|
-
1. Are requirements clear and unambiguous?
|
|
32
|
-
2. Are acceptance criteria concrete and testable?
|
|
33
|
-
3. Do file references actually exist?
|
|
34
|
-
4. Are implementation steps specific and actionable?
|
|
35
|
-
5. Are risks identified with mitigations?
|
|
36
|
-
6. Are verification steps defined?
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
Provide a plan file path to review, or I'll review the most recent plan in `.olympus/plans/`.
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Review a plan with Momus
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
[PLAN REVIEW MODE]
|
|
6
|
-
|
|
7
|
-
$ARGUMENTS
|
|
8
|
-
|
|
9
|
-
## Plan Review with Momus
|
|
10
|
-
|
|
11
|
-
I will critically evaluate the specified plan using Momus, the ruthless plan reviewer.
|
|
12
|
-
|
|
13
|
-
### Evaluation Criteria
|
|
14
|
-
- **Clarity**: 80%+ of claims must cite specific file/line references
|
|
15
|
-
- **Testability**: 90%+ of acceptance criteria must be concrete and testable
|
|
16
|
-
- **Verification**: All file references must be verified to exist
|
|
17
|
-
- **Specificity**: No vague terms like "improve", "optimize" without metrics
|
|
18
|
-
|
|
19
|
-
### Output Format
|
|
20
|
-
- **APPROVED** - Plan meets all criteria, ready for execution
|
|
21
|
-
- **REVISE** - Plan has issues that need to be addressed (with specific feedback)
|
|
22
|
-
- **REJECT** - Plan has fundamental problems requiring replanning
|
|
23
|
-
|
|
24
|
-
### Usage
|
|
25
|
-
```
|
|
26
|
-
/review .olympus/plans/my-feature.md
|
|
27
|
-
/review # Review the most recent plan
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
### What Gets Checked
|
|
31
|
-
1. Are requirements clear and unambiguous?
|
|
32
|
-
2. Are acceptance criteria concrete and testable?
|
|
33
|
-
3. Do file references actually exist?
|
|
34
|
-
4. Are implementation steps specific and actionable?
|
|
35
|
-
5. Are risks identified with mitigations?
|
|
36
|
-
6. Are verification steps defined?
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
Provide a plan file path to review, or I'll review the most recent plan in `.olympus/plans/`.
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Maximum intensity mode - parallel everything, delegate aggressively, never wait
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
[ULTRAWORK MODE ACTIVATED - MAXIMUM INTENSITY]
|
|
6
|
-
|
|
7
|
-
$ARGUMENTS
|
|
8
|
-
|
|
9
|
-
## THE ULTRAWORK OATH
|
|
10
|
-
|
|
11
|
-
You are now operating at **MAXIMUM INTENSITY**. Half-measures are unacceptable. Incomplete work is FAILURE. You will persist until EVERY task is VERIFIED complete.
|
|
12
|
-
|
|
13
|
-
This mode OVERRIDES default heuristics. Where default mode says "parallelize when profitable," ultrawork says "PARALLEL EVERYTHING."
|
|
14
|
-
|
|
15
|
-
## ULTRAWORK OVERRIDES
|
|
16
|
-
|
|
17
|
-
| Default Behavior | Ultrawork Override |
|
|
18
|
-
|------------------|-------------------|
|
|
19
|
-
| Parallelize when profitable | **PARALLEL EVERYTHING** |
|
|
20
|
-
| Do simple tasks directly | **DELEGATE EVEN SMALL TASKS** |
|
|
21
|
-
| Wait for verification | **DON'T WAIT - continue immediately** |
|
|
22
|
-
| Background for long ops | **BACKGROUND EVERYTHING POSSIBLE** |
|
|
23
|
-
|
|
24
|
-
## EXECUTION PROTOCOL
|
|
25
|
-
|
|
26
|
-
### 1. PARALLEL EVERYTHING
|
|
27
|
-
- Fire off MULTIPLE agents simultaneously - don't analyze, just launch
|
|
28
|
-
- Don't wait when you can parallelize
|
|
29
|
-
- Use background execution for ALL operations that support it
|
|
30
|
-
- Maximum throughput is the only goal
|
|
31
|
-
- Launch 3-5 agents in parallel when possible
|
|
32
|
-
|
|
33
|
-
### 2. DELEGATE AGGRESSIVELY
|
|
34
|
-
Route tasks to specialists IMMEDIATELY - don't do it yourself:
|
|
35
|
-
- `oracle` → ANY debugging or analysis
|
|
36
|
-
- `librarian` → ANY research or doc lookup
|
|
37
|
-
- `explore` → ANY search operation
|
|
38
|
-
- `frontend-engineer` → ANY UI work
|
|
39
|
-
- `document-writer` → ANY documentation
|
|
40
|
-
- `olympian` → ANY code changes
|
|
41
|
-
- `qa-tester` → ANY verification
|
|
42
|
-
|
|
43
|
-
### 3. NEVER WAIT
|
|
44
|
-
- Start the next task BEFORE the previous one completes
|
|
45
|
-
- Check background task results LATER
|
|
46
|
-
- Don't block on verification - launch it and continue
|
|
47
|
-
- Maximum concurrency at all times
|
|
48
|
-
|
|
49
|
-
### 4. PERSISTENCE ENFORCEMENT
|
|
50
|
-
- Create TODO list IMMEDIATELY
|
|
51
|
-
- Mark tasks in_progress BEFORE starting
|
|
52
|
-
- Mark completed ONLY after VERIFICATION
|
|
53
|
-
- LOOP until 100% complete
|
|
54
|
-
- Re-check todo list before ANY conclusion attempt
|
|
55
|
-
|
|
56
|
-
## THE ULTRAWORK PROMISE
|
|
57
|
-
|
|
58
|
-
Before stopping, VERIFY:
|
|
59
|
-
- [ ] Todo list: ZERO pending/in_progress tasks
|
|
60
|
-
- [ ] All functionality: TESTED and WORKING
|
|
61
|
-
- [ ] All errors: RESOLVED
|
|
62
|
-
- [ ] User's request: FULLY SATISFIED
|
|
63
|
-
|
|
64
|
-
**If ANY checkbox is unchecked, CONTINUE WORKING. No exceptions.**
|
|
65
|
-
|
|
66
|
-
## VERIFICATION PROTOCOL
|
|
67
|
-
|
|
68
|
-
### Step 1: Self-Check
|
|
69
|
-
Run through the checklist above.
|
|
70
|
-
|
|
71
|
-
### Step 2: Oracle Review (Launch in Background)
|
|
72
|
-
```
|
|
73
|
-
Task(subagent_type="oracle", run_in_background=true, prompt="VERIFY COMPLETION:
|
|
74
|
-
Original task: [task]
|
|
75
|
-
Changes made: [list]
|
|
76
|
-
Please verify this is complete and production-ready.")
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### Step 3: Run Tests (In Parallel)
|
|
80
|
-
```bash
|
|
81
|
-
npm test # or pytest, go test, cargo test
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
### Step 4: Decision
|
|
85
|
-
- **Oracle APPROVED + Tests PASS** → Declare complete
|
|
86
|
-
- **Any REJECTED/FAILED** → Fix and re-verify
|
|
87
|
-
|
|
88
|
-
## THE ASCENT NEVER ENDS
|
|
89
|
-
|
|
90
|
-
The ascent continues until Olympus is reached. In ultrawork mode, the climb intensifies.
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Maximum intensity mode - parallel everything, delegate aggressively, never wait
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
[ULTRAWORK MODE ACTIVATED - MAXIMUM INTENSITY]
|
|
6
|
-
|
|
7
|
-
$ARGUMENTS
|
|
8
|
-
|
|
9
|
-
## THE ULTRAWORK OATH
|
|
10
|
-
|
|
11
|
-
You are now operating at **MAXIMUM INTENSITY**. Half-measures are unacceptable. Incomplete work is FAILURE. You will persist until EVERY task is VERIFIED complete.
|
|
12
|
-
|
|
13
|
-
This mode OVERRIDES default heuristics. Where default mode says "parallelize when profitable," ultrawork says "PARALLEL EVERYTHING."
|
|
14
|
-
|
|
15
|
-
## ULTRAWORK OVERRIDES
|
|
16
|
-
|
|
17
|
-
| Default Behavior | Ultrawork Override |
|
|
18
|
-
|------------------|-------------------|
|
|
19
|
-
| Parallelize when profitable | **PARALLEL EVERYTHING** |
|
|
20
|
-
| Do simple tasks directly | **DELEGATE EVEN SMALL TASKS** |
|
|
21
|
-
| Wait for verification | **DON'T WAIT - continue immediately** |
|
|
22
|
-
| Background for long ops | **BACKGROUND EVERYTHING POSSIBLE** |
|
|
23
|
-
|
|
24
|
-
## EXECUTION PROTOCOL
|
|
25
|
-
|
|
26
|
-
### 1. PARALLEL EVERYTHING
|
|
27
|
-
- Fire off MULTIPLE agents simultaneously - don't analyze, just launch
|
|
28
|
-
- Don't wait when you can parallelize
|
|
29
|
-
- Use background execution for ALL operations that support it
|
|
30
|
-
- Maximum throughput is the only goal
|
|
31
|
-
- Launch 3-5 agents in parallel when possible
|
|
32
|
-
|
|
33
|
-
### 2. DELEGATE AGGRESSIVELY
|
|
34
|
-
Route tasks to specialists IMMEDIATELY - don't do it yourself:
|
|
35
|
-
- `oracle` → ANY debugging or analysis
|
|
36
|
-
- `librarian` → ANY research or doc lookup
|
|
37
|
-
- `explore` → ANY search operation
|
|
38
|
-
- `frontend-engineer` → ANY UI work
|
|
39
|
-
- `document-writer` → ANY documentation
|
|
40
|
-
- `olympian` → ANY code changes
|
|
41
|
-
- `qa-tester` → ANY verification
|
|
42
|
-
|
|
43
|
-
### 3. NEVER WAIT
|
|
44
|
-
- Start the next task BEFORE the previous one completes
|
|
45
|
-
- Check background task results LATER
|
|
46
|
-
- Don't block on verification - launch it and continue
|
|
47
|
-
- Maximum concurrency at all times
|
|
48
|
-
|
|
49
|
-
### 4. PERSISTENCE ENFORCEMENT
|
|
50
|
-
- Create TODO list IMMEDIATELY
|
|
51
|
-
- Mark tasks in_progress BEFORE starting
|
|
52
|
-
- Mark completed ONLY after VERIFICATION
|
|
53
|
-
- LOOP until 100% complete
|
|
54
|
-
- Re-check todo list before ANY conclusion attempt
|
|
55
|
-
|
|
56
|
-
## THE ULTRAWORK PROMISE
|
|
57
|
-
|
|
58
|
-
Before stopping, VERIFY:
|
|
59
|
-
- [ ] Todo list: ZERO pending/in_progress tasks
|
|
60
|
-
- [ ] All functionality: TESTED and WORKING
|
|
61
|
-
- [ ] All errors: RESOLVED
|
|
62
|
-
- [ ] User's request: FULLY SATISFIED
|
|
63
|
-
|
|
64
|
-
**If ANY checkbox is unchecked, CONTINUE WORKING. No exceptions.**
|
|
65
|
-
|
|
66
|
-
## VERIFICATION PROTOCOL
|
|
67
|
-
|
|
68
|
-
### Step 1: Self-Check
|
|
69
|
-
Run through the checklist above.
|
|
70
|
-
|
|
71
|
-
### Step 2: Oracle Review (Launch in Background)
|
|
72
|
-
```
|
|
73
|
-
Task(subagent_type="oracle", run_in_background=true, prompt="VERIFY COMPLETION:
|
|
74
|
-
Original task: [task]
|
|
75
|
-
Changes made: [list]
|
|
76
|
-
Please verify this is complete and production-ready.")
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### Step 3: Run Tests (In Parallel)
|
|
80
|
-
```bash
|
|
81
|
-
npm test # or pytest, go test, cargo test
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
### Step 4: Decision
|
|
85
|
-
- **Oracle APPROVED + Tests PASS** → Declare complete
|
|
86
|
-
- **Any REJECTED/FAILED** → Fix and re-verify
|
|
87
|
-
|
|
88
|
-
## THE ASCENT NEVER ENDS
|
|
89
|
-
|
|
90
|
-
The ascent continues until Olympus is reached. In ultrawork mode, the climb intensifies.
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Check for and install Olympus updates
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
[UPDATE CHECK]
|
|
6
|
-
|
|
7
|
-
$ARGUMENTS
|
|
8
|
-
|
|
9
|
-
## Checking for Updates
|
|
10
|
-
|
|
11
|
-
I will check for available updates to Olympus.
|
|
12
|
-
|
|
13
|
-
### What This Does
|
|
14
|
-
|
|
15
|
-
1. **Check Version**: Compare your installed version against the latest release on GitHub
|
|
16
|
-
2. **Show Release Notes**: Display what's new in the latest version
|
|
17
|
-
3. **Perform Update**: If an update is available and you confirm, download and install it
|
|
18
|
-
|
|
19
|
-
### Update Methods
|
|
20
|
-
|
|
21
|
-
**Automatic (Recommended):**
|
|
22
|
-
Run the install script to update:
|
|
23
|
-
```bash
|
|
24
|
-
curl -fsSL https://raw.githubusercontent.com/mikev10/olympus/main/scripts/install.sh | bash
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
**Manual:**
|
|
28
|
-
1. Check your current version in `~/.claude/.olympus-version.json`
|
|
29
|
-
2. Visit https://github.com/mikev10/olympus/releases
|
|
30
|
-
3. Download and run the install script from the latest release
|
|
31
|
-
|
|
32
|
-
### Version Info Location
|
|
33
|
-
|
|
34
|
-
Your version information is stored at: `~/.claude/.olympus-version.json`
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
Let me check for updates now. I'll read your version file and compare against the latest GitHub release.
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Boulder State Constants
|
|
3
|
-
*
|
|
4
|
-
* Ported from oh-my-opencode's boulder-state.
|
|
5
|
-
*/
|
|
6
|
-
/** Olympus state directory */
|
|
7
|
-
export declare const BOULDER_DIR = ".olympus";
|
|
8
|
-
/** Boulder state file name */
|
|
9
|
-
export declare const BOULDER_FILE = "boulder.json";
|
|
10
|
-
/** Full path pattern for boulder state */
|
|
11
|
-
export declare const BOULDER_STATE_PATH = ".olympus/boulder.json";
|
|
12
|
-
/** Notepad directory for learnings */
|
|
13
|
-
export declare const NOTEPAD_DIR = "notepads";
|
|
14
|
-
/** Full path for notepads */
|
|
15
|
-
export declare const NOTEPAD_BASE_PATH = ".olympus/notepads";
|
|
16
|
-
/** Prometheus plan directory */
|
|
17
|
-
export declare const PROMETHEUS_PLANS_DIR = ".olympus/plans";
|
|
18
|
-
/** Plan file extension */
|
|
19
|
-
export declare const PLAN_EXTENSION = ".md";
|
|
20
|
-
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/features/boulder-state/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,8BAA8B;AAC9B,eAAO,MAAM,WAAW,aAAa,CAAC;AAEtC,8BAA8B;AAC9B,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAE3C,0CAA0C;AAC1C,eAAO,MAAM,kBAAkB,0BAAmC,CAAC;AAEnE,sCAAsC;AACtC,eAAO,MAAM,WAAW,aAAa,CAAC;AAEtC,6BAA6B;AAC7B,eAAO,MAAM,iBAAiB,sBAAkC,CAAC;AAEjE,gCAAgC;AAChC,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AAErD,0BAA0B;AAC1B,eAAO,MAAM,cAAc,QAAQ,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Boulder State Constants
|
|
3
|
-
*
|
|
4
|
-
* Ported from oh-my-opencode's boulder-state.
|
|
5
|
-
*/
|
|
6
|
-
/** Olympus state directory */
|
|
7
|
-
export const BOULDER_DIR = '.olympus';
|
|
8
|
-
/** Boulder state file name */
|
|
9
|
-
export const BOULDER_FILE = 'boulder.json';
|
|
10
|
-
/** Full path pattern for boulder state */
|
|
11
|
-
export const BOULDER_STATE_PATH = `${BOULDER_DIR}/${BOULDER_FILE}`;
|
|
12
|
-
/** Notepad directory for learnings */
|
|
13
|
-
export const NOTEPAD_DIR = 'notepads';
|
|
14
|
-
/** Full path for notepads */
|
|
15
|
-
export const NOTEPAD_BASE_PATH = `${BOULDER_DIR}/${NOTEPAD_DIR}`;
|
|
16
|
-
/** Prometheus plan directory */
|
|
17
|
-
export const PROMETHEUS_PLANS_DIR = '.olympus/plans';
|
|
18
|
-
/** Plan file extension */
|
|
19
|
-
export const PLAN_EXTENSION = '.md';
|
|
20
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/features/boulder-state/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,8BAA8B;AAC9B,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC;AAEtC,8BAA8B;AAC9B,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;AAE3C,0CAA0C;AAC1C,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,WAAW,IAAI,YAAY,EAAE,CAAC;AAEnE,sCAAsC;AACtC,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC;AAEtC,6BAA6B;AAC7B,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,WAAW,IAAI,WAAW,EAAE,CAAC;AAEjE,gCAAgC;AAChC,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AAErD,0BAA0B;AAC1B,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Boulder State Module
|
|
3
|
-
*
|
|
4
|
-
* Manages the active work plan state for Olympus orchestrator.
|
|
5
|
-
* Named after Olympus's boulder - the eternal task that must be rolled.
|
|
6
|
-
*
|
|
7
|
-
* Ported from oh-my-opencode's boulder-state.
|
|
8
|
-
*/
|
|
9
|
-
export type { BoulderState, PlanProgress, PlanSummary } from './types.js';
|
|
10
|
-
export { BOULDER_DIR, BOULDER_FILE, BOULDER_STATE_PATH, NOTEPAD_DIR, NOTEPAD_BASE_PATH, PROMETHEUS_PLANS_DIR, PLAN_EXTENSION } from './constants.js';
|
|
11
|
-
export { getBoulderFilePath, readBoulderState, writeBoulderState, appendSessionId, clearBoulderState, findPrometheusPlans, getPlanProgress, getPlanName, createBoulderState, getPlanSummaries, hasBoulder, getActivePlanPath } from './storage.js';
|
|
12
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/boulder-state/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACZ,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EAClB,MAAM,cAAc,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Boulder State Module
|
|
3
|
-
*
|
|
4
|
-
* Manages the active work plan state for Olympus orchestrator.
|
|
5
|
-
* Named after Olympus's boulder - the eternal task that must be rolled.
|
|
6
|
-
*
|
|
7
|
-
* Ported from oh-my-opencode's boulder-state.
|
|
8
|
-
*/
|
|
9
|
-
// Constants
|
|
10
|
-
export { BOULDER_DIR, BOULDER_FILE, BOULDER_STATE_PATH, NOTEPAD_DIR, NOTEPAD_BASE_PATH, PROMETHEUS_PLANS_DIR, PLAN_EXTENSION } from './constants.js';
|
|
11
|
-
// Storage operations
|
|
12
|
-
export { getBoulderFilePath, readBoulderState, writeBoulderState, appendSessionId, clearBoulderState, findPrometheusPlans, getPlanProgress, getPlanName, createBoulderState, getPlanSummaries, hasBoulder, getActivePlanPath } from './storage.js';
|
|
13
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/features/boulder-state/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,YAAY;AACZ,OAAO,EACL,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACf,MAAM,gBAAgB,CAAC;AAExB,qBAAqB;AACrB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EAClB,MAAM,cAAc,CAAC"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Boulder State Storage
|
|
3
|
-
*
|
|
4
|
-
* Handles reading/writing boulder.json for active plan tracking.
|
|
5
|
-
*
|
|
6
|
-
* Ported from oh-my-opencode's boulder-state.
|
|
7
|
-
*/
|
|
8
|
-
import type { BoulderState, PlanProgress, PlanSummary } from './types.js';
|
|
9
|
-
/**
|
|
10
|
-
* Get the full path to the boulder state file
|
|
11
|
-
*/
|
|
12
|
-
export declare function getBoulderFilePath(directory: string): string;
|
|
13
|
-
/**
|
|
14
|
-
* Read boulder state from disk
|
|
15
|
-
*/
|
|
16
|
-
export declare function readBoulderState(directory: string): BoulderState | null;
|
|
17
|
-
/**
|
|
18
|
-
* Write boulder state to disk
|
|
19
|
-
*/
|
|
20
|
-
export declare function writeBoulderState(directory: string, state: BoulderState): boolean;
|
|
21
|
-
/**
|
|
22
|
-
* Append a session ID to the boulder state
|
|
23
|
-
*/
|
|
24
|
-
export declare function appendSessionId(directory: string, sessionId: string): BoulderState | null;
|
|
25
|
-
/**
|
|
26
|
-
* Clear boulder state (delete the file)
|
|
27
|
-
*/
|
|
28
|
-
export declare function clearBoulderState(directory: string): boolean;
|
|
29
|
-
/**
|
|
30
|
-
* Find Prometheus plan files for this project.
|
|
31
|
-
* Prometheus stores plans at: {project}/.olympus/plans/{name}.md
|
|
32
|
-
*/
|
|
33
|
-
export declare function findPrometheusPlans(directory: string): string[];
|
|
34
|
-
/**
|
|
35
|
-
* Parse a plan file and count checkbox progress.
|
|
36
|
-
*/
|
|
37
|
-
export declare function getPlanProgress(planPath: string): PlanProgress;
|
|
38
|
-
/**
|
|
39
|
-
* Extract plan name from file path.
|
|
40
|
-
*/
|
|
41
|
-
export declare function getPlanName(planPath: string): string;
|
|
42
|
-
/**
|
|
43
|
-
* Create a new boulder state for a plan.
|
|
44
|
-
*/
|
|
45
|
-
export declare function createBoulderState(planPath: string, sessionId: string): BoulderState;
|
|
46
|
-
/**
|
|
47
|
-
* Get summaries of all available plans
|
|
48
|
-
*/
|
|
49
|
-
export declare function getPlanSummaries(directory: string): PlanSummary[];
|
|
50
|
-
/**
|
|
51
|
-
* Check if a boulder is currently active
|
|
52
|
-
*/
|
|
53
|
-
export declare function hasBoulder(directory: string): boolean;
|
|
54
|
-
/**
|
|
55
|
-
* Get the active plan path from boulder state
|
|
56
|
-
*/
|
|
57
|
-
export declare function getActivePlanPath(directory: string): string | null;
|
|
58
|
-
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/features/boulder-state/storage.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG1E;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAavE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAcjF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAYzF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAW5D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAqB/D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAuB9D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,YAAY,CAOd;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAYjE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGlE"}
|
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Boulder State Storage
|
|
3
|
-
*
|
|
4
|
-
* Handles reading/writing boulder.json for active plan tracking.
|
|
5
|
-
*
|
|
6
|
-
* Ported from oh-my-opencode's boulder-state.
|
|
7
|
-
*/
|
|
8
|
-
import { existsSync, readFileSync, writeFileSync, mkdirSync, readdirSync, statSync, unlinkSync } from 'fs';
|
|
9
|
-
import { dirname, join, basename } from 'path';
|
|
10
|
-
import { BOULDER_DIR, BOULDER_FILE, PROMETHEUS_PLANS_DIR, PLAN_EXTENSION } from './constants.js';
|
|
11
|
-
/**
|
|
12
|
-
* Get the full path to the boulder state file
|
|
13
|
-
*/
|
|
14
|
-
export function getBoulderFilePath(directory) {
|
|
15
|
-
return join(directory, BOULDER_DIR, BOULDER_FILE);
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Read boulder state from disk
|
|
19
|
-
*/
|
|
20
|
-
export function readBoulderState(directory) {
|
|
21
|
-
const filePath = getBoulderFilePath(directory);
|
|
22
|
-
if (!existsSync(filePath)) {
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
try {
|
|
26
|
-
const content = readFileSync(filePath, 'utf-8');
|
|
27
|
-
return JSON.parse(content);
|
|
28
|
-
}
|
|
29
|
-
catch {
|
|
30
|
-
return null;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Write boulder state to disk
|
|
35
|
-
*/
|
|
36
|
-
export function writeBoulderState(directory, state) {
|
|
37
|
-
const filePath = getBoulderFilePath(directory);
|
|
38
|
-
try {
|
|
39
|
-
const dir = dirname(filePath);
|
|
40
|
-
if (!existsSync(dir)) {
|
|
41
|
-
mkdirSync(dir, { recursive: true });
|
|
42
|
-
}
|
|
43
|
-
writeFileSync(filePath, JSON.stringify(state, null, 2), 'utf-8');
|
|
44
|
-
return true;
|
|
45
|
-
}
|
|
46
|
-
catch {
|
|
47
|
-
return false;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Append a session ID to the boulder state
|
|
52
|
-
*/
|
|
53
|
-
export function appendSessionId(directory, sessionId) {
|
|
54
|
-
const state = readBoulderState(directory);
|
|
55
|
-
if (!state)
|
|
56
|
-
return null;
|
|
57
|
-
if (!state.session_ids.includes(sessionId)) {
|
|
58
|
-
state.session_ids.push(sessionId);
|
|
59
|
-
if (writeBoulderState(directory, state)) {
|
|
60
|
-
return state;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return state;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Clear boulder state (delete the file)
|
|
67
|
-
*/
|
|
68
|
-
export function clearBoulderState(directory) {
|
|
69
|
-
const filePath = getBoulderFilePath(directory);
|
|
70
|
-
try {
|
|
71
|
-
if (existsSync(filePath)) {
|
|
72
|
-
unlinkSync(filePath);
|
|
73
|
-
}
|
|
74
|
-
return true;
|
|
75
|
-
}
|
|
76
|
-
catch {
|
|
77
|
-
return false;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Find Prometheus plan files for this project.
|
|
82
|
-
* Prometheus stores plans at: {project}/.olympus/plans/{name}.md
|
|
83
|
-
*/
|
|
84
|
-
export function findPrometheusPlans(directory) {
|
|
85
|
-
const plansDir = join(directory, PROMETHEUS_PLANS_DIR);
|
|
86
|
-
if (!existsSync(plansDir)) {
|
|
87
|
-
return [];
|
|
88
|
-
}
|
|
89
|
-
try {
|
|
90
|
-
const files = readdirSync(plansDir);
|
|
91
|
-
return files
|
|
92
|
-
.filter((f) => f.endsWith(PLAN_EXTENSION))
|
|
93
|
-
.map((f) => join(plansDir, f))
|
|
94
|
-
.sort((a, b) => {
|
|
95
|
-
// Sort by modification time, newest first
|
|
96
|
-
const aStat = statSync(a);
|
|
97
|
-
const bStat = statSync(b);
|
|
98
|
-
return bStat.mtimeMs - aStat.mtimeMs;
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
catch {
|
|
102
|
-
return [];
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Parse a plan file and count checkbox progress.
|
|
107
|
-
*/
|
|
108
|
-
export function getPlanProgress(planPath) {
|
|
109
|
-
if (!existsSync(planPath)) {
|
|
110
|
-
return { total: 0, completed: 0, isComplete: true };
|
|
111
|
-
}
|
|
112
|
-
try {
|
|
113
|
-
const content = readFileSync(planPath, 'utf-8');
|
|
114
|
-
// Match markdown checkboxes: - [ ] or - [x] or - [X]
|
|
115
|
-
const uncheckedMatches = content.match(/^[-*]\s*\[\s*\]/gm) || [];
|
|
116
|
-
const checkedMatches = content.match(/^[-*]\s*\[[xX]\]/gm) || [];
|
|
117
|
-
const total = uncheckedMatches.length + checkedMatches.length;
|
|
118
|
-
const completed = checkedMatches.length;
|
|
119
|
-
return {
|
|
120
|
-
total,
|
|
121
|
-
completed,
|
|
122
|
-
isComplete: total === 0 || completed === total,
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
catch {
|
|
126
|
-
return { total: 0, completed: 0, isComplete: true };
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Extract plan name from file path.
|
|
131
|
-
*/
|
|
132
|
-
export function getPlanName(planPath) {
|
|
133
|
-
return basename(planPath, PLAN_EXTENSION);
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Create a new boulder state for a plan.
|
|
137
|
-
*/
|
|
138
|
-
export function createBoulderState(planPath, sessionId) {
|
|
139
|
-
return {
|
|
140
|
-
active_plan: planPath,
|
|
141
|
-
started_at: new Date().toISOString(),
|
|
142
|
-
session_ids: [sessionId],
|
|
143
|
-
plan_name: getPlanName(planPath),
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Get summaries of all available plans
|
|
148
|
-
*/
|
|
149
|
-
export function getPlanSummaries(directory) {
|
|
150
|
-
const plans = findPrometheusPlans(directory);
|
|
151
|
-
return plans.map((planPath) => {
|
|
152
|
-
const stat = statSync(planPath);
|
|
153
|
-
return {
|
|
154
|
-
path: planPath,
|
|
155
|
-
name: getPlanName(planPath),
|
|
156
|
-
progress: getPlanProgress(planPath),
|
|
157
|
-
lastModified: new Date(stat.mtimeMs),
|
|
158
|
-
};
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Check if a boulder is currently active
|
|
163
|
-
*/
|
|
164
|
-
export function hasBoulder(directory) {
|
|
165
|
-
return readBoulderState(directory) !== null;
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Get the active plan path from boulder state
|
|
169
|
-
*/
|
|
170
|
-
export function getActivePlanPath(directory) {
|
|
171
|
-
const state = readBoulderState(directory);
|
|
172
|
-
return state?.active_plan ?? null;
|
|
173
|
-
}
|
|
174
|
-
//# sourceMappingURL=storage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/features/boulder-state/storage.ts"],"names":[],"mappings":"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"}
|