{
  "markdown": "<!-- markdownlint-disable MD033 MD041 -->\n\n# Vectora — Monorepo\n\nMonorepo da Vectora. Cada produto vive em sua própria pasta, com toolchain e\nlockfile independentes. O que conecta tudo é o **GitHub Actions** (um workflow\npor projeto, gated por path) e o **pre-commit** compartilhado na raiz.\n\n## Estrutura\n\n| Pasta                             | Projeto                                                                                                                           | Stack                            | Deploy                                                       |\n| --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | ------------------------------------------------------------ |\n| [`vectora/`](vectora/README.md)   | App Vectora (assistente de IA self-hosted)                                                                                        | Python (uv) + Vite + Electron    | Instaladores nativos (Nuitka + Electron) via canal de update |\n| [`company/`](company/README.md)   | Site institucional                                                                                                                | TanStack Start + Vite (pnpm)     | Vercel → **vectora.company**                                 |\n| [`docs/`](docs/README.md)         | Documentação                                                                                                                      | Hugo                             | Vercel → **docs.vectora.company**                            |\n| [`services/`](services/README.md) | Gateway (OAuth/webhooks pro desktop, ex-relay) + updates (distribuição de releases) — era `relay/` + `update-server/`, unificados | Hono + Cloudflare Workers (pnpm) | Cloudflare (wrangler)                                        |\n\n> O app em si (backend Python, frontend Vite, casca Electron) fica todo dentro\n> de `vectora/` — veja [vectora/README.md](vectora/README.md) para detalhes de\n> arquitetura, build e CLI.\n\n## CI/CD (`.github/workflows/`)\n\n4 workflows reais, cada um **gated por path** (`on.push/pull_request.paths`):\numa mudança só no `vectora/` não dispara o build/deploy de `company`/`docs`/`services`.\n\n| Workflow             | Dispara em                             | Faz                                                                                                                                 |\n| -------------------- | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| `vectora.yml`        | `vectora/**`, tags `v*`                | lint • security • build • testes (unit/integration/e2e) • release nativo (Nuitka + Electron) • publica no canal de update (R2 + KV) |\n| `edge.yml`           | `company/**`, `services/**`, `docs/**` | lint/typecheck/test dos 3 projetos • deploy automático em push em master (Vercel + Cloudflare)                                      |\n| `release-please.yml` | push em master                         | mantém o PR de release acumulado (Conventional Commits) — mesclar publica a tag `vX.Y.Z`                                            |\n| `pr-checks.yml`      | pull requests                          | labels automáticos • valida título em Conventional Commits                                                                          |\n\nNão existe workflow de Docker Build/Push, CodeQL nem triage de issues — a\ndistribuição do app vectora é via instaladores nativos (não imagem Docker).\n\n### Secrets esperados\n\n| Secret                                                                                                                                     | Usado por                                      |\n| ------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------- |\n| `GOOGLE_API_KEY`, `COHERE_API_KEY`, `TAVILY_API_KEY`, `LLM_PROVIDER`, `LOG_LEVEL`                                                          | testes do vectora                              |\n| `WIN_CERTIFICATE_BASE64`, `WIN_CERTIFICATE_PASSWORD`, `APPLE_ID`, `APPLE_APP_SPECIFIC_PASSWORD`, `APPLE_TEAM_ID`, `VECTORA_RELEASES_TOKEN` | assinatura/publicação dos instaladores nativos |\n| `VERCEL_TOKEN`, `VERCEL_ORG_ID`, `VERCEL_PROJECT_ID_COMPANY`, `VERCEL_PROJECT_ID_DOCS`                                                     | deploy Vercel (company + docs)                 |\n| `CLOUDFLARE_API_TOKEN`, `CLOUDFLARE_ACCOUNT_ID`, `R2_ACCESS_KEY_ID`, `R2_SECRET_ACCESS_KEY`                                                | deploy do services + canal de update (R2)      |\n\n## Desenvolvimento\n\nCada projeto é independente — entre na pasta e use o gerenciador dele:\n\n```bash\n# App Vectora (Python + Vite + Electron)\ncd vectora && uv sync && uv run vectora start\n\n# Site institucional\ncd company && pnpm install && pnpm dev\n\n# Docs (Hugo)\ncd docs && hugo server\n\n# Services (gateway + updates)\ncd services && pnpm install && pnpm dev\n```\n\n### Pre-commit (raiz)\n\nO `.pre-commit-config.yaml` na raiz cobre todos os projetos (ruff/ty/bandit no\n`vectora/`, prettier/oxlint/tsc no frontend, actionlint nos workflows):\n\n```bash\npre-commit install\npre-commit run --all-files\n```\n\n## Licença\n\nProprietária. Consulte [LICENSE](./LICENSE).\n",
  "bytes": 5485,
  "sha": "03345787658c7719326f8ca5981180e82ffac5aeaeb2610160ef148dd3ea670c",
  "repo_slug": "brunosrz/vectora",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_brunosrz_vectora_fc07ecfe/readme"
}