lasso-mcp 1.0.0-rc.1 → 1.2.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.
- package/dist/browse/content-filter-cite.d.ts +44 -0
- package/dist/browse/content-filter-cite.d.ts.map +1 -0
- package/dist/browse/content-filter-cite.js +71 -0
- package/dist/browse/content-filter-cite.js.map +1 -0
- package/dist/browse/markdown-extractor.d.ts +53 -0
- package/dist/browse/markdown-extractor.d.ts.map +1 -0
- package/dist/browse/markdown-extractor.js +140 -0
- package/dist/browse/markdown-extractor.js.map +1 -0
- package/dist/channels/BrowseChannel.d.ts.map +1 -1
- package/dist/channels/BrowseChannel.js +53 -5
- package/dist/channels/BrowseChannel.js.map +1 -1
- package/dist/desktop/AxProvider.d.ts.map +1 -1
- package/dist/desktop/AxProvider.js +4 -2
- package/dist/desktop/AxProvider.js.map +1 -1
- package/dist/desktop/OutlineMapper.d.ts +19 -0
- package/dist/desktop/OutlineMapper.d.ts.map +1 -1
- package/dist/desktop/OutlineMapper.js +66 -0
- package/dist/desktop/OutlineMapper.js.map +1 -1
- package/dist/desktop/desktop-types.d.ts +6 -0
- package/dist/desktop/desktop-types.d.ts.map +1 -1
- package/dist/desktop/desktop-types.js.map +1 -1
- package/dist/doctor/doctor.d.ts +1 -1
- package/dist/doctor/doctor.d.ts.map +1 -1
- package/dist/doctor/doctor.js +134 -2
- package/dist/doctor/doctor.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/tools/browse.d.ts.map +1 -1
- package/dist/tools/browse.js +4 -0
- package/dist/tools/browse.js.map +1 -1
- package/dist/tools/descriptions.d.ts.map +1 -1
- package/dist/tools/descriptions.js +18 -0
- package/dist/tools/descriptions.js.map +1 -1
- package/dist/tools/desktop.d.ts.map +1 -1
- package/dist/tools/desktop.js +1 -0
- package/dist/tools/desktop.js.map +1 -1
- package/dist/tools/fetch-url.d.ts +3 -0
- package/dist/tools/fetch-url.d.ts.map +1 -1
- package/dist/tools/fetch-url.js +30 -0
- package/dist/tools/fetch-url.js.map +1 -1
- package/dist/types.d.ts +39 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -1
- package/src/browse/content-filter-cite.ts +95 -0
- package/src/browse/markdown-extractor.ts +186 -0
- package/src/channels/BrowseChannel.ts +61 -5
- package/src/desktop/AxProvider.ts +4 -2
- package/src/desktop/OutlineMapper.ts +69 -0
- package/src/desktop/desktop-types.ts +6 -0
- package/src/doctor/doctor.ts +144 -2
- package/src/index.ts +1 -1
- package/src/invariants/check-invariants.mjs +224 -0
- package/src/tools/browse.ts +4 -0
- package/src/tools/descriptions.ts +18 -0
- package/src/tools/desktop.ts +1 -0
- package/src/tools/fetch-url.ts +31 -0
- package/src/types.ts +42 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* content-filter-cite(parse12 §3.4 v1.1 新增)
|
|
3
|
+
*
|
|
4
|
+
* markdown_cited 档的 ⟨N⟩ 引用角标 —— Crawl4AI convert_links_to_citations
|
|
5
|
+
* 算法的纯 TS reimplement(~50 行)。
|
|
6
|
+
*
|
|
7
|
+
* 借鉴源(守 INV-69:只借鉴算法不引依赖):
|
|
8
|
+
* - Crawl4AI markdown_generation_strategy.py(Apache-2.0;convert_links_to_citations
|
|
9
|
+
* 的核心思路:扫 inline link → URL 去重分配角标 → 替换为 text ⟨N⟩ → 末尾 References 段)
|
|
10
|
+
* - 守 INV-69:不 import crawl4ai(Python 包不可作 JS 依赖);本文件是纯 TS reimplement
|
|
11
|
+
*
|
|
12
|
+
* 算法(parse12 §3.4):
|
|
13
|
+
* 1. 扫 markdown 中所有 [text](url) 形式的 inline 链接
|
|
14
|
+
* 2. URL 去重(Map<url, n>),首次出现分配 ⟨N⟩ 角标(1-based)
|
|
15
|
+
* 3. 替换 inline 链接为 `text ⟨N⟩`(保留链接文字,去 URL 本体)
|
|
16
|
+
* 4. 末尾追加 `\n\n## References\n[1] url\n[2] url\n...`
|
|
17
|
+
*
|
|
18
|
+
* 不做(parse12 §3.4 推迟 v1.2):
|
|
19
|
+
* - PruningContentFilter(DOM 节点 text-density 评分,~200 行 port)
|
|
20
|
+
* - BM25ContentFilter(BM25 相似度过滤,~100 行 port)
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* 单条引用记录(角标编号 + URL)。
|
|
24
|
+
* 角标编号是 1-based(⟨1⟩、⟨2⟩、…)。
|
|
25
|
+
*/
|
|
26
|
+
export interface CitationResult {
|
|
27
|
+
/** 角标编号(1-based,与 References 段 [N] 对应) */
|
|
28
|
+
n: number;
|
|
29
|
+
/** 去重后的 URL */
|
|
30
|
+
url: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* 把 markdown 中的 inline link `[text](url)` 替换为 `text ⟨N⟩` 角标形式,
|
|
34
|
+
* 并在末尾追加去重的 References 段。
|
|
35
|
+
*
|
|
36
|
+
* @param markdown 原始 markdown 文本(可能含 0 个或多个 inline link)
|
|
37
|
+
* @returns { markdown: 加角标后的文本 + References 段, citations: 去重引用表 }
|
|
38
|
+
* 无链接时返回 { markdown: 原文不变, citations: [] }(不加 References 段)
|
|
39
|
+
*/
|
|
40
|
+
export declare function applyCitations(markdown: string): {
|
|
41
|
+
markdown: string;
|
|
42
|
+
citations: CitationResult[];
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=content-filter-cite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-filter-cite.d.ts","sourceRoot":"","sources":["../../src/browse/content-filter-cite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAKH;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,CAAC,EAAE,MAAM,CAAC;IACV,eAAe;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAkBD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B,CA+BA"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* content-filter-cite(parse12 §3.4 v1.1 新增)
|
|
3
|
+
*
|
|
4
|
+
* markdown_cited 档的 ⟨N⟩ 引用角标 —— Crawl4AI convert_links_to_citations
|
|
5
|
+
* 算法的纯 TS reimplement(~50 行)。
|
|
6
|
+
*
|
|
7
|
+
* 借鉴源(守 INV-69:只借鉴算法不引依赖):
|
|
8
|
+
* - Crawl4AI markdown_generation_strategy.py(Apache-2.0;convert_links_to_citations
|
|
9
|
+
* 的核心思路:扫 inline link → URL 去重分配角标 → 替换为 text ⟨N⟩ → 末尾 References 段)
|
|
10
|
+
* - 守 INV-69:不 import crawl4ai(Python 包不可作 JS 依赖);本文件是纯 TS reimplement
|
|
11
|
+
*
|
|
12
|
+
* 算法(parse12 §3.4):
|
|
13
|
+
* 1. 扫 markdown 中所有 [text](url) 形式的 inline 链接
|
|
14
|
+
* 2. URL 去重(Map<url, n>),首次出现分配 ⟨N⟩ 角标(1-based)
|
|
15
|
+
* 3. 替换 inline 链接为 `text ⟨N⟩`(保留链接文字,去 URL 本体)
|
|
16
|
+
* 4. 末尾追加 `\n\n## References\n[1] url\n[2] url\n...`
|
|
17
|
+
*
|
|
18
|
+
* 不做(parse12 §3.4 推迟 v1.2):
|
|
19
|
+
* - PruningContentFilter(DOM 节点 text-density 评分,~200 行 port)
|
|
20
|
+
* - BM25ContentFilter(BM25 相似度过滤,~100 行 port)
|
|
21
|
+
*/
|
|
22
|
+
// ============================================================
|
|
23
|
+
// 常量
|
|
24
|
+
// ============================================================
|
|
25
|
+
/**
|
|
26
|
+
* markdown inline link 正则:[text](url)
|
|
27
|
+
* - text 组:除 ] 外的任意字符(含空格、中文等 Unicode)
|
|
28
|
+
* - url 组:http(s):// 开头,不含空格/右括号(容忍 URL 末尾的 . , ; 等标点
|
|
29
|
+
* 会被 markdown 语法归入 url 组;这是 [text](url) inline link 的标准边界)
|
|
30
|
+
*
|
|
31
|
+
* 注意:用 g flag 支持全局替换;replace callback 逐个匹配处理。
|
|
32
|
+
*/
|
|
33
|
+
const MD_LINK_RE = /\[([^\]]*)\]\((https?:\/\/[^\s)]+)\)/g;
|
|
34
|
+
// ============================================================
|
|
35
|
+
// 核心 API:applyCitations(纯函数,无副作用,可单测)
|
|
36
|
+
// ============================================================
|
|
37
|
+
/**
|
|
38
|
+
* 把 markdown 中的 inline link `[text](url)` 替换为 `text ⟨N⟩` 角标形式,
|
|
39
|
+
* 并在末尾追加去重的 References 段。
|
|
40
|
+
*
|
|
41
|
+
* @param markdown 原始 markdown 文本(可能含 0 个或多个 inline link)
|
|
42
|
+
* @returns { markdown: 加角标后的文本 + References 段, citations: 去重引用表 }
|
|
43
|
+
* 无链接时返回 { markdown: 原文不变, citations: [] }(不加 References 段)
|
|
44
|
+
*/
|
|
45
|
+
export function applyCitations(markdown) {
|
|
46
|
+
const urlToN = new Map();
|
|
47
|
+
const citations = [];
|
|
48
|
+
let nextN = 1;
|
|
49
|
+
const transformed = markdown.replace(MD_LINK_RE, (_full, text, url) => {
|
|
50
|
+
let n = urlToN.get(url);
|
|
51
|
+
if (n === undefined) {
|
|
52
|
+
n = nextN++;
|
|
53
|
+
urlToN.set(url, n);
|
|
54
|
+
citations.push({ n, url });
|
|
55
|
+
}
|
|
56
|
+
// 保留链接文字 + 追加 ⟨N⟩ 角标(去 URL 本体)
|
|
57
|
+
// 角标用 unicode mathematical angle brackets ⟨ ⟩(U+27E8 / U+27E9)
|
|
58
|
+
// 与既有 @oN 续页 ref 不重叠(parse12 R21)
|
|
59
|
+
return `${text} ⟨${n}⟩`;
|
|
60
|
+
});
|
|
61
|
+
// 末尾 References 段(仅当有 citation 时)
|
|
62
|
+
if (citations.length === 0) {
|
|
63
|
+
return { markdown: transformed, citations: [] };
|
|
64
|
+
}
|
|
65
|
+
const refs = citations.map((c) => `[${c.n}] ${c.url}`).join("\n");
|
|
66
|
+
return {
|
|
67
|
+
markdown: `${transformed}\n\n## References\n${refs}\n`,
|
|
68
|
+
citations,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=content-filter-cite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-filter-cite.js","sourceRoot":"","sources":["../../src/browse/content-filter-cite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAgBH,+DAA+D;AAC/D,KAAK;AACL,+DAA+D;AAC/D;;;;;;;GAOG;AACH,MAAM,UAAU,GAAG,uCAAuC,CAAC;AAE3D,+DAA+D;AAC/D,sCAAsC;AACtC,+DAA+D;AAC/D;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAI7C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,SAAS,GAAqB,EAAE,CAAC;IACvC,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAClC,UAAU,EACV,CAAC,KAAa,EAAE,IAAY,EAAE,GAAW,EAAE,EAAE;QAC3C,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACpB,CAAC,GAAG,KAAK,EAAE,CAAC;YACZ,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACnB,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7B,CAAC;QACD,+BAA+B;QAC/B,+DAA+D;QAC/D,kCAAkC;QAClC,OAAO,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC;IAC1B,CAAC,CACF,CAAC;IAEF,kCAAkC;IAClC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAClD,CAAC;IAED,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE,OAAO;QACL,QAAQ,EAAE,GAAG,WAAW,sBAAsB,IAAI,IAAI;QACtD,SAAS;KACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { type CitationResult } from "./content-filter-cite.js";
|
|
2
|
+
export type ExtractMode = "raw" | "markdown" | "markdown_cited";
|
|
3
|
+
export interface MarkdownExtractOptions {
|
|
4
|
+
mode: ExtractMode;
|
|
5
|
+
/** turndown 配置:heading style("atx" = # 风格,LLM 友好;默认 "atx") */
|
|
6
|
+
headingStyle?: "atx" | "setext";
|
|
7
|
+
/** bullet list marker(默认 "-") */
|
|
8
|
+
bulletMarker?: "-" | "*" | "+";
|
|
9
|
+
/** markdown_cited 档:是否启用 ⟨N⟩ 角标(默认 true;false = 仅 markdown 不加角标) */
|
|
10
|
+
enableCitations?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface MarkdownExtractResult {
|
|
13
|
+
/** 抽取后的 markdown 文本(raw 档 = 原始 html 不变) */
|
|
14
|
+
markdown: string;
|
|
15
|
+
/** defuddle 抽出的页面标题(若有) */
|
|
16
|
+
title?: string;
|
|
17
|
+
/** defuddle 抽出的作者(若有) */
|
|
18
|
+
byline?: string;
|
|
19
|
+
/** defuddle 抽出的摘要(若有) */
|
|
20
|
+
excerpt?: string;
|
|
21
|
+
/** 仅 markdown_cited 档填:去重引用表 */
|
|
22
|
+
citations?: CitationResult[];
|
|
23
|
+
/** 引擎实际服务的 extractor 名("raw" / "defuddle+turndown" / fallback "turndown-only") */
|
|
24
|
+
served_by: string;
|
|
25
|
+
}
|
|
26
|
+
export declare const MARKDOWN_ENGINE: Readonly<{
|
|
27
|
+
extractor: "defuddle";
|
|
28
|
+
converter: "turndown";
|
|
29
|
+
pipeline: "defuddle+turndown";
|
|
30
|
+
}>;
|
|
31
|
+
/**
|
|
32
|
+
* @param html 原始 HTML 字符串(fetch_url bodyText / browse evaluate_script outerHTML)
|
|
33
|
+
* @param opts 模式 + 配置(mode 必传)
|
|
34
|
+
* @returns MarkdownExtractResult(markdown + 元数据 + 可选 citations)
|
|
35
|
+
*
|
|
36
|
+
* 失败容忍(守 raw 默认零回归 + 不阻断主路径):
|
|
37
|
+
* - mode="raw" → 直接返原始 html(INV-66 passthrough;不经 defuddle/turndown)
|
|
38
|
+
* - defuddle 抽取失败 → 降级 turndown-only(served_by="turndown-only",跳过正文抽取直接转全页 HTML)
|
|
39
|
+
* - turndown 失败 → 抛 Error("[markdown-extractor]") 前缀,调用方 catch 后 outcome=unknown
|
|
40
|
+
*/
|
|
41
|
+
export declare function extractMarkdown(html: string, opts: MarkdownExtractOptions): Promise<MarkdownExtractResult>;
|
|
42
|
+
/**
|
|
43
|
+
* 对固定 fixture HTML 跑一次 extractMarkdown,验引擎可用。
|
|
44
|
+
* doctor #33/#34 调;CI 可选跑(不阻断,warn-only)。
|
|
45
|
+
* @returns { ok, engine, elapsed_ms, markdown_preview }
|
|
46
|
+
*/
|
|
47
|
+
export declare function smokeTestMarkdownEngine(): Promise<{
|
|
48
|
+
ok: boolean;
|
|
49
|
+
engine: string;
|
|
50
|
+
elapsed_ms: number;
|
|
51
|
+
markdown_preview: string;
|
|
52
|
+
}>;
|
|
53
|
+
//# sourceMappingURL=markdown-extractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-extractor.d.ts","sourceRoot":"","sources":["../../src/browse/markdown-extractor.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAM/E,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,UAAU,GAAG,gBAAgB,CAAC;AAEhE,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,WAAW,CAAC;IAClB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAChC,iCAAiC;IACjC,YAAY,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC/B,oEAAoE;IACpE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,kFAAkF;IAClF,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD,eAAO,MAAM,eAAe;;;;EAI1B,CAAC;AAKH;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,qBAAqB,CAAC,CAmEhC;AAKD;;;;GAIG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC;IACvD,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC,CAsBD"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MarkdownExtractor(parse12 §3.1 v1.1 新增)
|
|
3
|
+
*
|
|
4
|
+
* mode-aware HTML→markdown 抽取器。BrowseChannel doExtract + fetch_url doFetchUrl
|
|
5
|
+
* 的内部子组件(INV-67:不是新通道,不 extends BaseChannel,不经 FallbackDecider)。
|
|
6
|
+
*
|
|
7
|
+
* 三档(用户硬约束 parse12 §1.3:raw 默认保 v1.0,markdown opt-in):
|
|
8
|
+
* - "raw" : passthrough(返原始 html 不变;INV-66 守)
|
|
9
|
+
* - "markdown" : defuddle 抽正文 HTML → turndown 转 markdown
|
|
10
|
+
* - "markdown_cited" : markdown + ⟨N⟩ 引用角标(content-filter-cite.ts)
|
|
11
|
+
*
|
|
12
|
+
* 引擎选型(parse12 §4 决策表):JS 原生 defuddle + turndown,非 Trafilatura Python。
|
|
13
|
+
* 守 INV-68:禁 spawn/exec python;引擎必须是 JS import 可加载。
|
|
14
|
+
*
|
|
15
|
+
* 借鉴源:
|
|
16
|
+
* - defuddle(MIT,FiveFilters)内容抽取 — 替代 Mozilla Readability(避 jsdom 重依赖)
|
|
17
|
+
* - turndown v7.2.4(MIT,@mixmark-io/domino 轻量 DOM)HTML→markdown
|
|
18
|
+
* - Crawl4AI markdown_generation_strategy.py(Apache-2.0,fit_markdown 思路借鉴不 vendored)
|
|
19
|
+
* - 08 §3.2 BrowseOptions 对象化范式(extract_mode 是 options 字段,非新 action)
|
|
20
|
+
*/
|
|
21
|
+
// defuddle/node:函数式 API,接受 HTML string(内部自含 DOM 解析;守 INV-68 纯 JS)
|
|
22
|
+
import { Defuddle } from "defuddle/node";
|
|
23
|
+
import TurndownService from "turndown";
|
|
24
|
+
import { applyCitations } from "./content-filter-cite.js";
|
|
25
|
+
import { logger } from "../util/logger.js";
|
|
26
|
+
// ============================================================
|
|
27
|
+
// 顶级 const(INV-68 衍生:引擎名集中,doctor 读)
|
|
28
|
+
// ============================================================
|
|
29
|
+
export const MARKDOWN_ENGINE = Object.freeze({
|
|
30
|
+
extractor: "defuddle", // 内容抽取器(替代 Readability,避 jsdom)
|
|
31
|
+
converter: "turndown", // HTML→markdown 转换器
|
|
32
|
+
pipeline: "defuddle+turndown",
|
|
33
|
+
});
|
|
34
|
+
// ============================================================
|
|
35
|
+
// 主 API:extractMarkdown(纯函数,无副作用,可单测)
|
|
36
|
+
// ============================================================
|
|
37
|
+
/**
|
|
38
|
+
* @param html 原始 HTML 字符串(fetch_url bodyText / browse evaluate_script outerHTML)
|
|
39
|
+
* @param opts 模式 + 配置(mode 必传)
|
|
40
|
+
* @returns MarkdownExtractResult(markdown + 元数据 + 可选 citations)
|
|
41
|
+
*
|
|
42
|
+
* 失败容忍(守 raw 默认零回归 + 不阻断主路径):
|
|
43
|
+
* - mode="raw" → 直接返原始 html(INV-66 passthrough;不经 defuddle/turndown)
|
|
44
|
+
* - defuddle 抽取失败 → 降级 turndown-only(served_by="turndown-only",跳过正文抽取直接转全页 HTML)
|
|
45
|
+
* - turndown 失败 → 抛 Error("[markdown-extractor]") 前缀,调用方 catch 后 outcome=unknown
|
|
46
|
+
*/
|
|
47
|
+
export async function extractMarkdown(html, opts) {
|
|
48
|
+
// ---------- 0. 空输入兜底 ----------
|
|
49
|
+
if (!html || html.length === 0) {
|
|
50
|
+
return { markdown: "", served_by: opts.mode === "raw" ? "raw" : MARKDOWN_ENGINE.pipeline };
|
|
51
|
+
}
|
|
52
|
+
// ---------- 0b. raw 档 passthrough(INV-66:不经 defuddle/turndown) ----------
|
|
53
|
+
if (opts.mode === "raw") {
|
|
54
|
+
return { markdown: html, served_by: "raw" };
|
|
55
|
+
}
|
|
56
|
+
// ---------- 1. defuddle 抽正文 HTML(去导航/广告/样板) ----------
|
|
57
|
+
let articleHtml = null;
|
|
58
|
+
let title;
|
|
59
|
+
let byline;
|
|
60
|
+
let excerpt;
|
|
61
|
+
try {
|
|
62
|
+
// defuddle/node Defuddle 函数:接 (html_string, url, options) → Promise<DefuddleResponse>
|
|
63
|
+
// url 传空串(defuddle 内部用于相对链接解析;空串容忍)
|
|
64
|
+
const result = await Defuddle(html, "", {});
|
|
65
|
+
if (result && result.content) {
|
|
66
|
+
articleHtml = result.content;
|
|
67
|
+
title = result.title || undefined;
|
|
68
|
+
byline = result.author || undefined;
|
|
69
|
+
excerpt = result.description || undefined;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch (e) {
|
|
73
|
+
// defuddle 失败 → 降级 turndown-only(served_by 标记降级;不阻断)
|
|
74
|
+
logger.warn({ evt: "defuddle_failed", error: String(e).slice(0, 200) });
|
|
75
|
+
articleHtml = null;
|
|
76
|
+
}
|
|
77
|
+
// ---------- 2. turndown HTML→markdown ----------
|
|
78
|
+
const turndown = new TurndownService({
|
|
79
|
+
headingStyle: opts.headingStyle ?? "atx",
|
|
80
|
+
bulletListMarker: opts.bulletMarker ?? "-",
|
|
81
|
+
codeBlockStyle: "fenced",
|
|
82
|
+
});
|
|
83
|
+
const inputHtml = articleHtml ?? html; // defuddle 失败时降级转全页
|
|
84
|
+
const servedBy = articleHtml ? MARKDOWN_ENGINE.pipeline : "turndown-only";
|
|
85
|
+
let markdown;
|
|
86
|
+
try {
|
|
87
|
+
markdown = turndown.turndown(inputHtml);
|
|
88
|
+
}
|
|
89
|
+
catch (e) {
|
|
90
|
+
// turndown 失败 = 引擎彻底挂,抛错让调用方走 outcome=unknown
|
|
91
|
+
throw new Error(`[markdown-extractor] turndown failed: ${String(e).slice(0, 200)}`);
|
|
92
|
+
}
|
|
93
|
+
// ---------- 3. markdown_cited 档:⟨N⟩ 引用角标 ----------
|
|
94
|
+
let citations;
|
|
95
|
+
if (opts.mode === "markdown_cited" && opts.enableCitations !== false) {
|
|
96
|
+
const cited = applyCitations(markdown);
|
|
97
|
+
markdown = cited.markdown;
|
|
98
|
+
citations = cited.citations;
|
|
99
|
+
}
|
|
100
|
+
return {
|
|
101
|
+
markdown,
|
|
102
|
+
title,
|
|
103
|
+
byline,
|
|
104
|
+
excerpt,
|
|
105
|
+
...(citations ? { citations } : {}),
|
|
106
|
+
served_by: servedBy,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
// ============================================================
|
|
110
|
+
// helper:smoke-test 入口(doctor #33/#34 + CI 可调)
|
|
111
|
+
// ============================================================
|
|
112
|
+
/**
|
|
113
|
+
* 对固定 fixture HTML 跑一次 extractMarkdown,验引擎可用。
|
|
114
|
+
* doctor #33/#34 调;CI 可选跑(不阻断,warn-only)。
|
|
115
|
+
* @returns { ok, engine, elapsed_ms, markdown_preview }
|
|
116
|
+
*/
|
|
117
|
+
export async function smokeTestMarkdownEngine() {
|
|
118
|
+
const fixture = `<html><head><title>Test</title></head><body>` +
|
|
119
|
+
`<nav>nav junk</nav><article><h1>Hello</h1><p>World <a href="https://example.com">link</a></p></article>` +
|
|
120
|
+
`<footer>footer junk</footer></body></html>`;
|
|
121
|
+
const t0 = Date.now();
|
|
122
|
+
try {
|
|
123
|
+
const r = await extractMarkdown(fixture, { mode: "markdown" });
|
|
124
|
+
return {
|
|
125
|
+
ok: r.markdown.length > 0 && r.markdown.includes("Hello"),
|
|
126
|
+
engine: r.served_by,
|
|
127
|
+
elapsed_ms: Date.now() - t0,
|
|
128
|
+
markdown_preview: r.markdown.slice(0, 200),
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
return {
|
|
133
|
+
ok: false,
|
|
134
|
+
engine: "failed",
|
|
135
|
+
elapsed_ms: Date.now() - t0,
|
|
136
|
+
markdown_preview: "",
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=markdown-extractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-extractor.js","sourceRoot":"","sources":["../../src/browse/markdown-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,kEAAkE;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,eAAe,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,cAAc,EAAuB,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAgC3C,+DAA+D;AAC/D,qCAAqC;AACrC,+DAA+D;AAC/D,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3C,SAAS,EAAE,UAAU,EAAE,gCAAgC;IACvD,SAAS,EAAE,UAAU,EAAE,oBAAoB;IAC3C,QAAQ,EAAE,mBAAmB;CAC9B,CAAC,CAAC;AAEH,+DAA+D;AAC/D,sCAAsC;AACtC,+DAA+D;AAC/D;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAY,EACZ,IAA4B;IAE5B,iCAAiC;IACjC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;IAC7F,CAAC;IAED,2EAA2E;IAC3E,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACxB,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC9C,CAAC;IAED,wDAAwD;IACxD,IAAI,WAAW,GAAkB,IAAI,CAAC;IACtC,IAAI,KAAyB,CAAC;IAC9B,IAAI,MAA0B,CAAC;IAC/B,IAAI,OAA2B,CAAC;IAEhC,IAAI,CAAC;QACH,sFAAsF;QACtF,oCAAoC;QACpC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAC7B,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;YAC7B,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC;YAClC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC;YACpC,OAAO,GAAG,MAAM,CAAC,WAAW,IAAI,SAAS,CAAC;QAC5C,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,qDAAqD;QACrD,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACxE,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,kDAAkD;IAClD,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC;QACnC,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,KAAK;QACxC,gBAAgB,EAAE,IAAI,CAAC,YAAY,IAAI,GAAG;QAC1C,cAAc,EAAE,QAAQ;KACzB,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,WAAW,IAAI,IAAI,CAAC,CAAC,oBAAoB;IAC3D,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC;IAE1E,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,8CAA8C;QAC9C,MAAM,IAAI,KAAK,CAAC,yCAAyC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,qDAAqD;IACrD,IAAI,SAAuC,CAAC;IAC5C,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE,CAAC;QACrE,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QACvC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC1B,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAC9B,CAAC;IAED,OAAO;QACL,QAAQ;QACR,KAAK;QACL,MAAM;QACN,OAAO;QACP,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,SAAS,EAAE,QAAQ;KACpB,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,+CAA+C;AAC/C,+DAA+D;AAC/D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB;IAM3C,MAAM,OAAO,GACX,8CAA8C;QAC9C,yGAAyG;QACzG,4CAA4C,CAAC;IAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAC/D,OAAO;YACL,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;YACzD,MAAM,EAAE,CAAC,CAAC,SAAS;YACnB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;YAC3B,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;SAC3C,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;YAC3B,gBAAgB,EAAE,EAAE;SACrB,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowseChannel.d.ts","sourceRoot":"","sources":["../../src/channels/BrowseChannel.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EACb,MAAM,EACN,cAAc,EAEf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAG5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAW5E;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,CAC1B,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,aAAa,KAChB,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;AAQpC,8BAAsB,aAAc,SAAQ,SAAS;IACnD,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B,wDAAwD;IACxD,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAKrD;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,6BAiB9B;IAEH;;;;;;;;OAQG;cACa,cAAc,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjE;;;OAGG;IACH,OAAO,CAAC,YAAY;IAOpB;;;;OAIG;IACH,SAAS,CAAC,eAAe,IAAI,MAAM;IAInC,qDAAqD;IAC/C,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAS/B,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC;IAWhC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAOpC;;;;;;;;;OASG;IACG,MAAM,CACV,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IAuBxC;;OAEG;YACW,YAAY;
|
|
1
|
+
{"version":3,"file":"BrowseChannel.d.ts","sourceRoot":"","sources":["../../src/channels/BrowseChannel.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EACb,MAAM,EACN,cAAc,EAEf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAG5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAW5E;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,CAC1B,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,aAAa,KAChB,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;AAQpC,8BAAsB,aAAc,SAAQ,SAAS;IACnD,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B,wDAAwD;IACxD,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAKrD;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,6BAiB9B;IAEH;;;;;;;;OAQG;cACa,cAAc,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjE;;;OAGG;IACH,OAAO,CAAC,YAAY;IAOpB;;;;OAIG;IACH,SAAS,CAAC,eAAe,IAAI,MAAM;IAInC,qDAAqD;IAC/C,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAS/B,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC;IAWhC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAOpC;;;;;;;;;OASG;IACG,MAAM,CACV,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IAuBxC;;OAEG;YACW,YAAY;IAmE1B;;;;;;OAMG;IACG,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAOhF;;;OAGG;IACH,SAAS,CAAC,kBAAkB,IAAI,gBAAgB,GAAG,IAAI;IAIvD;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAmEvB;;;OAGG;IACG,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IA+ChE;;;OAGG;IACG,SAAS,CACb,IAAI,EAAE,eAAe,EACrB,GAAG,CAAC,EAAE,iBAAiB,EACvB,IAAI,CAAC,EAAE,iBAAiB,GACvB,OAAO,CAAC,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC;IAKjD;;;;;OAKG;YACW,aAAa;IAoC3B;;;;;;;;;;;;;OAaG;IACG,SAAS,IAAI,OAAO,CACxB,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAC1D;IAkBD;;;;OAIG;YACW,YAAY;CAa3B"}
|
|
@@ -202,6 +202,12 @@ export class BrowseChannel extends UiChannel {
|
|
|
202
202
|
preview: truncatePreview(partial.preview ?? ""),
|
|
203
203
|
title: partial.title,
|
|
204
204
|
final_url: partial.final_url ?? url,
|
|
205
|
+
// v1.1(parse12 §3.3.1):markdown 档元数据透传(仅 extract_mode=markdown* 时 partial 含这些字段)
|
|
206
|
+
...(partial.byline ? { byline: partial.byline } : {}),
|
|
207
|
+
...(partial.citations ? { citations: partial.citations } : {}),
|
|
208
|
+
...(partial.markdown_engine
|
|
209
|
+
? { markdown_engine: partial.markdown_engine }
|
|
210
|
+
: {}),
|
|
205
211
|
},
|
|
206
212
|
served_by: this.name,
|
|
207
213
|
fallback_used: false,
|
|
@@ -523,11 +529,53 @@ async function doScreenshot(c, _url, opts) {
|
|
|
523
529
|
});
|
|
524
530
|
return { preview: `screenshot saved to ${filePath}` };
|
|
525
531
|
}
|
|
526
|
-
async function doExtract(c, _url,
|
|
527
|
-
//
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
532
|
+
async function doExtract(c, _url, opts) {
|
|
533
|
+
// ---------- v1.1 mode 分流(parse12 §3.3.1;INV-66 raw byte-identical v1.0) ----------
|
|
534
|
+
// 铁律:extract_mode 未传 / "raw" → 完全走 v1.0 take_snapshot 路径(零改)。
|
|
535
|
+
// INV-66 守:raw 档不调 extractMarkdown / 不静态 import markdown-extractor。
|
|
536
|
+
const mode = opts.extract_mode;
|
|
537
|
+
if (mode === undefined || mode === "raw") {
|
|
538
|
+
// v1.0 路径 byte-identical:take_snapshot → a11y 文本树
|
|
539
|
+
const r = (await c.callTool("take_snapshot", {}));
|
|
540
|
+
const { title, text } = extractSnapshot(r);
|
|
541
|
+
return { title, preview: text };
|
|
542
|
+
}
|
|
543
|
+
// ---------- markdown / markdown_cited 档(v1.1 新增) ----------
|
|
544
|
+
// 取渲染后 HTML(evaluate_script 注入 document.documentElement.outerHTML)。
|
|
545
|
+
// raw 档不走此路径 → INV-66 raw 零回归;markdown 档 dynamic import lazy-load 引擎。
|
|
546
|
+
const expr = `(function(){
|
|
547
|
+
try {
|
|
548
|
+
return JSON.stringify({
|
|
549
|
+
html: document.documentElement.outerHTML,
|
|
550
|
+
url: window.location.href,
|
|
551
|
+
title: document.title || ""
|
|
552
|
+
});
|
|
553
|
+
} catch(e) { return JSON.stringify({ html: "", url: "", title: "" }); }
|
|
554
|
+
})()`;
|
|
555
|
+
const evalResult = (await c.callTool("evaluate_script", {
|
|
556
|
+
function: expr,
|
|
557
|
+
}));
|
|
558
|
+
const parsed = JSON.parse(extractEvalPreview(evalResult) || "{}");
|
|
559
|
+
if (!parsed.html) {
|
|
560
|
+
// 取 HTML 失败 → 抛错走 outcome=unknown(BrowseChannel.browse catch → classifyBrowseError)
|
|
561
|
+
throw new Error("[markdown-extractor] evaluate_script returned empty html");
|
|
562
|
+
}
|
|
563
|
+
// dynamic import(守 INV-66:raw 档不加载 defuddle/turndown;markdown 档才 lazy-load)
|
|
564
|
+
const { extractMarkdown } = await import("../browse/markdown-extractor.js");
|
|
565
|
+
const mdResult = await extractMarkdown(parsed.html, {
|
|
566
|
+
mode,
|
|
567
|
+
headingStyle: "atx",
|
|
568
|
+
bulletMarker: "-",
|
|
569
|
+
enableCitations: mode === "markdown_cited",
|
|
570
|
+
});
|
|
571
|
+
return {
|
|
572
|
+
title: mdResult.title ?? parsed.title ?? undefined,
|
|
573
|
+
preview: mdResult.markdown,
|
|
574
|
+
// markdown 专属元数据(v1.1 扩展;raw 档不填,v1.0 调用方不读)
|
|
575
|
+
...(mdResult.byline ? { byline: mdResult.byline } : {}),
|
|
576
|
+
...(mdResult.citations ? { citations: mdResult.citations } : {}),
|
|
577
|
+
...(mdResult.served_by ? { markdown_engine: mdResult.served_by } : {}),
|
|
578
|
+
};
|
|
531
579
|
}
|
|
532
580
|
async function doClick(c, _url, opts) {
|
|
533
581
|
// 选项驱动:opts.selectors.click 是 a11y uid
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowseChannel.js","sourceRoot":"","sources":["../../src/channels/BrowseChannel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BrowseChannel.js","sourceRoot":"","sources":["../../src/channels/BrowseChannel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAU3C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EACL,UAAU,GAGX,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAyB,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,gFAAgF;AAChF,2BAA2B;AAC3B,0EAA0E;AAC1E,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAevE,kDAAkD;AAClD,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B,+DAA+D;AAC/D,mBAAmB;AACnB,+DAA+D;AAC/D,MAAM,OAAgB,aAAc,SAAQ,SAAS;IAMnD,+DAA+D;IAC/D,wBAAwB;IACxB,+DAA+D;IAC/D;;;;;;;;OAQG;IACgB,cAAc,GAAG,IAAI,GAAG,CAAwB;QACjE,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC,UAAU,EAAE,UAAU,CAAC;QACxB,CAAC,YAAY,EAAE,YAAY,CAAC;QAC5B,CAAC,SAAS,EAAE,SAAS,CAAC;QACtB,CAAC,OAAO,EAAE,OAAO,CAAC;QAClB,CAAC,MAAM,EAAE,MAAM,CAAC;QAChB,CAAC,MAAM,EAAE,MAAM,CAAC;QAChB,CAAC,UAAU,EAAE,UAAU,CAAC;QACxB,mFAAmF;QACnF,uEAAuE;QACvE,4EAA4E;QAC5E,0EAA0E;QAC1E,2EAA2E;QAC3E,CAAC,KAAK,EAAE,KAAK,CAAC;QACd,CAAC,SAAS,EAAE,SAAS,CAAC;QACtB,CAAC,SAAS,EAAE,SAAS,CAAC;KACvB,CAAC,CAAC;IAEH;;;;;;;;OAQG;IACO,KAAK,CAAC,cAAc,CAAC,OAAkB;QAC/C,iEAAiE;IACnE,CAAC;IAED;;;OAGG;IACK,YAAY,CAAC,OAAsB;QACzC,OAAO,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAC5B,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAC7B,OAAO,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACO,eAAe;QACvB,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,qDAAqD;IACrD,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YACpC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QAC1D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,CAAC,SAAS;YAAE,OAAO,MAAM,CAAC;QAChC,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,GAAG,IAAI;YAAE,OAAO,UAAU,CAAC;QACzE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,MAAM,CACV,GAAW,EACX,MAAc,EACd,OAAsB;QAEtB,iEAAiE;QACjE,mDAAmD;QACnD,iEAAiE;QACjE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7D,qEAAqE;YACrE,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;YACzC,6DAA6D;YAC7D,OAAO,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE;gBAC7C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,KAAe,CAAC,CAAC;gBAChE,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;QACL,CAAC;QAED,iEAAiE;QACjE,iCAAiC;QACjC,iEAAiE;QACjE,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;QACzC,OAAO,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,CAC7C,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CACxC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CACxB,GAAW,EACX,MAAc,EACd,OAAsB;QAEtB,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,IAAI;gBACV,SAAS,EAAE,IAAI,CAAC,IAAI;gBACpB,aAAa,EAAE,KAAK;gBACpB,gBAAgB,EAAE,IAAI,CAAC,eAAe,EAAE;gBACxC,KAAK,EAAE,kBAAkB,MAAM,EAAE;aAClC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAE/C,wDAAwD;YACxD,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;gBACvD,GAAG;gBACH,MAAM;gBACN,GAAG,OAAO;aACX,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,QAAQ;gBACjB,IAAI,EAAE;oBACJ,GAAG;oBACH,MAAM;oBACN,QAAQ,EAAE,OAAO;oBACjB,YAAY,EAAE,WAAW;oBACzB,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;oBAC/C,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,GAAG;oBACnC,iFAAiF;oBACjF,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrD,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9D,GAAG,CAAC,OAAO,CAAC,eAAe;wBACzB,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE;wBAC9C,CAAC,CAAC,EAAE,CAAC;iBACR;gBACD,SAAS,EAAE,IAAI,CAAC,IAAI;gBACpB,aAAa,EAAE,KAAK;gBACpB,gBAAgB,EAAE,IAAI,CAAC,eAAe,EAAE;aACzC,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YACpF,OAAO;gBACL,OAAO,EAAE,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC;gBACzC,IAAI,EAAE,IAAI;gBACV,SAAS,EAAE,IAAI,CAAC,IAAI;gBACpB,aAAa,EAAE,KAAK;gBACpB,gBAAgB,EAAE,IAAI,CAAC,eAAe,EAAE;gBACxC,KAAK,EAAE,GAAG;aACX,CAAC;QACJ,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,kEAAkE;IAClE,+DAA+D;IAC/D;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,CAAC,GAAW,EAAE,KAAa;QACvC,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACO,kBAAkB;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACK,eAAe,CACrB,KAAkC;QAElC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAChB,0CAA0C;YAC1C,OAAO;gBACL,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,IAAI;gBACV,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;gBACxC,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;aACzC,CAAC;QACJ,CAAC;QAED,gDAAgD;QAChD,gDAAgD;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,EAAE,sEAAsE,CAAC,CAAC;QAEnH,8EAA8E;QAC9E,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,YAAY,GAAG,UAAU,EAAE,QAAQ,CAAC;QAE1C,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE;gBACJ,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE;gBAC/B,MAAM,EAAE,OAAO;gBACf,QAAQ,EAAE,YAAY;gBACtB,YAAY,EAAE,SAAS;gBACvB,kFAAkF;gBAClF,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC1C,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;gBAC/B,iCAAiC;gBACjC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvE,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,kFAAkF;gBAClF,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACtD;YACD,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;SACzC,CAAC;IACJ,CAAC;IAED,+DAA+D;IAC/D,+DAA+D;IAC/D,+DAA+D;IAC/D,EAAE;IACF,6CAA6C;IAC7C,sDAAsD;IACtD,qCAAqC;IACrC,EAAE;IACF,gCAAgC;IAChC,wEAAwE;IACxE,kEAAkE;IAClE,wCAAwC;IACxC,uEAAuE;IACvE,EAAE;IACF,8BAA8B;IAC9B,oCAAoC;IACpC,8DAA8D;IAC9D,EAAE;IACF;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,GAAW,EAAE,IAAU;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpC,4CAA4C;QAC5C,4DAA4D;QAC5D,MAAM,WAAW,GAAkC,IAAI,CAAC,MAAM;YAC5D,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YAC7B,CAAC,CAAC,SAAS,CAAC;QAEd,mEAAmE;QACnE,MAAM,IAAI,GAAkB;YAC1B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC5C,0CAA0C;YAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAClE,OAAO;gBACL,OAAO,EAAE,QAAQ;gBACjB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,WAAW;aACZ,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC;gBACV,GAAG,EAAE,oBAAoB;gBACzB,OAAO,EAAE,IAAI,CAAC,IAAI;gBAClB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE,GAAG;aACX,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC;gBAC9C,KAAK,EAAE,GAAG;gBACV,WAAW;aACZ,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CACb,IAAqB,EACrB,GAAuB,EACvB,IAAwB;QAExB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACpC,OAAO,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,aAAa,CAAC,CAAY;QACtC,MAAM,IAAI,GAAG;;;;;;;;SAQR,CAAC;QACN,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,iBAAiB,EAAE;gBAC7C,QAAQ,EAAE,IAAI;aACf,CAAC,CAAmB,CAAC;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,IAAI,CAGtD,CAAC;YACF,OAAO;gBACL,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE;gBACrB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;gBACjC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;aACxB,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC;gBACV,GAAG,EAAE,uBAAuB;gBAC5B,OAAO,EAAE,IAAI,CAAC,IAAI;gBAClB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;aACjB,CAAC,CAAC;YACH,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACrC,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,2CAA2C;IAC3C,+DAA+D;IAC/D;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,SAAS;QAGb,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAE5C,CAAC;YACF,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;iBAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;iBAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;iBACxB,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,oDAAoD;YACpD,qCAAqC;YACrC,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,YAAY,CACxB,GAAW,EACX,MAAc,EACd,OAA8B;QAE9B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;YACvD,GAAG;YACH,MAAM;YACN,GAAG,OAAO;SACX,CAAC,CAAC;QACH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;IAC1D,CAAC;CACF;AAED,+DAA+D;AAC/D,2DAA2D;AAC3D,+DAA+D;AAC/D;;;;;;;;;;;GAWG;AACH,SAAS,cAAc,CACrB,IAAY;IAEZ,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,GAAG,GAA8D,EAAE,CAAC;IAC1E,yCAAyC;IACzC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAU,EAAE;QACjC,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACvC,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACzC,wCAAwC;QACxC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjF,GAAG,CAAC,IAAI,CAAC;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC;YACpB,GAAG;YACH,KAAK,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;SACjE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+DAA+D;AAC/D,kBAAkB;AAClB,+DAA+D;AAC/D,wFAAwF;AAExF,KAAK,UAAU,UAAU,CACvB,CAAY,EACZ,GAAW,EACX,IAAmB;IAEnB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,eAAe,EAAE;QAC3C,IAAI,EAAE,KAAK;QACX,GAAG;QACH,WAAW,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK;KACpC,CAAC,CAAmB,CAAC;IACtB,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AACjE,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,CAAY,EACZ,IAAY,EACZ,KAAoB;IAEpB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,CAAC,CAAmB,CAAC;IACpE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IAC3C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,CAAY,EACZ,IAAY,EACZ,IAAmB;IAEnB,sDAAsD;IACtD,MAAM,QAAQ,GAAG,yBAAyB,UAAU,EAAE,MAAM,CAAC;IAC7D,MAAM,CAAC,CAAC,QAAQ,CAAC,iBAAiB,EAAE;QAClC,MAAM,EAAE,KAAK;QACb,QAAQ;QACR,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,KAAK;KACzC,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,uBAAuB,QAAQ,EAAE,EAAE,CAAC;AACxD,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,CAAY,EACZ,IAAY,EACZ,IAAmB;IAEnB,oFAAoF;IACpF,8DAA8D;IAC9D,0EAA0E;IAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;IAC/B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACzC,kDAAkD;QAClD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,CAAC,CAAmB,CAAC;QACpE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAC3C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,6DAA6D;IAC7D,oEAAoE;IACpE,sEAAsE;IACtE,MAAM,IAAI,GAAG;;;;;;;;OAQR,CAAC;IACN,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,iBAAiB,EAAE;QACtD,QAAQ,EAAE,IAAI;KACf,CAAC,CAAmB,CAAC;IACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,IAAI,CAI/D,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjB,oFAAoF;QACpF,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IAED,4EAA4E;IAC5E,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE;QAClD,IAAI;QACJ,YAAY,EAAE,KAAK;QACnB,YAAY,EAAE,GAAG;QACjB,eAAe,EAAE,IAAI,KAAK,gBAAgB;KAC3C,CAAC,CAAC;IAEH,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,SAAS;QAClD,OAAO,EAAE,QAAQ,CAAC,QAAQ;QAC1B,6CAA6C;QAC7C,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvE,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,OAAO,CACpB,CAAY,EACZ,IAAY,EACZ,IAAmB;IAEnB,uCAAuC;IACvC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;IAClC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IACxE,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACnC,OAAO,EAAE,OAAO,EAAE,WAAW,GAAG,EAAE,EAAE,CAAC;AACvC,CAAC;AAED,KAAK,UAAU,MAAM,CACnB,CAAY,EACZ,IAAY,EACZ,IAAmB;IAEnB,wDAAwD;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;IAChC,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACnF,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;IACvD,OAAO,EAAE,OAAO,EAAE,UAAU,SAAS,CAAC,MAAM,SAAS,EAAE,CAAC;AAC1D,CAAC;AAED,KAAK,UAAU,MAAM,CACnB,CAAY,EACZ,IAAY,EACZ,IAAmB;IAEnB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;IAC/B,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC9D,MAAM,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/C,OAAO,EAAE,OAAO,EAAE,eAAe,IAAI,GAAG,EAAE,CAAC;AAC7C,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,CAAY,EACZ,IAAY,EACZ,IAAmB;IAEnB,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC5D,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,iBAAiB,EAAE;QAC7C,QAAQ,EAAE,IAAI,CAAC,EAAE;KAClB,CAAC,CAAmB,CAAC;IACtB,OAAO,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5C,CAAC;AAYD,uEAAuE;AACvE,SAAS,eAAe,CAAC,CAAiB;IACxC,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,8CAA8C;IAC9C,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACtC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9B,CAAC;AAED,qDAAqD;AACrD,SAAS,eAAe,CAAC,CAAiB;IACxC,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC9B,oDAAoD;IACpD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAChD,OAAO,EAAE,KAAK,EAAE,SAAS,IAAI,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AACtD,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAiB;IAC3C,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC;AAC5C,CAAC;AAED,SAAS,SAAS,CAAC,CAA4B;IAC7C,IAAI,CAAC,CAAC,EAAE,OAAO;QAAE,OAAO,SAAS,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,+DAA+D;AAC/D,KAAK;AACL,+DAA+D;AAC/D;;;GAGG;AACH,SAAS,eAAe,CAAC,CAAS;IAChC,IAAI,CAAC,CAAC,MAAM,IAAI,iBAAiB;QAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,GAAG,yBAAyB,CAAC;AACnE,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,GAAW,EAAE,OAAe;IACvD,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAC5B,IAAI,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAAE,OAAO,OAAO,CAAC;IACnD,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,OAAO,CAAC;IACjE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,OAAO,CAAC;IACjE,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,OAAO,CAAC;IACtE,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AxProvider.d.ts","sourceRoot":"","sources":["../../src/desktop/AxProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,KAAK,EAEV,cAAc,EACd,aAAa,EACb,eAAe,EAEhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,aAAa,CAAC;AAkDrB;;;;;;;;GAQG;AACH,qBAAa,UAAU;IAYT,OAAO,CAAC,QAAQ,CAAC,OAAO;IAXpC,iDAAiD;IACjD,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB;IAEpC;;;;;;;OAOG;gBAC0B,OAAO,EAAE,SAAS;IAE/C;;;;;;;OAOG;IACG,QAAQ,CACZ,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"AxProvider.d.ts","sourceRoot":"","sources":["../../src/desktop/AxProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,KAAK,EAEV,cAAc,EACd,aAAa,EACb,eAAe,EAEhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,aAAa,CAAC;AAkDrB;;;;;;;;GAQG;AACH,qBAAa,UAAU;IAYT,OAAO,CAAC,QAAQ,CAAC,OAAO;IAXpC,iDAAiD;IACjD,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB;IAEpC;;;;;;;OAOG;gBAC0B,OAAO,EAAE,SAAS;IAE/C;;;;;;;OAOG;IACG,QAAQ,CACZ,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IA4C3C;;;;;;;OAOG;IACG,IAAI,CACR,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,cAAc,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAuCjE;;;;;;;;;;;;;OAaG;IACG,GAAG,CACP,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;CAiC1C"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { axTreeToOutline } from "./OutlineMapper.js";
|
|
1
|
+
import { axTreeToOutline, pruneToInteractive } from "./OutlineMapper.js";
|
|
2
2
|
// ============================================================
|
|
3
3
|
// 错误契约(parse4 §3.1.2 error_kind → Outcome 映射)
|
|
4
4
|
// ============================================================
|
|
@@ -106,9 +106,11 @@ export class AxProvider {
|
|
|
106
106
|
};
|
|
107
107
|
}
|
|
108
108
|
const { root: outlineRoot } = axTreeToOutline(root);
|
|
109
|
+
// v1.2(doc/14 §4.2d):interactiveOnly opt-in 后处理剪枝(INV-70:默认不过滤 byte-identical v1.1)
|
|
110
|
+
const finalRoot = opts.interactive_only ? pruneToInteractive(outlineRoot) : outlineRoot;
|
|
109
111
|
const snapshot = {
|
|
110
112
|
stateId: newStateId(),
|
|
111
|
-
root:
|
|
113
|
+
root: finalRoot,
|
|
112
114
|
createdAt: Date.now(),
|
|
113
115
|
};
|
|
114
116
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AxProvider.js","sourceRoot":"","sources":["../../src/desktop/AxProvider.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"AxProvider.js","sourceRoot":"","sources":["../../src/desktop/AxProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,4 +68,23 @@ export declare function axTreeToOutline(root: AxNode): OutlineMapResult;
|
|
|
68
68
|
* @param childCount children 数量(已递归后传入,避免重复访问)
|
|
69
69
|
*/
|
|
70
70
|
export declare function isPictureOnly(node: AxNode, childCount: number): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* 判断 role 是否「可交互」(用户能操作:点击/输入/选择)。
|
|
73
|
+
* 用于 interactiveOnly opt-in 过滤(pruneToInteractive)。
|
|
74
|
+
*/
|
|
75
|
+
export declare function isInteractiveRole(role: string): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* 剪枝 OutlineNode 树到「只含可交互元素 + 其祖先」(doc/14 §4.2d)。
|
|
78
|
+
*
|
|
79
|
+
* - **root 永远保留**(即使非交互)—— 上游需要树根 handle;root 是 application/window。
|
|
80
|
+
* - 非根节点:保留当且仅当「自身可交互 OR 子树含可交互后代」。
|
|
81
|
+
* - 纯文本/布局/容器(无交互后代)的叶子分支被剪掉。
|
|
82
|
+
* - 不改原树(返新树;children 数组重建,节点对象复用浅拷贝)。
|
|
83
|
+
*
|
|
84
|
+
* 用途:LLM 只需「这页面能点什么/填什么」时,大幅省 token(vs 全 AX tree)。
|
|
85
|
+
* 默认 off(DesktopOptions.interactive_only 未传 = 不过滤 = byte-identical v1.1)。
|
|
86
|
+
*
|
|
87
|
+
* INV-70:本函数是 opt-in 后处理;axTreeToOutline(映射)一行不改(INV-61 三平台共享不变)。
|
|
88
|
+
*/
|
|
89
|
+
export declare function pruneToInteractive(root: OutlineNode): OutlineNode;
|
|
71
90
|
//# sourceMappingURL=OutlineMapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutlineMapper.d.ts","sourceRoot":"","sources":["../../src/desktop/OutlineMapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"OutlineMapper.d.ts","sourceRoot":"","sources":["../../src/desktop/OutlineMapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA8B9D;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAKD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAgB9D;AAKD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,OAAO,CAST;AAKD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAWD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,CAejE"}
|