feat(mcp-wrapper): collapse the ~90-tool surface to 9 geometry+agentic ops #153
Reference in New Issue
Block a user
Delete Branch "feat/mcp-wrapper-collapse-9ops"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Collapses the MCP tool surface from ~90 noun-per-tool tools to 9 ops (design: api-reshape README, artifact 0e828907 / surface.el §5). Type is a parameter, not a tool-per-noun.
Layer 1 — geometry (live against soul :7770 today):
read({vantage,type?,k,depth}),write({content,type,...}),relate({from,to,relationship}),supersede({id,action,content?}).Layer 2 — agentic primitives (honest
pending-cognition-promotionenvelope until the cognition build is promoted on the engram):think,attend,assert,ground,learn.Notes
main.elstill had the empty-inputSchema catalog (the schema-fix commit never landed on main), so this diff also brings in real inputSchemas (tool_s) — declared == forwarded == honored./graphdoes not yet honorcompact/k, so the aperture is enforced at the wrapper boundary (cap_output, ~2000 + k*3000 chars). Measured: self read k=1 → 5.3KB, k=20 → 65KB (was ~790KB unbounded).dispatch_tool_call(old catalog retained as unusedtools_catalog_full), so callers using old names keep working while the visible surface is the 9.Verified end-to-end through proxy :7779 → wrapper :17779 → soul :7770: 9 tools with real schemas, aperture bounds, write/relate/supersede ok:true on live, agentic ops honest, identity refusals, old alias 'remember' still works.
tools/list now returns exactly 9 ops (design: api-reshape README, artifact 0e828907 / surface.el §5) instead of the noun-per-tool catalog. Type is a parameter, not a tool-per-noun. Layer 1 — geometry (live against soul :7770 today): read({vantage,type?,k,depth}) write({content,type,...}) relate({from,to,relationship}) supersede({id,action,content?}) Layer 2 — agentic primitives (return an honest pending-cognition-promotion envelope until the cognition build is promoted on the engram): think attend assert ground learn Why: - The old surface advertised empty inputSchemas so args never bound; every op here declares a real schema (tool_s) so targeting/bounding params bite. - Vantage-read fixes the whole-self-dump: the aperture (k/depth) bounds output. Because the live soul's /graph does not yet honor compact/k, the aperture is enforced at the WRAPPER boundary (cap_output, ~2000 + k*3000 chars) where the MCP transport limit bites. Measured: self read k=1 -> 5.3KB, k=20 -> 65KB (was ~790KB unbounded). - Identity keystones (kn-efeb4a5b / kn-5b606390) are write-protected on write(type=self|values), relate, and supersede. Transition: the previous ~90 tool names remain as HIDDEN ALIASES in dispatch_tool_call (old catalog retained as unused tools_catalog_full), so any caller still using an old name keeps working while the visible surface is the 9.