@gulibs/safe-coder 0.0.24 → 0.0.26

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 (34) hide show
  1. package/README.md +447 -15
  2. package/dist/documentation/browser-manager.d.ts +51 -0
  3. package/dist/documentation/browser-manager.d.ts.map +1 -0
  4. package/dist/documentation/browser-manager.js +260 -0
  5. package/dist/documentation/browser-manager.js.map +1 -0
  6. package/dist/documentation/checkpoint-manager.d.ts +38 -0
  7. package/dist/documentation/checkpoint-manager.d.ts.map +1 -0
  8. package/dist/documentation/checkpoint-manager.js +101 -0
  9. package/dist/documentation/checkpoint-manager.js.map +1 -0
  10. package/dist/documentation/doc-crawler.d.ts +103 -1
  11. package/dist/documentation/doc-crawler.d.ts.map +1 -1
  12. package/dist/documentation/doc-crawler.js +931 -151
  13. package/dist/documentation/doc-crawler.js.map +1 -1
  14. package/dist/documentation/llms-txt/detector.d.ts +31 -0
  15. package/dist/documentation/llms-txt/detector.d.ts.map +1 -0
  16. package/dist/documentation/llms-txt/detector.js +77 -0
  17. package/dist/documentation/llms-txt/detector.js.map +1 -0
  18. package/dist/documentation/llms-txt/downloader.d.ts +30 -0
  19. package/dist/documentation/llms-txt/downloader.d.ts.map +1 -0
  20. package/dist/documentation/llms-txt/downloader.js +84 -0
  21. package/dist/documentation/llms-txt/downloader.js.map +1 -0
  22. package/dist/documentation/llms-txt/index.d.ts +4 -0
  23. package/dist/documentation/llms-txt/index.d.ts.map +1 -0
  24. package/dist/documentation/llms-txt/index.js +4 -0
  25. package/dist/documentation/llms-txt/index.js.map +1 -0
  26. package/dist/documentation/llms-txt/parser.d.ts +43 -0
  27. package/dist/documentation/llms-txt/parser.d.ts.map +1 -0
  28. package/dist/documentation/llms-txt/parser.js +177 -0
  29. package/dist/documentation/llms-txt/parser.js.map +1 -0
  30. package/dist/index.js +0 -0
  31. package/dist/server/mcp-server.d.ts.map +1 -1
  32. package/dist/server/mcp-server.js +48 -3
  33. package/dist/server/mcp-server.js.map +1 -1
  34. package/package.json +16 -11
package/README.md CHANGED
@@ -18,18 +18,29 @@
18
18
  - 智能缓存,基于版本键和 TTL
19
19
  - 热门包的背景刷新
20
20
 
21
- ### 文档爬取和技能生成
21
+ ### 文档爬取和技能生成 🚀
22
22
 
23
+ #### 核心功能
23
24
  - 递归爬取文档网站,自动跟踪文档链接
24
25
  - 智能边界检测,只在文档路径内爬取
25
26
  - 生成结构化的 Agent Skill 输出(Markdown 格式)
26
27
  - 支持深度限制、页面限制和速率控制
27
28
  - 自动组织内容,生成目录和章节
29
+
30
+ #### 基础特性
28
31
  - **SPA 检测**:自动检测单页应用并提供建议
29
32
  - **智能重试**:对临时错误自动重试,提高成功率
30
33
  - **错误分类**:详细的错误类型统计和分析
31
34
  - **进度监控**:实时显示爬取进度和性能指标
32
35
 
36
+ #### 🌟 增强特性(新增)
37
+ - **双重爬取策略**:支持 BFS(广度优先)和 DFS(深度优先)两种策略
38
+ - **并行爬取**:1-10个worker并发,速度提升 **4-6倍** ⚡
39
+ - **断点续传**:中断后可恢复,支持大规模文档爬取
40
+ - **llms.txt支持**:自动检测和使用llms.txt文件,效率提升 **2-3倍** ⚡
41
+ - **Markdown支持**:完整支持.md文件爬取和结构化提取
42
+ - **智能质量检测**:6项指标多维度评估内容质量
43
+
33
44
  ### 网页文档浏览
34
45
 
35
46
  - 浏览和搜索网页文档内容
@@ -435,11 +446,11 @@ pwd
435
446
  在 https://expressjs.com/en/guide 中查找关于路由的内容
436
447
  ```
437
448
 
438
- #### `crawl_documentation` - 爬取文档并生成技能
449
+ #### `crawl_documentation` - 爬取文档并生成Agent Skill 🚀
439
450
 
440
451
  递归爬取文档网站,提取内容并生成结构化的 Agent Skill。
441
452
 
442
- **参数:**
453
+ **基础参数:**
443
454
  - `url`(必需):文档根 URL
444
455
  - `maxDepth`(可选):最大爬取深度(默认:3)
445
456
  - `maxPages`(可选):最大页面数(默认:50)
@@ -451,35 +462,181 @@ pwd
451
462
  - `outputDir`(可选):保存技能文件的目录(如果不提供,只返回内容)
452
463
  - `filename`(可选):自定义文件名(不含扩展名)
453
464
 
454
- **新功能:**
465
+ **🌟 增强参数(新增):**
466
+ - `crawlStrategy`(可选):爬取策略 `'bfs'` | `'dfs'`(默认:bfs)
467
+ - **BFS**(广度优先):逐层爬取,适合全面覆盖
468
+ - **DFS**(深度优先):深入一条路径,适合深度理解
469
+ - `workers`(可选):并发worker数量 1-10(默认:1)
470
+ - 建议:小型站点2-3个,大型站点5-8个
471
+ - 性能提升:3 workers ≈ 3倍,5 workers ≈ 4-5倍
472
+ - `skipLlmsTxt`(可选):是否跳过llms.txt检测(默认:false)
473
+ - 启用时自动检测和使用llms.txt,效率提升2-3倍
474
+ - `checkpoint`(可选):断点续传配置
475
+ - `enabled`:是否启用断点功能
476
+ - `interval`:每N页保存一次(默认:10)
477
+ - `file`:checkpoint文件路径(可选)
478
+ - `resume`(可选):是否从上次断点恢复(默认:false)
479
+
480
+ **基础功能:**
455
481
  - ✅ **SPA 检测**:自动检测单页应用(SPA)并提供建议
456
482
  - ✅ **智能重试**:对临时错误(超时、网络错误等)自动重试
457
483
  - ✅ **错误分类**:详细的错误类型分类和统计
458
484
  - ✅ **进度日志**:实时显示爬取进度和统计信息
459
485
 
460
- **使用示例:**
486
+ **🎯 使用示例:**
461
487
 
488
+ ##### 1. 快速基础爬取
462
489
  ```
463
490
  爬取 https://react.dev/docs 的文档并生成技能
464
491
  ```
465
492
 
493
+ ##### 2. 并行加速爬取(推荐)
494
+ ```
495
+ 从 https://react.dev 生成 agent skill,使用 5 个并发worker,最多爬取 200 页
496
+ ```
497
+
498
+ 对应参数:
499
+ ```json
500
+ {
501
+ "url": "https://react.dev",
502
+ "workers": 5,
503
+ "maxPages": 200,
504
+ "rateLimit": 200
505
+ }
506
+ ```
507
+
508
+ ##### 3. 深度优先策略
466
509
  ```
467
- https://nextjs.org/docs 生成 agent skill,深度限制为 2,最多 10 页,保存到 ./output
510
+ 使用 DFS 策略爬取 https://docs.example.com,深度限制为 6
468
511
  ```
469
512
 
470
- **输出:**
513
+ 对应参数:
514
+ ```json
515
+ {
516
+ "url": "https://docs.example.com",
517
+ "crawlStrategy": "dfs",
518
+ "maxDepth": 6,
519
+ "workers": 3
520
+ }
521
+ ```
522
+
523
+ ##### 4. 大规模爬取(带断点)
524
+ ```
525
+ 爬取 https://large-docs.com,最多 1000 页,启用断点每 50 页保存一次
526
+ ```
527
+
528
+ 对应参数:
529
+ ```json
530
+ {
531
+ "url": "https://large-docs.com",
532
+ "maxPages": 1000,
533
+ "workers": 8,
534
+ "checkpoint": {
535
+ "enabled": true,
536
+ "interval": 50
537
+ }
538
+ }
539
+ ```
540
+
541
+ ##### 5. 恢复中断的爬取
542
+ ```
543
+ 从断点恢复 https://large-docs.com 的爬取
544
+ ```
545
+
546
+ 对应参数:
547
+ ```json
548
+ {
549
+ "url": "https://large-docs.com",
550
+ "resume": true,
551
+ "checkpoint": { "enabled": true }
552
+ }
553
+ ```
554
+
555
+ **📊 性能对比:**
556
+
557
+ | 爬取规模 | 串行模式 | 并行模式(workers=5) | 提升 |
558
+ |---------|---------|-------------------|------|
559
+ | 50页 | ~90秒 | ~22秒 | **4倍** ⚡ |
560
+ | 100页 | ~180秒 | ~45秒 | **4倍** ⚡ |
561
+ | 200页 | ~360秒 | ~80秒 | **4.5倍** ⚡ |
562
+
563
+ **输出内容:**
471
564
  - `skillContent`: Markdown 格式的技能内容
472
565
  - `metadata`: 技能元数据(标题、描述、源 URL 等)
473
- - `crawlStats`: 爬取统计(总页数、最大深度、错误列表)
566
+ - `crawlStats`: 爬取统计(总页数、最大深度、错误列表、质量指标)
474
567
  - `files`(可选):保存的文件路径
475
- - `skillFile`: 技能 Markdown 文件路径(如果提供了 outputDir)
476
- - `manifestFile`: 元数据 JSON 文件路径(如果提供了 outputDir)
568
+ - `skillFile`: SKILL.md 文件路径
569
+ - `manifestFile`: metadata.json 文件路径
570
+
571
+ **💡 最佳实践:**
572
+ 1. **先小规模测试**:maxPages设为10-20验证效果
573
+ 2. **逐步增加并发**:从workers=2开始,观察效果
574
+ 3. **大规模使用断点**:超过200页建议启用checkpoint
575
+ 4. **关注质量指标**:diversity和coverage应 > 0.5
576
+
577
+ **🌐 SPA网站支持(新增):**
578
+
579
+ 系统智能检测并处理单页应用(React、Vue、Angular等),自动切换HTTP和浏览器渲染模式。
580
+
581
+ ##### 自动处理SPA(推荐)
582
+ ```
583
+ 爬取 https://react.dev 的文档 # 自动检测并处理SPA
584
+ ```
585
+
586
+ ##### SPA策略配置
587
+ ```typescript
588
+ {
589
+ "spaStrategy": "smart", // smart(智能)| auto(自动)| manual(手动)
590
+ "spaFallback": "warn", // warn(警告)| skip(跳过)| error(错误)
591
+ "browserPath": "/path/to/chrome", // 可选:自定义浏览器路径
592
+ "waitForTimeout": 3000, // 可选:等待内容加载时间
593
+ "networkIdleTimeout": 500 // 可选:网络空闲等待时间
594
+ }
595
+ ```
596
+
597
+ **三种SPA策略**:
598
+ - **smart(默认)**: HTTP优先,内容不足时自动切换浏览器(推荐)
599
+ - **auto**: 检测到SPA立即使用浏览器
600
+ - **manual**: 仅在useBrowserAutomation=true时使用浏览器
477
601
 
478
- **文件保存:**
479
- - 如果提供了 `outputDir`,会保存两个文件:
480
- - `{filename}.md`: 技能内容文件
481
- - `{filename}.metadata.json`: 元数据文件
482
- - 文件名自动从 URL 生成,或使用自定义 `filename` 参数
602
+ **浏览器要求**:
603
+ - 系统已安装Chrome/Chromium/Edge(推荐,自动检测)
604
+ - 或安装完整版puppeteer(自动下载Chromium)
605
+ - 或设置CHROME_PATH环境变量
606
+ - 📖 详见:[SPA浏览器设置指南](docs/SPA_BROWSER_SETUP.md)
607
+
608
+ **性能对比**:
609
+ - HTTP模式:0.5-1秒/页
610
+ - 浏览器模式:2-3秒/页
611
+ - smart策略:平均<1.5秒/页(自动优化)
612
+
613
+ **使用示例**:
614
+
615
+ 快速SPA爬取:
616
+ ```
617
+ 爬取 https://vuejs.org,自动处理SPA,最多100页
618
+ ```
619
+
620
+ 已知SPA站点:
621
+ ```
622
+ 从 https://angular.io 生成技能,使用浏览器渲染,5个并发worker
623
+ ```
624
+
625
+ 对应参数:
626
+ ```json
627
+ {
628
+ "url": "https://angular.io",
629
+ "spaStrategy": "auto",
630
+ "workers": 5,
631
+ "maxPages": 200
632
+ }
633
+ ```
634
+
635
+ **📚 详细文档:**
636
+ - SPA浏览器设置:`docs/SPA_BROWSER_SETUP.md`
637
+ - 完整使用指南:`docs/ENHANCED_CRAWLING.md`
638
+ - 快速上手:查看项目中的 `QUICKSTART_*.md` 文档
639
+ - 实施细节:`IMPLEMENTATION_SUMMARY.md`
483
640
 
484
641
  #### `detect_errors` - 检测错误
485
642
 
@@ -678,8 +835,45 @@ npm run lint
678
835
  - 使用 `maxPages` 参数限制页面数量(默认 50)
679
836
  - 使用 `maxDepth` 参数限制爬取深度(默认 3)
680
837
  - 调整 `rateLimit` 避免对服务器造成压力(默认 500ms)
838
+ - 使用 `workers` 参数启用并行爬取(推荐5-8个)
839
+ - 启用 `checkpoint` 断点续传(超过200页建议启用)
681
840
  - 大型站点建议分多次爬取不同部分
682
841
 
842
+ ### Q: 如何爬取SPA网站(React、Vue等)?
843
+
844
+ **A:**
845
+ - 系统自动检测SPA并智能切换到浏览器渲染
846
+ - 确保系统已安装Chrome/Chromium/Edge浏览器
847
+ - 使用 `spaStrategy: "smart"` 获得最佳性能(默认)
848
+ - 或使用 `spaStrategy: "auto"` 强制使用浏览器
849
+ - 详见:`docs/SPA_BROWSER_SETUP.md`
850
+
851
+ **示例**:
852
+ ```
853
+ 爬取 https://react.dev,自动处理SPA
854
+ ```
855
+
856
+ ### Q: 系统没有Chrome怎么办?
857
+
858
+ **A:**
859
+ 有三种解决方案:
860
+ 1. **安装Chrome**(推荐):
861
+ - macOS: `brew install --cask google-chrome`
862
+ - Windows: `winget install Google.Chrome`
863
+ - Linux: `sudo apt install google-chrome-stable`
864
+
865
+ 2. **安装完整版puppeteer**(自动下载Chromium):
866
+ ```bash
867
+ npm install puppeteer
868
+ ```
869
+
870
+ 3. **设置浏览器路径**:
871
+ ```bash
872
+ export CHROME_PATH=/path/to/chrome
873
+ ```
874
+
875
+ 详细指南:`docs/SPA_BROWSER_SETUP.md`
876
+
683
877
  ### Q: 网页文档浏览和文档爬取有什么区别?
684
878
 
685
879
  **A:**
@@ -800,6 +994,244 @@ chmod +x dist/index.js
800
994
 
801
995
  MIT
802
996
 
997
+ ## 🎓 在大模型中使用MCP Server生成Agent Skill
998
+
999
+ ### 快速上手
1000
+
1001
+ #### 步骤1:在Claude/Cursor中触发爬取
1002
+
1003
+ **中文触发词:**
1004
+ ```
1005
+ 帮我爬取 https://react.dev 的文档并生成Agent Skill
1006
+ ```
1007
+
1008
+ ```
1009
+ 使用并行爬取从 https://docs.example.com 生成技能,要快一点
1010
+ ```
1011
+
1012
+ ```
1013
+ 递归抓取 https://nextjs.org/docs 的文档,深度优先策略
1014
+ ```
1015
+
1016
+ **英文触发词:**
1017
+ ```
1018
+ Crawl https://react.dev and generate an agent skill
1019
+ ```
1020
+
1021
+ ```
1022
+ Use parallel crawling to create a skill from https://docs.example.com
1023
+ ```
1024
+
1025
+ ```
1026
+ Recursive crawl https://nextjs.org/docs with DFS strategy
1027
+ ```
1028
+
1029
+ #### 步骤2:配置爬取参数
1030
+
1031
+ Claude/Cursor会自动调用`crawl_documentation`工具,你可以在对话中指定参数:
1032
+
1033
+ **基础爬取:**
1034
+ ```
1035
+ 爬取 https://react.dev/docs,最多50页
1036
+ ```
1037
+
1038
+ **快速爬取(推荐):**
1039
+ ```
1040
+ 爬取 https://react.dev,使用5个并发worker,最多200页
1041
+ ```
1042
+
1043
+ **深度研究:**
1044
+ ```
1045
+ 使用DFS策略深入爬取 https://docs.example.com,深度限制为6层
1046
+ ```
1047
+
1048
+ **大规模爬取:**
1049
+ ```
1050
+ 爬取 https://large-docs.com,最多1000页,启用断点续传每50页保存
1051
+ ```
1052
+
1053
+ ### 使用场景
1054
+
1055
+ #### 场景1:快速探索新技术栈
1056
+ ```
1057
+ 帮我爬取 Svelte 的官方文档,快速生成一个技能
1058
+ ```
1059
+
1060
+ **自动参数:**
1061
+ - workers: 3(快速)
1062
+ - maxPages: 50(快速探索)
1063
+ - crawlStrategy: bfs(全面覆盖)
1064
+
1065
+ #### 场景2:深入学习框架
1066
+ ```
1067
+ 深入爬取 Vue 3 的文档,我要完整理解它的 API
1068
+ ```
1069
+
1070
+ **自动参数:**
1071
+ - crawlStrategy: dfs(深入学习)
1072
+ - maxDepth: 5(深入层级)
1073
+ - workers: 5(加速)
1074
+ - maxPages: 200(完整覆盖)
1075
+
1076
+ #### 场景3:大型文档站点
1077
+ ```
1078
+ 爬取 MDN Web Docs 的 JavaScript 部分,分多次进行,支持断点恢复
1079
+ ```
1080
+
1081
+ **自动参数:**
1082
+ - workers: 8(大规模)
1083
+ - maxPages: 1000
1084
+ - checkpoint: { enabled: true, interval: 50 }
1085
+
1086
+ #### 场景4:恢复中断的爬取
1087
+ ```
1088
+ 上次爬取中断了,从断点继续爬取 https://large-docs.com
1089
+ ```
1090
+
1091
+ **自动参数:**
1092
+ - resume: true
1093
+ - checkpoint: { enabled: true }
1094
+
1095
+ ### 生成的Agent Skill格式
1096
+
1097
+ 爬取完成后,会生成标准的Claude Agent Skill格式:
1098
+
1099
+ ```
1100
+ SKILL.md # 主技能文件
1101
+ ├── 技能元数据(YAML frontmatter)
1102
+ ├── When to Use This Skill # 使用场景
1103
+ ├── Core Concepts # 核心概念
1104
+ ├── API Reference # API参考
1105
+ ├── Examples # 示例代码
1106
+ └── Reference Files # 引用文件列表
1107
+
1108
+ references/ # 引用文件目录
1109
+ ├── page-1.md
1110
+ ├── page-2.md
1111
+ └── ...
1112
+ ```
1113
+
1114
+ ### 技能质量指标
1115
+
1116
+ 系统会自动评估生成的Skill质量:
1117
+
1118
+ | 指标 | 说明 | 优秀标准 |
1119
+ |-----|-----|---------|
1120
+ | **内容充足性** | 每页内容长度 | > 100字符/页 |
1121
+ | **结构完整性** | 标题、章节组织 | 至少1个标题/页 |
1122
+ | **内容多样性** | URL路径和主题分布 | diversity > 0.7 |
1123
+ | **API覆盖度** | 代码示例比例 | coverage > 0.5 |
1124
+
1125
+ ### 使用生成的Skill
1126
+
1127
+ #### 方法1:直接在对话中使用
1128
+
1129
+ 生成的Skill会自动出现在Claude的技能列表中,你可以直接引用:
1130
+
1131
+ ```
1132
+ 根据我刚生成的React技能,帮我写一个自定义Hook
1133
+ ```
1134
+
1135
+ #### 方法2:保存为文件
1136
+
1137
+ 如果指定了`outputDir`,Skill会保存为文件:
1138
+
1139
+ ```
1140
+ 爬取并保存到 ./skills 目录,文件名为 react-docs
1141
+ ```
1142
+
1143
+ 生成文件:
1144
+ - `./skills/react-docs.md` - Skill内容
1145
+ - `./skills/react-docs.metadata.json` - 元数据
1146
+
1147
+ #### 方法3:分享给团队
1148
+
1149
+ 将生成的SKILL.md文件放入项目的`.claude/skills/`目录,团队成员都可使用:
1150
+
1151
+ ```bash
1152
+ # 复制到项目技能目录
1153
+ cp output/react-docs.md .claude/skills/
1154
+
1155
+ # 提交到版本控制
1156
+ git add .claude/skills/react-docs.md
1157
+ git commit -m "Add React documentation skill"
1158
+ ```
1159
+
1160
+ ### 常见问题
1161
+
1162
+ #### Q: 如何选择爬取策略?
1163
+ **A:**
1164
+ - **BFS(广度优先)**:适合扁平结构、需要全面覆盖的文档
1165
+ - **DFS(深度优先)**:适合层级结构、需要深入理解的文档
1166
+
1167
+ #### Q: workers设置多少合适?
1168
+ **A:**
1169
+ - 小型站点(<50页):workers: 2-3
1170
+ - 中型站点(50-200页):workers: 3-5
1171
+ - 大型站点(>200页):workers: 5-8
1172
+
1173
+ #### Q: 什么时候需要启用断点?
1174
+ **A:**
1175
+ - 爬取页面超过200页
1176
+ - 网络不稳定
1177
+ - 需要分批次爬取
1178
+
1179
+ #### Q: 如何提高爬取速度?
1180
+ **A:**
1181
+ 1. 增加workers数量(推荐5-8个)
1182
+ 2. 降低rateLimit(200-300ms)
1183
+ 3. 确保站点有llms.txt(自动检测)
1184
+
1185
+ #### Q: 生成的Skill质量不够怎么办?
1186
+ **A:**
1187
+ 1. 增加maxPages(建议200+)
1188
+ 2. 调整maxDepth(建议3-5)
1189
+ 3. 使用includePaths精确指定路径
1190
+ 4. 查看日志中的质量指标建议
1191
+
1192
+ ### 性能提示
1193
+
1194
+ **🚀 极速模式(适合快速探索):**
1195
+ ```json
1196
+ {
1197
+ "workers": 5,
1198
+ "maxPages": 50,
1199
+ "rateLimit": 200,
1200
+ "crawlStrategy": "bfs"
1201
+ }
1202
+ ```
1203
+
1204
+ **🎯 深度模式(适合完整学习):**
1205
+ ```json
1206
+ {
1207
+ "workers": 5,
1208
+ "maxPages": 300,
1209
+ "maxDepth": 5,
1210
+ "crawlStrategy": "dfs",
1211
+ "checkpoint": { "enabled": true }
1212
+ }
1213
+ ```
1214
+
1215
+ **⚡ 超快模式(适合有llms.txt的站点):**
1216
+ ```json
1217
+ {
1218
+ "workers": 8,
1219
+ "skipLlmsTxt": false,
1220
+ "rateLimit": 200
1221
+ }
1222
+ ```
1223
+
1224
+ ### 完整文档
1225
+
1226
+ - **快速上手指南**:项目中的快速开始文档
1227
+ - **详细使用说明**:`docs/ENHANCED_CRAWLING.md`
1228
+ - **实施技术细节**:`IMPLEMENTATION_SUMMARY.md`
1229
+ - **原始文档爬取指南**:`docs/DOC_CRAWLER_USAGE.md`
1230
+
1231
+ ---
1232
+
803
1233
  ## 贡献
804
1234
 
805
1235
  欢迎提交 Issue 和 Pull Request!
1236
+
1237
+ 基于 [Skill_Seekers](examples/Skill_Seekers/) 项目的优秀实践,我们实现了完整对标并超越的TypeScript版本。
@@ -0,0 +1,51 @@
1
+ import { type Browser } from 'puppeteer-core';
2
+ export interface BrowserConfig {
3
+ executablePath?: string;
4
+ headless?: boolean;
5
+ timeout?: number;
6
+ waitForTimeout?: number;
7
+ networkIdleTimeout?: number;
8
+ }
9
+ export interface BrowserRenderResult {
10
+ html: string;
11
+ title: string;
12
+ url: string;
13
+ links: Array<{
14
+ text: string;
15
+ url: string;
16
+ }>;
17
+ screenshots?: string[];
18
+ }
19
+ /**
20
+ * Browser manager for SPA rendering using puppeteer-core
21
+ * Detects and uses system Chrome/Chromium/Edge
22
+ */
23
+ export declare class BrowserManager {
24
+ private browser?;
25
+ private config;
26
+ private readonly BROWSER_PATHS;
27
+ constructor();
28
+ /**
29
+ * Detect system browser
30
+ * Returns path to Chrome/Chromium/Edge or null
31
+ */
32
+ detectBrowser(): Promise<string | null>;
33
+ /**
34
+ * Launch browser instance
35
+ */
36
+ launch(config?: Partial<BrowserConfig>): Promise<Browser>;
37
+ /**
38
+ * Render a page and extract content
39
+ * Uses balanced performance mode
40
+ */
41
+ renderPage(url: string): Promise<BrowserRenderResult>;
42
+ /**
43
+ * Close browser instance and cleanup resources
44
+ */
45
+ close(): Promise<void>;
46
+ /**
47
+ * Check if browser is currently launched
48
+ */
49
+ isLaunched(): boolean;
50
+ }
51
+ //# sourceMappingURL=browser-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-manager.d.ts","sourceRoot":"","sources":["../../src/documentation/browser-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,OAAO,EAAa,MAAM,gBAAgB,CAAC;AAOjE,MAAM,WAAW,aAAa;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAUD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAC,CAAU;IAC1B,OAAO,CAAC,MAAM,CAAwB;IAGtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAoB5B;;IAYF;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA6D7C;;OAEG;IACG,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAyD/D;;;OAGG;IACG,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAgF3D;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5B;;OAEG;IACH,UAAU,IAAI,OAAO;CAGtB"}