zrb 1.15.27__tar.gz → 1.16.1__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.15.27 → zrb-1.16.1}/PKG-INFO +2 -1
- {zrb-1.15.27 → zrb-1.16.1}/pyproject.toml +2 -1
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/llm/chat_session.py +33 -29
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/llm/llm_ask.py +1 -1
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/llm/tool/api.py +2 -2
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/llm/tool/cli.py +2 -1
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/llm/tool/code.py +22 -29
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/llm/tool/file.py +24 -25
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/llm/tool/rag.py +4 -2
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/llm/tool/sub_agent.py +5 -5
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/llm/tool/web.py +15 -12
- zrb-1.16.1/src/zrb/config/default_prompt/file_extractor_system_prompt.md +112 -0
- zrb-1.16.1/src/zrb/config/default_prompt/interactive_system_prompt.md +34 -0
- zrb-1.16.1/src/zrb/config/default_prompt/repo_extractor_system_prompt.md +112 -0
- zrb-1.16.1/src/zrb/config/default_prompt/repo_summarizer_system_prompt.md +29 -0
- zrb-1.16.1/src/zrb/config/default_prompt/summarization_prompt.md +16 -0
- zrb-1.16.1/src/zrb/config/default_prompt/system_prompt.md +30 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/config/llm_context/config.py +122 -110
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/config/llm_context/config_parser.py +0 -6
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/input/text_input.py +0 -4
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/llm/conversation_history.py +2 -2
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/llm/history_summarization_tool.py +2 -2
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/llm/prompt.py +12 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/file.py +2 -0
- zrb-1.15.27/src/zrb/config/default_prompt/file_extractor_system_prompt.md +0 -112
- zrb-1.15.27/src/zrb/config/default_prompt/interactive_system_prompt.md +0 -32
- zrb-1.15.27/src/zrb/config/default_prompt/repo_extractor_system_prompt.md +0 -112
- zrb-1.15.27/src/zrb/config/default_prompt/repo_summarizer_system_prompt.md +0 -29
- zrb-1.15.27/src/zrb/config/default_prompt/summarization_prompt.md +0 -16
- zrb-1.15.27/src/zrb/config/default_prompt/system_prompt.md +0 -29
- {zrb-1.15.27 → zrb-1.16.1}/README.md +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/__main__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/attr/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/attr/type.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/base64.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/git.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/git_subtree.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/group.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/http.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/jwt.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/llm/history.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/llm/input.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/llm/previous-session.js +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/llm/tool/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/md5.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_input.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_task.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.coveragerc +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.flake8 +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.gitignore +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/README.md +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_task.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_util.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/config.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_task.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_util.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/schema/my_entity.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/client_method.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/gateway_subroute.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/navigation_config_file.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/format_task.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/group.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/input.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_task.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_util.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/module_task_definition.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/navigation_config_file.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task_util.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/util.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/venv_task.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/app_factory.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_db_repository.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_service.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/db_engine_factory.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/error.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/logger_factory.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/parser_factory.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/schema.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/app.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/parser.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/user_agent.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/view.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/config.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/main.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/alembic.ini +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_api_client.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client_factory.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_direct_client.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/README +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/env.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/script.py.mako +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/3093c7336477_add_auth_tables.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/8ed025bcc845_create_permissions.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration_metadata.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/route.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service_factory.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_db_repository.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository_factory.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_db_repository.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository_factory.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service_factory.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_db_repository.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository_factory.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service_factory.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/alembic.ini +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/config/navigation.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/README +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/env.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/script.py.mako +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/versions/.gitkeep +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration_metadata.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/route.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/schema/navigation.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/subroute/auth.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/auth.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/view.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/permission.html +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/role.html +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/user.html +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/error.html +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/homepage.html +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/login.html +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/logout.html +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/common/util.js +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/style.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/util.js +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/pico-style.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/script.js +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/style.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-192x192.png +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-512x512.png +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/favicon-32x32.png +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.min.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/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.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/template/default.html +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/requirements.txt +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/permission.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/role.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/user.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/template.env +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/_util/access_token.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_create_permission.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_delete_permission.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_read_permission.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_update_permission.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/test_user_session.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_health_and_readiness.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_homepage.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_not_found_error.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test.sh +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/add/fastapp/fastapp_util.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/create/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/create/project-template/README.md +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/create/project-template/zrb_init.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/project/create/project_task.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/python.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/random.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/setup/asdf/asdf.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/setup/asdf/asdf_helper.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/setup/common_input.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/setup/latex/ubuntu.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/setup/tmux/tmux.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/setup/tmux/tmux_config.sh +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/setup/tmux/tmux_helper.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/setup/ubuntu.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/setup/zsh/zsh.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/setup/zsh/zsh_config.sh +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/setup/zsh/zsh_helper.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/shell/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/shell/autocomplete/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/shell/autocomplete/bash.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/shell/autocomplete/subcmd.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/shell/autocomplete/zsh.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/todo.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/builtin/uuid.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/callback/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/callback/any_callback.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/callback/callback.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/cmd/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/cmd/cmd_result.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/cmd/cmd_val.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/config/config.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/config/default_prompt/persona.md +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/config/llm_config.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/config/llm_rate_limitter.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/config/web_auth_config.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/content_transformer/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/content_transformer/any_content_transformer.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/content_transformer/content_transformer.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/context/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/context/any_context.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/context/any_shared_context.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/context/context.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/context/shared_context.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/dot_dict/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/dot_dict/dot_dict.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/env/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/env/any_env.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/env/env.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/env/env_file.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/env/env_map.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/group/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/group/any_group.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/group/group.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/input/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/input/any_input.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/input/base_input.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/input/bool_input.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/input/float_input.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/input/int_input.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/input/option_input.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/input/password_input.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/input/str_input.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/cli.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/common_util.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_app.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/docs_route.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/error_page/serve_default_404.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/error_page/show_error_page.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/error_page/view.html +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/home_page/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/home_page/home_page_route.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/home_page/view.html +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/login_api_route.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/login_page/login_page_route.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/login_page/view.html +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/logout_api_route.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/logout_page/logout_page_route.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/logout_page/view.html +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/node_page/group/show_group_page.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/node_page/group/view.html +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/node_page/node_page_route.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/node_page/task/partial/input.html +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/node_page/task/show_task_page.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/node_page/task/view.html +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/refresh_token_api_route.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/global_template.html +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/refresh-token.template.js +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/common.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/common.js +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/favicon-32x32.png +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/login/event.js +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/logout/event.js +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/pico-css/pico.amber.min.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/pico-css/pico.blue.min.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/pico-css/pico.cyan.min.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/pico-css/pico.fuchsia.min.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/pico-css/pico.green.min.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/pico-css/pico.grey.min.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/pico-css/pico.indigo.min.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/pico-css/pico.jade.min.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/pico-css/pico.lime.min.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/pico-css/pico.min.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/pico-css/pico.orange.min.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/pico-css/pico.pink.min.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/pico-css/pico.pumpkin.min.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/pico-css/pico.purple.min.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/pico-css/pico.red.min.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/pico-css/pico.sand.min.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/pico-css/pico.slate.min.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/pico-css/pico.violet.min.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/pico-css/pico.yellow.min.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/pico-css/pico.zinc.min.css +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/session/common-util.js +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/session/current-session.js +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/session/event.js +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/resources/session/past-session.js +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/static/static_route.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/task_input_api_route.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_route/task_session_api_route.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_schema/session.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_schema/token.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_schema/user.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_util/cookie.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_util/html.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_util/token.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/runner/web_util/user.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/session/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/session/any_session.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/session/session.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/session_state_log/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/session_state_log/session_state_log.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/session_state_logger/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/session_state_logger/any_session_state_logger.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/session_state_logger/file_session_state_logger.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/session_state_logger/session_state_logger_factory.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/any_task.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/base/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/base/context.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/base/execution.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/base/lifecycle.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/base/monitoring.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/base/operators.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/base_task.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/base_trigger.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/cmd_task.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/http_check.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/llm/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/llm/agent.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/llm/config.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/llm/conversation_history_model.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/llm/default_workflow/coding.md +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/llm/default_workflow/copywriting.md +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/llm/default_workflow/researching.md +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/llm/error.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/llm/history_summarization.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/llm/print_node.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/llm/tool_wrapper.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/llm/typing.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/llm_task.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/make_task.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/rsync_task.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/scaffolder.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/scheduler.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/task.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task/tcp_check.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task_status/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/task_status/task_status.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/attr.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/callable.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/cli/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/cli/markdown.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/cli/style.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/cli/subcommand.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/cli/text.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/cmd/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/cmd/command.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/cmd/remote.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/codemod/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/codemod/modification_mode.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/codemod/modify_class.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/codemod/modify_class_parent.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/codemod/modify_class_property.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/codemod/modify_dict.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/codemod/modify_function.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/codemod/modify_function_call.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/codemod/modify_method.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/codemod/modify_module.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/cron.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/git.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/git_diff_model.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/git_subtree.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/git_subtree_model.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/group.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/init_path.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/llm/prompt.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/load.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/run.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/string/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/string/conversion.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/string/format.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/string/name.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/todo.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/todo_model.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/util/truncate.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/xcom/__init__.py +0 -0
- {zrb-1.15.27 → zrb-1.16.1}/src/zrb/xcom/xcom.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: zrb
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.16.1
|
4
4
|
Summary: Your Automation Powerhouse
|
5
5
|
License: AGPL-3.0-or-later
|
6
6
|
Keywords: Automation,Task Runner,Code Generator,Monorepo,Low Code
|
@@ -37,6 +37,7 @@ Requires-Dist: requests (>=2.32.2,<3.0.0)
|
|
37
37
|
Requires-Dist: rich (>=13)
|
38
38
|
Requires-Dist: tiktoken (>=0.8.0,<0.9.0)
|
39
39
|
Requires-Dist: ulid-py (>=1.1.0,<2.0.0)
|
40
|
+
Requires-Dist: xmltodict (>=1.0.2,<2.0.0)
|
40
41
|
Project-URL: Documentation, https://github.com/state-alchemists/zrb
|
41
42
|
Project-URL: Homepage, https://github.com/state-alchemists/zrb
|
42
43
|
Project-URL: Repository, https://github.com/state-alchemists/zrb
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "zrb"
|
3
|
-
version = "1.
|
3
|
+
version = "1.16.1"
|
4
4
|
description = "Your Automation Powerhouse"
|
5
5
|
authors = ["Go Frendi Gunawan <gofrendiasgard@gmail.com>"]
|
6
6
|
license = "AGPL-3.0-or-later"
|
@@ -64,6 +64,7 @@ playwright = {version = "^1.54.0", optional = true}
|
|
64
64
|
chromadb = {version = "^0.6.3", optional = true}
|
65
65
|
markdownify = "^1.2.0"
|
66
66
|
pyjwt = "^2.10.1"
|
67
|
+
xmltodict = "^1.0.2"
|
67
68
|
|
68
69
|
[tool.poetry.extras]
|
69
70
|
# poetry install -E rag
|
@@ -21,17 +21,22 @@ async def read_user_prompt(ctx: AnyContext) -> str:
|
|
21
21
|
Orchestrates the session by calling helper functions.
|
22
22
|
"""
|
23
23
|
_show_info(ctx)
|
24
|
-
|
25
|
-
if ctx.is_web_mode:
|
26
|
-
return final_result
|
27
|
-
is_tty = ctx.is_tty
|
24
|
+
is_tty: bool = ctx.is_tty
|
28
25
|
reader = await _setup_input_reader(is_tty)
|
29
26
|
multiline_mode = False
|
30
|
-
|
31
|
-
|
32
|
-
|
27
|
+
is_first_time = True
|
28
|
+
current_modes: str = ctx.input.modes
|
29
|
+
current_yolo_mode: bool | str = ctx.input.yolo
|
30
|
+
user_inputs: list[str] = []
|
31
|
+
final_result: str = ""
|
33
32
|
while True:
|
34
33
|
await asyncio.sleep(0.01)
|
34
|
+
previous_session_name: str | None = (
|
35
|
+
ctx.input.previous_session if is_first_time else None
|
36
|
+
)
|
37
|
+
start_new: bool = ctx.input.start_new if is_first_time else False
|
38
|
+
if is_first_time:
|
39
|
+
is_first_time = False
|
35
40
|
# Get user input based on mode
|
36
41
|
if not multiline_mode:
|
37
42
|
ctx.print("💬 >>", plain=True)
|
@@ -43,7 +48,12 @@ async def read_user_prompt(ctx: AnyContext) -> str:
|
|
43
48
|
user_prompt = "\n".join(user_inputs)
|
44
49
|
user_inputs = []
|
45
50
|
result = await _trigger_ask_and_wait_for_result(
|
46
|
-
ctx,
|
51
|
+
ctx=ctx,
|
52
|
+
user_prompt=user_prompt,
|
53
|
+
modes=current_modes,
|
54
|
+
yolo_mode=current_yolo_mode,
|
55
|
+
previous_session_name=previous_session_name,
|
56
|
+
start_new=start_new,
|
47
57
|
)
|
48
58
|
if result is not None:
|
49
59
|
final_result = result
|
@@ -56,10 +66,17 @@ async def read_user_prompt(ctx: AnyContext) -> str:
|
|
56
66
|
user_prompt = "\n".join(user_inputs)
|
57
67
|
user_inputs = []
|
58
68
|
result = await _trigger_ask_and_wait_for_result(
|
59
|
-
ctx,
|
69
|
+
ctx=ctx,
|
70
|
+
user_prompt=user_prompt,
|
71
|
+
modes=current_modes,
|
72
|
+
yolo_mode=current_yolo_mode,
|
73
|
+
previous_session_name=previous_session_name,
|
74
|
+
start_new=start_new,
|
60
75
|
)
|
61
76
|
if result is not None:
|
62
77
|
final_result = result
|
78
|
+
if ctx.is_web_mode or not is_tty:
|
79
|
+
return final_result
|
63
80
|
elif user_input.strip().lower().startswith("/mode"):
|
64
81
|
mode_parts = user_input.split(" ", maxsplit=2)
|
65
82
|
if len(mode_parts) > 1:
|
@@ -84,11 +101,16 @@ async def read_user_prompt(ctx: AnyContext) -> str:
|
|
84
101
|
user_prompt = "\n".join(user_inputs)
|
85
102
|
user_inputs = []
|
86
103
|
result = await _trigger_ask_and_wait_for_result(
|
87
|
-
ctx,
|
104
|
+
ctx=ctx,
|
105
|
+
user_prompt=user_prompt,
|
106
|
+
modes=current_modes,
|
107
|
+
yolo_mode=current_yolo_mode,
|
108
|
+
previous_session_name=previous_session_name,
|
109
|
+
start_new=start_new,
|
88
110
|
)
|
89
111
|
if result is not None:
|
90
112
|
final_result = result
|
91
|
-
if ctx.is_web_mode:
|
113
|
+
if ctx.is_web_mode or not is_tty:
|
92
114
|
return final_result
|
93
115
|
return final_result
|
94
116
|
|
@@ -129,24 +151,6 @@ def _show_subcommand(command: str, description: str) -> str:
|
|
129
151
|
return f" {styled_command} {styled_description}"
|
130
152
|
|
131
153
|
|
132
|
-
async def _handle_initial_message(ctx: AnyContext) -> str:
|
133
|
-
"""Processes the initial message from the command line."""
|
134
|
-
if not ctx.input.message or ctx.input.message.strip() == "":
|
135
|
-
return ""
|
136
|
-
ctx.print("💬 >>", plain=True)
|
137
|
-
ctx.print(ctx.input.message, plain=True)
|
138
|
-
ctx.print("", plain=True)
|
139
|
-
result = await _trigger_ask_and_wait_for_result(
|
140
|
-
ctx,
|
141
|
-
user_prompt=ctx.input.message,
|
142
|
-
modes=ctx.input.modes,
|
143
|
-
yolo_mode=ctx.input.yolo,
|
144
|
-
previous_session_name=ctx.input.previous_session,
|
145
|
-
start_new=ctx.input.start_new,
|
146
|
-
)
|
147
|
-
return result if result is not None else ""
|
148
|
-
|
149
|
-
|
150
154
|
async def _setup_input_reader(is_interactive: bool):
|
151
155
|
"""Sets up and returns the appropriate asynchronous input reader."""
|
152
156
|
if is_interactive:
|
@@ -193,7 +193,7 @@ llm_ask: LLMTask = llm_group.add_task(
|
|
193
193
|
llm_group.add_task(
|
194
194
|
BaseTrigger(
|
195
195
|
name="llm-chat",
|
196
|
-
input=_llm_ask_inputs,
|
196
|
+
input=[input for input in _llm_ask_inputs if input.name != "message"],
|
197
197
|
description="💬 Chat with LLM",
|
198
198
|
queue_name="ask_trigger",
|
199
199
|
action=read_user_prompt,
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from typing import Literal
|
1
|
+
from typing import Any, Literal
|
2
2
|
|
3
3
|
|
4
4
|
def get_current_location() -> dict[str, float]:
|
@@ -31,7 +31,7 @@ def get_current_weather(
|
|
31
31
|
latitude: float,
|
32
32
|
longitude: float,
|
33
33
|
temperature_unit: Literal["celsius", "fahrenheit"],
|
34
|
-
) -> str:
|
34
|
+
) -> dict[str, Any]:
|
35
35
|
"""
|
36
36
|
Retrieves the current weather conditions for a given geographical location.
|
37
37
|
|
@@ -57,20 +57,19 @@ async def analyze_repo(
|
|
57
57
|
summarization_token_threshold: int | None = None,
|
58
58
|
) -> str:
|
59
59
|
"""
|
60
|
-
Performs a
|
60
|
+
Performs a high-level, goal-oriented analysis of a code repository or directory.
|
61
61
|
|
62
|
-
This
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
understanding of a codebase.
|
62
|
+
This tool recursively reads all relevant files in a directory, extracts
|
63
|
+
key information, and then summarizes that information in relation to a specific
|
64
|
+
goal. It uses intelligent sub-agents for extraction and summarization, making it
|
65
|
+
ideal for complex tasks that require a holistic understanding of a codebase.
|
67
66
|
|
68
67
|
To ensure a focused and effective analysis, it is crucial to provide a
|
69
68
|
clear and specific goal. Vague goals will result in a vague analysis and
|
70
|
-
may cause
|
69
|
+
may cause low quality result.
|
71
70
|
|
72
|
-
Make sure to skim the repository or directory first
|
73
|
-
effective parameters.
|
71
|
+
Make sure to skim the repository or directory first (e.g., by list the file
|
72
|
+
names or read the README/docs file) so that you can put effective parameters.
|
74
73
|
|
75
74
|
Use this tool for:
|
76
75
|
- Understanding a large or unfamiliar codebase.
|
@@ -78,8 +77,6 @@ async def analyze_repo(
|
|
78
77
|
- Performing a preliminary code review.
|
79
78
|
- Creating documentation or diagrams (e.g., "Generate a Mermaid C4 diagram
|
80
79
|
for this service").
|
81
|
-
- Answering broad questions like "How does the authentication in this
|
82
|
-
project work?".
|
83
80
|
|
84
81
|
Args:
|
85
82
|
path (str): The path to the directory or repository to analyze.
|
@@ -182,7 +179,7 @@ async def _extract_info(
|
|
182
179
|
file_str = json.dumps(file_obj)
|
183
180
|
if current_token_count + llm_rate_limitter.count_token(file_str) > token_limit:
|
184
181
|
if content_buffer:
|
185
|
-
prompt = _create_extract_info_prompt(goal, content_buffer)
|
182
|
+
prompt = json.dumps(_create_extract_info_prompt(goal, content_buffer))
|
186
183
|
extracted_info = await extract(
|
187
184
|
ctx, llm_rate_limitter.clip_prompt(prompt, token_limit)
|
188
185
|
)
|
@@ -195,7 +192,7 @@ async def _extract_info(
|
|
195
192
|
|
196
193
|
# Process any remaining content in the buffer
|
197
194
|
if content_buffer:
|
198
|
-
prompt = _create_extract_info_prompt(goal, content_buffer)
|
195
|
+
prompt = json.dumps(_create_extract_info_prompt(goal, content_buffer))
|
199
196
|
extracted_info = await extract(
|
200
197
|
ctx, llm_rate_limitter.clip_prompt(prompt, token_limit)
|
201
198
|
)
|
@@ -203,13 +200,11 @@ async def _extract_info(
|
|
203
200
|
return extracted_infos
|
204
201
|
|
205
202
|
|
206
|
-
def _create_extract_info_prompt(goal: str, content_buffer: list[dict]) ->
|
207
|
-
return
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
}
|
212
|
-
)
|
203
|
+
def _create_extract_info_prompt(goal: str, content_buffer: list[dict]) -> dict:
|
204
|
+
return {
|
205
|
+
"main_assistant_goal": goal,
|
206
|
+
"files": content_buffer,
|
207
|
+
}
|
213
208
|
|
214
209
|
|
215
210
|
async def _summarize_info(
|
@@ -229,7 +224,7 @@ async def _summarize_info(
|
|
229
224
|
new_prompt = content_buffer + extracted_info
|
230
225
|
if llm_rate_limitter.count_token(new_prompt) > token_limit:
|
231
226
|
if content_buffer:
|
232
|
-
prompt = _create_summarize_info_prompt(goal, content_buffer)
|
227
|
+
prompt = json.dumps(_create_summarize_info_prompt(goal, content_buffer))
|
233
228
|
summarized_info = await summarize(
|
234
229
|
ctx, llm_rate_limitter.clip_prompt(prompt, token_limit)
|
235
230
|
)
|
@@ -240,7 +235,7 @@ async def _summarize_info(
|
|
240
235
|
|
241
236
|
# Process any remaining content in the buffer
|
242
237
|
if content_buffer:
|
243
|
-
prompt = _create_summarize_info_prompt(goal, content_buffer)
|
238
|
+
prompt = json.dumps(_create_summarize_info_prompt(goal, content_buffer))
|
244
239
|
summarized_info = await summarize(
|
245
240
|
ctx, llm_rate_limitter.clip_prompt(prompt, token_limit)
|
246
241
|
)
|
@@ -248,10 +243,8 @@ async def _summarize_info(
|
|
248
243
|
return summarized_infos
|
249
244
|
|
250
245
|
|
251
|
-
def _create_summarize_info_prompt(goal: str, content_buffer: str) ->
|
252
|
-
return
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
}
|
257
|
-
)
|
246
|
+
def _create_summarize_info_prompt(goal: str, content_buffer: str) -> dict:
|
247
|
+
return {
|
248
|
+
"main_assistant_goal": goal,
|
249
|
+
"extracted_info": content_buffer,
|
250
|
+
}
|
@@ -98,12 +98,13 @@ def list_files(
|
|
98
98
|
recursive: bool = True,
|
99
99
|
include_hidden: bool = False,
|
100
100
|
excluded_patterns: Optional[list[str]] = None,
|
101
|
-
) -> str:
|
101
|
+
) -> dict[str, list[str]]:
|
102
102
|
"""
|
103
103
|
Lists the files and directories within a specified path.
|
104
104
|
|
105
105
|
This is a fundamental tool for exploring the file system. Use it to
|
106
106
|
discover the structure of a directory, find specific files, or get a
|
107
|
+
|
107
108
|
general overview of the project layout before performing other operations.
|
108
109
|
|
109
110
|
Args:
|
@@ -120,9 +121,9 @@ def list_files(
|
|
120
121
|
standard list of common exclusion patterns.
|
121
122
|
|
122
123
|
Returns:
|
123
|
-
str: A
|
124
|
+
dict[str, list[str]]: A dictionary containing a list of file and directory paths
|
124
125
|
relative to the input path.
|
125
|
-
Example:
|
126
|
+
Example: {"files": ["src/main.py", "README.md"]}
|
126
127
|
Raises:
|
127
128
|
FileNotFoundError: If the specified path does not exist.
|
128
129
|
"""
|
@@ -173,14 +174,14 @@ def list_files(
|
|
173
174
|
# Return paths relative to the original path requested
|
174
175
|
try:
|
175
176
|
rel_files = [os.path.relpath(f, abs_path) for f in all_files]
|
176
|
-
return
|
177
|
+
return {"files": sorted(rel_files)}
|
177
178
|
except (
|
178
179
|
ValueError
|
179
180
|
) as e: # Handle case where path is '.' and abs_path is CWD root
|
180
181
|
if "path is on mount '" in str(e) and "' which is not on mount '" in str(e):
|
181
182
|
# If paths are on different mounts, just use absolute paths
|
182
183
|
rel_files = all_files
|
183
|
-
return
|
184
|
+
return {"files": sorted(rel_files)}
|
184
185
|
raise
|
185
186
|
except (OSError, IOError) as e:
|
186
187
|
raise OSError(f"Error listing files in {path}: {e}")
|
@@ -221,7 +222,7 @@ def read_from_file(
|
|
221
222
|
path: str,
|
222
223
|
start_line: Optional[int] = None,
|
223
224
|
end_line: Optional[int] = None,
|
224
|
-
) -> str:
|
225
|
+
) -> dict[str, Any]:
|
225
226
|
"""
|
226
227
|
Reads the content of a file, optionally from a specific start line to an
|
227
228
|
end line.
|
@@ -244,7 +245,7 @@ def read_from_file(
|
|
244
245
|
(inclusive). If omitted, reads to the end of the file.
|
245
246
|
|
246
247
|
Returns:
|
247
|
-
str: A
|
248
|
+
dict[str, Any]: A dictionary containing the file path, the requested content
|
248
249
|
with line numbers, the start and end lines, and the total number
|
249
250
|
of lines in the file.
|
250
251
|
Example:
|
@@ -282,15 +283,13 @@ def read_from_file(
|
|
282
283
|
# Select the lines for the result
|
283
284
|
selected_lines = lines[start_idx:end_idx]
|
284
285
|
content_result = "\n".join(selected_lines)
|
285
|
-
return
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
}
|
293
|
-
)
|
286
|
+
return {
|
287
|
+
"path": path,
|
288
|
+
"content": content_result,
|
289
|
+
"start_line": start_idx + 1, # Convert back to 1-based for output
|
290
|
+
"end_line": end_idx, # end_idx is already exclusive upper bound
|
291
|
+
"total_lines": total_lines,
|
292
|
+
}
|
294
293
|
except (OSError, IOError) as e:
|
295
294
|
raise OSError(f"Error reading file {path}: {e}")
|
296
295
|
except Exception as e:
|
@@ -300,7 +299,7 @@ def read_from_file(
|
|
300
299
|
def write_to_file(
|
301
300
|
path: str,
|
302
301
|
content: str,
|
303
|
-
) -> str:
|
302
|
+
) -> dict[str, Any]:
|
304
303
|
"""
|
305
304
|
Writes content to a file, completely overwriting it if it exists or
|
306
305
|
creating it if it doesn't.
|
@@ -317,7 +316,7 @@ def write_to_file(
|
|
317
316
|
|
318
317
|
Returns:
|
319
318
|
dict[str, Any]: A dictionary indicating success or failure.
|
320
|
-
Example:
|
319
|
+
Example: {"success": true, "path": "new_file.txt"}
|
321
320
|
"""
|
322
321
|
try:
|
323
322
|
abs_path = os.path.abspath(os.path.expanduser(path))
|
@@ -338,7 +337,7 @@ def search_files(
|
|
338
337
|
regex: str,
|
339
338
|
file_pattern: Optional[str] = None,
|
340
339
|
include_hidden: bool = True,
|
341
|
-
) -> str:
|
340
|
+
) -> dict[str, Any]:
|
342
341
|
"""
|
343
342
|
Searches for a regular expression (regex) pattern within files in a
|
344
343
|
specified directory.
|
@@ -452,7 +451,7 @@ def replace_in_file(
|
|
452
451
|
path: str,
|
453
452
|
old_string: str,
|
454
453
|
new_string: str,
|
455
|
-
) -> str:
|
454
|
+
) -> dict[str, Any]:
|
456
455
|
"""
|
457
456
|
Replaces the first occurrence of a string in a file.
|
458
457
|
|
@@ -496,7 +495,7 @@ def replace_in_file(
|
|
496
495
|
|
497
496
|
async def analyze_file(
|
498
497
|
ctx: AnyContext, path: str, query: str, token_limit: int | None = None
|
499
|
-
) -> str:
|
498
|
+
) -> dict[str, Any]:
|
500
499
|
"""
|
501
500
|
Performs a deep, goal-oriented analysis of a single file using a sub-agent.
|
502
501
|
|
@@ -529,7 +528,7 @@ async def analyze_file(
|
|
529
528
|
content to be passed to the analysis sub-agent.
|
530
529
|
|
531
530
|
Returns:
|
532
|
-
str: A detailed, markdown-formatted analysis of the file, tailored to
|
531
|
+
dict[str, Any]: A detailed, markdown-formatted analysis of the file, tailored to
|
533
532
|
the specified query.
|
534
533
|
Raises:
|
535
534
|
FileNotFoundError: If the specified file does not exist.
|
@@ -553,7 +552,7 @@ async def analyze_file(
|
|
553
552
|
return await _analyze_file(ctx, clipped_payload)
|
554
553
|
|
555
554
|
|
556
|
-
def read_many_files(paths: list[str]) -> str:
|
555
|
+
def read_many_files(paths: list[str]) -> dict[str, str]:
|
557
556
|
"""
|
558
557
|
Reads and returns the full content of multiple files at once.
|
559
558
|
|
@@ -586,7 +585,7 @@ def read_many_files(paths: list[str]) -> str:
|
|
586
585
|
return results
|
587
586
|
|
588
587
|
|
589
|
-
def write_many_files(files: list[FileToWrite]) -> str:
|
588
|
+
def write_many_files(files: list[FileToWrite]) -> dict[str, Any]:
|
590
589
|
"""
|
591
590
|
Writes content to multiple files in a single, atomic operation.
|
592
591
|
|
@@ -604,7 +603,7 @@ def write_many_files(files: list[FileToWrite]) -> str:
|
|
604
603
|
containing a 'path' and the complete 'content'.
|
605
604
|
|
606
605
|
Returns:
|
607
|
-
str: A dictionary summarizing the operation, listing successfully
|
606
|
+
dict[str, Any]: A dictionary summarizing the operation, listing successfully
|
608
607
|
written files and any files that failed, along with corresponding
|
609
608
|
error messages.
|
610
609
|
Example: {"success": ["file1.py", "file2.txt"], "errors": {}}
|
@@ -5,6 +5,7 @@ import os
|
|
5
5
|
import sys
|
6
6
|
from collections.abc import Callable
|
7
7
|
from textwrap import dedent
|
8
|
+
from typing import Any
|
8
9
|
|
9
10
|
import ulid
|
10
11
|
|
@@ -86,7 +87,7 @@ def create_rag_from_directory(
|
|
86
87
|
Callable: An asynchronous function that serves as the RAG tool.
|
87
88
|
"""
|
88
89
|
|
89
|
-
async def retrieve(query: str) -> str:
|
90
|
+
async def retrieve(query: str) -> dict[str, Any]:
|
90
91
|
# Docstring will be set dynamically below
|
91
92
|
from chromadb import PersistentClient
|
92
93
|
from chromadb.config import Settings
|
@@ -210,7 +211,8 @@ def create_rag_from_directory(
|
|
210
211
|
Args:
|
211
212
|
query (str): The user query to search for in documents.
|
212
213
|
Returns:
|
213
|
-
str: dictionary with search results:
|
214
|
+
dict[str, Any]: dictionary with search results:
|
215
|
+
{{"ids": [...], "documents": [...], ...}}
|
214
216
|
"""
|
215
217
|
).strip()
|
216
218
|
return retrieve
|
@@ -27,7 +27,7 @@ def create_sub_agent_tool(
|
|
27
27
|
toolsets: list["AbstractToolset[Agent]"] = [],
|
28
28
|
yolo_mode: bool | list[str] | None = None,
|
29
29
|
log_indent_level: int = 2,
|
30
|
-
) -> Callable[[AnyContext, str], Coroutine[Any, Any, str]]:
|
30
|
+
) -> Callable[[AnyContext, str], Coroutine[Any, Any, dict[str, Any]]]:
|
31
31
|
"""
|
32
32
|
Creates a "tool that is another AI agent," capable of handling complex,
|
33
33
|
multi-step sub-tasks.
|
@@ -61,7 +61,7 @@ def create_sub_agent_tool(
|
|
61
61
|
its final result.
|
62
62
|
"""
|
63
63
|
|
64
|
-
async def run_sub_agent(ctx: AnyContext, query: str) -> str:
|
64
|
+
async def run_sub_agent(ctx: AnyContext, query: str) -> dict[str, Any]:
|
65
65
|
"""
|
66
66
|
Runs the sub-agent with the given query.
|
67
67
|
"""
|
@@ -116,8 +116,8 @@ def create_sub_agent_tool(
|
|
116
116
|
|
117
117
|
# Return the sub-agent's final message content
|
118
118
|
if sub_agent_run and sub_agent_run.result:
|
119
|
-
# Return the final message content
|
120
|
-
return
|
119
|
+
# Return the final message content
|
120
|
+
return {"result": sub_agent_run.result.output}
|
121
121
|
ctx.log_warning("Sub-agent run did not produce a result.")
|
122
122
|
raise ValueError(f"{tool_name} not returning any result")
|
123
123
|
|
@@ -131,7 +131,7 @@ def create_sub_agent_tool(
|
|
131
131
|
query (str): The query or task for the sub-agent.
|
132
132
|
|
133
133
|
Returns:
|
134
|
-
str: The final response or result from the sub-agent.
|
134
|
+
dict[str, Any]: The final response or result from the sub-agent.
|
135
135
|
"""
|
136
136
|
).strip()
|
137
137
|
|
@@ -1,11 +1,11 @@
|
|
1
|
-
import json
|
2
1
|
from collections.abc import Callable
|
2
|
+
from typing import Any
|
3
3
|
from urllib.parse import urljoin
|
4
4
|
|
5
5
|
_DEFAULT_USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" # noqa
|
6
6
|
|
7
7
|
|
8
|
-
async def open_web_page(url: str) -> str:
|
8
|
+
async def open_web_page(url: str) -> dict[str, Any]:
|
9
9
|
"""
|
10
10
|
Fetches, parses, and converts the content of a web page to Markdown.
|
11
11
|
|
@@ -20,15 +20,17 @@ async def open_web_page(url: str) -> str:
|
|
20
20
|
"https://example.com/article").
|
21
21
|
|
22
22
|
Returns:
|
23
|
-
str: A
|
23
|
+
dict[str, Any]: A dictionary containing the page's content in Markdown format
|
24
24
|
and a list of all absolute links found on the page.
|
25
25
|
"""
|
26
26
|
html_content, links = await _fetch_page_content(url)
|
27
27
|
markdown_content = _convert_html_to_markdown(html_content)
|
28
|
-
return
|
28
|
+
return {"content": markdown_content, "links_on_page": links}
|
29
29
|
|
30
30
|
|
31
|
-
def create_search_internet_tool(
|
31
|
+
def create_search_internet_tool(
|
32
|
+
serp_api_key: str,
|
33
|
+
) -> Callable[[str, int], dict[str, Any]]:
|
32
34
|
"""
|
33
35
|
Creates a tool that searches the internet using the SerpAPI Google Search
|
34
36
|
API.
|
@@ -45,7 +47,7 @@ def create_search_internet_tool(serp_api_key: str) -> Callable[[str, int], str]:
|
|
45
47
|
search results.
|
46
48
|
"""
|
47
49
|
|
48
|
-
def search_internet(query: str, num_results: int = 10) -> str:
|
50
|
+
def search_internet(query: str, num_results: int = 10) -> dict[str, Any]:
|
49
51
|
"""
|
50
52
|
Performs an internet search using Google and returns a summary of the results.
|
51
53
|
|
@@ -57,7 +59,7 @@ def create_search_internet_tool(serp_api_key: str) -> Callable[[str, int], str]:
|
|
57
59
|
num_results (int, optional): The desired number of search results. Defaults to 10.
|
58
60
|
|
59
61
|
Returns:
|
60
|
-
str: A formatted string summarizing the search results,
|
62
|
+
dict[str, Any]: A formatted string summarizing the search results,
|
61
63
|
including titles, links, and snippets.
|
62
64
|
"""
|
63
65
|
import requests
|
@@ -82,7 +84,7 @@ def create_search_internet_tool(serp_api_key: str) -> Callable[[str, int], str]:
|
|
82
84
|
return search_internet
|
83
85
|
|
84
86
|
|
85
|
-
def search_wikipedia(query: str) -> str:
|
87
|
+
def search_wikipedia(query: str) -> dict[str, Any]:
|
86
88
|
"""
|
87
89
|
Searches for articles on Wikipedia.
|
88
90
|
|
@@ -94,7 +96,7 @@ def search_wikipedia(query: str) -> str:
|
|
94
96
|
query (str): The search term or question.
|
95
97
|
|
96
98
|
Returns:
|
97
|
-
str: The raw JSON response from the Wikipedia API, containing a list of
|
99
|
+
dict[str, Any]: The raw JSON response from the Wikipedia API, containing a list of
|
98
100
|
search results.
|
99
101
|
"""
|
100
102
|
import requests
|
@@ -108,7 +110,7 @@ def search_wikipedia(query: str) -> str:
|
|
108
110
|
return response.json()
|
109
111
|
|
110
112
|
|
111
|
-
def search_arxiv(query: str, num_results: int = 10) -> str:
|
113
|
+
def search_arxiv(query: str, num_results: int = 10) -> dict[str, Any]:
|
112
114
|
"""
|
113
115
|
Searches for academic papers and preprints on ArXiv.
|
114
116
|
|
@@ -123,10 +125,11 @@ def search_arxiv(query: str, num_results: int = 10) -> str:
|
|
123
125
|
Defaults to 10.
|
124
126
|
|
125
127
|
Returns:
|
126
|
-
str: The raw XML response from the ArXiv API, containing a list of
|
128
|
+
dict[str, Any]: The raw XML response from the ArXiv API, containing a list of
|
127
129
|
matching papers.
|
128
130
|
"""
|
129
131
|
import requests
|
132
|
+
import xmltodict
|
130
133
|
|
131
134
|
params = {"search_query": f"all:{query}", "start": 0, "max_results": num_results}
|
132
135
|
response = requests.get(
|
@@ -134,7 +137,7 @@ def search_arxiv(query: str, num_results: int = 10) -> str:
|
|
134
137
|
headers={"User-Agent": _DEFAULT_USER_AGENT},
|
135
138
|
params=params,
|
136
139
|
)
|
137
|
-
return response.content
|
140
|
+
return xmltodict.parse(response.content)
|
138
141
|
|
139
142
|
|
140
143
|
async def _fetch_page_content(url: str) -> tuple[str, list[str]]:
|