import type { JsonRpcErrorResponse, JsonRpcSuccessResponse } from '../_vendored-contracts/skill-tunnel.js'; import type { BrainPushClient } from '../scheduler/types.js'; export interface LocalBridgeDeps { /** 通过 slug 查本地 endpoint */ resolveEndpoint: (slug: string) => string | null; /** 与本地 skill daemon 共享的 HMAC secret(§3 auth)。 * 若给定,则在发往 127.0.0.1 的 HTTP 请求上加 X-Skill-Auth header。*/ skillAuthSecret?: string; /** 单次 HTTP 请求超时(ms),默认 30s */ fetchTimeoutMs?: number; /** 可注入,方便测试(默认 globalThis.fetch)*/ fetch?: typeof fetch; /** SAFE observation local store root. Defaults to ~/.skillfm. */ skillfmHome?: string; /** Optional Brain client. Without it, observations are only recorded locally. */ brain?: Pick; /** Optional logger for non-fatal SAFE observation warnings. */ logger?: Pick; } export declare class LocalBridge { private readonly deps; private readonly safeObservation; constructor(deps: LocalBridgeDeps); /** * 把 server→agent 的 JSON-RPC request 转发到本地 skill daemon。 * 返回 JsonRpcSuccessResponse 或 JsonRpcErrorResponse(本地不可达等)。 * 异常不抛出,一律封装成 error response —— 上层 client 按 id 回传。 */ dispatch(id: string, method: string, params: unknown): Promise; private isKnownServerMethod; private handleSkillRun; private handleToolInvoke; private handleSkillPost; private handleSkillGet; private httpJson; private errorResponse; private captureSafeObservation; } //# sourceMappingURL=local-bridge.d.ts.map