@vegamo/loom 0.1.7 → 0.1.9

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 (41) hide show
  1. package/README.md +17 -0
  2. package/dist/agents/core/agent.d.ts.map +1 -1
  3. package/dist/agents/core/agent.js +67 -3
  4. package/dist/agents/core/agent.js.map +1 -1
  5. package/dist/agents/core/prompt.d.ts.map +1 -1
  6. package/dist/agents/core/prompt.js +5 -2
  7. package/dist/agents/core/prompt.js.map +1 -1
  8. package/dist/agents/core/types.d.ts +1 -1
  9. package/dist/agents/core/types.d.ts.map +1 -1
  10. package/dist/agents/memory/memory.d.ts +5 -0
  11. package/dist/agents/memory/memory.d.ts.map +1 -1
  12. package/dist/agents/memory/memory.js +7 -0
  13. package/dist/agents/memory/memory.js.map +1 -1
  14. package/dist/index.d.ts +1 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +30 -2
  17. package/dist/index.js.map +1 -1
  18. package/dist/llm/client.d.ts.map +1 -1
  19. package/dist/llm/client.js +16 -1
  20. package/dist/llm/client.js.map +1 -1
  21. package/dist/shared/update.d.ts +9 -0
  22. package/dist/shared/update.d.ts.map +1 -0
  23. package/dist/shared/update.js +231 -0
  24. package/dist/shared/update.js.map +1 -0
  25. package/dist/shared/version.d.ts +1 -0
  26. package/dist/shared/version.d.ts.map +1 -1
  27. package/dist/shared/version.js +26 -10
  28. package/dist/shared/version.js.map +1 -1
  29. package/dist/tui/app.js +2 -2
  30. package/dist/tui/app.js.map +1 -1
  31. package/dist/tui/components/Chat.js +1 -1
  32. package/dist/tui/components/Chat.js.map +1 -1
  33. package/dist/tui/components/StatusBar.d.ts +1 -1
  34. package/dist/tui/components/StatusBar.d.ts.map +1 -1
  35. package/dist/tui/components/StatusBar.js +29 -1
  36. package/dist/tui/components/StatusBar.js.map +1 -1
  37. package/dist/tui/hooks/useAgent.d.ts +10 -1
  38. package/dist/tui/hooks/useAgent.d.ts.map +1 -1
  39. package/dist/tui/hooks/useAgent.js +85 -49
  40. package/dist/tui/hooks/useAgent.js.map +1 -1
  41. package/package.json +1 -1
@@ -4,23 +4,39 @@
4
4
  * 封装 Agent 的交互逻辑,供 TUI 组件使用
5
5
  *
6
6
  * 能力:
7
- * - Streaming 逐字输出 (content_delta 实时追加到最后一条 assistant 消息)
7
+ * - Streaming 逐字输出 (content_delta 实时追加到当前 assistant 消息)
8
8
  * - Tool 调用进度可见
9
9
  * - 错误自动恢复
10
10
  * - 请求取消
11
+ *
12
+ * 关键不变量:
13
+ * - 我们用 currentAssistantIdRef 追踪"当前正在 streaming 的 assistant 消息"
14
+ * 而不是依赖"消息列表的最后一条". 工具调用会在两轮 LLM 调用之间插入
15
+ * tool_activity 消息, 让最后一条不再是 assistant — 此时如果按 last 索引
16
+ * 去 append/finalize 会静默丢弃 iteration 2+ 的内容.
11
17
  */
12
18
  import { useState, useCallback, useRef } from 'react';
13
19
  import { Agent } from '../../agents/core/agent.js';
20
+ let messageIdCounter = 0;
21
+ export function nextMessageId() {
22
+ messageIdCounter += 1;
23
+ return `msg-${Date.now()}-${messageIdCounter}`;
24
+ }
14
25
  export function useAgent(config) {
15
26
  const agentRef = useRef(null);
27
+ // 当前正在被 streaming 内容追加的 assistant 消息 id.
28
+ // tool_activity 插入后列表 last 不再是 assistant, 必须用 id 定位.
29
+ const currentAssistantIdRef = useRef(null);
16
30
  const [messages, setMessages] = useState([]);
17
31
  const [state, setState] = useState('idle');
18
32
  const [toolProgress, setToolProgress] = useState(null);
19
- // 添加消息的 helper
33
+ // 添加消息 — 返回新消息的 id (调用方可保存以便后续按 id 更新)
20
34
  const addMessage = useCallback((type, content, extra) => {
35
+ const id = extra?.id ?? nextMessageId();
21
36
  setMessages((prev) => [
22
37
  ...prev,
23
38
  {
39
+ id,
24
40
  type,
25
41
  content,
26
42
  toolName: extra?.toolName,
@@ -28,29 +44,27 @@ export function useAgent(config) {
28
44
  timestamp: new Date(),
29
45
  },
30
46
  ]);
47
+ return id;
31
48
  }, []);
32
- // 追加内容到最后一条 assistant 消息 (streaming)
33
- const appendToLastAssistant = useCallback((delta) => {
49
+ // id 追加内容到指定 assistant 消息 (streaming)
50
+ const appendToAssistant = useCallback((id, delta) => {
34
51
  setMessages((prev) => {
35
- const lastIdx = prev.length - 1;
36
- if (lastIdx < 0 || prev[lastIdx].type !== 'assistant')
52
+ const idx = prev.findIndex((m) => m.id === id);
53
+ if (idx < 0)
37
54
  return prev;
38
55
  const updated = [...prev];
39
- updated[lastIdx] = {
40
- ...updated[lastIdx],
41
- content: updated[lastIdx].content + delta,
42
- };
56
+ updated[idx] = { ...updated[idx], content: updated[idx].content + delta };
43
57
  return updated;
44
58
  });
45
59
  }, []);
46
- // 标记最后一条 assistant 消息 streaming 结束
47
- const finalizeLastAssistant = useCallback(() => {
60
+ // id 标记 assistant 消息 streaming 结束 (停止显示光标)
61
+ const finalizeAssistant = useCallback((id) => {
48
62
  setMessages((prev) => {
49
- const lastIdx = prev.length - 1;
50
- if (lastIdx < 0 || prev[lastIdx].type !== 'assistant')
63
+ const idx = prev.findIndex((m) => m.id === id);
64
+ if (idx < 0)
51
65
  return prev;
52
66
  const updated = [...prev];
53
- updated[lastIdx] = { ...updated[lastIdx], streaming: false };
67
+ updated[idx] = { ...updated[idx], streaming: false };
54
68
  return updated;
55
69
  });
56
70
  }, []);
@@ -68,9 +82,18 @@ export function useAgent(config) {
68
82
  }
69
83
  break;
70
84
  case 'content_delta':
71
- // Streaming 文本增量 → 追加到当前 assistant 消息
72
- if (event.delta) {
73
- appendToLastAssistant(event.delta);
85
+ // Streaming 文本增量 → 追加到当前 streaming 中的 assistant 消息
86
+ if (event.delta && currentAssistantIdRef.current) {
87
+ appendToAssistant(currentAssistantIdRef.current, event.delta);
88
+ }
89
+ break;
90
+ case 'tool_preparing':
91
+ // LLM 在 streaming 工具调用名 — 让用户看见"在干活", 不是卡死
92
+ if (event.tool) {
93
+ setToolProgress({
94
+ name: event.tool.name,
95
+ message: `Preparing ${event.tool.name}...`,
96
+ });
74
97
  }
75
98
  break;
76
99
  case 'tool_start':
@@ -93,7 +116,9 @@ export function useAgent(config) {
93
116
  setToolProgress(null);
94
117
  break;
95
118
  case 'reply_done':
96
- finalizeLastAssistant();
119
+ if (currentAssistantIdRef.current) {
120
+ finalizeAssistant(currentAssistantIdRef.current);
121
+ }
97
122
  break;
98
123
  case 'error':
99
124
  if (event.error) {
@@ -101,7 +126,7 @@ export function useAgent(config) {
101
126
  }
102
127
  break;
103
128
  }
104
- }, [appendToLastAssistant, finalizeLastAssistant, addMessage]);
129
+ }, [appendToAssistant, finalizeAssistant, addMessage]);
105
130
  // 懒初始化 Agent
106
131
  const getAgent = useCallback(() => {
107
132
  if (!agentRef.current) {
@@ -117,32 +142,30 @@ export function useAgent(config) {
117
142
  const agent = getAgent();
118
143
  // 添加用户消息
119
144
  addMessage('user', input);
120
- // 预创建一条空的 assistant 消息 (streaming 模式会逐字填充)
121
- addMessage('assistant', '', { streaming: true });
145
+ // 预创建一条空的 assistant 消息, 记下 id —
146
+ // 之后所有 content_delta / reply_done 都按这个 id 找回它,
147
+ // 不会被中途插入的 tool_activity 消息打乱.
148
+ const assistantId = nextMessageId();
149
+ currentAssistantIdRef.current = assistantId;
150
+ addMessage('assistant', '', { streaming: true, id: assistantId });
122
151
  try {
123
152
  const reply = await agent.chat(input);
124
- // Streaming 模式下内容已经通过 content_delta 逐字填入
125
- // 非 streaming 模式或 tool call 后的最终回复,需要直接设置内容
153
+ // 收尾:
154
+ // - 非 streaming 模式: content 没被 content_delta 填过, 用 reply.content 填
155
+ // - streaming 模式: content 已经填过了, 只需确保 streaming: false
126
156
  setMessages((prev) => {
127
- const lastIdx = prev.length - 1;
128
- if (lastIdx >= 0 && prev[lastIdx].type === 'assistant') {
129
- // 如果 streaming 已经填充了内容,不覆盖
130
- // 如果是空的 (非 streaming 或 tool call 后),填入完整回复
131
- if (!prev[lastIdx].content && reply.content) {
132
- const updated = [...prev];
133
- updated[lastIdx] = {
134
- ...updated[lastIdx],
135
- content: reply.content,
136
- streaming: false,
137
- };
138
- return updated;
139
- }
140
- // 标记 streaming 结束
141
- const updated = [...prev];
142
- updated[lastIdx] = { ...updated[lastIdx], streaming: false };
143
- return updated;
157
+ const idx = prev.findIndex((m) => m.id === assistantId);
158
+ if (idx < 0)
159
+ return prev;
160
+ const msg = prev[idx];
161
+ const updated = [...prev];
162
+ if (!msg.content && reply.content) {
163
+ updated[idx] = { ...msg, content: reply.content, streaming: false };
144
164
  }
145
- return prev;
165
+ else {
166
+ updated[idx] = { ...msg, streaming: false };
167
+ }
168
+ return updated;
146
169
  });
147
170
  // 如果生成了 schema 文件,追加提示
148
171
  if (reply.schemasGenerated.length > 0) {
@@ -151,25 +174,38 @@ export function useAgent(config) {
151
174
  }
152
175
  catch (err) {
153
176
  const errorMsg = err instanceof Error ? err.message : 'Unknown error occurred';
154
- // 如果预创建的 assistant 消息还是空的,移除它
177
+ // 如果预创建的 assistant 消息还是空的, 移除它
155
178
  setMessages((prev) => {
156
- const lastIdx = prev.length - 1;
157
- if (lastIdx >= 0 &&
158
- prev[lastIdx].type === 'assistant' &&
159
- !prev[lastIdx].content) {
160
- return prev.slice(0, -1);
179
+ const idx = prev.findIndex((m) => m.id === assistantId);
180
+ if (idx >= 0 && !prev[idx].content) {
181
+ return prev.filter((_, i) => i !== idx);
182
+ }
183
+ // 还是要把 streaming 关掉, 不然光标永远转
184
+ if (idx >= 0) {
185
+ const updated = [...prev];
186
+ updated[idx] = { ...prev[idx], streaming: false };
187
+ return updated;
161
188
  }
162
189
  return prev;
163
190
  });
164
191
  addMessage('error', errorMsg);
165
192
  setState('error');
166
193
  }
194
+ finally {
195
+ currentAssistantIdRef.current = null;
196
+ }
167
197
  }, [getAgent, addMessage]);
168
198
  const abort = useCallback(() => {
169
199
  agentRef.current?.abort();
170
- }, []);
200
+ // abort 时确保 streaming 光标停掉, 不然 spinner 永远转
201
+ if (currentAssistantIdRef.current) {
202
+ finalizeAssistant(currentAssistantIdRef.current);
203
+ currentAssistantIdRef.current = null;
204
+ }
205
+ }, [finalizeAssistant]);
171
206
  const reset = useCallback(() => {
172
207
  agentRef.current?.reset();
208
+ currentAssistantIdRef.current = null;
173
209
  setMessages([]);
174
210
  setState('idle');
175
211
  setToolProgress(null);
@@ -1 +1 @@
1
- {"version":3,"file":"useAgent.js","sourceRoot":"","sources":["../../../src/tui/hooks/useAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAgent.js","sourceRoot":"","sources":["../../../src/tui/hooks/useAgent.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vegamo/loom",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
4
4
  "description": "AI-powered JSON Schema document generator with TUI, web viewer and mock server",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",