@easynet/agent-memory 0.0.2

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 (167) hide show
  1. package/README.md +260 -0
  2. package/bin/chat +11 -0
  3. package/dist/adapters/index.d.ts +8 -0
  4. package/dist/adapters/index.d.ts.map +1 -0
  5. package/dist/adapters/index.js +29 -0
  6. package/dist/adapters/index.js.map +1 -0
  7. package/dist/adapters/mem0/mem0-store.d.ts +29 -0
  8. package/dist/adapters/mem0/mem0-store.d.ts.map +1 -0
  9. package/dist/adapters/mem0/mem0-store.js +174 -0
  10. package/dist/adapters/mem0/mem0-store.js.map +1 -0
  11. package/dist/adapters/rag-http/rag-http-retriever.d.ts +18 -0
  12. package/dist/adapters/rag-http/rag-http-retriever.d.ts.map +1 -0
  13. package/dist/adapters/rag-http/rag-http-retriever.js +71 -0
  14. package/dist/adapters/rag-http/rag-http-retriever.js.map +1 -0
  15. package/dist/adapters/types.d.ts +25 -0
  16. package/dist/adapters/types.d.ts.map +1 -0
  17. package/dist/adapters/types.js +6 -0
  18. package/dist/adapters/types.js.map +1 -0
  19. package/dist/boot/boot-rebuilder.d.ts +26 -0
  20. package/dist/boot/boot-rebuilder.d.ts.map +1 -0
  21. package/dist/boot/boot-rebuilder.js +112 -0
  22. package/dist/boot/boot-rebuilder.js.map +1 -0
  23. package/dist/boot/index.d.ts +3 -0
  24. package/dist/boot/index.d.ts.map +1 -0
  25. package/dist/boot/index.js +6 -0
  26. package/dist/boot/index.js.map +1 -0
  27. package/dist/cli/chat-split.d.ts +22 -0
  28. package/dist/cli/chat-split.d.ts.map +1 -0
  29. package/dist/cli/chat-split.js +187 -0
  30. package/dist/cli/chat-split.js.map +1 -0
  31. package/dist/cli/chat.d.ts +19 -0
  32. package/dist/cli/chat.d.ts.map +1 -0
  33. package/dist/cli/chat.js +266 -0
  34. package/dist/cli/chat.js.map +1 -0
  35. package/dist/cli/commands/command-handler.d.ts +32 -0
  36. package/dist/cli/commands/command-handler.d.ts.map +1 -0
  37. package/dist/cli/commands/command-handler.js +143 -0
  38. package/dist/cli/commands/command-handler.js.map +1 -0
  39. package/dist/cli/index.d.ts +3 -0
  40. package/dist/cli/index.d.ts.map +1 -0
  41. package/dist/cli/index.js +8 -0
  42. package/dist/cli/index.js.map +1 -0
  43. package/dist/cli/ui/display-manager.d.ts +18 -0
  44. package/dist/cli/ui/display-manager.d.ts.map +1 -0
  45. package/dist/cli/ui/display-manager.js +69 -0
  46. package/dist/cli/ui/display-manager.js.map +1 -0
  47. package/dist/cli/ui/screen-layout.d.ts +12 -0
  48. package/dist/cli/ui/screen-layout.d.ts.map +1 -0
  49. package/dist/cli/ui/screen-layout.js +125 -0
  50. package/dist/cli/ui/screen-layout.js.map +1 -0
  51. package/dist/config/index.d.ts +2 -0
  52. package/dist/config/index.d.ts.map +1 -0
  53. package/dist/config/index.js +6 -0
  54. package/dist/config/index.js.map +1 -0
  55. package/dist/config/loader.d.ts +9 -0
  56. package/dist/config/loader.d.ts.map +1 -0
  57. package/dist/config/loader.js +107 -0
  58. package/dist/config/loader.js.map +1 -0
  59. package/dist/context/context-builder.d.ts +18 -0
  60. package/dist/context/context-builder.d.ts.map +1 -0
  61. package/dist/context/context-builder.js +91 -0
  62. package/dist/context/context-builder.js.map +1 -0
  63. package/dist/core/agent-memory.d.ts +50 -0
  64. package/dist/core/agent-memory.d.ts.map +1 -0
  65. package/dist/core/agent-memory.js +297 -0
  66. package/dist/core/agent-memory.js.map +1 -0
  67. package/dist/embedding/embedder.d.ts +49 -0
  68. package/dist/embedding/embedder.d.ts.map +1 -0
  69. package/dist/embedding/embedder.js +146 -0
  70. package/dist/embedding/embedder.js.map +1 -0
  71. package/dist/embedding/index.d.ts +3 -0
  72. package/dist/embedding/index.d.ts.map +1 -0
  73. package/dist/embedding/index.js +8 -0
  74. package/dist/embedding/index.js.map +1 -0
  75. package/dist/gate/deduplicator.d.ts +22 -0
  76. package/dist/gate/deduplicator.d.ts.map +1 -0
  77. package/dist/gate/deduplicator.js +74 -0
  78. package/dist/gate/deduplicator.js.map +1 -0
  79. package/dist/gate/extractor.d.ts +33 -0
  80. package/dist/gate/extractor.d.ts.map +1 -0
  81. package/dist/gate/extractor.js +122 -0
  82. package/dist/gate/extractor.js.map +1 -0
  83. package/dist/gate/index.d.ts +3 -0
  84. package/dist/gate/index.d.ts.map +1 -0
  85. package/dist/gate/index.js +6 -0
  86. package/dist/gate/index.js.map +1 -0
  87. package/dist/gate/memory-gate.d.ts +27 -0
  88. package/dist/gate/memory-gate.d.ts.map +1 -0
  89. package/dist/gate/memory-gate.js +86 -0
  90. package/dist/gate/memory-gate.js.map +1 -0
  91. package/dist/gate/redactor.d.ts +14 -0
  92. package/dist/gate/redactor.d.ts.map +1 -0
  93. package/dist/gate/redactor.js +24 -0
  94. package/dist/gate/redactor.js.map +1 -0
  95. package/dist/index.d.ts +6 -0
  96. package/dist/index.d.ts.map +1 -0
  97. package/dist/index.js +24 -0
  98. package/dist/index.js.map +1 -0
  99. package/dist/indexing/in-memory-index.d.ts +67 -0
  100. package/dist/indexing/in-memory-index.d.ts.map +1 -0
  101. package/dist/indexing/in-memory-index.js +135 -0
  102. package/dist/indexing/in-memory-index.js.map +1 -0
  103. package/dist/indexing/index.d.ts +3 -0
  104. package/dist/indexing/index.d.ts.map +1 -0
  105. package/dist/indexing/index.js +6 -0
  106. package/dist/indexing/index.js.map +1 -0
  107. package/dist/persistence/database/schema.d.ts +6 -0
  108. package/dist/persistence/database/schema.d.ts.map +1 -0
  109. package/dist/persistence/database/schema.js +75 -0
  110. package/dist/persistence/database/schema.js.map +1 -0
  111. package/dist/persistence/index.d.ts +3 -0
  112. package/dist/persistence/index.d.ts.map +1 -0
  113. package/dist/persistence/index.js +6 -0
  114. package/dist/persistence/index.js.map +1 -0
  115. package/dist/persistence/repository/embedding-operations.d.ts +17 -0
  116. package/dist/persistence/repository/embedding-operations.d.ts.map +1 -0
  117. package/dist/persistence/repository/embedding-operations.js +58 -0
  118. package/dist/persistence/repository/embedding-operations.js.map +1 -0
  119. package/dist/persistence/repository/memory-operations.d.ts +28 -0
  120. package/dist/persistence/repository/memory-operations.d.ts.map +1 -0
  121. package/dist/persistence/repository/memory-operations.js +87 -0
  122. package/dist/persistence/repository/memory-operations.js.map +1 -0
  123. package/dist/persistence/repository/meta-operations.d.ts +15 -0
  124. package/dist/persistence/repository/meta-operations.d.ts.map +1 -0
  125. package/dist/persistence/repository/meta-operations.js +20 -0
  126. package/dist/persistence/repository/meta-operations.js.map +1 -0
  127. package/dist/persistence/sqlite-repo.d.ts +58 -0
  128. package/dist/persistence/sqlite-repo.d.ts.map +1 -0
  129. package/dist/persistence/sqlite-repo.js +81 -0
  130. package/dist/persistence/sqlite-repo.js.map +1 -0
  131. package/dist/persistence/utils/hash.d.ts +8 -0
  132. package/dist/persistence/utils/hash.d.ts.map +1 -0
  133. package/dist/persistence/utils/hash.js +48 -0
  134. package/dist/persistence/utils/hash.js.map +1 -0
  135. package/dist/persistence/utils/serialization.d.ts +33 -0
  136. package/dist/persistence/utils/serialization.d.ts.map +1 -0
  137. package/dist/persistence/utils/serialization.js +85 -0
  138. package/dist/persistence/utils/serialization.js.map +1 -0
  139. package/dist/processing/document/document-processor.d.ts +30 -0
  140. package/dist/processing/document/document-processor.d.ts.map +1 -0
  141. package/dist/processing/document/document-processor.js +158 -0
  142. package/dist/processing/document/document-processor.js.map +1 -0
  143. package/dist/processing/document/index.d.ts +3 -0
  144. package/dist/processing/document/index.d.ts.map +1 -0
  145. package/dist/processing/document/index.js +6 -0
  146. package/dist/processing/document/index.js.map +1 -0
  147. package/dist/ranker/ranker.d.ts +26 -0
  148. package/dist/ranker/ranker.d.ts.map +1 -0
  149. package/dist/ranker/ranker.js +40 -0
  150. package/dist/ranker/ranker.js.map +1 -0
  151. package/dist/recall/recall-engine.d.ts +19 -0
  152. package/dist/recall/recall-engine.d.ts.map +1 -0
  153. package/dist/recall/recall-engine.js +79 -0
  154. package/dist/recall/recall-engine.js.map +1 -0
  155. package/dist/types/config.d.ts +821 -0
  156. package/dist/types/config.d.ts.map +1 -0
  157. package/dist/types/config.js +128 -0
  158. package/dist/types/config.js.map +1 -0
  159. package/dist/types/document.d.ts +37 -0
  160. package/dist/types/document.d.ts.map +1 -0
  161. package/dist/types/document.js +6 -0
  162. package/dist/types/document.js.map +1 -0
  163. package/dist/types/index.d.ts +86 -0
  164. package/dist/types/index.d.ts.map +1 -0
  165. package/dist/types/index.js +6 -0
  166. package/dist/types/index.js.map +1 -0
  167. package/package.json +53 -0
@@ -0,0 +1,266 @@
1
+ "use strict";
2
+ /**
3
+ * Simple Chat Console for agent-memory
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.ChatConsole = void 0;
40
+ const readline = __importStar(require("readline"));
41
+ const agent_memory_1 = require("../core/agent-memory");
42
+ const path = __importStar(require("path"));
43
+ class ChatConsole {
44
+ constructor() {
45
+ this.am = null;
46
+ this.rl = readline.createInterface({
47
+ input: process.stdin,
48
+ output: process.stdout,
49
+ prompt: "> ",
50
+ });
51
+ this.state = {
52
+ actor: { id: "console-user", type: "user" },
53
+ scope: { projectId: "default", channelId: "console" },
54
+ };
55
+ }
56
+ async init(configPath) {
57
+ try {
58
+ console.log("正在初始化 agent-memory...");
59
+ this.am = await agent_memory_1.AgentMemory.fromYaml(configPath);
60
+ console.log("✓ 初始化成功!\n");
61
+ console.log("可用命令:");
62
+ console.log(" /help - 显示帮助");
63
+ console.log(" /scope - 设置 scope (projectId, channelId, threadId)");
64
+ console.log(" /actor - 设置 actor ID");
65
+ console.log(" /recall - 召回记忆");
66
+ console.log(" /clear - 清屏");
67
+ console.log(" /exit - 退出\n");
68
+ console.log("直接输入消息将自动存储为记忆\n");
69
+ }
70
+ catch (error) {
71
+ console.error("初始化失败:", error);
72
+ process.exit(1);
73
+ }
74
+ }
75
+ async start() {
76
+ this.rl.prompt();
77
+ this.rl.on("line", async (input) => {
78
+ const trimmed = input.trim();
79
+ if (!trimmed) {
80
+ this.rl.prompt();
81
+ return;
82
+ }
83
+ // Handle commands
84
+ if (trimmed.startsWith("/")) {
85
+ await this.handleCommand(trimmed);
86
+ }
87
+ else {
88
+ // Store as memory
89
+ await this.handleMessage(trimmed);
90
+ }
91
+ this.rl.prompt();
92
+ });
93
+ this.rl.on("close", () => {
94
+ console.log("\n再见!");
95
+ if (this.am) {
96
+ this.am.close();
97
+ }
98
+ process.exit(0);
99
+ });
100
+ }
101
+ async handleCommand(cmd) {
102
+ const [command, ...args] = cmd.split(" ");
103
+ switch (command) {
104
+ case "/help":
105
+ this.showHelp();
106
+ break;
107
+ case "/scope":
108
+ this.handleScope(args);
109
+ break;
110
+ case "/actor":
111
+ this.handleActor(args);
112
+ break;
113
+ case "/recall":
114
+ await this.handleRecall(args.join(" "));
115
+ break;
116
+ case "/clear":
117
+ console.clear();
118
+ break;
119
+ case "/exit":
120
+ case "/quit":
121
+ this.rl.close();
122
+ break;
123
+ default:
124
+ console.log(`未知命令: ${command}。输入 /help 查看帮助。`);
125
+ }
126
+ }
127
+ showHelp() {
128
+ console.log("\n命令列表:");
129
+ console.log(" /help - 显示此帮助信息");
130
+ console.log(" /scope <args> - 设置 scope");
131
+ console.log(" 例如: /scope project=proj1 channel=chan1");
132
+ console.log(" /actor <id> - 设置 actor ID");
133
+ console.log(" 例如: /actor U123");
134
+ console.log(" /recall <query> - 召回记忆");
135
+ console.log(" 例如: /recall 发布流程是什么?");
136
+ console.log(" /clear - 清屏");
137
+ console.log(" /exit 或 /quit - 退出程序\n");
138
+ }
139
+ handleScope(args) {
140
+ for (const arg of args) {
141
+ const [key, value] = arg.split("=");
142
+ if (key && value) {
143
+ switch (key.toLowerCase()) {
144
+ case "project":
145
+ case "projectid":
146
+ this.state.scope.projectId = value;
147
+ console.log(`✓ 设置 projectId: ${value}`);
148
+ break;
149
+ case "channel":
150
+ case "channelid":
151
+ this.state.scope.channelId = value;
152
+ console.log(`✓ 设置 channelId: ${value}`);
153
+ break;
154
+ case "thread":
155
+ case "threadid":
156
+ this.state.scope.threadId = value;
157
+ console.log(`✓ 设置 threadId: ${value}`);
158
+ break;
159
+ default:
160
+ console.log(`未知的 scope 参数: ${key}`);
161
+ }
162
+ }
163
+ }
164
+ console.log(`当前 scope:`, this.state.scope);
165
+ }
166
+ handleActor(args) {
167
+ if (args.length > 0) {
168
+ this.state.actor.id = args[0];
169
+ console.log(`✓ 设置 actor ID: ${args[0]}`);
170
+ }
171
+ else {
172
+ console.log(`当前 actor: ${this.state.actor.id}`);
173
+ }
174
+ }
175
+ async handleRecall(query) {
176
+ if (!this.am) {
177
+ console.log("错误: agent-memory 未初始化");
178
+ return;
179
+ }
180
+ if (!query) {
181
+ console.log("请输入查询内容,例如: /recall 发布流程是什么?");
182
+ return;
183
+ }
184
+ try {
185
+ console.log(`\n正在召回记忆: "${query}"...`);
186
+ const result = await this.am.recall({
187
+ query,
188
+ actor: this.state.actor,
189
+ scope: this.state.scope,
190
+ topK: 5,
191
+ includeMemory: true,
192
+ includeDocs: true,
193
+ });
194
+ console.log(`\n找到 ${result.memory.length} 条记忆,${result.docs.length} 个文档片段\n`);
195
+ if (result.memory.length > 0) {
196
+ console.log("=== 记忆 ===");
197
+ result.memory.forEach((mem, idx) => {
198
+ console.log(`${idx + 1}. [${mem.type}] ${mem.content}`);
199
+ if (mem.confidence) {
200
+ console.log(` 置信度: ${(mem.confidence * 100).toFixed(1)}%`);
201
+ }
202
+ });
203
+ console.log();
204
+ }
205
+ if (result.docs.length > 0) {
206
+ console.log("=== 文档证据 ===");
207
+ result.docs.forEach((doc, idx) => {
208
+ console.log(`${idx + 1}. ${doc.text.substring(0, 100)}...`);
209
+ if (doc.score) {
210
+ console.log(` 相似度: ${(doc.score * 100).toFixed(1)}%`);
211
+ }
212
+ });
213
+ console.log();
214
+ }
215
+ if (result.context) {
216
+ console.log("=== 生成的 Context ===");
217
+ console.log(result.context);
218
+ console.log();
219
+ }
220
+ }
221
+ catch (error) {
222
+ console.error("召回失败:", error);
223
+ }
224
+ }
225
+ async handleMessage(message) {
226
+ if (!this.am) {
227
+ console.log("错误: agent-memory 未初始化");
228
+ return;
229
+ }
230
+ try {
231
+ console.log("正在存储记忆...");
232
+ await this.am.remember({
233
+ messages: [{ role: "user", content: message }],
234
+ actor: this.state.actor,
235
+ scope: this.state.scope,
236
+ });
237
+ console.log("✓ 记忆已存储\n");
238
+ }
239
+ catch (error) {
240
+ console.error("存储失败:", error);
241
+ }
242
+ }
243
+ }
244
+ exports.ChatConsole = ChatConsole;
245
+ // Main entry point
246
+ async function main() {
247
+ const args = process.argv.slice(2);
248
+ const configPath = args[0] || "./agent-memory.yaml";
249
+ const resolvedPath = path.resolve(configPath);
250
+ console.log(`使用配置文件: ${resolvedPath}\n`);
251
+ const chat = new ChatConsole();
252
+ await chat.init(resolvedPath);
253
+ await chat.start();
254
+ }
255
+ // Run if executed directly
256
+ const isMainModule = require.main === module;
257
+ const isChatScript = process.argv[1]?.endsWith("chat.ts") ||
258
+ process.argv[1]?.endsWith("chat.js") ||
259
+ process.argv[1]?.includes("bin/chat");
260
+ if (isMainModule || isChatScript) {
261
+ main().catch((error) => {
262
+ console.error("启动失败:", error);
263
+ process.exit(1);
264
+ });
265
+ }
266
+ //# sourceMappingURL=chat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/cli/chat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Command handler for chat console
3
+ */
4
+ import { AgentMemory } from "../../core/agent-memory";
5
+ import { MemoryItem } from "../../types";
6
+ import { DisplayManager } from "../ui/display-manager";
7
+ export interface ChatState {
8
+ actor: {
9
+ id: string;
10
+ type: "user";
11
+ };
12
+ scope: {
13
+ projectId?: string;
14
+ channelId?: string;
15
+ threadId?: string;
16
+ };
17
+ }
18
+ export declare class CommandHandler {
19
+ private am;
20
+ private state;
21
+ private display;
22
+ private updateMemories;
23
+ private updateStatus;
24
+ constructor(am: AgentMemory | null, state: ChatState, display: DisplayManager, updateMemories: (memories: MemoryItem[]) => void, updateStatus: () => void);
25
+ handleCommand(cmd: string): Promise<void>;
26
+ private showHelp;
27
+ private handleScope;
28
+ private handleActor;
29
+ private handleRecall;
30
+ private quit;
31
+ }
32
+ //# sourceMappingURL=command-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-handler.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/command-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,KAAK,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACtE;AAED,qBAAa,cAAc;IAEvB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,YAAY;gBAJZ,EAAE,EAAE,WAAW,GAAG,IAAI,EACtB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,cAAc,EACvB,cAAc,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,IAAI,EAChD,YAAY,EAAE,MAAM,IAAI;IAG5B,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC/C,OAAO,CAAC,QAAQ;IAgBhB,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,WAAW;YAUL,YAAY;IA+C1B,OAAO,CAAC,IAAI;CAMb"}
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ /**
3
+ * Command handler for chat console
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CommandHandler = void 0;
7
+ class CommandHandler {
8
+ constructor(am, state, display, updateMemories, updateStatus) {
9
+ this.am = am;
10
+ this.state = state;
11
+ this.display = display;
12
+ this.updateMemories = updateMemories;
13
+ this.updateStatus = updateStatus;
14
+ }
15
+ async handleCommand(cmd) {
16
+ const [command, ...args] = cmd.split(" ");
17
+ switch (command) {
18
+ case "/help":
19
+ this.showHelp();
20
+ break;
21
+ case "/scope":
22
+ this.handleScope(args);
23
+ break;
24
+ case "/actor":
25
+ this.handleActor(args);
26
+ break;
27
+ case "/recall":
28
+ await this.handleRecall(args.join(" "));
29
+ break;
30
+ case "/clear":
31
+ this.display.clearChatHistory();
32
+ this.updateMemories([]);
33
+ this.display.updateMemoryDisplay([]);
34
+ this.display.addChatMessage("系统", "已清空聊天历史和记忆显示");
35
+ break;
36
+ case "/exit":
37
+ case "/quit":
38
+ this.quit();
39
+ break;
40
+ default:
41
+ this.display.addChatMessage("系统", `未知命令: ${command}。输入 /help 查看帮助。`);
42
+ }
43
+ }
44
+ showHelp() {
45
+ const help = [
46
+ "可用命令:",
47
+ " /help - 显示帮助",
48
+ " /scope <args> - 设置 scope",
49
+ " 例如: /scope project=proj1 channel=chan1",
50
+ " /actor <id> - 设置 actor ID",
51
+ " /recall <query> - 召回记忆",
52
+ " /clear - 清空显示",
53
+ " /exit - 退出",
54
+ "",
55
+ "直接输入消息将自动存储为记忆",
56
+ ].join("\n");
57
+ this.display.addChatMessage("帮助", help);
58
+ }
59
+ handleScope(args) {
60
+ for (const arg of args) {
61
+ const [key, value] = arg.split("=");
62
+ if (key && value) {
63
+ switch (key.toLowerCase()) {
64
+ case "project":
65
+ case "projectid":
66
+ this.state.scope.projectId = value;
67
+ break;
68
+ case "channel":
69
+ case "channelid":
70
+ this.state.scope.channelId = value;
71
+ break;
72
+ case "thread":
73
+ case "threadid":
74
+ this.state.scope.threadId = value;
75
+ break;
76
+ }
77
+ }
78
+ }
79
+ this.updateStatus();
80
+ this.display.addChatMessage("系统", `Scope 已更新: ${JSON.stringify(this.state.scope)}`);
81
+ }
82
+ handleActor(args) {
83
+ if (args.length > 0) {
84
+ this.state.actor.id = args[0];
85
+ this.updateStatus();
86
+ this.display.addChatMessage("系统", `Actor ID 已更新: ${args[0]}`);
87
+ }
88
+ else {
89
+ this.display.addChatMessage("系统", `当前 Actor: ${this.state.actor.id}`);
90
+ }
91
+ }
92
+ async handleRecall(query) {
93
+ if (!this.am) {
94
+ this.display.addChatMessage("错误", "agent-memory 未初始化");
95
+ return;
96
+ }
97
+ if (!query) {
98
+ this.display.addChatMessage("系统", "请输入查询内容,例如: /recall 发布流程是什么?");
99
+ return;
100
+ }
101
+ try {
102
+ this.display.addChatMessage("系统", `正在召回记忆: "${query}"...`);
103
+ const result = await this.am.recall({
104
+ query,
105
+ actor: this.state.actor,
106
+ scope: this.state.scope,
107
+ topK: 10,
108
+ includeMemory: true,
109
+ includeDocs: false,
110
+ });
111
+ // Update memories display
112
+ this.updateMemories(result.memory);
113
+ this.display.updateMemoryDisplay(result.memory);
114
+ // Show in chat
115
+ if (result.memory.length > 0) {
116
+ this.display.addChatMessage("召回", `找到 ${result.memory.length} 条记忆`);
117
+ result.memory.slice(0, 3).forEach((mem, idx) => {
118
+ this.display.addChatMessage("记忆", `${idx + 1}. [${mem.type}] ${mem.content.substring(0, 60)}...`);
119
+ });
120
+ if (result.memory.length > 3) {
121
+ this.display.addChatMessage("记忆", `... 还有 ${result.memory.length - 3} 条记忆`);
122
+ }
123
+ }
124
+ else {
125
+ this.display.addChatMessage("召回", "未找到相关记忆");
126
+ }
127
+ if (result.context) {
128
+ this.display.addChatMessage("Context", result.context.substring(0, 200) + (result.context.length > 200 ? "..." : ""));
129
+ }
130
+ }
131
+ catch (error) {
132
+ this.display.addChatMessage("错误", `召回失败: ${error}`);
133
+ }
134
+ }
135
+ quit() {
136
+ if (this.am) {
137
+ this.am.close();
138
+ }
139
+ return true;
140
+ }
141
+ }
142
+ exports.CommandHandler = CommandHandler;
143
+ //# sourceMappingURL=command-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-handler.js","sourceRoot":"","sources":["../../../src/cli/commands/command-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { ChatConsole } from "./chat";
2
+ export { SplitScreenChat } from "./chat-split";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SplitScreenChat = exports.ChatConsole = void 0;
4
+ var chat_1 = require("./chat");
5
+ Object.defineProperty(exports, "ChatConsole", { enumerable: true, get: function () { return chat_1.ChatConsole; } });
6
+ var chat_split_1 = require("./chat-split");
7
+ Object.defineProperty(exports, "SplitScreenChat", { enumerable: true, get: function () { return chat_split_1.SplitScreenChat; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;AAAA,+BAAqC;AAA5B,mGAAA,WAAW,OAAA;AACpB,2CAA+C;AAAtC,6GAAA,eAAe,OAAA"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Display manager for split-screen chat UI
3
+ */
4
+ import { MemoryItem } from "../../types";
5
+ export declare class DisplayManager {
6
+ private chatBox;
7
+ private memoryBox;
8
+ private statusBar;
9
+ private screen;
10
+ constructor(chatBox: any, memoryBox: any, statusBar: any, screen: any);
11
+ private chatHistory;
12
+ addChatMessage(sender: string, message: string): void;
13
+ updateChatDisplay(): void;
14
+ updateMemoryDisplay(memories: MemoryItem[]): void;
15
+ updateStatusBar(actorId: string, scope: any, memoryCount: number): void;
16
+ clearChatHistory(): void;
17
+ }
18
+ //# sourceMappingURL=display-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-manager.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/display-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,qBAAa,cAAc;IAEvB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM;gBAHN,OAAO,EAAE,GAAG,EACZ,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,GAAG,EACd,MAAM,EAAE,GAAG;IAGrB,OAAO,CAAC,WAAW,CAAgB;IAEnC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IASrD,iBAAiB,IAAI,IAAI;IAOzB,mBAAmB,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI;IA4BjD,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAYvE,gBAAgB,IAAI,IAAI;CAIzB"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ /**
3
+ * Display manager for split-screen chat UI
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DisplayManager = void 0;
7
+ class DisplayManager {
8
+ constructor(chatBox, memoryBox, statusBar, screen) {
9
+ this.chatBox = chatBox;
10
+ this.memoryBox = memoryBox;
11
+ this.statusBar = statusBar;
12
+ this.screen = screen;
13
+ this.chatHistory = [];
14
+ }
15
+ addChatMessage(sender, message) {
16
+ const timestamp = new Date().toLocaleTimeString();
17
+ this.chatHistory.push(`[${timestamp}] ${sender}: ${message}`);
18
+ if (this.chatHistory.length > 100) {
19
+ this.chatHistory.shift();
20
+ }
21
+ this.updateChatDisplay();
22
+ }
23
+ updateChatDisplay() {
24
+ const content = "=== Chat History ===\n\n" + this.chatHistory.join("\n");
25
+ this.chatBox.setContent(content);
26
+ this.chatBox.setScrollPerc(100);
27
+ this.screen.render();
28
+ }
29
+ updateMemoryDisplay(memories) {
30
+ if (memories.length === 0) {
31
+ this.memoryBox.setContent("=== Memories ===\n\nNo memories yet.\n\nType a message to store memories.");
32
+ this.screen.render();
33
+ return;
34
+ }
35
+ const lines = [`=== Memories (${memories.length}) ===\n`];
36
+ memories.forEach((mem, idx) => {
37
+ const typeStr = `[${mem.type}]`;
38
+ const confStr = mem.confidence ? ` (${(mem.confidence * 100).toFixed(0)}%)` : "";
39
+ const content = mem.content.length > 60
40
+ ? mem.content.substring(0, 60) + "..."
41
+ : mem.content;
42
+ lines.push(`${idx + 1}. ${typeStr}${confStr}`);
43
+ lines.push(` ${content}`);
44
+ if (mem.tags && mem.tags.length > 0) {
45
+ lines.push(` Tags: ${mem.tags.join(", ")}`);
46
+ }
47
+ lines.push("");
48
+ });
49
+ this.memoryBox.setContent(lines.join("\n"));
50
+ this.memoryBox.setScrollPerc(0);
51
+ this.screen.render();
52
+ }
53
+ updateStatusBar(actorId, scope, memoryCount) {
54
+ const scopeStr = [
55
+ scope.projectId,
56
+ scope.channelId,
57
+ scope.threadId,
58
+ ].filter(Boolean).join("/") || "default";
59
+ const content = `Agent Memory Chat | Actor: ${actorId} | Scope: ${scopeStr} | Memories: ${memoryCount}`;
60
+ this.statusBar.setContent(content);
61
+ this.screen.render();
62
+ }
63
+ clearChatHistory() {
64
+ this.chatHistory = [];
65
+ this.updateChatDisplay();
66
+ }
67
+ }
68
+ exports.DisplayManager = DisplayManager;
69
+ //# sourceMappingURL=display-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-manager.js","sourceRoot":"","sources":["../../../src/cli/ui/display-manager.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAIH,MAAa,cAAc;IACzB,YACU,OAAY,EACZ,SAAc,EACd,SAAc,EACd,MAAW;QAHX,YAAO,GAAP,OAAO,CAAK;QACZ,cAAS,GAAT,SAAS,CAAK;QACd,cAAS,GAAT,SAAS,CAAK;QACd,WAAM,GAAN,MAAM,CAAK;QAGb,gBAAW,GAAa,EAAE,CAAC;IAFhC,CAAC;IAIJ,cAAc,CAAC,MAAc,EAAE,OAAe;QAC5C,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAClD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,SAAS,KAAK,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,iBAAiB;QACf,MAAM,OAAO,GAAG,0BAA0B,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAED,mBAAmB,CAAC,QAAsB;QACxC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,2EAA2E,CAAC,CAAC;YACvG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAa,CAAC,iBAAiB,QAAQ,CAAC,MAAM,SAAS,CAAC,CAAC;QAEpE,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC5B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC;YAChC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACjF,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE;gBACrC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;gBACtC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,OAAO,GAAG,OAAO,EAAE,CAAC,CAAC;YAC/C,KAAK,CAAC,IAAI,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;YAC5B,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChD,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAED,eAAe,CAAC,OAAe,EAAE,KAAU,EAAE,WAAmB;QAC9D,MAAM,QAAQ,GAAG;YACf,KAAK,CAAC,SAAS;YACf,KAAK,CAAC,SAAS;YACf,KAAK,CAAC,QAAQ;SACf,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;QAEzC,MAAM,OAAO,GAAG,8BAA8B,OAAO,aAAa,QAAQ,gBAAgB,WAAW,EAAE,CAAC;QACxG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;CACF;AAtED,wCAsEC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Screen layout components for split-screen chat
3
+ */
4
+ export interface ScreenComponents {
5
+ screen: any;
6
+ statusBar: any;
7
+ chatBox: any;
8
+ memoryBox: any;
9
+ inputBox: any;
10
+ }
11
+ export declare function createScreenLayout(): ScreenComponents;
12
+ //# sourceMappingURL=screen-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screen-layout.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/screen-layout.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,GAAG,CAAC;IACZ,SAAS,EAAE,GAAG,CAAC;IACf,OAAO,EAAE,GAAG,CAAC;IACb,SAAS,EAAE,GAAG,CAAC;IACf,QAAQ,EAAE,GAAG,CAAC;CACf;AAED,wBAAgB,kBAAkB,IAAI,gBAAgB,CAuHrD"}