ASTOS — Abstract Syntax Tree Observer Service
Mapa vivo do seu código em 3D imersivo para você — e em Markdown compacto para a sua IA. Zero CDN. Puro WebGL Sci-Fi.
O ASTOS escaneia qualquer repositório poliglota (Python, C/C++, Dart, Rust,
JS/TS, Java, Go, C#, Kotlin), mapeia módulos, dependências, símbolos com
linha (funções, classes) e chamadas entre arquivos (Python), e gera três
artefatos em .astos/:
index.html— mapa 3D orbital (Three.js vendorizado, 100% offline) para olhos humanos;map.md— resumo compacto de uma linha por arquivo, desenhado para agentes de IA lerem antes de explorar;graph.json— o grafo completo em dados.
Na primeira execução ele também instala um bloco cirúrgico no AGENTS.md
ensinando a IA a consultar o mapa — sem tocar em nada do conteúdo original
(use --no-agents para pular).
Instalação
pip install astos
Uso
Dentro de qualquer repositório:
# primeira vez: cria .astos/, analisa, gera mapa + bloco AGENTS.md e abre no navegador
astos
# força varredura completa do zero
astos -a
astos --all
# não tocar no AGENTS.md
astos --no-agents
Isso gera .astos/index.html (arquivo único, offline), .astos/map.md e
.astos/graph.json, e abre a interface no navegador padrão. Pressione ESPAÇO
para congelar/descongelar o movimento, ESC para sair do fullscreen.
O que você vê (3D)
- Somente 3D imersivo — esferas de neon, órbita contínua, zoom/pan/orbit.
- Teia de aranha visível de longe — links com feixe luminoso aditivo + opacidade alta.
- Fita RGB animada — fótons coloridos percorrem as arestas do nó selecionado
(toggle global
FLUXO RGBdisponível no HUD). - Card HUD por clique — nome do arquivo/módulo, caminho relativo, importações/dependências diretas e degree centrality.
❄ CONGELAR— para física + órbita + fluxo de uma vez (atalho: espaço).- Tema Sci-Fi/Chronos — HUD cyberpunk dark, neon cyan/magenta, painéis foscos, fonte monospace, scanlines + vinheta.
O que a sua IA ganha (tokens)
Cada astos deixa um AGENTS.md (bloco marcado ASTOS:START/END, idempotente)
com uma instrução simples: antes de explorar o código — e ao se perder no meio
de um debug — leia .astos/map.md. Na prática:
- Orientação barata: o mapa de um repo médio custa poucos milhares de tokens de uma vez, em vez de dezenas de milhares queimados em glob/grep/leituras exploratórias a cada sessão.
- Debug multi-turno: o mapa vira referência estável entre turnos — a IA se re-localiza lendo o mapa em vez de re-explorar arquivos.
- Escopo cirúrgico: hubs (degree alto) e vizinhança direta dizem o que ler e
o que ignorar; símbolos com linha (
helper():L1) apontam o lugar exato. - Fluxo Python:
caller.py --helper()--> callee.pymostra quem chama quem entre arquivos, antes de abrir qualquer código. - Camadas: se existir
graphify-out/graph.json(Graphify), o bloco orienta a preferi-lo em perguntas semânticas e o mapa ASTOS na estrutura — sem briga.
Limites honestos: fora Python o parsing é heurístico (regex, sem dependências);
call edges existem só para Python; o mapa é estático (rode astos -a se
desconfiar que envelheceu).
Como funciona
astos/parser.py— varre**/*.{py,c,h,cpp,dart,rs,js,jsx,ts,tsx,java,go,cs,kt,...}(Python via AST preciso, incluindo call edges conservadoras; demais linguagens via extratores regex sem dependências):import/#include/mod+use/require/using. Extrai defs com linha, resolve dependências locais e calcula o grau de cada módulo.astos/generator.py— injeta o grafo +three.min.js+OrbitControls.js(vendorizados emastos/vendor/) em um HTML único, sem nenhum fetch externo; e gera omap.mdcompacto para agentes.astos/cli.py— gerencia.astos/, cache incremental em.astos/graph.json, bloco cirúrgico noAGENTS.mde abertura automática no navegador.
Estrutura
astos/
__init__.py
cli.py # CLI `astos` / `astos -a` / `--no-agents` (click) + bloco AGENTS.md
parser.py # scan multilinguagem -> {nodes, links, call_edges}
generator.py # HTML 3D Sci-Fi offline (Three.js inline) + map.md p/ IAs
vendor/
three.min.js # r128 UMD (offline)
OrbitControls.js # UMD compatível com r128 (offline)
Licença
MIT — veja LICENSE.
Metadata
Release files for astos 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| astos-0.3.0.tar.gz | 183.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| astos-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 365.4 kB
Release files / astos-0.3.0.tar.gz
| Download URL | astos-0.3.0.tar.gz |
|---|---|
| Size | 183.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ea08995f3692a4d7cddb47c907e444f65f80935044209bedde539215f45c265a
|
|
BLAKE2b-256 checksum How to use checksums |
3124a1c422ad69009d599eb0702a745a6436e431d595a76ffeec580c8d85e005
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.12
|
Release files / astos-0.3.0-py3-none-any.whl
| Download URL | astos-0.3.0-py3-none-any.whl |
|---|---|
| Size | 182.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6330439e8710be9180b9cdb72552ba255e34174be32996ac1f8097a975c157e1
|
|
BLAKE2b-256 checksum How to use checksums |
9b2350f279d274455f30772c6fd67d6441539294bd421779cedb6b1ef540f710
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.12
|