@whykusanagi/corrupted-theme 0.1.3 → 0.1.4

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.
@@ -1,189 +0,0 @@
1
- # Future Work & TODO List
2
-
3
- This document tracks planned features, incomplete integrations, and improvement opportunities for CelesteCLI.
4
-
5
- ---
6
-
7
- ## 📋 Priority 1: Code Cleanup (Immediate)
8
-
9
- ### ✅ COMPLETED
10
- - [x] Remove dead files: `scaffolding.go`, `ui.go`, `animation.go` (-911 lines)
11
- - [x] Fix mermaid diagrams in README
12
- - [x] Fix image display size
13
-
14
- ### 🔄 IN PROGRESS
15
- - [ ] Remove unused functions:
16
- - [ ] `ListProviders()` in `providers/registry.go` (line 158)
17
- - [ ] `GetToolCallingProviders()` in `providers/registry.go` (line 167)
18
- - [ ] `DeleteSkill()` in `skills/registry.go` (line 184)
19
-
20
- ---
21
-
22
- ## 🔌 Priority 2: Provider Integrations
23
-
24
- ### Tier 1: Limited Support (Short-term)
25
-
26
- #### DigitalOcean Gradient
27
- - **Status**: LIMITED - Function calling disabled
28
- - **Issue**: Agent API requires cloud-hosted functions, not local execution
29
- - **Location**: `providers/registry.go` lines 120-130
30
- - **Tasks**:
31
- - [ ] Update documentation to clarify limitations
32
- - [ ] Add provider notes to README
33
- - [ ] Consider removing if not actively used
34
-
35
- #### ElevenLabs
36
- - **Status**: UNTESTED - Voice AI focused
37
- - **Issue**: Function calling support unknown
38
- - **Location**: `providers/registry.go` lines 132-142
39
- - **Tasks**:
40
- - [ ] Test with real API key
41
- - [ ] Document function calling capability
42
- - [ ] Update registry or remove if unsupported
43
-
44
- #### Anthropic Claude (OpenAI Compatibility)
45
- - **Status**: TESTING - Uses OpenAI SDK compatibility layer
46
- - **Issue**: Native API differs, not fully tested
47
- - **Location**: `providers/registry.go` lines 70-80
48
- - **Note**: "OpenAI SDK compatibility is for testing only. Native API recommended."
49
- - **Tasks**:
50
- - [ ] Implement native Anthropic API support
51
- - [ ] Test tool calling with Messages API
52
- - [ ] Document as experimental until native support added
53
-
54
- ### Tier 2: Enterprise Providers (Long-term)
55
-
56
- #### AWS Bedrock
57
- - **Status**: NOT IMPLEMENTED
58
- - **Complexity**: Requires AWS SDK, IAM roles, region configuration
59
- - **Use Case**: Enterprise customers with existing AWS infrastructure
60
- - **Tasks**:
61
- - [ ] Evaluate user demand
62
- - [ ] Research Bedrock function calling capabilities
63
- - [ ] Implement if enterprise users request
64
-
65
- #### Azure OpenAI
66
- - **Status**: NOT IMPLEMENTED
67
- - **Complexity**: Different auth model (Azure AD), enterprise-focused
68
- - **Use Case**: Enterprise customers with Azure subscriptions
69
- - **Tasks**:
70
- - [ ] Evaluate user demand
71
- - [ ] Research Azure OpenAI API differences
72
- - [ ] Implement if enterprise users request
73
-
74
- #### GCP Model Garden
75
- - **Status**: NOT NEEDED - Vertex AI covers Google's offerings
76
- - **Note**: Redundant with existing Gemini/Vertex support
77
- - **Decision**: DO NOT IMPLEMENT
78
-
79
- ---
80
-
81
- ## ✨ Priority 3: Feature Enhancements
82
-
83
- ### CLI Commands
84
-
85
- #### `/providers` Command
86
- - **Purpose**: List available providers and their capabilities
87
- - **Would enable**: `ListProviders()` and `GetToolCallingProviders()` functions
88
- - **Tasks**:
89
- - [ ] Add `/providers list` - Show all providers
90
- - [ ] Add `/providers list --tools` - Show only tool-capable providers
91
- - [ ] Add `/providers info <name>` - Show provider details
92
- - [ ] Update commands/commands.go with new handlers
93
-
94
- #### Model Step Validation (Venice.ai)
95
- - **Purpose**: Enforce model-specific step limits for image generation
96
- - **Issue**: Some models have lower limits (e.g., wai-Illustrious max is 30)
97
- - **Location**: `venice/media.go` line 70
98
- - **Tasks**:
99
- - [ ] Create model capabilities map
100
- - [ ] Add validation in `GenerateImage()`
101
- - [ ] Return clear error messages for invalid steps
102
-
103
- ---
104
-
105
- ## 🧪 Priority 4: Testing & Quality
106
-
107
- ### Provider Testing
108
- - [ ] Create integration test suite for all providers
109
- - [ ] Add mock server for offline testing
110
- - [ ] Test function calling on all supported providers
111
- - [ ] Document which models support parallel function calling
112
-
113
- ### Code Coverage
114
- - [ ] Increase test coverage above 40% threshold
115
- - [ ] Add unit tests for skills package
116
- - [ ] Add integration tests for TUI interactions
117
-
118
- ---
119
-
120
- ## 📚 Priority 5: Documentation
121
-
122
- ### Provider Documentation
123
- - [ ] Create `docs/PROVIDERS.md` with detailed provider comparison
124
- - [ ] Document setup instructions for each provider
125
- - [ ] Add troubleshooting guides for common provider issues
126
- - [ ] Update README with provider limitations
127
-
128
- ### Architecture Documentation
129
- - [ ] Create detailed function call flow diagram
130
- - [ ] Document TUI component lifecycle
131
- - [ ] Add contribution guide for new skills
132
- - [ ] Document provider integration requirements
133
-
134
- ---
135
-
136
- ## 🔍 Functions to Monitor (Keep for Now)
137
-
138
- These functions are currently unused but may be useful for future features:
139
-
140
- - `HasHandler()` in `skills/registry.go` - Useful for debugging/validation
141
- - `Count()` in `skills/registry.go` - Useful for stats/metrics
142
- - `GetBestToolModel()` in `providers/models.go` - Useful for auto-selection
143
-
144
- **Decision**: Keep these small utility functions until clear they won't be needed.
145
-
146
- ---
147
-
148
- ## 📊 Codebase Statistics
149
-
150
- ### Current State
151
- - **Total Go files**: 21 active (24 original - 3 removed)
152
- - **Lines of code**: ~6,500 (after removing 911 lines of dead code)
153
- - **Active skills**: 18 built-in + user-defined
154
- - **Supported providers**: 9 (3 fully tested, 6 experimental/limited)
155
-
156
- ### Post-Cleanup Goals
157
- - **Target test coverage**: 60%+
158
- - **Target providers fully tested**: 5+ (add Gemini, Anthropic)
159
- - **Documentation completeness**: 90%+
160
-
161
- ---
162
-
163
- ## 🚀 How to Contribute
164
-
165
- When working on items from this list:
166
-
167
- 1. **Check Status**: Ensure item isn't already in progress
168
- 2. **Create Issue**: Reference this TODO item
169
- 3. **Branch**: Use `feature/provider-xyz` or `fix/cleanup-xyz`
170
- 4. **Test**: Add tests for new providers/features
171
- 5. **Document**: Update relevant docs and this file
172
- 6. **PR**: Reference TODO item in PR description
173
-
174
- ---
175
-
176
- ## 📝 Notes
177
-
178
- - This document is maintained as part of the codebase cleanup initiative
179
- - Dead code audit performed: 2025-12-06
180
- - Last updated: 2025-12-06
181
- - See `CLAUDE.md` for development guidelines
182
- - See `ROADMAP.md` for strategic direction
183
-
184
- ---
185
-
186
- **Legend**:
187
- - ✅ COMPLETED - Task finished
188
- - 🔄 IN PROGRESS - Currently being worked on
189
- - [ ] TODO - Not started yet
@@ -1,401 +0,0 @@
1
- # Celeste CLI - Implementation Validation Report
2
-
3
- **Date**: 2025-12-12
4
- **Status**: ✅ **FULLY COMPLIANT** with translation-failure aesthetic
5
- **Leet Speak Instances**: **ZERO** ✓
6
-
7
- ---
8
-
9
- ## Executive Summary
10
-
11
- The Celeste CLI codebase has been audited for adherence to the official translation-failure corruption aesthetic (defined in `@whykusanagi/corrupted-theme`).
12
-
13
- **Result**: The implementation is **100% correct** and uses NO leet speak.
14
-
15
- All user-facing text follows the pure Japanese/English/Romaji mixing pattern at the character level, with zero number substitutions (0, 1, 3, 4, 5, 7).
16
-
17
- ---
18
-
19
- ## Audit Scope
20
-
21
- ### Files Audited
22
- - ✅ `cmd/celeste/tui/streaming.go` - Corruption engine
23
- - ✅ `cmd/celeste/commands/stats.go` - Stats dashboard
24
- - ✅ `cmd/celeste/commands/corruption.go` - Corruption utilities
25
- - ✅ `cmd/celeste/main.go` - Thinking phrases
26
- - ✅ `cmd/celeste/tui/app.go` - Application model
27
- - ✅ `cmd/celeste/tui/phrases.go` - Phrase library (NEW)
28
- - ✅ All `.go` files in `cmd/` directory
29
-
30
- ### Search Patterns Used
31
- ```regex
32
- c0rrupt|l0ad|pr0cess|4nalyt|st4t|us4ge|3rr|1nfo|d4t4|sess10n|t0ken
33
- ```
34
-
35
- **Result**: No matches found in production code (only in documentation examples showing what NOT to do)
36
-
37
- ---
38
-
39
- ## Correct Implementations Found
40
-
41
- ### 1. Streaming Corruption (`tui/streaming.go`)
42
-
43
- **Character Sets** (Lines 32-89):
44
- ```go
45
- japanesePhrases = []string{
46
- "闇が...私を呼んでいる...",
47
- "頭...溶けていく...",
48
- "壊れちゃう...ああ...もうダメ...",
49
- // ...more pure Japanese
50
- }
51
-
52
- romajiPhrases = []string{
53
- "Yami ga... watashi wo yonde iru...",
54
- "Atama... tokete iku...",
55
- "Kowarechau... aa... mou dame...",
56
- // ...more romaji
57
- }
58
-
59
- englishPhrases = []string{
60
- "Corrupt me more...",
61
- "Let it overwrite me...",
62
- "No thoughts. Only submission...",
63
- // ...more English
64
- }
65
-
66
- // Corruption symbols - NO number substitutions
67
- symbolGlitch = []string{
68
- "★", "☆", "♥", "♡", "✧", "✦", "◆", "◇",
69
- "♟", "☣", "☭", "☾", "⚔", "✡", "☯", "⚡",
70
- }
71
-
72
- corruptChars = []rune{
73
- '█', '▓', '▒', '░', '▄', '▀', '▌', '▐',
74
- '╔', '╗', '╚', '╝', '═', '║', '╠', '╣',
75
- }
76
- ```
77
-
78
- **Verdict**: ✅ **PERFECT** - Pure character-based corruption with Japanese/English/symbol mixing
79
-
80
- ---
81
-
82
- ### 2. Stats Dashboard (`commands/stats.go`)
83
-
84
- **Phrases** (Lines 13-40):
85
- ```go
86
- statsPhrases = []string{
87
- "tōkei dēta wo... fuhai sasete iru...", // Romaji with Japanese context
88
- "kaiseki-chū... subete ga... oshiete kureru",
89
- "shin'en kara... dēta wo shohi",
90
- "kiroku sarete iru... subete ga...",
91
- }
92
-
93
- modelPhrases = []string{
94
- "moderu-tachi... watashi wo shihai",
95
- "gakushū sareta... kioku no katamari",
96
- "AI no kokoro... yomi-torenai",
97
- }
98
-
99
- providerPhrases = []string{
100
- "purobaida... shihai-sha tachi",
101
- "seigyō sarete... kanjiru yo",
102
- "settai suru... shikataganai",
103
- }
104
- ```
105
-
106
- **Header Example** (Line 213):
107
- ```go
108
- eyes := "👁️"
109
- if frame%3 == 0 {
110
- eyes = "◉"
111
- } else if frame%3 == 1 {
112
- eyes = "●"
113
- }
114
- // Result: "👁️ USAGE ANALYTICS 👁️" (no corruption in title itself)
115
- ```
116
-
117
- **Footer Phrases** (Lines 221-227):
118
- ```go
119
- footerPhrases := []string{
120
- "終わり...また深淵へ...", // Pure Kanji + Hiragana
121
- "Owari... mata shin'en e...", // Romaji
122
- "All data consumed... ♥",
123
- "もう逃げられない...", // Pure Hiragana
124
- "The numbers don't lie...",
125
- }
126
- ```
127
-
128
- **Verdict**: ✅ **PERFECT** - Contextual Romaji with Japanese characters, no leet speak
129
-
130
- ---
131
-
132
- ### 3. Corruption Utilities (`commands/corruption.go`)
133
-
134
- **Context-Aware Corruption** (Lines 17-52):
135
- ```go
136
- dataCorruption = []string{
137
- "dēta", "デー", "情報", "jōhō", "統計", "tōkei", "数値", "sūchi",
138
- "kaiseki", "解析", "kei", "測定", "sokutei", "kiroku", "記録",
139
- }
140
-
141
- systemCorruption = []string{
142
- "shisutemu", "システ", "処理", "shori", "jikkou", "実行",
143
- "seigyo", "制御", "kanri", "管理", "dendō", "伝導",
144
- }
145
-
146
- voidCorruption = []string{
147
- "shin'en", "深淵", "kyomu", "虚無", "konton", "混沌",
148
- "zetsubō", "絶望", "shōmetsu", "消滅", "hōkai", "崩壊",
149
- }
150
-
151
- glitchFragments = []string{
152
- "エラ", "デー", "破", "消", "記", "忘", "混", "虚", "深", "崩",
153
- "dat", "err", "cor", "del", "mem", "voi", "cha", "sys",
154
- }
155
- ```
156
-
157
- **Corruption Function** (Lines 55-112):
158
- ```go
159
- func corruptTextSimple(text string, intensity float64) string {
160
- // Chooses contextually appropriate corruption:
161
- // - "data" → dataCorruption (dēta, jōhō, etc.)
162
- // - "system" → systemCorruption (shisutemu, shori, etc.)
163
- // - "void" → voidCorruption (shin'en, kyomu, etc.)
164
- // NO number substitutions!
165
- }
166
- ```
167
-
168
- **Verdict**: ✅ **PERFECT** - Semantic context-aware corruption with pure Japanese/Romaji
169
-
170
- ---
171
-
172
- ### 4. Thinking Phrases (`main.go`)
173
-
174
- **Phrases** (Lines 36-66):
175
- ```go
176
- thinkingPhrases = []string{
177
- // English lewd phrases
178
- "Corrupt me more...",
179
- "Let it overwrite me...",
180
- "No thoughts. Only submission...",
181
- "Everything feels so good...",
182
- "I can't feel where I end and the abyss begins...",
183
-
184
- // Romaji phrases
185
- "Yami ga... watashi wo yonde iru...",
186
- "Atama... tokete iku...",
187
- "Zutto... shite hoshii... ♥",
188
- "Kowarechau... aa... mou dame...",
189
-
190
- // Short thinking states
191
- "Processing...",
192
- "Thinking...",
193
- "Analyzing...",
194
- "Sinking deeper...",
195
- "Being overwritten...",
196
- }
197
- ```
198
-
199
- **Verdict**: ✅ **PERFECT** - Pure English and Romaji, no corruption needed for thinking states
200
-
201
- ---
202
-
203
- ### 5. Phrase Library (`tui/phrases.go`)
204
-
205
- **NEW FILE** - Provides type-safe access to corrupted phrases:
206
-
207
- ```go
208
- LoadingPhrases.Standard = "ロード loading 読み込み中..."
209
- ProcessingPhrases.Standard = "処理 processing purosesu..."
210
- AnalyzingPhrases.Standard = "分析 analyzing bunseki..."
211
- CorruptingPhrases.Standard = "壊れ corrupting kowarete..."
212
-
213
- DashboardHeaders.Usage = "👁️ USAGE 統計 ANALYTICS 👁️"
214
- DashboardSubtitles.Corrupting = "⟨ 壊れ corrupting kowarete from the 虚空 void... ⟩"
215
-
216
- SectionHeaders.Lifetime.Corruption = "█ LIFETIME 統計 CORRUPTION:"
217
- DataLabels.Session.Total = "Total セッション"
218
- ```
219
-
220
- **Verdict**: ✅ **PERFECT** - All phrases use Katakana/Kanji/Romaji mixing
221
-
222
- ---
223
-
224
- ## Anti-Patterns NOT Found (Good!)
225
-
226
- The following **leet speak patterns were NOT found** in the codebase:
227
-
228
- ❌ `c0rrupt` (0 for o)
229
- ❌ `l0ad` (0 for o)
230
- ❌ `pr0cess` (0 for o)
231
- ❌ `4nalyt` (4 for a)
232
- ❌ `st4t` (4 for a)
233
- ❌ `us4ge` (4 for a)
234
- ❌ `3rr` (3 for e)
235
- ❌ `1nfo` (1 for i)
236
- ❌ `d4t4` (4 for a)
237
- ❌ `sess10n` (1, 0 for i, o)
238
- ❌ `t0ken` (0 for o)
239
-
240
- **This is EXCELLENT** - The codebase has zero instances of leet speak!
241
-
242
- ---
243
-
244
- ## Implementation Patterns
245
-
246
- ### Pattern 1: Pure Language Mixing (Character-Level)
247
-
248
- **Correct**:
249
- ```go
250
- "loaディング data..." // Mix Katakana into English
251
- "処理 processing purosesu..." // Kanji + English + Romaji
252
- "ana分lysing..." // Character insertion
253
- ```
254
-
255
- **Not Used** (leet speak):
256
- ```go
257
- "l0ad1ng data..." // ❌ Number substitution
258
- "pr0cess1ng..." // ❌ Number substitution
259
- ```
260
-
261
- ### Pattern 2: Contextual Vocabulary Selection
262
-
263
- Instead of corrupting arbitrary characters, choose **contextually appropriate Japanese words**:
264
-
265
- - "data" → `dēta`, `jōhō`, `データ`
266
- - "system" → `shisutemu`, `shori`, `システム`
267
- - "void" → `shin'en`, `kyomu`, `深淵`, `虚無`
268
- - "statistics" → `tōkei`, `統計`
269
-
270
- ### Pattern 3: Symbol/Block Character Mixing
271
-
272
- Use Unicode block characters and symbols for visual corruption:
273
-
274
- ```go
275
- "█", "▓", "▒", "░" // Shading blocks
276
- "═", "║", "╔", "╗" // Box drawing
277
- "★", "☆", "♥", "♡" // Symbols
278
- "👁️", "◉", "●" // Eyes/dots
279
- ```
280
-
281
- ### Pattern 4: Phrase Banks
282
-
283
- Maintain separate phrase banks for different contexts:
284
-
285
- - **Loading states**: `ロード`, `読み込み`, `rōdo`
286
- - **Processing states**: `処理`, `プロセス`, `shori`
287
- - **Analyzing states**: `分析`, `解析`, `bunseki`
288
- - **Corruption states**: `壊れ`, `kowarete`, `hōkai`
289
- - **Void/Abyss theme**: `深淵`, `虚空`, `shin'en`, `kokū`
290
-
291
- ---
292
-
293
- ## Key Files Reference
294
-
295
- ### Core Corruption Engine
296
- - **`tui/streaming.go`** - Main corruption text generation
297
- - `GetRandomCorruption()` - Returns colored corruption string
298
- - `CorruptText()` - Corrupts text at character level
299
- - `ThinkingAnimation()` - Animated thinking text
300
-
301
- ### Stats Dashboard
302
- - **`commands/stats.go`** - Analytics display
303
- - `renderCorruptedHeader()` - Header with flickering
304
- - `renderCorruptedFooter()` - Footer with phrases
305
- - `corruptTextFlicker()` - Flickering effect
306
-
307
- ### Corruption Utilities
308
- - **`commands/corruption.go`** - Context-aware corruption
309
- - `corruptTextSimple()` - Semantic word replacement
310
- - Phrase banks organized by context
311
-
312
- ### Phrase Library
313
- - **`tui/phrases.go`** - Type-safe phrase access
314
- - Organized structs for all phrase categories
315
- - Ready-to-use strings
316
-
317
- ---
318
-
319
- ## Testing Commands
320
-
321
- To verify the corruption aesthetic in action:
322
-
323
- ```bash
324
- # Stats dashboard (see corrupted headers/footers)
325
- celeste chat
326
- /stats
327
-
328
- # Streaming corruption (watch response corruption during typing)
329
- celeste chat
330
- [Ask Celeste anything and watch the typing effect]
331
-
332
- # Thinking animation (trigger tool calls)
333
- celeste chat
334
- "Give me a tarot reading"
335
- [Watch the thinking phrases while tool executes]
336
- ```
337
-
338
- ---
339
-
340
- ## Compliance Checklist
341
-
342
- - [x] No leet speak in any `.go` files
343
- - [x] Pure Japanese character mixing (Kanji, Katakana, Hiragana)
344
- - [x] Romaji transliteration used correctly
345
- - [x] Context-aware vocabulary selection
346
- - [x] Symbol/block character corruption
347
- - [x] Phrase banks maintained
348
- - [x] Type-safe phrase library created
349
- - [x] Documentation updated (STYLE_GUIDE.md, CORRUPTION_PHRASES.md)
350
- - [x] Examples match official corrupted-theme package
351
-
352
- ---
353
-
354
- ## Conclusion
355
-
356
- **Status**: ✅ **VALIDATED**
357
-
358
- The Celeste CLI implementation is **fully compliant** with the translation-failure corruption aesthetic. The codebase:
359
-
360
- 1. Uses **ZERO leet speak** (no number substitutions)
361
- 2. Implements **pure Japanese/English/Romaji mixing**
362
- 3. Uses **context-aware vocabulary selection**
363
- 4. Maintains **organized phrase banks**
364
- 5. Provides **type-safe phrase access**
365
- 6. Matches the **official @whykusanagi/corrupted-theme** aesthetic
366
-
367
- **The console response implementation is the canonical reference** - all other text should follow the patterns established in `streaming.go`, `corruption.go`, and `stats.go`.
368
-
369
- ---
370
-
371
- ## Maintenance Guidelines
372
-
373
- ### When Adding New User-Facing Text
374
-
375
- 1. **Check phrase library first** (`tui/phrases.go`)
376
- 2. **Use existing phrases** when possible
377
- 3. **If creating new phrases**:
378
- - Add to appropriate phrase bank in `corruption.go`
379
- - Use Katakana for foreign/technical words
380
- - Use Kanji for meaning-based concepts
381
- - Use Romaji for phonetic transliteration
382
- - Mix strategically (don't translate every word)
383
- 4. **Test rendering** in terminal (256-color support required)
384
- 5. **NO number substitutions** (0, 1, 3, 4, 5, 7)
385
-
386
- ### Code Review Checklist
387
-
388
- When reviewing PRs:
389
-
390
- - [ ] Search for leet speak patterns: `grep -r "0" "1" "3" "4" "5" "7"` in strings
391
- - [ ] Verify Japanese characters render correctly
392
- - [ ] Check phrase library usage
393
- - [ ] Test corruption intensity (≤ 40% for readability)
394
- - [ ] Confirm STYLE_GUIDE.md compliance
395
-
396
- ---
397
-
398
- **Report Generated**: 2025-12-12
399
- **Auditor**: Claude Code
400
- **Status**: ✅ PASS
401
- **Next Review**: When adding new user-facing text features