dsh-lsp-actions 0.5.15 → 0.5.16

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 CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.5.16] - 2026-10-22
4
+
5
+ ### Fixed
6
+
7
+ - **Teardown failures are no longer swallowed or permanently cached (issue #13).** `runOnce` called `await instance.dispose().catch(() => {})` and then dropped the map entry and idle timer unconditionally, so a rejected teardown left the process tree with no reference and no timer; the idle-timer path did the same. Evicted instances now go through a tracked reap queue that retries teardown up to three times, keeps the instance referenced until it settles, and reports a final failure through the host logger instead of swallowing it. `LspActionInstance.startTeardown()` also clears a rejected teardown promise, so a retry re-runs teardown instead of returning the same permanent rejection, and `disposeAll()` drains pending reaps and aggregates their failures.
8
+
9
+ This is lifecycle/observability hardening. It does not by itself claim the Windows orphan-tree root cause: whether the provider's `terminate()` reaches grandchildren is still being confirmed with the reporter.
10
+
3
11
  ## [0.5.15] - 2026-10-18
4
12
 
5
13
  ### Changed
package/README-es.md CHANGED
@@ -21,6 +21,11 @@
21
21
 
22
22
  [English](README.md) · [简体中文](README-zh.md) · [Español](README-es.md) · [Português](README-pt.md) · [हिन्दी](README-hi.md)
23
23
 
24
+ ```sh
25
+ dsh plugin --profile <name> add dsh-lsp-actions
26
+ ```
27
+
28
+
24
29
  </div>
25
30
 
26
31
  ---
@@ -28,11 +33,18 @@
28
33
  **📖 Base de conocimiento del ecosistema** — datos medidos, no marketing: [guía de desarrollo · datos de selección · criterios de mantenimiento](https://perrylink.github.io/dsh-plugin-guide/).
29
34
 
30
35
  <!-- star-cta -->
36
+ ## Install & uninstall
37
+
38
+ - **git channel** (último `main`): `dsh plugin --profile web add github:PerryLink/dsh-lsp-actions` — el script `prepare` compila (`tsc --noEmitOnError`).
39
+ - **npm channel** (versiones publicadas): `dsh plugin --profile web add dsh-lsp-actions`.
40
+ - **tarball channel**: ejecuta `pnpm pack` en este repo y luego `dsh plugin --profile web add ./dsh-lsp-actions-<version>.tgz`.
41
+ - **uninstall**: `dsh plugin --profile web remove dsh-lsp-actions` (o quita la fila del patch del perfil).
42
+
31
43
  ## ⭐ 如果它帮到了你
32
44
 
33
45
  Este plugin forma parte de la [familia de plugins DSH](https://github.com/PerryLink) (más de 40, todos Apache-2.0). Si te resulta útil, **dale una estrella**: no desbloquea nada, pero ayuda a que la siguiente persona lo encuentre antes.
34
46
 
35
- *English:* part of a 40+ plugin family for DeepSeek Harness. If it is useful, **a star helps the next person find it** — nothing is gated behind it.
47
+ *English:* part of a 95 plugin family for DeepSeek Harness. If it is useful, **a star helps the next person find it** — nothing is gated behind it.
36
48
 
37
49
  ## What is dsh-lsp-actions?
38
50
 
@@ -40,9 +52,10 @@ La superficie de acción LSP para DeepSeek Harness — servidores de lenguaje re
40
52
 
41
53
  Diagnósticos, formateo, completado, acciones de código, símbolos, ayuda de firmas, sugerencias insertadas y renombrado para el bucle de editor de tu agente — más el protocolo estable de acciones para editores (`lsp.actions.*`) que permite a cualquier editor consumirlos directamente.
42
54
 
43
- ![Demostración de terminal de dsh-lsp-actions: dsh-lsp-actions — install, then map servers per project](https://raw.githubusercontent.com/PerryLink/dsh-lsp-actions/main/docs/assets/dsh-lsp-actions-hero.png)
55
+ ![Diagrama de flujo de dsh-lsp-actions: llamada → plugin → resultado.](docs/assets/dsh-lsp-actions-flow.svg)
56
+
57
+ *Resumen del flujo: llamada → plugin → resultado. Los ejemplos siguientes usan la superficie de comandos real.*
44
58
 
45
- ![Animated terminal demo of dsh-lsp-actions](https://raw.githubusercontent.com/PerryLink/dsh-lsp-actions/main/docs/assets/dsh-lsp-actions-demo.gif)
46
59
 
47
60
  *La misma ejecución, animada.*
48
61
 
@@ -80,12 +93,63 @@ dsh plugin --profile web add dsh-lsp-actions
80
93
  dsh --profile web --dump-config | grep -A3 'id: lsp-actions'
81
94
  ```
82
95
 
83
- ## Install & uninstall
96
+ ### Ejemplos
84
97
 
85
- - **git channel** (último `main`): `dsh plugin --profile web add github:PerryLink/dsh-lsp-actions` — el script `prepare` compila (`tsc --noEmitOnError`).
86
- - **npm channel** (versiones publicadas): `dsh plugin --profile web add dsh-lsp-actions`.
87
- - **tarball channel**: ejecuta `pnpm pack` en este repo y luego `dsh plugin --profile web add ./dsh-lsp-actions-<version>.tgz`.
88
- - **uninstall**: `dsh plugin --profile web remove dsh-lsp-actions` (o quita la fila del patch del perfil).
98
+ Son los puntos de entrada reales; instala y llama a uno.
99
+
100
+ #### Ejemplo detallado
101
+
102
+ **Comando**
103
+
104
+ ~~~sh
105
+ lsp_diagnostics
106
+ ~~~
107
+
108
+ **Entrada**
109
+
110
+ ~~~json
111
+ {
112
+ "file_path": "a.ts"
113
+ }
114
+ ~~~
115
+
116
+ **Salida**
117
+
118
+ ~~~text
119
+ a.ts:1:3 [Error] boom [ts 2304]
120
+ a.ts:3:1 [Hint] hint
121
+ ~~~
122
+
123
+ *Observado en `plugins/dsh-lsp-actions/tests/render.spec.ts:32-37 (exact toBe); tool-level no-result render at plugins/dsh-lsp-actions/tests/tools.spec.ts:150-156`*
124
+
125
+ #### Rama de fallo
126
+
127
+ **Entrada**
128
+
129
+ ~~~text
130
+ {"action":"format","requestId":"f1","params":{"filePath":"a.ts","workspaceRoot":"<session-workspace>"}} under a read-only permission preset
131
+ ~~~
132
+
133
+ **Salida**
134
+
135
+ ~~~text
136
+ {
137
+ "requestId": "f1",
138
+ "action": "format",
139
+ "status": "failed",
140
+ "error": {
141
+ "code": "LSP_ACTION_READ_ONLY",
142
+ "message": "[sandbox: file access denied under read-only mode]\n[sandbox: escalation available — retry this exact operation once with sandbox_permissions (the narrowest wider mode that suffices) + justification; the approval prompt asks the user]"
143
+ }
144
+ }
145
+ ~~~
146
+
147
+ *Observado en `plugins/dsh-lsp-actions/src/tools.ts:213-223; plugins/dsh-lsp-actions/src/editor/actions.ts:320-330; plugins/dsh-lsp-actions/tests/editor-protocol.spec.ts:305-325`*
148
+
149
+ #### Ejemplos breves
150
+
151
+ - `lsp_format`
152
+ - `lsp_completion`
89
153
 
90
154
  ## Configuration
91
155
 
@@ -183,7 +247,6 @@ Cada fallo lleva un `code` estable; los modelos y llamadores enrutan por el cód
183
247
 
184
248
  [`examples/vscode/`](examples/vscode/) incluye una extensión **solo-UI** (barra lateral con las sesiones DSH, la lista de diagnósticos, aplicar quickfix con un clic, abrir en rango y formatear) más la composición de backend headless (`backend/cordis.yml`) a la que se conecta por JSON-RPC estilo ACP. La extensión implementa cero lógica LSP — cada capacidad y cada byte escrito pertenecen al plugin. Los pasos de instalación, ajustes y el script de grabación del gif de demostración están en [`examples/vscode/README.md`](examples/vscode/README.md).
185
249
 
186
- ![Editor demo](docs/editor-demo.gif)
187
250
 
188
251
  ## Permissions & data
189
252
 
@@ -264,55 +327,110 @@ Evidencia estática: `dsh-plugin-doctor` K10–K13 dan `pass` en todas las compr
264
327
 
265
328
  ## PerryLink DSH Plugin Family
266
329
 
267
- Este proyecto es uno de los **34 plugins activamente mantenidos** de DeepSeek Harness de [PerryLink](https://github.com/PerryLink): el registro tiene **42**, de los cuales **5** están congelados y **3** retirados; cada uno conserva su fila abajo, con el motivo en la columna Estado. Si este te ayuda, probablemente los demás también:
330
+ Este proyecto forma parte de la familia de plugins de DeepSeek Harness de [PerryLink](https://github.com/PerryLink). El registro permanece plegado abajo para que cada README conserve una primera pantalla corta; expándelo para ver cada fila y su estado.
268
331
 
269
- | Plugin | En una línea | Estado |
270
- |---|---|---|
271
- | **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | Second-model auto-review on the approval chain, fail-closed by default | |
272
- | **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | Automatic strong/cheap model-tier routing with deterministic risk guards and a `/tier` command | |
273
- | **[dsh-background-agents](https://github.com/PerryLink/dsh-background-agents)** | Durable background child agents with a Web UI sidebar, messaging and interrupt | 🚫 **RETIRADO** — ver la nota arriba |
274
- | **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | Cost governance for DeepSeek Harness: budgets, carbon, and latency in one panel. | 🧊 CONGELADO — ver el README del repositorio |
275
- | **[dsh-catalog](https://github.com/PerryLink/dsh-catalog)** | DSH Desktop Market standard catalog source for the PerryLink family | |
276
- | **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | Read-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence | |
277
- | **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | Claude Code /rewind-equivalent: snapshots, session forks, one-shot restore | |
278
- | **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | Migrate Claude Code sessions, memory, skills and CLAUDE.md into DSH | 🧊 CONGELADO — ver el README del repositorio |
279
- | **[dsh-click](https://github.com/PerryLink/dsh-click)** | Cross-platform native desktop control for DeepSeek Harness — Windows first. | |
280
- | **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | Terminal-style input history for the web composer: arrows, Ctrl+R search | |
281
- | **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | Dataset quality checks and citation cross-checks (the optional numeric bridge consumed here) | |
282
- | **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | Prompt-injection, jailbreak, and secret-leak defense for DeepSeek Harness. | 🧊 CONGELADO — ver el README del repositorio |
283
- | **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | Engineering-discipline guard: requirements grill, test gates, adversary review | |
284
- | **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | Unified static-image generation routing for DeepSeek Harness. | 🧊 CONGELADO — ver el README del repositorio |
285
- | **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | Read-only performance diagnostics for DeepSeek Harness. | |
286
- | **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | Deterministic research reports for Chinese public mutual funds | |
287
- | **[dsh-github](https://github.com/PerryLink/dsh-github)** | GitHub PR/issues integration for DSH, every write gated by approval | |
288
- | **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | Industry research orchestration that seals its deliverables through this plugin's `ctx.researchReport.assemble` | |
289
- | **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | Laya typed decisions (`noul`/`choice`/`score`) as a first-class Cordis service and model-visible tools | |
290
- | **[dsh-library](https://github.com/PerryLink/dsh-library)** | Local document knowledge base for DeepSeek Harness. | |
291
- | **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | Local-model (Ollama) integration for DeepSeek Harness. | |
292
- | **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | LSP diagnostics, formatting, completion, code actions and rename over language servers | |
293
- | **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | PII masking middleware: anonymize at the model boundary, restore at the display layer | |
294
- | **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | Read-only MCP runtime panel: /mcp command + Settings tab with status, tools and errors | |
295
- | **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | Approval-gated cross-session memory: ctx.memory seam + SQLite + memory tool | |
296
- | **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | OpenTelemetry and Langfuse observability exporter for DeepSeek Harness. | |
297
- | **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | Claude Code outputStyles-equivalent runtime style switching | |
298
- | **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | Claude Code-style declarative allow/deny/ask permission rules with audit | |
299
- | **[dsh-plugin-certification](https://github.com/PerryLink/dsh-plugin-certification)** | Community certification registry with repro-checkable grades and badges | |
300
- | **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | Zero-dependency static + sandbox smoke detector for DSH plugins | |
301
- | **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | Plugin-development knowledge base as an on-demand agent skill | |
302
- | **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins | |
303
- | **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | One-package, one-corridor-index plugin upgrade skill: routes a repository to the matching closed corridor card | |
304
- | **[dsh-plugin-upgrade-015](https://github.com/PerryLink/dsh-plugin-upgrade-015)** | Merged `0.1.3-alpha.1` → `0.1.5-rc.1` upgrade corridor card plus a zero-dependency seam scanner | 🚫 RETIRADO — corredores asumidos por `dsh-plugin-upgrade` |
305
- | **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | Multi-channel approval/question bridge: WeChat/Telegram/Feishu, session console | 🧊 CONGELADO — ver el README del repositorio |
306
- | **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | Verifiable research-report engine: content-addressed evidence ledger and sealed versions | |
307
- | **[dsh-score](https://github.com/PerryLink/dsh-score)** | Multi-dimensional quality scoring for DeepSeek Harness plugins. | |
308
- | **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | Pin sessions in the Web sidebar with durable ordering | 🚫 **RETIRADO** — ver la nota arriba |
309
- | **[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. | |
310
- | **[dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security)** | Security-audit skill pack: secret scan, dependency and supply-chain review | |
311
- | **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | Voice-first session loop for DeepSeek Harness: talk to it, hear it answer. | |
312
- | **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | Cross-session team rooms: shared message bus, task board and timeline | 🚫 **RETIRADO** — ver la nota arriba |
313
- | **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | Isolated install-and-smoke test drives for DeepSeek Harness plugins. | |
314
- | **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | TickTick/Dida365 task bridge: session-header panel + 11 tools | |
315
- | **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | Vendor parameter translation and deterministic JSON repair for DeepSeek Harness. | |
332
+ <details>
333
+ <summary>Expandir todos los plugins</summary>
334
+
335
+ | Plugin | Estado |
336
+ |---|---|
337
+ | **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | |
338
+ | **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | |
339
+ | **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | |
340
+ | **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | |
341
+ | **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | |
342
+ | **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | |
343
+ | **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | |
344
+ | **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | |
345
+ | **[dsh-click](https://github.com/PerryLink/dsh-click)** | |
346
+ | **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | |
347
+ | **[dsh-contract-stance](https://github.com/PerryLink/dsh-contract-stance)** | |
348
+ | **[dsh-customs-doc-check](https://github.com/PerryLink/dsh-customs-doc-check)** | |
349
+ | **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | |
350
+ | **[dsh-demurrage-ledger](https://github.com/PerryLink/dsh-demurrage-ledger)** | |
351
+ | **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | |
352
+ | **[dsh-drill-script-check](https://github.com/PerryLink/dsh-drill-script-check)** | |
353
+ | **[dsh-eia-guide-check](https://github.com/PerryLink/dsh-eia-guide-check)** | |
354
+ | **[dsh-emergency-plan](https://github.com/PerryLink/dsh-emergency-plan)** | |
355
+ | **[dsh-essay-rubric-check](https://github.com/PerryLink/dsh-essay-rubric-check)** | |
356
+ | **[dsh-evidence-check](https://github.com/PerryLink/dsh-evidence-check)** | |
357
+ | **[dsh-export-ctl-check](https://github.com/PerryLink/dsh-export-ctl-check)** | |
358
+ | **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | |
359
+ | **[dsh-fmea-table-check](https://github.com/PerryLink/dsh-fmea-table-check)** | |
360
+ | **[dsh-forecast-penalty](https://github.com/PerryLink/dsh-forecast-penalty)** | |
361
+ | **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | |
362
+ | **[dsh-github](https://github.com/PerryLink/dsh-github)** | |
363
+ | **[dsh-gongwen-flow-check](https://github.com/PerryLink/dsh-gongwen-flow-check)** | |
364
+ | **[dsh-gongwen-word-check](https://github.com/PerryLink/dsh-gongwen-word-check)** | |
365
+ | **[dsh-guard-plan-qc](https://github.com/PerryLink/dsh-guard-plan-qc)** | |
366
+ | **[dsh-hazchem-check](https://github.com/PerryLink/dsh-hazchem-check)** | |
367
+ | **[dsh-hazplan-check](https://github.com/PerryLink/dsh-hazplan-check)** | |
368
+ | **[dsh-hidden-risk-map](https://github.com/PerryLink/dsh-hidden-risk-map)** | |
369
+ | **[dsh-hs-classify](https://github.com/PerryLink/dsh-hs-classify)** | |
370
+ | **[dsh-icd-rule-check](https://github.com/PerryLink/dsh-icd-rule-check)** | |
371
+ | **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | |
372
+ | **[dsh-lawcite-adapter](https://github.com/PerryLink/dsh-lawcite-adapter)** | |
373
+ | **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | |
374
+ | **[dsh-lc-doc-check](https://github.com/PerryLink/dsh-lc-doc-check)** | |
375
+ | **[dsh-learning-gap-check](https://github.com/PerryLink/dsh-learning-gap-check)** | |
376
+ | **[dsh-library](https://github.com/PerryLink/dsh-library)** | |
377
+ | **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | |
378
+ | **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | |
379
+ | **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | |
380
+ | **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | |
381
+ | **[dsh-medrec-qc](https://github.com/PerryLink/dsh-medrec-qc)** | |
382
+ | **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | |
383
+ | **[dsh-nsfc-form-check](https://github.com/PerryLink/dsh-nsfc-form-check)** | |
384
+ | **[dsh-nurse-record-check](https://github.com/PerryLink/dsh-nurse-record-check)** | |
385
+ | **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | |
386
+ | **[dsh-origin-rvc-check](https://github.com/PerryLink/dsh-origin-rvc-check)** | |
387
+ | **[dsh-ota-review-check](https://github.com/PerryLink/dsh-ota-review-check)** | |
388
+ | **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | |
389
+ | **[dsh-paper-doc-adapter](https://github.com/PerryLink/dsh-paper-doc-adapter)** | |
390
+ | **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | |
391
+ | **[dsh-permit-report-check](https://github.com/PerryLink/dsh-permit-report-check)** | |
392
+ | **[dsh-pipeline-check](https://github.com/PerryLink/dsh-pipeline-check)** | |
393
+ | **[dsh-pleading-draft](https://github.com/PerryLink/dsh-pleading-draft)** | |
394
+ | **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | |
395
+ | **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | |
396
+ | **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | |
397
+ | **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | |
398
+ | **[dsh-policy-brief-draft](https://github.com/PerryLink/dsh-policy-brief-draft)** | |
399
+ | **[dsh-power-loss-split](https://github.com/PerryLink/dsh-power-loss-split)** | |
400
+ | **[dsh-power-ticket-check](https://github.com/PerryLink/dsh-power-ticket-check)** | |
401
+ | **[dsh-ppap-check](https://github.com/PerryLink/dsh-ppap-check)** | |
402
+ | **[dsh-protest-deadline](https://github.com/PerryLink/dsh-protest-deadline)** | |
403
+ | **[dsh-railway-window](https://github.com/PerryLink/dsh-railway-window)** | |
404
+ | **[dsh-repair-order-qc](https://github.com/PerryLink/dsh-repair-order-qc)** | |
405
+ | **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | |
406
+ | **[dsh-review-reply-check](https://github.com/PerryLink/dsh-review-reply-check)** | |
407
+ | **[dsh-rulefile-check](https://github.com/PerryLink/dsh-rulefile-check)** | |
408
+ | **[dsh-safety-brief-check](https://github.com/PerryLink/dsh-safety-brief-check)** | |
409
+ | **[dsh-score](https://github.com/PerryLink/dsh-score)** | |
410
+ | **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | |
411
+ | **[dsh-site-log-check](https://github.com/PerryLink/dsh-site-log-check)** | |
412
+ | **[dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security)** | |
413
+ | **[dsh-soe-decision-check](https://github.com/PerryLink/dsh-soe-decision-check)** | |
414
+ | **[dsh-soilwater-check](https://github.com/PerryLink/dsh-soilwater-check)** | |
415
+ | **[dsh-sop-sync-check](https://github.com/PerryLink/dsh-sop-sync-check)** | |
416
+ | **[dsh-spc-gbt-adapter](https://github.com/PerryLink/dsh-spc-gbt-adapter)** | |
417
+ | **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | |
418
+ | **[dsh-tender-extract](https://github.com/PerryLink/dsh-tender-extract)** | |
419
+ | **[dsh-tender-matrix](https://github.com/PerryLink/dsh-tender-matrix)** | |
420
+ | **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | |
421
+ | **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | |
422
+ | **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | |
423
+ | **[dsh-warranty-calc](https://github.com/PerryLink/dsh-warranty-calc)** | |
424
+ | **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | 🧊 CONGELADO — ver el README del repositorio |
425
+ | **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | 🧊 CONGELADO — ver el README del repositorio |
426
+ | **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | 🧊 CONGELADO — ver el README del repositorio |
427
+ | **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | 🧊 CONGELADO — ver el README del repositorio |
428
+ | **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | 🧊 CONGELADO — ver el README del repositorio |
429
+ | **[dsh-background-agents](https://github.com/PerryLink/dsh-background-agents)** | 🚫 RETIRADO — ver el README del repositorio |
430
+ | **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | 🚫 RETIRADO — ver el README del repositorio |
431
+ | **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | 🚫 RETIRADO — ver el README del repositorio |
432
+
433
+ </details>
316
434
 
317
435
  ## License
318
436
 
package/README-hi.md CHANGED
@@ -21,6 +21,11 @@
21
21
 
22
22
  [English](README.md) · [简体中文](README-zh.md) · [Español](README-es.md) · [Português](README-pt.md) · [हिन्दी](README-hi.md)
23
23
 
24
+ ```sh
25
+ dsh plugin --profile <name> add dsh-lsp-actions
26
+ ```
27
+
28
+
24
29
  </div>
25
30
 
26
31
  ---
@@ -28,11 +33,18 @@
28
33
  **📖 इकोसिस्टम नॉलेज बेस** — मापे गए आँकड़े, मार्केटिंग नहीं: [डेवलपमेंट गाइड · चयन डेटा · रखरखाव मानदंड](https://perrylink.github.io/dsh-plugin-guide/)।
29
34
 
30
35
  <!-- star-cta -->
36
+ ## Install & uninstall
37
+
38
+ - **git channel** (नवीनतम `main`): `dsh plugin --profile web add github:PerryLink/dsh-lsp-actions` — `prepare` स्क्रिप्ट बिल्ड करती है (`tsc --noEmitOnError`)।
39
+ - **npm channel** (प्रकाशित रिलीज़): `dsh plugin --profile web add dsh-lsp-actions`।
40
+ - **tarball channel**: इस repo में `pnpm pack` चलाएँ, फिर `dsh plugin --profile web add ./dsh-lsp-actions-<version>.tgz`।
41
+ - **uninstall**: `dsh plugin --profile web remove dsh-lsp-actions` (या profile patch से पंक्ति हटाएँ)।
42
+
31
43
  ## ⭐ 如果它帮到了你
32
44
 
33
- यह प्लगइन [DSH प्लगइन परिवार](https://github.com/PerryLink) का हिस्सा है (40+ प्लगइन, सभी Apache-2.0)। अगर यह उपयोगी लगे, तो **एक स्टार दें** — इससे कोई सुविधा अनलॉक नहीं होती, पर अगला व्यक्ति इसे खोज में आसानी से पा लेता है।
45
+ यह प्लगइन [DSH प्लगइन परिवार](https://github.com/PerryLink) का हिस्सा है (95 प्लगइन, सभी Apache-2.0)। अगर यह उपयोगी लगे, तो **एक स्टार दें** — इससे कोई सुविधा अनलॉक नहीं होती, पर अगला व्यक्ति इसे खोज में आसानी से पा लेता है।
34
46
 
35
- *English:* part of a 40+ plugin family for DeepSeek Harness. If it is useful, **a star helps the next person find it** — nothing is gated behind it.
47
+ *English:* part of a 95 plugin family for DeepSeek Harness. If it is useful, **a star helps the next person find it** — nothing is gated behind it.
36
48
 
37
49
  ## What is dsh-lsp-actions?
38
50
 
@@ -40,9 +52,10 @@ DeepSeek Harness के लिए LSP एक्शन सतह — असली
40
52
 
41
53
  आपके एजेंट के एडिटर लूप के लिए डायग्नोस्टिक्स, फ़ॉर्मेटिंग, कम्प्लीशन, कोड एक्शन, सिंबल, सिग्नेचर हेल्प, इनले हिंट्स और रिनेम — साथ ही स्थिर एडिटर एक्शन प्रोटोकॉल (`lsp.actions.*`) जो किसी भी एडिटर को इन्हें सीधे उपभोग करने देता है।
42
54
 
43
- ![dsh-lsp-actions का टर्मिनल डेमो: dsh-lsp-actions — install, then map servers per project](https://raw.githubusercontent.com/PerryLink/dsh-lsp-actions/main/docs/assets/dsh-lsp-actions-hero.png)
55
+ ![dsh-lsp-actions कार्यप्रवाह आरेख: कॉल → प्लगइन → परिणाम।](docs/assets/dsh-lsp-actions-flow.svg)
56
+
57
+ *कार्यप्रवाह: कॉल → प्लगइन → परिणाम। नीचे के उदाहरण वास्तविक कमांड सतह का उपयोग करते हैं।*
44
58
 
45
- ![Animated terminal demo of dsh-lsp-actions](https://raw.githubusercontent.com/PerryLink/dsh-lsp-actions/main/docs/assets/dsh-lsp-actions-demo.gif)
46
59
 
47
60
  *वही रन, एनिमेटेड।*
48
61
 
@@ -80,12 +93,63 @@ dsh plugin --profile web add dsh-lsp-actions
80
93
  dsh --profile web --dump-config | grep -A3 'id: lsp-actions'
81
94
  ```
82
95
 
83
- ## Install & uninstall
96
+ ### उदाहरण
84
97
 
85
- - **git channel** (नवीनतम `main`): `dsh plugin --profile web add github:PerryLink/dsh-lsp-actions` — `prepare` स्क्रिप्ट बिल्ड करती है (`tsc --noEmitOnError`)।
86
- - **npm channel** (प्रकाशित रिलीज़): `dsh plugin --profile web add dsh-lsp-actions`।
87
- - **tarball channel**: इस repo में `pnpm pack` चलाएँ, फिर `dsh plugin --profile web add ./dsh-lsp-actions-<version>.tgz`।
88
- - **uninstall**: `dsh plugin --profile web remove dsh-lsp-actions` (या profile patch से पंक्ति हटाएँ)।
98
+ ये वास्तविक प्रवेश बिंदु हैं; इंस्टॉल के बाद एक चलाएँ।
99
+
100
+ #### विस्तृत उदाहरण
101
+
102
+ **कमांड**
103
+
104
+ ~~~sh
105
+ lsp_diagnostics
106
+ ~~~
107
+
108
+ **इनपुट**
109
+
110
+ ~~~json
111
+ {
112
+ "file_path": "a.ts"
113
+ }
114
+ ~~~
115
+
116
+ **आउटपुट**
117
+
118
+ ~~~text
119
+ a.ts:1:3 [Error] boom [ts 2304]
120
+ a.ts:3:1 [Hint] hint
121
+ ~~~
122
+
123
+ *स्रोत `plugins/dsh-lsp-actions/tests/render.spec.ts:32-37 (exact toBe); tool-level no-result render at plugins/dsh-lsp-actions/tests/tools.spec.ts:150-156`*
124
+
125
+ #### विफलता शाखा
126
+
127
+ **इनपुट**
128
+
129
+ ~~~text
130
+ {"action":"format","requestId":"f1","params":{"filePath":"a.ts","workspaceRoot":"<session-workspace>"}} under a read-only permission preset
131
+ ~~~
132
+
133
+ **आउटपुट**
134
+
135
+ ~~~text
136
+ {
137
+ "requestId": "f1",
138
+ "action": "format",
139
+ "status": "failed",
140
+ "error": {
141
+ "code": "LSP_ACTION_READ_ONLY",
142
+ "message": "[sandbox: file access denied under read-only mode]\n[sandbox: escalation available — retry this exact operation once with sandbox_permissions (the narrowest wider mode that suffices) + justification; the approval prompt asks the user]"
143
+ }
144
+ }
145
+ ~~~
146
+
147
+ *स्रोत `plugins/dsh-lsp-actions/src/tools.ts:213-223; plugins/dsh-lsp-actions/src/editor/actions.ts:320-330; plugins/dsh-lsp-actions/tests/editor-protocol.spec.ts:305-325`*
148
+
149
+ #### संक्षिप्त उदाहरण
150
+
151
+ - `lsp_format`
152
+ - `lsp_completion`
89
153
 
90
154
  ## Configuration
91
155
 
@@ -183,7 +247,6 @@ servers:
183
247
 
184
248
  [`examples/vscode/`](examples/vscode/) एक **केवल-UI** एक्सटेंशन (DSH सत्रों, डायग्नोस्टिक्स सूची, एक-क्लिक quickfix apply, open-at-range और format वाली साइडबार) और वह headless backend संरचना (`backend/cordis.yml`) देता है जिससे वह ACP-शैली JSON-RPC पर जुड़ता है। एक्सटेंशन शून्य LSP लॉजिक लागू करता है — हर क्षमता और हर लिखा बाइट प्लगइन का है। इंस्टॉल चरण, सेटिंग्स और डेमो-gif रिकॉर्डिंग स्क्रिप्ट [`examples/vscode/README.md`](examples/vscode/README.md) में हैं।
185
249
 
186
- ![Editor demo](docs/editor-demo.gif)
187
250
 
188
251
  ## Permissions & data
189
252
 
@@ -264,55 +327,110 @@ pnpm run prepublishOnly # tsc --noEmitOnError (runs before publish)
264
327
 
265
328
  ## PerryLink DSH Plugin Family
266
329
 
267
- यह प्रोजेक्ट [PerryLink](https://github.com/PerryLink) के DeepSeek Harness प्लगइन परिवार का हिस्सा है — **34 सक्रिय रूप से अनुरक्षित**, कुल सूची **42** है जिसमें **5 फ़्रोज़न** और **3 सेवानिवृत्त** हैं; हर एक की पंक्ति नीचे बनी रहती है, कारण “स्थिति” कॉलम में है। अगर यह उपयोगी लगे, तो अन्य भी मददगार होंगे:
330
+ यह प्रोजेक्ट [PerryLink](https://github.com/PerryLink) के DeepSeek Harness प्लगइन परिवार का हिस्सा है। पूरी सूची नीचे संक्षिप्त रखी गई है ताकि हर README की पहली स्क्रीन छोटी रहे; हर पंक्ति और उसकी स्थिति देखने के लिए इसे खोलें।
268
331
 
269
- | Plugin | एक पंक्ति में | स्थिति |
270
- |---|---|---|
271
- | **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | Second-model auto-review on the approval chain, fail-closed by default | |
272
- | **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | Automatic strong/cheap model-tier routing with deterministic risk guards and a `/tier` command | |
273
- | **[dsh-background-agents](https://github.com/PerryLink/dsh-background-agents)** | Durable background child agents with a Web UI sidebar, messaging and interrupt | 🚫 **सेवानिवृत्त** — ऊपर देखें |
274
- | **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | Cost governance for DeepSeek Harness: budgets, carbon, and latency in one panel. | 🧊 फ़्रोज़न — रिपॉज़िटरी README देखें |
275
- | **[dsh-catalog](https://github.com/PerryLink/dsh-catalog)** | DSH Desktop Market standard catalog source for the PerryLink family | |
276
- | **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | Read-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence | |
277
- | **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | Claude Code /rewind-equivalent: snapshots, session forks, one-shot restore | |
278
- | **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | Migrate Claude Code sessions, memory, skills and CLAUDE.md into DSH | 🧊 फ़्रोज़न — रिपॉज़िटरी README देखें |
279
- | **[dsh-click](https://github.com/PerryLink/dsh-click)** | Cross-platform native desktop control for DeepSeek Harness — Windows first. | |
280
- | **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | Terminal-style input history for the web composer: arrows, Ctrl+R search | |
281
- | **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | Dataset quality checks and citation cross-checks (the optional numeric bridge consumed here) | |
282
- | **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | Prompt-injection, jailbreak, and secret-leak defense for DeepSeek Harness. | 🧊 फ़्रोज़न — रिपॉज़िटरी README देखें |
283
- | **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | Engineering-discipline guard: requirements grill, test gates, adversary review | |
284
- | **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | Unified static-image generation routing for DeepSeek Harness. | 🧊 फ़्रोज़न — रिपॉज़िटरी README देखें |
285
- | **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | Read-only performance diagnostics for DeepSeek Harness. | |
286
- | **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | Deterministic research reports for Chinese public mutual funds | |
287
- | **[dsh-github](https://github.com/PerryLink/dsh-github)** | GitHub PR/issues integration for DSH, every write gated by approval | |
288
- | **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | Industry research orchestration that seals its deliverables through this plugin's `ctx.researchReport.assemble` | |
289
- | **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | Laya typed decisions (`noul`/`choice`/`score`) as a first-class Cordis service and model-visible tools | |
290
- | **[dsh-library](https://github.com/PerryLink/dsh-library)** | Local document knowledge base for DeepSeek Harness. | |
291
- | **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | Local-model (Ollama) integration for DeepSeek Harness. | |
292
- | **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | LSP diagnostics, formatting, completion, code actions and rename over language servers | |
293
- | **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | PII masking middleware: anonymize at the model boundary, restore at the display layer | |
294
- | **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | Read-only MCP runtime panel: /mcp command + Settings tab with status, tools and errors | |
295
- | **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | Approval-gated cross-session memory: ctx.memory seam + SQLite + memory tool | |
296
- | **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | OpenTelemetry and Langfuse observability exporter for DeepSeek Harness. | |
297
- | **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | Claude Code outputStyles-equivalent runtime style switching | |
298
- | **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | Claude Code-style declarative allow/deny/ask permission rules with audit | |
299
- | **[dsh-plugin-certification](https://github.com/PerryLink/dsh-plugin-certification)** | Community certification registry with repro-checkable grades and badges | |
300
- | **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | Zero-dependency static + sandbox smoke detector for DSH plugins | |
301
- | **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | Plugin-development knowledge base as an on-demand agent skill | |
302
- | **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins | |
303
- | **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | One-package, one-corridor-index plugin upgrade skill: routes a repository to the matching closed corridor card | |
304
- | **[dsh-plugin-upgrade-015](https://github.com/PerryLink/dsh-plugin-upgrade-015)** | Merged `0.1.3-alpha.1` → `0.1.5-rc.1` upgrade corridor card plus a zero-dependency seam scanner | 🚫 सेवानिवृत्त — कॉरिडोर अब `dsh-plugin-upgrade` द्वारा |
305
- | **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | Multi-channel approval/question bridge: WeChat/Telegram/Feishu, session console | 🧊 फ़्रोज़न — रिपॉज़िटरी README देखें |
306
- | **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | Verifiable research-report engine: content-addressed evidence ledger and sealed versions | |
307
- | **[dsh-score](https://github.com/PerryLink/dsh-score)** | Multi-dimensional quality scoring for DeepSeek Harness plugins. | |
308
- | **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | Pin sessions in the Web sidebar with durable ordering | 🚫 **सेवानिवृत्त** — ऊपर देखें |
309
- | **[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. | |
310
- | **[dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security)** | Security-audit skill pack: secret scan, dependency and supply-chain review | |
311
- | **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | Voice-first session loop for DeepSeek Harness: talk to it, hear it answer. | |
312
- | **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | Cross-session team rooms: shared message bus, task board and timeline | 🚫 **सेवानिवृत्त** — ऊपर देखें |
313
- | **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | Isolated install-and-smoke test drives for DeepSeek Harness plugins. | |
314
- | **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | TickTick/Dida365 task bridge: session-header panel + 11 tools | |
315
- | **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | Vendor parameter translation and deterministic JSON repair for DeepSeek Harness. | |
332
+ <details>
333
+ <summary>सभी प्लगइन खोलें</summary>
334
+
335
+ | प्लगइन | स्थिति |
336
+ |---|---|
337
+ | **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | |
338
+ | **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | |
339
+ | **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | |
340
+ | **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | |
341
+ | **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | |
342
+ | **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | |
343
+ | **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | |
344
+ | **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | |
345
+ | **[dsh-click](https://github.com/PerryLink/dsh-click)** | |
346
+ | **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | |
347
+ | **[dsh-contract-stance](https://github.com/PerryLink/dsh-contract-stance)** | |
348
+ | **[dsh-customs-doc-check](https://github.com/PerryLink/dsh-customs-doc-check)** | |
349
+ | **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | |
350
+ | **[dsh-demurrage-ledger](https://github.com/PerryLink/dsh-demurrage-ledger)** | |
351
+ | **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | |
352
+ | **[dsh-drill-script-check](https://github.com/PerryLink/dsh-drill-script-check)** | |
353
+ | **[dsh-eia-guide-check](https://github.com/PerryLink/dsh-eia-guide-check)** | |
354
+ | **[dsh-emergency-plan](https://github.com/PerryLink/dsh-emergency-plan)** | |
355
+ | **[dsh-essay-rubric-check](https://github.com/PerryLink/dsh-essay-rubric-check)** | |
356
+ | **[dsh-evidence-check](https://github.com/PerryLink/dsh-evidence-check)** | |
357
+ | **[dsh-export-ctl-check](https://github.com/PerryLink/dsh-export-ctl-check)** | |
358
+ | **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | |
359
+ | **[dsh-fmea-table-check](https://github.com/PerryLink/dsh-fmea-table-check)** | |
360
+ | **[dsh-forecast-penalty](https://github.com/PerryLink/dsh-forecast-penalty)** | |
361
+ | **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | |
362
+ | **[dsh-github](https://github.com/PerryLink/dsh-github)** | |
363
+ | **[dsh-gongwen-flow-check](https://github.com/PerryLink/dsh-gongwen-flow-check)** | |
364
+ | **[dsh-gongwen-word-check](https://github.com/PerryLink/dsh-gongwen-word-check)** | |
365
+ | **[dsh-guard-plan-qc](https://github.com/PerryLink/dsh-guard-plan-qc)** | |
366
+ | **[dsh-hazchem-check](https://github.com/PerryLink/dsh-hazchem-check)** | |
367
+ | **[dsh-hazplan-check](https://github.com/PerryLink/dsh-hazplan-check)** | |
368
+ | **[dsh-hidden-risk-map](https://github.com/PerryLink/dsh-hidden-risk-map)** | |
369
+ | **[dsh-hs-classify](https://github.com/PerryLink/dsh-hs-classify)** | |
370
+ | **[dsh-icd-rule-check](https://github.com/PerryLink/dsh-icd-rule-check)** | |
371
+ | **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | |
372
+ | **[dsh-lawcite-adapter](https://github.com/PerryLink/dsh-lawcite-adapter)** | |
373
+ | **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | |
374
+ | **[dsh-lc-doc-check](https://github.com/PerryLink/dsh-lc-doc-check)** | |
375
+ | **[dsh-learning-gap-check](https://github.com/PerryLink/dsh-learning-gap-check)** | |
376
+ | **[dsh-library](https://github.com/PerryLink/dsh-library)** | |
377
+ | **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | |
378
+ | **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | |
379
+ | **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | |
380
+ | **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | |
381
+ | **[dsh-medrec-qc](https://github.com/PerryLink/dsh-medrec-qc)** | |
382
+ | **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | |
383
+ | **[dsh-nsfc-form-check](https://github.com/PerryLink/dsh-nsfc-form-check)** | |
384
+ | **[dsh-nurse-record-check](https://github.com/PerryLink/dsh-nurse-record-check)** | |
385
+ | **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | |
386
+ | **[dsh-origin-rvc-check](https://github.com/PerryLink/dsh-origin-rvc-check)** | |
387
+ | **[dsh-ota-review-check](https://github.com/PerryLink/dsh-ota-review-check)** | |
388
+ | **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | |
389
+ | **[dsh-paper-doc-adapter](https://github.com/PerryLink/dsh-paper-doc-adapter)** | |
390
+ | **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | |
391
+ | **[dsh-permit-report-check](https://github.com/PerryLink/dsh-permit-report-check)** | |
392
+ | **[dsh-pipeline-check](https://github.com/PerryLink/dsh-pipeline-check)** | |
393
+ | **[dsh-pleading-draft](https://github.com/PerryLink/dsh-pleading-draft)** | |
394
+ | **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | |
395
+ | **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | |
396
+ | **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | |
397
+ | **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | |
398
+ | **[dsh-policy-brief-draft](https://github.com/PerryLink/dsh-policy-brief-draft)** | |
399
+ | **[dsh-power-loss-split](https://github.com/PerryLink/dsh-power-loss-split)** | |
400
+ | **[dsh-power-ticket-check](https://github.com/PerryLink/dsh-power-ticket-check)** | |
401
+ | **[dsh-ppap-check](https://github.com/PerryLink/dsh-ppap-check)** | |
402
+ | **[dsh-protest-deadline](https://github.com/PerryLink/dsh-protest-deadline)** | |
403
+ | **[dsh-railway-window](https://github.com/PerryLink/dsh-railway-window)** | |
404
+ | **[dsh-repair-order-qc](https://github.com/PerryLink/dsh-repair-order-qc)** | |
405
+ | **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | |
406
+ | **[dsh-review-reply-check](https://github.com/PerryLink/dsh-review-reply-check)** | |
407
+ | **[dsh-rulefile-check](https://github.com/PerryLink/dsh-rulefile-check)** | |
408
+ | **[dsh-safety-brief-check](https://github.com/PerryLink/dsh-safety-brief-check)** | |
409
+ | **[dsh-score](https://github.com/PerryLink/dsh-score)** | |
410
+ | **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | |
411
+ | **[dsh-site-log-check](https://github.com/PerryLink/dsh-site-log-check)** | |
412
+ | **[dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security)** | |
413
+ | **[dsh-soe-decision-check](https://github.com/PerryLink/dsh-soe-decision-check)** | |
414
+ | **[dsh-soilwater-check](https://github.com/PerryLink/dsh-soilwater-check)** | |
415
+ | **[dsh-sop-sync-check](https://github.com/PerryLink/dsh-sop-sync-check)** | |
416
+ | **[dsh-spc-gbt-adapter](https://github.com/PerryLink/dsh-spc-gbt-adapter)** | |
417
+ | **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | |
418
+ | **[dsh-tender-extract](https://github.com/PerryLink/dsh-tender-extract)** | |
419
+ | **[dsh-tender-matrix](https://github.com/PerryLink/dsh-tender-matrix)** | |
420
+ | **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | |
421
+ | **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | |
422
+ | **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | |
423
+ | **[dsh-warranty-calc](https://github.com/PerryLink/dsh-warranty-calc)** | |
424
+ | **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | 🧊 फ़्रोज़न — रिपॉज़िटरी README देखें |
425
+ | **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | 🧊 फ़्रोज़न — रिपॉज़िटरी README देखें |
426
+ | **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | 🧊 फ़्रोज़न — रिपॉज़िटरी README देखें |
427
+ | **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | 🧊 फ़्रोज़न — रिपॉज़िटरी README देखें |
428
+ | **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | 🧊 फ़्रोज़न — रिपॉज़िटरी README देखें |
429
+ | **[dsh-background-agents](https://github.com/PerryLink/dsh-background-agents)** | 🚫 सेवानिवृत्त — रिपॉज़िटरी README देखें |
430
+ | **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | 🚫 सेवानिवृत्त — रिपॉज़िटरी README देखें |
431
+ | **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | 🚫 सेवानिवृत्त — रिपॉज़िटरी README देखें |
432
+
433
+ </details>
316
434
 
317
435
  ## License
318
436