dsh-click 0.1.1 → 0.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/CHANGELOG.md +10 -0
- package/README.es.md +40 -3
- package/README.hi.md +40 -3
- package/README.md +40 -3
- package/README.pt.md +40 -3
- package/README.zh.md +40 -3
- package/THIRD_PARTY_NOTICES.md +1 -1
- package/lib/index.js +10 -4
- package/lib/types/actions.d.ts +3 -3
- package/lib/types/actions.d.ts.map +1 -1
- package/lib/types/config.d.ts +11 -0
- package/lib/types/config.d.ts.map +1 -1
- package/lib/types/index.d.ts +11 -11
- package/lib/types/observe.d.ts +2 -2
- package/lib/types/platform/runner.d.ts +2 -2
- package/lib/types/platform/selection.d.ts +2 -2
- package/lib/types/platform/types.d.ts +1 -1
- package/lib/types/tools.d.ts +4 -4
- package/lib/types/tools.d.ts.map +1 -1
- package/lib/types/version.d.ts +1 -1
- package/package.json +26 -19
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,16 @@ 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.1.2] - 2026-08-21
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- `auditSessionEvents` config option (default `true`): set `false` to stop appending `dsh-click/observed` / `dsh-click/action` session audit events. The `0.1.0-rc.6`–`0.1.0-rc.8` harness peers expose no append-envelope (`ignorable`) option for plugin events, so the two-argument audit appends land as required-on-read events; harnesses whose session reader uses a static event whitelist (DeepSeek Harness rc.6–rc.8 `KNOWN_SESSION_EVENT_TYPES`) refuse to resume such sessions with "event type ... unknown to this harness and not marked ignorable". Disabling the audit append is the workaround until the harness gains a plugin-event registration surface.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- Harness peers upgraded from `0.1.0-rc.6` to `0.1.0-rc.8`: all `@deepseek-ai/dsh-*` devDependencies pinned to `0.1.0-rc.8`, peerDependencies widened to `>=0.1.0-rc.8 <0.2.0`, and the declared compatibility now targets `0.1.0-rc.8`.
|
|
17
|
+
|
|
8
18
|
## [0.1.1] - 2026-08-16
|
|
9
19
|
|
|
10
20
|
### Fixed
|
package/README.es.md
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
| Superficie | Estado |
|
|
26
26
|
|---|---|
|
|
27
|
-
| Harness | DeepSeek Harness `0.1.0-rc.
|
|
27
|
+
| Harness | DeepSeek Harness `0.1.0-rc.8` |
|
|
28
28
|
| Node | `^22.19.0 \|\| >=24.0.0` |
|
|
29
29
|
| Plataformas | **Windows primero** (UIAutomation + entrada Win32, mediante un helper de PowerShell incluido); los backends de macOS/Linux están reservados y fallan cerrado con un motivo claro |
|
|
30
30
|
| Modelo | Modelos solo-texto totalmente compatibles (`screen_read` devuelve texto estructurado); los modelos con visión reciben además las imágenes de `screen_shot` |
|
|
@@ -90,6 +90,7 @@ Todos los ajustes son campos `Config` de Schemastery (modificables desde cordis.
|
|
|
90
90
|
|---|---|---|
|
|
91
91
|
| `requireApproval` | `true` | Proteger cada acción que muta tras la aprobación; los observadores nunca preguntan |
|
|
92
92
|
| `autoApproveWindows` | `[]` | Regex de título de ventana/ruta de ejecutable que saltan la pregunta de aprobación (siguen con verificación de frescura y auditoría) |
|
|
93
|
+
| `auditSessionEvents` | `true` | Añade eventos de auditoría `dsh-click/observed`/`dsh-click/action` a la sesión; ponlo en `false` cuando el lector de sesiones del harness no reconozca estos tipos (lista blanca estática de DeepSeek Harness rc.6–rc.8) — un log con ellos rechaza la reanudación |
|
|
93
94
|
| `focusFallback` | `never` | Si una acción puede traer la ventana objetivo al primer plano como último recurso (`never` / `allow`) |
|
|
94
95
|
| `imageMode` | `auto` | Renderizado de `screen_shot`: `auto` (imagen si el modelo acepta imágenes, texto en caso contrario) o `text` |
|
|
95
96
|
| `helperTimeoutMs` | `30000` | Tiempo de espera por llamada al helper en ms (1..300000) |
|
|
@@ -148,14 +149,14 @@ Ejemplo de sobrescritura en el parche de tu perfil:
|
|
|
148
149
|
- **Windows primero.** Los backends de macOS y Linux están reservados; en esas plataformas cada llamada falla cerrado con un motivo claro.
|
|
149
150
|
- **Fidelidad solo-texto.** `screen_read` depende de que la aplicación exponga UIAutomation; las apps sin árbol accesible solo ofrecen pistas de píxeles. Los clics por coordenadas siguen disponibles.
|
|
150
151
|
- **Apps de entrada enviada.** Algunas aplicaciones ignoran los mensajes de ventana enviados (juegos, algunas superficies Electron); `key` lo informa con honestidad en lugar de fingir éxito.
|
|
151
|
-
- **Auditoría de sesión en builds
|
|
152
|
+
- **Auditoría de sesión en builds del harness hasta rc.8.** Los eventos de auditoría usan la forma de dos argumentos de `Session.append` (los peers `0.1.0-rc.6`–`0.1.0-rc.8` no exponen opción de envoltura de append para eventos de plugin); en esos builds los eventos son required-on-read, y un lector de sesiones de lista blanca estática (rc.6–rc.8 `KNOWN_SESSION_EVENT_TYPES`) rechaza reanudar un log que los contenga salvo que `auditSessionEvents` sea `false`.
|
|
152
153
|
|
|
153
154
|
## Desarrollo
|
|
154
155
|
|
|
155
156
|
```sh
|
|
156
157
|
pnpm install # node ^22.19 || >=24
|
|
157
158
|
pnpm run typecheck # tsc: src + tests contra el checkout local del harness
|
|
158
|
-
pnpm run typecheck:ci # tsc contra los tipos publicados 0.1.0-rc.
|
|
159
|
+
pnpm run typecheck:ci # tsc contra los tipos publicados 0.1.0-rc.8 (sin paths)
|
|
159
160
|
pnpm test # vitest: 56 tests, 8 suites (el smoke del helper corre en Windows)
|
|
160
161
|
pnpm run build # bundle tsdown + declaraciones tsc (lib/)
|
|
161
162
|
pnpm run verify:self-contained # las especificaciones de dependencias resuelven desde el registry
|
|
@@ -171,6 +172,42 @@ pnpm pack # el tarball publicado
|
|
|
171
172
|
|
|
172
173
|
- [@PerryLink](https://github.com/PerryLink) — creador y mantenedor: superficie de herramientas, frontera de seguridad de acciones, helper nativo de Windows, sanitizadores y la documentación en cinco idiomas.
|
|
173
174
|
|
|
175
|
+
## PerryLink DSH Plugin Family
|
|
176
|
+
|
|
177
|
+
Este proyecto es uno de los [29 complementos de DeepSeek Harness](https://github.com/PerryLink) mantenidos por [PerryLink](https://github.com/PerryLink). Si este te ayuda, los demás probablemente también:
|
|
178
|
+
|
|
179
|
+
| Plugin | One-liner |
|
|
180
|
+
|---|---|
|
|
181
|
+
| [dsh-auto-review](https://github.com/PerryLink/dsh-auto-review) | Auto-revisión con segundo modelo en la cadena de aprobación, cerrado ante fallo por defecto |
|
|
182
|
+
| [dsh-background-agents](https://github.com/PerryLink/dsh-background-agents) | Agentes secundarios en segundo plano y duraderos con barra lateral Web, mensajería e interrupción |
|
|
183
|
+
| [dsh-budget](https://github.com/PerryLink/dsh-budget) | Gobernanza de costes para DeepSeek Harness: presupuestos, carbono y latencia en un panel. |
|
|
184
|
+
| [dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind) | Equivalente a /rewind de Claude Code: instantáneas, bifurcaciones y restauración de una vez |
|
|
185
|
+
| [dsh-claude-move](https://github.com/PerryLink/dsh-claude-move) | Migra sesiones, memoria, skills y CLAUDE.md de Claude Code a DSH |
|
|
186
|
+
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | Control de escritorio nativo multiplataforma para DeepSeek Harness — Windows primero. |
|
|
187
|
+
| [dsh-composer-history](https://github.com/PerryLink/dsh-composer-history) | Historial de entrada estilo terminal para el compositor web: flechas, búsqueda Ctrl+R |
|
|
188
|
+
| [dsh-defend](https://github.com/PerryLink/dsh-defend) | Defensa contra inyección de prompts, jailbreak y fuga de secretos para DeepSeek Harness. |
|
|
189
|
+
| [dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck) | Guardia de disciplina de ingeniería: interrogatorio de requisitos, puertas de test, revisión adversaria |
|
|
190
|
+
| [dsh-draw](https://github.com/PerryLink/dsh-draw) | Enrutamiento unificado de generación de imágenes estáticas para DeepSeek Harness. |
|
|
191
|
+
| [dsh-fast](https://github.com/PerryLink/dsh-fast) | Diagnóstico de rendimiento de solo lectura para DeepSeek Harness. |
|
|
192
|
+
| [dsh-github](https://github.com/PerryLink/dsh-github) | Integración de PR/issues de GitHub para DSH, cada escritura con aprobación |
|
|
193
|
+
| [dsh-library](https://github.com/PerryLink/dsh-library) | Base de conocimiento documental local para DeepSeek Harness. |
|
|
194
|
+
| [dsh-local-ai](https://github.com/PerryLink/dsh-local-ai) | Integración de modelos locales (Ollama) para DeepSeek Harness. |
|
|
195
|
+
| [dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions) | Diagnóstico, formato, completado, acciones y renombrado LSP vía servidores de lenguaje |
|
|
196
|
+
| [dsh-mask](https://github.com/PerryLink/dsh-mask) | Middleware de enmascarado PII para DeepSeek Harness — anonimiza antes del modelo y restaura en la capa de visualización. |
|
|
197
|
+
| [dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel) | Panel MCP de solo lectura: comando /mcp + pestaña de ajustes con estado, herramientas y errores |
|
|
198
|
+
| [dsh-memento](https://github.com/PerryLink/dsh-memento) | Memoria entre sesiones con puerta de aprobación: seam ctx.memory + SQLite + herramienta memory |
|
|
199
|
+
| [dsh-observe](https://github.com/PerryLink/dsh-observe) | Exportador de observabilidad OpenTelemetry y Langfuse para DeepSeek Harness. |
|
|
200
|
+
| [dsh-output-styles](https://github.com/PerryLink/dsh-output-styles) | Cambio de estilos en tiempo de ejecución equivalente a outputStyles de Claude Code |
|
|
201
|
+
| [dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules) | Reglas declarativas allow/deny/ask estilo Claude Code con auditoría |
|
|
202
|
+
| [dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide) | Base de conocimiento de desarrollo de complementos como skill de agente bajo demanda |
|
|
203
|
+
| [dsh-score](https://github.com/PerryLink/dsh-score) | Puntuación de calidad multidimensional para complementos de DeepSeek Harness. |
|
|
204
|
+
| [dsh-session-pin](https://github.com/PerryLink/dsh-session-pin) | Fija sesiones en la barra lateral Web con orden durable |
|
|
205
|
+
| [dsh-session-sync](https://github.com/PerryLink/dsh-session-sync) | Sincronización de sesiones entre dispositivos para DeepSeek Harness — un espejo git dedicado de tu almacén de sesiones. |
|
|
206
|
+
| [dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security) | Paquete de skills de auditoría de seguridad: escaneo de secretos, revisión de dependencias y cadena de suministro |
|
|
207
|
+
| [dsh-talk](https://github.com/PerryLink/dsh-talk) | Bucle de sesión con voz para DeepSeek Harness: háblale y escucha su respuesta. |
|
|
208
|
+
| [dsh-test-drive](https://github.com/PerryLink/dsh-test-drive) | Pruebas de instalación y arranque aisladas para complementos de DeepSeek Harness. |
|
|
209
|
+
| [dsh-translate](https://github.com/PerryLink/dsh-translate) | Traducción de parámetros entre proveedores y reparación determinista de JSON para DeepSeek Harness. |
|
|
210
|
+
|
|
174
211
|
## License
|
|
175
212
|
|
|
176
213
|
[Apache License 2.0](LICENSE) © 2026 dsh-click contributors
|
package/README.hi.md
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
| सतह | स्थिति |
|
|
26
26
|
|---|---|
|
|
27
|
-
| Harness | DeepSeek Harness `0.1.0-rc.
|
|
27
|
+
| Harness | DeepSeek Harness `0.1.0-rc.8` |
|
|
28
28
|
| Node | `^22.19.0 \|\| >=24.0.0` |
|
|
29
29
|
| प्लेटफ़ॉर्म | **Windows पहले** (UIAutomation + Win32 इनपुट, बंडल किए गए PowerShell हेल्पर के ज़रिए); macOS/Linux बैकएंड आरक्षित हैं और स्पष्ट कारण के साथ fail-closed होते हैं |
|
|
30
30
|
| मॉडल | केवल-टेक्स्ट मॉडल पूरी तरह समर्थित (`screen_read` संरचित टेक्स्ट लौटाता है); विज़न मॉडल को अतिरिक्त रूप से `screen_shot` की छवियाँ मिलती हैं |
|
|
@@ -90,6 +90,7 @@ dsh --profile web --dump-config | grep -A2 'id: dsh-click'
|
|
|
90
90
|
|---|---|---|
|
|
91
91
|
| `requireApproval` | `true` | हर परिवर्तनकारी क्रिया को स्वीकृति के पीछे रखें; ऑब्ज़र्वर कभी नहीं पूछते |
|
|
92
92
|
| `autoApproveWindows` | `[]` | विंडो-शीर्षक/निष्पादन-पथ regex जो स्वीकृति प्रश्न छोड़ देते हैं (फिर भी ताज़गी जाँच और ऑडिट) |
|
|
93
|
+
| `auditSessionEvents` | `true` | सत्र में `dsh-click/observed`/`dsh-click/action` ऑडिट इवेंट जोड़ें; `false` रखें जब हार्नेस सत्र-रीडर इन प्रकारों को न पहचाने (DeepSeek Harness rc.6–rc.8 स्थैतिक श्वेतसूची) — ऐसे लॉग फिर से शुरू होने से इनकार करते हैं |
|
|
93
94
|
| `focusFallback` | `never` | क्या कोई क्रिया अंतिम उपाय के रूप में लक्ष्य विंडो को अग्रभूमि में ला सकती है (`never` / `allow`) |
|
|
94
95
|
| `imageMode` | `auto` | `screen_shot` रेंडरिंग: `auto` (मॉडल छवि स्वीकार करे तो छवि, अन्यथा टेक्स्ट) या `text` |
|
|
95
96
|
| `helperTimeoutMs` | `30000` | प्रति हेल्पर-कॉल टाइमआउट ms में (1..300000) |
|
|
@@ -148,14 +149,14 @@ dsh --profile web --dump-config | grep -A2 'id: dsh-click'
|
|
|
148
149
|
- **Windows पहले।** macOS और Linux बैकएंड आरक्षित हैं; उन प्लेटफ़ॉर्म पर हर कॉल स्पष्ट कारण से fail-closed होती है।
|
|
149
150
|
- **केवल-टेक्स्ट निष्ठा।** `screen_read` इस पर निर्भर करता है कि ऐप UIAutomation उजागर करे; बिना एक्सेसिबल ट्री वाले ऐप्स केवल पिक्सेल संकेत देते हैं। निर्देशांक क्लिक उपलब्ध रहते हैं।
|
|
150
151
|
- **पोस्ट-इनपुट ऐप्स।** कुछ ऐप्स पोस्ट किए विंडो संदेश अनदेखा करते हैं (गेम, कुछ Electron सतहें); `key` सफलता का दिखावा करने के बजाय यह ईमानदारी से बताता है।
|
|
151
|
-
-
|
|
152
|
+
- **rc.8 तक के हार्नेस बिल्ड पर सत्र ऑडिट।** ऑडिट इवेंट दो-तर्क वाले `Session.append` रूप से जुड़ते हैं (`0.1.0-rc.6`–`0.1.0-rc.8` peers प्लगइन इवेंट के लिए append-एनवलप विकल्प नहीं देते); उन बिल्ड पर इवेंट required-on-read होते हैं, और स्थैतिक श्वेतसूची सत्र-रीडर (rc.6–rc.8 `KNOWN_SESSION_EVENT_TYPES`) ऐसा लॉग फिर से शुरू करने से इनकार करता है जब तक `auditSessionEvents` `false` न हो।
|
|
152
153
|
|
|
153
154
|
## विकास
|
|
154
155
|
|
|
155
156
|
```sh
|
|
156
157
|
pnpm install # node ^22.19 || >=24
|
|
157
158
|
pnpm run typecheck # tsc: src + tests स्थानीय हार्नेस चेकआउट के विरुद्ध
|
|
158
|
-
pnpm run typecheck:ci # tsc प्रकाशित 0.1.0-rc.
|
|
159
|
+
pnpm run typecheck:ci # tsc प्रकाशित 0.1.0-rc.8 प्रकारों के विरुद्ध (बिना paths)
|
|
159
160
|
pnpm test # vitest: 56 टेस्ट, 8 सुइट (हेल्पर स्मोक Windows पर चलता है)
|
|
160
161
|
pnpm run build # tsdown बंडल + tsc घोषणाएँ (lib/)
|
|
161
162
|
pnpm run verify:self-contained # निर्भरता स्पेक registry से हल होती हैं
|
|
@@ -171,6 +172,42 @@ pnpm pack # प्रकाशित tarball
|
|
|
171
172
|
|
|
172
173
|
- [@PerryLink](https://github.com/PerryLink) — निर्माता और मेंटेनर: टूल सतह, क्रिया सुरक्षा सीमा, Windows नेटिव हेल्पर, सैनिटाइज़र और पाँच-भाषा दस्तावेज़।
|
|
173
174
|
|
|
175
|
+
## PerryLink DSH Plugin Family
|
|
176
|
+
|
|
177
|
+
यह प्रोजेक्ट [PerryLink](https://github.com/PerryLink) द्वारा अनुरक्षित [29 DeepSeek Harness प्लगइनों](https://github.com/PerryLink) में से एक है। अगर यह आपकी मदद करता है, तो बाकी भी करेंगे:
|
|
178
|
+
|
|
179
|
+
| Plugin | One-liner |
|
|
180
|
+
|---|---|
|
|
181
|
+
| [dsh-auto-review](https://github.com/PerryLink/dsh-auto-review) | अनुमोदन श्रृंखला पर दूसरे मॉडल से स्वतः-समीक्षा, डिफ़ॉल्ट रूप से असफल-बंद |
|
|
182
|
+
| [dsh-background-agents](https://github.com/PerryLink/dsh-background-agents) | Web UI साइडबार, संदेश और रुकावट के साथ स्थायी पृष्ठभूमि चाइल्ड एजेंट |
|
|
183
|
+
| [dsh-budget](https://github.com/PerryLink/dsh-budget) | DeepSeek Harness के लिए लागत प्रशासन: बजट, कार्बन और विलंबता एक पैनल में। |
|
|
184
|
+
| [dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind) | Claude Code /rewind-समतुल्य: स्नैपशॉट, सत्र फोर्क, एक-बार पुनर्स्थापन |
|
|
185
|
+
| [dsh-claude-move](https://github.com/PerryLink/dsh-claude-move) | Claude Code सत्र, स्मृति, skills और CLAUDE.md को DSH में स्थानांतरित करें |
|
|
186
|
+
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | DeepSeek Harness के लिए क्रॉस-प्लेटफ़ॉर्म नेटिव डेस्कटॉप नियंत्रण — Windows पहले। |
|
|
187
|
+
| [dsh-composer-history](https://github.com/PerryLink/dsh-composer-history) | Web कंपोज़र के लिए टर्मिनल-शैली इनपुट इतिहास: तीर, Ctrl+R खोज |
|
|
188
|
+
| [dsh-defend](https://github.com/PerryLink/dsh-defend) | DeepSeek Harness के लिए प्रॉम्प्ट-इंजेक्शन, जेलब्रेक और सीक्रेट-लीक रक्षा। |
|
|
189
|
+
| [dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck) | इंजीनियरिंग-अनुशासन गार्ड: आवश्यकताएँ पूछताछ, परीक्षण द्वार, विरोधी समीक्षा |
|
|
190
|
+
| [dsh-draw](https://github.com/PerryLink/dsh-draw) | DeepSeek Harness के लिए एकीकृत स्थैतिक-छवि निर्माण रूटिंग। |
|
|
191
|
+
| [dsh-fast](https://github.com/PerryLink/dsh-fast) | DeepSeek Harness के लिए केवल-पठन प्रदर्शन निदान। |
|
|
192
|
+
| [dsh-github](https://github.com/PerryLink/dsh-github) | DSH के लिए GitHub PR/issues एकीकरण, हर लेखन अनुमोदन-द्वारित |
|
|
193
|
+
| [dsh-library](https://github.com/PerryLink/dsh-library) | DeepSeek Harness के लिए स्थानीय दस्तावेज़ ज्ञानकोश। |
|
|
194
|
+
| [dsh-local-ai](https://github.com/PerryLink/dsh-local-ai) | DeepSeek Harness के लिए स्थानीय-मॉडल (Ollama) एकीकरण। |
|
|
195
|
+
| [dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions) | भाषा सर्वरों पर LSP निदान, फ़ॉर्मेटिंग, पूर्णता, कोड क्रियाएँ और नाम बदलना |
|
|
196
|
+
| [dsh-mask](https://github.com/PerryLink/dsh-mask) | DeepSeek Harness के लिए PII मास्किंग मिडलवेयर — मॉडल तक पहुँचने से पहले व्यक्तिगत डेटा अनाम करता है, प्रदर्शन परत पर बहाल करता है। |
|
|
197
|
+
| [dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel) | केवल-पठन MCP रनटाइम पैनल: /mcp कमांड + स्थिति, टूल और त्रुटियों वाला सेटिंग टैब |
|
|
198
|
+
| [dsh-memento](https://github.com/PerryLink/dsh-memento) | अनुमोदन-द्वारित क्रॉस-सत्र स्मृति: ctx.memory seam + SQLite + memory टूल |
|
|
199
|
+
| [dsh-observe](https://github.com/PerryLink/dsh-observe) | DeepSeek Harness के लिए OpenTelemetry और Langfuse अवलोकनीयता निर्यातक। |
|
|
200
|
+
| [dsh-output-styles](https://github.com/PerryLink/dsh-output-styles) | Claude Code outputStyles-समतुल्य रनटाइम शैली स्विचिंग |
|
|
201
|
+
| [dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules) | Claude Code-शैली घोषणात्मक allow/deny/ask अनुमति नियम, ऑडिट के साथ |
|
|
202
|
+
| [dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide) | माँग-पर एजेंट स्किल के रूप में प्लगइन-विकास ज्ञानकोश |
|
|
203
|
+
| [dsh-score](https://github.com/PerryLink/dsh-score) | DeepSeek Harness प्लगइनों के लिए बहु-आयामी गुणवत्ता स्कोरिंग। |
|
|
204
|
+
| [dsh-session-pin](https://github.com/PerryLink/dsh-session-pin) | Web साइडबार में सत्र पिन करें, स्थायी क्रम के साथ |
|
|
205
|
+
| [dsh-session-sync](https://github.com/PerryLink/dsh-session-sync) | DeepSeek Harness के लिए क्रॉस-डिवाइस सत्र सिंक — आपके सत्र स्टोर का एक समर्पित git मिरर। |
|
|
206
|
+
| [dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security) | सुरक्षा-ऑडिट स्किल पैक: सीक्रेट स्कैन, निर्भरता और आपूर्ति-श्रृंखला समीक्षा |
|
|
207
|
+
| [dsh-talk](https://github.com/PerryLink/dsh-talk) | DeepSeek Harness के लिए आवाज़-प्रथम सत्र लूप: बोलें और उत्तर सुनें। |
|
|
208
|
+
| [dsh-test-drive](https://github.com/PerryLink/dsh-test-drive) | DeepSeek Harness प्लगइनों के लिए पृथक इंस्टॉल-और-स्मोक परीक्षण। |
|
|
209
|
+
| [dsh-translate](https://github.com/PerryLink/dsh-translate) | DeepSeek Harness के लिए वेंडर पैरामीटर अनुवाद और नियतात्मक JSON मरम्मत। |
|
|
210
|
+
|
|
174
211
|
## License
|
|
175
212
|
|
|
176
213
|
[Apache License 2.0](LICENSE) © 2026 dsh-click contributors
|
package/README.md
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
| Surface | Status |
|
|
26
26
|
|---|---|
|
|
27
|
-
| Harness | DeepSeek Harness `0.1.0-rc.
|
|
27
|
+
| Harness | DeepSeek Harness `0.1.0-rc.8` |
|
|
28
28
|
| Node | `^22.19.0 \|\| >=24.0.0` |
|
|
29
29
|
| Platforms | **Windows first** (UIAutomation + Win32 input, via a bundled PowerShell helper); macOS/Linux backends are reserved and fail closed with a clear reason |
|
|
30
30
|
| Model | Text-only models fully supported (`screen_read` returns structured text); vision models additionally get `screen_shot` images |
|
|
@@ -90,6 +90,7 @@ All tunables are Schemastery `Config` fields (changeable from cordis.yml). An id
|
|
|
90
90
|
|---|---|---|
|
|
91
91
|
| `requireApproval` | `true` | Gate every mutating action behind approval; observers never ask |
|
|
92
92
|
| `autoApproveWindows` | `[]` | Window-title/executable regexes that skip the approval ask (still freshness-checked and audited) |
|
|
93
|
+
| `auditSessionEvents` | `true` | Append `dsh-click/observed` / `dsh-click/action` session audit events; set `false` when the harness session reader does not recognize these event types (DeepSeek Harness rc.6–rc.8 static event whitelist) — a log containing them refuses resume |
|
|
93
94
|
| `focusFallback` | `never` | Whether an action may bring the target window to the foreground as a last resort (`never` / `allow`) |
|
|
94
95
|
| `imageMode` | `auto` | `screen_shot` rendering: `auto` (image when the model accepts images, text otherwise) or `text` |
|
|
95
96
|
| `helperTimeoutMs` | `30000` | Per-helper-call timeout in ms (1..300000) |
|
|
@@ -148,14 +149,14 @@ Example override in your profile patch:
|
|
|
148
149
|
- **Windows first.** macOS and Linux backends are reserved; on those platforms every call fails closed with a clear reason.
|
|
149
150
|
- **Text-only fidelity.** `screen_read` depends on the application exposing UIAutomation; apps without an accessible tree yield pixel hints only. Coordinate clicks remain available.
|
|
150
151
|
- **Posted-input apps.** Some applications ignore posted window messages (games, some Electron surfaces); `key` reports this honestly instead of pretending success.
|
|
151
|
-
- **Session audit on
|
|
152
|
+
- **Session audit on harness builds through rc.8.** The audit events are appended with the two-argument `Session.append` form (the `0.1.0-rc.6`–`0.1.0-rc.8` peers expose no append-envelope option for plugin events); on those builds the events are required-on-read, and a static-whitelist session reader (rc.6–rc.8 `KNOWN_SESSION_EVENT_TYPES`) refuses to resume a log containing them unless `auditSessionEvents` is `false`.
|
|
152
153
|
|
|
153
154
|
## Development
|
|
154
155
|
|
|
155
156
|
```sh
|
|
156
157
|
pnpm install # node ^22.19 || >=24
|
|
157
158
|
pnpm run typecheck # tsc: src + tests against the local harness checkout
|
|
158
|
-
pnpm run typecheck:ci # tsc against the published 0.1.0-rc.
|
|
159
|
+
pnpm run typecheck:ci # tsc against the published 0.1.0-rc.8 types (no paths)
|
|
159
160
|
pnpm test # vitest: 56 tests, 8 suites (helper smoke runs on Windows)
|
|
160
161
|
pnpm run build # tsdown bundle + tsc declarations (lib/)
|
|
161
162
|
pnpm run verify:self-contained # dependency specs resolve from the registry
|
|
@@ -171,6 +172,42 @@ pnpm pack # the published tarball
|
|
|
171
172
|
|
|
172
173
|
- [@PerryLink](https://github.com/PerryLink) — creator and maintainer: tool surface, action safety boundary, Windows native helper, sanitizers, and the five-language docs.
|
|
173
174
|
|
|
175
|
+
## PerryLink DSH Plugin Family
|
|
176
|
+
|
|
177
|
+
This project is one of the [29 DeepSeek Harness plugins](https://github.com/PerryLink) maintained by [PerryLink](https://github.com/PerryLink). If this one helps you, the others likely will too:
|
|
178
|
+
|
|
179
|
+
| Plugin | One-liner |
|
|
180
|
+
|---|---|
|
|
181
|
+
| [dsh-auto-review](https://github.com/PerryLink/dsh-auto-review) | Second-model auto-review on the approval chain, fail-closed by default |
|
|
182
|
+
| [dsh-background-agents](https://github.com/PerryLink/dsh-background-agents) | Durable background child agents with a Web UI sidebar, messaging and interrupt |
|
|
183
|
+
| [dsh-budget](https://github.com/PerryLink/dsh-budget) | Cost governance for DeepSeek Harness: budgets, carbon, and latency in one panel. |
|
|
184
|
+
| [dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind) | Claude Code /rewind-equivalent: snapshots, session forks, one-shot restore |
|
|
185
|
+
| [dsh-claude-move](https://github.com/PerryLink/dsh-claude-move) | Migrate Claude Code sessions, memory, skills and CLAUDE.md into DSH |
|
|
186
|
+
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | Cross-platform native desktop control for DeepSeek Harness — Windows first. |
|
|
187
|
+
| [dsh-composer-history](https://github.com/PerryLink/dsh-composer-history) | Terminal-style input history for the web composer: arrows, Ctrl+R search |
|
|
188
|
+
| [dsh-defend](https://github.com/PerryLink/dsh-defend) | Prompt-injection, jailbreak, and secret-leak defense for DeepSeek Harness. |
|
|
189
|
+
| [dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck) | Engineering-discipline guard: requirements grill, test gates, adversary review |
|
|
190
|
+
| [dsh-draw](https://github.com/PerryLink/dsh-draw) | Unified static-image generation routing for DeepSeek Harness. |
|
|
191
|
+
| [dsh-fast](https://github.com/PerryLink/dsh-fast) | Read-only performance diagnostics for DeepSeek Harness. |
|
|
192
|
+
| [dsh-github](https://github.com/PerryLink/dsh-github) | GitHub PR/issues integration for DSH, every write gated by approval |
|
|
193
|
+
| [dsh-library](https://github.com/PerryLink/dsh-library) | Local document knowledge base for DeepSeek Harness. |
|
|
194
|
+
| [dsh-local-ai](https://github.com/PerryLink/dsh-local-ai) | Local-model (Ollama) integration for DeepSeek Harness. |
|
|
195
|
+
| [dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions) | LSP diagnostics, formatting, completion, code actions and rename over language servers |
|
|
196
|
+
| [dsh-mask](https://github.com/PerryLink/dsh-mask) | PII masking middleware for DeepSeek Harness — anonymize personal data before it reaches the model, restore it at the display layer. |
|
|
197
|
+
| [dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel) | Read-only MCP runtime panel: /mcp command + Settings tab with status, tools and errors |
|
|
198
|
+
| [dsh-memento](https://github.com/PerryLink/dsh-memento) | Approval-gated cross-session memory: ctx.memory seam + SQLite + memory tool |
|
|
199
|
+
| [dsh-observe](https://github.com/PerryLink/dsh-observe) | OpenTelemetry and Langfuse observability exporter for DeepSeek Harness. |
|
|
200
|
+
| [dsh-output-styles](https://github.com/PerryLink/dsh-output-styles) | Claude Code outputStyles-equivalent runtime style switching |
|
|
201
|
+
| [dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules) | Claude Code-style declarative allow/deny/ask permission rules with audit |
|
|
202
|
+
| [dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide) | Plugin-development knowledge base as an on-demand agent skill |
|
|
203
|
+
| [dsh-score](https://github.com/PerryLink/dsh-score) | Multi-dimensional quality scoring for DeepSeek Harness plugins. |
|
|
204
|
+
| [dsh-session-pin](https://github.com/PerryLink/dsh-session-pin) | Pin sessions in the Web sidebar with durable ordering |
|
|
205
|
+
| [dsh-session-sync](https://github.com/PerryLink/dsh-session-sync) | Cross-device session sync for DeepSeek Harness — a dedicated git mirror of your session store. |
|
|
206
|
+
| [dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security) | Security-audit skill pack: secret scan, dependency and supply-chain review |
|
|
207
|
+
| [dsh-talk](https://github.com/PerryLink/dsh-talk) | Voice-first session loop for DeepSeek Harness: talk to it, hear it answer. |
|
|
208
|
+
| [dsh-test-drive](https://github.com/PerryLink/dsh-test-drive) | Isolated install-and-smoke test drives for DeepSeek Harness plugins. |
|
|
209
|
+
| [dsh-translate](https://github.com/PerryLink/dsh-translate) | Vendor parameter translation and deterministic JSON repair for DeepSeek Harness. |
|
|
210
|
+
|
|
174
211
|
## License
|
|
175
212
|
|
|
176
213
|
[Apache License 2.0](LICENSE) © 2026 dsh-click contributors
|
package/README.pt.md
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
| Superfície | Status |
|
|
26
26
|
|---|---|
|
|
27
|
-
| Harness | DeepSeek Harness `0.1.0-rc.
|
|
27
|
+
| Harness | DeepSeek Harness `0.1.0-rc.8` |
|
|
28
28
|
| Node | `^22.19.0 \|\| >=24.0.0` |
|
|
29
29
|
| Plataformas | **Windows primeiro** (UIAutomation + entrada Win32, via um helper PowerShell embutido); os backends macOS/Linux estão reservados e falham fechado com um motivo claro |
|
|
30
30
|
| Modelo | Modelos somente texto totalmente suportados (`screen_read` retorna texto estruturado); modelos com visão recebem também as imagens do `screen_shot` |
|
|
@@ -90,6 +90,7 @@ Todos os ajustes são campos `Config` do Schemastery (alteráveis pelo cordis.ym
|
|
|
90
90
|
|---|---|---|
|
|
91
91
|
| `requireApproval` | `true` | Proteger toda ação mutante atrás da aprovação; observadores nunca perguntam |
|
|
92
92
|
| `autoApproveWindows` | `[]` | Regex de título de janela/caminho de executável que pulam a pergunta de aprovação (ainda passam por atualidade e auditoria) |
|
|
93
|
+
| `auditSessionEvents` | `true` | Acrescenta eventos de auditoria `dsh-click/observed`/`dsh-click/action` à sessão; defina `false` quando o leitor de sessões do harness não reconhecer esses tipos (lista branca estática do DeepSeek Harness rc.6–rc.8) — um log com eles recusa a retomada |
|
|
93
94
|
| `focusFallback` | `never` | Se uma ação pode trazer a janela alvo ao primeiro plano como último recurso (`never` / `allow`) |
|
|
94
95
|
| `imageMode` | `auto` | Renderização do `screen_shot`: `auto` (imagem quando o modelo aceita imagens, texto caso contrário) ou `text` |
|
|
95
96
|
| `helperTimeoutMs` | `30000` | Tempo limite por chamada ao helper em ms (1..300000) |
|
|
@@ -148,14 +149,14 @@ Exemplo de sobrescrita no patch do seu perfil:
|
|
|
148
149
|
- **Windows primeiro.** Os backends macOS e Linux estão reservados; nessas plataformas cada chamada falha fechado com um motivo claro.
|
|
149
150
|
- **Fidelidade somente texto.** O `screen_read` depende de o aplicativo expor UIAutomation; apps sem árvore acessível oferecem apenas dicas de pixels. Cliques por coordenadas continuam disponíveis.
|
|
150
151
|
- **Apps de entrada postada.** Alguns aplicativos ignoram mensagens de janela postadas (jogos, algumas superfícies Electron); o `key` informa isso com honestidade em vez de fingir sucesso.
|
|
151
|
-
- **Auditoria de sessão em builds
|
|
152
|
+
- **Auditoria de sessão em builds do harness até rc.8.** Os eventos de auditoria usam a forma de dois argumentos de `Session.append` (os peers `0.1.0-rc.6`–`0.1.0-rc.8` não expõem opção de envelope de append para eventos de plugin); nesses builds os eventos são required-on-read, e um leitor de sessões de lista branca estática (rc.6–rc.8 `KNOWN_SESSION_EVENT_TYPES`) recusa retomar um log que os contenha salvo se `auditSessionEvents` for `false`.
|
|
152
153
|
|
|
153
154
|
## Desenvolvimento
|
|
154
155
|
|
|
155
156
|
```sh
|
|
156
157
|
pnpm install # node ^22.19 || >=24
|
|
157
158
|
pnpm run typecheck # tsc: src + tests contra o checkout local do harness
|
|
158
|
-
pnpm run typecheck:ci # tsc contra os tipos publicados 0.1.0-rc.
|
|
159
|
+
pnpm run typecheck:ci # tsc contra os tipos publicados 0.1.0-rc.8 (sem paths)
|
|
159
160
|
pnpm test # vitest: 56 testes, 8 suítes (o smoke do helper roda no Windows)
|
|
160
161
|
pnpm run build # bundle tsdown + declarações tsc (lib/)
|
|
161
162
|
pnpm run verify:self-contained # especificações de dependências resolvem pelo registry
|
|
@@ -171,6 +172,42 @@ pnpm pack # o tarball publicado
|
|
|
171
172
|
|
|
172
173
|
- [@PerryLink](https://github.com/PerryLink) — criador e mantenedor: superfície de ferramentas, fronteira de segurança das ações, helper nativo do Windows, sanitizadores e a documentação em cinco idiomas.
|
|
173
174
|
|
|
175
|
+
## PerryLink DSH Plugin Family
|
|
176
|
+
|
|
177
|
+
Este projeto é um dos [29 complementos do DeepSeek Harness](https://github.com/PerryLink) mantidos por [PerryLink](https://github.com/PerryLink). Se este ajuda você, os outros provavelmente também ajudarão:
|
|
178
|
+
|
|
179
|
+
| Plugin | One-liner |
|
|
180
|
+
|---|---|
|
|
181
|
+
| [dsh-auto-review](https://github.com/PerryLink/dsh-auto-review) | Auto-revisão com segundo modelo na cadeia de aprovação, falha fechada por padrão |
|
|
182
|
+
| [dsh-background-agents](https://github.com/PerryLink/dsh-background-agents) | Agentes filhos em segundo plano e duráveis com barra lateral Web, mensagens e interrupção |
|
|
183
|
+
| [dsh-budget](https://github.com/PerryLink/dsh-budget) | Governança de custos para DeepSeek Harness: orçamentos, carbono e latência em um painel. |
|
|
184
|
+
| [dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind) | Equivalente ao /rewind do Claude Code: instantâneos, bifurcações e restauração de uma vez |
|
|
185
|
+
| [dsh-claude-move](https://github.com/PerryLink/dsh-claude-move) | Migra sessões, memória, skills e CLAUDE.md do Claude Code para o DSH |
|
|
186
|
+
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | Controle de desktop nativo multiplataforma para DeepSeek Harness — Windows primeiro. |
|
|
187
|
+
| [dsh-composer-history](https://github.com/PerryLink/dsh-composer-history) | Histórico de entrada estilo terminal para o compositor web: setas, busca Ctrl+R |
|
|
188
|
+
| [dsh-defend](https://github.com/PerryLink/dsh-defend) | Defesa contra injeção de prompt, jailbreak e vazamento de segredos para DeepSeek Harness. |
|
|
189
|
+
| [dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck) | Guarda de disciplina de engenharia: sabatina de requisitos, portões de teste, revisão adversária |
|
|
190
|
+
| [dsh-draw](https://github.com/PerryLink/dsh-draw) | Roteamento unificado de geração de imagens estáticas para DeepSeek Harness. |
|
|
191
|
+
| [dsh-fast](https://github.com/PerryLink/dsh-fast) | Diagnóstico de desempenho somente leitura para DeepSeek Harness. |
|
|
192
|
+
| [dsh-github](https://github.com/PerryLink/dsh-github) | Integração de PR/issues do GitHub para DSH, toda escrita com aprovação |
|
|
193
|
+
| [dsh-library](https://github.com/PerryLink/dsh-library) | Base de conhecimento documental local para DeepSeek Harness. |
|
|
194
|
+
| [dsh-local-ai](https://github.com/PerryLink/dsh-local-ai) | Integração de modelos locais (Ollama) para DeepSeek Harness. |
|
|
195
|
+
| [dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions) | Diagnóstico, formatação, completação, ações e renomeação LSP via servidores de linguagem |
|
|
196
|
+
| [dsh-mask](https://github.com/PerryLink/dsh-mask) | Middleware de mascaramento de PII para DeepSeek Harness — anonimiza antes do modelo e restaura na camada de exibição. |
|
|
197
|
+
| [dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel) | Painel MCP somente leitura: comando /mcp + aba de configurações com status, ferramentas e erros |
|
|
198
|
+
| [dsh-memento](https://github.com/PerryLink/dsh-memento) | Memória entre sessões com porta de aprovação: seam ctx.memory + SQLite + ferramenta memory |
|
|
199
|
+
| [dsh-observe](https://github.com/PerryLink/dsh-observe) | Exportador de observabilidade OpenTelemetry e Langfuse para DeepSeek Harness. |
|
|
200
|
+
| [dsh-output-styles](https://github.com/PerryLink/dsh-output-styles) | Troca de estilos em tempo de execução equivalente ao outputStyles do Claude Code |
|
|
201
|
+
| [dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules) | Regras declarativas allow/deny/ask estilo Claude Code com auditoria |
|
|
202
|
+
| [dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide) | Base de conhecimento de desenvolvimento de plugins como skill de agente sob demanda |
|
|
203
|
+
| [dsh-score](https://github.com/PerryLink/dsh-score) | Pontuação de qualidade multidimensional para plugins do DeepSeek Harness. |
|
|
204
|
+
| [dsh-session-pin](https://github.com/PerryLink/dsh-session-pin) | Fixa sessões na barra lateral Web com ordenação durável |
|
|
205
|
+
| [dsh-session-sync](https://github.com/PerryLink/dsh-session-sync) | Sincronização de sessões entre dispositivos para DeepSeek Harness — um espelho git dedicado do seu armazenamento de sessões. |
|
|
206
|
+
| [dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security) | Pacote de skills de auditoria de segurança: varredura de segredos, revisão de dependências e cadeia de suprimentos |
|
|
207
|
+
| [dsh-talk](https://github.com/PerryLink/dsh-talk) | Loop de sessão com voz para DeepSeek Harness: fale e ouça a resposta. |
|
|
208
|
+
| [dsh-test-drive](https://github.com/PerryLink/dsh-test-drive) | Testes isolados de instalação e inicialização para plugins do DeepSeek Harness. |
|
|
209
|
+
| [dsh-translate](https://github.com/PerryLink/dsh-translate) | Tradução de parâmetros entre fornecedores e reparo determinístico de JSON para DeepSeek Harness. |
|
|
210
|
+
|
|
174
211
|
## License
|
|
175
212
|
|
|
176
213
|
[Apache License 2.0](LICENSE) © 2026 dsh-click contributors
|
package/README.zh.md
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
| 方面 | 状态 |
|
|
26
26
|
|---|---|
|
|
27
|
-
| Harness | DeepSeek Harness `0.1.0-rc.
|
|
27
|
+
| Harness | DeepSeek Harness `0.1.0-rc.8` |
|
|
28
28
|
| Node | `^22.19.0 \|\| >=24.0.0` |
|
|
29
29
|
| 平台 | **Windows 优先**(UIAutomation + Win32 输入,经由内置 PowerShell 辅助进程);macOS/Linux 后端已预留,失败时以明确原因关闭 |
|
|
30
30
|
| 模型 | 纯文本模型完整可用(`screen_read` 输出结构化文本);视觉模型额外获得 `screen_shot` 图像 |
|
|
@@ -90,6 +90,7 @@ dsh --profile web --dump-config | grep -A2 'id: dsh-click'
|
|
|
90
90
|
|---|---|---|
|
|
91
91
|
| `requireApproval` | `true` | 每个变更性操作都过审批;观察类工具从不询问 |
|
|
92
92
|
| `autoApproveWindows` | `[]` | 跳过审批询问的窗口标题/可执行路径正则(仍做新鲜度校验并审计) |
|
|
93
|
+
| `auditSessionEvents` | `true` | 是否向会话追加 `dsh-click/observed`/`dsh-click/action` 审计事件;当 harness 会话读取器不识别这些事件类型时(DeepSeek Harness rc.6–rc.8 静态事件白名单)设为 `false`——含此类事件的日志会拒绝恢复 |
|
|
93
94
|
| `focusFallback` | `never` | 操作是否可在最后手段下把目标窗口带到前台(`never` / `allow`) |
|
|
94
95
|
| `imageMode` | `auto` | `screen_shot` 渲染:`auto`(模型支持图像时附图像,否则文字)或 `text` |
|
|
95
96
|
| `helperTimeoutMs` | `30000` | 每次 helper 调用的超时(毫秒,1..300000) |
|
|
@@ -148,14 +149,14 @@ profile patch 中的覆盖示例:
|
|
|
148
149
|
- **Windows 优先。** macOS 与 Linux 后端已预留;在这些平台上每次调用都以明确原因失败关闭。
|
|
149
150
|
- **纯文本保真度。** `screen_read` 依赖应用暴露 UIAutomation;没有无障碍树的应用只有像素提示。坐标点击仍然可用。
|
|
150
151
|
- **post 输入类应用。** 部分应用忽略 post 窗口消息(游戏、部分 Electron 界面);`key` 会如实报告而非假装成功。
|
|
151
|
-
-
|
|
152
|
+
- **rc.8 及更早 harness 构建上的会话审计。** 审计事件使用两参数 `Session.append` 形式(`0.1.0-rc.6`–`0.1.0-rc.8` peers 未对插件事件开放 append envelope 选项);在这些构建上事件为 required-on-read,静态白名单会话读取器(rc.6–rc.8 `KNOWN_SESSION_EVENT_TYPES`)会拒绝恢复含此类事件的日志,除非 `auditSessionEvents` 设为 `false`。
|
|
152
153
|
|
|
153
154
|
## 开发
|
|
154
155
|
|
|
155
156
|
```sh
|
|
156
157
|
pnpm install # node ^22.19 || >=24
|
|
157
158
|
pnpm run typecheck # tsc:src + tests,对照本地 harness checkout
|
|
158
|
-
pnpm run typecheck:ci # tsc:对照已发布的 0.1.0-rc.
|
|
159
|
+
pnpm run typecheck:ci # tsc:对照已发布的 0.1.0-rc.8 类型(无 paths)
|
|
159
160
|
pnpm test # vitest:56 个测试、8 个套件(helper 冒烟在 Windows 上运行)
|
|
160
161
|
pnpm run build # tsdown bundle + tsc 声明(lib/)
|
|
161
162
|
pnpm run verify:self-contained # 依赖声明全部来自 registry
|
|
@@ -171,6 +172,42 @@ pnpm pack # 发布用 tarball
|
|
|
171
172
|
|
|
172
173
|
- [@PerryLink](https://github.com/PerryLink) —— 创建者与维护者:工具面、操作安全边界、Windows 原生 helper、脱敏层与五语文档。
|
|
173
174
|
|
|
175
|
+
## PerryLink DSH Plugin Family
|
|
176
|
+
|
|
177
|
+
本项目是由 [PerryLink](https://github.com/PerryLink) 维护的 [29 个 DeepSeek Harness 插件](https://github.com/PerryLink)之一。如果这个对你有用,其他插件很可能也会:
|
|
178
|
+
|
|
179
|
+
| Plugin | One-liner |
|
|
180
|
+
|---|---|
|
|
181
|
+
| [dsh-auto-review](https://github.com/PerryLink/dsh-auto-review) | 审批链上的第二模型自动审查,默认失败关闭 |
|
|
182
|
+
| [dsh-background-agents](https://github.com/PerryLink/dsh-background-agents) | 持久化后台子代理,带 Web UI 侧边栏、消息与打断 |
|
|
183
|
+
| [dsh-budget](https://github.com/PerryLink/dsh-budget) | DeepSeek Harness 的成本治理:预算、碳排与延迟一屏呈现。 |
|
|
184
|
+
| [dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind) | Claude Code /rewind 等价物:快照、会话分叉、一次性恢复 |
|
|
185
|
+
| [dsh-claude-move](https://github.com/PerryLink/dsh-claude-move) | 将 Claude Code 会话、记忆、技能与 CLAUDE.md 迁入 DSH |
|
|
186
|
+
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | 跨平台原生桌面控制(DeepSeek Harness),Windows 优先。 |
|
|
187
|
+
| [dsh-composer-history](https://github.com/PerryLink/dsh-composer-history) | Web 输入框的终端式输入历史:方向键、Ctrl+R 搜索 |
|
|
188
|
+
| [dsh-defend](https://github.com/PerryLink/dsh-defend) | DeepSeek Harness 的提示注入、越狱与密钥泄露防护。 |
|
|
189
|
+
| [dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck) | 工程纪律门禁:需求质询、测试门禁、对抗式审查 |
|
|
190
|
+
| [dsh-draw](https://github.com/PerryLink/dsh-draw) | DeepSeek Harness 的统一静态图像生成路由。 |
|
|
191
|
+
| [dsh-fast](https://github.com/PerryLink/dsh-fast) | DeepSeek Harness 的只读性能诊断。 |
|
|
192
|
+
| [dsh-github](https://github.com/PerryLink/dsh-github) | DSH 的 GitHub PR/issue 集成,每次写入都经审批门 |
|
|
193
|
+
| [dsh-library](https://github.com/PerryLink/dsh-library) | DeepSeek Harness 的本地文档知识库。 |
|
|
194
|
+
| [dsh-local-ai](https://github.com/PerryLink/dsh-local-ai) | DeepSeek Harness 的本地模型(Ollama)接入。 |
|
|
195
|
+
| [dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions) | 经语言服务器的 LSP 诊断、格式化、补全、代码操作与重命名 |
|
|
196
|
+
| [dsh-mask](https://github.com/PerryLink/dsh-mask) | DeepSeek Harness 的 PII 脱敏中间件——数据到模型前匿名化,展示层还原。 |
|
|
197
|
+
| [dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel) | 只读 MCP 运行时面板:/mcp 命令 + 带状态、工具与错误的设置页 |
|
|
198
|
+
| [dsh-memento](https://github.com/PerryLink/dsh-memento) | 带审批门的跨会话记忆:ctx.memory 接缝 + SQLite + memory 工具 |
|
|
199
|
+
| [dsh-observe](https://github.com/PerryLink/dsh-observe) | DeepSeek Harness 的 OpenTelemetry 与 Langfuse 可观测导出器。 |
|
|
200
|
+
| [dsh-output-styles](https://github.com/PerryLink/dsh-output-styles) | Claude Code outputStyles 等价的运行时样式切换 |
|
|
201
|
+
| [dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules) | Claude Code 风格声明式 allow/deny/ask 权限规则,带审计 |
|
|
202
|
+
| [dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide) | 按需 agent 技能形式的插件开发知识库 |
|
|
203
|
+
| [dsh-score](https://github.com/PerryLink/dsh-score) | DeepSeek Harness 插件的多指标质量评分。 |
|
|
204
|
+
| [dsh-session-pin](https://github.com/PerryLink/dsh-session-pin) | 在 Web 侧边栏置顶会话,顺序持久化 |
|
|
205
|
+
| [dsh-session-sync](https://github.com/PerryLink/dsh-session-sync) | DeepSeek Harness 的跨设备会话同步——会话存储的专用 git 镜像。 |
|
|
206
|
+
| [dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security) | 安全审计技能包:密钥扫描、依赖与供应链审查 |
|
|
207
|
+
| [dsh-talk](https://github.com/PerryLink/dsh-talk) | DeepSeek Harness 的语音优先会话闭环:对它说,听它答。 |
|
|
208
|
+
| [dsh-test-drive](https://github.com/PerryLink/dsh-test-drive) | DeepSeek Harness 插件的隔离式安装冒烟实测。 |
|
|
209
|
+
| [dsh-translate](https://github.com/PerryLink/dsh-translate) | DeepSeek Harness 的厂商参数翻译与确定性 JSON 修复。 |
|
|
210
|
+
|
|
174
211
|
## License
|
|
175
212
|
|
|
176
213
|
[Apache License 2.0](LICENSE) © 2026 dsh-click contributors
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -14,7 +14,7 @@ published tarball; these are install-time dependencies:
|
|
|
14
14
|
| [typescript](https://github.com/microsoft/TypeScript) | `^5.9.0` | Apache-2.0 | Build-time declaration emission (`lib/types/`) |
|
|
15
15
|
| [@deepseek-ai/cordis](https://www.npmjs.com/package/@deepseek-ai/cordis) | `^4.0.1` (peer) | See package | The plugin runtime |
|
|
16
16
|
| [@deepseek-ai/schemastery](https://www.npmjs.com/package/@deepseek-ai/schemastery) | `^3.18.0` (peer) | See package | Configuration schema |
|
|
17
|
-
| `@deepseek-ai/dsh-*` peers | `0.1.0-rc.
|
|
17
|
+
| `@deepseek-ai/dsh-*` peers | `0.1.0-rc.8` (peer) | See packages | Official harness seams (`dsh-tools`, `dsh-session`, `dsh-subprocess`, `dsh-llm`, `dsh-attachment`, `dsh-agent`, `dsh-user-approval`) |
|
|
18
18
|
|
|
19
19
|
At runtime the plugin only talks to the harness services listed as
|
|
20
20
|
peerDependencies; it performs no network requests of its own.
|
package/lib/index.js
CHANGED
|
@@ -144,6 +144,7 @@ var ActionExecutor = class {
|
|
|
144
144
|
}
|
|
145
145
|
/** Append one action audit event; a failed append never changes the outcome. */
|
|
146
146
|
audit(exec, event) {
|
|
147
|
+
if (!this.config.auditSessionEvents) return;
|
|
147
148
|
const session = exec.agent?.session;
|
|
148
149
|
if (session === void 0) return;
|
|
149
150
|
try {
|
|
@@ -335,6 +336,7 @@ const MAX_TEXT_LENGTH = 1e4;
|
|
|
335
336
|
const Config = z.object({
|
|
336
337
|
requireApproval: z.boolean().default(true),
|
|
337
338
|
autoApproveWindows: z.array(z.string()).default([]),
|
|
339
|
+
auditSessionEvents: z.boolean().default(true),
|
|
338
340
|
focusFallback: z.union(["never", "allow"]).default("never"),
|
|
339
341
|
imageMode: z.union(["auto", "text"]).default("auto"),
|
|
340
342
|
helperTimeoutMs: z.number().min(1).max(MAX_HELPER_TIMEOUT_MS).default(DEFAULT_HELPER_TIMEOUT_MS),
|
|
@@ -370,6 +372,8 @@ function resolveConfig(config) {
|
|
|
370
372
|
const requireApproval = config?.requireApproval ?? true;
|
|
371
373
|
if (typeof requireApproval !== "boolean") invalid("requireApproval", "must be a boolean");
|
|
372
374
|
const autoApproveMatchers = (config?.autoApproveWindows ?? []).map(compileMatcher);
|
|
375
|
+
const auditSessionEvents = config?.auditSessionEvents ?? true;
|
|
376
|
+
if (typeof auditSessionEvents !== "boolean") invalid("auditSessionEvents", "must be a boolean");
|
|
373
377
|
const focusFallback = config?.focusFallback ?? "never";
|
|
374
378
|
if (focusFallback !== "never" && focusFallback !== "allow") invalid("focusFallback", "must be \"never\" or \"allow\"");
|
|
375
379
|
const imageMode = config?.imageMode ?? "auto";
|
|
@@ -397,6 +401,7 @@ function resolveConfig(config) {
|
|
|
397
401
|
return Object.freeze({
|
|
398
402
|
requireApproval,
|
|
399
403
|
autoApproveMatchers: Object.freeze(autoApproveMatchers),
|
|
404
|
+
auditSessionEvents,
|
|
400
405
|
focusFallback,
|
|
401
406
|
imageMode,
|
|
402
407
|
helperTimeoutMs,
|
|
@@ -533,7 +538,7 @@ var ObservationStore = class {
|
|
|
533
538
|
* @module dsh-click/version
|
|
534
539
|
*/
|
|
535
540
|
/** Plugin version advertised in the helper-protocol handshake. */
|
|
536
|
-
const VERSION = "0.1.
|
|
541
|
+
const VERSION = "0.1.2";
|
|
537
542
|
/** The helper protocol revision; bump only on incompatible wire changes. */
|
|
538
543
|
const HELPER_PROTOCOL_VERSION = 1;
|
|
539
544
|
//#endregion
|
|
@@ -964,7 +969,8 @@ function observedWindowInfo(info, maxTextLength) {
|
|
|
964
969
|
};
|
|
965
970
|
}
|
|
966
971
|
/** Append the `dsh-click/observed` audit event; a failed append is swallowed. */
|
|
967
|
-
function auditObservation(exec, event) {
|
|
972
|
+
function auditObservation(exec, event, auditSessionEvents = true) {
|
|
973
|
+
if (!auditSessionEvents) return;
|
|
968
974
|
const session = exec.agent?.session;
|
|
969
975
|
if (session === void 0) return;
|
|
970
976
|
try {
|
|
@@ -1117,7 +1123,7 @@ function screenShotTool(services) {
|
|
|
1117
1123
|
width: image.width,
|
|
1118
1124
|
height: image.height
|
|
1119
1125
|
} } : {}
|
|
1120
|
-
});
|
|
1126
|
+
}, config.auditSessionEvents);
|
|
1121
1127
|
return {
|
|
1122
1128
|
ok: true,
|
|
1123
1129
|
observationId: record.id,
|
|
@@ -1274,7 +1280,7 @@ function screenReadTool(services) {
|
|
|
1274
1280
|
executablePath: sanitized.executablePath,
|
|
1275
1281
|
windowTitle: sanitized.title,
|
|
1276
1282
|
elementCount: tree.elements.length
|
|
1277
|
-
});
|
|
1283
|
+
}, config.auditSessionEvents);
|
|
1278
1284
|
return {
|
|
1279
1285
|
ok: true,
|
|
1280
1286
|
observationId: record.id,
|
package/lib/types/actions.d.ts
CHANGED
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import type { Context } from '@deepseek-ai/cordis';
|
|
12
12
|
import type { ToolRunContext } from '@deepseek-ai/dsh-tools';
|
|
13
|
-
import type { ResolvedConfig } from './config.
|
|
14
|
-
import { ObservationStore } from './observe.
|
|
15
|
-
import { type ActionOutcome, type DesktopBackend, type LaunchOutcome } from './platform/types.
|
|
13
|
+
import type { ResolvedConfig } from './config.js';
|
|
14
|
+
import { ObservationStore } from './observe.js';
|
|
15
|
+
import { type ActionOutcome, type DesktopBackend, type LaunchOutcome } from './platform/types.js';
|
|
16
16
|
/** Which gate allowed an action, for the audit trail. */
|
|
17
17
|
export type ApprovalKind = 'approval' | 'allowlist' | 'none';
|
|
18
18
|
/** The executor's dependencies, all injected at construction. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,OAAO,EAAE,gBAAgB,EAA0B,MAAM,cAAc,CAAA;AAEvE,OAAO,EAAiB,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAuB,MAAM,qBAAqB,CAAA;AAErI,yDAAyD;AACzD,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,CAAA;AAS5D,iEAAiE;AACjE,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;IACrB,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,kCAAkC;IAClC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;IAChC,6BAA6B;IAC7B,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAA;CACxC;AAED,yEAAyE;AACzE,qBAAa,cAAc;IAEb,OAAO,CAAC,QAAQ,CAAC,IAAI;IADjC,2CAA2C;gBACd,IAAI,EAAE,kBAAkB;IAErD,4BAA4B;IAC5B,OAAO,KAAK,GAAG,GAEd;IAED,2BAA2B;IAC3B,OAAO,KAAK,MAAM,GAEjB;IAED,gFAAgF;IAChF,OAAO,CAAC,KAAK;
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,OAAO,EAAE,gBAAgB,EAA0B,MAAM,cAAc,CAAA;AAEvE,OAAO,EAAiB,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAuB,MAAM,qBAAqB,CAAA;AAErI,yDAAyD;AACzD,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,CAAA;AAS5D,iEAAiE;AACjE,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;IACrB,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,kCAAkC;IAClC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;IAChC,6BAA6B;IAC7B,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAA;CACxC;AAED,yEAAyE;AACzE,qBAAa,cAAc;IAEb,OAAO,CAAC,QAAQ,CAAC,IAAI;IADjC,2CAA2C;gBACd,IAAI,EAAE,kBAAkB;IAErD,4BAA4B;IAC5B,OAAO,KAAK,GAAG,GAEd;IAED,2BAA2B;IAC3B,OAAO,KAAK,MAAM,GAEjB;IAED,gFAAgF;IAChF,OAAO,CAAC,KAAK;IAYb;;;;;;;;OAQG;YACW,kBAAkB;IAyBhC;;;;;;;;;;;OAWG;YACW,IAAI;IAuClB;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAS9B;;;;;;;;;;OAUG;IACG,OAAO,CACX,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,EACpB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,CAAC,aAAa,EAAE,OAAO,KAAK,OAAO,CAAC,aAAa,CAAC,GACtD,OAAO,CAAC,aAAa,CAAC;IAwCzB;;;;;;;;;OASG;IACG,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;CAoBlG"}
|
package/lib/types/config.d.ts
CHANGED
|
@@ -51,6 +51,15 @@ export interface Config {
|
|
|
51
51
|
requireApproval?: boolean;
|
|
52
52
|
/** Window title or executable-path regexes that skip the approval ask (still audited; default []). */
|
|
53
53
|
autoApproveWindows?: string[];
|
|
54
|
+
/**
|
|
55
|
+
* Whether dsh-click session audit events (`dsh-click/observed`/`dsh-click/action`)
|
|
56
|
+
* are appended to the session log (default true). Set false when the harness
|
|
57
|
+
* session reader does not recognize these event types (e.g. DeepSeek Harness
|
|
58
|
+
* rc.6/rc.7 static event whitelist without a plugin registration surface):
|
|
59
|
+
* a log containing them then refuses resume with
|
|
60
|
+
* "event type ... unknown to this harness and not marked ignorable".
|
|
61
|
+
*/
|
|
62
|
+
auditSessionEvents?: boolean;
|
|
54
63
|
/** Whether mutating actions may bring the target window to the foreground as a fallback (default 'never'). */
|
|
55
64
|
focusFallback?: FocusFallback;
|
|
56
65
|
/** How `screen_shot` renders: image block for vision models, text otherwise (default 'auto'). */
|
|
@@ -82,6 +91,8 @@ export interface ResolvedConfig {
|
|
|
82
91
|
requireApproval: boolean;
|
|
83
92
|
/** Compiled allowlist matchers (window title or executable path). */
|
|
84
93
|
autoApproveMatchers: ReadonlyArray<RegExp>;
|
|
94
|
+
/** Whether session audit events are appended to the session log. */
|
|
95
|
+
auditSessionEvents: boolean;
|
|
85
96
|
/** Whether focus fallback is permitted. */
|
|
86
97
|
focusFallback: FocusFallback;
|
|
87
98
|
/** Screenshot render mode. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
|
package/lib/types/index.d.ts
CHANGED
|
@@ -13,20 +13,20 @@
|
|
|
13
13
|
* @module dsh-click
|
|
14
14
|
*/
|
|
15
15
|
import type { Context } from '@deepseek-ai/cordis';
|
|
16
|
-
import { Config } from './config.
|
|
16
|
+
import { Config } from './config.js';
|
|
17
17
|
export declare const name = "dsh-click";
|
|
18
18
|
/** Hard services: the tool registry every contribution lands in. */
|
|
19
19
|
export declare const inject: string[];
|
|
20
|
-
export { Config, resolveConfig } from './config.
|
|
21
|
-
export { VERSION, HELPER_PROTOCOL_VERSION } from './version.
|
|
22
|
-
export { DshClickError } from './platform/types.
|
|
23
|
-
export { ObservationStore, observationIdOf, type ObservationRecord, type FreshnessVerdict } from './observe.
|
|
24
|
-
export { ActionExecutor, type ActionExecutorDeps, type ApprovalKind } from './actions.
|
|
25
|
-
export { createBackend, UnavailableBackend } from './platform/selection.
|
|
26
|
-
export { HelperBackend } from './platform/runner.
|
|
27
|
-
export { allTools, type ToolServices } from './tools.
|
|
28
|
-
export { OBSERVED_EVENT, ACTION_EVENT, type ObservedEvent, type ActionEvent, type ProcessFacts } from './events.
|
|
29
|
-
export { sanitizeText, sanitizePath, redactSensitive, sanitizeVisible } from './sanitize.
|
|
20
|
+
export { Config, resolveConfig } from './config.js';
|
|
21
|
+
export { VERSION, HELPER_PROTOCOL_VERSION } from './version.js';
|
|
22
|
+
export { DshClickError } from './platform/types.js';
|
|
23
|
+
export { ObservationStore, observationIdOf, type ObservationRecord, type FreshnessVerdict } from './observe.js';
|
|
24
|
+
export { ActionExecutor, type ActionExecutorDeps, type ApprovalKind } from './actions.js';
|
|
25
|
+
export { createBackend, UnavailableBackend } from './platform/selection.js';
|
|
26
|
+
export { HelperBackend } from './platform/runner.js';
|
|
27
|
+
export { allTools, type ToolServices } from './tools.js';
|
|
28
|
+
export { OBSERVED_EVENT, ACTION_EVENT, type ObservedEvent, type ActionEvent, type ProcessFacts } from './events.js';
|
|
29
|
+
export { sanitizeText, sanitizePath, redactSensitive, sanitizeVisible } from './sanitize.js';
|
|
30
30
|
/**
|
|
31
31
|
* Mount the plugin: resolve config, select the platform backend, and register
|
|
32
32
|
* every tool through `ctx.tools.register` (each registration is an effect
|
package/lib/types/observe.d.ts
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @module dsh-click/observe
|
|
9
9
|
*/
|
|
10
|
-
import type { ResolvedConfig } from './config.
|
|
11
|
-
import type { Rect, WindowSnapshot } from './platform/types.
|
|
10
|
+
import type { ResolvedConfig } from './config.js';
|
|
11
|
+
import type { Rect, WindowSnapshot } from './platform/types.js';
|
|
12
12
|
/** One cached observation, immutable after construction. */
|
|
13
13
|
export interface ObservationRecord {
|
|
14
14
|
/** Observation id (content hash). */
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
* @module dsh-click/platform/runner
|
|
10
10
|
*/
|
|
11
11
|
import type { SubprocessRuntime } from '@deepseek-ai/dsh-subprocess';
|
|
12
|
-
import type { ResolvedConfig } from '../config.
|
|
13
|
-
import { type ActionOutcome, type AppInfo, type ClickRequest, type DesktopBackend, type KeyRequest, type LaunchOutcome, type Screenshot, type ScrollRequest, type Tree, type WindowInfo, type WindowRef, type WindowSnapshot, type TypeRequest } from './types.
|
|
12
|
+
import type { ResolvedConfig } from '../config.js';
|
|
13
|
+
import { type ActionOutcome, type AppInfo, type ClickRequest, type DesktopBackend, type KeyRequest, type LaunchOutcome, type Screenshot, type ScrollRequest, type Tree, type WindowInfo, type WindowRef, type WindowSnapshot, type TypeRequest } from './types.js';
|
|
14
14
|
/** The Windows helper backend over `ctx.subprocess`. */
|
|
15
15
|
export declare class HelperBackend implements DesktopBackend {
|
|
16
16
|
private readonly config;
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
* @module dsh-click/platform/selection
|
|
9
9
|
*/
|
|
10
10
|
import type { Context } from '@deepseek-ai/cordis';
|
|
11
|
-
import type { ResolvedConfig } from '../config.
|
|
12
|
-
import { type ActionOutcome, type AppInfo, type DesktopBackend, type LaunchOutcome, type Screenshot, type Tree, type WindowInfo, type WindowSnapshot } from './types.
|
|
11
|
+
import type { ResolvedConfig } from '../config.js';
|
|
12
|
+
import { type ActionOutcome, type AppInfo, type DesktopBackend, type LaunchOutcome, type Screenshot, type Tree, type WindowInfo, type WindowSnapshot } from './types.js';
|
|
13
13
|
/** A backend that cannot act: every operation fails closed with the given reason. */
|
|
14
14
|
export declare class UnavailableBackend implements DesktopBackend {
|
|
15
15
|
readonly platform: string;
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @module dsh-click/platform/types
|
|
9
9
|
*/
|
|
10
|
-
import type { ProcessFacts } from '../events.
|
|
10
|
+
import type { ProcessFacts } from '../events.js';
|
|
11
11
|
/** Error with a stable machine-routing code, model-readable message included. */
|
|
12
12
|
export declare class DshClickError extends Error {
|
|
13
13
|
readonly code: string;
|
package/lib/types/tools.d.ts
CHANGED
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
* @module dsh-click/tools
|
|
12
12
|
*/
|
|
13
13
|
import type { Context } from '@deepseek-ai/cordis';
|
|
14
|
-
import { ActionExecutor } from './actions.
|
|
15
|
-
import type { ResolvedConfig } from './config.
|
|
16
|
-
import { ObservationStore } from './observe.
|
|
17
|
-
import type { DesktopBackend, Rect } from './platform/types.
|
|
14
|
+
import { ActionExecutor } from './actions.js';
|
|
15
|
+
import type { ResolvedConfig } from './config.js';
|
|
16
|
+
import { ObservationStore } from './observe.js';
|
|
17
|
+
import type { DesktopBackend, Rect } from './platform/types.js';
|
|
18
18
|
/** Everything one tool needs at runtime; injected by `src/index.ts`. */
|
|
19
19
|
export interface ToolServices {
|
|
20
20
|
/** The mounting context. */
|
package/lib/types/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAKlD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAG/C,OAAO,KAAK,EAAE,cAAc,EAA0B,IAAI,EAAyC,MAAM,qBAAqB,CAAA;AAE9H,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,4BAA4B;IAC5B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;IACrB,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,kCAAkC;IAClC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;IAChC,6BAA6B;IAC7B,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAA;IACvC,2BAA2B;IAC3B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;CACjC;AAED,4EAA4E;AAC5E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,IAAI,EAAE,IAAI,CAAA;IACV,UAAU,EAAE,OAAO,CAAA;CACpB;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAKlD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAG/C,OAAO,KAAK,EAAE,cAAc,EAA0B,IAAI,EAAyC,MAAM,qBAAqB,CAAA;AAE9H,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,4BAA4B;IAC5B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;IACrB,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,kCAAkC;IAClC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;IAChC,6BAA6B;IAC7B,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAA;IACvC,2BAA2B;IAC3B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;CACjC;AAED,4EAA4E;AAC5E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,IAAI,EAAE,IAAI,CAAA;IACV,UAAU,EAAE,OAAO,CAAA;CACpB;AAgFD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,mDAoIpD;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,mDA+IpD;AAiED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,YAAY,mDAoD/C;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,YAAY,mDAyC9C;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,YAAY,mDA0ChD;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,YAAY,mDAkC7C;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,YAAY,mDA+EjD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,YAAY,mDAwCnD;AAED,oDAAoD;AACpD,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,YAAY,qDAW9C"}
|
package/lib/types/version.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* @module dsh-click/version
|
|
8
8
|
*/
|
|
9
9
|
/** Plugin version advertised in the helper-protocol handshake. */
|
|
10
|
-
export declare const VERSION = "0.1.
|
|
10
|
+
export declare const VERSION = "0.1.2";
|
|
11
11
|
/** The helper protocol revision; bump only on incompatible wire changes. */
|
|
12
12
|
export declare const HELPER_PROTOCOL_VERSION = 1;
|
|
13
13
|
//# sourceMappingURL=version.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-click",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Cross-platform native desktop control tools for DeepSeek Harness (Windows first): screen_shot, screen_read (accessibility tree + pixel description for text-only models), click/type/scroll/key, and app_list/app_launch — every mutating action gated by approval, never stealing foreground focus, with stale-observation rejection and process-identity checks",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -67,8 +67,7 @@
|
|
|
67
67
|
],
|
|
68
68
|
"compatibility": {
|
|
69
69
|
"dshVersions": [
|
|
70
|
-
"0.1.0-rc.
|
|
71
|
-
"0.1.0-rc.6"
|
|
70
|
+
"0.1.0-rc.8"
|
|
72
71
|
]
|
|
73
72
|
},
|
|
74
73
|
"capability": {
|
|
@@ -102,14 +101,14 @@
|
|
|
102
101
|
"packageManager": "pnpm@11.7.0",
|
|
103
102
|
"peerDependencies": {
|
|
104
103
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
105
|
-
"@deepseek-ai/
|
|
106
|
-
"@deepseek-ai/dsh-
|
|
107
|
-
"@deepseek-ai/dsh-
|
|
108
|
-
"@deepseek-ai/dsh-
|
|
109
|
-
"@deepseek-ai/dsh-
|
|
110
|
-
"@deepseek-ai/dsh-
|
|
111
|
-
"@deepseek-ai/dsh-
|
|
112
|
-
"@deepseek-ai/
|
|
104
|
+
"@deepseek-ai/dsh-agent": ">=0.1.0-rc.8 <0.2.0",
|
|
105
|
+
"@deepseek-ai/dsh-attachment": ">=0.1.0-rc.8 <0.2.0",
|
|
106
|
+
"@deepseek-ai/dsh-llm": ">=0.1.0-rc.8 <0.2.0",
|
|
107
|
+
"@deepseek-ai/dsh-session": ">=0.1.0-rc.8 <0.2.0",
|
|
108
|
+
"@deepseek-ai/dsh-subprocess": ">=0.1.0-rc.8 <0.2.0",
|
|
109
|
+
"@deepseek-ai/dsh-tools": ">=0.1.0-rc.8 <0.2.0",
|
|
110
|
+
"@deepseek-ai/dsh-user-approval": ">=0.1.0-rc.8 <0.2.0",
|
|
111
|
+
"@deepseek-ai/schemastery": "^3.18.0"
|
|
113
112
|
},
|
|
114
113
|
"dependencies": {
|
|
115
114
|
"tsdown": "^0.22.14",
|
|
@@ -117,16 +116,21 @@
|
|
|
117
116
|
},
|
|
118
117
|
"devDependencies": {
|
|
119
118
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
119
|
+
"@deepseek-ai/cordis-plugin-include": "1.0.6",
|
|
120
|
+
"@deepseek-ai/cordis-plugin-loader": "1.0.2",
|
|
121
|
+
"@deepseek-ai/dsh-agent": "0.1.0-rc.8",
|
|
122
|
+
"@deepseek-ai/dsh-attachment": "0.1.0-rc.8",
|
|
123
|
+
"@deepseek-ai/dsh-llm": "0.1.0-rc.8",
|
|
124
|
+
"@deepseek-ai/dsh-session": "0.1.0-rc.8",
|
|
125
|
+
"@deepseek-ai/dsh-subprocess": "0.1.0-rc.8",
|
|
126
|
+
"@deepseek-ai/dsh-subprocess-local": "0.1.0-rc.8",
|
|
127
|
+
"@deepseek-ai/dsh-system-prompt": "0.1.0-rc.8",
|
|
128
|
+
"@deepseek-ai/dsh-tools": "0.1.0-rc.8",
|
|
129
|
+
"@deepseek-ai/dsh-user-approval": "0.1.0-rc.8",
|
|
120
130
|
"@deepseek-ai/schemastery": "^3.18.0",
|
|
121
|
-
"@deepseek-ai/dsh-agent": "0.1.0-rc.6",
|
|
122
|
-
"@deepseek-ai/dsh-attachment": "0.1.0-rc.6",
|
|
123
|
-
"@deepseek-ai/dsh-llm": "0.1.0-rc.6",
|
|
124
|
-
"@deepseek-ai/dsh-session": "0.1.0-rc.6",
|
|
125
|
-
"@deepseek-ai/dsh-subprocess": "0.1.0-rc.6",
|
|
126
|
-
"@deepseek-ai/dsh-subprocess-local": "0.1.0-rc.6",
|
|
127
|
-
"@deepseek-ai/dsh-tools": "0.1.0-rc.6",
|
|
128
|
-
"@deepseek-ai/dsh-user-approval": "0.1.0-rc.6",
|
|
129
131
|
"@types/node": "^22.19.0",
|
|
132
|
+
"@vitest/coverage-v8": "3.2.0",
|
|
133
|
+
"oxlint": "0.18.1",
|
|
130
134
|
"vitest": "^3.2.0"
|
|
131
135
|
},
|
|
132
136
|
"scripts": {
|
|
@@ -136,6 +140,9 @@
|
|
|
136
140
|
"typecheck:ci": "tsc -p tsconfig.ci.json --noEmit",
|
|
137
141
|
"test": "vitest run",
|
|
138
142
|
"test:watch": "vitest",
|
|
143
|
+
"test:coverage": "vitest run --coverage",
|
|
144
|
+
"lint": "oxlint",
|
|
145
|
+
"check:readmes": "node scripts/check-readme-sync.mjs",
|
|
139
146
|
"verify:self-contained": "node scripts/verify-self-contained.mjs",
|
|
140
147
|
"verify:artifacts": "node scripts/verify-artifacts.mjs"
|
|
141
148
|
},
|