@vite-plugin-opencode-assistant/opencode 1.0.62 → 1.0.64
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.
|
@@ -35,8 +35,13 @@ function detectLogLevel(line) {
|
|
|
35
35
|
}
|
|
36
36
|
function parseLogTimestamp(line) {
|
|
37
37
|
const timestampPatterns = [
|
|
38
|
+
/(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}[+-]\d{2}:\d{2})/,
|
|
38
39
|
/(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z?)/,
|
|
40
|
+
/(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z)/,
|
|
39
41
|
/(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})/,
|
|
42
|
+
/(\d{2}\/\w{3}\/\d{4}:\d{2}:\d{2}:\d{2} [+-]\d{4})/,
|
|
43
|
+
/(\d{2}\/\d{2}\/\d{4},\s*\d{1,2}:\d{2}:\d{2}\s*(?:AM|PM))/i,
|
|
44
|
+
/([A-Z]{3}, \d{2} \w{3} \d{4} \d{2}:\d{2}:\d{2} GMT)/,
|
|
40
45
|
/(\[([^\]]+)\])/
|
|
41
46
|
];
|
|
42
47
|
for (const pattern of timestampPatterns) {
|
|
@@ -179,28 +184,29 @@ ${logFileConfig.description}
|
|
|
179
184
|
sessionID: context.sessionID,
|
|
180
185
|
directory: context.directory
|
|
181
186
|
});
|
|
187
|
+
const requestedLimit = limit ?? 50;
|
|
182
188
|
const entries = await readLogFileTail({
|
|
183
189
|
name: logFileConfig.name,
|
|
184
190
|
filePath: logFileConfig.path,
|
|
185
191
|
projectRoot: process.cwd(),
|
|
186
|
-
lines:
|
|
192
|
+
lines: Math.max(requestedLimit * 3, 500),
|
|
187
193
|
level: level ? level.split(",").map((l) => l.trim()) : void 0,
|
|
188
|
-
since
|
|
194
|
+
since,
|
|
195
|
+
limit: requestedLimit
|
|
189
196
|
});
|
|
190
|
-
|
|
191
|
-
if (filteredEntries.length === 0) {
|
|
197
|
+
if (entries.length === 0) {
|
|
192
198
|
return `当前没有符合条件的日志。
|
|
193
199
|
|
|
194
200
|
建议:
|
|
195
201
|
- 不指定参数获取所有日志
|
|
196
202
|
- 使用 level=error,warn 获取错误和警告`;
|
|
197
203
|
}
|
|
198
|
-
const formattedLogs =
|
|
204
|
+
const formattedLogs = entries.map((entry) => {
|
|
199
205
|
const time = new Date(entry.timestamp).toLocaleTimeString();
|
|
200
206
|
const levelIcon = entry.level === "error" ? "❌" : entry.level === "warn" ? "⚠️" : "ℹ️";
|
|
201
207
|
return `${time} ${levelIcon} ${entry.message}`;
|
|
202
208
|
}).join("\n");
|
|
203
|
-
return `${logFileConfig.name} 日志(${
|
|
209
|
+
return `${logFileConfig.name} 日志(${entries.length} 条):
|
|
204
210
|
|
|
205
211
|
${formattedLogs}`;
|
|
206
212
|
}
|
|
@@ -70,28 +70,29 @@ ${logFileConfig.description}
|
|
|
70
70
|
sessionID: context.sessionID,
|
|
71
71
|
directory: context.directory
|
|
72
72
|
});
|
|
73
|
+
const requestedLimit = limit != null ? limit : 50;
|
|
73
74
|
const entries = yield readLogFileTail({
|
|
74
75
|
name: logFileConfig.name,
|
|
75
76
|
filePath: logFileConfig.path,
|
|
76
77
|
projectRoot: process.cwd(),
|
|
77
|
-
lines:
|
|
78
|
+
lines: Math.max(requestedLimit * 3, 500),
|
|
78
79
|
level: level ? level.split(",").map((l) => l.trim()) : void 0,
|
|
79
|
-
since
|
|
80
|
+
since,
|
|
81
|
+
limit: requestedLimit
|
|
80
82
|
});
|
|
81
|
-
|
|
82
|
-
if (filteredEntries.length === 0) {
|
|
83
|
+
if (entries.length === 0) {
|
|
83
84
|
return `\u5F53\u524D\u6CA1\u6709\u7B26\u5408\u6761\u4EF6\u7684\u65E5\u5FD7\u3002
|
|
84
85
|
|
|
85
86
|
\u5EFA\u8BAE\uFF1A
|
|
86
87
|
- \u4E0D\u6307\u5B9A\u53C2\u6570\u83B7\u53D6\u6240\u6709\u65E5\u5FD7
|
|
87
88
|
- \u4F7F\u7528 level=error,warn \u83B7\u53D6\u9519\u8BEF\u548C\u8B66\u544A`;
|
|
88
89
|
}
|
|
89
|
-
const formattedLogs =
|
|
90
|
+
const formattedLogs = entries.map((entry) => {
|
|
90
91
|
const time = new Date(entry.timestamp).toLocaleTimeString();
|
|
91
92
|
const levelIcon = entry.level === "error" ? "\u274C" : entry.level === "warn" ? "\u26A0\uFE0F" : "\u2139\uFE0F";
|
|
92
93
|
return `${time} ${levelIcon} ${entry.message}`;
|
|
93
94
|
}).join("\n");
|
|
94
|
-
return `${logFileConfig.name} \u65E5\u5FD7\uFF08${
|
|
95
|
+
return `${logFileConfig.name} \u65E5\u5FD7\uFF08${entries.length} \u6761\uFF09\uFF1A
|
|
95
96
|
|
|
96
97
|
${formattedLogs}`;
|
|
97
98
|
});
|
|
@@ -93,28 +93,29 @@ ${logFileConfig.description}
|
|
|
93
93
|
sessionID: context.sessionID,
|
|
94
94
|
directory: context.directory
|
|
95
95
|
});
|
|
96
|
+
const requestedLimit = limit != null ? limit : 50;
|
|
96
97
|
const entries = yield (0, import_shared.readLogFileTail)({
|
|
97
98
|
name: logFileConfig.name,
|
|
98
99
|
filePath: logFileConfig.path,
|
|
99
100
|
projectRoot: process.cwd(),
|
|
100
|
-
lines:
|
|
101
|
+
lines: Math.max(requestedLimit * 3, 500),
|
|
101
102
|
level: level ? level.split(",").map((l) => l.trim()) : void 0,
|
|
102
|
-
since
|
|
103
|
+
since,
|
|
104
|
+
limit: requestedLimit
|
|
103
105
|
});
|
|
104
|
-
|
|
105
|
-
if (filteredEntries.length === 0) {
|
|
106
|
+
if (entries.length === 0) {
|
|
106
107
|
return `\u5F53\u524D\u6CA1\u6709\u7B26\u5408\u6761\u4EF6\u7684\u65E5\u5FD7\u3002
|
|
107
108
|
|
|
108
109
|
\u5EFA\u8BAE\uFF1A
|
|
109
110
|
- \u4E0D\u6307\u5B9A\u53C2\u6570\u83B7\u53D6\u6240\u6709\u65E5\u5FD7
|
|
110
111
|
- \u4F7F\u7528 level=error,warn \u83B7\u53D6\u9519\u8BEF\u548C\u8B66\u544A`;
|
|
111
112
|
}
|
|
112
|
-
const formattedLogs =
|
|
113
|
+
const formattedLogs = entries.map((entry) => {
|
|
113
114
|
const time = new Date(entry.timestamp).toLocaleTimeString();
|
|
114
115
|
const levelIcon = entry.level === "error" ? "\u274C" : entry.level === "warn" ? "\u26A0\uFE0F" : "\u2139\uFE0F";
|
|
115
116
|
return `${time} ${levelIcon} ${entry.message}`;
|
|
116
117
|
}).join("\n");
|
|
117
|
-
return `${logFileConfig.name} \u65E5\u5FD7\uFF08${
|
|
118
|
+
return `${logFileConfig.name} \u65E5\u5FD7\uFF08${entries.length} \u6761\uFF09\uFF1A
|
|
118
119
|
|
|
119
120
|
${formattedLogs}`;
|
|
120
121
|
});
|
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.64",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "lib/index.cjs",
|
|
6
6
|
"module": "es/index.mjs",
|
|
@@ -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.64"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@opencode-ai/plugin": "^1.3.15",
|