feat(harness): expose scoped Agent Map planning tools - #776
Conversation
Closes: SAP-3060
…-scoped-agent-map-planning-tools
…-scoped-agent-map-planning-tools
Findings1. Capabilities expire after 12h with no renewal path — long-lived sessions silently lose all Agent Map tools
Either slide 2.
|
Follow-up review — no PR content changedSince the reviewed commit ( Earlier findings the push did NOT fix (all six)
New findingsNone. I checked the one plausible cross-boundary effect of the merge: the base now returns Corrections to round 1None found on re-check; findings 1 and 4 were re-verified against current Verdict: Nothing was addressed. Findings 1 and 3 still block merge. |
Renew live-session capabilities on authenticated use, return bounded project recovery, close failed MCP initializations, and preserve original session persistence failures. Extend full-server SDK coverage and document the embedded endpoint. Refs SAP-3060
|
/review |
Follow-up review — all prior findings resolvedDelta since the reviewed commit ( Earlier findings — status
New findingsNone. The two new Corrections to earlier roundsNone. Verdict: Everything raised in rounds 1–2 is addressed with tests. No blockers. |
Summary
Expose the one shared Agent Map proposal service through a capability-authenticated Streamable HTTP MCP endpoint embedded in Studio. Every trusted project session receives the same strict read, validate, and propose tools, while Studio derives project/user/session/role/assignment identity server-side.
This PR is stacked on PR #775, which is stacked on PR #774. Its base is intentionally the SAP-3059 branch so this diff contains only SAP-3060.
Changes
@modelcontextprotocol/sdkharness dependency and one embedded/mcp/agent-mapstateful Streamable HTTP routeragent_map_read,agent_map_validate, andagent_map_proposetools for planner, planned-builder, and unplanned-builder identitiesproject_unavailable/rereadresult when a capability project can no longer be resolvedKey refinements from automated review
startServer({ port: 0 })middleware stack before asserting exit revocationTesting
port: 0, successful full-server list/read, private config mode, and exit revocation wiring coveragepnpm --filter @sapiom/harness typecheckpnpm --filter @sapiom/harness lintpnpm --filter @sapiom/harness build:servergit diff --checkRelated
Checklist