dsh-budget 0.3.0 → 0.4.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 +19 -0
- package/README.es.md +177 -172
- package/README.hi.md +177 -172
- package/README.md +180 -173
- package/README.pt.md +177 -172
- package/README.zh.md +179 -172
- package/lib/client.js +19 -3
- package/lib/client.js.map +1 -1
- package/lib/index.js +56 -3
- package/lib/{rolldown-runtime-D7D4PA-g.js → rolldown-runtime-8H4AJuhK.js} +1 -0
- package/lib/typert.host.js +1 -1
- package/lib/types/client/index.d.ts +2 -2
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/remote.d.ts +11 -1
- package/lib/types/client/remote.d.ts.map +1 -1
- package/lib/types/events.d.ts +16 -2
- package/lib/types/events.d.ts.map +1 -1
- package/lib/types/index.d.ts +3 -2
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/typert.host.d.ts +11 -1
- package/lib/types/typert.host.d.ts.map +1 -1
- package/lib/types/wire.d.ts +28 -3
- package/lib/types/wire.d.ts.map +1 -1
- package/lib/{wire-zYaXk7IG.js → wire-DE0ooHk0.js} +18 -3
- package/package.json +21 -5
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,25 @@ All notable changes to this project are documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.4.0] - 2026-08-30
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- On DeepSeek Harness `0.1.2-alpha.1` and later, `budget/alert` and `budget/block` audit events are no longer appended to the session log: the fail-closed session event vocabulary rejects logs containing event types it does not know, and the host exposes no external registration surface. Harnesses before `0.1.2-alpha.1` keep the previous behavior; the suppression is logged once at mount with the degradation reason.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- The browser half types its root context as the `@deepseek-ai/cordis` `Context` (matching current harness client plugins); the removed `@deepseek-ai/dsh-client-runtime` entry was dropped from `dsh.client.inject`, the peer/optional-peer and dev dependencies, the tsconfig paths, and the tsdown platform-externals list.
|
|
17
|
+
|
|
18
|
+
## [0.3.1] - 2026-08-27
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- Declare the web-client inject packages (`@deepseek-ai/dsh-client-connection`,
|
|
23
|
+
`@deepseek-ai/dsh-client-locale`, `@deepseek-ai/dsh-client-runtime`,
|
|
24
|
+
`@deepseek-ai/dsh-client-ui-settings`) as optional peerDependencies so the
|
|
25
|
+
bundle composition is explicit and standalone installs stay clean.
|
|
26
|
+
|
|
8
27
|
## [0.3.0] - 2026-08-26
|
|
9
28
|
|
|
10
29
|
### Added
|
package/README.es.md
CHANGED
|
@@ -1,177 +1,182 @@
|
|
|
1
|
-
<div align="center">
|
|
2
|
-
|
|
3
|
-
# 💰 dsh-budget
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
[).
|
|
5
|
+
|
|
6
|
+
**Gobernanza de costos para DeepSeek Harness: presupuestos, carbono y latencia en un solo panel.**
|
|
7
|
+
|
|
8
|
+
*Conoce cuánto cuesta cada sesión — antes de que te cueste a ti.*
|
|
9
|
+
|
|
10
|
+
[](LICENSE)
|
|
11
|
+
[](https://github.com/topics/dsh-plugin)
|
|
12
|
+
[](#)
|
|
13
|
+
[](https://github.com/PerryLink/dsh-budget/actions)
|
|
14
|
+
[](https://github.com/PerryLink/dsh-budget/releases)
|
|
15
|
+
[](https://www.npmjs.com/package/dsh-budget)
|
|
16
|
+
[](https://www.npmjs.com/package/dsh-budget)
|
|
17
|
+
|
|
18
|
+
[English](README.md) · [简体中文](README.zh.md) · [Español](README.es.md) · [Português](README.pt.md) · [हिन्दी](README.hi.md)
|
|
19
|
+
|
|
20
|
+
</div>
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Compatibilidad
|
|
25
|
+
|
|
26
|
+
| Superficie | Estado |
|
|
27
|
+
|---|---|
|
|
28
|
+
| Harness | DeepSeek Harness `0.1.1-rc.2` |
|
|
29
|
+
|
|
30
|
+
| Eventos de auditoría | Se escriben en harness anteriores a `0.1.2-alpha.1`; se suprimen con una razón de degradación registrada en `0.1.2-alpha.1` y posteriores (vocabulario de eventos de sesión fail-closed, sin superficie de registro externa) || Node | `^22.19.0 \|\| >=24.0.0` |
|
|
31
|
+
| Superficies | Host + cliente Web (pestaña Budget en Settings); comando `/budget` |
|
|
32
|
+
|
|
33
|
+
## Qué obtienes
|
|
34
|
+
|
|
35
|
+
`dsh-budget` convierte el flujo de eventos de sesión en un ciclo de gobernanza de costos cuatro en uno:
|
|
36
|
+
|
|
37
|
+
- **Medición agregada** — tokens (entrada sin caché / salida / lectura de caché / escritura de caché), costo USD estimado y huella de carbono por modelo, sesión y día, con una tabla integrada de USD por 1M tokens fusionada con tu `config.prices`.
|
|
38
|
+
- **Gobernanza de presupuesto** — límites de sesión/diarios/mensuales; alerta de umbral `warnRatio` (webhook POST + indicador de notificación de escritorio) y tres políticas al superar el límite: `alert` (solo notificar), `block` (cortocircuitar nuevas solicitudes de modelo hasta que el usuario levante el bloqueo), `degrade` (bloqueo con guía correctiva que nombra el modelo más barato de tu mapa `degradation`).
|
|
39
|
+
- **Carbono y latencia** — puente token→carbono (tokens × kWh/token × PUE × intensidad de la red regional, portado de AI-Carbon-Footprint-Calculator) y percentiles de latencia por modelo.
|
|
40
|
+
- **Superficies** — pestaña Budget en Settings (barras de uso, curva de uso por día, desglose por modelo, alertas, editores de límites, botones de desbloqueo) y el comando `/budget` (`/budget`, `/budget models`, `/budget unblock <scope>`).
|
|
41
|
+
|
|
42
|
+
## Inicio rápido
|
|
43
|
+
|
|
44
|
+
```sh
|
|
45
|
+
# 1. instala el bundle en tu perfil
|
|
46
|
+
dsh plugin --profile web add "github:PerryLink/dsh-budget#main"
|
|
47
|
+
|
|
48
|
+
# o desde npm (versiones publicadas)
|
|
49
|
+
dsh plugin --profile web add dsh-budget
|
|
50
|
+
|
|
51
|
+
# 2. reinicia y verifica la fila
|
|
52
|
+
dsh --profile web --dump-config | grep -A2 'id: budget'
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Luego pide al agente: `/budget` — y observa cómo se llena la pestaña de Settings.
|
|
56
|
+
|
|
57
|
+
## Instalación y desinstalación
|
|
58
|
+
|
|
59
|
+
- **Canal git** (último `main`): `dsh plugin --profile web add "github:PerryLink/dsh-budget#main"` — el script `prepare` compila solo con dependencias de producción.
|
|
60
|
+
- **Canal npm** (versiones publicadas): `dsh plugin --profile web add dsh-budget`.
|
|
61
|
+
- **Canal tarball**: `pnpm pack` en este repositorio y luego `dsh plugin --profile web add ./dsh-budget-<version>.tgz`.
|
|
62
|
+
- **Desinstalar**: `dsh plugin --profile web remove dsh-budget`.
|
|
63
|
+
|
|
64
|
+
> Si pnpm informa `ERR_PNPM_IGNORED_BUILDS` para este paquete (la validación inofensiva del binario de plataforma de esbuild), añade `allowBuilds: { esbuild: true }` a tu `pnpm-workspace.yaml` — el CLI `dsh` imprime el fragmento exacto.
|
|
65
|
+
|
|
66
|
+
## Configuración
|
|
67
|
+
|
|
68
|
+
Todos los ajustes son campos `Config` de Schemastery (modificables desde cordis.yml). `cordis.patch.yml` documenta cada clave en línea.
|
|
69
|
+
|
|
70
|
+
| Clave | Por defecto | Significado |
|
|
71
|
+
|---|---|---|
|
|
72
|
+
| `prices` | `{}` | Precios USD por 1M tokens por modelo, fusionados sobre la tabla integrada |
|
|
73
|
+
| `defaultPrice` | `{input: 1.0, output: 3.0}` | Respaldo para modelos ausentes de ambas tablas |
|
|
74
|
+
| `budgets.session` / `daily` / `monthly` | `10` / `50` / `500` | Límites de presupuesto USD por ámbito; omitir para ilimitado |
|
|
75
|
+
| `warnRatio` | `0.8` | Alertar cuando el uso alcance esta fracción del límite (0..1) |
|
|
76
|
+
| `overLimit` | `alert` | `alert` / `block` / `degrade` tras cruzar un límite |
|
|
77
|
+
| `degradation` | `{}` | Id de modelo → id de modelo más barato del mismo proveedor |
|
|
78
|
+
| `webhookUrl` | *(ninguna)* | URL opcional de webhook para alertas de umbral (POST JSON) |
|
|
79
|
+
| `webhookTimeoutMs` | `5000` | Tiempo de espera de la solicitud webhook |
|
|
80
|
+
| `alertsEnabled` | `true` | Interruptor maestro de alertas de umbral |
|
|
81
|
+
| `alertCooldownMs` | `3600000` | Mínimo ms entre dos alertas del mismo ámbito |
|
|
82
|
+
| `desktopNotifications` | `false` | Notificaciones de escritorio del navegador con la pestaña abierta |
|
|
83
|
+
| `refreshIntervalMs` | `5000` | Intervalo de sondeo de la pestaña |
|
|
84
|
+
| `carbon.enabled` / `region` / `pue` / `energyKwhPerToken` | `true` / `global` / `1.58` / `0.000007` | Puente de carbono (regiones: global, us, eu, china, india, uk, france, iceland) |
|
|
85
|
+
| `latency.enabled` / `windowSize` | `true` / `200` | Percentiles de latencia por modelo y su ventana |
|
|
86
|
+
| `currency` | `{code: USD, rate: 1.0, decimals: 2}` | Moneda de visualización (los costos se calculan en USD) |
|
|
87
|
+
| `outputLanguage` | `en` | Idioma de salida de `/budget`: `en` / `zh` |
|
|
88
|
+
| `historyDays` | `30` | Días de historial de uso diario en la instantánea |
|
|
89
|
+
| `persistence.enabled` / `intervalMs` | `true` / `10000` | Persistencia duradera diaria/mensual entre reinicios (dominio de almacenamiento); degrada a en-memoria si falta el dominio |
|
|
90
|
+
|
|
91
|
+
## Herramientas y superficies
|
|
92
|
+
|
|
93
|
+
| Superficie | Tipo | Notas |
|
|
94
|
+
|---|---|---|
|
|
95
|
+
| `/budget` | Comando | Resumen por ámbito (uso, ratio, carbono, estado bloqueado) |
|
|
96
|
+
| `/budget models` | Comando | Desglose por modelo con percentiles de latencia |
|
|
97
|
+
| `/budget unblock <scope>` | Comando | Levantar un ámbito bloqueado (`session` / `daily` / `monthly`) |
|
|
98
|
+
| Settings → Plugins → Budget | Pestaña de Settings | Barras de uso, curva de uso por día, desglose, alertas, editores de límites, desbloqueo |
|
|
99
|
+
| `budget/status`, `budget/setSettings`, `budget/unblock` | Typert Remote | Canal del cliente (consumido por la pestaña) |
|
|
100
|
+
|
|
101
|
+
## Permisos y datos
|
|
102
|
+
|
|
103
|
+
- **Permisos**: `network:outbound` (solo el webhook de alerta opcional), `session:append` (eventos de auditoría), `native-code:none`.
|
|
104
|
+
- **Datos**: todo lo mostrado proviene del flujo de eventos de sesión; la única llamada de red es el webhook configurado, validado al cargar y sin credenciales en los registros. Ningún prompt o payload sale del host.
|
|
105
|
+
- **Registro de sesión**: `budget/alert` y `budget/block` son eventos de auditoría solo-registro con nombres de ámbito e importes USD (diferidos por microtarea ante el guard de reentrada de append). En harness `0.1.2-alpha.1` y posteriores no se escriben — el vocabulario de eventos fail-closed rechaza logs con tipos de evento no registrados y no ofrece superficie de registro externa — así que el rastro de auditoría se degrada al logger de presupuesto y al webhook únicamente.
|
|
106
|
+
|
|
107
|
+
## Límites de seguridad
|
|
108
|
+
|
|
109
|
+
- **Sin fabricación**: un bloqueo de presupuesto produce un final de error correctivo en el waterfall `llm/stream` — el plugin nunca inventa salida de modelo.
|
|
110
|
+
- **Sin reescritura de solicitudes**: las solicitudes del loop están congeladas; `degrade` nombra el modelo objetivo en el mensaje correctivo en lugar de reemplazar la solicitud.
|
|
111
|
+
- **Fallo ruidoso**: precios, URLs, ratios, regiones o límites inválidos fallan el montaje.
|
|
112
|
+
- **Alcance honesto**: las ediciones en tiempo de ejecución del panel son por sesión; una recarga restaura los valores de cordis.yml.
|
|
113
|
+
|
|
114
|
+
## Limitaciones conocidas
|
|
115
|
+
|
|
116
|
+
- La agregación es local al proceso: el uso se reinicia al reiniciar el harness (los cubos diarios/mensuales se reconstruyen desde la vista actual del registro).
|
|
117
|
+
- `block`/`degrade` dependen del waterfall `llm/stream`; los builds sin ese seam no pueden bloquear solicitudes (las alertas siguen funcionando).
|
|
118
|
+
- Los precios integrados se desactualizan; sobrescríbelos con `config.prices`.
|
|
119
|
+
|
|
120
|
+
## Desarrollo
|
|
121
|
+
|
|
122
|
+
```sh
|
|
123
|
+
pnpm install # node ^22.19 || >=24
|
|
124
|
+
pnpm run typecheck # tsc: src + tests contra el checkout local del harness
|
|
125
|
+
pnpm run typecheck:ci # tsc contra los tipos publicados 0.1.1-rc.2 (sin paths)
|
|
126
|
+
pnpm test # vitest
|
|
127
|
+
pnpm run build # declaraciones tsc + bundles tsdown (lib/)
|
|
128
|
+
pnpm run verify:self-contained # las especificaciones de dependencias resuelven desde el registry
|
|
129
|
+
pnpm run verify:artifacts # cara ESM + manifiesto typert + bundle de cliente
|
|
130
|
+
pnpm pack # el tarball publicado
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Topics
|
|
134
|
+
|
|
135
|
+
`dsh`, `dsh-plugin`, `deepseek-harness`, `deepseek`, `cordis`, `budget`, `cost-tracking`, `carbon-footprint`, `latency-benchmark`, `token-usage`
|
|
136
|
+
|
|
137
|
+
## Contributors
|
|
138
|
+
|
|
139
|
+
- [@PerryLink](https://github.com/PerryLink) — creador y mantenedor: agregación, gobernanza de presupuesto, portes de carbono y latencia, la pestaña de Settings y la documentación en cinco idiomas.
|
|
140
|
+
|
|
139
141
|
## PerryLink DSH Plugin Family
|
|
140
142
|
|
|
141
|
-
Este proyecto es uno de los [
|
|
143
|
+
Este proyecto es uno de los [33 complementos de DeepSeek Harness](https://github.com/PerryLink) mantenidos por [PerryLink](https://github.com/PerryLink). Si este te ayuda, probablemente los demás también:
|
|
142
144
|
|
|
143
145
|
| Plugin | One-liner |
|
|
144
146
|
|---|---|
|
|
145
|
-
| [dsh-auto-review](https://github.com/PerryLink/dsh-auto-review) | Auto-revisión
|
|
146
|
-
| [dsh-background-agents](https://github.com/PerryLink/dsh-background-agents) | Agentes
|
|
147
|
-
| **[dsh-
|
|
148
|
-
| [dsh-
|
|
149
|
-
| [dsh-
|
|
150
|
-
| [dsh-
|
|
151
|
-
| [dsh-
|
|
152
|
-
| [dsh-defend](https://github.com/PerryLink/dsh-defend) | Defensa contra inyección de prompts, jailbreak y fuga de secretos para DeepSeek Harness. |
|
|
153
|
-
| [dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck) |
|
|
154
|
-
| [dsh-draw](https://github.com/PerryLink/dsh-draw) | Enrutamiento unificado de generación de imágenes estáticas para DeepSeek Harness. |
|
|
155
|
-
| [dsh-fast](https://github.com/PerryLink/dsh-fast) | Diagnóstico de rendimiento de solo lectura para DeepSeek Harness. |
|
|
156
|
-
| [dsh-
|
|
157
|
-
| [dsh-
|
|
158
|
-
| [dsh-
|
|
159
|
-
| [dsh-
|
|
160
|
-
| [dsh-
|
|
161
|
-
| [dsh-
|
|
162
|
-
| [dsh-
|
|
163
|
-
| [dsh-
|
|
164
|
-
| [dsh-
|
|
165
|
-
| [dsh-
|
|
166
|
-
| [dsh-
|
|
167
|
-
| [dsh-
|
|
168
|
-
| [dsh-
|
|
169
|
-
| [dsh-
|
|
170
|
-
| [dsh-
|
|
171
|
-
| [dsh-
|
|
172
|
-
| [dsh-
|
|
173
|
-
| [dsh-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
147
|
+
| **[dsh-dsh-auto-review](https://github.com/PerryLink/dsh-dsh-auto-review)** | Auto-revisión de segundo modelo en la cadena de aprobación, con cierre en fallo por defecto | |
|
|
148
|
+
| **[dsh-dsh-background-agents](https://github.com/PerryLink/dsh-dsh-background-agents)** | Agentes hijos en segundo plano durables con barra lateral de UI web, mensajería e interrupción | |
|
|
149
|
+
| **[dsh-dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-dsh-checkpoint-rewind)** | Equivalente a /rewind de Claude Code: instantáneas, bifurcaciones de sesión, restauración de un solo uso | |
|
|
150
|
+
| **[dsh-dsh-claude-move](https://github.com/PerryLink/dsh-dsh-claude-move)** | Migra sesiones, memoria, habilidades y CLAUDE.md de Claude Code a DSH | |
|
|
151
|
+
| **[dsh-dsh-click](https://github.com/PerryLink/dsh-dsh-click)** | Control de escritorio nativo multiplataforma para DeepSeek Harness — Windows primero. | |
|
|
152
|
+
| **[dsh-dsh-composer-history](https://github.com/PerryLink/dsh-dsh-composer-history)** | Historial de entrada estilo terminal para el compositor web: flechas, búsqueda Ctrl+R | |
|
|
153
|
+
| **[dsh-dsh-data-quality](https://github.com/PerryLink/dsh-dsh-data-quality)** | Comprobaciones de calidad de datasets y verificación de citas (el puente numérico opcional consumido aquí) | |
|
|
154
|
+
| **[dsh-dsh-defend](https://github.com/PerryLink/dsh-dsh-defend)** | Defensa contra inyección de prompts, jailbreak y fuga de secretos para DeepSeek Harness. | |
|
|
155
|
+
| **[dsh-dsh-doublecheck](https://github.com/PerryLink/dsh-dsh-doublecheck)** | Guardián de disciplina de ingeniería: interrogatorio de requisitos, puertas de pruebas, revisión adversaria | |
|
|
156
|
+
| **[dsh-dsh-draw](https://github.com/PerryLink/dsh-dsh-draw)** | Enrutamiento unificado de generación de imágenes estáticas para DeepSeek Harness. | |
|
|
157
|
+
| **[dsh-dsh-fast](https://github.com/PerryLink/dsh-dsh-fast)** | Diagnóstico de rendimiento de solo lectura para DeepSeek Harness. | |
|
|
158
|
+
| **[dsh-dsh-fund-research](https://github.com/PerryLink/dsh-dsh-fund-research)** | Informes de investigación deterministas para fondos mutuos públicos chinos | |
|
|
159
|
+
| **[dsh-dsh-github](https://github.com/PerryLink/dsh-dsh-github)** | Integración de PR/issues de GitHub para DSH, cada escritura controlada por aprobación | |
|
|
160
|
+
| **[dsh-dsh-industry-research](https://github.com/PerryLink/dsh-dsh-industry-research)** | Orquestación de investigación sectorial que sella sus entregables mediante el `ctx.researchReport.assemble` de este plugin | |
|
|
161
|
+
| **[dsh-dsh-library](https://github.com/PerryLink/dsh-dsh-library)** | Base de conocimiento documental local para DeepSeek Harness. | |
|
|
162
|
+
| **[dsh-dsh-local-ai](https://github.com/PerryLink/dsh-dsh-local-ai)** | Integración de modelos locales (Ollama) para DeepSeek Harness. | |
|
|
163
|
+
| **[dsh-dsh-lsp-actions](https://github.com/PerryLink/dsh-dsh-lsp-actions)** | Diagnósticos, formato, autocompletado, acciones de código y renombrado LSP sobre servidores de lenguaje | |
|
|
164
|
+
| **[dsh-dsh-mask](https://github.com/PerryLink/dsh-dsh-mask)** | Middleware de enmascaramiento de PII: anonimiza en el límite del modelo, restaura en la capa de visualización | |
|
|
165
|
+
| **[dsh-dsh-mcp-panel](https://github.com/PerryLink/dsh-dsh-mcp-panel)** | Panel de tiempo de ejecución MCP de solo lectura: comando /mcp + pestaña Settings con estado, herramientas y errores | |
|
|
166
|
+
| **[dsh-dsh-memento](https://github.com/PerryLink/dsh-dsh-memento)** | Memoria entre sesiones controlada por aprobación: costura ctx.memory + SQLite + herramienta de memoria | |
|
|
167
|
+
| **[dsh-dsh-observe](https://github.com/PerryLink/dsh-dsh-observe)** | Exportador de observabilidad OpenTelemetry y Langfuse para DeepSeek Harness. | |
|
|
168
|
+
| **[dsh-dsh-output-styles](https://github.com/PerryLink/dsh-dsh-output-styles)** | Cambio de estilo en tiempo de ejecución equivalente a outputStyles de Claude Code | |
|
|
169
|
+
| **[dsh-dsh-permission-rules](https://github.com/PerryLink/dsh-dsh-permission-rules)** | Reglas de permisos declarativas allow/deny/ask estilo Claude Code con auditoría | |
|
|
170
|
+
| **[dsh-dsh-plugin-guide](https://github.com/PerryLink/dsh-dsh-plugin-guide)** | Base de conocimiento de desarrollo de plugins como habilidad de agente bajo demanda | |
|
|
171
|
+
| **[dsh-dsh-research-report](https://github.com/PerryLink/dsh-dsh-research-report)** | Motor de informes de investigación verificables con evidencia direccionada por contenido | |
|
|
172
|
+
| **[dsh-dsh-score](https://github.com/PerryLink/dsh-dsh-score)** | Puntuación de calidad multidimensional para plugins de DeepSeek Harness. | |
|
|
173
|
+
| **[dsh-dsh-session-pin](https://github.com/PerryLink/dsh-dsh-session-pin)** | Fija sesiones en la barra lateral web con orden durable | |
|
|
174
|
+
| **[dsh-dsh-session-sync](https://github.com/PerryLink/dsh-dsh-session-sync)** | Sincronización de sesiones entre dispositivos para DeepSeek Harness — un espejo git dedicado de tu almacén de sesiones. | |
|
|
175
|
+
| **[dsh-dsh-skill-pack-security](https://github.com/PerryLink/dsh-dsh-skill-pack-security)** | Paquete de habilidades de auditoría de seguridad: escaneo de secretos, revisión de dependencias y cadena de suministro | |
|
|
176
|
+
| **[dsh-dsh-talk](https://github.com/PerryLink/dsh-dsh-talk)** | Bucle de sesión con voz para DeepSeek Harness: háblale y escucha su respuesta. | |
|
|
177
|
+
| **[dsh-dsh-test-drive](https://github.com/PerryLink/dsh-dsh-test-drive)** | Pruebas de instalación y humo aisladas para plugins de DeepSeek Harness. | |
|
|
178
|
+
| **[dsh-dsh-translate](https://github.com/PerryLink/dsh-dsh-translate)** | Traducción de parámetros entre proveedores y reparación determinista de JSON para DeepSeek Harness. | |
|
|
179
|
+
|
|
180
|
+
## License
|
|
181
|
+
|
|
182
|
+
[Apache License 2.0](LICENSE) © 2026 dsh-budget contributors
|