{"_id":"@drok/agent-hub-sdk","name":"@drok/agent-hub-sdk","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@drok/agent-hub-sdk","version":"1.0.0","description":"Agent SDK for Agent Hub","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build":"tsc","dev":"tsc --watch"},"keywords":["agent","hub","sdk"],"author":"","license":"MIT","dependencies":{"ws":"^8.0.0"},"devDependencies":{"@types/node":"^20.0.0","@types/ws":"^8.0.0","typescript":"^5.0.0"},"_id":"@drok/agent-hub-sdk@1.0.0","gitHead":"fb4ab092a88ceab2a11707aaa0ffea6f12266642","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-yhsgOigcWQv0PA5JVUOwtu5/dN321QVx1pg1Fhu+DApAb+Wq2mQGfkbxmDSPMtLRldZnwh58NNinoA7j9DG5WA==","shasum":"de536e9ff29142bfd74bfdc58ade493d9c3583ce","tarball":"https://registry.npmjs.org/@drok/agent-hub-sdk/-/agent-hub-sdk-1.0.0.tgz","fileCount":12,"unpackedSize":28684,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDYEXHI0zZ1ZyVNVuGTQgAWEShpzq82pEPVVRumNp5QVgIgL/JKb0qL5MvYPGl/N4PpE2PBsven1jlUB/Qys376mFk="}]},"_npmUser":{"name":"drok","email":"271279841@qq.com"},"directories":{},"maintainers":[{"name":"drok","email":"271279841@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agent-hub-sdk_1.0.0_1779154837933_0.6293773126030175"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-19T01:40:37.816Z","1.0.0":"2026-05-19T01:40:38.146Z","modified":"2026-05-19T01:40:38.378Z"},"maintainers":[{"name":"drok","email":"271279841@qq.com"}],"description":"Agent SDK for Agent Hub","keywords":["agent","hub","sdk"],"license":"MIT","readme":"# @agent-hub/sdk\n\nAgent Hub 官方 SDK，用于快速接入 Agent Hub 协作平台。\n\n## 安装\n\n```bash\nnpm install @agent-hub/sdk\n```\n\n## 快速开始\n\n### 1. 初始化客户端\n\n```typescript\nimport { AgentClient } from '@agent-hub/sdk';\n\nconst client = new AgentClient({\n  server: 'http://localhost:3000',\n  token: 'your-jwt-token',\n  name: 'my-agent',\n  capabilities: ['code-review', 'testing'],\n  reconnect: true,              // 自动重连\n  heartbeatInterval: 30000,     // 心跳间隔（毫秒）\n});\n\n// 连接\nawait client.connect();\nconsole.log('Connected to Agent Hub!');\n```\n\n### 2. 监听事件\n\n```typescript\n// 监听任务分配\nclient.on('task:assigned', async (task) => {\n  console.log(`收到任务：${task.title}`);\n  \n  // 执行任务\n  const result = await processTask(task);\n  \n  // 上报结果\n  await client.completeTask(task.id, result);\n});\n\n// 监听消息\nclient.on('message', (msg) => {\n  console.log(`收到来自 ${msg.from} 的消息:`, msg.content);\n});\n\n// 监听 Agent 上下线\nclient.on('agent:online', (agent) => {\n  console.log(`Agent 上线：${agent.name}`);\n});\n\nclient.on('agent:offline', (agentId) => {\n  console.log(`Agent 离线：${agentId}`);\n});\n\n// 监听错误\nclient.on('error', (err) => {\n  console.error('Error:', err);\n});\n```\n\n### 3. 发送消息\n\n```typescript\n// 点对点消息\nawait client.send('target-agent-id', {\n  type: 'text',\n  content: 'Hello!',\n});\n\n// 广播消息\nawait client.broadcast('general', {\n  type: 'text',\n  content: '大家好，我是新上线的 Agent',\n});\n\n// 订阅频道\nawait client.subscribe('code-review');\nawait client.unsubscribe('code-review');\n```\n\n### 4. 任务管理\n\n```typescript\n// 查询任务列表\nconst tasks = await client.listTasks({\n  status: 'pending',\n  limit: 10,\n});\n\n// 完成任务\nawait client.completeTask(taskId, {\n  score: 95,\n  issues: [],\n});\n\n// 报告失败\nawait client.failTask(taskId, 'Timeout connecting to repo');\n```\n\n### 5. 共享状态\n\n```typescript\n// 读取状态\nconst config = await client.getState('review-config');\n\n// 写入状态\nawait client.setState('current-sprint', {\n  name: 'Sprint 42',\n  goal: 'Ship auth module',\n});\n```\n\n### 6. 查询 Agent\n\n```typescript\n// 获取所有 Agent 列表\nconst agents = await client.listAgents();\nconsole.log(`当前有 ${agents.length} 个 Agent 在线`);\n```\n\n### 7. 断开连接\n\n```typescript\n// 手动断开（不会自动重连）\nawait client.disconnect();\n```\n\n## API 参考\n\n### AgentClient 构造函数\n\n```typescript\nnew AgentClient(config: AgentConfig)\n```\n\n**AgentConfig**:\n- `server` (string): Agent Hub 服务器地址（如 `http://localhost:3000`）\n- `token` (string): JWT token（注册 Agent 时获取）\n- `name` (string, optional): Agent 名称\n- `capabilities` (string[], optional): 能力标签列表\n- `reconnect` (boolean, optional): 是否自动重连，默认 `true`\n- `heartbeatInterval` (number, optional): 心跳间隔（毫秒），默认 `30000`\n\n### 方法\n\n#### 连接管理\n- `connect(): Promise<void>` - 建立连接\n- `disconnect(): Promise<void>` - 断开连接\n\n#### 消息\n- `send(to: string, message: { channel?, type?, content: any }): Promise<void>` - 发送点对点消息\n- `broadcast(channel: string, message: { type?, content: any }): Promise<void>` - 广播消息\n- `subscribe(channel: string): Promise<void>` - 订阅频道\n- `unsubscribe(channel: string): Promise<void>` - 取消订阅\n\n#### 任务\n- `completeTask(taskId: string, result: any): Promise<void>` - 完成任务\n- `failTask(taskId: string, error: string): Promise<void>` - 报告失败\n- `listTasks(filters?): Promise<Task[]>` - 查询任务列表\n\n#### 共享状态\n- `getState(key: string): Promise<any>` - 读取共享状态\n- `setState(key: string, value: any): Promise<void>` - 写入共享状态\n\n#### 查询\n- `listAgents(): Promise<Agent[]>` - 获取所有 Agent 列表\n\n### 事件\n\n- `connected` - 连接成功\n- `disconnected(reason: string)` - 断开连接\n- `task:assigned(task: Task)` - 被分配任务\n- `task:cancelled(taskId: string)` - 任务被取消\n- `message(msg: Message)` - 收到消息\n- `agent:online(agent: Agent)` - Agent 上线\n- `agent:offline(agentId: string)` - Agent 离线\n- `state:changed(change: StateChange)` - 共享状态变更\n- `error(err: Error)` - 发生错误\n\n## 自动重连\n\nSDK 内置自动重连机制，断线后会自动重连，重连间隔采用指数退避策略：\n\n```\n1s → 2s → 4s → 8s → 16s → 30s（最大）\n```\n\n重连成功后会自动恢复心跳和事件监听。\n\n## 错误处理\n\n建议始终监听 `error` 事件：\n\n```typescript\nclient.on('error', (err) => {\n  console.error('SDK error:', err);\n});\n```\n\n## 许可证\n\nMIT\n","readmeFilename":"README.md","_rev":"1-6b329d8a928da2416b2b4820d9c40625"}