downcity 1.0.0 → 1.0.3

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 CHANGED
@@ -15,45 +15,116 @@ npm install downcity
15
15
  ### 创造你的第一个英雄
16
16
 
17
17
  ```ts
18
- import { Hero, Knowledge, Model } from "downcity";
18
+ // 创建一个provider
19
+ const provider = createOpenAI({
20
+ apiKey: process.env.API_KEY,
21
+ baseURL: process.env.BASE_URL,
22
+ });
19
23
 
20
- const hero = Hero.create();
24
+ // 一个model chat
25
+ const model = provider.chat("deepseek-v3.1");
21
26
 
22
- // system prompt
23
- hero.avatar("我是一个新的英雄");
24
- // 设置ai-sdk的tool
25
- hero.model();
26
- // 学习 ai-sdk的tool
27
- hero.study();
27
+ // 创建一个hero
28
+ const hero = Hero.create().avatar("我是一个新的英雄").model(model);
28
29
 
29
- // 准备好: 直接暴露一个端口
30
- await hero.ready(5000);
30
+ const res = await hero.chat("hello, 你好👋");
31
+ console.log(`hero:${res}`);
32
+ ```
31
33
 
32
- const memory = new Memory();
33
- hero.memory(memory);
34
- hero.session(memory.lastSession());
35
- const res = await hero.chat("你好");
36
- console.log(res);
34
+ ## 使用工具
35
+
36
+ ```typescript
37
+ const tools: Record<string, Tool> = {
38
+ // ai-sdk 的 tool
39
+ get_current_time: tool({}),
40
+ };
41
+
42
+ hero.study(tools);
43
+ const res = await hero.chat("现在几点了?");
44
+ console.log(`hero:${res}`);
37
45
  ```
38
46
 
47
+ # Session 与 Memory
48
+
49
+ Memory 是 Session 的管理器。维护 hero/agent 的会话。
50
+
51
+ Hero 实例中会维护一个 Session 对象。
52
+
53
+ 当 hero 操作 session 的时候, memory 中会操作 session。
54
+
55
+ ## Session
56
+
57
+ ## Memory
58
+
59
+ 当不使用 memory 的时候。
60
+
39
61
  ```typescript
40
- import { Knowledge, Memory } from "downcity";
62
+ const hero = Hero.create().avatar("你是一个英雄").model(model);
63
+ const old_id = hero.session.id;
64
+ // hero实例中的 _session 是一个当前的session.
65
+ const res = await hero.chat("你好, 我叫wangenius");
66
+ console.log(`hero:${res}`);
67
+ // 新建对话并且切换到新会话。 原来的会话放到的 memory 中管理。 renew 返回新建的会话id。
68
+ const id = hero.renew();
69
+ const res = await hero.chat("我叫什么?");
70
+ console.log(`hero:${res}`); // hero并不知道我叫什么,因为不知道。
71
+
72
+ // 切换到原来的会话中 hero 将 memory 中的对应的id 的session 放到了 hero._session 中。
73
+ hero.switch(old_id);
74
+ const res = await hero.chat("我叫什么?");
75
+ console.log(`hero:${res}`); // hero 知道我叫 wangenius。
76
+ ```
77
+
78
+ 以上使用, hero 实例中活创建默认的 `new Memory()`, 此时 Memory 的所有 session 都在内存中维护。
79
+
80
+ 且当某个 hero 的实例中的 session 更新后,同步会更新到 memory 中。 但是注意: memory 中更新后,并不会更新到当前使用这个 session 的实例。
41
81
 
42
- const knowledge = Knowledge.create();
82
+ ```ts
83
+ hero.memory(new Memory());
84
+ ```
85
+
86
+ 以上是等价的。
43
87
 
44
- const tools = knowledge.tool();
88
+ ```ts
89
+ // 切换会话
90
+ hero.switch("会话id");
91
+ // 新建会话并切换到新会话
92
+ hero.renew();
93
+ // 会话列表
94
+ hero.sessions();
95
+ // 删除列表
96
+ hero.remove("会话id");
97
+ // 清除所有会话
98
+ hero.clear();
99
+ ```
45
100
 
101
+ memory 可以在多个 hero 之间使用:
102
+
103
+ ```ts
46
104
  const memory = new Memory();
105
+ const hero1 = Hero.create().memory(memory);
106
+ const hero2 = Hero.create().memory(memory);
107
+ ```
47
108
 
48
- hero.memory(memory);
109
+ ```ts
110
+ const memory1 = new Memory();
111
+ const hero1 = Hero.create().memory(memory1);
112
+
113
+ const memory2 = new Memory();
114
+ const hero2 = Hero.create().memory(memory2);
115
+ ```
49
116
 
50
- // ai-sdk 的tool
51
- const tool = createTool({});
117
+ 持久化存储。
52
118
 
53
- hero.study(tools);
54
- hero.study(tool);
119
+ ```typescript
120
+ const persistor = new LibPersistor({
121
+ filePath: "./memory.db",
122
+ });
123
+ const memory = new Memory(persistor);
124
+ hero.memory(memory);
55
125
 
56
- const hero2 = new Hero();
57
- hero2.memory(memory);
58
- hero2.session(memory.newSession());
59
126
  ```
127
+
128
+ 当持久化存储的时候, 会将 session 存储到对应的持久化数据库中。
129
+
130
+ 此时 Memory 不会提前加载所有的数据库中的 session。 只会打开对应的 session 到内存中。 并且超过 20 个的时候,会关掉之前的。
package/dist/Hero.d.ts CHANGED
@@ -1,21 +1,14 @@
1
1
  import { LanguageModel, Tool } from "ai";
2
2
  import { Memory } from "./Memory.js";
3
- export interface Session {
4
- id: string;
5
- messages: Array<{
6
- role: "user" | "assistant" | "system";
7
- content: string;
8
- timestamp: Date;
9
- }>;
10
- createdAt: Date;
11
- updatedAt: Date;
12
- }
3
+ import z from "zod";
4
+ import { Session } from "./Session.js";
5
+ import { SessionInfo } from "./store/Persistor.js";
13
6
  export declare class Hero {
14
7
  private _model;
15
8
  private _system;
16
9
  private _tools;
17
- private _memory?;
18
- private _currentSession?;
10
+ private _memory;
11
+ private _session;
19
12
  private constructor();
20
13
  /**
21
14
  * 创建一个新的英雄实例
@@ -37,10 +30,6 @@ export declare class Hero {
37
30
  * 设置记忆系统
38
31
  */
39
32
  memory(memory: Memory): Hero;
40
- /**
41
- * 设置当前会话
42
- */
43
- session(session: Session): Hero;
44
33
  /**
45
34
  * 与英雄对话
46
35
  */
@@ -48,7 +37,7 @@ export declare class Hero {
48
37
  /**
49
38
  * 生成JSON对象
50
39
  */
51
- json<T>(prompt: string, schema: any): Promise<T>;
40
+ json<T>(prompt: string, schema: z.Schema<T>): Promise<T>;
52
41
  /**
53
42
  * 基于特定标准进行判断
54
43
  */
@@ -57,8 +46,32 @@ export declare class Hero {
57
46
  * 启动服务器
58
47
  */
59
48
  ready(port?: number): Promise<void>;
49
+ /**
50
+ * 新建会话并切换
51
+ */
52
+ renew(): Session;
53
+ /**
54
+ * 切换会话
55
+ */
56
+ switch(id: string): boolean;
57
+ /**
58
+ * 获取所有会话
59
+ */
60
+ sessions(): SessionInfo[];
61
+ /**
62
+ * 删除会话
63
+ */
64
+ remove(id: string): boolean;
65
+ /**
66
+ * 清空所有会話
67
+ */
68
+ clear(): void;
60
69
  get systemPrompt(): string;
70
+ /**
71
+ * 获取当前会话ID
72
+ */
73
+ get currentSessionId(): string | undefined;
61
74
  get tools(): string[];
62
- get currentSession(): Session | undefined;
75
+ get session(): Session;
63
76
  }
64
77
  //# sourceMappingURL=Hero.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Hero.d.ts","sourceRoot":"","sources":["../src/Hero.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgC,IAAI,EAAe,MAAM,IAAI,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;QACtC,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,IAAI,CAAC;KACjB,CAAC,CAAC;IACH,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,qBAAa,IAAI;IACf,OAAO,CAAC,MAAM,CAAgD;IAC9D,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,eAAe,CAAC,CAAU;IAElC,OAAO;IAEP;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,IAAI;IAIrB;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK5B;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAKjC;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;IAKxC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK5B;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAK/B;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0C5C;;OAEG;IACG,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;IAoBtD;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqBhE;;OAEG;IACG,KAAK,CAAC,IAAI,GAAE,MAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAS/C,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,KAAK,IAAI,MAAM,EAAE,CAEpB;IAED,IAAI,cAAc,IAAI,OAAO,GAAG,SAAS,CAExC;CACF"}
1
+ {"version":3,"file":"Hero.d.ts","sourceRoot":"","sources":["../src/Hero.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAGb,IAAI,EAGL,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,qBAAa,IAAI;IAEf,OAAO,CAAC,MAAM,CAAgD;IAE9D,OAAO,CAAC,OAAO,CAAsB;IAErC,OAAO,CAAC,MAAM,CAA4B;IAE1C,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,QAAQ,CAAU;IAE1B,OAAO;IAKP;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,IAAI;IAIrB;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK5B;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAKjC;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;IAKxC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK5B;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkC5C;;OAEG;IACG,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAoB9D;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqBhE;;OAEG;IACG,KAAK,CAAC,IAAI,GAAE,MAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/C;;OAEG;IACH,KAAK,IAAI,OAAO;IAMhB;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAS3B;;OAEG;IACH,QAAQ,IAAI,WAAW,EAAE;IAIzB;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAQ3B;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;OAEG;IACH,IAAI,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAEzC;IAED,IAAI,KAAK,IAAI,MAAM,EAAE,CAEpB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;CACF"}
package/dist/Hero.js CHANGED
@@ -1,12 +1,21 @@
1
- import { generateText, generateObject, stepCountIs } from "ai";
1
+ import { generateText, generateObject, stepCountIs, } from "ai";
2
+ import { Memory } from "./Memory.js";
2
3
  import { createOpenAI } from "@ai-sdk/openai";
3
4
  export class Hero {
5
+ // 模型
4
6
  _model = createOpenAI().chat("gpt-4o");
7
+ // 系统提示词
5
8
  _system = "你是一个智能助手";
9
+ // 工具
6
10
  _tools = {};
11
+ // 持久记忆
7
12
  _memory;
8
- _currentSession;
9
- constructor() { }
13
+ // 会话
14
+ _session;
15
+ constructor() {
16
+ this._memory = new Memory();
17
+ this._session = this._memory.createSession();
18
+ }
10
19
  /**
11
20
  * 创建一个新的英雄实例
12
21
  */
@@ -41,47 +50,33 @@ export class Hero {
41
50
  this._memory = memory;
42
51
  return this;
43
52
  }
44
- /**
45
- * 设置当前会话
46
- */
47
- session(session) {
48
- this._currentSession = session;
49
- return this;
50
- }
51
53
  /**
52
54
  * 与英雄对话
53
55
  */
54
56
  async chat(message) {
55
- if (!this._model) {
56
- throw new Error("请先设置语言模型");
57
- }
58
57
  try {
59
- // 添加消息到当前会话
60
- if (this._currentSession) {
61
- this._currentSession.messages.push({
62
- role: "user",
63
- content: message,
64
- timestamp: new Date(),
65
- });
66
- this._currentSession.updatedAt = new Date();
67
- }
68
- // 调用AI生成回复,启用多步调用来自动处理工具调用
58
+ // 添加用户消息到当前会话
59
+ const userMessage = {
60
+ role: "user",
61
+ content: message,
62
+ };
63
+ this._session.messages.push(userMessage);
64
+ this._session.updatedAt = new Date();
65
+ // 调用AI生成回复,传递完整的对话历史以保持上下文记忆
69
66
  const result = await generateText({
70
67
  model: this._model,
71
68
  system: this._system,
72
- prompt: message,
69
+ messages: this._session.messages,
73
70
  tools: this._tools,
74
71
  stopWhen: stepCountIs(5), // 允许最多5步的工具调用
75
72
  });
76
- // 添加回复到当前会话
77
- if (this._currentSession) {
78
- this._currentSession.messages.push({
79
- role: "assistant",
80
- content: result.text,
81
- timestamp: new Date(),
82
- });
83
- this._currentSession.updatedAt = new Date();
84
- }
73
+ const assistantMessage = {
74
+ role: "assistant",
75
+ content: result.text,
76
+ };
77
+ this._session.messages.push(assistantMessage);
78
+ this._session.updatedAt = new Date();
79
+ this._memory.updateSession(this._session);
85
80
  return result.text;
86
81
  }
87
82
  catch (error) {
@@ -100,7 +95,7 @@ export class Hero {
100
95
  const { object } = await generateObject({
101
96
  model: this._model,
102
97
  system: this._system,
103
- prompt,
98
+ prompt: `${prompt}\n\n请根据以上提示生成符合要求的JSON对象。`,
104
99
  schema,
105
100
  });
106
101
  return object;
@@ -139,17 +134,66 @@ export class Hero {
139
134
  console.log(`🏰 DownCity Hero is ready on port ${port}`);
140
135
  console.log(`🦸 Avatar: ${this._system}`);
141
136
  console.log(`🧠 Model: ${this._model ? "Configured" : "Not configured"}`);
142
- console.log(`🛠️ Tools: ${this._tools.length} tools loaded`);
137
+ console.log(`🛠️ Tools: ${Object.keys(this._tools).length} tools loaded`);
138
+ }
139
+ /**
140
+ * 新建会话并切换
141
+ */
142
+ renew() {
143
+ const newSession = this._memory.createSession();
144
+ this._session = newSession;
145
+ return newSession;
146
+ }
147
+ /**
148
+ * 切换会话
149
+ */
150
+ switch(id) {
151
+ const session = this._memory.getSession(id);
152
+ if (session) {
153
+ this._session = session;
154
+ return true;
155
+ }
156
+ return false;
157
+ }
158
+ /**
159
+ * 获取所有会话
160
+ */
161
+ sessions() {
162
+ return this._memory.getAllSessionsInfo();
163
+ }
164
+ /**
165
+ * 删除会话
166
+ */
167
+ remove(id) {
168
+ if (this._session.id === id) {
169
+ // 如果删除的是当前会话,则切换到一个新的会话
170
+ this.renew();
171
+ }
172
+ return this._memory.deleteSession(id);
173
+ }
174
+ /**
175
+ * 清空所有会話
176
+ */
177
+ clear() {
178
+ this._memory.clear();
179
+ // 清空后,创建一个新的默认会话
180
+ this._session = this._memory.createSession();
143
181
  }
144
182
  // Getters for debugging and inspection
145
183
  get systemPrompt() {
146
184
  return this._system;
147
185
  }
186
+ /**
187
+ * 获取当前会话ID
188
+ */
189
+ get currentSessionId() {
190
+ return this._session.id;
191
+ }
148
192
  get tools() {
149
193
  return Object.keys(this._tools);
150
194
  }
151
- get currentSession() {
152
- return this._currentSession;
195
+ get session() {
196
+ return this._session;
153
197
  }
154
198
  }
155
199
  //# sourceMappingURL=Hero.js.map
package/dist/Hero.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Hero.js","sourceRoot":"","sources":["../src/Hero.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Hero.js","sourceRoot":"","sources":["../src/Hero.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Tool } from "ai";
1
+ import { EmbeddingModel, Tool } from "ai";
2
2
  export interface VectorModelConfig {
3
3
  model: any;
4
4
  dimensions?: number;
@@ -47,7 +47,7 @@ export declare class Knowledge {
47
47
  /**
48
48
  * 配置向量模型
49
49
  */
50
- model(config: VectorModelConfig): Knowledge;
50
+ model(model: EmbeddingModel): Knowledge;
51
51
  /**
52
52
  * 保存数据到本地文件
53
53
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Knowledge.d.ts","sourceRoot":"","sources":["../src/Knowledge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Knowledge.d.ts","sourceRoot":"","sources":["../src/Knowledge.ts"],"names":[],"mappings":"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"}
package/dist/Knowledge.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { embed, tool } from "ai";
2
- import z from "zod";
3
2
  import * as fs from "fs/promises";
3
+ import z from "zod";
4
4
  export class Knowledge {
5
5
  knowledgeBase = new Map();
6
6
  categories = new Set();
@@ -85,12 +85,8 @@ export class Knowledge {
85
85
  /**
86
86
  * 配置向量模型
87
87
  */
88
- model(config) {
89
- this.options.vectorModel = { ...this.options.vectorModel, ...config };
90
- // 设置embedding模型
91
- if (config.model) {
92
- this.embeddingModel = config.model;
93
- }
88
+ model(model) {
89
+ this.embeddingModel = model;
94
90
  return this;
95
91
  }
96
92
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Knowledge.js","sourceRoot":"","sources":["../src/Knowledge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Knowledge.js","sourceRoot":"","sources":["../src/Knowledge.ts"],"names":[],"mappings":"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"}
package/dist/Memory.d.ts CHANGED
@@ -1,30 +1,27 @@
1
- import { Session } from "./Hero.js";
2
- export interface MemoryOptions {
3
- maxSessions?: number;
4
- persistToFile?: boolean;
5
- filePath?: string;
6
- }
1
+ import { Session } from "./Session.js";
2
+ import { Persistor } from "./store/Persistor.js";
7
3
  export declare class Memory {
4
+ private persistor?;
8
5
  private sessions;
9
- private lastSessionId?;
10
- private options;
11
- constructor(options?: MemoryOptions);
6
+ private maxSessions;
7
+ constructor(persistor?: Persistor);
12
8
  /**
13
9
  * 创建新的会话
14
10
  */
15
- newSession(id?: string): Session;
16
- /**
17
- * 获取最后一个会话,如果不存在则创建新会话
18
- */
19
- lastSession(): Session;
11
+ createSession(): Session;
20
12
  /**
21
13
  * 根据ID获取会话
22
14
  */
23
15
  getSession(id: string): Session | undefined;
16
+ /**
17
+ * 更新会话(当消息变更时调用)
18
+ */
19
+ updateSession(session: Session): boolean;
24
20
  /**
25
21
  * 获取所有会话
26
22
  */
27
23
  getAllSessions(): Session[];
24
+ getAllSessionsInfo(): import("./store/Persistor.js").SessionInfo[];
28
25
  /**
29
26
  * 删除会话
30
27
  */
@@ -41,21 +38,9 @@ export declare class Memory {
41
38
  totalMessages: number;
42
39
  lastActivity: Date | null;
43
40
  };
44
- /**
45
- * 生成唯一的会话ID
46
- */
47
- private generateSessionId;
48
41
  /**
49
42
  * 清理旧会话
50
43
  */
51
44
  private cleanupOldSessions;
52
- /**
53
- * 导出会话数据
54
- */
55
- export(): any;
56
- /**
57
- * 导入会话数据
58
- */
59
- import(data: any): void;
60
45
  }
61
46
  //# sourceMappingURL=Memory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Memory.d.ts","sourceRoot":"","sources":["../src/Memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,OAAO,CAAgB;gBAEnB,OAAO,GAAE,aAAkB;IAQvC;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAoBhC;;OAEG;IACH,WAAW,IAAI,OAAO;IAOtB;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAI3C;;OAEG;IACH,cAAc,IAAI,OAAO,EAAE;IAK3B;;OAEG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAUlC;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,QAAQ,IAAI;QACV,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;KAC3B;IAmBD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACH,MAAM,IAAI,GAAG;IAQb;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;CAwBxB"}
1
+ {"version":3,"file":"Memory.d.ts","sourceRoot":"","sources":["../src/Memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,qBAAa,MAAM;IACjB,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,WAAW,CAAc;gBAErB,SAAS,CAAC,EAAE,SAAS;IAIjC;;OAEG;IACH,aAAa,IAAI,OAAO;IAsBxB;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAgB3C;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAUxC;;OAEG;IACH,cAAc,IAAI,OAAO,EAAE;IAe3B,kBAAkB;IAOlB;;OAEG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAQlC;;OAEG;IACH,KAAK,IAAI,IAAI;IAgBb;;OAEG;IACH,QAAQ,IAAI;QACV,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;KAC3B;IAoBD;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAS3B"}
package/dist/Memory.js CHANGED
@@ -1,82 +1,116 @@
1
+ import { v4 } from "uuid";
1
2
  export class Memory {
3
+ persistor;
2
4
  sessions = new Map();
3
- lastSessionId;
4
- options;
5
- constructor(options = {}) {
6
- this.options = {
7
- maxSessions: 100,
8
- persistToFile: false,
9
- ...options
10
- };
5
+ maxSessions = 20;
6
+ constructor(persistor) {
7
+ this.persistor = persistor;
11
8
  }
12
9
  /**
13
10
  * 创建新的会话
14
11
  */
15
- newSession(id) {
16
- const sessionId = id || this.generateSessionId();
12
+ createSession() {
17
13
  const session = {
18
- id: sessionId,
14
+ id: v4(),
19
15
  messages: [],
20
16
  createdAt: new Date(),
21
- updatedAt: new Date()
17
+ updatedAt: new Date(),
22
18
  };
23
- this.sessions.set(sessionId, session);
24
- this.lastSessionId = sessionId;
19
+ this.sessions.set(session.id, session);
20
+ if (this.persistor) {
21
+ this.persistor.save(session);
22
+ }
25
23
  // 如果会话数量超过限制,删除最旧的会话
26
- if (this.sessions.size > (this.options.maxSessions || 100)) {
24
+ if (this.sessions.size > this.maxSessions) {
27
25
  this.cleanupOldSessions();
28
26
  }
29
27
  return session;
30
28
  }
31
29
  /**
32
- * 获取最后一个会话,如果不存在则创建新会话
30
+ * 根据ID获取会话
33
31
  */
34
- lastSession() {
35
- if (this.lastSessionId && this.sessions.has(this.lastSessionId)) {
36
- return this.sessions.get(this.lastSessionId);
32
+ getSession(id) {
33
+ if (this.sessions.has(id)) {
34
+ return this.sessions.get(id);
37
35
  }
38
- return this.newSession();
36
+ if (this.persistor) {
37
+ const session = this.persistor.load(id);
38
+ if (session) {
39
+ this.sessions.set(id, session);
40
+ return session;
41
+ }
42
+ }
43
+ return undefined;
39
44
  }
40
45
  /**
41
- * 根据ID获取会话
46
+ * 更新会话(当消息变更时调用)
42
47
  */
43
- getSession(id) {
44
- return this.sessions.get(id);
48
+ updateSession(session) {
49
+ session.updatedAt = new Date();
50
+ this.sessions.set(session.id, session);
51
+ if (this.persistor) {
52
+ this.persistor.save(session);
53
+ }
54
+ return true;
45
55
  }
46
56
  /**
47
57
  * 获取所有会话
48
58
  */
49
59
  getAllSessions() {
50
- return Array.from(this.sessions.values())
51
- .sort((a, b) => b.updatedAt.getTime() - a.updatedAt.getTime());
60
+ if (this.persistor) {
61
+ const persistedSessions = this.persistor.getAll();
62
+ for (const session of persistedSessions) {
63
+ if (!this.sessions.has(session.id)) {
64
+ this.sessions.set(session.id, session);
65
+ }
66
+ }
67
+ }
68
+ const sessions = Array.from(this.sessions.values());
69
+ return sessions.sort((a, b) => b.updatedAt.getTime() - a.updatedAt.getTime());
70
+ }
71
+ getAllSessionsInfo() {
72
+ if (this.persistor) {
73
+ return this.persistor.getAllSessionsInfo();
74
+ }
75
+ return [];
52
76
  }
53
77
  /**
54
78
  * 删除会话
55
79
  */
56
80
  deleteSession(id) {
57
- const deleted = this.sessions.delete(id);
58
- if (deleted && this.lastSessionId === id) {
59
- // 如果删除的是最后一个会话,更新lastSessionId
60
- const allSessions = this.getAllSessions();
61
- this.lastSessionId = allSessions.length > 0 ? allSessions[0].id : undefined;
81
+ this.sessions.delete(id);
82
+ if (this.persistor) {
83
+ this.persistor.delete(id);
62
84
  }
63
- return deleted;
85
+ return true;
64
86
  }
65
87
  /**
66
88
  * 清空所有会话
67
89
  */
68
90
  clear() {
91
+ const sessionIds = Array.from(this.sessions.keys());
69
92
  this.sessions.clear();
70
- this.lastSessionId = undefined;
93
+ if (this.persistor) {
94
+ // 在内存中先获取所有session id
95
+ for (const id of sessionIds) {
96
+ this.persistor.delete(id);
97
+ }
98
+ // 如果 persistor 中还有,也一并删除
99
+ const persistedSessions = this.persistor.getAll();
100
+ for (const session of persistedSessions) {
101
+ this.persistor.delete(session.id);
102
+ }
103
+ }
71
104
  }
72
105
  /**
73
106
  * 获取会话统计信息
74
107
  */
75
108
  getStats() {
76
- const totalSessions = this.sessions.size;
109
+ const sessions = this.getAllSessions();
110
+ const totalSessions = sessions.length;
77
111
  let totalMessages = 0;
78
112
  let lastActivity = null;
79
- for (const session of this.sessions.values()) {
113
+ for (const session of sessions) {
80
114
  totalMessages += session.messages.length;
81
115
  if (!lastActivity || session.updatedAt > lastActivity) {
82
116
  lastActivity = session.updatedAt;
@@ -85,63 +119,19 @@ export class Memory {
85
119
  return {
86
120
  totalSessions,
87
121
  totalMessages,
88
- lastActivity
122
+ lastActivity,
89
123
  };
90
124
  }
91
- /**
92
- * 生成唯一的会话ID
93
- */
94
- generateSessionId() {
95
- return `session_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
96
- }
97
125
  /**
98
126
  * 清理旧会话
99
127
  */
100
128
  cleanupOldSessions() {
101
129
  const sessions = this.getAllSessions();
102
- const maxSessions = this.options.maxSessions || 100;
103
- if (sessions.length > maxSessions) {
104
- const sessionsToDelete = sessions.slice(maxSessions);
130
+ if (sessions.length > this.maxSessions) {
131
+ const sessionsToDelete = sessions.slice(this.maxSessions);
105
132
  for (const session of sessionsToDelete) {
106
- this.sessions.delete(session.id);
107
- }
108
- }
109
- }
110
- /**
111
- * 导出会话数据
112
- */
113
- export() {
114
- return {
115
- sessions: Array.from(this.sessions.entries()),
116
- lastSessionId: this.lastSessionId,
117
- exportedAt: new Date().toISOString()
118
- };
119
- }
120
- /**
121
- * 导入会话数据
122
- */
123
- import(data) {
124
- if (data.sessions && Array.isArray(data.sessions)) {
125
- this.sessions.clear();
126
- for (const [id, session] of data.sessions) {
127
- // 确保日期对象正确转换
128
- if (session.createdAt && typeof session.createdAt === 'string') {
129
- session.createdAt = new Date(session.createdAt);
130
- }
131
- if (session.updatedAt && typeof session.updatedAt === 'string') {
132
- session.updatedAt = new Date(session.updatedAt);
133
- }
134
- // 转换消息中的时间戳
135
- if (session.messages) {
136
- session.messages.forEach((msg) => {
137
- if (msg.timestamp && typeof msg.timestamp === 'string') {
138
- msg.timestamp = new Date(msg.timestamp);
139
- }
140
- });
141
- }
142
- this.sessions.set(id, session);
133
+ this.deleteSession(session.id);
143
134
  }
144
- this.lastSessionId = data.lastSessionId;
145
135
  }
146
136
  }
147
137
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Memory.js","sourceRoot":"","sources":["../src/Memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Memory.js","sourceRoot":"","sources":["../src/Memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare class Session {
2
+ id: string;
3
+ messages: any[];
4
+ createdAt: Date;
5
+ updatedAt: Date;
6
+ constructor(id: string);
7
+ }
8
+ //# sourceMappingURL=Session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Session.d.ts","sourceRoot":"","sources":["../src/Session.ts"],"names":[],"mappings":"AAAA,qBAAa,OAAO;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;gBAEJ,EAAE,EAAE,MAAM;CAMvB"}
@@ -0,0 +1,13 @@
1
+ export class Session {
2
+ id;
3
+ messages;
4
+ createdAt;
5
+ updatedAt;
6
+ constructor(id) {
7
+ this.id = id;
8
+ this.messages = [];
9
+ this.createdAt = new Date();
10
+ this.updatedAt = new Date();
11
+ }
12
+ }
13
+ //# sourceMappingURL=Session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Session.js","sourceRoot":"","sources":["../src/Session.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,OAAO;IAClB,EAAE,CAAS;IACX,QAAQ,CAAQ;IAChB,SAAS,CAAO;IAChB,SAAS,CAAO;IAEhB,YAAY,EAAU;QACpB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC9B,CAAC;CACF"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env bun
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,96 @@
1
+ #!/usr/bin/env bun
2
+ import { Command } from "commander";
3
+ import pkg from "../package.json" with { type: "json" };
4
+ import chalk from "chalk";
5
+ import { Hero, Memory } from "./index.js";
6
+ import readline from "readline";
7
+ import { createOpenAI } from "@ai-sdk/openai";
8
+ import { log } from "console";
9
+ import { SQLitePersistor } from "./store/SQLitePersistor.js";
10
+ import { tool } from "ai";
11
+ import z from "zod";
12
+ const program = new Command();
13
+ // 设置基本信息
14
+ program
15
+ .name("downcity")
16
+ .description("downcity - talk with your hero")
17
+ // 支持 -v (小写) 与 --version,便于用户输入
18
+ .version(pkg.version, "-v, --version", "显示版本号");
19
+ // 添加欢迎信息
20
+ program.addHelpText("before", chalk.blue.bold(`
21
+ 🚀 DownCity : make your idea come true in 10 minutes
22
+ `));
23
+ // 注册命令
24
+ program.addCommand(new Command("chat").description("chat with the bot").action(async () => {
25
+ // 创建一个provider
26
+ const provider = createOpenAI({
27
+ apiKey: process.env.API_KEY,
28
+ baseURL: process.env.BASE_URL,
29
+ });
30
+ const memory = new Memory(new SQLitePersistor({
31
+ filePath: "./test.db",
32
+ }));
33
+ const tools = {
34
+ get_current_time: tool({
35
+ description: "获取当前时间",
36
+ inputSchema: z.object({}),
37
+ execute: () => {
38
+ return new Date().toLocaleString();
39
+ },
40
+ }),
41
+ };
42
+ // 一个model chat
43
+ const model = provider.chat("deepseek-v3.1");
44
+ const hero = Hero.create()
45
+ .model(model)
46
+ .memory(memory)
47
+ .study(tools)
48
+ .avatar("你是一个助手");
49
+ const rl = readline.createInterface({
50
+ input: process.stdin,
51
+ output: process.stdout,
52
+ });
53
+ const chatLoop = async () => {
54
+ rl.question(chalk.green("You: "), async (input) => {
55
+ if (input.trim() === "ls") {
56
+ log(hero.sessions());
57
+ chatLoop();
58
+ return;
59
+ }
60
+ if (input.trim() === "current") {
61
+ console.log(hero.session.id);
62
+ console.log(hero.session.messages);
63
+ chatLoop();
64
+ return;
65
+ }
66
+ if (input.trim() === "new") {
67
+ const session = hero.renew();
68
+ console.log(session);
69
+ chatLoop();
70
+ return;
71
+ }
72
+ if (input.trim() === "clear") {
73
+ hero.clear();
74
+ chatLoop();
75
+ return;
76
+ }
77
+ if (input.startsWith("switch")) {
78
+ const sessionId = input.split(" ")[1];
79
+ hero.switch(sessionId);
80
+ chatLoop();
81
+ return;
82
+ }
83
+ if (input.toLowerCase() === "exit") {
84
+ rl.close();
85
+ return;
86
+ }
87
+ const response = await hero.chat(input);
88
+ console.log(chalk.blue("Bot:"), response);
89
+ chatLoop();
90
+ });
91
+ };
92
+ chatLoop();
93
+ }));
94
+ // 解析命令行参数
95
+ program.parse();
96
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  export { Hero } from "./Hero.js";
2
2
  export { Memory } from "./Memory.js";
3
3
  export { Knowledge } from "./Knowledge.js";
4
- export type { Session } from "./Hero.js";
5
- export type { MemoryOptions } from "./Memory.js";
4
+ export { Session } from "./Session.js";
6
5
  export type { KnowledgeOptions, KnowledgeItem } from "./Knowledge.js";
7
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -2,4 +2,5 @@
2
2
  export { Hero } from "./Hero.js";
3
3
  export { Memory } from "./Memory.js";
4
4
  export { Knowledge } from "./Knowledge.js";
5
+ export { Session } from "./Session.js";
5
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Session } from "../Session.js";
2
+ export type SessionInfo = {
3
+ id: string;
4
+ createdAt: Date;
5
+ updatedAt: Date;
6
+ };
7
+ export declare abstract class Persistor {
8
+ abstract save(session: Session): void;
9
+ abstract load(id: string): Session | undefined;
10
+ abstract delete(id: string): void;
11
+ abstract getAll(): Session[];
12
+ abstract getAllSessionsInfo(): SessionInfo[];
13
+ }
14
+ //# sourceMappingURL=Persistor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Persistor.d.ts","sourceRoot":"","sources":["../../src/store/Persistor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,8BAAsB,SAAS;IAC7B,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAC9C,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IACjC,QAAQ,CAAC,MAAM,IAAI,OAAO,EAAE;IAC5B,QAAQ,CAAC,kBAAkB,IAAI,WAAW,EAAE;CAC7C"}
@@ -0,0 +1,3 @@
1
+ export class Persistor {
2
+ }
3
+ //# sourceMappingURL=Persistor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Persistor.js","sourceRoot":"","sources":["../../src/store/Persistor.ts"],"names":[],"mappings":"AAQA,MAAM,OAAgB,SAAS;CAM9B"}
@@ -0,0 +1,25 @@
1
+ import { Persistor } from "./Persistor.js";
2
+ import { Session } from "../Session.js";
3
+ export interface SQLitePersistorOptions {
4
+ filePath: string;
5
+ }
6
+ export declare class SQLitePersistor extends Persistor {
7
+ private db;
8
+ constructor(options: SQLitePersistorOptions);
9
+ save(session: Session): void;
10
+ load(id: string): Session | undefined;
11
+ /**
12
+ * 删除会话
13
+ */
14
+ delete(id: string): void;
15
+ /**
16
+ * 获取所有会话
17
+ */
18
+ getAll(): Session[];
19
+ getAllSessionsInfo(): {
20
+ id: any;
21
+ createdAt: Date;
22
+ updatedAt: Date;
23
+ }[];
24
+ }
25
+ //# sourceMappingURL=SQLitePersistor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLitePersistor.d.ts","sourceRoot":"","sources":["../../src/store/SQLitePersistor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,eAAgB,SAAQ,SAAS;IAC5C,OAAO,CAAC,EAAE,CAAW;gBAET,OAAO,EAAE,sBAAsB;IAa3C,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAY5B,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAgBrC;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKxB;;OAEG;IACH,MAAM,IAAI,OAAO,EAAE;IAYnB,kBAAkB;;;;;CAYnB"}
@@ -0,0 +1,64 @@
1
+ import { Database } from "bun:sqlite";
2
+ import { Persistor } from "./Persistor.js";
3
+ export class SQLitePersistor extends Persistor {
4
+ db;
5
+ constructor(options) {
6
+ super();
7
+ this.db = new Database(options.filePath, { create: true });
8
+ this.db.run(`
9
+ CREATE TABLE IF NOT EXISTS sessions (
10
+ id TEXT PRIMARY KEY,
11
+ messages TEXT NOT NULL,
12
+ createdAt TEXT NOT NULL,
13
+ updatedAt TEXT NOT NULL
14
+ );
15
+ `);
16
+ }
17
+ save(session) {
18
+ const stmt = this.db.prepare("INSERT OR REPLACE INTO sessions (id, messages, createdAt, updatedAt) VALUES (?, ?, ?, ?)");
19
+ stmt.run(session.id, JSON.stringify(session.messages), session.createdAt.toISOString(), session.updatedAt.toISOString());
20
+ }
21
+ load(id) {
22
+ const stmt = this.db.prepare("SELECT * FROM sessions WHERE id = ?");
23
+ const row = stmt.get(id);
24
+ if (row) {
25
+ return {
26
+ id: row.id,
27
+ messages: JSON.parse(row.messages),
28
+ createdAt: new Date(row.createdAt),
29
+ updatedAt: new Date(row.updatedAt),
30
+ };
31
+ }
32
+ return undefined;
33
+ }
34
+ /**
35
+ * 删除会话
36
+ */
37
+ delete(id) {
38
+ const stmt = this.db.prepare("DELETE FROM sessions WHERE id = ?");
39
+ stmt.run(id);
40
+ }
41
+ /**
42
+ * 获取所有会话
43
+ */
44
+ getAll() {
45
+ const stmt = this.db.prepare("SELECT * FROM sessions");
46
+ const rows = stmt.all();
47
+ return rows.map((row) => ({
48
+ id: row.id,
49
+ messages: JSON.parse(row.messages),
50
+ createdAt: new Date(row.createdAt),
51
+ updatedAt: new Date(row.updatedAt),
52
+ }));
53
+ }
54
+ getAllSessionsInfo() {
55
+ const stmt = this.db.prepare("SELECT id, createdAt, updatedAt FROM sessions");
56
+ const rows = stmt.all();
57
+ return rows.map((row) => ({
58
+ id: row.id,
59
+ createdAt: new Date(row.createdAt),
60
+ updatedAt: new Date(row.updatedAt),
61
+ }));
62
+ }
63
+ }
64
+ //# sourceMappingURL=SQLitePersistor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLitePersistor.js","sourceRoot":"","sources":["../../src/store/SQLitePersistor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAO3C,MAAM,OAAO,eAAgB,SAAQ,SAAS;IACpC,EAAE,CAAW;IAErB,YAAY,OAA+B;QACzC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;;;;;;;KAOX,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,OAAgB;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,0FAA0F,CAC3F,CAAC;QACF,IAAI,CAAC,GAAG,CACN,OAAO,CAAC,EAAE,EACV,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAChC,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,EAC/B,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,CAChC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,EAAU;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;QACpE,MAAM,GAAG,GAAQ,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAE9B,IAAI,GAAG,EAAE,CAAC;YACR,OAAO;gBACL,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAClC,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;gBAClC,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;aACnC,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAU;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACf,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QACvD,MAAM,IAAI,GAAU,IAAI,CAAC,GAAG,EAAE,CAAC;QAE/B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxB,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClC,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YAClC,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;SACnC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,kBAAkB;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,+CAA+C,CAChD,CAAC;QACF,MAAM,IAAI,GAAU,IAAI,CAAC,GAAG,EAAE,CAAC;QAE/B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxB,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YAClC,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;SACnC,CAAC,CAAC,CAAC;IACN,CAAC;CACF"}
package/package.json CHANGED
@@ -1,10 +1,13 @@
1
1
  {
2
2
  "name": "downcity",
3
- "version": "1.0.0",
3
+ "version": "1.0.3",
4
4
  "description": "A npm package for downcity agent framework",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
+ "bin": {
9
+ "downcity": "./dist/cli.js"
10
+ },
8
11
  "files": [
9
12
  "dist",
10
13
  "README.md",
@@ -13,6 +16,9 @@
13
16
  "scripts": {
14
17
  "build": "tsc",
15
18
  "dev": "tsc --watch",
19
+ "example": "node run-example.js",
20
+ "example:ts": "node --loader ts-node/esm example.ts",
21
+ "example:js": "npm run build && node dist/example.js",
16
22
  "docs:dev": "vitepress dev docs",
17
23
  "docs:build": "vitepress build docs",
18
24
  "docs:preview": "vitepress preview docs",
@@ -38,10 +44,17 @@
38
44
  "dependencies": {
39
45
  "@ai-sdk/openai": "^2.0.22",
40
46
  "ai": "^5.0.24",
47
+ "chalk": "^5.6.0",
41
48
  "chromadb": "^1.8.1",
49
+ "commander": "^14.0.0",
50
+ "dotenv": "^17.2.1",
51
+ "uuid": "^11.1.0",
42
52
  "zod": "^4.1.3"
43
53
  },
44
54
  "devDependencies": {
55
+ "@types/better-sqlite3": "^7.6.13",
56
+ "@types/bun": "^1.2.21",
57
+ "@types/commander": "^2.12.0",
45
58
  "@types/node": "^20.0.0",
46
59
  "typescript": "^5.0.0"
47
60
  },