@cicctencent/agent-server 0.1.2 → 0.2.1
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/README.md +93 -16
- package/dist/cjs/agent/agent-server.d.ts.map +1 -1
- package/dist/cjs/agent/agent-server.js +95 -43
- package/dist/cjs/agent/agent-server.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +7 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/service/agent-profile.service.d.ts +25 -2
- package/dist/cjs/service/agent-profile.service.d.ts.map +1 -1
- package/dist/cjs/service/agent-profile.service.js +18 -7
- package/dist/cjs/service/agent-profile.service.js.map +1 -1
- package/dist/cjs/service/cache.service.d.ts +70 -0
- package/dist/cjs/service/cache.service.d.ts.map +1 -0
- package/dist/cjs/service/cache.service.js +270 -0
- package/dist/cjs/service/cache.service.js.map +1 -0
- package/dist/cjs/service/engine-pool.d.ts +15 -2
- package/dist/cjs/service/engine-pool.d.ts.map +1 -1
- package/dist/cjs/service/engine-pool.js +15 -4
- package/dist/cjs/service/engine-pool.js.map +1 -1
- package/dist/cjs/service/settings.service.d.ts +7 -3
- package/dist/cjs/service/settings.service.d.ts.map +1 -1
- package/dist/cjs/service/settings.service.js +19 -14
- package/dist/cjs/service/settings.service.js.map +1 -1
- package/dist/cjs/spi/adapters.d.ts +55 -3
- package/dist/cjs/spi/adapters.d.ts.map +1 -1
- package/dist/cjs/spi/adapters.js +75 -23
- package/dist/cjs/spi/adapters.js.map +1 -1
- package/dist/cjs/spi/index.d.ts +85 -1
- package/dist/cjs/spi/index.d.ts.map +1 -1
- package/dist/cjs/spi/index.js +90 -6
- package/dist/cjs/spi/index.js.map +1 -1
- package/dist/cjs/spi/types.d.ts +47 -42
- package/dist/cjs/spi/types.d.ts.map +1 -1
- package/dist/cjs/store/app-stores.js +1 -1
- package/dist/cjs/store/app-stores.js.map +1 -1
- package/dist/cjs/types.d.ts +125 -24
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/utils/data-dir.d.ts.map +1 -1
- package/dist/cjs/utils/data-dir.js +8 -11
- package/dist/cjs/utils/data-dir.js.map +1 -1
- package/dist/esm/agent/agent-server.d.ts.map +1 -1
- package/dist/esm/agent/agent-server.js +98 -46
- package/dist/esm/agent/agent-server.js.map +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/service/agent-profile.service.d.ts +25 -2
- package/dist/esm/service/agent-profile.service.d.ts.map +1 -1
- package/dist/esm/service/agent-profile.service.js +18 -7
- package/dist/esm/service/agent-profile.service.js.map +1 -1
- package/dist/esm/service/cache.service.d.ts +70 -0
- package/dist/esm/service/cache.service.d.ts.map +1 -0
- package/dist/esm/service/cache.service.js +264 -0
- package/dist/esm/service/cache.service.js.map +1 -0
- package/dist/esm/service/engine-pool.d.ts +15 -2
- package/dist/esm/service/engine-pool.d.ts.map +1 -1
- package/dist/esm/service/engine-pool.js +15 -4
- package/dist/esm/service/engine-pool.js.map +1 -1
- package/dist/esm/service/settings.service.d.ts +7 -3
- package/dist/esm/service/settings.service.d.ts.map +1 -1
- package/dist/esm/service/settings.service.js +19 -14
- package/dist/esm/service/settings.service.js.map +1 -1
- package/dist/esm/spi/adapters.d.ts +55 -3
- package/dist/esm/spi/adapters.d.ts.map +1 -1
- package/dist/esm/spi/adapters.js +75 -23
- package/dist/esm/spi/adapters.js.map +1 -1
- package/dist/esm/spi/index.d.ts +85 -1
- package/dist/esm/spi/index.d.ts.map +1 -1
- package/dist/esm/spi/index.js +90 -6
- package/dist/esm/spi/index.js.map +1 -1
- package/dist/esm/spi/types.d.ts +47 -42
- package/dist/esm/spi/types.d.ts.map +1 -1
- package/dist/esm/store/app-stores.js +1 -1
- package/dist/esm/store/app-stores.js.map +1 -1
- package/dist/esm/types.d.ts +125 -24
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/utils/data-dir.d.ts.map +1 -1
- package/dist/esm/utils/data-dir.js +0 -3
- package/dist/esm/utils/data-dir.js.map +1 -1
- package/package.json +1 -1
|
@@ -6,7 +6,7 @@ import { JsonStore } from "../store/index.js";
|
|
|
6
6
|
import { DEFAULT_PROXY_SETTINGS, clearSystemProxyCache } from '@cicctencent/agent-core';
|
|
7
7
|
const DEFAULT_SETTINGS = {
|
|
8
8
|
theme: 'dark',
|
|
9
|
-
language: '
|
|
9
|
+
language: 'en',
|
|
10
10
|
apiKeys: {},
|
|
11
11
|
notifications: {
|
|
12
12
|
taskComplete: true,
|
|
@@ -14,27 +14,32 @@ const DEFAULT_SETTINGS = {
|
|
|
14
14
|
};
|
|
15
15
|
/**
|
|
16
16
|
* 默认 SettingsProvider 实现 — JSON 文件存储
|
|
17
|
+
*
|
|
18
|
+
* @param _dataDir - 数据目录(保留用于未来扩展,当前由 JsonStore 通过 getProjectDataPath 管理)
|
|
19
|
+
* @param defaultOverrides - 应用层覆盖默认设置(如 theme、language 等)
|
|
17
20
|
*/
|
|
18
21
|
export class DefaultSettingsProvider {
|
|
19
22
|
store;
|
|
20
|
-
|
|
23
|
+
defaults;
|
|
24
|
+
constructor(_dataDir, defaultOverrides) {
|
|
21
25
|
this.store = new JsonStore('settings.json', 0, { projectLocal: true });
|
|
26
|
+
this.defaults = { ...DEFAULT_SETTINGS, ...defaultOverrides };
|
|
22
27
|
}
|
|
23
28
|
getSettings() {
|
|
24
|
-
let data = this.store.read(
|
|
25
|
-
const isDefaultData = JSON.stringify(data) === JSON.stringify(
|
|
29
|
+
let data = this.store.read(this.defaults);
|
|
30
|
+
const isDefaultData = JSON.stringify(data) === JSON.stringify(this.defaults);
|
|
26
31
|
if (isDefaultData) {
|
|
27
32
|
const recovered = this.tryRecoverSettings();
|
|
28
33
|
if (recovered) {
|
|
29
|
-
data = { ...
|
|
34
|
+
data = { ...this.defaults, ...recovered };
|
|
30
35
|
console.log('[SettingsService] 从损坏的 JSON 中恢复了设置数据');
|
|
31
36
|
}
|
|
32
37
|
}
|
|
33
38
|
const result = {
|
|
34
|
-
...
|
|
39
|
+
...this.defaults,
|
|
35
40
|
...data,
|
|
36
|
-
apiKeys: { ...
|
|
37
|
-
notifications: { ...
|
|
41
|
+
apiKeys: { ...this.defaults.apiKeys, ...(data.apiKeys || {}) },
|
|
42
|
+
notifications: { ...this.defaults.notifications, ...(data.notifications || {}) },
|
|
38
43
|
agentConfig: data.agentConfig ? { ...data.agentConfig } : undefined,
|
|
39
44
|
modelProviders: data.modelProviders ? [...data.modelProviders] : [],
|
|
40
45
|
defaultModelId: data.defaultModelId,
|
|
@@ -82,8 +87,8 @@ export class DefaultSettingsProvider {
|
|
|
82
87
|
return merged;
|
|
83
88
|
}
|
|
84
89
|
resetSettings() {
|
|
85
|
-
this.store.write(
|
|
86
|
-
return
|
|
90
|
+
this.store.write(this.defaults);
|
|
91
|
+
return this.defaults;
|
|
87
92
|
}
|
|
88
93
|
// ---- 内部方法 ----
|
|
89
94
|
tryRecoverSettings() {
|
|
@@ -158,9 +163,9 @@ export class DefaultSettingsProvider {
|
|
|
158
163
|
}
|
|
159
164
|
// ---- 全局单例(向后兼容) ----
|
|
160
165
|
let globalProvider = null;
|
|
161
|
-
export function getSettings() {
|
|
166
|
+
export function getSettings(dataDir) {
|
|
162
167
|
if (!globalProvider)
|
|
163
|
-
globalProvider = new DefaultSettingsProvider();
|
|
168
|
+
globalProvider = new DefaultSettingsProvider(dataDir);
|
|
164
169
|
return globalProvider.getSettings();
|
|
165
170
|
}
|
|
166
171
|
export function updateSettings(updates) {
|
|
@@ -173,9 +178,9 @@ export function resetSettings() {
|
|
|
173
178
|
globalProvider = new DefaultSettingsProvider();
|
|
174
179
|
return globalProvider.resetSettings();
|
|
175
180
|
}
|
|
176
|
-
export function getSettingsProvider(dataDir) {
|
|
181
|
+
export function getSettingsProvider(dataDir, defaultOverrides) {
|
|
177
182
|
if (!globalProvider)
|
|
178
|
-
globalProvider = new DefaultSettingsProvider(dataDir);
|
|
183
|
+
globalProvider = new DefaultSettingsProvider(dataDir, defaultOverrides);
|
|
179
184
|
return globalProvider;
|
|
180
185
|
}
|
|
181
186
|
//# sourceMappingURL=settings.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.service.js","sourceRoot":"","sources":["../../../src/service/settings.service.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,0CAA0C;AAC1C,+DAA+D;AAE/D,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAExF,MAAM,gBAAgB,GAAmB;IACvC,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"settings.service.js","sourceRoot":"","sources":["../../../src/service/settings.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ## 设计原则
|
|
3
|
+
*
|
|
4
|
+
* agent-server 核心只定义**接口**(能力契约),不依赖具体框架。
|
|
5
|
+
*
|
|
6
|
+
* 以下适配器实现是**可选参考实现**,业务层可以:
|
|
7
|
+
* 1. 直接使用(如果满足需求)
|
|
8
|
+
* 2. 参考实现自己定制(如果有特殊需求)
|
|
9
|
+
* 3. 完全自己实现(如果框架不同)
|
|
10
|
+
*
|
|
11
|
+
* ### 使用示例
|
|
12
|
+
*
|
|
13
|
+
* ```typescript
|
|
14
|
+
* // 方式 1:直接使用提供的适配器
|
|
15
|
+
* import { KoaSSEAdapter } from '@cicctencent/agent-server';
|
|
16
|
+
* const adapter = new KoaSSEAdapter(ctx);
|
|
17
|
+
*
|
|
18
|
+
* // 方式 2:继承并扩展
|
|
19
|
+
* class MySSEAdapter extends KoaSSEAdapter {
|
|
20
|
+
* write(data: string) {
|
|
21
|
+
* // 添加自定义逻辑(如日志、监控)
|
|
22
|
+
* console.log('[SSE]', data.length, 'bytes');
|
|
23
|
+
* super.write(data);
|
|
24
|
+
* }
|
|
25
|
+
* }
|
|
26
|
+
*
|
|
27
|
+
* // 方式 3:完全自己实现
|
|
28
|
+
* class CustomSSEAdapter implements SSEResponseAdapter {
|
|
29
|
+
* // 完全自定义实现
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
1
33
|
import type { SSEResponseAdapter, RequestContextAdapter } from './types.js';
|
|
2
34
|
/**
|
|
3
|
-
* Express SSE
|
|
35
|
+
* Express SSE 适配器(参考实现)
|
|
36
|
+
*
|
|
37
|
+
* 业务层可以:
|
|
38
|
+
* - 直接使用
|
|
39
|
+
* - 继承扩展
|
|
40
|
+
* - 参考 implementation 自己实现
|
|
4
41
|
*/
|
|
5
42
|
export declare class ExpressSSEAdapter implements SSEResponseAdapter {
|
|
6
43
|
private res;
|
|
@@ -14,7 +51,7 @@ export declare class ExpressSSEAdapter implements SSEResponseAdapter {
|
|
|
14
51
|
json(data: unknown): void;
|
|
15
52
|
}
|
|
16
53
|
/**
|
|
17
|
-
* Koa/MidwayJS SSE
|
|
54
|
+
* Koa/MidwayJS SSE 适配器(参考实现)
|
|
18
55
|
*/
|
|
19
56
|
export declare class KoaSSEAdapter implements SSEResponseAdapter {
|
|
20
57
|
private ctx;
|
|
@@ -28,7 +65,7 @@ export declare class KoaSSEAdapter implements SSEResponseAdapter {
|
|
|
28
65
|
json(data: unknown): void;
|
|
29
66
|
}
|
|
30
67
|
/**
|
|
31
|
-
* Fastify SSE
|
|
68
|
+
* Fastify SSE 适配器(参考实现)
|
|
32
69
|
*/
|
|
33
70
|
export declare class FastifySSEAdapter implements SSEResponseAdapter {
|
|
34
71
|
private reply;
|
|
@@ -57,6 +94,21 @@ export declare class NativeHttpSSEAdapter implements SSEResponseAdapter {
|
|
|
57
94
|
}
|
|
58
95
|
/**
|
|
59
96
|
* 自动检测框架类型并创建适配器
|
|
97
|
+
*
|
|
98
|
+
* ⚠️ 注意:此函数是便捷工具,但建议业务层显式创建适配器:
|
|
99
|
+
*
|
|
100
|
+
* ```typescript
|
|
101
|
+
* // 推荐:显式创建(更可控)
|
|
102
|
+
* const adapter = new KoaSSEAdapter(ctx);
|
|
103
|
+
*
|
|
104
|
+
* // 不推荐:自动检测(可能误判)
|
|
105
|
+
* const adapter = adaptSSE(ctx);
|
|
106
|
+
* ```
|
|
107
|
+
*
|
|
108
|
+
* 自动检测可能存在的问题:
|
|
109
|
+
* - 框架版本差异导致误判
|
|
110
|
+
* - 自定义响应对象无法识别
|
|
111
|
+
* - 难以调试
|
|
60
112
|
*/
|
|
61
113
|
export declare function adaptSSE(res: unknown): SSEResponseAdapter;
|
|
62
114
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../../src/spi/adapters.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../../src/spi/adapters.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/spi/adapters.js
CHANGED
|
@@ -1,11 +1,48 @@
|
|
|
1
1
|
// ============================================================
|
|
2
2
|
// 框架适配器 — 支持不同 Web 框架
|
|
3
3
|
// ============================================================
|
|
4
|
+
/**
|
|
5
|
+
* ## 设计原则
|
|
6
|
+
*
|
|
7
|
+
* agent-server 核心只定义**接口**(能力契约),不依赖具体框架。
|
|
8
|
+
*
|
|
9
|
+
* 以下适配器实现是**可选参考实现**,业务层可以:
|
|
10
|
+
* 1. 直接使用(如果满足需求)
|
|
11
|
+
* 2. 参考实现自己定制(如果有特殊需求)
|
|
12
|
+
* 3. 完全自己实现(如果框架不同)
|
|
13
|
+
*
|
|
14
|
+
* ### 使用示例
|
|
15
|
+
*
|
|
16
|
+
* ```typescript
|
|
17
|
+
* // 方式 1:直接使用提供的适配器
|
|
18
|
+
* import { KoaSSEAdapter } from '@cicctencent/agent-server';
|
|
19
|
+
* const adapter = new KoaSSEAdapter(ctx);
|
|
20
|
+
*
|
|
21
|
+
* // 方式 2:继承并扩展
|
|
22
|
+
* class MySSEAdapter extends KoaSSEAdapter {
|
|
23
|
+
* write(data: string) {
|
|
24
|
+
* // 添加自定义逻辑(如日志、监控)
|
|
25
|
+
* console.log('[SSE]', data.length, 'bytes');
|
|
26
|
+
* super.write(data);
|
|
27
|
+
* }
|
|
28
|
+
* }
|
|
29
|
+
*
|
|
30
|
+
* // 方式 3:完全自己实现
|
|
31
|
+
* class CustomSSEAdapter implements SSEResponseAdapter {
|
|
32
|
+
* // 完全自定义实现
|
|
33
|
+
* }
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
4
36
|
// ============================================================
|
|
5
|
-
// SSE
|
|
37
|
+
// SSE 响应适配器(参考实现)
|
|
6
38
|
// ============================================================
|
|
7
39
|
/**
|
|
8
|
-
* Express SSE
|
|
40
|
+
* Express SSE 适配器(参考实现)
|
|
41
|
+
*
|
|
42
|
+
* 业务层可以:
|
|
43
|
+
* - 直接使用
|
|
44
|
+
* - 继承扩展
|
|
45
|
+
* - 参考 implementation 自己实现
|
|
9
46
|
*/
|
|
10
47
|
export class ExpressSSEAdapter {
|
|
11
48
|
res;
|
|
@@ -35,12 +72,16 @@ export class ExpressSSEAdapter {
|
|
|
35
72
|
}
|
|
36
73
|
}
|
|
37
74
|
/**
|
|
38
|
-
* Koa/MidwayJS SSE
|
|
75
|
+
* Koa/MidwayJS SSE 适配器(参考实现)
|
|
39
76
|
*/
|
|
40
77
|
export class KoaSSEAdapter {
|
|
41
78
|
ctx;
|
|
42
79
|
constructor(ctx) {
|
|
43
80
|
this.ctx = ctx;
|
|
81
|
+
// 禁止 Koa 框架自行处理响应,让 SSE 流完全由适配器控制
|
|
82
|
+
if (this.ctx && 'respond' in this.ctx) {
|
|
83
|
+
this.ctx.respond = false;
|
|
84
|
+
}
|
|
44
85
|
}
|
|
45
86
|
write(data) {
|
|
46
87
|
this.ctx.res.write(data);
|
|
@@ -55,7 +96,7 @@ export class KoaSSEAdapter {
|
|
|
55
96
|
this.ctx.set(name, String(value));
|
|
56
97
|
}
|
|
57
98
|
flushHeaders() {
|
|
58
|
-
this.ctx.res.
|
|
99
|
+
this.ctx.res.flushHeaders?.();
|
|
59
100
|
}
|
|
60
101
|
status(code) {
|
|
61
102
|
this.ctx.status = code;
|
|
@@ -65,7 +106,7 @@ export class KoaSSEAdapter {
|
|
|
65
106
|
}
|
|
66
107
|
}
|
|
67
108
|
/**
|
|
68
|
-
* Fastify SSE
|
|
109
|
+
* Fastify SSE 适配器(参考实现)
|
|
69
110
|
*/
|
|
70
111
|
export class FastifySSEAdapter {
|
|
71
112
|
reply;
|
|
@@ -127,31 +168,42 @@ export class NativeHttpSSEAdapter {
|
|
|
127
168
|
}
|
|
128
169
|
/**
|
|
129
170
|
* 自动检测框架类型并创建适配器
|
|
171
|
+
*
|
|
172
|
+
* ⚠️ 注意:此函数是便捷工具,但建议业务层显式创建适配器:
|
|
173
|
+
*
|
|
174
|
+
* ```typescript
|
|
175
|
+
* // 推荐:显式创建(更可控)
|
|
176
|
+
* const adapter = new KoaSSEAdapter(ctx);
|
|
177
|
+
*
|
|
178
|
+
* // 不推荐:自动检测(可能误判)
|
|
179
|
+
* const adapter = adaptSSE(ctx);
|
|
180
|
+
* ```
|
|
181
|
+
*
|
|
182
|
+
* 自动检测可能存在的问题:
|
|
183
|
+
* - 框架版本差异导致误判
|
|
184
|
+
* - 自定义响应对象无法识别
|
|
185
|
+
* - 难以调试
|
|
130
186
|
*/
|
|
131
187
|
export function adaptSSE(res) {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
// 检查是否是 Koa Context (有 ctx.res 且 ctx.set)
|
|
135
|
-
if ('ctx' in res || ('req' in res && 'socket' in res.req)) {
|
|
136
|
-
return new KoaSSEAdapter(res);
|
|
137
|
-
}
|
|
138
|
-
// 检查是否是 Fastify Reply (有 .raw)
|
|
139
|
-
if ('raw' in res && 'header' in res) {
|
|
140
|
-
return new FastifySSEAdapter(res);
|
|
141
|
-
}
|
|
142
|
-
// Express 或原生 HTTP
|
|
143
|
-
return new ExpressSSEAdapter(res);
|
|
188
|
+
if (!res || typeof res !== 'object') {
|
|
189
|
+
throw new Error('Unsupported response type. Please provide a custom SSE adapter.');
|
|
144
190
|
}
|
|
145
|
-
|
|
146
|
-
|
|
191
|
+
const obj = res;
|
|
192
|
+
// 1. Koa Context: has ctx.res (raw response) + ctx.set (header setter) + ctx.state
|
|
193
|
+
// Must check before Express because Koa ctx also has setHeader via delegation
|
|
194
|
+
if ('res' in obj && 'set' in obj && 'state' in obj) {
|
|
147
195
|
return new KoaSSEAdapter(res);
|
|
148
196
|
}
|
|
149
|
-
// Fastify Reply
|
|
150
|
-
if (
|
|
197
|
+
// 2. Fastify Reply: has .raw (raw response) + .header() + .code()
|
|
198
|
+
if ('raw' in obj && 'header' in obj && typeof obj.header === 'function') {
|
|
151
199
|
return new FastifySSEAdapter(res);
|
|
152
200
|
}
|
|
153
|
-
//
|
|
154
|
-
if (
|
|
201
|
+
// 3. Express Response: has setHeader + write + end + flushHeaders
|
|
202
|
+
if ('setHeader' in obj && typeof obj.setHeader === 'function' && 'write' in obj && 'end' in obj) {
|
|
203
|
+
return new ExpressSSEAdapter(res);
|
|
204
|
+
}
|
|
205
|
+
// 4. Native HTTP ServerResponse: has write + end + statusCode
|
|
206
|
+
if ('write' in obj && 'end' in obj && 'statusCode' in obj) {
|
|
155
207
|
return new NativeHttpSSEAdapter(res);
|
|
156
208
|
}
|
|
157
209
|
throw new Error('Unsupported response type. Please provide a custom SSE adapter.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../../src/spi/adapters.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,sBAAsB;AACtB,+DAA+D;
|
|
1
|
+
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../../src/spi/adapters.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/spi/index.d.ts
CHANGED
|
@@ -1,4 +1,88 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* # agent-server SPI (Service Provider Interface)
|
|
3
|
+
*
|
|
4
|
+
* ## 核心设计原则
|
|
5
|
+
*
|
|
6
|
+
* 1. **接口优先**:agent-server 核心只定义能力接口,不依赖具体实现
|
|
7
|
+
* 2. **参考实现可选**:提供常见框架的参考实现,业务层可选择使用或自己实现
|
|
8
|
+
* 3. **业务层自主**:完全控制实现细节,不受 agent-server 限制
|
|
9
|
+
*
|
|
10
|
+
* ## 使用方式
|
|
11
|
+
*
|
|
12
|
+
* ### 方式 1:直接使用参考实现(最简单)
|
|
13
|
+
*
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { KoaSSEAdapter, createAgentServer } from '@cicctencent/agent-server';
|
|
16
|
+
*
|
|
17
|
+
* const server = createAgentServer({ llmProvider: myProvider });
|
|
18
|
+
*
|
|
19
|
+
* // MidwayJS/Koa 项目
|
|
20
|
+
* @Get('/chat/stream')
|
|
21
|
+
* async chatStream(@Ctx() ctx: Context) {
|
|
22
|
+
* const adapter = new KoaSSEAdapter(ctx);
|
|
23
|
+
* await server.runAgentStream(adapter, { content: 'Hello' });
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* ### 方式 2:实现 SPI 接口(自定义存储)
|
|
28
|
+
*
|
|
29
|
+
* ```typescript
|
|
30
|
+
* import {
|
|
31
|
+
* createAgentServer,
|
|
32
|
+
* type ChatStoreProvider,
|
|
33
|
+
* type BaseThreadEntity,
|
|
34
|
+
* type BaseMessageEntity,
|
|
35
|
+
* } from '@cicctencent/agent-server';
|
|
36
|
+
*
|
|
37
|
+
* // 定义你的实体类型(可以自定义字段)
|
|
38
|
+
* interface MyThread extends BaseThreadEntity {
|
|
39
|
+
* userId: string;
|
|
40
|
+
* applicationId: number;
|
|
41
|
+
* }
|
|
42
|
+
*
|
|
43
|
+
* // 实现 ChatStoreProvider 接口
|
|
44
|
+
* class MyChatStore implements ChatStoreProvider<MyThread, MyMessage> {
|
|
45
|
+
* async getThreads(userId?: string): Promise<MyThread[]> {
|
|
46
|
+
* // 使用任意存储技术:TypeORM / Prisma / Mongoose / ...
|
|
47
|
+
* return this.database.query('SELECT * FROM threads WHERE userId = ?', [userId]);
|
|
48
|
+
* }
|
|
49
|
+
*
|
|
50
|
+
* // ... 实现其他方法
|
|
51
|
+
* }
|
|
52
|
+
*
|
|
53
|
+
* // 注入自定义实现
|
|
54
|
+
* const server = createAgentServer({
|
|
55
|
+
* llmProvider: myProvider,
|
|
56
|
+
* chatStoreProvider: new MyChatStore(),
|
|
57
|
+
* });
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* ### 方式 3:只使用组件(不使用工厂)
|
|
61
|
+
*
|
|
62
|
+
* ```typescript
|
|
63
|
+
* import {
|
|
64
|
+
* KoaSSEAdapter,
|
|
65
|
+
* writeSSE,
|
|
66
|
+
* createBuiltinTools,
|
|
67
|
+
* MemoryService,
|
|
68
|
+
* } from '@cicctencent/agent-server';
|
|
69
|
+
*
|
|
70
|
+
* // 只使用需要的组件,不依赖 createAgentServer
|
|
71
|
+
* const tools = createBuiltinTools();
|
|
72
|
+
* const memoryService = new MemoryService('./data');
|
|
73
|
+
*
|
|
74
|
+
* @Get('/stream')
|
|
75
|
+
* async stream(@Ctx() ctx: Context) {
|
|
76
|
+
* const adapter = new KoaSSEAdapter(ctx);
|
|
77
|
+
* writeSSE(adapter, 'start', { message: 'Hello' });
|
|
78
|
+
* }
|
|
79
|
+
* ```
|
|
80
|
+
*
|
|
81
|
+
* ## 完整文档
|
|
82
|
+
*
|
|
83
|
+
* 详见 [README.md](./README.md)
|
|
84
|
+
*/
|
|
85
|
+
export type { BaseThreadEntity, BaseMessageEntity, BaseWorkspaceEntity, BaseAgentProfileEntity, BaseSettingsEntity, TenantContext, KVStorageAdapter, ListStorageAdapter, QueryOptions, SettingsProvider, ChatStoreProvider, AgentProfileProvider, PromptBuilderProvider, ModelConfigResolver, SSEResponseAdapter, RequestContextAdapter, AgentServerSPIOptions, ThreadEntity, MessageEntity, WorkspaceEntity, AgentProfileEntity, SettingsEntity, } from './types.js';
|
|
2
86
|
export { JsonFileKVStorage, JsonFileListStorage, InMemoryKVStorage, InMemoryListStorage, DatabaseListStorage, createJsonFileStorage, createInMemoryStorage, } from './storage.js';
|
|
3
87
|
export { ExpressSSEAdapter, KoaSSEAdapter, FastifySSEAdapter, NativeHttpSSEAdapter, adaptSSE, ExpressRequestAdapter, KoaRequestAdapter, adaptRequest, CustomSSEAdapter, } from './adapters.js';
|
|
4
88
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/spi/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/spi/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmFG;AAGH,YAAY,EAEV,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAGlB,aAAa,EAGb,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EAGZ,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EAGnB,kBAAkB,EAClB,qBAAqB,EAGrB,qBAAqB,EAGrB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EAEL,iBAAiB,EACjB,mBAAmB,EAGnB,iBAAiB,EACjB,mBAAmB,EAGnB,mBAAmB,EAGnB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAEL,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,QAAQ,EAGR,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EAGZ,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAMvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyGG"}
|
package/dist/esm/spi/index.js
CHANGED
|
@@ -1,23 +1,107 @@
|
|
|
1
1
|
// ============================================================
|
|
2
2
|
// SPI 模块导出
|
|
3
3
|
// ============================================================
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* # agent-server SPI (Service Provider Interface)
|
|
6
|
+
*
|
|
7
|
+
* ## 核心设计原则
|
|
8
|
+
*
|
|
9
|
+
* 1. **接口优先**:agent-server 核心只定义能力接口,不依赖具体实现
|
|
10
|
+
* 2. **参考实现可选**:提供常见框架的参考实现,业务层可选择使用或自己实现
|
|
11
|
+
* 3. **业务层自主**:完全控制实现细节,不受 agent-server 限制
|
|
12
|
+
*
|
|
13
|
+
* ## 使用方式
|
|
14
|
+
*
|
|
15
|
+
* ### 方式 1:直接使用参考实现(最简单)
|
|
16
|
+
*
|
|
17
|
+
* ```typescript
|
|
18
|
+
* import { KoaSSEAdapter, createAgentServer } from '@cicctencent/agent-server';
|
|
19
|
+
*
|
|
20
|
+
* const server = createAgentServer({ llmProvider: myProvider });
|
|
21
|
+
*
|
|
22
|
+
* // MidwayJS/Koa 项目
|
|
23
|
+
* @Get('/chat/stream')
|
|
24
|
+
* async chatStream(@Ctx() ctx: Context) {
|
|
25
|
+
* const adapter = new KoaSSEAdapter(ctx);
|
|
26
|
+
* await server.runAgentStream(adapter, { content: 'Hello' });
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* ### 方式 2:实现 SPI 接口(自定义存储)
|
|
31
|
+
*
|
|
32
|
+
* ```typescript
|
|
33
|
+
* import {
|
|
34
|
+
* createAgentServer,
|
|
35
|
+
* type ChatStoreProvider,
|
|
36
|
+
* type BaseThreadEntity,
|
|
37
|
+
* type BaseMessageEntity,
|
|
38
|
+
* } from '@cicctencent/agent-server';
|
|
39
|
+
*
|
|
40
|
+
* // 定义你的实体类型(可以自定义字段)
|
|
41
|
+
* interface MyThread extends BaseThreadEntity {
|
|
42
|
+
* userId: string;
|
|
43
|
+
* applicationId: number;
|
|
44
|
+
* }
|
|
45
|
+
*
|
|
46
|
+
* // 实现 ChatStoreProvider 接口
|
|
47
|
+
* class MyChatStore implements ChatStoreProvider<MyThread, MyMessage> {
|
|
48
|
+
* async getThreads(userId?: string): Promise<MyThread[]> {
|
|
49
|
+
* // 使用任意存储技术:TypeORM / Prisma / Mongoose / ...
|
|
50
|
+
* return this.database.query('SELECT * FROM threads WHERE userId = ?', [userId]);
|
|
51
|
+
* }
|
|
52
|
+
*
|
|
53
|
+
* // ... 实现其他方法
|
|
54
|
+
* }
|
|
55
|
+
*
|
|
56
|
+
* // 注入自定义实现
|
|
57
|
+
* const server = createAgentServer({
|
|
58
|
+
* llmProvider: myProvider,
|
|
59
|
+
* chatStoreProvider: new MyChatStore(),
|
|
60
|
+
* });
|
|
61
|
+
* ```
|
|
62
|
+
*
|
|
63
|
+
* ### 方式 3:只使用组件(不使用工厂)
|
|
64
|
+
*
|
|
65
|
+
* ```typescript
|
|
66
|
+
* import {
|
|
67
|
+
* KoaSSEAdapter,
|
|
68
|
+
* writeSSE,
|
|
69
|
+
* createBuiltinTools,
|
|
70
|
+
* MemoryService,
|
|
71
|
+
* } from '@cicctencent/agent-server';
|
|
72
|
+
*
|
|
73
|
+
* // 只使用需要的组件,不依赖 createAgentServer
|
|
74
|
+
* const tools = createBuiltinTools();
|
|
75
|
+
* const memoryService = new MemoryService('./data');
|
|
76
|
+
*
|
|
77
|
+
* @Get('/stream')
|
|
78
|
+
* async stream(@Ctx() ctx: Context) {
|
|
79
|
+
* const adapter = new KoaSSEAdapter(ctx);
|
|
80
|
+
* writeSSE(adapter, 'start', { message: 'Hello' });
|
|
81
|
+
* }
|
|
82
|
+
* ```
|
|
83
|
+
*
|
|
84
|
+
* ## 完整文档
|
|
85
|
+
*
|
|
86
|
+
* 详见 [README.md](./README.md)
|
|
87
|
+
*/
|
|
88
|
+
// ---- 存储适配器(参考实现) ----
|
|
5
89
|
export {
|
|
6
|
-
// JSON
|
|
90
|
+
// JSON 文件存储(默认实现)
|
|
7
91
|
JsonFileKVStorage, JsonFileListStorage,
|
|
8
|
-
//
|
|
92
|
+
// 内存存储(测试用)
|
|
9
93
|
InMemoryKVStorage, InMemoryListStorage,
|
|
10
|
-
//
|
|
94
|
+
// 数据库存储基类(业务层继承)
|
|
11
95
|
DatabaseListStorage,
|
|
12
96
|
// 工厂函数
|
|
13
97
|
createJsonFileStorage, createInMemoryStorage, } from "./storage.js";
|
|
14
|
-
// ----
|
|
98
|
+
// ---- 框架适配器(参考实现) ----
|
|
15
99
|
export {
|
|
16
100
|
// SSE 适配器
|
|
17
101
|
ExpressSSEAdapter, KoaSSEAdapter, FastifySSEAdapter, NativeHttpSSEAdapter, adaptSSE,
|
|
18
102
|
// 请求适配器
|
|
19
103
|
ExpressRequestAdapter, KoaRequestAdapter, adaptRequest,
|
|
20
|
-
//
|
|
104
|
+
// 自定义适配器基类
|
|
21
105
|
CustomSSEAdapter, } from "./adapters.js";
|
|
22
106
|
// ============================================================
|
|
23
107
|
// SPI 使用指南
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/spi/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,WAAW;AACX,+DAA+D;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/spi/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,WAAW;AACX,+DAA+D;AAC/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmFG;AAyCH,wBAAwB;AACxB,OAAO;AACL,kBAAkB;AAClB,iBAAiB,EACjB,mBAAmB;AAEnB,YAAY;AACZ,iBAAiB,EACjB,mBAAmB;AAEnB,iBAAiB;AACjB,mBAAmB;AAEnB,OAAO;AACP,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAEtB,wBAAwB;AACxB,OAAO;AACL,UAAU;AACV,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,QAAQ;AAER,QAAQ;AACR,qBAAqB,EACrB,iBAAiB,EACjB,YAAY;AAEZ,WAAW;AACX,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAEvB,+DAA+D;AAC/D,WAAW;AACX,+DAA+D;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyGG"}
|