dsh-lsp-actions 0.5.12 → 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 +28 -0
- package/README-es.md +175 -57
- package/README-hi.md +176 -58
- package/README-pt.md +175 -57
- package/README-zh.md +176 -58
- package/README.md +176 -63
- package/docs/assets/dsh-lsp-actions-demo.gif +0 -0
- package/docs/assets/dsh-lsp-actions-flow.svg +19 -0
- package/docs/assets/dsh-lsp-actions-hero.png +0 -0
- package/lib/client.d.ts +140 -3
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +82 -14
- package/lib/client.js.map +1 -1
- package/lib/editor/actions.d.ts.map +1 -1
- package/lib/editor/actions.js +12 -8
- package/lib/editor/actions.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/package.json +18 -16
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
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
|
+
|
|
11
|
+
## [0.5.15] - 2026-10-18
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- Add a 1280×720 hero and a 960×540, 4-second terminal GIF rendered from the test run; `screenshots.json` is an object array and `capture.json` records the command.
|
|
16
|
+
|
|
17
|
+
## [0.5.14] - 2026-10-18
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- Compatibility: `dshVersions` records `0.2.1-rc.2`; the devDependency and peer bands were already on the rc.2 line. `presentationMeta` is total on every tool (no `undefined` projection).
|
|
22
|
+
|
|
23
|
+
## [0.5.13] - 2026-10-17
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
|
|
27
|
+
- **Editor-protocol writes now carry the live fs actor (issue #11).** `fs/write-intent` and `fs/observed` were passed `undefined`, so an observation policy saw no owner and downgraded the intent to `createIfAbsent`, which refuses existing files. They now receive `{ agent: { session } }` from the editor run context.
|
|
28
|
+
- **Second push-only diagnostics no longer return an empty set (issue #10).** The pushed batch is retained with the document text it was produced from; when the text is unchanged and no new push arrives, the cached batch is reused instead of resolving `[]`. The cache is invalidated on didOpen/didChange.
|
|
29
|
+
- Compatibility: `engines.dsh` -> `>=0.2.1-0 <0.3.0` (the malformed `<0.3.0-0` upper bound is gone); devDependencies to `0.2.1-rc.2`; add `@deepseek-ai/dsh-working-directory`.
|
|
30
|
+
|
|
3
31
|
All notable changes to dsh-lsp-actions are documented here. The format follows
|
|
4
32
|
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
5
33
|
|
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
|
|
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
|
-

|
|
56
|
+
|
|
57
|
+
*Resumen del flujo: llamada → plugin → resultado. Los ejemplos siguientes usan la superficie de comandos real.*
|
|
44
58
|
|
|
45
|
-

|
|
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
|
-
|
|
96
|
+
### Ejemplos
|
|
84
97
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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
|
-

|
|
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
|
|
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
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
|
273
|
-
|
|
274
|
-
| **[dsh-
|
|
275
|
-
| **[dsh-
|
|
276
|
-
| **[dsh-
|
|
277
|
-
| **[dsh-
|
|
278
|
-
| **[dsh-
|
|
279
|
-
| **[dsh-
|
|
280
|
-
| **[dsh-
|
|
281
|
-
| **[dsh-
|
|
282
|
-
| **[dsh-
|
|
283
|
-
| **[dsh-
|
|
284
|
-
| **[dsh-
|
|
285
|
-
| **[dsh-
|
|
286
|
-
| **[dsh-
|
|
287
|
-
| **[dsh-
|
|
288
|
-
| **[dsh-
|
|
289
|
-
| **[dsh-
|
|
290
|
-
| **[dsh-
|
|
291
|
-
| **[dsh-
|
|
292
|
-
| **[dsh-
|
|
293
|
-
| **[dsh-
|
|
294
|
-
| **[dsh-
|
|
295
|
-
| **[dsh-
|
|
296
|
-
| **[dsh-
|
|
297
|
-
| **[dsh-
|
|
298
|
-
| **[dsh-
|
|
299
|
-
| **[dsh-
|
|
300
|
-
| **[dsh-
|
|
301
|
-
| **[dsh-
|
|
302
|
-
| **[dsh-
|
|
303
|
-
| **[dsh-
|
|
304
|
-
| **[dsh-
|
|
305
|
-
| **[dsh-
|
|
306
|
-
| **[dsh-
|
|
307
|
-
| **[dsh-
|
|
308
|
-
| **[dsh-
|
|
309
|
-
| **[dsh-
|
|
310
|
-
| **[dsh-
|
|
311
|
-
| **[dsh-
|
|
312
|
-
| **[dsh-
|
|
313
|
-
| **[dsh-
|
|
314
|
-
| **[dsh-
|
|
315
|
-
| **[dsh-
|
|
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
|
|