@devflow-tools/knowledge-engine 0.8.10 → 0.8.11

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 (2) hide show
  1. package/README.md +45 -13
  2. package/package.json +3 -3
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @devflow-tools/knowledge-engine
2
2
 
3
- Knowledge engine for DevFlow — search and sync technical documentation from official sources.
3
+ DevFlow 知识引擎 — 从技术文档站同步内容,BM25 搜索,支持 SPA 页面和静态 HTML。
4
4
 
5
5
  ## Installation
6
6
 
@@ -15,25 +15,57 @@ import { KnowledgeEngine } from '@devflow-tools/knowledge-engine';
15
15
 
16
16
  const engine = new KnowledgeEngine({ projectRoot: '/path/to/project' });
17
17
 
18
- // Search knowledge base
19
- const results = await engine.search('React useEffect cleanup');
18
+ // 注册知识源
19
+ await engine.registerSource({
20
+ name: 'react',
21
+ urls: ['https://react.dev/reference'],
22
+ pluginName: 'react',
23
+ version: '19.0.0',
24
+ renderJs: true, // SPA 页面需要 Playwright 渲染
25
+ });
20
26
 
21
- // Sync docs from sources
22
- await engine.syncDocs('react');
27
+ // 同步文档
28
+ const results = await engine.syncDocs('react');
29
+
30
+ // 搜索知识库
31
+ const entries = await engine.search('useEffect cleanup');
23
32
  ```
24
33
 
25
34
  ## Features
26
35
 
27
- - **Documentation search** — BM25-based keyword search across synced docs
28
- - **Multi-source sync** — pull docs from GitHub, official sites
29
- - **Markdown conversion** — HTML to Markdown with heading-preserving chunking
36
+ - **智能抓取** — 自动检测页面内容量:静态内容充足则用 HTTP fetch,SPA 页面自动升级到 Playwright 浏览器渲染
37
+ - **`renderJs` 标记** — 在 `KnowledgeSource` 中设置 `renderJs: true` 直达 Playwright 模式,跳过自动检测
38
+ - **BM25 搜索** — 基于关键词的文档搜索,支持 scope 过滤(react/vue/nest 等)
39
+ - **HTML → Markdown** — 使用 turndown 转换,标题级 chunk 分块保留文档结构
40
+ - **多源同步** — 从官方文档、GitHub 等 URL 列表批量抓取和更新
41
+
42
+ ## Fetcher API
43
+
44
+ | 函数 | 说明 |
45
+ |------|------|
46
+ | `fetchHtml(url)` | HTTP fetch + 重试(最多 2 次),支持 429 限流处理 |
47
+ | `fetchHtmlBrowser(url)` | Playwright Chromium 浏览器渲染(用于 SPA 页面) |
48
+ | `fetchHtmlSmart(url)` | 智能模式:先 fetch → 内容 < 500 字符 → 自动升级到浏览器 |
49
+ | `closeBrowser()` | 关闭 Playwright 浏览器实例,释放资源 |
50
+
51
+ ## Engine API
52
+
53
+ - `new KnowledgeEngine({ projectRoot })` — 构造函数
54
+ - `.registerSource(source)` — 注册/合并知识源(已存在则合并 URL 列表)
55
+ - `.syncDocs(pluginName?)` — 同步指定(或全部)知识源的文档
56
+ - `.search(query, options?)` — BM25 搜索知识库,支持 `scope` 过滤
57
+ - `.lookup(symbol, scope?)` — 精确匹配知识条目
58
+ - `.getSources()` — 列出所有知识源及其状态(chunk 数、最后同步时间)
30
59
 
31
- ## API
60
+ ## Environment
61
+
62
+ 需要安装 Playwright Chromium:
63
+
64
+ ```bash
65
+ npx playwright install chromium
66
+ ```
32
67
 
33
- - `KnowledgeEngine` — main class
34
- - `.search(query)` — search knowledge base
35
- - `.syncDocs(pluginName?)` — sync documentation for a plugin
36
- - `.getSources()` — list available knowledge sources
68
+ 或是使用 `postinstall` 脚本(已在 package.json 中配置)。
37
69
 
38
70
  ## License
39
71
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devflow-tools/knowledge-engine",
3
- "version": "0.8.10",
3
+ "version": "0.8.11",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -18,7 +18,7 @@
18
18
  "postinstall": "playwright install chromium || true"
19
19
  },
20
20
  "dependencies": {
21
- "@devflow-tools/sdk": "^0.8.10",
21
+ "@devflow-tools/sdk": "^0.8.11",
22
22
  "playwright": "^1.52.0",
23
23
  "turndown": "^7.2.4"
24
24
  },
@@ -30,5 +30,5 @@
30
30
  "files": [
31
31
  "dist"
32
32
  ],
33
- "gitHead": "ac4f93d6a52fa40b4126b514e899eee581f8f46e"
33
+ "gitHead": "a0a0b61377aa88ebbd380f50a5d532f63175ef45"
34
34
  }