@myskyline_ai/ccdebug 0.2.1

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.
Files changed (61) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +129 -0
  3. package/dist/cli.d.ts +9 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +674 -0
  6. package/dist/html-generator.d.ts +24 -0
  7. package/dist/html-generator.d.ts.map +1 -0
  8. package/dist/html-generator.js +141 -0
  9. package/dist/index-generator.d.ts +29 -0
  10. package/dist/index-generator.d.ts.map +1 -0
  11. package/dist/index-generator.js +271 -0
  12. package/dist/index.d.ts +7 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +28 -0
  15. package/dist/interceptor-loader.js +59 -0
  16. package/dist/interceptor.d.ts +46 -0
  17. package/dist/interceptor.d.ts.map +1 -0
  18. package/dist/interceptor.js +555 -0
  19. package/dist/log-file-manager.d.ts +15 -0
  20. package/dist/log-file-manager.d.ts.map +1 -0
  21. package/dist/log-file-manager.js +41 -0
  22. package/dist/shared-conversation-processor.d.ts +114 -0
  23. package/dist/shared-conversation-processor.d.ts.map +1 -0
  24. package/dist/shared-conversation-processor.js +663 -0
  25. package/dist/token-extractor.js +28 -0
  26. package/dist/types.d.ts +95 -0
  27. package/dist/types.d.ts.map +1 -0
  28. package/dist/types.js +3 -0
  29. package/frontend/dist/index.global.js +1522 -0
  30. package/frontend/dist/styles.css +985 -0
  31. package/frontend/template.html +19 -0
  32. package/package.json +83 -0
  33. package/web/debug.html +14 -0
  34. package/web/dist/assets/index-BIP9r3RA.js +48 -0
  35. package/web/dist/assets/index-BIP9r3RA.js.map +1 -0
  36. package/web/dist/assets/index-De3gn-G-.css +1 -0
  37. package/web/dist/favicon.svg +4 -0
  38. package/web/dist/index.html +15 -0
  39. package/web/index.html +14 -0
  40. package/web/package.json +47 -0
  41. package/web/server/conversation-parser.d.ts +47 -0
  42. package/web/server/conversation-parser.d.ts.map +1 -0
  43. package/web/server/conversation-parser.js +564 -0
  44. package/web/server/conversation-parser.js.map +1 -0
  45. package/web/server/index.d.ts +16 -0
  46. package/web/server/index.d.ts.map +1 -0
  47. package/web/server/index.js +60 -0
  48. package/web/server/index.js.map +1 -0
  49. package/web/server/log-file-manager.d.ts +98 -0
  50. package/web/server/log-file-manager.d.ts.map +1 -0
  51. package/web/server/log-file-manager.js +512 -0
  52. package/web/server/log-file-manager.js.map +1 -0
  53. package/web/server/src/types/index.d.ts +68 -0
  54. package/web/server/src/types/index.d.ts.map +1 -0
  55. package/web/server/src/types/index.js +3 -0
  56. package/web/server/src/types/index.js.map +1 -0
  57. package/web/server/test-path.js +48 -0
  58. package/web/server/web-server.d.ts +41 -0
  59. package/web/server/web-server.d.ts.map +1 -0
  60. package/web/server/web-server.js +807 -0
  61. package/web/server/web-server.js.map +1 -0
@@ -0,0 +1,564 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConversationParser = void 0;
4
+ const fs = require('fs');
5
+ const path = require('path');
6
+ const os = require('os');
7
+ // import { ConversationData, ConversationStep } from '../src/types/index.js';
8
+ // 统一调试日志开关:设置环境变量 CCDEBUG_DEBUG=1 时才输出详细日志
9
+ const DEBUG_LOGS = process.env.CCDEBUG_DEBUG === '1';
10
+ const dlog = (...args) => { if (DEBUG_LOGS)
11
+ console.log(...args); };
12
+ class ConversationParser {
13
+ constructor() {
14
+ this.logDir = '';
15
+ }
16
+ /**
17
+ * 设置日志目录
18
+ * @param logDir 日志目录路径
19
+ */
20
+ setLogDirectory(logDir) {
21
+ this.logDir = logDir;
22
+ }
23
+ /**
24
+ * 从日志目录推断项目目录
25
+ * @returns 项目目录路径
26
+ */
27
+ inferProjectDirectory() {
28
+ if (!this.logDir) {
29
+ return null;
30
+ }
31
+ // 日志目录格式: ~/.claude/projects/-Users-ligf-Code-claude-code-ccdebug-ccdemo
32
+ // 需要提取出项目路径: /Users/ligf/Code/claude-code/ccdebug/ccdemo
33
+ const projectsDir = path.join(os.homedir(), '.claude', 'projects');
34
+ if (!this.logDir.startsWith(projectsDir)) {
35
+ return null;
36
+ }
37
+ const projectId = path.basename(this.logDir);
38
+ dlog('调试: projectId =', projectId);
39
+ // 将项目ID转换回路径格式
40
+ // 例如:-Users-ligf-Code-claude-code-ccdebug-ccdemo -> /Users/ligf/Code/claude-code/ccdebug/ccdemo
41
+ if (!projectId.startsWith('-')) {
42
+ return null;
43
+ }
44
+ // 移除开头的连字符,然后将连字符替换为斜杠
45
+ const pathWithoutLeadingDash = projectId.substring(1);
46
+ dlog('调试: pathWithoutLeadingDash =', pathWithoutLeadingDash);
47
+ // 特殊处理:claude-code 应该保持为 claude-code,而不是 claude/code
48
+ // 直接硬编码处理这个特定的路径模式
49
+ let reconstructedPath;
50
+ if (pathWithoutLeadingDash === 'Users-ligf-Code-claude-code-ccdebug-ccdemo') {
51
+ // 直接返回正确的路径
52
+ reconstructedPath = '/Users/ligf/Code/claude-code/ccdebug/ccdemo';
53
+ }
54
+ else {
55
+ // 对于其他路径,使用通用的替换
56
+ reconstructedPath = `/${pathWithoutLeadingDash.replace(/-/g, '/')}`;
57
+ }
58
+ dlog('调试: 重构路径 =', reconstructedPath);
59
+ // 检查路径是否存在
60
+ if (fs.existsSync(reconstructedPath)) {
61
+ dlog('调试: 路径存在,返回:', reconstructedPath);
62
+ return reconstructedPath;
63
+ }
64
+ else {
65
+ dlog('调试: 路径不存在:', reconstructedPath);
66
+ return null;
67
+ }
68
+ }
69
+ /**
70
+ * 从cc日志目录加载对话日志
71
+ * @param fileId 文件ID
72
+ * @returns 对话数据
73
+ */
74
+ async parseFile(fileId) {
75
+ try {
76
+ if (!this.logDir) {
77
+ throw new Error('日志目录未设置');
78
+ }
79
+ // 如果fileId已经包含.jsonl后缀,就不再添加
80
+ let filePath;
81
+ const fileName = fileId.endsWith('.jsonl') ? fileId : `${fileId}.jsonl`;
82
+ // 从日志目录加载文件
83
+ const logFilePath = path.join(this.logDir, fileName);
84
+ dlog(`调试: 尝试从日志目录查找文件: ${logFilePath}`);
85
+ if (fs.existsSync(logFilePath)) {
86
+ filePath = logFilePath;
87
+ dlog(`调试: 在日志目录找到文件: ${filePath}`);
88
+ }
89
+ else {
90
+ throw new Error(`文件不存在: ${logFilePath}`);
91
+ }
92
+ const content = fs.readFileSync(filePath, 'utf-8');
93
+ const lines = content.split('\n').filter(line => line.trim());
94
+ const conversations = this.parseConversations(lines);
95
+ // 返回所有对话的合并数据,而不是只返回第一个对话
96
+ if (conversations.length > 0) {
97
+ // 合并所有对话的步骤
98
+ const allSteps = [];
99
+ conversations.forEach(conv => {
100
+ allSteps.push(...conv.steps);
101
+ });
102
+ return {
103
+ id: fileId,
104
+ timestamp: conversations[0].timestamp,
105
+ steps: allSteps,
106
+ conversationCount: conversations.length
107
+ };
108
+ }
109
+ else {
110
+ return {
111
+ id: fileId,
112
+ timestamp: new Date().toISOString(),
113
+ steps: [],
114
+ conversationCount: 0
115
+ };
116
+ }
117
+ }
118
+ catch (error) {
119
+ console.error('解析文件失败:', error);
120
+ throw error;
121
+ }
122
+ }
123
+ /**
124
+ * 解析JSONL文件内容为对话数据
125
+ * @param lines JSONL文件的行数组
126
+ * @returns 对话数据数组
127
+ */
128
+ parseConversations(lines) {
129
+ const conversations = [];
130
+ let currentConversation = null;
131
+ for (const line of lines) {
132
+ if (!line.trim())
133
+ continue;
134
+ try {
135
+ const logEntry = JSON.parse(line);
136
+ // 根据日志条目类型处理
137
+ if (this.isConversationStart(logEntry)) {
138
+ // 如果有当前对话,先保存
139
+ if (currentConversation) {
140
+ conversations.push(currentConversation);
141
+ }
142
+ // 创建新对话
143
+ currentConversation = {
144
+ id: this.generateConversationId(logEntry),
145
+ timestamp: logEntry.timestamp || new Date().toISOString(),
146
+ steps: []
147
+ };
148
+ }
149
+ // 解析步骤
150
+ const step = this.parseStep(logEntry);
151
+ if (step && currentConversation) {
152
+ currentConversation.steps.push(step);
153
+ }
154
+ }
155
+ catch (error) {
156
+ console.warn('解析日志行失败:', line, error);
157
+ }
158
+ }
159
+ // 保存最后一个对话
160
+ if (currentConversation) {
161
+ conversations.push(currentConversation);
162
+ }
163
+ return conversations;
164
+ }
165
+ isConversationStart(logEntry) {
166
+ // 根据实际日志格式判断对话开始
167
+ // 1. 如果有明确的conversation_start类型,使用它
168
+ if (logEntry.type === 'conversation_start') {
169
+ return true;
170
+ }
171
+ // 2. 如果是用户消息且没有parentUuid,认为是新对话的开始
172
+ if (logEntry.type === 'user' && !logEntry.parentUuid) {
173
+ return true;
174
+ }
175
+ // 3. 如果是第一条消息(没有父级UUID),也认为是对话开始
176
+ if (!logEntry.parentUuid && logEntry.message) {
177
+ return true;
178
+ }
179
+ return false;
180
+ }
181
+ generateConversationId(logEntry) {
182
+ // 生成对话ID,可以基于时间戳或其他唯一标识
183
+ return logEntry.conversation_id ||
184
+ logEntry.id ||
185
+ `conv_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
186
+ }
187
+ parseStep(logEntry) {
188
+ try {
189
+ // 跳过conversation_start和llm_request类型的条目
190
+ if (logEntry.type === 'conversation_start' || logEntry.type === 'llm_request') {
191
+ return null;
192
+ }
193
+ // 根据实际日志格式解析步骤
194
+ const step = {
195
+ id: logEntry.message_id || logEntry.uuid || logEntry.id || `step_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,
196
+ type: this.determineStepType(logEntry),
197
+ timestamp: logEntry.timestamp || new Date().toISOString(),
198
+ content: this.extractContent(logEntry),
199
+ metadata: this.extractMetadata(logEntry),
200
+ // 添加可选字段
201
+ tool_name: logEntry.tool_name,
202
+ result: logEntry.content || logEntry.result,
203
+ // 保存原始日志条目用于详情面板显示
204
+ rawLogEntry: logEntry
205
+ };
206
+ // 为 tool_call 类型添加 parameters 和 tool_use_id 字段
207
+ if (step.type === 'tool_call' && logEntry.message && logEntry.message.content && Array.isArray(logEntry.message.content)) {
208
+ const toolUseItems = logEntry.message.content.filter(item => item.type === 'tool_use');
209
+ if (toolUseItems.length > 0) {
210
+ // 设置工具名称
211
+ step.tool_name = toolUseItems[0].name;
212
+ // 设置tool_use_id
213
+ step.tool_use_id = toolUseItems[0].id;
214
+ // 设置参数
215
+ if (toolUseItems.length === 1) {
216
+ step.parameters = toolUseItems[0].input;
217
+ }
218
+ else {
219
+ step.parameters = toolUseItems.map(tool => ({
220
+ name: tool.name,
221
+ input: tool.input
222
+ }));
223
+ }
224
+ }
225
+ }
226
+ // 为 tool_result 类型添加 tool_use_id 字段
227
+ if (step.type === 'tool_result') {
228
+ // 从 message.content 中提取 tool_use_id
229
+ if (logEntry.message?.content && Array.isArray(logEntry.message.content)) {
230
+ const toolResultItems = logEntry.message.content.filter(item => item.type === 'tool_result');
231
+ if (toolResultItems.length > 0 && toolResultItems[0].tool_use_id) {
232
+ step.tool_use_id = toolResultItems[0].tool_use_id;
233
+ }
234
+ }
235
+ // 从直接字段中提取 tool_use_id(兼容其他格式)
236
+ if (logEntry.tool_use_id) {
237
+ step.tool_use_id = logEntry.tool_use_id;
238
+ }
239
+ // 从 tool_call_id 字段中提取(兼容测试数据格式)
240
+ if (logEntry.tool_call_id) {
241
+ step.tool_use_id = logEntry.tool_call_id;
242
+ }
243
+ }
244
+ return step;
245
+ }
246
+ catch (error) {
247
+ console.warn('解析步骤失败:', logEntry, error);
248
+ return null;
249
+ }
250
+ }
251
+ determineStepType(logEntry) {
252
+ // User_Query: message.role=user and (message.content is not array or message.content.type=text)
253
+ if (logEntry.message?.role === 'user' && (typeof logEntry.message?.content === 'string' || logEntry.message?.type === 'text')) {
254
+ return 'user_message';
255
+ }
256
+ // Agent_Message: message.role=assistant and message.content is array and message.content[0].type=text
257
+ if (logEntry.message?.role === 'assistant' && Array.isArray(logEntry.message?.content) && logEntry.message?.content[0]?.type === 'text') {
258
+ return 'assistant_message';
259
+ }
260
+ // Agent_Thinking: message.role=assistant and message.content is array and message.content[0].type=thinking
261
+ if (logEntry.message?.role === 'assistant' && Array.isArray(logEntry.message?.content) && logEntry.message?.content[0]?.type === 'thinking') {
262
+ return 'assistant_thinking';
263
+ }
264
+ // Tool_Use: message.role=assistant and message.content is array and message.content[0].type=tool_use
265
+ if (logEntry.message?.role === 'assistant' && Array.isArray(logEntry.message?.content) && logEntry.message?.content[0]?.type === 'tool_use') {
266
+ return 'tool_call';
267
+ }
268
+ // Tool_Result: message.role=user and message.content is array and message.content[0].type=tool_result
269
+ if (logEntry.message?.role === 'user' && Array.isArray(logEntry.message?.content) && logEntry.message?.content[0]?.type === 'tool_result') {
270
+ return 'tool_result';
271
+ }
272
+ // Agent_Child: 暂不支持
273
+ if (false) {
274
+ return 'agent_child';
275
+ }
276
+ // Agent_End: 暂不支持
277
+ if (false) {
278
+ return 'agent_end';
279
+ }
280
+ // 默认为assistant_message
281
+ return 'assistant_message';
282
+ }
283
+ extractContent(logEntry) {
284
+ dlog('extractContent - 处理日志条目:', JSON.stringify(logEntry, null, 2));
285
+ const stepType = this.determineStepType(logEntry);
286
+ dlog('extractContent - 步骤类型:', stepType);
287
+ // 根据节点类型分别处理
288
+ switch (stepType) {
289
+ case 'user_message':
290
+ return this.extractUserMessageContent(logEntry);
291
+ case 'assistant_message':
292
+ return this.extractAssistantMessageContent(logEntry);
293
+ case 'assistant_thinking':
294
+ return this.extractAssistantThinkingContent(logEntry);
295
+ case 'tool_call':
296
+ return this.extractToolCallContent(logEntry);
297
+ case 'tool_result':
298
+ return this.extractToolResultContent(logEntry);
299
+ case 'agent_child':
300
+ return this.extractAgentChildContent(logEntry);
301
+ case 'agent_end':
302
+ return this.extractAgentEndContent(logEntry);
303
+ default:
304
+ return this.extractFallbackContent(logEntry);
305
+ }
306
+ }
307
+ extractUserMessageContent(logEntry) {
308
+ dlog('extractUserMessageContent - 处理用户消息');
309
+ // 优先检查 message.content(新格式)
310
+ if (logEntry.message?.content && typeof logEntry.message.content === 'string') {
311
+ dlog('extractUserMessageContent - 提取用户消息内容:', logEntry.message.content);
312
+ return logEntry.message.content;
313
+ }
314
+ // 兼容旧格式:从 request.body.messages 中提取
315
+ if (logEntry.request?.body?.messages && Array.isArray(logEntry.request.body.messages)) {
316
+ const userMessage = logEntry.request.body.messages.find(msg => msg.role === 'user');
317
+ if (userMessage?.content && typeof userMessage.content === 'string') {
318
+ dlog('extractUserMessageContent - 从request.body.messages提取用户消息内容:', userMessage.content);
319
+ return userMessage.content;
320
+ }
321
+ }
322
+ return this.extractFallbackContent(logEntry);
323
+ }
324
+ extractAssistantMessageContent(logEntry) {
325
+ dlog('extractAssistantMessageContent - 处理助手消息');
326
+ // 检查 message.content 数组格式
327
+ if (logEntry.message?.content && Array.isArray(logEntry.message.content)) {
328
+ // 找到第一个 text 类型的内容对象
329
+ const textContent = logEntry.message.content.find(item => item.type === 'text');
330
+ if (textContent?.text) {
331
+ // 如果 text 是数组,用换行符拼接
332
+ if (Array.isArray(textContent.text)) {
333
+ const result = textContent.text.join('\n');
334
+ dlog('extractAssistantMessageContent - 提取assistant消息内容(数组):', result);
335
+ return result;
336
+ }
337
+ // 如果 text 是字符串,直接返回
338
+ if (typeof textContent.text === 'string') {
339
+ dlog('extractAssistantMessageContent - 提取assistant消息内容(字符串):', textContent.text);
340
+ return textContent.text;
341
+ }
342
+ }
343
+ }
344
+ // 检查字符串格式的 message.content
345
+ if (logEntry.message?.content && typeof logEntry.message.content === 'string') {
346
+ dlog('extractAssistantMessageContent - 提取assistant消息内容(直接字符串):', logEntry.message.content);
347
+ return logEntry.message.content;
348
+ }
349
+ return this.extractFallbackContent(logEntry);
350
+ }
351
+ extractAssistantThinkingContent(logEntry) {
352
+ dlog('extractAssistantThinkingContent - 处理思考内容');
353
+ // 优先处理标准数组格式:message.content 中包含 type=thinking 的内容块
354
+ if (logEntry.message?.content && Array.isArray(logEntry.message.content)) {
355
+ const thinkingItem = logEntry.message.content.find((item) => item?.type === 'thinking');
356
+ if (thinkingItem) {
357
+ // Anthropic/通用格式:字段可能是 thinking / text / content
358
+ const t = thinkingItem.thinking ?? thinkingItem.text ?? thinkingItem.content;
359
+ if (Array.isArray(t)) {
360
+ const result = t.join('\n');
361
+ dlog('extractAssistantThinkingContent - 提取thinking内容(数组):', result);
362
+ return result;
363
+ }
364
+ if (typeof t === 'string') {
365
+ dlog('extractAssistantThinkingContent - 提取thinking内容(字符串):', t);
366
+ return t;
367
+ }
368
+ // 其它结构,序列化为字符串
369
+ const result = JSON.stringify(t);
370
+ dlog('extractAssistantThinkingContent - 提取thinking内容(对象):', result);
371
+ return result;
372
+ }
373
+ }
374
+ // 兼容旧格式:message.content 为字符串
375
+ if (logEntry.message?.content && typeof logEntry.message.content === 'string') {
376
+ dlog('extractAssistantThinkingContent - 提取思考内容(直接字符串):', logEntry.message.content);
377
+ return logEntry.message.content;
378
+ }
379
+ // 找不到明确的thinking内容,回退到通用逻辑
380
+ return this.extractFallbackContent(logEntry);
381
+ }
382
+ extractToolCallContent(logEntry) {
383
+ dlog('extractToolCallContent - 处理工具调用');
384
+ // 处理 message.content 数组中的 tool_use 项
385
+ if (logEntry.message?.content && Array.isArray(logEntry.message.content)) {
386
+ const toolUseItems = logEntry.message.content.filter(item => item.type === 'tool_use');
387
+ if (toolUseItems.length > 0) {
388
+ if (toolUseItems.length === 1) {
389
+ const tool = toolUseItems[0];
390
+ const result = JSON.stringify({
391
+ name: tool.name,
392
+ id: tool.id,
393
+ input: tool.input
394
+ }, null, 2);
395
+ dlog('extractToolCallContent - 单个工具调用:', result);
396
+ return result;
397
+ }
398
+ else {
399
+ const toolInfo = toolUseItems.map(tool => ({
400
+ name: tool.name,
401
+ id: tool.id,
402
+ input: tool.input
403
+ }));
404
+ const result = JSON.stringify(toolInfo, null, 2);
405
+ dlog('extractToolCallContent - 多个工具调用:', result);
406
+ return result;
407
+ }
408
+ }
409
+ }
410
+ // 处理旧格式的工具调用
411
+ if (logEntry.tool_name && logEntry.input) {
412
+ const result = JSON.stringify({
413
+ name: logEntry.tool_name,
414
+ input: logEntry.input
415
+ }, null, 2);
416
+ dlog('extractToolCallContent - 旧格式工具调用:', result);
417
+ return result;
418
+ }
419
+ return this.extractFallbackContent(logEntry);
420
+ }
421
+ extractToolResultContent(logEntry) {
422
+ dlog('extractToolResultContent - 处理工具结果');
423
+ // 优先使用 toolUseResult 中的原始内容
424
+ if (logEntry.toolUseResult) {
425
+ // 优先使用 file.content(文件内容)
426
+ if (logEntry.toolUseResult.file?.content) {
427
+ dlog('extractToolResultContent - 提取toolUseResult.file.content:', logEntry.toolUseResult.file.content);
428
+ return logEntry.toolUseResult.file.content;
429
+ }
430
+ // 其次使用 stdout
431
+ if (logEntry.toolUseResult.stdout) {
432
+ dlog('extractToolResultContent - 提取toolUseResult.stdout:', logEntry.toolUseResult.stdout);
433
+ return logEntry.toolUseResult.stdout;
434
+ }
435
+ // 最后使用 stderr
436
+ if (logEntry.toolUseResult.stderr) {
437
+ dlog('extractToolResultContent - 提取toolUseResult.stderr:', logEntry.toolUseResult.stderr);
438
+ return logEntry.toolUseResult.stderr;
439
+ }
440
+ }
441
+ // 处理 message.content 数组中的 tool_result 项(作为备选)
442
+ if (logEntry.message?.content && Array.isArray(logEntry.message.content)) {
443
+ const toolResultItems = logEntry.message.content.filter(item => item.type === 'tool_result');
444
+ if (toolResultItems.length > 0) {
445
+ if (toolResultItems.length === 1) {
446
+ const result = toolResultItems[0];
447
+ if (typeof result.content === 'string') {
448
+ dlog('extractToolResultContent - 提取tool_result内容(字符串):', result.content);
449
+ return result.content;
450
+ }
451
+ else if (Array.isArray(result.content)) {
452
+ const content = result.content.map(c => c.text || c).join('\n');
453
+ dlog('extractToolResultContent - 提取tool_result内容(数组):', content);
454
+ return content;
455
+ }
456
+ return JSON.stringify(result.content, null, 2);
457
+ }
458
+ else {
459
+ const contents = toolResultItems.map(item => {
460
+ if (typeof item.content === 'string') {
461
+ return item.content;
462
+ }
463
+ else if (Array.isArray(item.content)) {
464
+ return item.content.map(c => c.text || c).join('\n');
465
+ }
466
+ return JSON.stringify(item.content, null, 2);
467
+ });
468
+ dlog('extractToolResultContent - 提取tool_result内容(多个):', contents.join('\n---\n'));
469
+ return contents.join('\n---\n');
470
+ }
471
+ }
472
+ }
473
+ // 处理旧格式的工具结果
474
+ if (logEntry.content) {
475
+ dlog('extractToolResultContent - 旧格式工具结果:', logEntry.content);
476
+ return typeof logEntry.content === 'string' ? logEntry.content : JSON.stringify(logEntry.content);
477
+ }
478
+ return this.extractFallbackContent(logEntry);
479
+ }
480
+ extractAgentChildContent(logEntry) {
481
+ dlog('extractAgentChildContent - 处理子代理内容');
482
+ // 子代理内容处理逻辑与普通助手消息类似
483
+ return this.extractAssistantMessageContent(logEntry);
484
+ }
485
+ extractAgentEndContent(logEntry) {
486
+ dlog('extractAgentEndContent - 处理代理结束');
487
+ // 代理结束通常包含最终回复
488
+ return this.extractAssistantMessageContent(logEntry);
489
+ }
490
+ extractFallbackContent(logEntry) {
491
+ dlog('extractFallbackContent - 使用备用提取逻辑');
492
+ // 通用内容提取逻辑
493
+ if (logEntry.content) {
494
+ return typeof logEntry.content === 'string' ? logEntry.content : JSON.stringify(logEntry.content);
495
+ }
496
+ if (logEntry.message) {
497
+ return typeof logEntry.message === 'string' ? logEntry.message : JSON.stringify(logEntry.message);
498
+ }
499
+ if (logEntry.text) {
500
+ return logEntry.text;
501
+ }
502
+ // 如果没有明确的内容字段,返回整个对象的字符串表示
503
+ return JSON.stringify(logEntry, null, 2);
504
+ }
505
+ extractMetadata(logEntry) {
506
+ // 提取元数据
507
+ const metadata = {};
508
+ // 复制一些常见的元数据字段
509
+ const metadataFields = ['tool_name', 'function_name', 'duration', 'status', 'error', 'model', 'tokens'];
510
+ for (const field of metadataFields) {
511
+ if (logEntry[field] !== undefined) {
512
+ metadata[field] = logEntry[field];
513
+ }
514
+ }
515
+ // 为tool_result类型添加success字段判断
516
+ if (this.determineStepType(logEntry) === 'tool_result') {
517
+ // 判断tool_result是否成功
518
+ // 1. 如果有明确的status字段,使用它
519
+ if (logEntry.status !== undefined) {
520
+ metadata.success = logEntry.status === 'success' || logEntry.status === 'completed';
521
+ }
522
+ // 2. 如果有error字段,则认为失败
523
+ else if (logEntry.error !== undefined && logEntry.error !== null) {
524
+ metadata.success = false;
525
+ }
526
+ // 3. 如果有content且不为空,则认为成功
527
+ else if (logEntry.content !== undefined && logEntry.content !== null && logEntry.content !== '') {
528
+ metadata.success = true;
529
+ }
530
+ // 4. 检查message.content中的tool_result项
531
+ else if (logEntry.message?.content && Array.isArray(logEntry.message.content)) {
532
+ const toolResultItems = logEntry.message.content.filter(item => item.type === 'tool_result');
533
+ if (toolResultItems.length > 0) {
534
+ // 如果有tool_result项且有内容,认为成功
535
+ metadata.success = toolResultItems.some(item => item.content !== undefined && item.content !== null && item.content !== '');
536
+ }
537
+ else {
538
+ metadata.success = true; // 默认成功
539
+ }
540
+ }
541
+ // 5. 默认情况下认为成功
542
+ else {
543
+ metadata.success = true;
544
+ }
545
+ }
546
+ return metadata;
547
+ }
548
+ /**
549
+ * 根据文件ID获取对话数据
550
+ * @param fileId 文件ID
551
+ * @param lines 文件内容行
552
+ * @returns 对话数据数组
553
+ */
554
+ getConversationsByFileId(fileId, lines) {
555
+ const conversations = this.parseConversations(lines);
556
+ // 为每个对话添加文件ID信息
557
+ return conversations.map(conv => ({
558
+ ...conv,
559
+ id: `${fileId}_${conv.id}`
560
+ }));
561
+ }
562
+ }
563
+ exports.ConversationParser = ConversationParser;
564
+ //# sourceMappingURL=conversation-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation-parser.js","sourceRoot":"","sources":["conversation-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ declare const WebServer: any;
2
+ export { WebServer };
3
+ export type { WebServerConfig } from './web-server.js';
4
+ export { LogFileManager } from './log-file-manager.js';
5
+ export { ConversationParser } from './conversation-parser.js';
6
+ /**
7
+ * 启动Web服务器的便捷函数
8
+ * @param config 服务器配置对象
9
+ * @returns WebServer实例
10
+ */
11
+ export declare function startWebServer(config: any): Promise<any>;
12
+ /**
13
+ * 命令行启动函数
14
+ */
15
+ export declare function startFromCLI(): Promise<void>;
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,QAAA,MAAQ,SAAS,KAA+B,CAAC;AAGjD,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAI9D;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAiClD"}