@vite-plugin-opencode-assistant/opencode 1.0.62 → 1.0.63

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: limit ? Math.max(limit, 200) : 200,
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
- const filteredEntries = entries.slice(0, limit ?? 50);
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 = filteredEntries.map((entry) => {
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} 日志(${filteredEntries.length} 条):
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: limit ? Math.max(limit, 200) : 200,
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
- const filteredEntries = entries.slice(0, limit != null ? limit : 50);
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 = filteredEntries.map((entry) => {
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${filteredEntries.length} \u6761\uFF09\uFF1A
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: limit ? Math.max(limit, 200) : 200,
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
- const filteredEntries = entries.slice(0, limit != null ? limit : 50);
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 = filteredEntries.map((entry) => {
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${filteredEntries.length} \u6761\uFF09\uFF1A
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.62",
3
+ "version": "1.0.63",
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.62"
25
+ "@vite-plugin-opencode-assistant/shared": "1.0.63"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@opencode-ai/plugin": "^1.3.15",