dsh-permission-rules 0.7.19 → 0.7.21
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 +18 -0
- package/README-es.md +142 -105
- package/README-hi.md +142 -105
- package/README-pt.md +142 -105
- package/README-zh.md +142 -105
- package/README.md +144 -110
- package/docs/assets/dsh-permission-rules-flow.svg +19 -0
- package/package.json +39 -37
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
## v0.7.21 - 2026-11-05
|
|
2
|
+
|
|
3
|
+
### Changed
|
|
4
|
+
|
|
5
|
+
- **Host 0.2.2 line support.** devDependencies move from 0.2.1-rc.2 to 0.2.2-rc.1, cordis to 4.1.0 / include 1.1.0 / loader 1.1.0, and schemastery to ~3.19.0 so a single copy resolves against `@deepseek-ai/dsh-llm` 0.2.2. `engines.dsh` appends `>=0.2.2-0 <0.3.0` (append-only), `engines.node` becomes `^22.19.0 || >=24.9.0`, and `dshWorkshop.compatibility.dshVersions` appends `0.2.2-rc.1`.
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- Add `@deepseek-ai/dsh-package-manifest`: `@deepseek-ai/dsh-llm` 0.2.2's published types import it but its manifest does not declare it.
|
|
10
|
+
- **The test harness mounts the session projection registry before the approval service.** On the 0.2.2 line `ApprovalService` injects `sessionProjections` and keeps both the session policy and the open-turn guard in a projection it registers in `[Service.init]`, so mounting the service alone never published it and the auto-review integration specs died on `Cannot read properties of undefined (reading 'request')`. The harness now mounts `SessionProjectionRegistry` between the session store and the approval service, the same order the host composition uses. The plugin itself never calls `ctx.approval` — it only returns `{ kind: 'ask' }` decisions and writes its own audit events — so no plugin-side code change was needed.
|
|
11
|
+
- The polling-fallback spec no longer assumes a non-WSL runner: a WSL kernel string in `/proc/version` makes the real detector poll every path, which is the documented behaviour, so the native-watcher branch is now pinned by mocking the detector off (symmetric with the existing polling test) instead of by the runner's kernel.
|
|
12
|
+
|
|
13
|
+
## v0.7.20 - 2026-10-18
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- 0.7.19 could not be approved from the stage-only workflow; this patch is the same dependency change, published directly from a clean tree.
|
|
18
|
+
|
|
1
19
|
## v0.7.19 - 2026-10-18
|
|
2
20
|
|
|
3
21
|
### Changed
|
package/README-es.md
CHANGED
|
@@ -52,9 +52,10 @@ Reglas de permisos declarativas estilo Claude Code para DeepSeek Harness.
|
|
|
52
52
|
|
|
53
53
|
Las reglas deciden lo conocido. Un modelo revisor decide lo que no lo es.
|
|
54
54
|
|
|
55
|
-

|
|
56
|
+
|
|
57
|
+
*Resumen del flujo: solicitud → política/revisión → veredicto. Los ejemplos siguientes usan la superficie de comandos real.*
|
|
56
58
|
|
|
57
|
-

|
|
58
59
|
|
|
59
60
|
*La misma ejecución, animada.*
|
|
60
61
|
|
|
@@ -135,6 +136,46 @@ dsh plugin --profile web add dsh-permission-rules
|
|
|
135
136
|
dsh --profile web --dump-config | grep -A4 'id: permission-rules'
|
|
136
137
|
```
|
|
137
138
|
|
|
139
|
+
### Ejemplos
|
|
140
|
+
|
|
141
|
+
Son los puntos de entrada reales; instala y llama a uno.
|
|
142
|
+
|
|
143
|
+
#### Ejemplo detallado
|
|
144
|
+
|
|
145
|
+
**Comando**
|
|
146
|
+
|
|
147
|
+
~~~sh
|
|
148
|
+
/rules test bash {"command":"git push origin main","cwd":"src/secrets/app"}
|
|
149
|
+
~~~
|
|
150
|
+
|
|
151
|
+
**Salida**
|
|
152
|
+
|
|
153
|
+
~~~text
|
|
154
|
+
"bash" matches rule 1 (deny): 禁止 push 到受保护路径
|
|
155
|
+
~~~
|
|
156
|
+
|
|
157
|
+
*Observado en `test/command.spec.ts:204-219 (assertions at :209-213); src/prose.ts:121`*
|
|
158
|
+
|
|
159
|
+
#### Rama de fallo
|
|
160
|
+
|
|
161
|
+
**Entrada**
|
|
162
|
+
|
|
163
|
+
~~~text
|
|
164
|
+
/rules test bash {not json
|
|
165
|
+
~~~
|
|
166
|
+
|
|
167
|
+
**Salida**
|
|
168
|
+
|
|
169
|
+
~~~text
|
|
170
|
+
Invalid JSON arguments "{not json": the arguments must parse as JSON.
|
|
171
|
+
~~~
|
|
172
|
+
|
|
173
|
+
*Observado en `plugins/dsh-permission-rules/src/prose.ts:123; plugins/dsh-permission-rules/src/runtime.ts:1266-1272; plugins/dsh-permission-rules/test/command.spec.ts:221-228`*
|
|
174
|
+
|
|
175
|
+
#### Ejemplos breves
|
|
176
|
+
|
|
177
|
+
- `tools/pre-execute`
|
|
178
|
+
|
|
138
179
|
## Configuration
|
|
139
180
|
|
|
140
181
|
Todos los parámetros son campos Schemastery `Config` (modificables desde cordis.yml). Una sobrescritura dirigida por id reemplaza toda la fila — reafirma cada clave que necesites. En un host `0.1.7-alpha` cada campo se declara `.volatile()`, así que TAMBIÉN se edita in situ desde la página de Plugins: la edición se confirma en las referencias en ejecución sin remontar el plugin, el runtime lee el valor nuevo en su siguiente uso, y un cambio en `network.proxyPort`, `proxyBind`, `injectEnv` o `noProxy` revincula el proxy local de inmediato. Los límites numéricos viven en el esquema, y el editor de configuración resuelve la configuración fusionada contra ese esquema antes de persistir, así que un valor fuera de rango se rechaza en el momento de escribir. En un host cuyo Schemastery sea anterior a `volatile()` estos campos solo se cambian por cordis.yml.
|
|
@@ -288,112 +329,108 @@ Evidencia estática: `dsh-plugin-doctor` K10–K13 dan `pass` en todas las compr
|
|
|
288
329
|
|
|
289
330
|
## PerryLink DSH Plugin Family
|
|
290
331
|
|
|
291
|
-
Este proyecto
|
|
332
|
+
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.
|
|
292
333
|
|
|
293
334
|
<details>
|
|
294
|
-
<summary>Expandir los
|
|
335
|
+
<summary>Expandir todos los plugins</summary>
|
|
295
336
|
|
|
296
|
-
| Plugin |
|
|
297
|
-
|
|
298
|
-
| **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** |
|
|
299
|
-
| **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** |
|
|
300
|
-
| **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** |
|
|
301
|
-
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** |
|
|
302
|
-
| **[dsh-
|
|
303
|
-
| **[dsh-bid-
|
|
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-
|
|
342
|
-
| **[dsh-
|
|
343
|
-
| **[dsh-
|
|
344
|
-
| **[dsh-
|
|
345
|
-
| **[dsh-
|
|
346
|
-
| **[dsh-
|
|
347
|
-
| **[dsh-
|
|
348
|
-
| **[dsh-
|
|
349
|
-
| **[dsh-
|
|
350
|
-
| **[dsh-
|
|
351
|
-
| **[dsh-
|
|
352
|
-
| **[dsh-
|
|
353
|
-
| **[dsh-
|
|
354
|
-
| **[dsh-
|
|
355
|
-
| **[dsh-
|
|
356
|
-
| **[dsh-
|
|
357
|
-
| **[dsh-
|
|
358
|
-
| **[dsh-
|
|
359
|
-
| **[dsh-
|
|
360
|
-
| **[dsh-
|
|
361
|
-
| **[dsh-
|
|
362
|
-
| **[dsh-
|
|
363
|
-
| **[dsh-
|
|
364
|
-
| **[dsh-
|
|
365
|
-
| **[dsh-
|
|
366
|
-
| **[dsh-
|
|
367
|
-
| **[dsh-
|
|
368
|
-
| **[dsh-
|
|
369
|
-
| **[dsh-
|
|
370
|
-
| **[dsh-
|
|
371
|
-
| **[dsh-
|
|
372
|
-
| **[dsh-
|
|
373
|
-
| **[dsh-
|
|
374
|
-
| **[dsh-
|
|
375
|
-
| **[dsh-
|
|
376
|
-
| **[dsh-
|
|
377
|
-
| **[dsh-
|
|
378
|
-
| **[dsh-
|
|
379
|
-
| **[dsh-
|
|
380
|
-
| **[dsh-
|
|
381
|
-
| **[dsh-
|
|
382
|
-
| **[dsh-
|
|
383
|
-
| **[dsh-
|
|
384
|
-
| **[dsh-
|
|
385
|
-
| **[dsh-
|
|
386
|
-
| **[dsh-
|
|
387
|
-
| **[dsh-
|
|
388
|
-
| **[dsh-
|
|
389
|
-
| **[dsh-
|
|
390
|
-
| **[dsh-
|
|
391
|
-
| **[dsh-
|
|
392
|
-
| **[dsh-
|
|
393
|
-
|
|
394
|
-
</details>
|
|
395
|
-
|
|
396
|
-
</details>
|
|
337
|
+
| Plugin | Estado |
|
|
338
|
+
|---|---|
|
|
339
|
+
| **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | |
|
|
340
|
+
| **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | |
|
|
341
|
+
| **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | |
|
|
342
|
+
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | |
|
|
343
|
+
| **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | |
|
|
344
|
+
| **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | |
|
|
345
|
+
| **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | |
|
|
346
|
+
| **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | |
|
|
347
|
+
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | |
|
|
348
|
+
| **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | |
|
|
349
|
+
| **[dsh-contract-stance](https://github.com/PerryLink/dsh-contract-stance)** | |
|
|
350
|
+
| **[dsh-customs-doc-check](https://github.com/PerryLink/dsh-customs-doc-check)** | |
|
|
351
|
+
| **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | |
|
|
352
|
+
| **[dsh-demurrage-ledger](https://github.com/PerryLink/dsh-demurrage-ledger)** | |
|
|
353
|
+
| **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | |
|
|
354
|
+
| **[dsh-drill-script-check](https://github.com/PerryLink/dsh-drill-script-check)** | |
|
|
355
|
+
| **[dsh-eia-guide-check](https://github.com/PerryLink/dsh-eia-guide-check)** | |
|
|
356
|
+
| **[dsh-emergency-plan](https://github.com/PerryLink/dsh-emergency-plan)** | |
|
|
357
|
+
| **[dsh-essay-rubric-check](https://github.com/PerryLink/dsh-essay-rubric-check)** | |
|
|
358
|
+
| **[dsh-evidence-check](https://github.com/PerryLink/dsh-evidence-check)** | |
|
|
359
|
+
| **[dsh-export-ctl-check](https://github.com/PerryLink/dsh-export-ctl-check)** | |
|
|
360
|
+
| **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | |
|
|
361
|
+
| **[dsh-fmea-table-check](https://github.com/PerryLink/dsh-fmea-table-check)** | |
|
|
362
|
+
| **[dsh-forecast-penalty](https://github.com/PerryLink/dsh-forecast-penalty)** | |
|
|
363
|
+
| **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | |
|
|
364
|
+
| **[dsh-github](https://github.com/PerryLink/dsh-github)** | |
|
|
365
|
+
| **[dsh-gongwen-flow-check](https://github.com/PerryLink/dsh-gongwen-flow-check)** | |
|
|
366
|
+
| **[dsh-gongwen-word-check](https://github.com/PerryLink/dsh-gongwen-word-check)** | |
|
|
367
|
+
| **[dsh-guard-plan-qc](https://github.com/PerryLink/dsh-guard-plan-qc)** | |
|
|
368
|
+
| **[dsh-hazchem-check](https://github.com/PerryLink/dsh-hazchem-check)** | |
|
|
369
|
+
| **[dsh-hazplan-check](https://github.com/PerryLink/dsh-hazplan-check)** | |
|
|
370
|
+
| **[dsh-hidden-risk-map](https://github.com/PerryLink/dsh-hidden-risk-map)** | |
|
|
371
|
+
| **[dsh-hs-classify](https://github.com/PerryLink/dsh-hs-classify)** | |
|
|
372
|
+
| **[dsh-icd-rule-check](https://github.com/PerryLink/dsh-icd-rule-check)** | |
|
|
373
|
+
| **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | |
|
|
374
|
+
| **[dsh-lawcite-adapter](https://github.com/PerryLink/dsh-lawcite-adapter)** | |
|
|
375
|
+
| **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | |
|
|
376
|
+
| **[dsh-lc-doc-check](https://github.com/PerryLink/dsh-lc-doc-check)** | |
|
|
377
|
+
| **[dsh-learning-gap-check](https://github.com/PerryLink/dsh-learning-gap-check)** | |
|
|
378
|
+
| **[dsh-library](https://github.com/PerryLink/dsh-library)** | |
|
|
379
|
+
| **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | |
|
|
380
|
+
| **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | |
|
|
381
|
+
| **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | |
|
|
382
|
+
| **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | |
|
|
383
|
+
| **[dsh-medrec-qc](https://github.com/PerryLink/dsh-medrec-qc)** | |
|
|
384
|
+
| **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | |
|
|
385
|
+
| **[dsh-nsfc-form-check](https://github.com/PerryLink/dsh-nsfc-form-check)** | |
|
|
386
|
+
| **[dsh-nurse-record-check](https://github.com/PerryLink/dsh-nurse-record-check)** | |
|
|
387
|
+
| **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | |
|
|
388
|
+
| **[dsh-origin-rvc-check](https://github.com/PerryLink/dsh-origin-rvc-check)** | |
|
|
389
|
+
| **[dsh-ota-review-check](https://github.com/PerryLink/dsh-ota-review-check)** | |
|
|
390
|
+
| **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | |
|
|
391
|
+
| **[dsh-paper-doc-adapter](https://github.com/PerryLink/dsh-paper-doc-adapter)** | |
|
|
392
|
+
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | |
|
|
393
|
+
| **[dsh-permit-report-check](https://github.com/PerryLink/dsh-permit-report-check)** | |
|
|
394
|
+
| **[dsh-pipeline-check](https://github.com/PerryLink/dsh-pipeline-check)** | |
|
|
395
|
+
| **[dsh-pleading-draft](https://github.com/PerryLink/dsh-pleading-draft)** | |
|
|
396
|
+
| **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | |
|
|
397
|
+
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | |
|
|
398
|
+
| **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | |
|
|
399
|
+
| **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | |
|
|
400
|
+
| **[dsh-policy-brief-draft](https://github.com/PerryLink/dsh-policy-brief-draft)** | |
|
|
401
|
+
| **[dsh-power-loss-split](https://github.com/PerryLink/dsh-power-loss-split)** | |
|
|
402
|
+
| **[dsh-power-ticket-check](https://github.com/PerryLink/dsh-power-ticket-check)** | |
|
|
403
|
+
| **[dsh-ppap-check](https://github.com/PerryLink/dsh-ppap-check)** | |
|
|
404
|
+
| **[dsh-protest-deadline](https://github.com/PerryLink/dsh-protest-deadline)** | |
|
|
405
|
+
| **[dsh-railway-window](https://github.com/PerryLink/dsh-railway-window)** | |
|
|
406
|
+
| **[dsh-repair-order-qc](https://github.com/PerryLink/dsh-repair-order-qc)** | |
|
|
407
|
+
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | |
|
|
408
|
+
| **[dsh-review-reply-check](https://github.com/PerryLink/dsh-review-reply-check)** | |
|
|
409
|
+
| **[dsh-rulefile-check](https://github.com/PerryLink/dsh-rulefile-check)** | |
|
|
410
|
+
| **[dsh-safety-brief-check](https://github.com/PerryLink/dsh-safety-brief-check)** | |
|
|
411
|
+
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | |
|
|
412
|
+
| **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | |
|
|
413
|
+
| **[dsh-site-log-check](https://github.com/PerryLink/dsh-site-log-check)** | |
|
|
414
|
+
| **[dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security)** | |
|
|
415
|
+
| **[dsh-soe-decision-check](https://github.com/PerryLink/dsh-soe-decision-check)** | |
|
|
416
|
+
| **[dsh-soilwater-check](https://github.com/PerryLink/dsh-soilwater-check)** | |
|
|
417
|
+
| **[dsh-sop-sync-check](https://github.com/PerryLink/dsh-sop-sync-check)** | |
|
|
418
|
+
| **[dsh-spc-gbt-adapter](https://github.com/PerryLink/dsh-spc-gbt-adapter)** | |
|
|
419
|
+
| **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | |
|
|
420
|
+
| **[dsh-tender-extract](https://github.com/PerryLink/dsh-tender-extract)** | |
|
|
421
|
+
| **[dsh-tender-matrix](https://github.com/PerryLink/dsh-tender-matrix)** | |
|
|
422
|
+
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | |
|
|
423
|
+
| **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | |
|
|
424
|
+
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | |
|
|
425
|
+
| **[dsh-warranty-calc](https://github.com/PerryLink/dsh-warranty-calc)** | |
|
|
426
|
+
| **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | 🧊 CONGELADO — ver el README del repositorio |
|
|
427
|
+
| **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | 🧊 CONGELADO — ver el README del repositorio |
|
|
428
|
+
| **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | 🧊 CONGELADO — ver el README del repositorio |
|
|
429
|
+
| **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | 🧊 CONGELADO — ver el README del repositorio |
|
|
430
|
+
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | 🧊 CONGELADO — ver el README del repositorio |
|
|
431
|
+
| **[dsh-background-agents](https://github.com/PerryLink/dsh-background-agents)** | 🚫 RETIRADO — ver el README del repositorio |
|
|
432
|
+
| **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | 🚫 RETIRADO — ver el README del repositorio |
|
|
433
|
+
| **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | 🚫 RETIRADO — ver el README del repositorio |
|
|
397
434
|
|
|
398
435
|
</details>
|
|
399
436
|
|