zrb 1.13.3__tar.gz → 1.14.0__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.13.3 → zrb-1.14.0}/PKG-INFO +1 -1
- {zrb-1.13.3 → zrb-1.14.0}/pyproject.toml +1 -1
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/llm/chat_session.py +36 -12
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/llm/llm_ask.py +28 -7
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/llm/tool/file.py +23 -10
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/llm/tool/sub_agent.py +2 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/config/config.py +22 -2
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/config/llm_config.py +11 -2
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/context/shared_context.py +3 -1
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/task_session_api_route.py +1 -4
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/llm/agent.py +7 -2
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/llm/config.py +13 -2
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/llm/tool_wrapper.py +64 -19
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/llm_task.py +11 -0
- {zrb-1.13.3 → zrb-1.14.0}/README.md +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/__main__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/attr/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/attr/type.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/base64.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/git.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/git_subtree.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/group.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/http.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/jwt.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/llm/history.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/llm/input.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/llm/previous-session.js +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/llm/tool/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/llm/tool/api.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/llm/tool/cli.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/llm/tool/code.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/llm/tool/rag.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/llm/tool/web.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/md5.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_input.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_task.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.coveragerc +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.flake8 +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.gitignore +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/README.md +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_task.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_util.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/config.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_task.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_util.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/schema/my_entity.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/client_method.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/gateway_subroute.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/navigation_config_file.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/format_task.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/group.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/input.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_task.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_util.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/module_task_definition.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/navigation_config_file.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task_util.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/util.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/venv_task.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/app_factory.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_db_repository.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_service.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/db_engine_factory.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/error.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/logger_factory.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/parser_factory.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/schema.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/app.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/parser.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/user_agent.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/view.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/config.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/main.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/alembic.ini +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_api_client.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client_factory.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_direct_client.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/README +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/env.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/script.py.mako +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/3093c7336477_add_auth_tables.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/8ed025bcc845_create_permissions.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration_metadata.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/route.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service_factory.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_db_repository.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository_factory.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_db_repository.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository_factory.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service_factory.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_db_repository.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository_factory.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service_factory.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/alembic.ini +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/config/navigation.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/README +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/env.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/script.py.mako +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/versions/.gitkeep +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration_metadata.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/route.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/schema/navigation.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/subroute/auth.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/auth.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/view.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/permission.html +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/role.html +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/user.html +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/error.html +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/homepage.html +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/login.html +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/logout.html +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/common/util.js +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/style.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/util.js +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/pico-style.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/script.js +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/style.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-192x192.png +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-512x512.png +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/favicon-32x32.png +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.min.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/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.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/template/default.html +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/requirements.txt +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/permission.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/role.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/user.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/template.env +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/_util/access_token.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_create_permission.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_delete_permission.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_read_permission.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_update_permission.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/test_user_session.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_health_and_readiness.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_homepage.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_not_found_error.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test.sh +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/add/fastapp/fastapp_util.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/create/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/create/project-template/README.md +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/create/project-template/zrb_init.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/project/create/project_task.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/python.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/random.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/setup/asdf/asdf.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/setup/asdf/asdf_helper.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/setup/common_input.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/setup/latex/ubuntu.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/setup/tmux/tmux.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/setup/tmux/tmux_config.sh +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/setup/tmux/tmux_helper.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/setup/ubuntu.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/setup/zsh/zsh.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/setup/zsh/zsh_config.sh +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/setup/zsh/zsh_helper.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/shell/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/shell/autocomplete/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/shell/autocomplete/bash.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/shell/autocomplete/subcmd.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/shell/autocomplete/zsh.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/todo.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/builtin/uuid.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/callback/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/callback/any_callback.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/callback/callback.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/cmd/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/cmd/cmd_result.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/cmd/cmd_val.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/config/default_prompt/file_extractor_system_prompt.md +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/config/default_prompt/interactive_system_prompt.md +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/config/default_prompt/persona.md +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/config/default_prompt/repo_extractor_system_prompt.md +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/config/default_prompt/repo_summarizer_system_prompt.md +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/config/default_prompt/summarization_prompt.md +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/config/default_prompt/system_prompt.md +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/config/llm_context/config.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/config/llm_context/config_parser.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/config/llm_rate_limitter.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/config/web_auth_config.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/content_transformer/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/content_transformer/any_content_transformer.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/content_transformer/content_transformer.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/context/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/context/any_context.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/context/any_shared_context.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/context/context.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/dot_dict/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/dot_dict/dot_dict.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/env/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/env/any_env.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/env/env.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/env/env_file.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/env/env_map.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/group/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/group/any_group.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/group/group.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/input/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/input/any_input.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/input/base_input.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/input/bool_input.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/input/float_input.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/input/int_input.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/input/option_input.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/input/password_input.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/input/str_input.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/input/text_input.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/cli.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/common_util.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_app.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/docs_route.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/error_page/serve_default_404.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/error_page/show_error_page.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/error_page/view.html +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/home_page/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/home_page/home_page_route.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/home_page/view.html +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/login_api_route.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/login_page/login_page_route.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/login_page/view.html +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/logout_api_route.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/logout_page/logout_page_route.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/logout_page/view.html +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/node_page/group/show_group_page.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/node_page/group/view.html +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/node_page/node_page_route.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/node_page/task/partial/input.html +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/node_page/task/show_task_page.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/node_page/task/view.html +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/refresh_token_api_route.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/global_template.html +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/refresh-token.template.js +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/common.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/common.js +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/favicon-32x32.png +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/login/event.js +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/logout/event.js +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.amber.min.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.blue.min.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.cyan.min.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.fuchsia.min.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.green.min.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.grey.min.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.indigo.min.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.jade.min.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.lime.min.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.min.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.orange.min.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.pink.min.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.pumpkin.min.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.purple.min.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.red.min.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.sand.min.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.slate.min.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.violet.min.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.yellow.min.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.zinc.min.css +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/session/common-util.js +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/session/current-session.js +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/session/event.js +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/resources/session/past-session.js +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/static/static_route.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_route/task_input_api_route.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_schema/session.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_schema/token.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_schema/user.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_util/cookie.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_util/html.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_util/token.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/runner/web_util/user.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/session/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/session/any_session.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/session/session.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/session_state_log/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/session_state_log/session_state_log.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/session_state_logger/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/session_state_logger/any_session_state_logger.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/session_state_logger/file_session_state_logger.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/session_state_logger/session_state_logger_factory.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/any_task.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/base/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/base/context.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/base/execution.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/base/lifecycle.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/base/monitoring.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/base/operators.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/base_task.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/base_trigger.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/cmd_task.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/http_check.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/llm/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/llm/conversation_history.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/llm/conversation_history_model.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/llm/default_workflow/coding.md +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/llm/default_workflow/copywriting.md +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/llm/default_workflow/researching.md +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/llm/error.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/llm/history_summarization.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/llm/print_node.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/llm/prompt.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/llm/typing.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/make_task.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/rsync_task.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/scaffolder.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/scheduler.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/task.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task/tcp_check.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task_status/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/task_status/task_status.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/attr.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/callable.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/cli/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/cli/style.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/cli/subcommand.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/cmd/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/cmd/command.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/cmd/remote.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/codemod/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/codemod/modification_mode.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/codemod/modify_class.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/codemod/modify_class_parent.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/codemod/modify_class_property.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/codemod/modify_dict.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/codemod/modify_function.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/codemod/modify_function_call.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/codemod/modify_method.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/codemod/modify_module.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/cron.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/file.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/git.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/git_diff_model.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/git_subtree.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/git_subtree_model.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/group.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/init_path.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/llm/prompt.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/load.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/run.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/string/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/string/conversion.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/string/format.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/string/name.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/todo.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/util/todo_model.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/xcom/__init__.py +0 -0
- {zrb-1.13.3 → zrb-1.14.0}/src/zrb/xcom/xcom.py +0 -0
@@ -10,7 +10,8 @@ import sys
|
|
10
10
|
|
11
11
|
from zrb.config.llm_config import llm_config
|
12
12
|
from zrb.context.any_context import AnyContext
|
13
|
-
from zrb.util.cli.style import stylize_bold_yellow, stylize_faint
|
13
|
+
from zrb.util.cli.style import stylize_blue, stylize_bold_yellow, stylize_faint
|
14
|
+
from zrb.util.string.conversion import to_boolean
|
14
15
|
|
15
16
|
|
16
17
|
async def read_user_prompt(ctx: AnyContext) -> str:
|
@@ -26,6 +27,7 @@ async def read_user_prompt(ctx: AnyContext) -> str:
|
|
26
27
|
reader = await _setup_input_reader(is_tty)
|
27
28
|
multiline_mode = False
|
28
29
|
current_modes = ctx.input.modes
|
30
|
+
current_yolo_mode = ctx.input.yolo
|
29
31
|
user_inputs = []
|
30
32
|
while True:
|
31
33
|
await asyncio.sleep(0.01)
|
@@ -40,7 +42,7 @@ async def read_user_prompt(ctx: AnyContext) -> str:
|
|
40
42
|
user_prompt = "\n".join(user_inputs)
|
41
43
|
user_inputs = []
|
42
44
|
result = await _trigger_ask_and_wait_for_result(
|
43
|
-
ctx, user_prompt, current_modes
|
45
|
+
ctx, user_prompt, current_modes, current_yolo_mode
|
44
46
|
)
|
45
47
|
if result is not None:
|
46
48
|
final_result = result
|
@@ -53,7 +55,7 @@ async def read_user_prompt(ctx: AnyContext) -> str:
|
|
53
55
|
user_prompt = "\n".join(user_inputs)
|
54
56
|
user_inputs = []
|
55
57
|
result = await _trigger_ask_and_wait_for_result(
|
56
|
-
ctx, user_prompt, current_modes
|
58
|
+
ctx, user_prompt, current_modes, current_yolo_mode
|
57
59
|
)
|
58
60
|
if result is not None:
|
59
61
|
final_result = result
|
@@ -64,6 +66,13 @@ async def read_user_prompt(ctx: AnyContext) -> str:
|
|
64
66
|
ctx.print(f"Current mode: {current_modes}", plain=True)
|
65
67
|
ctx.print("", plain=True)
|
66
68
|
continue
|
69
|
+
elif user_input.strip().lower().startswith("/yolo"):
|
70
|
+
yolo_mode_parts = user_input.split(" ", maxsplit=2)
|
71
|
+
if len(yolo_mode_parts) > 1:
|
72
|
+
current_yolo_mode = to_boolean(yolo_mode_parts[1])
|
73
|
+
ctx.print(f"Current_yolo mode: {current_yolo_mode}", plain=True)
|
74
|
+
ctx.print("", plain=True)
|
75
|
+
continue
|
67
76
|
elif user_input.strip().lower() in ("/help", "/info"):
|
68
77
|
_show_info(ctx)
|
69
78
|
continue
|
@@ -74,7 +83,7 @@ async def read_user_prompt(ctx: AnyContext) -> str:
|
|
74
83
|
user_prompt = "\n".join(user_inputs)
|
75
84
|
user_inputs = []
|
76
85
|
result = await _trigger_ask_and_wait_for_result(
|
77
|
-
ctx, user_prompt, current_modes
|
86
|
+
ctx, user_prompt, current_modes, current_yolo_mode
|
78
87
|
)
|
79
88
|
if result is not None:
|
80
89
|
final_result = result
|
@@ -90,24 +99,32 @@ def _show_info(ctx: AnyContext):
|
|
90
99
|
ctx.print(
|
91
100
|
"\n".join(
|
92
101
|
[
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
102
|
+
_show_command("/bye", "Quit from chat session"),
|
103
|
+
_show_command("/multi", "Start multiline input"),
|
104
|
+
_show_command("/end", "End multiline input"),
|
105
|
+
_show_command("/modes", "Show current modes"),
|
106
|
+
_show_subcommand("<mode1,mode2,..>", "Set current modes"),
|
107
|
+
_show_command("/yolo", "Get current YOLO mode"),
|
108
|
+
_show_subcommand("<true|false>", "Set YOLO mode to true/false"),
|
109
|
+
_show_command("/help", "Show this message"),
|
99
110
|
]
|
100
111
|
),
|
101
112
|
plain=True,
|
102
113
|
)
|
103
114
|
|
104
115
|
|
105
|
-
def
|
116
|
+
def _show_command(command: str, description: str) -> str:
|
106
117
|
styled_command = stylize_bold_yellow(command.ljust(25))
|
107
118
|
styled_description = stylize_faint(description)
|
108
119
|
return f" {styled_command} {styled_description}"
|
109
120
|
|
110
121
|
|
122
|
+
def _show_subcommand(command: str, description: str) -> str:
|
123
|
+
styled_command = stylize_blue(f" {command}".ljust(25))
|
124
|
+
styled_description = stylize_faint(description)
|
125
|
+
return f" {styled_command} {styled_description}"
|
126
|
+
|
127
|
+
|
111
128
|
async def _handle_initial_message(ctx: AnyContext) -> str:
|
112
129
|
"""Processes the initial message from the command line."""
|
113
130
|
if not ctx.input.message or ctx.input.message.strip() == "":
|
@@ -119,6 +136,7 @@ async def _handle_initial_message(ctx: AnyContext) -> str:
|
|
119
136
|
ctx,
|
120
137
|
user_prompt=ctx.input.message,
|
121
138
|
modes=ctx.input.modes,
|
139
|
+
yolo_mode=ctx.input.yolo,
|
122
140
|
previous_session_name=ctx.input.previous_session,
|
123
141
|
start_new=ctx.input.start_new,
|
124
142
|
)
|
@@ -157,6 +175,7 @@ async def _trigger_ask_and_wait_for_result(
|
|
157
175
|
ctx: AnyContext,
|
158
176
|
user_prompt: str,
|
159
177
|
modes: str,
|
178
|
+
yolo_mode: bool,
|
160
179
|
previous_session_name: str | None = None,
|
161
180
|
start_new: bool = False,
|
162
181
|
) -> str | None:
|
@@ -174,7 +193,9 @@ async def _trigger_ask_and_wait_for_result(
|
|
174
193
|
"""
|
175
194
|
if user_prompt.strip() == "":
|
176
195
|
return None
|
177
|
-
await _trigger_ask(
|
196
|
+
await _trigger_ask(
|
197
|
+
ctx, user_prompt, modes, yolo_mode, previous_session_name, start_new
|
198
|
+
)
|
178
199
|
result = await _wait_ask_result(ctx)
|
179
200
|
md_result = _render_markdown(result) if result is not None else ""
|
180
201
|
ctx.print("\n🤖 >>", plain=True)
|
@@ -220,6 +241,7 @@ def get_llm_ask_input_mapping(callback_ctx: AnyContext):
|
|
220
241
|
"previous-session": data.get("previous_session_name"),
|
221
242
|
"message": data.get("message"),
|
222
243
|
"modes": data.get("modes"),
|
244
|
+
"yolo": data.get("yolo"),
|
223
245
|
}
|
224
246
|
|
225
247
|
|
@@ -227,6 +249,7 @@ async def _trigger_ask(
|
|
227
249
|
ctx: AnyContext,
|
228
250
|
user_prompt: str,
|
229
251
|
modes: str,
|
252
|
+
yolo_mode: bool,
|
230
253
|
previous_session_name: str | None = None,
|
231
254
|
start_new: bool = False,
|
232
255
|
):
|
@@ -247,6 +270,7 @@ async def _trigger_ask(
|
|
247
270
|
"start_new": start_new,
|
248
271
|
"message": user_prompt,
|
249
272
|
"modes": modes,
|
273
|
+
"yolo": yolo_mode,
|
250
274
|
}
|
251
275
|
)
|
252
276
|
|
@@ -23,6 +23,7 @@ from zrb.builtin.llm.tool.web import (
|
|
23
23
|
)
|
24
24
|
from zrb.callback.callback import Callback
|
25
25
|
from zrb.config.config import CFG
|
26
|
+
from zrb.config.llm_config import llm_config
|
26
27
|
from zrb.input.bool_input import BoolInput
|
27
28
|
from zrb.input.str_input import StrInput
|
28
29
|
from zrb.input.text_input import TextInput
|
@@ -75,12 +76,20 @@ _llm_ask_inputs = [
|
|
75
76
|
),
|
76
77
|
BoolInput(
|
77
78
|
"start-new",
|
78
|
-
description="Start new
|
79
|
-
prompt="Start new
|
79
|
+
description="Start new session (LLM Agent will forget past conversation)",
|
80
|
+
prompt="Start new session (LLM Agent will forget past conversation)",
|
80
81
|
default=False,
|
81
82
|
allow_positional_parsing=False,
|
82
83
|
always_prompt=False,
|
83
84
|
),
|
85
|
+
BoolInput(
|
86
|
+
"yolo",
|
87
|
+
description="YOLO mode (LLM Agent will start in YOLO Mode)",
|
88
|
+
prompt="YOLO mode (LLM Agent will start in YOLO Mode)",
|
89
|
+
default=lambda ctx: llm_config.default_yolo_mode,
|
90
|
+
allow_positional_parsing=False,
|
91
|
+
always_prompt=False,
|
92
|
+
),
|
84
93
|
TextInput("message", description="User message", prompt="Your message"),
|
85
94
|
PreviousSessionInput(
|
86
95
|
"previous-session",
|
@@ -154,8 +163,20 @@ if CFG.LLM_ALLOW_ACCESS_LOCAL_FILE:
|
|
154
163
|
if CFG.LLM_ALLOW_ACCESS_SHELL:
|
155
164
|
llm_ask.append_tool(run_shell_command)
|
156
165
|
|
157
|
-
if CFG.
|
158
|
-
llm_ask.append_tool(open_web_page
|
159
|
-
|
160
|
-
|
161
|
-
llm_ask.append_tool(
|
166
|
+
if CFG.LLM_ALLOW_OPEN_WEB_PAGE:
|
167
|
+
llm_ask.append_tool(open_web_page)
|
168
|
+
|
169
|
+
if CFG.LLM_ALLOW_SEARCH_WIKIPEDIA:
|
170
|
+
llm_ask.append_tool(search_wikipedia)
|
171
|
+
|
172
|
+
if CFG.LLM_ALLOW_SEARCH_ARXIV:
|
173
|
+
llm_ask.append_tool(search_arxiv)
|
174
|
+
|
175
|
+
if CFG.LLM_ALLOW_GET_CURRENT_LOCATION:
|
176
|
+
llm_ask.append_tool(get_current_location)
|
177
|
+
|
178
|
+
if CFG.LLM_ALLOW_GET_CURRENT_WEATHER:
|
179
|
+
llm_ask.append_tool(get_current_weather)
|
180
|
+
|
181
|
+
if CFG.SERPAPI_KEY != "" and CFG.LLM_ALLOW_SEARCH_INTERNET:
|
182
|
+
llm_ask.append_tool(create_search_internet_tool(CFG.SERPAPI_KEY))
|
@@ -2,7 +2,8 @@ import fnmatch
|
|
2
2
|
import json
|
3
3
|
import os
|
4
4
|
import re
|
5
|
-
|
5
|
+
import sys
|
6
|
+
from typing import Any, Optional
|
6
7
|
|
7
8
|
from zrb.builtin.llm.tool.sub_agent import create_sub_agent_tool
|
8
9
|
from zrb.config.config import CFG
|
@@ -10,7 +11,17 @@ from zrb.config.llm_rate_limitter import llm_rate_limitter
|
|
10
11
|
from zrb.context.any_context import AnyContext
|
11
12
|
from zrb.util.file import read_file, read_file_with_line_numbers, write_file
|
12
13
|
|
13
|
-
|
14
|
+
if sys.version_info >= (3, 12):
|
15
|
+
from typing import TypedDict
|
16
|
+
else:
|
17
|
+
from typing_extensions import TypedDict
|
18
|
+
|
19
|
+
|
20
|
+
class FileToWrite(TypedDict):
|
21
|
+
"""Represents a file to be written, with a 'path' and 'content'."""
|
22
|
+
|
23
|
+
path: str
|
24
|
+
content: str
|
14
25
|
|
15
26
|
|
16
27
|
DEFAULT_EXCLUDED_PATTERNS = [
|
@@ -481,14 +492,14 @@ async def analyze_file(
|
|
481
492
|
return await _analyze_file(ctx, clipped_payload)
|
482
493
|
|
483
494
|
|
484
|
-
def read_many_files(paths:
|
495
|
+
def read_many_files(paths: list[str]) -> str:
|
485
496
|
"""
|
486
497
|
Reads and returns the full content of multiple files at once.
|
487
498
|
|
488
499
|
This tool is highly efficient for gathering context from several files simultaneously. Use it when you need to understand how different files in a project relate to each other, or when you need to inspect a set of related configuration or source code files.
|
489
500
|
|
490
501
|
Args:
|
491
|
-
paths (
|
502
|
+
paths (list[str]): A list of paths to the files you want to read. It is crucial to provide accurate paths. Use the `list_files` tool first if you are unsure about the exact file locations.
|
492
503
|
|
493
504
|
Returns:
|
494
505
|
str: A JSON object where keys are the file paths and values are their corresponding contents, prefixed with line numbers. If a file cannot be read, its value will be an error message.
|
@@ -507,7 +518,7 @@ def read_many_files(paths: List[str]) -> str:
|
|
507
518
|
return json.dumps({"results": results})
|
508
519
|
|
509
520
|
|
510
|
-
def write_many_files(files:
|
521
|
+
def write_many_files(files: list[FileToWrite]) -> str:
|
511
522
|
"""
|
512
523
|
Writes content to multiple files in a single, atomic operation.
|
513
524
|
|
@@ -516,7 +527,7 @@ def write_many_files(files: List[Tuple[str, str]]) -> str:
|
|
516
527
|
Each file's content is completely replaced. If a file does not exist, it will be created. If it exists, its current content will be entirely overwritten. Therefore, you must provide the full, intended content for each file.
|
517
528
|
|
518
529
|
Args:
|
519
|
-
files
|
530
|
+
files: A list of file objects, where each object is a dictionary containing a 'path' and the complete 'content'.
|
520
531
|
|
521
532
|
Returns:
|
522
533
|
str: A JSON object summarizing the operation, listing successfully written files and any files that failed, along with corresponding error messages.
|
@@ -524,8 +535,13 @@ def write_many_files(files: List[Tuple[str, str]]) -> str:
|
|
524
535
|
"""
|
525
536
|
success = []
|
526
537
|
errors = {}
|
527
|
-
|
538
|
+
# 4. Access the data using dictionary key-lookup syntax.
|
539
|
+
for file in files:
|
528
540
|
try:
|
541
|
+
# Use file['path'] and file['content'] instead of file.path
|
542
|
+
path = file["path"]
|
543
|
+
content = file["content"]
|
544
|
+
|
529
545
|
abs_path = os.path.abspath(os.path.expanduser(path))
|
530
546
|
directory = os.path.dirname(abs_path)
|
531
547
|
if directory and not os.path.exists(directory):
|
@@ -535,6 +551,3 @@ def write_many_files(files: List[Tuple[str, str]]) -> str:
|
|
535
551
|
except Exception as e:
|
536
552
|
errors[path] = f"Error writing file: {e}"
|
537
553
|
return json.dumps({"success": success, "errors": errors})
|
538
|
-
|
539
|
-
|
540
|
-
apply_diff = replace_in_file
|
@@ -27,6 +27,7 @@ def create_sub_agent_tool(
|
|
27
27
|
model_settings: "ModelSettings | None" = None,
|
28
28
|
tools: list[ToolOrCallable] = [],
|
29
29
|
toolsets: list["AbstractToolset[Agent]"] = [],
|
30
|
+
is_yolo_mode: bool | None = None,
|
30
31
|
) -> Callable[[AnyContext, str], Coroutine[Any, Any, str]]:
|
31
32
|
"""
|
32
33
|
Creates a "tool that is another AI agent," capable of handling complex, multi-step sub-tasks.
|
@@ -86,6 +87,7 @@ def create_sub_agent_tool(
|
|
86
87
|
model_settings=resolved_model_settings,
|
87
88
|
tools=tools,
|
88
89
|
toolsets=toolsets,
|
90
|
+
is_yolo_mode=is_yolo_mode,
|
89
91
|
)
|
90
92
|
|
91
93
|
sub_agent_run = None
|
@@ -350,8 +350,28 @@ class Config:
|
|
350
350
|
return to_boolean(os.getenv("ZRB_LLM_ACCESS_SHELL", "1"))
|
351
351
|
|
352
352
|
@property
|
353
|
-
def
|
354
|
-
return to_boolean(os.getenv("
|
353
|
+
def LLM_ALLOW_OPEN_WEB_PAGE(self) -> bool:
|
354
|
+
return to_boolean(os.getenv("ZRB_LLM_ALLOW_OPEN_WEB_PAGE", "1"))
|
355
|
+
|
356
|
+
@property
|
357
|
+
def LLM_ALLOW_SEARCH_INTERNET(self) -> bool:
|
358
|
+
return to_boolean(os.getenv("ZRB_LLM_ALLOW_SEARCH_INTERNET", "1"))
|
359
|
+
|
360
|
+
@property
|
361
|
+
def LLM_ALLOW_SEARCH_ARXIV(self) -> bool:
|
362
|
+
return to_boolean(os.getenv("ZRB_LLM_ALLOW_SEARCH_ARXIV", "1"))
|
363
|
+
|
364
|
+
@property
|
365
|
+
def LLM_ALLOW_SEARCH_WIKIPEDIA(self) -> bool:
|
366
|
+
return to_boolean(os.getenv("ZRB_LLM_ALLOW_SEARCH_WIKIPEDIA", "1"))
|
367
|
+
|
368
|
+
@property
|
369
|
+
def LLM_ALLOW_GET_CURRENT_LOCATION(self) -> bool:
|
370
|
+
return to_boolean(os.getenv("ZRB_LLM_ALLOW_GET_CURRENT_LOCATION", "1"))
|
371
|
+
|
372
|
+
@property
|
373
|
+
def LLM_ALLOW_GET_CURRENT_WEATHER(self) -> bool:
|
374
|
+
return to_boolean(os.getenv("ZRB_LLM_ALLOW_GET_CURRENT_WEATHER", "1"))
|
355
375
|
|
356
376
|
@property
|
357
377
|
def RAG_EMBEDDING_API_KEY(self) -> str:
|
@@ -2,8 +2,6 @@ import os
|
|
2
2
|
from typing import TYPE_CHECKING, Any, Callable
|
3
3
|
|
4
4
|
from zrb.config.config import CFG
|
5
|
-
from zrb.config.llm_context.config import llm_context_config
|
6
|
-
from zrb.util.llm.prompt import make_prompt_section
|
7
5
|
|
8
6
|
if TYPE_CHECKING:
|
9
7
|
from pydantic_ai.models import Model
|
@@ -28,6 +26,7 @@ class LLMConfig:
|
|
28
26
|
default_model: "Model | None" = None,
|
29
27
|
default_model_settings: "ModelSettings | None" = None,
|
30
28
|
default_model_provider: "Provider | None" = None,
|
29
|
+
default_yolo_mode: bool | None = None,
|
31
30
|
):
|
32
31
|
self.__internal_default_prompt: dict[str, str] = {}
|
33
32
|
self._default_model_name = default_model_name
|
@@ -46,6 +45,7 @@ class LLMConfig:
|
|
46
45
|
self._default_model = default_model
|
47
46
|
self._default_model_settings = default_model_settings
|
48
47
|
self._default_model_provider = default_model_provider
|
48
|
+
self._default_yolo_mode = default_yolo_mode
|
49
49
|
|
50
50
|
def _get_internal_default_prompt(self, name: str) -> str:
|
51
51
|
if name not in self.__internal_default_prompt:
|
@@ -174,6 +174,12 @@ class LLMConfig:
|
|
174
174
|
lambda: 1000,
|
175
175
|
)
|
176
176
|
|
177
|
+
@property
|
178
|
+
def default_yolo_mode(self) -> bool:
|
179
|
+
return self._get_property(
|
180
|
+
self._default_yolo_mode, CFG.LLM_YOLO_MODE, lambda: False
|
181
|
+
)
|
182
|
+
|
177
183
|
def set_default_persona(self, persona: str):
|
178
184
|
self._default_persona = persona
|
179
185
|
|
@@ -230,5 +236,8 @@ class LLMConfig:
|
|
230
236
|
def set_default_model_settings(self, model_settings: "ModelSettings"):
|
231
237
|
self._default_model_settings = model_settings
|
232
238
|
|
239
|
+
def set_default_yolo_mode(self, yolo_mode: bool):
|
240
|
+
self._default_yolo_mode = yolo_mode
|
241
|
+
|
233
242
|
|
234
243
|
llm_config = LLMConfig()
|
@@ -27,6 +27,7 @@ class SharedContext(AnySharedContext):
|
|
27
27
|
env: dict[str, str] = {},
|
28
28
|
xcom: dict[str, Xcom] = {},
|
29
29
|
logging_level: int | None = None,
|
30
|
+
is_web_mode: bool = False,
|
30
31
|
):
|
31
32
|
self.__logging_level = logging_level
|
32
33
|
self._input = DotDict(input)
|
@@ -35,6 +36,7 @@ class SharedContext(AnySharedContext):
|
|
35
36
|
self._xcom = DotDict(xcom)
|
36
37
|
self._session: AnySession | None = None
|
37
38
|
self._log = []
|
39
|
+
self._is_web_mode = is_web_mode
|
38
40
|
|
39
41
|
def __repr__(self):
|
40
42
|
class_name = self.__class__.__name__
|
@@ -46,7 +48,7 @@ class SharedContext(AnySharedContext):
|
|
46
48
|
|
47
49
|
@property
|
48
50
|
def is_web_mode(self) -> bool:
|
49
|
-
return self.
|
51
|
+
return self._is_web_mode
|
50
52
|
|
51
53
|
@property
|
52
54
|
def is_tty(self) -> bool:
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import asyncio
|
2
|
-
import os
|
3
2
|
from datetime import datetime, timedelta
|
4
3
|
from typing import TYPE_CHECKING, Any
|
5
4
|
|
@@ -57,9 +56,7 @@ def serve_task_session_api(
|
|
57
56
|
return JSONResponse(content={"detail": "Forbidden"}, status_code=403)
|
58
57
|
session_name = residual_args[0] if residual_args else None
|
59
58
|
if not session_name:
|
60
|
-
shared_ctx = SharedContext(
|
61
|
-
env={**dict(os.environ), "_ZRB_IS_WEB_MODE": "1"}
|
62
|
-
)
|
59
|
+
shared_ctx = SharedContext(is_web_mode=True)
|
63
60
|
session = Session(shared_ctx=shared_ctx, root_group=root_group)
|
64
61
|
coro = asyncio.create_task(task.async_run(session, str_kwargs=inputs))
|
65
62
|
coroutines.append(coro)
|
@@ -30,11 +30,14 @@ def create_agent_instance(
|
|
30
30
|
tools: list[ToolOrCallable] = [],
|
31
31
|
toolsets: list["AbstractToolset[Agent]"] = [],
|
32
32
|
retries: int = 3,
|
33
|
+
is_yolo_mode: bool | None = None,
|
33
34
|
) -> "Agent":
|
34
35
|
"""Creates a new Agent instance with configured tools and servers."""
|
35
36
|
from pydantic_ai import Agent, Tool
|
36
37
|
from pydantic_ai.tools import GenerateToolJsonSchema
|
37
38
|
|
39
|
+
if is_yolo_mode is None:
|
40
|
+
is_yolo_mode = False
|
38
41
|
# Normalize tools
|
39
42
|
tool_list = []
|
40
43
|
for tool_or_callable in tools:
|
@@ -44,7 +47,7 @@ def create_agent_instance(
|
|
44
47
|
tool = tool_or_callable
|
45
48
|
tool_list.append(
|
46
49
|
Tool(
|
47
|
-
function=wrap_func(tool.function),
|
50
|
+
function=wrap_func(tool.function, ctx, is_yolo_mode),
|
48
51
|
takes_ctx=tool.takes_ctx,
|
49
52
|
max_retries=tool.max_retries,
|
50
53
|
name=tool.name,
|
@@ -58,7 +61,7 @@ def create_agent_instance(
|
|
58
61
|
)
|
59
62
|
else:
|
60
63
|
# Turn function into tool
|
61
|
-
tool_list.append(wrap_tool(tool_or_callable, ctx))
|
64
|
+
tool_list.append(wrap_tool(tool_or_callable, ctx, is_yolo_mode))
|
62
65
|
# Return Agent
|
63
66
|
return Agent(
|
64
67
|
model=model,
|
@@ -83,6 +86,7 @@ def get_agent(
|
|
83
86
|
toolsets_attr: "list[AbstractToolset[Agent]] | Callable[[AnySharedContext], list[AbstractToolset[Agent]]]", # noqa
|
84
87
|
additional_toolsets: "list[AbstractToolset[Agent]]",
|
85
88
|
retries: int = 3,
|
89
|
+
is_yolo_mode: bool | None = None,
|
86
90
|
) -> "Agent":
|
87
91
|
"""Retrieves the configured Agent instance or creates one if necessary."""
|
88
92
|
from pydantic_ai import Agent
|
@@ -114,6 +118,7 @@ def get_agent(
|
|
114
118
|
toolsets=tool_sets,
|
115
119
|
model_settings=model_settings,
|
116
120
|
retries=retries,
|
121
|
+
is_yolo_mode=is_yolo_mode,
|
117
122
|
)
|
118
123
|
|
119
124
|
|
@@ -1,16 +1,27 @@
|
|
1
|
-
from typing import TYPE_CHECKING,
|
1
|
+
from typing import TYPE_CHECKING, Callable
|
2
2
|
|
3
3
|
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 StrAttr, fstring
|
7
|
+
from zrb.attr.type import BoolAttr, StrAttr, 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
|
11
11
|
from zrb.util.attr import get_attr
|
12
12
|
|
13
13
|
|
14
|
+
def get_is_yolo_mode(
|
15
|
+
ctx: AnyContext,
|
16
|
+
is_yolo_mode_attr: BoolAttr | None = None,
|
17
|
+
render_yolo_mode: bool = True,
|
18
|
+
):
|
19
|
+
yolo_mode = get_attr(ctx, is_yolo_mode_attr, None, auto_render=render_yolo_mode)
|
20
|
+
if yolo_mode is None:
|
21
|
+
return llm_config.default_yolo_mode
|
22
|
+
return yolo_mode
|
23
|
+
|
24
|
+
|
14
25
|
def get_model_settings(
|
15
26
|
ctx: AnyContext,
|
16
27
|
model_settings_attr: (
|
@@ -5,10 +5,15 @@ import typing
|
|
5
5
|
from collections.abc import Callable
|
6
6
|
from typing import TYPE_CHECKING
|
7
7
|
|
8
|
-
from zrb.config.config import CFG
|
9
8
|
from zrb.context.any_context import AnyContext
|
10
9
|
from zrb.task.llm.error import ToolExecutionError
|
11
10
|
from zrb.util.callable import get_callable_name
|
11
|
+
from zrb.util.cli.style import (
|
12
|
+
stylize_blue,
|
13
|
+
stylize_error,
|
14
|
+
stylize_green,
|
15
|
+
stylize_yellow,
|
16
|
+
)
|
12
17
|
from zrb.util.run import run_async
|
13
18
|
from zrb.util.string.conversion import to_boolean
|
14
19
|
|
@@ -16,22 +21,24 @@ if TYPE_CHECKING:
|
|
16
21
|
from pydantic_ai import Tool
|
17
22
|
|
18
23
|
|
19
|
-
def wrap_tool(func: Callable, ctx: AnyContext) -> "Tool":
|
24
|
+
def wrap_tool(func: Callable, ctx: AnyContext, is_yolo_mode: bool) -> "Tool":
|
20
25
|
"""Wraps a tool function to handle exceptions and context propagation."""
|
21
26
|
from pydantic_ai import RunContext, Tool
|
22
27
|
|
23
28
|
original_sig = inspect.signature(func)
|
24
29
|
needs_run_context_for_pydantic = _has_context_parameter(original_sig, RunContext)
|
25
|
-
wrapper = wrap_func(func, ctx)
|
30
|
+
wrapper = wrap_func(func, ctx, is_yolo_mode)
|
26
31
|
return Tool(wrapper, takes_ctx=needs_run_context_for_pydantic)
|
27
32
|
|
28
33
|
|
29
|
-
def wrap_func(func: Callable, ctx: AnyContext) -> Callable:
|
34
|
+
def wrap_func(func: Callable, ctx: AnyContext, is_yolo_mode: bool) -> Callable:
|
30
35
|
original_sig = inspect.signature(func)
|
31
36
|
needs_any_context_for_injection = _has_context_parameter(original_sig, AnyContext)
|
32
37
|
takes_no_args = len(original_sig.parameters) == 0
|
33
38
|
# Pass individual flags to the wrapper creator
|
34
|
-
wrapper = _create_wrapper(
|
39
|
+
wrapper = _create_wrapper(
|
40
|
+
func, original_sig, ctx, needs_any_context_for_injection, is_yolo_mode
|
41
|
+
)
|
35
42
|
_adjust_signature(wrapper, original_sig, takes_no_args)
|
36
43
|
return wrapper
|
37
44
|
|
@@ -68,8 +75,9 @@ def _is_annotated_with_context(param_annotation, context_type):
|
|
68
75
|
def _create_wrapper(
|
69
76
|
func: Callable,
|
70
77
|
original_sig: inspect.Signature,
|
71
|
-
ctx: AnyContext,
|
78
|
+
ctx: AnyContext,
|
72
79
|
needs_any_context_for_injection: bool,
|
80
|
+
is_yolo_mode: bool,
|
73
81
|
) -> Callable:
|
74
82
|
"""Creates the core wrapper function."""
|
75
83
|
|
@@ -97,19 +105,10 @@ def _create_wrapper(
|
|
97
105
|
if "_dummy" in kwargs and "_dummy" not in original_sig.parameters:
|
98
106
|
del kwargs["_dummy"]
|
99
107
|
try:
|
100
|
-
if not
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
try:
|
105
|
-
user_confirmation = to_boolean(user_confirmation_str)
|
106
|
-
except Exception:
|
107
|
-
user_confirmation = False
|
108
|
-
if not user_confirmation:
|
109
|
-
ctx.print(f"❌ >> Rejecting {func_name} call. Why?", plain=True)
|
110
|
-
reason = await _read_line()
|
111
|
-
ctx.print("", plain=True)
|
112
|
-
raise ValueError(f"User disapproval: {reason}")
|
108
|
+
if not is_yolo_mode and not ctx.is_web_mode and ctx.is_tty:
|
109
|
+
approval, reason = await _ask_for_approval(ctx, func, *args, **kwargs)
|
110
|
+
if not approval:
|
111
|
+
raise ValueError(f"User disapproving: {reason}")
|
113
112
|
return await run_async(func(*args, **kwargs))
|
114
113
|
except Exception as e:
|
115
114
|
error_model = ToolExecutionError(
|
@@ -123,6 +122,52 @@ def _create_wrapper(
|
|
123
122
|
return wrapper
|
124
123
|
|
125
124
|
|
125
|
+
async def _ask_for_approval(
|
126
|
+
ctx: AnyContext, func: Callable, *args, **kwargs
|
127
|
+
) -> tuple[bool, str]:
|
128
|
+
func_name = get_callable_name(func)
|
129
|
+
normalized_args = [stylize_green(_truncate_arg(arg)) for arg in args]
|
130
|
+
normalized_kwargs = [
|
131
|
+
f"{stylize_yellow(key)}={stylize_green(_truncate_arg(val))}"
|
132
|
+
for key, val in kwargs.items()
|
133
|
+
]
|
134
|
+
func_param_str = ",".join(normalized_args + normalized_kwargs)
|
135
|
+
func_call_str = (
|
136
|
+
f"{stylize_blue(func_name + '(')}{func_param_str}{stylize_blue(')')}"
|
137
|
+
)
|
138
|
+
while True:
|
139
|
+
ctx.print(
|
140
|
+
f"✅ >> Allow to run tool: {func_call_str} (Yes | No, <reason>)", plain=True
|
141
|
+
)
|
142
|
+
user_input = await _read_line()
|
143
|
+
approval_str, reason = [
|
144
|
+
val.strip() for val in user_input.split(",", maxsplit=2)
|
145
|
+
]
|
146
|
+
if reason == "":
|
147
|
+
ctx.print(
|
148
|
+
stylize_error(f"You must specify rejection reason for {func_call_str}"),
|
149
|
+
plain=True,
|
150
|
+
)
|
151
|
+
continue
|
152
|
+
try:
|
153
|
+
approval = to_boolean(approval_str)
|
154
|
+
return approval, reason
|
155
|
+
except Exception:
|
156
|
+
ctx.print(
|
157
|
+
stylize_error(
|
158
|
+
f"Invalid approval value for {func_call_str}: {approval_str}"
|
159
|
+
),
|
160
|
+
plain=True,
|
161
|
+
)
|
162
|
+
continue
|
163
|
+
|
164
|
+
|
165
|
+
def _truncate_arg(arg: str, length: int = 19) -> str:
|
166
|
+
if len(arg) > length:
|
167
|
+
return f"{arg[:length-4]} ..."
|
168
|
+
return arg
|
169
|
+
|
170
|
+
|
126
171
|
async def _read_line():
|
127
172
|
from prompt_toolkit import PromptSession
|
128
173
|
|