@mcptoolshop/claude-sfx 0.1.2 → 1.0.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/CHANGELOG.md ADDED
@@ -0,0 +1,47 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [1.0.0] - 2026-02-27
11
+
12
+ ### Added
13
+ - Structured error handling with `SfxError` class (code/message/hint/cause/retryable)
14
+ - `--version` / `-V` flag
15
+ - `--debug` flag for stack traces on errors
16
+ - CI workflow with type checking, tests, coverage, and dependency audit
17
+ - Codecov integration
18
+ - SECURITY.md, CHANGELOG.md, SCORECARD.md (Shipcheck compliance)
19
+ - Threat model section in README
20
+ - `verify` script (build + test in one command)
21
+
22
+ ## [0.1.2] - 2026-02-27
23
+
24
+ ### Fixed
25
+ - Republished with correct npm scope and metadata
26
+
27
+ ## [0.1.1] - 2026-02-27
28
+
29
+ ### Changed
30
+ - Scoped package to `@mcptoolshop/claude-sfx`
31
+ - Updated brand logo to centralized brand repo
32
+
33
+ ## [0.1.0] - 2026-02-27
34
+
35
+ ### Added
36
+ - 7 core verbs: intake, transform, commit, navigate, execute, move, sync
37
+ - Procedural audio synthesis engine (sine, square, sawtooth, triangle, noise)
38
+ - ADSR envelopes, FM synthesis, state-variable filter, frequency sweeps
39
+ - Loudness limiter with soft-knee compression
40
+ - Anti-annoyance: debounce, rate limiting, quiet hours, mute, per-verb disable
41
+ - Sound profiles: minimal (default) and retro
42
+ - Custom profile support via JSON files
43
+ - Ambient drone system for long-running operations
44
+ - Session start/end chimes
45
+ - Hook handler for Claude Code integration
46
+ - WAV export for all sounds
47
+ - Zero production dependencies
package/README.es.md CHANGED
@@ -1,54 +1,56 @@
1
- <p align="center">
2
- <a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</a> | <a href="README.md">English</a> | <a href="README.fr.md">Français</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.it.md">Italiano</a> | <a href="README.pt-BR.md">Português (BR)</a>
3
- </p>
4
-
1
+ <p align="center">
2
+ <a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</a> | <a href="README.md">English</a> | <a href="README.fr.md">Français</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.it.md">Italiano</a> | <a href="README.pt-BR.md">Português (BR)</a>
3
+ </p>
4
+
5
5
  <p align="center">
6
6
  <img src="https://raw.githubusercontent.com/mcp-tool-shop-org/brand/main/logos/claude-sfx/readme.jpg" width="400" alt="Claude-SFX">
7
7
  </p>
8
-
8
+
9
9
  <p align="center">
10
- <a href="https://www.npmjs.com/package/claude-sfx"><img src="https://img.shields.io/npm/v/claude-sfx" alt="npm version"></a>
10
+ <a href="https://www.npmjs.com/package/@mcptoolshop/claude-sfx"><img src="https://img.shields.io/npm/v/@mcptoolshop/claude-sfx" alt="npm version"></a>
11
+ <a href="https://github.com/mcp-tool-shop-org/claude-sfx/actions/workflows/ci.yml"><img src="https://github.com/mcp-tool-shop-org/claude-sfx/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
12
+ <a href="https://codecov.io/gh/mcp-tool-shop-org/claude-sfx"><img src="https://codecov.io/gh/mcp-tool-shop-org/claude-sfx/branch/main/graph/badge.svg" alt="codecov"></a>
11
13
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"></a>
12
14
  <a href="https://mcp-tool-shop-org.github.io/claude-sfx/"><img src="https://img.shields.io/badge/Landing_Page-live-blue" alt="Landing Page"></a>
13
15
  </p>
14
-
15
- Retroalimentación de audio procedimental para [Claude Code](https://docs.anthropic.com/en/docs/claude-code). Cada llamada a una herramienta, edición de archivo, búsqueda, envío a Git y despliegue de agente genera un sonido distinto, sintetizado a partir de matemáticas, no de archivos de audio.
16
-
17
- ## Inicio rápido
18
-
16
+
17
+ Retroalimentación de audio procedimental para [Claude Code](https://docs.anthropic.com/en/docs/claude-code). Cada llamada a una herramienta, edición de archivo, búsqueda, envío a Git y despliegue de agente genera un sonido distinto, sintetizado a partir de matemáticas, no de archivos de audio.
18
+
19
+ ## Inicio rápido
20
+
19
21
  ```bash
20
- npm install -g claude-sfx
22
+ npm install -g @mcptoolshop/claude-sfx
21
23
  cd your-project
22
24
  claude-sfx init # install hooks into .claude/settings.json
23
25
  claude-sfx demo # hear all 7 verbs
24
26
  ```
25
-
26
- Eso es todo. Claude Code ahora reproducirá sonidos mientras trabaja.
27
-
28
- ## ¿Por qué retroalimentación de audio?
29
-
30
- Cuando un agente de IA lee, escribe, busca y despliega en su nombre, pierde visibilidad. Está mirando texto que se desplaza. La retroalimentación de audio restaura la conciencia:
31
-
32
- - **Accesibilidad** — escuche los cambios de estado, los errores y las finalizaciones sin tener que mirar la terminal.
33
- - **Flujo** — sepa si una prueba ha pasado o si un envío se ha completado sin tener que cambiar de contexto.
34
- - **Presencia** — el agente se siente como un colaborador, no como una caja negra.
35
-
36
- ## Los 7 verbos
37
-
38
- Cada acción de Claude Code se corresponde con uno de 7 verbos principales. Los modificadores (estado, alcance, dirección) alteran el sonido sin romper la coherencia.
39
-
40
- | Verbo | Desencadenantes | Sonido |
41
- | --- | --- | --- |
42
- | **intake** | `Read`, `WebFetch`, `WebSearch` | Seno ascendente suave — algo que está entrando |
43
- | **transform** | `Edit` | Pulso con textura FM — remodelando |
44
- | **commit** | `Write`, `NotebookEdit`, `git commit` | Tono de timbre agudo — sellado |
45
- | **navigate** | `Grep`, `Glob` | Pitido de sonar — escaneando |
46
- | **execute** | `Bash`, `npm test`, `tsc` | Estallido de ruido + tono — acción mecánica |
47
- | **move** | `mv`, `cp`, inicio de subagente | Silbido de viento — desplazamiento de aire |
48
- | **sync** | `git push`, `git pull` | Silbido dramático + ancla tonal |
49
-
50
- ### Modificadores
51
-
27
+
28
+ Eso es todo. Claude Code ahora reproducirá sonidos mientras trabaja.
29
+
30
+ ## ¿Por qué retroalimentación de audio?
31
+
32
+ Cuando un agente de IA lee, escribe, busca y despliega en su nombre, pierde visibilidad. Está mirando texto que se desplaza. La retroalimentación de audio restablece la conciencia:
33
+
34
+ - **Accesibilidad** — escuche los cambios de estado, los errores y las finalizaciones sin tener que mirar la terminal.
35
+ - **Flujo** — sepa si una prueba ha pasado o si un envío se ha completado sin tener que cambiar de contexto.
36
+ - **Presencia** — el agente se siente como un colaborador, no como una caja negra.
37
+
38
+ ## Los 7 verbos
39
+
40
+ Cada acción de Claude Code se corresponde con uno de 7 verbos principales. Los modificadores (estado, alcance, dirección) alteran el sonido sin romper la coherencia.
41
+
42
+ | Verbo | Desencadenantes | Sonido |
43
+ |---|---|---|
44
+ | **intake** | `Read`, `WebFetch`, `WebSearch` | Onda sinusoidal ascendente — algo que está entrando |
45
+ | **transform** | `Edit` | Pulso con textura FM — remodelación |
46
+ | **commit** | `Write`, `NotebookEdit`, `git commit` | Tono de timbre agudo — sellado |
47
+ | **navigate** | `Grep`, `Glob` | Pitido de sonar — escaneo |
48
+ | **execute** | `Bash`, `npm test`, `tsc` | Estallido de ruido + tono — acción mecánica |
49
+ | **move** | `mv`, `cp`, inicio de subagente | Silbido de viento — desplazamiento de aire |
50
+ | **sync** | `git push`, `git pull` | Silbido dramático + ancla tonal |
51
+
52
+ ### Modificadores
53
+
52
54
  ```bash
53
55
  claude-sfx play navigate --status ok # bright ping (octave harmonic)
54
56
  claude-sfx play navigate --status err # low detuned ping (dissonance)
@@ -57,60 +59,60 @@ claude-sfx play sync --direction up # rising whoosh (push)
57
59
  claude-sfx play sync --direction down # falling whoosh (pull)
58
60
  claude-sfx play intake --scope remote # longer tail (distance feel)
59
61
  ```
60
-
61
- ### Detección inteligente de Bash
62
-
63
- El controlador de la conexión inspecciona los comandos de Bash para seleccionar el sonido correcto:
64
-
65
- | Comando de Bash | Verbo | Estado |
66
- | --- | --- | --- |
67
- | `git push` | sync (arriba) | desde código de salida |
68
- | `git pull` | sync (abajo) | desde código de salida |
69
- | `npm test`, `pytest` | ejecutar | desde código de salida |
70
- | `tsc`, `npm run build` | ejecutar | desde código de salida |
71
- | `mv`, `cp` | mover | — |
72
- | `rm` | mover | advertencia |
73
- | todo lo demás | ejecutar | desde código de salida |
74
-
75
- ## Perfiles
76
-
77
- Paletas de sonido que cambian todo el carácter con una sola opción.
78
-
79
- | Perfil | Carácter |
80
- | --- | --- |
81
- | **minimal** (default) | Tonos de onda sinusoidal — sutiles, profesionales, para uso diario |
82
- | **retro** | Chirrídos de onda cuadrada de 8 bits — divertidos pero controlados |
83
-
62
+
63
+ ### Detección inteligente de Bash
64
+
65
+ El controlador de eventos examina los comandos de Bash para seleccionar el sonido correcto:
66
+
67
+ | Comando de Bash | Verbo | Estado |
68
+ |---|---|---|
69
+ | `git push` | sync (arriba) | a partir del código de salida |
70
+ | `git pull` | sync (abajo) | a partir del código de salida |
71
+ | `npm test`, `pytest` | ejecutar | a partir del código de salida |
72
+ | `tsc`, `npm run build` | ejecutar | a partir del código de salida |
73
+ | `mv`, `cp` | mover | — |
74
+ | `rm` | mover | advertencia |
75
+ | todo lo demás | ejecutar | a partir del código de salida |
76
+
77
+ ## Perfiles
78
+
79
+ Paletas de sonido que cambian todo el carácter con una sola opción.
80
+
81
+ | Perfil | Carácter |
82
+ |---|---|
83
+ | **minimal** (default) | Tonos de onda sinusoidal — sutiles, profesionales, para uso diario |
84
+ | **retro** | Ruido de onda cuadrada de 8 bits — divertido pero controlado |
85
+
84
86
  ```bash
85
87
  claude-sfx demo --profile retro # hear retro palette
86
88
  claude-sfx preview minimal # audition all sounds + modifiers
87
89
  claude-sfx config set profile retro # change default globally
88
90
  claude-sfx config repo retro # use retro in current directory only
89
91
  ```
90
-
91
- ### Perfiles personalizados
92
-
93
- Copie `profiles/minimal.json`, edite los parámetros de síntesis y cárguelo:
94
-
92
+
93
+ ### Perfiles personalizados
94
+
95
+ Copie `profiles/minimal.json`, edite los parámetros de síntesis y cárguelo:
96
+
95
97
  ```bash
96
98
  claude-sfx play navigate --profile ./my-profile.json
97
99
  ```
98
-
99
- Cada número en el archivo JSON se corresponde directamente con el motor de síntesis: forma de onda, frecuencia, duración, envolvente (ADSR), profundidad FM, ancho de banda, ganancia.
100
-
101
- ## Anti-molestias
102
-
103
- Lo que diferencia un producto de un juguete.
104
-
105
- | Función | Comportamiento |
106
- | --- | --- |
107
- | **Debounce** | El mismo verbo dentro de 200 ms → un sonido |
108
- | **Rate limit** | Máximo de 8 sonidos por ventana de 10 segundos |
109
- | **Quiet hours** | Todos los sonidos se suprimen durante las horas configuradas |
110
- | **Mute** | Activación instantánea, persiste al reiniciar la sesión |
111
- | **Volume** | Control de ganancia de 0 a 100 |
112
- | **Per-verb disable** | Desactive verbos específicos que no desee |
113
-
100
+
101
+ Cada número en el archivo JSON se corresponde directamente con el motor de síntesis: forma de onda, frecuencia, duración, envolvente (ADSR), profundidad FM, ancho de banda, ganancia.
102
+
103
+ ## Anti-molestias
104
+
105
+ Lo que diferencia un producto de un juguete.
106
+
107
+ | Función | Comportamiento |
108
+ |---|---|
109
+ | **Debounce** | El mismo verbo dentro de 200 ms → un sonido |
110
+ | **Rate limit** | Máximo de 8 sonidos por ventana de 10 segundos |
111
+ | **Quiet hours** | Todos los sonidos se suprimen durante las horas configuradas |
112
+ | **Mute** | Activación instantánea, persiste al reiniciar la sesión |
113
+ | **Volume** | Control de ganancia de 0 a 100 |
114
+ | **Per-verb disable** | Desactive los verbos específicos que no desee |
115
+
114
116
  ```bash
115
117
  claude-sfx mute # instant silence
116
118
  claude-sfx unmute
@@ -120,27 +122,27 @@ claude-sfx config set quiet-end 07:00 # until 7am
120
122
  claude-sfx disable navigate # no more search pings
121
123
  claude-sfx enable navigate # bring it back
122
124
  ```
123
-
124
- ## Ambiente (operaciones de larga duración)
125
-
126
- Para comandos que tardan un tiempo (compilaciones, despliegues, suites de pruebas grandes):
127
-
125
+
126
+ ## Ambiente (operaciones de larga duración)
127
+
128
+ Para comandos que tardan un tiempo (compilaciones, despliegues, suites de pruebas grandes):
129
+
128
130
  ```bash
129
131
  claude-sfx ambient-start # low drone fades in
130
132
  # ... operation runs ...
131
133
  claude-sfx ambient-resolve # drone stops, resolution stinger plays
132
134
  claude-sfx ambient-stop # stop drone silently (no stinger)
133
135
  ```
134
-
135
- ## Sonidos de sesión
136
-
136
+
137
+ ## Sonidos de sesión
138
+
137
139
  ```bash
138
140
  claude-sfx session-start # two-note ascending chime (boot)
139
141
  claude-sfx session-end # two-note descending chime (closure)
140
142
  ```
141
-
142
- ## Todos los comandos
143
-
143
+
144
+ ## Todos los comandos
145
+
144
146
  ```
145
147
  Setup:
146
148
  init Install hooks into .claude/settings.json
@@ -163,26 +165,38 @@ Config:
163
165
  disable / enable <verb> Toggle specific verbs
164
166
  export [dir] [--profile] Export all sounds as .wav files
165
167
  ```
166
-
167
- ## Cómo funciona
168
-
169
- Sin archivos de audio. Cada sonido se sintetiza en tiempo de ejecución a partir de matemáticas:
170
-
171
- - **Osciladores** — seno, cuadrada, diente de sierra, triángulo, ruido blanco.
172
- - **Envolventes ADSR** — ataque, decaimiento, sostenimiento, liberación.
173
- - **Síntesis FM** — modulación de frecuencia para crear texturas.
174
- - **Filtro de variable de estado** — ruido filtrado en banda para efectos de "whoosh".
175
- - **Barridos de frecuencia** — interpolación lineal para crear movimiento.
176
- - **Limitador de volumen** — compresión de rodilla suave, límite máximo.
177
-
178
- Todo el paquete tiene aproximadamente 2800 líneas de código TypeScript y no tiene dependencias para producción. Los sonidos se generan como buffers PCM, se codifican a formato WAV en memoria y se reproducen a través del reproductor de audio nativo del sistema operativo (PowerShell en Windows, afplay en macOS, aplay en Linux).
179
-
180
- ## Requisitos:
181
-
182
- - Node.js 18 o superior.
183
- - Claude Code.
184
- - Salida de audio del sistema (altavoces o auriculares).
185
-
186
- ## Licencia:
187
-
188
- [MIT](LICENSE)
168
+
169
+ ## Cómo funciona
170
+
171
+ No se utilizan archivos de audio. Cada sonido se sintetiza en tiempo de ejecución a partir de matemáticas:
172
+
173
+ - **Osciladores** — seno, cuadrado, diente de sierra, triángulo, ruido blanco
174
+ - **Envolventes ADSR** — ataque, decaimiento, sostenimiento, liberación
175
+ - **Síntesis FM** — modulación de frecuencia para textura
176
+ - **Filtro de estado variable** — ruido filtrado en banda para silbidos
177
+ - **Barridos de frecuencia** — interpolación lineal para movimiento
178
+ - **Limitador de volumen** — compresión de "suave rodilla", límite máximo
179
+
180
+ Todo el paquete tiene aproximadamente 2800 líneas de TypeScript y no tiene dependencias de producción. Los sonidos se generan como búferes PCM, se codifican en WAV en la memoria y se reproducen a través del reproductor de audio nativo del sistema operativo (PowerShell en Windows, afplay en macOS, aplay en Linux).
181
+
182
+ ## Seguridad y privacidad
183
+
184
+ **Datos modificados:** `~/.claude-sfx/config.json` (preferencias), `.claude/settings.json` (registro de hooks). Los búferes de audio se generan en la memoria y nunca se escriben en el disco, a menos que ejecute el comando `export`.
185
+
186
+ **Datos NO modificados:** código fuente, historial de Git, red, credenciales, variables de entorno. No se recopilan ni se envían datos de telemetría. No se descargan archivos de audio; cada sonido se sintetiza localmente a partir de cálculos matemáticos.
187
+
188
+ **Permisos:** lectura/escritura en el sistema de archivos para la configuración y los hooks, invocación del reproductor de audio del sistema operativo. Consulte [SECURITY.md](SECURITY.md) para obtener la política completa.
189
+
190
+ ## Requisitos
191
+
192
+ - Node.js 18+
193
+ - Claude Code
194
+ - Salida de audio del sistema (altavoces o auriculares)
195
+
196
+ ## Licencia
197
+
198
+ [MIT](LICENSE)
199
+
200
+ ---
201
+
202
+ Desarrollado por <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>