@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.
Files changed (154) hide show
  1. package/dist/{types-CqvUAYxt.d.ts → agent-C6H2CgJA.d.cts} +139 -102
  2. package/dist/{types-CqvUAYxt.d.cts → agent-F7oB6eKp.d.ts} +139 -102
  3. package/dist/auth/index.cjs +72 -1
  4. package/dist/auth/index.cjs.map +1 -1
  5. package/dist/auth/index.d.cts +21 -154
  6. package/dist/auth/index.d.ts +21 -154
  7. package/dist/auth/index.js +72 -1
  8. package/dist/auth/index.js.map +1 -1
  9. package/dist/backends/claude.cjs +480 -261
  10. package/dist/backends/claude.cjs.map +1 -1
  11. package/dist/backends/claude.d.cts +3 -1
  12. package/dist/backends/claude.d.ts +3 -1
  13. package/dist/backends/claude.js +480 -261
  14. package/dist/backends/claude.js.map +1 -1
  15. package/dist/backends/copilot.cjs +337 -112
  16. package/dist/backends/copilot.cjs.map +1 -1
  17. package/dist/backends/copilot.d.cts +12 -4
  18. package/dist/backends/copilot.d.ts +12 -4
  19. package/dist/backends/copilot.js +337 -112
  20. package/dist/backends/copilot.js.map +1 -1
  21. package/dist/backends/mock-llm.cjs +719 -0
  22. package/dist/backends/mock-llm.cjs.map +1 -0
  23. package/dist/backends/mock-llm.d.cts +37 -0
  24. package/dist/backends/mock-llm.d.ts +37 -0
  25. package/dist/backends/mock-llm.js +717 -0
  26. package/dist/backends/mock-llm.js.map +1 -0
  27. package/dist/backends/vercel-ai.cjs +301 -61
  28. package/dist/backends/vercel-ai.cjs.map +1 -1
  29. package/dist/backends/vercel-ai.d.cts +3 -1
  30. package/dist/backends/vercel-ai.d.ts +3 -1
  31. package/dist/backends/vercel-ai.js +301 -61
  32. package/dist/backends/vercel-ai.js.map +1 -1
  33. package/dist/backends-Cno0gZjy.d.cts +114 -0
  34. package/dist/backends-Cno0gZjy.d.ts +114 -0
  35. package/dist/chat/accumulator.cjs +1 -1
  36. package/dist/chat/accumulator.cjs.map +1 -1
  37. package/dist/chat/accumulator.d.cts +5 -2
  38. package/dist/chat/accumulator.d.ts +5 -2
  39. package/dist/chat/accumulator.js +1 -1
  40. package/dist/chat/accumulator.js.map +1 -1
  41. package/dist/chat/backends.cjs +1084 -821
  42. package/dist/chat/backends.cjs.map +1 -1
  43. package/dist/chat/backends.d.cts +10 -6
  44. package/dist/chat/backends.d.ts +10 -6
  45. package/dist/chat/backends.js +1082 -800
  46. package/dist/chat/backends.js.map +1 -1
  47. package/dist/chat/context.cjs +50 -0
  48. package/dist/chat/context.cjs.map +1 -1
  49. package/dist/chat/context.d.cts +27 -3
  50. package/dist/chat/context.d.ts +27 -3
  51. package/dist/chat/context.js +50 -0
  52. package/dist/chat/context.js.map +1 -1
  53. package/dist/chat/core.cjs +60 -27
  54. package/dist/chat/core.cjs.map +1 -1
  55. package/dist/chat/core.d.cts +41 -382
  56. package/dist/chat/core.d.ts +41 -382
  57. package/dist/chat/core.js +58 -28
  58. package/dist/chat/core.js.map +1 -1
  59. package/dist/chat/errors.cjs +48 -26
  60. package/dist/chat/errors.cjs.map +1 -1
  61. package/dist/chat/errors.d.cts +6 -31
  62. package/dist/chat/errors.d.ts +6 -31
  63. package/dist/chat/errors.js +48 -25
  64. package/dist/chat/errors.js.map +1 -1
  65. package/dist/chat/events.cjs.map +1 -1
  66. package/dist/chat/events.d.cts +6 -2
  67. package/dist/chat/events.d.ts +6 -2
  68. package/dist/chat/events.js.map +1 -1
  69. package/dist/chat/index.cjs +1612 -1125
  70. package/dist/chat/index.cjs.map +1 -1
  71. package/dist/chat/index.d.cts +35 -10
  72. package/dist/chat/index.d.ts +35 -10
  73. package/dist/chat/index.js +1600 -1097
  74. package/dist/chat/index.js.map +1 -1
  75. package/dist/chat/react/theme.css +2517 -0
  76. package/dist/chat/react.cjs +2212 -1158
  77. package/dist/chat/react.cjs.map +1 -1
  78. package/dist/chat/react.d.cts +665 -122
  79. package/dist/chat/react.d.ts +665 -122
  80. package/dist/chat/react.js +2191 -1156
  81. package/dist/chat/react.js.map +1 -1
  82. package/dist/chat/runtime.cjs +405 -186
  83. package/dist/chat/runtime.cjs.map +1 -1
  84. package/dist/chat/runtime.d.cts +92 -28
  85. package/dist/chat/runtime.d.ts +92 -28
  86. package/dist/chat/runtime.js +405 -186
  87. package/dist/chat/runtime.js.map +1 -1
  88. package/dist/chat/server.cjs +2247 -212
  89. package/dist/chat/server.cjs.map +1 -1
  90. package/dist/chat/server.d.cts +451 -90
  91. package/dist/chat/server.d.ts +451 -90
  92. package/dist/chat/server.js +2234 -213
  93. package/dist/chat/server.js.map +1 -1
  94. package/dist/chat/sessions.cjs +64 -66
  95. package/dist/chat/sessions.cjs.map +1 -1
  96. package/dist/chat/sessions.d.cts +37 -118
  97. package/dist/chat/sessions.d.ts +37 -118
  98. package/dist/chat/sessions.js +65 -67
  99. package/dist/chat/sessions.js.map +1 -1
  100. package/dist/chat/sqlite.cjs +536 -0
  101. package/dist/chat/sqlite.cjs.map +1 -0
  102. package/dist/chat/sqlite.d.cts +164 -0
  103. package/dist/chat/sqlite.d.ts +164 -0
  104. package/dist/chat/sqlite.js +527 -0
  105. package/dist/chat/sqlite.js.map +1 -0
  106. package/dist/chat/state.cjs +14 -1
  107. package/dist/chat/state.cjs.map +1 -1
  108. package/dist/chat/state.d.cts +5 -2
  109. package/dist/chat/state.d.ts +5 -2
  110. package/dist/chat/state.js +14 -1
  111. package/dist/chat/state.js.map +1 -1
  112. package/dist/chat/storage.cjs +58 -33
  113. package/dist/chat/storage.cjs.map +1 -1
  114. package/dist/chat/storage.d.cts +18 -8
  115. package/dist/chat/storage.d.ts +18 -8
  116. package/dist/chat/storage.js +59 -34
  117. package/dist/chat/storage.js.map +1 -1
  118. package/dist/errors-C-so0M4t.d.cts +33 -0
  119. package/dist/errors-C-so0M4t.d.ts +33 -0
  120. package/dist/errors-CmVvczxZ.d.cts +28 -0
  121. package/dist/errors-CmVvczxZ.d.ts +28 -0
  122. package/dist/{in-process-transport-C2oPTYs6.d.ts → in-process-transport-7EIit9Xk.d.ts} +72 -33
  123. package/dist/{in-process-transport-DG-w5G6k.d.cts → in-process-transport-Ct9YcX8I.d.cts} +72 -33
  124. package/dist/index.cjs +354 -60
  125. package/dist/index.cjs.map +1 -1
  126. package/dist/index.d.cts +294 -123
  127. package/dist/index.d.ts +294 -123
  128. package/dist/index.js +347 -60
  129. package/dist/index.js.map +1 -1
  130. package/dist/provider-types-PTSlRPNB.d.cts +39 -0
  131. package/dist/provider-types-PTSlRPNB.d.ts +39 -0
  132. package/dist/refresh-manager-B81PpYBr.d.cts +153 -0
  133. package/dist/refresh-manager-Dlv_iNZi.d.ts +153 -0
  134. package/dist/testing.cjs +1107 -0
  135. package/dist/testing.cjs.map +1 -0
  136. package/dist/testing.d.cts +144 -0
  137. package/dist/testing.d.ts +144 -0
  138. package/dist/testing.js +1101 -0
  139. package/dist/testing.js.map +1 -0
  140. package/dist/token-store-CSUBgYwn.d.ts +48 -0
  141. package/dist/token-store-CuC4hB9Z.d.cts +48 -0
  142. package/dist/{transport-DX1Nhm4N.d.cts → transport-DLWCN18G.d.cts} +5 -4
  143. package/dist/{transport-D1OaUgRk.d.ts → transport-DsuS-GeM.d.ts} +5 -4
  144. package/dist/{types-CGF7AEX1.d.cts → types-4vbcmPTp.d.cts} +4 -2
  145. package/dist/{types-Bh5AhqD-.d.ts → types-BxggH0Yh.d.ts} +4 -2
  146. package/dist/types-DgtI1hzh.d.ts +364 -0
  147. package/dist/types-DkSXALKg.d.cts +364 -0
  148. package/package.json +41 -5
  149. package/LICENSE +0 -21
  150. package/README.md +0 -948
  151. package/dist/errors-BDLbNu9w.d.cts +0 -13
  152. package/dist/errors-BDLbNu9w.d.ts +0 -13
  153. package/dist/types-DLZzlJxt.d.ts +0 -39
  154. package/dist/types-tE0CXwBl.d.cts +0 -39
@@ -1,9 +1,11 @@
1
- import { ChatSessionConfig, ChatSession, ChatId, ChatMessage } from './core.cjs';
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 '../types-CqvUAYxt.cjs';
4
+ import '../agent-C6H2CgJA.cjs';
5
5
  import 'zod';
6
- import '../errors-BDLbNu9w.cjs';
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
- * Session store interface for managing chat sessions.
56
- * Wraps a storage adapter with session-specific operations.
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 IChatSessionStore {
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
- * Remove all sessions.
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
- * @deprecated Use `appendMessage()` instead. Will be removed in next major.
161
- */
162
- addMessage(sessionId: ChatId, message: ChatMessage): Promise<void>;
163
- /**
164
- * @deprecated Use `loadMessages()` instead. Will be removed in next major.
165
- */
166
- getMessages(sessionId: ChatId, options?: {
167
- limit?: number;
168
- offset?: number;
169
- }): Promise<PaginatedMessages>;
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 };
@@ -1,9 +1,11 @@
1
- import { ChatSessionConfig, ChatSession, ChatId, ChatMessage } from './core.js';
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 '../types-CqvUAYxt.js';
4
+ import '../agent-F7oB6eKp.js';
5
5
  import 'zod';
6
- import '../errors-BDLbNu9w.js';
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
- * Session store interface for managing chat sessions.
56
- * Wraps a storage adapter with session-specific operations.
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 IChatSessionStore {
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
- * Remove all sessions.
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
- * @deprecated Use `appendMessage()` instead. Will be removed in next major.
161
- */
162
- addMessage(sessionId: ChatId, message: ChatMessage): Promise<void>;
163
- /**
164
- * @deprecated Use `loadMessages()` instead. Will be removed in next major.
165
- */
166
- getMessages(sessionId: ChatId, options?: {
167
- limit?: number;
168
- offset?: number;
169
- }): Promise<PaginatedMessages>;
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 };