@kirkchinese/dsh-citeciter 0.3.2 → 0.4.0
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 +19 -6
- package/README.zh.md +19 -6
- package/package.json +76 -74
package/README.md
CHANGED
|
@@ -1,15 +1,26 @@
|
|
|
1
1
|
# `@kirkchinese/dsh-citeciter`
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Ask about any line in a DSH response—without stopping the agent or changing the source session. CiteCiter is a source-bound, read-only learning companion for sustained side questions.
|
|
4
|
+
|
|
5
|
+

|
|
4
6
|
|
|
5
7
|
[简体中文](README.zh.md) · [GitHub](https://github.com/kirkchinese/CiteCiter) · [Issues](https://github.com/kirkchinese/CiteCiter/issues)
|
|
6
8
|
|
|
9
|
+
## Compatibility
|
|
10
|
+
|
|
11
|
+
| Host | CiteCiter version | Status |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| DSH Web `0.1.1-rc.2` | `0.4.x` | Fully verified |
|
|
14
|
+
| [dataelement DSH Desktop](https://github.com/dataelement/dsh-desktop) development shell with DSH `0.1.1-rc.1` | `0.4.x` | Linux source-shell verified; not a macOS/Windows installer claim |
|
|
15
|
+
| DSH Web `0.1.0-rc.7` | `0.3.2` | Previous stable line |
|
|
16
|
+
| DSH TUI | — | Not supported yet |
|
|
17
|
+
|
|
7
18
|
## Install
|
|
8
19
|
|
|
9
|
-
CiteCiter requires Node.js `^22.19.0 || >=24.0.0`, DSH
|
|
20
|
+
CiteCiter 0.4.0 requires Node.js `^22.19.0 || >=24.0.0`, DSH `>=0.1.1-rc.1 <0.1.1-rc.3`, and a configured model provider.
|
|
10
21
|
|
|
11
22
|
```sh
|
|
12
|
-
dsh plugin --profile web add @kirkchinese/dsh-citeciter@0.
|
|
23
|
+
dsh plugin --profile web add @kirkchinese/dsh-citeciter@0.4.0
|
|
13
24
|
```
|
|
14
25
|
|
|
15
26
|
Restart the corresponding DSH Web process and refresh the page after installation or upgrade.
|
|
@@ -41,14 +52,14 @@ Observer is the default. It creates an independent Topic and reads committed sou
|
|
|
41
52
|
|
|
42
53
|
Exact Fork is an advanced mode for a source turn that has already ended. `exact-when-available` uses Exact Fork when a stable boundary exists and otherwise falls back to Observer.
|
|
43
54
|
|
|
44
|
-
## Upgrade from
|
|
55
|
+
## Upgrade from an earlier version
|
|
45
56
|
|
|
46
57
|
```sh
|
|
47
|
-
dsh plugin --profile web add @kirkchinese/dsh-citeciter@0.
|
|
58
|
+
dsh plugin --profile web add @kirkchinese/dsh-citeciter@0.4.0
|
|
48
59
|
dsh plugin --profile web list --depth 0
|
|
49
60
|
```
|
|
50
61
|
|
|
51
|
-
|
|
62
|
+
Upgrading from v0.3 does not migrate or rewrite existing Topics, settings, or source Sessions. Users remaining on DSH `0.1.0-rc.7` should keep CiteCiter 0.3.2.
|
|
52
63
|
|
|
53
64
|
## Limitations
|
|
54
65
|
|
|
@@ -56,6 +67,8 @@ The upgrade does not rewrite source Sessions or import v0.2 Citation Threads. Ex
|
|
|
56
67
|
- Renderer-generated KaTeX layout and footnote numbers cannot be cited directly because they lack stable source coordinates.
|
|
57
68
|
- Exact Fork cannot start from an open source turn.
|
|
58
69
|
- Source-file access depends on the running DSH filesystem service and remains read-only.
|
|
70
|
+
- Desktop validation covers dataelement's Linux development shell; it does not claim packaged macOS or Windows installer testing.
|
|
71
|
+
- There is currently no TUI interaction adapter.
|
|
59
72
|
- DSH is prerelease software; later DSH API versions may require a CiteCiter update.
|
|
60
73
|
|
|
61
74
|
## Contributing
|
package/README.zh.md
CHANGED
|
@@ -1,15 +1,26 @@
|
|
|
1
1
|
# `@kirkchinese/dsh-citeciter`
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
在 DSH 回复里划一句,旁边追问;主 Agent 继续工作,来源 Session 保持不变。CiteCiter 是与精确原文绑定、只读、可持续多轮追问的学习伴侣。
|
|
4
|
+
|
|
5
|
+

|
|
4
6
|
|
|
5
7
|
[English](README.md) · [GitHub](https://github.com/kirkchinese/CiteCiter) · [问题反馈](https://github.com/kirkchinese/CiteCiter/issues)
|
|
6
8
|
|
|
9
|
+
## 兼容性
|
|
10
|
+
|
|
11
|
+
| 宿主 | CiteCiter 版本 | 状态 |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| DSH Web `0.1.1-rc.2` | `0.4.x` | 完整验证 |
|
|
14
|
+
| [dataelement DSH Desktop](https://github.com/dataelement/dsh-desktop) 源码开发壳(内置 DSH `0.1.1-rc.1`) | `0.4.x` | Linux 源码壳验证;不代表 macOS/Windows 安装器实测 |
|
|
15
|
+
| DSH Web `0.1.0-rc.7` | `0.3.2` | 旧版稳定线 |
|
|
16
|
+
| DSH TUI | — | 暂不支持 |
|
|
17
|
+
|
|
7
18
|
## 安装
|
|
8
19
|
|
|
9
|
-
CiteCiter 需要 Node.js `^22.19.0 || >=24.0.0`、DSH
|
|
20
|
+
CiteCiter 0.4.0 需要 Node.js `^22.19.0 || >=24.0.0`、DSH `>=0.1.1-rc.1 <0.1.1-rc.3`,以及已经配置的模型提供方。
|
|
10
21
|
|
|
11
22
|
```sh
|
|
12
|
-
dsh plugin --profile web add @kirkchinese/dsh-citeciter@0.
|
|
23
|
+
dsh plugin --profile web add @kirkchinese/dsh-citeciter@0.4.0
|
|
13
24
|
```
|
|
14
25
|
|
|
15
26
|
安装或升级后,请重启对应的 DSH Web 进程并刷新页面。
|
|
@@ -41,14 +52,14 @@ Observer 是默认模式。它创建独立 Topic,并按需读取已经提交
|
|
|
41
52
|
|
|
42
53
|
Exact Fork 是面向已结束来源轮次的高级模式。`exact-when-available` 在存在稳定边界时使用 Exact Fork,否则回退到 Observer。
|
|
43
54
|
|
|
44
|
-
##
|
|
55
|
+
## 从旧版本升级
|
|
45
56
|
|
|
46
57
|
```sh
|
|
47
|
-
dsh plugin --profile web add @kirkchinese/dsh-citeciter@0.
|
|
58
|
+
dsh plugin --profile web add @kirkchinese/dsh-citeciter@0.4.0
|
|
48
59
|
dsh plugin --profile web list --depth 0
|
|
49
60
|
```
|
|
50
61
|
|
|
51
|
-
|
|
62
|
+
从 v0.3 升级不会迁移或重写现有 Topic、设置或来源 Session。仍在 DSH `0.1.0-rc.7` 上运行的用户应继续使用 CiteCiter 0.3.2。
|
|
52
63
|
|
|
53
64
|
## 已知限制
|
|
54
65
|
|
|
@@ -56,6 +67,8 @@ dsh plugin --profile web list --depth 0
|
|
|
56
67
|
- 渲染器生成的 KaTeX 排版和脚注编号没有稳定原文坐标,不能直接引用。
|
|
57
68
|
- Exact Fork 不能从仍在运行的来源轮次开始。
|
|
58
69
|
- 来源文件访问依赖当前 DSH 文件系统服务,并始终保持只读。
|
|
70
|
+
- Desktop 验证覆盖 dataelement 项目的 Linux 源码开发壳;尚未宣称 macOS 或 Windows 安装器实测。
|
|
71
|
+
- 当前没有 TUI 交互适配器。
|
|
59
72
|
- DSH 仍处于预发布阶段,后续 API 版本可能要求同步更新 CiteCiter。
|
|
60
73
|
|
|
61
74
|
## 参与贡献
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kirkchinese/dsh-citeciter",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Private
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"description": "Private, source-bound, read-only learning side threads for DeepSeek Harness",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"deepseek-harness",
|
|
7
7
|
"dsh",
|
|
@@ -9,7 +9,10 @@
|
|
|
9
9
|
"cordis",
|
|
10
10
|
"citation",
|
|
11
11
|
"learning-companion",
|
|
12
|
-
"
|
|
12
|
+
"side-chat",
|
|
13
|
+
"conversation-branching",
|
|
14
|
+
"context-management",
|
|
15
|
+
"read-only",
|
|
13
16
|
"explanation",
|
|
14
17
|
"observer",
|
|
15
18
|
"topic"
|
|
@@ -76,84 +79,70 @@
|
|
|
76
79
|
"cordis.patch.yml",
|
|
77
80
|
"README.zh.md"
|
|
78
81
|
],
|
|
79
|
-
"scripts": {
|
|
80
|
-
"build": "npm run build:lib && npm run build:bundle",
|
|
81
|
-
"prebuild:lib": "node scripts/clean-types.mjs",
|
|
82
|
-
"build:lib": "tsc -p tsconfig.json",
|
|
83
|
-
"prebuild:bundle": "node scripts/clean-bundle.mjs",
|
|
84
|
-
"build:bundle": "tsdown --env.DSH_BUILD_FACE client",
|
|
85
|
-
"postbuild:bundle": "node scripts/normalize-bundle.mjs",
|
|
86
|
-
"prepack": "npm run build",
|
|
87
|
-
"dev": "npm run build && node dev/watch.mjs",
|
|
88
|
-
"smoke:seed": "node dev/seed-smoke-session.mjs",
|
|
89
|
-
"smoke:hmr": "node dev/hmr-smoke.mjs",
|
|
90
|
-
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
91
|
-
"test": "npm run build:lib && node --test tests/*.test.mjs"
|
|
92
|
-
},
|
|
93
82
|
"peerDependencies": {
|
|
94
83
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
95
|
-
"@deepseek-ai/dsh-agent": ">=0.1.
|
|
96
|
-
"@deepseek-ai/dsh-agent-loop": ">=0.1.
|
|
97
|
-
"@deepseek-ai/dsh-api-gateway": ">=0.1.
|
|
98
|
-
"@deepseek-ai/dsh-client-runtime": ">=0.1.
|
|
99
|
-
"@deepseek-ai/dsh-client-ui-layout": ">=0.1.
|
|
100
|
-
"@deepseek-ai/dsh-client-ui-primitives": ">=0.1.
|
|
101
|
-
"@deepseek-ai/dsh-client-ui-settings": ">=0.1.
|
|
102
|
-
"@deepseek-ai/dsh-client-ui-slots": ">=0.1.
|
|
103
|
-
"@deepseek-ai/dsh-fs": ">=0.1.
|
|
104
|
-
"@deepseek-ai/dsh-home-paths": ">=0.1.
|
|
105
|
-
"@deepseek-ai/dsh-llm": ">=0.1.
|
|
106
|
-
"@deepseek-ai/dsh-output-retention": ">=0.1.
|
|
107
|
-
"@deepseek-ai/dsh-sandbox-policy": ">=0.1.
|
|
108
|
-
"@deepseek-ai/dsh-session": ">=0.1.
|
|
109
|
-
"@deepseek-ai/dsh-session-persistence-jsonl": ">=0.1.
|
|
110
|
-
"@deepseek-ai/dsh-session-query": ">=0.1.
|
|
111
|
-
"@deepseek-ai/dsh-session-title": ">=0.1.
|
|
112
|
-
"@deepseek-ai/dsh-session-title-llm": ">=0.1.
|
|
113
|
-
"@deepseek-ai/dsh-settings": ">=0.1.
|
|
114
|
-
"@deepseek-ai/dsh-subprocess": ">=0.1.
|
|
115
|
-
"@deepseek-ai/dsh-spill": ">=0.1.
|
|
116
|
-
"@deepseek-ai/dsh-system-prompt": ">=0.1.
|
|
117
|
-
"@deepseek-ai/dsh-tool-ask-user": ">=0.1.
|
|
118
|
-
"@deepseek-ai/dsh-tool-fs": ">=0.1.
|
|
119
|
-
"@deepseek-ai/dsh-tool-fs-search": ">=0.1.
|
|
120
|
-
"@deepseek-ai/dsh-tools": ">=0.1.
|
|
121
|
-
"@deepseek-ai/dsh-typert-protocol": ">=0.1.
|
|
122
|
-
"@deepseek-ai/dsh-user-questions": ">=0.1.
|
|
84
|
+
"@deepseek-ai/dsh-agent": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
85
|
+
"@deepseek-ai/dsh-agent-loop": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
86
|
+
"@deepseek-ai/dsh-api-gateway": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
87
|
+
"@deepseek-ai/dsh-client-runtime": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
88
|
+
"@deepseek-ai/dsh-client-ui-layout": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
89
|
+
"@deepseek-ai/dsh-client-ui-primitives": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
90
|
+
"@deepseek-ai/dsh-client-ui-settings": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
91
|
+
"@deepseek-ai/dsh-client-ui-slots": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
92
|
+
"@deepseek-ai/dsh-fs": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
93
|
+
"@deepseek-ai/dsh-home-paths": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
94
|
+
"@deepseek-ai/dsh-llm": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
95
|
+
"@deepseek-ai/dsh-output-retention": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
96
|
+
"@deepseek-ai/dsh-sandbox-policy": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
97
|
+
"@deepseek-ai/dsh-session": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
98
|
+
"@deepseek-ai/dsh-session-persistence-jsonl": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
99
|
+
"@deepseek-ai/dsh-session-query": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
100
|
+
"@deepseek-ai/dsh-session-title": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
101
|
+
"@deepseek-ai/dsh-session-title-llm": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
102
|
+
"@deepseek-ai/dsh-settings": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
103
|
+
"@deepseek-ai/dsh-subprocess": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
104
|
+
"@deepseek-ai/dsh-spill": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
105
|
+
"@deepseek-ai/dsh-system-prompt": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
106
|
+
"@deepseek-ai/dsh-tool-ask-user": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
107
|
+
"@deepseek-ai/dsh-tool-fs": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
108
|
+
"@deepseek-ai/dsh-tool-fs-search": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
109
|
+
"@deepseek-ai/dsh-tools": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
110
|
+
"@deepseek-ai/dsh-typert-protocol": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
111
|
+
"@deepseek-ai/dsh-user-questions": ">=0.1.1-rc.1 <0.1.1-rc.3",
|
|
123
112
|
"@deepseek-ai/schemastery": "^3.18.1",
|
|
124
113
|
"react": "^18.2.0",
|
|
125
114
|
"zod": "^4.4.3"
|
|
126
115
|
},
|
|
127
116
|
"devDependencies": {
|
|
128
117
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
129
|
-
"@deepseek-ai/dsh-agent": "0.1.
|
|
130
|
-
"@deepseek-ai/dsh-agent-loop": "0.1.
|
|
131
|
-
"@deepseek-ai/dsh-api-gateway": "0.1.
|
|
132
|
-
"@deepseek-ai/dsh-client-runtime": "0.1.
|
|
133
|
-
"@deepseek-ai/dsh-client-ui-layout": "0.1.
|
|
134
|
-
"@deepseek-ai/dsh-client-ui-primitives": "0.1.
|
|
135
|
-
"@deepseek-ai/dsh-client-ui-settings": "0.1.
|
|
136
|
-
"@deepseek-ai/dsh-client-ui-slots": "0.1.
|
|
137
|
-
"@deepseek-ai/dsh-fs": "0.1.
|
|
138
|
-
"@deepseek-ai/dsh-home-paths": "0.1.
|
|
139
|
-
"@deepseek-ai/dsh-llm": "0.1.
|
|
140
|
-
"@deepseek-ai/dsh-output-retention": "0.1.
|
|
141
|
-
"@deepseek-ai/dsh-sandbox-policy": "0.1.
|
|
142
|
-
"@deepseek-ai/dsh-session": "0.1.
|
|
143
|
-
"@deepseek-ai/dsh-session-persistence-jsonl": "0.1.
|
|
144
|
-
"@deepseek-ai/dsh-session-query": "0.1.
|
|
145
|
-
"@deepseek-ai/dsh-session-title": "0.1.
|
|
146
|
-
"@deepseek-ai/dsh-session-title-llm": "0.1.
|
|
147
|
-
"@deepseek-ai/dsh-settings": "0.1.
|
|
148
|
-
"@deepseek-ai/dsh-subprocess": "0.1.
|
|
149
|
-
"@deepseek-ai/dsh-spill": "0.1.
|
|
150
|
-
"@deepseek-ai/dsh-system-prompt": "0.1.
|
|
151
|
-
"@deepseek-ai/dsh-tool-ask-user": "0.1.
|
|
152
|
-
"@deepseek-ai/dsh-tool-fs": "0.1.
|
|
153
|
-
"@deepseek-ai/dsh-tool-fs-search": "0.1.
|
|
154
|
-
"@deepseek-ai/dsh-tools": "0.1.
|
|
155
|
-
"@deepseek-ai/dsh-typert-protocol": "0.1.
|
|
156
|
-
"@deepseek-ai/dsh-user-questions": "0.1.
|
|
118
|
+
"@deepseek-ai/dsh-agent": "0.1.1-rc.2",
|
|
119
|
+
"@deepseek-ai/dsh-agent-loop": "0.1.1-rc.2",
|
|
120
|
+
"@deepseek-ai/dsh-api-gateway": "0.1.1-rc.2",
|
|
121
|
+
"@deepseek-ai/dsh-client-runtime": "0.1.1-rc.2",
|
|
122
|
+
"@deepseek-ai/dsh-client-ui-layout": "0.1.1-rc.2",
|
|
123
|
+
"@deepseek-ai/dsh-client-ui-primitives": "0.1.1-rc.2",
|
|
124
|
+
"@deepseek-ai/dsh-client-ui-settings": "0.1.1-rc.2",
|
|
125
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.1.1-rc.2",
|
|
126
|
+
"@deepseek-ai/dsh-fs": "0.1.1-rc.2",
|
|
127
|
+
"@deepseek-ai/dsh-home-paths": "0.1.1-rc.2",
|
|
128
|
+
"@deepseek-ai/dsh-llm": "0.1.1-rc.2",
|
|
129
|
+
"@deepseek-ai/dsh-output-retention": "0.1.1-rc.2",
|
|
130
|
+
"@deepseek-ai/dsh-sandbox-policy": "0.1.1-rc.2",
|
|
131
|
+
"@deepseek-ai/dsh-session": "0.1.1-rc.2",
|
|
132
|
+
"@deepseek-ai/dsh-session-persistence-jsonl": "0.1.1-rc.2",
|
|
133
|
+
"@deepseek-ai/dsh-session-query": "0.1.1-rc.2",
|
|
134
|
+
"@deepseek-ai/dsh-session-title": "0.1.1-rc.2",
|
|
135
|
+
"@deepseek-ai/dsh-session-title-llm": "0.1.1-rc.2",
|
|
136
|
+
"@deepseek-ai/dsh-settings": "0.1.1-rc.2",
|
|
137
|
+
"@deepseek-ai/dsh-subprocess": "0.1.1-rc.2",
|
|
138
|
+
"@deepseek-ai/dsh-spill": "0.1.1-rc.2",
|
|
139
|
+
"@deepseek-ai/dsh-system-prompt": "0.1.1-rc.2",
|
|
140
|
+
"@deepseek-ai/dsh-tool-ask-user": "0.1.1-rc.2",
|
|
141
|
+
"@deepseek-ai/dsh-tool-fs": "0.1.1-rc.2",
|
|
142
|
+
"@deepseek-ai/dsh-tool-fs-search": "0.1.1-rc.2",
|
|
143
|
+
"@deepseek-ai/dsh-tools": "0.1.1-rc.2",
|
|
144
|
+
"@deepseek-ai/dsh-typert-protocol": "0.1.1-rc.2",
|
|
145
|
+
"@deepseek-ai/dsh-user-questions": "0.1.1-rc.2",
|
|
157
146
|
"@deepseek-ai/schemastery": "^3.18.1",
|
|
158
147
|
"@types/mdast": "^4.0.4",
|
|
159
148
|
"@types/node": "^24.10.0",
|
|
@@ -168,5 +157,18 @@
|
|
|
168
157
|
"tsdown": "^0.22.2",
|
|
169
158
|
"typescript": "^6.0.3",
|
|
170
159
|
"zod": "^4.4.3"
|
|
160
|
+
},
|
|
161
|
+
"scripts": {
|
|
162
|
+
"build": "npm run build:lib && npm run build:bundle",
|
|
163
|
+
"prebuild:lib": "node scripts/clean-types.mjs",
|
|
164
|
+
"build:lib": "tsc -p tsconfig.json",
|
|
165
|
+
"prebuild:bundle": "node scripts/clean-bundle.mjs",
|
|
166
|
+
"build:bundle": "tsdown --env.DSH_BUILD_FACE client",
|
|
167
|
+
"postbuild:bundle": "node scripts/normalize-bundle.mjs",
|
|
168
|
+
"dev": "npm run build && node dev/watch.mjs",
|
|
169
|
+
"smoke:seed": "node dev/seed-smoke-session.mjs",
|
|
170
|
+
"smoke:hmr": "node dev/hmr-smoke.mjs",
|
|
171
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
172
|
+
"test": "npm run build:lib && node --test tests/*.test.mjs"
|
|
171
173
|
}
|
|
172
|
-
}
|
|
174
|
+
}
|