/** * ## 设计原则 * * agent-server 核心只定义**接口**(能力契约),不依赖具体框架。 * * 以下适配器实现是**可选参考实现**,业务层可以: * 1. 直接使用(如果满足需求) * 2. 参考实现自己定制(如果有特殊需求) * 3. 完全自己实现(如果框架不同) * * ### 使用示例 * * ```typescript * // 方式 1:直接使用提供的适配器 * import { KoaSSEAdapter } from '@cicctencent/agent-server'; * const adapter = new KoaSSEAdapter(ctx); * * // 方式 2:继承并扩展 * class MySSEAdapter extends KoaSSEAdapter { * write(data: string) { * // 添加自定义逻辑(如日志、监控) * console.log('[SSE]', data.length, 'bytes'); * super.write(data); * } * } * * // 方式 3:完全自己实现 * class CustomSSEAdapter implements SSEResponseAdapter { * // 完全自定义实现 * } * ``` */ import type { SSEResponseAdapter, RequestContextAdapter } from './types.js'; /** * Express SSE 适配器(参考实现) * * 业务层可以: * - 直接使用 * - 继承扩展 * - 参考 implementation 自己实现 */ export declare class ExpressSSEAdapter implements SSEResponseAdapter { private res; constructor(res: any); write(data: string): void; end(): void; get writableEnded(): boolean; setHeader(name: string, value: string | number): void; flushHeaders(): void; status(code: number): void; json(data: unknown): void; } /** * Koa/MidwayJS SSE 适配器(参考实现) */ export declare class KoaSSEAdapter implements SSEResponseAdapter { private ctx; constructor(ctx: any); write(data: string): void; end(): void; get writableEnded(): boolean; setHeader(name: string, value: string | number): void; flushHeaders(): void; status(code: number): void; json(data: unknown): void; } /** * Fastify SSE 适配器(参考实现) */ export declare class FastifySSEAdapter implements SSEResponseAdapter { private reply; constructor(reply: any); write(data: string): void; end(): void; get writableEnded(): boolean; setHeader(name: string, value: string | number): void; flushHeaders(): void; status(code: number): void; json(data: unknown): void; } /** * 原生 HTTP SSE 适配器 */ export declare class NativeHttpSSEAdapter implements SSEResponseAdapter { private res; constructor(res: any); write(data: string): void; end(): void; get writableEnded(): boolean; setHeader(name: string, value: string | number): void; flushHeaders(): void; status(code: number): void; json(data: unknown): void; } /** * 自动检测框架类型并创建适配器 * * ⚠️ 注意:此函数是便捷工具,但建议业务层显式创建适配器: * * ```typescript * // 推荐:显式创建(更可控) * const adapter = new KoaSSEAdapter(ctx); * * // 不推荐:自动检测(可能误判) * const adapter = adaptSSE(ctx); * ``` * * 自动检测可能存在的问题: * - 框架版本差异导致误判 * - 自定义响应对象无法识别 * - 难以调试 */ export declare function adaptSSE(res: unknown): SSEResponseAdapter; /** * Express 请求上下文适配器 */ export declare class ExpressRequestAdapter implements RequestContextAdapter { private req; constructor(req: any); getUserId(): string | number | undefined; getWorkspaceId(): number | string | undefined; getHeader(name: string): string | undefined; hasPermission(permission: string): boolean; getRawRequest(): unknown; getRawResponse(): unknown; } /** * Koa/MidwayJS 请求上下文适配器 */ export declare class KoaRequestAdapter implements RequestContextAdapter { private ctx; constructor(ctx: any); getUserId(): string | number | undefined; getWorkspaceId(): number | string | undefined; getHeader(name: string): string | undefined; hasPermission(permission: string): boolean; getRawRequest(): unknown; getRawResponse(): unknown; } /** * 自动检测框架类型并创建请求适配器 */ export declare function adaptRequest(req: unknown): RequestContextAdapter; /** * 自定义 SSE 适配器示例 * 应用层可参考此实现创建自己的适配器 */ export declare class CustomSSEAdapter implements SSEResponseAdapter { private onWrite; private onEnd; private onFlush?; private _writableEnded; private headers; constructor(onWrite: (data: string) => void, onEnd: () => void, onFlush?: () => void); write(data: string): void; end(): void; get writableEnded(): boolean; setHeader(name: string, value: string | number): void; flushHeaders(): void; /** 获取已设置的响应头 */ getHeaders(): Record; } //# sourceMappingURL=adapters.d.ts.map