vite-plugin-opencode-assistant 1.0.37 → 1.0.39
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/client/App.vue.js +20 -9
- package/es/index.js +3 -1
- package/lib/client/App.vue.js +20 -9
- package/lib/client.js +3703 -3338
- package/lib/index.js +3 -1
- package/lib/style.css +1 -1
- package/package.json +4 -4
package/es/client/App.vue.js
CHANGED
|
@@ -56,6 +56,7 @@ const __vue_sfc__ = /* @__PURE__ */ _defineComponent({
|
|
|
56
56
|
config: { type: Object, required: true }
|
|
57
57
|
},
|
|
58
58
|
setup(__props, { expose: __expose }) {
|
|
59
|
+
var _a;
|
|
59
60
|
__expose();
|
|
60
61
|
const props = __props;
|
|
61
62
|
const open = ref(false);
|
|
@@ -69,15 +70,18 @@ const __vue_sfc__ = /* @__PURE__ */ _defineComponent({
|
|
|
69
70
|
open: autoOpen = false,
|
|
70
71
|
hotkey = "ctrl+k",
|
|
71
72
|
proxyPort = 4098,
|
|
72
|
-
proxyHost = "localhost"
|
|
73
|
+
proxyHost = "localhost",
|
|
74
|
+
displayMode = "bubble",
|
|
75
|
+
splitMode
|
|
73
76
|
} = props.config;
|
|
74
77
|
const widgetTheme = initialTheme;
|
|
78
|
+
const splitPanelWidth = ref((_a = splitMode == null ? void 0 : splitMode.width) != null ? _a : 500);
|
|
75
79
|
const proxyBaseUrl = computed(() => {
|
|
76
80
|
return `http://${proxyHost}:${proxyPort}`;
|
|
77
81
|
});
|
|
78
82
|
const showNotification = (msg, options) => {
|
|
79
|
-
var
|
|
80
|
-
(_b = (
|
|
83
|
+
var _a2, _b;
|
|
84
|
+
(_b = (_a2 = widgetRef.value) == null ? void 0 : _a2.showNotification) == null ? void 0 : _b.call(_a2, msg, options);
|
|
81
85
|
};
|
|
82
86
|
const {
|
|
83
87
|
serviceStatus,
|
|
@@ -216,8 +220,8 @@ const __vue_sfc__ = /* @__PURE__ */ _defineComponent({
|
|
|
216
220
|
}, 1e3);
|
|
217
221
|
}
|
|
218
222
|
const handleIframeMessage = (event) => {
|
|
219
|
-
var
|
|
220
|
-
if (((
|
|
223
|
+
var _a2;
|
|
224
|
+
if (((_a2 = event.data) == null ? void 0 : _a2.type) === "OPENCODE_READY") {
|
|
221
225
|
sendThemeToIframe();
|
|
222
226
|
}
|
|
223
227
|
};
|
|
@@ -240,12 +244,12 @@ const __vue_sfc__ = /* @__PURE__ */ _defineComponent({
|
|
|
240
244
|
}
|
|
241
245
|
});
|
|
242
246
|
const handleSelectNode = (element) => {
|
|
243
|
-
var
|
|
247
|
+
var _a2;
|
|
244
248
|
const elementWithContext = __spreadProps(__spreadValues({}, element), {
|
|
245
249
|
previewPageUrl: window.location.href,
|
|
246
250
|
previewPageTitle: document.title
|
|
247
251
|
});
|
|
248
|
-
(
|
|
252
|
+
(_a2 = widgetRef.value) == null ? void 0 : _a2.sendMessageToIframe("OPENCODE_INSERT_FILE_PART", {
|
|
249
253
|
element: elementWithContext
|
|
250
254
|
});
|
|
251
255
|
showNotification(`\u8282\u70B9\u5DF2\u6DFB\u52A0\u5230\u5BF9\u8BDD\u6846`, { mode: "page" });
|
|
@@ -267,6 +271,9 @@ const __vue_sfc__ = /* @__PURE__ */ _defineComponent({
|
|
|
267
271
|
const handleThemeChange = (val) => {
|
|
268
272
|
theme.value = val;
|
|
269
273
|
};
|
|
274
|
+
const handleSplitPanelWidthChange = (val) => {
|
|
275
|
+
splitPanelWidth.value = val;
|
|
276
|
+
};
|
|
270
277
|
const handleRemoveSelectedNode = ({ index }) => {
|
|
271
278
|
removeElement(index);
|
|
272
279
|
updateContext(true);
|
|
@@ -274,7 +281,7 @@ const __vue_sfc__ = /* @__PURE__ */ _defineComponent({
|
|
|
274
281
|
const handleFrameLoaded = () => {
|
|
275
282
|
iframeLoading.value = false;
|
|
276
283
|
};
|
|
277
|
-
const __returned__ = { props, open, selectMode, sessionListCollapsed, loading, widgetRef, retryingWarmup, initialTheme, autoOpen, hotkey, proxyPort, proxyHost, widgetTheme, proxyBaseUrl, showNotification, serviceStatus, chromeMcpFailed, chromeMcpErrorType, chromeMcpErrorMessage, loadingText, updateStatusFromTask, setStarting, selectedElements, removeElement, clearElements, theme, sendThemeToIframe, sessions, loadingSessionList, currentSessionId, iframeSrc, iframeLoading, loadSessions, createSession, deleteSession, selectSession, updateSessionInfo, updateContext, serverSSE, opencodeSSE, thinking, sessionStates, showSessionListSkeleton, computedLoading, displayLoadingText, retryWarmup, ensureServicesStarted, handleToggle, handleSelectNode, handleClearSelected, handleSelectModeChange, handleSessionListCollapsedChange, handleThemeChange, handleRemoveSelectedNode, handleFrameLoaded, get OpenCodeWidget() {
|
|
284
|
+
const __returned__ = { props, open, selectMode, sessionListCollapsed, loading, widgetRef, retryingWarmup, initialTheme, autoOpen, hotkey, proxyPort, proxyHost, displayMode, splitMode, widgetTheme, splitPanelWidth, proxyBaseUrl, showNotification, serviceStatus, chromeMcpFailed, chromeMcpErrorType, chromeMcpErrorMessage, loadingText, updateStatusFromTask, setStarting, selectedElements, removeElement, clearElements, theme, sendThemeToIframe, sessions, loadingSessionList, currentSessionId, iframeSrc, iframeLoading, loadSessions, createSession, deleteSession, selectSession, updateSessionInfo, updateContext, serverSSE, opencodeSSE, thinking, sessionStates, showSessionListSkeleton, computedLoading, displayLoadingText, retryWarmup, ensureServicesStarted, handleToggle, handleSelectNode, handleClearSelected, handleSelectModeChange, handleSessionListCollapsedChange, handleThemeChange, handleSplitPanelWidthChange, handleRemoveSelectedNode, handleFrameLoaded, get OpenCodeWidget() {
|
|
278
285
|
return OpenCodeWidget;
|
|
279
286
|
}, LoadingContent, ChromeWarmupError };
|
|
280
287
|
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
|
|
@@ -300,10 +307,14 @@ function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
300
307
|
"session-key": "id",
|
|
301
308
|
"hotkey-label": $setup.hotkey,
|
|
302
309
|
thinking: $setup.thinking,
|
|
310
|
+
"display-mode": $setup.displayMode,
|
|
311
|
+
"split-mode": $setup.splitMode,
|
|
312
|
+
"split-panel-width": $setup.splitPanelWidth,
|
|
303
313
|
"onUpdate:open": $setup.handleToggle,
|
|
304
314
|
"onUpdate:selectMode": $setup.handleSelectModeChange,
|
|
305
315
|
"onUpdate:sessionListCollapsed": $setup.handleSessionListCollapsedChange,
|
|
306
316
|
"onUpdate:theme": $setup.handleThemeChange,
|
|
317
|
+
"onUpdate:splitPanelWidth": $setup.handleSplitPanelWidthChange,
|
|
307
318
|
onToggleTheme: $setup.handleThemeChange,
|
|
308
319
|
onCreateSession: $setup.createSession,
|
|
309
320
|
onDeleteSession: $setup.deleteSession,
|
|
@@ -328,7 +339,7 @@ function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
328
339
|
]),
|
|
329
340
|
_: 1
|
|
330
341
|
/* STABLE */
|
|
331
|
-
}, 8, ["theme", "open", "select-mode", "session-list-collapsed", "frame-loading", "loading-session-list", "show-session-list-skeleton", "show-error", "iframe-src", "current-session-id", "sessions", "session-states", "hotkey-label", "thinking", "onCreateSession", "onDeleteSession", "onSelectSession", "onEmptyAction"]);
|
|
342
|
+
}, 8, ["theme", "open", "select-mode", "session-list-collapsed", "frame-loading", "loading-session-list", "show-session-list-skeleton", "show-error", "iframe-src", "current-session-id", "sessions", "session-states", "hotkey-label", "thinking", "display-mode", "split-mode", "split-panel-width", "onCreateSession", "onDeleteSession", "onSelectSession", "onEmptyAction"]);
|
|
332
343
|
}
|
|
333
344
|
__vue_sfc__.render = __vue_render__;
|
|
334
345
|
var App_vue_default = __vue_sfc__;
|
package/es/index.js
CHANGED
|
@@ -181,7 +181,9 @@ function createOpenCodePlugin(options = {}) {
|
|
|
181
181
|
open: config.open,
|
|
182
182
|
hotkey: config.hotkey,
|
|
183
183
|
proxyPort: actualProxyPort,
|
|
184
|
-
proxyHost: config.hostname
|
|
184
|
+
proxyHost: config.hostname,
|
|
185
|
+
displayMode: config.displayMode,
|
|
186
|
+
splitMode: config.splitMode
|
|
185
187
|
});
|
|
186
188
|
timer.end();
|
|
187
189
|
return html.replace("</body>", `${widget}</body>`);
|
package/lib/client/App.vue.js
CHANGED
|
@@ -87,6 +87,7 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)({
|
|
|
87
87
|
config: { type: Object, required: true }
|
|
88
88
|
},
|
|
89
89
|
setup(__props, { expose: __expose }) {
|
|
90
|
+
var _a;
|
|
90
91
|
__expose();
|
|
91
92
|
const props = __props;
|
|
92
93
|
const open = (0, import_vue2.ref)(false);
|
|
@@ -100,15 +101,18 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)({
|
|
|
100
101
|
open: autoOpen = false,
|
|
101
102
|
hotkey = "ctrl+k",
|
|
102
103
|
proxyPort = 4098,
|
|
103
|
-
proxyHost = "localhost"
|
|
104
|
+
proxyHost = "localhost",
|
|
105
|
+
displayMode = "bubble",
|
|
106
|
+
splitMode
|
|
104
107
|
} = props.config;
|
|
105
108
|
const widgetTheme = initialTheme;
|
|
109
|
+
const splitPanelWidth = (0, import_vue2.ref)((_a = splitMode == null ? void 0 : splitMode.width) != null ? _a : 500);
|
|
106
110
|
const proxyBaseUrl = (0, import_vue2.computed)(() => {
|
|
107
111
|
return `http://${proxyHost}:${proxyPort}`;
|
|
108
112
|
});
|
|
109
113
|
const showNotification = (msg, options) => {
|
|
110
|
-
var
|
|
111
|
-
(_b = (
|
|
114
|
+
var _a2, _b;
|
|
115
|
+
(_b = (_a2 = widgetRef.value) == null ? void 0 : _a2.showNotification) == null ? void 0 : _b.call(_a2, msg, options);
|
|
112
116
|
};
|
|
113
117
|
const {
|
|
114
118
|
serviceStatus,
|
|
@@ -247,8 +251,8 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)({
|
|
|
247
251
|
}, 1e3);
|
|
248
252
|
}
|
|
249
253
|
const handleIframeMessage = (event) => {
|
|
250
|
-
var
|
|
251
|
-
if (((
|
|
254
|
+
var _a2;
|
|
255
|
+
if (((_a2 = event.data) == null ? void 0 : _a2.type) === "OPENCODE_READY") {
|
|
252
256
|
sendThemeToIframe();
|
|
253
257
|
}
|
|
254
258
|
};
|
|
@@ -271,12 +275,12 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)({
|
|
|
271
275
|
}
|
|
272
276
|
});
|
|
273
277
|
const handleSelectNode = (element) => {
|
|
274
|
-
var
|
|
278
|
+
var _a2;
|
|
275
279
|
const elementWithContext = __spreadProps(__spreadValues({}, element), {
|
|
276
280
|
previewPageUrl: window.location.href,
|
|
277
281
|
previewPageTitle: document.title
|
|
278
282
|
});
|
|
279
|
-
(
|
|
283
|
+
(_a2 = widgetRef.value) == null ? void 0 : _a2.sendMessageToIframe("OPENCODE_INSERT_FILE_PART", {
|
|
280
284
|
element: elementWithContext
|
|
281
285
|
});
|
|
282
286
|
showNotification(`\u8282\u70B9\u5DF2\u6DFB\u52A0\u5230\u5BF9\u8BDD\u6846`, { mode: "page" });
|
|
@@ -298,6 +302,9 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)({
|
|
|
298
302
|
const handleThemeChange = (val) => {
|
|
299
303
|
theme.value = val;
|
|
300
304
|
};
|
|
305
|
+
const handleSplitPanelWidthChange = (val) => {
|
|
306
|
+
splitPanelWidth.value = val;
|
|
307
|
+
};
|
|
301
308
|
const handleRemoveSelectedNode = ({ index }) => {
|
|
302
309
|
removeElement(index);
|
|
303
310
|
updateContext(true);
|
|
@@ -305,7 +312,7 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)({
|
|
|
305
312
|
const handleFrameLoaded = () => {
|
|
306
313
|
iframeLoading.value = false;
|
|
307
314
|
};
|
|
308
|
-
const __returned__ = { props, open, selectMode, sessionListCollapsed, loading, widgetRef, retryingWarmup, initialTheme, autoOpen, hotkey, proxyPort, proxyHost, widgetTheme, proxyBaseUrl, showNotification, serviceStatus, chromeMcpFailed, chromeMcpErrorType, chromeMcpErrorMessage, loadingText, updateStatusFromTask, setStarting, selectedElements, removeElement, clearElements, theme, sendThemeToIframe, sessions, loadingSessionList, currentSessionId, iframeSrc, iframeLoading, loadSessions, createSession, deleteSession, selectSession, updateSessionInfo, updateContext, serverSSE, opencodeSSE, thinking, sessionStates, showSessionListSkeleton, computedLoading, displayLoadingText, retryWarmup, ensureServicesStarted, handleToggle, handleSelectNode, handleClearSelected, handleSelectModeChange, handleSessionListCollapsedChange, handleThemeChange, handleRemoveSelectedNode, handleFrameLoaded, get OpenCodeWidget() {
|
|
315
|
+
const __returned__ = { props, open, selectMode, sessionListCollapsed, loading, widgetRef, retryingWarmup, initialTheme, autoOpen, hotkey, proxyPort, proxyHost, displayMode, splitMode, widgetTheme, splitPanelWidth, proxyBaseUrl, showNotification, serviceStatus, chromeMcpFailed, chromeMcpErrorType, chromeMcpErrorMessage, loadingText, updateStatusFromTask, setStarting, selectedElements, removeElement, clearElements, theme, sendThemeToIframe, sessions, loadingSessionList, currentSessionId, iframeSrc, iframeLoading, loadSessions, createSession, deleteSession, selectSession, updateSessionInfo, updateContext, serverSSE, opencodeSSE, thinking, sessionStates, showSessionListSkeleton, computedLoading, displayLoadingText, retryWarmup, ensureServicesStarted, handleToggle, handleSelectNode, handleClearSelected, handleSelectModeChange, handleSessionListCollapsedChange, handleThemeChange, handleSplitPanelWidthChange, handleRemoveSelectedNode, handleFrameLoaded, get OpenCodeWidget() {
|
|
309
316
|
return import_components.OpenCodeWidget;
|
|
310
317
|
}, LoadingContent: import_LoadingContent_vue.default, ChromeWarmupError: import_ChromeWarmupError_vue.default };
|
|
311
318
|
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
|
|
@@ -330,10 +337,14 @@ function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
330
337
|
"session-key": "id",
|
|
331
338
|
"hotkey-label": $setup.hotkey,
|
|
332
339
|
thinking: $setup.thinking,
|
|
340
|
+
"display-mode": $setup.displayMode,
|
|
341
|
+
"split-mode": $setup.splitMode,
|
|
342
|
+
"split-panel-width": $setup.splitPanelWidth,
|
|
333
343
|
"onUpdate:open": $setup.handleToggle,
|
|
334
344
|
"onUpdate:selectMode": $setup.handleSelectModeChange,
|
|
335
345
|
"onUpdate:sessionListCollapsed": $setup.handleSessionListCollapsedChange,
|
|
336
346
|
"onUpdate:theme": $setup.handleThemeChange,
|
|
347
|
+
"onUpdate:splitPanelWidth": $setup.handleSplitPanelWidthChange,
|
|
337
348
|
onToggleTheme: $setup.handleThemeChange,
|
|
338
349
|
onCreateSession: $setup.createSession,
|
|
339
350
|
onDeleteSession: $setup.deleteSession,
|
|
@@ -358,7 +369,7 @@ function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
358
369
|
]),
|
|
359
370
|
_: 1
|
|
360
371
|
/* STABLE */
|
|
361
|
-
}, 8, ["theme", "open", "select-mode", "session-list-collapsed", "frame-loading", "loading-session-list", "show-session-list-skeleton", "show-error", "iframe-src", "current-session-id", "sessions", "session-states", "hotkey-label", "thinking", "onCreateSession", "onDeleteSession", "onSelectSession", "onEmptyAction"]);
|
|
372
|
+
}, 8, ["theme", "open", "select-mode", "session-list-collapsed", "frame-loading", "loading-session-list", "show-session-list-skeleton", "show-error", "iframe-src", "current-session-id", "sessions", "session-states", "hotkey-label", "thinking", "display-mode", "split-mode", "split-panel-width", "onCreateSession", "onDeleteSession", "onSelectSession", "onEmptyAction"]);
|
|
362
373
|
}
|
|
363
374
|
__vue_sfc__.render = __vue_render__;
|
|
364
375
|
var App_vue_default = __vue_sfc__;
|