@deepseek-ai/dsh-tool-lsp 0.0.1-rc.2 → 0.1.0-rc.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/LICENSE CHANGED
@@ -1,28 +1,21 @@
1
- BSD 3-Clause License
1
+ MIT License
2
2
 
3
- Copyright (c) 2026, DeepSeek
3
+ Copyright (c) 2026 DeepSeek
4
4
 
5
- Redistribution and use in source and binary forms, with or without
6
- modification, are permitted provided that the following conditions are met:
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
7
11
 
8
- 1. Redistributions of source code must retain the above copyright notice, this
9
- list of conditions and the following disclaimer.
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
10
14
 
11
- 2. Redistributions in binary form must reproduce the above copyright notice,
12
- this list of conditions and the following disclaimer in the documentation
13
- and/or other materials provided with the distribution.
14
-
15
- 3. Neither the name of the copyright holder nor the names of its
16
- contributors may be used to endorse or promote products derived from
17
- this software without specific prior written permission.
18
-
19
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
23
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26
- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27
- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.i18n.yaml CHANGED
@@ -2,5 +2,5 @@
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write packages/lsp/tool-lsp/README.md
5
- README.md: 36fa3026cba3fc692ae5a86c7307acf77563cf53
6
- README.zh.md: 1b0b1f4847cf711e7939b79ac2f8035f26cb73aa
5
+ README.md: e0fd5738cf114314a8483125d20142d5f1ffac40
6
+ README.zh.md: 8c908c1e8766ab47e9cefbc9d1f72f05e8c2709f
package/README.md CHANGED
@@ -18,7 +18,7 @@ The tool requires the workspace root from the session `header.cwd`, with no fall
18
18
  |---|---|---|
19
19
  | `maxLocations` | `100` | Largest number of rendered locations before an omission marker. |
20
20
  | `maxResultChars` | `16000` | Largest complete rendered result, including truncation metadata. |
21
- | `timeoutMs` | `60000` | Tool-call timeout budget, enforced by `dsh-timeout-policy`; covers the complete queued open/query/close lifecycle and is not model-configurable. |
21
+ | `timeoutMs` | `60000` | Tool-call timeout budget, enforced by `dsh-tool-call-timeout-policy`; covers the complete queued open/query/close lifecycle and is not model-configurable. |
22
22
 
23
23
  ## Model Experience
24
24
 
package/README.zh.md CHANGED
@@ -8,9 +8,9 @@ Namespace 插件(`name`/`inject`/`Config`/`apply`,无默认导出)
8
8
 
9
9
  ## 工具
10
10
 
11
- `lsp` 接受 `operation`(`goToDefinition` | `findReferences` | `goToImplementation` | `hover`)、`file_path`、`line` 和 `character`。`line` 与 `character` 是正的、从 1 开始的 UTF-16 光标坐标;工具将其转换为 seam 从零开始的位置,并把渲染位置转换回来。`findReferences` 包含声明,因此影响分析不会遗漏定义位置。提供方、language id、Workspace 根、限制、超时、初始化和可执行文件均不进入模型输入。
11
+ `lsp` 接受 `operation`(`goToDefinition` | `findReferences` | `goToImplementation` | `hover`)、`file_path`、`line` 和 `character`。`line` 与 `character` 是正的、从 1 开始的 UTF-16 光标坐标;工具将其转换为 seam 从零开始的位置,并把渲染位置转换回来。`findReferences` 包含声明,因此影响分析不会遗漏定义位置。提供方、language id、工作区根目录、限制、超时、初始化和可执行文件均不进入模型输入。
12
12
 
13
- 该工具要求从会话 `header.cwd` 取得 Workspace 根,没有回退值:缺失时会在查询前以 `LSP_WORKSPACE_REQUIRED` 失败。其规范结果是完整的已规范化 Service Definition 联合:`{ kind: "locations", locations, resolvedWorkspaceUri }` 或 `{ kind: "hover", hover }`;Code Mode 可以直接检查每个已取得的位置和从零开始的范围。原生渲染以提供方的规范工作区 URI 为基准,投影按文件稳定分组的 `path:line:character` 条目,而不对会话 cwd 应用宿主平台路径规则。`file:` URI 落在该工作区 URI 内时成为工作区相对路径,位于其外时成为从 URI 派生的绝对路径;格式错误的 URI 与非 `file:` URI 保持原样。空位置和 `null` hover 都是成功的无结果响应;格式错误的提供方载荷仍是结构化错误。
13
+ 该工具要求从会话 `header.cwd` 取得工作区根目录,没有回退值:缺失时会在查询前以 `LSP_WORKSPACE_REQUIRED` 失败。其规范结果是完整的已规范化 Service Definition 联合类型:`{ kind: "locations", locations, resolvedWorkspaceUri }` 或 `{ kind: "hover", hover }`;Code Mode 可以直接检查每个已取得的位置和从零开始的范围。原生渲染以提供方的规范工作区 URI 为基准,投影按文件稳定分组的 `path:line:character` 条目,而不对会话 cwd 应用宿主平台路径规则。`file:` URI 落在该工作区 URI 内时成为工作区相对路径,位于其外时成为从 URI 派生的绝对路径;格式错误的 URI 与非 `file:` URI 保持原样。空位置和 `null` hover 都是成功的无结果响应;格式错误的提供方载荷仍是结构化错误。
14
14
 
15
15
  ## 配置
16
16
 
@@ -18,7 +18,7 @@ Namespace 插件(`name`/`inject`/`Config`/`apply`,无默认导出)
18
18
  |---|---|---|
19
19
  | `maxLocations` | `100` | 出现省略标记前可渲染位置的最大数量。 |
20
20
  | `maxResultChars` | `16000` | 完整渲染结果的最大长度,包括截断元数据。 |
21
- | `timeoutMs` | `60000` | 由 `dsh-timeout-policy` 强制执行的工具调用超时预算;覆盖完整的排队打开/查询/关闭生命周期,且模型不可配置。 |
21
+ | `timeoutMs` | `60000` | 由 `dsh-tool-call-timeout-policy` 强制执行的工具调用超时预算;覆盖完整的排队打开/查询/关闭生命周期,且模型不可配置。 |
22
22
 
23
23
  ## 模型体验
24
24
 
@@ -40,7 +40,7 @@ Use search/read for ordinary navigation. Use lsp when textual matches are ambigu
40
40
 
41
41
  #### KV Cache 影响
42
42
 
43
- 只要插件 scope 与指引文本不变,前缀就保持稳定;激活或释放可能使从该区段起的复用失效。
43
+ 只要插件 scope 与指引文本不变,前缀就保持稳定;激活或 dispose(资源释放)可能使从该区段起的复用失效。
44
44
 
45
45
  ### 工具 schema
46
46
 
@@ -86,5 +86,5 @@ Use search/read for ordinary navigation. Use lsp when textual matches are ambigu
86
86
 
87
87
  ## 已知限制与暂缓事项
88
88
 
89
- - **UTF-16 光标坐标**:列坐标与协议精确一致,但模型难以在非 BMP 字符周围计数;非 symbol 位置可能返回空结果,因此提示词解释了该约定,但不会鼓励宽泛使用 LSP(见 [seam Agent Note](../../../.agents/notes/implemented/architecture/2026-07-15-lsp-capability-seam.md))。
89
+ - **UTF-16 光标坐标**:列坐标与协议精确一致,但模型难以在非 BMP 字符周围计数;未落在符号上的位置可能返回空结果,因此提示词解释了该约定,但不鼓励广泛使用 LSP(见 [seam Agent Note](../../../.agents/notes/implemented/architecture/2026-07-15-lsp-capability-seam.md))。
90
90
  - **不承诺跨服务器完整性**:受支持的服务器仍可能根据索引就绪情况返回空或部分结果;该工具不承诺跨语言或服务器的完整性。
package/lib/index.js CHANGED
@@ -183,7 +183,7 @@ function sessionCwd(exec) {
183
183
  * (`goToDefinition`/`findReferences`/`goToImplementation`/`hover`); it converts one-based UTF-16
184
184
  * cursor coordinates to the seam's zero-based positions, requires the session workspace with no
185
185
  * fallback, caps and renders results, and attaches a configurable timeout budget for
186
- * `dsh-timeout-policy` to enforce. It runtime-injects only `tools`, `lsp`, and `systemPrompt` and
186
+ * `dsh-tool-call-timeout-policy` to enforce. It runtime-injects only `tools`, `lsp`, and `systemPrompt` and
187
187
  * imports no provider.
188
188
  *
189
189
  * Namespace plugin (named exports, no default export).
@@ -3,7 +3,7 @@
3
3
  * (`goToDefinition`/`findReferences`/`goToImplementation`/`hover`); it converts one-based UTF-16
4
4
  * cursor coordinates to the seam's zero-based positions, requires the session workspace with no
5
5
  * fallback, caps and renders results, and attaches a configurable timeout budget for
6
- * `dsh-timeout-policy` to enforce. It runtime-injects only `tools`, `lsp`, and `systemPrompt` and
6
+ * `dsh-tool-call-timeout-policy` to enforce. It runtime-injects only `tools`, `lsp`, and `systemPrompt` and
7
7
  * imports no provider.
8
8
  *
9
9
  * Namespace plugin (named exports, no default export).
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-tool-lsp",
3
3
  "description": "Model-facing lsp tool over the DeepSeek Harness LSP capability seam (ctx.lsp) — one read-only tool with goToDefinition/findReferences/goToImplementation/hover operations, one-based UTF-16 cursor coordinates, bounded location rendering, and hover normalization",
4
- "version": "0.0.1-rc.2",
4
+ "version": "0.1.0-rc.2",
5
5
  "publishConfig": {
6
6
  "access": "restricted"
7
7
  },
@@ -30,32 +30,32 @@
30
30
  "lib/invariant.js",
31
31
  "lib/types/**/*.d.ts"
32
32
  ],
33
- "license": "BSD-3-Clause",
33
+ "license": "MIT",
34
34
  "peerDependencies": {
35
- "@deepseek-ai/dsh-invariants": "^0.0.1-rc.2",
36
- "@deepseek-ai/dsh-llm": "^0.0.1-rc.2",
37
- "@deepseek-ai/dsh-lsp": "^0.0.1-rc.2",
38
- "@deepseek-ai/dsh-system-prompt": "^0.0.1-rc.2",
39
- "@deepseek-ai/dsh-timeout": "^0.0.1-rc.2",
40
- "@deepseek-ai/dsh-tools": "^0.0.1-rc.2",
41
- "@deepseek-ai/cordis": "^4.0.1-rc.1"
35
+ "@deepseek-ai/dsh-invariants": "^0.1.0-rc.2",
36
+ "@deepseek-ai/dsh-llm": "^0.1.0-rc.2",
37
+ "@deepseek-ai/dsh-lsp": "^0.1.0-rc.2",
38
+ "@deepseek-ai/dsh-system-prompt": "^0.1.0-rc.2",
39
+ "@deepseek-ai/dsh-timeout": "^0.1.0-rc.2",
40
+ "@deepseek-ai/dsh-tools": "^0.1.0-rc.2",
41
+ "@deepseek-ai/cordis": "^4.0.1"
42
42
  },
43
43
  "dependencies": {
44
- "@deepseek-ai/schemastery": "^3.18.1-rc.1"
44
+ "@deepseek-ai/schemastery": "^3.18.1"
45
45
  },
46
46
  "devDependencies": {
47
- "@deepseek-ai/dsh-agent": "^0.0.1-rc.2",
48
- "@deepseek-ai/dsh-fs-local": "^0.0.1-rc.2",
49
- "@deepseek-ai/dsh-invariants": "^0.0.1-rc.2",
50
- "@deepseek-ai/dsh-llm": "^0.0.1-rc.2",
51
- "@deepseek-ai/dsh-lsp": "^0.0.1-rc.2",
52
- "@deepseek-ai/dsh-lsp-local": "^0.0.1-rc.2",
53
- "@deepseek-ai/dsh-session": "^0.0.1-rc.2",
54
- "@deepseek-ai/dsh-subprocess-local": "^0.0.1-rc.2",
55
- "@deepseek-ai/dsh-system-prompt": "^0.0.1-rc.2",
56
- "@deepseek-ai/dsh-timeout": "^0.0.1-rc.2",
57
- "@deepseek-ai/dsh-timeout-policy": "^0.0.1-rc.2",
58
- "@deepseek-ai/cordis": "^4.0.1-rc.1",
59
- "@deepseek-ai/dsh-tools": "^0.0.1-rc.2"
47
+ "@deepseek-ai/dsh-agent": "^0.1.0-rc.2",
48
+ "@deepseek-ai/dsh-fs-local": "^0.1.0-rc.2",
49
+ "@deepseek-ai/dsh-invariants": "^0.1.0-rc.2",
50
+ "@deepseek-ai/dsh-llm": "^0.1.0-rc.2",
51
+ "@deepseek-ai/dsh-lsp": "^0.1.0-rc.2",
52
+ "@deepseek-ai/dsh-lsp-stdio": "^0.1.0-rc.2",
53
+ "@deepseek-ai/dsh-session": "^0.1.0-rc.2",
54
+ "@deepseek-ai/dsh-subprocess-local": "^0.1.0-rc.2",
55
+ "@deepseek-ai/dsh-timeout": "^0.1.0-rc.2",
56
+ "@deepseek-ai/dsh-tool-call-timeout-policy": "^0.1.0-rc.2",
57
+ "@deepseek-ai/dsh-system-prompt": "^0.1.0-rc.2",
58
+ "@deepseek-ai/dsh-tools": "^0.1.0-rc.2",
59
+ "@deepseek-ai/cordis": "^4.0.1"
60
60
  }
61
61
  }