plugin-gentleman 1.1.3 → 1.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.
- package/README.md +3 -3
- package/ascii-frames.ts +2 -2
- package/components.tsx +2 -7
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -98,7 +98,7 @@ The ASCII representation features:
|
|
|
98
98
|
- **Eyes** that blink and look in 8 directions (center, up, down, left, right, and 4 diagonals) *(sidebar only)*
|
|
99
99
|
- **Mustache** rendered in grayscale gradient on home screen, semantic zone colors in sidebar
|
|
100
100
|
- **Tongue** that appears during busy states or periodic expressive cycles *(sidebar only)*
|
|
101
|
-
- **Motivational phrases** in Rioplatense Spanish style —
|
|
101
|
+
- **Motivational phrases** in Rioplatense Spanish style — one random phrase per expressive cycle *(sidebar only)*
|
|
102
102
|
|
|
103
103
|
**Example phrases during busy states:**
|
|
104
104
|
- *"Ponete las pilas, hermano..."*
|
|
@@ -126,7 +126,7 @@ The ASCII representation features:
|
|
|
126
126
|
**Busy/Expressive State** *(when `animations: true`)*
|
|
127
127
|
- Tongue appears when OpenCode is processing
|
|
128
128
|
- Eyes squint during expressive state
|
|
129
|
-
-
|
|
129
|
+
- A single motivational phrase is chosen for each expressive cycle or busy state (36+ phrase library)
|
|
130
130
|
- Active during detected busy states OR periodic expressive cycles
|
|
131
131
|
|
|
132
132
|
**Expressive Cycle Fallback** *(when `animations: true`)*
|
|
@@ -407,7 +407,7 @@ All animation intervals are in `components.tsx`:
|
|
|
407
407
|
- **Look-around interval:** Currently 3000ms (3s)
|
|
408
408
|
- **Blink interval:** Currently 2000ms with 35% chance (~5-6s average)
|
|
409
409
|
- **Blink frame timing:** Currently 80-100ms per frame progression
|
|
410
|
-
- **Phrase
|
|
410
|
+
- **Phrase selection:** One random phrase per expressive cycle or busy state
|
|
411
411
|
- **Expressive cycle timing:** First cycle at 30-45s, then every 45-60s
|
|
412
412
|
- **Expressive cycle duration:** Currently 8000ms (8s)
|
|
413
413
|
|
package/ascii-frames.ts
CHANGED
|
@@ -48,7 +48,7 @@ export const eyeNeutralRight = [
|
|
|
48
48
|
|
|
49
49
|
export const eyeNeutralUpLeft = [
|
|
50
50
|
" █████ █████ ", // 27 chars
|
|
51
|
-
" ██ ░░██
|
|
51
|
+
" ██ ░░██ ███░░░░██ ", // 27 chars - hollow pupil up-left
|
|
52
52
|
" ██ ░░░░██ ██░░░░░░░██ ", // 27 chars - hollow pupil up-left
|
|
53
53
|
" ██░░░░░░░██ ██░░░░░░░██ ", // 27 chars
|
|
54
54
|
"██ ██░░░░░██ ██░░░░░██ ██", // 27 chars
|
|
@@ -56,7 +56,7 @@ export const eyeNeutralUpLeft = [
|
|
|
56
56
|
|
|
57
57
|
export const eyeNeutralUpRight = [
|
|
58
58
|
" ██████ █████ ", // 27 chars
|
|
59
|
-
" ██░░░ ██
|
|
59
|
+
" ██░░░ ██ ███░░░░██ ", // 27 chars - hollow pupil up-right
|
|
60
60
|
" ██░░░░ ██ ██░░░░░░░██ ", // 27 chars - hollow pupil up-right
|
|
61
61
|
" ██░░░░░░░██ ██░░░░░░░██ ", // 27 chars
|
|
62
62
|
"██ ██░░░░░██ ██░░░░░██ ██", // 27 chars
|
package/components.tsx
CHANGED
|
@@ -136,7 +136,7 @@ export const SidebarMustachi = (props: { theme: TuiThemeCurrent; config: Cfg; is
|
|
|
136
136
|
}
|
|
137
137
|
tongueTimeoutId = setTimeout(growTongue, 200)
|
|
138
138
|
|
|
139
|
-
// Pick a random phrase
|
|
139
|
+
// Pick a single random phrase for this expressive cycle/state
|
|
140
140
|
const pickRandomPhrase = () => {
|
|
141
141
|
const randomIndex = Math.floor(Math.random() * busyPhrases.length)
|
|
142
142
|
return busyPhrases[randomIndex]
|
|
@@ -144,12 +144,7 @@ export const SidebarMustachi = (props: { theme: TuiThemeCurrent; config: Cfg; is
|
|
|
144
144
|
|
|
145
145
|
setBusyPhrase(pickRandomPhrase())
|
|
146
146
|
|
|
147
|
-
const interval = setInterval(() => {
|
|
148
|
-
setBusyPhrase(pickRandomPhrase())
|
|
149
|
-
}, 3000)
|
|
150
|
-
|
|
151
147
|
onCleanup(() => {
|
|
152
|
-
clearInterval(interval)
|
|
153
148
|
if (tongueTimeoutId !== undefined) {
|
|
154
149
|
clearTimeout(tongueTimeoutId)
|
|
155
150
|
}
|
|
@@ -242,7 +237,7 @@ export const SidebarMustachi = (props: { theme: TuiThemeCurrent; config: Cfg; is
|
|
|
242
237
|
return <text fg={color}>{paddedLine}</text>
|
|
243
238
|
})}
|
|
244
239
|
|
|
245
|
-
{/* Display single busy phrase
|
|
240
|
+
{/* Display a single busy phrase for the current expressive cycle */}
|
|
246
241
|
{busyPhrase() && (
|
|
247
242
|
<text fg={props.theme.warning}>{busyPhrase()}</text>
|
|
248
243
|
)}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "plugin-gentleman",
|
|
4
|
-
"version": "1.1.
|
|
4
|
+
"version": "1.1.4",
|
|
5
5
|
"description": "OpenCode TUI plugin featuring Mustachi - an animated ASCII mascot with eyes, mustache, and optional motivational phrases during busy states",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"exports": {
|