@aigne/afs-history 1.1.3 → 1.2.0-beta.10

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 (55) hide show
  1. package/CHANGELOG.md +135 -0
  2. package/lib/cjs/index.d.ts +38 -13
  3. package/lib/cjs/index.js +244 -23
  4. package/lib/cjs/storage/index.d.ts +11 -7
  5. package/lib/cjs/storage/index.js +69 -23
  6. package/lib/cjs/storage/migrate.d.ts +1 -1
  7. package/lib/cjs/storage/migrate.js +15 -5
  8. package/lib/cjs/storage/migrations/002-add-agent-id.d.ts +2 -0
  9. package/lib/cjs/storage/migrations/002-add-agent-id.js +13 -0
  10. package/lib/cjs/storage/migrations/003-add-compact-table.d.ts +2 -0
  11. package/lib/cjs/storage/migrations/003-add-compact-table.js +23 -0
  12. package/lib/cjs/storage/migrations/004-add-memory-table.d.ts +2 -0
  13. package/lib/cjs/storage/migrations/004-add-memory-table.js +23 -0
  14. package/lib/cjs/storage/migrations/005-add-indexes.d.ts +2 -0
  15. package/lib/cjs/storage/migrations/005-add-indexes.js +31 -0
  16. package/lib/cjs/storage/models/compact.d.ts +183 -0
  17. package/lib/cjs/storage/models/compact.js +27 -0
  18. package/lib/cjs/storage/models/entries.d.ts +19 -0
  19. package/lib/cjs/storage/models/entries.js +1 -0
  20. package/lib/cjs/storage/models/memory.d.ts +182 -0
  21. package/lib/cjs/storage/models/memory.js +27 -0
  22. package/lib/cjs/storage/type.d.ts +33 -5
  23. package/lib/dts/index.d.ts +38 -13
  24. package/lib/dts/storage/index.d.ts +11 -7
  25. package/lib/dts/storage/migrate.d.ts +1 -1
  26. package/lib/dts/storage/migrations/002-add-agent-id.d.ts +2 -0
  27. package/lib/dts/storage/migrations/003-add-compact-table.d.ts +2 -0
  28. package/lib/dts/storage/migrations/004-add-memory-table.d.ts +2 -0
  29. package/lib/dts/storage/migrations/005-add-indexes.d.ts +2 -0
  30. package/lib/dts/storage/models/compact.d.ts +183 -0
  31. package/lib/dts/storage/models/entries.d.ts +19 -0
  32. package/lib/dts/storage/models/memory.d.ts +182 -0
  33. package/lib/dts/storage/type.d.ts +33 -5
  34. package/lib/esm/index.d.ts +38 -13
  35. package/lib/esm/index.js +244 -23
  36. package/lib/esm/storage/index.d.ts +11 -7
  37. package/lib/esm/storage/index.js +70 -24
  38. package/lib/esm/storage/migrate.d.ts +1 -1
  39. package/lib/esm/storage/migrate.js +15 -5
  40. package/lib/esm/storage/migrations/002-add-agent-id.d.ts +2 -0
  41. package/lib/esm/storage/migrations/002-add-agent-id.js +10 -0
  42. package/lib/esm/storage/migrations/003-add-compact-table.d.ts +2 -0
  43. package/lib/esm/storage/migrations/003-add-compact-table.js +20 -0
  44. package/lib/esm/storage/migrations/004-add-memory-table.d.ts +2 -0
  45. package/lib/esm/storage/migrations/004-add-memory-table.js +20 -0
  46. package/lib/esm/storage/migrations/005-add-indexes.d.ts +2 -0
  47. package/lib/esm/storage/migrations/005-add-indexes.js +28 -0
  48. package/lib/esm/storage/models/compact.d.ts +183 -0
  49. package/lib/esm/storage/models/compact.js +22 -0
  50. package/lib/esm/storage/models/entries.d.ts +19 -0
  51. package/lib/esm/storage/models/entries.js +1 -0
  52. package/lib/esm/storage/models/memory.d.ts +182 -0
  53. package/lib/esm/storage/models/memory.js +22 -0
  54. package/lib/esm/storage/type.d.ts +33 -5
  55. package/package.json +5 -3
@@ -1,23 +1,48 @@
1
- import type { AFSEntry, AFSListOptions, AFSModule, AFSRoot, AFSWriteEntryPayload } from "@aigne/afs";
1
+ import { type AFSAccessMode, type AFSDeleteOptions, type AFSDeleteResult, type AFSListOptions, type AFSListResult, type AFSModule, type AFSModuleLoadParams, type AFSReadOptions, type AFSReadResult, type AFSRoot, type AFSWriteEntryPayload, type AFSWriteOptions, type AFSWriteResult } from "@aigne/afs";
2
+ import { z } from "zod";
2
3
  import { SharedAFSStorage, type SharedAFSStorageOptions } from "./storage/index.js";
3
4
  export * from "./storage/index.js";
4
5
  export interface AFSHistoryOptions {
5
6
  storage?: SharedAFSStorage | SharedAFSStorageOptions;
7
+ /**
8
+ * Access mode for this module.
9
+ * @default "readwrite"
10
+ */
11
+ accessMode?: AFSAccessMode;
6
12
  }
7
13
  export declare class AFSHistory implements AFSModule {
14
+ static schema(): z.ZodObject<{
15
+ storage: z.ZodOptional<z.ZodObject<{
16
+ url: z.ZodOptional<z.ZodString>;
17
+ }, "strip", z.ZodTypeAny, {
18
+ url?: string | undefined;
19
+ }, {
20
+ url?: string | undefined;
21
+ }>>;
22
+ accessMode: z.ZodOptional<z.ZodEnum<["readonly", "readwrite"]>>;
23
+ }, "strip", z.ZodTypeAny, {
24
+ storage?: {
25
+ url?: string | undefined;
26
+ } | undefined;
27
+ accessMode?: "readonly" | "readwrite" | undefined;
28
+ }, {
29
+ storage?: {
30
+ url?: string | undefined;
31
+ } | undefined;
32
+ accessMode?: "readonly" | "readwrite" | undefined;
33
+ }>;
34
+ static load({ parsed }: AFSModuleLoadParams): Promise<AFSHistory>;
8
35
  constructor(options?: AFSHistoryOptions);
9
- private storage;
10
36
  readonly name: string;
37
+ readonly accessMode: AFSAccessMode;
38
+ private storage;
39
+ private afs?;
40
+ private router;
41
+ private rootEntries;
11
42
  onMount(afs: AFSRoot): void;
12
- list(path: string, options?: AFSListOptions): Promise<{
13
- list: AFSEntry[];
14
- }>;
15
- read(path: string): Promise<{
16
- result: AFSEntry | undefined;
17
- message?: string;
18
- }>;
19
- write(path: string, content: AFSWriteEntryPayload): Promise<{
20
- result: AFSEntry;
21
- message?: string;
22
- }>;
43
+ list(path: string, options?: AFSListOptions): Promise<AFSListResult>;
44
+ read(path: string, options?: AFSReadOptions): Promise<AFSReadResult>;
45
+ write(path: string, content: AFSWriteEntryPayload, options: AFSWriteOptions): Promise<AFSWriteResult>;
46
+ delete(path: string, _options?: AFSDeleteOptions): Promise<AFSDeleteResult>;
47
+ private normalizePath;
23
48
  }
@@ -1,7 +1,6 @@
1
1
  import type { AFSEntry, AFSModule } from "@aigne/afs";
2
2
  import { initDatabase } from "@aigne/sqlite";
3
- import { entriesTable } from "./models/entries.js";
4
- import type { AFSStorage, AFSStorageCreatePayload, AFSStorageListOptions } from "./type.js";
3
+ import type { AFSStorage, AFSStorageCreateOptions, AFSStorageCreatePayload, AFSStorageDeleteOptions, AFSStorageListOptions, AFSStorageReadOptions } from "./type.js";
5
4
  export * from "./type.js";
6
5
  export interface SharedAFSStorageOptions {
7
6
  url?: string;
@@ -17,11 +16,16 @@ export declare class SharedAFSStorage {
17
16
  }
18
17
  export declare class AFSStorageWithModule implements AFSStorage {
19
18
  private db;
20
- private table;
21
- constructor(db: ReturnType<typeof initDatabase>, table: Promise<ReturnType<typeof entriesTable>>);
19
+ private module;
20
+ constructor(db: ReturnType<typeof initDatabase>, module: AFSModule);
21
+ private _tables?;
22
+ private get tables();
22
23
  list(options?: AFSStorageListOptions): Promise<{
23
- list: AFSEntry[];
24
+ data: AFSEntry[];
25
+ }>;
26
+ read(id: string, options?: AFSStorageReadOptions): Promise<AFSEntry | undefined>;
27
+ create(entry: AFSStorageCreatePayload, options?: AFSStorageCreateOptions): Promise<AFSEntry>;
28
+ delete(id: string, options?: AFSStorageDeleteOptions): Promise<{
29
+ deletedCount: number;
24
30
  }>;
25
- read(path: string): Promise<AFSEntry | undefined>;
26
- create(entry: AFSStorageCreatePayload): Promise<AFSEntry>;
27
31
  }
@@ -1,3 +1,3 @@
1
1
  import type { AFSModule } from "@aigne/afs";
2
2
  import { type initDatabase } from "@aigne/sqlite";
3
- export declare function migrate(db: ReturnType<typeof initDatabase>, module: AFSModule): Promise<void>;
3
+ export declare function migrate(db: Awaited<ReturnType<typeof initDatabase>>, module: AFSModule): Promise<void>;
@@ -0,0 +1,2 @@
1
+ import type { AFSStorageMigrations } from "../type.js";
2
+ export declare const addAgentId: AFSStorageMigrations;
@@ -0,0 +1,2 @@
1
+ import type { AFSStorageMigrations } from "../type.js";
2
+ export declare const addCompactTable: AFSStorageMigrations;
@@ -0,0 +1,2 @@
1
+ import type { AFSStorageMigrations } from "../type.js";
2
+ export declare const addMemoryTable: AFSStorageMigrations;
@@ -0,0 +1,2 @@
1
+ import type { AFSStorageMigrations } from "../type.js";
2
+ export declare const addIndexes: AFSStorageMigrations;
@@ -0,0 +1,183 @@
1
+ import type { AFSModule } from "@aigne/afs";
2
+ export declare const compactTableName: (module: AFSModule) => string;
3
+ export declare const compactTable: (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
+ latestEntryId?: string;
148
+ } & Record<string, unknown>;
149
+ driverParam: string;
150
+ notNull: false;
151
+ hasDefault: false;
152
+ isPrimaryKey: false;
153
+ isAutoincrement: false;
154
+ hasRuntimeDefault: false;
155
+ enumValues: undefined;
156
+ baseColumn: never;
157
+ identity: undefined;
158
+ generated: undefined;
159
+ }, {}, {
160
+ sqliteColumnBuilderBrand: "SQLiteCustomColumnBuilderBrand";
161
+ }>;
162
+ content: import("@aigne/sqlite").SQLiteColumn<{
163
+ name: string;
164
+ tableName: string;
165
+ dataType: "custom";
166
+ columnType: "SQLiteCustomColumn";
167
+ data: unknown;
168
+ driverParam: string;
169
+ notNull: false;
170
+ hasDefault: false;
171
+ isPrimaryKey: false;
172
+ isAutoincrement: false;
173
+ hasRuntimeDefault: false;
174
+ enumValues: undefined;
175
+ baseColumn: never;
176
+ identity: undefined;
177
+ generated: undefined;
178
+ }, {}, {
179
+ sqliteColumnBuilderBrand: "SQLiteCustomColumnBuilderBrand";
180
+ }>;
181
+ };
182
+ dialect: "sqlite";
183
+ }>;
@@ -80,6 +80,25 @@ export declare const entriesTable: (module: AFSModule) => import("@aigne/sqlite"
80
80
  }, {}, {
81
81
  length: number | undefined;
82
82
  }>;
83
+ agentId: import("@aigne/sqlite").SQLiteColumn<{
84
+ name: "agentId";
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
+ }>;
83
102
  userId: import("@aigne/sqlite").SQLiteColumn<{
84
103
  name: "userId";
85
104
  tableName: string;
@@ -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
+ }>;
@@ -1,21 +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?: {
11
+ agentId?: string;
7
12
  userId?: string;
8
13
  sessionId?: string;
14
+ before?: Date | string;
15
+ after?: Date | string;
9
16
  };
10
17
  limit?: number;
11
18
  orderBy?: [string, "asc" | "desc"][];
12
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
+ }
13
38
  export interface AFSStorage {
14
- create(entry: AFSStorageCreatePayload): Promise<AFSEntry>;
39
+ create(entry: AFSStorageCreatePayload, options?: AFSStorageCreateOptions): Promise<AFSEntry>;
15
40
  list(options?: AFSStorageListOptions): Promise<{
16
- list: AFSEntry[];
41
+ data: AFSEntry[];
42
+ }>;
43
+ read(id: string, options?: AFSStorageReadOptions): Promise<AFSEntry | undefined>;
44
+ delete(id: string, options?: AFSStorageDeleteOptions): Promise<{
45
+ deletedCount: number;
17
46
  }>;
18
- read(path: string): Promise<AFSEntry | undefined>;
19
47
  }
20
48
  export type AFSStorageMigrations = {
21
49
  hash: string;
@@ -1,23 +1,48 @@
1
- import type { AFSEntry, AFSListOptions, AFSModule, AFSRoot, AFSWriteEntryPayload } from "@aigne/afs";
1
+ import { type AFSAccessMode, type AFSDeleteOptions, type AFSDeleteResult, type AFSListOptions, type AFSListResult, type AFSModule, type AFSModuleLoadParams, type AFSReadOptions, type AFSReadResult, type AFSRoot, type AFSWriteEntryPayload, type AFSWriteOptions, type AFSWriteResult } from "@aigne/afs";
2
+ import { z } from "zod";
2
3
  import { SharedAFSStorage, type SharedAFSStorageOptions } from "./storage/index.js";
3
4
  export * from "./storage/index.js";
4
5
  export interface AFSHistoryOptions {
5
6
  storage?: SharedAFSStorage | SharedAFSStorageOptions;
7
+ /**
8
+ * Access mode for this module.
9
+ * @default "readwrite"
10
+ */
11
+ accessMode?: AFSAccessMode;
6
12
  }
7
13
  export declare class AFSHistory implements AFSModule {
14
+ static schema(): z.ZodObject<{
15
+ storage: z.ZodOptional<z.ZodObject<{
16
+ url: z.ZodOptional<z.ZodString>;
17
+ }, "strip", z.ZodTypeAny, {
18
+ url?: string | undefined;
19
+ }, {
20
+ url?: string | undefined;
21
+ }>>;
22
+ accessMode: z.ZodOptional<z.ZodEnum<["readonly", "readwrite"]>>;
23
+ }, "strip", z.ZodTypeAny, {
24
+ storage?: {
25
+ url?: string | undefined;
26
+ } | undefined;
27
+ accessMode?: "readonly" | "readwrite" | undefined;
28
+ }, {
29
+ storage?: {
30
+ url?: string | undefined;
31
+ } | undefined;
32
+ accessMode?: "readonly" | "readwrite" | undefined;
33
+ }>;
34
+ static load({ parsed }: AFSModuleLoadParams): Promise<AFSHistory>;
8
35
  constructor(options?: AFSHistoryOptions);
9
- private storage;
10
36
  readonly name: string;
37
+ readonly accessMode: AFSAccessMode;
38
+ private storage;
39
+ private afs?;
40
+ private router;
41
+ private rootEntries;
11
42
  onMount(afs: AFSRoot): void;
12
- list(path: string, options?: AFSListOptions): Promise<{
13
- list: AFSEntry[];
14
- }>;
15
- read(path: string): Promise<{
16
- result: AFSEntry | undefined;
17
- message?: string;
18
- }>;
19
- write(path: string, content: AFSWriteEntryPayload): Promise<{
20
- result: AFSEntry;
21
- message?: string;
22
- }>;
43
+ list(path: string, options?: AFSListOptions): Promise<AFSListResult>;
44
+ read(path: string, options?: AFSReadOptions): Promise<AFSReadResult>;
45
+ write(path: string, content: AFSWriteEntryPayload, options: AFSWriteOptions): Promise<AFSWriteResult>;
46
+ delete(path: string, _options?: AFSDeleteOptions): Promise<AFSDeleteResult>;
47
+ private normalizePath;
23
48
  }