docs: add email agent packaging integration spike design doc#1852
docs: add email agent packaging integration spike design doc#1852theonlychant wants to merge 3 commits into
Conversation
|
Verdict: Approve with suggestions — a design-only spike doc; no code changes, and its claims about current This adds One thing to fix before implementers run with this: the doc repeatedly says to bump (Process nit, not blocking: the PR body still has the 🔍 Technical detailsIssues 🟢 🟢 "eviction" framing (in-process wiring inventory) — the doc lists "email-agent eviction / special-case agent handling in Strengths
|
yea sure let me know what else you need! |
Summary
Concerning #1765
Adds a design spike doc deciding how the packaged email agent (REST sidecar + MCP server, per #1713) should reach the Agent UI for Phase 6 of the email-agent-packaging plan, given that the frozen contract is triage-centric while the desired UI experience covers the full capability set in #1691.
Why
The Agent UI currently runs email in-process (constructing EmailTriageAgent directly), bypassing the packaged sidecar entirely. A literal "swap in-process for the frozen REST/MCP contract" would silently drop capabilities the contract doesn't carry yet - batch archive, pre-scan, calendar, search, preferences - since those live only in the agent loop today. Before any rip-out-and-repoint work happens, we need an explicit, reviewed decision on which packaged interface (REST, MCP, extended REST, or agent-loop-over-sidecar) serves each capability, and which UI surface (chat vs. dedicated screens) delivers it - so Phase 6 has something concrete to execute against instead of discovering the gap mid-implementation.
Linked issue
Closes #N
Changes
docs/plans/email-agent-packaging-spike.md:_chat_helpers.py,sse_handler.pypre_scan_inbox mapping,routers/sessions.pyeviction), confirmed against currentmainTest plan
main(in-process wiring list, packaged contract surfaces ingaia_agent_email/{api_routes,mcp_server,contract}.py)gaia-agent.yamlinterface declarationshub/agents/npm/agent-emailspawns the sidecar and runs a triage round-trip, request/response pasted into the doc as a smoke test of the structured surfaceChecklist
Closes #N/Fixes #N/Refs #N).python util/lint.py --all,pytest tests/unit/).