claude-minipet 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +113 -0
  2. package/dist/cli/index.d.ts +2 -0
  3. package/dist/cli/index.js +351 -0
  4. package/dist/cli/index.js.map +1 -0
  5. package/dist/cli/install.d.ts +4 -0
  6. package/dist/cli/install.js +89 -0
  7. package/dist/cli/install.js.map +1 -0
  8. package/dist/cli/setup.d.ts +11 -0
  9. package/dist/cli/setup.js +203 -0
  10. package/dist/cli/setup.js.map +1 -0
  11. package/dist/core/dna.d.ts +14 -0
  12. package/dist/core/dna.js +95 -0
  13. package/dist/core/dna.js.map +1 -0
  14. package/dist/core/evolution.d.ts +16 -0
  15. package/dist/core/evolution.js +252 -0
  16. package/dist/core/evolution.js.map +1 -0
  17. package/dist/core/pet.d.ts +25 -0
  18. package/dist/core/pet.js +224 -0
  19. package/dist/core/pet.js.map +1 -0
  20. package/dist/core/rarity.d.ts +17 -0
  21. package/dist/core/rarity.js +55 -0
  22. package/dist/core/rarity.js.map +1 -0
  23. package/dist/core/sync.d.ts +37 -0
  24. package/dist/core/sync.js +94 -0
  25. package/dist/core/sync.js.map +1 -0
  26. package/dist/core/types.d.ts +92 -0
  27. package/dist/core/types.js +22 -0
  28. package/dist/core/types.js.map +1 -0
  29. package/dist/daemon/server.d.ts +8 -0
  30. package/dist/daemon/server.js +137 -0
  31. package/dist/daemon/server.js.map +1 -0
  32. package/dist/hooks/handler.d.ts +2 -0
  33. package/dist/hooks/handler.js +99 -0
  34. package/dist/hooks/handler.js.map +1 -0
  35. package/dist/render/anim-state.d.ts +5 -0
  36. package/dist/render/anim-state.js +24 -0
  37. package/dist/render/anim-state.js.map +1 -0
  38. package/dist/render/animation.d.ts +15 -0
  39. package/dist/render/animation.js +94 -0
  40. package/dist/render/animation.js.map +1 -0
  41. package/dist/render/frames.d.ts +51 -0
  42. package/dist/render/frames.js +151 -0
  43. package/dist/render/frames.js.map +1 -0
  44. package/dist/render/pixel.d.ts +44 -0
  45. package/dist/render/pixel.js +169 -0
  46. package/dist/render/pixel.js.map +1 -0
  47. package/dist/render/sprites.d.ts +8 -0
  48. package/dist/render/sprites.js +300 -0
  49. package/dist/render/sprites.js.map +1 -0
  50. package/dist/render/statusline.d.ts +3 -0
  51. package/dist/render/statusline.js +117 -0
  52. package/dist/render/statusline.js.map +1 -0
  53. package/package.json +44 -0
@@ -0,0 +1,117 @@
1
+ import { parseDNA, getShinyColors } from '../core/dna.js';
2
+ import { RARITY_INFO, getRarityDisplay } from '../core/rarity.js';
3
+ import { getEvolutionInfo } from '../core/evolution.js';
4
+ import { SPECIES_NAMES, getSprite } from './sprites.js';
5
+ import { renderSprite, buildPalette, progressBar, fg, RESET, BOLD, padEnd } from './pixel.js';
6
+ import { getCurrentFrame, getAnimDecoration } from './frames.js';
7
+ import { loadAnimState } from './anim-state.js';
8
+ import { loadAuth } from '../core/sync.js';
9
+ /** Render the full status line output */
10
+ export function renderStatusLine(state) {
11
+ const dna = parseDNA(state.dna);
12
+ const rarityInfo = RARITY_INFO[state.rarity];
13
+ // Get colors (shiny inverts)
14
+ let primary = dna.primaryColor;
15
+ let secondary = dna.secondaryColor;
16
+ if (state.rarity === 'shiny') {
17
+ const shiny = getShinyColors(dna);
18
+ primary = shiny.primary;
19
+ secondary = shiny.secondary;
20
+ }
21
+ // Animation state
22
+ const animState = loadAnimState();
23
+ const { trigger, frame } = getCurrentFrame(animState);
24
+ // Eye/mouth colors change per animation frame
25
+ let eyeColor;
26
+ let mouthColor;
27
+ if (trigger === 'idle' && frame === 1) {
28
+ // Blink: eyes become body color (closed)
29
+ eyeColor = primary;
30
+ mouthColor = { r: 255, g: 200, b: 200 };
31
+ }
32
+ else if (trigger === 'exp' || trigger === 'levelup') {
33
+ // Excited: bright yellow eyes
34
+ eyeColor = { r: 255, g: 255, b: 100 };
35
+ mouthColor = { r: 255, g: 150, b: 150 };
36
+ }
37
+ else if (trigger === 'feed') {
38
+ // Eating: eyes squint (darker), mouth orange
39
+ eyeColor = frame === 1 ? primary : { r: 200, g: 200, b: 255 };
40
+ mouthColor = { r: 255, g: 180, b: 100 };
41
+ }
42
+ else if (trigger === 'pat') {
43
+ // Content: soft pink eyes
44
+ eyeColor = { r: 255, g: 200, b: 230 };
45
+ mouthColor = { r: 255, g: 180, b: 180 };
46
+ }
47
+ else if (trigger === 'hungry' || trigger === 'sad') {
48
+ // Sad: dim eyes
49
+ eyeColor = { r: 150, g: 150, b: 150 };
50
+ mouthColor = { r: 180, g: 150, b: 150 };
51
+ }
52
+ else if (trigger === 'evolve') {
53
+ // Evolving: glowing eyes
54
+ eyeColor = frame === 0 ? { r: 255, g: 255, b: 255 } : { r: 255, g: 200, b: 50 };
55
+ mouthColor = { r: 255, g: 200, b: 100 };
56
+ }
57
+ else {
58
+ // Default idle
59
+ eyeColor = { r: 255, g: 255, b: 255 };
60
+ mouthColor = { r: 255, g: 200, b: 200 };
61
+ }
62
+ const palette = buildPalette(primary, secondary, eyeColor, mouthColor, rarityInfo.color);
63
+ // Get sprite — deep copy so we can modify for animation
64
+ const baseSprite = getSprite(state.species, state.stage);
65
+ const sprite = baseSprite.map(row => [...row]);
66
+ // Animation frame 2 (idle yawn): open mouth wider — swap mouth pixels to eye color
67
+ if (trigger === 'idle' && frame === 2) {
68
+ mouthColor.r = 100;
69
+ mouthColor.g = 50;
70
+ mouthColor.b = 50; // dark mouth = open
71
+ }
72
+ const petLines = renderSprite(sprite, palette);
73
+ // The sprite visible width = grid width (each pixel = 1 visible char)
74
+ const spriteWidth = sprite[0]?.length ?? 0;
75
+ // Build stats section
76
+ const speciesName = SPECIES_NAMES[state.species].zh;
77
+ const rarityDisplay = getRarityDisplay(state.rarity, 'zh');
78
+ const evoName = state.evolution
79
+ ? getEvolutionInfo(state.species, state.evolution)?.nameZh ?? state.evolution
80
+ : speciesName;
81
+ const rc = fg(rarityInfo.color);
82
+ const expColor = { r: 69, g: 170, b: 242 };
83
+ const heartColor = { r: 255, g: 107, b: 107 };
84
+ const hungerColor = { r: 255, g: 177, b: 66 };
85
+ const bondColor = { r: 162, g: 155, b: 254 };
86
+ const dimColor = { r: 100, g: 100, b: 100 };
87
+ const expPct = Math.round((state.exp / state.expToNext) * 100);
88
+ const expBar = progressBar(state.exp, state.expToNext, 8, expColor, dimColor);
89
+ // Shiny sparkle
90
+ const shinyPrefix = state.rarity === 'shiny' ? `${fg(rarityInfo.color)}✦${RESET} ` : '';
91
+ // Colored Unicode symbol icons + Chinese text labels
92
+ const moodColor = state.mood >= 60 ? heartColor : state.mood >= 30 ? { r: 255, g: 200, b: 100 } : { r: 200, g: 50, b: 50 };
93
+ const hungerColorDyn = state.hunger >= 40 ? hungerColor : state.hunger >= 20 ? { r: 200, g: 150, b: 50 } : { r: 200, g: 50, b: 50 };
94
+ // Animation decoration (e.g. "+EXP!", "nom~")
95
+ const animDeco = getAnimDecoration(trigger, frame);
96
+ const decoStr = animDeco ? `${fg(rarityInfo.color)}${animDeco}${RESET}` : '';
97
+ // Auth info
98
+ const auth = loadAuth();
99
+ const emailStr = auth ? ` ${fg(dimColor)}${auth.email}${RESET}` : '';
100
+ const statsLines = [
101
+ `${shinyPrefix}${BOLD}${state.name}${RESET} ${rc}Lv.${state.level}${RESET} ${rarityDisplay}${decoStr}`,
102
+ `⭐ 经验 ${expBar} ${expPct}%`,
103
+ `💗 心情 ${state.mood} 🍖 饱食 ${Math.round(state.hunger)} 💎 亲密 ${Math.floor(state.bond)}`,
104
+ `${fg(dimColor)}>${RESET} ${evoName} 🧬 ${fg(dimColor)}${state.dna}${RESET}${emailStr}`,
105
+ ];
106
+ // Side-by-side layout: pet art left, stats right
107
+ const gap = ' ';
108
+ const output = [];
109
+ const totalLines = Math.max(petLines.length, statsLines.length);
110
+ for (let i = 0; i < totalLines; i++) {
111
+ const petPart = i < petLines.length ? padEnd(petLines[i], spriteWidth) : ' '.repeat(spriteWidth);
112
+ const statsPart = i < statsLines.length ? statsLines[i] : '';
113
+ output.push(`${petPart}${gap}${statsPart}`);
114
+ }
115
+ return output.join('\n');
116
+ }
117
+ //# sourceMappingURL=statusline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statusline.js","sourceRoot":"","sources":["../../src/render/statusline.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "claude-minipet",
3
+ "version": "0.1.0",
4
+ "description": "🐾 A virtual pet that lives in Claude Code's TUI — feed it, watch it evolve, collect rare species!",
5
+ "type": "module",
6
+ "bin": {
7
+ "claude-minipet": "./dist/cli/index.js"
8
+ },
9
+ "files": [
10
+ "dist/**/*"
11
+ ],
12
+ "scripts": {
13
+ "build": "tsc",
14
+ "dev": "tsc --watch",
15
+ "postinstall": "node dist/cli/setup.js",
16
+ "test": "vitest run",
17
+ "test:watch": "vitest"
18
+ },
19
+ "keywords": [
20
+ "claude-code",
21
+ "virtual-pet",
22
+ "tui",
23
+ "terminal",
24
+ "ascii-art",
25
+ "pixel-art",
26
+ "tamagotchi",
27
+ "claude",
28
+ "ai-companion"
29
+ ],
30
+ "author": "",
31
+ "license": "MIT",
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "https://github.com/crazyma99/claude-minipet.git"
35
+ },
36
+ "engines": {
37
+ "node": ">=18"
38
+ },
39
+ "devDependencies": {
40
+ "@types/node": "^22.0.0",
41
+ "typescript": "^5.7.0",
42
+ "vitest": "^3.0.0"
43
+ }
44
+ }