[{"id":"list_projects","label":"Listar projetos","description":"Lista os projetos internos dentro de self_v2/projects.","category":"workspace","version":"1.0","risk":"low","requires_confirmation":false,"input_schema":{"type":"object","properties":[],"required":[]},"output_schema":{"type":"object","properties":{"projects":{"type":"array","items":{"type":"string"}}},"required":["projects"]},"help":{"purpose":"Listar projetos disponíveis na raiz portátil interna.","when_to_use":["Descobrir projetos existentes","Escolher projeto ativo"],"when_not_to_use":["Listar ficheiros dentro de um projeto"],"requires":[],"optional":[],"effects":["Sem efeitos laterais"],"output_explained":{"projects":"Lista de nomes de projeto"},"examples":[{"input":[],"output":{"projects":["regras","demo1"]}}],"notes":["Opera apenas dentro de self_v2/projects"],"common_errors":[]}},{"id":"set_project","label":"Definir projeto ativo","description":"Define o projeto ativo para operações seguintes.","category":"workspace","version":"1.0","risk":"low","requires_confirmation":false,"input_schema":{"type":"object","properties":{"project":{"type":"string","description":"Nome do projeto"}},"required":["project"]},"output_schema":{"type":"object","properties":{"project":{"type":"string"}},"required":["project"]},"help":{"purpose":"Mudar o projeto ativo do contexto de trabalho.","when_to_use":["Antes de operar num projeto específico"],"when_not_to_use":["Quando já existe active_project correto"],"requires":["project existente"],"optional":[],"effects":["Atualiza active_project em ui_state"],"output_explained":{"project":"Projeto que ficou ativo"},"examples":[{"input":{"project":"regras"},"output":{"project":"regras"}}],"notes":["O projeto deve existir dentro de self_v2/projects"],"common_errors":["project not found"]}},{"id":"list_files","label":"Listar ficheiros","description":"Lista ficheiros e pastas do projeto ativo ou indicado.","category":"filesystem","version":"1.0","risk":"low","requires_confirmation":true,"input_schema":{"type":"object","properties":{"project":{"type":"string","description":"Projeto alvo"}},"required":[]},"output_schema":{"type":"object","properties":{"project":{"type":"string"},"items":{"type":"array","items":{"type":"object"}}},"required":["project","items"]},"help":{"purpose":"Listar conteúdo de topo de um projeto.","when_to_use":["Inspecionar rapidamente estrutura do projeto"],"when_not_to_use":["Pesquisar texto em ficheiros"],"requires":["project existente ou active_project válido"],"optional":["project"],"effects":["Sem efeitos laterais"],"output_explained":{"project":"Projeto usado","items":"Elementos de topo com name/type"},"examples":[{"input":{"project":"regras"},"output":{"project":"regras","items":[{"name":"regras.md","type":"file"}]}}],"notes":["Atualmente lista o topo do projeto"],"common_errors":["invalid project"]}},{"id":"read_file","label":"Ler ficheiro","description":"Lê o conteúdo de um ficheiro dentro do projeto.","category":"filesystem","version":"1.0","risk":"low","requires_confirmation":true,"input_schema":{"type":"object","properties":{"project":{"type":"string"},"path":{"type":"string"}},"required":["path"]},"output_schema":{"type":"object","properties":{"project":{"type":"string"},"path":{"type":"string"},"content":{"type":"string"}},"required":["project","path","content"]},"help":{"purpose":"Ler um ficheiro textual do projeto.","when_to_use":["Inspeção","Análise","Preparação para editar"],"when_not_to_use":["Escrever ou alterar ficheiros"],"requires":["path válido dentro do projeto"],"optional":["project"],"effects":["Sem efeitos laterais"],"output_explained":{"content":"Conteúdo completo do ficheiro"},"examples":[{"input":{"project":"regras","path":"regras.md"},"output":{"project":"regras","path":"regras.md","content":"# Regras"}}],"notes":["Bloqueia path traversal"],"common_errors":["file not found","invalid path"]}},{"id":"create_project","label":"Criar projeto","description":"Cria uma pasta de projeto nova dentro da raiz interna.","category":"workspace","version":"1.0","risk":"medium","requires_confirmation":true,"input_schema":{"type":"object","properties":{"project":{"type":"string"}},"required":["project"]},"output_schema":{"type":"object","properties":{"project":{"type":"string"}},"required":["project"]},"help":{"purpose":"Criar um novo projeto portátil em self_v2/projects.","when_to_use":["Iniciar trabalho novo"],"when_not_to_use":["Criar subpastas dentro de projeto existente"],"requires":["nome válido de projeto"],"optional":[],"effects":["Cria diretório de projeto"],"output_explained":{"project":"Projeto criado"},"examples":[{"input":{"project":"demo1"},"output":{"project":"demo1"}}],"notes":["Nome deve respeitar regex segura"],"common_errors":["invalid project"]}},{"id":"create_folder","label":"Criar pasta","description":"Cria uma pasta dentro do projeto.","category":"filesystem","version":"1.0","risk":"medium","requires_confirmation":true,"input_schema":{"type":"object","properties":{"project":{"type":"string"},"path":{"type":"string"}},"required":["path"]},"output_schema":{"type":"object","properties":{"project":{"type":"string"},"path":{"type":"string"}},"required":["project","path"]},"help":{"purpose":"Criar estrutura de diretórios dentro do projeto.","when_to_use":["Organizar docs","Preparar destino de ficheiros"],"when_not_to_use":["Criar projeto novo"],"requires":["path seguro dentro do projeto"],"optional":["project"],"effects":["Cria pasta(s)"],"output_explained":{"path":"Pasta criada"},"examples":[{"input":{"project":"demo1","path":"docs/api"},"output":{"project":"demo1","path":"docs/api"}}],"notes":["Suporta criação recursiva"],"common_errors":["invalid path"]}},{"id":"create_file","label":"Criar ficheiro","description":"Cria um ficheiro com conteúdo no projeto.","category":"filesystem","version":"1.0","risk":"medium","requires_confirmation":true,"input_schema":{"type":"object","properties":{"project":{"type":"string"},"path":{"type":"string"},"content":{"type":"string"}},"required":["path","content"]},"output_schema":{"type":"object","properties":{"project":{"type":"string"},"path":{"type":"string"}},"required":["project","path"]},"help":{"purpose":"Criar ficheiro novo no projeto.","when_to_use":["Iniciar docs","Criar config ou código novo"],"when_not_to_use":["Editar ficheiro existente sem rever diff"],"requires":["path seguro","content"],"optional":["project"],"effects":["Cria ficheiro e pastas pai se necessário"],"output_explained":{"path":"Ficheiro criado"},"examples":[{"input":{"project":"demo1","path":"docs/readme.md","content":"# Hello"},"output":{"project":"demo1","path":"docs/readme.md"}}],"notes":["Pode sobrepor se já existir; o flow do chat deve pedir confirmação"],"common_errors":["invalid path"]}},{"id":"edit_file","label":"Editar ficheiro","description":"Escreve novo conteúdo num ficheiro do projeto.","category":"filesystem","version":"1.0","risk":"medium","requires_confirmation":true,"input_schema":{"type":"object","properties":{"project":{"type":"string"},"path":{"type":"string"},"content":{"type":"string"},"mode":{"type":"string","enum":["replace","overwrite"],"default":"replace"}},"required":["path","content"]},"output_schema":{"type":"object","properties":{"project":{"type":"string"},"path":{"type":"string"}},"required":["project","path"]},"help":{"purpose":"Alterar o conteúdo de um ficheiro existente ou criar se a política permitir.","when_to_use":["Atualizar docs","Alterar código/configuração"],"when_not_to_use":["Quando queres só ler ou diff sem gravar"],"requires":["path seguro","content"],"optional":["project","mode"],"effects":["Altera conteúdo do ficheiro"],"output_explained":{"path":"Ficheiro alterado"},"examples":[{"input":{"project":"demo1","path":"ola.txt","content":"novo texto"},"output":{"project":"demo1","path":"ola.txt"}}],"notes":["O fluxo superior deve mostrar diff antes de confirmar"],"common_errors":["invalid path"]}},{"id":"copy_path","label":"Copiar caminho","description":"Copia um ficheiro para outro caminho no mesmo projeto.","category":"filesystem","version":"1.0","risk":"high","requires_confirmation":true,"input_schema":{"type":"object","properties":{"project":{"type":"string"},"source":{"type":"string"},"target":{"type":"string"},"overwrite":{"type":"boolean","default":false}},"required":["source","target"]},"output_schema":{"type":"object","properties":{"project":{"type":"string"},"source":{"type":"string"},"target":{"type":"string"}},"required":["project","source","target"]},"help":{"purpose":"Duplicar um ficheiro dentro do projeto.","when_to_use":["Criar backup local","Gerar variante"],"when_not_to_use":["Mover em vez de copiar"],"requires":["source existente","target seguro"],"optional":["project","overwrite"],"effects":["Cria target"],"output_explained":{"source":"Origem","target":"Destino"},"examples":[{"input":{"project":"demo1","source":"a.txt","target":"backup/a.txt"},"output":{"project":"demo1","source":"a.txt","target":"backup/a.txt"}}],"notes":["Atualmente implementa cópia de ficheiros, não de diretórios"],"common_errors":["file not found","invalid target","dir copy not implemented"]}},{"id":"move_path","label":"Mover caminho","description":"Move/renomeia um caminho dentro do projeto.","category":"filesystem","version":"1.0","risk":"high","requires_confirmation":true,"input_schema":{"type":"object","properties":{"project":{"type":"string"},"source":{"type":"string"},"target":{"type":"string"}},"required":["source","target"]},"output_schema":{"type":"object","properties":{"project":{"type":"string"},"source":{"type":"string"},"target":{"type":"string"}},"required":["project","source","target"]},"help":{"purpose":"Mover ou renomear ficheiros dentro do projeto.","when_to_use":["Reorganizar estrutura","Renomear ficheiros"],"when_not_to_use":["Copiar mantendo original"],"requires":["source existente","target seguro"],"optional":["project"],"effects":["Remove origem e cria destino"],"output_explained":{"source":"Origem","target":"Destino"},"examples":[{"input":{"project":"demo1","source":"a.txt","target":"moved/a.txt"},"output":{"project":"demo1","source":"a.txt","target":"moved/a.txt"}}],"notes":["Opera apenas dentro do mesmo projeto"],"common_errors":["invalid target","source not found"]}},{"id":"delete_path","label":"Apagar caminho","description":"Apaga um ficheiro ou pasta vazia dentro do projeto.","category":"filesystem","version":"1.0","risk":"high","requires_confirmation":true,"input_schema":{"type":"object","properties":{"project":{"type":"string"},"path":{"type":"string"},"recursive":{"type":"boolean","default":false}},"required":["path"]},"output_schema":{"type":"object","properties":{"project":{"type":"string"},"path":{"type":"string"}},"required":["project","path"]},"help":{"purpose":"Remover conteúdo do projeto.","when_to_use":["Limpeza controlada"],"when_not_to_use":["Quando queres preservar backup"],"requires":["path seguro"],"optional":["project","recursive"],"effects":["Apaga ficheiro ou pasta vazia"],"output_explained":{"path":"Caminho apagado"},"examples":[{"input":{"project":"demo1","path":"tmp.txt"},"output":{"project":"demo1","path":"tmp.txt"}}],"notes":["Implementação atual usa unlink/rmdir simples"],"common_errors":["invalid path","directory not empty"]}},{"id":"preload_tool_schemas","label":"Preload tools","description":"Carrega schemas de tools por categoria para memória de sessão.","category":"system","version":"1.0","risk":"low","requires_confirmation":false,"input_schema":{"type":"object","properties":{"categories":{"type":"array","items":{"type":"string"}}},"required":[]},"output_schema":{"type":"object","properties":{"loaded":{"type":"array","items":{"type":"string"}},"categories":{"type":"array","items":{"type":"string"}}},"required":["loaded","categories"]},"help":{"purpose":"Pré-carregar tools para decisões rápidas sem tentativa.","when_to_use":["Início de sessão","Modo filesystem","Modo admin"],"when_not_to_use":["Quando queres todas as tools disponíveis"],"requires":[],"optional":["categories"],"effects":["Guarda preloaded_tools em ui_state"],"output_explained":{"loaded":"Lista de tools carregadas"},"examples":[{"input":{"categories":["filesystem"]},"output":{"loaded":["read_file","copy_path"],"categories":["filesystem"]}}],"notes":["Afeta comportamento do selector de tools"],"common_errors":[]}},{"id":"search_text","label":"Procurar texto","description":"Procura um padrão textual em ficheiros do projeto.","category":"analysis","version":"1.0","risk":"low","requires_confirmation":false,"input_schema":{"type":"object","properties":{"project":{"type":"string"},"pattern":{"type":"string"},"case_sensitive":{"type":"boolean","default":false}},"required":["pattern"]},"output_schema":{"type":"object","properties":{"project":{"type":"string"},"hits":{"type":"array","items":{"type":"string"}}},"required":["project","hits"]},"help":{"purpose":"Descobrir onde um texto aparece no projeto.","when_to_use":["Análise","Refactor","Descoberta"],"when_not_to_use":["Listar ficheiros sem filtro"],"requires":["pattern"],"optional":["project","case_sensitive"],"effects":["Sem efeitos laterais"],"output_explained":{"hits":"Lista de ficheiros com ocorrência"},"examples":[{"input":{"project":"regras","pattern":"portátil"},"output":{"project":"regras","hits":["regras.md"]}}],"notes":["Atualmente pesquisa por substring em texto"],"common_errors":[]}}]