feat(mcp): connect authenticated AquaPortal tools to Vocero (#1)

Vocero needs to query AquaPortal on behalf of the caller selected by the existing phone link. This adds server-owned conversations and MCP tool execution for voice and HTTP reasoning while leaving the speech pipeline unchanged.

Release notes:

- Added browser-bound conversations that keep backend credentials server-side and isolate callers.
- Connected the eight-tool AquaPortal catalog through authenticated Streamable HTTP with full input schemas and structured results.
- Added bounded multi-step tool execution with cancellation, expiry, and stale-result protection.
- Updated browser bootstrap, tool progress, reasoning headers, and conversation cleanup.
- Disabled legacy unscoped content preloads in MCP mode and documented configuration and deployment constraints.
- Preserved disabled-mode contracts and added local SDK, WebSocket, and browser regression coverage.

Reviewed-on: AquaPortal/s2s#1
This commit is contained in:
2026-10-08 08:49:39 -04:00
parent ccb1f708ca
commit 96895996d9
37 changed files with 2498 additions and 55 deletions
+12
View File
@@ -7,6 +7,18 @@ the implementation at the recorded date; current operating instructions live in
## Unreleased
### Added
- Added optional cookie-bound Vocero conversations that keep each caller's AquaPortal
session on the server, with expiry, cleanup, and isolated MCP discovery and execution.
- Added bounded MCP tool loops to HTTP reasoning and the voice relay, preserving full
input schemas, structured results, source references, and conversation follow-ups.
Cancelled turns discard late results; the voice relay suppresses internal tool text
and audio without changing the speech pipeline.
- Added browser conversation bootstrap and cleanup, authenticated discovery, per-turn
reasoning headers, and tool progress states. MCP mode blocks failed login and skips
legacy unscoped content preloads; existing behavior remains available when disabled.
### Fixed
- Consolidate responsive transcript layout, keep export controls visible on narrow screens,