Skip to content

Claude/restructure cpp folders 0 n nu s#38

Merged
drzo merged 2 commits intomainfrom
claude/restructure-cpp-folders-0NNuS
Jan 21, 2026
Merged

Claude/restructure cpp folders 0 n nu s#38
drzo merged 2 commits intomainfrom
claude/restructure-cpp-folders-0NNuS

Conversation

@drzo
Copy link

@drzo drzo commented Jan 21, 2026

This pull request restructures the C++ build configuration for ElizaOS, aligning it more closely with the TypeScript packages layout and improving modularity. The main CMakeLists.txt is rewritten to organize modules by theme (core, infrastructure, applications, plugins, starters, integrations, and generated modules), and the old core library definition is removed from cpp/core/CMakeLists.txt. This sets up a more scalable and maintainable build system.

Build system reorganization:

  • The top-level CMakeLists.txt is rewritten to mirror the TypeScript package structure, grouping modules into logical categories (core, infrastructure, applications, plugins, starters, integrations, and generated modules). This improves clarity and maintainability of the build configuration.
  • The old core library definition is removed from cpp/core/CMakeLists.txt, as core modules are now added individually in the main build configuration.

Generated modules update:

  • The generated modules are now included under a new generated/ directory, aligning with the new structure and naming conventions.

Testing improvements:

  • Testing is now explicitly enabled in the top-level CMakeLists.txt, and the tests directory is added as a subdirectory, ensuring tests are built and run as part of the build process.

Reorganized the flat C++ module structure into a hierarchical layout
that mirrors the TypeScript eliza/packages/ structure:

- packages/core/: Core framework modules (core, agentloop, agentmemory, etc.)
- packages/infrastructure/: Support services (agentcomms, agentlogger, agentshell, agentbrowser)
- packages/applications/: Main app logic (eliza, characters, knowledge, goal_manager)
- packages/plugins/: Plugin modules (eliza_plugin_starter, plugin_specification)
- packages/starters/: Starter templates (eliza_starter, eliza_nextjs_starter)
- packages/integration/: Complex integrations (auto_fun, autonomous_starter, SWEagent)
- generated/: All generated_* transpiled modules + loose transpiled files
- external/: Utility and external modules

Updated CMakeLists.txt to reflect the new structure.
Moved transpiled files from generated/transpiled/ to their corresponding
TypeScript package locations:

packages/core/core/src/:
- action.cpp/hpp, actions.cpp/hpp - Core action system
- database.cpp/hpp - Database abstraction
- memory.cpp/hpp - Memory management
- runtime.cpp/hpp - Runtime engine

packages/applications/characters/src/:
- character.cpp/hpp - Character base types
- character_evolution_evaluator.cpp/hpp - Character evolution
- character_updater.cpp/hpp - Character updates

packages/applications/knowledge/src/:
- knowledge.cpp/hpp - Knowledge base
- knowledge_helpers.cpp/hpp - Knowledge utilities

packages/applications/eliza/src/:
- eliza.hpp, eliza_paths.cpp/hpp - Eliza paths and types

packages/infrastructure/agentlogger/src/:
- logger.cpp/hpp - Logging implementation

packages/plugins/eliza_plugin_starter/src/:
- plugin.cpp/hpp - Plugin base interface
- pluginConfigurationEvaluator.cpp/hpp - Config evaluation
- pluginKnowledgeProvider.cpp/hpp - Knowledge provider
- pluginStateProvider.cpp/hpp - State provider

Updated CMakeLists.txt files to include new source files.
@drzo drzo self-assigned this Jan 21, 2026
@drzo drzo merged commit c4ad2f6 into main Jan 21, 2026
7 of 32 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants