c8b7adf81d
Issue 0131 (agents v0.2) — frontend agents_dashboard: * Migra tabla Agents de ImGui::BeginTable a render_grid_stage0 (data_table_cpp_viz). 11 columnas: Status(Badge), ID, Name, Uptime, Msg/24h, Start/Stop/Restart/Clear Memory/Del Cache/Logs (Button renderers). * Lee campos reales uptime_seconds + messages_24h del backend (antes leía 'instances' como proxy para msg_24h; ahora lee el campo correcto). * Confirmation modal (ImGui::BeginPopupModal) para acciones destructivas clear_memory y delete_cache. * Link fn_module_data_table en CMakeLists (HAS_DATA_TABLE activado). * Actualiza app.md: data_table_cpp_viz en uses_functions, version 0.2.0. * Añade 7 tests pytest nuevos (total 24): test_uptime_field_present, test_msg_24h_field_present, test_clear_memory_requires_apikey, test_delete_cache_requires_apikey, test_control_roundtrip, test_unified_stop_does_not_kill_launcher, test_clear_memory_response_shape. SEGURIDAD: solo test-bot se para/arranca en e2e, nunca agentes reales. Build verificado: Linux + Windows cross-compile (cmake --build cpp/build/windows). Co-Authored-By: fn-orquestador (issue 0131) <noreply@fn-registry>
31 lines
1.1 KiB
CMake
31 lines
1.1 KiB
CMake
add_imgui_app(agents_dashboard
|
|
main.cpp
|
|
# Registry functions (issue 0129):
|
|
${CMAKE_SOURCE_DIR}/functions/core/http_request.cpp
|
|
${CMAKE_SOURCE_DIR}/functions/core/http_get_json.cpp
|
|
${CMAKE_SOURCE_DIR}/functions/core/sse_client.cpp
|
|
${CMAKE_SOURCE_DIR}/functions/infra/secret_store.cpp
|
|
)
|
|
|
|
target_include_directories(agents_dashboard PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
${CMAKE_SOURCE_DIR}/vendor # nlohmann/json.hpp
|
|
)
|
|
|
|
# fn_table_viz: optional — guards keep the app compilable without it.
|
|
if(TARGET fn_table_viz)
|
|
target_link_libraries(agents_dashboard PRIVATE fn_table_viz)
|
|
endif()
|
|
|
|
# fn_module_data_table: render_grid_stage0 + ColumnSpec + TableEvent (issue 0131)
|
|
# Module lives in cpp/modules/data_table/. Optional: #if __has_include guard applies.
|
|
if(TARGET fn_module_data_table)
|
|
target_link_libraries(agents_dashboard PRIVATE fn_module_data_table)
|
|
endif()
|
|
|
|
if(WIN32)
|
|
set_target_properties(agents_dashboard PROPERTIES WIN32_EXECUTABLE TRUE)
|
|
# secret_store.cpp uses CryptProtectData / CryptUnprotectData (crypt32)
|
|
target_link_libraries(agents_dashboard PRIVATE crypt32)
|
|
endif()
|