Repository navigation
Merge into Agents API - #27
cm2435-hcomp wants to merge 27 commits into
Conversation
|
bugbot run |
|
bugbot run |
|
cursor review |
- Launch and attach through the SDK's hai_agents_local.runtime.LocalRuntime, sharing its state dir (~/.hai/agent-runtime) so CLI and SDK clients on the same port see the same token and pid files. - Build clients with AsyncClient.local(runtime=...); the desktop-recipe latency preset uses the runtime's proving HTTP client without bridges. - Drop the unproven /health probe: doctor attaches through the SDK, and the launcher only checks whether anything answers before deciding to spawn. - holo stop --force also finds runtimes started by released CLIs. - Test stubs answer the runtime identity challenge.
|
Pushed directly (as agreed), aligning with the SDK changes on hai-agents-python#222:
Tests: 370 passed (e2e 84). Smoke against a real runtime:
Before merge:
|
…ed SDK Desktop.host first ships in hai-agent-api 0.1.113; older versions drop host="user_device" silently. TEMPORARY: hai-agents is pinned to an unreleased hai-agents-python commit (a42b972) via tool.uv.sources so CI exercises the local runtime API. Swap it for a hai-agents release floor before merging.
…ver's identity The expense-report demo still built AgentApiClient from a base URL and token. Its fake agent-API now answers runtime identity challenges, reports the shared recipe, returns a full Session on create, and disables local desktop bridges since it drives no device.
… wheels binary-only
|
Pushed Why: Change: Status: ARM64 install now resolves (89 packages). Remaining failures (ARM64 bootstrap |
|
Simplification pass (no behavior change),
Tests: 454 passed, 16 skipped; ruff clean. |
Tests: 455 passed, 16 skipped. ruff + mypy clean. Live |
run and mcp share one task runner on AsyncClient.local; the SDK owns the runtime, sign-in, key store, and stop file. --fast disables reasoning.
What
Route HoloDesktop CLI runtime and session ownership through the shared Python Agent API SDK. Retain CLI/MCP/ACP/A2A entry points, inference/source settings, authenticated attachment and emergency Stop; close SDK-owned device bridges before closing HTTP transport.
Why
HoloDesktop already uses the local Agents API pattern. Moving lifecycle and sessions to the shared SDK removes duplicate ownership and gives products the same placement interface.
How
Delegate launcher, client and session lifecycle to the SDK; preserve request options and protocol entry points, and close device bridges before their HTTP transport.
Validation and dependencies
P6, depends on hcompai/hai-agents-python#222 and the reviewed runtime/driver/contract releases. MUST NOT merge or publish with the current permissive hai-agents>=1.0.12 floor: update to the actual compatible released SDK and lock before landing. No future version is fabricated here. Legacy CLI artifact ownership remains until this migration ships.
Validation: 453 non-E2E CLI tests pass, 16 skipped, against review SDK sources. Prior isolated CLI/MCP/ACP/A2A live probes exercised files, follow-ups and owned-command Stop. Full installed-product visual/packaged parity remains unverified. Local-agent/local-environment and local-agent/cloud-environment QA covers the new runtime path; candidate hosted combinations were not demonstrated. HoloWork migration is deferred.
Stack navigation: P1 contract → P2 runtime; P3 generation + P4 SDK; P5 checks: runtime, generation, SDK pins; P6 CLI. P7 duplicate pin cleanup follows only after P6 ships. HoloWork integration is subsequent work.
Review guide: intent, architecture, service tradeoffs and merge order.
CI dependency constraint: released SDK/contract packages lack local-runtime modules and Desktop.host, so current installer/unit/type checks require the compatible dependency releases. Ruff lint and format steps pass on the current CI head; mypy and message/session tests pass with candidate SDK/contract sources.