1.5 KiB
1.5 KiB
Companion Runtime Client Foundation Checklist (2026-02-16)
Scope
- Add a reusable Node/WebSocket runtime client for companion apps to call gateway node/system RPC methods without manually handling request IDs, pending maps, or error-code parsing.
- Keep API focused on current companion milestones:
node.registernode.capabilities.getnode.location.set/getnode.status.setnode.push_token.setsystem.capabilitiessystem.nodes
Implementation
- Added
src/companion/runtimeClient.ts:CompanionRuntimeClienttyped wrapper around gateway JSON-RPC overws.GatewayRpcErrorcarrying gateway error code + message.- Connection lifecycle (
connect,disconnect,connected) and typedcall<T>(). - Method-specific wrappers for node/system companion RPCs.
- Token query-param support for gateway bearer auth.
- Added
src/companion/index.tsexports for companion runtime integration. - Added
src/companion/runtimeClient.test.tsintegration coverage against liveGatewayServerfixture.
Validation
- Companion runtime tests:
- registration + capability flow
- status/location/push updates and
system.nodesvisibility - RPC error mapping into
GatewayRpcError
Docs Updated
README.md(Gateway Node Capability Negotiation section): referencessrc/companion/runtimeClient.tshelper.docs/api/PROTOCOL.md: implementation reference updated with runtime client helper.docs/architecture/CONTRIBUTOR_MAP.md: repo tour now includessrc/companion/.