@kirkchinese/dsh-citeciter 0.5.0 → 0.6.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.
Files changed (32) hide show
  1. package/README.md +63 -71
  2. package/README.zh.md +63 -71
  3. package/lib/client.js +420 -283
  4. package/lib/index.js +47 -40
  5. package/lib/{typert-common-DKqYKnRO.js → typert-common-C6yTitXx.js} +1 -1
  6. package/lib/typert.host.js +2 -2
  7. package/lib/typert.remote-client.js +1 -1
  8. package/lib/types/client/companion-controller.d.ts +5 -2
  9. package/lib/types/client/components/BlackboardWorkspace.d.ts +7 -5
  10. package/lib/types/client/components/CiteCiterSettings.d.ts +12 -7
  11. package/lib/types/client/components/CitePanel.d.ts +9 -5
  12. package/lib/types/client/components/DocumentReader.d.ts +6 -3
  13. package/lib/types/client/components/QuestionCard.d.ts +2 -2
  14. package/lib/types/client/components/SelectionMenu.d.ts +9 -5
  15. package/lib/types/client/components/UpdateNotice.d.ts +6 -3
  16. package/lib/types/client/copy.d.ts +6 -0
  17. package/lib/types/client/dock-geometry.d.ts +23 -0
  18. package/lib/types/client/entries.d.ts +3 -2
  19. package/lib/types/client/host-dock.d.ts +18 -0
  20. package/lib/types/client/reader-controller.d.ts +1 -1
  21. package/lib/types/client/selection.d.ts +1 -1
  22. package/lib/types/client/types.d.ts +1 -1
  23. package/lib/types/client/update-controller.d.ts +5 -3
  24. package/lib/types/client/view-actions.d.ts +26 -0
  25. package/lib/types/index.d.ts +1 -1
  26. package/lib/types/observer.d.ts +2 -1
  27. package/lib/types/topic-runtime.d.ts +4 -4
  28. package/lib/types/typert-common.d.ts +1 -0
  29. package/lib/types/typert.host.d.ts +2 -0
  30. package/lib/types/update.d.ts +1 -0
  31. package/lib/{update-u9-6c_qp.js → update-C0K5ekMg.js} +2 -1
  32. package/package.json +83 -78
package/README.md CHANGED
@@ -1,107 +1,99 @@
1
- # `@kirkchinese/dsh-citeciter`
1
+ # CiteCiter
2
2
 
3
- Investigate any line in a DSH response—without stopping the Agent or changing the source Session. CiteCiter provides verifiable, source-bound, read-only side investigations for interactive DSH.
3
+ **A learning and investigation companion for DeepSeek Harness Web and Desktop.**
4
4
 
5
- ![Select a DSH response and continue investigating in a private CiteCiter Topic](https://raw.githubusercontent.com/kirkchinese/CiteCiter/main/assets/demo/citeciter-0.4.0.gif)
5
+ Select a committed response and explore it in a private Topic while the main task continues. Ask follow-ups, change models, or let the presenter explain with formulas, diagrams, tables and animations.
6
6
 
7
- *Select, right-click, and investigate beside the source while the main Agent keeps working.*
7
+ [简体中文](README.zh.md) · [npm](https://www.npmjs.com/package/@kirkchinese/dsh-citeciter) · [Issues](https://github.com/kirkchinese/CiteCiter/issues)
8
8
 
9
- [简体中文](README.zh.md) · [GitHub](https://github.com/kirkchinese/CiteCiter) · [Issues](https://github.com/kirkchinese/CiteCiter/issues)
9
+ <p align="center"><img src="https://raw.githubusercontent.com/kirkchinese/CiteCiter/main/assets/hero/citeciter-hero.png" width="100%" alt="Explore selected AI output in private CiteCiter Topics"></p>
10
10
 
11
- ## Highlights
11
+ ## Install and compatibility
12
12
 
13
- - **Exact source binding.** CiteCiter rechecks the visible selection against the committed response before creating a Topic.
14
- - **No need to wait.** A committed intermediate model call can be investigated while the surrounding Agent turn continues, including its reasoning or a selection spanning reasoning and answer text.
15
- - **Durable investigations.** Private Topics support natural follow-up questions and reopen after a refresh or restart.
16
- - **Evidence with no write access.** CiteCiter can inspect committed source events and search or read project files, but cannot change the source Session or workspace.
17
- - **Inspectable work.** Questions, answers, source reads, and project-file checks remain together in the investigation panel.
18
- - **Presenter Topics.** A read-only teacher can build a durable formula, diagram, table, or animation board through atomic tool commits while it explains.
19
- - **Side-by-side workflow.** The conversation concedes space whenever the panel and a usable conversation fit; tighter layouts fall back to an overlay.
20
- - **Web update notices.** CiteCiter checks npm's stable version and offers a copyable upgrade command without granting the browser package-management access.
13
+ CiteCiter **0.6.0** targets DSH `0.1.2-rc.1` and [DSH Desktop 2.0.5](https://github.com/anywhere-labs/dsh-desktop/releases/tag/v2.0.5). Node.js must satisfy `^22.19.0 || >=24.0.0`; Windows validation uses Node 24.19.0. DSH alpha and Desktop master are separate targets.
21
14
 
22
- ## Use
15
+ | Environment | Installation target | Status |
16
+ | --- | --- | --- |
17
+ | DSH Web 0.1.2-rc.1 | `web` profile | Windows runtime and UI verified |
18
+ | DSH Desktop 2.0.5 | Current Desktop profile, default `desktop` | Targeted; see release notes for mode-specific checks |
19
+ | DSH 0.1.1-rc.1 / rc.2 | Older environment | Keep CiteCiter 0.5.0 |
20
+ | DSH alpha, TUI | — | Unsupported |
21
+ | Linux / macOS | Same package | Not tested in this migration |
23
22
 
24
- 1. Select answer or reasoning inside a committed assistant model call. When reasoning is collapsed, begin the selection on its disclosure row; the row represents the complete model call. The surrounding Agent turn may still be running.
25
- 2. Right-click the selection, enter your first question, and choose `开始提问` or `开始讲解`.
26
- 3. CiteCiter creates a new Topic in the investigation panel.
27
- 4. Continue asking questions there, or reopen an earlier Topic from CiteCiter's Topic rail.
28
- 5. Change the Topic model, reasoning effort, title, archive state, or panel width without changing the source Session.
23
+ Install or upgrade the Web plugin:
29
24
 
30
- ## Install v0.5.0
25
+ ```powershell
26
+ npm install -g @deepseek-ai/dsh@0.1.2-rc.1
27
+ dsh plugin --profile web add @kirkchinese/dsh-citeciter@0.6.0
28
+ dsh plugin --profile web list --depth 0
29
+ dsh web
30
+ ```
31
31
 
32
- CiteCiter 0.5.0 requires Node.js `^22.19.0 || >=24.0.0` and DSH `>=0.1.1-rc.1 <0.1.1-rc.3`.
32
+ Confirm version 0.6.0, restart the owning host and refresh the page. Alternatively, download the `.tgz` from the [GitHub Release](https://github.com/kirkchinese/CiteCiter/releases/tag/v0.6.0) and replace the package name with the tarball's absolute path. See Contributing for a local workspace installation.
33
33
 
34
- For DSH Web:
34
+ For Desktop, confirm its selected profile and data directory, then install using the **same DSH_HOME**:
35
35
 
36
- ```sh
37
- dsh plugin --profile web add @kirkchinese/dsh-citeciter@0.5.0
38
- dsh plugin --profile web list --depth 0
36
+ ```powershell
37
+ dsh plugin --profile desktop add @kirkchinese/dsh-citeciter@0.6.0
38
+ dsh plugin --profile desktop list --depth 0
39
39
  ```
40
40
 
41
- Confirm that the list shows `@kirkchinese/dsh-citeciter@0.5.0`, then restart DSH Web and refresh the page.
41
+ Replace `desktop` if a custom profile is selected; set `$env:DSH_HOME` in PowerShell if it uses a custom home. Restart Desktop. Updating the global npm CLI does not replace Desktop's embedded runtime.
42
42
 
43
- CiteCiter 0.5.0 is Web-only.
44
- Upgrading from v0.3 does not migrate or rewrite existing Topics, settings, or source Sessions.
45
- Users remaining on DSH `0.1.0-rc.7` should keep CiteCiter 0.3.2.
43
+ If npm 12 blocks the native dependency scripts listed by this DSH release, allow them for this installation:
46
44
 
47
- ## Context modes
48
-
49
- Observer is the default. It creates an independent Topic and reads committed source evidence on demand, including while the source turn is still running.
45
+ ```powershell
46
+ npm install -g @deepseek-ai/dsh@0.1.2-rc.1 --allow-scripts=@deepseek-ai/dsh-subprocess-local,koffi,node-pty,@google/genai,protobufjs
47
+ ```
50
48
 
51
- 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.
49
+ This addresses native installation. An old plugin importing the removed `effectiveSandboxMode` export requires a plugin upgrade; reinstalling the host alone does not fix it.
52
50
 
53
- ## Presenter board
51
+ ## Use
54
52
 
55
- Presenter Topics use the standard Agent loop plus a scoped `blackboard_apply` tool. A board batch becomes visible only after its paired tool result succeeds; a failed or interrupted batch leaves the previous board intact. Refresh and restart project the final board from the private Topic Session rather than storing a second mutable copy.
53
+ 1. Select committed assistant answer or reasoning text, right-click, enter a question, and choose “开始提问” or “开始讲解”.
54
+ 2. Continue in the learning panel, change model/reasoning effort, and manage Topic titles, archives and deletion.
55
+ 3. Use `+ 新 Topic` for a free question or presentation. A new source session needs its first message before the Topic can reuse its model route.
56
+ 4. Presenter boards appear in the main workspace's “小黑板” tab. Board citations append to the current question draft.
57
+ 5. Tool results, terminal output, diffs and the text/Markdown Reader also provide Topic entry points.
56
58
 
57
- ## Web update notices
59
+ <p align="center"><img src="https://raw.githubusercontent.com/kirkchinese/CiteCiter/main/assets/demo/citeciter-0.4.0.gif" width="100%" alt="Select AI output and continue in a CiteCiter Topic"></p>
58
60
 
59
- The Web client checks npm's `latest` stable version without blocking startup. A newer version appears in a persistent upper-right card with `更新`, `下次一定`, and `不再提示`: the first action copies the standard Web Profile install command, the second hides that version for the current tab session, and the third disables future checks until the CiteCiter settings page enables them again. CiteCiter never runs the install command; execute it in a terminal and restart DSH Web.
61
+ This older recording demonstrates the citation workflow; host layout and controls differ in 0.6.
60
62
 
61
- The first release containing the checker still needs one manual upgrade because an older installed build cannot run code it does not contain. Custom Web Profiles must replace `web` in the copied command. Check the newer release's DSH requirement before installing; the notice compares package versions and does not assert host compatibility. Desktop updates are outside this feature.
63
+ ## Keep the source conversation visible
62
64
 
63
- ## Host developer API
65
+ - Wide windows allocate a separate learning column and retain native details.
66
+ - Saved panel proportions range from 28% to 55%. Actual width is capped to leave at least 480 CSS pixels for conversation, then returns to the preference when space permits.
67
+ - Narrow or zoomed windows place the learning panel in a bottom row, with the conversation visible above it.
68
+ - Closing restores host layout. Unrecognized frames show a compact compatibility message.
64
69
 
65
- 0.5.0 provides the v1 Host service `ctx.citeciterRuntime` (`create`, `ask`, `get`, `list`, and `delete`) and the `citeciter/topic-created`, `citeciter/topic-updated`, and `citeciter/topic-deleted` events. Browser entry registration, presets, and a separate client face remain planned for M4/M5, so frontend extension APIs are not stable yet.
70
+ Content uses public DSH slots, conversation projections and snapshot hooks. This release has no public right-dock sizing service, so a small maintained host adapter allocates space. Revalidate it after host upgrades.
66
71
 
67
- ## Supported hosts
72
+ ## Topics and data
68
73
 
69
- | Host | CiteCiter version | Notes |
70
- |---|---|---|
71
- | DSH Web `0.1.1-rc.1` and `0.1.1-rc.2` | `0.5.0` | Fresh-profile Linux package, assembled browser smokes, and a real DeepSeek provider run passed |
72
- | [DSH Desktop 2.0.2](https://github.com/anywhere-labs/deepseek-harness-desktop) with bundled DSH `0.1.1-rc.2` | Future target | Packaged Desktop installers have not been accepted yet |
73
- | [dataelement DSH Desktop](https://github.com/dataelement/dsh-desktop) development shell with DSH `0.1.1-rc.1` | `0.4.0` only | Historical Linux source-shell record |
74
- | DSH Web `0.1.0-rc.7` | `0.3.2` | Previous stable line |
75
- | DSH TUI | — | Not supported yet |
74
+ Observer discussions use private logs and read source events or project files as needed. Exact Fork inherits context from a completed source turn. File tools remain read-only and Topics never append to the source Session. Uncommitted streaming text has no stable citation position; Exact Fork requires a completed source turn.
76
75
 
77
- The demo is only a workflow illustration. It is not packaged-Desktop acceptance evidence.
76
+ Atomic `blackboard_apply` commits support formulas, Markdown, tables, safe SVG, isolated HTML animations and embedded images. Topics support follow-ups, model changes, archive/restore and permanent deletion with a Session ID confirmation.
78
77
 
79
- ## Limitations
78
+ Indexes live under `$DSH_HOME/citeciter/workspaces/`; logs under `$DSH_HOME/citeciter/sessions/`. Without the variable the home is usually `.dsh` in the user directory. Back up the complete home before upgrading. Version 0.6 uses the new runtime API without bulk-rewriting old logs. DSH's version-0 physical JSONL still uses `seedLength`; preserve and diagnose unknown events rather than deleting fields.
80
79
 
81
- - A selection must include at least one committed assistant model call. User-only ranges, tool-only ranges, and still-streaming fragments cannot anchor a Citation. A committed model call's reasoning disclosure row may represent that complete call.
82
- - Renderer-generated KaTeX layout and footnote numbers cannot be cited directly because they lack stable source coordinates.
83
- - Exact Fork cannot start from an open source turn.
84
- - Source-file access depends on the running DSH filesystem service and remains read-only.
85
- - Read Frog translated selections are only a compatibility fallback for DSH rc.1/rc.2 and only activate when the full private marker set is present.
86
- - DSH still has no public right-dock extension point. When side-by-side layout fits, CiteCiter temporarily adjusts the layout; every new DSH version needs that path retested.
87
- - Topics are Host-durable. When Desktop restarts on a different loopback port, CiteCiter falls back to the most recently updated Topic because browser local storage is origin-scoped; configure a fixed Desktop port to restore the exact last-viewed Topic.
88
- - Permanent Topic deletion is owner maintenance over CiteCiter's fixed private JSONL root because DSH rc.2 has no Session deletion API. One active CiteCiter process must own a DSH home; sharing that home between live processes is unsupported.
89
- - CiteCiter 0.5.0 is Web-only; packaged Desktop support is still pending.
90
- - There is currently no TUI interaction adapter.
91
- - DSH is prerelease software; later DSH API versions may require a CiteCiter update.
80
+ Only one active CiteCiter host may own a home. Concurrent Web and Desktop instances need different homes. Update notices copy a command without installing anything; Desktop commands target the current profile.
92
81
 
93
- ## Community
82
+ ## Development
94
83
 
95
- Questions, workflow ideas, and compatibility reports are welcome in the DSH-Citeciter QQ group (`1108040435`).
84
+ ```sh
85
+ pnpm typecheck
86
+ pnpm test
87
+ pnpm build
88
+ pnpm test:snapshot
89
+ ```
96
90
 
97
- <p align="center">
98
- <img src="https://raw.githubusercontent.com/kirkchinese/CiteCiter/main/assets/community/qq-group.jpg" width="360" alt="QR code for the DSH-Citeciter QQ group 1108040435">
99
- </p>
91
+ The real application snapshot uses a temporary profile and keyless model for Observer, Exact Fork, source reads, boards and source-log isolation. Host `ctx.citeciterRuntime` exposes `create`, `ask`, `get`, `list`, `delete` and Topic change events. Public frontend entry registration and preset extension APIs remain unfinished. See [Contributing](https://github.com/kirkchinese/CiteCiter/blob/main/CONTRIBUTING.md) and the [0.6.0 release note](https://github.com/kirkchinese/CiteCiter/blob/main/docs/releases/v0.6.0.md).
100
92
 
101
- ## Contributing
93
+ ## Community and license
102
94
 
103
- Issues and pull requests are welcome. Before submitting code, read the [contribution guide](https://github.com/kirkchinese/CiteCiter/blob/main/CONTRIBUTING.md).
95
+ DSH-Citeciter QQ group: `1108040435`.
104
96
 
105
- ## License
97
+ <p align="center"><img src="https://raw.githubusercontent.com/kirkchinese/CiteCiter/main/assets/community/qq-group.jpg" width="280" alt="DSH-Citeciter QQ group QR code"></p>
106
98
 
107
- MIT © CiteCiter contributors
99
+ [MIT License](https://github.com/kirkchinese/CiteCiter/blob/main/LICENSE)
package/README.zh.md CHANGED
@@ -1,107 +1,99 @@
1
- # `@kirkchinese/dsh-citeciter`
1
+ # CiteCiter
2
2
 
3
- 对 DSH 回复里的某一句追到底,不打断主 Agent,也不改变来源 Session。CiteCiter 为交互式 DSH 提供可核查、与来源精确绑定、只读的旁路调查。
3
+ **为 DeepSeek Harness Web 与 Desktop 打造的 AI 输出学习、检查与纠偏插件。**
4
4
 
5
- ![选中 DSH 回答后在 CiteCiter 私有 Topic 中继续调查](https://raw.githubusercontent.com/kirkchinese/CiteCiter/main/assets/demo/citeciter-0.4.0.gif)
5
+ 选中一段已提交的回答,在旁边创建独立 Topic,反复追问、切换模型,或让 AI 用公式、图形、表格和动画逐步讲解。主任务继续运行,学习记录保存在独立日志中。
6
6
 
7
- *划选、右键、就地调查;主 Agent 继续工作。*
7
+ [English](README.md) · [npm](https://www.npmjs.com/package/@kirkchinese/dsh-citeciter) · [问题反馈](https://github.com/kirkchinese/CiteCiter/issues)
8
8
 
9
- [English](README.md) · [GitHub](https://github.com/kirkchinese/CiteCiter) · [问题反馈](https://github.com/kirkchinese/CiteCiter/issues)
9
+ <p align="center"><img src="https://raw.githubusercontent.com/kirkchinese/CiteCiter/main/assets/hero/citeciter-hero.png" width="100%" alt="CiteCiter 将选中的 AI 回答展开为独立 Topic"></p>
10
10
 
11
- ## 核心能力
11
+ ## 0.6.0 安装与兼容
12
12
 
13
- - **精确绑定来源。** 创建 Topic 前,CiteCiter 会把可见选区与已经提交的回答重新核对。
14
- - **不用等待主任务。** 一次中间模型调用提交后即可开始调查,外层 Agent 轮次可以继续运行;思考内容和跨越“思考+回答”的选区也可以使用。
15
- - **调查可以持续。** 私有 Topic 支持自然续问,刷新或重启后仍能重新打开。
16
- - **有证据、无写权限。** CiteCiter 能检查来源中已提交的事件,也能搜索和阅读项目文件,但不能改变来源 Session 或工作区。
17
- - **过程可检查。** 问题、回答、来源读取和项目文件核查都留在调查面板中。
18
- - **讲解 Topic。** 只读老师可以在讲解时通过原子工具提交构建持久的公式、图形、表格或动画黑板。
19
- - **并排工作流。** 面板和可用主对话能同时容纳时,主对话会自动让出空间;更紧的布局才回退为覆盖模式。
20
- - **Web 更新提醒。** CiteCiter 检查 npm 中的稳定版本,并提供可复制的升级命令,无需给浏览器包管理权限。
13
+ CiteCiter **0.6.0** 的安装基线是 DSH `0.1.2-rc.1`,Desktop 对应 [DSH Desktop 2.0.5](https://github.com/anywhere-labs/dsh-desktop/releases/tag/v2.0.5)。Node.js 要求 `^22.19.0 || >=24.0.0`;Windows 实测使用 Node 24.19.0。DSH alpha 与 Desktop master 不在此兼容承诺中。
21
14
 
22
- ## 使用
15
+ | 环境 | 安装目标 | 状态 |
16
+ | --- | --- | --- |
17
+ | DSH Web 0.1.2-rc.1 | `web` profile | Windows 实际运行与 UI 验证 |
18
+ | DSH Desktop 2.0.5 | Desktop 当前 profile,默认 `desktop` | 适配目标,分模式验证见 release 文档 |
19
+ | DSH 0.1.1-rc.1 / rc.2 | 旧环境 | 保留 CiteCiter 0.5.0 |
20
+ | DSH alpha、TUI | — | 未支持 |
21
+ | Linux / macOS | 相同包 | 本轮未运行平台验证 |
23
22
 
24
- 1. 在一次已经提交的助手模型调用中选择回答或思考内容;思考正文未展开时,可以从折叠行开始选择,该行代表该次完整模型调用。外层 Agent 轮次可以仍在运行。
25
- 2. 右键选区,输入第一个问题,然后点击“开始提问”或“开始讲解”。
26
- 3. CiteCiter 在调查面板中创建一个新 Topic。
27
- 4. 在 Topic 中继续追问,或从 CiteCiter 的 Topic 栏恢复旧讨论。
28
- 5. 独立调整模型、思考强度、标题、归档状态和面板宽度,不改变来源 Session。
23
+ 安装或升级 Web 插件:
29
24
 
30
- ## 安装 v0.5.0
25
+ ```powershell
26
+ npm install -g @deepseek-ai/dsh@0.1.2-rc.1
27
+ dsh plugin --profile web add @kirkchinese/dsh-citeciter@0.6.0
28
+ dsh plugin --profile web list --depth 0
29
+ dsh web
30
+ ```
31
31
 
32
- CiteCiter 0.5.0 需要 Node.js `^22.19.0 || >=24.0.0` 与 DSH `>=0.1.1-rc.1 <0.1.1-rc.3`。
32
+ 确认版本为 0.6.0 后重启相应宿主并刷新页面。也可从 [GitHub Release](https://github.com/kirkchinese/CiteCiter/releases/tag/v0.6.0) 下载 `.tgz`,将安装命令中的包名替换为 tarball 的绝对路径。源码开发使用贡献指南中的本地工作区安装流程。
33
33
 
34
- DSH Web 使用:
34
+ Desktop 中先确认当前 profile 名称和数据目录,使用**相同的 DSH_HOME**安装:
35
35
 
36
- ```sh
37
- dsh plugin --profile web add @kirkchinese/dsh-citeciter@0.5.0
38
- dsh plugin --profile web list --depth 0
36
+ ```powershell
37
+ dsh plugin --profile desktop add @kirkchinese/dsh-citeciter@0.6.0
38
+ dsh plugin --profile desktop list --depth 0
39
39
  ```
40
40
 
41
- 请确认列表显示 `@kirkchinese/dsh-citeciter@0.5.0`,然后重启 DSH Web 并刷新页面。
41
+ 若 Desktop 选择了自定义 profile,把 `desktop` 换成该名称;若使用自定义 home,先在当前 PowerShell 中设置 `$env:DSH_HOME`。重启 Desktop。全局 npm 更新只影响 CLI,Desktop 内置的 DSH 随桌面应用更新。
42
42
 
43
- CiteCiter 0.5.0 只提供 Web 安装路径。
44
- 从 v0.3 升级不会迁移或重写现有 Topic、设置或来源 Session。
45
- 仍在 DSH `0.1.0-rc.7` 上运行的用户应继续使用 CiteCiter 0.3.2。
43
+ npm 12 若提示安装脚本被拦截,按此次依赖列表一次性放行并重装;不必改变全局永久策略:
46
44
 
47
- ## 上下文模式
48
-
49
- Observer 是默认模式。它创建独立 Topic,并按需读取已经提交的来源证据;来源轮次仍在运行时也可以使用。
45
+ ```powershell
46
+ npm install -g @deepseek-ai/dsh@0.1.2-rc.1 --allow-scripts=@deepseek-ai/dsh-subprocess-local,koffi,node-pty,@google/genai,protobufjs
47
+ ```
50
48
 
51
- Exact Fork 是面向已结束来源轮次的高级模式。`exact-when-available` 在存在稳定边界时使用 Exact Fork,否则回退到 Observer。
49
+ 这解决原生依赖安装问题;旧插件引用已移除的 `effectiveSandboxMode` 则需要升级插件,单独重装宿主不会修复。
52
50
 
53
- ## 讲解黑板
51
+ ## 开始使用
54
52
 
55
- 讲解 Topic 使用标准 Agent loop 和 scoped `blackboard_apply` 工具。黑板批次只在配对工具结果成功后显示;失败或中断批次保留此前画面。刷新和重启从私有 Topic Session 投影最终黑板,不存储第二份可变副本。
53
+ 1. 选中已提交的助手回答或思考内容,右键输入问题,选择“开始提问”或“开始讲解”。
54
+ 2. 在右侧学习栏继续追问、切换模型和思考强度,或管理 Topic 标题、归档和删除。
55
+ 3. 使用 `+ 新 Topic` 创建自由问答或讲解。新的主会话需先发送消息,让 Topic 取得当前模型配置。
56
+ 4. 讲解内容位于主工作区“小黑板”标签;“引用到提问”会追加到现有草稿。
57
+ 5. 也可从工具结果、终端结果、差异片段及文本/Markdown Reader 创建 Topic。
56
58
 
57
- ## Web 更新提醒
59
+ <p align="center"><img src="https://raw.githubusercontent.com/kirkchinese/CiteCiter/main/assets/demo/citeciter-0.4.0.gif" width="100%" alt="选中 AI 回答并在 CiteCiter 中继续追问"></p>
58
60
 
59
- Web 客户端在不阻塞启动的情况下检查 npm `latest` 稳定版本。发现新版本后,右上角持久卡片提供 `更新`、`下次一定` 和 `不再提示`:第一个操作复制标准 Web Profile 安装命令,第二个操作在当前标签页会话内隐藏该版本,第三个操作关闭后续检查,直到在 CiteCiter 设置页重新开启。CiteCiter 不会执行安装命令;请在终端执行并重启 DSH Web。
61
+ 上图演示引用流程,录制于旧版;0.6 的宿主布局和控件可能不同。
60
62
 
61
- 首次包含检查器的版本仍需手动升级一次,因为已经安装的旧构建无法运行尚未包含的代码。使用自定义 Web Profile 时需替换复制命令中的 `web`。安装前请核对新版对 DSH 的要求;提醒只比较包版本,不声明宿主兼容性。此功能不包含 Desktop 更新。
63
+ ## 并排学习,不遮挡主对话
62
64
 
63
- ## Host 开发接口
65
+ - 宽屏为学习栏分配独立列,保留主对话和原生详情栏。
66
+ - 保存的面板比例为 28%–55%。空间不足时限制实际宽度,为主对话保留至少 480 CSS 像素;扩大窗口后恢复偏好比例。
67
+ - 窄窗口或缩放后无法容纳两列时,学习栏移至下方,主对话仍在上方可见。
68
+ - 关闭学习栏后恢复宿主布局。无法识别的宿主仅显示兼容提示。
64
69
 
65
- 0.5.0 提供 Host 侧 v1 服务 `ctx.citeciterRuntime`(`create`、`ask`、`get`、`list`、`delete`)和 `citeciter/topic-created`、`citeciter/topic-updated`、`citeciter/topic-deleted` 事件。浏览器入口注册、preset 和独立客户端 face 仍在 M4/M5 计划内,因此前端扩展接口尚未稳定。
70
+ 内容通过 DSH 公开 slots、会话投影和快照 hooks 接入。当前宿主没有公开的右侧 dock 尺寸接口,因此尺寸分配使用集中维护的宿主布局适配器,升级宿主后需重新验收。
66
71
 
67
- ## 支持范围
72
+ ## Topic 与数据
68
73
 
69
- | 宿主 | CiteCiter 版本 | 说明 |
70
- |---|---|---|
71
- | DSH Web `0.1.1-rc.1` 与 `0.1.1-rc.2` | `0.5.0` | 全新 profile Linux 包、组装浏览器冒烟与真实 DeepSeek 提供方验收通过 |
72
- | [DSH Desktop 2.0.2](https://github.com/anywhere-labs/deepseek-harness-desktop)(内置 DSH `0.1.1-rc.2`) | 后续目标 | 正式 Desktop 安装包仍未验收 |
73
- | [dataelement DSH Desktop](https://github.com/dataelement/dsh-desktop) 源码开发壳(内置 DSH `0.1.1-rc.1`) | 仅 `0.4.0` | 历史上的 Linux 源码壳记录 |
74
- | DSH Web `0.1.0-rc.7` | `0.3.2` | 旧版稳定线 |
75
- | DSH TUI | — | 暂不支持 |
74
+ Observer 在私有日志中讨论,按需读取来源事件和项目文件;Exact Fork 继承已结束来源轮次的上下文。文件工具保持只读,Topic 不向主 Session 追加事件。未提交的流式文字没有稳定引用坐标;Exact Fork 需等待来源轮次结束。
76
75
 
77
- 动图只是流程演示,不代表 Desktop 安装包验收结果。
76
+ Presenter 的 `blackboard_apply` 原子提交支持公式、Markdown、表格、安全 SVG、隔离 HTML 动画和内嵌图片。Topic 可继续追问、切换模型、归档、恢复及带 Session ID 确认的永久删除。
78
77
 
79
- ## 已知限制
78
+ Topic 索引在 `$DSH_HOME/citeciter/workspaces/`,日志在 `$DSH_HOME/citeciter/sessions/`;未设置变量时通常为用户目录下的 `.dsh`。升级前备份整个 home。0.6 使用新版会话 API;没有批量重写旧日志。DSH 版本 0 JSONL 的物理 `seedLength` 仍由宿主读取,遇到未知事件应保留原件并诊断,不能删字段绕过。
80
79
 
81
- - 选区中必须至少包含一个已经提交的助手模型调用;纯用户消息、纯工具行和仍在流式输出的片段不能作为引用锚点。已提交模型调用的思考折叠行可以代表该次完整调用。
82
- - 渲染器生成的 KaTeX 排版和脚注编号没有稳定原文坐标,不能直接引用。
83
- - Exact Fork 不能从仍在运行的来源轮次开始。
84
- - 来源文件访问依赖当前 DSH 文件系统服务,并始终保持只读。
85
- - Read Frog 翻译选区只是 DSH rc.1/rc.2 的兼容补丁,只有完整私有标记都在时才会启用。
86
- - DSH 还没有公开的右侧 dock 扩展点。能并排显示时,CiteCiter 会临时调整布局;换到新的 DSH 版本后需要重新确认这一块。
87
- - Topic 由 Host 持久保存。Desktop 重启到不同 loopback 端口时,浏览器 localStorage 会因 origin 改变而失去精确指针,CiteCiter 将回退到最近更新的 Topic;需要精确恢复“上次查看”时应配置固定 Desktop 端口。
88
- - DSH rc.2 没有 Session 删除 API,因此 Topic 永久删除是对 CiteCiter 固定私有 JSONL 根目录执行的所有者维护。一个 DSH home 只能由一个活动 CiteCiter 进程占用,不支持多个活动进程共享。
89
- - CiteCiter 0.5.0 只提供 Web 安装路径;Desktop 的正式安装包还没跟上。
90
- - 当前没有 TUI 交互适配器。
91
- - DSH 仍处于预发布阶段,后续 API 版本可能要求同步更新 CiteCiter。
80
+ 一个 home 只能由一个活动 CiteCiter 宿主使用。Web 与 Desktop 同时运行时使用不同 home;不要让两者并发写入同一私有存储。更新提醒只复制命令,不自动安装;Desktop 命令使用当前 profile。
92
81
 
93
- ## 交流与反馈
82
+ ## 开发
94
83
 
95
- 欢迎加入 DSH-Citeciter QQ 群(群号 `1108040435`),交流使用方式、功能想法和兼容性问题。
84
+ ```sh
85
+ pnpm typecheck
86
+ pnpm test
87
+ pnpm build
88
+ pnpm test:snapshot
89
+ ```
96
90
 
97
- <p align="center">
98
- <img src="https://raw.githubusercontent.com/kirkchinese/CiteCiter/main/assets/community/qq-group.jpg" width="360" alt="DSH-Citeciter QQ 群 1108040435 二维码">
99
- </p>
91
+ 实际应用快照使用临时 profile 与无密钥模型,覆盖 Observer、Exact Fork、来源读取、板书和来源日志不变性。Host API `ctx.citeciterRuntime` 提供 `create`、`ask`、`get`、`list`、`delete` 及 Topic 变化事件。前端入口注册 API 和 preset 扩展仍未稳定。开发流程见 [贡献指南](https://github.com/kirkchinese/CiteCiter/blob/main/CONTRIBUTING.zh.md),公开变更见 [0.6.0 发布说明](https://github.com/kirkchinese/CiteCiter/blob/main/docs/releases/v0.6.0.md)。
100
92
 
101
- ## 参与贡献
93
+ ## 社区与许可证
102
94
 
103
- 欢迎提交 Issue 和 Pull Request。提交代码前请阅读[贡献文档](https://github.com/kirkchinese/CiteCiter/blob/main/CONTRIBUTING.zh.md)。
95
+ DSH-Citeciter QQ 群:`1108040435`。
104
96
 
105
- ## 许可证
97
+ <p align="center"><img src="https://raw.githubusercontent.com/kirkchinese/CiteCiter/main/assets/community/qq-group.jpg" width="280" alt="DSH-Citeciter QQ 群二维码"></p>
106
98
 
107
- MIT © CiteCiter contributors
99
+ [MIT License](https://github.com/kirkchinese/CiteCiter/blob/main/LICENSE)