新增 apps/hub(中转节点): - 被控端主动外连注册(/hub/agent),控制端接入配对(/hub/client) - 配对后双向字节透传 —— Hub 不解析内容、不持有设备密钥 - Hub 令牌鉴权;list 可查在线设备 - 连接语义:控制端断开仅解绑(被控端保持在线);被控端掉线连带关闭控制端 - 同一被控端同一时刻仅服务一个控制端(占用返回 E_NODE_BUSY) 被控端: - 新增 hub 配置;启用后不监听本地端口,改为主动外连 Hub(穿 NAT)+ 指数退避重连 - 重构抽出 createAgentCore(),监听模式与 Hub 模式共用同一套鉴权/ACL/能力分发 控制端: - NodeProfile 新增 hub 字段;toWsUrl 自动附 /hub/client 路径 - client 支持 Hub 配对(控制面消息与 RPC 分离) 修复(Hub 场景暴露): - cmdConnect 漏传 hub 字段,导致跳过配对直接发 RPC - Hub unpair 过激进:控制端断开时把被控端也踢下线 - 安全:被控端 hello 时重置认证态与授权(Hub 下同一连接被多控制端复用) 验证:本地 E2E 21/21;构建 + 类型检查全绿;冒烟确认 info/exec 穿透 Hub 且多次接入保持在线
24 lines
487 B
JSON
24 lines
487 B
JSON
{
|
|
"name": "@nodeagent/hub",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"main": "./dist/index.js",
|
|
"bin": {
|
|
"nodeagent-hub": "./dist/index.js"
|
|
},
|
|
"scripts": {
|
|
"build": "tsc -p tsconfig.json",
|
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
"clean": "rm -rf dist",
|
|
"start": "node dist/index.js"
|
|
},
|
|
"dependencies": {
|
|
"@nodeagent/protocol": "workspace:*",
|
|
"ws": "^8.18.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/ws": "^8.5.13"
|
|
}
|
|
}
|