gitextract_9czk0gzq/ ├── .cursor/ │ └── rules/ │ └── create-workflow.mdc ├── .dockerignore ├── .editorconfig ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug-report.md │ │ └── feature-request.md │ ├── dependabot.yml │ ├── quickstarts/ │ │ └── windows/ │ │ └── scripts/ │ │ └── 启动.cmd │ └── workflows/ │ ├── docker-latest.yml │ ├── docker-tag.yml │ ├── pr_review.yml │ ├── project_check.yml │ ├── quickstart-windows.yml │ ├── run-tests.yml │ └── stale.yml ├── .gitignore ├── .pre-commit-config.yaml ├── .pylintrc ├── Dockerfile ├── LICENSE ├── MANIFEST.in ├── README.md ├── alembic.ini ├── config.yaml.example ├── data/ │ ├── .gitkeep │ ├── dispatch_rules/ │ │ └── rules.yaml │ ├── media/ │ │ └── .gitignore │ ├── memory/ │ │ └── .gitignore │ ├── web/ │ │ └── .gitkeep │ └── workflows/ │ ├── .gitkeep │ └── chat/ │ ├── dsr_thinking.yaml │ ├── memory_store.yaml │ ├── normal_multimodal.yaml │ └── talk_break.yaml ├── docker/ │ └── start.sh ├── kirara_ai/ │ ├── __init__.py │ ├── __main__.py │ ├── alembic/ │ │ ├── README │ │ ├── env.py │ │ ├── script.py.mako │ │ └── versions/ │ │ └── 4a364dbb8dab_initial_migration.py │ ├── config/ │ │ ├── __init__.py │ │ ├── config_loader.py │ │ └── global_config.py │ ├── database/ │ │ ├── __init__.py │ │ └── manager.py │ ├── entry.py │ ├── events/ │ │ ├── __init__.py │ │ ├── application.py │ │ ├── event_bus.py │ │ ├── im.py │ │ ├── listen.py │ │ ├── llm.py │ │ ├── plugin.py │ │ ├── tracing/ │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ └── llm.py │ │ └── workflow.py │ ├── im/ │ │ ├── __init__.py │ │ ├── adapter.py │ │ ├── im_registry.py │ │ ├── manager.py │ │ ├── message.py │ │ ├── profile.py │ │ └── sender.py │ ├── internal.py │ ├── ioc/ │ │ ├── __init__.py │ │ ├── container.py │ │ └── inject.py │ ├── llm/ │ │ ├── adapter.py │ │ ├── format/ │ │ │ ├── __init__.py │ │ │ ├── embedding.py │ │ │ ├── message.py │ │ │ ├── request.py │ │ │ ├── rerank.py │ │ │ ├── response.py │ │ │ └── tool.py │ │ ├── llm_manager.py │ │ ├── llm_registry.py │ │ └── model_types.py │ ├── logger.py │ ├── mcp_module/ │ │ ├── __init__.py │ │ ├── manager.py │ │ ├── models.py │ │ └── server.py │ ├── media/ │ │ ├── __init__.py │ │ ├── carrier/ │ │ │ ├── __init__.py │ │ │ ├── provider.py │ │ │ ├── registry.py │ │ │ └── service.py │ │ ├── manager.py │ │ ├── media_object.py │ │ ├── metadata.py │ │ ├── types/ │ │ │ ├── __init__.py │ │ │ └── media_type.py │ │ └── utils/ │ │ ├── __init__.py │ │ └── mime.py │ ├── memory/ │ │ ├── composes/ │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── builtin_composes.py │ │ │ ├── composer_strategy.py │ │ │ ├── decomposer_strategy.py │ │ │ └── xml_helper.py │ │ ├── entry.py │ │ ├── memory_manager.py │ │ ├── persistences/ │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── codecs.py │ │ │ ├── file_persistence.py │ │ │ └── redis_persistence.py │ │ ├── registry.py │ │ └── scopes/ │ │ ├── __init__.py │ │ ├── base.py │ │ └── builtin_scopes.py │ ├── plugin_manager/ │ │ ├── models.py │ │ ├── plugin.py │ │ ├── plugin_event_bus.py │ │ ├── plugin_loader.py │ │ └── utils.py │ ├── plugins/ │ │ ├── .gitkeep │ │ ├── bundled_frpc/ │ │ │ ├── __init__.py │ │ │ ├── frpc_manager.py │ │ │ ├── models.py │ │ │ └── routes.py │ │ ├── im_http_legacy_adapter/ │ │ │ ├── __init__.py │ │ │ ├── adapter.py │ │ │ ├── setup.py │ │ │ └── tests/ │ │ │ └── api_test.py │ │ ├── im_qqbot_adapter/ │ │ │ ├── __init__.py │ │ │ ├── adapter.py │ │ │ ├── setup.py │ │ │ └── utils.py │ │ ├── im_telegram_adapter/ │ │ │ ├── __init__.py │ │ │ ├── adapter.py │ │ │ └── setup.py │ │ ├── im_wecom_adapter/ │ │ │ ├── __init__.py │ │ │ ├── adapter.py │ │ │ ├── delegates.py │ │ │ └── setup.py │ │ └── llm_preset_adapters/ │ │ ├── __init__.py │ │ ├── alibabacloud_adapter.py │ │ ├── claude_adapter.py │ │ ├── deepseek_adapter.py │ │ ├── gemini_adapter.py │ │ ├── minimax_adapter.py │ │ ├── mistral_adapter.py │ │ ├── moonshot_adapter.py │ │ ├── ollama_adapter.py │ │ ├── openai_adapter.py │ │ ├── openrouter_adapter.py │ │ ├── setup.py │ │ ├── siliconflow_adapter.py │ │ ├── tencentcloud_adapter.py │ │ ├── tests/ │ │ │ └── test_utils.py │ │ ├── utils.py │ │ ├── volcengine_adapter.py │ │ └── voyage_adapter.py │ ├── system/ │ │ ├── __init__.py │ │ └── updater.py │ ├── tracing/ │ │ ├── __init__.py │ │ ├── core.py │ │ ├── decorator.py │ │ ├── llm_tracer.py │ │ ├── manager.py │ │ └── models.py │ ├── web/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── api/ │ │ │ ├── block/ │ │ │ │ ├── README.md │ │ │ │ ├── __init__.py │ │ │ │ ├── diagnostics/ │ │ │ │ │ ├── base_diagnostic.py │ │ │ │ │ ├── import_check.py │ │ │ │ │ ├── jedi_syntax_check.py │ │ │ │ │ ├── mandatory_function.py │ │ │ │ │ └── pyflakes_check.py │ │ │ │ ├── models.py │ │ │ │ ├── python_lsp.py │ │ │ │ └── routes.py │ │ │ ├── dispatch/ │ │ │ │ ├── README.md │ │ │ │ ├── __init__.py │ │ │ │ ├── models.py │ │ │ │ └── routes.py │ │ │ ├── im/ │ │ │ │ ├── README.md │ │ │ │ ├── __init__.py │ │ │ │ ├── models.py │ │ │ │ └── routes.py │ │ │ ├── llm/ │ │ │ │ ├── README.md │ │ │ │ ├── __init__.py │ │ │ │ ├── models.py │ │ │ │ └── routes.py │ │ │ ├── mcp/ │ │ │ │ ├── README.md │ │ │ │ ├── __init__.py │ │ │ │ ├── models.py │ │ │ │ └── routes.py │ │ │ ├── media/ │ │ │ │ ├── README.md │ │ │ │ ├── __init__.py │ │ │ │ ├── models.py │ │ │ │ └── routes.py │ │ │ ├── plugin/ │ │ │ │ ├── README.md │ │ │ │ ├── __init__.py │ │ │ │ ├── models.py │ │ │ │ └── routes.py │ │ │ ├── system/ │ │ │ │ ├── README.md │ │ │ │ ├── __init__.py │ │ │ │ ├── models.py │ │ │ │ ├── routes.py │ │ │ │ └── utils.py │ │ │ ├── tracing/ │ │ │ │ ├── __init__.py │ │ │ │ └── routes.py │ │ │ └── workflow/ │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── models.py │ │ │ └── routes.py │ │ ├── app.py │ │ ├── auth/ │ │ │ ├── middleware.py │ │ │ ├── models.py │ │ │ ├── routes.py │ │ │ ├── services.py │ │ │ └── utils.py │ │ └── utils.py │ └── workflow/ │ ├── core/ │ │ ├── __init__.py │ │ ├── block/ │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── input_output.py │ │ │ ├── param.py │ │ │ ├── registry.py │ │ │ ├── schema.py │ │ │ └── type_system.py │ │ ├── dispatch/ │ │ │ ├── __init__.py │ │ │ ├── dispatcher.py │ │ │ ├── exceptions.py │ │ │ ├── models/ │ │ │ │ └── dispatch_rules.py │ │ │ ├── registry.py │ │ │ └── rules/ │ │ │ ├── base.py │ │ │ ├── message_rules.py │ │ │ ├── sender_rules.py │ │ │ └── system_rules.py │ │ ├── execution/ │ │ │ ├── __init__.py │ │ │ ├── exceptions.py │ │ │ └── executor.py │ │ └── workflow/ │ │ ├── __init__.py │ │ ├── base.py │ │ ├── builder.py │ │ └── registry.py │ ├── implementations/ │ │ ├── __init__.py │ │ ├── blocks/ │ │ │ ├── __init__.py │ │ │ ├── game/ │ │ │ │ ├── dice.py │ │ │ │ └── gacha.py │ │ │ ├── im/ │ │ │ │ ├── basic.py │ │ │ │ ├── messages.py │ │ │ │ ├── states.py │ │ │ │ └── user_profile.py │ │ │ ├── llm/ │ │ │ │ ├── basic.py │ │ │ │ ├── chat.py │ │ │ │ └── image.py │ │ │ ├── mcp/ │ │ │ │ ├── __init__.py │ │ │ │ └── tool.py │ │ │ ├── memory/ │ │ │ │ ├── chat_memory.py │ │ │ │ └── clear_memory.py │ │ │ ├── system/ │ │ │ │ ├── basic.py │ │ │ │ └── help.py │ │ │ ├── system_blocks.py │ │ │ └── variables/ │ │ │ └── variable_blocks.py │ │ ├── factories/ │ │ │ ├── __init__.py │ │ │ ├── default_factory.py │ │ │ ├── game_factory.py │ │ │ └── system_factory.py │ │ └── workflows/ │ │ ├── __init__.py │ │ └── system_workflows.py │ └── utils/ │ └── __init__.py ├── pyproject.toml ├── pytest.ini └── tests/ ├── __init__.py ├── llm_adapters/ │ ├── __init__.py │ ├── conftest.py │ ├── mock_app/ │ │ ├── __init__.py │ │ ├── app.py │ │ ├── gemini.py │ │ ├── models/ │ │ │ ├── gemini.py │ │ │ └── openai.py │ │ ├── ollama.py │ │ ├── openai.py │ │ └── voyage.py │ ├── test_gemini_adapter.py │ ├── test_ollama_adapter.py │ ├── test_openai_adapter.py │ └── test_voyage_adapter.py ├── memory/ │ ├── __init__.py │ ├── test_composer_decomposer.py │ ├── test_composer_strategy.py │ ├── test_decomposer_strategy.py │ ├── test_memory_manager.py │ ├── test_persistence.py │ └── test_scope.py ├── resources/ │ └── test_image.txt ├── system_blocks/ │ ├── __init__.py │ ├── game/ │ │ ├── __init__.py │ │ ├── test_dice.py │ │ └── test_gacha.py │ ├── im/ │ │ ├── __init__.py │ │ ├── test_messages.py │ │ └── test_states.py │ ├── llm/ │ │ ├── __init__.py │ │ ├── test_basic.py │ │ ├── test_chat.py │ │ └── test_image.py │ ├── memory/ │ │ ├── __init__.py │ │ ├── test_chat_memory.py │ │ └── test_clear_memory.py │ └── system/ │ ├── __init__.py │ ├── test_basic.py │ └── test_help.py ├── test_config_loader.py ├── test_game_blocks.py ├── test_mcp_server.py ├── test_media.py ├── test_media_element.py ├── test_system_blocks.py ├── test_workflow_builder.py ├── test_workflow_factories.py ├── tracing/ │ ├── __init__.py │ ├── test_base.py │ ├── test_core.py │ ├── test_decorator.py │ ├── test_llm_tracer.py │ ├── test_manager.py │ └── test_models.py ├── utils/ │ ├── auth_test_utils.py │ └── test_block_registry.py ├── web/ │ ├── api/ │ │ ├── im/ │ │ │ └── test_im.py │ │ ├── llm/ │ │ │ └── test_llm.py │ │ ├── media/ │ │ │ └── test_media.py │ │ ├── plugin/ │ │ │ └── test_plugin.py │ │ ├── system/ │ │ │ └── test_system.py │ │ └── workflow/ │ │ └── test_workflow.py │ └── auth/ │ └── test_auth.py └── workflow_executor/ ├── test_block.py ├── test_executor.py ├── test_input_output.py └── test_workflow_basic.py