@witqq/agent-sdk 0.7.0 → 0.9.0
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/dist/{types-CqvUAYxt.d.ts → agent-C6H2CgJA.d.cts} +139 -102
- package/dist/{types-CqvUAYxt.d.cts → agent-F7oB6eKp.d.ts} +139 -102
- package/dist/auth/index.cjs +72 -1
- package/dist/auth/index.cjs.map +1 -1
- package/dist/auth/index.d.cts +21 -154
- package/dist/auth/index.d.ts +21 -154
- package/dist/auth/index.js +72 -1
- package/dist/auth/index.js.map +1 -1
- package/dist/backends/claude.cjs +480 -261
- package/dist/backends/claude.cjs.map +1 -1
- package/dist/backends/claude.d.cts +3 -1
- package/dist/backends/claude.d.ts +3 -1
- package/dist/backends/claude.js +480 -261
- package/dist/backends/claude.js.map +1 -1
- package/dist/backends/copilot.cjs +337 -112
- package/dist/backends/copilot.cjs.map +1 -1
- package/dist/backends/copilot.d.cts +12 -4
- package/dist/backends/copilot.d.ts +12 -4
- package/dist/backends/copilot.js +337 -112
- package/dist/backends/copilot.js.map +1 -1
- package/dist/backends/mock-llm.cjs +719 -0
- package/dist/backends/mock-llm.cjs.map +1 -0
- package/dist/backends/mock-llm.d.cts +37 -0
- package/dist/backends/mock-llm.d.ts +37 -0
- package/dist/backends/mock-llm.js +717 -0
- package/dist/backends/mock-llm.js.map +1 -0
- package/dist/backends/vercel-ai.cjs +301 -61
- package/dist/backends/vercel-ai.cjs.map +1 -1
- package/dist/backends/vercel-ai.d.cts +3 -1
- package/dist/backends/vercel-ai.d.ts +3 -1
- package/dist/backends/vercel-ai.js +301 -61
- package/dist/backends/vercel-ai.js.map +1 -1
- package/dist/backends-Cno0gZjy.d.cts +114 -0
- package/dist/backends-Cno0gZjy.d.ts +114 -0
- package/dist/chat/accumulator.cjs +1 -1
- package/dist/chat/accumulator.cjs.map +1 -1
- package/dist/chat/accumulator.d.cts +5 -2
- package/dist/chat/accumulator.d.ts +5 -2
- package/dist/chat/accumulator.js +1 -1
- package/dist/chat/accumulator.js.map +1 -1
- package/dist/chat/backends.cjs +1084 -821
- package/dist/chat/backends.cjs.map +1 -1
- package/dist/chat/backends.d.cts +10 -6
- package/dist/chat/backends.d.ts +10 -6
- package/dist/chat/backends.js +1082 -800
- package/dist/chat/backends.js.map +1 -1
- package/dist/chat/context.cjs +50 -0
- package/dist/chat/context.cjs.map +1 -1
- package/dist/chat/context.d.cts +27 -3
- package/dist/chat/context.d.ts +27 -3
- package/dist/chat/context.js +50 -0
- package/dist/chat/context.js.map +1 -1
- package/dist/chat/core.cjs +60 -27
- package/dist/chat/core.cjs.map +1 -1
- package/dist/chat/core.d.cts +41 -382
- package/dist/chat/core.d.ts +41 -382
- package/dist/chat/core.js +58 -28
- package/dist/chat/core.js.map +1 -1
- package/dist/chat/errors.cjs +48 -26
- package/dist/chat/errors.cjs.map +1 -1
- package/dist/chat/errors.d.cts +6 -31
- package/dist/chat/errors.d.ts +6 -31
- package/dist/chat/errors.js +48 -25
- package/dist/chat/errors.js.map +1 -1
- package/dist/chat/events.cjs.map +1 -1
- package/dist/chat/events.d.cts +6 -2
- package/dist/chat/events.d.ts +6 -2
- package/dist/chat/events.js.map +1 -1
- package/dist/chat/index.cjs +1612 -1125
- package/dist/chat/index.cjs.map +1 -1
- package/dist/chat/index.d.cts +35 -10
- package/dist/chat/index.d.ts +35 -10
- package/dist/chat/index.js +1600 -1097
- package/dist/chat/index.js.map +1 -1
- package/dist/chat/react/theme.css +2517 -0
- package/dist/chat/react.cjs +2212 -1158
- package/dist/chat/react.cjs.map +1 -1
- package/dist/chat/react.d.cts +665 -122
- package/dist/chat/react.d.ts +665 -122
- package/dist/chat/react.js +2191 -1156
- package/dist/chat/react.js.map +1 -1
- package/dist/chat/runtime.cjs +405 -186
- package/dist/chat/runtime.cjs.map +1 -1
- package/dist/chat/runtime.d.cts +92 -28
- package/dist/chat/runtime.d.ts +92 -28
- package/dist/chat/runtime.js +405 -186
- package/dist/chat/runtime.js.map +1 -1
- package/dist/chat/server.cjs +2247 -212
- package/dist/chat/server.cjs.map +1 -1
- package/dist/chat/server.d.cts +451 -90
- package/dist/chat/server.d.ts +451 -90
- package/dist/chat/server.js +2234 -213
- package/dist/chat/server.js.map +1 -1
- package/dist/chat/sessions.cjs +64 -66
- package/dist/chat/sessions.cjs.map +1 -1
- package/dist/chat/sessions.d.cts +37 -118
- package/dist/chat/sessions.d.ts +37 -118
- package/dist/chat/sessions.js +65 -67
- package/dist/chat/sessions.js.map +1 -1
- package/dist/chat/sqlite.cjs +536 -0
- package/dist/chat/sqlite.cjs.map +1 -0
- package/dist/chat/sqlite.d.cts +164 -0
- package/dist/chat/sqlite.d.ts +164 -0
- package/dist/chat/sqlite.js +527 -0
- package/dist/chat/sqlite.js.map +1 -0
- package/dist/chat/state.cjs +14 -1
- package/dist/chat/state.cjs.map +1 -1
- package/dist/chat/state.d.cts +5 -2
- package/dist/chat/state.d.ts +5 -2
- package/dist/chat/state.js +14 -1
- package/dist/chat/state.js.map +1 -1
- package/dist/chat/storage.cjs +58 -33
- package/dist/chat/storage.cjs.map +1 -1
- package/dist/chat/storage.d.cts +18 -8
- package/dist/chat/storage.d.ts +18 -8
- package/dist/chat/storage.js +59 -34
- package/dist/chat/storage.js.map +1 -1
- package/dist/errors-C-so0M4t.d.cts +33 -0
- package/dist/errors-C-so0M4t.d.ts +33 -0
- package/dist/errors-CmVvczxZ.d.cts +28 -0
- package/dist/errors-CmVvczxZ.d.ts +28 -0
- package/dist/{in-process-transport-C2oPTYs6.d.ts → in-process-transport-7EIit9Xk.d.ts} +72 -33
- package/dist/{in-process-transport-DG-w5G6k.d.cts → in-process-transport-Ct9YcX8I.d.cts} +72 -33
- package/dist/index.cjs +354 -60
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +294 -123
- package/dist/index.d.ts +294 -123
- package/dist/index.js +347 -60
- package/dist/index.js.map +1 -1
- package/dist/provider-types-PTSlRPNB.d.cts +39 -0
- package/dist/provider-types-PTSlRPNB.d.ts +39 -0
- package/dist/refresh-manager-B81PpYBr.d.cts +153 -0
- package/dist/refresh-manager-Dlv_iNZi.d.ts +153 -0
- package/dist/testing.cjs +1107 -0
- package/dist/testing.cjs.map +1 -0
- package/dist/testing.d.cts +144 -0
- package/dist/testing.d.ts +144 -0
- package/dist/testing.js +1101 -0
- package/dist/testing.js.map +1 -0
- package/dist/token-store-CSUBgYwn.d.ts +48 -0
- package/dist/token-store-CuC4hB9Z.d.cts +48 -0
- package/dist/{transport-DX1Nhm4N.d.cts → transport-DLWCN18G.d.cts} +5 -4
- package/dist/{transport-D1OaUgRk.d.ts → transport-DsuS-GeM.d.ts} +5 -4
- package/dist/{types-CGF7AEX1.d.cts → types-4vbcmPTp.d.cts} +4 -2
- package/dist/{types-Bh5AhqD-.d.ts → types-BxggH0Yh.d.ts} +4 -2
- package/dist/types-DgtI1hzh.d.ts +364 -0
- package/dist/types-DkSXALKg.d.cts +364 -0
- package/package.json +41 -5
- package/LICENSE +0 -21
- package/README.md +0 -948
- package/dist/errors-BDLbNu9w.d.cts +0 -13
- package/dist/errors-BDLbNu9w.d.ts +0 -13
- package/dist/types-DLZzlJxt.d.ts +0 -39
- package/dist/types-tE0CXwBl.d.cts +0 -39
package/dist/chat/sessions.d.cts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { b as ChatId, g as ChatSession, c as ChatMessage, j as ChatSessionConfig } from '../types-DkSXALKg.cjs';
|
|
2
2
|
import { IStorageAdapter } from './storage.cjs';
|
|
3
3
|
export { StorageError } from './storage.cjs';
|
|
4
|
-
import '../
|
|
4
|
+
import '../agent-C6H2CgJA.cjs';
|
|
5
5
|
import 'zod';
|
|
6
|
-
import '../errors-
|
|
6
|
+
import '../errors-C-so0M4t.cjs';
|
|
7
|
+
import '../types-4vbcmPTp.cjs';
|
|
8
|
+
import '../errors-CmVvczxZ.cjs';
|
|
7
9
|
|
|
8
10
|
/**
|
|
9
11
|
* @witqq/agent-sdk/chat/sessions
|
|
@@ -52,121 +54,47 @@ interface SessionSearchOptions {
|
|
|
52
54
|
limit?: number;
|
|
53
55
|
}
|
|
54
56
|
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
* @example
|
|
59
|
-
* ```typescript
|
|
60
|
-
* const store = new InMemorySessionStore();
|
|
61
|
-
* const session = await store.createSession({ config: { model: "gpt-4", backend: "vercel-ai" } });
|
|
62
|
-
* await store.appendMessage(session.id, message);
|
|
63
|
-
* const page = await store.loadMessages(session.id, { limit: 20, offset: 0 });
|
|
64
|
-
* ```
|
|
57
|
+
* Read-only session operations.
|
|
58
|
+
* Consumers needing read-only access (dashboards, analytics) implement only this.
|
|
65
59
|
*/
|
|
66
|
-
interface
|
|
67
|
-
/**
|
|
68
|
-
* Create a new session with defaults.
|
|
69
|
-
* @param options - Session creation options
|
|
70
|
-
* @returns The created session
|
|
71
|
-
*/
|
|
72
|
-
createSession(options: CreateSessionOptions): Promise<ChatSession>;
|
|
73
|
-
/**
|
|
74
|
-
* Retrieve a session by ID.
|
|
75
|
-
* @param id - Session ID
|
|
76
|
-
* @returns The session, or `null` if not found
|
|
77
|
-
*/
|
|
60
|
+
interface ISessionReader {
|
|
78
61
|
getSession(id: ChatId): Promise<ChatSession | null>;
|
|
79
|
-
/**
|
|
80
|
-
* List sessions with optional filtering, sorting, and pagination.
|
|
81
|
-
* @param options - List options
|
|
82
|
-
* @returns Array of sessions
|
|
83
|
-
*/
|
|
84
62
|
listSessions(options?: SessionListOptions): Promise<ChatSession[]>;
|
|
85
|
-
/**
|
|
86
|
-
* Update session title.
|
|
87
|
-
* @param id - Session ID
|
|
88
|
-
* @param title - New title
|
|
89
|
-
* @throws {StorageError} with code `NOT_FOUND` if session doesn't exist
|
|
90
|
-
*/
|
|
91
|
-
updateTitle(id: ChatId, title: string): Promise<void>;
|
|
92
|
-
/**
|
|
93
|
-
* Update session configuration.
|
|
94
|
-
* @param id - Session ID
|
|
95
|
-
* @param config - Partial config to merge
|
|
96
|
-
* @throws {StorageError} with code `NOT_FOUND` if session doesn't exist
|
|
97
|
-
*/
|
|
98
|
-
updateConfig(id: ChatId, config: Partial<ChatSessionConfig>): Promise<void>;
|
|
99
|
-
/**
|
|
100
|
-
* Delete a session by ID.
|
|
101
|
-
* @param id - Session ID
|
|
102
|
-
* @throws {StorageError} with code `NOT_FOUND` if session doesn't exist
|
|
103
|
-
*/
|
|
104
|
-
deleteSession(id: ChatId): Promise<void>;
|
|
105
|
-
/**
|
|
106
|
-
* Append a single message to a session.
|
|
107
|
-
* Updates session metadata (messageCount, updatedAt).
|
|
108
|
-
* @param sessionId - Session ID
|
|
109
|
-
* @param message - Message to append
|
|
110
|
-
* @throws {StorageError} with code `NOT_FOUND` if session doesn't exist
|
|
111
|
-
*/
|
|
112
|
-
appendMessage(sessionId: ChatId, message: ChatMessage): Promise<void>;
|
|
113
|
-
/**
|
|
114
|
-
* Append multiple messages to a session in bulk.
|
|
115
|
-
* No-op if messages array is empty.
|
|
116
|
-
* @param sessionId - Session ID
|
|
117
|
-
* @param messages - Messages to append
|
|
118
|
-
* @throws {StorageError} with code `NOT_FOUND` if session doesn't exist
|
|
119
|
-
*/
|
|
120
|
-
saveMessages(sessionId: ChatId, messages: ChatMessage[]): Promise<void>;
|
|
121
|
-
/**
|
|
122
|
-
* Get paginated messages from a session.
|
|
123
|
-
* @param sessionId - Session ID
|
|
124
|
-
* @param options - Pagination options (limit, offset)
|
|
125
|
-
* @returns Paginated messages result
|
|
126
|
-
* @throws {StorageError} with code `NOT_FOUND` if session doesn't exist
|
|
127
|
-
*/
|
|
128
63
|
loadMessages(sessionId: ChatId, options?: {
|
|
129
64
|
limit?: number;
|
|
130
65
|
offset?: number;
|
|
131
66
|
}): Promise<PaginatedMessages>;
|
|
132
|
-
/**
|
|
133
|
-
* Archive a session (set status to "archived").
|
|
134
|
-
* @param id - Session ID
|
|
135
|
-
* @throws {StorageError} with code `NOT_FOUND` if session doesn't exist
|
|
136
|
-
*/
|
|
137
|
-
archiveSession(id: ChatId): Promise<void>;
|
|
138
|
-
/**
|
|
139
|
-
* Unarchive a session (set status back to "active").
|
|
140
|
-
* @param id - Session ID
|
|
141
|
-
* @throws {StorageError} with code `NOT_FOUND` if session doesn't exist
|
|
142
|
-
*/
|
|
143
|
-
unarchiveSession(id: ChatId): Promise<void>;
|
|
144
|
-
/**
|
|
145
|
-
* Search sessions by title and message content.
|
|
146
|
-
* Case-insensitive substring match.
|
|
147
|
-
* @param options - Search query and limit
|
|
148
|
-
* @returns Matching sessions (without full message content)
|
|
149
|
-
*/
|
|
150
67
|
searchSessions(options: SessionSearchOptions): Promise<ChatSession[]>;
|
|
151
|
-
/**
|
|
152
|
-
* Return the number of stored sessions.
|
|
153
|
-
*/
|
|
154
68
|
count(): Promise<number>;
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Write/mutate session operations.
|
|
72
|
+
* Consumers needing full access implement both ISessionReader & ISessionWriter.
|
|
73
|
+
*/
|
|
74
|
+
interface ISessionWriter {
|
|
75
|
+
createSession(options: CreateSessionOptions): Promise<ChatSession>;
|
|
76
|
+
updateTitle(id: ChatId, title: string): Promise<void>;
|
|
77
|
+
updateConfig(id: ChatId, config: Partial<ChatSessionConfig>): Promise<void>;
|
|
78
|
+
deleteSession(id: ChatId): Promise<void>;
|
|
79
|
+
appendMessage(sessionId: ChatId, message: ChatMessage): Promise<void>;
|
|
80
|
+
saveMessages(sessionId: ChatId, messages: ChatMessage[]): Promise<void>;
|
|
158
81
|
clear(): Promise<void>;
|
|
159
|
-
/**
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
82
|
+
/** Release any resources held by this store (optional). */
|
|
83
|
+
dispose?(): Promise<void>;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Full session store interface — union of reader and writer.
|
|
87
|
+
* Backward-compatible: all existing implementations continue to work.
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```typescript
|
|
91
|
+
* const store = new InMemorySessionStore();
|
|
92
|
+
* const session = await store.createSession({ config: { model: "gpt-4", backend: "vercel-ai" } });
|
|
93
|
+
* await store.appendMessage(session.id, message);
|
|
94
|
+
* const page = await store.loadMessages(session.id, { limit: 20, offset: 0 });
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
interface IChatSessionStore extends ISessionReader, ISessionWriter {
|
|
170
98
|
}
|
|
171
99
|
/**
|
|
172
100
|
* Base session store implementation backed by any `IStorageAdapter<ChatSession>`.
|
|
@@ -187,18 +115,9 @@ declare class BaseSessionStore implements IChatSessionStore {
|
|
|
187
115
|
limit?: number;
|
|
188
116
|
offset?: number;
|
|
189
117
|
}): Promise<PaginatedMessages>;
|
|
190
|
-
archiveSession(id: ChatId): Promise<void>;
|
|
191
|
-
unarchiveSession(id: ChatId): Promise<void>;
|
|
192
118
|
searchSessions(options: SessionSearchOptions): Promise<ChatSession[]>;
|
|
193
119
|
count(): Promise<number>;
|
|
194
120
|
clear(): Promise<void>;
|
|
195
|
-
/** @deprecated Use `appendMessage()` instead */
|
|
196
|
-
addMessage(sessionId: ChatId, message: ChatMessage): Promise<void>;
|
|
197
|
-
/** @deprecated Use `loadMessages()` instead */
|
|
198
|
-
getMessages(sessionId: ChatId, options?: {
|
|
199
|
-
limit?: number;
|
|
200
|
-
offset?: number;
|
|
201
|
-
}): Promise<PaginatedMessages>;
|
|
202
121
|
}
|
|
203
122
|
/**
|
|
204
123
|
* In-memory session store. Data is lost when the process exits.
|
|
@@ -236,4 +155,4 @@ declare class FileSessionStore extends BaseSessionStore {
|
|
|
236
155
|
constructor(options: FileSessionStoreOptions);
|
|
237
156
|
}
|
|
238
157
|
|
|
239
|
-
export { type CreateSessionOptions, FileSessionStore, type FileSessionStoreOptions, type IChatSessionStore, InMemorySessionStore, type PaginatedMessages, type SessionListOptions, type SessionSearchOptions };
|
|
158
|
+
export { type CreateSessionOptions, FileSessionStore, type FileSessionStoreOptions, type IChatSessionStore, type ISessionReader, type ISessionWriter, InMemorySessionStore, type PaginatedMessages, type SessionListOptions, type SessionSearchOptions };
|
package/dist/chat/sessions.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { b as ChatId, g as ChatSession, c as ChatMessage, j as ChatSessionConfig } from '../types-DgtI1hzh.js';
|
|
2
2
|
import { IStorageAdapter } from './storage.js';
|
|
3
3
|
export { StorageError } from './storage.js';
|
|
4
|
-
import '../
|
|
4
|
+
import '../agent-F7oB6eKp.js';
|
|
5
5
|
import 'zod';
|
|
6
|
-
import '../errors-
|
|
6
|
+
import '../errors-C-so0M4t.js';
|
|
7
|
+
import '../types-BxggH0Yh.js';
|
|
8
|
+
import '../errors-CmVvczxZ.js';
|
|
7
9
|
|
|
8
10
|
/**
|
|
9
11
|
* @witqq/agent-sdk/chat/sessions
|
|
@@ -52,121 +54,47 @@ interface SessionSearchOptions {
|
|
|
52
54
|
limit?: number;
|
|
53
55
|
}
|
|
54
56
|
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
* @example
|
|
59
|
-
* ```typescript
|
|
60
|
-
* const store = new InMemorySessionStore();
|
|
61
|
-
* const session = await store.createSession({ config: { model: "gpt-4", backend: "vercel-ai" } });
|
|
62
|
-
* await store.appendMessage(session.id, message);
|
|
63
|
-
* const page = await store.loadMessages(session.id, { limit: 20, offset: 0 });
|
|
64
|
-
* ```
|
|
57
|
+
* Read-only session operations.
|
|
58
|
+
* Consumers needing read-only access (dashboards, analytics) implement only this.
|
|
65
59
|
*/
|
|
66
|
-
interface
|
|
67
|
-
/**
|
|
68
|
-
* Create a new session with defaults.
|
|
69
|
-
* @param options - Session creation options
|
|
70
|
-
* @returns The created session
|
|
71
|
-
*/
|
|
72
|
-
createSession(options: CreateSessionOptions): Promise<ChatSession>;
|
|
73
|
-
/**
|
|
74
|
-
* Retrieve a session by ID.
|
|
75
|
-
* @param id - Session ID
|
|
76
|
-
* @returns The session, or `null` if not found
|
|
77
|
-
*/
|
|
60
|
+
interface ISessionReader {
|
|
78
61
|
getSession(id: ChatId): Promise<ChatSession | null>;
|
|
79
|
-
/**
|
|
80
|
-
* List sessions with optional filtering, sorting, and pagination.
|
|
81
|
-
* @param options - List options
|
|
82
|
-
* @returns Array of sessions
|
|
83
|
-
*/
|
|
84
62
|
listSessions(options?: SessionListOptions): Promise<ChatSession[]>;
|
|
85
|
-
/**
|
|
86
|
-
* Update session title.
|
|
87
|
-
* @param id - Session ID
|
|
88
|
-
* @param title - New title
|
|
89
|
-
* @throws {StorageError} with code `NOT_FOUND` if session doesn't exist
|
|
90
|
-
*/
|
|
91
|
-
updateTitle(id: ChatId, title: string): Promise<void>;
|
|
92
|
-
/**
|
|
93
|
-
* Update session configuration.
|
|
94
|
-
* @param id - Session ID
|
|
95
|
-
* @param config - Partial config to merge
|
|
96
|
-
* @throws {StorageError} with code `NOT_FOUND` if session doesn't exist
|
|
97
|
-
*/
|
|
98
|
-
updateConfig(id: ChatId, config: Partial<ChatSessionConfig>): Promise<void>;
|
|
99
|
-
/**
|
|
100
|
-
* Delete a session by ID.
|
|
101
|
-
* @param id - Session ID
|
|
102
|
-
* @throws {StorageError} with code `NOT_FOUND` if session doesn't exist
|
|
103
|
-
*/
|
|
104
|
-
deleteSession(id: ChatId): Promise<void>;
|
|
105
|
-
/**
|
|
106
|
-
* Append a single message to a session.
|
|
107
|
-
* Updates session metadata (messageCount, updatedAt).
|
|
108
|
-
* @param sessionId - Session ID
|
|
109
|
-
* @param message - Message to append
|
|
110
|
-
* @throws {StorageError} with code `NOT_FOUND` if session doesn't exist
|
|
111
|
-
*/
|
|
112
|
-
appendMessage(sessionId: ChatId, message: ChatMessage): Promise<void>;
|
|
113
|
-
/**
|
|
114
|
-
* Append multiple messages to a session in bulk.
|
|
115
|
-
* No-op if messages array is empty.
|
|
116
|
-
* @param sessionId - Session ID
|
|
117
|
-
* @param messages - Messages to append
|
|
118
|
-
* @throws {StorageError} with code `NOT_FOUND` if session doesn't exist
|
|
119
|
-
*/
|
|
120
|
-
saveMessages(sessionId: ChatId, messages: ChatMessage[]): Promise<void>;
|
|
121
|
-
/**
|
|
122
|
-
* Get paginated messages from a session.
|
|
123
|
-
* @param sessionId - Session ID
|
|
124
|
-
* @param options - Pagination options (limit, offset)
|
|
125
|
-
* @returns Paginated messages result
|
|
126
|
-
* @throws {StorageError} with code `NOT_FOUND` if session doesn't exist
|
|
127
|
-
*/
|
|
128
63
|
loadMessages(sessionId: ChatId, options?: {
|
|
129
64
|
limit?: number;
|
|
130
65
|
offset?: number;
|
|
131
66
|
}): Promise<PaginatedMessages>;
|
|
132
|
-
/**
|
|
133
|
-
* Archive a session (set status to "archived").
|
|
134
|
-
* @param id - Session ID
|
|
135
|
-
* @throws {StorageError} with code `NOT_FOUND` if session doesn't exist
|
|
136
|
-
*/
|
|
137
|
-
archiveSession(id: ChatId): Promise<void>;
|
|
138
|
-
/**
|
|
139
|
-
* Unarchive a session (set status back to "active").
|
|
140
|
-
* @param id - Session ID
|
|
141
|
-
* @throws {StorageError} with code `NOT_FOUND` if session doesn't exist
|
|
142
|
-
*/
|
|
143
|
-
unarchiveSession(id: ChatId): Promise<void>;
|
|
144
|
-
/**
|
|
145
|
-
* Search sessions by title and message content.
|
|
146
|
-
* Case-insensitive substring match.
|
|
147
|
-
* @param options - Search query and limit
|
|
148
|
-
* @returns Matching sessions (without full message content)
|
|
149
|
-
*/
|
|
150
67
|
searchSessions(options: SessionSearchOptions): Promise<ChatSession[]>;
|
|
151
|
-
/**
|
|
152
|
-
* Return the number of stored sessions.
|
|
153
|
-
*/
|
|
154
68
|
count(): Promise<number>;
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Write/mutate session operations.
|
|
72
|
+
* Consumers needing full access implement both ISessionReader & ISessionWriter.
|
|
73
|
+
*/
|
|
74
|
+
interface ISessionWriter {
|
|
75
|
+
createSession(options: CreateSessionOptions): Promise<ChatSession>;
|
|
76
|
+
updateTitle(id: ChatId, title: string): Promise<void>;
|
|
77
|
+
updateConfig(id: ChatId, config: Partial<ChatSessionConfig>): Promise<void>;
|
|
78
|
+
deleteSession(id: ChatId): Promise<void>;
|
|
79
|
+
appendMessage(sessionId: ChatId, message: ChatMessage): Promise<void>;
|
|
80
|
+
saveMessages(sessionId: ChatId, messages: ChatMessage[]): Promise<void>;
|
|
158
81
|
clear(): Promise<void>;
|
|
159
|
-
/**
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
82
|
+
/** Release any resources held by this store (optional). */
|
|
83
|
+
dispose?(): Promise<void>;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Full session store interface — union of reader and writer.
|
|
87
|
+
* Backward-compatible: all existing implementations continue to work.
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```typescript
|
|
91
|
+
* const store = new InMemorySessionStore();
|
|
92
|
+
* const session = await store.createSession({ config: { model: "gpt-4", backend: "vercel-ai" } });
|
|
93
|
+
* await store.appendMessage(session.id, message);
|
|
94
|
+
* const page = await store.loadMessages(session.id, { limit: 20, offset: 0 });
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
interface IChatSessionStore extends ISessionReader, ISessionWriter {
|
|
170
98
|
}
|
|
171
99
|
/**
|
|
172
100
|
* Base session store implementation backed by any `IStorageAdapter<ChatSession>`.
|
|
@@ -187,18 +115,9 @@ declare class BaseSessionStore implements IChatSessionStore {
|
|
|
187
115
|
limit?: number;
|
|
188
116
|
offset?: number;
|
|
189
117
|
}): Promise<PaginatedMessages>;
|
|
190
|
-
archiveSession(id: ChatId): Promise<void>;
|
|
191
|
-
unarchiveSession(id: ChatId): Promise<void>;
|
|
192
118
|
searchSessions(options: SessionSearchOptions): Promise<ChatSession[]>;
|
|
193
119
|
count(): Promise<number>;
|
|
194
120
|
clear(): Promise<void>;
|
|
195
|
-
/** @deprecated Use `appendMessage()` instead */
|
|
196
|
-
addMessage(sessionId: ChatId, message: ChatMessage): Promise<void>;
|
|
197
|
-
/** @deprecated Use `loadMessages()` instead */
|
|
198
|
-
getMessages(sessionId: ChatId, options?: {
|
|
199
|
-
limit?: number;
|
|
200
|
-
offset?: number;
|
|
201
|
-
}): Promise<PaginatedMessages>;
|
|
202
121
|
}
|
|
203
122
|
/**
|
|
204
123
|
* In-memory session store. Data is lost when the process exits.
|
|
@@ -236,4 +155,4 @@ declare class FileSessionStore extends BaseSessionStore {
|
|
|
236
155
|
constructor(options: FileSessionStoreOptions);
|
|
237
156
|
}
|
|
238
157
|
|
|
239
|
-
export { type CreateSessionOptions, FileSessionStore, type FileSessionStoreOptions, type IChatSessionStore, InMemorySessionStore, type PaginatedMessages, type SessionListOptions, type SessionSearchOptions };
|
|
158
|
+
export { type CreateSessionOptions, FileSessionStore, type FileSessionStoreOptions, type IChatSessionStore, type ISessionReader, type ISessionWriter, InMemorySessionStore, type PaginatedMessages, type SessionListOptions, type SessionSearchOptions };
|