zrb 1.9.4__tar.gz → 1.9.6__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.9.6/PKG-INFO +250 -0
- zrb-1.9.6/README.md +209 -0
- {zrb-1.9.4 → zrb-1.9.6}/pyproject.toml +1 -2
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/__init__.py +8 -8
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/__main__.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/__init__.py +0 -50
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/llm/chat_session.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/llm/history.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/llm/llm_ask.py +3 -3
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/llm/tool/api.py +19 -9
- zrb-1.9.6/src/zrb/builtin/llm/tool/cli.py +29 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/llm/tool/code.py +20 -20
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/llm/tool/file.py +107 -155
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/llm/tool/rag.py +28 -5
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/llm/tool/sub_agent.py +12 -14
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/llm/tool/web.py +46 -14
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/todo.py +1 -1
- {zrb-1.9.4/src/zrb → zrb-1.9.6/src/zrb/config}/llm_config.py +143 -158
- {zrb-1.9.4/src/zrb → zrb-1.9.6/src/zrb/config}/llm_rate_limitter.py +1 -1
- {zrb-1.9.4/src/zrb/runner → zrb-1.9.6/src/zrb/config}/web_auth_config.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/context/shared_context.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/input/text_input.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/cli.py +2 -2
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_app.py +2 -2
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/docs_route.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/error_page/serve_default_404.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/error_page/show_error_page.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/home_page/home_page_route.py +2 -2
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/login_api_route.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/login_page/login_page_route.py +2 -2
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/logout_api_route.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/logout_page/logout_page_route.py +2 -2
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/node_page/group/show_group_page.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/node_page/node_page_route.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/node_page/task/show_task_page.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/refresh_token_api_route.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/static_route.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/task_input_api_route.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/task_session_api_route.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_util/cookie.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_util/token.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_util/user.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/session_state_logger/session_state_logger_factory.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/cmd_task.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/llm/agent.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/llm/config.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/llm/context_enrichment.py +2 -2
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/llm/history_summarization.py +2 -2
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/llm/prompt.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/llm_task.py +1 -1
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/init_path.py +1 -1
- zrb-1.9.4/PKG-INFO +0 -245
- zrb-1.9.4/README.md +0 -203
- zrb-1.9.4/src/zrb/builtin/llm/tool/cli.py +0 -23
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/attr/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/attr/type.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/base64.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/git.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/git_subtree.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/group.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/http.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/jwt.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/llm/input.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/llm/previous-session.js +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/llm/tool/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/md5.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_input.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_task.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.coveragerc +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.flake8 +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.gitignore +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/README.md +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_task.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_util.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/config.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_task.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_util.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/schema/my_entity.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/client_method.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/gateway_subroute.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/navigation_config_file.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/format_task.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/group.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/input.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_task.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_util.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/module_task_definition.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/navigation_config_file.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task_util.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/util.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/venv_task.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/app_factory.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_db_repository.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_service.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/db_engine_factory.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/error.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/logger_factory.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/parser_factory.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/schema.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/app.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/parser.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/user_agent.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/view.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/config.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/main.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/alembic.ini +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_api_client.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client_factory.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_direct_client.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/README +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/env.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/script.py.mako +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/3093c7336477_add_auth_tables.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/8ed025bcc845_create_permissions.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration_metadata.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/route.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service_factory.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_db_repository.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository_factory.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_db_repository.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository_factory.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service_factory.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_db_repository.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository_factory.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service_factory.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/alembic.ini +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/config/navigation.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/README +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/env.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/script.py.mako +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/versions/.gitkeep +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration_metadata.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/route.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/schema/navigation.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/subroute/auth.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/auth.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/view.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/permission.html +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/role.html +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/user.html +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/error.html +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/homepage.html +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/login.html +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/logout.html +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/common/util.js +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/style.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/util.js +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/pico-style.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/script.js +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/style.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-192x192.png +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-512x512.png +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/favicon-32x32.png +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.min.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/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.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/template/default.html +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/requirements.txt +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/permission.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/role.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/user.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/template.env +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/_util/access_token.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_create_permission.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_delete_permission.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_read_permission.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_update_permission.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/test_user_session.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_health_and_readiness.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_homepage.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_not_found_error.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test.sh +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/add/fastapp/fastapp_util.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/create/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/create/project-template/README.md +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/create/project-template/zrb_init.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/project/create/project_task.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/python.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/random.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/setup/asdf/asdf.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/setup/asdf/asdf_helper.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/setup/common_input.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/setup/latex/ubuntu.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/setup/tmux/tmux.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/setup/tmux/tmux_config.sh +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/setup/tmux/tmux_helper.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/setup/ubuntu.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/setup/zsh/zsh.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/setup/zsh/zsh_config.sh +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/setup/zsh/zsh_helper.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/shell/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/shell/autocomplete/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/shell/autocomplete/bash.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/shell/autocomplete/subcmd.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/shell/autocomplete/zsh.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/builtin/uuid.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/callback/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/callback/any_callback.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/callback/callback.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/cmd/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/cmd/cmd_result.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/cmd/cmd_val.py +0 -0
- {zrb-1.9.4/src/zrb → zrb-1.9.6/src/zrb/config}/config.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/content_transformer/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/content_transformer/any_content_transformer.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/content_transformer/content_transformer.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/context/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/context/any_context.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/context/any_shared_context.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/context/context.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/dot_dict/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/dot_dict/dot_dict.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/env/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/env/any_env.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/env/env.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/env/env_file.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/env/env_map.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/group/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/group/any_group.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/group/group.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/input/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/input/any_input.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/input/base_input.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/input/bool_input.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/input/float_input.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/input/int_input.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/input/option_input.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/input/password_input.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/input/str_input.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/common_util.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/error_page/view.html +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/home_page/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/home_page/view.html +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/login_page/view.html +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/logout_page/view.html +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/node_page/group/view.html +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/node_page/task/partial/input.html +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/node_page/task/view.html +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/global_template.html +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/refresh-token.template.js +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/common.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/common.js +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/favicon-32x32.png +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/login/event.js +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/logout/event.js +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.amber.min.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.blue.min.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.cyan.min.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.fuchsia.min.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.green.min.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.grey.min.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.indigo.min.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.jade.min.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.lime.min.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.min.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.orange.min.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.pink.min.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.pumpkin.min.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.purple.min.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.red.min.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.sand.min.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.slate.min.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.violet.min.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.yellow.min.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.zinc.min.css +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/session/common-util.js +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/session/current-session.js +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/session/event.js +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_route/static/resources/session/past-session.js +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_schema/session.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_schema/token.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_schema/user.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/runner/web_util/html.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/session/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/session/any_session.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/session/session.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/session_state_log/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/session_state_log/session_state_log.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/session_state_logger/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/session_state_logger/any_session_state_logger.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/session_state_logger/file_session_state_logger.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/any_task.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/base/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/base/context.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/base/execution.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/base/lifecycle.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/base/monitoring.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/base/operators.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/base_task.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/base_trigger.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/http_check.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/llm/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/llm/context.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/llm/error.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/llm/history.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/llm/print_node.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/llm/tool_wrapper.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/llm/typing.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/make_task.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/rsync_task.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/scaffolder.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/scheduler.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/task.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task/tcp_check.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task_status/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/task_status/task_status.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/attr.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/cli/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/cli/style.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/cli/subcommand.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/cmd/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/cmd/command.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/cmd/remote.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/codemod/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/codemod/modification_mode.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/codemod/modify_class.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/codemod/modify_class_parent.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/codemod/modify_class_property.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/codemod/modify_dict.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/codemod/modify_function.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/codemod/modify_function_call.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/codemod/modify_method.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/codemod/modify_module.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/cron.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/file.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/git.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/git_subtree.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/group.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/load.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/run.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/string/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/string/conversion.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/string/format.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/string/name.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/todo.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/util/todo_model.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/xcom/__init__.py +0 -0
- {zrb-1.9.4 → zrb-1.9.6}/src/zrb/xcom/xcom.py +0 -0
zrb-1.9.6/PKG-INFO
ADDED
@@ -0,0 +1,250 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: zrb
|
3
|
+
Version: 1.9.6
|
4
|
+
Summary: Your Automation Powerhouse
|
5
|
+
Home-page: https://github.com/state-alchemists/zrb
|
6
|
+
License: AGPL-3.0-or-later
|
7
|
+
Keywords: Automation,Task Runner,Code Generator,Monorepo,Low Code
|
8
|
+
Author: Go Frendi Gunawan
|
9
|
+
Author-email: gofrendiasgard@gmail.com
|
10
|
+
Requires-Python: >=3.10.0,<4.0.0
|
11
|
+
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
13
|
+
Classifier: Programming Language :: Python :: 3.10
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
16
|
+
Provides-Extra: all
|
17
|
+
Provides-Extra: playwright
|
18
|
+
Provides-Extra: rag
|
19
|
+
Requires-Dist: beautifulsoup4 (>=4.13.3,<5.0.0)
|
20
|
+
Requires-Dist: black (>=25.1.0,<25.2.0)
|
21
|
+
Requires-Dist: chromadb (>=0.6.3,<0.7.0) ; extra == "rag" or extra == "all"
|
22
|
+
Requires-Dist: fastapi[standard] (>=0.115.14,<0.116.0)
|
23
|
+
Requires-Dist: isort (>=6.0.1,<6.1.0)
|
24
|
+
Requires-Dist: libcst (>=1.7.0,<2.0.0)
|
25
|
+
Requires-Dist: openai (>=1.86.0,<2.0.0) ; extra == "rag" or extra == "all"
|
26
|
+
Requires-Dist: pdfplumber (>=0.11.6,<0.12.0) ; extra == "rag" or extra == "all"
|
27
|
+
Requires-Dist: playwright (>=1.53.0,<2.0.0) ; extra == "playwright" or extra == "all"
|
28
|
+
Requires-Dist: prompt-toolkit (>=3.0.51,<4.0.0)
|
29
|
+
Requires-Dist: psutil (>=7.0.0,<8.0.0)
|
30
|
+
Requires-Dist: pydantic-ai (>=0.3.4,<0.4.0)
|
31
|
+
Requires-Dist: pyjwt (>=2.10.1,<3.0.0)
|
32
|
+
Requires-Dist: python-dotenv (>=1.1.1,<2.0.0)
|
33
|
+
Requires-Dist: python-jose[cryptography] (>=3.4.0,<4.0.0)
|
34
|
+
Requires-Dist: requests (>=2.32.4,<3.0.0)
|
35
|
+
Requires-Dist: rich (>=14.0.0,<15.0.0)
|
36
|
+
Requires-Dist: tiktoken (>=0.8.0,<0.9.0)
|
37
|
+
Requires-Dist: ulid-py (>=1.1.0,<2.0.0)
|
38
|
+
Project-URL: Documentation, https://github.com/state-alchemists/zrb
|
39
|
+
Project-URL: Repository, https://github.com/state-alchemists/zrb
|
40
|
+
Description-Content-Type: text/markdown
|
41
|
+
|
42
|
+

|
43
|
+
|
44
|
+
# 🤖 Zrb: Your Automation Powerhouse
|
45
|
+
|
46
|
+
**Zrb (Zaruba) is a Python-based tool that makes it easy to create, organize, and run automation tasks.** Think of it as a command-line sidekick, ready to handle everything from simple scripts to complex, AI-powered workflows.
|
47
|
+
|
48
|
+
Whether you're running tasks from the terminal or a sleek web UI, Zrb streamlines your process with task dependencies, environment management, and even inter-task communication.
|
49
|
+
|
50
|
+
[Documentation](https://github.com/state-alchemists/zrb/blob/main/docs/README.md) | [Contribution Guidelines](https://github.com/state-alchemists/zrb/pulls) | [Report an Issue](https://github.com/state-alchemists/zrb/issues)
|
51
|
+
|
52
|
+
---
|
53
|
+
|
54
|
+
## 🔥 Why Choose Zrb?
|
55
|
+
|
56
|
+
Zrb is designed to be powerful yet intuitive, offering a unique blend of features:
|
57
|
+
|
58
|
+
- 🤖 **Built-in LLM Integration:** Go beyond simple automation. Leverage Large Language Models to generate code, create diagrams, produce documentation, and more.
|
59
|
+
- 🐍 **Pure Python:** Write your tasks in Python. No complex DSLs or YAML configurations to learn.
|
60
|
+
- 🔗 **Smart Task Chaining:** Define dependencies between tasks to build sophisticated, ordered workflows.
|
61
|
+
- 💻 **Dual-Mode Execution:** Run tasks from the command line for speed or use the built-in web UI for a more visual experience.
|
62
|
+
- ⚙️ **Flexible Configuration:** Manage inputs with defaults, prompts, or command-line arguments. Handle secrets and settings with environment variables from the system or `.env` files.
|
63
|
+
- 🗣️ **Cross-Communication (XCom):** Allow tasks to safely exchange small pieces of data.
|
64
|
+
- 🌍 **Open & Extensible:** Zrb is open-source. Feel free to contribute, customize, or extend it to meet your needs.
|
65
|
+
|
66
|
+
---
|
67
|
+
|
68
|
+
## 🚀 Quick Start: Your First AI-Powered Workflow in 5 Minutes
|
69
|
+
|
70
|
+
Let's create a two-step workflow that uses an LLM to analyze your code and generate a Mermaid diagram, then converts that diagram into a PNG image.
|
71
|
+
|
72
|
+
### 1. Prerequisites: Get Your Tools Ready
|
73
|
+
|
74
|
+
Before you start, make sure you have the following:
|
75
|
+
|
76
|
+
- **An LLM API Key:** Zrb needs an API key to talk to an AI model.
|
77
|
+
```bash
|
78
|
+
export OPENAI_API_KEY="your-key-here"
|
79
|
+
```
|
80
|
+
> Zrb defaults to OpenAI, but you can easily configure it for other providers like **Deepseek, Ollama, etc.** See the [LLM Integration Guide](https://github.com/state-alchemists/zrb/blob/main/docs/installation-and-configuration/configuration/llm-integration.md) for details.
|
81
|
+
|
82
|
+
- **Mermaid CLI:** This tool converts Mermaid diagram scripts into images.
|
83
|
+
```bash
|
84
|
+
npm install -g @mermaid-js/mermaid-cli
|
85
|
+
```
|
86
|
+
|
87
|
+
### 2. Install Zrb
|
88
|
+
|
89
|
+
The easiest way to get Zrb is with `pip`.
|
90
|
+
|
91
|
+
```bash
|
92
|
+
pip install zrb
|
93
|
+
# Or for the latest pre-release version:
|
94
|
+
# pip install --pre zrb
|
95
|
+
```
|
96
|
+
|
97
|
+
Alternatively, you can use an installation script that handles all prerequisites:
|
98
|
+
```bash
|
99
|
+
bash -c "$(curl -fsSL https://raw.githubusercontent.com/state-alchemists/zrb/main/install.sh)"
|
100
|
+
```
|
101
|
+
|
102
|
+
> For other installation methods, including **Docker 🐋** and **Android 📱**, check out the full [Installation Guide](https://github.com/state-alchemists/zrb/blob/main/docs/installation-and-configuration/README.md).
|
103
|
+
|
104
|
+
### 3. Define Your Tasks
|
105
|
+
|
106
|
+
Create a file named `zrb_init.py` in your project directory. Zrb automatically discovers this file.
|
107
|
+
|
108
|
+
> **💡 Pro Tip:** You can place `zrb_init.py` in your home directory (`~/zrb_init.py`), and the tasks you define will be available globally across all your projects!
|
109
|
+
|
110
|
+
Add the following Python code to your `zrb_init.py`:
|
111
|
+
|
112
|
+
```python
|
113
|
+
from zrb import cli, LLMTask, CmdTask, StrInput, Group
|
114
|
+
from zrb.builtin.llm.tool.code import analyze_repo
|
115
|
+
from zrb.builtin.llm.tool.file import write_to_file
|
116
|
+
|
117
|
+
|
118
|
+
# Create a group for Mermaid-related tasks
|
119
|
+
mermaid_group = cli.add_group(Group(
|
120
|
+
name="mermaid",
|
121
|
+
description="🧜 Mermaid diagram related tasks"
|
122
|
+
))
|
123
|
+
|
124
|
+
# Task 1: Generate a Mermaid script from your source code
|
125
|
+
make_mermaid_script = mermaid_group.add_task(
|
126
|
+
LLMTask(
|
127
|
+
name="make-script",
|
128
|
+
description="Create a mermaid diagram from source code in the current directory",
|
129
|
+
input=[
|
130
|
+
StrInput(name="dir", default="./"),
|
131
|
+
StrInput(name="diagram", default="state-diagram"),
|
132
|
+
],
|
133
|
+
message=(
|
134
|
+
"Read all necessary files in {ctx.input.dir}, "
|
135
|
+
"make a {ctx.input.diagram} in mermaid format. "
|
136
|
+
"Write the script into `{ctx.input.dir}/{ctx.input.diagram}.mmd`"
|
137
|
+
),
|
138
|
+
tools=[
|
139
|
+
analyze_repo, write_to_file
|
140
|
+
],
|
141
|
+
)
|
142
|
+
)
|
143
|
+
|
144
|
+
# Task 2: Convert the Mermaid script into a PNG image
|
145
|
+
make_mermaid_image = mermaid_group.add_task(
|
146
|
+
CmdTask(
|
147
|
+
name="make-image",
|
148
|
+
description="Create a PNG from a mermaid script",
|
149
|
+
input=[
|
150
|
+
StrInput(name="dir", default="./"),
|
151
|
+
StrInput(name="diagram", default="state-diagram"),
|
152
|
+
],
|
153
|
+
cmd="mmdc -i '{ctx.input.diagram}.mmd' -o '{ctx.input.diagram}.png'",
|
154
|
+
cwd="{ctx.input.dir}",
|
155
|
+
)
|
156
|
+
)
|
157
|
+
|
158
|
+
# Set up the dependency: the image task runs after the script is created
|
159
|
+
make_mermaid_script >> make_mermaid_image
|
160
|
+
```
|
161
|
+
|
162
|
+
### 4. Run Your Workflow!
|
163
|
+
|
164
|
+
Now, navigate to any project with source code. For example:
|
165
|
+
|
166
|
+
```bash
|
167
|
+
git clone git@github.com:jjinux/gotetris.git
|
168
|
+
cd gotetris
|
169
|
+
```
|
170
|
+
|
171
|
+
Run your new task to generate the diagram:
|
172
|
+
|
173
|
+
```bash
|
174
|
+
zrb mermaid make-image --diagram "state-diagram" --dir ./
|
175
|
+
```
|
176
|
+
|
177
|
+
You can also run it interactively and let Zrb prompt you for inputs:
|
178
|
+
```bash
|
179
|
+
zrb mermaid make-image
|
180
|
+
```
|
181
|
+
Zrb will ask for the directory and diagram name—just press **Enter** to accept the defaults.
|
182
|
+
|
183
|
+
In moments, you'll have a beautiful state diagram of your code!
|
184
|
+
|
185
|
+

|
186
|
+
|
187
|
+
---
|
188
|
+
|
189
|
+
## 🖥️ Try the Web UI
|
190
|
+
|
191
|
+
Prefer a graphical interface? Zrb has you covered. Start the web server:
|
192
|
+
|
193
|
+
```bash
|
194
|
+
zrb server start
|
195
|
+
```
|
196
|
+
|
197
|
+
Then open your browser to `http://localhost:21213` to see your tasks in a clean, user-friendly interface.
|
198
|
+
|
199
|
+

|
200
|
+
|
201
|
+
---
|
202
|
+
|
203
|
+
## 💬 Interact with an LLM Directly
|
204
|
+
|
205
|
+
Zrb brings AI capabilities right to your command line.
|
206
|
+
|
207
|
+
### Interactive Chat
|
208
|
+
|
209
|
+
Start a chat session with an LLM to ask questions, brainstorm ideas, or get coding help.
|
210
|
+
|
211
|
+
```bash
|
212
|
+
zrb llm chat
|
213
|
+
```
|
214
|
+
|
215
|
+
### Quick Questions
|
216
|
+
|
217
|
+
For a single question, use the `ask` command for a fast response.
|
218
|
+
|
219
|
+
```bash
|
220
|
+
zrb llm ask "What is the capital of Indonesia?"
|
221
|
+
```
|
222
|
+
|
223
|
+
---
|
224
|
+
|
225
|
+
## 🎥 Demo & Documentation
|
226
|
+
|
227
|
+
- **Dive Deeper:** [**Explore the Full Zrb Documentation**](https://github.com/state-alchemists/zrb/blob/main/docs/README.md)
|
228
|
+
- **Watch the Video Demo:**
|
229
|
+
|
230
|
+
[](https://www.youtube.com/watch?v=W7dgk96l__o)
|
231
|
+
|
232
|
+
---
|
233
|
+
|
234
|
+
## 🤝 Join the Community & Support the Project
|
235
|
+
|
236
|
+
- **Bugs & Feature Requests:** Found a bug or have a great idea? [Open an issue](https://github.com/state-alchemists/zrb/issues). Please include your Zrb version (`zrb version`) and steps to reproduce the issue.
|
237
|
+
- **Contributions:** We love pull requests! See our [contribution guidelines](https://github.com/state-alchemists/zrb/pulls) to get started.
|
238
|
+
- **Support Zrb:** If you find Zrb valuable, please consider showing your support.
|
239
|
+
|
240
|
+
[](https://stalchmst.com)
|
241
|
+
|
242
|
+
---
|
243
|
+
|
244
|
+
## 🎉 Fun Fact
|
245
|
+
|
246
|
+
**Did you know?** Zrb is named after `Zaruba`, a powerful, sentient Madou Ring that acts as a guide and support tool in the *Garo* universe.
|
247
|
+
|
248
|
+
> *Madou Ring Zaruba (魔導輪ザルバ, Madōrin Zaruba) is a Madougu which supports bearers of the Garo Armor.* [(Garo Wiki | Fandom)](https://garo.fandom.com/wiki/Zaruba)
|
249
|
+
|
250
|
+

|
zrb-1.9.6/README.md
ADDED
@@ -0,0 +1,209 @@
|
|
1
|
+

|
2
|
+
|
3
|
+
# 🤖 Zrb: Your Automation Powerhouse
|
4
|
+
|
5
|
+
**Zrb (Zaruba) is a Python-based tool that makes it easy to create, organize, and run automation tasks.** Think of it as a command-line sidekick, ready to handle everything from simple scripts to complex, AI-powered workflows.
|
6
|
+
|
7
|
+
Whether you're running tasks from the terminal or a sleek web UI, Zrb streamlines your process with task dependencies, environment management, and even inter-task communication.
|
8
|
+
|
9
|
+
[Documentation](https://github.com/state-alchemists/zrb/blob/main/docs/README.md) | [Contribution Guidelines](https://github.com/state-alchemists/zrb/pulls) | [Report an Issue](https://github.com/state-alchemists/zrb/issues)
|
10
|
+
|
11
|
+
---
|
12
|
+
|
13
|
+
## 🔥 Why Choose Zrb?
|
14
|
+
|
15
|
+
Zrb is designed to be powerful yet intuitive, offering a unique blend of features:
|
16
|
+
|
17
|
+
- 🤖 **Built-in LLM Integration:** Go beyond simple automation. Leverage Large Language Models to generate code, create diagrams, produce documentation, and more.
|
18
|
+
- 🐍 **Pure Python:** Write your tasks in Python. No complex DSLs or YAML configurations to learn.
|
19
|
+
- 🔗 **Smart Task Chaining:** Define dependencies between tasks to build sophisticated, ordered workflows.
|
20
|
+
- 💻 **Dual-Mode Execution:** Run tasks from the command line for speed or use the built-in web UI for a more visual experience.
|
21
|
+
- ⚙️ **Flexible Configuration:** Manage inputs with defaults, prompts, or command-line arguments. Handle secrets and settings with environment variables from the system or `.env` files.
|
22
|
+
- 🗣️ **Cross-Communication (XCom):** Allow tasks to safely exchange small pieces of data.
|
23
|
+
- 🌍 **Open & Extensible:** Zrb is open-source. Feel free to contribute, customize, or extend it to meet your needs.
|
24
|
+
|
25
|
+
---
|
26
|
+
|
27
|
+
## 🚀 Quick Start: Your First AI-Powered Workflow in 5 Minutes
|
28
|
+
|
29
|
+
Let's create a two-step workflow that uses an LLM to analyze your code and generate a Mermaid diagram, then converts that diagram into a PNG image.
|
30
|
+
|
31
|
+
### 1. Prerequisites: Get Your Tools Ready
|
32
|
+
|
33
|
+
Before you start, make sure you have the following:
|
34
|
+
|
35
|
+
- **An LLM API Key:** Zrb needs an API key to talk to an AI model.
|
36
|
+
```bash
|
37
|
+
export OPENAI_API_KEY="your-key-here"
|
38
|
+
```
|
39
|
+
> Zrb defaults to OpenAI, but you can easily configure it for other providers like **Deepseek, Ollama, etc.** See the [LLM Integration Guide](https://github.com/state-alchemists/zrb/blob/main/docs/installation-and-configuration/configuration/llm-integration.md) for details.
|
40
|
+
|
41
|
+
- **Mermaid CLI:** This tool converts Mermaid diagram scripts into images.
|
42
|
+
```bash
|
43
|
+
npm install -g @mermaid-js/mermaid-cli
|
44
|
+
```
|
45
|
+
|
46
|
+
### 2. Install Zrb
|
47
|
+
|
48
|
+
The easiest way to get Zrb is with `pip`.
|
49
|
+
|
50
|
+
```bash
|
51
|
+
pip install zrb
|
52
|
+
# Or for the latest pre-release version:
|
53
|
+
# pip install --pre zrb
|
54
|
+
```
|
55
|
+
|
56
|
+
Alternatively, you can use an installation script that handles all prerequisites:
|
57
|
+
```bash
|
58
|
+
bash -c "$(curl -fsSL https://raw.githubusercontent.com/state-alchemists/zrb/main/install.sh)"
|
59
|
+
```
|
60
|
+
|
61
|
+
> For other installation methods, including **Docker 🐋** and **Android 📱**, check out the full [Installation Guide](https://github.com/state-alchemists/zrb/blob/main/docs/installation-and-configuration/README.md).
|
62
|
+
|
63
|
+
### 3. Define Your Tasks
|
64
|
+
|
65
|
+
Create a file named `zrb_init.py` in your project directory. Zrb automatically discovers this file.
|
66
|
+
|
67
|
+
> **💡 Pro Tip:** You can place `zrb_init.py` in your home directory (`~/zrb_init.py`), and the tasks you define will be available globally across all your projects!
|
68
|
+
|
69
|
+
Add the following Python code to your `zrb_init.py`:
|
70
|
+
|
71
|
+
```python
|
72
|
+
from zrb import cli, LLMTask, CmdTask, StrInput, Group
|
73
|
+
from zrb.builtin.llm.tool.code import analyze_repo
|
74
|
+
from zrb.builtin.llm.tool.file import write_to_file
|
75
|
+
|
76
|
+
|
77
|
+
# Create a group for Mermaid-related tasks
|
78
|
+
mermaid_group = cli.add_group(Group(
|
79
|
+
name="mermaid",
|
80
|
+
description="🧜 Mermaid diagram related tasks"
|
81
|
+
))
|
82
|
+
|
83
|
+
# Task 1: Generate a Mermaid script from your source code
|
84
|
+
make_mermaid_script = mermaid_group.add_task(
|
85
|
+
LLMTask(
|
86
|
+
name="make-script",
|
87
|
+
description="Create a mermaid diagram from source code in the current directory",
|
88
|
+
input=[
|
89
|
+
StrInput(name="dir", default="./"),
|
90
|
+
StrInput(name="diagram", default="state-diagram"),
|
91
|
+
],
|
92
|
+
message=(
|
93
|
+
"Read all necessary files in {ctx.input.dir}, "
|
94
|
+
"make a {ctx.input.diagram} in mermaid format. "
|
95
|
+
"Write the script into `{ctx.input.dir}/{ctx.input.diagram}.mmd`"
|
96
|
+
),
|
97
|
+
tools=[
|
98
|
+
analyze_repo, write_to_file
|
99
|
+
],
|
100
|
+
)
|
101
|
+
)
|
102
|
+
|
103
|
+
# Task 2: Convert the Mermaid script into a PNG image
|
104
|
+
make_mermaid_image = mermaid_group.add_task(
|
105
|
+
CmdTask(
|
106
|
+
name="make-image",
|
107
|
+
description="Create a PNG from a mermaid script",
|
108
|
+
input=[
|
109
|
+
StrInput(name="dir", default="./"),
|
110
|
+
StrInput(name="diagram", default="state-diagram"),
|
111
|
+
],
|
112
|
+
cmd="mmdc -i '{ctx.input.diagram}.mmd' -o '{ctx.input.diagram}.png'",
|
113
|
+
cwd="{ctx.input.dir}",
|
114
|
+
)
|
115
|
+
)
|
116
|
+
|
117
|
+
# Set up the dependency: the image task runs after the script is created
|
118
|
+
make_mermaid_script >> make_mermaid_image
|
119
|
+
```
|
120
|
+
|
121
|
+
### 4. Run Your Workflow!
|
122
|
+
|
123
|
+
Now, navigate to any project with source code. For example:
|
124
|
+
|
125
|
+
```bash
|
126
|
+
git clone git@github.com:jjinux/gotetris.git
|
127
|
+
cd gotetris
|
128
|
+
```
|
129
|
+
|
130
|
+
Run your new task to generate the diagram:
|
131
|
+
|
132
|
+
```bash
|
133
|
+
zrb mermaid make-image --diagram "state-diagram" --dir ./
|
134
|
+
```
|
135
|
+
|
136
|
+
You can also run it interactively and let Zrb prompt you for inputs:
|
137
|
+
```bash
|
138
|
+
zrb mermaid make-image
|
139
|
+
```
|
140
|
+
Zrb will ask for the directory and diagram name—just press **Enter** to accept the defaults.
|
141
|
+
|
142
|
+
In moments, you'll have a beautiful state diagram of your code!
|
143
|
+
|
144
|
+

|
145
|
+
|
146
|
+
---
|
147
|
+
|
148
|
+
## 🖥️ Try the Web UI
|
149
|
+
|
150
|
+
Prefer a graphical interface? Zrb has you covered. Start the web server:
|
151
|
+
|
152
|
+
```bash
|
153
|
+
zrb server start
|
154
|
+
```
|
155
|
+
|
156
|
+
Then open your browser to `http://localhost:21213` to see your tasks in a clean, user-friendly interface.
|
157
|
+
|
158
|
+

|
159
|
+
|
160
|
+
---
|
161
|
+
|
162
|
+
## 💬 Interact with an LLM Directly
|
163
|
+
|
164
|
+
Zrb brings AI capabilities right to your command line.
|
165
|
+
|
166
|
+
### Interactive Chat
|
167
|
+
|
168
|
+
Start a chat session with an LLM to ask questions, brainstorm ideas, or get coding help.
|
169
|
+
|
170
|
+
```bash
|
171
|
+
zrb llm chat
|
172
|
+
```
|
173
|
+
|
174
|
+
### Quick Questions
|
175
|
+
|
176
|
+
For a single question, use the `ask` command for a fast response.
|
177
|
+
|
178
|
+
```bash
|
179
|
+
zrb llm ask "What is the capital of Indonesia?"
|
180
|
+
```
|
181
|
+
|
182
|
+
---
|
183
|
+
|
184
|
+
## 🎥 Demo & Documentation
|
185
|
+
|
186
|
+
- **Dive Deeper:** [**Explore the Full Zrb Documentation**](https://github.com/state-alchemists/zrb/blob/main/docs/README.md)
|
187
|
+
- **Watch the Video Demo:**
|
188
|
+
|
189
|
+
[](https://www.youtube.com/watch?v=W7dgk96l__o)
|
190
|
+
|
191
|
+
---
|
192
|
+
|
193
|
+
## 🤝 Join the Community & Support the Project
|
194
|
+
|
195
|
+
- **Bugs & Feature Requests:** Found a bug or have a great idea? [Open an issue](https://github.com/state-alchemists/zrb/issues). Please include your Zrb version (`zrb version`) and steps to reproduce the issue.
|
196
|
+
- **Contributions:** We love pull requests! See our [contribution guidelines](https://github.com/state-alchemists/zrb/pulls) to get started.
|
197
|
+
- **Support Zrb:** If you find Zrb valuable, please consider showing your support.
|
198
|
+
|
199
|
+
[](https://stalchmst.com)
|
200
|
+
|
201
|
+
---
|
202
|
+
|
203
|
+
## 🎉 Fun Fact
|
204
|
+
|
205
|
+
**Did you know?** Zrb is named after `Zaruba`, a powerful, sentient Madou Ring that acts as a guide and support tool in the *Garo* universe.
|
206
|
+
|
207
|
+
> *Madou Ring Zaruba (魔導輪ザルバ, Madōrin Zaruba) is a Madougu which supports bearers of the Garo Armor.* [(Garo Wiki | Fandom)](https://garo.fandom.com/wiki/Zaruba)
|
208
|
+
|
209
|
+

|
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "zrb"
|
3
|
-
version = "1.9.
|
3
|
+
version = "1.9.6"
|
4
4
|
description = "Your Automation Powerhouse"
|
5
5
|
authors = ["Go Frendi Gunawan <gofrendiasgard@gmail.com>"]
|
6
6
|
license = "AGPL-3.0-or-later"
|
@@ -83,4 +83,3 @@ zrb = "zrb.__main__:serve_cli"
|
|
83
83
|
[build-system]
|
84
84
|
requires = ["poetry-core>=1.0.0"]
|
85
85
|
build-backend = "poetry.core.masonry.api"
|
86
|
-
|
@@ -14,7 +14,7 @@ _LAZY_LOAD = {
|
|
14
14
|
"CmdResult": "zrb.cmd.cmd_result",
|
15
15
|
"Cmd": "zrb.cmd.cmd_val",
|
16
16
|
"CmdPath": "zrb.cmd.cmd_val",
|
17
|
-
"CFG": "zrb.config",
|
17
|
+
"CFG": "zrb.config.config",
|
18
18
|
"AnyContentTransformer": "zrb.content_transformer.any_content_transformer",
|
19
19
|
"ContentTransformer": "zrb.content_transformer.content_transformer",
|
20
20
|
"AnyContext": "zrb.context.any_context",
|
@@ -36,10 +36,10 @@ _LAZY_LOAD = {
|
|
36
36
|
"PasswordInput": "zrb.input.password_input",
|
37
37
|
"StrInput": "zrb.input.str_input",
|
38
38
|
"TextInput": "zrb.input.text_input",
|
39
|
-
"llm_config": "zrb.llm_config",
|
40
|
-
"llm_rate_limitter": "zrb.llm_rate_limitter",
|
39
|
+
"llm_config": "zrb.config.llm_config",
|
40
|
+
"llm_rate_limitter": "zrb.config.llm_rate_limitter",
|
41
41
|
"cli": "zrb.runner.cli",
|
42
|
-
"web_auth_config": "zrb.
|
42
|
+
"web_auth_config": "zrb.config.web_auth_config",
|
43
43
|
"User": "zrb.runner.web_schema.user",
|
44
44
|
"Session": "zrb.session.session",
|
45
45
|
"AnyTask": "zrb.task.any_task",
|
@@ -74,7 +74,10 @@ if TYPE_CHECKING:
|
|
74
74
|
from zrb.callback.callback import Callback
|
75
75
|
from zrb.cmd.cmd_result import CmdResult
|
76
76
|
from zrb.cmd.cmd_val import Cmd, CmdPath
|
77
|
-
from zrb.config import CFG
|
77
|
+
from zrb.config.config import CFG
|
78
|
+
from zrb.config.llm_config import llm_config
|
79
|
+
from zrb.config.llm_rate_limitter import llm_rate_limitter
|
80
|
+
from zrb.config.web_auth_config import web_auth_config
|
78
81
|
from zrb.content_transformer.any_content_transformer import AnyContentTransformer
|
79
82
|
from zrb.content_transformer.content_transformer import ContentTransformer
|
80
83
|
from zrb.context.any_context import AnyContext
|
@@ -96,10 +99,7 @@ if TYPE_CHECKING:
|
|
96
99
|
from zrb.input.password_input import PasswordInput
|
97
100
|
from zrb.input.str_input import StrInput
|
98
101
|
from zrb.input.text_input import TextInput
|
99
|
-
from zrb.llm_config import llm_config
|
100
|
-
from zrb.llm_rate_limitter import llm_rate_limitter
|
101
102
|
from zrb.runner.cli import cli
|
102
|
-
from zrb.runner.web_auth_config import web_auth_config
|
103
103
|
from zrb.runner.web_schema.user import User
|
104
104
|
from zrb.session.session import Session
|
105
105
|
from zrb.task.any_task import AnyTask
|
@@ -43,53 +43,3 @@ from zrb.builtin.uuid import (
|
|
43
43
|
validate_uuid_v4,
|
44
44
|
validate_uuid_v5,
|
45
45
|
)
|
46
|
-
|
47
|
-
assert create_project
|
48
|
-
assert add_fastapp_to_project
|
49
|
-
assert get_shell_subcommands
|
50
|
-
assert make_bash_autocomplete
|
51
|
-
assert make_zsh_autocomplete
|
52
|
-
assert encode_base64
|
53
|
-
assert decode_base64
|
54
|
-
assert validate_base64
|
55
|
-
assert encode_jwt
|
56
|
-
assert decode_jwt
|
57
|
-
assert validate_jwt
|
58
|
-
assert llm_ask
|
59
|
-
assert hash_md5
|
60
|
-
assert sum_md5
|
61
|
-
assert validate_md5
|
62
|
-
assert get_git_diff
|
63
|
-
assert prune_local_branches
|
64
|
-
assert format_python_code
|
65
|
-
assert git_commit
|
66
|
-
assert git_pull
|
67
|
-
assert git_push
|
68
|
-
assert git_add_subtree
|
69
|
-
assert git_pull_subtree
|
70
|
-
assert git_push_subtree
|
71
|
-
assert list_todo
|
72
|
-
assert add_todo
|
73
|
-
assert archive_todo
|
74
|
-
assert edit_todo
|
75
|
-
assert complete_todo
|
76
|
-
assert log_todo
|
77
|
-
assert show_todo
|
78
|
-
assert throw_dice
|
79
|
-
assert shuffle_values
|
80
|
-
assert setup_ubuntu
|
81
|
-
assert setup_latex_on_ubuntu
|
82
|
-
assert setup_asdf
|
83
|
-
assert setup_tmux
|
84
|
-
assert setup_zsh
|
85
|
-
assert validate_uuid
|
86
|
-
assert validate_uuid_v1
|
87
|
-
assert validate_uuid_v3
|
88
|
-
assert validate_uuid_v4
|
89
|
-
assert validate_uuid_v5
|
90
|
-
assert generate_uuid_v1
|
91
|
-
assert generate_uuid_v3
|
92
|
-
assert generate_uuid_v4
|
93
|
-
assert generate_uuid_v5
|
94
|
-
assert http_request
|
95
|
-
assert generate_curl
|
@@ -7,8 +7,8 @@ conversation flow via XCom.
|
|
7
7
|
|
8
8
|
import asyncio
|
9
9
|
|
10
|
+
from zrb.config.llm_config import llm_config
|
10
11
|
from zrb.context.any_context import AnyContext
|
11
|
-
from zrb.llm_config import llm_config
|
12
12
|
from zrb.util.cli.style import stylize_bold_yellow, stylize_faint
|
13
13
|
|
14
14
|
|
@@ -2,7 +2,7 @@ import json
|
|
2
2
|
import os
|
3
3
|
from typing import Any
|
4
4
|
|
5
|
-
from zrb.config import CFG
|
5
|
+
from zrb.config.config import CFG
|
6
6
|
from zrb.context.any_shared_context import AnySharedContext
|
7
7
|
from zrb.task.llm.history import ConversationHistoryData
|
8
8
|
from zrb.util.file import read_file, write_file
|
@@ -7,10 +7,10 @@ from zrb.builtin.llm.tool.cli import run_shell_command
|
|
7
7
|
from zrb.builtin.llm.tool.code import analyze_repo
|
8
8
|
from zrb.builtin.llm.tool.file import (
|
9
9
|
analyze_file,
|
10
|
-
apply_diff,
|
11
10
|
list_files,
|
12
11
|
read_from_file,
|
13
12
|
read_many_files,
|
13
|
+
replace_in_file,
|
14
14
|
search_files,
|
15
15
|
write_many_files,
|
16
16
|
write_to_file,
|
@@ -22,7 +22,7 @@ from zrb.builtin.llm.tool.web import (
|
|
22
22
|
search_wikipedia,
|
23
23
|
)
|
24
24
|
from zrb.callback.callback import Callback
|
25
|
-
from zrb.config import CFG
|
25
|
+
from zrb.config.config import CFG
|
26
26
|
from zrb.input.bool_input import BoolInput
|
27
27
|
from zrb.input.str_input import StrInput
|
28
28
|
from zrb.input.text_input import TextInput
|
@@ -135,7 +135,7 @@ if CFG.LLM_ALLOW_ACCESS_LOCAL_FILE:
|
|
135
135
|
list_files,
|
136
136
|
read_from_file,
|
137
137
|
read_many_files,
|
138
|
-
|
138
|
+
replace_in_file,
|
139
139
|
write_to_file,
|
140
140
|
write_many_files,
|
141
141
|
)
|
@@ -3,11 +3,16 @@ from typing import Literal
|
|
3
3
|
|
4
4
|
|
5
5
|
def get_current_location() -> str:
|
6
|
-
"""
|
6
|
+
"""
|
7
|
+
Fetches the user's current geographical location (latitude and longitude) based on their IP address.
|
8
|
+
|
9
|
+
Use this tool when the user asks "Where am I?", "What is my current location?", or has a query that requires knowing their location to be answered.
|
10
|
+
|
7
11
|
Returns:
|
8
|
-
str: JSON string
|
12
|
+
str: A JSON string containing the 'lat' and 'lon' of the current location.
|
13
|
+
Example: '{"lat": 48.8584, "lon": 2.2945}'
|
9
14
|
Raises:
|
10
|
-
requests.RequestException: If the API request fails.
|
15
|
+
requests.RequestException: If the API request to the location service fails.
|
11
16
|
"""
|
12
17
|
import requests
|
13
18
|
|
@@ -24,15 +29,20 @@ def get_current_weather(
|
|
24
29
|
longitude: float,
|
25
30
|
temperature_unit: Literal["celsius", "fahrenheit"],
|
26
31
|
) -> str:
|
27
|
-
"""
|
32
|
+
"""
|
33
|
+
Retrieves the current weather conditions for a given geographical location.
|
34
|
+
|
35
|
+
Use this tool when the user asks about the weather. If the user does not provide a location, first use the `get_current_location` tool to determine their location.
|
36
|
+
|
28
37
|
Args:
|
29
|
-
latitude (float):
|
30
|
-
longitude (float):
|
31
|
-
temperature_unit (Literal["celsius", "fahrenheit"]):
|
38
|
+
latitude (float): The latitude of the location.
|
39
|
+
longitude (float): The longitude of the location.
|
40
|
+
temperature_unit (Literal["celsius", "fahrenheit"]): The desired unit for the temperature reading.
|
41
|
+
|
32
42
|
Returns:
|
33
|
-
str: JSON string
|
43
|
+
str: A JSON string containing detailed weather data, including temperature, wind speed, and weather code.
|
34
44
|
Raises:
|
35
|
-
requests.RequestException: If the API request fails.
|
45
|
+
requests.RequestException: If the API request to the weather service fails.
|
36
46
|
"""
|
37
47
|
import requests
|
38
48
|
|