@askdkc/dsh-lsp-server 0.1.9 → 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/CHANGELOG.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
- - Pin the LSP service, tool, and host peers to DSH `0.2.0-rc.1` so cached `next` metadata cannot install incompatible LSP rows.
5
+ - Align the LSP service, tool, host peers, and development dependencies with DSH `0.2.0-rc.2` so the plugin loads on that runtime.
6
6
  - Require Node.js 22.19+ or 24+ to match DSH 0.2.0.
7
7
  - Use the same DSH launcher for plugin installation and Web startup.
8
8
 
package/README.md CHANGED
@@ -1,37 +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
8
-
9
- Requires Node.js **22.19+ (22.x) or 24+** and DSH **0.2.0-rc.1**. The DSH LSP packages and Node language servers install with this plugin. For PHP/Blade, install **PHPantom** so `phpantom_lsp` is in `PATH`.
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
10
 
11
- Install from npm into the Web profile:
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.
12
12
 
13
- ```sh
14
- dsh plugin --profile web add @askdkc/dsh-lsp-server@0.1.7
15
- ```
13
+ ## Install
16
14
 
17
- Or install from GitHub:
15
+ Run this from the DeepSeek Harness project root, after the updated npm release is available:
18
16
 
19
17
  ```sh
20
- dsh plugin --profile web add github:askdkc/dsh-lsp-server
18
+ pnpm dsh plugin --profile web add @askdkc/dsh-lsp-server@latest
21
19
  ```
22
20
 
23
- 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:
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.
24
22
 
25
- ```yaml
26
- allowBuilds:
27
- core-js: false
28
- ```
29
-
30
- 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.
23
+ Start or restart Web without opening a browser, from the same project root:
31
24
 
32
- An older installed bundle such as `0.1.2` is skipped on DSH 0.2.0-rc.1. Upgrade it with the `plugin add` command above after 0.1.7 is published; the version exemption is not a compatibility fix. Start or restart Web with `dsh web`.
25
+ ```sh
26
+ pnpm dsh web --no-open
27
+ ```
33
28
 
34
- [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).
35
30
 
36
31
  ## License
37
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,9 +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
+ 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
+
23
+ ```sh
24
+ pnpm dsh plugin --profile web list @askdkc/dsh-lsp-server --depth 0
25
+ ```
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. Older releases with exact host peers may still be skipped; install the updated release to remove that version gate.
28
+
21
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.
22
30
 
23
- This release pins the DSH LSP service and tool to `0.2.0-rc.1`, matching the required host DSH services. 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.
24
32
 
25
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:
26
34
 
@@ -29,7 +37,14 @@ allowBuilds:
29
37
  core-js: false
30
38
  ```
31
39
 
32
- 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.
33
48
 
34
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.
35
50
 
@@ -84,17 +99,21 @@ Bundled mode resolves executables on the Node host and is intended for local DSH
84
99
 
85
100
  ## Doctor
86
101
 
102
+ Run from this repository's root after installing dependencies and building:
103
+
87
104
  ```sh
105
+ pnpm install --frozen-lockfile
106
+ pnpm build
88
107
  node lib/cli/doctor.js --json
89
- node lib/cli/doctor.js --config ./webstack-config.json --deep
90
108
  ```
91
109
 
92
- 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`.
93
111
 
94
112
  ## Verification
95
113
 
96
- Source installs build automatically through `prepare`; npm releases include the built files. `.npmrc` disables automatic peer installation during development and Git builds; 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.
97
115
 
116
+ Run these from this repository's root:
98
117
  ```sh
99
118
  pnpm install --frozen-lockfile
100
119
  pnpm check # types, deterministic/DSH integration tests, build, packed-artifact smoke test
@@ -102,13 +121,13 @@ pnpm test:e2e # real TS/JS, HTML, CSS, Svelte, Tailwind v3/v4
102
121
  PHPANTOM_E2E=1 pnpm test:e2e # additionally tests installed PHPantom with PHP and Blade
103
122
  ```
104
123
 
105
- 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`.
106
125
 
107
- 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.
108
127
 
109
128
  ### Dependency security
110
129
 
111
- 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.
112
131
 
113
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`:
114
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.9",
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"
@@ -47,8 +55,8 @@
47
55
  "prepublishOnly": "npm run check"
48
56
  },
49
57
  "dependencies": {
50
- "@deepseek-ai/dsh-lsp": "0.2.0-rc.1",
51
- "@deepseek-ai/dsh-tool-lsp": "0.2.0-rc.1",
58
+ "@deepseek-ai/dsh-lsp": "0.2.0-rc.2",
59
+ "@deepseek-ai/dsh-tool-lsp": "0.2.0-rc.2",
52
60
  "@tailwindcss/language-server": "0.16.0",
53
61
  "svelte-language-server": "0.17.15",
54
62
  "typescript": "5.7.3",
@@ -57,33 +65,33 @@
57
65
  },
58
66
  "peerDependencies": {
59
67
  "@deepseek-ai/cordis": "~4.0.4",
60
- "@deepseek-ai/dsh-fs": "0.2.0-rc.1",
61
- "@deepseek-ai/dsh-subprocess": "0.2.0-rc.1",
62
- "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1",
63
- "@deepseek-ai/dsh-tools": "0.2.0-rc.1",
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": {
67
75
  "@deepseek-ai/cordis": "~4.0.4",
68
- "@deepseek-ai/dsh-agent": "0.2.0-rc.1",
69
- "@deepseek-ai/dsh-brand": "0.2.0-rc.1",
70
- "@deepseek-ai/dsh-fs": "0.2.0-rc.1",
71
- "@deepseek-ai/dsh-fs-local": "0.2.0-rc.1",
72
- "@deepseek-ai/dsh-http-proxy": "0.2.0-rc.1",
73
- "@deepseek-ai/dsh-invariants": "0.2.0-rc.1",
74
- "@deepseek-ai/dsh-llm": "0.2.0-rc.1",
75
- "@deepseek-ai/dsh-ptc-runtime": "0.2.0-rc.1",
76
- "@deepseek-ai/dsh-sandbox": "0.2.0-rc.1",
77
- "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.1",
78
- "@deepseek-ai/dsh-scope": "0.2.0-rc.1",
79
- "@deepseek-ai/dsh-session": "0.2.0-rc.1",
80
- "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1",
81
- "@deepseek-ai/dsh-subprocess": "0.2.0-rc.1",
82
- "@deepseek-ai/dsh-subprocess-local": "0.2.0-rc.1",
83
- "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1",
84
- "@deepseek-ai/dsh-timeout": "0.2.0-rc.1",
85
- "@deepseek-ai/dsh-tools": "0.2.0-rc.1",
86
- "@deepseek-ai/dsh-user-approval": "0.2.0-rc.1",
76
+ "@deepseek-ai/dsh-agent": "0.2.0-rc.2",
77
+ "@deepseek-ai/dsh-brand": "0.2.0-rc.2",
78
+ "@deepseek-ai/dsh-fs": "0.2.0-rc.2",
79
+ "@deepseek-ai/dsh-fs-local": "0.2.0-rc.2",
80
+ "@deepseek-ai/dsh-http-proxy": "0.2.0-rc.2",
81
+ "@deepseek-ai/dsh-invariants": "0.2.0-rc.2",
82
+ "@deepseek-ai/dsh-llm": "0.2.0-rc.2",
83
+ "@deepseek-ai/dsh-ptc-runtime": "0.2.0-rc.2",
84
+ "@deepseek-ai/dsh-sandbox": "0.2.0-rc.2",
85
+ "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.2",
86
+ "@deepseek-ai/dsh-scope": "0.2.0-rc.2",
87
+ "@deepseek-ai/dsh-session": "0.2.0-rc.2",
88
+ "@deepseek-ai/dsh-session-projection": "0.2.0-rc.2",
89
+ "@deepseek-ai/dsh-subprocess": "0.2.0-rc.2",
90
+ "@deepseek-ai/dsh-subprocess-local": "0.2.0-rc.2",
91
+ "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.2",
92
+ "@deepseek-ai/dsh-timeout": "0.2.0-rc.2",
93
+ "@deepseek-ai/dsh-tools": "0.2.0-rc.2",
94
+ "@deepseek-ai/dsh-user-approval": "0.2.0-rc.2",
87
95
  "@deepseek-ai/schemastery": "~3.18.4",
88
96
  "@types/node": "22.10.5",
89
97
  "tailwindcss-v3": "npm:tailwindcss@3.4.17",