@vite-plugin-opencode-assistant/shared 1.0.15 → 1.0.17
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/es/constants.d.ts +5 -0
- package/es/constants.js +4 -0
- package/es/types.d.ts +24 -12
- package/es/types.js +21 -0
- package/es/utils.d.ts +6 -0
- package/es/utils.js +44 -0
- package/lib/constants.d.ts +5 -0
- package/lib/constants.js +6 -0
- package/lib/types.d.ts +24 -12
- package/lib/types.js +22 -0
- package/lib/utils.d.ts +6 -0
- package/lib/utils.js +55 -0
- package/package.json +1 -1
package/es/constants.d.ts
CHANGED
|
@@ -56,6 +56,11 @@ export declare const NOTIFICATION_DURATION = 3000;
|
|
|
56
56
|
export declare const INIT_MARKER = "__OPENCODE_INITIALIZED__";
|
|
57
57
|
/** 选中元素存储键 */
|
|
58
58
|
export declare const SELECTED_ELEMENTS_KEY = "__opencode_selected_elements__";
|
|
59
|
+
/** ==================== Chrome DevTools ==================== */
|
|
60
|
+
/** Chrome DevTools Protocol 默认端口 */
|
|
61
|
+
export declare const CHROME_DEVTOOLS_PORT = 9222;
|
|
62
|
+
/** Chrome DevTools 检查超时时间(毫秒) */
|
|
63
|
+
export declare const CHROME_DEVTOOLS_CHECK_TIMEOUT = 2000;
|
|
59
64
|
/** ==================== OpenCode localStorage 键 ==================== */
|
|
60
65
|
/** OpenCode localStorage 配置键 */
|
|
61
66
|
export declare const OPENCODE_STORAGE_KEYS: {
|
package/es/constants.js
CHANGED
|
@@ -22,6 +22,8 @@ const AUTO_OPEN_DELAY = 1e3;
|
|
|
22
22
|
const NOTIFICATION_DURATION = 3e3;
|
|
23
23
|
const INIT_MARKER = "__OPENCODE_INITIALIZED__";
|
|
24
24
|
const SELECTED_ELEMENTS_KEY = "__opencode_selected_elements__";
|
|
25
|
+
const CHROME_DEVTOOLS_PORT = 9222;
|
|
26
|
+
const CHROME_DEVTOOLS_CHECK_TIMEOUT = 2e3;
|
|
25
27
|
const OPENCODE_STORAGE_KEYS = {
|
|
26
28
|
/** 设置键 (settings.v3) */
|
|
27
29
|
SETTINGS: "settings.v3",
|
|
@@ -56,6 +58,8 @@ const DEFAULT_CONFIG = {
|
|
|
56
58
|
};
|
|
57
59
|
export {
|
|
58
60
|
AUTO_OPEN_DELAY,
|
|
61
|
+
CHROME_DEVTOOLS_CHECK_TIMEOUT,
|
|
62
|
+
CHROME_DEVTOOLS_PORT,
|
|
59
63
|
CONFIG_DATA_ATTR,
|
|
60
64
|
CONTEXT_API_PATH,
|
|
61
65
|
CONTEXT_MARKER,
|
package/es/types.d.ts
CHANGED
|
@@ -115,24 +115,12 @@ export interface WebOptions {
|
|
|
115
115
|
* 挂件注入配置选项
|
|
116
116
|
*/
|
|
117
117
|
export interface WidgetOptions {
|
|
118
|
-
/** Web 服务 URL */
|
|
119
|
-
webUrl: string;
|
|
120
|
-
/** 代理服务 URL */
|
|
121
|
-
proxyUrl: string;
|
|
122
|
-
/** 服务器 URL */
|
|
123
|
-
serverUrl: string;
|
|
124
118
|
/** 挂件位置 */
|
|
125
119
|
position: string;
|
|
126
120
|
/** 主题模式 */
|
|
127
121
|
theme: string;
|
|
128
122
|
/** 是否自动打开 */
|
|
129
123
|
open: boolean;
|
|
130
|
-
/** 是否自动重载 */
|
|
131
|
-
autoReload: boolean;
|
|
132
|
-
/** 工作目录 */
|
|
133
|
-
cwd: string;
|
|
134
|
-
/** 会话 URL */
|
|
135
|
-
sessionUrl?: string;
|
|
136
124
|
/** 快捷键配置 */
|
|
137
125
|
hotkey?: string;
|
|
138
126
|
}
|
|
@@ -152,6 +140,8 @@ export interface SessionInfo {
|
|
|
152
140
|
title: string;
|
|
153
141
|
/** 版本号 */
|
|
154
142
|
version: string;
|
|
143
|
+
/** 会话 URL */
|
|
144
|
+
url?: string;
|
|
155
145
|
/** 代码变更统计 */
|
|
156
146
|
summary: {
|
|
157
147
|
/** 新增行数 */
|
|
@@ -224,6 +214,7 @@ export interface OpenCodeWidgetSession {
|
|
|
224
214
|
updatedAt?: string | number | Date;
|
|
225
215
|
meta?: string;
|
|
226
216
|
directory?: string;
|
|
217
|
+
url?: string;
|
|
227
218
|
}
|
|
228
219
|
/**
|
|
229
220
|
* 挂件选中的元素
|
|
@@ -291,6 +282,7 @@ export interface OpenCodeWidgetProps {
|
|
|
291
282
|
selectedElements?: OpenCodeSelectedElement[];
|
|
292
283
|
showClearAll?: boolean;
|
|
293
284
|
selectEnabled?: boolean;
|
|
285
|
+
thinking?: boolean;
|
|
294
286
|
}
|
|
295
287
|
/**
|
|
296
288
|
* 挂件组件事件
|
|
@@ -302,6 +294,7 @@ export type OpenCodeWidgetEmits = {
|
|
|
302
294
|
(e: "update:currentSessionId", value: string | null): void;
|
|
303
295
|
(e: "update:selectedElements", value: OpenCodeSelectedElement[]): void;
|
|
304
296
|
(e: "update:theme", value: OpenCodeWidgetTheme): void;
|
|
297
|
+
(e: "update:thinking", value: boolean): void;
|
|
305
298
|
(e: "toggle", value: boolean): void;
|
|
306
299
|
(e: "close"): void;
|
|
307
300
|
(e: "toggle-session-list", value: boolean): void;
|
|
@@ -315,4 +308,23 @@ export type OpenCodeWidgetEmits = {
|
|
|
315
308
|
(e: "clear-selected-nodes"): void;
|
|
316
309
|
(e: "empty-action"): void;
|
|
317
310
|
(e: "frame-loaded"): void;
|
|
311
|
+
(e: "thinking-change", value: boolean): void;
|
|
318
312
|
};
|
|
313
|
+
/**
|
|
314
|
+
* Chrome MCP 预热错误类型
|
|
315
|
+
*/
|
|
316
|
+
export declare enum ChromeMcpWarmupErrorType {
|
|
317
|
+
CHROME_NOT_CONNECTED = "CHROME_NOT_CONNECTED",
|
|
318
|
+
AI_TIMEOUT = "AI_TIMEOUT",
|
|
319
|
+
AI_RESPONSE_ERROR = "AI_RESPONSE_ERROR",
|
|
320
|
+
SESSION_ERROR = "SESSION_ERROR",
|
|
321
|
+
UNKNOWN = "UNKNOWN"
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Chrome MCP 预热错误
|
|
325
|
+
*/
|
|
326
|
+
export declare class ChromeMcpWarmupError extends Error {
|
|
327
|
+
type: ChromeMcpWarmupErrorType;
|
|
328
|
+
details?: string | undefined;
|
|
329
|
+
constructor(type: ChromeMcpWarmupErrorType, message: string, details?: string | undefined);
|
|
330
|
+
}
|
package/es/types.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
1
4
|
const SERVICE_STARTUP_TASKS = {
|
|
2
5
|
checking_opencode: "\u68C0\u67E5 OpenCode \u5B89\u88C5",
|
|
3
6
|
allocating_port: "\u5206\u914D\u670D\u52A1\u7AEF\u53E3",
|
|
@@ -13,6 +16,24 @@ const SERVICE_STARTUP_TASKS = {
|
|
|
13
16
|
chrome_mcp_failed: "Chrome DevTools \u8FDE\u63A5\u5931\u8D25",
|
|
14
17
|
ready: "\u51C6\u5907\u5B8C\u6210"
|
|
15
18
|
};
|
|
19
|
+
var ChromeMcpWarmupErrorType = /* @__PURE__ */ ((ChromeMcpWarmupErrorType2) => {
|
|
20
|
+
ChromeMcpWarmupErrorType2["CHROME_NOT_CONNECTED"] = "CHROME_NOT_CONNECTED";
|
|
21
|
+
ChromeMcpWarmupErrorType2["AI_TIMEOUT"] = "AI_TIMEOUT";
|
|
22
|
+
ChromeMcpWarmupErrorType2["AI_RESPONSE_ERROR"] = "AI_RESPONSE_ERROR";
|
|
23
|
+
ChromeMcpWarmupErrorType2["SESSION_ERROR"] = "SESSION_ERROR";
|
|
24
|
+
ChromeMcpWarmupErrorType2["UNKNOWN"] = "UNKNOWN";
|
|
25
|
+
return ChromeMcpWarmupErrorType2;
|
|
26
|
+
})(ChromeMcpWarmupErrorType || {});
|
|
27
|
+
class ChromeMcpWarmupError extends Error {
|
|
28
|
+
constructor(type, message, details) {
|
|
29
|
+
super(message);
|
|
30
|
+
__publicField(this, "type", type);
|
|
31
|
+
__publicField(this, "details", details);
|
|
32
|
+
this.name = "ChromeMcpWarmupError";
|
|
33
|
+
}
|
|
34
|
+
}
|
|
16
35
|
export {
|
|
36
|
+
ChromeMcpWarmupError,
|
|
37
|
+
ChromeMcpWarmupErrorType,
|
|
17
38
|
SERVICE_STARTUP_TASKS
|
|
18
39
|
};
|
package/es/utils.d.ts
CHANGED
|
@@ -31,3 +31,9 @@ export declare function base64Decode(base64: string): string;
|
|
|
31
31
|
* 支持多种常见响应格式
|
|
32
32
|
*/
|
|
33
33
|
export declare function extractTextFromResponse(data: unknown): string | null;
|
|
34
|
+
/**
|
|
35
|
+
* 检查 Chrome DevTools 是否可用
|
|
36
|
+
* @param timeout - 超时时间(毫秒),默认 2000ms
|
|
37
|
+
* @returns Chrome DevTools 是否可用
|
|
38
|
+
*/
|
|
39
|
+
export declare function checkChromeDevToolsAvailable(timeout?: number): Promise<boolean>;
|
package/es/utils.js
CHANGED
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
var __async = (__this, __arguments, generator) => {
|
|
2
|
+
return new Promise((resolve, reject) => {
|
|
3
|
+
var fulfilled = (value) => {
|
|
4
|
+
try {
|
|
5
|
+
step(generator.next(value));
|
|
6
|
+
} catch (e) {
|
|
7
|
+
reject(e);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
var rejected = (value) => {
|
|
11
|
+
try {
|
|
12
|
+
step(generator.throw(value));
|
|
13
|
+
} catch (e) {
|
|
14
|
+
reject(e);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
18
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
import net from "net";
|
|
22
|
+
import { CHROME_DEVTOOLS_PORT, CHROME_DEVTOOLS_CHECK_TIMEOUT } from "./constants.js";
|
|
1
23
|
function truncate(value, maxLength) {
|
|
2
24
|
if (value.length <= maxLength) {
|
|
3
25
|
return value;
|
|
@@ -44,9 +66,31 @@ function extractTextFromResponse(data) {
|
|
|
44
66
|
}
|
|
45
67
|
return null;
|
|
46
68
|
}
|
|
69
|
+
function checkChromeDevToolsAvailable() {
|
|
70
|
+
return __async(this, arguments, function* (timeout = CHROME_DEVTOOLS_CHECK_TIMEOUT) {
|
|
71
|
+
return new Promise((resolve) => {
|
|
72
|
+
const socket = new net.Socket();
|
|
73
|
+
const timer = setTimeout(() => {
|
|
74
|
+
socket.destroy();
|
|
75
|
+
resolve(false);
|
|
76
|
+
}, timeout);
|
|
77
|
+
socket.connect(CHROME_DEVTOOLS_PORT, "localhost", () => {
|
|
78
|
+
clearTimeout(timer);
|
|
79
|
+
socket.removeAllListeners();
|
|
80
|
+
socket.destroy();
|
|
81
|
+
resolve(true);
|
|
82
|
+
});
|
|
83
|
+
socket.on("error", () => {
|
|
84
|
+
clearTimeout(timer);
|
|
85
|
+
resolve(false);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
}
|
|
47
90
|
export {
|
|
48
91
|
base64Decode,
|
|
49
92
|
base64Encode,
|
|
93
|
+
checkChromeDevToolsAvailable,
|
|
50
94
|
extractTextFromResponse,
|
|
51
95
|
sleep,
|
|
52
96
|
truncate
|
package/lib/constants.d.ts
CHANGED
|
@@ -56,6 +56,11 @@ export declare const NOTIFICATION_DURATION = 3000;
|
|
|
56
56
|
export declare const INIT_MARKER = "__OPENCODE_INITIALIZED__";
|
|
57
57
|
/** 选中元素存储键 */
|
|
58
58
|
export declare const SELECTED_ELEMENTS_KEY = "__opencode_selected_elements__";
|
|
59
|
+
/** ==================== Chrome DevTools ==================== */
|
|
60
|
+
/** Chrome DevTools Protocol 默认端口 */
|
|
61
|
+
export declare const CHROME_DEVTOOLS_PORT = 9222;
|
|
62
|
+
/** Chrome DevTools 检查超时时间(毫秒) */
|
|
63
|
+
export declare const CHROME_DEVTOOLS_CHECK_TIMEOUT = 2000;
|
|
59
64
|
/** ==================== OpenCode localStorage 键 ==================== */
|
|
60
65
|
/** OpenCode localStorage 配置键 */
|
|
61
66
|
export declare const OPENCODE_STORAGE_KEYS: {
|
package/lib/constants.js
CHANGED
|
@@ -18,6 +18,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
18
18
|
var constants_exports = {};
|
|
19
19
|
__export(constants_exports, {
|
|
20
20
|
AUTO_OPEN_DELAY: () => AUTO_OPEN_DELAY,
|
|
21
|
+
CHROME_DEVTOOLS_CHECK_TIMEOUT: () => CHROME_DEVTOOLS_CHECK_TIMEOUT,
|
|
22
|
+
CHROME_DEVTOOLS_PORT: () => CHROME_DEVTOOLS_PORT,
|
|
21
23
|
CONFIG_DATA_ATTR: () => CONFIG_DATA_ATTR,
|
|
22
24
|
CONTEXT_API_PATH: () => CONTEXT_API_PATH,
|
|
23
25
|
CONTEXT_MARKER: () => CONTEXT_MARKER,
|
|
@@ -74,6 +76,8 @@ const AUTO_OPEN_DELAY = 1e3;
|
|
|
74
76
|
const NOTIFICATION_DURATION = 3e3;
|
|
75
77
|
const INIT_MARKER = "__OPENCODE_INITIALIZED__";
|
|
76
78
|
const SELECTED_ELEMENTS_KEY = "__opencode_selected_elements__";
|
|
79
|
+
const CHROME_DEVTOOLS_PORT = 9222;
|
|
80
|
+
const CHROME_DEVTOOLS_CHECK_TIMEOUT = 2e3;
|
|
77
81
|
const OPENCODE_STORAGE_KEYS = {
|
|
78
82
|
/** 设置键 (settings.v3) */
|
|
79
83
|
SETTINGS: "settings.v3",
|
|
@@ -109,6 +113,8 @@ const DEFAULT_CONFIG = {
|
|
|
109
113
|
// Annotate the CommonJS export names for ESM import in node:
|
|
110
114
|
0 && (module.exports = {
|
|
111
115
|
AUTO_OPEN_DELAY,
|
|
116
|
+
CHROME_DEVTOOLS_CHECK_TIMEOUT,
|
|
117
|
+
CHROME_DEVTOOLS_PORT,
|
|
112
118
|
CONFIG_DATA_ATTR,
|
|
113
119
|
CONTEXT_API_PATH,
|
|
114
120
|
CONTEXT_MARKER,
|
package/lib/types.d.ts
CHANGED
|
@@ -115,24 +115,12 @@ export interface WebOptions {
|
|
|
115
115
|
* 挂件注入配置选项
|
|
116
116
|
*/
|
|
117
117
|
export interface WidgetOptions {
|
|
118
|
-
/** Web 服务 URL */
|
|
119
|
-
webUrl: string;
|
|
120
|
-
/** 代理服务 URL */
|
|
121
|
-
proxyUrl: string;
|
|
122
|
-
/** 服务器 URL */
|
|
123
|
-
serverUrl: string;
|
|
124
118
|
/** 挂件位置 */
|
|
125
119
|
position: string;
|
|
126
120
|
/** 主题模式 */
|
|
127
121
|
theme: string;
|
|
128
122
|
/** 是否自动打开 */
|
|
129
123
|
open: boolean;
|
|
130
|
-
/** 是否自动重载 */
|
|
131
|
-
autoReload: boolean;
|
|
132
|
-
/** 工作目录 */
|
|
133
|
-
cwd: string;
|
|
134
|
-
/** 会话 URL */
|
|
135
|
-
sessionUrl?: string;
|
|
136
124
|
/** 快捷键配置 */
|
|
137
125
|
hotkey?: string;
|
|
138
126
|
}
|
|
@@ -152,6 +140,8 @@ export interface SessionInfo {
|
|
|
152
140
|
title: string;
|
|
153
141
|
/** 版本号 */
|
|
154
142
|
version: string;
|
|
143
|
+
/** 会话 URL */
|
|
144
|
+
url?: string;
|
|
155
145
|
/** 代码变更统计 */
|
|
156
146
|
summary: {
|
|
157
147
|
/** 新增行数 */
|
|
@@ -224,6 +214,7 @@ export interface OpenCodeWidgetSession {
|
|
|
224
214
|
updatedAt?: string | number | Date;
|
|
225
215
|
meta?: string;
|
|
226
216
|
directory?: string;
|
|
217
|
+
url?: string;
|
|
227
218
|
}
|
|
228
219
|
/**
|
|
229
220
|
* 挂件选中的元素
|
|
@@ -291,6 +282,7 @@ export interface OpenCodeWidgetProps {
|
|
|
291
282
|
selectedElements?: OpenCodeSelectedElement[];
|
|
292
283
|
showClearAll?: boolean;
|
|
293
284
|
selectEnabled?: boolean;
|
|
285
|
+
thinking?: boolean;
|
|
294
286
|
}
|
|
295
287
|
/**
|
|
296
288
|
* 挂件组件事件
|
|
@@ -302,6 +294,7 @@ export type OpenCodeWidgetEmits = {
|
|
|
302
294
|
(e: "update:currentSessionId", value: string | null): void;
|
|
303
295
|
(e: "update:selectedElements", value: OpenCodeSelectedElement[]): void;
|
|
304
296
|
(e: "update:theme", value: OpenCodeWidgetTheme): void;
|
|
297
|
+
(e: "update:thinking", value: boolean): void;
|
|
305
298
|
(e: "toggle", value: boolean): void;
|
|
306
299
|
(e: "close"): void;
|
|
307
300
|
(e: "toggle-session-list", value: boolean): void;
|
|
@@ -315,4 +308,23 @@ export type OpenCodeWidgetEmits = {
|
|
|
315
308
|
(e: "clear-selected-nodes"): void;
|
|
316
309
|
(e: "empty-action"): void;
|
|
317
310
|
(e: "frame-loaded"): void;
|
|
311
|
+
(e: "thinking-change", value: boolean): void;
|
|
318
312
|
};
|
|
313
|
+
/**
|
|
314
|
+
* Chrome MCP 预热错误类型
|
|
315
|
+
*/
|
|
316
|
+
export declare enum ChromeMcpWarmupErrorType {
|
|
317
|
+
CHROME_NOT_CONNECTED = "CHROME_NOT_CONNECTED",
|
|
318
|
+
AI_TIMEOUT = "AI_TIMEOUT",
|
|
319
|
+
AI_RESPONSE_ERROR = "AI_RESPONSE_ERROR",
|
|
320
|
+
SESSION_ERROR = "SESSION_ERROR",
|
|
321
|
+
UNKNOWN = "UNKNOWN"
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Chrome MCP 预热错误
|
|
325
|
+
*/
|
|
326
|
+
export declare class ChromeMcpWarmupError extends Error {
|
|
327
|
+
type: ChromeMcpWarmupErrorType;
|
|
328
|
+
details?: string | undefined;
|
|
329
|
+
constructor(type: ChromeMcpWarmupErrorType, message: string, details?: string | undefined);
|
|
330
|
+
}
|
package/lib/types.js
CHANGED
|
@@ -2,6 +2,7 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
5
6
|
var __export = (target, all) => {
|
|
6
7
|
for (var name in all)
|
|
7
8
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -15,8 +16,11 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
16
|
return to;
|
|
16
17
|
};
|
|
17
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
18
20
|
var types_exports = {};
|
|
19
21
|
__export(types_exports, {
|
|
22
|
+
ChromeMcpWarmupError: () => ChromeMcpWarmupError,
|
|
23
|
+
ChromeMcpWarmupErrorType: () => ChromeMcpWarmupErrorType,
|
|
20
24
|
SERVICE_STARTUP_TASKS: () => SERVICE_STARTUP_TASKS
|
|
21
25
|
});
|
|
22
26
|
module.exports = __toCommonJS(types_exports);
|
|
@@ -35,7 +39,25 @@ const SERVICE_STARTUP_TASKS = {
|
|
|
35
39
|
chrome_mcp_failed: "Chrome DevTools \u8FDE\u63A5\u5931\u8D25",
|
|
36
40
|
ready: "\u51C6\u5907\u5B8C\u6210"
|
|
37
41
|
};
|
|
42
|
+
var ChromeMcpWarmupErrorType = /* @__PURE__ */ ((ChromeMcpWarmupErrorType2) => {
|
|
43
|
+
ChromeMcpWarmupErrorType2["CHROME_NOT_CONNECTED"] = "CHROME_NOT_CONNECTED";
|
|
44
|
+
ChromeMcpWarmupErrorType2["AI_TIMEOUT"] = "AI_TIMEOUT";
|
|
45
|
+
ChromeMcpWarmupErrorType2["AI_RESPONSE_ERROR"] = "AI_RESPONSE_ERROR";
|
|
46
|
+
ChromeMcpWarmupErrorType2["SESSION_ERROR"] = "SESSION_ERROR";
|
|
47
|
+
ChromeMcpWarmupErrorType2["UNKNOWN"] = "UNKNOWN";
|
|
48
|
+
return ChromeMcpWarmupErrorType2;
|
|
49
|
+
})(ChromeMcpWarmupErrorType || {});
|
|
50
|
+
class ChromeMcpWarmupError extends Error {
|
|
51
|
+
constructor(type, message, details) {
|
|
52
|
+
super(message);
|
|
53
|
+
__publicField(this, "type", type);
|
|
54
|
+
__publicField(this, "details", details);
|
|
55
|
+
this.name = "ChromeMcpWarmupError";
|
|
56
|
+
}
|
|
57
|
+
}
|
|
38
58
|
// Annotate the CommonJS export names for ESM import in node:
|
|
39
59
|
0 && (module.exports = {
|
|
60
|
+
ChromeMcpWarmupError,
|
|
61
|
+
ChromeMcpWarmupErrorType,
|
|
40
62
|
SERVICE_STARTUP_TASKS
|
|
41
63
|
});
|
package/lib/utils.d.ts
CHANGED
|
@@ -31,3 +31,9 @@ export declare function base64Decode(base64: string): string;
|
|
|
31
31
|
* 支持多种常见响应格式
|
|
32
32
|
*/
|
|
33
33
|
export declare function extractTextFromResponse(data: unknown): string | null;
|
|
34
|
+
/**
|
|
35
|
+
* 检查 Chrome DevTools 是否可用
|
|
36
|
+
* @param timeout - 超时时间(毫秒),默认 2000ms
|
|
37
|
+
* @returns Chrome DevTools 是否可用
|
|
38
|
+
*/
|
|
39
|
+
export declare function checkChromeDevToolsAvailable(timeout?: number): Promise<boolean>;
|
package/lib/utils.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
1
2
|
var __defProp = Object.defineProperty;
|
|
2
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
4
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
7
|
var __export = (target, all) => {
|
|
6
8
|
for (var name in all)
|
|
@@ -14,16 +16,47 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
14
16
|
}
|
|
15
17
|
return to;
|
|
16
18
|
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
17
27
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
var __async = (__this, __arguments, generator) => {
|
|
29
|
+
return new Promise((resolve, reject) => {
|
|
30
|
+
var fulfilled = (value) => {
|
|
31
|
+
try {
|
|
32
|
+
step(generator.next(value));
|
|
33
|
+
} catch (e) {
|
|
34
|
+
reject(e);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
var rejected = (value) => {
|
|
38
|
+
try {
|
|
39
|
+
step(generator.throw(value));
|
|
40
|
+
} catch (e) {
|
|
41
|
+
reject(e);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
45
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
46
|
+
});
|
|
47
|
+
};
|
|
18
48
|
var utils_exports = {};
|
|
19
49
|
__export(utils_exports, {
|
|
20
50
|
base64Decode: () => base64Decode,
|
|
21
51
|
base64Encode: () => base64Encode,
|
|
52
|
+
checkChromeDevToolsAvailable: () => checkChromeDevToolsAvailable,
|
|
22
53
|
extractTextFromResponse: () => extractTextFromResponse,
|
|
23
54
|
sleep: () => sleep,
|
|
24
55
|
truncate: () => truncate
|
|
25
56
|
});
|
|
26
57
|
module.exports = __toCommonJS(utils_exports);
|
|
58
|
+
var import_net = __toESM(require("net"));
|
|
59
|
+
var import_constants = require("./constants.js");
|
|
27
60
|
function truncate(value, maxLength) {
|
|
28
61
|
if (value.length <= maxLength) {
|
|
29
62
|
return value;
|
|
@@ -70,10 +103,32 @@ function extractTextFromResponse(data) {
|
|
|
70
103
|
}
|
|
71
104
|
return null;
|
|
72
105
|
}
|
|
106
|
+
function checkChromeDevToolsAvailable() {
|
|
107
|
+
return __async(this, arguments, function* (timeout = import_constants.CHROME_DEVTOOLS_CHECK_TIMEOUT) {
|
|
108
|
+
return new Promise((resolve) => {
|
|
109
|
+
const socket = new import_net.default.Socket();
|
|
110
|
+
const timer = setTimeout(() => {
|
|
111
|
+
socket.destroy();
|
|
112
|
+
resolve(false);
|
|
113
|
+
}, timeout);
|
|
114
|
+
socket.connect(import_constants.CHROME_DEVTOOLS_PORT, "localhost", () => {
|
|
115
|
+
clearTimeout(timer);
|
|
116
|
+
socket.removeAllListeners();
|
|
117
|
+
socket.destroy();
|
|
118
|
+
resolve(true);
|
|
119
|
+
});
|
|
120
|
+
socket.on("error", () => {
|
|
121
|
+
clearTimeout(timer);
|
|
122
|
+
resolve(false);
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
}
|
|
73
127
|
// Annotate the CommonJS export names for ESM import in node:
|
|
74
128
|
0 && (module.exports = {
|
|
75
129
|
base64Decode,
|
|
76
130
|
base64Encode,
|
|
131
|
+
checkChromeDevToolsAvailable,
|
|
77
132
|
extractTextFromResponse,
|
|
78
133
|
sleep,
|
|
79
134
|
truncate
|