@hedgehog-finance/hedgehog-plugin 1.0.31 → 1.0.32

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.
@@ -21,6 +21,103 @@ function textFromContent(content) {
21
21
  .filter(Boolean)
22
22
  .join("");
23
23
  }
24
+ function textFromRecordFields(record, fields) {
25
+ for (const field of fields) {
26
+ const value = record[field];
27
+ if (typeof value === "string" && value.trim())
28
+ return value;
29
+ }
30
+ return "";
31
+ }
32
+ function textFromThinkingContent(content) {
33
+ if (!Array.isArray(content))
34
+ return "";
35
+ return content
36
+ .map((part) => {
37
+ if (!part || typeof part !== "object")
38
+ return "";
39
+ const record = part;
40
+ const type = typeof record.type === "string" ? record.type : "";
41
+ if (type !== "thinking" && type !== "reasoning")
42
+ return "";
43
+ return textFromRecordFields(record, ["text", "content", "reasoning", "thinking"]);
44
+ })
45
+ .filter(Boolean)
46
+ .join("\n");
47
+ }
48
+ function normalizeProcessText(text) {
49
+ return text.replace(/\s+/g, " ").trim();
50
+ }
51
+ function processTargetFromEntry(entry) {
52
+ const params = (entry.arguments || entry.args || entry.input);
53
+ const direct = textFromRecordFields(entry, ["title", "summary", "meta", "name"]);
54
+ if (direct)
55
+ return normalizeProcessText(direct);
56
+ if (params && typeof params === "object") {
57
+ return normalizeProcessText(textFromRecordFields(params, ["command", "url", "href", "path", "query", "q"]));
58
+ }
59
+ return "";
60
+ }
61
+ function processActionFromEntry(entry) {
62
+ const haystack = [entry.kind, entry.name, entry.title, entry.summary].filter(Boolean).join(" ").toLowerCase();
63
+ const params = (entry.arguments || entry.args || entry.input);
64
+ if (/\bcurl\b|fetch url|https?:\/\/|url/.test(haystack) || typeof params?.url === "string" || typeof params?.href === "string")
65
+ return "请求接口";
66
+ if (/\bread\b|读取/.test(haystack) || typeof params?.path === "string")
67
+ return "读取文件";
68
+ if (/\bexec\b|command|shell|bash/.test(haystack) || typeof params?.command === "string")
69
+ return "执行命令";
70
+ if (/\bpatch\b|apply/.test(haystack))
71
+ return "修改文件";
72
+ if (entry.type === "step")
73
+ return "执行步骤";
74
+ return "处理信息";
75
+ }
76
+ function processStatusFromEntry(entry) {
77
+ if (entry.status === "failed" || (typeof entry.exitCode === "number" && entry.exitCode !== 0))
78
+ return "失败";
79
+ if (entry.status === "running" || entry.phase === "start")
80
+ return "进行中";
81
+ if (entry.status === "completed" || entry.phase === "end" || entry.phase === "finish" || entry.exitCode === 0)
82
+ return "完成";
83
+ return typeof entry.status === "string" ? entry.status : "";
84
+ }
85
+ function isToolProcessEntry(entry) {
86
+ const type = typeof entry.type === "string" ? entry.type : "";
87
+ return (entry.kind === "tool" ||
88
+ type === "item_event" ||
89
+ type === "command_output" ||
90
+ type === "patch_summary" ||
91
+ /^tool(?:_|$)/.test(type));
92
+ }
93
+ function extractThinkingText(entry) {
94
+ const type = typeof entry.type === "string" ? entry.type : "";
95
+ if (type === "reasoning") {
96
+ return textFromRecordFields(entry, ["text", "reasoning_content", "reasoning"]);
97
+ }
98
+ const wrappedMessage = entry.message && typeof entry.message === "object" && !Array.isArray(entry.message)
99
+ ? entry.message
100
+ : entry;
101
+ const thinking = textFromRecordFields(wrappedMessage, ["thinking", "reasoning", "reasoning_content"]) || textFromThinkingContent(wrappedMessage.content);
102
+ if (thinking)
103
+ return thinking;
104
+ if (!isToolProcessEntry(entry))
105
+ return "";
106
+ if (type === "command_output" && typeof entry.output === "string" && !entry.title && !entry.summary && entry.exitCode === undefined && !entry.status) {
107
+ return "";
108
+ }
109
+ const action = processActionFromEntry(entry);
110
+ const target = processTargetFromEntry(entry);
111
+ const status = processStatusFromEntry(entry);
112
+ const subject = target ? `${action}:${target}` : action;
113
+ return status ? `${subject} / ${status}` : subject;
114
+ }
115
+ function collectThinking(entries) {
116
+ const lines = entries
117
+ .map((entry) => extractThinkingText(entry.raw).trim())
118
+ .filter(Boolean);
119
+ return lines.join("\n");
120
+ }
24
121
  function extractTranscriptMessage(entry, includeRaw) {
25
122
  if (!entry || typeof entry !== "object")
26
123
  return null;
@@ -32,6 +129,8 @@ function extractTranscriptMessage(entry, includeRaw) {
32
129
  if (!role)
33
130
  return null;
34
131
  const text = textFromContent(message.content) || textFromContent(message.text);
132
+ if (role === "assistant" && text.trim().length === 0)
133
+ return null;
35
134
  const id = typeof record.id === "string"
36
135
  ? record.id
37
136
  : typeof message.id === "string"
@@ -102,8 +201,10 @@ function selectInteraction(entries, limit, interactionId) {
102
201
  };
103
202
  }
104
203
  let startIndex = -1;
204
+ let startEntryIndex = -1;
105
205
  if (interactionId) {
106
206
  startIndex = messages.findIndex((message) => message.role === "user" && message.id === interactionId);
207
+ startEntryIndex = entries.findIndex((entry) => entry.message?.role === "user" && entry.message.id === interactionId);
107
208
  }
108
209
  if (startIndex < 0) {
109
210
  for (let index = messages.length - 1; index >= 0; index--) {
@@ -113,12 +214,25 @@ function selectInteraction(entries, limit, interactionId) {
113
214
  }
114
215
  }
115
216
  }
217
+ if (startEntryIndex < 0) {
218
+ for (let index = entries.length - 1; index >= 0; index--) {
219
+ if (entries[index].message?.role === "user") {
220
+ startEntryIndex = index;
221
+ break;
222
+ }
223
+ }
224
+ }
116
225
  const interaction = startIndex >= 0 ? messages.slice(startIndex) : messages.slice(-1);
226
+ const interactionEntries = startEntryIndex >= 0 ? entries.slice(startEntryIndex) : entries.slice(-1);
117
227
  const lastUserMessage = [...interaction].reverse().find((message) => message.role === "user");
118
228
  const lastAssistantMessage = [...interaction].reverse().find((message) => (message.role === "assistant" && message.text.trim().length > 0));
119
229
  const hasLifecycleComplete = entries.some((entry) => isTurnCompleteEntry(entry.raw, interactionId || lastUserMessage?.id));
230
+ const thinking = collectThinking(interactionEntries);
231
+ const messagesWithThinking = thinking && lastAssistantMessage
232
+ ? interaction.map((message) => message.id === lastAssistantMessage.id ? { ...message, thinking } : message)
233
+ : interaction;
120
234
  return {
121
- messages: interaction.slice(-limit),
235
+ messages: messagesWithThinking.slice(-limit),
122
236
  turnComplete: hasLifecycleComplete || Boolean(lastUserMessage && lastAssistantMessage),
123
237
  turnCompleteSource: hasLifecycleComplete ? "lifecycle" : lastUserMessage && lastAssistantMessage ? "messages" : "none",
124
238
  lastUserMessageId: lastUserMessage?.id || null,
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../../src/features/chatSessionHistory/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../../src/features/chatSessionHistory/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hedgehog-finance/hedgehog-plugin",
3
- "version": "1.0.31",
3
+ "version": "1.0.32",
4
4
  "description": "Hedgehog App WebSocket channel and Watchlist Tools for OpenClaw",
5
5
  "keywords": [
6
6
  "bot",
@@ -14,6 +14,7 @@ type TranscriptMessage = {
14
14
  id: string;
15
15
  role: "user" | "assistant" | "tool" | string;
16
16
  text: string;
17
+ thinking?: string;
17
18
  timestamp?: number | string;
18
19
  raw?: unknown;
19
20
  };
@@ -48,6 +49,102 @@ function textFromContent(content: unknown): string {
48
49
  .join("");
49
50
  }
50
51
 
52
+ function textFromRecordFields(record: Record<string, unknown>, fields: string[]): string {
53
+ for (const field of fields) {
54
+ const value = record[field];
55
+ if (typeof value === "string" && value.trim()) return value;
56
+ }
57
+ return "";
58
+ }
59
+
60
+ function textFromThinkingContent(content: unknown): string {
61
+ if (!Array.isArray(content)) return "";
62
+ return content
63
+ .map((part) => {
64
+ if (!part || typeof part !== "object") return "";
65
+ const record = part as Record<string, unknown>;
66
+ const type = typeof record.type === "string" ? record.type : "";
67
+ if (type !== "thinking" && type !== "reasoning") return "";
68
+ return textFromRecordFields(record, ["text", "content", "reasoning", "thinking"]);
69
+ })
70
+ .filter(Boolean)
71
+ .join("\n");
72
+ }
73
+
74
+ function normalizeProcessText(text: string) {
75
+ return text.replace(/\s+/g, " ").trim();
76
+ }
77
+
78
+ function processTargetFromEntry(entry: Record<string, unknown>) {
79
+ const params = (entry.arguments || entry.args || entry.input) as Record<string, unknown> | undefined;
80
+ const direct = textFromRecordFields(entry, ["title", "summary", "meta", "name"]);
81
+ if (direct) return normalizeProcessText(direct);
82
+ if (params && typeof params === "object") {
83
+ return normalizeProcessText(textFromRecordFields(params, ["command", "url", "href", "path", "query", "q"]));
84
+ }
85
+ return "";
86
+ }
87
+
88
+ function processActionFromEntry(entry: Record<string, unknown>) {
89
+ const haystack = [entry.kind, entry.name, entry.title, entry.summary].filter(Boolean).join(" ").toLowerCase();
90
+ const params = (entry.arguments || entry.args || entry.input) as Record<string, unknown> | undefined;
91
+ if (/\bcurl\b|fetch url|https?:\/\/|url/.test(haystack) || typeof params?.url === "string" || typeof params?.href === "string") return "请求接口";
92
+ if (/\bread\b|读取/.test(haystack) || typeof params?.path === "string") return "读取文件";
93
+ if (/\bexec\b|command|shell|bash/.test(haystack) || typeof params?.command === "string") return "执行命令";
94
+ if (/\bpatch\b|apply/.test(haystack)) return "修改文件";
95
+ if (entry.type === "step") return "执行步骤";
96
+ return "处理信息";
97
+ }
98
+
99
+ function processStatusFromEntry(entry: Record<string, unknown>) {
100
+ if (entry.status === "failed" || (typeof entry.exitCode === "number" && entry.exitCode !== 0)) return "失败";
101
+ if (entry.status === "running" || entry.phase === "start") return "进行中";
102
+ if (entry.status === "completed" || entry.phase === "end" || entry.phase === "finish" || entry.exitCode === 0) return "完成";
103
+ return typeof entry.status === "string" ? entry.status : "";
104
+ }
105
+
106
+ function isToolProcessEntry(entry: Record<string, unknown>) {
107
+ const type = typeof entry.type === "string" ? entry.type : "";
108
+ return (
109
+ entry.kind === "tool" ||
110
+ type === "item_event" ||
111
+ type === "command_output" ||
112
+ type === "patch_summary" ||
113
+ /^tool(?:_|$)/.test(type)
114
+ );
115
+ }
116
+
117
+ function extractThinkingText(entry: Record<string, unknown>) {
118
+ const type = typeof entry.type === "string" ? entry.type : "";
119
+ if (type === "reasoning") {
120
+ return textFromRecordFields(entry, ["text", "reasoning_content", "reasoning"]);
121
+ }
122
+
123
+ const wrappedMessage = entry.message && typeof entry.message === "object" && !Array.isArray(entry.message)
124
+ ? entry.message as Record<string, unknown>
125
+ : entry;
126
+ const thinking = textFromRecordFields(wrappedMessage, ["thinking", "reasoning", "reasoning_content"]) || textFromThinkingContent(wrappedMessage.content);
127
+ if (thinking) return thinking;
128
+
129
+ if (!isToolProcessEntry(entry)) return "";
130
+ if (type === "command_output" && typeof entry.output === "string" && !entry.title && !entry.summary && entry.exitCode === undefined && !entry.status) {
131
+ return "";
132
+ }
133
+
134
+ const action = processActionFromEntry(entry);
135
+ const target = processTargetFromEntry(entry);
136
+ const status = processStatusFromEntry(entry);
137
+ const subject = target ? `${action}:${target}` : action;
138
+ return status ? `${subject} / ${status}` : subject;
139
+ }
140
+
141
+ function collectThinking(entries: TranscriptEntry[]) {
142
+ const lines = entries
143
+ .map((entry) => extractThinkingText(entry.raw).trim())
144
+ .filter(Boolean);
145
+ return lines.join("\n");
146
+ }
147
+
51
148
  function extractTranscriptMessage(entry: unknown, includeRaw: boolean): TranscriptMessage | null {
52
149
  if (!entry || typeof entry !== "object") return null;
53
150
  const record = entry as Record<string, unknown>;
@@ -59,6 +156,7 @@ function extractTranscriptMessage(entry: unknown, includeRaw: boolean): Transcri
59
156
  if (!role) return null;
60
157
 
61
158
  const text = textFromContent(message.content) || textFromContent(message.text);
159
+ if (role === "assistant" && text.trim().length === 0) return null;
62
160
  const id = typeof record.id === "string"
63
161
  ? record.id
64
162
  : typeof message.id === "string"
@@ -135,8 +233,10 @@ function selectInteraction(entries: TranscriptEntry[], limit: number, interactio
135
233
  }
136
234
 
137
235
  let startIndex = -1;
236
+ let startEntryIndex = -1;
138
237
  if (interactionId) {
139
238
  startIndex = messages.findIndex((message) => message.role === "user" && message.id === interactionId);
239
+ startEntryIndex = entries.findIndex((entry) => entry.message?.role === "user" && entry.message.id === interactionId);
140
240
  }
141
241
 
142
242
  if (startIndex < 0) {
@@ -147,16 +247,29 @@ function selectInteraction(entries: TranscriptEntry[], limit: number, interactio
147
247
  }
148
248
  }
149
249
  }
250
+ if (startEntryIndex < 0) {
251
+ for (let index = entries.length - 1; index >= 0; index--) {
252
+ if (entries[index].message?.role === "user") {
253
+ startEntryIndex = index;
254
+ break;
255
+ }
256
+ }
257
+ }
150
258
 
151
259
  const interaction = startIndex >= 0 ? messages.slice(startIndex) : messages.slice(-1);
260
+ const interactionEntries = startEntryIndex >= 0 ? entries.slice(startEntryIndex) : entries.slice(-1);
152
261
  const lastUserMessage = [...interaction].reverse().find((message) => message.role === "user");
153
262
  const lastAssistantMessage = [...interaction].reverse().find((message) => (
154
263
  message.role === "assistant" && message.text.trim().length > 0
155
264
  ));
156
265
  const hasLifecycleComplete = entries.some((entry) => isTurnCompleteEntry(entry.raw, interactionId || lastUserMessage?.id));
266
+ const thinking = collectThinking(interactionEntries);
267
+ const messagesWithThinking = thinking && lastAssistantMessage
268
+ ? interaction.map((message) => message.id === lastAssistantMessage.id ? { ...message, thinking } : message)
269
+ : interaction;
157
270
 
158
271
  return {
159
- messages: interaction.slice(-limit),
272
+ messages: messagesWithThinking.slice(-limit),
160
273
  turnComplete: hasLifecycleComplete || Boolean(lastUserMessage && lastAssistantMessage),
161
274
  turnCompleteSource: hasLifecycleComplete ? "lifecycle" : lastUserMessage && lastAssistantMessage ? "messages" : "none",
162
275
  lastUserMessageId: lastUserMessage?.id || null,