agentpage 0.0.2 → 0.0.3
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/index.d.mts +75 -19
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +448 -386
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -79,6 +79,64 @@ type AgentLoopResult = {
|
|
|
79
79
|
messages: AIMessage[];
|
|
80
80
|
};
|
|
81
81
|
//#endregion
|
|
82
|
+
//#region src/web/ref-store.d.ts
|
|
83
|
+
/**
|
|
84
|
+
* RefStore — 快照 hash ID 与 DOM 元素的映射表。
|
|
85
|
+
*
|
|
86
|
+
* 快照生成时,根据元素的 DOM 路径 + 页面 URL 生成确定性 hash ID,
|
|
87
|
+
* 同时保存 ID → Element 的映射。AI 使用 hash ID 作为 selector 定位元素,
|
|
88
|
+
* 免去超长 XPath 路径,大幅减少 token 消耗。
|
|
89
|
+
*
|
|
90
|
+
* 优势:
|
|
91
|
+
* - **确定性**:同一元素无论快照顺序,始终得到相同 ID
|
|
92
|
+
* - **并发安全**:多次快照不会产生 ID 冲突
|
|
93
|
+
* - **跨页面隔离**:URL hash 作为命名空间,不同页面元素 ID 互不碰撞
|
|
94
|
+
*
|
|
95
|
+
* 生命周期:每次 WebAgent.chat() 调用时创建,对话结束后清空。
|
|
96
|
+
*
|
|
97
|
+
* 使用方:
|
|
98
|
+
* page-info-tool.ts — generateSnapshot() 写入映射
|
|
99
|
+
* dom-tool.ts — queryElement() 读取映射
|
|
100
|
+
* index.ts — WebAgent 持有实例,管理生命周期
|
|
101
|
+
*/
|
|
102
|
+
/**
|
|
103
|
+
* hash ID → DOM 元素的映射存储。
|
|
104
|
+
*
|
|
105
|
+
* - `set(el, path)` 由快照生成时调用,返回确定性 hash ID
|
|
106
|
+
* - `get(id)` 由 dom-tool 查询时调用,根据 hash ID 取回元素
|
|
107
|
+
* - `has(id)` 检查 ID 是否存在(用于 selector 类型判断)
|
|
108
|
+
* - `clear()` 每次对话结束后清空
|
|
109
|
+
*/
|
|
110
|
+
declare class RefStore {
|
|
111
|
+
private map;
|
|
112
|
+
/** 页面 URL 的 hash 前缀,用于跨页面命名空间隔离 */
|
|
113
|
+
private urlKey;
|
|
114
|
+
/**
|
|
115
|
+
* @param url 当前页面 URL(可选)。传入后作为 hash 命名空间,
|
|
116
|
+
* 使不同页面的相同 DOM 路径产生不同 ID。
|
|
117
|
+
*/
|
|
118
|
+
constructor(url?: string);
|
|
119
|
+
/**
|
|
120
|
+
* 注册一个元素,返回确定性 hash ID。
|
|
121
|
+
* 相同 URL + path 始终产生相同 ID(并发安全)。
|
|
122
|
+
*
|
|
123
|
+
* @param el DOM 元素引用
|
|
124
|
+
* @param path 元素的 XPath-like 路径(如 "/body/div[1]/main/button")
|
|
125
|
+
*/
|
|
126
|
+
set(el: Element, path: string): string;
|
|
127
|
+
/**
|
|
128
|
+
* 根据 hash ID 获取 DOM 元素。
|
|
129
|
+
* 返回 Element 或 undefined(ID 不存在或元素已被移除)。
|
|
130
|
+
*/
|
|
131
|
+
get(id: string): Element | undefined;
|
|
132
|
+
/** 检查 hash ID 是否存在 */
|
|
133
|
+
has(id: string): boolean;
|
|
134
|
+
/** 清空所有映射 */
|
|
135
|
+
clear(): void;
|
|
136
|
+
/** 当前映射数量 */
|
|
137
|
+
get size(): number;
|
|
138
|
+
}
|
|
139
|
+
//#endregion
|
|
82
140
|
//#region src/web/page-info-tool.d.ts
|
|
83
141
|
/** 快照配置选项 */
|
|
84
142
|
type SnapshotOptions = {
|
|
@@ -95,31 +153,29 @@ type SnapshotOptions = {
|
|
|
95
153
|
* 如果自身无意义,会被折叠——子元素直接提升到父级输出,减少嵌套噪音。
|
|
96
154
|
*/
|
|
97
155
|
pruneLayout?: boolean;
|
|
156
|
+
/**
|
|
157
|
+
* hash ID 映射表(可选)。
|
|
158
|
+
* 传入 RefStore 实例后,每个元素使用确定性 hash ID 替代完整 XPath,
|
|
159
|
+
* 大幅减少 token 消耗。dom-tool 通过 RefStore.get(id) 解析回 DOM 元素。
|
|
160
|
+
*/
|
|
161
|
+
refStore?: RefStore;
|
|
98
162
|
};
|
|
99
163
|
/**
|
|
100
164
|
* 生成页面 DOM 快照 — 将 DOM 树转为 AI 可理解的文本描述。
|
|
101
165
|
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
* 每个元素自动生成基于层级位置的 XPath 引用(ref),
|
|
106
|
-
* AI 可以通过 ref 精确定位元素,无需猜测 CSS 选择器。
|
|
166
|
+
* 基于 Web API 实现,只遍历可见元素,跳过 script/style/svg 等无意义节点。
|
|
167
|
+
* 传入 RefStore 时,每个元素生成确定性 hash ID(如 #a1b2c),
|
|
168
|
+
* AI 通过 hash ID 精确定位元素,无需猜测 CSS 选择器。
|
|
107
169
|
*
|
|
108
170
|
* 输出格式示例:
|
|
109
|
-
* [header]
|
|
110
|
-
* [nav]
|
|
111
|
-
* [a] "首页" href="/"
|
|
112
|
-
* [a] "关于" href="/about"
|
|
113
|
-
* [main]
|
|
114
|
-
* [h1] "
|
|
115
|
-
* [input] type="text" placeholder="搜索..."
|
|
116
|
-
* [button] "搜索" id="search-btn" onclick
|
|
117
|
-
*
|
|
118
|
-
* 增强信息:
|
|
119
|
-
* - id:元素的 id 属性
|
|
120
|
-
* - placeholder:输入框的占位文本
|
|
121
|
-
* - 事件绑定:onclick/onchange 等内联事件处理器
|
|
122
|
-
* - 状态属性:disabled/checked/readonly/required 等
|
|
171
|
+
* [header] #k9f2a
|
|
172
|
+
* [nav] #m3d7e
|
|
173
|
+
* [a] "首页" href="/" #p1c4b
|
|
174
|
+
* [a] "关于" href="/about" #q8e5f
|
|
175
|
+
* [main] #r2a6d
|
|
176
|
+
* [h1] "欢迎" #s7g3h
|
|
177
|
+
* [input] type="text" placeholder="搜索..." #t4j8k
|
|
178
|
+
* [button] "搜索" id="search-btn" onclick #u5n2m
|
|
123
179
|
*
|
|
124
180
|
* @param root - 快照根元素(默认 document.body)
|
|
125
181
|
* @param options - 快照选项对象,或传入数字作为 maxDepth(向后兼容)
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/core/tool-registry.ts","../src/core/types.ts","../src/core/agent-loop/index.ts","../src/web/page-info-tool.ts","../src/web/dom-tool.ts","../src/web/navigate-tool.ts","../src/web/wait-tool.ts","../src/web/evaluate-tool.ts","../src/web/messaging.ts","../src/web/index.ts"],"mappings":";;;;;;KA0BY,cAAA;EAuBV,qCArBA,OAAA,WAAkB,MAAA,mBAqBR;EAnBV,OAAA,GAAU,MAAA;AAAA;;;;;;ACfZ;;;KD0BY,cAAA;ECxBV,4CD0BA,IAAA,UCtBA;EDwBA,WAAA,UCxBK;ED0BL,MAAA,EAAQ,OAAA,ECpBW;EDsBnB,OAAA,GAAU,MAAA,EAAQ,MAAA,sBAA4B,OAAA,CAAQ,cAAA;AAAA;;;;KClC5C,UAAA;ED0BA,0BCxBV,EAAA;EAEA,IAAA,UD8BkB;EC5BlB,KAAA;AAAA;;KAMU,SAAA;EACV,IAAA,4CDiBA;ECfA,OAAA,WAAkB,KAAA;IAAQ,UAAA;IAAoB,MAAA;EAAA,IDmBpC;ECjBV,SAAA,GAAY,UAAA;AAAA;;KAMF,cAAA;iBAEV,IAAA;EAEA,SAAA,GAAY,UAAA,IA3BQ;EA6BpB,KAAA;IAAU,WAAA;IAAqB,YAAA;EAAA;AAAA;;;AAjBjC;;;KA2BY,QAAA;EACV,IAAA,CAAK,MAAA;IACH,YAAA;IACA,QAAA,EAAU,SAAA;IACV,KAAA,GAAQ,cAAA;EAAA,IACN,OAAA,CAAQ,cAAA;AAAA;;;;KCnBF,kBAAA;EFS2C,mBEPrD,MAAA,IAAU,IAAA,mBFGV;EEDA,UAAA,IAAc,IAAA,UAAc,KAAA,oBFGpB;EEDR,YAAA,IAAgB,IAAA,UAAc,MAAA,EAAQ,cAAA,WFGpB;EEDlB,OAAA,IAAW,KAAA;AAAA;AAAA,KAwBD,eAAA;ED5CV,iBC8CA,KAAA,UD5CkB;EC8ClB,SAAA,EAAW,KAAA;IAAQ,IAAA;IAAc,KAAA;IAAgB,MAAA,EAAQ,cAAA;EAAA,ID5CnC;EC8CtB,QAAA,EAAU,SAAA;AAAA;;;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/core/tool-registry.ts","../src/core/types.ts","../src/core/agent-loop/index.ts","../src/web/ref-store.ts","../src/web/page-info-tool.ts","../src/web/dom-tool.ts","../src/web/navigate-tool.ts","../src/web/wait-tool.ts","../src/web/evaluate-tool.ts","../src/web/messaging.ts","../src/web/index.ts"],"mappings":"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"}
|