@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 +15 -16
- package/cordis.patch.yml +2 -2
- package/docs/usage.md +22 -11
- package/lib/lsp.js +5 -0
- package/lib/tool-lsp.js +3 -0
- package/lib/types/lsp.d.ts +2 -0
- package/lib/types/tool-lsp.d.ts +1 -0
- package/package.json +14 -6
package/README.md
CHANGED
|
@@ -1,33 +1,32 @@
|
|
|
1
1
|
# @askdkc/dsh-lsp-server
|
|
2
2
|
|
|
3
|
-
|
|
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
|
-
|
|
5
|
+
## Requirements
|
|
6
6
|
|
|
7
|
-
|
|
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
|
-
|
|
13
|
+
## Install
|
|
10
14
|
|
|
11
|
-
|
|
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
|
-
|
|
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
|
-
|
|
23
|
+
Start or restart Web without opening a browser, from the same project root:
|
|
20
24
|
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
core-js: false
|
|
25
|
+
```sh
|
|
26
|
+
pnpm dsh web --no-open
|
|
24
27
|
```
|
|
25
28
|
|
|
26
|
-
|
|
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: '@
|
|
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: '@
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
package/lib/tool-lsp.js
ADDED
|
@@ -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.
|
|
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": "
|
|
61
|
-
"@deepseek-ai/dsh-subprocess": "
|
|
62
|
-
"@deepseek-ai/dsh-system-prompt": "
|
|
63
|
-
"@deepseek-ai/dsh-tools": "
|
|
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": {
|