@lemoncat7/dsh-knowledge 0.6.0 → 0.7.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 CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  `dsh-knowledge` 是面向 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 的知识库插件。它不修改 DSH Agent Loop,同一个插件既能使用本地 SQLite,也能连接远程中央知识库。
8
8
 
9
- 首个正式版本 `0.6.0` 已实现可部署的多知识库、按需检索工具与文档型 Web 管理台:
9
+ 正式版本 `0.7.0` 提供可部署的多知识库、按需检索工具、本地与远程中央服务,以及文档型 Web 管理台:
10
10
 
11
11
  - 回答完成后同步调用 DSH 当前模型判断是否产生知识,并在回答下方显示逐库回写结果。
12
12
  - 知识标题、正文、自然语言标签和提取理由默认跟随本轮用户语言;代码、命令和技术标识保持原样。
@@ -21,13 +21,16 @@
21
21
  - SQLite WAL、FTS5 全文搜索、原子事务、完整版本历史和幂等提取任务。
22
22
  - 挂载库的名称和描述作为轻量动态目录注入,不直接塞入文档正文。
23
23
  - 每条新用户消息默认只主动预取 3 条短摘要;模型可按需调用只读的 `knowledge_search` 与 `knowledge_read` 工具继续检索。
24
+ - 用户明确要求时,模型可调用 `knowledge_base_create` 和 `knowledge_base_update` 创建或修改知识库;工具内部跟随当前 Provider 自动写入本地 SQLite 或远程中央服务,模型不传也不猜存储位置。
25
+ - 创建或修改工具不会自动挂载知识库,也不会回退、双写或同步到另一端;结果会明确返回实际写入的 `local` 或 `remote`。
24
26
  - 搜索和读取由服务端按当前会话挂载、项目范围及包含/排除标签强制限权,读取句柄带签名且仅限当前会话。
25
27
  - 本地与远程 Provider 使用同一接口;远程模式不做隐式双向同步。
26
28
  - DSH“设置 → 插件”提供“知识库连接”卡片,可选择本地来源或填写中央服务地址和只写客户端令牌,保存后实时验证并切换 Provider。
27
29
  - Bearer Token 仅保存 SHA-256 摘要,支持 `read / propose / write / admin` 权限及吊销。
28
30
  - 认证 HTTP API,可作为其他 DSH 客户端和未来桌面端的中央知识库。
29
31
  - Apple 风格三栏文档界面,按知识库浏览自动整理的 `README.md`、`facts.md`、`decisions.md` 等文档。
30
- - 知识库栏和文档栏可拖拽或用方向键调宽;DSH 内的管理窗口可缩放、最大化和还原。
32
+ - 知识库管理拆分为“知识库”和“项目与会话挂载”两个工作区;支持按名称、描述、标签和模型即时搜索,避免知识库较多时逐张翻找。
33
+ - 知识库栏和文档栏可拖拽或用方向键调宽;文档标题栏提供稳定的显示开关,可直接收起和展开两个栏位;DSH 内的管理窗口可缩放、最大化和还原。
31
34
  - 随插件安装的响应式 Web 管理台,覆盖概览、文档浏览、条目维护、AI 候选审核和客户端令牌管理。
32
35
  - DSH 浏览器端插件:在左侧工作区下方显示“知识库”,并在当前页面内打开管理面板。
33
36
  - 明暗主题、键盘操作、窄屏布局以及不依赖颜色的状态标签。
@@ -43,13 +46,13 @@ dsh plugin --profile web add @lemoncat7/dsh-knowledge
43
46
  需要固定版本时:
44
47
 
45
48
  ```bash
46
- dsh plugin --profile web add @lemoncat7/dsh-knowledge@0.6.0
49
+ dsh plugin --profile web add @lemoncat7/dsh-knowledge@0.7.0
47
50
  ```
48
51
 
49
52
  也可以从 [GitHub Release](https://github.com/lemoncat7/dsh-knowledge/releases/latest) 下载完整预构建包后安装:
50
53
 
51
54
  ```bash
52
- dsh plugin --profile web add ./lemoncat7-dsh-knowledge-0.6.0.tgz
55
+ dsh plugin --profile web add ./lemoncat7-dsh-knowledge-0.7.0.tgz
53
56
  ```
54
57
 
55
58
  卸载:
package/lib/tools.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { KnowledgeProvider } from './provider.js';
2
2
  import { KnowledgeHandleCodec } from './retrieval.js';
3
3
  import type { RuntimeContextLike } from './runtime.js';
4
- /** Register read-only retrieval tools. Their effective base scope is resolved from the calling Agent. */
4
+ /** Register scoped retrieval tools and explicit knowledge-base management tools. */
5
5
  export declare function registerKnowledgeTools(ctx: RuntimeContextLike, provider: KnowledgeProvider, codec: KnowledgeHandleCodec): void;
6
6
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAGL,oBAAoB,EAKrB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAa,kBAAkB,EAA0C,MAAM,cAAc,CAAA;AAOzG,yGAAyG;AACzG,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,kBAAkB,EACvB,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,EAAE,oBAAoB,GAC1B,IAAI,CAGN"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEtD,OAAO,EAGL,oBAAoB,EAKrB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAa,kBAAkB,EAA0C,MAAM,cAAc,CAAA;AAOzG,oFAAoF;AACpF,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,kBAAkB,EACvB,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,EAAE,oBAAoB,GAC1B,IAAI,CAKN"}
package/lib/tools.js CHANGED
@@ -1,12 +1,106 @@
1
+ import { normalizeTags } from './domain.js';
1
2
  import { formatKnowledgeEntry, formatSearchResults, readMountedKnowledge, resolveRecallMounts, searchMountedKnowledge, selectMounts, } from './retrieval.js';
2
3
  const textOutput = {
3
4
  schema: { type: 'string' },
4
5
  render: (_args, value) => [{ type: 'text', text: String(value) }],
5
6
  };
6
- /** Register read-only retrieval tools. Their effective base scope is resolved from the calling Agent. */
7
+ /** Register scoped retrieval tools and explicit knowledge-base management tools. */
7
8
  export function registerKnowledgeTools(ctx, provider, codec) {
8
9
  ctx.tools.register(searchTool(provider, codec));
9
10
  ctx.tools.register(readTool(provider, codec));
11
+ ctx.tools.register(createKnowledgeBaseTool(provider));
12
+ ctx.tools.register(updateKnowledgeBaseTool(provider));
13
+ }
14
+ function createKnowledgeBaseTool(provider) {
15
+ return {
16
+ name: 'knowledge_base_create',
17
+ description: 'Create a knowledge base only when the user explicitly asks. The tool always uses the currently active knowledge provider and reports whether it created the base in local or remote storage; it never guesses, falls back, copies, or synchronizes. Creating a base does not mount it to the current project or session.',
18
+ parameters: {
19
+ type: 'object',
20
+ additionalProperties: false,
21
+ properties: {
22
+ name: { type: 'string', description: 'Knowledge-base name, 1-100 characters.' },
23
+ description: { type: 'string', description: 'Routing description used to decide whether conversations belong in this base, at most 2000 characters.' },
24
+ defaultTags: { type: 'array', items: { type: 'string' }, maxItems: 32 },
25
+ extractionInstructions: { type: 'string', description: 'Additional write-back rules, at most 4000 characters.' },
26
+ writebackProvider: { type: 'string', description: 'Optional dedicated write-back provider; must be supplied with writebackModel.' },
27
+ writebackModel: { type: 'string', description: 'Optional dedicated write-back model; must be supplied with writebackProvider.' },
28
+ },
29
+ required: ['name'],
30
+ },
31
+ output: textOutput,
32
+ async execute(raw, exec) {
33
+ requireAgent(exec);
34
+ const args = asRecord(raw);
35
+ const writeback = parseWritebackRoute(args);
36
+ const draft = {
37
+ name: requireNonEmptyString(args.name, 'name', 100),
38
+ description: optionalTrimmedString(args.description, 'description', 2000) ?? '',
39
+ defaultTags: normalizeTags(optionalStringArray(args.defaultTags, 'defaultTags', 32, 100)),
40
+ extractionInstructions: optionalTrimmedString(args.extractionInstructions, 'extractionInstructions', 4000) ?? '',
41
+ ...writeback,
42
+ };
43
+ const storage = provider.mode;
44
+ const base = await provider.createKnowledgeBase(draft, exec.signal);
45
+ return formatKnowledgeBaseMutation(storage, 'created', base);
46
+ },
47
+ };
48
+ }
49
+ function updateKnowledgeBaseTool(provider) {
50
+ return {
51
+ name: 'knowledge_base_update',
52
+ description: 'Modify an existing knowledge base only when the user explicitly asks. Identify it by exact id or name. The tool always updates the currently active local or remote provider and reports the actual destination; it never moves or synchronizes the base and does not change project/session mounts.',
53
+ parameters: {
54
+ type: 'object',
55
+ additionalProperties: false,
56
+ properties: {
57
+ base: { type: 'string', description: 'Exact knowledge-base id or name.' },
58
+ name: { type: 'string', description: 'New name, 1-100 characters.' },
59
+ description: { type: 'string', description: 'New routing description; an empty string clears it.' },
60
+ defaultTags: { type: 'array', items: { type: 'string' }, maxItems: 32, description: 'Replacement default-tag list.' },
61
+ extractionInstructions: { type: 'string', description: 'New write-back rules; an empty string clears them.' },
62
+ writebackProvider: { type: 'string', description: 'Dedicated write-back provider; must be supplied with writebackModel.' },
63
+ writebackModel: { type: 'string', description: 'Dedicated write-back model; must be supplied with writebackProvider.' },
64
+ clearWritebackModel: { type: 'boolean', description: 'Clear the dedicated route and follow the current conversation model.' },
65
+ },
66
+ required: ['base'],
67
+ },
68
+ output: textOutput,
69
+ async execute(raw, exec) {
70
+ requireAgent(exec);
71
+ const args = asRecord(raw);
72
+ const requestedBase = requireNonEmptyString(args.base, 'base', 200);
73
+ const storage = provider.mode;
74
+ const base = await resolveKnowledgeBase(provider, requestedBase, exec.signal);
75
+ const patch = {};
76
+ if (args.name !== undefined)
77
+ patch.name = requireNonEmptyString(args.name, 'name', 100);
78
+ if (args.description !== undefined)
79
+ patch.description = optionalTrimmedString(args.description, 'description', 2000);
80
+ if (args.defaultTags !== undefined)
81
+ patch.defaultTags = normalizeTags(optionalStringArray(args.defaultTags, 'defaultTags', 32, 100));
82
+ if (args.extractionInstructions !== undefined) {
83
+ patch.extractionInstructions = optionalTrimmedString(args.extractionInstructions, 'extractionInstructions', 4000);
84
+ }
85
+ const clearWritebackModel = optionalBoolean(args.clearWritebackModel, 'clearWritebackModel') ?? false;
86
+ if (clearWritebackModel && (args.writebackProvider !== undefined || args.writebackModel !== undefined)) {
87
+ throw new Error('clearWritebackModel cannot be combined with writebackProvider or writebackModel');
88
+ }
89
+ if (clearWritebackModel) {
90
+ patch.writebackProvider = null;
91
+ patch.writebackModel = null;
92
+ }
93
+ else if (args.writebackProvider !== undefined || args.writebackModel !== undefined) {
94
+ Object.assign(patch, parseWritebackRoute(args));
95
+ }
96
+ if (Object.keys(patch).length === 0)
97
+ throw new Error('knowledge_base_update requires at least one field to modify');
98
+ if (provider.mode !== storage)
99
+ throw new Error('the active knowledge storage changed while resolving the base; retry the update');
100
+ const updated = await provider.patchKnowledgeBase(base.id, patch, exec.signal);
101
+ return formatKnowledgeBaseMutation(storage, 'updated', updated);
102
+ },
103
+ };
10
104
  }
11
105
  function searchTool(provider, codec) {
12
106
  return {
@@ -65,6 +159,35 @@ function readTool(provider, codec) {
65
159
  },
66
160
  };
67
161
  }
162
+ async function resolveKnowledgeBase(provider, requested, signal) {
163
+ const folded = requested.toLocaleLowerCase('zh-CN');
164
+ const matches = (await provider.listKnowledgeBases(signal)).filter(base => base.id === requested
165
+ || base.name.toLocaleLowerCase('zh-CN') === folded);
166
+ if (matches.length === 0)
167
+ throw new Error(`knowledge base ${JSON.stringify(requested)} was not found in the active ${provider.mode} storage`);
168
+ if (matches.length > 1)
169
+ throw new Error(`knowledge base ${JSON.stringify(requested)} is ambiguous; use its exact id`);
170
+ return matches[0];
171
+ }
172
+ function parseWritebackRoute(args) {
173
+ const writebackProvider = optionalString(args.writebackProvider, 'writebackProvider', 100);
174
+ const writebackModel = optionalString(args.writebackModel, 'writebackModel', 200);
175
+ if ((writebackProvider === undefined) !== (writebackModel === undefined)) {
176
+ throw new Error('writebackProvider and writebackModel must be supplied together');
177
+ }
178
+ return writebackProvider === undefined || writebackModel === undefined ? {} : { writebackProvider, writebackModel };
179
+ }
180
+ function formatKnowledgeBaseMutation(storage, operation, base) {
181
+ return JSON.stringify({
182
+ storage,
183
+ operation,
184
+ knowledgeBase: base,
185
+ mountsChanged: false,
186
+ note: storage === 'remote'
187
+ ? 'The central knowledge service was modified. No local copy was created or synchronized.'
188
+ : 'The current DSH local knowledge database was modified. No remote copy was created or synchronized.',
189
+ }, null, 2);
190
+ }
68
191
  function requireAgent(exec) {
69
192
  if (exec.agent === undefined)
70
193
  throw new Error('knowledge tools require a calling DSH agent');
@@ -96,4 +219,28 @@ function optionalInteger(value, name, min, max) {
96
219
  }
97
220
  return Number(value);
98
221
  }
222
+ function optionalTrimmedString(value, name, maxLength) {
223
+ if (value === undefined)
224
+ return undefined;
225
+ if (typeof value !== 'string')
226
+ throw new Error(`${name} must be a string`);
227
+ const result = value.trim();
228
+ if (result.length > maxLength)
229
+ throw new Error(`${name} must contain at most ${maxLength} characters`);
230
+ return result;
231
+ }
232
+ function optionalBoolean(value, name) {
233
+ if (value === undefined)
234
+ return undefined;
235
+ if (typeof value !== 'boolean')
236
+ throw new Error(`${name} must be a boolean`);
237
+ return value;
238
+ }
239
+ function optionalStringArray(value, name, maxItems, maxLength) {
240
+ if (value === undefined)
241
+ return [];
242
+ if (!Array.isArray(value) || value.length > maxItems)
243
+ throw new Error(`${name} must be an array with at most ${maxItems} items`);
244
+ return value.map((item, index) => requireNonEmptyString(item, `${name}[${index}]`, maxLength));
245
+ }
99
246
  //# sourceMappingURL=tools.js.map
package/lib/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lemoncat7/dsh-knowledge",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Local and remote knowledge bases for DeepSeek Harness, with scoped recall, controlled write-back, and a Web management console",
5
5
  "keywords": [
6
6
  "deepseek-harness",