dsh-memento 0.5.25 → 0.5.28
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 +33 -0
- package/README-es.md +187 -57
- package/README-hi.md +188 -58
- package/README-pt.md +187 -57
- package/README-zh.md +188 -58
- package/README.md +191 -63
- package/client/client.js +170 -1
- package/package.json +12 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,10 +1,43 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.5.28] - 2026-10-22
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- **The floating entry is draggable and remembers its position (issue #21).** Pointer Events with `setPointerCapture` move `#mem-open`; a drag past 4px persists `{x,y}` in `localStorage` (`dsh.memento.fab.position.v1`), clamps into the viewport with an 8px margin, and re-clamps on `resize` / `orientationchange`. Double-click resets to the CSS default. The click that follows a drag is swallowed, and the suppression clears on the next task so a later click still opens the drawer.
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **Narrow screens no longer put the entry on top of the send button.** Below 640px the default position moves to `bottom: 132px`; once the user drags it, the stored position wins.
|
|
12
|
+
|
|
13
|
+
## [0.5.27] - 2026-10-18
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- 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.
|
|
18
|
+
|
|
19
|
+
## [0.5.26] - 2026-10-18
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- Compatibility: devDependencies to `0.2.1-rc.2`; add `@deepseek-ai/dsh-working-directory`; `dshVersions` includes `0.2.1-rc.2`. The peer range keeps the old-host corridors.
|
|
24
|
+
|
|
3
25
|
All notable changes to this project will be documented in this file.
|
|
4
26
|
|
|
5
27
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
28
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
29
|
|
|
30
|
+
## [Unreleased]
|
|
31
|
+
|
|
32
|
+
### Added
|
|
33
|
+
|
|
34
|
+
- **The README now carries the video walkthrough.** `docs/assets/dsh-memento-demo.mp4` — a 2 min 23 s narrated run, H.264 (Main @ 4.2) + AAC-LC stereo, 960×544, 1.87 MB — sits behind a click-to-open thumbnail (`docs/assets/dsh-memento-demo-video.png`: the documented terminal still with a play affordance, carrying no language-specific copy so all five READMEs share one asset). All five READMEs carry the block. Neither asset joins the published `files` list: the poster is referenced by absolute `raw.githubusercontent.com` URL, as the PNG and the GIF already were, and the MP4 by both a `github.com/blob` link and a raw direct-download link.
|
|
35
|
+
|
|
36
|
+
### Changed
|
|
37
|
+
|
|
38
|
+
- **The video is documented as a file to open, not as inline playback.** Two facts drive the wording, both checked against the hosts rather than assumed: GitHub's HTML sanitizer whitelists no `video`/`source` element, so a `<video>` tag in a README renders as nothing, and `raw.githubusercontent.com` serves `.mp4` as `application/octet-stream`, i.e. a download. The caption therefore says what to do — the thumbnail opens the MP4 file, and *Download raw file* is the fallback if it does not play on the page — rather than promising playback inside the README.
|
|
39
|
+
- **The `@alex-debap` credit is restated with the role named.** `0.5.24` introduced the credit; this release names the role (**product manager**), writes out the scope it covers, and drops the version anchor `0.5.24` used. Two claims are narrowed to what the code actually guarantees: the write-approval gate is enforced inside the service so that **no model path** can bypass it — an in-process holder of `ctx.memory` can still reach the store — and the character budgets are hard **per track and per layer**, not per track alone.
|
|
40
|
+
|
|
8
41
|
## [0.5.25] - 2026-10-12
|
|
9
42
|
|
|
10
43
|
### 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-memento
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
|
|
24
29
|
</div>
|
|
25
30
|
|
|
26
31
|
---
|
|
@@ -29,11 +34,18 @@
|
|
|
29
34
|
**📖 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/).
|
|
30
35
|
|
|
31
36
|
<!-- star-cta -->
|
|
37
|
+
## Install & uninstall
|
|
38
|
+
|
|
39
|
+
- **canal git** (último `main`): `dsh plugin --profile web add git+https://github.com/PerryLink/dsh-memento.git`.
|
|
40
|
+
- **canal npm** (versiones publicadas): `dsh plugin --profile web add dsh-memento`.
|
|
41
|
+
- **canal tarball**: `npm pack` en este repo, luego `dsh plugin --profile web add ./dsh-memento-<version>.tgz`.
|
|
42
|
+
- **desinstalar**: `dsh plugin --profile web remove dsh-memento` (la base de datos de memoria y los registros de sesión se conservan).
|
|
43
|
+
|
|
32
44
|
## ⭐ 如果它帮到了你
|
|
33
45
|
|
|
34
46
|
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.
|
|
35
47
|
|
|
36
|
-
*English:* part of a
|
|
48
|
+
*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.
|
|
37
49
|
|
|
38
50
|
## What is dsh-memento?
|
|
39
51
|
|
|
@@ -41,12 +53,17 @@ Memoria entre sesiones acotada, por capas, con puerta de aprobación y auditable
|
|
|
41
53
|
|
|
42
54
|
Una costura tipada `ctx.memory`, una puerta de aprobación de escritura que ninguna ruta del modelo puede eludir y una auditoría reconstruible — desde el par de aprobación más la tabla de auditoría del plugin, con la brecha del registro de sesión dicha en voz alta.
|
|
43
55
|
|
|
44
|
-

|
|
57
|
+
|
|
58
|
+
*Resumen del flujo: instalar → abrir panel → actuar. Los ejemplos siguientes usan la superficie de comandos real.*
|
|
45
59
|
|
|
46
|
-

|
|
47
60
|
|
|
48
61
|
*La misma ejecución, animada.*
|
|
49
62
|
|
|
63
|
+
[](https://github.com/PerryLink/dsh-memento/blob/main/docs/assets/dsh-memento-demo.mp4)
|
|
64
|
+
|
|
65
|
+
*▶ **Recorrido narrado de 2 min 23 s** — la miniatura abre el archivo MP4; si no se reproduce en la página, usa *Download raw file* allí ([MP4, 1,87 MB](https://github.com/PerryLink/dsh-memento/blob/main/docs/assets/dsh-memento-demo.mp4) · [descarga directa](https://raw.githubusercontent.com/PerryLink/dsh-memento/main/docs/assets/dsh-memento-demo.mp4)). GitHub elimina las etiquetas `<video>` de los README, así que el vídeo es un archivo que hay que abrir, no algo incrustado.*
|
|
66
|
+
|
|
50
67
|
## Compatibility
|
|
51
68
|
|
|
52
69
|
| Surface | Status |
|
|
@@ -84,12 +101,70 @@ dsh plugin --profile web add dsh-memento
|
|
|
84
101
|
dsh --profile web --dump-config | grep -A3 'id: memento'
|
|
85
102
|
```
|
|
86
103
|
|
|
87
|
-
|
|
104
|
+
### Ejemplos
|
|
88
105
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
106
|
+
Son los puntos de entrada reales; instala y llama a uno.
|
|
107
|
+
|
|
108
|
+
#### Ejemplo detallado
|
|
109
|
+
|
|
110
|
+
**Comando**
|
|
111
|
+
|
|
112
|
+
~~~sh
|
|
113
|
+
memory_stats
|
|
114
|
+
~~~
|
|
115
|
+
|
|
116
|
+
**Entrada**
|
|
117
|
+
|
|
118
|
+
~~~json
|
|
119
|
+
{"jsonrpc":"2.0","id":7,"method":"tools/call","params":{"name":"memory_stats","arguments":{}}}
|
|
120
|
+
~~~
|
|
121
|
+
|
|
122
|
+
**Salida**
|
|
123
|
+
|
|
124
|
+
~~~text
|
|
125
|
+
{
|
|
126
|
+
"total": 3,
|
|
127
|
+
"namespaces": [
|
|
128
|
+
{
|
|
129
|
+
"track": "agent",
|
|
130
|
+
"scope": "user-global",
|
|
131
|
+
"count": 1
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"track": "agent",
|
|
135
|
+
"scope": "workspace",
|
|
136
|
+
"count": 1
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"track": "user",
|
|
140
|
+
"scope": "workspace",
|
|
141
|
+
"count": 1
|
|
142
|
+
}
|
|
143
|
+
]
|
|
144
|
+
}
|
|
145
|
+
~~~
|
|
146
|
+
|
|
147
|
+
*Observado en `test/mcp.test.mjs:108-118 (fixture seed at 21-27); README.md:160-176`*
|
|
148
|
+
|
|
149
|
+
#### Rama de fallo
|
|
150
|
+
|
|
151
|
+
**Entrada**
|
|
152
|
+
|
|
153
|
+
~~~text
|
|
154
|
+
{"jsonrpc":"2.0","id":10,"method":"tools/call","params":{"name":"memory_search","arguments":{}}}
|
|
155
|
+
~~~
|
|
156
|
+
|
|
157
|
+
**Salida**
|
|
158
|
+
|
|
159
|
+
~~~text
|
|
160
|
+
{"jsonrpc":"2.0","id":10,"result":{"content":[{"type":"text","text":"invalid arguments: query must be a non-empty string"}],"isError":true}}
|
|
161
|
+
~~~
|
|
162
|
+
|
|
163
|
+
*Observado en `plugins/dsh-memento/lib/mcp.mjs:188; plugins/dsh-memento/test/mcp.test.mjs:126-127; reproduced via plugins/dsh-memento/bin/mcp-server.mjs`*
|
|
164
|
+
|
|
165
|
+
#### Ejemplos breves
|
|
166
|
+
|
|
167
|
+
- `/memory`
|
|
93
168
|
|
|
94
169
|
## Configuration
|
|
95
170
|
|
|
@@ -286,59 +361,114 @@ Evidencia estática: `dsh-plugin-doctor` K10–K13 dan `pass` en todas las compr
|
|
|
286
361
|
## Contributors
|
|
287
362
|
|
|
288
363
|
- [@Niuniu-Sir](https://github.com/Niuniu-Sir) — el informe de fallo de arranque en [issue #1](https://github.com/PerryLink/dsh-memento/issues/1) que llevó al fallback `~/.dsh` incluido en 0.3.1.
|
|
289
|
-
- [@alex-debap](https://github.com/alex-debap) —
|
|
364
|
+
- [@alex-debap](https://github.com/alex-debap) — **product manager**. Se ocupó de la forma del producto, no de su código, a lo largo de toda la línea de diseño desde el principio: la tesis de la costura y no otro almacén (una costura tipada `ctx.memory`, no otro almacén de memoria), la exigencia de que la puerta de aprobación de escritura se aplique dentro del servicio de modo que ninguna ruta del modelo pueda eludirla, en lugar de ser una convención de la capa de herramientas, y la garantía de auditoría de que toda escritura sea reconstruible desde el par de aprobación más la tabla de auditoría del propio plugin. Nombró el modelo de recuerdo acotado y por capas —dos pistas × dos capas, clave por agente, presupuestos de caracteres duros por pista y por capa— y defendió el almacenamiento local primero y sin credenciales (`0600`, SQLite bajo `$DSH_HOME`, sin red y sin claves). Llevó el trabajo de protocolo como una línea de producto: el ensayo público de `dsh-memory-protocol` v1, su registro de adaptadores y su suite de conformidad. Sostuvo la línea de alcance sobre lo que este plugin deliberadamente no hace.
|
|
290
365
|
|
|
291
366
|
## PerryLink DSH Plugin Family
|
|
292
367
|
|
|
293
|
-
Este proyecto
|
|
368
|
+
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.
|
|
294
369
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
|
299
|
-
|
|
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-
|
|
316
|
-
| **[dsh-
|
|
317
|
-
| **[dsh-
|
|
318
|
-
| **[dsh-
|
|
319
|
-
| **[dsh-
|
|
320
|
-
| **[dsh-
|
|
321
|
-
| **[dsh-
|
|
322
|
-
| **[dsh-
|
|
323
|
-
| **[dsh-
|
|
324
|
-
| **[dsh-
|
|
325
|
-
| **[dsh-
|
|
326
|
-
| **[dsh-
|
|
327
|
-
| **[dsh-
|
|
328
|
-
| **[dsh-
|
|
329
|
-
| **[dsh-
|
|
330
|
-
| **[dsh-
|
|
331
|
-
| **[dsh-
|
|
332
|
-
| **[dsh-
|
|
333
|
-
| **[dsh-
|
|
334
|
-
| **[dsh-
|
|
335
|
-
| **[dsh-
|
|
336
|
-
| **[dsh-
|
|
337
|
-
| **[dsh-
|
|
338
|
-
| **[dsh-
|
|
339
|
-
| **[dsh-
|
|
340
|
-
| **[dsh-
|
|
341
|
-
| **[dsh-
|
|
370
|
+
<details>
|
|
371
|
+
<summary>Expandir todos los plugins</summary>
|
|
372
|
+
|
|
373
|
+
| Plugin | Estado |
|
|
374
|
+
|---|---|
|
|
375
|
+
| **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | |
|
|
376
|
+
| **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | |
|
|
377
|
+
| **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | |
|
|
378
|
+
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | |
|
|
379
|
+
| **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | |
|
|
380
|
+
| **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | |
|
|
381
|
+
| **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | |
|
|
382
|
+
| **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | |
|
|
383
|
+
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | |
|
|
384
|
+
| **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | |
|
|
385
|
+
| **[dsh-contract-stance](https://github.com/PerryLink/dsh-contract-stance)** | |
|
|
386
|
+
| **[dsh-customs-doc-check](https://github.com/PerryLink/dsh-customs-doc-check)** | |
|
|
387
|
+
| **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | |
|
|
388
|
+
| **[dsh-demurrage-ledger](https://github.com/PerryLink/dsh-demurrage-ledger)** | |
|
|
389
|
+
| **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | |
|
|
390
|
+
| **[dsh-drill-script-check](https://github.com/PerryLink/dsh-drill-script-check)** | |
|
|
391
|
+
| **[dsh-eia-guide-check](https://github.com/PerryLink/dsh-eia-guide-check)** | |
|
|
392
|
+
| **[dsh-emergency-plan](https://github.com/PerryLink/dsh-emergency-plan)** | |
|
|
393
|
+
| **[dsh-essay-rubric-check](https://github.com/PerryLink/dsh-essay-rubric-check)** | |
|
|
394
|
+
| **[dsh-evidence-check](https://github.com/PerryLink/dsh-evidence-check)** | |
|
|
395
|
+
| **[dsh-export-ctl-check](https://github.com/PerryLink/dsh-export-ctl-check)** | |
|
|
396
|
+
| **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | |
|
|
397
|
+
| **[dsh-fmea-table-check](https://github.com/PerryLink/dsh-fmea-table-check)** | |
|
|
398
|
+
| **[dsh-forecast-penalty](https://github.com/PerryLink/dsh-forecast-penalty)** | |
|
|
399
|
+
| **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | |
|
|
400
|
+
| **[dsh-github](https://github.com/PerryLink/dsh-github)** | |
|
|
401
|
+
| **[dsh-gongwen-flow-check](https://github.com/PerryLink/dsh-gongwen-flow-check)** | |
|
|
402
|
+
| **[dsh-gongwen-word-check](https://github.com/PerryLink/dsh-gongwen-word-check)** | |
|
|
403
|
+
| **[dsh-guard-plan-qc](https://github.com/PerryLink/dsh-guard-plan-qc)** | |
|
|
404
|
+
| **[dsh-hazchem-check](https://github.com/PerryLink/dsh-hazchem-check)** | |
|
|
405
|
+
| **[dsh-hazplan-check](https://github.com/PerryLink/dsh-hazplan-check)** | |
|
|
406
|
+
| **[dsh-hidden-risk-map](https://github.com/PerryLink/dsh-hidden-risk-map)** | |
|
|
407
|
+
| **[dsh-hs-classify](https://github.com/PerryLink/dsh-hs-classify)** | |
|
|
408
|
+
| **[dsh-icd-rule-check](https://github.com/PerryLink/dsh-icd-rule-check)** | |
|
|
409
|
+
| **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | |
|
|
410
|
+
| **[dsh-lawcite-adapter](https://github.com/PerryLink/dsh-lawcite-adapter)** | |
|
|
411
|
+
| **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | |
|
|
412
|
+
| **[dsh-lc-doc-check](https://github.com/PerryLink/dsh-lc-doc-check)** | |
|
|
413
|
+
| **[dsh-learning-gap-check](https://github.com/PerryLink/dsh-learning-gap-check)** | |
|
|
414
|
+
| **[dsh-library](https://github.com/PerryLink/dsh-library)** | |
|
|
415
|
+
| **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | |
|
|
416
|
+
| **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | |
|
|
417
|
+
| **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | |
|
|
418
|
+
| **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | |
|
|
419
|
+
| **[dsh-medrec-qc](https://github.com/PerryLink/dsh-medrec-qc)** | |
|
|
420
|
+
| **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | |
|
|
421
|
+
| **[dsh-nsfc-form-check](https://github.com/PerryLink/dsh-nsfc-form-check)** | |
|
|
422
|
+
| **[dsh-nurse-record-check](https://github.com/PerryLink/dsh-nurse-record-check)** | |
|
|
423
|
+
| **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | |
|
|
424
|
+
| **[dsh-origin-rvc-check](https://github.com/PerryLink/dsh-origin-rvc-check)** | |
|
|
425
|
+
| **[dsh-ota-review-check](https://github.com/PerryLink/dsh-ota-review-check)** | |
|
|
426
|
+
| **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | |
|
|
427
|
+
| **[dsh-paper-doc-adapter](https://github.com/PerryLink/dsh-paper-doc-adapter)** | |
|
|
428
|
+
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | |
|
|
429
|
+
| **[dsh-permit-report-check](https://github.com/PerryLink/dsh-permit-report-check)** | |
|
|
430
|
+
| **[dsh-pipeline-check](https://github.com/PerryLink/dsh-pipeline-check)** | |
|
|
431
|
+
| **[dsh-pleading-draft](https://github.com/PerryLink/dsh-pleading-draft)** | |
|
|
432
|
+
| **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | |
|
|
433
|
+
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | |
|
|
434
|
+
| **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | |
|
|
435
|
+
| **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | |
|
|
436
|
+
| **[dsh-policy-brief-draft](https://github.com/PerryLink/dsh-policy-brief-draft)** | |
|
|
437
|
+
| **[dsh-power-loss-split](https://github.com/PerryLink/dsh-power-loss-split)** | |
|
|
438
|
+
| **[dsh-power-ticket-check](https://github.com/PerryLink/dsh-power-ticket-check)** | |
|
|
439
|
+
| **[dsh-ppap-check](https://github.com/PerryLink/dsh-ppap-check)** | |
|
|
440
|
+
| **[dsh-protest-deadline](https://github.com/PerryLink/dsh-protest-deadline)** | |
|
|
441
|
+
| **[dsh-railway-window](https://github.com/PerryLink/dsh-railway-window)** | |
|
|
442
|
+
| **[dsh-repair-order-qc](https://github.com/PerryLink/dsh-repair-order-qc)** | |
|
|
443
|
+
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | |
|
|
444
|
+
| **[dsh-review-reply-check](https://github.com/PerryLink/dsh-review-reply-check)** | |
|
|
445
|
+
| **[dsh-rulefile-check](https://github.com/PerryLink/dsh-rulefile-check)** | |
|
|
446
|
+
| **[dsh-safety-brief-check](https://github.com/PerryLink/dsh-safety-brief-check)** | |
|
|
447
|
+
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | |
|
|
448
|
+
| **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | |
|
|
449
|
+
| **[dsh-site-log-check](https://github.com/PerryLink/dsh-site-log-check)** | |
|
|
450
|
+
| **[dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security)** | |
|
|
451
|
+
| **[dsh-soe-decision-check](https://github.com/PerryLink/dsh-soe-decision-check)** | |
|
|
452
|
+
| **[dsh-soilwater-check](https://github.com/PerryLink/dsh-soilwater-check)** | |
|
|
453
|
+
| **[dsh-sop-sync-check](https://github.com/PerryLink/dsh-sop-sync-check)** | |
|
|
454
|
+
| **[dsh-spc-gbt-adapter](https://github.com/PerryLink/dsh-spc-gbt-adapter)** | |
|
|
455
|
+
| **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | |
|
|
456
|
+
| **[dsh-tender-extract](https://github.com/PerryLink/dsh-tender-extract)** | |
|
|
457
|
+
| **[dsh-tender-matrix](https://github.com/PerryLink/dsh-tender-matrix)** | |
|
|
458
|
+
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | |
|
|
459
|
+
| **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | |
|
|
460
|
+
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | |
|
|
461
|
+
| **[dsh-warranty-calc](https://github.com/PerryLink/dsh-warranty-calc)** | |
|
|
462
|
+
| **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | 🧊 CONGELADO — ver el README del repositorio |
|
|
463
|
+
| **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | 🧊 CONGELADO — ver el README del repositorio |
|
|
464
|
+
| **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | 🧊 CONGELADO — ver el README del repositorio |
|
|
465
|
+
| **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | 🧊 CONGELADO — ver el README del repositorio |
|
|
466
|
+
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | 🧊 CONGELADO — ver el README del repositorio |
|
|
467
|
+
| **[dsh-background-agents](https://github.com/PerryLink/dsh-background-agents)** | 🚫 RETIRADO — ver el README del repositorio |
|
|
468
|
+
| **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | 🚫 RETIRADO — ver el README del repositorio |
|
|
469
|
+
| **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | 🚫 RETIRADO — ver el README del repositorio |
|
|
470
|
+
|
|
471
|
+
</details>
|
|
342
472
|
|
|
343
473
|
## License
|
|
344
474
|
|