dsh-lsp-actions 0.5.0 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,7 +3,29 @@
3
3
  All notable changes to dsh-lsp-actions are documented here. The format follows
4
4
  [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
5
5
 
6
- ## [Unreleased]
6
+ ## [0.5.2] - 2026-09-18
7
+
8
+ ### Fixed
9
+
10
+ - A mount disposed inside the executable probe — the widest async window in the plugin (PATH lookups plus `--version` spawns) — no longer reaches the tool registration effect. The apply frame captures the fiber generation before the probe and registers nothing when it changed, so an unload/reload round trip can no longer create registrations against a dead fiber (`INACTIVE_EFFECT`) or leave the eight tools missing on the remount.
11
+
12
+ ### Added
13
+
14
+ - `dsh.manifestVersion: 1` and the canonical three-clause `engines.dsh` range.
15
+
16
+ ### Internal
17
+
18
+ - The mounted seam's vintage is recorded from the first real action attempt and cached per seam instance: the published four-operation seam rejects an action with a code-less error, and that `legacy` answer now skips the guaranteed-failing query on every later call. New `probeSeamVintage` / `classifySeamAttempt` exports (`src/seam.ts`) carry the classification as an asserted invariant.
19
+ - `verify:artifacts` now fails when the published `ctx.lsp` seam gains an action operation or stops documenting "exactly the four operations" — that is the signal to dismantle the plugin's own LSP client instead of shipping a duplicate stack. No user-visible behavior change.
20
+
21
+ ## [0.5.1] - 2026-09-12
22
+
23
+ ### Changed
24
+
25
+ - Rename the four translated READMEs to `README-<lang>.md`. npm selects the package-page readme as the first markdown file matching its `{README,README.*}` glob (`@npmcli/package-json`, publish path), and that glob order puts `README.<lang>.md` ahead of `README.md` — so npm was serving the Simplified-Chinese file for this package too (measured on 15/15 sampled packages of the family). The new names sit outside the glob, so the English source is served again. No content changed apart from the language-switcher link each translation holds to its siblings, and the repo readme gate still passes. Takes effect with the next release; an already-published version cannot gain a corrected readme retroactively.
26
+
27
+ - The release workflow now creates the GitHub Release itself, with the body taken from this version's CHANGELOG section. Until now a `v*` tag published to npm and stopped there, so every Release page had to be created by hand afterwards.
28
+ - Pin the `@deepseek-ai/dsh-*` dev/test dependencies to the published `0.1.5-rc.2` line and record `0.1.5-rc.2` in `dshWorkshop.compatibility.dshVersions`; the monthly Compat workflow now runs against `0.1.5-rc.2`. The peer range `>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0` is unchanged, so no supported host line is dropped.
7
29
 
8
30
  ## [0.5.0] - 2026-09-10
9
31
 
@@ -8,6 +8,7 @@
8
8
  *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.*
9
9
 
10
10
  [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
11
+ [![Gitee](https://img.shields.io/badge/Gitee-mirror-c71d23?logo=gitee)](https://gitee.com/perrylink/dsh-lsp-actions)
11
12
  [![DSH plugin](https://img.shields.io/badge/dsh--plugin-✅-green)](https://github.com/topics/dsh-plugin)
12
13
  [![dsh-doctor](https://raw.githubusercontent.com/PerryLink/dsh-plugin-doctor/main/badges/PerryLink__dsh-lsp-actions.svg)](https://github.com/PerryLink/dsh-plugin-doctor#verified-徽章)
13
14
  [![Node](https://img.shields.io/badge/node-%5E22.19%20%7C%7C%20%3E%3D24-brightgreen.svg)](#)
@@ -16,7 +17,7 @@
16
17
  [![npm version](https://img.shields.io/npm/v/dsh-lsp-actions)](https://www.npmjs.com/package/dsh-lsp-actions)
17
18
  [![npm downloads](https://img.shields.io/npm/dm/dsh-lsp-actions)](https://www.npmjs.com/package/dsh-lsp-actions)
18
19
 
19
- [English](README.md) · [简体中文](README.zh.md) · [Español](README.es.md) · [Português](README.pt.md) · [हिन्दी](README.hi.md)
20
+ [English](README.md) · [简体中文](README-zh.md) · [Español](README-es.md) · [Português](README-pt.md) · [हिन्दी](README-hi.md)
20
21
 
21
22
  </div>
22
23
 
@@ -26,7 +27,7 @@
26
27
 
27
28
  | Surface | Status |
28
29
  |---|---|
29
- | Harness | DeepSeek Harness `dsh-v0.1.5-rc.1` (compatibilidad declarada para `>=0.1.2-rc.1 <0.2.0 \|\| >=0.1.5-alpha.1 <0.2.0`); el plugin no escribe eventos de sesión propios - el host registra los eventos estándar tool/call + tool/result. Verificado el 2026-09-10 contra el checkout master dsh-v0.1.5-rc.1 (cadena de gates completa + smoke de instalación de perfil). |
30
+ | Harness | DeepSeek Harness `dsh-v0.1.6-alpha.2` (compatibilidad declarada para `>=0.1.2-rc.1 <0.2.0 \|\| >=0.1.5-alpha.1 <0.2.0 \|\| >=0.1.6-0 <0.2.0`); el plugin no escribe eventos de sesión propios - el host registra los eventos estándar tool/call + tool/result. El seam publicado aún solo tiene las cuatro operaciones legacy, así que el plugin conserva su propio cliente y registra ese vintage en la primera llamada de acción. Verificado el 2026-09-18 (doble typecheck + suite completa + puertas self-contained/artifacts). |
30
31
  | Node | `^22.19.0 \|\| >=24.0.0` |
31
32
  | Platforms | Todas (host puro; subprocesos + sistema de archivos, sin red) |
32
33
  | Model | Cualquiera (las herramientas son independientes del modelo; el plugin nunca llama a un modelo) |
@@ -219,7 +220,7 @@ pnpm run prepublishOnly # tsc --noEmitOnError (runs before publish)
219
220
 
220
221
  ## PerryLink DSH Plugin Family
221
222
 
222
- Este proyecto es uno de los [37 complementos de DeepSeek Harness](https://github.com/PerryLink) mantenidos por [PerryLink](https://github.com/PerryLink). Si este te ayuda, probablemente los demás también:
223
+ Este proyecto es uno de los [40 complementos de DeepSeek Harness](https://github.com/PerryLink) mantenidos por [PerryLink](https://github.com/PerryLink). Si este te ayuda, probablemente los demás también:
223
224
 
224
225
  | Plugin | One-liner |
225
226
  |---|---|
@@ -249,6 +250,7 @@ Este proyecto es uno de los [37 complementos de DeepSeek Harness](https://github
249
250
  | **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | Reglas de permisos declarativas allow/deny/ask estilo Claude Code con auditoría | |
250
251
  | **[dsh-personal-directive](https://github.com/PerryLink/dsh-personal-directive)** | Inyector de directivas personales con interruptor en la barra superior (edición framework) |
251
252
  | **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | Base de conocimiento de desarrollo de plugins como habilidad de agente bajo demanda | |
253
+ | **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | Zero-dependency static + sandbox smoke detector for DSH plugins | |
252
254
  | **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | Motor de informes de investigación verificables con evidencia direccionada por contenido | |
253
255
  | **[dsh-score](https://github.com/PerryLink/dsh-score)** | Puntuación de calidad multidimensional para plugins de DeepSeek Harness. | |
254
256
  | **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | Fija sesiones en la barra lateral web con orden durable | |
@@ -258,7 +260,16 @@ Este proyecto es uno de los [37 complementos de DeepSeek Harness](https://github
258
260
  | **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | Pruebas de instalación y humo aisladas para plugins de DeepSeek Harness. | |
259
261
  | **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | Puente de tareas TickTick/Dida365: panel de cabecera de sesión + 11 herramientas |
260
262
  | **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | Traducción de parámetros entre proveedores y reparación determinista de JSON para DeepSeek Harness. | |
261
- | **[dsh-wechat](https://github.com/PerryLink/dsh-wechat)** | Puente WeChat ↔ DSH (bot Tencent iLink): texto/imagen/archivo/voz, aprobaciones en el chat |
263
+ | **[dsh-wechat](https://github.com/pan17/dsh-wechat)** | Puente WeChat ↔ DSH (bot Tencent iLink): texto/imagen/archivo/voz, aprobaciones en el chat |
264
+ | **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | Automatic strong/cheap model-tier routing with deterministic risk guards and a `/tier` command | |
265
+ | **[dsh-catalog](https://github.com/PerryLink/dsh-catalog)** | DSH Desktop Market standard catalog source for the PerryLink family | |
266
+ | **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | Read-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence | |
267
+ | **[dsh-kit](https://github.com/PerryLink/dsh-kit)** | One-command starter pack that installs the core family | |
268
+ | **[dsh-plugin-certification](https://github.com/PerryLink/dsh-plugin-certification)** | Community certification registry with repro-checkable grades and badges | |
269
+ | **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins | |
270
+ | **[dsh-plugin-portal](https://github.com/PerryLink/dsh-plugin-portal)** | Zero-dependency static portal rendering the whole plugin family as one page | |
271
+ | **[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 | |
272
+ | **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | Cross-session team rooms: shared message bus, task board and timeline | |
262
273
 
263
274
  ## License
264
275
 
@@ -8,6 +8,7 @@
8
8
  *आपके एजेंट के एडिटर लूप के लिए डायग्नोस्टिक्स, फ़ॉर्मेटिंग, कम्प्लीशन, कोड एक्शन, सिंबल, सिग्नेचर हेल्प, इनले हिंट्स और रिनेम — साथ ही स्थिर एडिटर एक्शन प्रोटोकॉल (`lsp.actions.*`) जो किसी भी एडिटर को इन्हें सीधे उपभोग करने देता है।*
9
9
 
10
10
  [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
11
+ [![Gitee](https://img.shields.io/badge/Gitee-mirror-c71d23?logo=gitee)](https://gitee.com/perrylink/dsh-lsp-actions)
11
12
  [![DSH plugin](https://img.shields.io/badge/dsh--plugin-✅-green)](https://github.com/topics/dsh-plugin)
12
13
  [![dsh-doctor](https://raw.githubusercontent.com/PerryLink/dsh-plugin-doctor/main/badges/PerryLink__dsh-lsp-actions.svg)](https://github.com/PerryLink/dsh-plugin-doctor#verified-徽章)
13
14
  [![Node](https://img.shields.io/badge/node-%5E22.19%20%7C%7C%20%3E%3D24-brightgreen.svg)](#)
@@ -16,7 +17,7 @@
16
17
  [![npm version](https://img.shields.io/npm/v/dsh-lsp-actions)](https://www.npmjs.com/package/dsh-lsp-actions)
17
18
  [![npm downloads](https://img.shields.io/npm/dm/dsh-lsp-actions)](https://www.npmjs.com/package/dsh-lsp-actions)
18
19
 
19
- [English](README.md) · [简体中文](README.zh.md) · [Español](README.es.md) · [Português](README.pt.md) · [हिन्दी](README.hi.md)
20
+ [English](README.md) · [简体中文](README-zh.md) · [Español](README-es.md) · [Português](README-pt.md) · [हिन्दी](README-hi.md)
20
21
 
21
22
  </div>
22
23
 
@@ -26,7 +27,7 @@
26
27
 
27
28
  | Surface | Status |
28
29
  |---|---|
29
- | Harness | DeepSeek Harness `dsh-v0.1.5-rc.1` (`>=0.1.2-rc.1 <0.2.0 \|\| >=0.1.5-alpha.1 <0.2.0` के लिए अनुकूलता घोषित); प्लगइन स्वयं कोई सत्र इवेंट नहीं लिखता - host मानक tool/call + tool/result इवेंट दर्ज करता है। 2026-09-10 को dsh-v0.1.5-rc.1 master checkout के विरुद्ध सत्यापित (पूर्ण gate श्रृंखला + profile इंस्टॉल smoke)। |
30
+ | Harness | DeepSeek Harness `dsh-v0.1.6-alpha.2` (`>=0.1.2-rc.1 <0.2.0 \|\| >=0.1.5-alpha.1 <0.2.0 \|\| >=0.1.6-0 <0.2.0` के लिए अनुकूलता घोषित); प्लगइन स्वयं कोई सत्र इवेंट नहीं लिखता - host मानक tool/call + tool/result इवेंट दर्ज करता है। प्रकाशित seam में अब भी केवल चार legacy ऑपरेशन हैं, इसलिए प्लगइन अपना क्लाइंट रखता है और पहली action कॉल पर वह vintage दर्ज करता है। 2026-09-18 को सत्यापित (दोहरा typecheck + पूरी टेस्ट सूट + self-contained/artifacts गेट)। |
30
31
  | Node | `^22.19.0 \|\| >=24.0.0` |
31
32
  | Platforms | सभी (शुद्ध host; सबप्रोसेस + फ़ाइलसिस्टम, कोई नेटवर्क नहीं) |
32
33
  | Model | कोई भी (टूल मॉडल-अज्ञेय हैं; प्लगइन कभी मॉडल को कॉल नहीं करता) |
@@ -219,7 +220,7 @@ pnpm run prepublishOnly # tsc --noEmitOnError (runs before publish)
219
220
 
220
221
  ## PerryLink DSH Plugin Family
221
222
 
222
- यह प्रोजेक्ट [PerryLink](https://github.com/PerryLink) द्वारा अनुरक्षित [37 DeepSeek Harness प्लगइनों](https://github.com/PerryLink) में से एक है। अगर यह आपकी मदद करता है, तो बाकी भी करेंगे:
223
+ यह प्रोजेक्ट [PerryLink](https://github.com/PerryLink) द्वारा अनुरक्षित [40 DeepSeek Harness प्लगइनों](https://github.com/PerryLink) में से एक है। अगर यह आपकी मदद करता है, तो बाकी भी करेंगे:
223
224
 
224
225
  | Plugin | One-liner |
225
226
  |---|---|
@@ -249,6 +250,7 @@ pnpm run prepublishOnly # tsc --noEmitOnError (runs before publish)
249
250
  | **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | ऑडिट के साथ Claude Code-शैली घोषणात्मक allow/deny/ask अनुमति नियम | |
250
251
  | **[dsh-personal-directive](https://github.com/PerryLink/dsh-personal-directive)** | शीर्ष-बार टॉगल के साथ व्यक्तिगत निर्देश इंजेक्टर (फ्रेमवर्क संस्करण) |
251
252
  | **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | माँग पर एजेंट कौशल के रूप में प्लगइन-विकास ज्ञान आधार | |
253
+ | **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | Zero-dependency static + sandbox smoke detector for DSH plugins | |
252
254
  | **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | सामग्री-पता साक्ष्य और सीलबंद संस्करणों वाला सत्यापन-योग्य अनुसंधान-रिपोर्ट इंजन | |
253
255
  | **[dsh-score](https://github.com/PerryLink/dsh-score)** | DeepSeek Harness प्लगिनों की बहु-आयामी गुणवत्ता स्कोरिंग। | |
254
256
  | **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | टिकाऊ क्रम के साथ वेब साइडबार में सत्र पिन करें | |
@@ -258,7 +260,16 @@ pnpm run prepublishOnly # tsc --noEmitOnError (runs before publish)
258
260
  | **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | DeepSeek Harness प्लगिनों के लिए पृथक इंस्टॉल-एंड-स्मोक टेस्ट ड्राइव। | |
259
261
  | **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | TickTick/Dida365 कार्य ब्रिज: सत्र-हेडर पैनल + 11 टूल |
260
262
  | **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | DeepSeek Harness के लिए वेंडर पैरामीटर अनुवाद और नियतात्मक JSON मरम्मत। | |
261
- | **[dsh-wechat](https://github.com/PerryLink/dsh-wechat)** | WeChat ↔ DSH ब्रिज (Tencent iLink bot): टेक्स्ट/इमेज/फ़ाइल/आवाज़, चैट में अनुमोदन |
263
+ | **[dsh-wechat](https://github.com/pan17/dsh-wechat)** | WeChat ↔ DSH ब्रिज (Tencent iLink bot): टेक्स्ट/इमेज/फ़ाइल/आवाज़, चैट में अनुमोदन |
264
+ | **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | Automatic strong/cheap model-tier routing with deterministic risk guards and a `/tier` command | |
265
+ | **[dsh-catalog](https://github.com/PerryLink/dsh-catalog)** | DSH Desktop Market standard catalog source for the PerryLink family | |
266
+ | **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | Read-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence | |
267
+ | **[dsh-kit](https://github.com/PerryLink/dsh-kit)** | One-command starter pack that installs the core family | |
268
+ | **[dsh-plugin-certification](https://github.com/PerryLink/dsh-plugin-certification)** | Community certification registry with repro-checkable grades and badges | |
269
+ | **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins | |
270
+ | **[dsh-plugin-portal](https://github.com/PerryLink/dsh-plugin-portal)** | Zero-dependency static portal rendering the whole plugin family as one page | |
271
+ | **[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 | |
272
+ | **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | Cross-session team rooms: shared message bus, task board and timeline | |
262
273
 
263
274
  ## License
264
275
 
@@ -8,6 +8,7 @@
8
8
  *Diagnósticos, formatação, autocompletar, ações de código, símbolos, ajuda de assinatura, dicas embutidas e renomeação para o loop do editor do seu agente — mais o protocolo estável de ações para editores (`lsp.actions.*`) que permite a qualquer editor consumi-los diretamente.*
9
9
 
10
10
  [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
11
+ [![Gitee](https://img.shields.io/badge/Gitee-mirror-c71d23?logo=gitee)](https://gitee.com/perrylink/dsh-lsp-actions)
11
12
  [![DSH plugin](https://img.shields.io/badge/dsh--plugin-✅-green)](https://github.com/topics/dsh-plugin)
12
13
  [![dsh-doctor](https://raw.githubusercontent.com/PerryLink/dsh-plugin-doctor/main/badges/PerryLink__dsh-lsp-actions.svg)](https://github.com/PerryLink/dsh-plugin-doctor#verified-徽章)
13
14
  [![Node](https://img.shields.io/badge/node-%5E22.19%20%7C%7C%20%3E%3D24-brightgreen.svg)](#)
@@ -16,7 +17,7 @@
16
17
  [![npm version](https://img.shields.io/npm/v/dsh-lsp-actions)](https://www.npmjs.com/package/dsh-lsp-actions)
17
18
  [![npm downloads](https://img.shields.io/npm/dm/dsh-lsp-actions)](https://www.npmjs.com/package/dsh-lsp-actions)
18
19
 
19
- [English](README.md) · [简体中文](README.zh.md) · [Español](README.es.md) · [Português](README.pt.md) · [हिन्दी](README.hi.md)
20
+ [English](README.md) · [简体中文](README-zh.md) · [Español](README-es.md) · [Português](README-pt.md) · [हिन्दी](README-hi.md)
20
21
 
21
22
  </div>
22
23
 
@@ -26,7 +27,7 @@
26
27
 
27
28
  | Surface | Status |
28
29
  |---|---|
29
- | Harness | DeepSeek Harness `dsh-v0.1.5-rc.1` (compatibilidade declarada para `>=0.1.2-rc.1 <0.2.0 \|\| >=0.1.5-alpha.1 <0.2.0`); o plugin não grava eventos de sessão próprios - o host registra os eventos padrão tool/call + tool/result. Verificado em 2026-09-10 contra o checkout master dsh-v0.1.5-rc.1 (cadeia de gates completa + smoke de instalação de perfil). |
30
+ | Harness | DeepSeek Harness `dsh-v0.1.6-alpha.2` (compatibilidade declarada para `>=0.1.2-rc.1 <0.2.0 \|\| >=0.1.5-alpha.1 <0.2.0 \|\| >=0.1.6-0 <0.2.0`); o plugin não grava eventos de sessão próprios - o host registra os eventos padrão tool/call + tool/result. O seam publicado ainda tem apenas as quatro operações legacy, então o plugin mantém o próprio cliente e registra esse vintage na primeira chamada de ação. Verificado em 2026-09-18 (typecheck duplo + suíte completa + portas self-contained/artifacts). |
30
31
  | Node | `^22.19.0 \|\| >=24.0.0` |
31
32
  | Platforms | Todas (host puro; subprocessos + sistema de arquivos, sem rede) |
32
33
  | Model | Qualquer (as ferramentas são independentes do modelo; o plugin nunca chama um modelo) |
@@ -219,7 +220,7 @@ pnpm run prepublishOnly # tsc --noEmitOnError (runs before publish)
219
220
 
220
221
  ## PerryLink DSH Plugin Family
221
222
 
222
- Este projeto é um dos [37 plugins de DeepSeek Harness](https://github.com/PerryLink) mantidos por [PerryLink](https://github.com/PerryLink). Se este ajuda você, os outros provavelmente também:
223
+ Este projeto é um dos [40 plugins de DeepSeek Harness](https://github.com/PerryLink) mantidos por [PerryLink](https://github.com/PerryLink). Se este ajuda você, os outros provavelmente também:
223
224
 
224
225
  | Plugin | One-liner |
225
226
  |---|---|
@@ -249,6 +250,7 @@ Este projeto é um dos [37 plugins de DeepSeek Harness](https://github.com/Perry
249
250
  | **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | Regras de permissão declarativas allow/deny/ask estilo Claude Code com auditoria | |
250
251
  | **[dsh-personal-directive](https://github.com/PerryLink/dsh-personal-directive)** | Injetor de diretivas pessoais com alternância na barra superior (edição framework) |
251
252
  | **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | Base de conhecimento de desenvolvimento de plugins como habilidade de agente sob demanda | |
253
+ | **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | Zero-dependency static + sandbox smoke detector for DSH plugins | |
252
254
  | **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | Motor de relatórios de pesquisa verificáveis com evidência endereçada por conteúdo | |
253
255
  | **[dsh-score](https://github.com/PerryLink/dsh-score)** | Pontuação de qualidade multidimensional para plugins de DeepSeek Harness. | |
254
256
  | **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | Fixe sessões na barra lateral web com ordenação durável | |
@@ -258,7 +260,16 @@ Este projeto é um dos [37 plugins de DeepSeek Harness](https://github.com/Perry
258
260
  | **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | Test drives isolados de instalação e smoke para plugins de DeepSeek Harness. | |
259
261
  | **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | Ponte de tarefas TickTick/Dida365: painel no cabeçalho da sessão + 11 ferramentas |
260
262
  | **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | Tradução de parâmetros entre fornecedores e reparo determinístico de JSON para DeepSeek Harness. | |
261
- | **[dsh-wechat](https://github.com/PerryLink/dsh-wechat)** | Ponte WeChat ↔ DSH (bot Tencent iLink): texto/imagem/arquivo/voz, aprovações no chat |
263
+ | **[dsh-wechat](https://github.com/pan17/dsh-wechat)** | Ponte WeChat ↔ DSH (bot Tencent iLink): texto/imagem/arquivo/voz, aprovações no chat |
264
+ | **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | Automatic strong/cheap model-tier routing with deterministic risk guards and a `/tier` command | |
265
+ | **[dsh-catalog](https://github.com/PerryLink/dsh-catalog)** | DSH Desktop Market standard catalog source for the PerryLink family | |
266
+ | **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | Read-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence | |
267
+ | **[dsh-kit](https://github.com/PerryLink/dsh-kit)** | One-command starter pack that installs the core family | |
268
+ | **[dsh-plugin-certification](https://github.com/PerryLink/dsh-plugin-certification)** | Community certification registry with repro-checkable grades and badges | |
269
+ | **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins | |
270
+ | **[dsh-plugin-portal](https://github.com/PerryLink/dsh-plugin-portal)** | Zero-dependency static portal rendering the whole plugin family as one page | |
271
+ | **[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 | |
272
+ | **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | Cross-session team rooms: shared message bus, task board and timeline | |
262
273
 
263
274
  ## License
264
275
 
@@ -8,6 +8,7 @@
8
8
  *为你的 agent 编辑循环提供诊断、格式化、补全、代码动作、符号、签名提示、内联提示与重命名 —— 外加稳定的编辑器 action 协议(`lsp.actions.*`),让任何编辑器都能直接消费这些能力。*
9
9
 
10
10
  [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
11
+ [![Gitee](https://img.shields.io/badge/Gitee-mirror-c71d23?logo=gitee)](https://gitee.com/perrylink/dsh-lsp-actions)
11
12
  [![DSH plugin](https://img.shields.io/badge/dsh--plugin-✅-green)](https://github.com/topics/dsh-plugin)
12
13
  [![dsh-doctor](https://raw.githubusercontent.com/PerryLink/dsh-plugin-doctor/main/badges/PerryLink__dsh-lsp-actions.svg)](https://github.com/PerryLink/dsh-plugin-doctor#verified-徽章)
13
14
  [![Node](https://img.shields.io/badge/node-%5E22.19%20%7C%7C%20%3E%3D24-brightgreen.svg)](#)
@@ -16,7 +17,7 @@
16
17
  [![npm version](https://img.shields.io/npm/v/dsh-lsp-actions)](https://www.npmjs.com/package/dsh-lsp-actions)
17
18
  [![npm downloads](https://img.shields.io/npm/dm/dsh-lsp-actions)](https://www.npmjs.com/package/dsh-lsp-actions)
18
19
 
19
- [English](README.md) · [简体中文](README.zh.md) · [Español](README.es.md) · [Português](README.pt.md) · [हिन्दी](README.hi.md)
20
+ [English](README.md) · [简体中文](README-zh.md) · [Español](README-es.md) · [Português](README-pt.md) · [हिन्दी](README-hi.md)
20
21
 
21
22
  </div>
22
23
 
@@ -26,7 +27,7 @@
26
27
 
27
28
  | Surface | Status |
28
29
  |---|---|
29
- | Harness | DeepSeek Harness `dsh-v0.1.5-rc.1`(对 `>=0.1.2-rc.1 <0.2.0 \|\| >=0.1.5-alpha.1 <0.2.0` 声明兼容);插件不自写会话事件——宿主记录标准 tool/call + tool/result 事件;已于 2026-09-10 对照 dsh-v0.1.5-rc.1 master checkout 核验(完整 gate 链 + profile 安装冒烟)。 |
30
+ | Harness | DeepSeek Harness `dsh-v0.1.6-alpha.2`(对 `>=0.1.2-rc.1 <0.2.0 \|\| >=0.1.5-alpha.1 <0.2.0 \|\| >=0.1.6-0 <0.2.0` 声明兼容);插件不自写会话事件——宿主记录标准 tool/call + tool/result 事件。已发布 seam 仍只有四个 legacy 操作,故插件保留自建客户端并在首次动作调用时记录该 vintage。已于 2026-09-18 核验(双 typecheck 尺子 + 全量测试 + self-contained/artifacts 门)。 |
30
31
  | Node | `^22.19.0 \|\| >=24.0.0` |
31
32
  | Platforms | 全部(纯 host;子进程 + 文件系统,无网络) |
32
33
  | Model | 任意(工具与模型无关;插件从不调用模型) |
@@ -219,7 +220,7 @@ pnpm run prepublishOnly # tsc --noEmitOnError (runs before publish)
219
220
 
220
221
  ## PerryLink DSH Plugin Family
221
222
 
222
- 这是 [PerryLink](https://github.com/PerryLink) 维护的 [37 个 DeepSeek Harness 插件](https://github.com/PerryLink) 之一。如果它能帮到你,其他的也会:
223
+ 这是 [PerryLink](https://github.com/PerryLink) 维护的 [40 个 DeepSeek Harness 插件](https://github.com/PerryLink) 之一。如果它能帮到你,其他的也会:
223
224
 
224
225
  | Plugin | One-liner |
225
226
  |---|---|
@@ -249,6 +250,7 @@ pnpm run prepublishOnly # tsc --noEmitOnError (runs before publish)
249
250
  | **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | Claude Code 风格声明式 allow/deny/ask 权限规则,带审计 | |
250
251
  | **[dsh-personal-directive](https://github.com/PerryLink/dsh-personal-directive)** | 个人指令注入器:顶栏开关(框架版) |
251
252
  | **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | 作为按需代理技能的插件开发知识库 | |
253
+ | **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | Zero-dependency static + sandbox smoke detector for DSH plugins | |
252
254
  | **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | 可验证研究报告引擎:内容寻址证据账本与封存版本 | |
253
255
  | **[dsh-score](https://github.com/PerryLink/dsh-score)** | DeepSeek Harness 插件的多维质量评分。 | |
254
256
  | **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | 在 Web 侧栏置顶会话,带持久排序 | |
@@ -258,7 +260,16 @@ pnpm run prepublishOnly # tsc --noEmitOnError (runs before publish)
258
260
  | **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | DeepSeek Harness 插件的隔离试装冒烟。 | |
259
261
  | **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | TickTick/滴答清单任务桥接:会话头面板 + 11 个工具 |
260
262
  | **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | DeepSeek Harness 的厂商参数翻译与确定性 JSON 修复。 | |
261
- | **[dsh-wechat](https://github.com/PerryLink/dsh-wechat)** | 微信 ↔ DSH 桥接(Tencent iLink 机器人):文本/图片/文件/语音,聊天内审批卡片 |
263
+ | **[dsh-wechat](https://github.com/pan17/dsh-wechat)** | 微信 ↔ DSH 桥接(Tencent iLink 机器人):文本/图片/文件/语音,聊天内审批卡片 |
264
+ | **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | Automatic strong/cheap model-tier routing with deterministic risk guards and a `/tier` command | |
265
+ | **[dsh-catalog](https://github.com/PerryLink/dsh-catalog)** | DSH Desktop Market standard catalog source for the PerryLink family | |
266
+ | **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | Read-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence | |
267
+ | **[dsh-kit](https://github.com/PerryLink/dsh-kit)** | One-command starter pack that installs the core family | |
268
+ | **[dsh-plugin-certification](https://github.com/PerryLink/dsh-plugin-certification)** | Community certification registry with repro-checkable grades and badges | |
269
+ | **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins | |
270
+ | **[dsh-plugin-portal](https://github.com/PerryLink/dsh-plugin-portal)** | Zero-dependency static portal rendering the whole plugin family as one page | |
271
+ | **[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 | |
272
+ | **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | Cross-session team rooms: shared message bus, task board and timeline | |
262
273
 
263
274
  ## License
264
275
 
package/README.md CHANGED
@@ -17,7 +17,7 @@
17
17
  [![npm version](https://img.shields.io/npm/v/dsh-lsp-actions)](https://www.npmjs.com/package/dsh-lsp-actions)
18
18
  [![npm downloads](https://img.shields.io/npm/dm/dsh-lsp-actions)](https://www.npmjs.com/package/dsh-lsp-actions)
19
19
 
20
- [English](README.md) · [简体中文](README.zh.md) · [Español](README.es.md) · [Português](README.pt.md) · [हिन्दी](README.hi.md)
20
+ [English](README.md) · [简体中文](README-zh.md) · [Español](README-es.md) · [Português](README-pt.md) · [हिन्दी](README-hi.md)
21
21
 
22
22
  </div>
23
23
 
@@ -27,7 +27,7 @@
27
27
 
28
28
  | Surface | Status |
29
29
  |---|---|
30
- | Harness | DeepSeek Harness `dsh-v0.1.5-rc.1` (compat declared for `>=0.1.2-rc.1 <0.2.0 \|\| >=0.1.5-alpha.1 <0.2.0`); the plugin writes no session events itself - the host records the standard tool/call + tool/result events. Verified 2026-09-10 against the dsh-v0.1.5-rc.1 master checkout (full gate chain + profile install smoke). |
30
+ | Harness | DeepSeek Harness `dsh-v0.1.6-alpha.2` (compat declared for `>=0.1.2-rc.1 <0.2.0 \|\| >=0.1.5-alpha.1 <0.2.0 \|\| >=0.1.6-0 <0.2.0`); the plugin writes no session events itself - the host records the standard tool/call + tool/result events. The released seam still carries only the four legacy operations, so the plugin keeps its own client and records that vintage on the first action call. Verified 2026-09-18 (dual typecheck rulers + full test suite + self-contained/artifacts gates). |
31
31
  | Node | `^22.19.0 \|\| >=24.0.0` |
32
32
  | Platforms | All (pure host; subprocess + filesystem, no network) |
33
33
  | Model | Any (tools are model-agnostic; the plugin never calls a model) |
@@ -55,7 +55,7 @@ dsh --profile web --dump-config | grep -A3 'id: lsp-actions'
55
55
 
56
56
  ## Install & uninstall
57
57
 
58
- - **git channel** (latest `main`): `dsh plugin --profile web add "github:PerryLink/dsh-lsp-actions#main"` — the `prepare` script builds (`tsc --noEmitOnError`).
58
+ - **git channel** (latest `main`): `dsh plugin --profile web add "github:PerryLink/dsh-lsp-actions#main"` — the `prepare` script builds (`tsc --noEmitOnError && node scripts/fix-dts.mjs`).
59
59
  - **npm channel** (published releases): `dsh plugin --profile web add dsh-lsp-actions`.
60
60
  - **tarball channel**: `pnpm pack` in this repo, then `dsh plugin --profile web add ./dsh-lsp-actions-<version>.tgz`.
61
61
  - **uninstall**: `dsh plugin --profile web remove dsh-lsp-actions` (or remove the row from the profile patch).
@@ -207,9 +207,9 @@ pnpm install # node ^22.19 || >=24
207
207
  pnpm run lint # oxlint over src/ and tests/
208
208
  pnpm test # vitest: unit + fixture-server integration + editor-protocol e2e + real tsls e2e
209
209
  pnpm run test:coverage # coverage gate
210
- pnpm build # tsc --noEmitOnError → lib/
211
- pnpm run prepare # tsc --noEmitOnError (runs on install)
212
- pnpm run prepublishOnly # tsc --noEmitOnError (runs before publish)
210
+ pnpm build # tsc --noEmitOnError && node scripts/fix-dts.mjs → lib/
211
+ pnpm run prepare # tsc --noEmitOnError && node scripts/fix-dts.mjs (runs on install)
212
+ pnpm run prepublishOnly # tsc --noEmitOnError && node scripts/fix-dts.mjs (runs before publish)
213
213
  ```
214
214
 
215
215
  ## Topics
@@ -222,7 +222,7 @@ pnpm run prepublishOnly # tsc --noEmitOnError (runs before publish)
222
222
 
223
223
  ## PerryLink DSH Plugin Family
224
224
 
225
- This project is one of the [37 DeepSeek Harness plugins](https://github.com/PerryLink) maintained by [PerryLink](https://github.com/PerryLink). If this one helps you, the others likely will too:
225
+ This project is one of the [40 DeepSeek Harness plugins](https://github.com/PerryLink) maintained by [PerryLink](https://github.com/PerryLink). If this one helps you, the others likely will too:
226
226
 
227
227
  | Plugin | One-liner |
228
228
  |---|---|
@@ -252,6 +252,7 @@ This project is one of the [37 DeepSeek Harness plugins](https://github.com/Perr
252
252
  | **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | Claude Code-style declarative allow/deny/ask permission rules with audit | |
253
253
  | **[dsh-personal-directive](https://github.com/PerryLink/dsh-personal-directive)** | Personal directive injector with top-bar toggle (framework edition) |
254
254
  | **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | Plugin-development knowledge base as an on-demand agent skill | |
255
+ | **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | Zero-dependency static + sandbox smoke detector for DSH plugins | |
255
256
  | **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | Verifiable research-report engine: content-addressed evidence ledger and sealed versions | |
256
257
  | **[dsh-score](https://github.com/PerryLink/dsh-score)** | Multi-dimensional quality scoring for DeepSeek Harness plugins. | |
257
258
  | **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | Pin sessions in the Web sidebar with durable ordering | |
@@ -261,7 +262,16 @@ This project is one of the [37 DeepSeek Harness plugins](https://github.com/Perr
261
262
  | **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | Isolated install-and-smoke test drives for DeepSeek Harness plugins. | |
262
263
  | **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | TickTick/Dida365 task bridge: session-header panel + 11 tools |
263
264
  | **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | Vendor parameter translation and deterministic JSON repair for DeepSeek Harness. | |
264
- | **[dsh-wechat](https://github.com/PerryLink/dsh-wechat)** | WeChat ↔ DSH bridge (Tencent iLink bot): text/image/file/voice, approvals in chat |
265
+ | **[dsh-wechat](https://github.com/pan17/dsh-wechat)** | WeChat ↔ DSH bridge (Tencent iLink bot): text/image/file/voice, approvals in chat |
266
+ | **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | Automatic strong/cheap model-tier routing with deterministic risk guards and a `/tier` command | |
267
+ | **[dsh-catalog](https://github.com/PerryLink/dsh-catalog)** | DSH Desktop Market standard catalog source for the PerryLink family | |
268
+ | **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | Read-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence | |
269
+ | **[dsh-kit](https://github.com/PerryLink/dsh-kit)** | One-command starter pack that installs the core family | |
270
+ | **[dsh-plugin-certification](https://github.com/PerryLink/dsh-plugin-certification)** | Community certification registry with repro-checkable grades and badges | |
271
+ | **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins | |
272
+ | **[dsh-plugin-portal](https://github.com/PerryLink/dsh-plugin-portal)** | Zero-dependency static portal rendering the whole plugin family as one page | |
273
+ | **[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 | |
274
+ | **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | Cross-session team rooms: shared message bus, task board and timeline | |
265
275
 
266
276
  ### Install from the DSH Desktop Market
267
277
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAOlD,OAAO,EAAsC,MAAM,IAAI,YAAY,EAAkB,MAAM,cAAc,CAAA;AACzG,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAuC,MAAM,cAAc,CAAA;AAG7F,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,SAAS,EACT,gBAAgB,EAChB,WAAW,GACZ,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACrH,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,YAAY,EACV,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,GAClB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,wBAAwB,EACxB,0BAA0B,EAC1B,wBAAwB,EACxB,0BAA0B,EAC1B,yBAAyB,EACzB,2BAA2B,EAC3B,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,GAChB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,YAAY,EACZ,SAAS,EACT,cAAc,GACf,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,cAAc,EACd,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,gBAAgB,CAAA;AAEvB,iDAAiD;AACjD,eAAO,MAAM,IAAI,gBAAgB,CAAA;AAEjC,wCAAwC;AACxC,eAAO,MAAM,MAAM,UAAgC,CAAA;AAGnD,qGAAqG;AACrG,eAAO,MAAM,MAAM,0DAAe,CAAA;AAElC;;;;;;;;;;GAUG;AACH,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA4D3E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/lib/index.js CHANGED
@@ -74,7 +74,17 @@ export async function apply(ctx, config) {
74
74
  assertTimer('editor.requestTimeoutMs', resolved.editor.requestTimeoutMs);
75
75
  // Resolve every executable BEFORE registering anything: a bad later command must not publish an
76
76
  // earlier tool, matching the official lsp-stdio load contract.
77
+ //
78
+ // A02 generation guard: the executable probe (PATH lookups plus `--version` spawns) is the widest
79
+ // async window in the family, and a mount disposed or reloaded inside it used to run the effect
80
+ // creation below against a dead fiber (INACTIVE_EFFECT). Capture the fiber's generation before the
81
+ // await and register nothing when it changed — the fiber is gone, so there is nothing to own.
82
+ // A context without a fiber (direct `apply()` callers such as tests and programmatic mounting) has
83
+ // no generation to defend, so the guard stays inert there and the load contract is unchanged.
84
+ const generation = ctx.fiber?.uid;
77
85
  const servers = await resolveServers(ctx, resolved.servers);
86
+ if (generation !== undefined && ctx.fiber?.uid !== generation)
87
+ return;
78
88
  const sandbox = new FormatSandboxController(ctx);
79
89
  const client = new LspActionClient(ctx.subprocess, ctx.fs, resolved.maxDocumentBytes);
80
90
  // `ctx.lsp` is an optional capability: typed required by the seam package, absent at runtime in
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAC7H,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AAEtD,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,IAAI,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAEzG,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEpH,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAsBhD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAkBrH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,wBAAwB,EACxB,0BAA0B,EAC1B,wBAAwB,EACxB,0BAA0B,EAC1B,yBAAyB,EACzB,2BAA2B,EAC3B,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,GAChB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,YAAY,EACZ,SAAS,EACT,cAAc,GACf,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,cAAc,EACd,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,gBAAgB,CAAA;AAEvB,iDAAiD;AACjD,MAAM,CAAC,MAAM,IAAI,GAAG,aAAa,CAAA;AAEjC,wCAAwC;AACxC,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;AAEnD,0IAA0I;AAC1I,qGAAqG;AACrG,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAA;AAElC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,GAAY,EAAE,MAAkB;IAC1D,2FAA2F;IAC3F,oFAAoF;IACpF,MAAM,QAAQ,GAAG;QACf,GAAI,MAAyB;QAC7B,MAAM,EAAE;YACN,OAAO,EAAE,KAAK;YACd,gBAAgB,EAAE,MAAM;YACxB,wBAAwB,EAAE,EAAE;YAC5B,GAAI,MAAM,CAAC,MAAwD;SACpE;KACF,CAAA;IACD,qBAAqB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAA;IAChE,qBAAqB,CAAC,oBAAoB,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAA;IACxE,qBAAqB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAA;IAChE,qBAAqB,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAA;IACxD,qBAAqB,CAAC,eAAe,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAA;IAC9D,qBAAqB,CAAC,eAAe,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAA;IAC9D,qBAAqB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAA;IAChE,qBAAqB,CAAC,kBAAkB,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAA;IACpE,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAA;IAC5C,qBAAqB,CAAC,iCAAiC,EAAE,QAAQ,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAA;IAClG,WAAW,CAAC,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAExE,gGAAgG;IAChG,+DAA+D;IAC/D,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,OAA8C,CAAC,CAAA;IAClG,MAAM,OAAO,GAAG,IAAI,uBAAuB,CAAC,GAAG,CAAC,CAAA;IAChD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAA;IACrF,gGAAgG;IAChG,gGAAgG;IAChG,wFAAwF;IACxF,wHAAwH;IACxH,MAAM,OAAO,GAAG,GAA4B,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAuC,CAAA;IACnG,+FAA+F;IAC/F,8FAA8F;IAC9F,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;IAE3E,mIAAmI;IACnI,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE;QACd,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC9C,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC7C,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;QAClD,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC7C,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC1C,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC5C,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC7C,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;QAClD,0FAA0F;QAC1F,4FAA4F;QAC5F,6FAA6F;QAC7F,iFAAiF;QACjF,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO;YACpC,CAAC,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;YACrD,CAAC,CAAC,SAAS,CAAA;QACb,OAAO,KAAK,IAAI,EAAE;YAChB,MAAM,MAAM,EAAE,OAAO,EAAE,CAAA;YACvB,MAAM,MAAM,CAAC,UAAU,EAAE,CAAA;QAC3B,CAAC,CAAA;IACH,CAAC,EAAE,2BAA2B,CAAC,CAAA;AACjC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAI3C,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,cAAc,CAAA;AAE/D,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,WAAW,CAAA;AACxD,OAAO,KAAK,EAEV,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,QAAQ,EACR,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AAGxB,mGAAmG;AACnG,MAAM,WAAW,aAAa;IAC5B,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,sDAAsD;IACtD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,kGAAkG;IAClG,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAA;IAC5B,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAA;IAC/B,gFAAgF;IAChF,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAA;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,gDAAgD;IAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACvC;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;IACxF,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IACrF,UAAU,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACtF,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;IACxF,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACzF,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACxF,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACzF,UAAU,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACtF,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;CAChG;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,WAAW,GAAG,SAAS,CAAA;IAC/C,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAA;IAC3C,oGAAoG;IACpG,QAAQ,CAAC,EAAE,CAAC,EAAE,UAAU,CAAA;CACzB,GAAG,YAAY,CAqBf"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAI3C,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,cAAc,CAAA;AAE/D,OAAO,KAAK,EAA2B,WAAW,EAAe,MAAM,WAAW,CAAA;AAClF,OAAO,KAAK,EAEV,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,QAAQ,EACR,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AAGxB,mGAAmG;AACnG,MAAM,WAAW,aAAa;IAC5B,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,sDAAsD;IACtD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,kGAAkG;IAClG,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAA;IAC5B,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAA;IAC/B,gFAAgF;IAChF,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAA;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,gDAAgD;IAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACvC;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;IACxF,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IACrF,UAAU,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACtF,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;IACxF,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACzF,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACxF,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACzF,UAAU,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACtF,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;CAChG;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,WAAW,GAAG,SAAS,CAAA;IAC/C,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAA;IAC3C,oGAAoG;IACpG,QAAQ,CAAC,EAAE,CAAC,EAAE,UAAU,CAAA;CACzB,GAAG,YAAY,CA8Bf"}
package/lib/runner.js CHANGED
@@ -9,7 +9,7 @@
9
9
  import { finalExtension } from "./extension.js";
10
10
  import { configuredProjectMarkers, findProjectMarker } from "./project.js";
11
11
  import { firstLanguageId, routeFile } from "./servers.js";
12
- import { trySeamAction } from "./seam.js";
12
+ import { classifySeamAttempt, trySeamAction } from "./seam.js";
13
13
  import { LspActionError } from "./vocabulary.js";
14
14
  /**
15
15
  * Create the seam-first action runner. The seam is resolved through `getSeam` on every call, not
@@ -24,9 +24,18 @@ import { LspActionError } from "./vocabulary.js";
24
24
  export function createActionRunner(options) {
25
25
  const markers = options.fs === undefined ? [] : configuredProjectMarkers(options.servers);
26
26
  const fs = options.fs;
27
+ // Seam vintages are cached per seam INSTANCE, not per runner: the contract allows a seam to load
28
+ // after this plugin or be re-added mid-session, and a fresh seam object deserves a fresh record.
29
+ const vintages = new WeakMap();
30
+ const seamVintageOf = (seam) => vintages.get(seam);
31
+ const recordSeamVintage = (seam, attempt) => {
32
+ vintages.set(seam, classifySeamAttempt(attempt));
33
+ };
27
34
  const collaborators = {
28
35
  client: options.client,
29
36
  servers: options.servers,
37
+ seamVintageOf,
38
+ recordSeamVintage,
30
39
  projectMarker: fs === undefined || markers.length === 0
31
40
  ? noProjectMarker
32
41
  : (filePath, workspaceRoot, signal) => findProjectMarker(fs, markers, filePath, workspaceRoot, signal),
@@ -54,16 +63,23 @@ async function routeForFile(options, request, signal) {
54
63
  }
55
64
  async function runOp(options, operation, request, signal) {
56
65
  if (options.seam !== undefined) {
57
- const attempt = await trySeamAction(options.seam, operation, request.filePath, request.workspaceRoot, request.position, request.range, signal, extrasFor(operation, request));
58
- if (attempt.ok)
59
- return attempt.result;
60
- if (attempt.reason === 'unsupported') {
61
- throw new LspActionError(`the mounted ctx.lsp provider does not support ${operation}; configure a server that advertises it`, 'LSP_ACTION_UNSUPPORTED');
66
+ // A `legacy` seam (the published four-operation surface) rejects every action operation with a
67
+ // code-less error; that is a capability fact about the seam, so it is recorded from the first
68
+ // real attempt and cached per seam instance, after which a legacy seam is skipped entirely
69
+ // instead of paying a failed round trip on every call. No extra probe query is spent.
70
+ if (options.seamVintageOf?.(options.seam) !== 'legacy') {
71
+ const attempt = await trySeamAction(options.seam, operation, request.filePath, request.workspaceRoot, request.position, request.range, signal, extrasFor(operation, request));
72
+ options.recordSeamVintage?.(options.seam, attempt);
73
+ if (attempt.ok)
74
+ return attempt.result;
75
+ if (attempt.reason === 'unsupported') {
76
+ throw new LspActionError(`the mounted ctx.lsp provider does not support ${operation}; configure a server that advertises it`, 'LSP_ACTION_UNSUPPORTED');
77
+ }
78
+ if (attempt.reason === 'error')
79
+ throw attempt.error;
80
+ // absent / legacy / unavailable: the seam cannot serve this action — fall through to the
81
+ // plugin's own client, which fails loud itself when no server entry handles the file.
62
82
  }
63
- if (attempt.reason === 'error')
64
- throw attempt.error;
65
- // absent / legacy / unavailable: the seam cannot serve this action — fall through to the
66
- // plugin's own client, which fails loud itself when no server entry handles the file.
67
83
  }
68
84
  // Workspace symbol search has no document to route by: when no entry matches (or no file path
69
85
  // was supplied), fall back to the first configured server.
package/lib/runner.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAezC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAsChD;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAMlC;IACC,MAAM,OAAO,GAAG,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACzF,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAA;IACrB,MAAM,aAAa,GAAgC;QACjD,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,aAAa,EAAE,EAAE,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YACrD,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC;KACzG,CAAA;IACD,OAAO;QACL,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC;QACtH,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,CAAC;QAC5H,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC;QACpH,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC;QACrH,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,CAAC;QAC/H,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,CAAC;QAC7H,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC;QAC1H,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC;QACnH,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;KACxH,CAAA;AACH,CAAC;AAYD,sGAAsG;AACtG,KAAK,UAAU,eAAe;IAC5B,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,oGAAoG;AACpG,KAAK,UAAU,YAAY,CAAC,OAAsB,EAAE,OAAsB,EAAE,MAAoB;IAC9F,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;IAClG,OAAO,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;AACpE,CAAC;AA6CD,KAAK,UAAU,KAAK,CAClB,OAAsB,EACtB,SAAgJ,EAChJ,OAAsB,EACtB,MAAoB;IAEpB,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,MAAM,aAAa,CACjC,OAAO,CAAC,IAAI,EACZ,SAAS,EACT,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,KAAK,EACb,MAAM,EACN,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,CAC9B,CAAA;QACD,IAAI,OAAO,CAAC,EAAE;YAAE,OAAO,OAAO,CAAC,MAAM,CAAA;QACrC,IAAI,OAAO,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YACrC,MAAM,IAAI,cAAc,CACtB,iDAAiD,SAAS,yCAAyC,EACnG,wBAAwB,CACzB,CAAA;QACH,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO;YAAE,MAAM,OAAO,CAAC,KAAK,CAAA;QACnD,yFAAyF;QACzF,sFAAsF;IACxF,CAAC;IACD,8FAA8F;IAC9F,2DAA2D;IAC3D,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IAC3D,MAAM,KAAK,GAAG,MAAM,IAAI,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IACpE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,wBAAwB,CAAC,CAAA;IACtF,CAAC;IACD,IAAI,SAAS,KAAK,iBAAiB,EAAE,CAAC;QACpC,yFAAyF;QACzF,kCAAkC;QAClC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,aAAa,GAAkB;gBACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAA;YACD,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,0BAA0B,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,CAAC,CAAA;QAClH,CAAC;QACD,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,CAAC,CAAA;IAChH,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,IAAI,cAAc,CAAC,OAAO,SAAS,oCAAoC,EAAE,+BAA+B,CAAC,CAAA;IACjH,CAAC;IACD,MAAM,aAAa,GAAkB;QACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE;QACvE,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;QAC9D,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE;KAC3E,CAAA;IACD,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,aAAa,CAAC,CAAC,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;QAChG,KAAK,gBAAgB,CAAC,CAAC,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;QACtG,KAAK,YAAY,CAAC,CAAC,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;QAC9F,KAAK,YAAY,CAAC,CAAC,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;QAC/F,KAAK,gBAAgB,CAAC,CAAC,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;QACvG,KAAK,eAAe,CAAC,CAAC,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;QACpG,KAAK,WAAW,CAAC,CAAC,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;IAC/F,CAAC;AACH,CAAC;AAED,oGAAoG;AACpG,SAAS,gBAAgB,CAAC,OAAkC,EAAE,SAAiB;IAC7E,IAAI,SAAS,KAAK,iBAAiB;QAAE,OAAO,SAAS,CAAA;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IACxB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,CAAA;AAC9D,CAAC;AAED,wGAAwG;AACxG,SAAS,SAAS,CAAC,SAAiB,EAAE,OAAsB;IAC1D,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,iBAAiB,CAAC,CAAC,OAAO,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAA;QAC1F,KAAK,YAAY,CAAC,CAAC,OAAO,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAA;QACjG,OAAO,CAAC,CAAC,OAAO,EAAE,CAAA;IACpB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,QAAQ,CACrB,OAAsB,EACtB,OAAsB,EACtB,OAAe,EACf,MAAoB;IAEpB,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,MAAM,aAAa,CACjC,OAAO,CAAC,IAAI,EACZ,QAAQ,EACR,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,KAAK,EACb,MAAM,EACN,EAAE,OAAO,EAAE,CACZ,CAAA;QACD,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;YACf,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,OAAO,CAAC,MAAM,CAAA;YAC3D,uFAAuF;QACzF,CAAC;aAAM,CAAC;YACN,IAAI,OAAO,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;gBACrC,MAAM,IAAI,cAAc,CACtB,6FAA6F,EAC7F,wBAAwB,CACzB,CAAA;YACH,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO;gBAAE,MAAM,OAAO,CAAC,KAAK,CAAA;YACnD,oFAAoF;YACpF,+EAA+E;QACjF,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IAC1D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,wBAAwB,CAAC,CAAA;IACtF,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,IAAI,cAAc,CAAC,8CAA8C,EAAE,+BAA+B,CAAC,CAAA;IAC3G,CAAC;IACD,MAAM,aAAa,GAAkB;QACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE;KACxE,CAAA;IACD,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AAClF,CAAC;AAED,0FAA0F;AAC1F,SAAS,cAAc,CAAC,QAAgB;IACtC,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IAC1C,MAAM,OAAO,GAAG,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,mBAAmB,SAAS,aAAa,CAAA;IAC/F,OAAO,mCAAmC,OAAO,0FAA0F,CAAA;AAC7I,CAAC"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
package/lib/seam.d.ts CHANGED
@@ -49,6 +49,45 @@ export type SeamAttempt = {
49
49
  readonly reason: 'error';
50
50
  readonly error: unknown;
51
51
  };
52
+ /**
53
+ * Which vintage of the `ctx.lsp` seam is mounted:
54
+ * - `absent` — no seam at all (path two serves every call);
55
+ * - `legacy` — a seam that predates the action vocabulary: it rejects an action operation with a
56
+ * code-less error, so it can NEVER serve an action and the runner must not pay a failed round
57
+ * trip per call;
58
+ * - `unsupported` — a seam that knows the vocabulary but has no provider advertising the
59
+ * operation (the runner fails loud for that call);
60
+ * - `actions` — a seam that speaks the action vocabulary.
61
+ *
62
+ * This is the asserted form of the classification `trySeamAction` documents: the bare-error
63
+ * fallback is a capability fact about the mounted seam, not a per-call accident, so it is probed
64
+ * once (see `probeSeamVintage`) and cached per seam instance by the runner. An abort is the
65
+ * caller's own cancellation and is rethrown, never cached as a vintage.
66
+ */
67
+ export type SeamVintage = 'absent' | 'legacy' | 'unsupported' | 'actions';
68
+ /**
69
+ * Classify one seam attempt into the vintage it proves. `absent` needs no attempt (the seam is
70
+ * missing); every other vintage is a property of the seam, so the runner records it once per seam
71
+ * instance instead of re-deriving it from every call.
72
+ * @param attempt - the classified attempt `trySeamAction` returned.
73
+ * @returns the vintage the attempt proves (`absent` is never returned here).
74
+ */
75
+ export declare function classifySeamAttempt(attempt: SeamAttempt): Exclude<SeamVintage, 'absent'>;
76
+ /**
77
+ * Probe the mounted seam's vintage with one benign action query — for callers that need the
78
+ * classification before running a real action.
79
+ *
80
+ * `documentSymbol` needs only a path, so the probe neither demands a position/range nor costs a
81
+ * workspace walk; on the published seam (four operations, no action vocabulary) it rejects with a
82
+ * code-less error and yields `legacy`. The bundled runner does not spend this extra query: it
83
+ * classifies its first real attempt through {@link classifySeamAttempt} (same mapping, no probe).
84
+ * @param seam - the mounted `ctx.lsp` service, when present.
85
+ * @param filePath - a source file to probe with.
86
+ * @param workspaceRoot - the workspace root the query resolves against.
87
+ * @param signal - optional cancellation; an abort is rethrown so the caller never caches it.
88
+ * @returns the classified vintage.
89
+ */
90
+ export declare function probeSeamVintage(seam: SeamService | undefined, filePath: string, workspaceRoot: string, signal?: AbortSignal): Promise<SeamVintage>;
52
91
  /**
53
92
  * Run one action through the seam and classify the outcome. Success returns the result; the
54
93
  * fallback reasons (`absent`, `legacy`, `unavailable`) let the runner serve the call through the
package/lib/seam.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"seam.d.ts","sourceRoot":"","sources":["../src/seam.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAEjG,iGAAiG;AACjG,MAAM,WAAW,WAAW;IAC1B,KAAK,CACH,OAAO,EAAE;QACP,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAA;QACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;QACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAA;QAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAA;QACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;QAC9B,0DAA0D;QAC1D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;QACvB,gDAAgD;QAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;QACtC,uCAAuC;QACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAC1B,EACD,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,eAAe,CAAC,CAAA;CAC5B;AAED,0FAA0F;AAC1F,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,+FAA+F;AAC/F,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GACvD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;CAAE,GACjD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;CAAE,GACjD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAA;AAE7E;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,SAAS,EAAE,kBAAkB,EAC7B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,WAAW,GAAG,SAAS,EACjC,KAAK,EAAE,QAAQ,GAAG,SAAS,EAC3B,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,MAAM,GAAE,UAAe,GACtB,OAAO,CAAC,WAAW,CAAC,CA0BtB"}
1
+ {"version":3,"file":"seam.d.ts","sourceRoot":"","sources":["../src/seam.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAEjG,iGAAiG;AACjG,MAAM,WAAW,WAAW;IAC1B,KAAK,CACH,OAAO,EAAE;QACP,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAA;QACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;QACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAA;QAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAA;QACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;QAC9B,0DAA0D;QAC1D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;QACvB,gDAAgD;QAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;QACtC,uCAAuC;QACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAC1B,EACD,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,eAAe,CAAC,CAAA;CAC5B;AAED,0FAA0F;AAC1F,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,+FAA+F;AAC/F,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GACvD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;CAAE,GACjD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;CAAE,GACjD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAA;AAE7E;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,CAAA;AAEzE;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAOxF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,WAAW,CAAC,CAItB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,SAAS,EAAE,kBAAkB,EAC7B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,WAAW,GAAG,SAAS,EACjC,KAAK,EAAE,QAAQ,GAAG,SAAS,EAC3B,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,MAAM,GAAE,UAAe,GACtB,OAAO,CAAC,WAAW,CAAC,CA0BtB"}
package/lib/seam.js CHANGED
@@ -5,6 +5,44 @@
5
5
  * structurally, never by import, so the plugin keeps working against every seam vintage.
6
6
  * @module dsh-lsp-actions/seam
7
7
  */
8
+ /**
9
+ * Classify one seam attempt into the vintage it proves. `absent` needs no attempt (the seam is
10
+ * missing); every other vintage is a property of the seam, so the runner records it once per seam
11
+ * instance instead of re-deriving it from every call.
12
+ * @param attempt - the classified attempt `trySeamAction` returned.
13
+ * @returns the vintage the attempt proves (`absent` is never returned here).
14
+ */
15
+ export function classifySeamAttempt(attempt) {
16
+ if (attempt.ok)
17
+ return 'actions';
18
+ if (attempt.reason === 'legacy')
19
+ return 'legacy';
20
+ if (attempt.reason === 'unsupported')
21
+ return 'unsupported';
22
+ // `unavailable` / `error`: the seam understood the action vocabulary and answered about this
23
+ // file — only a code-less rejection proves the pre-action surface.
24
+ return 'actions';
25
+ }
26
+ /**
27
+ * Probe the mounted seam's vintage with one benign action query — for callers that need the
28
+ * classification before running a real action.
29
+ *
30
+ * `documentSymbol` needs only a path, so the probe neither demands a position/range nor costs a
31
+ * workspace walk; on the published seam (four operations, no action vocabulary) it rejects with a
32
+ * code-less error and yields `legacy`. The bundled runner does not spend this extra query: it
33
+ * classifies its first real attempt through {@link classifySeamAttempt} (same mapping, no probe).
34
+ * @param seam - the mounted `ctx.lsp` service, when present.
35
+ * @param filePath - a source file to probe with.
36
+ * @param workspaceRoot - the workspace root the query resolves against.
37
+ * @param signal - optional cancellation; an abort is rethrown so the caller never caches it.
38
+ * @returns the classified vintage.
39
+ */
40
+ export async function probeSeamVintage(seam, filePath, workspaceRoot, signal) {
41
+ if (seam === undefined)
42
+ return 'absent';
43
+ const attempt = await trySeamAction(seam, 'documentSymbol', filePath, workspaceRoot, undefined, undefined, signal, {});
44
+ return classifySeamAttempt(attempt);
45
+ }
8
46
  /**
9
47
  * Run one action through the seam and classify the outcome. Success returns the result; the
10
48
  * fallback reasons (`absent`, `legacy`, `unavailable`) let the runner serve the call through the
package/lib/seam.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"seam.js","sourceRoot":"","sources":["../src/seam.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAwCH;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAA6B,EAC7B,SAA6B,EAC7B,QAAgB,EAChB,aAAqB,EACrB,QAAiC,EACjC,KAA2B,EAC3B,MAA+B,EAC/B,SAAqB,EAAE;IAEvB,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;IAC9D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;YAC9B,SAAS;YACT,QAAQ;YACR,aAAa;YACb,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE;YAC7C,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE;YACvC,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;YAC5D,GAAG,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE;YACxE,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;SACnE,EAAE,MAAM,CAAC,CAAA;QACV,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,0FAA0F;QAC1F,8FAA8F;QAC9F,IAAI,MAAM,EAAE,OAAO;YAAE,MAAM,MAAM,CAAC,MAAM,CAAA;QACxC,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,IAAI,KAAK,iBAAiB;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAA;QAC3E,IAAI,IAAI,KAAK,2BAA2B;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAA;QACrF,+FAA+F;QAC/F,mFAAmF;QACnF,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;QAC9D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IAC9C,CAAC;AACH,CAAC;AAED,kGAAkG;AAClG,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IACjE,MAAM,IAAI,GAAI,KAA4B,CAAC,IAAI,CAAA;IAC/C,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AACpD,CAAC"}
1
+ {"version":3,"file":"seam.js","sourceRoot":"","sources":["../src/seam.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-lsp-actions",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "description": "LSP action surface for DeepSeek Harness: diagnostics, formatting, completion, code actions, symbols, signature help, inlay hints, and rename tools over language servers, plus the editor action protocol (lsp.actions.*) that makes the plugin the IDE integration backend",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
@@ -19,12 +19,14 @@
19
19
  "cordis.patch.yml",
20
20
  "CHANGELOG.md",
21
21
  "README.md",
22
- "README.es.md",
23
- "README.hi.md",
24
- "README.pt.md",
25
- "README.zh.md"
22
+ "README-es.md",
23
+ "README-hi.md",
24
+ "README-pt.md",
25
+ "README-zh.md"
26
26
  ],
27
27
  "scripts": {
28
+ "typecheck": "tsc -p tsconfig.json --noEmit",
29
+ "typecheck:ci": "tsc -p tsconfig.ci.json --noEmit",
28
30
  "build": "tsc --noEmitOnError && node scripts/fix-dts.mjs",
29
31
  "prepare": "tsc --noEmitOnError && node scripts/fix-dts.mjs",
30
32
  "prepublishOnly": "tsc --noEmitOnError && node scripts/fix-dts.mjs",
@@ -67,9 +69,11 @@
67
69
  },
68
70
  "homepage": "https://github.com/PerryLink/dsh-lsp-actions#readme",
69
71
  "engines": {
70
- "node": "^22.19.0 || >=24.0.0"
72
+ "node": "^22.19.0 || >=24.0.0",
73
+ "dsh": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0"
71
74
  },
72
75
  "dsh": {
76
+ "manifestVersion": 1,
73
77
  "bundle": {
74
78
  "patch": "./cordis.patch.yml"
75
79
  }
@@ -98,7 +102,10 @@
98
102
  "network:none"
99
103
  ],
100
104
  "compatibility": {
101
- "dshVersions": ["0.1.2-rc.1","0.1.5-rc.1"]
105
+ "dshVersions": [
106
+ "0.1.2-rc.1",
107
+ "0.1.5-rc.2"
108
+ ]
102
109
  },
103
110
  "capability": {
104
111
  "id": "lsp_diagnostics",
@@ -115,27 +122,27 @@
115
122
  },
116
123
  "peerDependencies": {
117
124
  "@deepseek-ai/cordis": "^4.0.2",
118
- "@deepseek-ai/dsh-fs": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0",
119
- "@deepseek-ai/dsh-llm": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0",
120
- "@deepseek-ai/dsh-sandbox": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0",
121
- "@deepseek-ai/dsh-subprocess": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0",
122
- "@deepseek-ai/dsh-tools": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0",
125
+ "@deepseek-ai/dsh-fs": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0",
126
+ "@deepseek-ai/dsh-llm": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0",
127
+ "@deepseek-ai/dsh-sandbox": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0",
128
+ "@deepseek-ai/dsh-subprocess": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0",
129
+ "@deepseek-ai/dsh-tools": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0",
123
130
  "@deepseek-ai/schemastery": "^3.18.2"
124
131
  },
125
132
  "devDependencies": {
126
- "@deepseek-ai/dsh-attachment": "0.1.5-rc.1",
133
+ "@deepseek-ai/dsh-attachment": "0.1.5-rc.2",
127
134
  "@deepseek-ai/cordis": "^4.0.2",
128
135
  "@deepseek-ai/cordis-plugin-include": "^1.0.7",
129
136
  "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
130
- "@deepseek-ai/dsh-fs": "0.1.5-rc.1",
131
- "@deepseek-ai/dsh-llm": "0.1.5-rc.1",
132
- "@deepseek-ai/dsh-lsp": "0.1.5-rc.1",
133
- "@deepseek-ai/dsh-sandbox": "0.1.5-rc.1",
134
- "@deepseek-ai/dsh-sandbox-policy": "0.1.5-rc.1",
135
- "@deepseek-ai/dsh-subprocess": "0.1.5-rc.1",
136
- "@deepseek-ai/dsh-timeout": "0.1.5-rc.1",
137
- "@deepseek-ai/dsh-tools": "0.1.5-rc.1",
138
- "@deepseek-ai/dsh-user-approval": "0.1.5-rc.1",
137
+ "@deepseek-ai/dsh-fs": "0.1.5-rc.2",
138
+ "@deepseek-ai/dsh-llm": "0.1.5-rc.2",
139
+ "@deepseek-ai/dsh-lsp": "0.1.5-rc.2",
140
+ "@deepseek-ai/dsh-sandbox": "0.1.5-rc.2",
141
+ "@deepseek-ai/dsh-sandbox-policy": "0.1.5-rc.2",
142
+ "@deepseek-ai/dsh-subprocess": "0.1.5-rc.2",
143
+ "@deepseek-ai/dsh-timeout": "0.1.5-rc.2",
144
+ "@deepseek-ai/dsh-tools": "0.1.5-rc.2",
145
+ "@deepseek-ai/dsh-user-approval": "0.1.5-rc.2",
139
146
  "@deepseek-ai/schemastery": "^3.18.2",
140
147
  "@types/node": "^26.2.0",
141
148
  "@vitest/coverage-v8": "^3.2.7",