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.
- package/README.md +113 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +351 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/install.d.ts +4 -0
- package/dist/cli/install.js +89 -0
- package/dist/cli/install.js.map +1 -0
- package/dist/cli/setup.d.ts +11 -0
- package/dist/cli/setup.js +203 -0
- package/dist/cli/setup.js.map +1 -0
- package/dist/core/dna.d.ts +14 -0
- package/dist/core/dna.js +95 -0
- package/dist/core/dna.js.map +1 -0
- package/dist/core/evolution.d.ts +16 -0
- package/dist/core/evolution.js +252 -0
- package/dist/core/evolution.js.map +1 -0
- package/dist/core/pet.d.ts +25 -0
- package/dist/core/pet.js +224 -0
- package/dist/core/pet.js.map +1 -0
- package/dist/core/rarity.d.ts +17 -0
- package/dist/core/rarity.js +55 -0
- package/dist/core/rarity.js.map +1 -0
- package/dist/core/sync.d.ts +37 -0
- package/dist/core/sync.js +94 -0
- package/dist/core/sync.js.map +1 -0
- package/dist/core/types.d.ts +92 -0
- package/dist/core/types.js +22 -0
- package/dist/core/types.js.map +1 -0
- package/dist/daemon/server.d.ts +8 -0
- package/dist/daemon/server.js +137 -0
- package/dist/daemon/server.js.map +1 -0
- package/dist/hooks/handler.d.ts +2 -0
- package/dist/hooks/handler.js +99 -0
- package/dist/hooks/handler.js.map +1 -0
- package/dist/render/anim-state.d.ts +5 -0
- package/dist/render/anim-state.js +24 -0
- package/dist/render/anim-state.js.map +1 -0
- package/dist/render/animation.d.ts +15 -0
- package/dist/render/animation.js +94 -0
- package/dist/render/animation.js.map +1 -0
- package/dist/render/frames.d.ts +51 -0
- package/dist/render/frames.js +151 -0
- package/dist/render/frames.js.map +1 -0
- package/dist/render/pixel.d.ts +44 -0
- package/dist/render/pixel.js +169 -0
- package/dist/render/pixel.js.map +1 -0
- package/dist/render/sprites.d.ts +8 -0
- package/dist/render/sprites.js +300 -0
- package/dist/render/sprites.js.map +1 -0
- package/dist/render/statusline.d.ts +3 -0
- package/dist/render/statusline.js +117 -0
- package/dist/render/statusline.js.map +1 -0
- 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
|
+
}
|