@vegamo/loom 0.1.6 → 0.1.8

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 +12 -3
  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.js +5 -5
  15. package/dist/index.js.map +1 -1
  16. package/dist/llm/client.d.ts.map +1 -1
  17. package/dist/llm/client.js +17 -2
  18. package/dist/llm/client.js.map +1 -1
  19. package/dist/shared/config-wizard.d.ts +1 -1
  20. package/dist/shared/config-wizard.d.ts.map +1 -1
  21. package/dist/shared/config-wizard.js +11 -12
  22. package/dist/shared/config-wizard.js.map +1 -1
  23. package/dist/shared/config.d.ts +15 -10
  24. package/dist/shared/config.d.ts.map +1 -1
  25. package/dist/shared/config.js +29 -15
  26. package/dist/shared/config.js.map +1 -1
  27. package/dist/shared/types.d.ts +1 -1
  28. package/dist/shared/types.d.ts.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
@@ -1,8 +1,9 @@
1
1
  /**
2
2
  * 全局配置加载
3
3
  *
4
- * 优先级: CLI 参数 > loom.config.json > 默认值
4
+ * 优先级: CLI 参数 > 全局配置文件 > 默认值
5
5
  */
6
+ import os from 'node:os';
6
7
  import path from 'node:path';
7
8
  import fs from 'node:fs';
8
9
  /** 默认配置 */
@@ -20,11 +21,24 @@ export const DEFAULT_CONFIG = {
20
21
  port: 3001,
21
22
  },
22
23
  };
23
- /** 配置文件名 */
24
- export const CONFIG_FILENAME = 'loom.config.json';
25
- export function getConfigPath(projectDir) {
26
- const dir = projectDir || process.cwd();
27
- return path.resolve(dir, CONFIG_FILENAME);
24
+ /**
25
+ * 获取全局配置路径
26
+ *
27
+ * 优先级:
28
+ * 1) LOOM_CONFIG 环境变量
29
+ * 2) Windows: %APPDATA%/loom/config.json
30
+ * 3) macOS/Linux: ~/.loom/config.json
31
+ */
32
+ export function getGlobalConfigPath() {
33
+ const override = process.env.LOOM_CONFIG?.trim();
34
+ if (override) {
35
+ return path.resolve(override);
36
+ }
37
+ if (process.platform === 'win32') {
38
+ const appData = process.env.APPDATA?.trim() || path.join(os.homedir(), 'AppData', 'Roaming');
39
+ return path.join(appData, 'loom', 'config.json');
40
+ }
41
+ return path.join(os.homedir(), '.loom', 'config.json');
28
42
  }
29
43
  /**
30
44
  * 读取配置文件 (仅文件内容,不做默认值合并)
@@ -32,8 +46,8 @@ export function getConfigPath(projectDir) {
32
46
  * @returns null 表示文件不存在
33
47
  * @throws JSON 解析异常
34
48
  */
35
- export function readRawConfig(projectDir) {
36
- const configPath = getConfigPath(projectDir);
49
+ export function readRawConfig() {
50
+ const configPath = getGlobalConfigPath();
37
51
  if (!fs.existsSync(configPath)) {
38
52
  return null;
39
53
  }
@@ -41,18 +55,18 @@ export function readRawConfig(projectDir) {
41
55
  return JSON.parse(raw);
42
56
  }
43
57
  /**
44
- * 将配置写回 loom.config.json
58
+ * 将配置写回全局配置文件
45
59
  */
46
- export function writeConfig(projectDir, config) {
47
- const configPath = getConfigPath(projectDir);
60
+ export function writeConfig(config) {
61
+ const configPath = getGlobalConfigPath();
62
+ fs.mkdirSync(path.dirname(configPath), { recursive: true });
48
63
  fs.writeFileSync(configPath, `${JSON.stringify(config, null, 2)}\n`, 'utf-8');
49
64
  }
50
65
  /**
51
- * 从目标项目目录加载配置
52
- * @param projectDir 目标项目根目录 (默认 process.cwd())
66
+ * 加载全局配置并合并默认值
53
67
  */
54
- export function loadConfig(projectDir) {
55
- const fileConfig = readRawConfig(projectDir) ?? {};
68
+ export function loadConfig() {
69
+ const fileConfig = readRawConfig() ?? {};
56
70
  // 深度合并: 默认值 + 文件配置
57
71
  return mergeConfig(DEFAULT_CONFIG, fileConfig);
58
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB,WAAW;AACX,MAAM,CAAC,MAAM,cAAc,GAAe;IACxC,MAAM,EAAE,MAAM;IACd,GAAG,EAAE;QACH,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE,6BAA6B;KACvC;IACD,KAAK,EAAE;QACL,IAAI,EAAE,IAAI;KACX;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI;KACX;CACF,CAAC;AAEF,YAAY;AACZ,MAAM,CAAC,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAElD,MAAM,UAAU,aAAa,CAAC,UAAmB;IAC/C,MAAM,GAAG,GAAG,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACxC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,UAAmB;IAC/C,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAwB,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,UAA8B,EAAE,MAAkB;IAC5E,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC7C,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAChF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,UAAmB;IAC5C,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAEnD,mBAAmB;IACnB,OAAO,WAAW,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,MAAkB,EAAE,UAAmB;IAC/D,MAAM,GAAG,GAAG,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACxC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAClB,QAAoB,EACpB,SAA8B;IAE9B,OAAO;QACL,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM;QAC3C,GAAG,EAAE,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,EAAE;QAC1C,KAAK,EAAE,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE;QAChD,IAAI,EAAE,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE;KAC9C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ export interface MockConfig {
20
20
  port: number;
21
21
  host?: string;
22
22
  }
23
- /** loom.config.json 完整配置 */
23
+ /** Loom 全局配置 */
24
24
  export interface LoomConfig {
25
25
  /** schema 文件输出目录 (相对于目标项目根目录) */
26
26
  outDir: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
package/dist/tui/app.js CHANGED
@@ -11,7 +11,7 @@ import { Chat } from './components/Chat.js';
11
11
  import { Input } from './components/Input.js';
12
12
  import { StatusBar } from './components/StatusBar.js';
13
13
  import { SchemaPreview } from './components/SchemaPreview.js';
14
- import { useAgent } from './hooks/useAgent.js';
14
+ import { useAgent, nextMessageId } from './hooks/useAgent.js';
15
15
  import { listSchemaFiles } from '../shared/schema-utils.js';
16
16
  import { getOutDir } from '../shared/config.js';
17
17
  import { generateRequirement } from '../shared/requirement.js';
@@ -81,7 +81,7 @@ export const App = ({ agentConfig, version }) => {
81
81
  const sendSystemMessage = useCallback((content) => {
82
82
  setLocalMessages((prev) => [
83
83
  ...prev,
84
- { type: 'system', content, timestamp: new Date() },
84
+ { id: nextMessageId(), type: 'system', content, timestamp: new Date() },
85
85
  ]);
86
86
  }, []);
87
87
  const startMock = useCallback(async (port) => {
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/tui/app.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/tui/app.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACxE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAmB,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAUpD,eAAe;AACf,MAAM,SAAS,GAAG;;;;;;;;;;;;4CAY0B,CAAC;AAE7C,SAAS,SAAS,CAAC,GAAuB;IACxC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACxC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,GAAG,GAAuB,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;IAClE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,GAC9E,QAAQ,CAAC,WAAW,CAAC,CAAC;IACxB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAmB,EAAE,CAAC,CAAC;IAC7D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAkD,SAAS,CAAC,CAAC;IACvG,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,MAAM,CAA0B,IAAI,CAAC,CAAC;IAC5D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAkD,SAAS,CAAC,CAAC;IACvG,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,MAAM,CAA0B,IAAI,CAAC,CAAC;IAC5D,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExE,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IAEzE,kBAAkB;IAClB,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;QAClB,IAAI,GAAG,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC;YAC/B,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC1B,KAAK,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC1D,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;YAC/B,CAAC;YACD,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC1B,KAAK,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC1D,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,qBAAqB;IACrB,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;QACtC,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IACtC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb;;OAEG;IACH,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAgB,EAAE,CAAC,CAAC;IACtE,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,OAAe,EAAE,EAAE;QACxD,gBAAgB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACzB,GAAG,IAAI;YACP,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE;SACjF,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,SAAS,GAAG,WAAW,CAC3B,KAAK,EAAE,IAAY,EAAE,EAAE;QACrB,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;QAC3D,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QAE/E,YAAY,CAAC,UAAU,CAAC,CAAC;QACzB,iBAAiB,CAAC,gCAAgC,IAAI,KAAK,CAAC,CAAC;QAE7D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;gBACnC,IAAI;gBACJ,IAAI;gBACJ,OAAO,EAAE,MAAM;gBACf,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YACH,aAAa,CAAC,OAAO,GAAG,MAAM,CAAC;YAC/B,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACzB,iBAAiB,CACf,8CAA8C,MAAM,CAAC,IAAI,KAAK,aAAa,gBAAgB,KAAK,CAAC,MAAM,iBAAiB,CACzH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,WAAW,CAAC,IAAI,CAAC,CAAC;YAClB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAAC;YACpF,iBAAiB,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC,EACD,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAC9D,CAAC;IAEF,MAAM,QAAQ,GAAG,WAAW,CAC1B,KAAK,EAAE,OAA8B,EAAoB,EAAE;QACzD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;QAED,YAAY,CAAC,UAAU,CAAC,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YACrB,iBAAiB,CAAC,gCAAgC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;YAC7B,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,WAAW,CAAC,IAAI,CAAC,CAAC;YAClB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;gBACrB,iBAAiB,CAAC,sBAAsB,CAAC,CAAC;YAC5C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC;YACnF,iBAAiB,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC;YAC5D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,EACD,CAAC,iBAAiB,CAAC,CACpB,CAAC;IAEF,MAAM,SAAS,GAAG,WAAW,CAC3B,KAAK,EAAE,IAAY,EAAE,EAAE;QACrB,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC;QAC5D,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QAE/E,YAAY,CAAC,UAAU,CAAC,CAAC;QACzB,iBAAiB,CAAC,gCAAgC,IAAI,KAAK,CAAC,CAAC;QAE7D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;gBACnC,IAAI;gBACJ,IAAI;gBACJ,OAAO,EAAE,MAAM;gBACf,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YACH,aAAa,CAAC,OAAO,GAAG,MAAM,CAAC;YAC/B,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACzB,iBAAiB,CACf,8CAA8C,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,kBAAkB,aAAa,cAAc,CACxH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,WAAW,CAAC,IAAI,CAAC,CAAC;YAClB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAAC;YACpF,iBAAiB,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC,EACD,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAC/D,CAAC;IAEF,MAAM,QAAQ,GAAG,WAAW,CAC1B,KAAK,EAAE,OAA8B,EAAoB,EAAE;QACzD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;QAED,YAAY,CAAC,UAAU,CAAC,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YACrB,iBAAiB,CAAC,gCAAgC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;YAC7B,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,WAAW,CAAC,IAAI,CAAC,CAAC;YAClB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;gBACrB,iBAAiB,CAAC,sBAAsB,CAAC,CAAC;YAC5C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC;YACnF,iBAAiB,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC;YAC5D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,EACD,CAAC,iBAAiB,CAAC,CACpB,CAAC;IAEF;;OAEG;IACH,MAAM,YAAY,GAAG,WAAW,CAC9B,KAAK,EAAE,KAAa,EAAE,EAAE;QACtB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAEvB,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,OAAO,CAAC;YACb,KAAK,OAAO;gBACV,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;oBAC1B,MAAM,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBACnC,CAAC;gBACD,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;oBAC1B,MAAM,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBACnC,CAAC;gBACD,IAAI,EAAE,CAAC;gBACP,OAAO;YAET,KAAK,OAAO;gBACV,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBAC7B,OAAO;YAET,KAAK,QAAQ;gBACX,KAAK,EAAE,CAAC;gBACR,gBAAgB,CAAC,EAAE,CAAC,CAAC;gBACrB,iBAAiB,CAAC,8BAA8B,CAAC,CAAC;gBAClD,OAAO;YAET,KAAK,QAAQ;gBACX,KAAK,EAAE,CAAC;gBACR,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;gBACtC,OAAO;YAET,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC;gBACvC,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;gBAClE,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAChC,uBAAuB,CAAC,IAAI,CAAC,CAAC;oBAC9B,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACpC,CAAC;qBAAM,CAAC;oBACN,uBAAuB,CAAC,KAAK,CAAC,CAAC;oBAC/B,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACpC,CAAC;gBACD,OAAO;YACT,CAAC;YAED,KAAK,OAAO;gBACV,cAAc,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;gBACtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,iBAAiB,CAAC,2BAA2B,GAAG,MAAM,CAAC,CAAC;gBAC1D,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,GAAG,KAAK;yBACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,aAAa,aAAa,CAAC;yBACzE,IAAI,CAAC,IAAI,CAAC,CAAC;oBACd,iBAAiB,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;gBAC9C,CAAC;gBACD,OAAO;YAET,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,IAAI,SAAS,KAAK,UAAU,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;oBACzD,iBAAiB,CAAC,qCAAqC,CAAC,CAAC;oBACzD,OAAO;gBACT,CAAC;gBAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBACpB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtB,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;wBACvC,OAAO;oBACT,CAAC;oBAED,MAAM,OAAO,GAAG,MAAM,QAAQ,EAAE,CAAC;oBACjC,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,iBAAiB,CAAC,6BAA6B,CAAC,CAAC;oBACnD,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC5C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtB,iBAAiB,CAAC,iDAAiD,CAAC,CAAC;wBACrE,OAAO;oBACT,CAAC;oBAED,MAAM,iBAAiB,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;oBAC1C,IAAI,IAAI,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;wBACvC,iBAAiB,CAAC,8CAA8C,CAAC,CAAC;wBAClE,OAAO;oBACT,CAAC;oBACD,MAAM,WAAW,GACf,iBAAiB,IAAI,QAAQ,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;oBAEpE,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;wBAC1B,iBAAiB,CAAC,kCAAkC,WAAW,KAAK,CAAC,CAAC;wBACtE,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;wBACjD,IAAI,CAAC,OAAO,EAAE,CAAC;4BACb,OAAO;wBACT,CAAC;oBACH,CAAC;oBAED,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;oBAC7B,OAAO;gBACT,CAAC;gBAED,IAAI,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBACrC,iBAAiB,CACf,uEAAuE,CACxE,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC5B,iBAAiB,CACf,mDAAmD,QAAQ,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,gCAAgC,CAChI,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;gBACjE,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;gBACtB,OAAO;YACT,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,IAAI,SAAS,KAAK,UAAU,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;oBACzD,iBAAiB,CAAC,qCAAqC,CAAC,CAAC;oBACzD,OAAO;gBACT,CAAC;gBAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBACpB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtB,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;wBACvC,OAAO;oBACT,CAAC;oBAED,MAAM,OAAO,GAAG,MAAM,QAAQ,EAAE,CAAC;oBACjC,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,iBAAiB,CAAC,6BAA6B,CAAC,CAAC;oBACnD,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC5C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtB,iBAAiB,CAAC,iDAAiD,CAAC,CAAC;wBACrE,OAAO;oBACT,CAAC;oBAED,MAAM,iBAAiB,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;oBAC1C,IAAI,IAAI,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;wBACvC,iBAAiB,CAAC,8CAA8C,CAAC,CAAC;wBAClE,OAAO;oBACT,CAAC;oBACD,MAAM,WAAW,GACf,iBAAiB,IAAI,QAAQ,IAAI,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;oBAErE,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;wBAC1B,iBAAiB,CAAC,kCAAkC,WAAW,KAAK,CAAC,CAAC;wBACtE,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;wBACjD,IAAI,CAAC,OAAO,EAAE,CAAC;4BACb,OAAO;wBACT,CAAC;oBACH,CAAC;oBAED,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;oBAC7B,OAAO;gBACT,CAAC;gBAED,IAAI,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBACrC,iBAAiB,CACf,uEAAuE,CACxE,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC5B,iBAAiB,CACf,mDAAmD,QAAQ,IAAI,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,gCAAgC,CACjI,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;gBAClE,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;gBACtB,OAAO;YACT,CAAC;QACH,CAAC;QAED,kBAAkB;QAClB,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;QACzB,cAAc,EAAE,CAAC;IACnB,CAAC,EACD;QACE,WAAW;QACX,KAAK;QACL,KAAK;QACL,cAAc;QACd,MAAM;QACN,IAAI;QACJ,iBAAiB;QACjB,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI;QAChC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI;QACjC,WAAW,CAAC,UAAU;QACtB,oBAAoB;KACrB,CACF,CAAC;IAEF,yBAAyB;IACzB,MAAM,WAAW,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,aAAa,CAAC,CAAC,IAAI,CACtD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CACxD,CAAC;IAEF,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,MAAM,IACL,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,WAAW,CAAC,UAAU,EAClC,MAAM,EAAE,MAAM,GACd,EACF,KAAC,IAAI,IAAC,QAAQ,EAAE,WAAW,GAAI,EAC/B,KAAC,aAAa,IAAC,OAAO,EAAE,OAAO,GAAI,EACnC,KAAC,SAAS,IAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,GAAI,EACvD,KAAC,KAAK,IACJ,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAC,mCAAmC,GAC/C,IACE,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -19,6 +19,6 @@ const MessageItem = ({ msg }) => {
19
19
  }
20
20
  };
21
21
  export const Chat = ({ messages }) => {
22
- return (_jsx(Box, { flexDirection: "column", paddingX: 1, children: messages.map((msg, i) => (_jsx(MessageItem, { msg: msg }, i))) }));
22
+ return (_jsx(Box, { flexDirection: "column", paddingX: 1, children: messages.map((msg) => (_jsx(MessageItem, { msg: msg }, msg.id))) }));
23
23
  };
24
24
  //# sourceMappingURL=Chat.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Chat.js","sourceRoot":"","sources":["../../../src/tui/components/Chat.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,OAAO,MAAM,aAAa,CAAC;AAOlC,mBAAmB;AACnB,MAAM,WAAW,GAAmC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IAC9D,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,MAAM;YACT,OAAO,CACL,MAAC,GAAG,IAAC,YAAY,EAAE,CAAC,aAClB,MAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,qBAChB,GAAG,IACH,EACP,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,YAAE,GAAG,CAAC,OAAO,GAAQ,IAClC,CACP,CAAC;QAEJ,KAAK,WAAW;YACd,OAAO,CACL,MAAC,GAAG,IAAC,YAAY,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,aAC1C,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,OAAO,sBAEjB,EACP,MAAC,GAAG,IAAC,UAAU,EAAE,CAAC,aAChB,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,YAAE,GAAG,CAAC,OAAO,GAAQ,EACrC,GAAG,CAAC,SAAS,IAAI,CAChB,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YACjB,KAAC,OAAO,IAAC,IAAI,EAAC,MAAM,GAAG,GAClB,CACR,IACG,IACF,CACP,CAAC;QAEJ,KAAK,eAAe;YAClB,OAAO,CACL,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,YAChB,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,mBACxB,OAAO,EAAE,GAAG,CAAC,OAAO,IAChB,GACH,CACP,CAAC;QAEJ,KAAK,OAAO;YACV,OAAO,CACL,MAAC,GAAG,IAAC,YAAY,EAAE,CAAC,aAClB,MAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,KAAK,uBACb,GAAG,IACL,EACP,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,YAAE,GAAG,CAAC,OAAO,GAAQ,IAC9C,CACP,CAAC;QAEJ,KAAK,QAAQ;YACX,OAAO,CACL,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,YACjC,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,QAAQ,kBAC3B,GAAG,CAAC,OAAO,GACP,GACH,CACP,CAAC;QAEJ;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAwB,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IACxD,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,YACpC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CACxB,KAAC,WAAW,IAAS,GAAG,EAAE,GAAG,IAAX,CAAC,CAAc,CAClC,CAAC,GACE,CACP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Chat.js","sourceRoot":"","sources":["../../../src/tui/components/Chat.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,OAAO,MAAM,aAAa,CAAC;AAOlC,mBAAmB;AACnB,MAAM,WAAW,GAAmC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IAC9D,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,MAAM;YACT,OAAO,CACL,MAAC,GAAG,IAAC,YAAY,EAAE,CAAC,aAClB,MAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,qBAChB,GAAG,IACH,EACP,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,YAAE,GAAG,CAAC,OAAO,GAAQ,IAClC,CACP,CAAC;QAEJ,KAAK,WAAW;YACd,OAAO,CACL,MAAC,GAAG,IAAC,YAAY,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,aAC1C,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,OAAO,sBAEjB,EACP,MAAC,GAAG,IAAC,UAAU,EAAE,CAAC,aAChB,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,YAAE,GAAG,CAAC,OAAO,GAAQ,EACrC,GAAG,CAAC,SAAS,IAAI,CAChB,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YACjB,KAAC,OAAO,IAAC,IAAI,EAAC,MAAM,GAAG,GAClB,CACR,IACG,IACF,CACP,CAAC;QAEJ,KAAK,eAAe;YAClB,OAAO,CACL,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,YAChB,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,mBACxB,OAAO,EAAE,GAAG,CAAC,OAAO,IAChB,GACH,CACP,CAAC;QAEJ,KAAK,OAAO;YACV,OAAO,CACL,MAAC,GAAG,IAAC,YAAY,EAAE,CAAC,aAClB,MAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,KAAK,uBACb,GAAG,IACL,EACP,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,YAAE,GAAG,CAAC,OAAO,GAAQ,IAC9C,CACP,CAAC;QAEJ,KAAK,QAAQ;YACX,OAAO,CACL,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,YACjC,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,QAAQ,kBAC3B,GAAG,CAAC,OAAO,GACP,GACH,CACP,CAAC;QAEJ;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAwB,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IACxD,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,YACpC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACrB,KAAC,WAAW,IAAc,GAAG,EAAE,GAAG,IAAhB,GAAG,CAAC,EAAE,CAAc,CACvC,CAAC,GACE,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * StatusBar 组件
3
3
  *
4
- * 显示 Agent 当前状态,活跃状态时带 Spinner 动画
4
+ * 显示 Agent 当前状态,活跃状态时带 Spinner 动画 + 经过时间
5
5
  */
6
6
  import React from 'react';
7
7
  import type { AgentState } from '../../agents/core/types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../../src/tui/components/StatusBar.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,UAAU,cAAc;IACtB,KAAK,EAAE,UAAU,CAAC;IAClB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;CACnC;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA0C9C,CAAC"}
1
+ {"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../../src/tui/components/StatusBar.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,UAAU,cAAc;IACtB,KAAK,EAAE,UAAU,CAAC;IAClB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;CACnC;AAID,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAoE9C,CAAC"}
@@ -1,7 +1,35 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * StatusBar 组件
4
+ *
5
+ * 显示 Agent 当前状态,活跃状态时带 Spinner 动画 + 经过时间
6
+ */
7
+ import { useEffect, useState } from 'react';
2
8
  import { Box, Text } from 'ink';
3
9
  import Spinner from 'ink-spinner';
10
+ const ACTIVE_STATES = ['thinking', 'streaming', 'calling_tool'];
4
11
  export const StatusBar = ({ state, toolProgress }) => {
5
- return (_jsxs(Box, { paddingX: 1, marginY: 0, children: [state === 'idle' && (_jsx(Text, { color: "green", children: "Ready" })), state === 'thinking' && (_jsxs(Box, { children: [_jsx(Text, { color: "yellow", children: _jsx(Spinner, { type: "dots" }) }), _jsx(Text, { color: "yellow", children: " Thinking..." })] })), state === 'streaming' && (_jsxs(Box, { children: [_jsx(Text, { color: "green", children: _jsx(Spinner, { type: "dots" }) }), _jsx(Text, { color: "green", children: " Responding..." })] })), state === 'calling_tool' && (_jsxs(Box, { children: [_jsx(Text, { color: "cyan", children: _jsx(Spinner, { type: "dots" }) }), _jsxs(Text, { color: "cyan", children: [' ', toolProgress ? toolProgress.message : 'Running tool...'] })] })), state === 'error' && (_jsx(Text, { color: "red", children: "Error occurred \u2014 you can continue typing" }))] }));
12
+ const [elapsed, setElapsed] = useState(0);
13
+ // 任意活跃状态下计时, 回到 idle/error 重置
14
+ // 让用户即使 LLM 卡顿也能看到"已等待 N 秒", 不会误以为程序挂死
15
+ useEffect(() => {
16
+ if (!ACTIVE_STATES.includes(state)) {
17
+ setElapsed(0);
18
+ return;
19
+ }
20
+ const startedAt = Date.now();
21
+ setElapsed(0);
22
+ const id = setInterval(() => {
23
+ setElapsed(Math.floor((Date.now() - startedAt) / 1000));
24
+ }, 1000);
25
+ return () => clearInterval(id);
26
+ }, [state]);
27
+ const elapsedSuffix = elapsed > 0 ? ` (${elapsed}s)` : '';
28
+ // streaming 阶段如果 LLM 正在 streaming 工具调用, 显示 "Preparing <name>..."
29
+ // 否则显示通用 "Responding..."
30
+ const streamingLabel = toolProgress
31
+ ? `${toolProgress.message}`
32
+ : 'Responding...';
33
+ return (_jsxs(Box, { paddingX: 1, marginY: 0, children: [state === 'idle' && (_jsx(Text, { color: "green", children: "Ready" })), state === 'thinking' && (_jsxs(Box, { children: [_jsx(Text, { color: "yellow", children: _jsx(Spinner, { type: "dots" }) }), _jsxs(Text, { color: "yellow", children: [" Thinking...", elapsedSuffix] })] })), state === 'streaming' && (_jsxs(Box, { children: [_jsx(Text, { color: "green", children: _jsx(Spinner, { type: "dots" }) }), _jsxs(Text, { color: "green", children: [" ", streamingLabel, elapsedSuffix] })] })), state === 'calling_tool' && (_jsxs(Box, { children: [_jsx(Text, { color: "cyan", children: _jsx(Spinner, { type: "dots" }) }), _jsxs(Text, { color: "cyan", children: [' ', toolProgress ? toolProgress.message : 'Running tool...', elapsedSuffix] })] })), state === 'error' && (_jsx(Text, { color: "red", children: "Error occurred \u2014 you can continue typing" }))] }));
6
34
  };
7
35
  //# sourceMappingURL=StatusBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../src/tui/components/StatusBar.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,OAAO,MAAM,aAAa,CAAC;AASlC,MAAM,CAAC,MAAM,SAAS,GAA6B,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE;IAC7E,OAAO,CACL,MAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,aACzB,KAAK,KAAK,MAAM,IAAI,CACnB,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,sBAAa,CACjC,EAEA,KAAK,KAAK,UAAU,IAAI,CACvB,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAClB,KAAC,OAAO,IAAC,IAAI,EAAC,MAAM,GAAG,GAClB,EACP,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,6BAAoB,IACpC,CACP,EAEA,KAAK,KAAK,WAAW,IAAI,CACxB,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YACjB,KAAC,OAAO,IAAC,IAAI,EAAC,MAAM,GAAG,GAClB,EACP,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,+BAAsB,IACrC,CACP,EAEA,KAAK,KAAK,cAAc,IAAI,CAC3B,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAChB,KAAC,OAAO,IAAC,IAAI,EAAC,MAAM,GAAG,GAClB,EACP,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,aACf,GAAG,EACH,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,IACnD,IACH,CACP,EAEA,KAAK,KAAK,OAAO,IAAI,CACpB,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,8DAAgD,CAClE,IACG,CACP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../src/tui/components/StatusBar.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,OAAO,MAAM,aAAa,CAAC;AASlC,MAAM,aAAa,GAAiB,CAAC,UAAU,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;AAE9E,MAAM,CAAC,MAAM,SAAS,GAA6B,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE;IAC7E,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE1C,8BAA8B;IAC9B,uCAAuC;IACvC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,UAAU,CAAC,CAAC,CAAC,CAAC;YACd,OAAO;QACT,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,UAAU,CAAC,CAAC,CAAC,CAAC;QACd,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE;YAC1B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,aAAa,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAE1D,iEAAiE;IACjE,yBAAyB;IACzB,MAAM,cAAc,GAAG,YAAY;QACjC,CAAC,CAAC,GAAG,YAAY,CAAC,OAAO,EAAE;QAC3B,CAAC,CAAC,eAAe,CAAC;IAEpB,OAAO,CACL,MAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,aACzB,KAAK,KAAK,MAAM,IAAI,CACnB,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,sBAAa,CACjC,EAEA,KAAK,KAAK,UAAU,IAAI,CACvB,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAClB,KAAC,OAAO,IAAC,IAAI,EAAC,MAAM,GAAG,GAClB,EACP,MAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,6BAAc,aAAa,IAAQ,IACnD,CACP,EAEA,KAAK,KAAK,WAAW,IAAI,CACxB,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YACjB,KAAC,OAAO,IAAC,IAAI,EAAC,MAAM,GAAG,GAClB,EACP,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,kBAAG,cAAc,EAAE,aAAa,IAAQ,IACvD,CACP,EAEA,KAAK,KAAK,cAAc,IAAI,CAC3B,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAChB,KAAC,OAAO,IAAC,IAAI,EAAC,MAAM,GAAG,GAClB,EACP,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,aACf,GAAG,EACH,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,EACvD,aAAa,IACT,IACH,CACP,EAEA,KAAK,KAAK,OAAO,IAAI,CACpB,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,8DAAgD,CAClE,IACG,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -4,16 +4,24 @@
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 type { AgentConfig, AgentState } from '../../agents/core/types.js';
13
19
  /** 对话消息类型 */
14
20
  export type ChatMessageType = 'user' | 'assistant' | 'tool_activity' | 'error' | 'system';
15
21
  /** 对话消息 */
16
22
  export interface ChatMessage {
23
+ /** 稳定 id, 用于按 id 定位/更新指定消息 (而不是按 index) */
24
+ id: string;
17
25
  type: ChatMessageType;
18
26
  content: string;
19
27
  /** tool_activity 类型时记录工具名称 */
@@ -36,6 +44,7 @@ interface UseAgentReturn {
36
44
  reset: () => void;
37
45
  isProcessing: boolean;
38
46
  }
47
+ export declare function nextMessageId(): string;
39
48
  export declare function useAgent(config: AgentConfig): UseAgentReturn;
40
49
  export {};
41
50
  //# sourceMappingURL=useAgent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAgent.d.ts","sourceRoot":"","sources":["../../../src/tui/hooks/useAgent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAc,MAAM,4BAA4B,CAAC;AAEtF,aAAa;AACb,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,WAAW,GAAG,eAAe,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE1F,WAAW;AACX,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,sBAAsB;AACtB,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,cAAc;IACtB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,UAAU,CAAC;IAClB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,CA+M5D"}
1
+ {"version":3,"file":"useAgent.d.ts","sourceRoot":"","sources":["../../../src/tui/hooks/useAgent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAc,MAAM,4BAA4B,CAAC;AAEtF,aAAa;AACb,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,WAAW,GAAG,eAAe,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE1F,WAAW;AACX,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,sBAAsB;AACtB,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,cAAc;IACtB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,UAAU,CAAC;IAClB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;CACvB;AAGD,wBAAgB,aAAa,IAAI,MAAM,CAGtC;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,CAsO5D"}
@@ -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.6",
3
+ "version": "0.1.8",
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",