downcity 1.0.5 → 1.0.7

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 (58) hide show
  1. package/dist/cli/HeroManager.d.ts +9 -0
  2. package/dist/cli/HeroManager.d.ts.map +1 -0
  3. package/dist/cli/HeroManager.js +12 -0
  4. package/dist/cli/HeroManager.js.map +1 -0
  5. package/dist/cli/ToolManager.d.ts +2 -0
  6. package/dist/cli/ToolManager.d.ts.map +1 -0
  7. package/dist/cli/ToolManager.js +2 -0
  8. package/dist/cli/ToolManager.js.map +1 -0
  9. package/dist/{const.d.ts → cli/const.d.ts} +1 -0
  10. package/dist/cli/const.d.ts.map +1 -0
  11. package/dist/{const.js → cli/const.js} +1 -0
  12. package/dist/cli/const.js.map +1 -0
  13. package/dist/cli/index.js +17 -28
  14. package/dist/cli/index.js.map +1 -1
  15. package/dist/codex/Codex.d.ts +73 -111
  16. package/dist/codex/Codex.d.ts.map +1 -1
  17. package/dist/codex/Codex.js +217 -363
  18. package/dist/codex/Codex.js.map +1 -1
  19. package/dist/codex/Volume.d.ts +80 -0
  20. package/dist/codex/Volume.d.ts.map +1 -0
  21. package/dist/codex/Volume.js +273 -0
  22. package/dist/codex/Volume.js.map +1 -0
  23. package/dist/codex/error.d.ts +80 -0
  24. package/dist/codex/error.d.ts.map +1 -0
  25. package/dist/codex/error.js +110 -0
  26. package/dist/codex/error.js.map +1 -0
  27. package/dist/hero/Hero.d.ts +11 -10
  28. package/dist/hero/Hero.d.ts.map +1 -1
  29. package/dist/hero/Hero.js +45 -30
  30. package/dist/hero/Hero.js.map +1 -1
  31. package/dist/index.d.ts +3 -4
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +3 -3
  34. package/dist/index.js.map +1 -1
  35. package/dist/model/model.d.ts +4 -0
  36. package/dist/model/model.d.ts.map +1 -0
  37. package/dist/model/model.js +10 -0
  38. package/dist/model/model.js.map +1 -0
  39. package/dist/{vault/Vault.d.ts → room/Room.d.ts} +16 -16
  40. package/dist/room/Room.d.ts.map +1 -0
  41. package/dist/{vault/Vault.js → room/Room.js} +40 -40
  42. package/dist/room/Room.js.map +1 -0
  43. package/dist/room/Shot.d.ts +25 -0
  44. package/dist/room/Shot.d.ts.map +1 -0
  45. package/dist/{vault/Session.js → room/Shot.js} +12 -7
  46. package/dist/room/Shot.js.map +1 -0
  47. package/dist/utils/persistor/SQLitePersistor.d.ts +1 -1
  48. package/dist/utils/persistor/SQLitePersistor.js +2 -2
  49. package/dist/utils/persistor/SQLitePersistor.js.map +1 -1
  50. package/package.json +7 -11
  51. package/README.md +0 -130
  52. package/dist/const.d.ts.map +0 -1
  53. package/dist/const.js.map +0 -1
  54. package/dist/vault/Session.d.ts +0 -23
  55. package/dist/vault/Session.d.ts.map +0 -1
  56. package/dist/vault/Session.js.map +0 -1
  57. package/dist/vault/Vault.d.ts.map +0 -1
  58. package/dist/vault/Vault.js.map +0 -1
@@ -0,0 +1,9 @@
1
+ import { Hero } from "../hero/Hero.js";
2
+ /**
3
+ * 英雄管理器:
4
+ */
5
+ export declare class HeroManager {
6
+ private _hero;
7
+ constructor(hero: Hero);
8
+ }
9
+ //# sourceMappingURL=HeroManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeroManager.d.ts","sourceRoot":"","sources":["../../src/cli/HeroManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAIvC;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAO;gBACR,IAAI,EAAE,IAAI;CAGvB"}
@@ -0,0 +1,12 @@
1
+ import { HEROS_PATH } from "./const.js";
2
+ const path = HEROS_PATH;
3
+ /**
4
+ * 英雄管理器:
5
+ */
6
+ export class HeroManager {
7
+ _hero;
8
+ constructor(hero) {
9
+ this._hero = hero;
10
+ }
11
+ }
12
+ //# sourceMappingURL=HeroManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeroManager.js","sourceRoot":"","sources":["../../src/cli/HeroManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,IAAI,GAAG,UAAU,CAAC;AACxB;;GAEG;AACH,MAAM,OAAO,WAAW;IACd,KAAK,CAAO;IACpB,YAAY,IAAU;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ToolManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolManager.d.ts","sourceRoot":"","sources":["../../src/cli/ToolManager.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ToolManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolManager.js","sourceRoot":"","sources":["../../src/cli/ToolManager.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
1
  export declare const BASE_PATH: string;
2
2
  export declare const CODEX_PATH: string;
3
3
  export declare const CODEX_FILE_PATH: string;
4
+ export declare const HEROS_PATH: string;
4
5
  //# sourceMappingURL=const.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../src/cli/const.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,QAAmC,CAAC;AAE1D,eAAO,MAAM,UAAU,QAA4C,CAAC;AACpE,eAAO,MAAM,eAAe,QAAiD,CAAC;AAE9E,eAAO,MAAM,UAAU,QAA+B,CAAC"}
@@ -3,4 +3,5 @@ import path from "path";
3
3
  export const BASE_PATH = path.join(homedir(), "downcity");
4
4
  export const CODEX_PATH = path.join(BASE_PATH, "codex", "codex_db");
5
5
  export const CODEX_FILE_PATH = path.join(BASE_PATH, "base", "knowledge.json");
6
+ export const HEROS_PATH = path.join(BASE_PATH, "hero");
6
7
  //# sourceMappingURL=const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../../src/cli/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,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAE9E,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC"}
package/dist/cli/index.js CHANGED
@@ -2,19 +2,17 @@
2
2
  import { Command } from "commander";
3
3
  import pkg from "../../package.json" with { type: "json" };
4
4
  import chalk from "chalk";
5
- import { Hero, Vault } from "../index.js";
5
+ import { Hero, Room } from "../index.js";
6
6
  import readline from "readline";
7
- import { createOpenAI } from "@ai-sdk/openai";
8
7
  import { log } from "console";
9
8
  import { tool } from "ai";
10
9
  import z from "zod";
11
- import { SQLiteVaultPersistor } from "../vault/Vault.js";
10
+ import { SQLiteRoomPersistor } from "../room/Room.js";
12
11
  const program = new Command();
13
12
  // 设置基本信息
14
13
  program
15
14
  .name("downcity")
16
15
  .description("downcity - An open world productive game in terminal")
17
- // 支持 -v (小写) 与 --version,便于用户输入
18
16
  .version(pkg.version, "-v, --version", "显示版本号");
19
17
  // 添加欢迎信息
20
18
  program.addHelpText("before", chalk.blue.bold(`
@@ -24,23 +22,16 @@ program.addHelpText("before", chalk.blue.bold(`
24
22
  program.addCommand(new Command("enter").description("enter in this game").action(async () => {
25
23
  console.log("welcome to downcity!");
26
24
  console.log("letus punk!");
27
- if (!process.env.API_KEY) {
28
- console.log(chalk.red("请设置 API_KEY 环境变量"));
25
+ if (!process.env.DOWNCITY_API_KEY) {
26
+ console.log(chalk.red("请设置 DOWNCITY_API_KEY 环境变量"));
29
27
  return;
30
28
  }
31
- if (!process.env.BASE_URL) {
32
- console.log(chalk.red("请设置 BASE_URL 环境变量"));
29
+ if (!process.env.DOWNCITY_BASE_URL) {
30
+ console.log(chalk.red("请设置 DOWNCITY_BASE_URL 环境变量"));
33
31
  return;
34
32
  }
35
- // 创建一个provider
36
- const provider = createOpenAI({
37
- apiKey: process.env.API_KEY,
38
- baseURL: process.env.BASE_URL,
39
- });
40
- // 一个model chat
41
- const model = provider.chat("qwen-turbo");
42
- // 创建一个vault: 用来控制session
43
- const vault = new Vault(new SQLiteVaultPersistor());
33
+ // 创建一个room: 用来控制shot
34
+ const room = new Room(new SQLiteRoomPersistor());
44
35
  const tools = {
45
36
  get_current_time: tool({
46
37
  description: "获取当前时间",
@@ -51,10 +42,8 @@ program.addCommand(new Command("enter").description("enter in this game").action
51
42
  }),
52
43
  };
53
44
  const hero = Hero.create()
54
- .model(model)
55
- .vault(vault)
56
- .study(tools)
57
- .avatar("你是一个助手");
45
+ .room(room)
46
+ .study(tools);
58
47
  const rl = readline.createInterface({
59
48
  input: process.stdin,
60
49
  output: process.stdout,
@@ -62,19 +51,19 @@ program.addCommand(new Command("enter").description("enter in this game").action
62
51
  const chatLoop = async () => {
63
52
  rl.question(chalk.green("You: "), async (input) => {
64
53
  if (input.trim() === "ls") {
65
- log(hero.sessions());
54
+ log(hero.shots());
66
55
  chatLoop();
67
56
  return;
68
57
  }
69
58
  if (input.trim() === "current") {
70
- console.log(hero.session.id);
71
- console.log(hero.session.messages);
59
+ console.log(hero.shot.id);
60
+ console.log(hero.shot.messages);
72
61
  chatLoop();
73
62
  return;
74
63
  }
75
64
  if (input.trim() === "new") {
76
- const session = hero.renew();
77
- console.log(session);
65
+ const shot = hero.renew();
66
+ console.log(shot);
78
67
  chatLoop();
79
68
  return;
80
69
  }
@@ -84,8 +73,8 @@ program.addCommand(new Command("enter").description("enter in this game").action
84
73
  return;
85
74
  }
86
75
  if (input.startsWith("switch")) {
87
- const sessionId = input.split(" ")[1];
88
- hero.switch(sessionId);
76
+ const shotId = input.split(" ")[1];
77
+ hero.switch(shotId);
89
78
  chatLoop();
90
79
  return;
91
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -1,139 +1,101 @@
1
- import { EmbeddingModel, Tool } from "ai";
2
- export interface VectorModelConfig {
3
- model: any;
4
- dimensions?: number;
1
+ import { EmbeddingModel } from "ai";
2
+ import { IndexConfig } from "@lancedb/lancedb";
3
+ import { Volume } from "./Volume.js";
4
+ /**
5
+ * Codex 配置选项
6
+ */
7
+ export interface CodexConfig {
8
+ model: EmbeddingModel;
9
+ path?: string;
5
10
  }
6
- export interface ChromaConfig {
7
- url?: string;
8
- collection?: string;
9
- persistPath?: string;
11
+ /**
12
+ * 创建索引参数
13
+ */
14
+ export interface CreateIndexParams {
15
+ tableName: string;
16
+ indexName: string;
17
+ dimension: number;
18
+ metric?: "cosine" | "euclidean" | "dotproduct";
19
+ indexConfig?: IndexConfig;
10
20
  }
11
- export interface KnowledgeOptions {
12
- autoLoad?: boolean;
13
- categories?: string[];
14
- vectorDimension?: number;
15
- similarityThreshold?: number;
16
- vectorModel?: VectorModelConfig;
17
- chroma?: ChromaConfig;
18
- localFile?: string;
19
- }
20
- export interface KnowledgeItem {
21
- id: string;
22
- title: string;
23
- content: string;
24
- category: string;
25
- tags: string[];
26
- vector?: number[];
27
- createdAt: Date;
28
- updatedAt: Date;
21
+ /**
22
+ * 索引统计信息
23
+ */
24
+ export interface IndexStats {
25
+ dimension: number;
26
+ metric?: "cosine" | "euclidean" | "dotproduct";
27
+ count: number;
29
28
  }
29
+ /**
30
+ * Codex 类,用于管理和检索向量化信息。
31
+ * 内部使用 LanceDB 进行数据存储。
32
+ * codex.volume().
33
+ */
30
34
  export declare class Codex {
31
- private knowledgeBase;
32
- private categories;
33
- private options;
34
- private chromaClient?;
35
- private collection?;
36
- private embeddingModel?;
37
- private embeddingFunction?;
38
- constructor(options?: KnowledgeOptions);
39
- /**
40
- * 创建Knowledge实例
41
- */
42
- static create(options?: KnowledgeOptions): Codex;
43
- /**
44
- * 初始化向量数据库
45
- */
46
- private initializeVectorDB;
47
- /**
48
- * 配置向量模型
49
- */
50
- model(model: EmbeddingModel): Codex;
51
- /**
52
- * 保存数据到本地文件
53
- */
54
- private saveToFile;
55
- /**
56
- * 从本地文件加载数据
57
- */
58
- private loadFromFile;
59
- /**
60
- * 获取知识库操作工具
61
- * 将知识库的操作方法包装成工具供Hero调用
62
- */
63
- tools(): Record<string, Tool>;
64
- /**
65
- * 添加知识条目
66
- */
67
- addKnowledge(item: Omit<KnowledgeItem, "id" | "createdAt" | "updatedAt">): Promise<KnowledgeItem>;
68
- /**
69
- * 更新知识条目
70
- */
71
- updateKnowledge(id: string, updates: Partial<Omit<KnowledgeItem, "id" | "createdAt">>): KnowledgeItem | undefined;
72
- /**
73
- * 获取知识条目
74
- */
75
- getKnowledge(id: string): KnowledgeItem | undefined;
76
- /**
77
- * 搜索知识库(支持向量搜索和文本匹配)
78
- */
79
- searchKnowledge(query: string, category?: string, useVector?: boolean): Promise<KnowledgeItem[]>;
80
- /**
81
- * 文本搜索知识库
82
- */
83
- private textSearchKnowledge;
84
- /**
85
- * 向量相似度搜索
86
- */
87
- searchByVector(queryVector: number[], category?: string, limit?: number): Array<KnowledgeItem & {
88
- similarity: number;
89
- }>;
35
+ private volumes;
36
+ private db;
37
+ private model;
38
+ private constructor();
90
39
  /**
91
- * 计算余弦相似度
40
+ * 创建并初始化一个 Codex 实例。
41
+ * @param config - Codex 配置
42
+ * @returns 一个初始化的 Codex 实例
92
43
  */
93
- private cosineSimilarity;
44
+ static create(config: CodexConfig): Promise<Codex>;
94
45
  /**
95
- * 为知识条目生成向量
46
+ * 关闭数据库连接并清理资源。
96
47
  */
97
- generateEmbedding(text: string): Promise<number[]>;
48
+ close(): void;
98
49
  /**
99
- * 添加知识条目并生成向量
50
+ * 检查连接是否有效。
51
+ * @returns 连接状态
100
52
  */
101
- addKnowledgeWithVector(item: Omit<KnowledgeItem, "id" | "createdAt" | "updatedAt" | "vector">): Promise<KnowledgeItem>;
53
+ private checkConnection;
102
54
  /**
103
- * 根据分类获取知识
55
+ * 列出所有可用的表(volumes)。
56
+ * @returns 表名列表
104
57
  */
105
- getKnowledgeByCategory(category: string): KnowledgeItem[];
58
+ list(): Promise<string[]>;
106
59
  /**
107
- * 获取所有分类
60
+ * 检查表是否存在。
61
+ * @param name - 表名
62
+ * @returns 表是否存在
108
63
  */
109
- getCategories(): string[];
64
+ hasTable(name: string): Promise<boolean>;
110
65
  /**
111
- * 删除知识条目
66
+ * 删除指定的表。
67
+ * @param name - 表名
112
68
  */
113
- removeKnowledge(id: string): boolean;
69
+ dropTable(name: string): Promise<void>;
114
70
  /**
115
- * 清空知识库
71
+ * 获取或创建一个 Volume 实例。
72
+ * @param name - Volume 名称
73
+ * @returns Volume 实例
116
74
  */
117
- clearKnowledge(): void;
75
+ volume(name?: string): Promise<Volume>;
118
76
  /**
119
- * 获取统计信息
77
+ * 创建向量索引。
78
+ * @param params - 创建索引参数
120
79
  */
121
- getStats(): {
122
- totalKnowledge: number;
123
- totalCategories: number;
124
- knowledgeByCategory: Record<string, number>;
125
- };
80
+ createIndex(params: CreateIndexParams): Promise<void>;
126
81
  /**
127
- * 导出数据
82
+ * 列出表的所有索引。
83
+ * @param tableName - 表名
84
+ * @returns 索引列表
128
85
  */
129
- export(): any;
86
+ listIndexes(tableName: string): Promise<IndexConfig[]>;
130
87
  /**
131
- * 导入数据
88
+ * 获取索引统计信息。
89
+ * @param tableName - 表名
90
+ * @param indexName - 索引名
91
+ * @returns 索引统计信息
132
92
  */
133
- import(data: any): void;
93
+ getIndexStats(tableName: string, indexName: string): Promise<IndexStats>;
134
94
  /**
135
- * 生成唯一ID
95
+ * 删除索引。
96
+ * @param tableName - 表名
97
+ * @param indexName - 索引名
136
98
  */
137
- private generateId;
99
+ dropIndex(tableName: string, indexName: string): Promise<void>;
138
100
  }
139
101
  //# sourceMappingURL=Codex.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Codex.d.ts","sourceRoot":"","sources":["../../src/codex/Codex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Codex.d.ts","sourceRoot":"","sources":["../../src/codex/Codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAAuB,WAAW,EAAS,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,YAAY,CAAC;IAC/C,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,YAAY,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,qBAAa,KAAK;IAChB,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,EAAE,CAAc;IACxB,OAAO,CAAC,KAAK,CAAiB;IAE9B,OAAO;IAMP;;;;OAIG;WACiB,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;IAkC/D;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;;OAGG;IACH,OAAO,CAAC,eAAe;IAWvB;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAoB/B;;;;OAIG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAsB9C;;;OAGG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB5C;;;;OAIG;IACG,MAAM,CAAC,IAAI,GAAE,MAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAoDvD;;;OAGG;IACG,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB3D;;;;OAIG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAmB5D;;;;;OAKG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,CAAC;IAwBtB;;;;OAIG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAkBrE"}