vite-plugin-aipanel 1.2.12 → 1.2.14
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/core/service.d.ts +1 -1
- package/es/core/service.mjs +12 -4
- package/es/index.mjs +7 -0
- package/lib/client.js +1766 -1766
- package/lib/core/service.cjs +6 -3
- package/lib/core/service.d.ts +1 -1
- package/lib/index.cjs +7 -0
- package/package.json +5 -5
package/es/core/service.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ export declare class AIPanelService {
|
|
|
34
34
|
/** 设置 Provider(由编排层动态加载后调用) */
|
|
35
35
|
setProvider(provider: WebProvider): void;
|
|
36
36
|
private sendTaskUpdate;
|
|
37
|
-
start(vitePort: number, corsOrigins: string[], contextApiUrl: string, logsApiUrl: string, viteOrigin: string, mcp: McpProxy, vueDevtoolsApiUrl?: string): Promise<void>;
|
|
37
|
+
start(vitePort: number, viteHost: string, corsOrigins: string[], contextApiUrl: string, logsApiUrl: string, viteOrigin: string, mcp: McpProxy, vueDevtoolsApiUrl?: string): Promise<void>;
|
|
38
38
|
/** 把一条 ProviderEvent 广播给所有 SSE 客户端(SESSION_EVENT 载荷) */
|
|
39
39
|
pushProviderEvent(event: ProviderEvent): void;
|
|
40
40
|
retryWarmupChromeMcp(): Promise<{
|
package/es/core/service.mjs
CHANGED
|
@@ -2,7 +2,12 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
3
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
4
|
import { randomUUID } from "node:crypto";
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
DEFAULT_PROXY_PORT,
|
|
7
|
+
SERVER_START_TIMEOUT,
|
|
8
|
+
SSE_EVENT_TYPES,
|
|
9
|
+
ChromeMcpWarmupErrorType
|
|
10
|
+
} from "@aipanel/core";
|
|
6
11
|
import { createLogger, findAvailablePort, findGitRoot, waitForServer } from "@aipanel/core/node";
|
|
7
12
|
import { startProxyServer } from "./proxy-server.mjs";
|
|
8
13
|
const log = createLogger("Service");
|
|
@@ -42,15 +47,17 @@ class AIPanelService {
|
|
|
42
47
|
this.currentTask = { task, ...data };
|
|
43
48
|
this.sseClients.forEach((client) => {
|
|
44
49
|
try {
|
|
45
|
-
client.write(
|
|
50
|
+
client.write(
|
|
51
|
+
`data: ${JSON.stringify({ type: SSE_EVENT_TYPES.TASK_UPDATE, task, ...data })}
|
|
46
52
|
|
|
47
|
-
`
|
|
53
|
+
`
|
|
54
|
+
);
|
|
48
55
|
} catch (e) {
|
|
49
56
|
log.debug("Failed to send TASK_UPDATE event", { error: e });
|
|
50
57
|
}
|
|
51
58
|
});
|
|
52
59
|
}
|
|
53
|
-
async start(vitePort, corsOrigins, contextApiUrl, logsApiUrl, viteOrigin, mcp, vueDevtoolsApiUrl) {
|
|
60
|
+
async start(vitePort, viteHost, corsOrigins, contextApiUrl, logsApiUrl, viteOrigin, mcp, vueDevtoolsApiUrl) {
|
|
54
61
|
if (this.isStarted && this.webProcess) {
|
|
55
62
|
log.debug("Services already started, skipping");
|
|
56
63
|
return;
|
|
@@ -110,6 +117,7 @@ class AIPanelService {
|
|
|
110
117
|
cwd: this.workspaceRoot,
|
|
111
118
|
corsOrigins,
|
|
112
119
|
vitePort,
|
|
120
|
+
viteHost,
|
|
113
121
|
contextApiUrl,
|
|
114
122
|
logsApiUrl,
|
|
115
123
|
verbose: this.config.verbose,
|
package/es/index.mjs
CHANGED
|
@@ -78,6 +78,9 @@ function aipanelPlugin(options = {}) {
|
|
|
78
78
|
plugins.push(createAIPanelPlugin(options));
|
|
79
79
|
return plugins;
|
|
80
80
|
}
|
|
81
|
+
function normalizeViteHost(host, fallback) {
|
|
82
|
+
return typeof host === "string" && host && host !== "0.0.0.0" && host !== "::" && host !== "::1" ? host : fallback;
|
|
83
|
+
}
|
|
81
84
|
function createAIPanelPlugin(options = {}) {
|
|
82
85
|
const config = resolvePluginConfig(options);
|
|
83
86
|
setVerbose(config.verbose);
|
|
@@ -87,6 +90,7 @@ function createAIPanelPlugin(options = {}) {
|
|
|
87
90
|
let actualProxyPort = config.proxyPort ?? DEFAULT_PROXY_PORT;
|
|
88
91
|
let projectRoot = "";
|
|
89
92
|
let vueDevtoolsApiUrl = "";
|
|
93
|
+
let viteServerHost = "localhost";
|
|
90
94
|
const pageContext = { url: "", title: "" };
|
|
91
95
|
const DEFAULT_TAB = "default";
|
|
92
96
|
const pageContexts = /* @__PURE__ */ new Map([[DEFAULT_TAB, pageContext]]);
|
|
@@ -135,6 +139,7 @@ function createAIPanelPlugin(options = {}) {
|
|
|
135
139
|
async configureServer(server) {
|
|
136
140
|
const timer = log.timer("configureServer");
|
|
137
141
|
projectRoot = server.config.root;
|
|
142
|
+
viteServerHost = normalizeViteHost(server.config.server.host, config.hostname);
|
|
138
143
|
let viteOrigin = "";
|
|
139
144
|
setupMiddlewares(
|
|
140
145
|
server,
|
|
@@ -277,6 +282,7 @@ function createAIPanelPlugin(options = {}) {
|
|
|
277
282
|
}
|
|
278
283
|
await service.start(
|
|
279
284
|
vitePort,
|
|
285
|
+
viteHost,
|
|
280
286
|
[viteOrigin],
|
|
281
287
|
contextApiUrl,
|
|
282
288
|
logsApiUrl,
|
|
@@ -350,6 +356,7 @@ ${SILENT_CONTEXT_SCRIPT}</body>`),
|
|
|
350
356
|
hotkey: config.hotkey,
|
|
351
357
|
proxyPort: actualProxyPort,
|
|
352
358
|
proxyHost: config.hostname,
|
|
359
|
+
viteHost: viteServerHost,
|
|
353
360
|
displayMode: config.displayMode === "extension" ? "extension-selector" : config.displayMode,
|
|
354
361
|
splitMode: config.splitMode,
|
|
355
362
|
serviceInstanceId,
|