mirror of
https://github.com/lobehub/lobe-chat.git
synced 2026-06-14 03:30:19 +00:00
723c4d6daa
* 🐛 fix(cli): handle agent_run_request in `lh connect` so device dispatch doesn't time out `lh connect` auto-registers the CLI as a device, so the gateway can pick it as the dispatch target for a heterogeneous agent run (`agent_run_request`). But the connect daemon only listened for `system_info_request` and `tool_call_request` — it never handled `agent_run_request`, so it never sent `agent_run_ack`. The gateway waited out its ack window and returned `{error:'TIMEOUT',success:false}`, surfaced server-side as "Hetero agent device dispatch failed". Add an `agent_run_request` handler mirroring the desktop app: spawn `lh hetero exec` fire-and-forget and ack `accepted` immediately. The spawned process owns the full execution + server-ingest pipeline. It re-invokes the current CLI entry (process.execPath + argv[1]) rather than relying on `lh` being on PATH, so it works inside the detached daemon. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix: bump the cli version * chore: bump the cli manifest * 🐛 fix(cli): ack agent run only after spawn succeeds, reject on spawn error `child_process.spawn` reports a missing/inaccessible cwd asynchronously via the child's `error` event, after the handler had already sent an `accepted` ack. The gateway/server then recorded dispatch success while no `lh hetero exec` process existed to emit `heteroFinish`, leaving the assistant message stuck instead of surfacing a failure. `spawnHeteroAgentRun` now resolves on the child's outcome: `accepted` on the `spawn` event (stdin is written only then), `rejected` on an early `error`. A rejected ack returns the gateway 422 → execAgent writes a ServerAgentRuntimeError onto the assistant message, so a failed dispatch is visible. Still resolves in milliseconds, well within the gateway's 10s ack window. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
57 lines
1.5 KiB
JSON
57 lines
1.5 KiB
JSON
{
|
|
"name": "@lobehub/cli",
|
|
"version": "0.0.29",
|
|
"type": "module",
|
|
"bin": {
|
|
"lh": "./dist/index.js",
|
|
"lobe": "./dist/index.js",
|
|
"lobehub": "./dist/index.js"
|
|
},
|
|
"man": [
|
|
"./man/man1/lh.1",
|
|
"./man/man1/lobe.1",
|
|
"./man/man1/lobehub.1"
|
|
],
|
|
"files": [
|
|
"dist",
|
|
"man"
|
|
],
|
|
"scripts": {
|
|
"build": "tsdown",
|
|
"cli:link": "bun link",
|
|
"cli:unlink": "bun unlink",
|
|
"dev": "LOBEHUB_CLI_HOME=.lobehub-dev bun src/index.ts",
|
|
"man:generate": "bun src/man/generate.ts",
|
|
"prepublishOnly": "npm run build && npm run man:generate",
|
|
"test": "bunx vitest run --config vitest.config.mts --silent='passed-only'",
|
|
"test:coverage": "bunx vitest run --config vitest.config.mts --coverage",
|
|
"type-check": "tsc --noEmit"
|
|
},
|
|
"devDependencies": {
|
|
"@lobechat/agent-gateway-client": "workspace:*",
|
|
"@lobechat/device-gateway-client": "workspace:*",
|
|
"@lobechat/device-identity": "workspace:*",
|
|
"@lobechat/heterogeneous-agents": "workspace:*",
|
|
"@lobechat/local-file-shell": "workspace:*",
|
|
"@lobechat/tool-runtime": "workspace:*",
|
|
"@trpc/client": "^11.8.1",
|
|
"@types/node": "^22.13.5",
|
|
"@types/ws": "^8.18.1",
|
|
"commander": "^13.1.0",
|
|
"dayjs": "^1.11.19",
|
|
"debug": "^4.4.0",
|
|
"diff": "^8.0.3",
|
|
"fast-glob": "^3.3.3",
|
|
"ignore": "^7.0.5",
|
|
"picocolors": "^1.1.1",
|
|
"superjson": "^2.2.6",
|
|
"tsdown": "^0.21.4",
|
|
"typescript": "^6.0.3",
|
|
"ws": "^8.18.1"
|
|
},
|
|
"publishConfig": {
|
|
"access": "public",
|
|
"registry": "https://registry.npmjs.org"
|
|
}
|
|
}
|