@kirkchinese/dsh-citeciter 0.9.0-alpha.2 → 0.9.0-beta.1
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 +67 -137
- package/README.zh.md +69 -139
- package/lib/client.js +2416 -1036
- package/lib/index.js +16601 -16275
- package/lib/{typert-common-BQpqe5Ph.js → typert-common-BRv6PLDv.js} +3 -5
- package/lib/typert.host.js +2 -2
- package/lib/typert.remote-client.js +1 -1
- package/lib/types/actions.d.ts +7 -12
- package/lib/types/blackboard-tool.d.ts +6 -0
- package/lib/types/blocking-question-recovery.d.ts +16 -0
- package/lib/types/board.d.ts +0 -15
- package/lib/types/client/board-citation.d.ts +8 -0
- package/lib/types/client/citer-session-face.d.ts +3 -2
- package/lib/types/client/companion-controller.d.ts +5 -5
- package/lib/types/client/components/QuestionCard.d.ts +8 -4
- package/lib/types/client/components/QuestionReplyBody.d.ts +5 -0
- package/lib/types/client/components/TopicComposer.d.ts +2 -1
- package/lib/types/client/components/TopicQuestions.d.ts +10 -0
- package/lib/types/client/components/TopicSettingsDialog.d.ts +1 -3
- package/lib/types/client/components/UserMessageBody.d.ts +3 -1
- package/lib/types/client/conversation-dom.d.ts +0 -7
- package/lib/types/client/draft-controller.d.ts +4 -6
- package/lib/types/client/draft-merge.d.ts +8 -0
- package/lib/types/client/host-dock.d.ts +1 -1
- package/lib/types/client/host-icons.d.ts +2 -13
- package/lib/types/client/host-image-preview.d.ts +2 -1
- package/lib/types/client/host-source-chat.d.ts +11 -0
- package/lib/types/client/host-ui-adapter.d.ts +2 -2
- package/lib/types/client/native-composer.d.ts +15 -0
- package/lib/types/client/prompt.d.ts +4 -4
- package/lib/types/client/question-draft-controller.d.ts +50 -0
- package/lib/types/client/question-interaction.d.ts +33 -0
- package/lib/types/client/request-guard.d.ts +3 -13
- package/lib/types/client/topic-presentation.d.ts +0 -7
- package/lib/types/client/topic-question-controller.d.ts +80 -0
- package/lib/types/client/types.d.ts +3 -4
- package/lib/types/document-access.d.ts +7 -2
- package/lib/types/host-agent-modules.d.ts +4 -4
- package/lib/types/host-session-adapter.d.ts +7 -4
- package/lib/types/host-settings-adapter.d.ts +5 -5
- package/lib/types/index.d.ts +8 -8
- package/lib/types/learning-cards-tool.d.ts +5 -0
- package/lib/types/learning.d.ts +0 -4
- package/lib/types/legacy-migration.d.ts +16 -0
- package/lib/types/observer.d.ts +0 -7
- package/lib/types/question-draft-contract.d.ts +55 -0
- package/lib/types/question-draft-lifecycle.d.ts +8 -0
- package/lib/types/question-draft-store.d.ts +38 -0
- package/lib/types/question-reply.d.ts +23 -0
- package/lib/types/source-read-tool.d.ts +3 -4
- package/lib/types/tool-approval-projection.d.ts +10 -0
- package/lib/types/tool-events.d.ts +2 -0
- package/lib/types/tool-outcome-contract.d.ts +3 -0
- package/lib/types/topic-deletion-receipts.d.ts +40 -0
- package/lib/types/topic-index.d.ts +26 -30
- package/lib/types/topic-log.d.ts +41 -0
- package/lib/types/topic-prompts.d.ts +8 -1
- package/lib/types/topic-question-bridge.d.ts +10 -0
- package/lib/types/topic-questions.d.ts +53 -0
- package/lib/types/topic-runtime.d.ts +21 -317
- package/lib/types/topic.d.ts +202 -177
- package/lib/types/typert-codec.d.ts +2 -4
- package/lib/types/typert-common.d.ts +251 -1138
- package/lib/types/typert.host.d.ts +525 -2584
- package/lib/types/update.d.ts +0 -7
- package/lib/{update-CRD1jFLf.js → update-DDut5jKW.js} +189 -113
- package/package.json +66 -79
package/README.md
CHANGED
|
@@ -1,188 +1,118 @@
|
|
|
1
1
|
# CiteCiter
|
|
2
2
|
|
|
3
|
-
[简体中文](README.zh.md) · [npm](https://www.npmjs.com/package/@kirkchinese/dsh-citeciter) · [Issues](https://github.com/kirkchinese/CiteCiter/issues)
|
|
3
|
+
[简体中文](README.zh.md) · [npm](https://www.npmjs.com/package/@kirkchinese/dsh-citeciter) · [Changelog](https://github.com/kirkchinese/CiteCiter/blob/v0.9.0-beta.1/CHANGELOG.md) · [Issues](https://github.com/kirkchinese/CiteCiter/issues)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+

|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
**The AI finished the task. I still want to understand how it did it.**
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
CiteCiter is a [DeepSeek Harness (DSH)](https://github.com/deepseek-ai/deepseek-harness) plugin that helps you learn from your agent's real work. Select part of a conversation, a tool result or a document, ask about it in a separate Topic that keeps its source, use a blackboard to see how the pieces relate, then return to your work. The main conversation is never modified.
|
|
10
10
|
|
|
11
|
-
[
|
|
11
|
+
[](https://www.bilibili.com/video/BV1tqeA65EJ8/)
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
[Watch the demo on Bilibili](https://www.bilibili.com/video/BV1tqeA65EJ8/) (recorded with an earlier version; the interface has changed slightly).
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
## Installation
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
flowchart LR
|
|
19
|
-
S[Actual selection] --> W[Wheel action]
|
|
20
|
-
W --> F[Free question]
|
|
21
|
-
W --> N[Other built-ins]
|
|
22
|
-
W --> C[Custom destination]
|
|
23
|
-
F --> A{Unarchived same-source Topic selected?}
|
|
24
|
-
A -->|Yes| D[Append to existing draft]
|
|
25
|
-
A -->|No| T[Create Topic draft]
|
|
26
|
-
N --> T
|
|
27
|
-
C --> D
|
|
28
|
-
C --> T
|
|
29
|
-
D --> E[Edit references, question and model]
|
|
30
|
-
T --> E
|
|
31
|
-
E --> M[Manual send]
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Version and installation
|
|
17
|
+
CiteCiter needs DSH and a working model. The plugin declares exact host versions, so choose the CiteCiter release that matches your DSH:
|
|
35
18
|
|
|
36
|
-
|
|
19
|
+
| DSH version | CiteCiter version |
|
|
20
|
+
| --- | --- |
|
|
21
|
+
| `0.2.0-rc.2` (including the official Desktop), `0.2.1-alpha.1`, `0.2.1-alpha.2` | `0.9.0-beta.1` |
|
|
22
|
+
| `0.1.7-rc.2` | `0.9.0-alpha.3` |
|
|
23
|
+
| `0.1.5-rc.1` | `0.8.2` |
|
|
24
|
+
| `0.1.2-rc.1` | `0.6.0` |
|
|
37
25
|
|
|
38
|
-
**
|
|
26
|
+
**Official Desktop:** install the npm package `@kirkchinese/dsh-citeciter` from the Plugins page, or enter `https://github.com/kirkchinese/CiteCiter.git` in its Git field, then restart when prompted.
|
|
39
27
|
|
|
40
|
-
|
|
41
|
-
| --- | --- | --- |
|
|
42
|
-
| 0.9.0-alpha.2 | Default prerelease; npm latest / next | Prerelease-aware update checks; no repeat update prompt for the same version |
|
|
43
|
-
| 0.9.0-alpha.1 | Earlier prerelease | Dual-host adapters, durable drafts, PTC tool display, reference routing and learning-route policy |
|
|
44
|
-
| 0.8.2 | Older hosts | Explicit source horizons and continuation; native first-answer question suggestions |
|
|
45
|
-
| 0.8.1 | Published | Fix Topic startup through Linux/macOS launcher symlinks |
|
|
46
|
-
| 0.8.0 | Deprecated; upgrade to 0.8.2 | Linux launcher symlinks can prevent Topics from opening |
|
|
47
|
-
| 0.7.0-beta.3 | Previous development candidate | Private read-only Topics, selection wheel, manual five-stage learning |
|
|
48
|
-
| 0.6.0 | Published | DSH 0.1.2-rc.1 / Desktop 2.0.5 baseline |
|
|
28
|
+
**CLI and Web:**
|
|
49
29
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
```powershell
|
|
53
|
-
npm install -g @deepseek-ai/dsh@0.1.7-rc.2
|
|
54
|
-
dsh plugin --profile web add @kirkchinese/dsh-citeciter@0.9.0-alpha.2
|
|
55
|
-
dsh web
|
|
30
|
+
```sh
|
|
31
|
+
dsh plugin --profile web add @kirkchinese/dsh-citeciter@0.9.0-beta.1
|
|
56
32
|
```
|
|
57
33
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
In 0.8.0, launching DSH through a Linux/macOS symlink can prevent Topics from opening with a missing dsh-agent-loop error. Version 0.8.1 resolves the real CLI entry before loading host modules and retains Desktop's app.asar anchor. Native Linux Node regression passed; macOS has not been tested.
|
|
34
|
+
You can also install a release tag straight from the repository, which contains the built plugin, so nothing is built at install time:
|
|
61
35
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
```powershell
|
|
65
|
-
npm install -g @deepseek-ai/dsh@0.1.7-rc.2
|
|
66
|
-
pnpm install --frozen-lockfile
|
|
67
|
-
pnpm typecheck
|
|
68
|
-
pnpm typecheck:desktop
|
|
69
|
-
pnpm build
|
|
70
|
-
pnpm --dir packages/citeciter pack --pack-destination E:/project/CiteCiter/.refs/artifacts
|
|
71
|
-
dsh plugin --profile web add E:/project/CiteCiter/.refs/artifacts/kirkchinese-dsh-citeciter-0.9.0-alpha.2.tgz
|
|
36
|
+
```sh
|
|
37
|
+
dsh plugin --profile web add "git+https://github.com/kirkchinese/CiteCiter.git#v0.9.0-beta.1"
|
|
72
38
|
```
|
|
73
39
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
Known host limitation: Windows read-only PowerShell can reject the host encoding initialization under ConstrainedLanguage, and some Chinese output can be garbled. Citer retains the original errors without raising permissions or hiding output; DSH must fix the executor. This prerelease makes no native acceptance claim for Linux/macOS or the separate Desktop NEXT shell.
|
|
77
|
-
|
|
78
|
-
## Source reading and suggested questions
|
|
79
|
-
|
|
80
|
-
`read_source_session` returns byte-bounded pages. `sourceMaxSeq` is the readable snapshot horizon; the legacy `availableThroughSeq` is request-bounded and does not indicate source exhaustion. When `hasMore` is true, pass `nextFromSeq` as the next `fromSeq` and omit `throughSeq`. `truncated` only marks a byte-budget stop within the range. Empty pages, filtered events and oversized placeholders do not prove missing evidence. Observer reads currently committed events; Exact Fork reads only the inherited prefix.
|
|
81
|
-
|
|
82
|
-
Native Topics offer three suggested questions after the first answer by default; disable them in CiteCiter settings. The prompt omits suggestions when the current request excludes them, asks for only a result, or imposes a strict format or length limit. Clicking a question only fills the draft and still requires manual submission. Source instructions and question suggestions are separate prompt modules; source contents remain gated by submitted attachments.
|
|
83
|
-
|
|
84
|
-
## Drafts and references
|
|
85
|
-
|
|
86
|
-
1. Select text in the source conversation, hold the right mouse button, point at a wheel action and release. Tool results, the document reader and native file previews provide additional entry points.
|
|
87
|
-
2. Free question adds the selection to the selected unarchived Topic; it creates a Topic when none is selected or the selected Topic is archived. Other built-in actions create Topics by default, and custom actions choose their destination. Append only within the current source, retaining the draft, model and permissions. Source addresses and excerpts are removable attachments. The plus button selects actual files or images; it does not manufacture references.
|
|
88
|
-
3. Review the question, references, permissions and model, then click Send or press Enter. Shift + Enter inserts a newline; Enter during IME composition does not submit.
|
|
89
|
-
|
|
90
|
-
Creating Topics, choosing wheel actions, changing models and quoting boards do not call a model. Wheel actions go directly to the Citer composer, where the user edits the question, references and model before sending. Custom actions targeting an existing Topic append their prompt after the current draft. Submitted prompts and references are recorded in the Topic's native log.
|
|
91
|
-
|
|
92
|
-
Removing an unsent source attachment makes its reading tool reject access; new Topics do not silently inherit source history. Previously sent references remain in conversation history: removing a later draft copy does not retract them. Draft text, actual references and attachment bytes are stored in the owning Topic's `draft/` directory and restored after panel close, Topic switches, reload and restart. Restoration never sends a message. Model, reasoning and permission choices continue to use host-persisted state. Background polling in another window does not replace the last-used Topic; navigation restoration follows explicit actions.
|
|
93
|
-
|
|
94
|
-
Drafts do not enter model logs or grant source access. Only host-confirmed submission contents are cleared; edits made during submission survive. Rejected sends retain the draft. Lost responses display a pending state for explicit reconciliation or retry. Concurrent save conflicts preserve local input and ask which version to keep. Choosing the local draft restores attachment bytes still held by this window if another window removed them. Missing or damaged attachments surface errors. Permanent Topic deletion includes its draft. Older Desktop refuses writes to newer session formats; continue in the newer Web host instead of manually downgrading logs.
|
|
95
|
-
|
|
96
|
-
## Permissions, input and queue
|
|
40
|
+
Restart DSH and refresh the page after installing or upgrading. Do not use `dsh plugin allow-version` to force a plugin that does not match your host version. Do not run two host processes on the same DSH home.
|
|
97
41
|
|
|
98
|
-
|
|
42
|
+
## Start from one question
|
|
99
43
|
|
|
100
|
-
|
|
44
|
+
Say your agent changed some code and you wonder: "Why does this async save affect typing?"
|
|
101
45
|
|
|
102
|
-
|
|
46
|
+
1. Select the relevant text in the conversation, a tool result or a document, hold the right mouse button to open the wheel, and choose 自由提问 (free question) or 解释这段 (explain this).
|
|
47
|
+
2. Citer opens a draft with the source address and the excerpt as removable attachments. Write your question, choose a model, and send it yourself.
|
|
48
|
+
3. Keep asking about the material; when it helps, have the model draw the flow on the blackboard or summarize learning cards.
|
|
49
|
+
4. Go back to the task and check your understanding against the code, a tool result or a small experiment.
|
|
103
50
|
|
|
104
|
-
|
|
51
|
+
Creating a Topic or choosing a wheel action only prepares a draft; the model runs only after you send. Explanations and boards can still be wrong; they help you understand and check, not replace evidence.
|
|
105
52
|
|
|
106
|
-
|
|
53
|
+
## Features
|
|
107
54
|
|
|
108
|
-
|
|
55
|
+
| You want to | CiteCiter provides |
|
|
56
|
+
| --- | --- |
|
|
57
|
+
| Understand an answer, code or tool result | A separate Topic with a source citation; follow-ups never touch the main conversation |
|
|
58
|
+
| See relationships and processes | A blackboard with Markdown, formulas, tables, SVG, images and sandboxed HTML; vision models can inspect the rendered board and fix it |
|
|
59
|
+
| Keep what you learned | Learning cards you can export and revise, with prose and code examples shown separately |
|
|
60
|
+
| Discuss real files | File and image attachments, a `.txt` / `.md` document reader, and a "CiteCiter 学习" entry in native file previews |
|
|
61
|
+
| Act on what you understood | DSH models, tools, approvals, permissions, queueing and steering; new Topics are read-only by default |
|
|
62
|
+
| Pick up where you left off | Drafts (text, references, attachments) and unsubmitted question answers are saved and restored after switching, refreshing or restarting, never sent automatically |
|
|
109
63
|
|
|
110
|
-
|
|
64
|
+
## Using CiteCiter
|
|
111
65
|
|
|
112
|
-
After the
|
|
66
|
+
**Wheel and citations.** After selecting text, hold the right mouse button to open the eight-slot wheel, move to an action and release. A short right click lets you click a slot, Shift + right click keeps the browser menu, the arrow keys, digits 1–8 and Enter also select, and Esc cancels. 自由提问 adds the selection to the selected, unarchived Topic, or creates one if none is available; other actions create a new Topic by default. Slots, prompts, the default model and where the panel opens are all configurable in Settings.
|
|
113
67
|
|
|
114
|
-
|
|
68
|
+
**Composer.** The composer offers attachments, permission mode, model and reasoning effort, and Send. Enter sends, Shift + Enter adds a line, and Enter never sends during IME composition. While a reply is generating, Enter follows DSH's queue/steer preference and Ctrl + Enter uses the other one. Add files from the attachment menu, paste images, or drop files onto the Citer panel.
|
|
115
69
|
|
|
116
|
-
|
|
70
|
+
**Drafts.** Drafts save silently in the background. Edits to the same Topic from several windows merge automatically; where they overlap, the window you are typing in wins. After a successful send, only what was sent is cleared, and anything written meanwhile is kept.
|
|
117
71
|
|
|
118
|
-
|
|
72
|
+
**Learning route and cards.** The learning route is off by default; when on, the model plans its explanation with DSH todos. You can ask for learning cards at any time; the model checks conclusions, conditions and calculations first, but self-checking does not guarantee correctness. Active recall is off by default; when on, cards show their self-test question first.
|
|
119
73
|
|
|
120
|
-
|
|
74
|
+
**Images.** Image generation and viewing tools come from host plugins such as [Codex Connect](https://github.com/franksong2702/dsh-codex-connect), enabled separately in each profile.
|
|
121
75
|
|
|
122
|
-
|
|
76
|
+
## Permissions and data
|
|
123
77
|
|
|
124
|
-
|
|
78
|
+
New Topics are **read-only** by default, even when the source session has more permissions. A Topic can change the workspace only after you choose another permission mode in the composer or change the default for new Topics in Settings; DSH approvals and sandboxing still apply.
|
|
125
79
|
|
|
126
|
-
|
|
80
|
+
Topics appear only in the Citer list, never in DSH's session list. Double-click a title or press F2 to rename it; an archived Topic returns to the list when you send to it again. Permanent deletion asks for the full Session ID and removes only that Topic's records, drafts and attachments.
|
|
127
81
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
Wide windows keep source and Citer side by side, with a resizable divider. Drag the title area away to float; release at the right window edge to dock. Opening native file details temporarily hides Citer when both panes cannot fit. Closing details restores the same Topic, draft and model. Explicitly selecting Citer or a file-selection action opens the compact Citer page; its top-left Back button restores the prior view. Without details, narrow screens use this page directly rather than placing Citer below the source. Closing restores host space and preserves Desktop captions.
|
|
131
|
-
|
|
132
|
-
Surfaces use translucent backgrounds, blur and short transitions, respecting host themes and reduced-motion settings. A dedicated adapter owns layout changes; unknown host structures do not receive an intrusive full-screen fallback.
|
|
133
|
-
|
|
134
|
-
## Storage and migration
|
|
135
|
-
|
|
136
|
-
Topics appear only in Citer navigation. DSH does not recursively discover nested Topic logs. Citer owns live membership and navigation; native send services can address a loaded Topic by identity.
|
|
82
|
+
CiteCiter stores its data in each source session's directory:
|
|
137
83
|
|
|
138
84
|
```text
|
|
139
85
|
.dsh/sessions/<workspace>/<sourceSession>/
|
|
140
|
-
├── session.v4.jsonl[.zstd]
|
|
86
|
+
├── session.v4.jsonl[.zstd] main session managed by DSH (never modified by Citer)
|
|
141
87
|
└── citeciter/
|
|
142
|
-
├── owner.json
|
|
88
|
+
├── owner.json directory ownership
|
|
143
89
|
├── <topicNumber>/
|
|
144
|
-
│ ├── topic.json
|
|
145
|
-
│ ├── draft/
|
|
146
|
-
│
|
|
147
|
-
└──
|
|
90
|
+
│ ├── topic.json Topic information
|
|
91
|
+
│ ├── draft/ unsent text, references and attachments
|
|
92
|
+
│ ├── question-drafts/ unsubmitted question answers
|
|
93
|
+
│ └── sessions/ the Topic's own session log
|
|
94
|
+
└── deleted/ deletion records (identity only, no content)
|
|
148
95
|
```
|
|
149
96
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
Alpha uses v4 logs. DSH reads and migrates older v3 logs; Citer does not rewrite event sequences or `seedLength`. Sources with historical logs remain addressable through their physical source directory.
|
|
153
|
-
|
|
154
|
-
## Documents and native preview
|
|
155
|
-
|
|
156
|
-
While Citer is open, use the top-right … → Document reading action. The standalone reader launcher remains available when Citer is closed and no longer covers its composer.
|
|
157
|
-
|
|
158
|
-
Click 📖 to import `.txt`, `.md` or `.markdown`. The reader preserves the full document, displays at most 500 KiB of UTF-8 text per page and accepts up to 2,000,000 characters. Paging clears the previous selection but keeps the question. Preparing a draft collapses the reader. The document address and excerpt are separate removable attachments.
|
|
159
|
-
|
|
160
|
-
Document tools return the full UTF-16 length and actual read range. Search results expose the valid endpoint; reads distinguish the requested cap, returned endpoint and remaining content. Continue with nextFromOffset and omit throughOffset when the end is unknown. Invalid ranges report explicit bounds instead of silently clamping them.
|
|
161
|
-
|
|
162
|
-
When the optional documentPreviews service is present, select “CiteCiter 学习” in native file preview. The host reads the file; Citer provides selectable source text, pagination and references. Creating a Topic stores a complete snapshot, unaffected by later file changes. Each snapshot is limited to 8 MiB / 2,000,000 characters and requires a source Session address.
|
|
163
|
-
|
|
164
|
-
This branch compiles against public subpackage types `0.1.7-rc.2`; the preview service remains optional. Without it, conversation actions and the independent reader remain usable. The learning viewer does not provide PDF text extraction, Word parsing or OCR. Selections from different documents can join one Topic; reads identify documents by their submitted attachment addresses.
|
|
165
|
-
|
|
166
|
-
## Wheel settings
|
|
167
|
-
|
|
168
|
-
Configure the trigger, default model and eight slots in Settings → CiteCiter. Defaults are Ask, Explain, Find errors, Translate, Quantitative board, Summary cards and two empty slots. Each slot has a prompt, input hint, draft destination, content mode and default placement. Save slot edits explicitly.
|
|
169
|
-
|
|
170
|
-
A short right-click leaves a clickable wheel; Shift + right-click preserves the native menu. Arrow keys, digits 1–8 and Enter select actions. Center, empty slots, outside release, Escape, source changes or wheel blur cancel. There is no preliminary question dialog; the Citer composer owns the draft.
|
|
97
|
+
Topics created before 0.8 are migrated into this layout at startup; their original logs are kept.
|
|
171
98
|
|
|
172
|
-
##
|
|
99
|
+
## Known issues
|
|
173
100
|
|
|
174
|
-
|
|
101
|
+
- On Windows, PowerShell in read-only mode may report a language-mode error or print garbled Chinese. This is a limitation of the DSH executor inside the read-only sandbox; CiteCiter does not loosen permissions to work around it.
|
|
102
|
+
- After the official Desktop restarts, other browser tabs still connected to the old backend may go blank; refreshing restores them. This also happens with CiteCiter disabled.
|
|
103
|
+
- Using different DSH versions one after another at the same browser address can leave the host's own draft data in an incompatible format so the main conversation does not render; use a different address or port per version.
|
|
104
|
+
- The plugin is mainly tested on Windows; Linux and macOS have not been systematically tested, and reports are welcome.
|
|
175
105
|
|
|
176
|
-
|
|
106
|
+
## Why CiteCiter
|
|
177
107
|
|
|
178
|
-
|
|
108
|
+
Practice usually produces two things: a result and a skill. We form judgment by trying, making mistakes, comparing approaches and verifying. AI can take over more and more of the execution, but it does not automatically hand the matching understanding to its user, so finishing a task and growing as a person can come apart.
|
|
179
109
|
|
|
180
|
-
|
|
110
|
+
CiteCiter turns real AI work into material you can cite, question and check. Start from the question in front of you, understand the principle, look at the evidence, and continue with a better understanding. Even when an agent does the work, people still need to set goals, understand the key conditions, judge whether a result applies, and take over when something goes wrong.
|
|
181
111
|
|
|
182
|
-
|
|
112
|
+
## Feedback
|
|
183
113
|
|
|
184
|
-
|
|
114
|
+
Bring a task where "the agent finished, but I still can't explain it" to the [issue tracker](https://github.com/kirkchinese/CiteCiter/issues). Include your DSH and plugin versions and whether you got stuck installing, citing and asking, or understanding the answer. Remove keys and private content before pasting material.
|
|
185
115
|
|
|
186
|
-
|
|
116
|
+
See [CONTRIBUTING.md](https://github.com/kirkchinese/CiteCiter/blob/v0.9.0-beta.1/CONTRIBUTING.md) for development and [docs/product.zh.md](https://github.com/kirkchinese/CiteCiter/blob/v0.9.0-beta.1/docs/product.zh.md) (Chinese) for the product rules. [Claude2DSH](https://github.com/kirkchinese/claude2dsh), by the same author, migrates sessions and assets between Claude Code and DSH.
|
|
187
117
|
|
|
188
118
|
MIT License.
|
package/README.zh.md
CHANGED
|
@@ -1,188 +1,118 @@
|
|
|
1
1
|
# CiteCiter
|
|
2
2
|
|
|
3
|
-
[English](README.md) · [npm](https://www.npmjs.com/package/@kirkchinese/dsh-citeciter) · [问题反馈](https://github.com/kirkchinese/CiteCiter/issues)
|
|
3
|
+
[English](README.md) · [npm](https://www.npmjs.com/package/@kirkchinese/dsh-citeciter) · [更新记录](https://github.com/kirkchinese/CiteCiter/blob/v0.9.0-beta.1/CHANGELOG.md) · [问题反馈](https://github.com/kirkchinese/CiteCiter/issues)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+

|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
**AI 已经完成了任务,我还想弄明白它是怎么做的。**
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
CiteCiter 是 [DeepSeek Harness(DSH)](https://github.com/deepseek-ai/deepseek-harness) 的插件,帮助你从 Agent 的真实工作中学习。选中对话、工具结果或文档中的一段内容,在保留来源的独立 Topic 里追问,用小黑板理解关键关系,再回到原来的工作。主对话不会被改动。
|
|
10
10
|
|
|
11
|
-
[
|
|
11
|
+
[](https://www.bilibili.com/video/BV1tqeA65EJ8/)
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
[在 B 站观看演示](https://www.bilibili.com/video/BV1tqeA65EJ8/)(早期版本录制,界面与当前版本略有不同)。
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
## 安装
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
flowchart LR
|
|
19
|
-
S[实际选文] --> W[轮盘动作]
|
|
20
|
-
W --> F[自由提问]
|
|
21
|
-
W --> N[其他内置动作]
|
|
22
|
-
W --> C[自定义目标]
|
|
23
|
-
F --> A{已选中同源未归档 Topic?}
|
|
24
|
-
A -->|是| D[追加到已有草稿]
|
|
25
|
-
A -->|否| T[新建 Topic 草稿]
|
|
26
|
-
N --> T
|
|
27
|
-
C --> D
|
|
28
|
-
C --> T
|
|
29
|
-
D --> E[编辑引用、问题和模型]
|
|
30
|
-
T --> E
|
|
31
|
-
E --> M[手动发送]
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## 版本与安装
|
|
17
|
+
CiteCiter 需要 DSH 和一个可用的模型。插件声明了精确的宿主版本,请按 DSH 版本选择对应的 CiteCiter:
|
|
35
18
|
|
|
36
|
-
|
|
19
|
+
| DSH 版本 | CiteCiter 版本 |
|
|
20
|
+
| --- | --- |
|
|
21
|
+
| `0.2.0-rc.2`(含官方桌面版)、`0.2.1-alpha.1`、`0.2.1-alpha.2` | `0.9.0-beta.1` |
|
|
22
|
+
| `0.1.7-rc.2` | `0.9.0-alpha.3` |
|
|
23
|
+
| `0.1.5-rc.1` | `0.8.2` |
|
|
24
|
+
| `0.1.2-rc.1` | `0.6.0` |
|
|
37
25
|
|
|
38
|
-
|
|
26
|
+
**官方桌面版:** 在插件页安装 npm 包 `@kirkchinese/dsh-citeciter`,或在 Git 地址一栏填写 `https://github.com/kirkchinese/CiteCiter.git`,然后按提示重启。
|
|
39
27
|
|
|
40
|
-
|
|
41
|
-
| --- | --- | --- |
|
|
42
|
-
| 0.9.0-alpha.2 | 默认预发布,npm latest / next | 更新检查支持预发布版本;相同版本不再重复提示升级 |
|
|
43
|
-
| 0.9.0-alpha.1 | 早期预发布 | 双宿主适配、持久草稿、PTC 工具展示、引用追加与学习路线约束 |
|
|
44
|
-
| 0.8.2 | 旧宿主版本 | 明确来源读取上界与续读位置,恢复原生 Topic 首答建议追问 |
|
|
45
|
-
| 0.8.1 | 已发布 | 修复 Linux/macOS 符号链接启动时无法打开 Topic |
|
|
46
|
-
| 0.8.0 | 已弃用,请升级 0.8.2 | Linux 符号链接启动错误会阻止 Topic 打开 |
|
|
47
|
-
| 0.7.0-beta.3 | 前一开发候选版 | 私有只读 Topic、选文轮盘、手动五阶段学习 |
|
|
48
|
-
| 0.6.0 | 已发布 | DSH 0.1.2-rc.1 / Desktop 2.0.5 基线 |
|
|
28
|
+
**命令行与 Web:**
|
|
49
29
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
```powershell
|
|
53
|
-
npm install -g @deepseek-ai/dsh@0.1.7-rc.2
|
|
54
|
-
dsh plugin --profile web add @kirkchinese/dsh-citeciter@0.9.0-alpha.2
|
|
55
|
-
dsh web
|
|
30
|
+
```sh
|
|
31
|
+
dsh plugin --profile web add @kirkchinese/dsh-citeciter@0.9.0-beta.1
|
|
56
32
|
```
|
|
57
33
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
0.8.0 在 Linux/macOS 通过符号链接启动 DSH 时,可能无法打开 Topic,报找不到 dsh-agent-loop。0.8.1 先解析 CLI 入口真实路径再加载宿主模块,保留 Desktop 的 app.asar 路径。Linux 原生 Node 回归已通过,macOS 尚未实测。
|
|
34
|
+
也可以从仓库安装某个发布标签,仓库内已包含构建好的插件,安装时无需构建:
|
|
61
35
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
```powershell
|
|
65
|
-
npm install -g @deepseek-ai/dsh@0.1.7-rc.2
|
|
66
|
-
pnpm install --frozen-lockfile
|
|
67
|
-
pnpm typecheck
|
|
68
|
-
pnpm typecheck:desktop
|
|
69
|
-
pnpm build
|
|
70
|
-
pnpm --dir packages/citeciter pack --pack-destination E:/project/CiteCiter/.refs/artifacts
|
|
71
|
-
dsh plugin --profile web add E:/project/CiteCiter/.refs/artifacts/kirkchinese-dsh-citeciter-0.9.0-alpha.2.tgz
|
|
36
|
+
```sh
|
|
37
|
+
dsh plugin --profile web add "git+https://github.com/kirkchinese/CiteCiter.git#v0.9.0-beta.1"
|
|
72
38
|
```
|
|
73
39
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
已知宿主限制:Windows 只读 PowerShell 的编码初始化可能被受限语言模式拒绝,部分中文输出可能乱码。Citer 保留原始错误,不提高权限或隐藏输出;此问题等待 DSH 修复。本次预发布不包含 Linux/macOS 或 Desktop NEXT 外壳的实机验收声明。
|
|
77
|
-
|
|
78
|
-
## 来源读取与建议追问
|
|
79
|
-
|
|
80
|
-
`read_source_session` 按字节预算分页。`sourceMaxSeq` 是本次快照的可读上界;`availableThroughSeq` 是旧版请求上界标记,不能用它判断来源结束。`hasMore` 为 true 时,以 `nextFromSeq` 作为下一次 `fromSeq`,省略 `throughSeq` 继续读取。`truncated` 只表示当前范围因字节预算停止;空页、过滤事件及超大内容占位不代表来源不存在。Observer 每次读取当前已提交事件,Exact Fork 只读取继承前缀。
|
|
81
|
-
|
|
82
|
-
原生 Topic 的首答默认提供三条建议追问,可在 CiteCiter 设置中关闭。用户本次要求不附建议、只给结果或严格限定格式与篇幅时,提示词要求省略追问。点击建议只填入草稿,手动发送后才调用模型。来源说明和建议追问由独立提示词模块提供;来源内容继续按已发送附件读取。
|
|
83
|
-
|
|
84
|
-
## 草稿与引用
|
|
85
|
-
|
|
86
|
-
1. 在主对话选中文字,按住右键打开八槽轮盘,移向动作后松开。也可从工具结果、文档阅读器或原生文件预览创建 Topic。
|
|
87
|
-
2. “自由提问”把选文加入当前选中的未归档 Topic;未选中或当前 Topic 已归档时新建。其他内置动作默认新建,自定义动作可选择目标。只在当前来源会话内追加,保留已有草稿、模型和权限。来源地址与选文显示为可移除附件;加号仅选择实际图片或文件,不生成引用。
|
|
88
|
-
3. 检查问题、引用、权限和模型,点击发送或按 Enter。Shift + Enter 换行;输入法组词期间 Enter 不发送。
|
|
89
|
-
|
|
90
|
-
创建 Topic、选择轮盘动作、切换模型、引用板书均不调用模型。轮盘动作直接进入 Citer 输入框,在同一处编辑问题、引用和模型,再手动发送。自定义动作追加到已有 Topic 时,其提示词追加在已有草稿后。模式提示词和发送时的引用写入 Topic 原生日志。
|
|
91
|
-
|
|
92
|
-
未发送的来源附件被删除后,来源读取工具会拒绝读取该来源;新 Topic 不隐式复制来源历史。已经发送的附件属于历史消息,删除后续草稿中的副本不会撤回历史上下文。草稿的文字、真实引用和附件内容保存在所属 Topic 的 `draft/` 目录,关闭面板、切换 Topic、刷新和重启后恢复;恢复本身不发送消息。模型、思考强度和权限以宿主保存的状态为准。后台窗口的轮询不改写上次使用的 Topic;导航恢复按主动操作记录。
|
|
93
|
-
|
|
94
|
-
草稿不写入模型日志,也不授予来源读取权限。宿主确认接收后,只清除本次提交内容,发送期间新增的编辑保留。发送失败保留草稿;响应丢失时显示待核对状态,用户核对或明确重试后才继续。并发保存冲突保留本地输入并提示选择版本;明确保留本窗口时,会重新保存被另一窗口移除、但本窗口仍持有的附件;缺失或损坏附件明确报错。永久删除 Topic 同时删除其草稿。旧 Desktop 遇到较新的会话日志格式时拒绝写入,须回到新版 Web 继续,不手工降级日志。
|
|
95
|
-
|
|
96
|
-
## 权限、输入与队列
|
|
40
|
+
安装或升级后重启 DSH 并刷新页面。不要用 `dsh plugin allow-version` 强行加载与宿主版本不匹配的插件。同一个 DSH 主目录不要同时运行两个宿主进程。
|
|
97
41
|
|
|
98
|
-
|
|
42
|
+
## 从一个疑问开始
|
|
99
43
|
|
|
100
|
-
|
|
44
|
+
例如,Agent 修改了程序,你想知道"为什么这段异步保存逻辑会影响输入?"
|
|
101
45
|
|
|
102
|
-
|
|
46
|
+
1. 在主对话、工具结果或文档中选中相关内容,按住右键打开轮盘,选择"自由提问"或"解释这段"。
|
|
47
|
+
2. Citer 打开草稿,来源地址和选文作为可移除的附件。写下问题、选择模型,再手动发送。
|
|
48
|
+
3. 围绕这段材料继续追问;需要时让模型在小黑板上画出流程,或整理成学习卡。
|
|
49
|
+
4. 回到原任务,用代码、工具结果或一次小实验检查自己的理解。
|
|
103
50
|
|
|
104
|
-
|
|
51
|
+
创建 Topic 或选择轮盘动作只会准备草稿,模型只在你手动发送后运行。解释和板书仍可能出错;它们帮助你理解和检查,不代替事实证据。
|
|
105
52
|
|
|
106
|
-
|
|
53
|
+
## 功能
|
|
107
54
|
|
|
108
|
-
|
|
55
|
+
| 你想做什么 | CiteCiter 提供什么 |
|
|
56
|
+
| --- | --- |
|
|
57
|
+
| 理解一段回答、代码或工具结果 | 带来源引用的独立 Topic,追问不会写入主对话 |
|
|
58
|
+
| 看懂关系与过程 | 支持 Markdown、公式、表格、SVG、图片和隔离 HTML 的小黑板;支持视觉的模型可以查看渲染后的板书并自行修正 |
|
|
59
|
+
| 留下可回看的理解 | 可导出、可修订的学习卡,文字与代码示例分开展示 |
|
|
60
|
+
| 围绕真实文件讨论 | 文件与图片附件、`.txt` / `.md` 文档阅读器、原生文件预览中的"CiteCiter 学习"入口 |
|
|
61
|
+
| 从理解继续动手 | 复用 DSH 的模型、工具、审批、权限、排队和插话;新 Topic 默认只读 |
|
|
62
|
+
| 暂停后继续 | 草稿(文字、引用、附件)和未提交的问答自动保存,切换、刷新或重启后恢复,不会自动发送 |
|
|
109
63
|
|
|
110
|
-
|
|
64
|
+
## 使用说明
|
|
111
65
|
|
|
112
|
-
|
|
66
|
+
**轮盘与引用。** 选中文字后按住右键打开八格轮盘,移向动作后松开;短按右键可点击选择,Shift + 右键保留浏览器菜单,方向键、数字 1–8 和 Enter 也可选择,Esc 取消。"自由提问"把选文加入当前选中的未归档 Topic,没有可用 Topic 时新建;其他动作默认新建。轮盘的八个槽位、提示词、默认模型和打开位置都可以在设置中修改。
|
|
113
67
|
|
|
114
|
-
|
|
68
|
+
**输入。** 输入框依次提供附件、权限模式、模型与思考强度、发送。Enter 发送,Shift + Enter 换行,输入法组词时 Enter 不会发送。生成过程中 Enter 跟随 DSH 的排队/插话设置,Ctrl + Enter 临时使用另一种方式。可以从附件菜单选择文件、粘贴图片,或把文件拖到 Citer 面板上。
|
|
115
69
|
|
|
116
|
-
|
|
70
|
+
**草稿。** 草稿在后台静默保存。多个窗口编辑同一个 Topic 时,各自的修改会自动合并;同一处有冲突时,以正在输入的窗口为准。发送成功后只清除已发送的部分,发送期间新写的内容会保留。
|
|
117
71
|
|
|
118
|
-
|
|
72
|
+
**学习路线与学习卡。** 学习路线默认关闭;开启后,模型会根据问题用 DSH 待办安排讲解步骤。学习卡可以随时单独请求,生成前模型会核对结论、条件和计算,但自查不能保证正确。主动回忆默认关闭,开启后学习卡先显示自测问题。
|
|
119
73
|
|
|
120
|
-
|
|
74
|
+
**图像。** 生成和查看图片的工具由 [Codex Connect](https://github.com/franksong2702/dsh-codex-connect) 等宿主插件提供,需要在对应的 Profile 中单独开启。
|
|
121
75
|
|
|
122
|
-
|
|
76
|
+
## 权限与数据
|
|
123
77
|
|
|
124
|
-
|
|
78
|
+
新 Topic 默认**只读**,即使来源会话拥有更高权限。只有你在输入框中选择其他权限模式,或在设置里修改新 Topic 的默认权限后,Topic 才能修改工作区;DSH 的审批和沙箱规则照常生效。
|
|
125
79
|
|
|
126
|
-
|
|
80
|
+
Topic 只出现在 Citer 的列表里,不会出现在 DSH 的会话列表中。双击标题或按 F2 重命名;归档的 Topic 在你再次发送消息后自动恢复。永久删除需要输入完整的 Session ID,只删除这个 Topic 自己的记录、草稿和附件。
|
|
127
81
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
宽窗口并排显示来源和 Citer,可拖动分隔线调整比例。拖动标题栏离开侧边后变为悬浮窗;拖回窗口右缘释放后停靠。空间不足时打开原生文件详情,Citer 暂时收起;关闭详情后恢复同一 Topic、草稿和模型。主动点击 Citer 入口或从文件选文时,可切回 Citer 独立页面,左上角返回键释放原界面。没有详情时,窄屏直接使用此独立页面,不把学习栏放到下方。关闭面板恢复宿主空间;Desktop 标题栏保留。
|
|
131
|
-
|
|
132
|
-
菜单和面板使用半透明背景、背景模糊与短动效,支持宿主主题和系统减少动态效果设置。布局适配集中在独立模块中,未知宿主结构不会强制覆盖主界面。
|
|
133
|
-
|
|
134
|
-
## 会话存储与迁移
|
|
135
|
-
|
|
136
|
-
Citer 的 Topic 只出现在 Citer 列表。DSH 的会话磁盘索引不递归扫描 Topic 子目录;插件独立维护实时成员和导航,原生发送服务按身份访问当前 Topic。
|
|
82
|
+
CiteCiter 的数据保存在每个来源会话的目录中:
|
|
137
83
|
|
|
138
84
|
```text
|
|
139
|
-
.dsh/sessions
|
|
140
|
-
├── session.v4.jsonl[.zstd]
|
|
85
|
+
.dsh/sessions/<workspace>/<sourceSession>/
|
|
86
|
+
├── session.v4.jsonl[.zstd] DSH 管理的主会话(Citer 不会改动)
|
|
141
87
|
└── citeciter/
|
|
142
|
-
├── owner.json
|
|
143
|
-
├── <
|
|
144
|
-
│ ├── topic.json
|
|
145
|
-
│ ├── draft/
|
|
146
|
-
│
|
|
147
|
-
└──
|
|
88
|
+
├── owner.json 目录归属
|
|
89
|
+
├── <topicNumber>/
|
|
90
|
+
│ ├── topic.json Topic 信息
|
|
91
|
+
│ ├── draft/ 未发送的文字、引用和附件
|
|
92
|
+
│ ├── question-drafts/ 未提交的问答
|
|
93
|
+
│ └── sessions/ Topic 自己的会话日志
|
|
94
|
+
└── deleted/ 删除记录(只含身份,不含内容)
|
|
148
95
|
```
|
|
149
96
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
alpha 的当前格式为 v4。旧 v3 文件由 DSH 读取及迁移,Citer 不直接改写事件序号或 `seedLength`。仅存在历史日志时仍按来源实体目录定位 Citer 数据。
|
|
153
|
-
|
|
154
|
-
## 文档与原生预览
|
|
155
|
-
|
|
156
|
-
Citer 打开时,从右上角“…” → “文档阅读”进入阅读器;关闭 Citer 后保留独立读书入口,避免悬浮按钮遮挡输入区。
|
|
157
|
-
|
|
158
|
-
点击 📖 导入 `.txt`、`.md`、`.markdown`。阅读器保存全文,每页最多 500 KiB UTF-8 文本,导入最多 2,000,000 字符。翻页清除旧选区、保留问题;选文并准备草稿后自动收起阅读器。文档地址和选文分别作为待发送附件,可独立删除。
|
|
159
|
-
|
|
160
|
-
文档工具返回 UTF-16 总长度与实际读取区间。搜索结果提供可用终点;读取结果区分请求终点、实际终点和后续内容,续读使用 nextFromOffset。未知终点可省略 throughOffset;越界错误给出具体合法范围,不静默截断。
|
|
161
|
-
|
|
162
|
-
安装了可选 documentPreviews 服务时,在原生文件预览中选择“CiteCiter 学习”。宿主读取文件,Citer 提供可选取的源文本、分页与引用;创建 Topic 时保存完整快照,文件之后的变化不会改写该快照。单个快照最多 8 MiB / 2,000,000 字符,必须携带来源 Session 地址。
|
|
163
|
-
|
|
164
|
-
本分支按子包 `0.1.7-rc.2` 的公开类型编译,服务仍为可选。缺少服务时,对话轮盘与独立阅读器仍可用。学习查看方式不提供 PDF 文本层、Word 解析或 OCR。不同文档可追加到同一 Topic;模型按已发送的文档地址选择读取对象。
|
|
165
|
-
|
|
166
|
-
## 轮盘设置
|
|
167
|
-
|
|
168
|
-
在“设置 → CiteCiter”选择触发键、默认模型和八个槽位。默认槽位为自由提问、解释这段、找错误、翻译、定量板书、总结卡片、两个空槽;每槽可设置提示词、输入提示、引用目标、内容方式及默认位置。槽位更改需点击保存。
|
|
169
|
-
|
|
170
|
-
右键短按保留可点击轮盘,Shift + 右键使用原生菜单;可用方向键、数字 1–8 和 Enter 选择。中心、空槽、轮盘外、Esc、来源切换或轮盘失焦取消动作。没有额外的补充问题弹窗;草稿由 Citer 输入框统一管理。
|
|
97
|
+
0.8 之前版本创建的 Topic 会在启动时自动迁移到这个目录,原始日志保留不动。
|
|
171
98
|
|
|
172
|
-
##
|
|
99
|
+
## 已知问题
|
|
173
100
|
|
|
174
|
-
|
|
101
|
+
- Windows 上,只读模式下的 PowerShell 可能报语言模式错误或输出中文乱码。这是 DSH 执行器在只读沙箱中的限制,CiteCiter 不会为此放宽权限。
|
|
102
|
+
- 官方桌面版重启后,仍连接着旧后台的其他浏览器标签页可能白屏,刷新即可恢复;停用 CiteCiter 时同样会出现。
|
|
103
|
+
- 在同一个浏览器地址上先后使用不同版本的 DSH,宿主自己保存的草稿格式可能不兼容,导致主对话无法显示;不同版本请使用不同的地址或端口。
|
|
104
|
+
- 插件主要在 Windows 上测试;Linux 与 macOS 未经系统测试,遇到问题欢迎反馈。
|
|
175
105
|
|
|
176
|
-
|
|
106
|
+
## 为什么做 CiteCiter
|
|
177
107
|
|
|
178
|
-
|
|
108
|
+
实践通常同时产生两样东西:成果和能力。我们通过尝试、犯错、比较方案和验证,逐渐形成判断。AI 可以接手越来越多的执行,却不会自动把相应的理解交给使用者,任务完成与人的成长可能因此分离。
|
|
179
109
|
|
|
180
|
-
|
|
110
|
+
CiteCiter 尝试把真实的 AI 工作过程变成可引用、可追问、可检验的学习材料。从眼前的一个疑问出发,理解原理、查看证据,再带着新的认识继续工作。即使把执行交给 Agent,人仍需要提出目标、理解关键条件、判断结果是否适用,并在出现异常时接管。
|
|
181
111
|
|
|
182
|
-
|
|
112
|
+
## 反馈
|
|
183
113
|
|
|
184
|
-
|
|
114
|
+
欢迎带着"Agent 已经完成了,但我还讲不清"的任务来[反馈](https://github.com/kirkchinese/CiteCiter/issues)。请写明 DSH 和插件版本,以及卡在安装、引用追问还是理解回答。贴材料前请移除密钥和私人内容。
|
|
185
115
|
|
|
186
|
-
|
|
116
|
+
开发说明见 [CONTRIBUTING.zh.md](https://github.com/kirkchinese/CiteCiter/blob/v0.9.0-beta.1/CONTRIBUTING.zh.md),产品规则见 [docs/product.zh.md](https://github.com/kirkchinese/CiteCiter/blob/v0.9.0-beta.1/docs/product.zh.md)。同作者的 [Claude2DSH](https://github.com/kirkchinese/claude2dsh) 用于在 Claude Code 与 DSH 之间迁移会话和资产。
|
|
187
117
|
|
|
188
118
|
MIT License.
|