diff --git a/AGENTS.md b/AGENTS.md index 159b9dc..88956b5 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,12 +1,12 @@ # Repository Guidelines ## Project Structure & Layering -- `main/platform/{include,internal,src}`: hardware/system abstraction only. -- `main/domain/{include,internal,src}`: business-domain services. -- `main/control_plane/{include,internal,src}`: lifecycle, policy, health, retry/backoff orchestration. -- `main/app_composition/{include,internal,src}`: composition boundary; `app_main` only wires modules. +- `components/platform/{include,internal,src}`: hardware/system abstraction only. +- `components/domain/{include,internal,src}`: business-domain services. +- `components/control_plane/{include,internal,src}`: lifecycle, policy, health, retry/backoff orchestration. +- `components/app_composition/{include,internal,src}`: composition boundary; `app_main` only wires modules. - `main/dependency_whitelist.md`: approved exceptions for unavoidable lateral dependencies. -- `main/third_party/`, `main/domain/assets/fonts/`, `tools/`: vendored code, embedded assets, utility scripts. +- `main/third_party/`, `components/domain/assets/fonts/`, `tools/`: vendored code, embedded assets, utility scripts. - `build/`: generated artifacts only (ignored). ## Mandatory Architecture Constraints @@ -31,7 +31,7 @@ source $IDF_PATH/export.sh - `idf.py fullclean && idf.py build`: clear stale artifacts. ## Coding Style & Naming Conventions -- Use 4-space indentation and keep braces/function style consistent with existing `main/*.c`. +- Use 4-space indentation and keep braces/function style consistent with existing `components/*/*.c`. - Prefer `lower_snake_case` for functions and variables; use module-prefixed public APIs. - Use `UPPER_SNAKE_CASE` for macros/constants (`CMD_SEND_DATA`, `WIFI_CONNECTED_BIT`). - Prefix file-local statics with `s_` (for example `s_server`, `s_jobs`) and keep per-file `TAG` logging constants. diff --git a/README.md b/README.md index c9f9060..9110478 100644 --- a/README.md +++ b/README.md @@ -341,8 +341,8 @@ curl -X POST http:///v1/voice/session/stop ## Font Assets Embedded files: -- `main/domain/assets/fonts/cn16_index.bin` -- `main/domain/assets/fonts/cn16_glyphs.bin` +- `components/domain/assets/fonts/cn16_index.bin` +- `components/domain/assets/fonts/cn16_glyphs.bin` Regenerate from your own CJK font: diff --git a/components/app_composition/CMakeLists.txt b/components/app_composition/CMakeLists.txt index a7ff764..88257ec 100644 --- a/components/app_composition/CMakeLists.txt +++ b/components/app_composition/CMakeLists.txt @@ -1,10 +1,10 @@ idf_component_register( SRCS - "../../main/app_composition/src/app_main.c" + "src/app_main.c" INCLUDE_DIRS - "../../main/app_composition/include" + "include" PRIV_INCLUDE_DIRS - "../../main/app_composition/internal" + "internal" REQUIRES control_plane ) diff --git a/main/app_composition/README.md b/components/app_composition/README.md similarity index 100% rename from main/app_composition/README.md rename to components/app_composition/README.md diff --git a/main/app_composition/include/.gitkeep b/components/app_composition/include/.gitkeep similarity index 100% rename from main/app_composition/include/.gitkeep rename to components/app_composition/include/.gitkeep diff --git a/main/app_composition/internal/.gitkeep b/components/app_composition/internal/.gitkeep similarity index 100% rename from main/app_composition/internal/.gitkeep rename to components/app_composition/internal/.gitkeep diff --git a/main/app_composition/src/.gitkeep b/components/app_composition/src/.gitkeep similarity index 100% rename from main/app_composition/src/.gitkeep rename to components/app_composition/src/.gitkeep diff --git a/main/app_composition/src/app_main.c b/components/app_composition/src/app_main.c similarity index 100% rename from main/app_composition/src/app_main.c rename to components/app_composition/src/app_main.c diff --git a/components/control_plane/CMakeLists.txt b/components/control_plane/CMakeLists.txt index dc2003f..5b35a3f 100644 --- a/components/control_plane/CMakeLists.txt +++ b/components/control_plane/CMakeLists.txt @@ -1,18 +1,18 @@ idf_component_register( SRCS - "../../main/control_plane/src/controller_lifecycle.c" - "../../main/control_plane/src/rest_server.c" - "../../main/control_plane/src/rest_server_common.c" - "../../main/control_plane/src/rest_server_ops.c" - "../../main/control_plane/src/rest_server_print.c" - "../../main/control_plane/src/rest_server_print_image.c" - "../../main/control_plane/src/rest_server_print_render.c" - "../../main/control_plane/src/rest_server_jobs.c" - "../../main/control_plane/src/rest_server_voice.c" + "src/controller_lifecycle.c" + "src/rest_server.c" + "src/rest_server_common.c" + "src/rest_server_ops.c" + "src/rest_server_print.c" + "src/rest_server_print_image.c" + "src/rest_server_print_render.c" + "src/rest_server_jobs.c" + "src/rest_server_voice.c" INCLUDE_DIRS - "../../main/control_plane/include" + "include" PRIV_INCLUDE_DIRS - "../../main/control_plane/internal" + "internal" REQUIRES domain esp_http_server diff --git a/main/control_plane/README.md b/components/control_plane/README.md similarity index 100% rename from main/control_plane/README.md rename to components/control_plane/README.md diff --git a/main/control_plane/include/.gitkeep b/components/control_plane/include/.gitkeep similarity index 100% rename from main/control_plane/include/.gitkeep rename to components/control_plane/include/.gitkeep diff --git a/main/control_plane/include/controller_lifecycle.h b/components/control_plane/include/controller_lifecycle.h similarity index 100% rename from main/control_plane/include/controller_lifecycle.h rename to components/control_plane/include/controller_lifecycle.h diff --git a/main/control_plane/include/rest_server.h b/components/control_plane/include/rest_server.h similarity index 100% rename from main/control_plane/include/rest_server.h rename to components/control_plane/include/rest_server.h diff --git a/main/control_plane/internal/.gitkeep b/components/control_plane/internal/.gitkeep similarity index 100% rename from main/control_plane/internal/.gitkeep rename to components/control_plane/internal/.gitkeep diff --git a/main/control_plane/internal/rest_server_internal.h b/components/control_plane/internal/rest_server_internal.h similarity index 100% rename from main/control_plane/internal/rest_server_internal.h rename to components/control_plane/internal/rest_server_internal.h diff --git a/main/control_plane/src/.gitkeep b/components/control_plane/src/.gitkeep similarity index 100% rename from main/control_plane/src/.gitkeep rename to components/control_plane/src/.gitkeep diff --git a/main/control_plane/src/controller_lifecycle.c b/components/control_plane/src/controller_lifecycle.c similarity index 100% rename from main/control_plane/src/controller_lifecycle.c rename to components/control_plane/src/controller_lifecycle.c diff --git a/main/control_plane/src/rest_server.c b/components/control_plane/src/rest_server.c similarity index 100% rename from main/control_plane/src/rest_server.c rename to components/control_plane/src/rest_server.c diff --git a/main/control_plane/src/rest_server_common.c b/components/control_plane/src/rest_server_common.c similarity index 100% rename from main/control_plane/src/rest_server_common.c rename to components/control_plane/src/rest_server_common.c diff --git a/main/control_plane/src/rest_server_jobs.c b/components/control_plane/src/rest_server_jobs.c similarity index 100% rename from main/control_plane/src/rest_server_jobs.c rename to components/control_plane/src/rest_server_jobs.c diff --git a/main/control_plane/src/rest_server_ops.c b/components/control_plane/src/rest_server_ops.c similarity index 100% rename from main/control_plane/src/rest_server_ops.c rename to components/control_plane/src/rest_server_ops.c diff --git a/main/control_plane/src/rest_server_print.c b/components/control_plane/src/rest_server_print.c similarity index 100% rename from main/control_plane/src/rest_server_print.c rename to components/control_plane/src/rest_server_print.c diff --git a/main/control_plane/src/rest_server_print_image.c b/components/control_plane/src/rest_server_print_image.c similarity index 100% rename from main/control_plane/src/rest_server_print_image.c rename to components/control_plane/src/rest_server_print_image.c diff --git a/main/control_plane/src/rest_server_print_render.c b/components/control_plane/src/rest_server_print_render.c similarity index 100% rename from main/control_plane/src/rest_server_print_render.c rename to components/control_plane/src/rest_server_print_render.c diff --git a/main/control_plane/src/rest_server_voice.c b/components/control_plane/src/rest_server_voice.c similarity index 100% rename from main/control_plane/src/rest_server_voice.c rename to components/control_plane/src/rest_server_voice.c diff --git a/components/domain/CMakeLists.txt b/components/domain/CMakeLists.txt index 41077a6..ac266b2 100644 --- a/components/domain/CMakeLists.txt +++ b/components/domain/CMakeLists.txt @@ -1,26 +1,26 @@ idf_component_register( SRCS - "../../main/domain/src/printer_protocol.c" - "../../main/domain/src/printer_protocol_jobs.c" - "../../main/domain/src/printer_protocol_worker.c" - "../../main/domain/src/printer_protocol_commands.c" - "../../main/domain/src/raster_tools.c" - "../../main/domain/src/raster_tools_image_qr.c" - "../../main/domain/src/image_generation.c" - "../../main/domain/src/system_runtime.c" - "../../main/domain/src/voice_interaction.c" - "../../main/domain/src/voice_interaction_common.c" - "../../main/domain/src/voice_interaction_ws.c" - "../../main/domain/src/voice_interaction_ws_protocol.c" - "../../main/domain/src/voice_interaction_ws_audio.c" - "../../main/domain/src/voice_interaction_marker.c" - "../../main/domain/src/voice_interaction_tasks.c" + "src/printer_protocol.c" + "src/printer_protocol_jobs.c" + "src/printer_protocol_worker.c" + "src/printer_protocol_commands.c" + "src/raster_tools.c" + "src/raster_tools_image_qr.c" + "src/image_generation.c" + "src/system_runtime.c" + "src/voice_interaction.c" + "src/voice_interaction_common.c" + "src/voice_interaction_ws.c" + "src/voice_interaction_ws_protocol.c" + "src/voice_interaction_ws_audio.c" + "src/voice_interaction_marker.c" + "src/voice_interaction_tasks.c" "../../main/third_party/qrcodegen.c" INCLUDE_DIRS - "../../main/domain/include" + "include" "../../main/third_party" PRIV_INCLUDE_DIRS - "../../main/domain/internal" + "internal" REQUIRES platform esp_http_client @@ -30,6 +30,6 @@ idf_component_register( mbedtls esp_coex EMBED_FILES - "../../main/domain/assets/fonts/cn16_index.bin" - "../../main/domain/assets/fonts/cn16_glyphs.bin" + "assets/fonts/cn16_index.bin" + "assets/fonts/cn16_glyphs.bin" ) diff --git a/main/domain/README.md b/components/domain/README.md similarity index 100% rename from main/domain/README.md rename to components/domain/README.md diff --git a/main/domain/assets/fonts/cn16_glyphs.bin b/components/domain/assets/fonts/cn16_glyphs.bin similarity index 100% rename from main/domain/assets/fonts/cn16_glyphs.bin rename to components/domain/assets/fonts/cn16_glyphs.bin diff --git a/main/domain/assets/fonts/cn16_index.bin b/components/domain/assets/fonts/cn16_index.bin similarity index 100% rename from main/domain/assets/fonts/cn16_index.bin rename to components/domain/assets/fonts/cn16_index.bin diff --git a/main/domain/include/.gitkeep b/components/domain/include/.gitkeep similarity index 100% rename from main/domain/include/.gitkeep rename to components/domain/include/.gitkeep diff --git a/main/domain/include/image_generation.h b/components/domain/include/image_generation.h similarity index 100% rename from main/domain/include/image_generation.h rename to components/domain/include/image_generation.h diff --git a/main/domain/include/printer_protocol.h b/components/domain/include/printer_protocol.h similarity index 100% rename from main/domain/include/printer_protocol.h rename to components/domain/include/printer_protocol.h diff --git a/main/domain/include/raster_tools.h b/components/domain/include/raster_tools.h similarity index 100% rename from main/domain/include/raster_tools.h rename to components/domain/include/raster_tools.h diff --git a/main/domain/include/runtime_diagnostics.h b/components/domain/include/runtime_diagnostics.h similarity index 100% rename from main/domain/include/runtime_diagnostics.h rename to components/domain/include/runtime_diagnostics.h diff --git a/main/domain/include/runtime_policy.h b/components/domain/include/runtime_policy.h similarity index 100% rename from main/domain/include/runtime_policy.h rename to components/domain/include/runtime_policy.h diff --git a/main/domain/include/system_runtime.h b/components/domain/include/system_runtime.h similarity index 100% rename from main/domain/include/system_runtime.h rename to components/domain/include/system_runtime.h diff --git a/main/domain/include/voice_interaction.h b/components/domain/include/voice_interaction.h similarity index 100% rename from main/domain/include/voice_interaction.h rename to components/domain/include/voice_interaction.h diff --git a/main/domain/internal/.gitkeep b/components/domain/internal/.gitkeep similarity index 100% rename from main/domain/internal/.gitkeep rename to components/domain/internal/.gitkeep diff --git a/main/domain/internal/printer_protocol_internal.h b/components/domain/internal/printer_protocol_internal.h similarity index 100% rename from main/domain/internal/printer_protocol_internal.h rename to components/domain/internal/printer_protocol_internal.h diff --git a/main/domain/internal/voice_interaction_internal.h b/components/domain/internal/voice_interaction_internal.h similarity index 100% rename from main/domain/internal/voice_interaction_internal.h rename to components/domain/internal/voice_interaction_internal.h diff --git a/main/domain/src/.gitkeep b/components/domain/src/.gitkeep similarity index 100% rename from main/domain/src/.gitkeep rename to components/domain/src/.gitkeep diff --git a/main/domain/src/image_generation.c b/components/domain/src/image_generation.c similarity index 100% rename from main/domain/src/image_generation.c rename to components/domain/src/image_generation.c diff --git a/main/domain/src/printer_protocol.c b/components/domain/src/printer_protocol.c similarity index 100% rename from main/domain/src/printer_protocol.c rename to components/domain/src/printer_protocol.c diff --git a/main/domain/src/printer_protocol_commands.c b/components/domain/src/printer_protocol_commands.c similarity index 100% rename from main/domain/src/printer_protocol_commands.c rename to components/domain/src/printer_protocol_commands.c diff --git a/main/domain/src/printer_protocol_jobs.c b/components/domain/src/printer_protocol_jobs.c similarity index 100% rename from main/domain/src/printer_protocol_jobs.c rename to components/domain/src/printer_protocol_jobs.c diff --git a/main/domain/src/printer_protocol_worker.c b/components/domain/src/printer_protocol_worker.c similarity index 100% rename from main/domain/src/printer_protocol_worker.c rename to components/domain/src/printer_protocol_worker.c diff --git a/main/domain/src/raster_tools.c b/components/domain/src/raster_tools.c similarity index 100% rename from main/domain/src/raster_tools.c rename to components/domain/src/raster_tools.c diff --git a/main/domain/src/raster_tools_image_qr.c b/components/domain/src/raster_tools_image_qr.c similarity index 100% rename from main/domain/src/raster_tools_image_qr.c rename to components/domain/src/raster_tools_image_qr.c diff --git a/main/domain/src/system_runtime.c b/components/domain/src/system_runtime.c similarity index 100% rename from main/domain/src/system_runtime.c rename to components/domain/src/system_runtime.c diff --git a/main/domain/src/voice_interaction.c b/components/domain/src/voice_interaction.c similarity index 100% rename from main/domain/src/voice_interaction.c rename to components/domain/src/voice_interaction.c diff --git a/main/domain/src/voice_interaction_common.c b/components/domain/src/voice_interaction_common.c similarity index 100% rename from main/domain/src/voice_interaction_common.c rename to components/domain/src/voice_interaction_common.c diff --git a/main/domain/src/voice_interaction_marker.c b/components/domain/src/voice_interaction_marker.c similarity index 100% rename from main/domain/src/voice_interaction_marker.c rename to components/domain/src/voice_interaction_marker.c diff --git a/main/domain/src/voice_interaction_tasks.c b/components/domain/src/voice_interaction_tasks.c similarity index 100% rename from main/domain/src/voice_interaction_tasks.c rename to components/domain/src/voice_interaction_tasks.c diff --git a/main/domain/src/voice_interaction_ws.c b/components/domain/src/voice_interaction_ws.c similarity index 100% rename from main/domain/src/voice_interaction_ws.c rename to components/domain/src/voice_interaction_ws.c diff --git a/main/domain/src/voice_interaction_ws_audio.c b/components/domain/src/voice_interaction_ws_audio.c similarity index 100% rename from main/domain/src/voice_interaction_ws_audio.c rename to components/domain/src/voice_interaction_ws_audio.c diff --git a/main/domain/src/voice_interaction_ws_protocol.c b/components/domain/src/voice_interaction_ws_protocol.c similarity index 100% rename from main/domain/src/voice_interaction_ws_protocol.c rename to components/domain/src/voice_interaction_ws_protocol.c diff --git a/components/platform/CMakeLists.txt b/components/platform/CMakeLists.txt index cedf89b..27f8c5e 100644 --- a/components/platform/CMakeLists.txt +++ b/components/platform/CMakeLists.txt @@ -1,15 +1,15 @@ idf_component_register( SRCS - "../../main/platform/src/platform_bootstrap.c" - "../../main/platform/src/wifi_manager.c" - "../../main/platform/src/ble_printer_client.c" - "../../main/platform/src/voice_audio.c" - "../../main/platform/src/runtime_policy.c" - "../../main/platform/src/runtime_diagnostics.c" + "src/platform_bootstrap.c" + "src/wifi_manager.c" + "src/ble_printer_client.c" + "src/voice_audio.c" + "src/runtime_policy.c" + "src/runtime_diagnostics.c" INCLUDE_DIRS - "../../main/platform/include" + "include" PRIV_INCLUDE_DIRS - "../../main/platform/internal" + "internal" REQUIRES bt esp_coex diff --git a/main/platform/README.md b/components/platform/README.md similarity index 100% rename from main/platform/README.md rename to components/platform/README.md diff --git a/main/platform/include/.gitkeep b/components/platform/include/.gitkeep similarity index 100% rename from main/platform/include/.gitkeep rename to components/platform/include/.gitkeep diff --git a/main/platform/include/ble_printer_client.h b/components/platform/include/ble_printer_client.h similarity index 100% rename from main/platform/include/ble_printer_client.h rename to components/platform/include/ble_printer_client.h diff --git a/main/platform/include/platform_bootstrap.h b/components/platform/include/platform_bootstrap.h similarity index 100% rename from main/platform/include/platform_bootstrap.h rename to components/platform/include/platform_bootstrap.h diff --git a/main/platform/include/runtime_diagnostics.h b/components/platform/include/runtime_diagnostics.h similarity index 100% rename from main/platform/include/runtime_diagnostics.h rename to components/platform/include/runtime_diagnostics.h diff --git a/main/platform/include/runtime_policy.h b/components/platform/include/runtime_policy.h similarity index 100% rename from main/platform/include/runtime_policy.h rename to components/platform/include/runtime_policy.h diff --git a/main/platform/include/voice_audio.h b/components/platform/include/voice_audio.h similarity index 100% rename from main/platform/include/voice_audio.h rename to components/platform/include/voice_audio.h diff --git a/main/platform/include/wifi_manager.h b/components/platform/include/wifi_manager.h similarity index 100% rename from main/platform/include/wifi_manager.h rename to components/platform/include/wifi_manager.h diff --git a/main/platform/internal/.gitkeep b/components/platform/internal/.gitkeep similarity index 100% rename from main/platform/internal/.gitkeep rename to components/platform/internal/.gitkeep diff --git a/main/platform/src/.gitkeep b/components/platform/src/.gitkeep similarity index 100% rename from main/platform/src/.gitkeep rename to components/platform/src/.gitkeep diff --git a/main/platform/src/ble_printer_client.c b/components/platform/src/ble_printer_client.c similarity index 100% rename from main/platform/src/ble_printer_client.c rename to components/platform/src/ble_printer_client.c diff --git a/main/platform/src/platform_bootstrap.c b/components/platform/src/platform_bootstrap.c similarity index 100% rename from main/platform/src/platform_bootstrap.c rename to components/platform/src/platform_bootstrap.c diff --git a/main/platform/src/runtime_diagnostics.c b/components/platform/src/runtime_diagnostics.c similarity index 100% rename from main/platform/src/runtime_diagnostics.c rename to components/platform/src/runtime_diagnostics.c diff --git a/main/platform/src/runtime_policy.c b/components/platform/src/runtime_policy.c similarity index 100% rename from main/platform/src/runtime_policy.c rename to components/platform/src/runtime_policy.c diff --git a/main/platform/src/voice_audio.c b/components/platform/src/voice_audio.c similarity index 100% rename from main/platform/src/voice_audio.c rename to components/platform/src/voice_audio.c diff --git a/main/platform/src/wifi_manager.c b/components/platform/src/wifi_manager.c similarity index 100% rename from main/platform/src/wifi_manager.c rename to components/platform/src/wifi_manager.c