vite-plugin-opencode-assistant 1.0.44 → 1.0.47

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/api.d.ts CHANGED
@@ -18,10 +18,11 @@ export declare class OpenCodeAPI {
18
18
  } | null>;
19
19
  deleteSession(sessionId: string, retries?: number): Promise<void>;
20
20
  getToolIds(retries?: number): Promise<string[]>;
21
+ private executeWarmupChromeMcp;
21
22
  warmupChromeMcp(projectDir: string, viteOrigin?: string): Promise<void>;
22
- getOrCreateSession(projectDir: string): Promise<string>;
23
23
  retryWarmupChromeMcp(projectDir: string, viteOrigin?: string): Promise<{
24
24
  success: boolean;
25
25
  error?: ChromeMcpWarmupError;
26
26
  }>;
27
+ getOrCreateSession(projectDir: string): Promise<string>;
27
28
  }
package/es/core/api.js CHANGED
@@ -317,10 +317,9 @@ class OpenCodeAPI {
317
317
  throw lastError;
318
318
  });
319
319
  }
320
- warmupChromeMcp(projectDir, viteOrigin) {
320
+ executeWarmupChromeMcp(projectDir, operation, viteOrigin) {
321
321
  return __async(this, null, function* () {
322
- if (!this.warmupChromeMcpConfig) return;
323
- const timer = log.timer("warmupChromeMcp", { viteOrigin });
322
+ const timer = log.timer(`${operation}WarmupChromeMcp`, { viteOrigin, operation });
324
323
  let warmupSessionId = null;
325
324
  let freeModel = null;
326
325
  const chromeAvailable = yield checkChromeDevToolsAvailable();
@@ -330,14 +329,14 @@ class OpenCodeAPI {
330
329
  "Chrome DevTools Protocol is not available",
331
330
  "Chrome remote debugging is not enabled or not running on port 9222. Please enable Chrome remote debugging first."
332
331
  );
333
- log.warn("Chrome DevTools not available", {
332
+ log.warn(`Chrome DevTools not available for ${operation}`, {
334
333
  port: CHROME_DEVTOOLS_PORT,
335
334
  hint: "Enable Chrome remote debugging at chrome://inspect/#remote-debugging"
336
335
  });
337
- timer.end("Chrome DevTools not available");
338
- throw error;
336
+ timer.end(`Chrome DevTools not available for ${operation}`);
337
+ return { success: false, error };
339
338
  }
340
- log.debug("Chrome DevTools is available, proceeding with warmup");
339
+ log.debug(`Chrome DevTools is available, proceeding with ${operation} warmup`);
341
340
  try {
342
341
  const warmupSession = yield this.createSession(
343
342
  projectDir,
@@ -347,12 +346,12 @@ class OpenCodeAPI {
347
346
  warmupSessionId = warmupSession.id;
348
347
  freeModel = yield this.getCheapestModel();
349
348
  if (freeModel) {
350
- log.debug("Using cheapest model for warmup", {
349
+ log.debug(`Using cheapest model for ${operation} warmup`, {
351
350
  providerID: freeModel.providerID,
352
351
  modelID: freeModel.modelID
353
352
  });
354
353
  } else {
355
- log.debug("No model available, using default model");
354
+ log.debug(`No model available for ${operation}, using default model`);
356
355
  }
357
356
  const WARMUP_TIMEOUT = 6e4;
358
357
  const data = yield this.createHttpRequest(
@@ -394,24 +393,33 @@ class OpenCodeAPI {
394
393
  `AI responded with: ${responseText.substring(0, 200)}`
395
394
  );
396
395
  }
397
- timer.end("Chrome MCP warmed up");
396
+ timer.end(`Chrome MCP ${operation} warmed up successfully`);
397
+ return { success: true };
398
398
  } catch (e) {
399
399
  if (e instanceof ChromeMcpWarmupError) {
400
400
  if (e.type === ChromeMcpWarmupErrorType.SESSION_ERROR) {
401
401
  timer.end("Session creation failed");
402
402
  }
403
- log.warn(`Chrome MCP warmup failed: ${e.type}`, __spreadValues({
403
+ if (freeModel && (e.type === ChromeMcpWarmupErrorType.AI_RESPONSE_ERROR || e.type === ChromeMcpWarmupErrorType.AI_TIMEOUT)) {
404
+ this.markModelAsFailed(freeModel.providerID, freeModel.modelID);
405
+ log.debug(`Marked model as failed due to ${operation} ChromeMcpWarmupError`, {
406
+ providerID: freeModel.providerID,
407
+ modelID: freeModel.modelID,
408
+ errorType: e.type
409
+ });
410
+ }
411
+ log.warn(`Chrome MCP ${operation} warmup failed: ${e.type}`, __spreadValues({
404
412
  message: e.message,
405
413
  details: e.details
406
414
  }, freeModel && {
407
415
  model: `${freeModel.providerID}/${freeModel.modelID}`
408
416
  }));
409
- timer.end(`Chrome MCP warmup failed: ${e.type}`);
410
- throw e;
417
+ timer.end(`Chrome MCP ${operation} warmup failed: ${e.type}`);
418
+ return { success: false, error: e };
411
419
  }
412
420
  if (freeModel) {
413
421
  this.markModelAsFailed(freeModel.providerID, freeModel.modelID);
414
- log.debug("Marked model as failed due to warmup error", {
422
+ log.debug(`Marked model as failed due to ${operation} warmup error`, {
415
423
  providerID: freeModel.providerID,
416
424
  modelID: freeModel.modelID,
417
425
  error: e instanceof Error ? e.message : String(e)
@@ -422,28 +430,28 @@ class OpenCodeAPI {
422
430
  const error2 = new ChromeMcpWarmupError(
423
431
  ChromeMcpWarmupErrorType.AI_TIMEOUT,
424
432
  "AI response timeout",
425
- "AI did not respond within 30 seconds. Please check if the OpenCode AI model is properly configured and available."
433
+ "AI did not respond within 60 seconds. Please check if the OpenCode AI model is properly configured and available."
426
434
  );
427
- log.warn("Chrome MCP warmup timeout", __spreadValues({
435
+ log.warn(`Chrome MCP ${operation} warmup timeout`, __spreadValues({
428
436
  error: errorMessage
429
437
  }, freeModel && {
430
438
  model: `${freeModel.providerID}/${freeModel.modelID}`
431
439
  }));
432
- timer.end("Chrome MCP warmup timeout");
433
- throw error2;
440
+ timer.end(`Chrome MCP ${operation} warmup timeout`);
441
+ return { success: false, error: error2 };
434
442
  }
435
443
  const error = new ChromeMcpWarmupError(
436
444
  ChromeMcpWarmupErrorType.UNKNOWN,
437
- "Unknown error during Chrome MCP warmup",
445
+ `Unknown error during Chrome MCP ${operation} warmup`,
438
446
  errorMessage
439
447
  );
440
- log.warn("Chrome MCP warmup failed with unknown error", __spreadValues({
448
+ log.warn(`Chrome MCP ${operation} warmup failed with unknown error`, __spreadValues({
441
449
  error: errorMessage
442
450
  }, freeModel && {
443
451
  model: `${freeModel.providerID}/${freeModel.modelID}`
444
452
  }));
445
- timer.end("Chrome MCP warmup failed");
446
- throw error;
453
+ timer.end(`Chrome MCP ${operation} warmup failed`);
454
+ return { success: false, error };
447
455
  } finally {
448
456
  if (warmupSessionId) {
449
457
  try {
@@ -458,6 +466,20 @@ class OpenCodeAPI {
458
466
  }
459
467
  });
460
468
  }
469
+ warmupChromeMcp(projectDir, viteOrigin) {
470
+ return __async(this, null, function* () {
471
+ if (!this.warmupChromeMcpConfig) return;
472
+ const result = yield this.executeWarmupChromeMcp(projectDir, "warmup", viteOrigin);
473
+ if (!result.success) {
474
+ throw result.error;
475
+ }
476
+ });
477
+ }
478
+ retryWarmupChromeMcp(projectDir, viteOrigin) {
479
+ return __async(this, null, function* () {
480
+ return this.executeWarmupChromeMcp(projectDir, "retry", viteOrigin);
481
+ });
482
+ }
461
483
  getOrCreateSession(projectDir) {
462
484
  return __async(this, null, function* () {
463
485
  const timer = log.timer("getOrCreateSession", { projectDir });
@@ -479,148 +501,6 @@ class OpenCodeAPI {
479
501
  return url;
480
502
  });
481
503
  }
482
- retryWarmupChromeMcp(projectDir, viteOrigin) {
483
- return __async(this, null, function* () {
484
- const timer = log.timer("retryWarmupChromeMcp", { viteOrigin });
485
- let warmupSessionId = null;
486
- let freeModel = null;
487
- const chromeAvailable = yield checkChromeDevToolsAvailable();
488
- if (!chromeAvailable) {
489
- const error = new ChromeMcpWarmupError(
490
- ChromeMcpWarmupErrorType.CHROME_NOT_CONNECTED,
491
- "Chrome DevTools Protocol is not available",
492
- "Chrome remote debugging is not enabled or not running on port 9222. Please enable Chrome remote debugging first."
493
- );
494
- log.warn("Chrome DevTools not available for retry", {
495
- port: CHROME_DEVTOOLS_PORT,
496
- hint: "Enable Chrome remote debugging at chrome://inspect/#remote-debugging"
497
- });
498
- timer.end("Chrome DevTools not available for retry");
499
- return { success: false, error };
500
- }
501
- log.debug("Chrome DevTools is available, proceeding with retry warmup");
502
- try {
503
- const warmupSession = yield this.createSession(
504
- projectDir,
505
- DEFAULT_RETRIES,
506
- "__chrome_mcp_warmup__"
507
- );
508
- warmupSessionId = warmupSession.id;
509
- freeModel = yield this.getCheapestModel();
510
- if (freeModel) {
511
- log.debug("Using cheapest model for retry warmup", {
512
- providerID: freeModel.providerID,
513
- modelID: freeModel.modelID
514
- });
515
- } else {
516
- log.debug("No model available for retry, using default model");
517
- }
518
- const WARMUP_TIMEOUT = 6e4;
519
- const data = yield this.createHttpRequest(
520
- {
521
- hostname: this.hostname,
522
- port: this.getPort(),
523
- path: `/session/${warmupSessionId}/message`,
524
- method: "POST",
525
- headers: { "Content-Type": "application/json" }
526
- },
527
- JSON.stringify(__spreadValues({
528
- parts: [
529
- {
530
- type: "text",
531
- text: "Test if the chrome-devtools_list_pages tool is available. If available, reply with: ready. If not available, explain why."
532
- }
533
- ]
534
- }, freeModel && {
535
- model: {
536
- providerID: freeModel.providerID,
537
- modelID: freeModel.modelID
538
- }
539
- })),
540
- WARMUP_TIMEOUT
541
- );
542
- log.debug("Chrome MCP warmup response:", { data });
543
- const responseText = extractTextFromResponse(data);
544
- if (!responseText) {
545
- throw new ChromeMcpWarmupError(
546
- ChromeMcpWarmupErrorType.AI_RESPONSE_ERROR,
547
- "AI did not respond to the warmup request",
548
- "Empty response from AI"
549
- );
550
- }
551
- const lowerResponse = responseText.toLowerCase();
552
- if (!lowerResponse.includes("ready")) {
553
- throw new ChromeMcpWarmupError(
554
- ChromeMcpWarmupErrorType.AI_RESPONSE_ERROR,
555
- "AI response does not indicate success",
556
- `AI responded with: ${responseText.substring(0, 200)}`
557
- );
558
- }
559
- timer.end("Chrome MCP warmed up successfully");
560
- return { success: true };
561
- } catch (e) {
562
- if (e instanceof ChromeMcpWarmupError) {
563
- if (e.type === ChromeMcpWarmupErrorType.SESSION_ERROR) {
564
- timer.end("Session creation failed");
565
- }
566
- log.warn(`Chrome MCP warmup retry failed: ${e.type}`, __spreadValues({
567
- message: e.message,
568
- details: e.details
569
- }, freeModel && {
570
- model: `${freeModel.providerID}/${freeModel.modelID}`
571
- }));
572
- timer.end(`Chrome MCP warmup retry failed: ${e.type}`);
573
- return { success: false, error: e };
574
- }
575
- if (freeModel) {
576
- this.markModelAsFailed(freeModel.providerID, freeModel.modelID);
577
- log.debug("Marked model as failed due to retry warmup error", {
578
- providerID: freeModel.providerID,
579
- modelID: freeModel.modelID,
580
- error: e instanceof Error ? e.message : String(e)
581
- });
582
- }
583
- const errorMessage = e instanceof Error ? e.message : String(e);
584
- if (errorMessage.includes("timeout") || errorMessage.includes("Timeout")) {
585
- const error2 = new ChromeMcpWarmupError(
586
- ChromeMcpWarmupErrorType.AI_TIMEOUT,
587
- "AI response timeout",
588
- "AI did not respond within 60 seconds. Please check if the OpenCode AI model is properly configured and available."
589
- );
590
- log.warn("Chrome MCP warmup retry timeout", __spreadValues({
591
- error: errorMessage
592
- }, freeModel && {
593
- model: `${freeModel.providerID}/${freeModel.modelID}`
594
- }));
595
- timer.end("Chrome MCP warmup retry timeout");
596
- return { success: false, error: error2 };
597
- }
598
- const error = new ChromeMcpWarmupError(
599
- ChromeMcpWarmupErrorType.UNKNOWN,
600
- "Unknown error during Chrome MCP warmup retry",
601
- errorMessage
602
- );
603
- log.warn("Chrome MCP warmup retry failed with unknown error", __spreadValues({
604
- error: errorMessage
605
- }, freeModel && {
606
- model: `${freeModel.providerID}/${freeModel.modelID}`
607
- }));
608
- timer.end("Chrome MCP warmup retry failed");
609
- return { success: false, error };
610
- } finally {
611
- if (warmupSessionId) {
612
- try {
613
- yield this.deleteSession(warmupSessionId, 5);
614
- } catch (e) {
615
- log.warn("Failed to delete warmup session after retries", {
616
- error: e,
617
- warmupSessionId
618
- });
619
- }
620
- }
621
- }
622
- });
623
- }
624
504
  }
625
505
  export {
626
506
  OpenCodeAPI
package/lib/core/api.d.ts CHANGED
@@ -18,10 +18,11 @@ export declare class OpenCodeAPI {
18
18
  } | null>;
19
19
  deleteSession(sessionId: string, retries?: number): Promise<void>;
20
20
  getToolIds(retries?: number): Promise<string[]>;
21
+ private executeWarmupChromeMcp;
21
22
  warmupChromeMcp(projectDir: string, viteOrigin?: string): Promise<void>;
22
- getOrCreateSession(projectDir: string): Promise<string>;
23
23
  retryWarmupChromeMcp(projectDir: string, viteOrigin?: string): Promise<{
24
24
  success: boolean;
25
25
  error?: ChromeMcpWarmupError;
26
26
  }>;
27
+ getOrCreateSession(projectDir: string): Promise<string>;
27
28
  }
package/lib/core/api.js CHANGED
@@ -335,10 +335,9 @@ class OpenCodeAPI {
335
335
  throw lastError;
336
336
  });
337
337
  }
338
- warmupChromeMcp(projectDir, viteOrigin) {
338
+ executeWarmupChromeMcp(projectDir, operation, viteOrigin) {
339
339
  return __async(this, null, function* () {
340
- if (!this.warmupChromeMcpConfig) return;
341
- const timer = log.timer("warmupChromeMcp", { viteOrigin });
340
+ const timer = log.timer(`${operation}WarmupChromeMcp`, { viteOrigin, operation });
342
341
  let warmupSessionId = null;
343
342
  let freeModel = null;
344
343
  const chromeAvailable = yield (0, import_shared.checkChromeDevToolsAvailable)();
@@ -348,14 +347,14 @@ class OpenCodeAPI {
348
347
  "Chrome DevTools Protocol is not available",
349
348
  "Chrome remote debugging is not enabled or not running on port 9222. Please enable Chrome remote debugging first."
350
349
  );
351
- log.warn("Chrome DevTools not available", {
350
+ log.warn(`Chrome DevTools not available for ${operation}`, {
352
351
  port: import_shared.CHROME_DEVTOOLS_PORT,
353
352
  hint: "Enable Chrome remote debugging at chrome://inspect/#remote-debugging"
354
353
  });
355
- timer.end("Chrome DevTools not available");
356
- throw error;
354
+ timer.end(`Chrome DevTools not available for ${operation}`);
355
+ return { success: false, error };
357
356
  }
358
- log.debug("Chrome DevTools is available, proceeding with warmup");
357
+ log.debug(`Chrome DevTools is available, proceeding with ${operation} warmup`);
359
358
  try {
360
359
  const warmupSession = yield this.createSession(
361
360
  projectDir,
@@ -365,12 +364,12 @@ class OpenCodeAPI {
365
364
  warmupSessionId = warmupSession.id;
366
365
  freeModel = yield this.getCheapestModel();
367
366
  if (freeModel) {
368
- log.debug("Using cheapest model for warmup", {
367
+ log.debug(`Using cheapest model for ${operation} warmup`, {
369
368
  providerID: freeModel.providerID,
370
369
  modelID: freeModel.modelID
371
370
  });
372
371
  } else {
373
- log.debug("No model available, using default model");
372
+ log.debug(`No model available for ${operation}, using default model`);
374
373
  }
375
374
  const WARMUP_TIMEOUT = 6e4;
376
375
  const data = yield this.createHttpRequest(
@@ -412,24 +411,33 @@ class OpenCodeAPI {
412
411
  `AI responded with: ${responseText.substring(0, 200)}`
413
412
  );
414
413
  }
415
- timer.end("Chrome MCP warmed up");
414
+ timer.end(`Chrome MCP ${operation} warmed up successfully`);
415
+ return { success: true };
416
416
  } catch (e) {
417
417
  if (e instanceof import_shared.ChromeMcpWarmupError) {
418
418
  if (e.type === import_shared.ChromeMcpWarmupErrorType.SESSION_ERROR) {
419
419
  timer.end("Session creation failed");
420
420
  }
421
- log.warn(`Chrome MCP warmup failed: ${e.type}`, __spreadValues({
421
+ if (freeModel && (e.type === import_shared.ChromeMcpWarmupErrorType.AI_RESPONSE_ERROR || e.type === import_shared.ChromeMcpWarmupErrorType.AI_TIMEOUT)) {
422
+ this.markModelAsFailed(freeModel.providerID, freeModel.modelID);
423
+ log.debug(`Marked model as failed due to ${operation} ChromeMcpWarmupError`, {
424
+ providerID: freeModel.providerID,
425
+ modelID: freeModel.modelID,
426
+ errorType: e.type
427
+ });
428
+ }
429
+ log.warn(`Chrome MCP ${operation} warmup failed: ${e.type}`, __spreadValues({
422
430
  message: e.message,
423
431
  details: e.details
424
432
  }, freeModel && {
425
433
  model: `${freeModel.providerID}/${freeModel.modelID}`
426
434
  }));
427
- timer.end(`Chrome MCP warmup failed: ${e.type}`);
428
- throw e;
435
+ timer.end(`Chrome MCP ${operation} warmup failed: ${e.type}`);
436
+ return { success: false, error: e };
429
437
  }
430
438
  if (freeModel) {
431
439
  this.markModelAsFailed(freeModel.providerID, freeModel.modelID);
432
- log.debug("Marked model as failed due to warmup error", {
440
+ log.debug(`Marked model as failed due to ${operation} warmup error`, {
433
441
  providerID: freeModel.providerID,
434
442
  modelID: freeModel.modelID,
435
443
  error: e instanceof Error ? e.message : String(e)
@@ -440,28 +448,28 @@ class OpenCodeAPI {
440
448
  const error2 = new import_shared.ChromeMcpWarmupError(
441
449
  import_shared.ChromeMcpWarmupErrorType.AI_TIMEOUT,
442
450
  "AI response timeout",
443
- "AI did not respond within 30 seconds. Please check if the OpenCode AI model is properly configured and available."
451
+ "AI did not respond within 60 seconds. Please check if the OpenCode AI model is properly configured and available."
444
452
  );
445
- log.warn("Chrome MCP warmup timeout", __spreadValues({
453
+ log.warn(`Chrome MCP ${operation} warmup timeout`, __spreadValues({
446
454
  error: errorMessage
447
455
  }, freeModel && {
448
456
  model: `${freeModel.providerID}/${freeModel.modelID}`
449
457
  }));
450
- timer.end("Chrome MCP warmup timeout");
451
- throw error2;
458
+ timer.end(`Chrome MCP ${operation} warmup timeout`);
459
+ return { success: false, error: error2 };
452
460
  }
453
461
  const error = new import_shared.ChromeMcpWarmupError(
454
462
  import_shared.ChromeMcpWarmupErrorType.UNKNOWN,
455
- "Unknown error during Chrome MCP warmup",
463
+ `Unknown error during Chrome MCP ${operation} warmup`,
456
464
  errorMessage
457
465
  );
458
- log.warn("Chrome MCP warmup failed with unknown error", __spreadValues({
466
+ log.warn(`Chrome MCP ${operation} warmup failed with unknown error`, __spreadValues({
459
467
  error: errorMessage
460
468
  }, freeModel && {
461
469
  model: `${freeModel.providerID}/${freeModel.modelID}`
462
470
  }));
463
- timer.end("Chrome MCP warmup failed");
464
- throw error;
471
+ timer.end(`Chrome MCP ${operation} warmup failed`);
472
+ return { success: false, error };
465
473
  } finally {
466
474
  if (warmupSessionId) {
467
475
  try {
@@ -476,6 +484,20 @@ class OpenCodeAPI {
476
484
  }
477
485
  });
478
486
  }
487
+ warmupChromeMcp(projectDir, viteOrigin) {
488
+ return __async(this, null, function* () {
489
+ if (!this.warmupChromeMcpConfig) return;
490
+ const result = yield this.executeWarmupChromeMcp(projectDir, "warmup", viteOrigin);
491
+ if (!result.success) {
492
+ throw result.error;
493
+ }
494
+ });
495
+ }
496
+ retryWarmupChromeMcp(projectDir, viteOrigin) {
497
+ return __async(this, null, function* () {
498
+ return this.executeWarmupChromeMcp(projectDir, "retry", viteOrigin);
499
+ });
500
+ }
479
501
  getOrCreateSession(projectDir) {
480
502
  return __async(this, null, function* () {
481
503
  const timer = log.timer("getOrCreateSession", { projectDir });
@@ -497,148 +519,6 @@ class OpenCodeAPI {
497
519
  return url;
498
520
  });
499
521
  }
500
- retryWarmupChromeMcp(projectDir, viteOrigin) {
501
- return __async(this, null, function* () {
502
- const timer = log.timer("retryWarmupChromeMcp", { viteOrigin });
503
- let warmupSessionId = null;
504
- let freeModel = null;
505
- const chromeAvailable = yield (0, import_shared.checkChromeDevToolsAvailable)();
506
- if (!chromeAvailable) {
507
- const error = new import_shared.ChromeMcpWarmupError(
508
- import_shared.ChromeMcpWarmupErrorType.CHROME_NOT_CONNECTED,
509
- "Chrome DevTools Protocol is not available",
510
- "Chrome remote debugging is not enabled or not running on port 9222. Please enable Chrome remote debugging first."
511
- );
512
- log.warn("Chrome DevTools not available for retry", {
513
- port: import_shared.CHROME_DEVTOOLS_PORT,
514
- hint: "Enable Chrome remote debugging at chrome://inspect/#remote-debugging"
515
- });
516
- timer.end("Chrome DevTools not available for retry");
517
- return { success: false, error };
518
- }
519
- log.debug("Chrome DevTools is available, proceeding with retry warmup");
520
- try {
521
- const warmupSession = yield this.createSession(
522
- projectDir,
523
- import_shared.DEFAULT_RETRIES,
524
- "__chrome_mcp_warmup__"
525
- );
526
- warmupSessionId = warmupSession.id;
527
- freeModel = yield this.getCheapestModel();
528
- if (freeModel) {
529
- log.debug("Using cheapest model for retry warmup", {
530
- providerID: freeModel.providerID,
531
- modelID: freeModel.modelID
532
- });
533
- } else {
534
- log.debug("No model available for retry, using default model");
535
- }
536
- const WARMUP_TIMEOUT = 6e4;
537
- const data = yield this.createHttpRequest(
538
- {
539
- hostname: this.hostname,
540
- port: this.getPort(),
541
- path: `/session/${warmupSessionId}/message`,
542
- method: "POST",
543
- headers: { "Content-Type": "application/json" }
544
- },
545
- JSON.stringify(__spreadValues({
546
- parts: [
547
- {
548
- type: "text",
549
- text: "Test if the chrome-devtools_list_pages tool is available. If available, reply with: ready. If not available, explain why."
550
- }
551
- ]
552
- }, freeModel && {
553
- model: {
554
- providerID: freeModel.providerID,
555
- modelID: freeModel.modelID
556
- }
557
- })),
558
- WARMUP_TIMEOUT
559
- );
560
- log.debug("Chrome MCP warmup response:", { data });
561
- const responseText = (0, import_shared.extractTextFromResponse)(data);
562
- if (!responseText) {
563
- throw new import_shared.ChromeMcpWarmupError(
564
- import_shared.ChromeMcpWarmupErrorType.AI_RESPONSE_ERROR,
565
- "AI did not respond to the warmup request",
566
- "Empty response from AI"
567
- );
568
- }
569
- const lowerResponse = responseText.toLowerCase();
570
- if (!lowerResponse.includes("ready")) {
571
- throw new import_shared.ChromeMcpWarmupError(
572
- import_shared.ChromeMcpWarmupErrorType.AI_RESPONSE_ERROR,
573
- "AI response does not indicate success",
574
- `AI responded with: ${responseText.substring(0, 200)}`
575
- );
576
- }
577
- timer.end("Chrome MCP warmed up successfully");
578
- return { success: true };
579
- } catch (e) {
580
- if (e instanceof import_shared.ChromeMcpWarmupError) {
581
- if (e.type === import_shared.ChromeMcpWarmupErrorType.SESSION_ERROR) {
582
- timer.end("Session creation failed");
583
- }
584
- log.warn(`Chrome MCP warmup retry failed: ${e.type}`, __spreadValues({
585
- message: e.message,
586
- details: e.details
587
- }, freeModel && {
588
- model: `${freeModel.providerID}/${freeModel.modelID}`
589
- }));
590
- timer.end(`Chrome MCP warmup retry failed: ${e.type}`);
591
- return { success: false, error: e };
592
- }
593
- if (freeModel) {
594
- this.markModelAsFailed(freeModel.providerID, freeModel.modelID);
595
- log.debug("Marked model as failed due to retry warmup error", {
596
- providerID: freeModel.providerID,
597
- modelID: freeModel.modelID,
598
- error: e instanceof Error ? e.message : String(e)
599
- });
600
- }
601
- const errorMessage = e instanceof Error ? e.message : String(e);
602
- if (errorMessage.includes("timeout") || errorMessage.includes("Timeout")) {
603
- const error2 = new import_shared.ChromeMcpWarmupError(
604
- import_shared.ChromeMcpWarmupErrorType.AI_TIMEOUT,
605
- "AI response timeout",
606
- "AI did not respond within 60 seconds. Please check if the OpenCode AI model is properly configured and available."
607
- );
608
- log.warn("Chrome MCP warmup retry timeout", __spreadValues({
609
- error: errorMessage
610
- }, freeModel && {
611
- model: `${freeModel.providerID}/${freeModel.modelID}`
612
- }));
613
- timer.end("Chrome MCP warmup retry timeout");
614
- return { success: false, error: error2 };
615
- }
616
- const error = new import_shared.ChromeMcpWarmupError(
617
- import_shared.ChromeMcpWarmupErrorType.UNKNOWN,
618
- "Unknown error during Chrome MCP warmup retry",
619
- errorMessage
620
- );
621
- log.warn("Chrome MCP warmup retry failed with unknown error", __spreadValues({
622
- error: errorMessage
623
- }, freeModel && {
624
- model: `${freeModel.providerID}/${freeModel.modelID}`
625
- }));
626
- timer.end("Chrome MCP warmup retry failed");
627
- return { success: false, error };
628
- } finally {
629
- if (warmupSessionId) {
630
- try {
631
- yield this.deleteSession(warmupSessionId, 5);
632
- } catch (e) {
633
- log.warn("Failed to delete warmup session after retries", {
634
- error: e,
635
- warmupSessionId
636
- });
637
- }
638
- }
639
- }
640
- });
641
- }
642
522
  }
643
523
  // Annotate the CommonJS export names for ESM import in node:
644
524
  0 && (module.exports = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vite-plugin-opencode-assistant",
3
- "version": "1.0.44",
3
+ "version": "1.0.47",
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.js",
@@ -36,9 +36,9 @@
36
36
  "license": "MIT",
37
37
  "dependencies": {
38
38
  "unplugin-vue-inspector": "^2.4.0",
39
- "@vite-plugin-opencode-assistant/opencode": "1.0.44",
40
- "@vite-plugin-opencode-assistant/shared": "1.0.44",
41
- "@vite-plugin-opencode-assistant/components": "1.0.44"
39
+ "@vite-plugin-opencode-assistant/opencode": "1.0.47",
40
+ "@vite-plugin-opencode-assistant/shared": "1.0.47",
41
+ "@vite-plugin-opencode-assistant/components": "1.0.47"
42
42
  },
43
43
  "peerDependencies": {
44
44
  "vite": ">=4.0.0"