/** * `@sema-agent/server/device-protocol` —— 设备端 executor 需要的那一组协议面,**精选入口**。 * * 为什么有这只文件:executor 住在别的仓,而握手签名的逐字节编码是**运行时代码**,不是一份型 —— 手抄错一个字节, * 所有合法 executor 恒 `auth_failed`。只给文档让人照抄 = 把「抄对没有」交给运气;给一条可 import 的子路径 = * 两边用的是同一只函数。 * * 为什么是精选而不是把 `device-ws-protocol.ts` 整只暴露:那个模块里还有**服务端**自己的半场(帧解析与准入、 * 验签、各种铸 id)。把它们变成公开面,等于替实现细节背上 semver。这里只再导出 executor **会用到**的: * 闭集常量、两向帧型、以及构造握手签名字节所需的两只纯函数。要加名字 = 改这只文件 + 同批改 * `test/device-protocol-subpath.test.ts` 的闭集(新增公开面必须是一次有意的动作)。 */ export { DEVICE_WS_PATH, DEVICE_PROTOCOL_VERSION, DEVICE_MIN_PROTOCOL_VERSION, DEVICE_HELLO_DOMAIN_TAG, DEVICE_WS_LIMITS, DEVICE_FRAME_TYPES, DEVICE_SERVER_FRAME_TYPES, DEVICE_HELLO_REJECT_CODES, DEVICE_BYE_REASONS, DEVICE_GOODBYE_REASONS, DEVICE_CHUNK_KINDS, DEVICE_CANCEL_STATES, DEVICE_INSTRUCTION_KINDS, DEVICE_OUTCOME_ERROR_CODES, buildHelloSignaturePayload, decodeUlid16, } from "./device-ws-protocol.js"; export type { DeviceFrameType, DeviceServerFrameType, DeviceHelloRejectCode, DeviceByeReason, DeviceGoodbyeReason, DeviceChunkKind, DeviceCancelState, DeviceInstructionKind, DeviceOutcomeErrorCode, WireFileInfo, WireWriteExpectation, DeviceInstructionOutcome, DeviceInstructionArgsByKind, DeviceChallengeFrame, DeviceHelloAckFrame, DeviceHelloRejectFrame, DeviceInstructionFrame, DevicePayloadFrame, DeviceServerFrame, DeviceHelloFrame, DeviceFrame, DeviceResultFrame, DeviceChunkFrame, DeviceGoodbyeFrame, DeviceHeartbeatFrame, } from "./device-ws-protocol.js"; //# sourceMappingURL=device-protocol.d.ts.map