/** * remoteSignatureSigner —— 远程签名器:每次出站调 linkquegw 签名服务取签名。 * * runtime 不持应用私钥(私钥留在服务端)。每次出站请求(SSE GET 建连 + POST JSON-RPC) * 都 POST `https://linkquegw.alipay.com/api/mcp/signature`,body 为 * `{agentId, httpMethod, httpRequestUrl, httpRequestBody}`,取回 `{authorization, signatureContent}`。 * * 签名服务鉴权(linkquegw 统一 authMiddleware,scheme 即语义标记):调用方须在请求头带 * `Authorization: `——沙箱出向 `ak ${占位符}`、Chat Gateway `Bearer `。 * 该 Authorization 头**完整值**由集成层经 {@link IRemoteSignatureSignerOptions.getAuthorizationHeader} 注入; * runtime 不关心 scheme 与来源,原样写入请求头。缺省不带鉴权头(仅本地 fixture/离线桩用)。 * * 对齐 test_local/mcpConnect.test.ts 的 MCPSignService 模式 —— 签名逻辑本就运行在服务端, * runtime 侧只负责把「这次出站请求的 method/url/body」交给服务端,拿回签名头。 */ import type { GetAuthorizationHeader, ISignRequest, ISignResponse } from './types.js'; /** 默认签名服务地址(服务端 MCPSignService 对外入口)。 */ export declare const DEFAULT_SIGN_ENDPOINT = "https://linkquegw.alipay.com/api/mcp/signature"; /** 构造选项。 */ export interface IRemoteSignatureSignerOptions { /** agent 标识(签名服务入参)。 */ agentId: string; /** 签名服务地址,缺省 {@link DEFAULT_SIGN_ENDPOINT}。 */ signEndpoint?: string; /** fetch 实现(测试注入桩);缺省 globalThis.fetch。 */ fetchImpl?: typeof fetch; /** * 取调签名服务用的 `Authorization` 头**完整值**(含 scheme,如 `ak xxx` / `Bearer yyy`)。 * 集成层注入:每次出站签名前调一次,原样写入签名请求的 `Authorization` 头(runtime 不追加 `Bearer`)。 * 缺省不带鉴权头。 */ getAuthorizationHeader?: GetAuthorizationHeader; } /** * 远程签名器:每次 `sign(req)` 发一次 POST 到签名服务,返回 `ISignResponse`。 * 不缓存(每请求签名,对齐服务端验签要求)。 */ export declare class RemoteSignatureSigner { private readonly agentId; private readonly signEndpoint; private readonly fetchImpl; private readonly getAuthorizationHeader; constructor(options: IRemoteSignatureSignerOptions); /** * 对一次出站请求取签名。 * * @param req 见 {@link ISignRequest}(method/url/body) * @returns `{authorization, signatureContent}` * @throws 签名服务非 2xx / 鉴权头获取失败 / 响应缺字段时抛错(由 signingFetch 转 transport-error)。 */ sign(req: ISignRequest): Promise; }