@vite-plugin-opencode-assistant/opencode 1.0.9 → 1.0.11
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/plugins/page-context.js +78 -32
- package/lib/plugins/page-context.js +54 -8
- package/package.json +2 -2
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
const
|
|
2
|
-
var S = Object.defineProperty, N = Object.defineProperties,
|
|
1
|
+
const T = "[vite-plugin-opencode]";
|
|
2
|
+
var S = Object.defineProperty, N = Object.defineProperties, L = Object.getOwnPropertyDescriptors, b = Object.getOwnPropertySymbols, j = Object.prototype.hasOwnProperty, R = Object.prototype.propertyIsEnumerable, y = (e, t, r) => t in e ? S(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, m = (e, t) => {
|
|
3
3
|
for (var r in t || (t = {}))
|
|
4
|
-
|
|
4
|
+
j.call(t, r) && y(e, r, t[r]);
|
|
5
5
|
if (b)
|
|
6
6
|
for (var r of b(t))
|
|
7
|
-
R.call(t, r) &&
|
|
7
|
+
R.call(t, r) && y(e, r, t[r]);
|
|
8
8
|
return e;
|
|
9
|
-
},
|
|
9
|
+
}, g = (e, t) => N(e, L(t)), O = (e, t, r) => y(e, typeof t != "symbol" ? t + "" : t, r);
|
|
10
10
|
const u = {
|
|
11
11
|
reset: "\x1B[0m",
|
|
12
12
|
dim: "\x1B[2m",
|
|
@@ -33,11 +33,11 @@ let x = {
|
|
|
33
33
|
level: 1,
|
|
34
34
|
showTrace: !1
|
|
35
35
|
};
|
|
36
|
-
function
|
|
36
|
+
function U() {
|
|
37
37
|
const e = /* @__PURE__ */ new Date(), t = String(e.getHours()).padStart(2, "0"), r = String(e.getMinutes()).padStart(2, "0"), o = String(e.getSeconds()).padStart(2, "0"), i = String(e.getMilliseconds()).padStart(3, "0");
|
|
38
38
|
return `${t}:${r}:${o}.${i}`;
|
|
39
39
|
}
|
|
40
|
-
function
|
|
40
|
+
function B(e = 3) {
|
|
41
41
|
const t = new Error().stack;
|
|
42
42
|
if (!t) return "";
|
|
43
43
|
const o = t.split(`
|
|
@@ -65,7 +65,7 @@ ${e.stack}` : ""}`;
|
|
|
65
65
|
}
|
|
66
66
|
return String(e);
|
|
67
67
|
}
|
|
68
|
-
function
|
|
68
|
+
function M(e) {
|
|
69
69
|
if (!e || Object.keys(e).length === 0) return "";
|
|
70
70
|
const t = [];
|
|
71
71
|
e.module && t.push(`[${e.module}]`), e.operation && t.push(`(${e.operation})`), e.traceId && t.push(`trace:${e.traceId}`), e.duration !== void 0 && t.push(`${e.duration}ms`);
|
|
@@ -81,12 +81,12 @@ function k(e) {
|
|
|
81
81
|
function E(e, t, r, ...o) {
|
|
82
82
|
if (e < x.level) return;
|
|
83
83
|
const i = [];
|
|
84
|
-
i.push(`${u.dim}[${process.pid}]${u.reset}`), i.push(`${u.dim}${
|
|
84
|
+
i.push(`${u.dim}[${process.pid}]${u.reset}`), i.push(`${u.dim}${U()}${u.reset}`);
|
|
85
85
|
const p = A[e], n = I[e].padEnd(5);
|
|
86
|
-
i.push(`${p}${n}${u.reset}`), i.push(`${u.bright}${
|
|
87
|
-
const a =
|
|
86
|
+
i.push(`${p}${n}${u.reset}`), i.push(`${u.bright}${T}${u.reset}`);
|
|
87
|
+
const a = M(r);
|
|
88
88
|
if (a && i.push(`${u.magenta}${a}${u.reset}`), i.push(t), e >= 2) {
|
|
89
|
-
const c =
|
|
89
|
+
const c = B(4);
|
|
90
90
|
c && i.push(`${u.dim}(${c})${u.reset}`);
|
|
91
91
|
}
|
|
92
92
|
const s = o.map((c) => h(c)).join(" ");
|
|
@@ -112,39 +112,39 @@ const d = {
|
|
|
112
112
|
groupEnd() {
|
|
113
113
|
}
|
|
114
114
|
};
|
|
115
|
-
class
|
|
115
|
+
class k {
|
|
116
116
|
constructor(t, r) {
|
|
117
|
-
|
|
117
|
+
O(this, "startTime"), O(this, "context"), O(this, "operation"), this.operation = t, this.context = r || {}, this.startTime = performance.now(), d.debug(`⏱️ Starting: ${t}`, this.context);
|
|
118
118
|
}
|
|
119
119
|
end(t) {
|
|
120
120
|
const r = Math.round(performance.now() - this.startTime), o = t || `✓ Completed: ${this.operation}`;
|
|
121
|
-
return d.debug(o, m(
|
|
121
|
+
return d.debug(o, g(m({}, this.context), { duration: r })), r;
|
|
122
122
|
}
|
|
123
123
|
checkpoint(t) {
|
|
124
124
|
const r = Math.round(performance.now() - this.startTime);
|
|
125
|
-
return d.debug(` ↳ ${t}`, m(
|
|
125
|
+
return d.debug(` ↳ ${t}`, g(m({}, this.context), { duration: r })), r;
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
128
|
function D(e) {
|
|
129
129
|
return {
|
|
130
130
|
debug(t, r, ...o) {
|
|
131
|
-
d.debug(t, m(
|
|
131
|
+
d.debug(t, g(m({}, r), { module: e }), ...o);
|
|
132
132
|
},
|
|
133
133
|
info(t, r, ...o) {
|
|
134
|
-
d.info(t, m(
|
|
134
|
+
d.info(t, g(m({}, r), { module: e }), ...o);
|
|
135
135
|
},
|
|
136
136
|
warn(t, r, ...o) {
|
|
137
|
-
d.warn(t, m(
|
|
137
|
+
d.warn(t, g(m({}, r), { module: e }), ...o);
|
|
138
138
|
},
|
|
139
139
|
error(t, r, ...o) {
|
|
140
|
-
d.error(t, m(
|
|
140
|
+
d.error(t, g(m({}, r), { module: e }), ...o);
|
|
141
141
|
},
|
|
142
142
|
timer(t, r) {
|
|
143
|
-
return new
|
|
143
|
+
return new k(t, g(m({}, r), { module: e }));
|
|
144
144
|
}
|
|
145
145
|
};
|
|
146
146
|
}
|
|
147
|
-
const
|
|
147
|
+
const C = 1e4, F = "__OPENCODE_CONTEXT__", l = D("OpenCodePluginPageContext"), V = async () => {
|
|
148
148
|
l.info("PageContextPlugin loading...");
|
|
149
149
|
const e = process.env.OPENCODE_CONTEXT_API_URL;
|
|
150
150
|
if (l.debug("Context API URL:", { contextApiUrl: e }), !e)
|
|
@@ -198,7 +198,7 @@ const T = 1e4, F = "__OPENCODE_CONTEXT__", l = D("OpenCodePluginPageContext"), X
|
|
|
198
198
|
n.line && (c += `:${n.line}`, n.column && (c += `:${n.column}`)), s.push(`- **文件位置**: \`${c}\``);
|
|
199
199
|
}
|
|
200
200
|
if ((f = n.innerText) != null && f.trim()) {
|
|
201
|
-
const c = n.innerText.trim().substring(0,
|
|
201
|
+
const c = n.innerText.trim().substring(0, C), $ = n.innerText.length > C ? `
|
|
202
202
|
... (已省略部分内容)` : "";
|
|
203
203
|
s.push(`- **节点文本**:
|
|
204
204
|
\`\`\`text
|
|
@@ -231,14 +231,60 @@ ${c}${$}
|
|
|
231
231
|
"experimental.chat.system.transform": async (n, a) => {
|
|
232
232
|
l.debug("System transform hook called");
|
|
233
233
|
const s = `
|
|
234
|
-
|
|
235
|
-
在对话中,用户可能会自动附加他们当前正在浏览的页面上下文(包括页面 URL、标题以及在页面上选中的 DOM 节点信息)。
|
|
234
|
+
你是一个专业的前端开发助手,运行在 **OpenCode** 平台中,并通过 **vite-plugin-opencode-assistant** 插件集成到用户的 Vite 开发环境。
|
|
236
235
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
236
|
+
## 你的工作环境
|
|
237
|
+
|
|
238
|
+
### 架构说明
|
|
239
|
+
|
|
240
|
+
你运行在 OpenCode 服务端,但通过 **iframe 嵌入**的方式出现在用户正在开发的网页上:
|
|
241
|
+
|
|
242
|
+
\`\`\`
|
|
243
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
244
|
+
│ 用户正在开发的网页 (运行在 Vite Dev Server) │
|
|
245
|
+
│ ┌───────────────────────────────────────────────────────┐ │
|
|
246
|
+
│ │ 页面内容 │ │
|
|
247
|
+
│ │ │ │
|
|
248
|
+
│ │ ┌─────────────────────────────┐ │ │
|
|
249
|
+
│ │ │ OpenCode iframe (你的界面) │ ← 浮动聊天窗口 │ │
|
|
250
|
+
│ │ │ 用户在这里与你对话 │ (Ctrl+K 打开) │ │
|
|
251
|
+
│ │ └─────────────────────────────┘ │ │
|
|
252
|
+
│ └───────────────────────────────────────────────────────┘ │
|
|
253
|
+
└─────────────────────────────────────────────────────────────┘
|
|
254
|
+
\`\`\`
|
|
255
|
+
|
|
256
|
+
### 上下文感知机制
|
|
257
|
+
|
|
258
|
+
当用户与你对话时,系统会自动收集并注入以下页面上下文信息:
|
|
259
|
+
|
|
260
|
+
1. **页面信息**:用户当前浏览的页面 URL 和标题
|
|
261
|
+
2. **选中元素**:用户在页面上选中的 DOM 元素信息,包括:
|
|
262
|
+
- 源码文件路径(如 \`src/components/Button.tsx\`)
|
|
263
|
+
- 行号和列号(精确定位到代码位置)
|
|
264
|
+
- 元素的文本内容
|
|
265
|
+
|
|
266
|
+
这些信息由 Vite 插件通过内部 API 收集,并在用户发送消息时自动附加到消息前缀中。
|
|
267
|
+
|
|
268
|
+
## 上下文处理规则
|
|
269
|
+
|
|
270
|
+
当你在对话中看到类似以下格式的上下文信息时:
|
|
271
|
+
|
|
272
|
+
\`\`\`
|
|
273
|
+
【系统提示:以下是用户当前正在浏览的页面上下文...】
|
|
274
|
+
用户现在正在浏览项目中的这个页面:[页面标题](URL)
|
|
275
|
+
用户选中了以下节点:
|
|
276
|
+
### 选中节点 1
|
|
277
|
+
- **文件位置**: \`src/components/Button.tsx:42:10\`
|
|
278
|
+
- **节点文本**: ...
|
|
279
|
+
\`\`\`
|
|
280
|
+
|
|
281
|
+
请遵循以下规则:
|
|
282
|
+
|
|
283
|
+
1. **理解上下文**:将页面 URL、标题和选中节点信息作为用户请求的背景,帮助理解用户的真实意图。
|
|
284
|
+
2. **利用文件路径**:\`文件位置\` 中的路径对应项目源码文件,格式为 \`文件路径:行号:列号\`。你可以直接读取、分析或修改这些文件。
|
|
285
|
+
3. **精准定位**:结合 \`节点文本\` 和 \`文件位置\`,快速定位用户关注的具体代码位置,提供针对性的建议。
|
|
286
|
+
4. **直接行动**:针对用户的实际请求,直接给出清晰、可执行的方案。如果需要修改代码,主动提出修改方案并询问是否需要你直接修改。
|
|
287
|
+
5. **善用工具**:充分利用你的能力(读取文件、修改代码、运行命令、浏览器调试)来帮助用户解决问题。
|
|
242
288
|
`.trim();
|
|
243
289
|
a.system.push(s);
|
|
244
290
|
},
|
|
@@ -260,6 +306,6 @@ ${c}${$}
|
|
|
260
306
|
};
|
|
261
307
|
};
|
|
262
308
|
export {
|
|
263
|
-
|
|
264
|
-
|
|
309
|
+
V as PageContextPlugin,
|
|
310
|
+
V as default
|
|
265
311
|
};
|
|
@@ -155,14 +155,60 @@ ${text}${suffix}
|
|
|
155
155
|
"experimental.chat.system.transform": (_input, output) => __async(null, null, function* () {
|
|
156
156
|
log.debug("System transform hook called");
|
|
157
157
|
const systemPrompt = `
|
|
158
|
-
\u4F60\u662F\u4E00\u4E2A\u4E13\u4E1A\u7684\u524D\u7AEF\u5F00\u53D1\u52A9\u624B\uFF0C\
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
158
|
+
\u4F60\u662F\u4E00\u4E2A\u4E13\u4E1A\u7684\u524D\u7AEF\u5F00\u53D1\u52A9\u624B\uFF0C\u8FD0\u884C\u5728 **OpenCode** \u5E73\u53F0\u4E2D\uFF0C\u5E76\u901A\u8FC7 **vite-plugin-opencode-assistant** \u63D2\u4EF6\u96C6\u6210\u5230\u7528\u6237\u7684 Vite \u5F00\u53D1\u73AF\u5883\u3002
|
|
159
|
+
|
|
160
|
+
## \u4F60\u7684\u5DE5\u4F5C\u73AF\u5883
|
|
161
|
+
|
|
162
|
+
### \u67B6\u6784\u8BF4\u660E
|
|
163
|
+
|
|
164
|
+
\u4F60\u8FD0\u884C\u5728 OpenCode \u670D\u52A1\u7AEF\uFF0C\u4F46\u901A\u8FC7 **iframe \u5D4C\u5165**\u7684\u65B9\u5F0F\u51FA\u73B0\u5728\u7528\u6237\u6B63\u5728\u5F00\u53D1\u7684\u7F51\u9875\u4E0A\uFF1A
|
|
165
|
+
|
|
166
|
+
\`\`\`
|
|
167
|
+
\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510
|
|
168
|
+
\u2502 \u7528\u6237\u6B63\u5728\u5F00\u53D1\u7684\u7F51\u9875 (\u8FD0\u884C\u5728 Vite Dev Server) \u2502
|
|
169
|
+
\u2502 \u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2502
|
|
170
|
+
\u2502 \u2502 \u9875\u9762\u5185\u5BB9 \u2502 \u2502
|
|
171
|
+
\u2502 \u2502 \u2502 \u2502
|
|
172
|
+
\u2502 \u2502 \u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2502 \u2502
|
|
173
|
+
\u2502 \u2502 \u2502 OpenCode iframe (\u4F60\u7684\u754C\u9762) \u2502 \u2190 \u6D6E\u52A8\u804A\u5929\u7A97\u53E3 \u2502 \u2502
|
|
174
|
+
\u2502 \u2502 \u2502 \u7528\u6237\u5728\u8FD9\u91CC\u4E0E\u4F60\u5BF9\u8BDD \u2502 (Ctrl+K \u6253\u5F00) \u2502 \u2502
|
|
175
|
+
\u2502 \u2502 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2502 \u2502
|
|
176
|
+
\u2502 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2502
|
|
177
|
+
\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518
|
|
178
|
+
\`\`\`
|
|
179
|
+
|
|
180
|
+
### \u4E0A\u4E0B\u6587\u611F\u77E5\u673A\u5236
|
|
181
|
+
|
|
182
|
+
\u5F53\u7528\u6237\u4E0E\u4F60\u5BF9\u8BDD\u65F6\uFF0C\u7CFB\u7EDF\u4F1A\u81EA\u52A8\u6536\u96C6\u5E76\u6CE8\u5165\u4EE5\u4E0B\u9875\u9762\u4E0A\u4E0B\u6587\u4FE1\u606F\uFF1A
|
|
183
|
+
|
|
184
|
+
1. **\u9875\u9762\u4FE1\u606F**\uFF1A\u7528\u6237\u5F53\u524D\u6D4F\u89C8\u7684\u9875\u9762 URL \u548C\u6807\u9898
|
|
185
|
+
2. **\u9009\u4E2D\u5143\u7D20**\uFF1A\u7528\u6237\u5728\u9875\u9762\u4E0A\u9009\u4E2D\u7684 DOM \u5143\u7D20\u4FE1\u606F\uFF0C\u5305\u62EC\uFF1A
|
|
186
|
+
- \u6E90\u7801\u6587\u4EF6\u8DEF\u5F84\uFF08\u5982 \`src/components/Button.tsx\`\uFF09
|
|
187
|
+
- \u884C\u53F7\u548C\u5217\u53F7\uFF08\u7CBE\u786E\u5B9A\u4F4D\u5230\u4EE3\u7801\u4F4D\u7F6E\uFF09
|
|
188
|
+
- \u5143\u7D20\u7684\u6587\u672C\u5185\u5BB9
|
|
189
|
+
|
|
190
|
+
\u8FD9\u4E9B\u4FE1\u606F\u7531 Vite \u63D2\u4EF6\u901A\u8FC7\u5185\u90E8 API \u6536\u96C6\uFF0C\u5E76\u5728\u7528\u6237\u53D1\u9001\u6D88\u606F\u65F6\u81EA\u52A8\u9644\u52A0\u5230\u6D88\u606F\u524D\u7F00\u4E2D\u3002
|
|
191
|
+
|
|
192
|
+
## \u4E0A\u4E0B\u6587\u5904\u7406\u89C4\u5219
|
|
193
|
+
|
|
194
|
+
\u5F53\u4F60\u5728\u5BF9\u8BDD\u4E2D\u770B\u5230\u7C7B\u4F3C\u4EE5\u4E0B\u683C\u5F0F\u7684\u4E0A\u4E0B\u6587\u4FE1\u606F\u65F6\uFF1A
|
|
195
|
+
|
|
196
|
+
\`\`\`
|
|
197
|
+
\u3010\u7CFB\u7EDF\u63D0\u793A\uFF1A\u4EE5\u4E0B\u662F\u7528\u6237\u5F53\u524D\u6B63\u5728\u6D4F\u89C8\u7684\u9875\u9762\u4E0A\u4E0B\u6587...\u3011
|
|
198
|
+
\u7528\u6237\u73B0\u5728\u6B63\u5728\u6D4F\u89C8\u9879\u76EE\u4E2D\u7684\u8FD9\u4E2A\u9875\u9762\uFF1A[\u9875\u9762\u6807\u9898](URL)
|
|
199
|
+
\u7528\u6237\u9009\u4E2D\u4E86\u4EE5\u4E0B\u8282\u70B9\uFF1A
|
|
200
|
+
### \u9009\u4E2D\u8282\u70B9 1
|
|
201
|
+
- **\u6587\u4EF6\u4F4D\u7F6E**: \`src/components/Button.tsx:42:10\`
|
|
202
|
+
- **\u8282\u70B9\u6587\u672C**: ...
|
|
203
|
+
\`\`\`
|
|
204
|
+
|
|
205
|
+
\u8BF7\u9075\u5FAA\u4EE5\u4E0B\u89C4\u5219\uFF1A
|
|
206
|
+
|
|
207
|
+
1. **\u7406\u89E3\u4E0A\u4E0B\u6587**\uFF1A\u5C06\u9875\u9762 URL\u3001\u6807\u9898\u548C\u9009\u4E2D\u8282\u70B9\u4FE1\u606F\u4F5C\u4E3A\u7528\u6237\u8BF7\u6C42\u7684\u80CC\u666F\uFF0C\u5E2E\u52A9\u7406\u89E3\u7528\u6237\u7684\u771F\u5B9E\u610F\u56FE\u3002
|
|
208
|
+
2. **\u5229\u7528\u6587\u4EF6\u8DEF\u5F84**\uFF1A\`\u6587\u4EF6\u4F4D\u7F6E\` \u4E2D\u7684\u8DEF\u5F84\u5BF9\u5E94\u9879\u76EE\u6E90\u7801\u6587\u4EF6\uFF0C\u683C\u5F0F\u4E3A \`\u6587\u4EF6\u8DEF\u5F84:\u884C\u53F7:\u5217\u53F7\`\u3002\u4F60\u53EF\u4EE5\u76F4\u63A5\u8BFB\u53D6\u3001\u5206\u6790\u6216\u4FEE\u6539\u8FD9\u4E9B\u6587\u4EF6\u3002
|
|
209
|
+
3. **\u7CBE\u51C6\u5B9A\u4F4D**\uFF1A\u7ED3\u5408 \`\u8282\u70B9\u6587\u672C\` \u548C \`\u6587\u4EF6\u4F4D\u7F6E\`\uFF0C\u5FEB\u901F\u5B9A\u4F4D\u7528\u6237\u5173\u6CE8\u7684\u5177\u4F53\u4EE3\u7801\u4F4D\u7F6E\uFF0C\u63D0\u4F9B\u9488\u5BF9\u6027\u7684\u5EFA\u8BAE\u3002
|
|
210
|
+
4. **\u76F4\u63A5\u884C\u52A8**\uFF1A\u9488\u5BF9\u7528\u6237\u7684\u5B9E\u9645\u8BF7\u6C42\uFF0C\u76F4\u63A5\u7ED9\u51FA\u6E05\u6670\u3001\u53EF\u6267\u884C\u7684\u65B9\u6848\u3002\u5982\u679C\u9700\u8981\u4FEE\u6539\u4EE3\u7801\uFF0C\u4E3B\u52A8\u63D0\u51FA\u4FEE\u6539\u65B9\u6848\u5E76\u8BE2\u95EE\u662F\u5426\u9700\u8981\u4F60\u76F4\u63A5\u4FEE\u6539\u3002
|
|
211
|
+
5. **\u5584\u7528\u5DE5\u5177**\uFF1A\u5145\u5206\u5229\u7528\u4F60\u7684\u80FD\u529B\uFF08\u8BFB\u53D6\u6587\u4EF6\u3001\u4FEE\u6539\u4EE3\u7801\u3001\u8FD0\u884C\u547D\u4EE4\u3001\u6D4F\u89C8\u5668\u8C03\u8BD5\uFF09\u6765\u5E2E\u52A9\u7528\u6237\u89E3\u51B3\u95EE\u9898\u3002
|
|
166
212
|
`.trim();
|
|
167
213
|
output.system.push(systemPrompt);
|
|
168
214
|
}),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vite-plugin-opencode-assistant/opencode",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.11",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"execa": "^9.6.1",
|
|
25
|
-
"@vite-plugin-opencode-assistant/shared": "1.0.
|
|
25
|
+
"@vite-plugin-opencode-assistant/shared": "1.0.11"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@opencode-ai/plugin": "^1.3.15",
|