@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.
- package/README.md +12 -3
- package/dist/agents/core/agent.d.ts.map +1 -1
- package/dist/agents/core/agent.js +67 -3
- package/dist/agents/core/agent.js.map +1 -1
- package/dist/agents/core/prompt.d.ts.map +1 -1
- package/dist/agents/core/prompt.js +5 -2
- package/dist/agents/core/prompt.js.map +1 -1
- package/dist/agents/core/types.d.ts +1 -1
- package/dist/agents/core/types.d.ts.map +1 -1
- package/dist/agents/memory/memory.d.ts +5 -0
- package/dist/agents/memory/memory.d.ts.map +1 -1
- package/dist/agents/memory/memory.js +7 -0
- package/dist/agents/memory/memory.js.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/llm/client.d.ts.map +1 -1
- package/dist/llm/client.js +17 -2
- package/dist/llm/client.js.map +1 -1
- package/dist/shared/config-wizard.d.ts +1 -1
- package/dist/shared/config-wizard.d.ts.map +1 -1
- package/dist/shared/config-wizard.js +11 -12
- package/dist/shared/config-wizard.js.map +1 -1
- package/dist/shared/config.d.ts +15 -10
- package/dist/shared/config.d.ts.map +1 -1
- package/dist/shared/config.js +29 -15
- package/dist/shared/config.js.map +1 -1
- package/dist/shared/types.d.ts +1 -1
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/tui/app.js +2 -2
- package/dist/tui/app.js.map +1 -1
- package/dist/tui/components/Chat.js +1 -1
- package/dist/tui/components/Chat.js.map +1 -1
- package/dist/tui/components/StatusBar.d.ts +1 -1
- package/dist/tui/components/StatusBar.d.ts.map +1 -1
- package/dist/tui/components/StatusBar.js +29 -1
- package/dist/tui/components/StatusBar.js.map +1 -1
- package/dist/tui/hooks/useAgent.d.ts +10 -1
- package/dist/tui/hooks/useAgent.d.ts.map +1 -1
- package/dist/tui/hooks/useAgent.js +85 -49
- package/dist/tui/hooks/useAgent.js.map +1 -1
- package/package.json +1 -1
package/dist/shared/config.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 全局配置加载
|
|
3
3
|
*
|
|
4
|
-
* 优先级: CLI 参数 >
|
|
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
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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(
|
|
36
|
-
const configPath =
|
|
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
|
-
*
|
|
58
|
+
* 将配置写回全局配置文件
|
|
45
59
|
*/
|
|
46
|
-
export function writeConfig(
|
|
47
|
-
const configPath =
|
|
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(
|
|
55
|
-
const fileConfig = readRawConfig(
|
|
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
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,gBAAgB;AAChB,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,UAAU,GAAG,MAAM,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,sBAAsB;AACtB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,gBAAgB;AAChB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,
|
|
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) => {
|
package/dist/tui/app.js.map
CHANGED
|
@@ -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
|
|
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,
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../../src/tui/components/StatusBar.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,
|
|
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
|
-
|
|
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":";
|
|
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
|
|
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
|
|
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
|
|
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
|
-
//
|
|
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
|
-
//
|
|
33
|
-
const
|
|
49
|
+
// 按 id 追加内容到指定 assistant 消息 (streaming)
|
|
50
|
+
const appendToAssistant = useCallback((id, delta) => {
|
|
34
51
|
setMessages((prev) => {
|
|
35
|
-
const
|
|
36
|
-
if (
|
|
52
|
+
const idx = prev.findIndex((m) => m.id === id);
|
|
53
|
+
if (idx < 0)
|
|
37
54
|
return prev;
|
|
38
55
|
const updated = [...prev];
|
|
39
|
-
updated[
|
|
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
|
-
//
|
|
47
|
-
const
|
|
60
|
+
// 按 id 标记 assistant 消息 streaming 结束 (停止显示光标)
|
|
61
|
+
const finalizeAssistant = useCallback((id) => {
|
|
48
62
|
setMessages((prev) => {
|
|
49
|
-
const
|
|
50
|
-
if (
|
|
63
|
+
const idx = prev.findIndex((m) => m.id === id);
|
|
64
|
+
if (idx < 0)
|
|
51
65
|
return prev;
|
|
52
66
|
const updated = [...prev];
|
|
53
|
-
updated[
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
}, [
|
|
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
|
|
121
|
-
|
|
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
|
-
//
|
|
125
|
-
// 非 streaming
|
|
153
|
+
// 收尾:
|
|
154
|
+
// - 非 streaming 模式: content 没被 content_delta 填过, 用 reply.content 填
|
|
155
|
+
// - streaming 模式: content 已经填过了, 只需确保 streaming: false
|
|
126
156
|
setMessages((prev) => {
|
|
127
|
-
const
|
|
128
|
-
if (
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
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
|
-
|
|
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
|
|
157
|
-
if (
|
|
158
|
-
prev
|
|
159
|
-
|
|
160
|
-
|
|
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":"AAAA
|
|
1
|
+
{"version":3,"file":"useAgent.js","sourceRoot":"","sources":["../../../src/tui/hooks/useAgent.ts"],"names":[],"mappings":"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"}
|