/knowledge: status (default) | list | clear | enable | disable. Surfaces the auto-populated knowledge graph (the original's Knowledge Graph engine).
(self, request_id: object, action: object)
| 791 | self._reply(request_id, {"ok": False, "error": str(exc)}) |
| 792 | |
| 793 | def _do_knowledge(self, request_id: object, action: object) -> None: |
| 794 | """/knowledge: status (default) | list | clear | enable | disable. Surfaces |
| 795 | the auto-populated knowledge graph (the original's Knowledge Graph engine).""" |
| 796 | try: |
| 797 | from src.knowledge import KnowledgeGraph |
| 798 | |
| 799 | if self._knowledge is None: |
| 800 | self._knowledge = KnowledgeGraph.load() |
| 801 | act = str(action or "status").strip().lower() |
| 802 | if act == "clear": |
| 803 | self._knowledge.clear() |
| 804 | self._knowledge.save() |
| 805 | self._reply(request_id, {"ok": True, "enabled": self._knowledge_enabled, "stats": self._knowledge.stats()}) |
| 806 | return |
| 807 | if act in ("enable", "disable"): |
| 808 | self._knowledge_enabled = act == "enable" |
| 809 | self._reply(request_id, {"ok": True, "enabled": self._knowledge_enabled, "stats": self._knowledge.stats()}) |
| 810 | return |
| 811 | if act in ("semantic", "heuristic"): |
| 812 | self._knowledge_semantic = act == "semantic" |
| 813 | self._reply( |
| 814 | request_id, |
| 815 | {"ok": True, "enabled": self._knowledge_enabled, "semantic": self._knowledge_semantic, "stats": self._knowledge.stats()}, |
| 816 | ) |
| 817 | return |
| 818 | entities = ( |
| 819 | [{"name": e.name, "type": e.type, "count": e.count} for e in self._knowledge.top(20)] |
| 820 | if act == "list" |
| 821 | else [] |
| 822 | ) |
| 823 | self._reply( |
| 824 | request_id, |
| 825 | { |
| 826 | "ok": True, |
| 827 | "enabled": self._knowledge_enabled, |
| 828 | "semantic": self._knowledge_semantic, |
| 829 | "stats": self._knowledge.stats(), |
| 830 | "entities": entities, |
| 831 | }, |
| 832 | ) |
| 833 | except Exception as exc: # noqa: BLE001 |
| 834 | logger.exception("[agent-server] knowledge failed") |
| 835 | self._reply(request_id, {"ok": False, "error": str(exc)}) |
| 836 | |
| 837 | def _do_set_output_style(self, request_id: object, style: object) -> None: |
| 838 | """Switch the output style mid-session (the original's /output-style). |