跳转至

Knowledge map and home

Hierarchical map of terms (stored in PostgreSQL as knowledge_map_nodes) and their links to channels / wiki spaces / article channels (knowledge_map_resource_links). Rendered as a force graph on the signed-in home page.

Feature Status Description
Knowledge Map (data model) ✅ Hierarchical knowledge_map_nodes and knowledge_map_resource_links (document channel, article channel id, wiki space); GET/POST/PATCH/DELETE /api/knowledge-map/* (FastAPI app.api.knowledge_map); knowledge_map:read / knowledge_map:write permission keys with default route/API patterns (SPA path /knowledge-map)
Knowledge Map UI ✅ /knowledge-map (lazy); sidebar Knowledge Map above Glossaries when path allowed; sitemap-style copy; Edit map, Explore graph, Explore (3D), and Overview tabs: tree + Node details (refer-tos, CRUD) on Edit; KnowledgeMapForceGraph + KnowledgeMapForceGraph3D for 2D/3D; Overview tab: middle pane renders A2UI v0.9 (@a2ui/react + KM catalog KmNodeLink / KmResourceLink); Browse synthesizes A2UI messages from the forest when none published; Overview Designer uses the same NDJSON dialect as map-html / other agents (POST /api/knowledge-map/overview/designer/chat, delta / tool_* / done, tool set_a2ui_messages); designer chats on agent_conversations with surface=knowledge_map_overview; publish/delete via /api/knowledge-map/overview*. Legacy map-html* HTML artifact APIs remain for compatibility but are not the SPA Overview path. Term selection syncs to tree + ?node=; resource click opens channel/wiki/articles
openkms-skill (HTTP) ✅ knowledge-map nodes tree, nodes create|patch|delete, resource-links list|put|delete (personal API key; knowledge_map:read / knowledge_map:write when enforced); see openkms-skill
Home hub ✅ Signed-in / loads GET /api/home/hub for any authenticated user (site_summary counts for welcome panel). Platform Home shows Quick Start cards (not KM graph). Open the map via Quick Start, App Rail, or Launcher → /knowledge-map.
Static home (guests) ✅ / always shows HomeStaticLanding for unauthenticated users (marketing hero, pain points, benefits, functionalities, Sign in CTA); no system setting—MainLayout only gates non-home routes

Overview (A2UI canvas + NDJSON designer)

Presentational source of truth is knowledge_map_overview_composition storing { format: "a2ui_v0_9", messages: [...] }—not HTML. Browse returns live tree + labeled resources + those A2UI messages (GET /api/knowledge-map/overview). If no row is published (or legacy composition JSON is present), the server synthesizes a default A2UI surface from the forest. The middle pane runs @a2ui/web_core MessageProcessor against the openKMS KM catalog. Designer chat uses the same NDJSON event dialect as map-html (delta, tool_start / tool_end, done, error) via POST /api/knowledge-map/overview/designer/chat; tool set_a2ui_messages updates the working canvas (tool_end.output / done.a2ui_messages). On the Overview tab, layout height matches the former HTML designer (knowledge-map-page--html-designer-full-height).

Legacy Map HTML (knowledge_map_html_artifact, map-html* routes, surface=knowledge_map_html) is deprecated for the SPA Overview tab but APIs remain until a later cleanup.