@umang-boss/claudemon 2.1.0 → 2.1.2
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/package.json +1 -1
- package/statusline/buddy-status.sh +32 -15
package/package.json
CHANGED
|
@@ -109,13 +109,31 @@ if [ "$ENCOUNTER_CYCLE" -ge 3 ]; then
|
|
|
109
109
|
ENCOUNTER_VISIBLE=false
|
|
110
110
|
fi
|
|
111
111
|
|
|
112
|
-
# Sprite jitter:
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
112
|
+
# Sprite jitter: idle for 15-30s (random), then quick wiggle, then idle again
|
|
113
|
+
# Walk through variable-length cycles to find which cycle we're in
|
|
114
|
+
JITTER_OFFSET=0
|
|
115
|
+
_jt_elapsed=0
|
|
116
|
+
_jt_cycle=0
|
|
117
|
+
while true; do
|
|
118
|
+
# Each cycle gets a pseudo-random length between 15-30s based on cycle number
|
|
119
|
+
_jt_len=$(( 15 + ( (_jt_cycle * 13 + 7) % 16 ) ))
|
|
120
|
+
if [ $(( _jt_elapsed + _jt_len )) -gt $(( NOW_SEC % 3600 )) ]; then
|
|
121
|
+
# We're in this cycle — find position within it
|
|
122
|
+
_jt_pos=$(( (NOW_SEC % 3600) - _jt_elapsed ))
|
|
123
|
+
# Wiggle in the last 3 seconds: left, back, left
|
|
124
|
+
if [ "$_jt_pos" -eq $(( _jt_len - 3 )) ]; then
|
|
125
|
+
JITTER_OFFSET=1
|
|
126
|
+
elif [ "$_jt_pos" -eq $(( _jt_len - 2 )) ]; then
|
|
127
|
+
JITTER_OFFSET=0
|
|
128
|
+
elif [ "$_jt_pos" -eq $(( _jt_len - 1 )) ]; then
|
|
129
|
+
JITTER_OFFSET=2
|
|
130
|
+
fi
|
|
131
|
+
break
|
|
132
|
+
fi
|
|
133
|
+
_jt_elapsed=$(( _jt_elapsed + _jt_len ))
|
|
134
|
+
_jt_cycle=$(( _jt_cycle + 1 ))
|
|
135
|
+
done
|
|
136
|
+
|
|
119
137
|
|
|
120
138
|
# ── Terminal width ──────────────────────────────────────────
|
|
121
139
|
# Cross-platform: Linux uses /proc, macOS uses tty, Windows uses $COLUMNS
|
|
@@ -330,11 +348,10 @@ RIGHT_MARGIN=4
|
|
|
330
348
|
RIGHT_PAD=$(( COLS - ART_W - RIGHT_MARGIN ))
|
|
331
349
|
[ "$RIGHT_PAD" -lt 0 ] && RIGHT_PAD=0
|
|
332
350
|
|
|
333
|
-
# Jittered padding
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
[ "$JITTER_PAD" -lt 0 ] && JITTER_PAD=0
|
|
351
|
+
# Jittered padding for sprite lines only (name line uses fixed RIGHT_PAD)
|
|
352
|
+
# JITTER_OFFSET is 0-2, adding to margin pushes sprite left
|
|
353
|
+
SPRITE_PAD=$(( COLS - ART_W - RIGHT_MARGIN - JITTER_OFFSET ))
|
|
354
|
+
[ "$SPRITE_PAD" -lt 0 ] && SPRITE_PAD=0
|
|
338
355
|
|
|
339
356
|
# Build left array — line 1: model+context, line 2: update notice (if any)
|
|
340
357
|
LEFT_LINES=()
|
|
@@ -347,9 +364,9 @@ while [ ${#LEFT_LINES[@]} -lt "$TOTAL_LINES" ]; do
|
|
|
347
364
|
done
|
|
348
365
|
LEFT_COUNT=${#LEFT_LINES[@]}
|
|
349
366
|
|
|
350
|
-
# ── Build full right-side spacer (jittered for sprite
|
|
367
|
+
# ── Build full right-side spacer (jittered for sprite) ───────
|
|
351
368
|
FULL_SPACER=""
|
|
352
|
-
for (( s=0; s<
|
|
369
|
+
for (( s=0; s<SPRITE_PAD; s++ )); do FULL_SPACER+="$B"; done
|
|
353
370
|
|
|
354
371
|
# ── Output name line ABOVE sprite — with speech before name ──
|
|
355
372
|
SPEECH_TEXT=""
|
|
@@ -374,7 +391,7 @@ for (( i=0; i<SPRITE_COUNT; i++ )); do
|
|
|
374
391
|
right="${SPRITE_LINES[$i]}${NC}"
|
|
375
392
|
|
|
376
393
|
if [ -n "$left" ]; then
|
|
377
|
-
gap=$((
|
|
394
|
+
gap=$(( SPRITE_PAD - left_w ))
|
|
378
395
|
[ "$gap" -lt 1 ] && gap=1
|
|
379
396
|
GAP_STR=""
|
|
380
397
|
for (( g=0; g<gap; g++ )); do GAP_STR+="$B"; done
|