@askdkc/dsh-lsp-server 0.1.10 → 0.1.11

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/README.md CHANGED
@@ -1,33 +1,32 @@
1
1
  # @askdkc/dsh-lsp-server
2
2
 
3
- An LSP plugin for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness), providing code navigation, diagnostics, and completion without applying edits.
3
+ A read-only LSP plugin for DeepSeek Harness. It provides code navigation, diagnostics, and completion for PHP/Blade, TypeScript/JavaScript, Svelte, HTML, CSS, and Tailwind.
4
4
 
5
- Supports PHP/Blade via **PHPantom**, TypeScript/JavaScript, Svelte, HTML, CSS, and Tailwind.
5
+ ## Requirements
6
6
 
7
- ## Install
7
+ - Node.js 22.19+ (22.x) or 24+
8
+ - DSH providing the `fs`, `subprocess`, `tools`, and `systemPrompt` services
9
+ - PHPantom for PHP/Blade support (`phpantom_lsp` must be in `PATH`)
10
+
11
+ This plugin imposes no DSH version range at startup: imports and initialization report actual failures. This does not guarantee compatibility with every future DSH API.
8
12
 
9
- Requires Node.js **22.19+ (22.x) or 24+** and DSH **0.2.0-rc.2**. The DSH LSP packages and Node language servers install with this plugin. For PHP/Blade, install **PHPantom** so `phpantom_lsp` is in `PATH`.
13
+ ## Install
10
14
 
11
- Install from npm into the Web profile:
15
+ Run this from the DeepSeek Harness project root, after the updated npm release is available:
12
16
 
13
17
  ```sh
14
- dsh plugin --profile web add @askdkc/dsh-lsp-server@latest
18
+ pnpm dsh plugin --profile web add @askdkc/dsh-lsp-server@latest
15
19
  ```
16
20
 
17
- Do not install this plugin with `github:askdkc/dsh-lsp-server`. Git installs must build the untracked `lib` files through `prepare`, which pnpm blocks unless the exact Git dependency is allowed in the Web profile's `allowBuilds`. The published npm package includes the built files.
21
+ `@latest` selects the npm `latest` tag. Older releases declared exact DSH host peers and can be skipped after a DSH update. Local source changes do not update the published package.
18
22
 
19
- If `plugin add` stops with `ERR_PNPM_IGNORED_BUILDS` for `core-js`, set the build decision in the **Web profile's** `~/.dsh/profiles/web/pnpm-workspace.yaml`. Running `pnpm approve-builds` from the harness project does not configure that profile. To skip the script, add or update:
23
+ Start or restart Web without opening a browser, from the same project root:
20
24
 
21
- ```yaml
22
- allowBuilds:
23
- core-js: false
25
+ ```sh
26
+ pnpm dsh web --no-open
24
27
  ```
25
28
 
26
- If the failed add already wrote the dependency, remove it with `dsh plugin --profile web remove @askdkc/dsh-lsp-server`, then repeat the add command using the same `dsh` launcher (for example, `pnpm dsh`). A dependency alone does not activate the plugin: confirm `@askdkc/dsh-lsp-server` appears in `dsh.profile.bundles` in the profile's `package.json`. See [installation troubleshooting](docs/usage.md#install) for details.
27
-
28
- Version `0.1.9` is skipped on DSH 0.2.0-rc.2 because it declares DSH `0.2.0-rc.1` host peers. After installing a compatible release, use the explicit `@latest` above to update an existing dependency; an unqualified `plugin add @askdkc/dsh-lsp-server` can leave its locked old version installed with `Already up to date`. The version exemption is not a compatibility fix. Start or restart Web with `dsh web`.
29
-
30
- [Configuration, tool usage, and troubleshooting](docs/usage.md)
29
+ Install the published npm package, not a Git dependency. The npm package includes its built files; a Git install must build them during `prepare` and may be blocked by the Web profile's `allowBuilds` policy. For install recovery and configuration, see [Usage and configuration](docs/usage.md).
31
30
 
32
31
  ## License
33
32
 
package/cordis.patch.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  - insert:
2
2
  - id: lsp
3
- name: '@deepseek-ai/dsh-lsp'
3
+ name: '@askdkc/dsh-lsp-server/lsp'
4
4
 
5
5
  - id: lsp-webstack-provider
6
6
  name: '@askdkc/dsh-lsp-server/provider'
@@ -14,7 +14,7 @@
14
14
  args: ['--stdio']
15
15
 
16
16
  - id: tool-lsp
17
- name: '@deepseek-ai/dsh-tool-lsp'
17
+ name: '@askdkc/dsh-lsp-server/tool-lsp'
18
18
  config:
19
19
  maxLocations: 200
20
20
  maxResultChars: 32000
package/docs/usage.md CHANGED
@@ -18,17 +18,17 @@ The five Node language servers and TypeScript are package dependencies. PHPantom
18
18
 
19
19
  See the [installation commands](../README.md#install).
20
20
 
21
- Specify `@latest` when upgrading an existing installation. A bare `plugin add @askdkc/dsh-lsp-server` can keep a locked older version and report `Already up to date`; verify the installed version in the Web profile before restarting DSH.
21
+ Run DSH commands from the DeepSeek Harness project root. After a updated npm release is published, use `@latest` to install or upgrade; an unqualified add can keep a locked older version and report `Already up to date`. A local `package.json` version change does not update npm's `latest` tag.
22
22
 
23
23
  ```sh
24
- dsh plugin --profile web list @askdkc/dsh-lsp-server --depth 0
24
+ pnpm dsh plugin --profile web list @askdkc/dsh-lsp-server --depth 0
25
25
  ```
26
26
 
27
- pnpm may warn about missing DSH peer packages because the profile has peer auto-installation disabled. DSH resolves those host services from its own installation; do not add duplicate host packages to the profile just to silence pnpm. A DSH compatibility warning naming this bundle and an old version means the bundle itself still needs upgrading.
27
+ pnpm may warn about missing DSH peer packages because the profile has peer auto-installation disabled. DSH resolves those host services from its own installation; do not add duplicate host packages to the profile just to silence pnpm. Older releases with exact host peers may still be skipped; install the updated release to remove that version gate.
28
28
 
29
29
  The bundle adds `lsp`, `lsp-webstack-provider`, `tool-lsp`, and `tool-lsp-extra` rows. Its `@deepseek-ai/dsh-lsp` and `@deepseek-ai/dsh-tool-lsp` dependencies are installed automatically; do not install them separately. The harness still provides the profile's `fs`, `subprocess`, `tools`, and `systemPrompt` services and the shared Cordis instance. Installing this package does not install the harness itself.
30
30
 
31
- This release pins the DSH LSP service, tool, and four required host services to `0.2.0-rc.2`. A registry `next` dependency could resolve an older prerelease from cached metadata and cause DSH to reject the installed plugin rows. The repository lockfile and packed-artifact test use the same DSH release.
31
+ The four DSH host peers use `*`, including prereleases in DSH's compatibility evaluator. All four bundle rows resolve through this package's own entry points; `/lsp` and `/tool-lsp` re-export the upstream implementations without catching import or initialization errors. The LSP dependencies and development host packages remain pinned to `0.2.0-rc.2` for reproducible builds and tests; those pins do not restrict the host version at startup. Future API compatibility is not guaranteed.
32
32
 
33
33
  DSH may stop `plugin add` with `ERR_PNPM_IGNORED_BUILDS` for `core-js`, a dependency of the bundled HTML/CSS server. Decide whether to allow its build script in DSH's plugin manager. To **deny** the script from the CLI, set `allowBuilds.core-js: false` in the selected profile's `pnpm-workspace.yaml` before adding this bundle:
34
34
 
@@ -37,7 +37,14 @@ allowBuilds:
37
37
  core-js: false
38
38
  ```
39
39
 
40
- The packed-artifact test runs HTML/CSS servers with dependency scripts disabled. If an earlier CLI add stopped after writing the dependency, check that `@askdkc/dsh-lsp-server` appears in `dsh.profile.bundles` in that profile's `package.json`; a dependency entry alone does not activate the bundle. If it is absent, remove the package with `dsh plugin --profile web remove @askdkc/dsh-lsp-server`, set the build decision, then repeat the original add command. Use the same launcher prefix you use for `dsh web`.
40
+ The packed-artifact test runs HTML/CSS servers with dependency scripts disabled. If an earlier add stopped after writing the dependency, check that `@askdkc/dsh-lsp-server` appears in `dsh.profile.bundles` in that profile's `package.json`; a dependency entry alone does not activate the bundle. If it is absent, remove the package, set the build decision, then add it again:
41
+
42
+ ```sh
43
+ pnpm dsh plugin --profile web remove @askdkc/dsh-lsp-server
44
+ pnpm dsh plugin --profile web add @askdkc/dsh-lsp-server@latest
45
+ ```
46
+
47
+ Run both commands from the DeepSeek Harness project root, after a updated npm release is available.
41
48
 
42
49
  If you already enabled another LSP provider for these extensions, remove its overlapping mappings first: DSH intentionally rejects duplicate ownership with `LSP_CONFLICT`. If your profile already declares the `lsp` or `tool-lsp` rows, compose the provider and extra-tool rows manually instead of inserting the whole bundle twice.
43
50
 
@@ -92,17 +99,21 @@ Bundled mode resolves executables on the Node host and is intended for local DSH
92
99
 
93
100
  ## Doctor
94
101
 
102
+ Run from this repository's root after installing dependencies and building:
103
+
95
104
  ```sh
105
+ pnpm install --frozen-lockfile
106
+ pnpm build
96
107
  node lib/cli/doctor.js --json
97
- node lib/cli/doctor.js --config ./webstack-config.json --deep
98
108
  ```
99
109
 
100
- The JSON config file contains the provider configuration object above. Doctor checks package binaries and PATH availability without launching servers, and exits nonzero when an enabled server is missing. `--deep` adds an explicit read-only inspection summary; it is **not** a protocol handshake or a check of the running DSH profile. Runtime status is available through `lsp_extra`.
110
+ Doctor checks package binaries and PATH availability without launching servers, and exits nonzero when an enabled server is missing. To inspect an existing JSON config, pass its path with `--config`; `--deep` adds a read-only summary, not a protocol handshake or check of the running DSH profile. Runtime status is available through `lsp_extra`.
101
111
 
102
112
  ## Verification
103
113
 
104
- `pnpm pack` builds the source through `prepare` and includes the built files in the tarball; npm releases also include those files. A direct Git dependency needs to run `prepare` in the Web profile and is blocked unless that exact Git dependency is listed in the profile's `allowBuilds`. Development dependencies provide the host services needed by the tests.
114
+ From this repository root, `pnpm pack` builds the source through `prepare` and includes the built files in the tarball; npm releases also include those files. A direct Git dependency needs to run `prepare` in the Web profile and is blocked unless that exact Git dependency is listed in the profile's `allowBuilds`. Development dependencies provide the host services needed by the tests.
105
115
 
116
+ Run these from this repository's root:
106
117
  ```sh
107
118
  pnpm install --frozen-lockfile
108
119
  pnpm check # types, deterministic/DSH integration tests, build, packed-artifact smoke test
@@ -110,13 +121,13 @@ pnpm test:e2e # real TS/JS, HTML, CSS, Svelte, Tailwind v3/v4
110
121
  PHPANTOM_E2E=1 pnpm test:e2e # additionally tests installed PHPantom with PHP and Blade
111
122
  ```
112
123
 
113
- The packed-artifact test installs the archive into a fresh consumer with DSH's hoisted layout, peer auto-installation disabled, and dependency scripts disabled. It provides the host service packages but does not preinstall either LSP package, then verifies bundle imports, both tool registrations, and real TypeScript, HTML, and CSS queries. It also checks declaration paths and the executable doctor. The consumer install prefers cached packages but needs registry access for uncached packages or metadata. E2E needs working OS file watchers; sandboxed macOS watchers may fail with `EMFILE`.
124
+ The packed-artifact test installs the archive into a fresh consumer with DSH's hoisted layout, peer auto-installation disabled, and dependency scripts disabled. It provides the host service packages but does not preinstall either LSP package, then verifies official profile composition and preflight, bundle imports, both tool registrations, and real TypeScript, HTML, and CSS queries on DSH `0.2.0-rc.2` and `0.2.1-alpha.1`. It also checks that import and initialization errors retain their original cause. It also checks declaration paths and the executable doctor. The consumer install prefers cached packages but needs registry access for uncached packages or metadata. E2E needs working OS file watchers; sandboxed macOS watchers may fail with `EMFILE`.
114
125
 
115
- Integration tests run against the published DSH service/tool packages and Cordis versions recorded in the lockfile. The full Web UI and a source-built upstream application are not exercised here.
126
+ Integration tests run against the published DSH service/tool packages and Cordis versions recorded in the lockfile. The packed consumers use the published DSH runtimes named above. Future versions (`0.3.0-alpha.1` and `1.0.0`) are simulated only as version inputs to the official compatibility evaluator, not tested APIs. The full Web UI and a source-built upstream application are not exercised here.
116
127
 
117
128
  ### Dependency security
118
129
 
119
- This repository pins Vite to 6.4.3 (which uses patched esbuild 0.25.x) and overrides the Svelte Language Server's fallback compiler to Svelte 5.55.7. These versions address [Vite's Windows path bypass](https://github.com/advisories/GHSA-fx2h-pf6j-xcff) and the [Svelte SSR](https://github.com/advisories/GHSA-pr6f-5x2q-rwfp) / [DOM clobbering](https://github.com/advisories/GHSA-rcqx-6q8c-2c42) advisories. Run `pnpm audit` after dependency updates. The Svelte E2E tests exercise fallback compilation with both legacy and rune syntax, including diagnostics after edits.
130
+ This repository pins Vite to 6.4.3 (which uses patched esbuild 0.25.x) and overrides the Svelte Language Server's fallback compiler to Svelte 5.55.7. These versions address [Vite's Windows path bypass](https://github.com/advisories/GHSA-fx2h-pf6j-xcff) and the [Svelte SSR](https://github.com/advisories/GHSA-pr6f-5x2q-rwfp) / [DOM clobbering](https://github.com/advisories/GHSA-rcqx-6q8c-2c42) advisories. Run `pnpm audit` from this repository root after dependency updates. The Svelte E2E tests exercise fallback compilation with both legacy and rune syntax, including diagnostics after edits.
120
131
 
121
132
  The pinned `svelte-language-server` still declares Svelte 4 as its dependency. Repository overrides and `pnpm-lock.yaml` do **not** propagate when this plugin is installed as a dependency. Until upstream changes that dependency, the host installation must apply its own override to obtain the patched fallback compiler. For npm, merge this into the installation root's `package.json`, reinstall, and run `npm audit`:
122
133
 
package/lib/lsp.js ADDED
@@ -0,0 +1,5 @@
1
+ import dsh_lsp_default from "@deepseek-ai/dsh-lsp";
2
+
3
+ export * from "@deepseek-ai/dsh-lsp"
4
+
5
+ export { dsh_lsp_default as default };
@@ -0,0 +1,3 @@
1
+ export * from "@deepseek-ai/dsh-tool-lsp"
2
+
3
+ export { };
@@ -0,0 +1,2 @@
1
+ export { default } from '@deepseek-ai/dsh-lsp';
2
+ export * from '@deepseek-ai/dsh-lsp';
@@ -0,0 +1 @@
1
+ export * from '@deepseek-ai/dsh-tool-lsp';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askdkc/dsh-lsp-server",
3
- "version": "0.1.10",
3
+ "version": "0.1.11",
4
4
  "description": "Composite read-only LSP provider for DeepSeek Harness web stacks",
5
5
  "type": "module",
6
6
  "main": "./lib/provider.js",
@@ -18,7 +18,15 @@
18
18
  "types": "./lib/types/extra-tool.d.ts",
19
19
  "default": "./lib/extra-tool.js"
20
20
  },
21
- "./package.json": "./package.json"
21
+ "./package.json": "./package.json",
22
+ "./lsp": {
23
+ "types": "./lib/types/lsp.d.ts",
24
+ "default": "./lib/lsp.js"
25
+ },
26
+ "./tool-lsp": {
27
+ "types": "./lib/types/tool-lsp.d.ts",
28
+ "default": "./lib/tool-lsp.js"
29
+ }
22
30
  },
23
31
  "bin": {
24
32
  "dsh-lsp-webstack": "./lib/cli/doctor.js"
@@ -57,10 +65,10 @@
57
65
  },
58
66
  "peerDependencies": {
59
67
  "@deepseek-ai/cordis": "~4.0.4",
60
- "@deepseek-ai/dsh-fs": "0.2.0-rc.2",
61
- "@deepseek-ai/dsh-subprocess": "0.2.0-rc.2",
62
- "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.2",
63
- "@deepseek-ai/dsh-tools": "0.2.0-rc.2",
68
+ "@deepseek-ai/dsh-fs": "*",
69
+ "@deepseek-ai/dsh-subprocess": "*",
70
+ "@deepseek-ai/dsh-system-prompt": "*",
71
+ "@deepseek-ai/dsh-tools": "*",
64
72
  "@deepseek-ai/schemastery": "~3.18.4"
65
73
  },
66
74
  "devDependencies": {