@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 +47 -0
- package/README.es.md +132 -118
- package/README.fr.md +132 -118
- package/README.hi.md +132 -118
- package/README.it.md +132 -118
- package/README.ja.md +132 -118
- package/README.md +18 -4
- package/README.pt-BR.md +132 -118
- package/README.zh.md +132 -118
- package/dist/cli.js +50 -8
- package/dist/errors.d.ts +35 -0
- package/dist/errors.js +59 -0
- package/package.json +5 -2
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
|
|
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` |
|
|
43
|
-
| **transform** | `Edit` | Pulso con textura FM —
|
|
44
|
-
| **commit** | `Write`, `NotebookEdit`, `git commit` | Tono de timbre agudo — sellado |
|
|
45
|
-
| **navigate** | `Grep`, `Glob` | Pitido de sonar —
|
|
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
|
|
64
|
-
|
|
65
|
-
| Comando de Bash | Verbo | Estado |
|
|
66
|
-
|
|
67
|
-
| `git push` | sync (arriba) |
|
|
68
|
-
| `git pull` | sync (abajo) |
|
|
69
|
-
| `npm test`, `pytest` | ejecutar |
|
|
70
|
-
| `tsc`, `npm run build` | ejecutar |
|
|
71
|
-
| `mv`, `cp` | mover | — |
|
|
72
|
-
| `rm` | mover | advertencia |
|
|
73
|
-
| todo lo demás | ejecutar |
|
|
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** |
|
|
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
|
-
|
|
170
|
-
|
|
171
|
-
- **Osciladores** — seno,
|
|
172
|
-
- **Envolventes ADSR** — ataque, decaimiento, sostenimiento, liberación
|
|
173
|
-
- **Síntesis FM** — modulación de frecuencia para
|
|
174
|
-
- **Filtro de variable
|
|
175
|
-
- **Barridos de frecuencia** — interpolación lineal para
|
|
176
|
-
- **Limitador de volumen** — compresión de rodilla
|
|
177
|
-
|
|
178
|
-
Todo el paquete tiene aproximadamente 2800 líneas de
|
|
179
|
-
|
|
180
|
-
##
|
|
181
|
-
|
|
182
|
-
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
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>
|