vite-plugin-opencode-assistant 1.0.47 → 1.0.49

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.
@@ -22,20 +22,76 @@ __export(ChromeWarmupError_vue_exports, {
22
22
  module.exports = __toCommonJS(ChromeWarmupError_vue_exports);
23
23
  var import_ChromeWarmupError_sfc = require("./ChromeWarmupError-sfc.css");
24
24
  var import_vue = require("vue");
25
- var import_shared = require("@vite-plugin-opencode-assistant/shared");
26
25
  var import_vue2 = require("vue");
26
+ var import_shared = require("@vite-plugin-opencode-assistant/shared");
27
+ var import_vue3 = require("vue");
27
28
  const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)({
28
29
  __name: "ChromeWarmupError",
29
30
  props: {
30
31
  retrying: { type: Boolean, required: true },
31
32
  errorType: { type: String, required: false },
32
- errorMessage: { type: String, required: false }
33
+ errorMessage: { type: String, required: false },
34
+ models: { type: Array, required: false }
33
35
  },
34
36
  emits: ["retry"],
35
37
  setup(__props, { expose: __expose, emit: __emit }) {
36
38
  __expose();
39
+ const props = __props;
37
40
  const emit = __emit;
38
- const __returned__ = { emit, get ChromeMcpWarmupErrorType() {
41
+ const selectedModelValue = (0, import_vue2.ref)("");
42
+ (0, import_vue2.watch)(
43
+ () => props.models,
44
+ (models) => {
45
+ if (models && models.length > 0 && !selectedModelValue.value) {
46
+ selectedModelValue.value = `${models[0].providerID}:${models[0].modelID}`;
47
+ }
48
+ },
49
+ { immediate: true }
50
+ );
51
+ const shouldShowModelSelector = (0, import_vue2.computed)(() => {
52
+ return props.errorType === import_shared.ChromeMcpWarmupErrorType.AI_TIMEOUT || props.errorType === import_shared.ChromeMcpWarmupErrorType.AI_RESPONSE_ERROR || props.errorType === import_shared.ChromeMcpWarmupErrorType.UNKNOWN;
53
+ });
54
+ const hasModels = (0, import_vue2.computed)(() => props.models && props.models.length > 0);
55
+ const groupedModels = (0, import_vue2.computed)(() => {
56
+ if (!props.models) return {};
57
+ const groups = {};
58
+ for (const model of props.models) {
59
+ if (!groups[model.providerID]) {
60
+ groups[model.providerID] = [];
61
+ }
62
+ groups[model.providerID].push(model);
63
+ }
64
+ return groups;
65
+ });
66
+ const selectedModel = (0, import_vue2.computed)(() => {
67
+ var _a;
68
+ if (!selectedModelValue.value || !props.models) return ((_a = props.models) == null ? void 0 : _a[0]) || null;
69
+ const [providerID, modelID] = selectedModelValue.value.split(":");
70
+ return props.models.find((m) => m.providerID === providerID && m.modelID === modelID) || null;
71
+ });
72
+ const getProviderDisplayName = (providerID) => {
73
+ const knownProviders = {
74
+ anthropic: "Anthropic",
75
+ openai: "OpenAI",
76
+ google: "Google",
77
+ xai: "xAI",
78
+ opencode: "OpenCode",
79
+ opencode_go: "OpenCode Go"
80
+ };
81
+ return knownProviders[providerID] || providerID;
82
+ };
83
+ const getModelKey = (model) => `${model.providerID}:${model.modelID}`;
84
+ const handleRetry = () => {
85
+ if (shouldShowModelSelector.value && hasModels.value && selectedModel.value) {
86
+ emit("retry", {
87
+ providerID: selectedModel.value.providerID,
88
+ modelID: selectedModel.value.modelID
89
+ });
90
+ } else {
91
+ emit("retry");
92
+ }
93
+ };
94
+ const __returned__ = { props, emit, selectedModelValue, shouldShowModelSelector, hasModels, groupedModels, selectedModel, getProviderDisplayName, getModelKey, handleRetry, get ChromeMcpWarmupErrorType() {
39
95
  return import_shared.ChromeMcpWarmupErrorType;
40
96
  } };
41
97
  Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
@@ -44,19 +100,44 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)({
44
100
  });
45
101
  const _hoisted_1 = { class: "opencode-chrome-warmup-failed" };
46
102
  const _hoisted_2 = { class: "opencode-chrome-warmup-failed-text" };
47
- const _hoisted_3 = { class: "opencode-chrome-warmup-error-details" };
103
+ const _hoisted_3 = {
104
+ key: 0,
105
+ style: { "margin-top": "12px", "font-weight": "500" }
106
+ };
48
107
  const _hoisted_4 = { class: "opencode-chrome-warmup-failed-text" };
49
- const _hoisted_5 = { key: 0 };
50
- const _hoisted_6 = { key: 1 };
51
- const _hoisted_7 = { class: "opencode-chrome-warmup-failed-actions" };
52
- const _hoisted_8 = ["disabled"];
108
+ const _hoisted_5 = { class: "opencode-chrome-warmup-error-details" };
109
+ const _hoisted_6 = {
110
+ key: 0,
111
+ style: { "margin-top": "12px" }
112
+ };
113
+ const _hoisted_7 = { class: "opencode-chrome-warmup-failed-text" };
114
+ const _hoisted_8 = { key: 0 };
115
+ const _hoisted_9 = { key: 1 };
116
+ const _hoisted_10 = {
117
+ key: 2,
118
+ style: { "margin-top": "12px" }
119
+ };
120
+ const _hoisted_11 = {
121
+ key: 4,
122
+ class: "opencode-model-selector"
123
+ };
124
+ const _hoisted_12 = { class: "select-wrapper" };
125
+ const _hoisted_13 = ["disabled"];
126
+ const _hoisted_14 = ["label"];
127
+ const _hoisted_15 = ["value"];
128
+ const _hoisted_16 = ["disabled"];
129
+ const _hoisted_17 = {
130
+ key: 5,
131
+ class: "opencode-chrome-warmup-failed-actions"
132
+ };
133
+ const _hoisted_18 = ["disabled"];
53
134
  function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
54
- return (0, import_vue2.openBlock)(), (0, import_vue2.createElementBlock)("div", _hoisted_1, [
55
- _cache[9] || (_cache[9] = (0, import_vue2.createElementVNode)(
135
+ return (0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("div", _hoisted_1, [
136
+ _cache[11] || (_cache[11] = (0, import_vue3.createElementVNode)(
56
137
  "div",
57
138
  { class: "opencode-chrome-warmup-failed-icon" },
58
139
  [
59
- (0, import_vue2.createElementVNode)("svg", {
140
+ (0, import_vue3.createElementVNode)("svg", {
60
141
  xmlns: "http://www.w3.org/2000/svg",
61
142
  fill: "none",
62
143
  viewBox: "0 0 24 24",
@@ -65,7 +146,7 @@ function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
65
146
  stroke: "currentColor",
66
147
  "stroke-width": "1.5"
67
148
  }, [
68
- (0, import_vue2.createElementVNode)("path", {
149
+ (0, import_vue3.createElementVNode)("path", {
69
150
  "stroke-linecap": "round",
70
151
  "stroke-linejoin": "round",
71
152
  d: "M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z"
@@ -75,31 +156,30 @@ function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
75
156
  -1
76
157
  /* CACHED */
77
158
  )),
78
- (0, import_vue2.createCommentVNode)(" Chrome \u8FDC\u7A0B\u8C03\u8BD5\u672A\u5F00\u542F "),
79
- $props.errorType === $setup.ChromeMcpWarmupErrorType.CHROME_NOT_CONNECTED ? ((0, import_vue2.openBlock)(), (0, import_vue2.createElementBlock)(
80
- import_vue2.Fragment,
159
+ $props.errorType === $setup.ChromeMcpWarmupErrorType.CHROME_NOT_CONNECTED ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)(
160
+ import_vue3.Fragment,
81
161
  { key: 0 },
82
162
  [
83
- _cache[1] || (_cache[1] = (0, import_vue2.createElementVNode)(
163
+ _cache[2] || (_cache[2] = (0, import_vue3.createElementVNode)(
84
164
  "div",
85
165
  { class: "opencode-chrome-warmup-failed-title" },
86
166
  "Chrome DevTools MCP \u8FDE\u63A5\u5931\u8D25",
87
167
  -1
88
168
  /* CACHED */
89
169
  )),
90
- _cache[2] || (_cache[2] = (0, import_vue2.createElementVNode)(
170
+ _cache[3] || (_cache[3] = (0, import_vue3.createElementVNode)(
91
171
  "div",
92
172
  { class: "opencode-chrome-warmup-failed-text" },
93
173
  [
94
- (0, import_vue2.createElementVNode)("p", null, "\u8BF7\u6309\u4EE5\u4E0B\u6B65\u9AA4\u5F00\u542F Chrome \u8FDC\u7A0B\u8C03\u8BD5\uFF1A"),
95
- (0, import_vue2.createElementVNode)("ol", { class: "opencode-chrome-warmup-steps" }, [
96
- (0, import_vue2.createElementVNode)("li", null, [
97
- (0, import_vue2.createTextVNode)(" \u5728 Chrome \u5730\u5740\u680F\u8F93\u5165 "),
98
- (0, import_vue2.createElementVNode)("code", { class: "opencode-chrome-warmup-code" }, "chrome://inspect/#remote-debugging")
174
+ (0, import_vue3.createElementVNode)("p", null, "\u8BF7\u6309\u4EE5\u4E0B\u6B65\u9AA4\u5F00\u542F Chrome \u8FDC\u7A0B\u8C03\u8BD5\uFF1A"),
175
+ (0, import_vue3.createElementVNode)("div", { class: "opencode-chrome-warmup-steps" }, [
176
+ (0, import_vue3.createElementVNode)("div", null, [
177
+ (0, import_vue3.createTextVNode)(" \u5728 Chrome \u5730\u5740\u680F\u8F93\u5165 "),
178
+ (0, import_vue3.createElementVNode)("code", { class: "opencode-chrome-warmup-code" }, "chrome://inspect/#remote-debugging")
99
179
  ]),
100
- (0, import_vue2.createElementVNode)("li", null, "\u52FE\u9009 'Allow remote debugging for this browser instance' \u9009\u9879"),
101
- (0, import_vue2.createElementVNode)("li", null, "\u91CD\u65B0\u542F\u52A8\u6D4F\u89C8\u5668"),
102
- (0, import_vue2.createElementVNode)("li", null, "\u5B8C\u6210\u540E\u70B9\u51FB\u4E0B\u65B9\u6309\u94AE\u91CD\u8BD5")
180
+ (0, import_vue3.createElementVNode)("div", null, "\u52FE\u9009 'Allow remote debugging for this browser instance' \u9009\u9879"),
181
+ (0, import_vue3.createElementVNode)("div", null, "\u91CD\u65B0\u542F\u52A8\u6D4F\u89C8\u5668"),
182
+ (0, import_vue3.createElementVNode)("div", null, "\u5B8C\u6210\u540E\u70B9\u51FB\u4E0B\u65B9\u6309\u94AE\u91CD\u8BD5")
103
183
  ])
104
184
  ],
105
185
  -1
@@ -108,108 +188,169 @@ function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
108
188
  ],
109
189
  64
110
190
  /* STABLE_FRAGMENT */
111
- )) : $props.errorType === $setup.ChromeMcpWarmupErrorType.AI_TIMEOUT ? ((0, import_vue2.openBlock)(), (0, import_vue2.createElementBlock)(
112
- import_vue2.Fragment,
191
+ )) : $props.errorType === $setup.ChromeMcpWarmupErrorType.AI_TIMEOUT ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)(
192
+ import_vue3.Fragment,
113
193
  { key: 1 },
114
194
  [
115
- (0, import_vue2.createCommentVNode)(" AI \u54CD\u5E94\u8D85\u65F6 "),
116
- _cache[3] || (_cache[3] = (0, import_vue2.createElementVNode)(
195
+ _cache[6] || (_cache[6] = (0, import_vue3.createElementVNode)(
117
196
  "div",
118
197
  { class: "opencode-chrome-warmup-failed-title" },
119
198
  "AI \u54CD\u5E94\u8D85\u65F6",
120
199
  -1
121
200
  /* CACHED */
122
201
  )),
123
- _cache[4] || (_cache[4] = (0, import_vue2.createElementVNode)(
124
- "div",
125
- { class: "opencode-chrome-warmup-failed-text" },
126
- [
127
- (0, import_vue2.createElementVNode)("p", null, "AI \u6A21\u578B\u54CD\u5E94\u8D85\u65F6\uFF0C\u53EF\u80FD\u7684\u539F\u56E0\uFF1A"),
128
- (0, import_vue2.createElementVNode)("ol", { class: "opencode-chrome-warmup-steps" }, [
129
- (0, import_vue2.createElementVNode)("li", null, "OpenCode AI \u6A21\u578B\u672A\u6B63\u786E\u914D\u7F6E"),
130
- (0, import_vue2.createElementVNode)("li", null, "AI \u6A21\u578B\u670D\u52A1\u4E0D\u53EF\u7528\u6216\u54CD\u5E94\u7F13\u6162"),
131
- (0, import_vue2.createElementVNode)("li", null, "\u7F51\u7EDC\u8FDE\u63A5\u95EE\u9898")
132
- ]),
133
- (0, import_vue2.createElementVNode)("p", { style: { "margin-top": "12px", "font-weight": "500" } }, "\u8BF7\u68C0\u67E5 OpenCode \u914D\u7F6E\u6587\u4EF6\u4E2D\u7684 AI \u6A21\u578B\u8BBE\u7F6E")
134
- ],
135
- -1
136
- /* CACHED */
137
- ))
202
+ (0, import_vue3.createElementVNode)("div", _hoisted_2, [
203
+ _cache[4] || (_cache[4] = (0, import_vue3.createElementVNode)(
204
+ "p",
205
+ null,
206
+ "AI \u6A21\u578B\u54CD\u5E94\u8D85\u65F6\uFF0C\u53EF\u80FD\u7684\u539F\u56E0\uFF1A",
207
+ -1
208
+ /* CACHED */
209
+ )),
210
+ _cache[5] || (_cache[5] = (0, import_vue3.createElementVNode)(
211
+ "div",
212
+ { class: "opencode-chrome-warmup-steps" },
213
+ [
214
+ (0, import_vue3.createElementVNode)("div", null, "\u5F53\u524D\u9009\u62E9\u7684 AI \u6A21\u578B\u670D\u52A1\u4E0D\u53EF\u7528\u6216\u54CD\u5E94\u7F13\u6162"),
215
+ (0, import_vue3.createElementVNode)("div", null, "\u7F51\u7EDC\u8FDE\u63A5\u95EE\u9898"),
216
+ (0, import_vue3.createElementVNode)("div", null, "\u6A21\u578B\u914D\u7F6E\u4E0D\u6B63\u786E")
217
+ ],
218
+ -1
219
+ /* CACHED */
220
+ )),
221
+ $setup.hasModels ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("p", _hoisted_3, "\u53EF\u9009\u62E9\u5176\u4ED6\u6A21\u578B\u91CD\u8BD5\uFF1A")) : (0, import_vue3.createCommentVNode)("v-if", true)
222
+ ])
138
223
  ],
139
224
  64
140
225
  /* STABLE_FRAGMENT */
141
- )) : $props.errorType === $setup.ChromeMcpWarmupErrorType.AI_RESPONSE_ERROR ? ((0, import_vue2.openBlock)(), (0, import_vue2.createElementBlock)(
142
- import_vue2.Fragment,
226
+ )) : $props.errorType === $setup.ChromeMcpWarmupErrorType.AI_RESPONSE_ERROR ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)(
227
+ import_vue3.Fragment,
143
228
  { key: 2 },
144
229
  [
145
- (0, import_vue2.createCommentVNode)(" AI \u54CD\u5E94\u9519\u8BEF "),
146
- _cache[7] || (_cache[7] = (0, import_vue2.createElementVNode)(
230
+ _cache[8] || (_cache[8] = (0, import_vue3.createElementVNode)(
147
231
  "div",
148
232
  { class: "opencode-chrome-warmup-failed-title" },
149
233
  "AI \u54CD\u5E94\u9519\u8BEF",
150
234
  -1
151
235
  /* CACHED */
152
236
  )),
153
- (0, import_vue2.createElementVNode)("div", _hoisted_2, [
154
- _cache[5] || (_cache[5] = (0, import_vue2.createElementVNode)(
237
+ (0, import_vue3.createElementVNode)("div", _hoisted_4, [
238
+ _cache[7] || (_cache[7] = (0, import_vue3.createElementVNode)(
155
239
  "p",
156
240
  null,
157
241
  "AI \u6A21\u578B\u8FD4\u56DE\u4E86\u610F\u5916\u7684\u54CD\u5E94\uFF1A",
158
242
  -1
159
243
  /* CACHED */
160
244
  )),
161
- (0, import_vue2.createElementVNode)(
245
+ (0, import_vue3.createElementVNode)(
162
246
  "div",
163
- _hoisted_3,
164
- (0, import_vue2.toDisplayString)($props.errorMessage || "\u672A\u77E5\u9519\u8BEF"),
247
+ _hoisted_5,
248
+ (0, import_vue3.toDisplayString)($props.errorMessage || "\u672A\u77E5\u9519\u8BEF"),
165
249
  1
166
250
  /* TEXT */
167
251
  ),
168
- _cache[6] || (_cache[6] = (0, import_vue2.createElementVNode)(
169
- "p",
170
- { style: { "margin-top": "12px" } },
171
- "\u8BF7\u68C0\u67E5 OpenCode AI \u6A21\u578B\u914D\u7F6E\u662F\u5426\u6B63\u786E",
172
- -1
173
- /* CACHED */
174
- ))
252
+ $setup.hasModels ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("p", _hoisted_6, "\u53EF\u9009\u62E9\u5176\u4ED6\u6A21\u578B\u91CD\u8BD5\uFF1A")) : (0, import_vue3.createCommentVNode)("v-if", true)
175
253
  ])
176
254
  ],
177
255
  64
178
256
  /* STABLE_FRAGMENT */
179
- )) : ((0, import_vue2.openBlock)(), (0, import_vue2.createElementBlock)(
180
- import_vue2.Fragment,
257
+ )) : ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)(
258
+ import_vue3.Fragment,
181
259
  { key: 3 },
182
260
  [
183
- (0, import_vue2.createCommentVNode)(" \u5176\u4ED6\u9519\u8BEF "),
184
- _cache[8] || (_cache[8] = (0, import_vue2.createElementVNode)(
261
+ _cache[9] || (_cache[9] = (0, import_vue3.createElementVNode)(
185
262
  "div",
186
263
  { class: "opencode-chrome-warmup-failed-title" },
187
264
  "Chrome DevTools MCP \u8FDE\u63A5\u5931\u8D25",
188
265
  -1
189
266
  /* CACHED */
190
267
  )),
191
- (0, import_vue2.createElementVNode)("div", _hoisted_4, [
192
- $props.errorMessage ? ((0, import_vue2.openBlock)(), (0, import_vue2.createElementBlock)(
268
+ (0, import_vue3.createElementVNode)("div", _hoisted_7, [
269
+ $props.errorMessage ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)(
193
270
  "p",
194
- _hoisted_5,
195
- (0, import_vue2.toDisplayString)($props.errorMessage),
271
+ _hoisted_8,
272
+ (0, import_vue3.toDisplayString)($props.errorMessage),
196
273
  1
197
274
  /* TEXT */
198
- )) : ((0, import_vue2.openBlock)(), (0, import_vue2.createElementBlock)("p", _hoisted_6, "\u8FDE\u63A5\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5"))
275
+ )) : ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("p", _hoisted_9, "\u8FDE\u63A5\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5")),
276
+ $setup.hasModels ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("p", _hoisted_10, "\u53EF\u9009\u62E9\u6A21\u578B\u91CD\u8BD5\uFF1A")) : (0, import_vue3.createCommentVNode)("v-if", true)
199
277
  ])
200
278
  ],
201
279
  64
202
280
  /* STABLE_FRAGMENT */
203
281
  )),
204
- (0, import_vue2.createElementVNode)("div", _hoisted_7, [
205
- (0, import_vue2.createElementVNode)("button", {
282
+ $setup.shouldShowModelSelector && $setup.hasModels ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("div", _hoisted_11, [
283
+ (0, import_vue3.createElementVNode)("div", _hoisted_12, [
284
+ (0, import_vue3.withDirectives)((0, import_vue3.createElementVNode)("select", {
285
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.selectedModelValue = $event),
286
+ class: "native-select",
287
+ disabled: $props.retrying
288
+ }, [
289
+ ((0, import_vue3.openBlock)(true), (0, import_vue3.createElementBlock)(
290
+ import_vue3.Fragment,
291
+ null,
292
+ (0, import_vue3.renderList)($setup.groupedModels, (providerModels, provider) => {
293
+ return (0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("optgroup", {
294
+ key: provider,
295
+ label: $setup.getProviderDisplayName(provider)
296
+ }, [
297
+ ((0, import_vue3.openBlock)(true), (0, import_vue3.createElementBlock)(
298
+ import_vue3.Fragment,
299
+ null,
300
+ (0, import_vue3.renderList)(providerModels, (model) => {
301
+ return (0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("option", {
302
+ key: $setup.getModelKey(model),
303
+ value: $setup.getModelKey(model)
304
+ }, (0, import_vue3.toDisplayString)(model.name || model.modelID), 9, _hoisted_15);
305
+ }),
306
+ 128
307
+ /* KEYED_FRAGMENT */
308
+ ))
309
+ ], 8, _hoisted_14);
310
+ }),
311
+ 128
312
+ /* KEYED_FRAGMENT */
313
+ ))
314
+ ], 8, _hoisted_13), [
315
+ [import_vue3.vModelSelect, $setup.selectedModelValue]
316
+ ]),
317
+ _cache[10] || (_cache[10] = (0, import_vue3.createElementVNode)(
318
+ "span",
319
+ { class: "select-arrow" },
320
+ [
321
+ (0, import_vue3.createElementVNode)("svg", {
322
+ viewBox: "0 0 24 24",
323
+ width: "16",
324
+ height: "16",
325
+ fill: "none",
326
+ stroke: "currentColor",
327
+ "stroke-width": "2"
328
+ }, [
329
+ (0, import_vue3.createElementVNode)("path", {
330
+ d: "M6 9l6 6 6-6",
331
+ "stroke-linecap": "round",
332
+ "stroke-linejoin": "round"
333
+ })
334
+ ])
335
+ ],
336
+ -1
337
+ /* CACHED */
338
+ ))
339
+ ]),
340
+ (0, import_vue3.createElementVNode)("button", {
341
+ class: "retry-btn",
342
+ disabled: $props.retrying,
343
+ onClick: $setup.handleRetry
344
+ }, (0, import_vue3.toDisplayString)($props.retrying ? "\u8FDE\u63A5\u4E2D..." : "\u91CD\u8BD5\u8FDE\u63A5"), 9, _hoisted_16)
345
+ ])) : ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("div", _hoisted_17, [
346
+ (0, import_vue3.createElementVNode)("button", {
206
347
  class: "opencode-chrome-warmup-failed-btn primary",
207
348
  disabled: $props.retrying,
208
- onClick: _cache[0] || (_cache[0] = ($event) => $setup.emit("retry"))
209
- }, (0, import_vue2.toDisplayString)($props.retrying ? "\u8FDE\u63A5\u4E2D..." : "\u91CD\u8BD5\u8FDE\u63A5"), 9, _hoisted_8)
210
- ])
349
+ onClick: _cache[1] || (_cache[1] = ($event) => $setup.handleRetry())
350
+ }, (0, import_vue3.toDisplayString)($props.retrying ? "\u8FDE\u63A5\u4E2D..." : "\u91CD\u8BD5\u8FDE\u63A5"), 9, _hoisted_18)
351
+ ]))
211
352
  ]);
212
353
  }
213
354
  __vue_sfc__.render = __vue_render__;
214
- __vue_sfc__.__scopeId = "data-v-13778a4c";
355
+ __vue_sfc__.__scopeId = "data-v-06c8b833";
215
356
  var ChromeWarmupError_vue_default = __vue_sfc__;
@@ -1 +1 @@
1
- .opencode-custom-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}.opencode-loading-spinner{width:32px;height:32px;border:3px solid var(--oc-border-primary);border-top-color:var(--oc-primary);border-radius:50%;animation:opencode-spin .8s linear infinite}@keyframes opencode-spin{to{transform:rotate(360deg)}}.opencode-loading-text{margin-top:12px;color:var(--oc-text-secondary);font-size:14px}.opencode-chrome-warmup-failed{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--oc-bg-secondary);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:15}.opencode-chrome-warmup-failed-icon{color:var(--oc-warning, #f59e0b);margin-bottom:16px}.opencode-chrome-warmup-failed-title{color:var(--oc-text-primary);font-size:18px;font-weight:600;margin-bottom:8px}.opencode-chrome-warmup-failed-text{color:var(--oc-text-secondary);font-size:14px;margin-bottom:24px;text-align:left;max-width:400px;line-height:1.6;text-align:center}.opencode-chrome-warmup-failed-text p{margin:0 0 12px;font-weight:500;color:var(--oc-text-primary)}.opencode-chrome-warmup-steps{margin:0;padding-left:20px}.opencode-chrome-warmup-steps li{margin-bottom:8px;color:var(--oc-text-secondary);font-size:13px;line-height:1.5}.opencode-chrome-warmup-steps li:last-child{margin-bottom:0}.opencode-chrome-warmup-code{display:inline-block;background:var(--oc-bg-tertiary);color:var(--oc-primary);padding:2px 6px;border-radius:4px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;font-weight:500;word-break:break-all;margin:0 2px}.opencode-chrome-warmup-failed-actions{display:flex;gap:12px}.opencode-chrome-warmup-failed-btn{padding:10px 24px;border-radius:8px;border:none;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.opencode-chrome-warmup-failed-btn.primary{background:var(--oc-primary);color:#fff;box-shadow:var(--oc-shadow-primary)}.opencode-chrome-warmup-failed-btn.primary:hover:not(:disabled){background:var(--oc-primary-hover);transform:translateY(-1px);box-shadow:var(--oc-shadow-primary-hover)}.opencode-chrome-warmup-failed-btn.primary:active:not(:disabled){transform:translateY(0)}.opencode-chrome-warmup-failed-btn.primary:disabled{opacity:.6;cursor:not-allowed}
1
+ .opencode-custom-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}.opencode-loading-spinner{width:32px;height:32px;border:3px solid var(--oc-border-primary);border-top-color:var(--oc-primary);border-radius:50%;animation:opencode-spin .8s linear infinite}@keyframes opencode-spin{to{transform:rotate(360deg)}}.opencode-loading-text{margin-top:12px;color:var(--oc-text-secondary);font-size:14px}.opencode-chrome-warmup-failed{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--oc-bg-secondary);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:15}.opencode-chrome-warmup-failed-icon{color:var(--oc-warning, #f59e0b);margin-bottom:16px}.opencode-chrome-warmup-failed-title{color:var(--oc-text-primary);font-size:18px;font-weight:600;margin-bottom:8px}.opencode-chrome-warmup-failed-text{color:var(--oc-text-secondary);font-size:14px;text-align:left;max-width:400px;line-height:1.6;text-align:center}.opencode-chrome-warmup-failed-text p{margin:0 0 12px;font-weight:500;color:var(--oc-text-primary)}.opencode-chrome-warmup-steps{margin:0}.opencode-chrome-warmup-steps div{margin-bottom:8px;color:var(--oc-text-secondary);font-size:13px;line-height:1.5}.opencode-chrome-warmup-steps div:last-child{margin-bottom:0}.opencode-chrome-warmup-code{display:inline-block;background:var(--oc-bg-tertiary);color:var(--oc-primary);padding:2px 6px;border-radius:4px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;font-weight:500;word-break:break-all;margin:0 2px}.opencode-chrome-warmup-failed-actions{display:flex;gap:12px}.opencode-chrome-warmup-failed-btn{padding:10px 24px;border-radius:8px;border:none;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.opencode-chrome-warmup-failed-btn.primary{background:var(--oc-primary);color:#fff;box-shadow:var(--oc-shadow-primary)}.opencode-chrome-warmup-failed-btn.primary:hover:not(:disabled){background:var(--oc-primary-hover);transform:translateY(-1px);box-shadow:var(--oc-shadow-primary-hover)}.opencode-chrome-warmup-failed-btn.primary:active:not(:disabled){transform:translateY(0)}.opencode-chrome-warmup-failed-btn.primary:disabled{opacity:.6;cursor:not-allowed}