@cicctencent/agent-server 0.1.1 → 0.1.2

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 (49) hide show
  1. package/dist/cjs/index.d.ts +2 -0
  2. package/dist/cjs/index.d.ts.map +1 -1
  3. package/dist/cjs/index.js +23 -1
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/spi/adapters.d.ts +111 -0
  6. package/dist/cjs/spi/adapters.d.ts.map +1 -0
  7. package/dist/cjs/spi/adapters.js +285 -0
  8. package/dist/cjs/spi/adapters.js.map +1 -0
  9. package/dist/cjs/spi/examples/typeorm-example.d.ts +208 -0
  10. package/dist/cjs/spi/examples/typeorm-example.d.ts.map +1 -0
  11. package/dist/cjs/spi/examples/typeorm-example.js +274 -0
  12. package/dist/cjs/spi/examples/typeorm-example.js.map +1 -0
  13. package/dist/cjs/spi/index.d.ts +110 -0
  14. package/dist/cjs/spi/index.d.ts.map +1 -0
  15. package/dist/cjs/spi/index.js +143 -0
  16. package/dist/cjs/spi/index.js.map +1 -0
  17. package/dist/cjs/spi/storage.d.ts +109 -0
  18. package/dist/cjs/spi/storage.d.ts.map +1 -0
  19. package/dist/cjs/spi/storage.js +344 -0
  20. package/dist/cjs/spi/storage.js.map +1 -0
  21. package/dist/cjs/spi/types.d.ts +317 -0
  22. package/dist/cjs/spi/types.d.ts.map +1 -0
  23. package/dist/cjs/spi/types.js +6 -0
  24. package/dist/cjs/spi/types.js.map +1 -0
  25. package/dist/esm/index.d.ts +2 -0
  26. package/dist/esm/index.d.ts.map +1 -1
  27. package/dist/esm/index.js +8 -0
  28. package/dist/esm/index.js.map +1 -1
  29. package/dist/esm/spi/adapters.d.ts +111 -0
  30. package/dist/esm/spi/adapters.d.ts.map +1 -0
  31. package/dist/esm/spi/adapters.js +273 -0
  32. package/dist/esm/spi/adapters.js.map +1 -0
  33. package/dist/esm/spi/examples/typeorm-example.d.ts +208 -0
  34. package/dist/esm/spi/examples/typeorm-example.d.ts.map +1 -0
  35. package/dist/esm/spi/examples/typeorm-example.js +315 -0
  36. package/dist/esm/spi/examples/typeorm-example.js.map +1 -0
  37. package/dist/esm/spi/index.d.ts +110 -0
  38. package/dist/esm/spi/index.d.ts.map +1 -0
  39. package/dist/esm/spi/index.js +131 -0
  40. package/dist/esm/spi/index.js.map +1 -0
  41. package/dist/esm/spi/storage.d.ts +109 -0
  42. package/dist/esm/spi/storage.d.ts.map +1 -0
  43. package/dist/esm/spi/storage.js +301 -0
  44. package/dist/esm/spi/storage.js.map +1 -0
  45. package/dist/esm/spi/types.d.ts +317 -0
  46. package/dist/esm/spi/types.d.ts.map +1 -0
  47. package/dist/esm/spi/types.js +5 -0
  48. package/dist/esm/spi/types.js.map +1 -0
  49. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/spi/storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,301 @@
1
+ // ============================================================
2
+ // 存储适配器实现 — 应用层可替换底层存储
3
+ // ============================================================
4
+ import * as fs from 'fs';
5
+ import * as path from 'path';
6
+ // ============================================================
7
+ // JSON 文件存储(默认实现)
8
+ // ============================================================
9
+ /**
10
+ * JSON 文件键值存储
11
+ * 适用于小型应用、本地开发
12
+ */
13
+ export class JsonFileKVStorage {
14
+ filePath;
15
+ cache = null;
16
+ constructor(filePath) {
17
+ this.filePath = filePath;
18
+ }
19
+ load() {
20
+ if (this.cache)
21
+ return this.cache;
22
+ try {
23
+ if (fs.existsSync(this.filePath)) {
24
+ const data = JSON.parse(fs.readFileSync(this.filePath, 'utf-8'));
25
+ this.cache = new Map(Object.entries(data));
26
+ }
27
+ else {
28
+ this.cache = new Map();
29
+ }
30
+ }
31
+ catch {
32
+ this.cache = new Map();
33
+ }
34
+ return this.cache;
35
+ }
36
+ save() {
37
+ if (!this.cache)
38
+ return;
39
+ const dir = path.dirname(this.filePath);
40
+ if (!fs.existsSync(dir))
41
+ fs.mkdirSync(dir, { recursive: true });
42
+ fs.writeFileSync(this.filePath, JSON.stringify(Object.fromEntries(this.cache), null, 2));
43
+ }
44
+ async get(key) {
45
+ const data = this.load();
46
+ return data.get(key) ?? null;
47
+ }
48
+ async set(key, value) {
49
+ this.load().set(key, value);
50
+ this.save();
51
+ }
52
+ async delete(key) {
53
+ this.load().delete(key);
54
+ this.save();
55
+ }
56
+ async exists(key) {
57
+ return this.load().has(key);
58
+ }
59
+ async keys(prefix) {
60
+ const allKeys = Array.from(this.load().keys());
61
+ if (prefix)
62
+ return allKeys.filter(k => k.startsWith(prefix));
63
+ return allKeys;
64
+ }
65
+ /** 清除缓存(用于重新加载) */
66
+ clearCache() {
67
+ this.cache = null;
68
+ }
69
+ }
70
+ /**
71
+ * JSON 文件列表存储
72
+ * 支持实体 CRUD 操作
73
+ */
74
+ export class JsonFileListStorage {
75
+ filePath;
76
+ data = null;
77
+ constructor(filePath) {
78
+ this.filePath = filePath;
79
+ }
80
+ load() {
81
+ if (this.data)
82
+ return this.data;
83
+ try {
84
+ if (fs.existsSync(this.filePath)) {
85
+ this.data = JSON.parse(fs.readFileSync(this.filePath, 'utf-8'));
86
+ }
87
+ else {
88
+ this.data = [];
89
+ }
90
+ }
91
+ catch {
92
+ this.data = [];
93
+ }
94
+ return this.data;
95
+ }
96
+ save() {
97
+ if (!this.data)
98
+ return;
99
+ const dir = path.dirname(this.filePath);
100
+ if (!fs.existsSync(dir))
101
+ fs.mkdirSync(dir, { recursive: true });
102
+ fs.writeFileSync(this.filePath, JSON.stringify(this.data, null, 2));
103
+ }
104
+ async list() {
105
+ return [...this.load()];
106
+ }
107
+ async findById(id) {
108
+ const item = this.load().find(item => item.id === id);
109
+ return item ?? null;
110
+ }
111
+ async add(entity) {
112
+ this.load().push(entity);
113
+ this.save();
114
+ return entity;
115
+ }
116
+ async update(id, data) {
117
+ const items = this.load();
118
+ const idx = items.findIndex(item => item.id === id);
119
+ if (idx === -1)
120
+ return null;
121
+ items[idx] = { ...items[idx], ...data };
122
+ this.save();
123
+ return items[idx];
124
+ }
125
+ async remove(id) {
126
+ const items = this.load();
127
+ const idx = items.findIndex(item => item.id === id);
128
+ if (idx === -1)
129
+ return false;
130
+ items.splice(idx, 1);
131
+ this.save();
132
+ return true;
133
+ }
134
+ async batch(operations) {
135
+ const items = this.load();
136
+ for (const op of operations) {
137
+ if (op.type === 'add') {
138
+ items.push(op.data);
139
+ }
140
+ else if (op.type === 'update' && op.id) {
141
+ const idx = items.findIndex(item => item.id === op.id);
142
+ if (idx !== -1)
143
+ items[idx] = { ...items[idx], ...op.data };
144
+ }
145
+ else if (op.type === 'delete' && op.id) {
146
+ const idx = items.findIndex(item => item.id === op.id);
147
+ if (idx !== -1)
148
+ items.splice(idx, 1);
149
+ }
150
+ }
151
+ this.save();
152
+ }
153
+ /** 获取最大 ID */
154
+ maxId() {
155
+ const items = this.load();
156
+ if (items.length === 0)
157
+ return 0;
158
+ const ids = items.map(item => typeof item.id === 'number' ? item.id : parseInt(String(item.id), 10) || 0);
159
+ return Math.max(...ids);
160
+ }
161
+ /** 清除缓存 */
162
+ clearCache() {
163
+ this.data = null;
164
+ }
165
+ /** 获取文件路径 */
166
+ getPath() {
167
+ return this.filePath;
168
+ }
169
+ }
170
+ // ============================================================
171
+ // 内存存储(测试用)
172
+ // ============================================================
173
+ /**
174
+ * 内存键值存储
175
+ * 适用于测试、临时数据
176
+ */
177
+ export class InMemoryKVStorage {
178
+ data = new Map();
179
+ async get(key) {
180
+ return this.data.get(key) ?? null;
181
+ }
182
+ async set(key, value) {
183
+ this.data.set(key, value);
184
+ }
185
+ async delete(key) {
186
+ this.data.delete(key);
187
+ }
188
+ async exists(key) {
189
+ return this.data.has(key);
190
+ }
191
+ async keys(prefix) {
192
+ const allKeys = Array.from(this.data.keys());
193
+ if (prefix)
194
+ return allKeys.filter(k => k.startsWith(prefix));
195
+ return allKeys;
196
+ }
197
+ /** 清空所有数据 */
198
+ clear() {
199
+ this.data.clear();
200
+ }
201
+ }
202
+ /**
203
+ * 内存列表存储
204
+ */
205
+ export class InMemoryListStorage {
206
+ data = [];
207
+ async list() {
208
+ return [...this.data];
209
+ }
210
+ async findById(id) {
211
+ const item = this.data.find(item => item.id === id);
212
+ return item ?? null;
213
+ }
214
+ async add(entity) {
215
+ this.data.push(entity);
216
+ return entity;
217
+ }
218
+ async update(id, data) {
219
+ const idx = this.data.findIndex(item => item.id === id);
220
+ if (idx === -1)
221
+ return null;
222
+ this.data[idx] = { ...this.data[idx], ...data };
223
+ return this.data[idx];
224
+ }
225
+ async remove(id) {
226
+ const idx = this.data.findIndex(item => item.id === id);
227
+ if (idx === -1)
228
+ return false;
229
+ this.data.splice(idx, 1);
230
+ return true;
231
+ }
232
+ /** 清空所有数据 */
233
+ clear() {
234
+ this.data = [];
235
+ }
236
+ }
237
+ // ============================================================
238
+ // 数据库存储抽象(应用层实现)
239
+ // ============================================================
240
+ /**
241
+ * 数据库存储基类
242
+ * 应用层继承并实现具体的数据库操作(TypeORM / Prisma / Sequelize 等)
243
+ */
244
+ export class DatabaseListStorage {
245
+ /** 扩展:带查询条件的列表 */
246
+ async query(options) {
247
+ const all = await this.list();
248
+ let filtered = all;
249
+ // 应用过滤器
250
+ if (options.filter) {
251
+ filtered = filtered.filter(item => {
252
+ for (const [key, value] of Object.entries(options.filter)) {
253
+ if (item[key] !== value)
254
+ return false;
255
+ }
256
+ return true;
257
+ });
258
+ }
259
+ // 排序
260
+ if (options.orderBy) {
261
+ filtered.sort((a, b) => {
262
+ const aVal = a[options.orderBy];
263
+ const bVal = b[options.orderBy];
264
+ if (aVal < bVal)
265
+ return options.orderDirection === 'desc' ? 1 : -1;
266
+ if (aVal > bVal)
267
+ return options.orderDirection === 'desc' ? -1 : 1;
268
+ return 0;
269
+ });
270
+ }
271
+ // 分页
272
+ const total = filtered.length;
273
+ const offset = options.offset ?? 0;
274
+ const limit = options.limit ?? 50;
275
+ const items = filtered.slice(offset, offset + limit);
276
+ const hasMore = offset + items.length < total;
277
+ return { items, total, hasMore };
278
+ }
279
+ }
280
+ // ============================================================
281
+ // 存储工厂函数
282
+ // ============================================================
283
+ /**
284
+ * 创建 JSON 文件存储
285
+ */
286
+ export function createJsonFileStorage(filePath, type) {
287
+ if (type === 'kv') {
288
+ return new JsonFileKVStorage(filePath);
289
+ }
290
+ return new JsonFileListStorage(filePath);
291
+ }
292
+ /**
293
+ * 创建内存存储
294
+ */
295
+ export function createInMemoryStorage(type) {
296
+ if (type === 'kv') {
297
+ return new InMemoryKVStorage();
298
+ }
299
+ return new InMemoryListStorage();
300
+ }
301
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/spi/storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,317 @@
1
+ import type { Message, ToolRegistry, SkillManager } from '@cicctencent/agent-core';
2
+ /** 线程实体基础接口 */
3
+ export interface BaseThreadEntity {
4
+ id: number | string;
5
+ title?: string;
6
+ status?: 'active' | 'archived' | 'deleted';
7
+ createdAt?: Date | string | number;
8
+ updatedAt?: Date | string | number;
9
+ }
10
+ /** 消息实体基础接口 */
11
+ export interface BaseMessageEntity {
12
+ id: number | string;
13
+ threadId: number | string;
14
+ role: 'user' | 'assistant' | 'system';
15
+ content: string;
16
+ createdAt?: Date | string | number;
17
+ }
18
+ /** 工作空间实体基础接口 */
19
+ export interface BaseWorkspaceEntity {
20
+ id: number | string;
21
+ name: string;
22
+ createdAt?: Date | string | number;
23
+ }
24
+ /** Agent Profile 实体基础接口 */
25
+ export interface BaseAgentProfileEntity {
26
+ id: number | string;
27
+ name: string;
28
+ isDefault?: boolean;
29
+ }
30
+ /** Settings 实体基础接口 */
31
+ export interface BaseSettingsEntity {
32
+ [key: string]: unknown;
33
+ }
34
+ /**
35
+ * 键值存储抽象接口
36
+ * 应用层可实现:JsonFileStorage, TypeORMStorage, MongoDBStorage 等
37
+ */
38
+ export interface KVStorageAdapter {
39
+ /** 获取值 */
40
+ get<T>(key: string): Promise<T | null>;
41
+ /** 设置值 */
42
+ set<T>(key: string, value: T): Promise<void>;
43
+ /** 删除 */
44
+ delete(key: string): Promise<void>;
45
+ /** 检查存在 */
46
+ exists(key: string): Promise<boolean>;
47
+ /** 列出所有键 */
48
+ keys?(prefix?: string): Promise<string[]>;
49
+ }
50
+ /**
51
+ * 列表存储抽象接口
52
+ * 支持 CRUD 操作的实体列表
53
+ */
54
+ export interface ListStorageAdapter<T> {
55
+ /** 获取所有 */
56
+ list(): Promise<T[]>;
57
+ /** 根据 ID 获取 */
58
+ findById(id: number | string): Promise<T | null>;
59
+ /** 添加 */
60
+ add(entity: T): Promise<T>;
61
+ /** 更新 */
62
+ update(id: number | string, data: Partial<T>): Promise<T | null>;
63
+ /** 删除 */
64
+ remove(id: number | string): Promise<boolean>;
65
+ /** 批量操作 */
66
+ batch?(operations: Array<{
67
+ type: 'add' | 'update' | 'delete';
68
+ data: T | Partial<T>;
69
+ id?: number | string;
70
+ }>): Promise<void>;
71
+ }
72
+ /**
73
+ * 查询条件接口
74
+ */
75
+ export interface QueryOptions {
76
+ limit?: number;
77
+ offset?: number;
78
+ orderBy?: string;
79
+ orderDirection?: 'asc' | 'desc';
80
+ filter?: Record<string, unknown>;
81
+ }
82
+ /**
83
+ * Settings 存储提供者
84
+ * 应用层可替换底层存储(JSON 文件 / 数据库)
85
+ */
86
+ export interface SettingsProvider<TSettings extends BaseSettingsEntity = BaseSettingsEntity> {
87
+ /** 获取设置 */
88
+ getSettings(): TSettings;
89
+ /** 更新设置 */
90
+ updateSettings(updates: Partial<TSettings>): TSettings;
91
+ /** 重置设置 */
92
+ resetSettings?(): TSettings;
93
+ /** 获取底层存储(可选,用于高级场景) */
94
+ getStorage?(): KVStorageAdapter;
95
+ }
96
+ /**
97
+ * 对话存储提供者
98
+ * 应用层可替换底层存储,自定义实体结构
99
+ *
100
+ * 支持同步和异步两种模式:
101
+ * - JSON 文件存储:同步方法
102
+ * - 数据库存储(TypeORM):异步方法
103
+ */
104
+ export interface ChatStoreProvider<TThread extends BaseThreadEntity = BaseThreadEntity, TMessage extends BaseMessageEntity = BaseMessageEntity> {
105
+ /** 获取线程列表(支持异步) */
106
+ getThreads(workspaceId?: number | string): TThread[] | Promise<TThread[]>;
107
+ /** 获取单个线程(支持异步) */
108
+ getThread(id: number | string): TThread | undefined | Promise<TThread | undefined>;
109
+ /** 创建线程(支持异步) */
110
+ createThread(data: Partial<TThread>): TThread | Promise<TThread>;
111
+ /** 更新线程(支持异步) */
112
+ updateThread(id: number | string, data: Partial<TThread>): TThread | undefined | Promise<TThread | undefined>;
113
+ /** 删除线程(支持异步) */
114
+ deleteThread(id: number | string): boolean | Promise<boolean>;
115
+ /** 获取消息列表(支持异步) */
116
+ getMessages(threadId: number | string, options?: QueryOptions): {
117
+ items: TMessage[];
118
+ total: number;
119
+ hasMore: boolean;
120
+ } | Promise<{
121
+ items: TMessage[];
122
+ total: number;
123
+ hasMore: boolean;
124
+ }>;
125
+ /** 添加消息(支持异步) */
126
+ addMessage(data: Partial<TMessage> & {
127
+ threadId: number | string;
128
+ role: string;
129
+ content: string;
130
+ }): TMessage | Promise<TMessage>;
131
+ /** 更新消息(支持异步) */
132
+ updateMessage(threadId: number | string, id: number | string, data: Partial<TMessage>): TMessage | undefined | Promise<TMessage | undefined>;
133
+ /** 删除消息(支持异步) */
134
+ deleteMessage(threadId: number | string, id: number | string): boolean | Promise<boolean>;
135
+ /** 清空消息(支持异步) */
136
+ clearThreadMessages(threadId: number | string): void | Promise<void>;
137
+ /** 构建线程历史(用于 AgentEngine) */
138
+ buildThreadHistory(threadId: number | string, limit?: number): Message[] | Promise<Message[]>;
139
+ /** 搜索消息 */
140
+ searchMessages?(query: string, options?: {
141
+ workspaceId?: number | string;
142
+ limit?: number;
143
+ }): Array<TMessage & {
144
+ snippet: string;
145
+ }> | Promise<Array<TMessage & {
146
+ snippet: string;
147
+ }>>;
148
+ /** 导出线程 */
149
+ exportThread?(threadId: number | string, format: 'markdown' | 'json' | 'text'): string | Promise<string>;
150
+ /** 获取底层存储(可选) */
151
+ getStorage?(): {
152
+ threads: ListStorageAdapter<TThread>;
153
+ messages: (threadId: number | string) => ListStorageAdapter<TMessage>;
154
+ };
155
+ }
156
+ /**
157
+ * Agent Profile 存储提供者
158
+ */
159
+ export interface AgentProfileProvider<TProfile extends BaseAgentProfileEntity = BaseAgentProfileEntity> {
160
+ listProfiles(): TProfile[];
161
+ getProfile(id: number | string): TProfile | undefined;
162
+ getDefaultProfile(): TProfile | undefined;
163
+ createProfile(data: Partial<TProfile>): TProfile;
164
+ updateProfile(id: number | string, data: Partial<TProfile>): TProfile | undefined;
165
+ deleteProfile(id: number | string): boolean;
166
+ /** 扩展:设置默认 Profile */
167
+ setDefaultProfile?(id: number | string): void;
168
+ /** 获取底层存储 */
169
+ getStorage?(): ListStorageAdapter<TProfile>;
170
+ }
171
+ /**
172
+ * Prompt 构建者
173
+ * 应用层可自定义 Prompt 构建逻辑
174
+ */
175
+ export interface PromptBuilderProvider {
176
+ buildDefaultPrompt(profile: BaseAgentProfileEntity, tools: ToolRegistry, memory?: string, specialists?: BaseAgentProfileEntity[], specialistResourceMap?: Record<string, {
177
+ connectorNames: string[];
178
+ mcpServerNames: string[];
179
+ }>): string;
180
+ buildSpecialistPrompt(profile: BaseAgentProfileEntity, tools: ToolRegistry, skills: SkillManager, memory?: string): string;
181
+ resolveToolDisplayName(toolName: string, registry: ToolRegistry): string;
182
+ }
183
+ /**
184
+ * 模型配置解析者
185
+ * 应用层可自定义模型选择逻辑
186
+ */
187
+ export interface ModelConfigResolver {
188
+ resolve(modelConfigId?: string): {
189
+ id: string;
190
+ provider: string;
191
+ model: string;
192
+ apiKey?: string;
193
+ baseUrl?: string;
194
+ };
195
+ createProvider(modelConfigId?: string, modelOverride?: string): unknown;
196
+ }
197
+ /**
198
+ * SSE 响应适配器接口
199
+ * 框架无关,支持 Express / Koa / Fastify 等
200
+ */
201
+ export interface SSEResponseAdapter {
202
+ /** 写入数据 */
203
+ write(data: string): void;
204
+ /** 结束响应 */
205
+ end(): void;
206
+ /** 响应是否已结束 */
207
+ readonly writableEnded: boolean;
208
+ /** 设置响应头 */
209
+ setHeader(name: string, value: string | number): void;
210
+ /** 刷新响应头 */
211
+ flushHeaders?(): void;
212
+ /** 设置状态码(错误时使用) */
213
+ status?(code: number): void;
214
+ /** 返回 JSON(错误时使用) */
215
+ json?(data: unknown): void;
216
+ }
217
+ /**
218
+ * 请求上下文适配器
219
+ * 用于提取用户信息、权限等
220
+ */
221
+ export interface RequestContextAdapter {
222
+ /** 获取用户 ID */
223
+ getUserId?(): string | number | undefined;
224
+ /** 获取工作空间 ID */
225
+ getWorkspaceId?(): number | string | undefined;
226
+ /** 获取请求头 */
227
+ getHeader(name: string): string | undefined;
228
+ /** 检查权限 */
229
+ hasPermission?(permission: string): boolean;
230
+ /** 获取原始请求对象 */
231
+ getRawRequest?(): unknown;
232
+ /** 获取原始响应对象 */
233
+ getRawResponse?(): unknown;
234
+ }
235
+ /**
236
+ * AgentServer 工厂配置
237
+ * 所有 SPI 组件都可替换
238
+ */
239
+ export interface AgentServerSPIOptions<TSettings extends BaseSettingsEntity = BaseSettingsEntity, TThread extends BaseThreadEntity = BaseThreadEntity, TMessage extends BaseMessageEntity = BaseMessageEntity, TProfile extends BaseAgentProfileEntity = BaseAgentProfileEntity> {
240
+ settingsProvider?: SettingsProvider<TSettings>;
241
+ chatStoreProvider?: ChatStoreProvider<TThread, TMessage>;
242
+ agentProfileProvider?: AgentProfileProvider<TProfile>;
243
+ promptBuilder?: PromptBuilderProvider;
244
+ modelConfigResolver?: ModelConfigResolver;
245
+ /** SSE 响应适配器工厂 */
246
+ createSSEResponseAdapter?: (res: unknown) => SSEResponseAdapter;
247
+ /** 请求上下文适配器工厂 */
248
+ createRequestContextAdapter?: (req: unknown) => RequestContextAdapter;
249
+ /** 权限检查 */
250
+ permissionChecker?: (userId: string | number, action: string, resource: string) => Promise<boolean>;
251
+ /** 审计日志 */
252
+ auditLogger?: (event: string, data: Record<string, unknown>) => void | Promise<void>;
253
+ /** 自定义中间件 */
254
+ customMiddlewares?: Array<{
255
+ name: string;
256
+ priority?: number;
257
+ handler: (context: unknown) => Promise<void>;
258
+ }>;
259
+ }
260
+ export interface ThreadEntity extends BaseThreadEntity {
261
+ workspaceId?: number | string;
262
+ summary?: string;
263
+ messageCount: number;
264
+ agentProfileId?: number | string;
265
+ source?: 'local' | 'a2a';
266
+ automationRunId?: number | string;
267
+ }
268
+ export interface MessageEntity extends BaseMessageEntity {
269
+ type: 'text' | 'code' | 'tool_call' | 'reasoning' | 'image';
270
+ meta?: Record<string, unknown>;
271
+ updatedAt?: Date | string | number;
272
+ }
273
+ export interface WorkspaceEntity extends BaseWorkspaceEntity {
274
+ description?: string;
275
+ color?: string;
276
+ icon?: string;
277
+ status: 'active' | 'archived';
278
+ threadCount: number;
279
+ automationCount: number;
280
+ }
281
+ export interface AgentProfileEntity extends BaseAgentProfileEntity {
282
+ description?: string;
283
+ icon?: string;
284
+ color?: string;
285
+ basePrompt: string;
286
+ model?: string;
287
+ modelConfigId?: string;
288
+ maxIterations?: number;
289
+ maxMessages?: number;
290
+ toolTimeout?: number;
291
+ disabledTools?: string[];
292
+ mcpServers?: Array<number | string>;
293
+ selectedSkills?: string[];
294
+ alwaysInjectSkills?: string[];
295
+ connectorIds?: string[];
296
+ agentType?: 'default' | 'specialist' | 'remote';
297
+ remoteUrl?: string;
298
+ domain?: string;
299
+ }
300
+ export interface SettingsEntity extends BaseSettingsEntity {
301
+ theme?: 'dark' | 'light' | 'system';
302
+ language?: string;
303
+ apiKeys?: Record<string, string>;
304
+ notifications?: {
305
+ taskComplete?: boolean;
306
+ };
307
+ agentConfig?: Record<string, unknown>;
308
+ modelProviders?: Array<{
309
+ id: string;
310
+ provider: string;
311
+ model: string;
312
+ apiKey?: string;
313
+ baseUrl?: string;
314
+ }>;
315
+ defaultModelId?: string;
316
+ }
317
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/spi/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ // ============================================================
2
+ // SPI 类型定义 — 支持应用层自定制
3
+ // ============================================================
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/spi/types.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,sBAAsB;AACtB,+DAA+D"}