@geml/dsh-plugin 1.0.2 → 1.0.4

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,27 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 GEML contributors
4
-
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:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
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.
22
-
23
- ---
24
-
25
- NOTE: This MIT license covers the *code* in this repository (geml-parser/,
26
- integrations/geml-viewer/, integrations/geml-check-action/, docs/examples/
27
- tooling). The *specification* documents are licensed separately under
28
- CC-BY-4.0 — see LICENSE-spec.md.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 GEML contributors
4
+
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:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
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.
22
+
23
+ ---
24
+
25
+ NOTE: This MIT license covers the *code* in this repository (geml-parser/,
26
+ integrations/geml-viewer/, integrations/geml-check-action/, playground/). The *specification* documents are licensed separately under
27
+ CC-BY-4.0 — see LICENSE-spec.md.
package/README.md CHANGED
@@ -1,69 +1,69 @@
1
- # @geml/dsh-plugin — GEML for DeepSeek Harness
2
-
3
- English | [中文](README.zh.md)
4
-
5
- This plugin brings **Agent-Native** document handling to the harness. Multi-turn
6
- work drowns in token bloat — whole files read in, whole files written back,
7
- content growing verbose and drifting from the truth.
8
- [GEML](https://github.com/geml-spec/geml) exposes a document as **addressable
9
- blocks** an LLM can reason about and edit precisely: one section in, one section
10
- back, at a fraction of the tokens, leaving the context window for the actual
11
- work. A built-in **reference** mechanism keeps a **single source of truth**, so
12
- facts stop fragmenting across copies and an agent maintains docs at zero
13
- overhead.
14
-
15
- The bundle ships three things:
16
-
17
- - **The GEML MCP server** — one `@deepseek-ai/dsh-mcp-client` row running
18
- `npx -y @geml/geml mcp --root .`, confined to the session's project
19
- directory. The model sees `mcp__geml__geml_get`, `mcp__geml__geml_set`,
20
- `mcp__geml__geml_check` and friends, so it edits one block at a time instead
21
- of rewriting files.
22
- - **The authoring skill** (`skills/geml/`) — golden rules, validation loop, and
23
- a sectioned reference (`references/authoring.geml`) the agent pulls one topic
24
- at a time.
25
- - **The code-graph skill** (`skills/geml-code-graph/`) — build, view, update and
26
- navigate a project's call graph: who calls X, what X calls, impact paths, with
27
- the graph rendered in the browser.
28
-
29
- The bundle carries no code of its own — both plugins it configures ship inside
30
- the dsh installation, and the skills are Markdown. Nothing is built at install
31
- time, so no `allowBuilds` approval is involved either way.
32
-
33
- ## Install
34
-
35
- ```sh
36
- dsh plugin --profile web add @geml/dsh-plugin
37
- ```
38
-
39
- Verify the layer without booting, then boot:
40
-
41
- ```sh
42
- dsh --profile web --dump-config # shows a "# == @geml/dsh-plugin" layer
43
- dsh --profile web
44
- ```
45
-
46
- `dsh plugin --profile web remove @geml/dsh-plugin` removes both the
47
- dependency and the layer.
48
-
49
- ## Configuration
50
-
51
- Both rows are ordinary configuration: override them by `id` in your profile's
52
- `cordis.patch.yml`, restating every key the row needs. Point `mcp-geml` at a
53
- pinned CLI version, for instance:
54
-
55
- ```yaml
56
- - id: mcp-geml
57
- name: '@deepseek-ai/dsh-mcp-client'
58
- config:
59
- serverName: geml
60
- transport: stdio
61
- command: npx
62
- args: ['-y', '@geml/geml', 'mcp', '--root', '.']
63
- ```
64
-
65
- A global `geml` on PATH works as well — `command: geml`, dropping the `npx`
66
- arguments.
67
-
68
- The CLI and the same skills for Claude Code instead: `npx -y @geml/geml skill
69
- install`, or the plugin under [`../claude-plugin`](../claude-plugin).
1
+ # @geml/dsh-plugin — GEML for DeepSeek Harness
2
+
3
+ English | [中文](README.zh.md)
4
+
5
+ This plugin brings **Agent-Native** document handling to the harness. Multi-turn
6
+ work drowns in token bloat — whole files read in, whole files written back,
7
+ content growing verbose and drifting from the truth.
8
+ [GEML](https://github.com/geml-spec/geml) exposes a document as **addressable
9
+ blocks** an LLM can reason about and edit precisely: one section in, one section
10
+ back, at a fraction of the tokens, leaving the context window for the actual
11
+ work. A built-in **reference** mechanism keeps a **single source of truth**, so
12
+ facts stop fragmenting across copies and an agent maintains docs at zero
13
+ overhead.
14
+
15
+ The bundle ships three things:
16
+
17
+ - **The GEML MCP server** — one `@deepseek-ai/dsh-mcp-client` row running
18
+ `npx -y @geml/geml mcp --root .`, confined to the session's project
19
+ directory. The model sees `mcp__geml__geml_get`, `mcp__geml__geml_set`,
20
+ `mcp__geml__geml_check` and friends, so it edits one block at a time instead
21
+ of rewriting files.
22
+ - **The authoring skill** (`skills/geml/`) — golden rules, validation loop, and
23
+ a sectioned reference (`references/authoring.geml`) the agent pulls one topic
24
+ at a time.
25
+ - **The code-graph skill** (`skills/geml-code-graph/`) — build, view, update and
26
+ navigate a project's call graph: who calls X, what X calls, impact paths, with
27
+ the graph rendered in the browser.
28
+
29
+ The bundle carries no code of its own — both plugins it configures ship inside
30
+ the dsh installation, and the skills are Markdown. Nothing is built at install
31
+ time, so no `allowBuilds` approval is involved either way.
32
+
33
+ ## Install
34
+
35
+ ```sh
36
+ dsh plugin --profile web add @geml/dsh-plugin
37
+ ```
38
+
39
+ Verify the layer without booting, then boot:
40
+
41
+ ```sh
42
+ dsh --profile web --dump-config # shows a "# == @geml/dsh-plugin" layer
43
+ dsh --profile web
44
+ ```
45
+
46
+ `dsh plugin --profile web remove @geml/dsh-plugin` removes both the
47
+ dependency and the layer.
48
+
49
+ ## Configuration
50
+
51
+ Both rows are ordinary configuration: override them by `id` in your profile's
52
+ `cordis.patch.yml`, restating every key the row needs. Point `mcp-geml` at a
53
+ pinned CLI version, for instance:
54
+
55
+ ```yaml
56
+ - id: mcp-geml
57
+ name: '@deepseek-ai/dsh-mcp-client'
58
+ config:
59
+ serverName: geml
60
+ transport: stdio
61
+ command: npx
62
+ args: ['-y', '@geml/geml', 'mcp', '--root', '.']
63
+ ```
64
+
65
+ A global `geml` on PATH works as well — `command: geml`, dropping the `npx`
66
+ arguments.
67
+
68
+ The CLI and the same skills for Claude Code instead: `npx -y @geml/geml skill
69
+ install`, or the plugin under [`../claude-plugin`](../claude-plugin).
package/README.zh.md CHANGED
@@ -1,60 +1,60 @@
1
- # @geml/dsh-plugin — DeepSeek Harness 上的 GEML
2
-
3
- [English](README.md) | 中文
4
-
5
- 本插件为 harness 提供 **Agent-Native** 的文档处理能力。多轮交互最容易被 Token
6
- 膨胀拖垮——整篇读进来、整篇写回去,内容越滚越臃肿,也越来越偏离事实。
7
- [GEML](https://github.com/geml-spec/geml) 把文档呈现为**可寻址的块**,让 LLM
8
- 能精准理解与改写:取一个小节、写回一个小节,Token 只需零头,宝贵的上下文窗口
9
- 留给真正的工作。内建的**引用机制**维持**单一数据源(Single Source of
10
- Truth)**,事实不再散落成互相漂移的副本,Agent 可以零负担地读写与维护。
11
-
12
- 这个 bundle 带三样东西:
13
-
14
- - **GEML MCP server** —— 一行 `@deepseek-ai/dsh-mcp-client`,运行
15
- `npx -y @geml/geml mcp --root .`,限定在会话自己的项目目录内。模型看到的是
16
- `mcp__geml__geml_get`、`mcp__geml__geml_set`、`mcp__geml__geml_check` 等工具,
17
- 于是一次改一个块,而不是重写整个文件。
18
- - **写作技能**(`skills/geml/`)—— 黄金规则、校验闭环,以及一份分节的参考文档
19
- (`references/authoring.geml`),Agent 按需取其中一节。
20
- - **代码图谱技能**(`skills/geml-code-graph/`)—— 构建、查看、更新和浏览项目的
21
- 调用图:谁调用了 X、X 调用了谁、影响路径,并在浏览器里渲染出图。
22
-
23
- 这个 bundle 自身不含任何代码——它配置的两个插件都随 dsh 安装自带,技能则是
24
- Markdown。安装时不构建任何东西,因此完全不涉及 `allowBuilds` 构建授权。
25
-
26
- ## 安装
27
-
28
- ```sh
29
- dsh plugin --profile web add @geml/dsh-plugin
30
- ```
31
-
32
- 先不启动、只验证这一层,再启动:
33
-
34
- ```sh
35
- dsh --profile web --dump-config # 应能看到 "# == @geml/dsh-plugin" 这一层
36
- dsh --profile web
37
- ```
38
-
39
- `dsh plugin --profile web remove @geml/dsh-plugin` 会同时移除依赖和这一层。
40
-
41
- ## 配置
42
-
43
- 两行都是普通配置:在你 profile 的 `cordis.patch.yml` 里按 `id` 覆盖即可,注意
44
- 要把该行需要的每个键都重新写全。例如把 `mcp-geml` 钉到某个 CLI 版本:
45
-
46
- ```yaml
47
- - id: mcp-geml
48
- name: '@deepseek-ai/dsh-mcp-client'
49
- config:
50
- serverName: geml
51
- transport: stdio
52
- command: npx
53
- args: ['-y', '@geml/geml', 'mcp', '--root', '.']
54
- ```
55
-
56
- 用 PATH 上的全局 `geml` 也可以——把 `command` 改成 `geml`,去掉 `npx` 那几个
57
- 参数。
58
-
59
- 想要 CLI 和同一套技能用在 Claude Code 上:`npx -y @geml/geml skill install`,
60
- 或使用 [`../claude-plugin`](../claude-plugin) 下的插件。
1
+ # @geml/dsh-plugin — DeepSeek Harness 上的 GEML
2
+
3
+ [English](README.md) | 中文
4
+
5
+ 本插件为 harness 提供 **Agent-Native** 的文档处理能力。多轮交互最容易被 Token
6
+ 膨胀拖垮——整篇读进来、整篇写回去,内容越滚越臃肿,也越来越偏离事实。
7
+ [GEML](https://github.com/geml-spec/geml) 把文档呈现为**可寻址的块**,让 LLM
8
+ 能精准理解与改写:取一个小节、写回一个小节,Token 只需零头,宝贵的上下文窗口
9
+ 留给真正的工作。内建的**引用机制**维持**单一数据源(Single Source of
10
+ Truth)**,事实不再散落成互相漂移的副本,Agent 可以零负担地读写与维护。
11
+
12
+ 这个 bundle 带三样东西:
13
+
14
+ - **GEML MCP server** —— 一行 `@deepseek-ai/dsh-mcp-client`,运行
15
+ `npx -y @geml/geml mcp --root .`,限定在会话自己的项目目录内。模型看到的是
16
+ `mcp__geml__geml_get`、`mcp__geml__geml_set`、`mcp__geml__geml_check` 等工具,
17
+ 于是一次改一个块,而不是重写整个文件。
18
+ - **写作技能**(`skills/geml/`)—— 黄金规则、校验闭环,以及一份分节的参考文档
19
+ (`references/authoring.geml`),Agent 按需取其中一节。
20
+ - **代码图谱技能**(`skills/geml-code-graph/`)—— 构建、查看、更新和浏览项目的
21
+ 调用图:谁调用了 X、X 调用了谁、影响路径,并在浏览器里渲染出图。
22
+
23
+ 这个 bundle 自身不含任何代码——它配置的两个插件都随 dsh 安装自带,技能则是
24
+ Markdown。安装时不构建任何东西,因此完全不涉及 `allowBuilds` 构建授权。
25
+
26
+ ## 安装
27
+
28
+ ```sh
29
+ dsh plugin --profile web add @geml/dsh-plugin
30
+ ```
31
+
32
+ 先不启动、只验证这一层,再启动:
33
+
34
+ ```sh
35
+ dsh --profile web --dump-config # 应能看到 "# == @geml/dsh-plugin" 这一层
36
+ dsh --profile web
37
+ ```
38
+
39
+ `dsh plugin --profile web remove @geml/dsh-plugin` 会同时移除依赖和这一层。
40
+
41
+ ## 配置
42
+
43
+ 两行都是普通配置:在你 profile 的 `cordis.patch.yml` 里按 `id` 覆盖即可,注意
44
+ 要把该行需要的每个键都重新写全。例如把 `mcp-geml` 钉到某个 CLI 版本:
45
+
46
+ ```yaml
47
+ - id: mcp-geml
48
+ name: '@deepseek-ai/dsh-mcp-client'
49
+ config:
50
+ serverName: geml
51
+ transport: stdio
52
+ command: npx
53
+ args: ['-y', '@geml/geml', 'mcp', '--root', '.']
54
+ ```
55
+
56
+ 用 PATH 上的全局 `geml` 也可以——把 `command` 改成 `geml`,去掉 `npx` 那几个
57
+ 参数。
58
+
59
+ 想要 CLI 和同一套技能用在 Claude Code 上:`npx -y @geml/geml skill install`,
60
+ 或使用 [`../claude-plugin`](../claude-plugin) 下的插件。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geml/dsh-plugin",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "Agent-Native document handling for DSH — addressable blocks let an agent read and edit one section instead of the whole file. Ships the geml MCP server and the authoring and code-graph skills.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/geml-spec/geml",