zrb 1.16.0__tar.gz → 1.16.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {zrb-1.16.0 → zrb-1.16.2}/PKG-INFO +4 -3
- {zrb-1.16.0 → zrb-1.16.2}/pyproject.toml +4 -3
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/llm/chat_session.py +17 -9
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/llm/llm_ask.py +96 -72
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/llm/tool/file.py +2 -2
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/llm/tool/sub_agent.py +1 -1
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/base/execution.py +15 -8
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/base/monitoring.py +12 -7
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/llm/agent.py +27 -5
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/llm/config.py +2 -2
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/llm/tool_wrapper.py +20 -11
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/llm_task.py +7 -4
- {zrb-1.16.0 → zrb-1.16.2}/README.md +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/__main__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/attr/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/attr/type.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/base64.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/git.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/git_subtree.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/group.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/http.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/jwt.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/llm/history.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/llm/input.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/llm/previous-session.js +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/llm/tool/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/llm/tool/api.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/llm/tool/cli.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/llm/tool/code.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/llm/tool/rag.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/llm/tool/web.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/md5.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_input.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_task.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.coveragerc +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.flake8 +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.gitignore +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/README.md +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_task.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_util.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/config.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_task.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_util.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/gateway/view/content/my-module/my-entity.html +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/my_entity_service.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/my_entity_service_factory.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/repository/my_entity_db_repository.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/repository/my_entity_repository.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/repository/my_entity_repository_factory.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/schema/my_entity.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/test/my_module/my_entity/test_create_my_entity.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/test/my_module/my_entity/test_delete_my_entity.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/test/my_module/my_entity/test_read_my_entity.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/test/my_module/my_entity/test_update_my_entity.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/client_method.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/gateway_subroute.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/navigation_config_file.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/format_task.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/group.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/input.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_task.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_util.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/gateway/subroute/my_module.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/alembic.ini +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_api_client.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_client.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_client_factory.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_direct_client.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/README +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/env.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/script.py.mako +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/versions/.gitkeep +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration_metadata.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/route.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/service/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/module_task_definition.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/navigation_config_file.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task_util.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/util.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/venv_task.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/app_factory.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_db_repository.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_service.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/db_engine_factory.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/error.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/logger_factory.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/parser_factory.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/schema.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/app.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/parser.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/user_agent.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/view.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/config.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/main.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/alembic.ini +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_api_client.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client_factory.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_direct_client.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/README +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/env.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/script.py.mako +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/3093c7336477_add_auth_tables.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/8ed025bcc845_create_permissions.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration_metadata.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/route.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service_factory.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_db_repository.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository_factory.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_db_repository.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository_factory.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service_factory.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_db_repository.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository_factory.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service_factory.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/alembic.ini +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/config/navigation.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/README +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/env.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/script.py.mako +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/versions/.gitkeep +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration_metadata.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/route.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/schema/navigation.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/subroute/auth.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/auth.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/view.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/permission.html +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/role.html +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/user.html +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/error.html +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/homepage.html +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/login.html +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/logout.html +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/common/util.js +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/style.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/util.js +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/pico-style.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/script.js +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/style.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-192x192.png +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-512x512.png +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/favicon-32x32.png +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.amber.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.blue.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.cyan.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.fuchsia.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.green.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.grey.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.indigo.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.jade.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.lime.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.orange.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.pink.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.pumpkin.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.purple.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.red.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.sand.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.slate.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.violet.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.yellow.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.zinc.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/template/default.html +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/requirements.txt +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/permission.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/role.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/user.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/template.env +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/_util/access_token.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_create_permission.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_delete_permission.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_read_permission.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_update_permission.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/test_user_session.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_health_and_readiness.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_homepage.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_not_found_error.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test.sh +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/add/fastapp/fastapp_util.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/create/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/create/project-template/README.md +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/create/project-template/zrb_init.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/project/create/project_task.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/python.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/random.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/setup/asdf/asdf.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/setup/asdf/asdf_helper.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/setup/common_input.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/setup/latex/ubuntu.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/setup/tmux/tmux.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/setup/tmux/tmux_config.sh +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/setup/tmux/tmux_helper.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/setup/ubuntu.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/setup/zsh/zsh.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/setup/zsh/zsh_config.sh +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/setup/zsh/zsh_helper.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/shell/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/shell/autocomplete/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/shell/autocomplete/bash.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/shell/autocomplete/subcmd.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/shell/autocomplete/zsh.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/todo.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/builtin/uuid.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/callback/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/callback/any_callback.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/callback/callback.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/cmd/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/cmd/cmd_result.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/cmd/cmd_val.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/config/config.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/config/default_prompt/file_extractor_system_prompt.md +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/config/default_prompt/interactive_system_prompt.md +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/config/default_prompt/persona.md +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/config/default_prompt/repo_extractor_system_prompt.md +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/config/default_prompt/repo_summarizer_system_prompt.md +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/config/default_prompt/summarization_prompt.md +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/config/default_prompt/system_prompt.md +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/config/llm_config.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/config/llm_context/config.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/config/llm_context/config_parser.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/config/llm_rate_limitter.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/config/web_auth_config.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/content_transformer/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/content_transformer/any_content_transformer.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/content_transformer/content_transformer.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/context/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/context/any_context.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/context/any_shared_context.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/context/context.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/context/shared_context.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/dot_dict/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/dot_dict/dot_dict.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/env/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/env/any_env.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/env/env.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/env/env_file.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/env/env_map.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/group/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/group/any_group.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/group/group.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/input/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/input/any_input.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/input/base_input.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/input/bool_input.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/input/float_input.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/input/int_input.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/input/option_input.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/input/password_input.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/input/str_input.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/input/text_input.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/cli.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/common_util.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_app.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/docs_route.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/error_page/serve_default_404.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/error_page/show_error_page.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/error_page/view.html +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/home_page/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/home_page/home_page_route.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/home_page/view.html +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/login_api_route.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/login_page/login_page_route.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/login_page/view.html +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/logout_api_route.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/logout_page/logout_page_route.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/logout_page/view.html +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/node_page/group/show_group_page.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/node_page/group/view.html +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/node_page/node_page_route.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/node_page/task/partial/input.html +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/node_page/task/show_task_page.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/node_page/task/view.html +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/refresh_token_api_route.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/global_template.html +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/refresh-token.template.js +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/common.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/common.js +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/favicon-32x32.png +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/login/event.js +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/logout/event.js +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/pico-css/pico.amber.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/pico-css/pico.blue.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/pico-css/pico.cyan.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/pico-css/pico.fuchsia.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/pico-css/pico.green.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/pico-css/pico.grey.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/pico-css/pico.indigo.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/pico-css/pico.jade.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/pico-css/pico.lime.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/pico-css/pico.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/pico-css/pico.orange.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/pico-css/pico.pink.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/pico-css/pico.pumpkin.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/pico-css/pico.purple.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/pico-css/pico.red.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/pico-css/pico.sand.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/pico-css/pico.slate.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/pico-css/pico.violet.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/pico-css/pico.yellow.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/pico-css/pico.zinc.min.css +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/session/common-util.js +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/session/current-session.js +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/session/event.js +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/resources/session/past-session.js +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/static/static_route.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/task_input_api_route.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_route/task_session_api_route.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_schema/session.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_schema/token.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_schema/user.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_util/cookie.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_util/html.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_util/token.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/runner/web_util/user.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/session/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/session/any_session.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/session/session.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/session_state_log/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/session_state_log/session_state_log.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/session_state_logger/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/session_state_logger/any_session_state_logger.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/session_state_logger/file_session_state_logger.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/session_state_logger/session_state_logger_factory.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/any_task.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/base/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/base/context.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/base/lifecycle.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/base/operators.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/base_task.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/base_trigger.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/cmd_task.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/http_check.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/llm/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/llm/conversation_history.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/llm/conversation_history_model.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/llm/default_workflow/coding.md +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/llm/default_workflow/copywriting.md +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/llm/default_workflow/researching.md +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/llm/error.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/llm/history_summarization.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/llm/history_summarization_tool.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/llm/print_node.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/llm/prompt.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/llm/typing.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/make_task.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/rsync_task.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/scaffolder.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/scheduler.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/task.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task/tcp_check.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task_status/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/task_status/task_status.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/attr.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/callable.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/cli/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/cli/markdown.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/cli/style.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/cli/subcommand.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/cli/text.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/cmd/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/cmd/command.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/cmd/remote.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/codemod/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/codemod/modification_mode.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/codemod/modify_class.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/codemod/modify_class_parent.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/codemod/modify_class_property.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/codemod/modify_dict.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/codemod/modify_function.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/codemod/modify_function_call.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/codemod/modify_method.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/codemod/modify_module.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/cron.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/file.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/git.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/git_diff_model.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/git_subtree.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/git_subtree_model.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/group.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/init_path.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/llm/prompt.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/load.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/run.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/string/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/string/conversion.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/string/format.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/string/name.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/todo.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/todo_model.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/util/truncate.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/xcom/__init__.py +0 -0
- {zrb-1.16.0 → zrb-1.16.2}/src/zrb/xcom/xcom.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: zrb
|
3
|
-
Version: 1.16.
|
3
|
+
Version: 1.16.2
|
4
4
|
Summary: Your Automation Powerhouse
|
5
5
|
License: AGPL-3.0-or-later
|
6
6
|
Keywords: Automation,Task Runner,Code Generator,Monorepo,Low Code
|
@@ -24,12 +24,12 @@ Requires-Dist: isort (>=6.0.1,<7.0.0)
|
|
24
24
|
Requires-Dist: libcst (>=1.8.2,<2.0.0)
|
25
25
|
Requires-Dist: markdownify (>=1.2.0,<2.0.0)
|
26
26
|
Requires-Dist: mcp (>1.12.3)
|
27
|
-
Requires-Dist: openai (>=1.
|
27
|
+
Requires-Dist: openai (>=1.107.2)
|
28
28
|
Requires-Dist: pdfplumber (>=0.11.7,<0.12.0)
|
29
29
|
Requires-Dist: playwright (>=1.54.0,<2.0.0) ; extra == "playwright" or extra == "all"
|
30
30
|
Requires-Dist: prompt-toolkit (>=3)
|
31
31
|
Requires-Dist: psutil (>=7.0.0,<8.0.0)
|
32
|
-
Requires-Dist: pydantic-ai-slim[anthropic,bedrock,cohere,google,groq,huggingface,mistral,openai,vertexai] (>=1.0.
|
32
|
+
Requires-Dist: pydantic-ai-slim[anthropic,bedrock,cohere,google,groq,huggingface,mistral,openai,vertexai] (>=1.0.10,<1.1.0)
|
33
33
|
Requires-Dist: pyjwt (>=2.10.1,<3.0.0)
|
34
34
|
Requires-Dist: python-dotenv (>=1.1.1,<2.0.0)
|
35
35
|
Requires-Dist: python-jose[cryptography] (>=3.5.0,<4.0.0)
|
@@ -37,6 +37,7 @@ Requires-Dist: requests (>=2.32.2,<3.0.0)
|
|
37
37
|
Requires-Dist: rich (>=13)
|
38
38
|
Requires-Dist: tiktoken (>=0.8.0,<0.9.0)
|
39
39
|
Requires-Dist: ulid-py (>=1.1.0,<2.0.0)
|
40
|
+
Requires-Dist: xmltodict (>=1.0.2,<2.0.0)
|
40
41
|
Project-URL: Documentation, https://github.com/state-alchemists/zrb
|
41
42
|
Project-URL: Homepage, https://github.com/state-alchemists/zrb
|
42
43
|
Project-URL: Repository, https://github.com/state-alchemists/zrb
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "zrb"
|
3
|
-
version = "1.16.
|
3
|
+
version = "1.16.2"
|
4
4
|
description = "Your Automation Powerhouse"
|
5
5
|
authors = ["Go Frendi Gunawan <gofrendiasgard@gmail.com>"]
|
6
6
|
license = "AGPL-3.0-or-later"
|
@@ -50,10 +50,10 @@ ulid-py = "^1.1.0"
|
|
50
50
|
psutil = "^7.0.0"
|
51
51
|
|
52
52
|
# NOTE: Look at https://github.com/pydantic/pydantic-ai/blob/main/pydantic_ai_slim/pyproject.toml
|
53
|
-
pydantic-ai-slim = {extras = ["openai", "cohere", "vertexai", "google", "anthropic", "groq", "mistral", "bedrock", "huggingface"], version = "~1.0.
|
53
|
+
pydantic-ai-slim = {extras = ["openai", "cohere", "vertexai", "google", "anthropic", "groq", "mistral", "bedrock", "huggingface"], version = "~1.0.10"}
|
54
54
|
|
55
55
|
# NOTE: Make sure the following dependencies are not conflicting with pydantic-ai-slim
|
56
|
-
openai = ">=1.
|
56
|
+
openai = ">=1.107.2"
|
57
57
|
prompt-toolkit = ">=3"
|
58
58
|
rich = ">=13"
|
59
59
|
mcp = ">1.12.3"
|
@@ -64,6 +64,7 @@ playwright = {version = "^1.54.0", optional = true}
|
|
64
64
|
chromadb = {version = "^0.6.3", optional = true}
|
65
65
|
markdownify = "^1.2.0"
|
66
66
|
pyjwt = "^2.10.1"
|
67
|
+
xmltodict = "^1.0.2"
|
67
68
|
|
68
69
|
[tool.poetry.extras]
|
69
70
|
# poetry install -E rag
|
@@ -31,15 +31,20 @@ async def read_user_prompt(ctx: AnyContext) -> str:
|
|
31
31
|
final_result: str = ""
|
32
32
|
while True:
|
33
33
|
await asyncio.sleep(0.01)
|
34
|
-
previous_session_name
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
if
|
39
|
-
ctx.
|
40
|
-
|
41
|
-
|
42
|
-
|
34
|
+
previous_session_name: str | None = (
|
35
|
+
ctx.input.previous_session if is_first_time else None
|
36
|
+
)
|
37
|
+
start_new: bool = ctx.input.start_new if is_first_time else False
|
38
|
+
if is_first_time and ctx.input.message.strip() != "":
|
39
|
+
user_input = ctx.input.message
|
40
|
+
else:
|
41
|
+
# Get user input based on mode
|
42
|
+
if not multiline_mode:
|
43
|
+
ctx.print("💬 >>", plain=True)
|
44
|
+
user_input = await _read_next_line(reader, ctx)
|
45
|
+
if not multiline_mode:
|
46
|
+
ctx.print("", plain=True)
|
47
|
+
is_first_time = False
|
43
48
|
# Handle user input
|
44
49
|
if user_input.strip().lower() in ("/bye", "/quit", "/q", "/exit"):
|
45
50
|
user_prompt = "\n".join(user_inputs)
|
@@ -50,6 +55,7 @@ async def read_user_prompt(ctx: AnyContext) -> str:
|
|
50
55
|
modes=current_modes,
|
51
56
|
yolo_mode=current_yolo_mode,
|
52
57
|
previous_session_name=previous_session_name,
|
58
|
+
start_new=start_new,
|
53
59
|
)
|
54
60
|
if result is not None:
|
55
61
|
final_result = result
|
@@ -67,6 +73,7 @@ async def read_user_prompt(ctx: AnyContext) -> str:
|
|
67
73
|
modes=current_modes,
|
68
74
|
yolo_mode=current_yolo_mode,
|
69
75
|
previous_session_name=previous_session_name,
|
76
|
+
start_new=start_new,
|
70
77
|
)
|
71
78
|
if result is not None:
|
72
79
|
final_result = result
|
@@ -101,6 +108,7 @@ async def read_user_prompt(ctx: AnyContext) -> str:
|
|
101
108
|
modes=current_modes,
|
102
109
|
yolo_mode=current_yolo_mode,
|
103
110
|
previous_session_name=previous_session_name,
|
111
|
+
start_new=start_new,
|
104
112
|
)
|
105
113
|
if result is not None:
|
106
114
|
final_result = result
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import os
|
1
2
|
from collections.abc import Callable
|
2
3
|
from typing import TYPE_CHECKING
|
3
4
|
|
@@ -28,6 +29,7 @@ from zrb.callback.callback import Callback
|
|
28
29
|
from zrb.config.config import CFG
|
29
30
|
from zrb.config.llm_config import llm_config
|
30
31
|
from zrb.context.any_context import AnyContext
|
32
|
+
from zrb.input.any_input import AnyInput
|
31
33
|
from zrb.input.bool_input import BoolInput
|
32
34
|
from zrb.input.str_input import StrInput
|
33
35
|
from zrb.input.text_input import TextInput
|
@@ -37,10 +39,23 @@ from zrb.util.string.conversion import to_boolean
|
|
37
39
|
|
38
40
|
if TYPE_CHECKING:
|
39
41
|
from pydantic_ai import Tool
|
42
|
+
from pydantic_ai.toolsets import AbstractToolset
|
40
43
|
|
41
44
|
ToolOrCallable = Tool | Callable
|
42
45
|
|
43
46
|
|
47
|
+
def _get_toolset(ctx: AnyContext) -> list["AbstractToolset[None] | str"]:
|
48
|
+
cwd = os.getcwd()
|
49
|
+
toolsets = []
|
50
|
+
for config_path in [
|
51
|
+
os.path.join(cwd, "mcp_config.json"),
|
52
|
+
os.path.join(cwd, "mcp-config.json"),
|
53
|
+
]:
|
54
|
+
if os.path.isfile(config_path):
|
55
|
+
toolsets.append(config_path)
|
56
|
+
return toolsets
|
57
|
+
|
58
|
+
|
44
59
|
def _get_tool(ctx: AnyContext) -> list["ToolOrCallable"]:
|
45
60
|
tools = []
|
46
61
|
if CFG.LLM_ALLOW_ANALYZE_REPO:
|
@@ -91,81 +106,89 @@ def _render_yolo_mode_input(ctx: AnyContext) -> list[str] | bool | None:
|
|
91
106
|
return elements
|
92
107
|
|
93
108
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
109
|
+
def _get_inputs(require_message: bool = True) -> list[AnyInput]:
|
110
|
+
return [
|
111
|
+
StrInput(
|
112
|
+
"model",
|
113
|
+
description="LLM Model",
|
114
|
+
prompt="LLM Model",
|
115
|
+
default="",
|
116
|
+
allow_positional_parsing=False,
|
117
|
+
always_prompt=False,
|
118
|
+
allow_empty=True,
|
119
|
+
),
|
120
|
+
StrInput(
|
121
|
+
"base-url",
|
122
|
+
description="LLM API Base URL",
|
123
|
+
prompt="LLM API Base URL",
|
124
|
+
default="",
|
125
|
+
allow_positional_parsing=False,
|
126
|
+
always_prompt=False,
|
127
|
+
allow_empty=True,
|
128
|
+
),
|
129
|
+
StrInput(
|
130
|
+
"api-key",
|
131
|
+
description="LLM API Key",
|
132
|
+
prompt="LLM API Key",
|
133
|
+
default="",
|
134
|
+
allow_positional_parsing=False,
|
135
|
+
always_prompt=False,
|
136
|
+
allow_empty=True,
|
137
|
+
),
|
138
|
+
TextInput(
|
139
|
+
"system-prompt",
|
140
|
+
description="System prompt",
|
141
|
+
prompt="System prompt",
|
142
|
+
default="",
|
143
|
+
allow_positional_parsing=False,
|
144
|
+
always_prompt=False,
|
145
|
+
),
|
146
|
+
TextInput(
|
147
|
+
"modes",
|
148
|
+
description="Modes",
|
149
|
+
prompt="Modes",
|
150
|
+
default=lambda ctx: ",".join(llm_config.default_modes),
|
151
|
+
allow_positional_parsing=False,
|
152
|
+
always_prompt=False,
|
153
|
+
),
|
154
|
+
BoolInput(
|
155
|
+
"start-new",
|
156
|
+
description="Start new session (LLM Agent will forget past conversation)",
|
157
|
+
prompt="Start new session (LLM Agent will forget past conversation)",
|
158
|
+
default=False,
|
159
|
+
allow_positional_parsing=False,
|
160
|
+
always_prompt=False,
|
161
|
+
),
|
162
|
+
StrInput(
|
163
|
+
"yolo",
|
164
|
+
description="YOLO mode (LLM Agent will start in YOLO Mode)",
|
165
|
+
prompt="YOLO mode (LLM Agent will start in YOLO Mode)",
|
166
|
+
default=_get_default_yolo_mode,
|
167
|
+
allow_positional_parsing=False,
|
168
|
+
always_prompt=False,
|
169
|
+
),
|
170
|
+
TextInput(
|
171
|
+
"message",
|
172
|
+
description="User message",
|
173
|
+
prompt="Your message",
|
174
|
+
always_prompt=require_message,
|
175
|
+
allow_empty=not require_message,
|
176
|
+
),
|
177
|
+
PreviousSessionInput(
|
178
|
+
"previous-session",
|
179
|
+
description="Previous conversation session",
|
180
|
+
prompt="Previous conversation session (can be empty)",
|
181
|
+
allow_positional_parsing=False,
|
182
|
+
allow_empty=True,
|
183
|
+
always_prompt=False,
|
184
|
+
),
|
185
|
+
]
|
186
|
+
|
164
187
|
|
165
188
|
llm_ask: LLMTask = llm_group.add_task(
|
166
189
|
LLMTask(
|
167
190
|
name="llm-ask",
|
168
|
-
input=
|
191
|
+
input=_get_inputs(True),
|
169
192
|
description="❓ Ask LLM",
|
170
193
|
model=lambda ctx: None if ctx.input.model.strip() == "" else ctx.input.model,
|
171
194
|
model_base_url=lambda ctx: (
|
@@ -184,6 +207,7 @@ llm_ask: LLMTask = llm_group.add_task(
|
|
184
207
|
),
|
185
208
|
message="{ctx.input.message}",
|
186
209
|
tools=_get_tool,
|
210
|
+
toolsets=_get_toolset,
|
187
211
|
yolo_mode=_render_yolo_mode_input,
|
188
212
|
retries=0,
|
189
213
|
),
|
@@ -193,7 +217,7 @@ llm_ask: LLMTask = llm_group.add_task(
|
|
193
217
|
llm_group.add_task(
|
194
218
|
BaseTrigger(
|
195
219
|
name="llm-chat",
|
196
|
-
input=
|
220
|
+
input=_get_inputs(False),
|
197
221
|
description="💬 Chat with LLM",
|
198
222
|
queue_name="ask_trigger",
|
199
223
|
action=read_user_prompt,
|
@@ -304,7 +304,7 @@ def write_to_file(
|
|
304
304
|
Writes content to a file, completely overwriting it if it exists or
|
305
305
|
creating it if it doesn't.
|
306
306
|
|
307
|
-
Use this tool to create new files or to
|
307
|
+
Use this tool to create new files or to overwrite the entire content of
|
308
308
|
existing files. This is a destructive operation, so be certain of your
|
309
309
|
actions. Always read the file first to understand its contents before
|
310
310
|
overwriting it, unless you are creating a new file.
|
@@ -497,7 +497,7 @@ async def analyze_file(
|
|
497
497
|
ctx: AnyContext, path: str, query: str, token_limit: int | None = None
|
498
498
|
) -> dict[str, Any]:
|
499
499
|
"""
|
500
|
-
Performs a
|
500
|
+
Performs a high level, goal-oriented analysis of a single file using a sub-agent.
|
501
501
|
|
502
502
|
This tool is ideal for complex questions about a single file that go beyond
|
503
503
|
simple reading or searching. It uses a specialized sub-agent to analyze the
|
@@ -24,7 +24,7 @@ def create_sub_agent_tool(
|
|
24
24
|
model: "str | Model | None" = None,
|
25
25
|
model_settings: "ModelSettings | None" = None,
|
26
26
|
tools: "list[ToolOrCallable]" = [],
|
27
|
-
toolsets: list["AbstractToolset[
|
27
|
+
toolsets: list["AbstractToolset[None]"] = [],
|
28
28
|
yolo_mode: bool | list[str] | None = None,
|
29
29
|
log_indent_level: int = 2,
|
30
30
|
) -> Callable[[AnyContext, str], Coroutine[Any, Any, dict[str, Any]]]:
|
@@ -53,7 +53,9 @@ def check_execute_condition(task: "BaseTask", session: AnySession) -> bool:
|
|
53
53
|
Evaluates the task's execute_condition attribute.
|
54
54
|
"""
|
55
55
|
ctx = task.get_ctx(session)
|
56
|
-
execute_condition_attr =
|
56
|
+
execute_condition_attr = (
|
57
|
+
task._execute_condition if task._execute_condition is not None else True
|
58
|
+
)
|
57
59
|
return get_bool_attr(ctx, execute_condition_attr, True, auto_render=True)
|
58
60
|
|
59
61
|
|
@@ -63,8 +65,12 @@ async def execute_action_until_ready(task: "BaseTask", session: AnySession):
|
|
63
65
|
"""
|
64
66
|
ctx = task.get_ctx(session)
|
65
67
|
readiness_checks = task.readiness_checks
|
66
|
-
readiness_check_delay =
|
67
|
-
|
68
|
+
readiness_check_delay = (
|
69
|
+
task._readiness_check_delay if task._readiness_check_delay is not None else 0.5
|
70
|
+
)
|
71
|
+
monitor_readiness = (
|
72
|
+
task._monitor_readiness if task._monitor_readiness is not None else False
|
73
|
+
)
|
68
74
|
|
69
75
|
if not readiness_checks: # Simplified check for empty list
|
70
76
|
ctx.log_info("No readiness checks")
|
@@ -140,8 +146,8 @@ async def execute_action_with_retry(task: "BaseTask", session: AnySession) -> An
|
|
140
146
|
handling success (triggering successors) and failure (triggering fallbacks).
|
141
147
|
"""
|
142
148
|
ctx = task.get_ctx(session)
|
143
|
-
retries =
|
144
|
-
retry_period =
|
149
|
+
retries = task._retries if task._retries is not None else 2
|
150
|
+
retry_period = task._retry_period if task._retry_period is not None else 0
|
145
151
|
max_attempt = retries + 1
|
146
152
|
ctx.set_max_attempt(max_attempt)
|
147
153
|
|
@@ -163,8 +169,9 @@ async def execute_action_with_retry(task: "BaseTask", session: AnySession) -> An
|
|
163
169
|
session.get_task_status(task).mark_as_completed()
|
164
170
|
|
165
171
|
# Store result in XCom
|
166
|
-
task_xcom: Xcom = ctx.xcom.get(task.name)
|
167
|
-
task_xcom
|
172
|
+
task_xcom: Xcom | None = ctx.xcom.get(task.name)
|
173
|
+
if task_xcom is not None:
|
174
|
+
task_xcom.push(result)
|
168
175
|
|
169
176
|
# Skip fallbacks and execute successors on success
|
170
177
|
skip_fallbacks(task, session)
|
@@ -201,7 +208,7 @@ async def run_default_action(task: "BaseTask", ctx: AnyContext) -> Any:
|
|
201
208
|
This is the default implementation called by BaseTask._exec_action.
|
202
209
|
Subclasses like LLMTask override _exec_action with their own logic.
|
203
210
|
"""
|
204
|
-
action =
|
211
|
+
action = task._action
|
205
212
|
if action is None:
|
206
213
|
ctx.log_debug("No action defined for this task.")
|
207
214
|
return None
|
@@ -17,9 +17,13 @@ async def monitor_task_readiness(
|
|
17
17
|
"""
|
18
18
|
ctx = task.get_ctx(session)
|
19
19
|
readiness_checks = task.readiness_checks
|
20
|
-
readiness_check_period =
|
21
|
-
|
22
|
-
|
20
|
+
readiness_check_period = (
|
21
|
+
task._readiness_check_period if task._readiness_check_period else 5.0
|
22
|
+
)
|
23
|
+
readiness_failure_threshold = (
|
24
|
+
task._readiness_failure_threshold if task._readiness_failure_threshold else 1
|
25
|
+
)
|
26
|
+
readiness_timeout = task._readiness_timeout if task._readiness_timeout else 60
|
23
27
|
|
24
28
|
if not readiness_checks:
|
25
29
|
ctx.log_debug("No readiness checks defined, monitoring is not applicable.")
|
@@ -41,8 +45,9 @@ async def monitor_task_readiness(
|
|
41
45
|
session.get_task_status(check).reset_history()
|
42
46
|
session.get_task_status(check).reset()
|
43
47
|
# Clear previous XCom data for the check task if needed
|
44
|
-
check_xcom: Xcom = ctx.xcom.get(check.name)
|
45
|
-
check_xcom
|
48
|
+
check_xcom: Xcom | None = ctx.xcom.get(check.name)
|
49
|
+
if check_xcom is not None:
|
50
|
+
check_xcom.clear()
|
46
51
|
|
47
52
|
readiness_check_coros = [
|
48
53
|
run_async(check.exec_chain(session)) for check in readiness_checks
|
@@ -77,7 +82,7 @@ async def monitor_task_readiness(
|
|
77
82
|
)
|
78
83
|
# Ensure check tasks are marked as failed on timeout
|
79
84
|
for check in readiness_checks:
|
80
|
-
if not session.get_task_status(check).
|
85
|
+
if not session.get_task_status(check).is_ready:
|
81
86
|
session.get_task_status(check).mark_as_failed()
|
82
87
|
|
83
88
|
except (asyncio.CancelledError, KeyboardInterrupt):
|
@@ -92,7 +97,7 @@ async def monitor_task_readiness(
|
|
92
97
|
)
|
93
98
|
# Mark checks as failed
|
94
99
|
for check in readiness_checks:
|
95
|
-
if not session.get_task_status(check).
|
100
|
+
if not session.get_task_status(check).is_ready:
|
96
101
|
session.get_task_status(check).mark_as_failed()
|
97
102
|
|
98
103
|
# If failure threshold is reached
|
@@ -125,8 +125,8 @@ def get_agent(
|
|
125
125
|
"list[ToolOrCallable] | Callable[[AnySharedContext], list[ToolOrCallable]]"
|
126
126
|
) = [],
|
127
127
|
additional_tools: "list[ToolOrCallable]" = [],
|
128
|
-
toolsets_attr: "list[AbstractToolset[
|
129
|
-
additional_toolsets: "list[AbstractToolset[
|
128
|
+
toolsets_attr: "list[AbstractToolset[None] | str] | Callable[[AnySharedContext], list[AbstractToolset[None] | str]]" = [], # noqa
|
129
|
+
additional_toolsets: "list[AbstractToolset[None] | str]" = [],
|
130
130
|
retries: int = 3,
|
131
131
|
yolo_mode: bool | list[str] | None = None,
|
132
132
|
) -> "Agent":
|
@@ -149,8 +149,11 @@ def get_agent(
|
|
149
149
|
tools = list(tools_attr(ctx) if callable(tools_attr) else tools_attr)
|
150
150
|
tools.extend(additional_tools)
|
151
151
|
# Get Toolsets for agent
|
152
|
-
|
153
|
-
|
152
|
+
toolset_or_str_list = list(
|
153
|
+
toolsets_attr(ctx) if callable(toolsets_attr) else toolsets_attr
|
154
|
+
)
|
155
|
+
toolset_or_str_list.extend(additional_toolsets)
|
156
|
+
toolsets = _render_toolset_or_str_list(ctx, toolset_or_str_list)
|
154
157
|
# If no agent provided, create one using the configuration
|
155
158
|
return create_agent_instance(
|
156
159
|
ctx=ctx,
|
@@ -158,13 +161,32 @@ def get_agent(
|
|
158
161
|
output_type=output_type,
|
159
162
|
system_prompt=system_prompt,
|
160
163
|
tools=tools,
|
161
|
-
toolsets=
|
164
|
+
toolsets=toolsets,
|
162
165
|
model_settings=model_settings,
|
163
166
|
retries=retries,
|
164
167
|
yolo_mode=yolo_mode,
|
165
168
|
)
|
166
169
|
|
167
170
|
|
171
|
+
def _render_toolset_or_str_list(
|
172
|
+
ctx: AnyContext, toolset_or_str_list: list["AbstractToolset[None] | str"]
|
173
|
+
) -> list["AbstractToolset[None]"]:
|
174
|
+
from pydantic_ai.mcp import load_mcp_servers
|
175
|
+
|
176
|
+
toolsets = []
|
177
|
+
for toolset_or_str in toolset_or_str_list:
|
178
|
+
if isinstance(toolset_or_str, str):
|
179
|
+
try:
|
180
|
+
servers = load_mcp_servers(toolset_or_str)
|
181
|
+
for server in servers:
|
182
|
+
toolsets.append(server)
|
183
|
+
except Exception as e:
|
184
|
+
ctx.log_error(f"Invalid MCP Config {toolset_or_str}: {e}")
|
185
|
+
continue
|
186
|
+
toolsets.append(toolset_or_str)
|
187
|
+
return toolsets
|
188
|
+
|
189
|
+
|
168
190
|
async def run_agent_iteration(
|
169
191
|
ctx: AnyContext,
|
170
192
|
agent: "Agent[None, Any]",
|
@@ -4,7 +4,7 @@ if TYPE_CHECKING:
|
|
4
4
|
from pydantic_ai.models import Model
|
5
5
|
from pydantic_ai.settings import ModelSettings
|
6
6
|
|
7
|
-
from zrb.attr.type import BoolAttr, StrAttr, fstring
|
7
|
+
from zrb.attr.type import BoolAttr, StrAttr, StrListAttr, fstring
|
8
8
|
from zrb.config.llm_config import LLMConfig, llm_config
|
9
9
|
from zrb.context.any_context import AnyContext
|
10
10
|
from zrb.context.any_shared_context import AnySharedContext
|
@@ -13,7 +13,7 @@ from zrb.util.attr import get_attr, get_bool_attr, get_str_list_attr
|
|
13
13
|
|
14
14
|
def get_yolo_mode(
|
15
15
|
ctx: AnyContext,
|
16
|
-
yolo_mode_attr: BoolAttr |
|
16
|
+
yolo_mode_attr: BoolAttr | StrListAttr | None = None,
|
17
17
|
render_yolo_mode: bool = True,
|
18
18
|
) -> bool | list[str]:
|
19
19
|
if yolo_mode_attr is None:
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import functools
|
2
2
|
import inspect
|
3
|
+
import json
|
3
4
|
import traceback
|
4
5
|
import typing
|
5
6
|
from collections.abc import Callable
|
@@ -172,18 +173,17 @@ def _get_edited_kwargs(
|
|
172
173
|
return kwargs, False
|
173
174
|
while len(user_edit_responses) < 3:
|
174
175
|
user_edit_responses.append("")
|
175
|
-
key,
|
176
|
+
key, val_str = user_edit_responses[1:]
|
176
177
|
if key not in kwargs:
|
177
178
|
return kwargs, True
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
)
|
186
|
-
kwargs[key] = val
|
179
|
+
is_str_param = isinstance(kwargs[key], str)
|
180
|
+
if val_str == "":
|
181
|
+
val_str = edit_text(
|
182
|
+
prompt_message=f"// {key}",
|
183
|
+
value=_get_val_str(kwargs[key]),
|
184
|
+
editor=CFG.DEFAULT_EDITOR,
|
185
|
+
)
|
186
|
+
kwargs[key] = val_str if is_str_param else json.loads(val_str)
|
187
187
|
return kwargs, True
|
188
188
|
|
189
189
|
|
@@ -233,7 +233,7 @@ def _get_detail_func_param(args: list[Any] | tuple[Any], kwargs: dict[str, Any])
|
|
233
233
|
|
234
234
|
def _get_func_param_item(key: str, val: Any) -> str:
|
235
235
|
upper_key = key.upper()
|
236
|
-
val_str =
|
236
|
+
val_str = _get_val_str(val)
|
237
237
|
val_parts = val_str.split("\n")
|
238
238
|
if len(val_parts) == 1:
|
239
239
|
return f"- {upper_key} `{val}`"
|
@@ -244,6 +244,15 @@ def _get_func_param_item(key: str, val: Any) -> str:
|
|
244
244
|
return "\n".join(lines)
|
245
245
|
|
246
246
|
|
247
|
+
def _get_val_str(val: Any) -> str:
|
248
|
+
if isinstance(val, str):
|
249
|
+
return val
|
250
|
+
try:
|
251
|
+
return json.dumps(val, indent=4)
|
252
|
+
except Exception:
|
253
|
+
return f"{val}"
|
254
|
+
|
255
|
+
|
247
256
|
def _get_func_call_str(
|
248
257
|
func: Callable, args: list[Any] | tuple[Any], kwargs: dict[str, Any]
|
249
258
|
) -> str:
|
@@ -80,7 +80,8 @@ class LLMTask(BaseTask):
|
|
80
80
|
| Callable[[AnySharedContext], list["ToolOrCallable"]]
|
81
81
|
) = [],
|
82
82
|
toolsets: (
|
83
|
-
list["AbstractToolset[
|
83
|
+
list["AbstractToolset[None] | str"]
|
84
|
+
| Callable[[AnySharedContext], list["AbstractToolset[None] | str"]]
|
84
85
|
) = [],
|
85
86
|
conversation_history: (
|
86
87
|
ConversationHistory
|
@@ -169,7 +170,7 @@ class LLMTask(BaseTask):
|
|
169
170
|
self._rate_limitter = rate_limitter
|
170
171
|
self._additional_tools: list["ToolOrCallable"] = []
|
171
172
|
self._toolsets = toolsets
|
172
|
-
self._additional_toolsets: list["AbstractToolset[
|
173
|
+
self._additional_toolsets: list["AbstractToolset[None] | str"] = []
|
173
174
|
self._conversation_history = conversation_history
|
174
175
|
self._conversation_history_reader = conversation_history_reader
|
175
176
|
self._conversation_history_writer = conversation_history_writer
|
@@ -200,10 +201,12 @@ class LLMTask(BaseTask):
|
|
200
201
|
for single_tool in tool:
|
201
202
|
self._additional_tools.append(single_tool)
|
202
203
|
|
203
|
-
def add_toolset(self, *toolset: "AbstractToolset[
|
204
|
+
def add_toolset(self, *toolset: "AbstractToolset[None] | str"):
|
204
205
|
self.append_toolset(*toolset)
|
205
206
|
|
206
|
-
def append_toolset(self, *toolset: "AbstractToolset[
|
207
|
+
def append_toolset(self, *toolset: "AbstractToolset[None] | str"):
|
208
|
+
from pydantic_ai.mcp import load_mcp_servers
|
209
|
+
|
207
210
|
for single_toolset in toolset:
|
208
211
|
self._additional_toolsets.append(single_toolset)
|
209
212
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|