@lemoncat7/dsh-knowledge 0.7.3 → 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 (69) 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 +207 -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/documents/markdown.d.ts +33 -0
  17. package/lib/documents/markdown.d.ts.map +1 -0
  18. package/lib/documents/markdown.js +91 -0
  19. package/lib/documents/markdown.js.map +1 -0
  20. package/lib/documents/path.d.ts +4 -0
  21. package/lib/documents/path.d.ts.map +1 -0
  22. package/lib/documents/path.js +11 -0
  23. package/lib/documents/path.js.map +1 -0
  24. package/lib/documents/store.d.ts +32 -0
  25. package/lib/documents/store.d.ts.map +1 -0
  26. package/lib/documents/store.js +272 -0
  27. package/lib/documents/store.js.map +1 -0
  28. package/lib/domain.d.ts +2 -0
  29. package/lib/domain.d.ts.map +1 -1
  30. package/lib/domain.js +6 -0
  31. package/lib/domain.js.map +1 -1
  32. package/lib/extraction.d.ts.map +1 -1
  33. package/lib/extraction.js +210 -73
  34. package/lib/extraction.js.map +1 -1
  35. package/lib/index.d.ts +1 -1
  36. package/lib/index.d.ts.map +1 -1
  37. package/lib/index.js +4 -4
  38. package/lib/index.js.map +1 -1
  39. package/lib/local-provider.d.ts +2 -0
  40. package/lib/local-provider.d.ts.map +1 -1
  41. package/lib/local-provider.js +145 -79
  42. package/lib/local-provider.js.map +1 -1
  43. package/lib/recall.d.ts +7 -2
  44. package/lib/recall.d.ts.map +1 -1
  45. package/lib/recall.js +46 -30
  46. package/lib/recall.js.map +1 -1
  47. package/lib/retrieval.d.ts +14 -4
  48. package/lib/retrieval.d.ts.map +1 -1
  49. package/lib/retrieval.js +133 -25
  50. package/lib/retrieval.js.map +1 -1
  51. package/lib/theme-bridge.d.ts +23 -0
  52. package/lib/theme-bridge.d.ts.map +1 -0
  53. package/lib/theme-bridge.js +72 -0
  54. package/lib/theme-bridge.js.map +1 -0
  55. package/lib/tools.d.ts.map +1 -1
  56. package/lib/tools.js +165 -7
  57. package/lib/tools.js.map +1 -1
  58. package/lib/web-markdown-preview.d.ts +3 -0
  59. package/lib/web-markdown-preview.d.ts.map +1 -0
  60. package/lib/web-markdown-preview.js +24 -0
  61. package/lib/web-markdown-preview.js.map +1 -0
  62. package/lib/web.d.ts.map +1 -1
  63. package/lib/web.js +1 -0
  64. package/lib/web.js.map +1 -1
  65. package/package.json +16 -3
  66. package/web/app.js +326 -359
  67. package/web/index.html +1 -0
  68. package/web/markdown-preview.js +72 -0
  69. package/web/styles.css +177 -200
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ import type { KnowledgeProvider } from './provider.js';
3
3
  export declare class LocalKnowledgeProvider implements KnowledgeProvider {
4
4
  readonly mode: "local";
5
5
  private readonly db;
6
+ private readonly documentStore;
7
+ private readonly documentsReady;
6
8
  private closed;
7
9
  constructor(path: string);
8
10
  private migrate;
@@ -1 +1 @@
1
- {"version":3,"file":"local-provider.d.ts","sourceRoot":"","sources":["../src/local-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-provider.d.ts","sourceRoot":"","sources":["../src/local-provider.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
- import { dirname } from 'node:path';
1
+ import { dirname, join } from 'node:path';
2
2
  import { createHash, randomBytes } from 'node:crypto';
3
3
  import { mkdirSync } from 'node:fs';
4
4
  import { DatabaseSync } from 'node:sqlite';
5
5
  import { contentHash, DEFAULT_KNOWLEDGE_BASE_ID, newId, normalizeDraft, normalizeKnowledgeBaseDraft, normalizeKnowledgeMountDraft, normalizeKnowledgeSettings, nowIso, } from './domain.js';
6
+ import { renderKnowledgeMarkdown } from './documents/markdown.js';
7
+ import { knowledgeDocumentPath } from './documents/path.js';
8
+ import { KnowledgeDocumentStore } from './documents/store.js';
6
9
  const ENTRY_COLUMNS = `
7
10
  id, knowledge_base_id, title, body, type, tags_json, scope_kind, scope_id, confidence,
8
11
  status, version, source_json, created_at, updated_at
@@ -16,17 +19,21 @@ const JOINED_ENTRY_COLUMNS = `
16
19
  export class LocalKnowledgeProvider {
17
20
  mode = 'local';
18
21
  db;
22
+ documentStore;
23
+ documentsReady;
19
24
  closed = false;
20
25
  constructor(path) {
21
26
  if (path !== ':memory:')
22
27
  mkdirSync(dirname(path), { recursive: true });
28
+ this.documentStore = new KnowledgeDocumentStore(join(dirname(path), 'documents'));
23
29
  this.db = new DatabaseSync(path);
24
30
  this.db.exec('PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON; PRAGMA busy_timeout = 5000;');
25
31
  this.migrate();
32
+ this.documentsReady = this.syncAllDocuments();
26
33
  }
27
34
  migrate() {
28
35
  let version = Number(this.db.prepare('PRAGMA user_version').get().user_version ?? 0);
29
- if (version > 5)
36
+ if (version > 6)
30
37
  throw new Error(`knowledge database schema ${version} is newer than this plugin supports`);
31
38
  if (version === 0)
32
39
  this.db.exec(`
@@ -194,11 +201,14 @@ export class LocalKnowledgeProvider {
194
201
  PRAGMA user_version = 5;
195
202
  COMMIT;
196
203
  `);
204
+ if (version <= 4)
205
+ version = 5;
206
+ if (version === 5)
207
+ this.db.exec('PRAGMA user_version = 6;');
197
208
  // Alpha v2 used a migration note as the default base's routing description.
198
209
  // Clear only that exact placeholder so existing user-authored descriptions stay untouched.
199
210
  this.db.prepare("UPDATE knowledge_bases SET description='' WHERE id=? AND description=?")
200
211
  .run(DEFAULT_KNOWLEDGE_BASE_ID, '由 0.2 版本迁移的知识。');
201
- this.syncAllDocuments();
202
212
  }
203
213
  assertOpen() {
204
214
  if (this.closed)
@@ -232,6 +242,7 @@ export class LocalKnowledgeProvider {
232
242
  }
233
243
  async createKnowledgeBase(input) {
234
244
  this.assertOpen();
245
+ await this.documentsReady;
235
246
  const draft = normalizeKnowledgeBaseDraft(input);
236
247
  const timestamp = nowIso();
237
248
  const base = { ...draft, id: newId(), status: 'active', createdAt: timestamp, updatedAt: timestamp };
@@ -240,11 +251,12 @@ export class LocalKnowledgeProvider {
240
251
  id,name,description,default_tags_json,extraction_instructions,writeback_provider,writeback_model,status,created_at,updated_at
241
252
  ) VALUES(?,?,?,?,?,?,?,'active',?,?)
242
253
  `).run(base.id, base.name, base.description, JSON.stringify(base.defaultTags), base.extractionInstructions, base.writebackProvider ?? null, base.writebackModel ?? null, timestamp, timestamp);
243
- this.syncKnowledgeDocuments(base.id);
254
+ await this.syncKnowledgeDocuments(base.id);
244
255
  return base;
245
256
  }
246
257
  async updateKnowledgeBase(id, input) {
247
258
  this.assertOpen();
259
+ await this.documentsReady;
248
260
  const current = await this.getKnowledgeBase(id);
249
261
  if (current === undefined)
250
262
  throw notFound('knowledge base', id);
@@ -255,7 +267,7 @@ export class LocalKnowledgeProvider {
255
267
  name=?,description=?,default_tags_json=?,extraction_instructions=?,writeback_provider=?,writeback_model=?,updated_at=?
256
268
  WHERE id=?
257
269
  `).run(updated.name, updated.description, JSON.stringify(updated.defaultTags), updated.extractionInstructions, updated.writebackProvider ?? null, updated.writebackModel ?? null, updated.updatedAt, id);
258
- this.syncKnowledgeDocuments(id);
270
+ await this.syncKnowledgeDocuments(id);
259
271
  return updated;
260
272
  }
261
273
  async patchKnowledgeBase(id, patch) {
@@ -301,6 +313,8 @@ export class LocalKnowledgeProvider {
301
313
  }
302
314
  async deleteKnowledgeBase(id) {
303
315
  this.assertOpen();
316
+ await this.documentsReady;
317
+ const base = await this.getKnowledgeBase(id);
304
318
  if (id === DEFAULT_KNOWLEDGE_BASE_ID)
305
319
  throw conflict('the default knowledge base cannot be deleted');
306
320
  this.transaction(() => {
@@ -323,9 +337,12 @@ export class LocalKnowledgeProvider {
323
337
  this.db.prepare('DELETE FROM knowledge_documents WHERE knowledge_base_id=?').run(id);
324
338
  this.db.prepare('DELETE FROM knowledge_bases WHERE id=?').run(id);
325
339
  });
340
+ if (base !== undefined)
341
+ await this.documentStore.deleteBase(this.documentStore.baseDirectory(base));
326
342
  }
327
343
  async listDocuments(knowledgeBaseId, query) {
328
344
  this.assertOpen();
345
+ await this.documentsReady;
329
346
  const where = [];
330
347
  const args = [];
331
348
  if (knowledgeBaseId !== undefined) {
@@ -343,6 +360,7 @@ export class LocalKnowledgeProvider {
343
360
  }
344
361
  async getDocument(id) {
345
362
  this.assertOpen();
363
+ await this.documentsReady;
346
364
  const row = this.db.prepare('SELECT * FROM knowledge_documents WHERE id=?').get(id);
347
365
  return row === undefined ? undefined : rowToDocument(row);
348
366
  }
@@ -543,7 +561,10 @@ export class LocalKnowledgeProvider {
543
561
  rows.push(...supplements.filter(row => !seen.has(String(row.id))).slice(0, limit - rows.length));
544
562
  }
545
563
  }
546
- return rows.map(row => ({ entry: rowToEntry(row), score: rankToScore(Number(row.rank ?? 0)) }));
564
+ return rows.map(row => {
565
+ const entry = rowToEntry(row);
566
+ return { entry, score: relevanceScore(entry, text) };
567
+ });
547
568
  }
548
569
  searchByTerms(text, scopeSql, scopeArgs, filterSql, filterArgs, limit) {
549
570
  const terms = fallbackTerms(text);
@@ -609,8 +630,9 @@ export class LocalKnowledgeProvider {
609
630
  }
610
631
  async create(draft) {
611
632
  this.assertOpen();
633
+ await this.documentsReady;
612
634
  const entry = this.transaction(() => this.insertEntry(draft));
613
- this.syncKnowledgeDocuments(entry.knowledgeBaseId);
635
+ await this.syncKnowledgeDocuments(entry.knowledgeBaseId);
614
636
  return entry;
615
637
  }
616
638
  insertEntry(input) {
@@ -632,11 +654,12 @@ export class LocalKnowledgeProvider {
632
654
  }
633
655
  async update(id, draft) {
634
656
  this.assertOpen();
657
+ await this.documentsReady;
635
658
  const current = await this.get(id);
636
659
  const entry = this.transaction(() => this.updateEntry(id, draft, 'update'));
637
660
  if (current !== undefined && current.knowledgeBaseId !== entry.knowledgeBaseId)
638
- this.syncKnowledgeDocuments(current.knowledgeBaseId);
639
- this.syncKnowledgeDocuments(entry.knowledgeBaseId);
661
+ await this.syncKnowledgeDocuments(current.knowledgeBaseId);
662
+ await this.syncKnowledgeDocuments(entry.knowledgeBaseId);
640
663
  return entry;
641
664
  }
642
665
  updateEntry(id, input, changeKind) {
@@ -669,6 +692,7 @@ export class LocalKnowledgeProvider {
669
692
  }
670
693
  async archive(id) {
671
694
  this.assertOpen();
695
+ await this.documentsReady;
672
696
  const entry = this.transaction(() => {
673
697
  const row = this.db.prepare(`SELECT ${ENTRY_COLUMNS} FROM knowledge_entries WHERE id = ?`).get(id);
674
698
  if (row === undefined)
@@ -682,11 +706,12 @@ export class LocalKnowledgeProvider {
682
706
  this.db.prepare('DELETE FROM knowledge_fts WHERE knowledge_id = ?').run(id);
683
707
  return updated;
684
708
  });
685
- this.syncKnowledgeDocuments(entry.knowledgeBaseId);
709
+ await this.syncKnowledgeDocuments(entry.knowledgeBaseId);
686
710
  return entry;
687
711
  }
688
712
  async delete(id) {
689
713
  this.assertOpen();
714
+ await this.documentsReady;
690
715
  const current = await this.get(id);
691
716
  this.transaction(() => {
692
717
  this.db.prepare('DELETE FROM knowledge_fts WHERE knowledge_id = ?').run(id);
@@ -695,7 +720,7 @@ export class LocalKnowledgeProvider {
695
720
  throw notFound('knowledge entry', id);
696
721
  });
697
722
  if (current !== undefined)
698
- this.syncKnowledgeDocuments(current.knowledgeBaseId);
723
+ await this.syncKnowledgeDocuments(current.knowledgeBaseId);
699
724
  }
700
725
  async propose(input, sourceKey) {
701
726
  this.assertOpen();
@@ -703,6 +728,7 @@ export class LocalKnowledgeProvider {
703
728
  }
704
729
  async writeDirect(input, sourceKey) {
705
730
  this.assertOpen();
731
+ await this.documentsReady;
706
732
  let touchedBaseId;
707
733
  const result = this.transaction(() => {
708
734
  const resolution = this.resolveDirectProposal(normalizeProposal(input));
@@ -736,7 +762,7 @@ export class LocalKnowledgeProvider {
736
762
  };
737
763
  });
738
764
  if (touchedBaseId !== undefined)
739
- this.syncKnowledgeDocuments(touchedBaseId);
765
+ await this.syncKnowledgeDocuments(touchedBaseId);
740
766
  return result;
741
767
  }
742
768
  insertCandidate(proposal, sourceKey) {
@@ -781,7 +807,8 @@ export class LocalKnowledgeProvider {
781
807
  const entries = this.activeEntriesForDraft(proposal.draft);
782
808
  const bodyMatch = entries.find(entry => normalizedBody(entry.body) === normalizedBody(proposal.draft.body));
783
809
  const titleMatch = entries.find(entry => normalizedTitle(entry.title) === normalizedTitle(proposal.draft.title));
784
- const target = bodyMatch ?? titleMatch;
810
+ const referenceMatch = entries.find(entry => sharesCanonicalTopicReference(entry, proposal.draft));
811
+ const target = bodyMatch ?? titleMatch ?? referenceMatch;
785
812
  if (target === undefined)
786
813
  return { outcome: 'created', proposal };
787
814
  if (potentiallyConflicts(target, proposal.draft)) {
@@ -820,6 +847,7 @@ export class LocalKnowledgeProvider {
820
847
  }
821
848
  async review(id, decision) {
822
849
  this.assertOpen();
850
+ await this.documentsReady;
823
851
  const reviewed = this.transaction(() => {
824
852
  const row = this.db.prepare('SELECT * FROM knowledge_candidates WHERE id = ?').get(id);
825
853
  if (row === undefined)
@@ -829,18 +857,34 @@ export class LocalKnowledgeProvider {
829
857
  throw conflict(`candidate ${id} was already ${candidate.status}`);
830
858
  let draft = decision.draft === undefined ? candidate.draft : normalizeDraft(decision.draft);
831
859
  if (decision.decision === 'approve') {
832
- if (candidate.action === 'create') {
833
- this.insertEntry(draft);
834
- }
835
- else {
860
+ if (candidate.action === 'conflict') {
836
861
  if (candidate.targetId === undefined)
837
862
  throw new Error('candidate target is missing');
838
- const target = this.db.prepare(`SELECT ${ENTRY_COLUMNS} FROM knowledge_entries WHERE id = ?`).get(candidate.targetId);
839
- if (target === undefined)
863
+ const targetRow = this.db.prepare(`SELECT ${ENTRY_COLUMNS} FROM knowledge_entries WHERE id = ?`).get(candidate.targetId);
864
+ if (targetRow === undefined)
840
865
  throw notFound('candidate target', candidate.targetId);
841
- if (decision.draft === undefined)
842
- draft = candidate.draft;
843
- this.updateEntry(candidate.targetId, draft, 'update');
866
+ const target = rowToEntry(targetRow);
867
+ if (draft.knowledgeBaseId !== target.knowledgeBaseId) {
868
+ throw conflict('candidate approval cannot move a document between knowledge bases');
869
+ }
870
+ this.updateEntry(candidate.targetId, mergeKnowledgeDraft(target, draft, true), 'update');
871
+ }
872
+ else {
873
+ const resolution = this.resolveDirectProposal({
874
+ action: candidate.action,
875
+ ...candidate.targetId === undefined ? {} : { targetId: candidate.targetId },
876
+ draft,
877
+ reason: candidate.reason,
878
+ });
879
+ if (resolution.outcome === 'conflict') {
880
+ throw conflict('knowledge changed during review and now requires conflict resolution');
881
+ }
882
+ if (resolution.outcome !== 'duplicate') {
883
+ if (resolution.proposal.action === 'create')
884
+ this.insertEntry(resolution.proposal.draft);
885
+ else
886
+ this.updateEntry(resolution.proposal.targetId, resolution.proposal.draft, 'update');
887
+ }
844
888
  }
845
889
  }
846
890
  const status = decision.decision === 'approve' ? 'approved' : 'rejected';
@@ -851,7 +895,7 @@ export class LocalKnowledgeProvider {
851
895
  return { ...candidate, status, reviewedAt, ...note === undefined ? {} : { reviewNote: note } };
852
896
  });
853
897
  if (decision.decision === 'approve')
854
- this.syncKnowledgeDocuments(reviewed.draft.knowledgeBaseId);
898
+ await this.syncKnowledgeDocuments(reviewed.draft.knowledgeBaseId);
855
899
  return reviewed;
856
900
  }
857
901
  async claimExtraction(sourceKey) {
@@ -941,6 +985,7 @@ export class LocalKnowledgeProvider {
941
985
  async close() {
942
986
  if (this.closed)
943
987
  return;
988
+ await this.documentsReady;
944
989
  this.closed = true;
945
990
  this.db.close();
946
991
  }
@@ -966,91 +1011,76 @@ export class LocalKnowledgeProvider {
966
1011
  .run(entry.id, entry.title, entry.body, entry.tags.join(' '));
967
1012
  }
968
1013
  }
969
- syncAllDocuments() {
1014
+ async syncAllDocuments() {
1015
+ await this.documentStore.initialize();
970
1016
  const bases = this.db.prepare('SELECT id FROM knowledge_bases').all();
971
1017
  for (const base of bases)
972
- this.syncKnowledgeDocuments(String(base.id));
1018
+ await this.syncKnowledgeDocuments(String(base.id));
973
1019
  }
974
- syncKnowledgeDocuments(knowledgeBaseId) {
1020
+ async syncKnowledgeDocuments(knowledgeBaseId) {
975
1021
  const baseRow = this.db.prepare('SELECT * FROM knowledge_bases WHERE id=?').get(knowledgeBaseId);
976
1022
  if (baseRow === undefined)
977
1023
  return;
978
1024
  const base = rowToKnowledgeBase(baseRow);
1025
+ const directory = await this.documentStore.ensureBase(base);
979
1026
  const entries = this.db.prepare(`
980
1027
  SELECT ${ENTRY_COLUMNS} FROM knowledge_entries
981
1028
  WHERE knowledge_base_id=? AND status='active'
982
- ORDER BY type, updated_at DESC, id
1029
+ ORDER BY updated_at DESC, id
983
1030
  `).all(knowledgeBaseId).map(rowToEntry);
984
1031
  const desired = new Map();
985
- desired.set('README.md', {
986
- title: base.name,
987
- content: renderKnowledgeBaseReadme(base, entries.length),
988
- entryCount: entries.length,
989
- });
990
- for (const [type, meta] of Object.entries(DOCUMENT_TYPES)) {
991
- const typed = entries.filter(entry => entry.type === type);
992
- if (typed.length === 0)
993
- continue;
994
- desired.set(meta.relPath, {
995
- title: meta.title,
996
- content: renderEntryDocument(base, meta.title, typed),
997
- entryCount: typed.length,
1032
+ for (const entry of entries) {
1033
+ const relPath = knowledgeDocumentPath(entry);
1034
+ const markdown = renderKnowledgeMarkdown({
1035
+ metadata: {
1036
+ id: entry.id,
1037
+ type: entry.type,
1038
+ tags: entry.tags,
1039
+ scope: entry.scope,
1040
+ confidence: entry.confidence,
1041
+ status: entry.status,
1042
+ },
1043
+ title: entry.title,
1044
+ body: entry.body,
1045
+ });
1046
+ const stored = await this.documentStore.writeDocument(directory, relPath, markdown);
1047
+ desired.set(entry.id, {
1048
+ entry,
1049
+ relPath,
1050
+ content: `# ${markdownHeading(entry.title)}\n\n${entry.body.trim()}\n`,
1051
+ contentHash: stored.contentHash,
998
1052
  });
999
1053
  }
1000
- const timestamp = nowIso();
1054
+ const storedDocuments = await this.documentStore.listDocuments(directory);
1055
+ for (const document of storedDocuments) {
1056
+ const expected = desired.get(document.metadata.id);
1057
+ if (expected === undefined || expected.relPath !== document.relPath) {
1058
+ await this.documentStore.deleteDocument(directory, document.relPath, document.contentHash);
1059
+ }
1060
+ }
1001
1061
  const existing = this.db.prepare('SELECT id,rel_path,created_at FROM knowledge_documents WHERE knowledge_base_id=?')
1002
1062
  .all(knowledgeBaseId);
1003
- const byPath = new Map(existing.map(row => [String(row.rel_path), row]));
1004
- for (const [relPath, document] of desired) {
1005
- const previous = byPath.get(relPath);
1006
- const hash = createHash('sha256').update(document.content).digest('hex');
1063
+ for (const document of desired.values()) {
1007
1064
  this.db.prepare(`
1008
1065
  INSERT INTO knowledge_documents(
1009
1066
  id,knowledge_base_id,rel_path,title,content,entry_count,content_hash,created_at,updated_at
1010
1067
  ) VALUES(?,?,?,?,?,?,?,?,?)
1011
- ON CONFLICT(knowledge_base_id,rel_path) DO UPDATE SET
1068
+ ON CONFLICT(id) DO UPDATE SET
1069
+ knowledge_base_id=excluded.knowledge_base_id,rel_path=excluded.rel_path,
1012
1070
  title=excluded.title,content=excluded.content,entry_count=excluded.entry_count,
1013
1071
  content_hash=excluded.content_hash,updated_at=excluded.updated_at
1014
1072
  WHERE knowledge_documents.content_hash<>excluded.content_hash
1073
+ OR knowledge_documents.rel_path<>excluded.rel_path
1015
1074
  OR knowledge_documents.title<>excluded.title
1016
1075
  OR knowledge_documents.entry_count<>excluded.entry_count
1017
- `).run(previous === undefined ? newId() : String(previous.id), knowledgeBaseId, relPath, document.title, document.content, document.entryCount, hash, previous === undefined ? timestamp : String(previous.created_at), timestamp);
1076
+ `).run(document.entry.id, knowledgeBaseId, document.relPath, document.entry.title, document.content, 1, document.contentHash, document.entry.createdAt, document.entry.updatedAt);
1018
1077
  }
1019
1078
  for (const row of existing) {
1020
- if (!desired.has(String(row.rel_path)))
1079
+ if (!desired.has(String(row.id)))
1021
1080
  this.db.prepare('DELETE FROM knowledge_documents WHERE id=?').run(String(row.id));
1022
1081
  }
1023
1082
  }
1024
1083
  }
1025
- const DOCUMENT_TYPES = {
1026
- preference: { relPath: 'preferences.md', title: '偏好' },
1027
- fact: { relPath: 'facts.md', title: '事实' },
1028
- decision: { relPath: 'decisions.md', title: '决策' },
1029
- procedure: { relPath: 'procedures.md', title: '流程' },
1030
- lesson: { relPath: 'lessons.md', title: '经验' },
1031
- };
1032
- function renderKnowledgeBaseReadme(base, entryCount) {
1033
- const lines = [`# ${markdownHeading(base.name)}`, ''];
1034
- if (base.description)
1035
- lines.push(base.description, '');
1036
- lines.push(`> 当前包含 ${entryCount} 条已生效知识,由 DSH Knowledge 自动整理为 Markdown 文档。`, '');
1037
- if (base.defaultTags.length > 0)
1038
- lines.push(`默认标签:${base.defaultTags.map(tag => `#${tag}`).join(' ')}`, '');
1039
- lines.push(`回写模型:${base.writebackProvider && base.writebackModel ? `${base.writebackProvider} / ${base.writebackModel}` : '跟随当前会话模型'}`, '');
1040
- if (base.extractionInstructions)
1041
- lines.push('## 提取要求', '', base.extractionInstructions, '');
1042
- return `${lines.join('\n').trim()}\n`;
1043
- }
1044
- function renderEntryDocument(base, title, entries) {
1045
- const lines = [`# ${title}`, '', `> ${base.name} · ${entries.length} 条知识`, ''];
1046
- for (const entry of entries) {
1047
- lines.push(`## ${markdownHeading(entry.title)}`, '', entry.body.trim(), '');
1048
- const scope = entry.scope.kind === 'global' ? '全局' : `项目:${entry.scope.id}`;
1049
- const metadata = [scope, ...entry.tags.map(tag => `#${tag}`), `置信度 ${Math.round(entry.confidence * 100)}%`];
1050
- lines.push(`<small>${metadata.join(' · ')}</small>`, '');
1051
- }
1052
- return `${lines.join('\n').trim()}\n`;
1053
- }
1054
1084
  function markdownHeading(value) {
1055
1085
  return value.replace(/[\r\n]+/g, ' ').replace(/^#+\s*/, '').trim();
1056
1086
  }
@@ -1181,6 +1211,23 @@ function normalizedTitle(value) {
1181
1211
  function normalizedBody(value) {
1182
1212
  return value.normalize('NFKC').toLocaleLowerCase().replace(/\s+/gu, ' ').trim();
1183
1213
  }
1214
+ function sharesCanonicalTopicReference(current, incoming) {
1215
+ const currentReferences = canonicalTopicReferences(`${current.title}\n${current.body}`);
1216
+ if (currentReferences.size === 0)
1217
+ return false;
1218
+ return [...canonicalTopicReferences(`${incoming.title}\n${incoming.body}`)]
1219
+ .some(reference => currentReferences.has(reference));
1220
+ }
1221
+ function canonicalTopicReferences(value) {
1222
+ const references = new Set();
1223
+ for (const match of value.matchAll(/https?:\/\/(?:www\.)?github\.com\/([^\s/?#]+)\/([^\s/?#]+)/giu)) {
1224
+ const owner = match[1]?.toLocaleLowerCase();
1225
+ const repository = match[2]?.replace(/\.git$/iu, '').replace(/[.,,。;;::!?!?]+$/u, '').toLocaleLowerCase();
1226
+ if (owner && repository)
1227
+ references.add(`github:${owner}/${repository}`);
1228
+ }
1229
+ return references;
1230
+ }
1184
1231
  function sameScope(left, right) {
1185
1232
  return left.kind === right.kind && (left.kind === 'global' || left.id === right.id);
1186
1233
  }
@@ -1288,9 +1335,28 @@ function fallbackTerms(text) {
1288
1335
  }
1289
1336
  return [...terms].slice(0, 20);
1290
1337
  }
1291
- function rankToScore(rank) {
1292
- return 1 / (1 + Math.max(0, rank));
1338
+ function relevanceScore(entry, query) {
1339
+ const normalizedQuery = normalizedBody(query);
1340
+ if (normalizedQuery.length === 0)
1341
+ return 1;
1342
+ const title = normalizedBody(entry.title);
1343
+ const body = normalizedBody(entry.body);
1344
+ const tags = normalizedBody(entry.tags.join(' '));
1345
+ const combined = `${title}\n${body}\n${tags}`;
1346
+ if (combined.includes(normalizedQuery))
1347
+ return .98;
1348
+ const terms = fallbackTerms(query).filter(term => !SEARCH_STOP_TERMS.has(term));
1349
+ if (terms.length === 0)
1350
+ return .25;
1351
+ const coverage = terms.filter(term => combined.includes(term)).length / terms.length;
1352
+ const titleCoverage = terms.filter(term => title.includes(term)).length / terms.length;
1353
+ const tagCoverage = terms.filter(term => tags.includes(term)).length / terms.length;
1354
+ return Math.min(.97, .05 + coverage * .72 + titleCoverage * .13 + tagCoverage * .1);
1293
1355
  }
1356
+ const SEARCH_STOP_TERMS = new Set([
1357
+ 'a', 'an', 'and', 'are', 'for', 'how', 'is', 'of', 'or', 'the', 'to', 'what', 'when', 'where', 'which', 'who', 'why',
1358
+ '什么', '么是', '如何', '怎么', '是否', '介绍',
1359
+ ]);
1294
1360
  function encodeCursor(updatedAt, id) {
1295
1361
  return Buffer.from(JSON.stringify({ updatedAt, id })).toString('base64url');
1296
1362
  }