downcity 1.0.4 → 1.0.6

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 (59) hide show
  1. package/dist/cli/index.d.ts +3 -0
  2. package/dist/cli/index.d.ts.map +1 -0
  3. package/dist/{cli.js → cli/index.js} +9 -8
  4. package/dist/cli/index.js.map +1 -0
  5. package/dist/{Knowledge.d.ts → codex/Codex.d.ts} +4 -4
  6. package/dist/codex/Codex.d.ts.map +1 -0
  7. package/dist/{Knowledge.js → codex/Codex.js} +7 -7
  8. package/dist/codex/Codex.js.map +1 -0
  9. package/dist/const.d.ts +2 -2
  10. package/dist/const.d.ts.map +1 -1
  11. package/dist/const.js +2 -2
  12. package/dist/const.js.map +1 -1
  13. package/dist/{Hero.d.ts → hero/Hero.d.ts} +11 -6
  14. package/dist/hero/Hero.d.ts.map +1 -0
  15. package/dist/{Hero.js → hero/Hero.js} +31 -18
  16. package/dist/hero/Hero.js.map +1 -0
  17. package/dist/index.d.ts +6 -5
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +6 -4
  20. package/dist/index.js.map +1 -1
  21. package/dist/utils/persistor/Persistor.d.ts +34 -0
  22. package/dist/utils/persistor/Persistor.d.ts.map +1 -0
  23. package/dist/utils/persistor/Persistor.js +8 -0
  24. package/dist/utils/persistor/Persistor.js.map +1 -0
  25. package/dist/utils/persistor/SQLitePersistor.d.ts +34 -0
  26. package/dist/utils/persistor/SQLitePersistor.d.ts.map +1 -0
  27. package/dist/utils/persistor/SQLitePersistor.js +80 -0
  28. package/dist/utils/persistor/SQLitePersistor.js.map +1 -0
  29. package/dist/vault/Session.d.ts +25 -0
  30. package/dist/vault/Session.d.ts.map +1 -0
  31. package/dist/vault/Session.js +47 -0
  32. package/dist/vault/Session.js.map +1 -0
  33. package/dist/vault/Vault.d.ts +59 -0
  34. package/dist/vault/Vault.d.ts.map +1 -0
  35. package/dist/{Memory.js → vault/Vault.js} +45 -55
  36. package/dist/vault/Vault.js.map +1 -0
  37. package/package.json +3 -3
  38. package/dist/Hero.d.ts.map +0 -1
  39. package/dist/Hero.js.map +0 -1
  40. package/dist/Knowledge.d.ts.map +0 -1
  41. package/dist/Knowledge.js.map +0 -1
  42. package/dist/Memory.d.ts +0 -46
  43. package/dist/Memory.d.ts.map +0 -1
  44. package/dist/Memory.js.map +0 -1
  45. package/dist/Session.d.ts +0 -8
  46. package/dist/Session.d.ts.map +0 -1
  47. package/dist/Session.js +0 -13
  48. package/dist/Session.js.map +0 -1
  49. package/dist/cli.d.ts +0 -3
  50. package/dist/cli.d.ts.map +0 -1
  51. package/dist/cli.js.map +0 -1
  52. package/dist/store/Persistor.d.ts +0 -14
  53. package/dist/store/Persistor.d.ts.map +0 -1
  54. package/dist/store/Persistor.js +0 -3
  55. package/dist/store/Persistor.js.map +0 -1
  56. package/dist/store/SQLitePersistor.d.ts +0 -30
  57. package/dist/store/SQLitePersistor.d.ts.map +0 -1
  58. package/dist/store/SQLitePersistor.js +0 -83
  59. package/dist/store/SQLitePersistor.js.map +0 -1
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env bun
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env bun
2
2
  import { Command } from "commander";
3
- import pkg from "../package.json" with { type: "json" };
3
+ import pkg from "../../package.json" with { type: "json" };
4
4
  import chalk from "chalk";
5
- import { Hero, Memory } from "./index.js";
5
+ import { Hero, Vault } from "../index.js";
6
6
  import readline from "readline";
7
7
  import { createOpenAI } from "@ai-sdk/openai";
8
8
  import { log } from "console";
9
- import { SQLitePersistor } from "./store/SQLitePersistor.js";
10
9
  import { tool } from "ai";
11
10
  import z from "zod";
11
+ import { SQLiteVaultPersistor } from "../vault/Vault.js";
12
12
  const program = new Command();
13
13
  // 设置基本信息
14
14
  program
@@ -37,7 +37,10 @@ program.addCommand(new Command("enter").description("enter in this game").action
37
37
  apiKey: process.env.API_KEY,
38
38
  baseURL: process.env.BASE_URL,
39
39
  });
40
- const memory = new Memory(new SQLitePersistor());
40
+ // 一个model chat
41
+ const model = provider.chat("qwen-turbo");
42
+ // 创建一个vault: 用来控制session
43
+ const vault = new Vault(new SQLiteVaultPersistor());
41
44
  const tools = {
42
45
  get_current_time: tool({
43
46
  description: "获取当前时间",
@@ -47,11 +50,9 @@ program.addCommand(new Command("enter").description("enter in this game").action
47
50
  },
48
51
  }),
49
52
  };
50
- // 一个model chat
51
- const model = provider.chat("qwen-turbo");
52
53
  const hero = Hero.create()
53
54
  .model(model)
54
- .memory(memory)
55
+ .vault(vault)
55
56
  .study(tools)
56
57
  .avatar("你是一个助手");
57
58
  const rl = readline.createInterface({
@@ -101,4 +102,4 @@ program.addCommand(new Command("enter").description("enter in this game").action
101
102
  }));
102
103
  // 解析命令行参数
103
104
  program.parse();
104
- //# sourceMappingURL=cli.js.map
105
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,7 @@ export interface KnowledgeItem {
27
27
  createdAt: Date;
28
28
  updatedAt: Date;
29
29
  }
30
- export declare class Knowledge {
30
+ export declare class Codex {
31
31
  private knowledgeBase;
32
32
  private categories;
33
33
  private options;
@@ -39,7 +39,7 @@ export declare class Knowledge {
39
39
  /**
40
40
  * 创建Knowledge实例
41
41
  */
42
- static create(options?: KnowledgeOptions): Knowledge;
42
+ static create(options?: KnowledgeOptions): Codex;
43
43
  /**
44
44
  * 初始化向量数据库
45
45
  */
@@ -47,7 +47,7 @@ export declare class Knowledge {
47
47
  /**
48
48
  * 配置向量模型
49
49
  */
50
- model(model: EmbeddingModel): Knowledge;
50
+ model(model: EmbeddingModel): Codex;
51
51
  /**
52
52
  * 保存数据到本地文件
53
53
  */
@@ -136,4 +136,4 @@ export declare class Knowledge {
136
136
  */
137
137
  private generateId;
138
138
  }
139
- //# sourceMappingURL=Knowledge.d.ts.map
139
+ //# sourceMappingURL=Codex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Codex.d.ts","sourceRoot":"","sources":["../../src/codex/Codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,cAAc,EAAQ,IAAI,EAAE,MAAM,IAAI,CAAC;AAMvD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,aAAa,CAAyC;IAC9D,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,cAAc,CAAC,CAAM;IAC7B,OAAO,CAAC,iBAAiB,CAAC,CAA0B;gBAExC,OAAO,GAAE,gBAAqB;IA0B1C;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,KAAK;IAIhD;;OAEG;YACW,kBAAkB;IA6ChC;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,KAAK;IAKnC;;OAEG;YACW,UAAU;IAWxB;;OAEG;YACW,YAAY;IAW1B;;;OAGG;IACH,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;IAsC7B;;OAEG;IACG,YAAY,CAChB,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAC1D,OAAO,CAAC,aAAa,CAAC;IAiDzB;;OAEG;IACH,eAAe,CACb,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GACxD,aAAa,GAAG,SAAS;IAiB5B;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAInD;;OAEG;IACG,eAAe,CACnB,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,GAAE,OAAc,GACxB,OAAO,CAAC,aAAa,EAAE,CAAC;IAsC3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6B3B;;OAEG;IACH,cAAc,CACZ,WAAW,EAAE,MAAM,EAAE,EACrB,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,GAAE,MAAW,GACjB,KAAK,CAAC,aAAa,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAuBhD;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAyBxB;;OAEG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAWxD;;OAEG;IACG,sBAAsB,CAC1B,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC,GACrE,OAAO,CAAC,aAAa,CAAC;IAOzB;;OAEG;IACH,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE;IAMzD;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;OAEG;IACH,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIpC;;OAEG;IACH,cAAc,IAAI,IAAI;IAItB;;OAEG;IACH,QAAQ,IAAI;QACV,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC7C;IAeD;;OAEG;IACH,MAAM,IAAI,GAAG;IAQb;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAqBvB;;OAEG;IACH,OAAO,CAAC,UAAU;CAGnB"}
@@ -1,14 +1,14 @@
1
1
  import { embed, tool } from "ai";
2
2
  import * as fs from "fs/promises";
3
3
  import z from "zod";
4
- import { KNOWLEDGE_FILE_PATH, KNOWLEDGE_PATH } from "./const.js";
5
- export class Knowledge {
4
+ import { CODEX_FILE_PATH, CODEX_PATH } from "../const.js";
5
+ export class Codex {
6
6
  knowledgeBase = new Map();
7
7
  categories = new Set();
8
8
  options;
9
9
  chromaClient;
10
10
  collection;
11
- embeddingModel; // ai-sdk模型实例
11
+ embeddingModel;
12
12
  embeddingFunction;
13
13
  constructor(options = {}) {
14
14
  this.options = {
@@ -18,9 +18,9 @@ export class Knowledge {
18
18
  similarityThreshold: 0.7,
19
19
  chroma: {
20
20
  collection: "downcity_knowledge",
21
- persistPath: KNOWLEDGE_PATH,
21
+ persistPath: CODEX_PATH,
22
22
  },
23
- localFile: KNOWLEDGE_FILE_PATH,
23
+ localFile: CODEX_FILE_PATH,
24
24
  ...options,
25
25
  };
26
26
  // 初始化默认分类
@@ -37,7 +37,7 @@ export class Knowledge {
37
37
  * 创建Knowledge实例
38
38
  */
39
39
  static create(options) {
40
- return new Knowledge(options);
40
+ return new Codex(options);
41
41
  }
42
42
  /**
43
43
  * 初始化向量数据库
@@ -425,4 +425,4 @@ export class Knowledge {
425
425
  return `knowledge_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
426
426
  }
427
427
  }
428
- //# sourceMappingURL=Knowledge.js.map
428
+ //# sourceMappingURL=Codex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Codex.js","sourceRoot":"","sources":["../../src/codex/Codex.ts"],"names":[],"mappings":"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"}
package/dist/const.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export declare const BASE_PATH: string;
2
- export declare const KNOWLEDGE_PATH: string;
3
- export declare const KNOWLEDGE_FILE_PATH: string;
2
+ export declare const CODEX_PATH: string;
3
+ export declare const CODEX_FILE_PATH: string;
4
4
  //# sourceMappingURL=const.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,QAAmC,CAAC;AAE1D,eAAO,MAAM,cAAc,QAA0C,CAAC;AACtE,eAAO,MAAM,mBAAmB,QAI/B,CAAC"}
1
+ {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,QAAmC,CAAC;AAE1D,eAAO,MAAM,UAAU,QAA4C,CAAC;AACpE,eAAO,MAAM,eAAe,QAI3B,CAAC"}
package/dist/const.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { homedir } from "os";
2
2
  import path from "path";
3
3
  export const BASE_PATH = path.join(homedir(), "downcity");
4
- export const KNOWLEDGE_PATH = path.join(BASE_PATH, "base", "base_db");
5
- export const KNOWLEDGE_FILE_PATH = path.join(BASE_PATH, "base", "knowledge.json");
4
+ export const CODEX_PATH = path.join(BASE_PATH, "codex", "codex_db");
5
+ export const CODEX_FILE_PATH = path.join(BASE_PATH, "base", "knowledge.json");
6
6
  //# sourceMappingURL=const.js.map
package/dist/const.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAC1C,SAAS,EACT,MAAM,EACN,gBAAgB,CACjB,CAAC"}
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CACtC,SAAS,EACT,MAAM,EACN,gBAAgB,CACjB,CAAC"}
@@ -1,13 +1,12 @@
1
1
  import { LanguageModel, Tool } from "ai";
2
- import { Memory } from "./Memory.js";
2
+ import { Vault } from "../vault/Vault.js";
3
3
  import z from "zod";
4
- import { Session } from "./Session.js";
5
- import { SessionInfo } from "./store/Persistor.js";
4
+ import { Session, SessionMeta } from "../vault/Session.js";
6
5
  export declare class Hero {
7
6
  private _model;
8
7
  private _system;
9
8
  private _tools;
10
- private _memory;
9
+ private _vault;
11
10
  private _session;
12
11
  private constructor();
13
12
  /**
@@ -29,7 +28,7 @@ export declare class Hero {
29
28
  /**
30
29
  * 设置记忆系统
31
30
  */
32
- memory(memory: Memory): Hero;
31
+ vault(vault: Vault): Hero;
33
32
  /**
34
33
  * 与英雄对话
35
34
  */
@@ -57,7 +56,10 @@ export declare class Hero {
57
56
  /**
58
57
  * 获取所有会话
59
58
  */
60
- sessions(): SessionInfo[];
59
+ sessions(): {
60
+ id: string;
61
+ meta: SessionMeta;
62
+ }[];
61
63
  /**
62
64
  * 删除会话
63
65
  */
@@ -72,6 +74,9 @@ export declare class Hero {
72
74
  */
73
75
  get currentSessionId(): string | undefined;
74
76
  get tools(): string[];
77
+ /**
78
+ * 获取当前会话
79
+ */
75
80
  get session(): Session;
76
81
  }
77
82
  //# sourceMappingURL=Hero.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Hero.d.ts","sourceRoot":"","sources":["../../src/hero/Hero.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAGb,IAAI,EAGL,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE3D,qBAAa,IAAI;IAEf,OAAO,CAAC,MAAM,CAAgD;IAE9D,OAAO,CAAC,OAAO,CAAsB;IAErC,OAAO,CAAC,MAAM,CAA4B;IAE1C,OAAO,CAAC,MAAM,CAAQ;IAEtB,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,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAOzB;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4C5C;;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;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,WAAW,CAAA;KAAE,EAAE;IAI/C;;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;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;CACF"}
@@ -1,5 +1,5 @@
1
1
  import { generateText, generateObject, stepCountIs, } from "ai";
2
- import { Memory } from "./Memory.js";
2
+ import { Vault } from "../vault/Vault.js";
3
3
  import { createOpenAI } from "@ai-sdk/openai";
4
4
  export class Hero {
5
5
  // 模型
@@ -8,13 +8,13 @@ export class Hero {
8
8
  _system = "你是一个智能助手";
9
9
  // 工具
10
10
  _tools = {};
11
- // 持久记忆
12
- _memory;
11
+ // 持久记忆库
12
+ _vault;
13
13
  // 会话
14
14
  _session;
15
15
  constructor() {
16
- this._memory = new Memory();
17
- this._session = this._memory.createSession();
16
+ this._vault = new Vault();
17
+ this._session = this._vault.createSession();
18
18
  }
19
19
  /**
20
20
  * 创建一个新的英雄实例
@@ -46,8 +46,10 @@ export class Hero {
46
46
  /**
47
47
  * 设置记忆系统
48
48
  */
49
- memory(memory) {
50
- this._memory = memory;
49
+ vault(vault) {
50
+ this._vault = vault;
51
+ // 重新创建session,使用新的vault
52
+ this._session = this._vault.createSession();
51
53
  return this;
52
54
  }
53
55
  /**
@@ -60,8 +62,17 @@ export class Hero {
60
62
  role: "user",
61
63
  content: message,
62
64
  };
63
- this._session.messages.push(userMessage);
64
- this._session.updatedAt = new Date();
65
+ this._session.push(userMessage);
66
+ if (!this._session.title) {
67
+ const title = await generateText({
68
+ model: this._model,
69
+ system: "你是一个专业的会话标题生成助手。请根据用户的消息内容,生成一个简洁、准确、有意义的会话标题。标题应该:1. 不超过20个字符 2. 准确概括用户的主要意图或问题 3. 使用中文 4. 避免使用标点符号 5. 直接输出标题内容,不需要额外说明",
70
+ messages: [userMessage],
71
+ });
72
+ if (title.text) {
73
+ this._session.setTitle(title.text);
74
+ }
75
+ }
65
76
  // 调用AI生成回复,传递完整的对话历史以保持上下文记忆
66
77
  const result = await generateText({
67
78
  model: this._model,
@@ -74,9 +85,8 @@ export class Hero {
74
85
  role: "assistant",
75
86
  content: result.text,
76
87
  };
77
- this._session.messages.push(assistantMessage);
78
- this._session.updatedAt = new Date();
79
- this._memory.updateSession(this._session);
88
+ this._session.push(assistantMessage);
89
+ this._vault.updateSession(this._session);
80
90
  return result.text;
81
91
  }
82
92
  catch (error) {
@@ -140,7 +150,7 @@ export class Hero {
140
150
  * 新建会话并切换
141
151
  */
142
152
  renew() {
143
- const newSession = this._memory.createSession();
153
+ const newSession = this._vault.createSession();
144
154
  this._session = newSession;
145
155
  return newSession;
146
156
  }
@@ -148,7 +158,7 @@ export class Hero {
148
158
  * 切换会话
149
159
  */
150
160
  switch(id) {
151
- const session = this._memory.getSession(id);
161
+ const session = this._vault.getSession(id);
152
162
  if (session) {
153
163
  this._session = session;
154
164
  return true;
@@ -159,7 +169,7 @@ export class Hero {
159
169
  * 获取所有会话
160
170
  */
161
171
  sessions() {
162
- return this._memory.getAllSessionsInfo();
172
+ return this._vault.getSessionsList();
163
173
  }
164
174
  /**
165
175
  * 删除会话
@@ -169,15 +179,15 @@ export class Hero {
169
179
  // 如果删除的是当前会话,则切换到一个新的会话
170
180
  this.renew();
171
181
  }
172
- return this._memory.deleteSession(id);
182
+ return this._vault.deleteSession(id);
173
183
  }
174
184
  /**
175
185
  * 清空所有会話
176
186
  */
177
187
  clear() {
178
- this._memory.clear();
188
+ this._vault.clear();
179
189
  // 清空后,创建一个新的默认会话
180
- this._session = this._memory.createSession();
190
+ this._session = this._vault.createSession();
181
191
  }
182
192
  // Getters for debugging and inspection
183
193
  get systemPrompt() {
@@ -192,6 +202,9 @@ export class Hero {
192
202
  get tools() {
193
203
  return Object.keys(this._tools);
194
204
  }
205
+ /**
206
+ * 获取当前会话
207
+ */
195
208
  get session() {
196
209
  return this._session;
197
210
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Hero.js","sourceRoot":"","sources":["../../src/hero/Hero.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- export { Hero } from "./Hero.js";
2
- export { Memory } from "./Memory.js";
3
- export { Knowledge } from "./Knowledge.js";
4
- export { Session } from "./Session.js";
5
- export type { KnowledgeOptions, KnowledgeItem } from "./Knowledge.js";
1
+ export { Hero } from "./hero/Hero.js";
2
+ export { Vault } from "./vault/Vault.js";
3
+ export { SQLitePersistor as SQLitePersistor } from "./utils/persistor/SQLitePersistor.js";
4
+ export { Codex } from "./codex/Codex.js";
5
+ export { Session } from "./vault/Session.js";
6
+ export type { KnowledgeOptions, KnowledgeItem } from "./codex/Codex.js";
6
7
  //# 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;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,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,gBAAgB,CAAC;AAGtC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,eAAe,IAAI,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,8 @@
1
1
  // 导出主要的类
2
- export { Hero } from "./Hero.js";
3
- export { Memory } from "./Memory.js";
4
- export { Knowledge } from "./Knowledge.js";
5
- export { Session } from "./Session.js";
2
+ export { Hero } from "./hero/Hero.js";
3
+ // 导出历史记录管理器
4
+ export { Vault } from "./vault/Vault.js";
5
+ export { SQLitePersistor as SQLitePersistor } from "./utils/persistor/SQLitePersistor.js";
6
+ export { Codex } from "./codex/Codex.js";
7
+ export { Session } from "./vault/Session.js";
6
8
  //# 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;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,YAAY;AACZ,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,eAAe,IAAI,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * 持久化器
3
+ * @template DATA data数据类型
4
+ * @template META 元数据类型, 可以包括title, description 等
5
+ */
6
+ export declare abstract class Persistor<DATA extends Record<string, any>, META extends Record<string, any>> {
7
+ /**
8
+ * 插入item
9
+ */
10
+ abstract insert(id: string, meta: META, data: DATA): void;
11
+ /**
12
+ * 查找item
13
+ */
14
+ abstract find(id: string): {
15
+ meta: META;
16
+ data: DATA;
17
+ } | undefined;
18
+ /**
19
+ * 删除item
20
+ */
21
+ abstract remove(id: string): void;
22
+ /**
23
+ * 更新item
24
+ */
25
+ abstract update(id: string, meta: META, data: DATA): void;
26
+ /**
27
+ * 列出所有item, 不需要data
28
+ */
29
+ abstract list(): {
30
+ id: string;
31
+ meta: META;
32
+ }[];
33
+ }
34
+ //# sourceMappingURL=Persistor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Persistor.d.ts","sourceRoot":"","sources":["../../../src/utils/persistor/Persistor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,8BAAsB,SAAS,CAC7B,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAChC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;IACzD;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,GAAG,SAAS;IACjE;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IACjC;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;IACzD;;OAEG;IACH,QAAQ,CAAC,IAAI,IAAI;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,EAAE;CAC9C"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * 持久化器
3
+ * @template DATA data数据类型
4
+ * @template META 元数据类型, 可以包括title, description 等
5
+ */
6
+ export class Persistor {
7
+ }
8
+ //# sourceMappingURL=Persistor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Persistor.js","sourceRoot":"","sources":["../../../src/utils/persistor/Persistor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,OAAgB,SAAS;CAwB9B"}
@@ -0,0 +1,34 @@
1
+ import { Persistor } from "./Persistor.js";
2
+ export interface SQLitePersistorOptions {
3
+ dir: string;
4
+ name: string;
5
+ }
6
+ export declare class SQLitePersistor<DATA extends Record<string, any>, META extends Record<string, any>> extends Persistor<DATA, META> {
7
+ private db;
8
+ private name;
9
+ private dir;
10
+ /**
11
+ * 构造函数,初始化SQLite数据库持久化器
12
+ * @param options 配置选项,包含目录和文件名
13
+ */
14
+ constructor(options?: SQLitePersistorOptions);
15
+ /**
16
+ * 保存会话
17
+ * @param session 会话对象
18
+ */
19
+ insert(id: string, meta: META, data: DATA): void;
20
+ find(id: string): {
21
+ meta: META;
22
+ data: DATA;
23
+ } | undefined;
24
+ /**
25
+ * 删除会话
26
+ */
27
+ remove(id: string): void;
28
+ update(id: string, meta: META, data: DATA): void;
29
+ list(): {
30
+ id: string;
31
+ meta: META;
32
+ }[];
33
+ }
34
+ //# sourceMappingURL=SQLitePersistor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLitePersistor.d.ts","sourceRoot":"","sources":["../../../src/utils/persistor/SQLitePersistor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAK3C,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,eAAe,CAC1B,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAChC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAChC,SAAQ,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,CAAW;IACrB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,GAAG,CAAS;IAEpB;;;OAGG;gBAED,OAAO,GAAE,sBAGR;IA4BH;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;IAahD,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,GAAG,SAAS;IAYxD;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKxB,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;IAYhD,IAAI,IAAI;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,EAAE;CAQrC"}
@@ -0,0 +1,80 @@
1
+ import { Database } from "bun:sqlite";
2
+ import { Persistor } from "./Persistor.js";
3
+ import path from "path";
4
+ import { BASE_PATH } from "../../const.js";
5
+ import { mkdirSync } from "fs";
6
+ export class SQLitePersistor extends Persistor {
7
+ db;
8
+ name;
9
+ dir;
10
+ /**
11
+ * 构造函数,初始化SQLite数据库持久化器
12
+ * @param options 配置选项,包含目录和文件名
13
+ */
14
+ constructor(options = {
15
+ dir: BASE_PATH,
16
+ name: "sqlite",
17
+ }) {
18
+ super();
19
+ this.name = options.name;
20
+ this.dir = options.dir;
21
+ // 确保目录存在
22
+ try {
23
+ mkdirSync(this.dir, { recursive: true });
24
+ }
25
+ catch (error) {
26
+ // 目录已存在时忽略错误
27
+ }
28
+ this.db = new Database(path.join(this.dir, this.name + ".db"), {
29
+ create: true,
30
+ });
31
+ this.db.run(`
32
+ CREATE TABLE IF NOT EXISTS ${this.name} (
33
+ id TEXT PRIMARY KEY,
34
+ meta TEXT NOT NULL,
35
+ data TEXT NOT NULL,
36
+ createdAt TEXT NOT NULL,
37
+ updatedAt TEXT NOT NULL
38
+ );
39
+ `);
40
+ }
41
+ /**
42
+ * 保存会话
43
+ * @param session 会话对象
44
+ */
45
+ insert(id, meta, data) {
46
+ const stmt = this.db.prepare(`INSERT OR REPLACE INTO ${this.name} (id, meta, data, createdAt, updatedAt) VALUES (?, ?, ?, ?, ?)`);
47
+ stmt.run(id, JSON.stringify(meta), JSON.stringify(data), new Date().toISOString(), new Date().toISOString());
48
+ }
49
+ find(id) {
50
+ const stmt = this.db.prepare(`SELECT * FROM ${this.name} WHERE id = ?`);
51
+ const row = stmt.get(id);
52
+ if (row) {
53
+ return {
54
+ meta: JSON.parse(row.meta),
55
+ data: JSON.parse(row.data),
56
+ };
57
+ }
58
+ return undefined;
59
+ }
60
+ /**
61
+ * 删除会话
62
+ */
63
+ remove(id) {
64
+ const stmt = this.db.prepare(`DELETE FROM ${this.name} WHERE id = ?`);
65
+ stmt.run(id);
66
+ }
67
+ update(id, meta, data) {
68
+ const stmt = this.db.prepare(`UPDATE ${this.name} SET meta = ?, data = ?, updatedAt = ? WHERE id = ?`);
69
+ stmt.run(JSON.stringify(meta), JSON.stringify(data), new Date().toISOString(), id);
70
+ }
71
+ list() {
72
+ const stmt = this.db.prepare(`SELECT id, meta FROM ${this.name}`);
73
+ const rows = stmt.all();
74
+ return rows.map((row) => ({
75
+ id: row.id,
76
+ meta: JSON.parse(row.meta),
77
+ }));
78
+ }
79
+ }
80
+ //# sourceMappingURL=SQLitePersistor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLitePersistor.js","sourceRoot":"","sources":["../../../src/utils/persistor/SQLitePersistor.ts"],"names":[],"mappings":"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"}