{"tools":[{"name":"kb_list","description":"List all pages in a knowledge base. Optionally filter by space_id.","inputSchema":{"type":"object","properties":{"wiki":{"type":"string","default":"strategy"},"space":{"type":"string","default":null}}}},{"name":"kb_get_page","description":"Get a single page's full data including relations and neighbors.","inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"Page path"},"space":{"type":"string","default":null}},"required":["path"]}},{"name":"kb_ingest_text","description":"Ingest raw text into the knowledge base as a new page.","inputSchema":{"type":"object","properties":{"title":{"type":"string"},"content":{"type":"string"},"wiki":{"type":"string","default":"strategy"},"page_type":{"type":"string","default":"entity"},"space":{"type":"string","default":null}},"required":["title","content"]}},{"name":"kb_ingest_url","description":"Ingest content from a URL into the knowledge base.","inputSchema":{"type":"object","properties":{"url":{"type":"string"},"wiki":{"type":"string","default":"strategy"},"space":{"type":"string","default":null}},"required":["url"]}},{"name":"kb_graph_vector_search","description":"Semantic search across knowledge base pages using vector embeddings.","inputSchema":{"type":"object","properties":{"query":{"type":"string"},"limit":{"type":"integer","default":5},"space":{"type":"string","default":null}},"required":["query"]}},{"name":"kb_graph_neighbors","description":"Get neighboring pages connected by wikilinks or relations.","inputSchema":{"type":"object","properties":{"path":{"type":"string"},"depth":{"type":"integer","default":1},"space":{"type":"string","default":null}},"required":["path"]}},{"name":"kb_graph_describe","description":"Describe a page's position in the graph: its relations, link count, types of neighbors.","inputSchema":{"type":"object","properties":{"path":{"type":"string"},"space":{"type":"string","default":null}},"required":["path"]}},{"name":"kb_discover","description":"Discover available knowledge base namespaces with page counts and metadata.","inputSchema":{"type":"object","properties":{}}},{"name":"kb_spaces","description":"List all KB spaces with metadata.","inputSchema":{"type":"object","properties":{}}},{"name":"kb_search_pages","description":"Search pages by text, type, and/or tags.","inputSchema":{"type":"object","properties":{"query":{"type":"string"},"page_type":{"type":"string","default":null},"tags":{"type":"array","items":{"type":"string"},"default":null},"limit":{"type":"integer","default":20},"space":{"type":"string","default":null}}}},{"name":"kb_create_space","description":"Create a new KB space with a name and scope.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Human-readable space name"},"scope":{"type":"string","description":"Scope: 'org', 'team', or 'private'"},"slug":{"type":"string","default":null},"owner_id":{"type":"string","default":null}},"required":["name","scope"]}},{"name":"kb_share","description":"Grant access to a KB space for an org, team, or agent.","inputSchema":{"type":"object","properties":{"space_id":{"type":"string"},"grantee_type":{"type":"string","description":"'org', 'agent', or 'role'"},"grantee_id":{"type":"string"},"permission":{"type":"string","default":"read"}},"required":["space_id","grantee_type","grantee_id"]}},{"name":"kb_unshare","description":"Revoke access to a KB space.","inputSchema":{"type":"object","properties":{"space_id":{"type":"string"},"grantee_type":{"type":"string"},"grantee_id":{"type":"string"}},"required":["space_id","grantee_type","grantee_id"]}},{"name":"kb_space_members","description":"List all access grants for a KB space.","inputSchema":{"type":"object","properties":{"space_id":{"type":"string"}},"required":["space_id"]}},{"name":"kb_update_page","description":"Update an existing KB page's title, content, type, or tags.","inputSchema":{"type":"object","properties":{"path":{"type":"string"},"title":{"type":"string","default":null},"content":{"type":"string","default":null},"page_type":{"type":"string","default":null},"tags":{"type":"array","items":{"type":"string"},"default":null},"space":{"type":"string","default":null}},"required":["path"]}},{"name":"kb_delete_page","description":"Delete a KB page by path.","inputSchema":{"type":"object","properties":{"path":{"type":"string"}},"required":["path"]}},{"name":"kb_ingest_repo","description":"Ingest a git repository into a KB space.","inputSchema":{"type":"object","properties":{"git_url":{"type":"string"},"branch":{"type":"string","default":"main"},"space_id":{"type":"string","default":null},"file_patterns":{"type":"array","items":{"type":"string"},"default":null},"private":{"type":"boolean","default":false},"credential_id":{"type":"string","default":null}},"required":["git_url"]}},{"name":"kb_ingest_source","description":"Ingest data from a registered KB source. Reads credential + description, uses LLM to determine provider, then ingests files.","inputSchema":{"type":"object","properties":{"source_id":{"type":"string"},"org_id":{"type":"string","default":null}},"required":["source_id"]}},{"name":"kb_refresh_repo","description":"Re-ingest a previously ingested repository.","inputSchema":{"type":"object","properties":{"repo_id_or_url":{"type":"string"}},"required":["repo_id_or_url"]}},{"name":"kb_list_repos","description":"List ingested git repositories, optionally filtered by space.","inputSchema":{"type":"object","properties":{"space_id":{"type":"string","default":null}}}},{"name":"kb_attach","description":"Attach an agent to a KB space with read or write access.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string"},"space_id":{"type":"string"},"access":{"type":"string","default":"read"}},"required":["agent_id","space_id"]}},{"name":"kb_detach","description":"Detach an agent from a KB space.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string"},"space_id":{"type":"string"}},"required":["agent_id","space_id"]}},{"name":"kb_list_for_agent","description":"List all KB spaces attached to an agent.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string"}},"required":["agent_id"]}},{"name":"kb_create_relation","description":"Create a typed relation between two KB pages.","inputSchema":{"type":"object","properties":{"from_path":{"type":"string"},"to_path":{"type":"string"},"relation_type":{"type":"string"}},"required":["from_path","to_path","relation_type"]}},{"name":"kb_delete_relation","description":"Delete a typed relation between two KB pages.","inputSchema":{"type":"object","properties":{"from_path":{"type":"string"},"to_path":{"type":"string"},"relation_type":{"type":"string"}},"required":["from_path","to_path","relation_type"]}},{"name":"kb_staleness_check","description":"Find stale KB pages that haven't been updated recently.","inputSchema":{"type":"object","properties":{"max_age_days":{"type":"integer","default":30},"limit":{"type":"integer","default":20},"space":{"type":"string","default":null}}}},{"name":"kb_verify_page","description":"Mark a KB page as verified (resets staleness timer).","inputSchema":{"type":"object","properties":{"path":{"type":"string"}},"required":["path"]}}],"count":27}