@lemoncat7/dsh-knowledge 0.7.2 → 1.0.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 (76) hide show
  1. package/README.md +16 -15
  2. package/cordis.patch.yml +0 -1
  3. package/docs/architecture.md +37 -19
  4. package/docs/document-knowledge-design.zh-CN.md +2 -2
  5. package/docs/requirements.md +9 -5
  6. package/lib/api.js +5 -1
  7. package/lib/api.js.map +1 -1
  8. package/lib/client.d.ts +6 -0
  9. package/lib/client.d.ts.map +1 -0
  10. package/lib/client.js +210 -170
  11. package/lib/client.js.map +3 -3
  12. package/lib/config.d.ts +2 -0
  13. package/lib/config.d.ts.map +1 -1
  14. package/lib/config.js +5 -3
  15. package/lib/config.js.map +1 -1
  16. package/lib/constants.d.ts +3 -0
  17. package/lib/constants.d.ts.map +1 -0
  18. package/lib/constants.js +3 -0
  19. package/lib/constants.js.map +1 -0
  20. package/lib/documents/markdown.d.ts +33 -0
  21. package/lib/documents/markdown.d.ts.map +1 -0
  22. package/lib/documents/markdown.js +91 -0
  23. package/lib/documents/markdown.js.map +1 -0
  24. package/lib/documents/path.d.ts +4 -0
  25. package/lib/documents/path.d.ts.map +1 -0
  26. package/lib/documents/path.js +11 -0
  27. package/lib/documents/path.js.map +1 -0
  28. package/lib/documents/store.d.ts +32 -0
  29. package/lib/documents/store.d.ts.map +1 -0
  30. package/lib/documents/store.js +272 -0
  31. package/lib/documents/store.js.map +1 -0
  32. package/lib/domain.d.ts +2 -0
  33. package/lib/domain.d.ts.map +1 -1
  34. package/lib/domain.js +6 -0
  35. package/lib/domain.js.map +1 -1
  36. package/lib/extraction.d.ts.map +1 -1
  37. package/lib/extraction.js +210 -73
  38. package/lib/extraction.js.map +1 -1
  39. package/lib/index.d.ts +3 -2
  40. package/lib/index.d.ts.map +1 -1
  41. package/lib/index.js +9 -4
  42. package/lib/index.js.map +1 -1
  43. package/lib/local-provider.d.ts +2 -0
  44. package/lib/local-provider.d.ts.map +1 -1
  45. package/lib/local-provider.js +145 -79
  46. package/lib/local-provider.js.map +1 -1
  47. package/lib/recall.d.ts +7 -2
  48. package/lib/recall.d.ts.map +1 -1
  49. package/lib/recall.js +46 -30
  50. package/lib/recall.js.map +1 -1
  51. package/lib/retrieval.d.ts +14 -4
  52. package/lib/retrieval.d.ts.map +1 -1
  53. package/lib/retrieval.js +133 -25
  54. package/lib/retrieval.js.map +1 -1
  55. package/lib/runtime.d.ts +5 -0
  56. package/lib/runtime.d.ts.map +1 -1
  57. package/lib/runtime.js.map +1 -1
  58. package/lib/theme-bridge.d.ts +23 -0
  59. package/lib/theme-bridge.d.ts.map +1 -0
  60. package/lib/theme-bridge.js +72 -0
  61. package/lib/theme-bridge.js.map +1 -0
  62. package/lib/tools.d.ts.map +1 -1
  63. package/lib/tools.js +165 -7
  64. package/lib/tools.js.map +1 -1
  65. package/lib/web-markdown-preview.d.ts +3 -0
  66. package/lib/web-markdown-preview.d.ts.map +1 -0
  67. package/lib/web-markdown-preview.js +24 -0
  68. package/lib/web-markdown-preview.js.map +1 -0
  69. package/lib/web.d.ts.map +1 -1
  70. package/lib/web.js +1 -0
  71. package/lib/web.js.map +1 -1
  72. package/package.json +16 -3
  73. package/web/app.js +326 -359
  74. package/web/index.html +1 -0
  75. package/web/markdown-preview.js +72 -0
  76. package/web/styles.css +177 -200
package/lib/tools.js CHANGED
@@ -1,16 +1,136 @@
1
- import { normalizeTags } from './domain.js';
2
- import { formatKnowledgeEntry, formatSearchResults, readMountedKnowledge, resolveRecallMounts, searchMountedKnowledge, selectMounts, } from './retrieval.js';
1
+ import { isKnowledgeType, normalizeTags, } from './domain.js';
2
+ import { formatKnowledgeEntry, formatKnowledgeBaseMatches, formatSearchResults, readMountedKnowledge, resolveKnowledgeMounts, resolveRecallMounts, searchMountedKnowledgeBases, searchMountedKnowledge, selectMounts, } from './retrieval.js';
3
3
  const textOutput = {
4
4
  schema: { type: 'string' },
5
5
  render: (_args, value) => [{ type: 'text', text: String(value) }],
6
6
  };
7
7
  /** Register scoped retrieval tools and explicit knowledge-base management tools. */
8
8
  export function registerKnowledgeTools(ctx, provider, codec) {
9
+ ctx.tools.register(searchKnowledgeBaseTool(provider));
9
10
  ctx.tools.register(searchTool(provider, codec));
10
11
  ctx.tools.register(readTool(provider, codec));
12
+ ctx.tools.register(writeTool(provider, codec));
11
13
  ctx.tools.register(createKnowledgeBaseTool(provider));
12
14
  ctx.tools.register(updateKnowledgeBaseTool(provider));
13
15
  }
16
+ function writeTool(provider, codec) {
17
+ return {
18
+ name: 'knowledge_write',
19
+ description: 'Persist durable knowledge as a topic document in a writable knowledge base mounted in THIS session. Related findings belong in sections of the same document, never one document per fact. Search first and pass the matching document handle; send only new Markdown material, never a rewritten full document. Create only when no related document exists, using a stable subject title and an exact mounted base id or name. The tool enforces scope, routes to the active local or remote provider, and applies audit, deduplication, merge, version, and conflict policy.',
20
+ parameters: {
21
+ type: 'object',
22
+ additionalProperties: false,
23
+ properties: {
24
+ handle: { type: 'string', description: 'For an update: exact signed handle returned by knowledge_search.' },
25
+ base: { type: 'string', description: 'For a new document: exact writable mounted knowledge-base id or name. Optional only when exactly one writable base is mounted.' },
26
+ title: { type: 'string', description: 'Stable subject document title, not an individual fact title. For a GitHub repository prefer owner/repository. Required only for a genuinely new document.' },
27
+ content: { type: 'string', description: 'Only the NEW Markdown sections or paragraphs for the topic document. Group related findings, and do not repeat existing content or include session narration.' },
28
+ type: { type: 'string', enum: ['preference', 'fact', 'decision', 'procedure', 'lesson'], description: 'Knowledge type. Required for new knowledge; existing type is preserved on update.' },
29
+ tags: { type: 'array', items: { type: 'string' }, maxItems: 32 },
30
+ scope: { type: 'string', enum: ['global', 'project'], description: 'Scope for new knowledge. Project uses the current workspace; default is global.' },
31
+ },
32
+ required: ['content'],
33
+ },
34
+ output: textOutput,
35
+ isConcurrencySafe: () => false,
36
+ async execute(raw, exec) {
37
+ const agent = requireAgent(exec);
38
+ const args = asRecord(raw);
39
+ const content = requireNonEmptyString(args.content, 'content', 50_000);
40
+ const handle = optionalString(args.handle, 'handle', 4096);
41
+ const allMounts = await resolveKnowledgeMounts(provider, agent, exec.signal);
42
+ const writableMounts = allMounts.filter(mount => mount.writeMode !== 'none');
43
+ if (writableMounts.length === 0)
44
+ throw new Error('no writable knowledge base is mounted in this session');
45
+ let mount;
46
+ let targetId;
47
+ let current = undefined;
48
+ if (handle !== undefined) {
49
+ const resolved = await readMountedKnowledge(provider, agent, handle, codec, exec.signal);
50
+ mount = resolved.mount;
51
+ current = resolved.entry;
52
+ targetId = resolved.entry.id;
53
+ if (mount.writeMode === 'none')
54
+ throw new Error('the knowledge base addressed by this handle is mounted read-only');
55
+ }
56
+ else {
57
+ mount = selectWritableMount(writableMounts, optionalString(args.base, 'base', 200));
58
+ }
59
+ const scope = current?.scope ?? parseWriteScope(args.scope, agent.session.header.cwd);
60
+ const type = current?.type ?? parseWriteType(args.type);
61
+ const title = current?.title ?? requireNonEmptyString(args.title, 'title', 200);
62
+ const turn = currentTurn(agent);
63
+ const draft = {
64
+ knowledgeBaseId: mount.knowledgeBaseId,
65
+ title,
66
+ body: content,
67
+ type,
68
+ tags: normalizeTags([
69
+ ...mount.base.defaultTags,
70
+ ...mount.includeTags,
71
+ ...optionalStringArray(args.tags, 'tags', 32, 100),
72
+ ]).filter(tag => !mount.excludeTags.includes(tag)),
73
+ scope,
74
+ confidence: .95,
75
+ source: {
76
+ sessionId: agent.session.id,
77
+ ...turn === undefined ? {} : { turn },
78
+ },
79
+ };
80
+ const proposal = {
81
+ action: targetId === undefined ? 'create' : 'update',
82
+ ...targetId === undefined ? {} : { targetId },
83
+ draft,
84
+ reason: 'Persisted through the scoped knowledge_write tool.',
85
+ };
86
+ const sourceKey = `knowledge-write:${agent.session.id}`;
87
+ if (mount.writeMode === 'audit') {
88
+ const candidate = await provider.propose(proposal, sourceKey, exec.signal);
89
+ return JSON.stringify({
90
+ storage: provider.mode,
91
+ outcome: 'pending-review',
92
+ knowledgeBase: { id: mount.knowledgeBaseId, name: mount.base.name },
93
+ candidateId: candidate.id,
94
+ }, null, 2);
95
+ }
96
+ const result = await provider.writeDirect(proposal, sourceKey, exec.signal);
97
+ return JSON.stringify({
98
+ storage: provider.mode,
99
+ outcome: result.outcome,
100
+ knowledgeBase: { id: mount.knowledgeBaseId, name: mount.base.name },
101
+ ...result.entry === undefined ? {} : { document: { id: result.entry.id, title: result.entry.title } },
102
+ ...result.candidate?.status === 'pending' ? { candidateId: result.candidate.id } : {},
103
+ }, null, 2);
104
+ },
105
+ };
106
+ }
107
+ function searchKnowledgeBaseTool(provider) {
108
+ return {
109
+ name: 'knowledge_base_search',
110
+ description: 'First-stage knowledge discovery. Search only knowledge bases mounted for recall in THIS session by their name, routing description, and tags. Call this before knowledge_search when the current request may depend on durable project or user knowledge. It returns metadata only, never knowledge document content. If nothing matches, continue without knowledge retrieval.',
111
+ parameters: {
112
+ type: 'object',
113
+ additionalProperties: false,
114
+ properties: {
115
+ query: { type: 'string', description: 'A concise description of the current topic or information need.' },
116
+ limit: { type: 'integer', description: 'Maximum matching knowledge bases, default 5 and maximum 10.' },
117
+ },
118
+ required: ['query'],
119
+ },
120
+ output: textOutput,
121
+ isConcurrencySafe: () => true,
122
+ async execute(raw, exec) {
123
+ const agent = requireAgent(exec);
124
+ const args = asRecord(raw);
125
+ const query = requireNonEmptyString(args.query, 'query', 2000);
126
+ const limit = optionalInteger(args.limit, 'limit', 1, 10) ?? 5;
127
+ const mounts = await resolveRecallMounts(provider, agent, exec.signal);
128
+ if (mounts.length === 0)
129
+ return 'No knowledge bases are mounted for recall in this session.';
130
+ return formatKnowledgeBaseMatches(query, searchMountedKnowledgeBases(mounts, query, limit));
131
+ },
132
+ };
133
+ }
14
134
  function createKnowledgeBaseTool(provider) {
15
135
  return {
16
136
  name: 'knowledge_base_create',
@@ -105,16 +225,16 @@ function updateKnowledgeBaseTool(provider) {
105
225
  function searchTool(provider, codec) {
106
226
  return {
107
227
  name: 'knowledge_search',
108
- description: 'Search only the knowledge bases mounted for recall in THIS session. Use this before answering from memory when the mounted-base catalog may cover the user\'s topic. Returns ranked snippets and signed opaque handles; call knowledge_read with an exact handle to open a result. Natural-language queries are supported. Never invent a handle.',
228
+ description: 'Second-stage knowledge retrieval. Search one exact knowledge base returned by knowledge_base_search. The base must still be mounted for recall in THIS session. Returns ranked snippets and signed opaque handles; call knowledge_read with an exact handle to open a result. Never invent a base id or handle.',
109
229
  parameters: {
110
230
  type: 'object',
111
231
  additionalProperties: false,
112
232
  properties: {
113
233
  query: { type: 'string', description: 'What to find. Prefer focused words from the current user request.' },
114
- base: { type: 'string', description: 'Optional exact mounted knowledge-base name or id. Omit to search all mounted bases.' },
234
+ base: { type: 'string', description: 'Exact mounted knowledge-base id or name returned by knowledge_base_search.' },
115
235
  limit: { type: 'integer', description: 'Maximum ranked results, default 8 and maximum 20.' },
116
236
  },
117
- required: ['query'],
237
+ required: ['query', 'base'],
118
238
  },
119
239
  output: textOutput,
120
240
  isConcurrencySafe: () => true,
@@ -122,7 +242,7 @@ function searchTool(provider, codec) {
122
242
  const agent = requireAgent(exec);
123
243
  const args = asRecord(raw);
124
244
  const query = requireNonEmptyString(args.query, 'query', 6000);
125
- const base = optionalString(args.base, 'base', 200);
245
+ const base = requireNonEmptyString(args.base, 'base', 200);
126
246
  const limit = optionalInteger(args.limit, 'limit', 1, 20) ?? 8;
127
247
  const mounts = selectMounts(await resolveRecallMounts(provider, agent, exec.signal), base);
128
248
  if (mounts.length === 0)
@@ -135,7 +255,7 @@ function searchTool(provider, codec) {
135
255
  function readTool(provider, codec) {
136
256
  return {
137
257
  name: 'knowledge_read',
138
- description: 'Read one approved knowledge section using the exact signed handle returned by knowledge_search or proactive retrieval. Handles are session-bound. Long sections are paginated; when a result says it was truncated, call again with the reported offset.',
258
+ description: 'Read one approved knowledge document using the exact signed handle returned by knowledge_search. Handles are session-bound. Long documents are paginated; when a result says it was truncated, call again with the reported offset.',
139
259
  parameters: {
140
260
  type: 'object',
141
261
  additionalProperties: false,
@@ -159,6 +279,44 @@ function readTool(provider, codec) {
159
279
  },
160
280
  };
161
281
  }
282
+ function selectWritableMount(mounts, requested) {
283
+ if (requested === undefined) {
284
+ if (mounts.length === 1)
285
+ return mounts[0];
286
+ throw new Error(`multiple writable knowledge bases are mounted (${mounts.map(mount => mount.base.name).join(', ')}); specify one with base`);
287
+ }
288
+ const folded = requested.toLocaleLowerCase('zh-CN');
289
+ const matches = mounts.filter(mount => mount.knowledgeBaseId === requested
290
+ || mount.base.name.toLocaleLowerCase('zh-CN') === folded);
291
+ if (matches.length === 0)
292
+ throw new Error(`knowledge base ${JSON.stringify(requested)} is not mounted for write-back`);
293
+ if (matches.length > 1)
294
+ throw new Error(`knowledge base ${JSON.stringify(requested)} is ambiguous; use its exact id`);
295
+ return matches[0];
296
+ }
297
+ function parseWriteScope(value, projectId) {
298
+ if (value === undefined || value === 'global')
299
+ return { kind: 'global' };
300
+ if (value !== 'project')
301
+ throw new Error('scope must be global or project');
302
+ if (projectId === undefined || projectId.trim().length === 0) {
303
+ throw new Error('project scope requires a current workspace');
304
+ }
305
+ return { kind: 'project', id: projectId };
306
+ }
307
+ function parseWriteType(value) {
308
+ if (!isKnowledgeType(value))
309
+ throw new Error('type is required for new knowledge and must be preference, fact, decision, procedure, or lesson');
310
+ return value;
311
+ }
312
+ function currentTurn(agent) {
313
+ for (let index = agent.session.events.length - 1; index >= 0; index -= 1) {
314
+ const event = agent.session.events[index];
315
+ if (event?.type === 'turn/start' && typeof event.data.turn === 'number')
316
+ return event.data.turn;
317
+ }
318
+ return undefined;
319
+ }
162
320
  async function resolveKnowledgeBase(provider, requested, signal) {
163
321
  const folded = requested.toLocaleLowerCase('zh-CN');
164
322
  const matches = (await provider.listKnowledgeBases(signal)).filter(base => base.id === requested
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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"}
@@ -0,0 +1,3 @@
1
+ /** Render knowledge Markdown for the management console without trusting document HTML. */
2
+ export declare function renderMarkdown(markdown: string): string;
3
+ //# sourceMappingURL=web-markdown-preview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-markdown-preview.d.ts","sourceRoot":"","sources":["../src/web-markdown-preview.ts"],"names":[],"mappings":"AAQA,2FAA2F;AAC3F,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAevD"}
@@ -0,0 +1,24 @@
1
+ import DOMPurify from 'dompurify';
2
+ import { marked } from 'marked';
3
+ marked.use({
4
+ gfm: true,
5
+ breaks: false,
6
+ });
7
+ /** Render knowledge Markdown for the management console without trusting document HTML. */
8
+ export function renderMarkdown(markdown) {
9
+ const rendered = marked.parse(markdown, { async: false });
10
+ const sanitized = DOMPurify.sanitize(rendered, {
11
+ FORBID_TAGS: ['style', 'form', 'input', 'button', 'textarea', 'select', 'option', 'iframe', 'object', 'embed', 'svg', 'math', 'video', 'audio'],
12
+ FORBID_ATTR: ['style'],
13
+ RETURN_TRUSTED_TYPE: false,
14
+ USE_PROFILES: { html: true },
15
+ });
16
+ const template = document.createElement('template');
17
+ template.innerHTML = sanitized;
18
+ for (const link of template.content.querySelectorAll('a')) {
19
+ link.target = '_blank';
20
+ link.rel = 'noopener noreferrer';
21
+ }
22
+ return template.innerHTML;
23
+ }
24
+ //# sourceMappingURL=web-markdown-preview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-markdown-preview.js","sourceRoot":"","sources":["../src/web-markdown-preview.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,MAAM,CAAC,GAAG,CAAC;IACT,GAAG,EAAE,IAAI;IACT,MAAM,EAAE,KAAK;CACd,CAAC,CAAA;AAEF,2FAA2F;AAC3F,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;IACzD,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE;QAC7C,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;QAC/I,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,mBAAmB,EAAE,KAAK;QAC1B,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;KAC7B,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;IACnD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAA;IAC9B,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,qBAAqB,CAAA;IAClC,CAAC;IACD,OAAO,QAAQ,CAAC,SAAS,CAAA;AAC3B,CAAC"}
package/lib/web.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAiBtD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,kBAAkB,EACvB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,QAAQ,GAAG,aAAwB,GAC5C,MAAM,IAAI,CAaZ"}
1
+ {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAkBtD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,kBAAkB,EACvB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,QAAQ,GAAG,aAAwB,GAC5C,MAAM,IAAI,CAaZ"}
package/lib/web.js CHANGED
@@ -2,6 +2,7 @@ import { readFileSync } from 'node:fs';
2
2
  import { createHash } from 'node:crypto';
3
3
  const STATIC_ASSETS = new Map([
4
4
  ['app.js', loadAsset('../web/app.js', 'text/javascript; charset=utf-8')],
5
+ ['markdown-preview.js', loadAsset('../web/markdown-preview.js', 'text/javascript; charset=utf-8')],
5
6
  ['styles.css', loadAsset('../web/styles.css', 'text/css; charset=utf-8')],
6
7
  ]);
7
8
  const ASSET_VERSION = createHash('sha256')
package/lib/web.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AASxC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAgB;IAC3C,CAAC,QAAQ,EAAE,SAAS,CAAC,eAAe,EAAE,gCAAgC,CAAC,CAAC;IACxE,CAAC,qBAAqB,EAAE,SAAS,CAAC,4BAA4B,EAAE,gCAAgC,CAAC,CAAC;IAClG,CAAC,YAAY,EAAE,SAAS,CAAC,mBAAmB,EAAE,yBAAyB,CAAC,CAAC;CAC1E,CAAC,CAAA;AACF,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC;KACvC,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACrE,MAAM,CAAC,KAAK,CAAC;KACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AACf,MAAM,cAAc,GAAG,YAAY,CAAC,IAAI,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAA;AAE1F,MAAM,UAAU,oBAAoB,CAClC,GAAuB,EACvB,OAAe,EACf,SAAiB,EACjB,WAAqC,QAAQ;IAE7C,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,CAAC,WAAW,CAAoC,CAAA;IAC1F,IAAI,SAAS,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IAC5F,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc;SACrC,UAAU,CAAC,8BAA8B,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;SAC1E,UAAU,CAAC,6BAA6B,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;SACxE,UAAU,CAAC,4BAA4B,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;SACtE,UAAU,CAAC,iCAAiC,EAAE,aAAa,CAAC,CAAC,CAAA;IAChE,OAAO,SAAS,CAAC,QAAQ,CAAC;QACxB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC;KAC1D,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,GAAoB,EAAE,GAAmB,EAAE,OAAe,EAAE,KAAa;IACzF,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,CAAA;IAClC,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAC1C,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,eAAe,EAAE,EAAE,CAAC,CAAA;QAChE,GAAG,CAAC,GAAG,EAAE,CAAA;QACT,OAAM;IACR,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,wBAAwB,CAAC,CAAC,QAAQ,CAAA;IAC3E,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IACzE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC,CAAA;QAChF,OAAM;IACR,CAAC;IACD,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,CAAC,CAAA;QACrC,GAAG,CAAC,GAAG,EAAE,CAAA;QACT,OAAM;IACR,CAAC;IACD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;AAC/B,CAAC;AAED,SAAS,SAAS,CAAC,GAAmB,EAAE,MAAc,EAAE,KAAY;IAClE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,GAAG,eAAe,EAAE;QACpB,cAAc,EAAE,KAAK,CAAC,WAAW;QACjC,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU;QACvC,eAAe,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,qCAAqC;KAChH,CAAC,CAAA;IACF,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACrD,CAAC;AAED,SAAS,eAAe;IACtB,OAAO;QACL,yBAAyB,EAAE,oMAAoM;QAC/N,iBAAiB,EAAE,aAAa;QAChC,wBAAwB,EAAE,SAAS;QACnC,iBAAiB,EAAE,YAAY;QAC/B,4BAA4B,EAAE,aAAa;KAC5C,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,WAAmB;IAClD,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,CAAA;AAC5E,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;AACjH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lemoncat7/dsh-knowledge",
3
- "version": "0.7.2",
3
+ "version": "1.0.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",
@@ -50,7 +50,8 @@
50
50
  "@deepseek-ai/dsh-client-runtime",
51
51
  "@deepseek-ai/dsh-client-ui-sidebar",
52
52
  "@deepseek-ai/dsh-client-ui-settings",
53
- "@deepseek-ai/dsh-client-ui-settings-plugins"
53
+ "@deepseek-ai/dsh-client-ui-settings-plugins",
54
+ "@deepseek-ai/dsh-client-ui-theme"
54
55
  ]
55
56
  }
56
57
  },
@@ -65,15 +66,27 @@
65
66
  "pack:check": "npm pack --dry-run"
66
67
  },
67
68
  "dependencies": {
68
- "@deepseek-ai/schemastery": "^3.18.1"
69
+ "@deepseek-ai/schemastery": "^3.18.1",
70
+ "yaml": "^2.9.0"
69
71
  },
70
72
  "peerDependencies": {
71
73
  "@deepseek-ai/cordis": "^4.0.1"
72
74
  },
73
75
  "devDependencies": {
74
76
  "@deepseek-ai/cordis": "^4.0.1",
77
+ "@deepseek-ai/dsh-client-runtime": "0.1.1-rc.2",
78
+ "@deepseek-ai/dsh-client-ui-layout": "0.1.1-rc.2",
79
+ "@deepseek-ai/dsh-client-ui-primitives": "0.1.1-rc.2",
80
+ "@deepseek-ai/dsh-client-ui-settings-plugins": "0.1.1-rc.2",
81
+ "@deepseek-ai/dsh-client-ui-sidebar": "0.1.1-rc.2",
82
+ "@deepseek-ai/dsh-client-ui-slots": "0.1.1-rc.2",
83
+ "@deepseek-ai/dsh-client-ui-theme": "0.1.1-rc.2",
75
84
  "@types/node": "^24.0.0",
85
+ "@types/react": "18.3.28",
86
+ "dompurify": "^3.4.14",
76
87
  "esbuild": "^0.25.0",
88
+ "marked": "^18.0.10",
89
+ "react": "18.3.1",
77
90
  "typescript": "^5.9.3"
78
91
  },
79
92
  "publishConfig": {