@cicctencent/agent-server 0.1.1 → 0.2.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 (76) hide show
  1. package/README.md +93 -16
  2. package/dist/cjs/agent/agent-server.d.ts.map +1 -1
  3. package/dist/cjs/agent/agent-server.js +50 -15
  4. package/dist/cjs/agent/agent-server.js.map +1 -1
  5. package/dist/cjs/index.d.ts +2 -0
  6. package/dist/cjs/index.d.ts.map +1 -1
  7. package/dist/cjs/index.js +23 -1
  8. package/dist/cjs/index.js.map +1 -1
  9. package/dist/cjs/service/cache.service.d.ts +69 -0
  10. package/dist/cjs/service/cache.service.d.ts.map +1 -0
  11. package/dist/cjs/service/cache.service.js +243 -0
  12. package/dist/cjs/service/cache.service.js.map +1 -0
  13. package/dist/cjs/service/engine-pool.d.ts +15 -2
  14. package/dist/cjs/service/engine-pool.d.ts.map +1 -1
  15. package/dist/cjs/service/engine-pool.js +15 -4
  16. package/dist/cjs/service/engine-pool.js.map +1 -1
  17. package/dist/cjs/spi/adapters.d.ts +163 -0
  18. package/dist/cjs/spi/adapters.d.ts.map +1 -0
  19. package/dist/cjs/spi/adapters.js +341 -0
  20. package/dist/cjs/spi/adapters.js.map +1 -0
  21. package/dist/cjs/spi/examples/typeorm-example.d.ts +208 -0
  22. package/dist/cjs/spi/examples/typeorm-example.d.ts.map +1 -0
  23. package/dist/cjs/spi/examples/typeorm-example.js +274 -0
  24. package/dist/cjs/spi/examples/typeorm-example.js.map +1 -0
  25. package/dist/cjs/spi/index.d.ts +194 -0
  26. package/dist/cjs/spi/index.d.ts.map +1 -0
  27. package/dist/cjs/spi/index.js +227 -0
  28. package/dist/cjs/spi/index.js.map +1 -0
  29. package/dist/cjs/spi/storage.d.ts +109 -0
  30. package/dist/cjs/spi/storage.d.ts.map +1 -0
  31. package/dist/cjs/spi/storage.js +344 -0
  32. package/dist/cjs/spi/storage.js.map +1 -0
  33. package/dist/cjs/spi/types.d.ts +317 -0
  34. package/dist/cjs/spi/types.d.ts.map +1 -0
  35. package/dist/cjs/spi/types.js +6 -0
  36. package/dist/cjs/spi/types.js.map +1 -0
  37. package/dist/cjs/types.d.ts +63 -8
  38. package/dist/cjs/types.d.ts.map +1 -1
  39. package/dist/esm/agent/agent-server.d.ts.map +1 -1
  40. package/dist/esm/agent/agent-server.js +50 -15
  41. package/dist/esm/agent/agent-server.js.map +1 -1
  42. package/dist/esm/index.d.ts +2 -0
  43. package/dist/esm/index.d.ts.map +1 -1
  44. package/dist/esm/index.js +8 -0
  45. package/dist/esm/index.js.map +1 -1
  46. package/dist/esm/service/cache.service.d.ts +69 -0
  47. package/dist/esm/service/cache.service.d.ts.map +1 -0
  48. package/dist/esm/service/cache.service.js +237 -0
  49. package/dist/esm/service/cache.service.js.map +1 -0
  50. package/dist/esm/service/engine-pool.d.ts +15 -2
  51. package/dist/esm/service/engine-pool.d.ts.map +1 -1
  52. package/dist/esm/service/engine-pool.js +15 -4
  53. package/dist/esm/service/engine-pool.js.map +1 -1
  54. package/dist/esm/spi/adapters.d.ts +163 -0
  55. package/dist/esm/spi/adapters.d.ts.map +1 -0
  56. package/dist/esm/spi/adapters.js +329 -0
  57. package/dist/esm/spi/adapters.js.map +1 -0
  58. package/dist/esm/spi/examples/typeorm-example.d.ts +208 -0
  59. package/dist/esm/spi/examples/typeorm-example.d.ts.map +1 -0
  60. package/dist/esm/spi/examples/typeorm-example.js +315 -0
  61. package/dist/esm/spi/examples/typeorm-example.js.map +1 -0
  62. package/dist/esm/spi/index.d.ts +194 -0
  63. package/dist/esm/spi/index.d.ts.map +1 -0
  64. package/dist/esm/spi/index.js +215 -0
  65. package/dist/esm/spi/index.js.map +1 -0
  66. package/dist/esm/spi/storage.d.ts +109 -0
  67. package/dist/esm/spi/storage.d.ts.map +1 -0
  68. package/dist/esm/spi/storage.js +301 -0
  69. package/dist/esm/spi/storage.js.map +1 -0
  70. package/dist/esm/spi/types.d.ts +317 -0
  71. package/dist/esm/spi/types.d.ts.map +1 -0
  72. package/dist/esm/spi/types.js +5 -0
  73. package/dist/esm/spi/types.js.map +1 -0
  74. package/dist/esm/types.d.ts +63 -8
  75. package/dist/esm/types.d.ts.map +1 -1
  76. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.service.js","sourceRoot":"","sources":["../../../src/service/cache.service.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,19 @@
1
1
  import { EnginePool } from '@cicctencent/agent-core';
2
2
  export { EnginePool } from '@cicctencent/agent-core';
3
- export declare function getEnginePool(): EnginePool;
4
- /** 重置全局池(测试用) */
3
+ /** EnginePool 初始化配置 */
4
+ export interface EnginePoolConfig {
5
+ /** TTL(ms),默认 5 分钟 */
6
+ ttl?: number;
7
+ /** 最大缓存数量,默认 10 */
8
+ maxSize?: number;
9
+ }
10
+ /**
11
+ * 获取全局 Engine 池单例。
12
+ *
13
+ * 首次调用时按 config 创建;后续调用忽略 config(已创建的池不会被覆盖)。
14
+ * 如需重新创建,请先调用 `resetEnginePool()`。
15
+ */
16
+ export declare function getEnginePool(config?: EnginePoolConfig): EnginePool;
17
+ /** 重置全局池(测试用 / 配置变更后重建) */
5
18
  export declare function resetEnginePool(): void;
6
19
  //# sourceMappingURL=engine-pool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine-pool.d.ts","sourceRoot":"","sources":["../../../src/service/engine-pool.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAKrD,wBAAgB,aAAa,IAAI,UAAU,CAK1C;AAED,iBAAiB;AACjB,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
1
+ {"version":3,"file":"engine-pool.d.ts","sourceRoot":"","sources":["../../../src/service/engine-pool.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,uBAAuB;AACvB,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,UAAU,CAOnE;AAED,2BAA2B;AAC3B,wBAAgB,eAAe,IAAI,IAAI,CAKtC"}
@@ -5,14 +5,25 @@ import { EnginePool } from '@cicctencent/agent-core';
5
5
  export { EnginePool } from '@cicctencent/agent-core';
6
6
  /** 全局 Engine 池单例 */
7
7
  let globalPool = null;
8
- export function getEnginePool() {
8
+ /**
9
+ * 获取全局 Engine 池单例。
10
+ *
11
+ * 首次调用时按 config 创建;后续调用忽略 config(已创建的池不会被覆盖)。
12
+ * 如需重新创建,请先调用 `resetEnginePool()`。
13
+ */
14
+ export function getEnginePool(config) {
9
15
  if (!globalPool) {
10
- globalPool = new EnginePool();
16
+ const ttl = config?.ttl ?? 5 * 60_000;
17
+ const maxSize = config?.maxSize ?? 10;
18
+ globalPool = new EnginePool(ttl, maxSize);
11
19
  }
12
20
  return globalPool;
13
21
  }
14
- /** 重置全局池(测试用) */
22
+ /** 重置全局池(测试用 / 配置变更后重建) */
15
23
  export function resetEnginePool() {
16
- globalPool = null;
24
+ if (globalPool) {
25
+ globalPool.clear();
26
+ globalPool = null;
27
+ }
17
28
  }
18
29
  //# sourceMappingURL=engine-pool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine-pool.js","sourceRoot":"","sources":["../../../src/service/engine-pool.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,gDAAgD;AAChD,+DAA+D;AAE/D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,oBAAoB;AACpB,IAAI,UAAU,GAAsB,IAAI,CAAC;AAEzC,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IAChC,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,iBAAiB;AACjB,MAAM,UAAU,eAAe;IAC7B,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"engine-pool.js","sourceRoot":"","sources":["../../../src/service/engine-pool.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,gDAAgD;AAChD,+DAA+D;AAE/D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAUrD,oBAAoB;AACpB,IAAI,UAAU,GAAsB,IAAI,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,MAAyB;IACrD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC;QACtC,UAAU,GAAG,IAAI,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,2BAA2B;AAC3B,MAAM,UAAU,eAAe;IAC7B,IAAI,UAAU,EAAE,CAAC;QACf,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC;AACH,CAAC"}
@@ -0,0 +1,163 @@
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
+ */
33
+ import type { SSEResponseAdapter, RequestContextAdapter } from './types.js';
34
+ /**
35
+ * Express SSE 适配器(参考实现)
36
+ *
37
+ * 业务层可以:
38
+ * - 直接使用
39
+ * - 继承扩展
40
+ * - 参考 implementation 自己实现
41
+ */
42
+ export declare class ExpressSSEAdapter implements SSEResponseAdapter {
43
+ private res;
44
+ constructor(res: any);
45
+ write(data: string): void;
46
+ end(): void;
47
+ get writableEnded(): boolean;
48
+ setHeader(name: string, value: string | number): void;
49
+ flushHeaders(): void;
50
+ status(code: number): void;
51
+ json(data: unknown): void;
52
+ }
53
+ /**
54
+ * Koa/MidwayJS SSE 适配器(参考实现)
55
+ */
56
+ export declare class KoaSSEAdapter implements SSEResponseAdapter {
57
+ private ctx;
58
+ constructor(ctx: any);
59
+ write(data: string): void;
60
+ end(): void;
61
+ get writableEnded(): boolean;
62
+ setHeader(name: string, value: string | number): void;
63
+ flushHeaders(): void;
64
+ status(code: number): void;
65
+ json(data: unknown): void;
66
+ }
67
+ /**
68
+ * Fastify SSE 适配器(参考实现)
69
+ */
70
+ export declare class FastifySSEAdapter implements SSEResponseAdapter {
71
+ private reply;
72
+ constructor(reply: any);
73
+ write(data: string): void;
74
+ end(): void;
75
+ get writableEnded(): boolean;
76
+ setHeader(name: string, value: string | number): void;
77
+ flushHeaders(): void;
78
+ status(code: number): void;
79
+ json(data: unknown): void;
80
+ }
81
+ /**
82
+ * 原生 HTTP SSE 适配器
83
+ */
84
+ export declare class NativeHttpSSEAdapter implements SSEResponseAdapter {
85
+ private res;
86
+ constructor(res: any);
87
+ write(data: string): void;
88
+ end(): void;
89
+ get writableEnded(): boolean;
90
+ setHeader(name: string, value: string | number): void;
91
+ flushHeaders(): void;
92
+ status(code: number): void;
93
+ json(data: unknown): void;
94
+ }
95
+ /**
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
+ * - 难以调试
112
+ */
113
+ export declare function adaptSSE(res: unknown): SSEResponseAdapter;
114
+ /**
115
+ * Express 请求上下文适配器
116
+ */
117
+ export declare class ExpressRequestAdapter implements RequestContextAdapter {
118
+ private req;
119
+ constructor(req: any);
120
+ getUserId(): string | number | undefined;
121
+ getWorkspaceId(): number | string | undefined;
122
+ getHeader(name: string): string | undefined;
123
+ hasPermission(permission: string): boolean;
124
+ getRawRequest(): unknown;
125
+ getRawResponse(): unknown;
126
+ }
127
+ /**
128
+ * Koa/MidwayJS 请求上下文适配器
129
+ */
130
+ export declare class KoaRequestAdapter implements RequestContextAdapter {
131
+ private ctx;
132
+ constructor(ctx: any);
133
+ getUserId(): string | number | undefined;
134
+ getWorkspaceId(): number | string | undefined;
135
+ getHeader(name: string): string | undefined;
136
+ hasPermission(permission: string): boolean;
137
+ getRawRequest(): unknown;
138
+ getRawResponse(): unknown;
139
+ }
140
+ /**
141
+ * 自动检测框架类型并创建请求适配器
142
+ */
143
+ export declare function adaptRequest(req: unknown): RequestContextAdapter;
144
+ /**
145
+ * 自定义 SSE 适配器示例
146
+ * 应用层可参考此实现创建自己的适配器
147
+ */
148
+ export declare class CustomSSEAdapter implements SSEResponseAdapter {
149
+ private onWrite;
150
+ private onEnd;
151
+ private onFlush?;
152
+ private _writableEnded;
153
+ private headers;
154
+ constructor(onWrite: (data: string) => void, onEnd: () => void, onFlush?: () => void);
155
+ write(data: string): void;
156
+ end(): void;
157
+ get writableEnded(): boolean;
158
+ setHeader(name: string, value: string | number): void;
159
+ flushHeaders(): void;
160
+ /** 获取已设置的响应头 */
161
+ getHeaders(): Record<string, string>;
162
+ }
163
+ //# sourceMappingURL=adapters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../../src/spi/adapters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,329 @@
1
+ // ============================================================
2
+ // 框架适配器 — 支持不同 Web 框架
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
+ */
36
+ // ============================================================
37
+ // SSE 响应适配器(参考实现)
38
+ // ============================================================
39
+ /**
40
+ * Express SSE 适配器(参考实现)
41
+ *
42
+ * 业务层可以:
43
+ * - 直接使用
44
+ * - 继承扩展
45
+ * - 参考 implementation 自己实现
46
+ */
47
+ export class ExpressSSEAdapter {
48
+ res;
49
+ constructor(res) {
50
+ this.res = res;
51
+ }
52
+ write(data) {
53
+ this.res.write(data);
54
+ }
55
+ end() {
56
+ this.res.end();
57
+ }
58
+ get writableEnded() {
59
+ return this.res.writableEnded;
60
+ }
61
+ setHeader(name, value) {
62
+ this.res.setHeader(name, value);
63
+ }
64
+ flushHeaders() {
65
+ this.res.flushHeaders?.();
66
+ }
67
+ status(code) {
68
+ this.res.status(code);
69
+ }
70
+ json(data) {
71
+ this.res.json(data);
72
+ }
73
+ }
74
+ /**
75
+ * Koa/MidwayJS SSE 适配器(参考实现)
76
+ */
77
+ export class KoaSSEAdapter {
78
+ ctx;
79
+ constructor(ctx) {
80
+ this.ctx = ctx;
81
+ // 禁止 Koa 框架自行处理响应,让 SSE 流完全由适配器控制
82
+ if (this.ctx && 'respond' in this.ctx) {
83
+ this.ctx.respond = false;
84
+ }
85
+ }
86
+ write(data) {
87
+ this.ctx.res.write(data);
88
+ }
89
+ end() {
90
+ this.ctx.res.end();
91
+ }
92
+ get writableEnded() {
93
+ return this.ctx.res.writableEnded;
94
+ }
95
+ setHeader(name, value) {
96
+ this.ctx.set(name, String(value));
97
+ }
98
+ flushHeaders() {
99
+ this.ctx.res.flushHeaders?.();
100
+ }
101
+ status(code) {
102
+ this.ctx.status = code;
103
+ }
104
+ json(data) {
105
+ this.ctx.body = data;
106
+ }
107
+ }
108
+ /**
109
+ * Fastify SSE 适配器(参考实现)
110
+ */
111
+ export class FastifySSEAdapter {
112
+ reply;
113
+ constructor(reply) {
114
+ this.reply = reply;
115
+ }
116
+ write(data) {
117
+ this.reply.raw.write(data);
118
+ }
119
+ end() {
120
+ this.reply.raw.end();
121
+ }
122
+ get writableEnded() {
123
+ return this.reply.raw.writableEnded;
124
+ }
125
+ setHeader(name, value) {
126
+ this.reply.header(name, value);
127
+ }
128
+ flushHeaders() {
129
+ this.reply.raw.flushHeaders?.();
130
+ }
131
+ status(code) {
132
+ this.reply.code(code);
133
+ }
134
+ json(data) {
135
+ this.reply.send(data);
136
+ }
137
+ }
138
+ /**
139
+ * 原生 HTTP SSE 适配器
140
+ */
141
+ export class NativeHttpSSEAdapter {
142
+ res;
143
+ constructor(res) {
144
+ this.res = res;
145
+ }
146
+ write(data) {
147
+ this.res.write(data);
148
+ }
149
+ end() {
150
+ this.res.end();
151
+ }
152
+ get writableEnded() {
153
+ return this.res.writableEnded;
154
+ }
155
+ setHeader(name, value) {
156
+ this.res.setHeader(name, value);
157
+ }
158
+ flushHeaders() {
159
+ this.res.flushHeaders?.();
160
+ }
161
+ status(code) {
162
+ this.res.statusCode = code;
163
+ }
164
+ json(data) {
165
+ this.res.setHeader('Content-Type', 'application/json');
166
+ this.res.end(JSON.stringify(data));
167
+ }
168
+ }
169
+ /**
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
+ * - 难以调试
186
+ */
187
+ export function adaptSSE(res) {
188
+ // Express: res.setHeader, res.write, res.end
189
+ if (res && typeof res === 'object' && 'setHeader' in res && 'write' in res) {
190
+ // 检查是否是 Koa Context (有 ctx.res 且 ctx.set)
191
+ if ('ctx' in res || ('req' in res && 'socket' in res.req)) {
192
+ return new KoaSSEAdapter(res);
193
+ }
194
+ // 检查是否是 Fastify Reply (有 .raw)
195
+ if ('raw' in res && 'header' in res) {
196
+ return new FastifySSEAdapter(res);
197
+ }
198
+ // Express 或原生 HTTP
199
+ return new ExpressSSEAdapter(res);
200
+ }
201
+ // Koa Context
202
+ if (res && typeof res === 'object' && 'res' in res && 'set' in res) {
203
+ return new KoaSSEAdapter(res);
204
+ }
205
+ // Fastify Reply
206
+ if (res && typeof res === 'object' && 'raw' in res && 'header' in res) {
207
+ return new FastifySSEAdapter(res);
208
+ }
209
+ // 原生 HTTP Response
210
+ if (res && typeof res === 'object' && 'write' in res && 'end' in res) {
211
+ return new NativeHttpSSEAdapter(res);
212
+ }
213
+ throw new Error('Unsupported response type. Please provide a custom SSE adapter.');
214
+ }
215
+ // ============================================================
216
+ // 请求上下文适配器
217
+ // ============================================================
218
+ /**
219
+ * Express 请求上下文适配器
220
+ */
221
+ export class ExpressRequestAdapter {
222
+ req;
223
+ constructor(req) {
224
+ this.req = req;
225
+ }
226
+ getUserId() {
227
+ return this.req.user?.id ?? this.req.headers['x-user-id'];
228
+ }
229
+ getWorkspaceId() {
230
+ const ws = this.req.headers['x-workspace-id'] ?? this.req.query.workspaceId;
231
+ return ws ? Number(ws) : undefined;
232
+ }
233
+ getHeader(name) {
234
+ return this.req.headers[name.toLowerCase()];
235
+ }
236
+ hasPermission(permission) {
237
+ return this.req.user?.permissions?.includes(permission) ?? false;
238
+ }
239
+ getRawRequest() {
240
+ return this.req;
241
+ }
242
+ getRawResponse() {
243
+ return this.req.res;
244
+ }
245
+ }
246
+ /**
247
+ * Koa/MidwayJS 请求上下文适配器
248
+ */
249
+ export class KoaRequestAdapter {
250
+ ctx;
251
+ constructor(ctx) {
252
+ this.ctx = ctx;
253
+ }
254
+ getUserId() {
255
+ return this.ctx.state?.user?.id ?? this.ctx.get('x-user-id');
256
+ }
257
+ getWorkspaceId() {
258
+ const ws = this.ctx.get('x-workspace-id') ?? this.ctx.query.workspaceId;
259
+ return ws ? Number(ws) : undefined;
260
+ }
261
+ getHeader(name) {
262
+ return this.ctx.get(name);
263
+ }
264
+ hasPermission(permission) {
265
+ return this.ctx.state?.user?.permissions?.includes(permission) ?? false;
266
+ }
267
+ getRawRequest() {
268
+ return this.ctx.req;
269
+ }
270
+ getRawResponse() {
271
+ return this.ctx.res;
272
+ }
273
+ }
274
+ /**
275
+ * 自动检测框架类型并创建请求适配器
276
+ */
277
+ export function adaptRequest(req) {
278
+ // Koa Context
279
+ if (req && typeof req === 'object' && 'state' in req && 'get' in req) {
280
+ return new KoaRequestAdapter(req);
281
+ }
282
+ // Express Request
283
+ if (req && typeof req === 'object' && 'headers' in req && 'query' in req) {
284
+ return new ExpressRequestAdapter(req);
285
+ }
286
+ throw new Error('Unsupported request type. Please provide a custom request adapter.');
287
+ }
288
+ // ============================================================
289
+ // 自定义适配器示例
290
+ // ============================================================
291
+ /**
292
+ * 自定义 SSE 适配器示例
293
+ * 应用层可参考此实现创建自己的适配器
294
+ */
295
+ export class CustomSSEAdapter {
296
+ onWrite;
297
+ onEnd;
298
+ onFlush;
299
+ _writableEnded = false;
300
+ headers = new Map();
301
+ constructor(onWrite, onEnd, onFlush) {
302
+ this.onWrite = onWrite;
303
+ this.onEnd = onEnd;
304
+ this.onFlush = onFlush;
305
+ }
306
+ write(data) {
307
+ if (this._writableEnded)
308
+ return;
309
+ this.onWrite(data);
310
+ }
311
+ end() {
312
+ this._writableEnded = true;
313
+ this.onEnd();
314
+ }
315
+ get writableEnded() {
316
+ return this._writableEnded;
317
+ }
318
+ setHeader(name, value) {
319
+ this.headers.set(name, String(value));
320
+ }
321
+ flushHeaders() {
322
+ this.onFlush?.();
323
+ }
324
+ /** 获取已设置的响应头 */
325
+ getHeaders() {
326
+ return Object.fromEntries(this.headers);
327
+ }
328
+ }
329
+ //# sourceMappingURL=adapters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../../src/spi/adapters.ts"],"names":[],"mappings":"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"}