vite-plugin-opencode-assistant 1.0.93 → 1.1.1

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/lib/core/api.cjs CHANGED
@@ -71,7 +71,8 @@ module.exports = __toCommonJS(api_exports);
71
71
  var import_http = __toESM(require("http"));
72
72
  var import_shared = require("@vite-plugin-opencode-assistant/shared");
73
73
  var import_node = require("@vite-plugin-opencode-assistant/shared/node");
74
- const log = (0, import_shared.createLogger)("API");
74
+ var import_node2 = require("@vite-plugin-opencode-assistant/shared/node");
75
+ const log = (0, import_node.createLogger)("API");
75
76
  class OpenCodeAPI {
76
77
  constructor(hostname, getPort, getProxyPort, warmupChromeMcpConfig = false, chromeDevtoolsPort = import_shared.CHROME_DEVTOOLS_PORT) {
77
78
  __publicField(this, "hostname", hostname);
@@ -81,7 +82,7 @@ class OpenCodeAPI {
81
82
  __publicField(this, "chromeDevtoolsPort", chromeDevtoolsPort);
82
83
  }
83
84
  createHttpRequest(options, body, timeout) {
84
- const timer = new import_shared.PerformanceTimer("HTTP Request", {
85
+ const timer = new import_node.PerformanceTimer("HTTP Request", {
85
86
  operation: `${options.method || "GET"} ${options.path}`
86
87
  });
87
88
  return new Promise((resolve, reject) => {
@@ -305,7 +306,7 @@ class OpenCodeAPI {
305
306
  return __async(this, null, function* () {
306
307
  const timer = log.timer(`${operation}WarmupChromeMcp`, { viteOrigin, operation });
307
308
  let warmupSessionId = null;
308
- const chromeAvailable = yield (0, import_node.checkChromeDevToolsAvailable)(this.chromeDevtoolsPort);
309
+ const chromeAvailable = yield (0, import_node2.checkChromeDevToolsAvailable)(this.chromeDevtoolsPort);
309
310
  if (!chromeAvailable) {
310
311
  const error = new import_shared.ChromeMcpWarmupError(
311
312
  import_shared.ChromeMcpWarmupErrorType.CHROME_NOT_CONNECTED,
@@ -52,10 +52,10 @@ var import_execa = require("execa");
52
52
  var import_fs = __toESM(require("fs"));
53
53
  var import_module = require("module");
54
54
  var import_path = __toESM(require("path"));
55
- var import_shared = require("@vite-plugin-opencode-assistant/shared");
55
+ var import_node = require("@vite-plugin-opencode-assistant/shared/node");
56
56
  const require2 = (0, import_module.createRequire)(import_path.default.join(process.cwd(), "package.json"));
57
57
  const packageDir = resolvePackageDir();
58
- const log = (0, import_shared.createLogger)("OpenCodeWeb");
58
+ const log = (0, import_node.createLogger)("OpenCodeWeb");
59
59
  function prepareOpenCodeRuntime(cwd) {
60
60
  const cacheDir = import_path.default.join(cwd, "node_modules", ".cache", "opencode");
61
61
  const pluginsDir = import_path.default.join(cacheDir, "plugins");
@@ -140,14 +140,15 @@ function startOpenCodeWeb(options) {
140
140
  const output = data.toString().trim();
141
141
  if (output) {
142
142
  log.debug("[OpenCode stdout]", { output });
143
- (0, import_shared.getProcessLogBuffer)().addOpenCodeStdout(output);
143
+ (0, import_node.getProcessLogBuffer)().addOpenCodeStdout(output);
144
144
  }
145
145
  });
146
146
  (_b = proc.stderr) == null ? void 0 : _b.on("data", (data) => {
147
147
  const output = data.toString().trim();
148
148
  if (output) {
149
+ if (output.includes("MaxListenersExceededWarning")) return;
149
150
  log.warn("[OpenCode stderr]", { output });
150
- (0, import_shared.getProcessLogBuffer)().addOpenCodeStderr(output);
151
+ (0, import_node.getProcessLogBuffer)().addOpenCodeStderr(output);
151
152
  }
152
153
  });
153
154
  return proc;
@@ -285,7 +285,11 @@ function generateBridgeScript(options) {
285
285
  flex-direction: column !important;
286
286
  z-index: 600 !important;
287
287
  border-radius: 12px !important;
288
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2) !important;
288
+ box-shadow:
289
+ 0 0 0 1px rgba(0, 0, 0, 0.04),
290
+ 0 2px 4px rgba(0, 0, 0, 0.04),
291
+ 0 8px 16px rgba(0, 0, 0, 0.08),
292
+ 0 16px 40px rgba(0, 0, 0, 0.12) !important;
289
293
  overflow: hidden !important;
290
294
  transition: none;
291
295
  }
@@ -293,6 +297,11 @@ function generateBridgeScript(options) {
293
297
  max-width: none !important;
294
298
  }
295
299
 
300
+ /* \u4F1A\u8BDD\u6D6E\u7A97\u5185\u5C42\u80CC\u666F\u62AC\u9AD8\uFF0C\u4E0E\u5BA1\u67E5\u9762\u677F\u5E95\u8272\u5F62\u6210\u5C42\u6B21 */
301
+ .opencode-review-panel-overlay [data-ref="session-panel"] [class*="bg-v2-background-bg-base"] {
302
+ background: color-mix(in srgb, var(--v2-background-bg-base, #1e1e1e) 96%, #fff) !important;
303
+ }
304
+
296
305
  /* \u9690\u85CF\u4F1A\u8BDD\u9762\u677F\u5185\u7684\u6807\u9898 */
297
306
  .opencode-review-panel-overlay [data-ref="session-panel"] [data-session-title] {
298
307
  display: none !important;
@@ -414,10 +423,21 @@ function generateBridgeScript(options) {
414
423
  btn.className = 'opencode-chat-toggle-btn';
415
424
  btn.innerHTML = '<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>';
416
425
  btn.title = '\u5C55\u5F00\u804A\u5929\u9762\u677F';
426
+ // \u4ECE localStorage \u6062\u590D\u4E0A\u6B21\u7684\u5C55\u5F00/\u6536\u8D77\u72B6\u6001\uFF0C\u9ED8\u8BA4\u6536\u8D77
427
+ var chatVisible = localStorage.getItem('opencode-review-chat-visible');
428
+ if (chatVisible === 'true') {
429
+ document.documentElement.classList.remove('hide-chat');
430
+ btn.classList.add('active');
431
+ btn.title = '\u9690\u85CF\u804A\u5929\u9762\u677F';
432
+ } else {
433
+ document.documentElement.classList.add('hide-chat');
434
+ }
417
435
  btn.onclick = function() {
418
436
  document.documentElement.classList.toggle('hide-chat');
419
437
  btn.classList.toggle('active');
420
- btn.title = btn.classList.contains('active') ? '\u9690\u85CF\u804A\u5929\u9762\u677F' : '\u5C55\u5F00\u804A\u5929\u9762\u677F';
438
+ var isVisible = btn.classList.contains('active');
439
+ btn.title = isVisible ? '\u9690\u85CF\u804A\u5929\u9762\u677F' : '\u5C55\u5F00\u804A\u5929\u9762\u677F';
440
+ localStorage.setItem('opencode-review-chat-visible', isVisible ? 'true' : 'false');
421
441
  };
422
442
  document.body.appendChild(btn);
423
443
  }
@@ -443,7 +463,7 @@ function generateBridgeScript(options) {
443
463
  var attempts = 0;
444
464
  function tryApply() {
445
465
  if (ensureReviewPanelRefs()) {
446
- document.documentElement.classList.add('opencode-review-panel-overlay', 'hide-chat');
466
+ document.documentElement.classList.add('opencode-review-panel-overlay');
447
467
  injectChatToggleBtn();
448
468
  return;
449
469
  }
@@ -511,7 +531,7 @@ function generateBridgeScript(options) {
511
531
  function insertFilePart(element) {
512
532
  const promptInput = document.querySelector('[data-component="prompt-input"]');
513
533
  if (!promptInput) {
514
- console.warn('[OpenCode Bridge] Prompt input not found');
534
+ log.warn('Prompt input not found');
515
535
  return;
516
536
  }
517
537
 
@@ -57,9 +57,10 @@ __export(service_exports, {
57
57
  module.exports = __toCommonJS(service_exports);
58
58
  var import_opencode_web = require("./opencode-web.cjs");
59
59
  var import_shared = require("@vite-plugin-opencode-assistant/shared");
60
+ var import_node = require("@vite-plugin-opencode-assistant/shared/node");
60
61
  var import_system = require("../utils/system.cjs");
61
62
  var import_proxy_server = require("./proxy-server.cjs");
62
- const log = (0, import_shared.createLogger)("Service");
63
+ const log = (0, import_node.createLogger)("Service");
63
64
  class OpenCodeService {
64
65
  constructor(config, api, sseClients, onPortAllocated, onProxyPortAllocated) {
65
66
  __publicField(this, "config", config);
@@ -41,11 +41,11 @@ __export(context_exports, {
41
41
  });
42
42
  module.exports = __toCommonJS(context_exports);
43
43
  var import_shared = require("@vite-plugin-opencode-assistant/shared");
44
- var import_shared2 = require("@vite-plugin-opencode-assistant/shared");
45
- const log = (0, import_shared2.createLogger)("Endpoints:Context");
44
+ var import_node = require("@vite-plugin-opencode-assistant/shared/node");
45
+ const log = (0, import_node.createLogger)("Endpoints:Context");
46
46
  function setupContextEndpoint(server, ctx) {
47
47
  server.middlewares.use(import_shared.CONTEXT_API_PATH, (req, res) => __async(null, null, function* () {
48
- const reqCtx = new import_shared2.RequestContext(req.method || "GET", import_shared.CONTEXT_API_PATH);
48
+ const reqCtx = new import_node.RequestContext(req.method || "GET", import_shared.CONTEXT_API_PATH);
49
49
  res.setHeader("Content-Type", "application/json");
50
50
  res.setHeader("Access-Control-Allow-Origin", "*");
51
51
  res.setHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, OPTIONS");
@@ -40,12 +40,13 @@ __export(logs_exports, {
40
40
  setupLogsEndpoint: () => setupLogsEndpoint
41
41
  });
42
42
  module.exports = __toCommonJS(logs_exports);
43
+ var import_node = require("@vite-plugin-opencode-assistant/shared/node");
44
+ var import_node2 = require("@vite-plugin-opencode-assistant/shared/node");
43
45
  var import_shared = require("@vite-plugin-opencode-assistant/shared");
44
- var import_shared2 = require("@vite-plugin-opencode-assistant/shared");
45
- const log = (0, import_shared2.createLogger)("Endpoints:Logs");
46
+ const log = (0, import_node2.createLogger)("Endpoints:Logs");
46
47
  function setupLogsEndpoint(server) {
47
- server.middlewares.use(import_shared2.LOGS_API_PATH, (req, res) => __async(null, null, function* () {
48
- const reqCtx = new import_shared2.RequestContext(req.method || "GET", import_shared2.LOGS_API_PATH);
48
+ server.middlewares.use(import_shared.LOGS_API_PATH, (req, res) => __async(null, null, function* () {
49
+ const reqCtx = new import_node2.RequestContext(req.method || "GET", import_shared.LOGS_API_PATH);
49
50
  res.setHeader("Content-Type", "application/json");
50
51
  res.setHeader("Access-Control-Allow-Origin", "*");
51
52
  res.setHeader("Access-Control-Allow-Methods", "GET, DELETE, OPTIONS");
@@ -56,7 +57,7 @@ function setupLogsEndpoint(server) {
56
57
  reqCtx.end(200);
57
58
  return;
58
59
  }
59
- const buffer = (0, import_shared.getProcessLogBuffer)();
60
+ const buffer = (0, import_node.getProcessLogBuffer)();
60
61
  if (req.method === "GET") {
61
62
  try {
62
63
  const url = new URL(req.url || "", `http://${req.headers.host || "localhost"}`);
@@ -41,11 +41,11 @@ __export(sessions_exports, {
41
41
  });
42
42
  module.exports = __toCommonJS(sessions_exports);
43
43
  var import_shared = require("@vite-plugin-opencode-assistant/shared");
44
- var import_shared2 = require("@vite-plugin-opencode-assistant/shared");
45
- const log = (0, import_shared2.createLogger)("Endpoints:Sessions");
44
+ var import_node = require("@vite-plugin-opencode-assistant/shared/node");
45
+ const log = (0, import_node.createLogger)("Endpoints:Sessions");
46
46
  function setupSessionsEndpoint(server, ctx) {
47
47
  server.middlewares.use(import_shared.SESSIONS_API_PATH, (req, res) => __async(null, null, function* () {
48
- const reqCtx = new import_shared2.RequestContext(req.method || "GET", import_shared.SESSIONS_API_PATH);
48
+ const reqCtx = new import_node.RequestContext(req.method || "GET", import_shared.SESSIONS_API_PATH);
49
49
  res.setHeader("Content-Type", "application/json");
50
50
  res.setHeader("Access-Control-Allow-Origin", "*");
51
51
  res.setHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, OPTIONS");
@@ -41,11 +41,11 @@ __export(sse_exports, {
41
41
  });
42
42
  module.exports = __toCommonJS(sse_exports);
43
43
  var import_shared = require("@vite-plugin-opencode-assistant/shared");
44
- var import_shared2 = require("@vite-plugin-opencode-assistant/shared");
45
- const log = (0, import_shared2.createLogger)("Endpoints:SSE");
44
+ var import_node = require("@vite-plugin-opencode-assistant/shared/node");
45
+ const log = (0, import_node.createLogger)("Endpoints:SSE");
46
46
  function setupSseEndpoint(server, ctx) {
47
47
  server.middlewares.use(import_shared.SSE_EVENTS_PATH, (req, res) => __async(null, null, function* () {
48
- const reqCtx = new import_shared2.RequestContext("GET", import_shared.SSE_EVENTS_PATH);
48
+ const reqCtx = new import_node.RequestContext("GET", import_shared.SSE_EVENTS_PATH);
49
49
  res.writeHead(200, {
50
50
  "Content-Type": "text/event-stream",
51
51
  "Cache-Control": "no-cache",
@@ -41,10 +41,10 @@ __export(start_exports, {
41
41
  });
42
42
  module.exports = __toCommonJS(start_exports);
43
43
  var import_shared = require("@vite-plugin-opencode-assistant/shared");
44
- var import_shared2 = require("@vite-plugin-opencode-assistant/shared");
44
+ var import_node = require("@vite-plugin-opencode-assistant/shared/node");
45
45
  function setupStartEndpoint(server, ctx) {
46
46
  server.middlewares.use(import_shared.START_API_PATH, (_req, res) => __async(null, null, function* () {
47
- const reqCtx = new import_shared2.RequestContext("GET", import_shared.START_API_PATH);
47
+ const reqCtx = new import_node.RequestContext("GET", import_shared.START_API_PATH);
48
48
  res.setHeader("Content-Type", "application/json");
49
49
  res.setHeader("Access-Control-Allow-Origin", "*");
50
50
  res.writeHead(200);
@@ -42,8 +42,9 @@ __export(warmup_exports, {
42
42
  setupWarmupEndpoint: () => setupWarmupEndpoint
43
43
  });
44
44
  module.exports = __toCommonJS(warmup_exports);
45
+ var import_node = require("@vite-plugin-opencode-assistant/shared/node");
45
46
  var import_shared = require("@vite-plugin-opencode-assistant/shared");
46
- const log = (0, import_shared.createLogger)("Endpoints:Warmup");
47
+ const log = (0, import_node.createLogger)("Endpoints:Warmup");
47
48
  function setupWarmupEndpoint(server, ctx) {
48
49
  server.middlewares.use(import_shared.WARMUP_API_PATH, (req, res) => __async(null, null, function* () {
49
50
  if (req.method === "GET") {
@@ -52,10 +52,10 @@ __export(widget_exports, {
52
52
  module.exports = __toCommonJS(widget_exports);
53
53
  var import_fs = __toESM(require("fs"));
54
54
  var import_shared = require("@vite-plugin-opencode-assistant/shared");
55
- var import_shared2 = require("@vite-plugin-opencode-assistant/shared");
55
+ var import_node = require("@vite-plugin-opencode-assistant/shared/node");
56
56
  function setupWidgetEndpoints(server, ctx) {
57
57
  server.middlewares.use(import_shared.WIDGET_SCRIPT_PATH, (_req, res) => __async(null, null, function* () {
58
- const reqCtx = new import_shared2.RequestContext("GET", import_shared.WIDGET_SCRIPT_PATH);
58
+ const reqCtx = new import_node.RequestContext("GET", import_shared.WIDGET_SCRIPT_PATH);
59
59
  const widgetPath = ctx.resolveWidgetPath();
60
60
  if (import_fs.default.existsSync(widgetPath)) {
61
61
  res.setHeader("Content-Type", "application/javascript");
@@ -69,7 +69,7 @@ function setupWidgetEndpoints(server, ctx) {
69
69
  }
70
70
  }));
71
71
  server.middlewares.use(import_shared.WIDGET_STYLE_PATH, (_req, res) => __async(null, null, function* () {
72
- const reqCtx = new import_shared2.RequestContext("GET", import_shared.WIDGET_STYLE_PATH);
72
+ const reqCtx = new import_node.RequestContext("GET", import_shared.WIDGET_STYLE_PATH);
73
73
  const stylePath = ctx.resolveWidgetStylePath();
74
74
  if (import_fs.default.existsSync(stylePath)) {
75
75
  res.setHeader("Content-Type", "text/css");
package/lib/index.cjs CHANGED
@@ -67,6 +67,7 @@ module.exports = __toCommonJS(lib_exports);
67
67
  var import_crypto = __toESM(require("crypto"));
68
68
  var import_vite = __toESM(require("unplugin-vue-inspector/vite"));
69
69
  var import_shared = require("@vite-plugin-opencode-assistant/shared");
70
+ var import_node = require("@vite-plugin-opencode-assistant/shared/node");
70
71
  var import_endpoints = require("./endpoints/index.cjs");
71
72
  var import_injector = require("./core/injector.cjs");
72
73
  var import_api = require("./core/api.cjs");
@@ -88,8 +89,8 @@ function createOpenCodePlugin(options = {}) {
88
89
  var _a;
89
90
  const config = __spreadValues(__spreadValues({}, import_shared.DEFAULT_CONFIG), options);
90
91
  (0, import_shared.setVerbose)(config.verbose);
91
- (0, import_shared.initProcessLogCapture)({ maxSize: 500 });
92
- const log = (0, import_shared.createLogger)("Plugin");
92
+ (0, import_node.initProcessLogCapture)({ maxSize: 500 });
93
+ const log = (0, import_node.createLogger)("Plugin");
93
94
  let actualWebPort = config.webPort;
94
95
  let actualProxyPort = (_a = config.proxyPort) != null ? _a : import_shared.DEFAULT_PROXY_PORT;
95
96
  let projectRoot = "";
@@ -62,10 +62,10 @@ var import_http = __toESM(require("http"));
62
62
  var import_net = __toESM(require("net"));
63
63
  var import_path = __toESM(require("path"));
64
64
  var import_shared = require("@vite-plugin-opencode-assistant/shared");
65
- var import_shared2 = require("@vite-plugin-opencode-assistant/shared");
66
- const log = (0, import_shared2.createLogger)("Utils");
65
+ var import_node = require("@vite-plugin-opencode-assistant/shared/node");
66
+ const log = (0, import_node.createLogger)("Utils");
67
67
  function waitForServer(url, timeout = 1e4, process2) {
68
- const timer = new import_shared2.PerformanceTimer("waitForServer", { url, timeout });
68
+ const timer = new import_node.PerformanceTimer("waitForServer", { url, timeout });
69
69
  return new Promise((resolve, reject) => {
70
70
  const startTime = Date.now();
71
71
  let attempts = 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vite-plugin-opencode-assistant",
3
- "version": "1.0.93",
3
+ "version": "1.1.1",
4
4
  "description": "Embed OpenCode Web UI in your Vite dev server for real-time code modification and preview",
5
5
  "type": "module",
6
6
  "main": "lib/index.cjs",
@@ -37,15 +37,15 @@
37
37
  "dependencies": {
38
38
  "unplugin-vue-inspector": "^3.0.0",
39
39
  "execa": "^9.6.1",
40
- "@vite-plugin-opencode-assistant/opencode": "1.0.93",
41
- "@vite-plugin-opencode-assistant/components": "1.0.93",
42
- "@vite-plugin-opencode-assistant/shared": "1.0.93"
40
+ "@vite-plugin-opencode-assistant/opencode": "1.1.1",
41
+ "@vite-plugin-opencode-assistant/shared": "1.1.1",
42
+ "@vite-plugin-opencode-assistant/components": "1.1.1"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "vite": ">=5.0.0"
46
46
  },
47
47
  "devDependencies": {
48
- "@vite-plugin-opencode-assistant/client": "1.0.93"
48
+ "@vite-plugin-opencode-assistant/client": "1.1.1"
49
49
  },
50
50
  "scripts": {
51
51
  "build": "pagoda-cli build && vite build -c vite.client.config.ts",