claude-code-sounds 1.0.0 → 1.1.1

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-code-sounds",
3
- "version": "1.0.0",
3
+ "version": "1.1.1",
4
4
  "description": "Sound themes for Claude Code lifecycle hooks",
5
5
  "bin": {
6
6
  "claude-code-sounds": "bin/cli.js"
@@ -5,6 +5,7 @@
5
5
  #
6
6
  set -e
7
7
 
8
+ # shellcheck disable=SC2034 # passed by install.sh, reserved for theme use
8
9
  SOUNDS_DIR="$1"
9
10
  TMP_DIR="$2"
10
11
 
@@ -14,7 +15,7 @@ curl -sL -o "$ZIP" "https://sounds.spriters-resource.com/media/assets/422/425494
14
15
 
15
16
  if ! file "$ZIP" | grep -q "Zip"; then
16
17
  echo " Error: Failed to download WC3 sound pack."
17
- return 1
18
+ exit 1
18
19
  fi
19
20
 
20
21
  unzip -qo "$ZIP" \
@@ -2,6 +2,7 @@
2
2
  "name": "WC3 Orc Peon",
3
3
  "description": "Warcraft 3 Orc unit soundbites — Peons, Grunts, Shamans, and more",
4
4
  "author": "ryparker",
5
+ "srcBase": "Orc",
5
6
  "sounds": {
6
7
  "start": {
7
8
  "description": "Session starting — being summoned",
@@ -34,7 +35,8 @@
34
35
  "stop": {
35
36
  "description": "Done responding — acknowledgment",
36
37
  "files": [
37
- { "src": "Peon/PeonYesAttack2.wav", "name": "zug-zug.wav" },
38
+ { "src": "Grunt/GruntYes4.wav", "name": "zug-zug.wav" },
39
+ { "src": "Peon/PeonYesAttack2.wav", "name": "get-em.wav" },
38
40
  { "src": "Peon/PeonYesAttack1.wav", "name": "ok.wav" },
39
41
  { "src": "Peon/PeonYes1.wav", "name": "i-can-do-that.wav" },
40
42
  { "src": "Peon/PeonYes2.wav", "name": "be-happy-to.wav" },
@@ -52,7 +54,8 @@
52
54
  { "src": "Hellscream/GromWarcry1.wav", "name": "taste-the-fury.wav" },
53
55
  { "src": "Peon/PeonYesAttack3.wav", "name": "ill-try.wav" },
54
56
  { "src": "Peon/PeonWarcry1.wav", "name": "why-not.wav" },
55
- { "src": "Peon/PeonYesAttack2.wav", "name": "zug-zug.wav" }
57
+ { "src": "Grunt/GruntYes4.wav", "name": "zug-zug.wav" },
58
+ { "src": "Peon/PeonYesAttack2.wav", "name": "get-em.wav" }
56
59
  ]
57
60
  },
58
61
  "idle": {
@@ -0,0 +1,67 @@
1
+ #!/bin/bash
2
+ #
3
+ # Downloads sound files for the zelda-oot theme.
4
+ # Called by install.sh with $1 = target sounds directory, $2 = temp directory.
5
+ #
6
+ set -e
7
+
8
+ # shellcheck disable=SC2034 # passed by install.sh, reserved for theme use
9
+ SOUNDS_DIR="$1"
10
+ TMP_DIR="$2"
11
+ OOT_DIR="$TMP_DIR/OOT"
12
+
13
+ mkdir -p "$OOT_DIR"
14
+
15
+ BASE_URL="https://noproblo.dayjo.org/zeldasounds/oot"
16
+
17
+ # All unique sound files needed by this theme
18
+ FILES=(
19
+ OOT_Navi_Hey1.wav
20
+ OOT_Navi_Hello1.wav
21
+ OOT_Navi_Listen1.wav
22
+ OOT_Navi_Look1.wav
23
+ OOT_Navi_WatchOut1.wav
24
+ OOT_GreatFairy_Laugh1.wav
25
+ OOT_Chest_Big.wav
26
+ OOT_Chest_Small.wav
27
+ OOT_MainMenu_Select.wav
28
+ OOT_Dialogue_Next.wav
29
+ OOT_Dialogue_Done_Mono.wav
30
+ OOT_Get_Heart.wav
31
+ OOT_Get_SmallItem1.wav
32
+ OOT_Get_Rupee.wav
33
+ OOT_Secret_Mono.wav
34
+ OOT_Song_Correct_Mono.wav
35
+ OOT_Song_Error.wav
36
+ OOT_PauseMenu_Open_Mono.wav
37
+ OOT_PauseMenu_Close_Mono.wav
38
+ OOT_ZTarget_Enemy.wav
39
+ OOT_Sword_Draw.wav
40
+ OOT_Sword_Spin.wav
41
+ OOT_AdultLink_Attack1.wav
42
+ OOT_AdultLink_StrongAttack1.wav
43
+ OOT_AdultLink_Hurt1.wav
44
+ OOT_Fanfare_SmallItem.wav
45
+ OOT_Error.wav
46
+ OOT_LowHealth.wav
47
+ OOT_Talon_Snore.wav
48
+ OOT_Ganondorf_Heheh.wav
49
+ )
50
+
51
+ echo " Downloading Zelda: Ocarina of Time sounds..."
52
+
53
+ FAILED=0
54
+ for FILE in "${FILES[@]}"; do
55
+ curl -sL -o "$OOT_DIR/$FILE" "$BASE_URL/$FILE"
56
+ if ! file "$OOT_DIR/$FILE" | grep -q "WAVE\|RIFF"; then
57
+ echo " Warning: Failed to download $FILE"
58
+ rm -f "$OOT_DIR/$FILE"
59
+ FAILED=$((FAILED + 1))
60
+ fi
61
+ done
62
+
63
+ if [ "$FAILED" -gt 0 ]; then
64
+ echo " Warning: $FAILED file(s) failed to download."
65
+ fi
66
+
67
+ echo " Download complete."
@@ -0,0 +1,110 @@
1
+ {
2
+ "name": "Zelda: Ocarina of Time",
3
+ "description": "Navi, Link, and iconic OOT jingles — Hey! Listen!",
4
+ "author": "ryparker",
5
+ "srcBase": "OOT",
6
+ "sounds": {
7
+ "start": {
8
+ "description": "Session starting — Navi greets you",
9
+ "files": [
10
+ { "src": "OOT_Navi_Hey1.wav", "name": "hey.wav" },
11
+ { "src": "OOT_Navi_Hello1.wav", "name": "hello.wav" },
12
+ { "src": "OOT_Navi_Listen1.wav", "name": "listen.wav" },
13
+ { "src": "OOT_GreatFairy_Laugh1.wav", "name": "great-fairy-laugh.wav" },
14
+ { "src": "OOT_Chest_Big.wav", "name": "open-chest.wav" }
15
+ ]
16
+ },
17
+ "end": {
18
+ "description": "Session over — quest complete",
19
+ "files": [
20
+ { "src": "OOT_Fanfare_SmallItem.wav", "name": "item-fanfare.wav" },
21
+ { "src": "OOT_Secret_Mono.wav", "name": "secret-discovered.wav" },
22
+ { "src": "OOT_Dialogue_Done_Mono.wav", "name": "dialogue-done.wav" }
23
+ ]
24
+ },
25
+ "permission": {
26
+ "description": "Permission prompt — Navi warns you",
27
+ "files": [
28
+ { "src": "OOT_Navi_WatchOut1.wav", "name": "watch-out.wav" },
29
+ { "src": "OOT_Navi_Hey1.wav", "name": "hey.wav" },
30
+ { "src": "OOT_Navi_Listen1.wav", "name": "listen.wav" },
31
+ { "src": "OOT_PauseMenu_Open_Mono.wav", "name": "pause-menu.wav" },
32
+ { "src": "OOT_ZTarget_Enemy.wav", "name": "z-target.wav" }
33
+ ]
34
+ },
35
+ "stop": {
36
+ "description": "Done responding — loot collected",
37
+ "files": [
38
+ { "src": "OOT_Secret_Mono.wav", "name": "secret-discovered.wav" },
39
+ { "src": "OOT_Get_SmallItem1.wav", "name": "get-item.wav" },
40
+ { "src": "OOT_Get_Rupee.wav", "name": "get-rupee.wav" },
41
+ { "src": "OOT_Chest_Small.wav", "name": "open-small-chest.wav" },
42
+ { "src": "OOT_Song_Correct_Mono.wav", "name": "song-correct.wav" }
43
+ ]
44
+ },
45
+ "subagent": {
46
+ "description": "Spawning subagent — Link attacks",
47
+ "files": [
48
+ { "src": "OOT_Sword_Draw.wav", "name": "sword-draw.wav" },
49
+ { "src": "OOT_AdultLink_Attack1.wav", "name": "link-attack.wav" },
50
+ { "src": "OOT_AdultLink_StrongAttack1.wav", "name": "link-strong-attack.wav" },
51
+ { "src": "OOT_Navi_Hey1.wav", "name": "hey.wav" },
52
+ { "src": "OOT_Sword_Spin.wav", "name": "spin-attack.wav" }
53
+ ]
54
+ },
55
+ "idle": {
56
+ "description": "Waiting for input — Navi pesters you",
57
+ "files": [
58
+ { "src": "OOT_Navi_Hey1.wav", "name": "hey.wav" },
59
+ { "src": "OOT_Navi_Listen1.wav", "name": "listen.wav" },
60
+ { "src": "OOT_Navi_WatchOut1.wav", "name": "watch-out.wav" },
61
+ { "src": "OOT_LowHealth.wav", "name": "low-health.wav" },
62
+ { "src": "OOT_Talon_Snore.wav", "name": "snore.wav" }
63
+ ]
64
+ },
65
+ "error": {
66
+ "description": "Tool failure — Link takes damage",
67
+ "files": [
68
+ { "src": "OOT_Error.wav", "name": "error.wav" },
69
+ { "src": "OOT_Song_Error.wav", "name": "song-error.wav" },
70
+ { "src": "OOT_AdultLink_Hurt1.wav", "name": "link-hurt.wav" },
71
+ { "src": "OOT_Ganondorf_Heheh.wav", "name": "ganondorf-laugh.wav" }
72
+ ]
73
+ },
74
+ "prompt": {
75
+ "description": "User submitted prompt — adventure continues",
76
+ "files": [
77
+ { "src": "OOT_Navi_Hey1.wav", "name": "hey.wav" },
78
+ { "src": "OOT_Navi_Look1.wav", "name": "look.wav" },
79
+ { "src": "OOT_MainMenu_Select.wav", "name": "menu-select.wav" },
80
+ { "src": "OOT_Dialogue_Next.wav", "name": "dialogue-next.wav" },
81
+ { "src": "OOT_Get_Heart.wav", "name": "get-heart.wav" }
82
+ ]
83
+ },
84
+ "task-completed": {
85
+ "description": "Task finished — treasure acquired",
86
+ "files": [
87
+ { "src": "OOT_Fanfare_SmallItem.wav", "name": "item-fanfare.wav" },
88
+ { "src": "OOT_Secret_Mono.wav", "name": "secret-discovered.wav" }
89
+ ]
90
+ },
91
+ "compact": {
92
+ "description": "Context compaction — health running low",
93
+ "files": [
94
+ { "src": "OOT_LowHealth.wav", "name": "low-health.wav" },
95
+ { "src": "OOT_PauseMenu_Close_Mono.wav", "name": "pause-close.wav" },
96
+ { "src": "OOT_Navi_WatchOut1.wav", "name": "watch-out.wav" },
97
+ { "src": "OOT_Error.wav", "name": "error.wav" }
98
+ ]
99
+ },
100
+ "teammate-idle": {
101
+ "description": "Teammate went idle — Navi nags",
102
+ "files": [
103
+ { "src": "OOT_Navi_Hey1.wav", "name": "hey.wav" },
104
+ { "src": "OOT_Navi_Listen1.wav", "name": "listen.wav" },
105
+ { "src": "OOT_Navi_WatchOut1.wav", "name": "watch-out.wav" },
106
+ { "src": "OOT_LowHealth.wav", "name": "low-health.wav" }
107
+ ]
108
+ }
109
+ }
110
+ }