@aigne/afs-history 1.2.0-beta.4 → 1.2.0-beta.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 (45) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/lib/cjs/index.d.ts +9 -3
  3. package/lib/cjs/index.js +217 -22
  4. package/lib/cjs/storage/index.d.ts +10 -6
  5. package/lib/cjs/storage/index.js +67 -21
  6. package/lib/cjs/storage/migrate.d.ts +1 -1
  7. package/lib/cjs/storage/migrate.js +14 -5
  8. package/lib/cjs/storage/migrations/003-add-compact-table.d.ts +2 -0
  9. package/lib/cjs/storage/migrations/003-add-compact-table.js +23 -0
  10. package/lib/cjs/storage/migrations/004-add-memory-table.d.ts +2 -0
  11. package/lib/cjs/storage/migrations/004-add-memory-table.js +23 -0
  12. package/lib/cjs/storage/migrations/005-add-indexes.d.ts +2 -0
  13. package/lib/cjs/storage/migrations/005-add-indexes.js +31 -0
  14. package/lib/cjs/storage/models/compact.d.ts +183 -0
  15. package/lib/cjs/storage/models/compact.js +27 -0
  16. package/lib/cjs/storage/models/memory.d.ts +182 -0
  17. package/lib/cjs/storage/models/memory.js +27 -0
  18. package/lib/cjs/storage/type.d.ts +31 -4
  19. package/lib/dts/index.d.ts +9 -3
  20. package/lib/dts/storage/index.d.ts +10 -6
  21. package/lib/dts/storage/migrate.d.ts +1 -1
  22. package/lib/dts/storage/migrations/003-add-compact-table.d.ts +2 -0
  23. package/lib/dts/storage/migrations/004-add-memory-table.d.ts +2 -0
  24. package/lib/dts/storage/migrations/005-add-indexes.d.ts +2 -0
  25. package/lib/dts/storage/models/compact.d.ts +183 -0
  26. package/lib/dts/storage/models/memory.d.ts +182 -0
  27. package/lib/dts/storage/type.d.ts +31 -4
  28. package/lib/esm/index.d.ts +9 -3
  29. package/lib/esm/index.js +217 -22
  30. package/lib/esm/storage/index.d.ts +10 -6
  31. package/lib/esm/storage/index.js +68 -22
  32. package/lib/esm/storage/migrate.d.ts +1 -1
  33. package/lib/esm/storage/migrate.js +14 -5
  34. package/lib/esm/storage/migrations/003-add-compact-table.d.ts +2 -0
  35. package/lib/esm/storage/migrations/003-add-compact-table.js +20 -0
  36. package/lib/esm/storage/migrations/004-add-memory-table.d.ts +2 -0
  37. package/lib/esm/storage/migrations/004-add-memory-table.js +20 -0
  38. package/lib/esm/storage/migrations/005-add-indexes.d.ts +2 -0
  39. package/lib/esm/storage/migrations/005-add-indexes.js +28 -0
  40. package/lib/esm/storage/models/compact.d.ts +183 -0
  41. package/lib/esm/storage/models/compact.js +22 -0
  42. package/lib/esm/storage/models/memory.d.ts +182 -0
  43. package/lib/esm/storage/models/memory.js +22 -0
  44. package/lib/esm/storage/type.d.ts +31 -4
  45. package/package.json +3 -2
@@ -0,0 +1,182 @@
1
+ import type { AFSModule } from "@aigne/afs";
2
+ export declare const memoryTableName: (module: AFSModule) => string;
3
+ export declare const memoryTable: (module: AFSModule) => import("@aigne/sqlite").SQLiteTableWithColumns<{
4
+ name: string;
5
+ schema: undefined;
6
+ columns: {
7
+ id: import("@aigne/sqlite").SQLiteColumn<{
8
+ name: "id";
9
+ tableName: string;
10
+ dataType: "string";
11
+ columnType: "SQLiteText";
12
+ data: string;
13
+ driverParam: string;
14
+ notNull: true;
15
+ hasDefault: true;
16
+ isPrimaryKey: true;
17
+ isAutoincrement: false;
18
+ hasRuntimeDefault: true;
19
+ enumValues: [string, ...string[]];
20
+ baseColumn: never;
21
+ identity: undefined;
22
+ generated: undefined;
23
+ }, {}, {
24
+ length: number | undefined;
25
+ }>;
26
+ createdAt: import("@aigne/sqlite").SQLiteColumn<{
27
+ name: "createdAt";
28
+ tableName: string;
29
+ dataType: "custom";
30
+ columnType: "SQLiteCustomColumn";
31
+ data: Date;
32
+ driverParam: string;
33
+ notNull: true;
34
+ hasDefault: true;
35
+ isPrimaryKey: false;
36
+ isAutoincrement: false;
37
+ hasRuntimeDefault: true;
38
+ enumValues: undefined;
39
+ baseColumn: never;
40
+ identity: undefined;
41
+ generated: undefined;
42
+ }, {}, {
43
+ sqliteColumnBuilderBrand: "SQLiteCustomColumnBuilderBrand";
44
+ }>;
45
+ updatedAt: import("@aigne/sqlite").SQLiteColumn<{
46
+ name: "updatedAt";
47
+ tableName: string;
48
+ dataType: "custom";
49
+ columnType: "SQLiteCustomColumn";
50
+ data: Date;
51
+ driverParam: string;
52
+ notNull: true;
53
+ hasDefault: true;
54
+ isPrimaryKey: false;
55
+ isAutoincrement: false;
56
+ hasRuntimeDefault: true;
57
+ enumValues: undefined;
58
+ baseColumn: never;
59
+ identity: undefined;
60
+ generated: undefined;
61
+ }, {}, {
62
+ sqliteColumnBuilderBrand: "SQLiteCustomColumnBuilderBrand";
63
+ }>;
64
+ path: import("@aigne/sqlite").SQLiteColumn<{
65
+ name: "path";
66
+ tableName: string;
67
+ dataType: "string";
68
+ columnType: "SQLiteText";
69
+ data: string;
70
+ driverParam: string;
71
+ notNull: true;
72
+ hasDefault: false;
73
+ isPrimaryKey: false;
74
+ isAutoincrement: false;
75
+ hasRuntimeDefault: false;
76
+ enumValues: [string, ...string[]];
77
+ baseColumn: never;
78
+ identity: undefined;
79
+ generated: undefined;
80
+ }, {}, {
81
+ length: number | undefined;
82
+ }>;
83
+ userId: import("@aigne/sqlite").SQLiteColumn<{
84
+ name: "userId";
85
+ tableName: string;
86
+ dataType: "string";
87
+ columnType: "SQLiteText";
88
+ data: string;
89
+ driverParam: string;
90
+ notNull: false;
91
+ hasDefault: false;
92
+ isPrimaryKey: false;
93
+ isAutoincrement: false;
94
+ hasRuntimeDefault: false;
95
+ enumValues: [string, ...string[]];
96
+ baseColumn: never;
97
+ identity: undefined;
98
+ generated: undefined;
99
+ }, {}, {
100
+ length: number | undefined;
101
+ }>;
102
+ sessionId: import("@aigne/sqlite").SQLiteColumn<{
103
+ name: "sessionId";
104
+ tableName: string;
105
+ dataType: "string";
106
+ columnType: "SQLiteText";
107
+ data: string;
108
+ driverParam: string;
109
+ notNull: false;
110
+ hasDefault: false;
111
+ isPrimaryKey: false;
112
+ isAutoincrement: false;
113
+ hasRuntimeDefault: false;
114
+ enumValues: [string, ...string[]];
115
+ baseColumn: never;
116
+ identity: undefined;
117
+ generated: undefined;
118
+ }, {}, {
119
+ length: number | undefined;
120
+ }>;
121
+ agentId: import("@aigne/sqlite").SQLiteColumn<{
122
+ name: "agentId";
123
+ tableName: string;
124
+ dataType: "string";
125
+ columnType: "SQLiteText";
126
+ data: string;
127
+ driverParam: string;
128
+ notNull: false;
129
+ hasDefault: false;
130
+ isPrimaryKey: false;
131
+ isAutoincrement: false;
132
+ hasRuntimeDefault: false;
133
+ enumValues: [string, ...string[]];
134
+ baseColumn: never;
135
+ identity: undefined;
136
+ generated: undefined;
137
+ }, {}, {
138
+ length: number | undefined;
139
+ }>;
140
+ metadata: import("@aigne/sqlite").SQLiteColumn<{
141
+ name: string;
142
+ tableName: string;
143
+ dataType: "custom";
144
+ columnType: "SQLiteCustomColumn";
145
+ data: {
146
+ scope?: string;
147
+ } & Record<string, unknown>;
148
+ driverParam: string;
149
+ notNull: false;
150
+ hasDefault: false;
151
+ isPrimaryKey: false;
152
+ isAutoincrement: false;
153
+ hasRuntimeDefault: false;
154
+ enumValues: undefined;
155
+ baseColumn: never;
156
+ identity: undefined;
157
+ generated: undefined;
158
+ }, {}, {
159
+ sqliteColumnBuilderBrand: "SQLiteCustomColumnBuilderBrand";
160
+ }>;
161
+ content: import("@aigne/sqlite").SQLiteColumn<{
162
+ name: string;
163
+ tableName: string;
164
+ dataType: "custom";
165
+ columnType: "SQLiteCustomColumn";
166
+ data: unknown;
167
+ driverParam: string;
168
+ notNull: false;
169
+ hasDefault: false;
170
+ isPrimaryKey: false;
171
+ isAutoincrement: false;
172
+ hasRuntimeDefault: false;
173
+ enumValues: undefined;
174
+ baseColumn: never;
175
+ identity: undefined;
176
+ generated: undefined;
177
+ }, {}, {
178
+ sqliteColumnBuilderBrand: "SQLiteCustomColumnBuilderBrand";
179
+ }>;
180
+ };
181
+ dialect: "sqlite";
182
+ }>;
@@ -0,0 +1,22 @@
1
+ import { datetime, json, sqliteTable, text } from "@aigne/sqlite";
2
+ import { v7 } from "@aigne/uuid";
3
+ export const memoryTableName = (module) => `Entries_${module.name}_memory`;
4
+ export const memoryTable = (module) => sqliteTable(memoryTableName(module), {
5
+ id: text("id")
6
+ .notNull()
7
+ .primaryKey()
8
+ .$defaultFn(() => v7()),
9
+ createdAt: datetime("createdAt")
10
+ .notNull()
11
+ .$defaultFn(() => new Date()),
12
+ updatedAt: datetime("updatedAt")
13
+ .notNull()
14
+ .$defaultFn(() => new Date())
15
+ .$onUpdateFn(() => new Date()),
16
+ path: text("path").notNull(),
17
+ userId: text("userId"),
18
+ sessionId: text("sessionId"),
19
+ agentId: text("agentId"),
20
+ metadata: json("metadata"),
21
+ content: json("content"),
22
+ });
@@ -1,22 +1,49 @@
1
1
  import type { AFSEntry, AFSModule } from "@aigne/afs";
2
2
  import type { SQL } from "@aigne/sqlite";
3
- export interface AFSStorageCreatePayload extends Omit<AFSEntry, "id"> {
3
+ export interface AFSStorageCreatePayload extends AFSEntry {
4
4
  }
5
- export interface AFSStorageListOptions {
5
+ export interface AFSStorageTypeOptions {
6
+ type?: EntryType;
7
+ scope?: Scope;
8
+ }
9
+ export interface AFSStorageListOptions extends AFSStorageTypeOptions {
6
10
  filter?: {
7
11
  agentId?: string;
8
12
  userId?: string;
9
13
  sessionId?: string;
14
+ before?: Date | string;
15
+ after?: Date | string;
10
16
  };
11
17
  limit?: number;
12
18
  orderBy?: [string, "asc" | "desc"][];
13
19
  }
20
+ export interface AFSStorageReadOptions extends AFSStorageTypeOptions {
21
+ filter?: {
22
+ agentId?: string;
23
+ userId?: string;
24
+ sessionId?: string;
25
+ };
26
+ }
27
+ export interface AFSStorageDeleteOptions extends AFSStorageTypeOptions {
28
+ filter?: {
29
+ agentId?: string;
30
+ userId?: string;
31
+ sessionId?: string;
32
+ };
33
+ }
34
+ export type EntryType = "history" | "compact" | "memory";
35
+ export type Scope = "session" | "user" | "agent";
36
+ export interface AFSStorageCreateOptions extends AFSStorageTypeOptions {
37
+ }
14
38
  export interface AFSStorage {
15
- create(entry: AFSStorageCreatePayload): Promise<AFSEntry>;
39
+ create(entry: AFSStorageCreatePayload, options?: AFSStorageCreateOptions): Promise<AFSEntry>;
16
40
  list(options?: AFSStorageListOptions): Promise<{
17
41
  data: AFSEntry[];
18
42
  }>;
19
- read(path: string): Promise<AFSEntry | undefined>;
43
+ read(id: string, options?: AFSStorageReadOptions): Promise<AFSEntry | undefined>;
44
+ delete(id: string, options?: AFSStorageDeleteOptions): Promise<{
45
+ deletedCount: number;
46
+ }>;
20
47
  }
21
48
  export type AFSStorageMigrations = {
22
49
  hash: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aigne/afs-history",
3
- "version": "1.2.0-beta.4",
3
+ "version": "1.2.0-beta.6",
4
4
  "description": "AIGNE AFS module for managing chat history",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -48,8 +48,9 @@
48
48
  },
49
49
  "dependencies": {
50
50
  "@aigne/uuid": "^13.0.1",
51
+ "radix3": "^1.1.2",
51
52
  "ufo": "^1.6.1",
52
- "@aigne/afs": "^1.4.0-beta.4",
53
+ "@aigne/afs": "^1.4.0-beta.5",
53
54
  "@aigne/sqlite": "^0.4.9-beta"
54
55
  },
55
56
  "devDependencies": {