@hongmaple0820/scale-engine 0.21.1 → 0.23.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 (89) hide show
  1. package/README.en.md +39 -13
  2. package/README.md +61 -31
  3. package/dist/api/cli.js +291 -4
  4. package/dist/api/cli.js.map +1 -1
  5. package/dist/api/doctor.d.ts +1 -0
  6. package/dist/api/doctor.js +83 -0
  7. package/dist/api/doctor.js.map +1 -1
  8. package/dist/artifact/types.d.ts +1 -1
  9. package/dist/artifact/types.js.map +1 -1
  10. package/dist/cli/phaseCommands.js +25 -6
  11. package/dist/cli/phaseCommands.js.map +1 -1
  12. package/dist/cli/runCommand.d.ts +39 -0
  13. package/dist/cli/runCommand.js +113 -0
  14. package/dist/cli/runCommand.js.map +1 -0
  15. package/dist/config/profiles.d.ts +52 -0
  16. package/dist/config/profiles.js +162 -0
  17. package/dist/config/profiles.js.map +1 -0
  18. package/dist/context/ContextBudget.d.ts +25 -1
  19. package/dist/context/ContextBudget.js +72 -7
  20. package/dist/context/ContextBudget.js.map +1 -1
  21. package/dist/context/ProjectAnatomy.d.ts +18 -0
  22. package/dist/context/ProjectAnatomy.js +287 -0
  23. package/dist/context/ProjectAnatomy.js.map +1 -0
  24. package/dist/dashboard/DashboardServer.d.ts +3 -0
  25. package/dist/dashboard/DashboardServer.js +114 -0
  26. package/dist/dashboard/DashboardServer.js.map +1 -1
  27. package/dist/hooks/BugPatternDetector.d.ts +36 -0
  28. package/dist/hooks/BugPatternDetector.js +207 -0
  29. package/dist/hooks/BugPatternDetector.js.map +1 -0
  30. package/dist/hooks/HookGeneratorEnhanced.js +301 -5
  31. package/dist/hooks/HookGeneratorEnhanced.js.map +1 -1
  32. package/dist/hooks/WorkflowHooksManager.js +24 -0
  33. package/dist/hooks/WorkflowHooksManager.js.map +1 -1
  34. package/dist/index.d.ts +4 -0
  35. package/dist/index.js +2 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/knowledge/CerebrumManager.d.ts +25 -0
  38. package/dist/knowledge/CerebrumManager.js +127 -0
  39. package/dist/knowledge/CerebrumManager.js.map +1 -0
  40. package/dist/knowledge/SQLiteKnowledgeBase.d.ts +1 -0
  41. package/dist/knowledge/SQLiteKnowledgeBase.js +31 -3
  42. package/dist/knowledge/SQLiteKnowledgeBase.js.map +1 -1
  43. package/dist/knowledge/TfidfIndex.d.ts +50 -0
  44. package/dist/knowledge/TfidfIndex.js +177 -0
  45. package/dist/knowledge/TfidfIndex.js.map +1 -0
  46. package/dist/skills/SkillDiscovery.js +1 -1
  47. package/dist/skills/SkillDiscovery.js.map +1 -1
  48. package/dist/tools/CommandOutputCompressor.d.ts +28 -0
  49. package/dist/tools/CommandOutputCompressor.js +242 -0
  50. package/dist/tools/CommandOutputCompressor.js.map +1 -0
  51. package/dist/tools/CommandRunLedger.d.ts +77 -0
  52. package/dist/tools/CommandRunLedger.js +111 -0
  53. package/dist/tools/CommandRunLedger.js.map +1 -0
  54. package/dist/tools/index.d.ts +2 -0
  55. package/dist/tools/index.js +2 -0
  56. package/dist/tools/index.js.map +1 -1
  57. package/dist/workflow/EngineeringStandards.js +91 -2
  58. package/dist/workflow/EngineeringStandards.js.map +1 -1
  59. package/dist/workflow/GovernanceTemplatePacks.js +2 -2
  60. package/dist/workflow/GovernanceTemplates.js +90 -89
  61. package/dist/workflow/GovernanceTemplates.js.map +1 -1
  62. package/dist/workflow/TaskLevelDetector.d.ts +41 -0
  63. package/dist/workflow/TaskLevelDetector.js +219 -0
  64. package/dist/workflow/TaskLevelDetector.js.map +1 -0
  65. package/dist/workflow/WorkflowOrchestrator.d.ts +59 -0
  66. package/dist/workflow/WorkflowOrchestrator.js +326 -0
  67. package/dist/workflow/WorkflowOrchestrator.js.map +1 -0
  68. package/dist/workflow/WorkspaceLifecycle.d.ts +19 -1
  69. package/dist/workflow/WorkspaceLifecycle.js +119 -3
  70. package/dist/workflow/WorkspaceLifecycle.js.map +1 -1
  71. package/dist/workflow/WorkspaceTopology.d.ts +6 -0
  72. package/dist/workflow/WorkspaceTopology.js +17 -6
  73. package/dist/workflow/WorkspaceTopology.js.map +1 -1
  74. package/dist/workflow/gates/GateSystem.d.ts +23 -6
  75. package/dist/workflow/gates/GateSystem.js +114 -25
  76. package/dist/workflow/gates/GateSystem.js.map +1 -1
  77. package/dist/workflow/gates/MetaGovernanceGates.d.ts +70 -0
  78. package/dist/workflow/gates/MetaGovernanceGates.js +617 -0
  79. package/dist/workflow/gates/MetaGovernanceGates.js.map +1 -0
  80. package/dist/workflow/types.d.ts +6 -1
  81. package/docs/GITLAB_FLOW.md +125 -0
  82. package/docs/README.md +3 -0
  83. package/docs/start/README.md +29 -3
  84. package/docs/start/artifact-lifecycle.md +326 -0
  85. package/docs/start/workflow-upgrade.md +150 -0
  86. package/image/wechat-public.jpg +0 -0
  87. package/image/wxPay.jpg +0 -0
  88. package/image/zfb.jpg +0 -0
  89. package/package.json +10 -8
@@ -42,6 +42,30 @@ const WORKFLOW_PRESETS = [
42
42
  description: 'Stop reminder — shows remaining SCALE phases and next command',
43
43
  templates: ['tmpl-next-step-reminder'],
44
44
  enabled: true
45
+ },
46
+ {
47
+ name: 'doc-standards',
48
+ description: 'Document standards check (G8) — validates markdown files on write',
49
+ templates: ['tmpl-doc-standards-check'],
50
+ enabled: true
51
+ },
52
+ {
53
+ name: 'anatomy',
54
+ description: 'Project file map — shows file descriptions before reads, auto-updates on writes',
55
+ templates: ['tmpl-anatomy-pre-read', 'tmpl-anatomy-post-write', 'tmpl-anatomy-session-start'],
56
+ enabled: true
57
+ },
58
+ {
59
+ name: 'cerebrum',
60
+ description: 'Learning memory — Do-Not-Repeat rules checked before writes, preferences loaded at session start',
61
+ templates: ['tmpl-cerebrum-pre-write', 'tmpl-cerebrum-session-start'],
62
+ enabled: true
63
+ },
64
+ {
65
+ name: 'bug-capture',
66
+ description: 'Auto-detect bug fix patterns from edits, recall past bugs before editing same file',
67
+ templates: ['tmpl-bug-capture', 'tmpl-bug-recall'],
68
+ enabled: true
45
69
  }
46
70
  ];
47
71
  export class WorkflowHooksManager {
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowHooksManager.js","sourceRoot":"","sources":["../../src/hooks/WorkflowHooksManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkflowHooksManager.js","sourceRoot":"","sources":["../../src/hooks/WorkflowHooksManager.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -11,6 +11,8 @@ export { logger } from './core/logger.js';
11
11
  export { TaskEngine } from './tasks/TaskEngine.js';
12
12
  export { KnowledgeBase } from './knowledge/KnowledgeBase.js';
13
13
  export { SQLiteKnowledgeBase } from './knowledge/SQLiteKnowledgeBase.js';
14
+ export { CerebrumManager } from './knowledge/CerebrumManager.js';
15
+ export type { CerebrumEntry, CerebrumHit } from './knowledge/CerebrumManager.js';
14
16
  export type { IKnowledgeBase } from './knowledge/KnowledgeBase.js';
15
17
  export { UbiquitousLanguageManager, createUbiquitousLanguageManager } from './knowledge/UbiquitousLanguageManager.js';
16
18
  export type { IUbiquitousLanguageManager } from './knowledge/UbiquitousLanguageManager.js';
@@ -45,6 +47,8 @@ export { DangerousCommandDetector, SecretLeakDetector, RoleGateDetector, ScopeCr
45
47
  export { DetectorStatisticsTracker, DetectorRegistry, AISlopDetector, HallucinationDetector, DuplicateEditDetector, EnhancedGatewayContext, ALL_ENHANCED_DETECTORS, } from './guardrails/DetectorEnhanced.js';
46
48
  export type { IDetectorStatisticsTracker, DetectorTriggerRecord, DetectorStatistics, DetectorConfig, IDetectorRegistry, IEnhancedGateway, } from './guardrails/DetectorEnhanced.js';
47
49
  export { ContextBuilder } from './context/ContextBuilder.js';
50
+ export { ProjectAnatomy } from './context/ProjectAnatomy.js';
51
+ export type { AnatomyEntry } from './context/ProjectAnatomy.js';
48
52
  export { wireEffects } from './orchestration/EffectsWiring.js';
49
53
  export * from './tools/index.js';
50
54
  export * from './workflow/WorkflowGuidance.js';
package/dist/index.js CHANGED
@@ -17,6 +17,7 @@ export { TaskEngine } from './tasks/TaskEngine.js';
17
17
  // Knowledge Base
18
18
  export { KnowledgeBase } from './knowledge/KnowledgeBase.js';
19
19
  export { SQLiteKnowledgeBase } from './knowledge/SQLiteKnowledgeBase.js';
20
+ export { CerebrumManager } from './knowledge/CerebrumManager.js';
20
21
  // Ubiquitous Language (mattpocock/skills style)
21
22
  export { UbiquitousLanguageManager, createUbiquitousLanguageManager } from './knowledge/UbiquitousLanguageManager.js';
22
23
  // Evolution
@@ -46,6 +47,7 @@ export { DangerousCommandDetector, SecretLeakDetector, RoleGateDetector, ScopeCr
46
47
  export { DetectorStatisticsTracker, DetectorRegistry, AISlopDetector, HallucinationDetector, DuplicateEditDetector, EnhancedGatewayContext, ALL_ENHANCED_DETECTORS, } from './guardrails/DetectorEnhanced.js';
47
48
  // Context
48
49
  export { ContextBuilder } from './context/ContextBuilder.js';
50
+ export { ProjectAnatomy } from './context/ProjectAnatomy.js';
49
51
  // Orchestration
50
52
  export { wireEffects } from './orchestration/EffectsWiring.js';
51
53
  // Tool Orchestration Governance
package/dist/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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"}
@@ -0,0 +1,25 @@
1
+ import type { SQLiteKnowledgeBase } from './SQLiteKnowledgeBase.js';
2
+ export interface CerebrumEntry {
3
+ id: string;
4
+ type: 'preference' | 'do_not_repeat';
5
+ pattern: string;
6
+ description: string;
7
+ createdAt: number;
8
+ hitCount: number;
9
+ }
10
+ export interface CerebrumHit {
11
+ entry: CerebrumEntry;
12
+ matchedWords: string[];
13
+ }
14
+ export declare class CerebrumManager {
15
+ private kb;
16
+ private entries;
17
+ constructor(kb: SQLiteKnowledgeBase);
18
+ addDoNotRepeat(pattern: string, description: string): Promise<CerebrumEntry>;
19
+ addPreference(description: string, tags?: string[]): Promise<CerebrumEntry>;
20
+ check(content: string): CerebrumHit[];
21
+ loadAll(): Promise<CerebrumEntry[]>;
22
+ toMarkdown(): string;
23
+ getEntries(): CerebrumEntry[];
24
+ private fromKbEntry;
25
+ }
@@ -0,0 +1,127 @@
1
+ // SCALE Engine 鈥?Cerebrum Manager
2
+ // Manages Do-Not-Repeat rules and user preferences via the Knowledge Base.
3
+ // Inspired by OpenWolf's cerebrum system.
4
+ export class CerebrumManager {
5
+ constructor(kb) {
6
+ this.kb = kb;
7
+ this.entries = [];
8
+ }
9
+ async addDoNotRepeat(pattern, description) {
10
+ const kbEntry = await this.kb.add({
11
+ type: 'do_not_repeat',
12
+ title: pattern,
13
+ tags: ['cerebrum', 'do_not_repeat'],
14
+ contentRef: description,
15
+ verified: true,
16
+ verifiedBy: 'cerebrum',
17
+ verifiedAt: Date.now(),
18
+ });
19
+ const entry = {
20
+ id: kbEntry.id,
21
+ type: 'do_not_repeat',
22
+ pattern,
23
+ description,
24
+ createdAt: kbEntry.createdAt,
25
+ hitCount: 0,
26
+ };
27
+ this.entries.push(entry);
28
+ return entry;
29
+ }
30
+ async addPreference(description, tags = []) {
31
+ const kbEntry = await this.kb.add({
32
+ type: 'preference',
33
+ title: description,
34
+ tags: ['cerebrum', 'preference', ...tags],
35
+ contentRef: description,
36
+ verified: true,
37
+ verifiedBy: 'cerebrum',
38
+ verifiedAt: Date.now(),
39
+ });
40
+ const entry = {
41
+ id: kbEntry.id,
42
+ type: 'preference',
43
+ pattern: description,
44
+ description,
45
+ createdAt: kbEntry.createdAt,
46
+ hitCount: 0,
47
+ };
48
+ this.entries.push(entry);
49
+ return entry;
50
+ }
51
+ check(content) {
52
+ const hits = [];
53
+ const contentTokens = tokenize(content);
54
+ for (const entry of this.entries) {
55
+ if (entry.type !== 'do_not_repeat')
56
+ continue;
57
+ const patternTokens = tokenize(entry.pattern);
58
+ const overlap = contentTokens.filter(w => patternTokens.includes(w));
59
+ if (overlap.length > 0 && overlap.length >= Math.ceil(patternTokens.length * 0.4)) {
60
+ entry.hitCount++;
61
+ hits.push({ entry, matchedWords: overlap });
62
+ }
63
+ }
64
+ return hits;
65
+ }
66
+ async loadAll() {
67
+ const doNotRepeat = await this.kb.recall({ type: 'do_not_repeat', limit: 200 });
68
+ const preferences = await this.kb.recall({ type: 'preference', limit: 200 });
69
+ this.entries = [
70
+ ...doNotRepeat.map(e => this.fromKbEntry(e, 'do_not_repeat')),
71
+ ...preferences.map(e => this.fromKbEntry(e, 'preference')),
72
+ ];
73
+ return this.entries;
74
+ }
75
+ toMarkdown() {
76
+ const lines = [
77
+ '# cerebrum.md',
78
+ '',
79
+ `> Auto-maintained by SCALE Engine. Last updated: ${new Date().toISOString()}`,
80
+ '',
81
+ ];
82
+ const dnr = this.entries.filter(e => e.type === 'do_not_repeat');
83
+ const prefs = this.entries.filter(e => e.type === 'preference');
84
+ if (dnr.length > 0) {
85
+ lines.push('## Do Not Repeat');
86
+ lines.push('');
87
+ for (const e of dnr) {
88
+ lines.push(`- **${e.pattern}** - ${e.description} (hits: ${e.hitCount})`);
89
+ }
90
+ lines.push('');
91
+ }
92
+ if (prefs.length > 0) {
93
+ lines.push('## Preferences');
94
+ lines.push('');
95
+ for (const e of prefs) {
96
+ lines.push(`- ${e.description}`);
97
+ }
98
+ lines.push('');
99
+ }
100
+ if (dnr.length === 0 && prefs.length === 0) {
101
+ lines.push('_No entries yet._');
102
+ lines.push('');
103
+ }
104
+ return lines.join('\n');
105
+ }
106
+ getEntries() {
107
+ return this.entries;
108
+ }
109
+ fromKbEntry(kb, type) {
110
+ return {
111
+ id: kb.id,
112
+ type,
113
+ pattern: kb.title,
114
+ description: kb.contentRef || kb.title,
115
+ createdAt: kb.createdAt,
116
+ hitCount: kb.accessCount,
117
+ };
118
+ }
119
+ }
120
+ function tokenize(text) {
121
+ return text
122
+ .toLowerCase()
123
+ .replace(/[^\p{L}\p{N}_]+/gu, ' ')
124
+ .split(/\s+/)
125
+ .filter(w => w.length > 2);
126
+ }
127
+ //# sourceMappingURL=CerebrumManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CerebrumManager.js","sourceRoot":"","sources":["../../src/knowledge/CerebrumManager.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export declare class SQLiteKnowledgeBase implements IKnowledgeBase {
5
5
  private eventBus;
6
6
  private db;
7
7
  private seq;
8
+ private tfidfIndex;
8
9
  constructor(eventBus: IEventBus, opts?: {
9
10
  dbPath?: string;
10
11
  });
@@ -2,6 +2,7 @@
2
2
  // Persistent version of KnowledgeBase using better-sqlite3
3
3
  // Design ref: docs/03-CORE-MODULES.md §3.4
4
4
  import Database from 'better-sqlite3';
5
+ import { TfidfIndex } from './TfidfIndex.js';
5
6
  import { logger } from '../core/logger.js';
6
7
  import { mkdirSync } from 'node:fs';
7
8
  import { dirname } from 'node:path';
@@ -32,6 +33,7 @@ export class SQLiteKnowledgeBase {
32
33
  constructor(eventBus, opts = {}) {
33
34
  this.eventBus = eventBus;
34
35
  this.seq = 0;
36
+ this.tfidfIndex = null;
35
37
  const dbPath = opts.dbPath ?? '.scale/knowledge.db';
36
38
  mkdirSync(dirname(dbPath), { recursive: true });
37
39
  this.db = new Database(dbPath);
@@ -61,6 +63,11 @@ export class SQLiteKnowledgeBase {
61
63
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
62
64
  `).run(entry.id, entry.type, entry.title, JSON.stringify(entry.tags), entry.contentRef, entry.embeddingId ?? null, entry.relevance, entry.accessCount, entry.lastAccessed ?? null, entry.verified ? 1 : 0, entry.verifiedBy ?? null, entry.verifiedAt ?? null, entry.createdAt, entry.sourceArtifact ?? null);
63
65
  this.eventBus.emit('lesson.proposed', { lessonId: entry.id }, { artifactId: input.sourceArtifact });
66
+ // Update TF-IDF index
67
+ if (this.tfidfIndex) {
68
+ const text = [entry.title, JSON.stringify(entry.tags), entry.contentRef].filter(Boolean).join(' ');
69
+ this.tfidfIndex.upsert(entry.id, text);
70
+ }
64
71
  return entry;
65
72
  }
66
73
  async recall(query) {
@@ -91,9 +98,30 @@ export class SQLiteKnowledgeBase {
91
98
  return rows.map((r) => this.fromRow(r));
92
99
  }
93
100
  async recallByVector(text, topK) {
94
- // Qdrant integration placeholder falls back to recall
95
- logger.debug({ text, topK }, 'recallByVector (SQLite fallback to recall)');
96
- return this.recall({ verifiedOnly: true, limit: topK });
101
+ // Build TF-IDF index if not already built
102
+ if (!this.tfidfIndex) {
103
+ this.tfidfIndex = new TfidfIndex();
104
+ const rows = this.db.prepare('SELECT id, title, tags, content_ref FROM knowledge_entries').all();
105
+ this.tfidfIndex.buildFromRows(rows);
106
+ logger.debug({ docCount: rows.length }, 'TF-IDF index built');
107
+ }
108
+ const results = this.tfidfIndex.search(text, topK);
109
+ if (results.length === 0) {
110
+ logger.debug({ text, topK }, 'recallByVector: no matches found');
111
+ return this.recall({ verifiedOnly: true, limit: topK });
112
+ }
113
+ const entries = [];
114
+ for (const { id, score } of results) {
115
+ const row = this.db.prepare('SELECT * FROM knowledge_entries WHERE id = ?').get(id);
116
+ if (row) {
117
+ const entry = this.fromRow(row);
118
+ // Boost relevance by similarity score
119
+ entry.relevance = Math.min(1, entry.relevance * (1 + score));
120
+ entries.push(entry);
121
+ }
122
+ }
123
+ logger.debug({ text, topK, matches: entries.length }, 'recallByVector (TF-IDF)');
124
+ return entries;
97
125
  }
98
126
  async markHelpful(id, sessionId) {
99
127
  const row = this.db.prepare('SELECT * FROM knowledge_entries WHERE id = ?').get(id);
@@ -1 +1 @@
1
- {"version":3,"file":"SQLiteKnowledgeBase.js","sourceRoot":"","sources":["../../src/knowledge/SQLiteKnowledgeBase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SQLiteKnowledgeBase.js","sourceRoot":"","sources":["../../src/knowledge/SQLiteKnowledgeBase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ export interface TfidfSearchResult {
2
+ id: string;
3
+ score: number;
4
+ }
5
+ export declare class TfidfIndex {
6
+ private docTerms;
7
+ private docFreq;
8
+ private docCount;
9
+ /**
10
+ * 添加/更新文档到索引
11
+ */
12
+ upsert(id: string, text: string): void;
13
+ /**
14
+ * 从索引中移除文档
15
+ */
16
+ remove(id: string): void;
17
+ /**
18
+ * 搜索最相似的 topK 个文档
19
+ */
20
+ search(query: string, topK: number): TfidfSearchResult[];
21
+ /**
22
+ * 从行数据批量构建索引
23
+ */
24
+ buildFromRows(rows: Array<{
25
+ id: string;
26
+ title: string;
27
+ tags: string;
28
+ content_ref: string;
29
+ }>): void;
30
+ /**
31
+ * 清空索引
32
+ */
33
+ clear(): void;
34
+ /**
35
+ * 获取索引大小
36
+ */
37
+ get size(): number;
38
+ /**
39
+ * 分词:小写 + 按非字母数字分割 + 过滤停用词和短词
40
+ */
41
+ private tokenize;
42
+ /**
43
+ * 计算 TF-IDF 向量
44
+ */
45
+ private tfidfVector;
46
+ /**
47
+ * 计算余弦相似度
48
+ */
49
+ private cosineSimilarity;
50
+ }
@@ -0,0 +1,177 @@
1
+ // SCALE Engine — TF-IDF Index
2
+ // 本地向量搜索,零外部依赖,基于 TF-IDF + 余弦相似度
3
+ export class TfidfIndex {
4
+ constructor() {
5
+ this.docTerms = new Map();
6
+ this.docFreq = new Map(); // term → 出现在多少文档中
7
+ this.docCount = 0;
8
+ }
9
+ /**
10
+ * 添加/更新文档到索引
11
+ */
12
+ upsert(id, text) {
13
+ // 如果已存在,先移除旧的
14
+ if (this.docTerms.has(id)) {
15
+ this.remove(id);
16
+ }
17
+ const terms = this.tokenize(text);
18
+ this.docTerms.set(id, terms);
19
+ this.docCount++;
20
+ // 更新文档频率
21
+ const uniqueTerms = new Set(terms);
22
+ for (const term of uniqueTerms) {
23
+ this.docFreq.set(term, (this.docFreq.get(term) ?? 0) + 1);
24
+ }
25
+ }
26
+ /**
27
+ * 从索引中移除文档
28
+ */
29
+ remove(id) {
30
+ const terms = this.docTerms.get(id);
31
+ if (!terms)
32
+ return;
33
+ const uniqueTerms = new Set(terms);
34
+ for (const term of uniqueTerms) {
35
+ const count = this.docFreq.get(term) ?? 0;
36
+ if (count <= 1) {
37
+ this.docFreq.delete(term);
38
+ }
39
+ else {
40
+ this.docFreq.set(term, count - 1);
41
+ }
42
+ }
43
+ this.docTerms.delete(id);
44
+ this.docCount--;
45
+ }
46
+ /**
47
+ * 搜索最相似的 topK 个文档
48
+ */
49
+ search(query, topK) {
50
+ if (this.docCount === 0)
51
+ return [];
52
+ const queryTerms = this.tokenize(query);
53
+ if (queryTerms.length === 0)
54
+ return [];
55
+ const queryVec = this.tfidfVector(queryTerms);
56
+ if (queryVec.size === 0)
57
+ return [];
58
+ const results = [];
59
+ for (const [id, docTerms] of this.docTerms) {
60
+ const docVec = this.tfidfVector(docTerms);
61
+ const score = this.cosineSimilarity(queryVec, docVec);
62
+ if (score > 0) {
63
+ results.push({ id, score });
64
+ }
65
+ }
66
+ // 按分数降序排序
67
+ results.sort((a, b) => b.score - a.score);
68
+ return results.slice(0, topK);
69
+ }
70
+ /**
71
+ * 从行数据批量构建索引
72
+ */
73
+ buildFromRows(rows) {
74
+ this.clear();
75
+ for (const row of rows) {
76
+ // 组合 title + tags + content_ref 作为搜索文本
77
+ const text = [row.title, row.tags, row.content_ref].filter(Boolean).join(' ');
78
+ this.upsert(row.id, text);
79
+ }
80
+ }
81
+ /**
82
+ * 清空索引
83
+ */
84
+ clear() {
85
+ this.docTerms.clear();
86
+ this.docFreq.clear();
87
+ this.docCount = 0;
88
+ }
89
+ /**
90
+ * 获取索引大小
91
+ */
92
+ get size() {
93
+ return this.docCount;
94
+ }
95
+ /**
96
+ * 分词:小写 + 按非字母数字分割 + 过滤停用词和短词
97
+ */
98
+ tokenize(text) {
99
+ const stopWords = new Set([
100
+ 'the', 'a', 'an', 'is', 'are', 'was', 'were', 'be', 'been', 'being',
101
+ 'have', 'has', 'had', 'do', 'does', 'did', 'will', 'would', 'could',
102
+ 'should', 'may', 'might', 'shall', 'can', 'need', 'dare', 'ought',
103
+ 'and', 'or', 'but', 'if', 'then', 'else', 'when', 'at', 'from',
104
+ 'by', 'for', 'with', 'about', 'against', 'between', 'through',
105
+ 'during', 'before', 'after', 'above', 'below', 'to', 'from',
106
+ 'up', 'down', 'in', 'out', 'on', 'off', 'over', 'under',
107
+ 'again', 'further', 'then', 'once', 'here', 'there', 'when',
108
+ 'where', 'why', 'how', 'all', 'both', 'each', 'few', 'more',
109
+ 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only',
110
+ 'own', 'same', 'so', 'than', 'too', 'very', 's', 't', 'just',
111
+ 'don', 'now',
112
+ // 中文停用词
113
+ '的', '了', '在', '是', '我', '有', '和', '就', '不', '人', '都',
114
+ '一', '一个', '上', '也', '很', '到', '说', '要', '去', '你',
115
+ '会', '着', '没有', '看', '好', '自己', '这',
116
+ ]);
117
+ const rawTokens = text
118
+ .toLowerCase()
119
+ .split(/[^a-z0-9一-鿿]+/)
120
+ .filter(token => token && !stopWords.has(token));
121
+ const tokens = [];
122
+ for (const token of rawTokens) {
123
+ if (/[一-鿿]/.test(token)) {
124
+ // CJK: emit each character as a token (words aren't space-separated)
125
+ for (const ch of token) {
126
+ if (/[一-鿿]/.test(ch))
127
+ tokens.push(ch);
128
+ }
129
+ }
130
+ else if (token.length >= 2) {
131
+ tokens.push(token);
132
+ }
133
+ }
134
+ return tokens;
135
+ }
136
+ /**
137
+ * 计算 TF-IDF 向量
138
+ */
139
+ tfidfVector(terms) {
140
+ const tfidf = new Map();
141
+ const uniqueTerms = new Set(terms);
142
+ // 计算词频 (TF)
143
+ const tf = new Map();
144
+ for (const term of terms) {
145
+ tf.set(term, (tf.get(term) ?? 0) + 1);
146
+ }
147
+ for (const term of uniqueTerms) {
148
+ const termFreq = (tf.get(term) ?? 0) / terms.length;
149
+ const docFreq = this.docFreq.get(term) ?? 0;
150
+ const idf = docFreq > 0 ? Math.log(this.docCount / docFreq) : 0;
151
+ const weight = termFreq * idf;
152
+ if (weight > 0)
153
+ tfidf.set(term, weight);
154
+ }
155
+ return tfidf;
156
+ }
157
+ /**
158
+ * 计算余弦相似度
159
+ */
160
+ cosineSimilarity(a, b) {
161
+ if (a.size === 0 || b.size === 0)
162
+ return 0;
163
+ // 点积
164
+ let dot = 0;
165
+ for (const [term, weight] of a) {
166
+ if (b.has(term))
167
+ dot += weight * b.get(term);
168
+ }
169
+ // 模
170
+ const magA = Math.sqrt(Array.from(a.values()).reduce((s, w) => s + w * w, 0));
171
+ const magB = Math.sqrt(Array.from(b.values()).reduce((s, w) => s + w * w, 0));
172
+ if (magA === 0 || magB === 0)
173
+ return 0;
174
+ return dot / (magA * magB);
175
+ }
176
+ }
177
+ //# sourceMappingURL=TfidfIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TfidfIndex.js","sourceRoot":"","sources":["../../src/knowledge/TfidfIndex.ts"],"names":[],"mappings":"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"}
@@ -94,7 +94,7 @@ export class SkillDiscovery {
94
94
  async discover(context) {
95
95
  // 独立模式下无法执行发现功能
96
96
  if (!this.registry) {
97
- console.warn('SkillDiscovery: registry not initialized, discover disabled');
97
+ logger.warn('SkillDiscovery: registry not initialized, discover disabled');
98
98
  return [];
99
99
  }
100
100
  const results = [];