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.
@@ -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<{
@@ -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 { DEFAULT_PROXY_PORT, SERVER_START_TIMEOUT, SSE_EVENT_TYPES, ChromeMcpWarmupErrorType } from "@aipanel/core";
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(`data: ${JSON.stringify({ type: SSE_EVENT_TYPES.TASK_UPDATE, task, ...data })}
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,