weixin-devtools-mcp 0.0.1 → 0.1.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/LICENSE +21 -0
- package/README.md +101 -114
- package/build/MiniProgramContext.d.ts +307 -0
- package/build/MiniProgramContext.d.ts.map +1 -0
- package/build/MiniProgramContext.js +650 -0
- package/build/MiniProgramContext.js.map +1 -0
- package/build/collectors/Collector.d.ts +127 -0
- package/build/collectors/Collector.d.ts.map +1 -0
- package/build/collectors/Collector.js +252 -0
- package/build/collectors/Collector.js.map +1 -0
- package/build/collectors/ConsoleCollector.d.ts +104 -0
- package/build/collectors/ConsoleCollector.d.ts.map +1 -0
- package/build/collectors/ConsoleCollector.js +157 -0
- package/build/collectors/ConsoleCollector.js.map +1 -0
- package/build/collectors/NetworkCollector.d.ts +167 -0
- package/build/collectors/NetworkCollector.d.ts.map +1 -0
- package/build/collectors/NetworkCollector.js +265 -0
- package/build/collectors/NetworkCollector.js.map +1 -0
- package/build/collectors/index.d.ts +13 -0
- package/build/collectors/index.d.ts.map +1 -0
- package/build/collectors/index.js +17 -0
- package/build/collectors/index.js.map +1 -0
- package/build/config/tool-profile.d.ts +30 -0
- package/build/config/tool-profile.d.ts.map +1 -0
- package/build/config/tool-profile.js +138 -0
- package/build/config/tool-profile.js.map +1 -0
- package/build/connection/adapters.d.ts +3 -0
- package/build/connection/adapters.d.ts.map +1 -0
- package/build/connection/adapters.js +134 -0
- package/build/connection/adapters.js.map +1 -0
- package/build/connection/errors.d.ts +34 -0
- package/build/connection/errors.d.ts.map +1 -0
- package/build/connection/errors.js +101 -0
- package/build/connection/errors.js.map +1 -0
- package/build/connection/health-probe.d.ts +4 -0
- package/build/connection/health-probe.d.ts.map +1 -0
- package/build/connection/health-probe.js +60 -0
- package/build/connection/health-probe.js.map +1 -0
- package/build/connection/index.d.ts +6 -0
- package/build/connection/index.d.ts.map +1 -0
- package/build/connection/index.js +6 -0
- package/build/connection/index.js.map +1 -0
- package/build/connection/manager.d.ts +19 -0
- package/build/connection/manager.d.ts.map +1 -0
- package/build/connection/manager.js +198 -0
- package/build/connection/manager.js.map +1 -0
- package/build/connection/resolver.d.ts +3 -0
- package/build/connection/resolver.d.ts.map +1 -0
- package/build/connection/resolver.js +96 -0
- package/build/connection/resolver.js.map +1 -0
- package/build/connection/types.d.ts +95 -0
- package/build/connection/types.d.ts.map +1 -0
- package/build/connection/types.js +16 -0
- package/build/connection/types.js.map +1 -0
- package/build/formatters/consoleFormatter.d.ts +50 -0
- package/build/formatters/consoleFormatter.d.ts.map +1 -0
- package/build/formatters/consoleFormatter.js +116 -0
- package/build/formatters/consoleFormatter.js.map +1 -0
- package/build/formatters/snapshotFormatter.d.ts +41 -0
- package/build/formatters/snapshotFormatter.d.ts.map +1 -0
- package/build/formatters/snapshotFormatter.js +156 -0
- package/build/formatters/snapshotFormatter.js.map +1 -0
- package/build/index.d.ts +11 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +45 -9
- package/build/index.js.map +1 -0
- package/build/server.d.ts +7 -0
- package/build/server.d.ts.map +1 -0
- package/build/server.js +70 -30
- package/build/server.js.map +1 -0
- package/build/tools/ToolDefinition.d.ts +215 -0
- package/build/tools/ToolDefinition.d.ts.map +1 -0
- package/build/tools/ToolDefinition.js +9 -7
- package/build/tools/ToolDefinition.js.map +1 -0
- package/build/tools/assert.d.ts +17 -0
- package/build/tools/assert.d.ts.map +1 -0
- package/build/tools/assert.js +8 -88
- package/build/tools/assert.js.map +1 -0
- package/build/tools/connection.d.ts +13 -0
- package/build/tools/connection.d.ts.map +1 -0
- package/build/tools/connection.js +332 -615
- package/build/tools/connection.js.map +1 -0
- package/build/tools/console.d.ts +20 -0
- package/build/tools/console.d.ts.map +1 -0
- package/build/tools/console.js +162 -152
- package/build/tools/console.js.map +1 -0
- package/build/tools/diagnose.d.ts +22 -0
- package/build/tools/diagnose.d.ts.map +1 -0
- package/build/tools/diagnose.js +400 -13
- package/build/tools/diagnose.js.map +1 -0
- package/build/tools/index.d.ts +6 -0
- package/build/tools/index.d.ts.map +1 -0
- package/build/tools/index.js +3 -77
- package/build/tools/index.js.map +1 -0
- package/build/tools/input.d.ts +21 -0
- package/build/tools/input.d.ts.map +1 -0
- package/build/tools/input.js +73 -139
- package/build/tools/input.js.map +1 -0
- package/build/tools/navigate.d.ts +21 -0
- package/build/tools/navigate.d.ts.map +1 -0
- package/build/tools/navigate.js +63 -126
- package/build/tools/navigate.js.map +1 -0
- package/build/tools/network.d.ts +17 -0
- package/build/tools/network.d.ts.map +1 -0
- package/build/tools/network.js +75 -887
- package/build/tools/network.js.map +1 -0
- package/build/tools/page.d.ts +13 -0
- package/build/tools/page.d.ts.map +1 -0
- package/build/tools/page.js +4 -1
- package/build/tools/page.js.map +1 -0
- package/build/tools/screenshot.d.ts +9 -0
- package/build/tools/screenshot.d.ts.map +1 -0
- package/build/tools/screenshot.js +3 -1
- package/build/tools/screenshot.js.map +1 -0
- package/build/tools/script.d.ts +6 -0
- package/build/tools/script.d.ts.map +1 -0
- package/build/tools/script.js +92 -0
- package/build/tools/script.js.map +1 -0
- package/build/tools/snapshot.d.ts +9 -0
- package/build/tools/snapshot.d.ts.map +1 -0
- package/build/tools/snapshot.js +78 -12
- package/build/tools/snapshot.js.map +1 -0
- package/build/tools/tools.d.ts +15 -0
- package/build/tools/tools.d.ts.map +1 -0
- package/build/tools/tools.js +62 -0
- package/build/tools/tools.js.map +1 -0
- package/build/tools.d.ts +431 -0
- package/build/tools.d.ts.map +1 -0
- package/build/tools.js +235 -117
- package/build/tools.js.map +1 -0
- package/build/types/errors.d.ts +189 -0
- package/build/types/errors.d.ts.map +1 -0
- package/build/types/errors.js +257 -0
- package/build/types/errors.js.map +1 -0
- package/build/utils/idGenerator.d.ts +21 -0
- package/build/utils/idGenerator.d.ts.map +1 -0
- package/build/utils/idGenerator.js +23 -0
- package/build/utils/idGenerator.js.map +1 -0
- package/package.json +34 -10
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NetworkCollector - 网络请求收集器
|
|
3
|
+
*
|
|
4
|
+
* 专门用于收集和管理网络请求
|
|
5
|
+
* 继承自通用 Collector 基类
|
|
6
|
+
*/
|
|
7
|
+
import { Collector, type CollectorOptions, type QueryOptions } from './Collector.js';
|
|
8
|
+
/**
|
|
9
|
+
* 网络请求类型
|
|
10
|
+
*/
|
|
11
|
+
export type NetworkRequestType = 'request' | 'uploadFile' | 'downloadFile';
|
|
12
|
+
/**
|
|
13
|
+
* 网络请求信息接口
|
|
14
|
+
*/
|
|
15
|
+
export interface NetworkRequest {
|
|
16
|
+
/** 请求 ID(由应用层分配) */
|
|
17
|
+
id: string;
|
|
18
|
+
/** 请求类型 */
|
|
19
|
+
type: NetworkRequestType;
|
|
20
|
+
/** 请求 URL */
|
|
21
|
+
url: string;
|
|
22
|
+
/** HTTP 方法 */
|
|
23
|
+
method?: string;
|
|
24
|
+
/** 请求头 */
|
|
25
|
+
headers?: Record<string, string>;
|
|
26
|
+
/** 请求体数据 */
|
|
27
|
+
data?: unknown;
|
|
28
|
+
/** 查询参数(Mpx 框架等) */
|
|
29
|
+
params?: Record<string, unknown>;
|
|
30
|
+
/** 响应状态码 */
|
|
31
|
+
statusCode?: number;
|
|
32
|
+
/** 响应数据 */
|
|
33
|
+
response?: unknown;
|
|
34
|
+
/** 响应头 */
|
|
35
|
+
responseHeaders?: Record<string, string>;
|
|
36
|
+
/** 错误信息 */
|
|
37
|
+
error?: string;
|
|
38
|
+
/** 请求耗时(毫秒) */
|
|
39
|
+
duration?: number;
|
|
40
|
+
/** 请求开始时间 */
|
|
41
|
+
timestamp: string;
|
|
42
|
+
/** 请求完成时间 */
|
|
43
|
+
completedAt?: string;
|
|
44
|
+
/** 是否成功 */
|
|
45
|
+
success: boolean;
|
|
46
|
+
/** 是否等待响应中 */
|
|
47
|
+
pending?: boolean;
|
|
48
|
+
/** 请求来源 */
|
|
49
|
+
source?: string;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* 网络请求查询选项
|
|
53
|
+
*/
|
|
54
|
+
export interface NetworkQueryOptions extends QueryOptions<NetworkRequest> {
|
|
55
|
+
/** 请求类型过滤 */
|
|
56
|
+
type?: NetworkRequestType | 'all';
|
|
57
|
+
/** URL 匹配模式(正则表达式) */
|
|
58
|
+
urlPattern?: string;
|
|
59
|
+
/** 仅返回成功的请求 */
|
|
60
|
+
successOnly?: boolean;
|
|
61
|
+
/** 仅返回失败的请求 */
|
|
62
|
+
failedOnly?: boolean;
|
|
63
|
+
/** 仅返回已完成的请求 */
|
|
64
|
+
completedOnly?: boolean;
|
|
65
|
+
/** 指定时间之后的请求(ISO 8601 格式) */
|
|
66
|
+
since?: string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* wx 网络方法类型(用于存储原始方法以便恢复)
|
|
70
|
+
*/
|
|
71
|
+
export type WxNetworkMethod = ((options: Record<string, unknown>) => unknown) | undefined;
|
|
72
|
+
/**
|
|
73
|
+
* 原始方法存储
|
|
74
|
+
*/
|
|
75
|
+
export interface OriginalMethods {
|
|
76
|
+
request?: WxNetworkMethod;
|
|
77
|
+
uploadFile?: WxNetworkMethod;
|
|
78
|
+
downloadFile?: WxNetworkMethod;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* 网络请求收集器
|
|
82
|
+
*/
|
|
83
|
+
export declare class NetworkCollector extends Collector<NetworkRequest> {
|
|
84
|
+
#private;
|
|
85
|
+
constructor(options?: CollectorOptions);
|
|
86
|
+
/**
|
|
87
|
+
* 设置 MiniProgram 引用(用于远程同步)
|
|
88
|
+
*/
|
|
89
|
+
setMiniProgram(miniProgram: {
|
|
90
|
+
evaluate: (fn: () => unknown) => Promise<unknown>;
|
|
91
|
+
} | null): void;
|
|
92
|
+
/**
|
|
93
|
+
* 从远程同步数据(带节流)
|
|
94
|
+
* @param force 是否强制同步(跳过节流)
|
|
95
|
+
* @returns 同步的请求数量
|
|
96
|
+
*/
|
|
97
|
+
syncFromRemote(force?: boolean): Promise<number>;
|
|
98
|
+
/**
|
|
99
|
+
* 设置同步间隔
|
|
100
|
+
*/
|
|
101
|
+
setSyncInterval(intervalMs: number): void;
|
|
102
|
+
/**
|
|
103
|
+
* 设置原始方法(用于恢复)
|
|
104
|
+
*/
|
|
105
|
+
setOriginalMethods(methods: OriginalMethods): void;
|
|
106
|
+
/**
|
|
107
|
+
* 获取原始方法
|
|
108
|
+
*/
|
|
109
|
+
getOriginalMethods(): OriginalMethods;
|
|
110
|
+
/**
|
|
111
|
+
* 清除原始方法引用
|
|
112
|
+
*/
|
|
113
|
+
clearOriginalMethods(): void;
|
|
114
|
+
/**
|
|
115
|
+
* 添加网络请求
|
|
116
|
+
* @returns Stable ID
|
|
117
|
+
*/
|
|
118
|
+
addRequest(request: NetworkRequest): number;
|
|
119
|
+
/**
|
|
120
|
+
* 更新请求状态(当响应到达时)
|
|
121
|
+
*/
|
|
122
|
+
updateRequest(id: string, updates: Partial<Pick<NetworkRequest, 'statusCode' | 'response' | 'responseHeaders' | 'error' | 'duration' | 'completedAt' | 'success' | 'pending'>>): boolean;
|
|
123
|
+
/**
|
|
124
|
+
* 标记请求完成
|
|
125
|
+
*/
|
|
126
|
+
completeRequest(id: string, response: {
|
|
127
|
+
statusCode?: number;
|
|
128
|
+
data?: unknown;
|
|
129
|
+
headers?: Record<string, string>;
|
|
130
|
+
error?: string;
|
|
131
|
+
}): boolean;
|
|
132
|
+
/**
|
|
133
|
+
* 获取网络请求(支持多种过滤条件)
|
|
134
|
+
*/
|
|
135
|
+
getRequests(options?: NetworkQueryOptions): NetworkRequest[];
|
|
136
|
+
/**
|
|
137
|
+
* 通过请求 ID 获取请求
|
|
138
|
+
*/
|
|
139
|
+
getRequestById(id: string): NetworkRequest | undefined;
|
|
140
|
+
/**
|
|
141
|
+
* 获取待处理的请求
|
|
142
|
+
*/
|
|
143
|
+
getPendingRequests(): NetworkRequest[];
|
|
144
|
+
/**
|
|
145
|
+
* 获取失败的请求
|
|
146
|
+
*/
|
|
147
|
+
getFailedRequests(): NetworkRequest[];
|
|
148
|
+
/**
|
|
149
|
+
* 获取请求统计
|
|
150
|
+
*/
|
|
151
|
+
getStats(): {
|
|
152
|
+
total: number;
|
|
153
|
+
pending: number;
|
|
154
|
+
success: number;
|
|
155
|
+
failed: number;
|
|
156
|
+
byType: Record<NetworkRequestType, number>;
|
|
157
|
+
};
|
|
158
|
+
/**
|
|
159
|
+
* 获取平均响应时间(毫秒)
|
|
160
|
+
*/
|
|
161
|
+
getAverageResponseTime(): number;
|
|
162
|
+
/**
|
|
163
|
+
* 完全重置(包括原始方法引用)
|
|
164
|
+
*/
|
|
165
|
+
reset(): void;
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=NetworkCollector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NetworkCollector.d.ts","sourceRoot":"","sources":["../../src/collectors/NetworkCollector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NetworkCollector - 网络请求收集器
|
|
3
|
+
*
|
|
4
|
+
* 专门用于收集和管理网络请求
|
|
5
|
+
* 继承自通用 Collector 基类
|
|
6
|
+
*/
|
|
7
|
+
import { Collector } from './Collector.js';
|
|
8
|
+
/**
|
|
9
|
+
* 网络请求收集器
|
|
10
|
+
*/
|
|
11
|
+
export class NetworkCollector extends Collector {
|
|
12
|
+
/** 存储原始的 wx 网络方法 */
|
|
13
|
+
#originalMethods = {};
|
|
14
|
+
/** 上次同步时间戳 */
|
|
15
|
+
#lastSyncTimestamp = 0;
|
|
16
|
+
/** 同步间隔(毫秒) */
|
|
17
|
+
#syncIntervalMs = 5000;
|
|
18
|
+
/** MiniProgram 引用(用于同步) */
|
|
19
|
+
#miniProgram = null;
|
|
20
|
+
constructor(options) {
|
|
21
|
+
super(options);
|
|
22
|
+
}
|
|
23
|
+
// ============ MiniProgram 引用管理 ============
|
|
24
|
+
/**
|
|
25
|
+
* 设置 MiniProgram 引用(用于远程同步)
|
|
26
|
+
*/
|
|
27
|
+
setMiniProgram(miniProgram) {
|
|
28
|
+
this.#miniProgram = miniProgram;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 从远程同步数据(带节流)
|
|
32
|
+
* @param force 是否强制同步(跳过节流)
|
|
33
|
+
* @returns 同步的请求数量
|
|
34
|
+
*/
|
|
35
|
+
async syncFromRemote(force = false) {
|
|
36
|
+
const now = Date.now();
|
|
37
|
+
// 节流:非强制且未到同步时间
|
|
38
|
+
if (!force && now - this.#lastSyncTimestamp < this.#syncIntervalMs) {
|
|
39
|
+
return 0;
|
|
40
|
+
}
|
|
41
|
+
if (!this.#miniProgram) {
|
|
42
|
+
return 0;
|
|
43
|
+
}
|
|
44
|
+
try {
|
|
45
|
+
// 从小程序环境拉取并清空远程日志
|
|
46
|
+
const remoteLogs = await this.#miniProgram.evaluate(function () {
|
|
47
|
+
// @ts-ignore
|
|
48
|
+
const wxObj = typeof wx !== 'undefined' ? wx : null;
|
|
49
|
+
if (!wxObj || !wxObj.__networkLogs)
|
|
50
|
+
return [];
|
|
51
|
+
// 返回并清空(避免重复处理)
|
|
52
|
+
// @ts-ignore
|
|
53
|
+
const logs = [...wxObj.__networkLogs];
|
|
54
|
+
// @ts-ignore
|
|
55
|
+
wxObj.__networkLogs = [];
|
|
56
|
+
return logs;
|
|
57
|
+
});
|
|
58
|
+
this.#lastSyncTimestamp = now;
|
|
59
|
+
// 批量添加到本地存储
|
|
60
|
+
let addedCount = 0;
|
|
61
|
+
for (const log of remoteLogs) {
|
|
62
|
+
if (log && typeof log === 'object' && log.url) {
|
|
63
|
+
this.addRequest(log);
|
|
64
|
+
addedCount++;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return addedCount;
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
console.warn('[NetworkCollector] 同步失败:', error);
|
|
71
|
+
return 0;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* 设置同步间隔
|
|
76
|
+
*/
|
|
77
|
+
setSyncInterval(intervalMs) {
|
|
78
|
+
this.#syncIntervalMs = Math.max(1000, intervalMs); // 最少 1 秒
|
|
79
|
+
}
|
|
80
|
+
// ============ 原始方法管理 ============
|
|
81
|
+
/**
|
|
82
|
+
* 设置原始方法(用于恢复)
|
|
83
|
+
*/
|
|
84
|
+
setOriginalMethods(methods) {
|
|
85
|
+
this.#originalMethods = { ...methods };
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* 获取原始方法
|
|
89
|
+
*/
|
|
90
|
+
getOriginalMethods() {
|
|
91
|
+
return { ...this.#originalMethods };
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* 清除原始方法引用
|
|
95
|
+
*/
|
|
96
|
+
clearOriginalMethods() {
|
|
97
|
+
this.#originalMethods = {};
|
|
98
|
+
}
|
|
99
|
+
// ============ 请求收集 ============
|
|
100
|
+
/**
|
|
101
|
+
* 添加网络请求
|
|
102
|
+
* @returns Stable ID
|
|
103
|
+
*/
|
|
104
|
+
addRequest(request) {
|
|
105
|
+
return this.collect(request);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* 更新请求状态(当响应到达时)
|
|
109
|
+
*/
|
|
110
|
+
updateRequest(id, updates) {
|
|
111
|
+
const request = this.find(req => req.id === id);
|
|
112
|
+
if (request) {
|
|
113
|
+
Object.assign(request, updates);
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* 标记请求完成
|
|
120
|
+
*/
|
|
121
|
+
completeRequest(id, response) {
|
|
122
|
+
const request = this.find(req => req.id === id);
|
|
123
|
+
if (!request) {
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
const now = new Date().toISOString();
|
|
127
|
+
const startTime = new Date(request.timestamp).getTime();
|
|
128
|
+
const endTime = new Date(now).getTime();
|
|
129
|
+
request.statusCode = response.statusCode;
|
|
130
|
+
request.response = response.data;
|
|
131
|
+
request.responseHeaders = response.headers;
|
|
132
|
+
request.error = response.error;
|
|
133
|
+
request.duration = endTime - startTime;
|
|
134
|
+
request.completedAt = now;
|
|
135
|
+
request.success = !response.error && (response.statusCode === undefined || (response.statusCode >= 200 && response.statusCode < 400));
|
|
136
|
+
request.pending = false;
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
// ============ 请求查询 ============
|
|
140
|
+
/**
|
|
141
|
+
* 获取网络请求(支持多种过滤条件)
|
|
142
|
+
*/
|
|
143
|
+
getRequests(options = {}) {
|
|
144
|
+
const { type = 'all', urlPattern, successOnly, failedOnly, completedOnly, since, ...baseOptions } = options;
|
|
145
|
+
// 构建复合过滤函数
|
|
146
|
+
const originalFilter = baseOptions.filter;
|
|
147
|
+
const filter = (request) => {
|
|
148
|
+
// 类型过滤
|
|
149
|
+
if (type !== 'all' && request.type !== type) {
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
// URL 模式过滤
|
|
153
|
+
if (urlPattern) {
|
|
154
|
+
try {
|
|
155
|
+
const regex = new RegExp(urlPattern);
|
|
156
|
+
if (!regex.test(request.url)) {
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
// 正则表达式无效,作为普通字符串匹配
|
|
162
|
+
if (!request.url.includes(urlPattern)) {
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
// 成功/失败过滤
|
|
168
|
+
if (successOnly && !request.success) {
|
|
169
|
+
return false;
|
|
170
|
+
}
|
|
171
|
+
if (failedOnly && request.success) {
|
|
172
|
+
return false;
|
|
173
|
+
}
|
|
174
|
+
// 完成状态过滤
|
|
175
|
+
if (completedOnly && request.pending) {
|
|
176
|
+
return false;
|
|
177
|
+
}
|
|
178
|
+
// 时间过滤
|
|
179
|
+
if (since) {
|
|
180
|
+
const sinceTime = new Date(since).getTime();
|
|
181
|
+
const requestTime = new Date(request.timestamp).getTime();
|
|
182
|
+
if (requestTime < sinceTime) {
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// 应用原始过滤器
|
|
187
|
+
if (originalFilter && !originalFilter(request)) {
|
|
188
|
+
return false;
|
|
189
|
+
}
|
|
190
|
+
return true;
|
|
191
|
+
};
|
|
192
|
+
return this.getData({ ...baseOptions, filter });
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* 通过请求 ID 获取请求
|
|
196
|
+
*/
|
|
197
|
+
getRequestById(id) {
|
|
198
|
+
return this.find(req => req.id === id);
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* 获取待处理的请求
|
|
202
|
+
*/
|
|
203
|
+
getPendingRequests() {
|
|
204
|
+
return this.findAll(req => req.pending === true);
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* 获取失败的请求
|
|
208
|
+
*/
|
|
209
|
+
getFailedRequests() {
|
|
210
|
+
return this.findAll(req => !req.success && !req.pending);
|
|
211
|
+
}
|
|
212
|
+
// ============ 统计信息 ============
|
|
213
|
+
/**
|
|
214
|
+
* 获取请求统计
|
|
215
|
+
*/
|
|
216
|
+
getStats() {
|
|
217
|
+
const requests = this.getData({ includePreserved: false });
|
|
218
|
+
const stats = {
|
|
219
|
+
total: requests.length,
|
|
220
|
+
pending: 0,
|
|
221
|
+
success: 0,
|
|
222
|
+
failed: 0,
|
|
223
|
+
byType: {
|
|
224
|
+
request: 0,
|
|
225
|
+
uploadFile: 0,
|
|
226
|
+
downloadFile: 0,
|
|
227
|
+
},
|
|
228
|
+
};
|
|
229
|
+
for (const request of requests) {
|
|
230
|
+
stats.byType[request.type]++;
|
|
231
|
+
if (request.pending) {
|
|
232
|
+
stats.pending++;
|
|
233
|
+
}
|
|
234
|
+
else if (request.success) {
|
|
235
|
+
stats.success++;
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
stats.failed++;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return stats;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* 获取平均响应时间(毫秒)
|
|
245
|
+
*/
|
|
246
|
+
getAverageResponseTime() {
|
|
247
|
+
const requests = this.getData({ includePreserved: false });
|
|
248
|
+
const completedRequests = requests.filter(req => req.duration !== undefined);
|
|
249
|
+
if (completedRequests.length === 0) {
|
|
250
|
+
return 0;
|
|
251
|
+
}
|
|
252
|
+
const totalTime = completedRequests.reduce((sum, req) => sum + (req.duration ?? 0), 0);
|
|
253
|
+
return Math.round(totalTime / completedRequests.length);
|
|
254
|
+
}
|
|
255
|
+
// ============ 重置 ============
|
|
256
|
+
/**
|
|
257
|
+
* 完全重置(包括原始方法引用)
|
|
258
|
+
*/
|
|
259
|
+
reset() {
|
|
260
|
+
this.clear();
|
|
261
|
+
this.clearOriginalMethods();
|
|
262
|
+
this.stopMonitoring();
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=NetworkCollector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NetworkCollector.js","sourceRoot":"","sources":["../../src/collectors/NetworkCollector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Collectors 模块导出
|
|
3
|
+
*
|
|
4
|
+
* 提供通用的数据收集器模式:
|
|
5
|
+
* - Collector: 通用基类
|
|
6
|
+
* - ConsoleCollector: Console 消息收集
|
|
7
|
+
* - NetworkCollector: 网络请求收集
|
|
8
|
+
*/
|
|
9
|
+
export { Collector, type CollectorOptions, type NavigationSession, type QueryOptions, } from './Collector.js';
|
|
10
|
+
export { ConsoleCollector, type ConsoleMessage, type ExceptionMessage, type ConsoleEntry, type ConsoleQueryOptions, isConsoleMessage, isExceptionMessage, } from './ConsoleCollector.js';
|
|
11
|
+
export { NetworkCollector, type NetworkRequest, type NetworkRequestType, type NetworkQueryOptions, type WxNetworkMethod, type OriginalMethods, } from './NetworkCollector.js';
|
|
12
|
+
export { createIdGenerator, stableIdSymbol, type WithStableId, } from '../utils/idGenerator.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/collectors/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,YAAY,GAClB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,KAAK,YAAY,GAClB,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Collectors 模块导出
|
|
3
|
+
*
|
|
4
|
+
* 提供通用的数据收集器模式:
|
|
5
|
+
* - Collector: 通用基类
|
|
6
|
+
* - ConsoleCollector: Console 消息收集
|
|
7
|
+
* - NetworkCollector: 网络请求收集
|
|
8
|
+
*/
|
|
9
|
+
// 基类和通用类型
|
|
10
|
+
export { Collector, } from './Collector.js';
|
|
11
|
+
// Console 收集器
|
|
12
|
+
export { ConsoleCollector, isConsoleMessage, isExceptionMessage, } from './ConsoleCollector.js';
|
|
13
|
+
// Network 收集器
|
|
14
|
+
export { NetworkCollector, } from './NetworkCollector.js';
|
|
15
|
+
// ID 工具(重新导出)
|
|
16
|
+
export { createIdGenerator, stableIdSymbol, } from '../utils/idGenerator.js';
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/collectors/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,UAAU;AACV,OAAO,EACL,SAAS,GAIV,MAAM,gBAAgB,CAAC;AAExB,cAAc;AACd,OAAO,EACL,gBAAgB,EAKhB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,cAAc;AACd,OAAO,EACL,gBAAgB,GAMjB,MAAM,uBAAuB,CAAC;AAE/B,cAAc;AACd,OAAO,EACL,iBAAiB,EACjB,cAAc,GAEf,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 工具暴露配置
|
|
3
|
+
* 支持 profile 与类别开关,按需裁剪 ListTools 返回内容
|
|
4
|
+
*/
|
|
5
|
+
import type { ToolDefinition } from '../tools/ToolDefinition.js';
|
|
6
|
+
import { ToolCategory } from '../tools/ToolDefinition.js';
|
|
7
|
+
export type ToolsProfile = 'core' | 'full' | 'minimal';
|
|
8
|
+
export interface ToolProfileConfig {
|
|
9
|
+
profile: ToolsProfile;
|
|
10
|
+
enabledCategories: ReadonlySet<ToolCategory>;
|
|
11
|
+
disabledCategories: ReadonlySet<ToolCategory>;
|
|
12
|
+
}
|
|
13
|
+
export interface ToolActivationResult {
|
|
14
|
+
activeTools: ToolDefinition[];
|
|
15
|
+
disabledTools: Map<string, ToolDefinition>;
|
|
16
|
+
}
|
|
17
|
+
interface ParseConfigOptions {
|
|
18
|
+
argv?: readonly string[];
|
|
19
|
+
env?: NodeJS.ProcessEnv;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 解析工具 profile 配置
|
|
23
|
+
*/
|
|
24
|
+
export declare function parseToolProfileConfig(options?: ParseConfigOptions): ToolProfileConfig;
|
|
25
|
+
/**
|
|
26
|
+
* 根据 profile 与类别开关计算激活工具
|
|
27
|
+
*/
|
|
28
|
+
export declare function resolveToolsByProfile(tools: readonly ToolDefinition[], config: ToolProfileConfig): ToolActivationResult;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=tool-profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-profile.d.ts","sourceRoot":"","sources":["../../src/config/tool-profile.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAEvD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,YAAY,CAAC;IACtB,iBAAiB,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IAC7C,kBAAkB,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC5C;AAyCD,UAAU,kBAAkB;IAC1B,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAmDD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,iBAAiB,CAqBtF;AAcD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,MAAM,EAAE,iBAAiB,GACxB,oBAAoB,CA6BtB"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 工具暴露配置
|
|
3
|
+
* 支持 profile 与类别开关,按需裁剪 ListTools 返回内容
|
|
4
|
+
*/
|
|
5
|
+
import { ToolCategory } from '../tools/ToolDefinition.js';
|
|
6
|
+
const DEFAULT_PROFILE = 'core';
|
|
7
|
+
const VALID_CATEGORIES = new Set(Object.values(ToolCategory));
|
|
8
|
+
const CORE_TOOL_NAMES = new Set([
|
|
9
|
+
'connect_devtools',
|
|
10
|
+
'reconnect_devtools',
|
|
11
|
+
'disconnect_devtools',
|
|
12
|
+
'get_connection_status',
|
|
13
|
+
'get_current_page',
|
|
14
|
+
'get_page_snapshot',
|
|
15
|
+
'$',
|
|
16
|
+
'waitFor',
|
|
17
|
+
'click',
|
|
18
|
+
'input_text',
|
|
19
|
+
'get_value',
|
|
20
|
+
'set_form_control',
|
|
21
|
+
'assert_text',
|
|
22
|
+
'assert_attribute',
|
|
23
|
+
'assert_state',
|
|
24
|
+
'navigate_to',
|
|
25
|
+
'navigate_back',
|
|
26
|
+
'switch_tab',
|
|
27
|
+
'relaunch',
|
|
28
|
+
'evaluate_script',
|
|
29
|
+
]);
|
|
30
|
+
const MINIMAL_TOOL_NAMES = new Set([
|
|
31
|
+
'connect_devtools',
|
|
32
|
+
'get_connection_status',
|
|
33
|
+
'$',
|
|
34
|
+
'waitFor',
|
|
35
|
+
'click',
|
|
36
|
+
'input_text',
|
|
37
|
+
'get_value',
|
|
38
|
+
'navigate_to',
|
|
39
|
+
'navigate_back',
|
|
40
|
+
'assert_text',
|
|
41
|
+
]);
|
|
42
|
+
function readCliOption(argv, optionName) {
|
|
43
|
+
const inlinePrefix = `--${optionName}=`;
|
|
44
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
45
|
+
const argument = argv[index];
|
|
46
|
+
if (argument.startsWith(inlinePrefix)) {
|
|
47
|
+
return argument.slice(inlinePrefix.length);
|
|
48
|
+
}
|
|
49
|
+
if (argument === `--${optionName}`) {
|
|
50
|
+
const next = argv[index + 1];
|
|
51
|
+
if (typeof next === 'string' && !next.startsWith('--')) {
|
|
52
|
+
return next;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
function normalizeProfile(profileValue) {
|
|
59
|
+
const normalized = profileValue?.trim().toLowerCase();
|
|
60
|
+
if (normalized === 'full' || normalized === 'minimal' || normalized === 'core') {
|
|
61
|
+
return normalized;
|
|
62
|
+
}
|
|
63
|
+
return DEFAULT_PROFILE;
|
|
64
|
+
}
|
|
65
|
+
function parseCategoryList(rawValue) {
|
|
66
|
+
const categories = new Set();
|
|
67
|
+
if (!rawValue) {
|
|
68
|
+
return categories;
|
|
69
|
+
}
|
|
70
|
+
const parts = rawValue.split(',');
|
|
71
|
+
for (const part of parts) {
|
|
72
|
+
const normalized = part.trim().toLowerCase();
|
|
73
|
+
if (normalized.length === 0) {
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
if (VALID_CATEGORIES.has(normalized)) {
|
|
77
|
+
categories.add(normalized);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return categories;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* 解析工具 profile 配置
|
|
84
|
+
*/
|
|
85
|
+
export function parseToolProfileConfig(options) {
|
|
86
|
+
const argv = options?.argv ?? process.argv.slice(2);
|
|
87
|
+
const env = options?.env ?? process.env;
|
|
88
|
+
const cliProfile = readCliOption(argv, 'tools-profile');
|
|
89
|
+
const envProfile = env.WEIXIN_MCP_TOOLS_PROFILE;
|
|
90
|
+
const profile = normalizeProfile(cliProfile ?? envProfile);
|
|
91
|
+
const cliEnabledCategories = readCliOption(argv, 'enable-categories');
|
|
92
|
+
const envEnabledCategories = env.WEIXIN_MCP_ENABLE_CATEGORIES;
|
|
93
|
+
const enabledCategories = parseCategoryList(cliEnabledCategories ?? envEnabledCategories);
|
|
94
|
+
const cliDisabledCategories = readCliOption(argv, 'disable-categories');
|
|
95
|
+
const envDisabledCategories = env.WEIXIN_MCP_DISABLE_CATEGORIES;
|
|
96
|
+
const disabledCategories = parseCategoryList(cliDisabledCategories ?? envDisabledCategories);
|
|
97
|
+
return {
|
|
98
|
+
profile,
|
|
99
|
+
enabledCategories,
|
|
100
|
+
disabledCategories,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
function getBaseActiveNames(profile, tools) {
|
|
104
|
+
if (profile === 'full') {
|
|
105
|
+
return new Set(tools.map(tool => tool.name));
|
|
106
|
+
}
|
|
107
|
+
if (profile === 'minimal') {
|
|
108
|
+
return new Set(MINIMAL_TOOL_NAMES);
|
|
109
|
+
}
|
|
110
|
+
return new Set(CORE_TOOL_NAMES);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* 根据 profile 与类别开关计算激活工具
|
|
114
|
+
*/
|
|
115
|
+
export function resolveToolsByProfile(tools, config) {
|
|
116
|
+
const activeNames = getBaseActiveNames(config.profile, tools);
|
|
117
|
+
for (const tool of tools) {
|
|
118
|
+
const toolCategory = tool.annotations?.category ?? ToolCategory.CORE;
|
|
119
|
+
if (config.enabledCategories.has(toolCategory)) {
|
|
120
|
+
activeNames.add(tool.name);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
for (const tool of tools) {
|
|
124
|
+
const toolCategory = tool.annotations?.category ?? ToolCategory.CORE;
|
|
125
|
+
if (config.disabledCategories.has(toolCategory)) {
|
|
126
|
+
activeNames.delete(tool.name);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
const activeTools = tools.filter(tool => activeNames.has(tool.name));
|
|
130
|
+
const disabledTools = new Map(tools
|
|
131
|
+
.filter(tool => !activeNames.has(tool.name))
|
|
132
|
+
.map(tool => [tool.name, tool]));
|
|
133
|
+
return {
|
|
134
|
+
activeTools,
|
|
135
|
+
disabledTools,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=tool-profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-profile.js","sourceRoot":"","sources":["../../src/config/tool-profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { AdapterConnectionResult, ConnectionStrategy, ResolvedConnectionRequest } from './types.js';
|
|
2
|
+
export declare function executeConnectionStrategy(strategy: ConnectionStrategy, request: ResolvedConnectionRequest): Promise<AdapterConnectionResult>;
|
|
3
|
+
//# sourceMappingURL=adapters.d.ts.map
|