Sub-issue of #56 (G2 of TechDevGroup/devagentic#203).
Scope
Add MCP tool assert_output wrapping devagentic's assertOutput mutation.
Why deferred from initial G2 PR
assertOutput(call_id: str, expectation: ExpectationInput) -> Verdict requires the ExpectationInput GraphQL input shape (fragment: str, predicate: str). Mapping that cleanly through MCP needs its own design decision (single dict arg vs. flat args).
Acceptance
- Tool registered under
mcp_serve.py::_register_devagentic_mutation_tools.
- Wrapper accepts
call_id, fragment, predicate (flat); maps to the GraphQL input.
- Unit tests covering happy path + bad-args fallback.
Sub-issue of #56 (G2 of TechDevGroup/devagentic#203).
Scope
Add MCP tool
assert_outputwrapping devagentic'sassertOutputmutation.Why deferred from initial G2 PR
assertOutput(call_id: str, expectation: ExpectationInput) -> Verdictrequires theExpectationInputGraphQL input shape (fragment: str, predicate: str). Mapping that cleanly through MCP needs its own design decision (single dict arg vs. flat args).Acceptance
mcp_serve.py::_register_devagentic_mutation_tools.call_id,fragment,predicate(flat); maps to the GraphQL input.