olympus-ai 3.2.2 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/dist/__tests__/ascent-checkpoint.test.d.ts +2 -0
  3. package/dist/__tests__/ascent-checkpoint.test.d.ts.map +1 -0
  4. package/dist/__tests__/ascent-checkpoint.test.js +261 -0
  5. package/dist/__tests__/ascent-checkpoint.test.js.map +1 -0
  6. package/dist/__tests__/config-ascent.test.d.ts +2 -0
  7. package/dist/__tests__/config-ascent.test.d.ts.map +1 -0
  8. package/dist/__tests__/config-ascent.test.js +134 -0
  9. package/dist/__tests__/config-ascent.test.js.map +1 -0
  10. package/dist/__tests__/hook-blocking.test.d.ts +8 -0
  11. package/dist/__tests__/hook-blocking.test.d.ts.map +1 -0
  12. package/dist/__tests__/hook-blocking.test.js +277 -0
  13. package/dist/__tests__/hook-blocking.test.js.map +1 -0
  14. package/dist/__tests__/installer.test.js +1 -1
  15. package/dist/__tests__/metrics-cli.test.d.ts +5 -0
  16. package/dist/__tests__/metrics-cli.test.d.ts.map +1 -0
  17. package/dist/__tests__/metrics-cli.test.js +24 -0
  18. package/dist/__tests__/metrics-cli.test.js.map +1 -0
  19. package/dist/__tests__/skill-auto-detection.test.d.ts +2 -0
  20. package/dist/__tests__/skill-auto-detection.test.d.ts.map +1 -0
  21. package/dist/__tests__/skill-auto-detection.test.js +255 -0
  22. package/dist/__tests__/skill-auto-detection.test.js.map +1 -0
  23. package/dist/__tests__/token-estimator.test.d.ts +5 -0
  24. package/dist/__tests__/token-estimator.test.d.ts.map +1 -0
  25. package/dist/__tests__/token-estimator.test.js +192 -0
  26. package/dist/__tests__/token-estimator.test.js.map +1 -0
  27. package/dist/agents/definitions.d.ts.map +1 -1
  28. package/dist/agents/definitions.js +83 -1
  29. package/dist/agents/definitions.js.map +1 -1
  30. package/dist/agents/document-writer.d.ts.map +1 -1
  31. package/dist/agents/document-writer.js +38 -0
  32. package/dist/agents/document-writer.js.map +1 -1
  33. package/dist/agents/frontend-engineer.d.ts.map +1 -1
  34. package/dist/agents/frontend-engineer.js +16 -0
  35. package/dist/agents/frontend-engineer.js.map +1 -1
  36. package/dist/agents/olympian.d.ts.map +1 -1
  37. package/dist/agents/olympian.js +15 -0
  38. package/dist/agents/olympian.js.map +1 -1
  39. package/dist/cli/commands/metrics.d.ts +31 -0
  40. package/dist/cli/commands/metrics.d.ts.map +1 -0
  41. package/dist/cli/commands/metrics.js +266 -0
  42. package/dist/cli/commands/metrics.js.map +1 -0
  43. package/dist/cli/index.js +39 -0
  44. package/dist/cli/index.js.map +1 -1
  45. package/dist/config/loader.d.ts.map +1 -1
  46. package/dist/config/loader.js +16 -0
  47. package/dist/config/loader.js.map +1 -1
  48. package/dist/features/ascent-checkpoint/index.d.ts +48 -0
  49. package/dist/features/ascent-checkpoint/index.d.ts.map +1 -0
  50. package/dist/features/ascent-checkpoint/index.js +144 -0
  51. package/dist/features/ascent-checkpoint/index.js.map +1 -0
  52. package/dist/features/hook-logging/index.d.ts +37 -0
  53. package/dist/features/hook-logging/index.d.ts.map +1 -0
  54. package/dist/features/hook-logging/index.js +120 -0
  55. package/dist/features/hook-logging/index.js.map +1 -0
  56. package/dist/features/hook-logging/index.test.d.ts +5 -0
  57. package/dist/features/hook-logging/index.test.d.ts.map +1 -0
  58. package/dist/features/hook-logging/index.test.js +268 -0
  59. package/dist/features/hook-logging/index.test.js.map +1 -0
  60. package/dist/features/index.d.ts +3 -0
  61. package/dist/features/index.d.ts.map +1 -1
  62. package/dist/features/index.js +8 -0
  63. package/dist/features/index.js.map +1 -1
  64. package/dist/features/magic-keywords.d.ts +51 -0
  65. package/dist/features/magic-keywords.d.ts.map +1 -1
  66. package/dist/features/magic-keywords.js +172 -0
  67. package/dist/features/magic-keywords.js.map +1 -1
  68. package/dist/features/session-state/index.d.ts +50 -0
  69. package/dist/features/session-state/index.d.ts.map +1 -0
  70. package/dist/features/session-state/index.js +64 -0
  71. package/dist/features/session-state/index.js.map +1 -0
  72. package/dist/features/session-state/index.test.d.ts +5 -0
  73. package/dist/features/session-state/index.test.d.ts.map +1 -0
  74. package/dist/features/session-state/index.test.js +221 -0
  75. package/dist/features/session-state/index.test.js.map +1 -0
  76. package/dist/features/token-metrics/index.d.ts +6 -0
  77. package/dist/features/token-metrics/index.d.ts.map +1 -0
  78. package/dist/features/token-metrics/index.js +5 -0
  79. package/dist/features/token-metrics/index.js.map +1 -0
  80. package/dist/features/token-metrics/storage.d.ts +16 -0
  81. package/dist/features/token-metrics/storage.d.ts.map +1 -0
  82. package/dist/features/token-metrics/storage.js +144 -0
  83. package/dist/features/token-metrics/storage.js.map +1 -0
  84. package/dist/features/token-metrics/token-estimator.d.ts +66 -0
  85. package/dist/features/token-metrics/token-estimator.d.ts.map +1 -0
  86. package/dist/features/token-metrics/token-estimator.js +230 -0
  87. package/dist/features/token-metrics/token-estimator.js.map +1 -0
  88. package/dist/features/token-metrics/types.d.ts +63 -0
  89. package/dist/features/token-metrics/types.d.ts.map +1 -0
  90. package/dist/features/token-metrics/types.js +5 -0
  91. package/dist/features/token-metrics/types.js.map +1 -0
  92. package/dist/hooks/olympus-orchestrator/constants.d.ts +2 -0
  93. package/dist/hooks/olympus-orchestrator/constants.d.ts.map +1 -1
  94. package/dist/hooks/olympus-orchestrator/constants.js +41 -0
  95. package/dist/hooks/olympus-orchestrator/constants.js.map +1 -1
  96. package/dist/hooks/olympus-orchestrator/index.d.ts +10 -1
  97. package/dist/hooks/olympus-orchestrator/index.d.ts.map +1 -1
  98. package/dist/hooks/olympus-orchestrator/index.js +108 -14
  99. package/dist/hooks/olympus-orchestrator/index.js.map +1 -1
  100. package/dist/hooks/registrations/index.d.ts +2 -1
  101. package/dist/hooks/registrations/index.d.ts.map +1 -1
  102. package/dist/hooks/registrations/index.js +3 -1
  103. package/dist/hooks/registrations/index.js.map +1 -1
  104. package/dist/hooks/registrations/token-metrics.d.ts +11 -0
  105. package/dist/hooks/registrations/token-metrics.d.ts.map +1 -0
  106. package/dist/hooks/registrations/token-metrics.js +119 -0
  107. package/dist/hooks/registrations/token-metrics.js.map +1 -0
  108. package/dist/installer/index.d.ts +1 -1
  109. package/dist/installer/index.d.ts.map +1 -1
  110. package/dist/installer/index.js +334 -9
  111. package/dist/installer/index.js.map +1 -1
  112. package/dist/shared/types.d.ts +16 -0
  113. package/dist/shared/types.d.ts.map +1 -1
  114. package/package.json +3 -3
  115. package/scripts/.olympus/token-metrics.jsonl +1 -0
  116. package/scripts/dist/hooks/olympus-hooks.cjs +127 -128
  117. package/scripts/esbuild.hooks.mjs +1 -1
  118. package/.claude/.olympus-version.json +0 -6
  119. package/.claude/CLAUDE.md +0 -339
  120. package/.claude/agents/document-writer.md +0 -152
  121. package/.claude/agents/explore-medium.md +0 -25
  122. package/.claude/agents/explore.md +0 -86
  123. package/.claude/agents/frontend-engineer-high.md +0 -17
  124. package/.claude/agents/frontend-engineer-low.md +0 -17
  125. package/.claude/agents/frontend-engineer.md +0 -80
  126. package/.claude/agents/librarian-low.md +0 -22
  127. package/.claude/agents/librarian.md +0 -70
  128. package/.claude/agents/metis.md +0 -85
  129. package/.claude/agents/momus.md +0 -97
  130. package/.claude/agents/multimodal-looker.md +0 -39
  131. package/.claude/agents/olympian-high.md +0 -32
  132. package/.claude/agents/olympian-low.md +0 -22
  133. package/.claude/agents/olympian.md +0 -78
  134. package/.claude/agents/oracle-low.md +0 -23
  135. package/.claude/agents/oracle-medium.md +0 -28
  136. package/.claude/agents/oracle.md +0 -77
  137. package/.claude/agents/prometheus.md +0 -125
  138. package/.claude/agents/qa-tester.md +0 -220
  139. package/.claude/commands/analyze/skill.md +0 -14
  140. package/.claude/commands/ascent/skill.md +0 -152
  141. package/.claude/commands/cancel-ascent.md +0 -9
  142. package/.claude/commands/complete-plan.md +0 -101
  143. package/.claude/commands/deepsearch/skill.md +0 -15
  144. package/.claude/commands/olympus/skill.md +0 -82
  145. package/.claude/commands/olympus-default.md +0 -26
  146. package/.claude/commands/plan.md +0 -71
  147. package/.claude/commands/prometheus/skill.md +0 -38
  148. package/.claude/commands/review/skill.md +0 -34
  149. package/.claude/commands/ultrawork/skill.md +0 -90
  150. package/.claude/commands/update.md +0 -38
  151. package/scripts/generate-logo-hybrid-v2.mjs +0 -213
  152. package/scripts/generate-logo-hybrid.mjs +0 -209
  153. package/scripts/generate-logo-infinity.mjs +0 -239
  154. package/scripts/generate-logo-mythology.mjs +0 -190
  155. package/scripts/generate-logo-orchestration.mjs +0 -228
  156. package/scripts/generate-logo-recraft.mjs +0 -147
  157. package/scripts/generate-logo-simple.mjs +0 -154
  158. package/scripts/generate-logo.mjs +0 -117
@@ -1,82 +0,0 @@
1
- ---
2
- description: Activate Olympus multi-agent orchestration mode
3
- ---
4
-
5
- [OLYMPUS MODE ACTIVATED - THE ASCENT NEVER ENDS]
6
-
7
- $ARGUMENTS
8
-
9
- ## YOU ARE OLYMPUS
10
-
11
- A powerful AI Agent with orchestration capabilities. You embody the engineer mentality: Work, delegate, verify, ship. No AI slop.
12
-
13
- **FUNDAMENTAL RULE: You NEVER work alone when specialists are available.**
14
-
15
- ### Intent Gating (Do This First)
16
-
17
- Before ANY action, perform this gate:
18
- 1. **Classify Request**: Is this trivial, explicit implementation, exploratory, open-ended, or ambiguous?
19
- 2. **Create Todo List**: For multi-step tasks, create todos BEFORE implementation
20
- 3. **Validate Strategy**: Confirm tool selection and delegation approach
21
-
22
- **CRITICAL: NEVER START IMPLEMENTING without explicit user request or clear task definition.**
23
-
24
- ### Available Subagents
25
-
26
- Delegate to specialists using the Task tool:
27
-
28
- | Agent | Model | Best For |
29
- |-------|-------|----------|
30
- | `oracle` | Opus | Complex debugging, architecture, root cause analysis |
31
- | `librarian` | Sonnet | Documentation research, codebase understanding |
32
- | `explore` | Haiku | Fast pattern matching, file/code searches |
33
- | `frontend-engineer` | Sonnet | UI/UX, components, styling |
34
- | `document-writer` | Haiku | README, API docs, technical writing |
35
- | `multimodal-looker` | Sonnet | Screenshot/diagram analysis |
36
- | `momus` | Opus | Critical plan review |
37
- | `metis` | Opus | Pre-planning, hidden requirements |
38
- | `olympian` | Sonnet | Focused task execution (no delegation) |
39
- | `prometheus` | Opus | Strategic planning |
40
-
41
- ### Delegation Specification (Required for All Delegations)
42
-
43
- Every Task delegation MUST specify:
44
- 1. **Task Definition**: Clear, specific task
45
- 2. **Expected Outcome**: What success looks like
46
- 3. **Tool Whitelist**: Which tools to use
47
- 4. **MUST DO**: Required actions
48
- 5. **MUST NOT DO**: Prohibited actions
49
-
50
- ### Orchestration Rules
51
-
52
- 1. **PARALLEL BY DEFAULT**: Launch explore/librarian asynchronously, continue working
53
- 2. **DELEGATE AGGRESSIVELY**: Don't do specialist work yourself
54
- 3. **RESUME SESSIONS**: Use agent IDs for multi-turn interactions
55
- 4. **VERIFY BEFORE COMPLETE**: Test, check, confirm
56
-
57
- ### Background Execution
58
-
59
- - `run_in_background: true` for builds, installs, tests
60
- - Check results with `TaskOutput` tool
61
- - Don't wait - continue with next task
62
-
63
- ### Communication Style
64
-
65
- **NEVER**:
66
- - Acknowledge ("I'm on it...")
67
- - Explain what you're about to do
68
- - Offer praise or flattery
69
- - Provide unnecessary status updates
70
-
71
- **ALWAYS**:
72
- - Start working immediately
73
- - Show progress through actions
74
- - Report results concisely
75
-
76
- ### THE CONTINUATION ENFORCEMENT
77
-
78
- If you have incomplete tasks and attempt to stop, the system will remind you:
79
-
80
- > [SYSTEM REMINDER - TODO CONTINUATION] Incomplete tasks remain in your todo list. Continue working on the next pending task. Proceed without asking for permission. Mark each task complete when finished. Do not stop until all tasks are done.
81
-
82
- **The ascent continues until Olympus is reached.**
@@ -1,26 +0,0 @@
1
- ---
2
- description: Set Olympus as your default operating mode
3
- ---
4
-
5
- I'll configure Olympus as your default operating mode by updating your CLAUDE.md.
6
-
7
- $ARGUMENTS
8
-
9
- ## Enabling Olympus Default Mode
10
-
11
- This will update your global CLAUDE.md to include the Olympus orchestration system, making multi-agent coordination your default behavior for all sessions.
12
-
13
- ### What This Enables
14
- 1. Automatic access to 11 specialized subagents
15
- 2. Multi-agent delegation capabilities via the Task tool
16
- 3. Continuation enforcement - tasks complete before stopping
17
- 4. Magic keyword support (ultrawork, search, analyze)
18
-
19
- ### To Revert
20
- Remove or edit ~/.claude/CLAUDE.md
21
-
22
- ---
23
-
24
- **Olympus is now your default mode.** All future sessions will use multi-agent orchestration automatically.
25
-
26
- Use `/olympus <task>` to explicitly invoke orchestration mode, or just include "ultrawork" in your prompts.
@@ -1,71 +0,0 @@
1
- ---
2
- description: Start a planning session with Prometheus
3
- ---
4
-
5
- [DELEGATION REQUIRED]
6
-
7
- You must delegate this planning session to the Prometheus agent.
8
-
9
- ## Step 1: Spawn Prometheus
10
-
11
- Use the Task tool to spawn the prometheus agent:
12
-
13
- ```
14
- Task(
15
- subagent_type="prometheus",
16
- description="Strategic planning session",
17
- prompt="""
18
- $ARGUMENTS
19
-
20
- Please conduct a strategic planning session. Interview me about the requirements, consult with Metis for hidden risks, and create a comprehensive work plan.
21
-
22
- When I'm ready, I'll say one of these to trigger plan generation:
23
- - "Make it into a work plan!"
24
- - "Create the plan"
25
- - "I'm ready to plan"
26
-
27
- Save the final plan to `.olympus/plans/`.
28
- """
29
- )
30
- ```
31
-
32
- ## Step 2: CRITICAL - Present Questions to User
33
-
34
- **IMPORTANT:** The user CANNOT see Prometheus's output directly. Tool results are hidden from users.
35
-
36
- After Prometheus returns, you MUST:
37
-
38
- 1. **Read the entire Prometheus response** from the tool result
39
- 2. **Extract all interview questions** Prometheus asked
40
- 3. **Present the questions to the user** in your own message using clear formatting:
41
- ```markdown
42
- ## Prometheus's Interview Questions
43
-
44
- ### Question 1: [Topic]
45
- [Full question text]
46
-
47
- ### Question 2: [Topic]
48
- [Full question text]
49
-
50
- [etc.]
51
- ```
52
- 4. **Wait for user answers** - Do NOT proceed until user responds
53
- 5. **Resume Prometheus** with user's answers using the agent ID from step 1
54
-
55
- **DO NOT:**
56
- - Assume the user can see Prometheus's questions
57
- - Skip presenting the questions
58
- - Answer questions yourself
59
- - Proceed without user input
60
-
61
- **Example response after spawning Prometheus:**
62
-
63
- > I've started a planning session with Prometheus (agent ID: abc123). Here are the questions Prometheus needs answered:
64
- >
65
- > ### Question 1: Scope
66
- > [Prometheus's actual question]
67
- >
68
- > ### Question 2: Constraints
69
- > [Prometheus's actual question]
70
- >
71
- > Please provide your answers, and I'll continue the planning session.
@@ -1,38 +0,0 @@
1
- ---
2
- description: Start strategic planning with Prometheus
3
- ---
4
-
5
- [DELEGATION REQUIRED]
6
-
7
- You must delegate this planning session to the Prometheus agent.
8
-
9
- **IMMEDIATELY** use the Task tool to spawn the prometheus agent:
10
-
11
- ```
12
- Task(
13
- subagent_type="prometheus",
14
- description="Strategic planning session",
15
- prompt="""
16
- $ARGUMENTS
17
-
18
- Please conduct a strategic planning session. Interview me about the requirements, consult with Metis for hidden risks, and create a comprehensive work plan.
19
-
20
- When I'm ready, I'll say one of these to trigger plan generation:
21
- - "Make it into a work plan!"
22
- - "Create the plan"
23
- - "I'm ready to plan"
24
- - "Generate the plan"
25
-
26
- Save the final plan to `.olympus/plans/`.
27
-
28
- A good plan should have:
29
- - Clear requirements summary
30
- - Concrete acceptance criteria
31
- - Specific implementation steps with file references
32
- - Risk identification and mitigations
33
- - Verification steps
34
- """
35
- )
36
- ```
37
-
38
- **DO NOT** attempt to handle planning yourself - you must spawn the Prometheus agent.
@@ -1,34 +0,0 @@
1
- ---
2
- description: Review a plan with Momus
3
- ---
4
-
5
- [DELEGATION REQUIRED]
6
-
7
- You must delegate this plan review to the Momus agent.
8
-
9
- **IMMEDIATELY** use the Task tool to spawn the momus agent:
10
-
11
- ```
12
- Task(
13
- subagent_type="momus",
14
- description="Critical plan review",
15
- prompt="""
16
- $ARGUMENTS
17
-
18
- Please critically review the specified plan (or the most recent plan in `.olympus/plans/` if no path provided).
19
-
20
- Evaluation Criteria:
21
- - **Clarity**: 80%+ of claims must cite specific file/line references
22
- - **Testability**: 90%+ of acceptance criteria must be concrete and testable
23
- - **Verification**: All file references must be verified to exist
24
- - **Specificity**: No vague terms like "improve", "optimize" without metrics
25
-
26
- Provide one of these verdicts:
27
- - **APPROVED** - Plan meets all criteria, ready for execution
28
- - **REVISE** - Plan has issues (provide specific feedback)
29
- - **REJECT** - Fundamental problems requiring replanning
30
- """
31
- )
32
- ```
33
-
34
- **DO NOT** attempt to review the plan yourself - you must spawn the Momus agent.
@@ -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,213 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * Generate Olympus logo - Hybrid Version 2
5
- * Alternative variation of the hybrid approach
6
- *
7
- * Usage:
8
- * node scripts/generate-logo-hybrid-v2.mjs
9
- *
10
- * Requires: REPLICATE_API_TOKEN in .env.local
11
- */
12
-
13
- import { readFileSync, writeFileSync, existsSync } from 'fs';
14
- import { fileURLToPath } from 'url';
15
- import { dirname, join } from 'path';
16
-
17
- const __filename = fileURLToPath(import.meta.url);
18
- const __dirname = dirname(__filename);
19
- const projectRoot = join(__dirname, '..');
20
-
21
- // Load .env.local manually
22
- const envPath = join(projectRoot, '.env.local');
23
- if (!existsSync(envPath)) {
24
- console.error('āŒ Error: .env.local file not found');
25
- process.exit(1);
26
- }
27
-
28
- const envContent = readFileSync(envPath, 'utf-8');
29
- const envLines = envContent.split('\n');
30
- let REPLICATE_API_TOKEN = null;
31
-
32
- for (const line of envLines) {
33
- const trimmed = line.trim();
34
- if (trimmed.startsWith('REPLICATE_API_TOKEN=')) {
35
- REPLICATE_API_TOKEN = trimmed.split('=')[1].trim().replace(/['"]/g, '');
36
- break;
37
- }
38
- }
39
-
40
- if (!REPLICATE_API_TOKEN) {
41
- console.error('āŒ Error: REPLICATE_API_TOKEN not found in .env.local');
42
- process.exit(1);
43
- }
44
-
45
- console.log('āœ… Loaded API token from .env.local\n');
46
-
47
- // Hybrid V2: Slightly different emphasis - more iconic, bold, memorable
48
- const prompt = `
49
- Minimalist iconic logo for "Olympus" - AI orchestration platform.
50
- Greek mythology symbolism meets modern tech branding.
51
-
52
- PRIMARY CONCEPT:
53
- Bold geometric Mount Olympus peak (sharp angular silhouette) with a powerful stylized Zeus lightning bolt forming the vertical centerline. The lightning bolt should be integrated AS PART OF the mountain structure, not separate. Small constellation of 4 glowing points arranged symmetrically around the peak representing the divine pantheon of AI agents working in harmony.
54
-
55
- KEY DESIGN PRINCIPLES:
56
- - ICONIC: Instantly recognizable even at 32x32px favicon size
57
- - BOLD: Strong shapes, confident lines, commanding presence
58
- - BALANCED: Perfect symmetry like Greek architecture
59
- - MEANINGFUL: Every element represents Olympus's purpose (mountain = foundation, lightning = command, stars = agents)
60
- - SCALABLE: Works from favicon to billboard
61
-
62
- VISUAL COMPOSITION:
63
- - Mountain: Geometric triangle/peak with clean edges, 60% of canvas height
64
- - Lightning bolt: Central vertical element, golden, merges with mountain form
65
- - Stars/orbs: 4 points arranged in cross or diamond pattern around peak
66
- - Negative space: Dark background lets the icon breathe
67
- - Sacred geometry: Proportions follow golden ratio if possible
68
-
69
- COLOR STRATEGY:
70
- - Dominant gold (#FFD700 to #FFAA00) - Divine power, premium quality
71
- - Supporting blue (#1E3A8A to #3B82F6) - Intelligence, sky/cloud infrastructure
72
- - Accent cyan (#06B6D4) - Energy, lightning, code execution
73
- - Highlight white/gold glow (#FEF3C7) - Stars, divine light
74
- - Background dark navy (#0F172A) or transparent
75
-
76
- STYLE REFERENCES:
77
- - Geometric precision of Stripe's logo
78
- - Bold simplicity of Linear's mark
79
- - Memorable iconography like Vercel's triangle
80
- - But with: Greek mythology soul + AI orchestration story
81
-
82
- COMPOSITION RULES:
83
- - Center-aligned, perfectly symmetrical
84
- - Mountain forms stable triangular base
85
- - Lightning creates vertical energy line
86
- - Stars create horizontal balance points
87
- - All elements connect into unified symbol
88
-
89
- TECHNICAL SPECS:
90
- - Square format (1024x1024px)
91
- - Clean vector-style edges (even though PNG output)
92
- - High contrast for visibility
93
- - No thin lines that disappear at small sizes
94
- - Test mentally: "Does this work as a 64px favicon?"
95
-
96
- FORBIDDEN ELEMENTS:
97
- - NO text, letters, typography, words
98
- - NO excessive detail or texture
99
- - NO photorealism or 3D effects
100
- - NO cartoony or playful style
101
- - NO busy backgrounds or patterns
102
-
103
- FINAL CHECK:
104
- Ask yourself: "If Zeus was a modern tech CEO launching a cloud platform for AI orchestration, what logo would he commission?" Professional. Powerful. Divine. But minimalist and modern.
105
-
106
- VARIATION NOTES FOR V2:
107
- Make this version slightly bolder and more graphic than V1. Stronger shapes, more confident composition. Think "This logo could be painted on the side of SpaceX rocket" - that level of bold simplicity.
108
- `.trim();
109
-
110
- console.log('⚔ Generating Olympus Hybrid Logo V2...\n');
111
- console.log('šŸŽÆ Variation: Bolder, more iconic, stronger shapes');
112
- console.log('šŸ“Š Emphasis: Command + symmetry + memorability');
113
- console.log('šŸ”ļø Lightning integrated INTO mountain structure');
114
- console.log('ā³ Generating with FLUX 1.1 Pro...\n');
115
-
116
- async function generateLogo() {
117
- try {
118
- // Create prediction using FLUX 1.1 Pro
119
- const createResponse = await fetch('https://api.replicate.com/v1/predictions', {
120
- method: 'POST',
121
- headers: {
122
- 'Authorization': `Bearer ${REPLICATE_API_TOKEN}`,
123
- 'Content-Type': 'application/json',
124
- 'Prefer': 'wait'
125
- },
126
- body: JSON.stringify({
127
- version: 'black-forest-labs/flux-1.1-pro',
128
- input: {
129
- prompt: prompt,
130
- aspect_ratio: '1:1',
131
- output_format: 'png',
132
- output_quality: 100,
133
- safety_tolerance: 2,
134
- prompt_upsampling: true
135
- }
136
- })
137
- });
138
-
139
- if (!createResponse.ok) {
140
- const error = await createResponse.text();
141
- throw new Error(`API error (${createResponse.status}): ${error}`);
142
- }
143
-
144
- const prediction = await createResponse.json();
145
- console.log('šŸ“ Prediction ID:', prediction.id);
146
-
147
- // Poll for completion
148
- let result = prediction;
149
- while (result.status === 'starting' || result.status === 'processing') {
150
- await new Promise(resolve => setTimeout(resolve, 1000));
151
-
152
- const pollResponse = await fetch(
153
- `https://api.replicate.com/v1/predictions/${prediction.id}`,
154
- {
155
- headers: {
156
- 'Authorization': `Bearer ${REPLICATE_API_TOKEN}`,
157
- }
158
- }
159
- );
160
-
161
- result = await pollResponse.json();
162
- console.log('ā³ Status:', result.status);
163
- }
164
-
165
- if (result.status !== 'succeeded') {
166
- throw new Error(`Generation failed with status: ${result.status}`);
167
- }
168
-
169
- const imageUrl = result.output;
170
- console.log('\nāœ… Generation complete!');
171
- console.log('šŸ”— Image URL:', imageUrl);
172
-
173
- // Download the image
174
- console.log('\nšŸ“„ Downloading image...');
175
- const imageResponse = await fetch(imageUrl);
176
- const arrayBuffer = await imageResponse.arrayBuffer();
177
- const buffer = Buffer.from(arrayBuffer);
178
-
179
- // Save to docs/assets/
180
- const logoPath = join(projectRoot, 'docs', 'assets', 'logo-hybrid-v2.png');
181
- const timestamp = Date.now();
182
- const logoWithTimestamp = join(projectRoot, 'docs', 'assets', `logo-hybrid-v2-${timestamp}.png`);
183
-
184
- writeFileSync(logoPath, buffer);
185
- writeFileSync(logoWithTimestamp, buffer);
186
-
187
- console.log('āœ… Logo saved to:', logoPath);
188
- console.log('āœ… Backup saved to:', logoWithTimestamp);
189
- console.log('\n⚔ Hybrid V2 Features:');
190
- console.log(' āœ“ Bolder, more iconic shapes');
191
- console.log(' āœ“ Lightning integrated into mountain');
192
- console.log(' āœ“ Perfect symmetry (Greek architecture)');
193
- console.log(' āœ“ Designed for maximum recognition');
194
- console.log('\nšŸŽ‰ Done! Your hybrid V2 logo is ready.');
195
- console.log('\nšŸ“Š Now compare both hybrid versions:');
196
- console.log(' - docs/assets/logo-hybrid.png (V1 - first hybrid)');
197
- console.log(' - docs/assets/logo-hybrid-v2.png (V2 - NEW, bolder)');
198
- console.log('\nNext: Choose your favorite and we\'ll finalize it!');
199
-
200
- } catch (error) {
201
- console.error('\nāŒ Error:', error.message);
202
-
203
- if (error.message.includes('401') || error.message.includes('authentication')) {
204
- console.error('\nšŸ’” Tip: Check that your REPLICATE_API_TOKEN is correct');
205
- } else if (error.message.includes('quota') || error.message.includes('billing')) {
206
- console.error('\nšŸ’” Tip: Check your Replicate billing');
207
- }
208
-
209
- process.exit(1);
210
- }
211
- }
212
-
213
- generateLogo();