@geml/dsh-plugin 1.0.1 → 1.0.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/README.md +69 -69
- package/README.zh.md +60 -60
- package/package.json +15 -3
- package/skills/geml/references/authoring.geml +2 -2
- package/skills/geml-code-graph/SKILL.md +3 -3
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
|
|
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
|
|
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.
|
|
3
|
+
"version": "1.0.2",
|
|
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",
|
|
@@ -9,8 +9,20 @@
|
|
|
9
9
|
"url": "git+https://github.com/geml-spec/geml.git",
|
|
10
10
|
"directory": "integrations/dsh-plugin"
|
|
11
11
|
},
|
|
12
|
-
"keywords": [
|
|
13
|
-
|
|
12
|
+
"keywords": [
|
|
13
|
+
"dsh-plugin",
|
|
14
|
+
"dsh",
|
|
15
|
+
"deepseek-harness",
|
|
16
|
+
"geml",
|
|
17
|
+
"mcp",
|
|
18
|
+
"documents",
|
|
19
|
+
"codemap"
|
|
20
|
+
],
|
|
21
|
+
"files": [
|
|
22
|
+
"cordis.patch.yml",
|
|
23
|
+
"skills",
|
|
24
|
+
"LICENSE"
|
|
25
|
+
],
|
|
14
26
|
"dsh": {
|
|
15
27
|
"bundle": {
|
|
16
28
|
"patch": "./cordis.patch.yml"
|
|
@@ -166,8 +166,8 @@ body the engine rejects is a build ERROR naming the line.
|
|
|
166
166
|
- `schema=` names a block (`#id`) or GEML document holding a schema —
|
|
167
167
|
reference-checked only today; value validation is a later GEP.
|
|
168
168
|
- The parsed value lives in the model: `geml get '#cfg' --json` returns the
|
|
169
|
-
node with `value`, no re-parsing. `geml
|
|
170
|
-
two-space indent, jsonl one compact value per line.
|
|
169
|
+
node with `value`, no re-parsing. `geml <file> --to geml` canonicalizes: json
|
|
170
|
+
at two-space indent, jsonl one compact value per line.
|
|
171
171
|
|
|
172
172
|
# Inline markup {#inline}
|
|
173
173
|
|
|
@@ -217,6 +217,6 @@ Add `--history [-m msg]` to build to snapshot changed documents into
|
|
|
217
217
|
`.gemlhistory` sidecars — then `geml history get .geml-code-graph/<doc>.geml` shows
|
|
218
218
|
the graph's evolution and `geml revert .geml-code-graph/<doc>.geml '#method' --rev -1`
|
|
219
219
|
rolls one method's edges back. Language maturity tiers and the smoke-test
|
|
220
|
-
gate: [DESIGN-geml-code-graph.md](https://github.com/geml-spec/geml/blob/main/docs/design/specs/codemap/DESIGN-geml-code-graph.md) §3.4. An MCP wrapper
|
|
221
|
-
|
|
222
|
-
|
|
220
|
+
gate: [DESIGN-geml-code-graph.md](https://github.com/geml-spec/geml/blob/main/docs/design/specs/codemap/DESIGN-geml-code-graph.md) §3.4. An MCP wrapper exists (`geml mcp --root <dir>`, which serves the four
|
|
221
|
+
read-only `geml_codemap_*` tools next to the document tools when the root holds
|
|
222
|
+
a graph); the CLI path works without it.
|