Pular para o conteúdo principal
Versão: 0.1.0-alpha.1

Fluxograma de Precedência de Descoberta

Este diagrama mostra como comandos são descobertos e como conflitos são resolvidos quando o mesmo nome de comando aparece em múltiplos locais.

Fluxo de Descoberta

Diagram: architecture/discovery-flow

Resolução de Conflitos

Quando o mesmo nome de comando existe em múltiplos locais:

Diagram: architecture/discovery-conflict

Regras de Resolução

PrioridadeFonteCaminho de Exemplo
1 (maior)invkfile do diretório atual./invkfile.cue
2Módulos locais./mytools.invkmod/
3Diretório do usuário~/.invowk/cmds/invkfile.cue
4 (menor)Search paths/opt/invowk-modules/

Princípio chave: Mais perto do diretório de trabalho = maior prioridade.

Detalhes da Descoberta de Módulos

Diagram: architecture/discovery-module-structure

Campos Obrigatórios do Módulo

// invkmod.cue
module: "com.example.mymodule" // Convenção de nomenclatura RDNS
version: "1.0.0" // Versão semântica

// Opcional
description: "My useful module"
requires: [
{
git: "https://github.com/org/repo.git"
version: "v1.0.0"
}
]

Resolução de Dependências

Diagram: architecture/discovery-deps

Visibilidade de Dependências Transitivas

DePode AcessarNão Pode Acessar
Módulo Acomandos de A, comandos de Bcomandos de C (transitivo)
Módulo Bcomandos de B, comandos de C-
invkfile RaizPróprios comandos, deps diretasDeps transitivas

Por que esta restrição?

  • Previne acoplamento implícito a dependências transitivas
  • Torna dependências explícitas em cada módulo
  • Permite upgrades de dependências sem quebrar consumidores

Configuração de Search Path

Search paths são configurados em ~/.config/invowk/config.cue:

search_paths: [
"/opt/company-invowk-modules",
"/home/shared/invowk",
]

Ordem de Resolução de Path

Diagram: architecture/discovery-search-paths

Cache de Descoberta

Diagram: architecture/discovery-cache

Problemas Comuns de Descoberta

Problema: Comando Não Encontrado

Diagram: architecture/discovery-not-found

Problema: Versão Errada do Comando

Diagram: architecture/discovery-wrong-version

Comandos de Debug

# Listar todos os comandos descobertos com fontes
invowk cmd --list --verbose

# Mostrar ordem de descoberta e conflitos
invowk internal discovery --debug

# Validar estrutura do módulo
invowk module validate ./mymodule.invkmod

Diagramas Relacionados