Files
egutierrez 477bcd00f0 chore: auto-commit (13 archivos)
- CMakeLists.txt
- agent_protocol.cpp
- agent_protocol.h
- app.md
- appicon.ico
- hosts_db.cpp
- hosts_db.h
- http_client.cpp
- http_client.h
- main.cpp
- ...

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 00:31:32 +02:00

3.3 KiB

name, lang, domain, version, description, tags, icon, uses_functions, uses_types, framework, entry_point, dir_path, repo_url, e2e_checks
name lang domain version description tags icon uses_functions uses_types framework entry_point dir_path repo_url e2e_checks
process_explorer cpp tools 0.1.0 Process explorer cross-PC: CPU/RAM/disk/net/GPU + procesos en tiempo real
monitor
dashboard
cross-pc
imgui
phosphor accent
cpu #0d9488
line_plot_cpp_viz
kpi_card_cpp_viz
data_table_cpp_viz
viz_render_cpp_viz
compute_stage_cpp_core
compute_pipeline_cpp_core
compute_column_stats_cpp_core
auto_detect_type_cpp_core
tql_emit_cpp_core
tql_apply_cpp_core
lua_engine_cpp_core
join_tables_cpp_core
imgui main.cpp apps/process_explorer https://gitea.organic-machine.com/dataforge/process_explorer
id cmd timeout_s
build cmake --build cpp/build --target process_explorer -j 300
id cmd timeout_s severity
self_test ./cpp/build/apps/process_explorer/process_explorer --self-test 30 warning

process_explorer

Process explorer cross-PC: CPU/RAM/disk/net/GPU + procesos en tiempo real.

Arquitectura

  • Explorer (esta app): ImGui C++. UI con 5 panels (Overview, Processes, Network, Devices, Services).
  • Agente HTTP por PC (issue 0111): daemon Go ligero instalable en cada PC (Win+Linux) que expone:
    • GET /api/processes — lista de procesos con CPU%/RAM/PID/usuario.
    • GET /api/stats — snapshot global CPU/RAM/Disk/Net/GPU.
    • GET /api/devices — discos, GPUs, USB, sensores.
    • GET /api/services — systemctl (Linux) / sc query (Win).
    • Auth: Authorization: Bearer <token> con token por PC.
  • Local Linux: lectura directa de /proc/* cuando el host es local (sin red).
  • Remote: SIEMPRE via HTTP agent + token.

Panels

  1. Overview (Ctrl+1) — KPIs globales con kpi_card: CPU%, RAM, Disk I/O, Net I/O, GPU. Sparklines historicos via line_plot.
  2. Processes (Ctrl+2) — Tabla TQL (data_table::render) con todos los procesos. Filtros, sort, group-by.
  3. Network (Ctrl+3) — Tabla de sockets/conexiones con PID, local, remote, estado.
  4. Devices (Ctrl+4) — Enumeracion de discos, GPUs, USB, sensores.
  5. Services (Ctrl+5) — systemctl (Linux) + sc query (Win). Diferente de services_monitor (que monitoriza apps DECLARADAS del registry); aqui se ven TODOS.

Persistencia (local_files/)

  • hosts.db — inventario PCs (url, token, os, last_seen).
  • operations.db — entities=hosts, executions=samples (bucle reactivo).
  • process_samples.db — time-series CPU/RAM/IO para graficar ventanas >1h.

Build

cd cpp && cmake --build build --target process_explorer -j

Run

./cpp/build/apps/process_explorer/process_explorer

Notas de implementacion

  • HTTP cliente: hoy stub local en http_client.cpp. Migrar a fn_http::request cuando cierre el issue 0110.
  • Agente Go: issue 0111 (separado).
  • Self-test: --self-test valida que hosts.db + samples.db se crean en local_files/ y que el GL loader carga.

Capability growth log

Una linea por bump SemVer. Bump-type segun .claude/commands/version.md:

  • major: breaking observable (CLI args, schema BBDD propia, formato wire).

  • minor: feature aditiva (nuevo panel, endpoint, opcion).

  • patch: bugfix sin cambio observable.

  • v0.1.0 (2026-05-18) — baseline.