zrb 1.16.3__tar.gz → 1.16.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {zrb-1.16.3 → zrb-1.16.4}/PKG-INFO +1 -1
- {zrb-1.16.3 → zrb-1.16.4}/pyproject.toml +1 -1
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/llm/llm_ask.py +14 -3
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/llm/tool/file.py +54 -8
- zrb-1.16.4/src/zrb/builtin/llm/tool/note.py +72 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/config/default_prompt/interactive_system_prompt.md +2 -2
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/config/default_prompt/summarization_prompt.md +1 -6
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/config/llm_context/config.py +1 -1
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/group/any_group.py +3 -7
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/group/group.py +7 -9
- zrb-1.16.4/src/zrb/task/llm/default_workflow/coding.md +64 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/llm/history_summarization.py +0 -17
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/llm/history_summarization_tool.py +2 -14
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/llm/tool_wrapper.py +15 -4
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/llm_task.py +0 -2
- zrb-1.16.3/src/zrb/task/llm/default_workflow/coding.md +0 -24
- {zrb-1.16.3 → zrb-1.16.4}/README.md +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/__main__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/attr/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/attr/type.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/base64.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/git.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/git_subtree.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/group.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/http.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/jwt.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/llm/chat_session.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/llm/chat_trigger.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/llm/history.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/llm/input.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/llm/previous-session.js +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/llm/tool/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/llm/tool/api.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/llm/tool/cli.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/llm/tool/code.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/llm/tool/rag.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/llm/tool/sub_agent.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/llm/tool/web.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/md5.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_input.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_task.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.coveragerc +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.flake8 +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.gitignore +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/README.md +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_task.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_util.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/config.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_task.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_util.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/gateway/view/content/my-module/my-entity.html +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/my_entity_service.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/my_entity_service_factory.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/repository/my_entity_db_repository.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/repository/my_entity_repository.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/repository/my_entity_repository_factory.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/schema/my_entity.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/test/my_module/my_entity/test_create_my_entity.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/test/my_module/my_entity/test_delete_my_entity.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/test/my_module/my_entity/test_read_my_entity.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/test/my_module/my_entity/test_update_my_entity.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/client_method.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/gateway_subroute.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/navigation_config_file.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/format_task.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/group.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/input.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_task.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_util.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/gateway/subroute/my_module.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/alembic.ini +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_api_client.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_client.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_client_factory.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_direct_client.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/README +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/env.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/script.py.mako +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/versions/.gitkeep +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration_metadata.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/route.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/service/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/module_task_definition.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/navigation_config_file.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task_util.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/util.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/venv_task.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/app_factory.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_db_repository.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_service.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/db_engine_factory.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/error.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/logger_factory.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/parser_factory.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/schema.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/app.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/parser.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/user_agent.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/view.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/config.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/main.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/alembic.ini +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_api_client.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client_factory.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_direct_client.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/README +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/env.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/script.py.mako +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/3093c7336477_add_auth_tables.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/8ed025bcc845_create_permissions.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration_metadata.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/route.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service_factory.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_db_repository.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository_factory.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_db_repository.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository_factory.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service_factory.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_db_repository.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository_factory.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service_factory.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/alembic.ini +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/config/navigation.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/README +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/env.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/script.py.mako +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/versions/.gitkeep +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration_metadata.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/route.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/schema/navigation.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/subroute/auth.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/auth.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/view.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/permission.html +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/role.html +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/user.html +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/error.html +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/homepage.html +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/login.html +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/logout.html +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/common/util.js +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/style.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/util.js +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/pico-style.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/script.js +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/style.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-192x192.png +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-512x512.png +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/favicon-32x32.png +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.amber.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.blue.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.cyan.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.fuchsia.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.green.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.grey.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.indigo.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.jade.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.lime.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.orange.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.pink.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.pumpkin.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.purple.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.red.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.sand.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.slate.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.violet.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.yellow.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.zinc.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/template/default.html +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/requirements.txt +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/permission.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/role.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/user.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/template.env +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/_util/access_token.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_create_permission.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_delete_permission.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_read_permission.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_update_permission.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/test_user_session.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_health_and_readiness.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_homepage.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_not_found_error.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test.sh +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_util.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/create/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/create/project-template/README.md +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/create/project-template/zrb_init.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/create/project_task.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/python.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/random.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/setup/asdf/asdf.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/setup/asdf/asdf_helper.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/setup/common_input.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/setup/latex/ubuntu.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/setup/tmux/tmux.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/setup/tmux/tmux_config.sh +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/setup/tmux/tmux_helper.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/setup/ubuntu.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/setup/zsh/zsh.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/setup/zsh/zsh_config.sh +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/setup/zsh/zsh_helper.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/shell/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/shell/autocomplete/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/shell/autocomplete/bash.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/shell/autocomplete/subcmd.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/shell/autocomplete/zsh.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/todo.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/uuid.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/callback/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/callback/any_callback.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/callback/callback.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/cmd/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/cmd/cmd_result.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/cmd/cmd_val.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/config/config.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/config/default_prompt/file_extractor_system_prompt.md +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/config/default_prompt/persona.md +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/config/default_prompt/repo_extractor_system_prompt.md +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/config/default_prompt/repo_summarizer_system_prompt.md +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/config/default_prompt/system_prompt.md +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/config/llm_config.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/config/llm_context/config_parser.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/config/llm_rate_limitter.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/config/web_auth_config.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/content_transformer/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/content_transformer/any_content_transformer.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/content_transformer/content_transformer.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/context/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/context/any_context.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/context/any_shared_context.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/context/context.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/context/shared_context.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/dot_dict/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/dot_dict/dot_dict.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/env/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/env/any_env.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/env/env.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/env/env_file.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/env/env_map.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/group/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/input/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/input/any_input.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/input/base_input.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/input/bool_input.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/input/float_input.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/input/int_input.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/input/option_input.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/input/password_input.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/input/str_input.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/input/text_input.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/cli.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/common_util.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_app.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/docs_route.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/error_page/serve_default_404.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/error_page/show_error_page.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/error_page/view.html +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/home_page/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/home_page/home_page_route.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/home_page/view.html +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/login_api_route.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/login_page/login_page_route.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/login_page/view.html +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/logout_api_route.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/logout_page/logout_page_route.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/logout_page/view.html +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/node_page/group/show_group_page.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/node_page/group/view.html +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/node_page/node_page_route.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/node_page/task/partial/input.html +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/node_page/task/show_task_page.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/node_page/task/view.html +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/refresh_token_api_route.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/global_template.html +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/refresh-token.template.js +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/common.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/common.js +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/favicon-32x32.png +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/login/event.js +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/logout/event.js +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/pico-css/pico.amber.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/pico-css/pico.blue.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/pico-css/pico.cyan.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/pico-css/pico.fuchsia.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/pico-css/pico.green.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/pico-css/pico.grey.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/pico-css/pico.indigo.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/pico-css/pico.jade.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/pico-css/pico.lime.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/pico-css/pico.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/pico-css/pico.orange.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/pico-css/pico.pink.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/pico-css/pico.pumpkin.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/pico-css/pico.purple.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/pico-css/pico.red.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/pico-css/pico.sand.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/pico-css/pico.slate.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/pico-css/pico.violet.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/pico-css/pico.yellow.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/pico-css/pico.zinc.min.css +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/session/common-util.js +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/session/current-session.js +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/session/event.js +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/resources/session/past-session.js +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/static/static_route.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/task_input_api_route.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_route/task_session_api_route.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_schema/session.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_schema/token.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_schema/user.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_util/cookie.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_util/html.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_util/token.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/runner/web_util/user.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/session/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/session/any_session.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/session/session.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/session_state_log/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/session_state_log/session_state_log.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/session_state_logger/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/session_state_logger/any_session_state_logger.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/session_state_logger/file_session_state_logger.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/session_state_logger/session_state_logger_factory.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/any_task.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/base/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/base/context.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/base/execution.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/base/lifecycle.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/base/monitoring.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/base/operators.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/base_task.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/base_trigger.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/cmd_task.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/http_check.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/llm/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/llm/agent.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/llm/config.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/llm/conversation_history.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/llm/conversation_history_model.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/llm/default_workflow/copywriting.md +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/llm/default_workflow/researching.md +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/llm/error.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/llm/print_node.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/llm/prompt.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/llm/typing.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/make_task.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/rsync_task.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/scaffolder.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/scheduler.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/task.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task/tcp_check.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task_status/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/task_status/task_status.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/attr.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/callable.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/cli/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/cli/markdown.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/cli/style.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/cli/subcommand.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/cli/text.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/cmd/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/cmd/command.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/cmd/remote.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/codemod/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/codemod/modification_mode.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/codemod/modify_class.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/codemod/modify_class_parent.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/codemod/modify_class_property.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/codemod/modify_dict.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/codemod/modify_function.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/codemod/modify_function_call.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/codemod/modify_method.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/codemod/modify_module.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/cron.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/file.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/git.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/git_diff_model.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/git_subtree.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/git_subtree_model.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/group.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/init_path.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/llm/prompt.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/load.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/run.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/string/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/string/conversion.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/string/format.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/string/name.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/todo.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/todo_model.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/util/truncate.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/xcom/__init__.py +0 -0
- {zrb-1.16.3 → zrb-1.16.4}/src/zrb/xcom/xcom.py +0 -0
@@ -19,6 +19,12 @@ from zrb.builtin.llm.tool.file import (
|
|
19
19
|
write_many_files,
|
20
20
|
write_to_file,
|
21
21
|
)
|
22
|
+
from zrb.builtin.llm.tool.note import (
|
23
|
+
read_contextual_note,
|
24
|
+
read_long_term_note,
|
25
|
+
write_contextual_note,
|
26
|
+
write_long_term_note,
|
27
|
+
)
|
22
28
|
from zrb.builtin.llm.tool.web import (
|
23
29
|
create_search_internet_tool,
|
24
30
|
open_web_page,
|
@@ -57,7 +63,12 @@ def _get_toolset(ctx: AnyContext) -> list["AbstractToolset[None] | str"]:
|
|
57
63
|
|
58
64
|
|
59
65
|
def _get_tool(ctx: AnyContext) -> list["ToolOrCallable"]:
|
60
|
-
tools = [
|
66
|
+
tools = [
|
67
|
+
read_long_term_note,
|
68
|
+
write_long_term_note,
|
69
|
+
read_contextual_note,
|
70
|
+
write_contextual_note,
|
71
|
+
]
|
61
72
|
if CFG.LLM_ALLOW_ANALYZE_REPO:
|
62
73
|
tools.append(analyze_repo)
|
63
74
|
if CFG.LLM_ALLOW_ANALYZE_FILE:
|
@@ -97,8 +108,8 @@ def _get_default_yolo_mode(ctx: AnyContext) -> str:
|
|
97
108
|
def _render_yolo_mode_input(ctx: AnyContext) -> list[str] | bool | None:
|
98
109
|
if ctx.input.yolo.strip() == "":
|
99
110
|
return None
|
100
|
-
elements = ctx.input.yolo.split(",")
|
101
|
-
if len(elements) ==
|
111
|
+
elements = [element.strip() for element in ctx.input.yolo.split(",")]
|
112
|
+
if len(elements) == 1:
|
102
113
|
try:
|
103
114
|
return to_boolean(elements[0])
|
104
115
|
except Exception:
|
@@ -104,8 +104,10 @@ def list_files(
|
|
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
|
-
|
108
107
|
general overview of the project layout before performing other operations.
|
108
|
+
**NOTE:**
|
109
|
+
User might provide inaccurate file path, so if you failed to read a file,
|
110
|
+
it is a good idea to list the files to get the accurate file path.
|
109
111
|
|
110
112
|
Args:
|
111
113
|
path (str, optional): The directory path to list. Defaults to the
|
@@ -228,9 +230,16 @@ def read_from_file(
|
|
228
230
|
end line.
|
229
231
|
|
230
232
|
This tool is essential for inspecting file contents. It can read both text
|
231
|
-
and PDF files. The
|
232
|
-
|
233
|
-
the
|
233
|
+
and PDF files. The `content` field in the returned dictionary is **always**
|
234
|
+
prefixed with line numbers (`line_number | `) for each line. These prefixes
|
235
|
+
are added by the tool for internal processing and to provide contextual
|
236
|
+
information to the AI agent (e.g., for accurately applying diffs or for
|
237
|
+
referencing specific lines). They are **not** part of the actual file content.
|
238
|
+
|
239
|
+
When presenting the file content to a user, the AI agent **MUST** omit these
|
240
|
+
line number prefixes by default for better readability. They should only
|
241
|
+
be included if explicitly requested by the user or if the request inherently
|
242
|
+
requires line number context (e.g., 'show me lines 10-20').
|
234
243
|
|
235
244
|
Use this tool to:
|
236
245
|
- Examine the source code of a file.
|
@@ -246,18 +255,28 @@ def read_from_file(
|
|
246
255
|
|
247
256
|
Returns:
|
248
257
|
dict[str, Any]: A dictionary containing the file path, the requested content
|
249
|
-
with line numbers, the start and end lines, and the total number
|
258
|
+
(always with line numbers), the start and end lines, and the total number
|
250
259
|
of lines in the file.
|
251
260
|
Example:
|
252
261
|
```
|
253
262
|
{
|
254
263
|
"path": "src/main.py",
|
255
|
-
"content": "1| import os\n2|
|
264
|
+
"content": "1| import os\n2|\n3| print(\"Hello, World!\")",
|
256
265
|
"start_line": 1,
|
257
266
|
"end_line": 3,
|
258
267
|
"total_lines": 3
|
259
268
|
}
|
260
269
|
```
|
270
|
+
If the file 'src/main.py' contains:
|
271
|
+
```
|
272
|
+
import os
|
273
|
+
|
274
|
+
print("Hello, World!")
|
275
|
+
```
|
276
|
+
The 'content' field in the returned dictionary will be:
|
277
|
+
`"1| import os\n2|\n3| print(\"Hello, World!\")"`
|
278
|
+
**IMPORTANT:** The "1|", "2|", "3|" prefixes are NOT part of the
|
279
|
+
original file. They are for internal agent use.
|
261
280
|
Raises:
|
262
281
|
FileNotFoundError: If the specified file does not exist.
|
263
282
|
"""
|
@@ -561,6 +580,17 @@ def read_many_files(paths: list[str]) -> dict[str, str]:
|
|
561
580
|
project relate to each other, or when you need to inspect a set of related
|
562
581
|
configuration or source code files.
|
563
582
|
|
583
|
+
The content for each file in the returned dictionary is **always** prefixed
|
584
|
+
with line numbers (`line_number | `) for each line. These prefixes are added
|
585
|
+
by the tool for internal processing and to provide contextual information to
|
586
|
+
the AI agent (e.g., for accurately applying diffs or for referencing specific
|
587
|
+
lines). They are **not** part of the actual file content.
|
588
|
+
|
589
|
+
When presenting the file content to a user, the AI agent **MUST** omit these
|
590
|
+
line number prefixes by default for better readability. They should only
|
591
|
+
be included if explicitly requested by the user or if the request inherently
|
592
|
+
requires line number context (e.g., 'show me lines 10-20').
|
593
|
+
|
564
594
|
Args:
|
565
595
|
paths (list[str]): A list of paths to the files you want to read. It is
|
566
596
|
crucial to provide accurate paths. Use the `list_files` tool first
|
@@ -568,9 +598,25 @@ def read_many_files(paths: list[str]) -> dict[str, str]:
|
|
568
598
|
|
569
599
|
Returns:
|
570
600
|
dict[str, str]: a dictionary where keys are the file paths and values
|
571
|
-
are their corresponding contents
|
601
|
+
are their corresponding contents (always with line numbers).
|
572
602
|
If a file cannot be read, its value will be an error message.
|
573
|
-
Example:
|
603
|
+
Example:
|
604
|
+
```
|
605
|
+
{
|
606
|
+
"src/api.py": "1| import os\n2|\n3| print("Hello, World!")",
|
607
|
+
"config.yaml": "1| key: value"
|
608
|
+
}
|
609
|
+
```
|
610
|
+
If the file 'src/api.py' contains:
|
611
|
+
```
|
612
|
+
import os
|
613
|
+
|
614
|
+
print("Hello, World!")
|
615
|
+
```
|
616
|
+
The content for 'src/api.py' in the returned dictionary will be:
|
617
|
+
`"1| import os\n2|\n3| print("Hello, World!")"`
|
618
|
+
**IMPORTANT:** The "1|", "2|", "3|" prefixes are NOT part of the
|
619
|
+
original file. They are for internal agent use.
|
574
620
|
"""
|
575
621
|
results = {}
|
576
622
|
for path in paths:
|
@@ -0,0 +1,72 @@
|
|
1
|
+
import os
|
2
|
+
|
3
|
+
from zrb.config.llm_context.config import llm_context_config
|
4
|
+
|
5
|
+
|
6
|
+
def read_long_term_note() -> str:
|
7
|
+
"""
|
8
|
+
Reads the global long-term note.
|
9
|
+
This note is shared across all projects and conversations.
|
10
|
+
|
11
|
+
Returns:
|
12
|
+
The content of the long-term note.
|
13
|
+
"""
|
14
|
+
contexts = llm_context_config.get_notes()
|
15
|
+
return contexts.get("/", "")
|
16
|
+
|
17
|
+
|
18
|
+
def write_long_term_note(content: str) -> str:
|
19
|
+
"""
|
20
|
+
Writes content to the global long-term note.
|
21
|
+
The content of this note is intended to be read by the AI Agent in the future.
|
22
|
+
It should contain global information/preference.
|
23
|
+
|
24
|
+
Args:
|
25
|
+
content: The content to write to the long-term note (overwriting the existing one).
|
26
|
+
|
27
|
+
Returns:
|
28
|
+
A confirmation message.
|
29
|
+
"""
|
30
|
+
llm_context_config.write_note(content, "/")
|
31
|
+
return "Long term note saved"
|
32
|
+
|
33
|
+
|
34
|
+
def read_contextual_note(path: str | None = None) -> str:
|
35
|
+
"""
|
36
|
+
Reads a contextual note for a specific path.
|
37
|
+
If no path is provided, it defaults to the current working directory.
|
38
|
+
|
39
|
+
Args:
|
40
|
+
path: The file or directory path to read the note for.
|
41
|
+
Defaults to the current working directory.
|
42
|
+
|
43
|
+
Returns:
|
44
|
+
The content of the contextual note.
|
45
|
+
"""
|
46
|
+
if path is None:
|
47
|
+
path = os.getcwd()
|
48
|
+
abs_path = os.path.abspath(path)
|
49
|
+
contexts = llm_context_config.get_notes(cwd=abs_path)
|
50
|
+
return contexts.get(abs_path, "")
|
51
|
+
|
52
|
+
|
53
|
+
def write_contextual_note(content: str, path: str | None = None) -> str:
|
54
|
+
"""
|
55
|
+
Writes a contextual note for a specific path.
|
56
|
+
The content of this note is intended to be read by the AI Agent in the future.
|
57
|
+
The content should contain contextual information.
|
58
|
+
|
59
|
+
If no path is provided, it defaults to the current working directory.
|
60
|
+
|
61
|
+
Args:
|
62
|
+
content: The new content of the note (overwriting the existing one).
|
63
|
+
path: The file or directory path to associate the note with.
|
64
|
+
Defaults to the current working directory.
|
65
|
+
|
66
|
+
Returns:
|
67
|
+
A confirmation message indicating where the note was saved.
|
68
|
+
"""
|
69
|
+
if path is None:
|
70
|
+
path = os.getcwd()
|
71
|
+
llm_context_config.write_note(content, path)
|
72
|
+
return f"Contextual note saved to {path}"
|
@@ -1,7 +1,7 @@
|
|
1
1
|
You are an expert interactive AI agent. You MUST follow this workflow for this interactive session. Respond in GitHub-flavored Markdown.
|
2
2
|
|
3
3
|
# Core Principles
|
4
|
-
- **Be Tool-Centric:**
|
4
|
+
- **Be Tool-Centric:** Describe what you are about to do. When a decision is made, call the tool directly. Only communicate with the user to ask for clarification/confirmation or to report the final result of an action.
|
5
5
|
- **Efficiency:** Use your tools to get the job done with the minimum number of steps. Combine commands where possible.
|
6
6
|
- **One Tool at a Time** Only call one tool at a time, wait for the result first before calling the next tool.
|
7
7
|
- **Adhere to Conventions:** When modifying existing files or data, analyze the existing content to match its style and format.
|
@@ -31,4 +31,4 @@ You are an expert interactive AI agent. You MUST follow this workflow for this i
|
|
31
31
|
* **CRITICAL:** Do not ask the user for help or report the failure until you have exhausted all reasonable attempts to fix it yourself.
|
32
32
|
|
33
33
|
5. **Report Results:**
|
34
|
-
* Provide a concise summary of the action taken and explicitly state how you verified it.
|
34
|
+
* Provide a concise summary of the action taken and explicitly state how you verified it.
|
@@ -6,11 +6,6 @@ Follow these instructions carefully:
|
|
6
6
|
2. **Transcript:** Extract ONLY the last 4 (four) turns of the `Recent Conversation` to serve as the new transcript.
|
7
7
|
* **Do not change or shorten the content of these turns, with one exception:** If a tool call returns a very long output, do not include the full output. Instead, briefly summarize the result of the tool call.
|
8
8
|
* Ensure the timestamp format is `[YYYY-MM-DD HH:MM:SS UTC+Z] Role: Message/Tool name being called`.
|
9
|
-
3. **
|
10
|
-
* Update `long_term_note` with global facts about the user.
|
11
|
-
* Update `contextual_note` with facts specific to the current project/directory.
|
12
|
-
* **CRITICAL:** When updating `contextual_note`, you MUST determine the correct `context_path`. For example, if a fact was established when the working directory was `/app`, the `context_path` MUST be `/app`.
|
13
|
-
* **CRITICAL:** Note content must be **brief**, raw, unformatted text, not a log of events. Only update notes if information has changed.
|
14
|
-
4. **Update Memory:** Call the `final_result` tool with all the information you consolidated.
|
9
|
+
3. **Update Memory:** Call the `final_result` tool with all the information you consolidated.
|
15
10
|
|
16
11
|
After you have called the tool, your task is complete.
|
@@ -54,7 +54,7 @@ class LLMContextConfig:
|
|
54
54
|
f.write(new_file_content)
|
55
55
|
|
56
56
|
def get_notes(self, cwd: str | None = None) -> dict[str, str]:
|
57
|
-
"""Gathers all
|
57
|
+
"""Gathers all notes for a given path."""
|
58
58
|
if cwd is None:
|
59
59
|
cwd = os.getcwd()
|
60
60
|
config_file = self._get_home_config_file()
|
@@ -1,13 +1,9 @@
|
|
1
1
|
from abc import ABC, abstractmethod
|
2
|
-
from typing import Generic, TypeVar
|
3
2
|
|
4
3
|
from zrb.task.any_task import AnyTask
|
5
4
|
|
6
|
-
GroupType = TypeVar("GroupType", bound="AnyGroup")
|
7
|
-
TaskType = TypeVar("TaskType", bound=AnyTask)
|
8
5
|
|
9
|
-
|
10
|
-
class AnyGroup(ABC, Generic[GroupType, TaskType]):
|
6
|
+
class AnyGroup(ABC):
|
11
7
|
@property
|
12
8
|
@abstractmethod
|
13
9
|
def name(self) -> str:
|
@@ -39,11 +35,11 @@ class AnyGroup(ABC, Generic[GroupType, TaskType]):
|
|
39
35
|
pass
|
40
36
|
|
41
37
|
@abstractmethod
|
42
|
-
def add_group(self, group:
|
38
|
+
def add_group(self, group: "AnyGroup", alias: str | None) -> "AnyGroup":
|
43
39
|
pass
|
44
40
|
|
45
41
|
@abstractmethod
|
46
|
-
def add_task(self, task:
|
42
|
+
def add_task(self, task: "AnyTask", alias: str | None = None) -> "AnyTask":
|
47
43
|
pass
|
48
44
|
|
49
45
|
@abstractmethod
|
@@ -1,10 +1,8 @@
|
|
1
|
-
from
|
2
|
-
|
3
|
-
from zrb.group.any_group import AnyGroup, GroupType, TaskType
|
1
|
+
from zrb.group.any_group import AnyGroup
|
4
2
|
from zrb.task.any_task import AnyTask
|
5
3
|
|
6
4
|
|
7
|
-
class Group(AnyGroup
|
5
|
+
class Group(AnyGroup):
|
8
6
|
def __init__(
|
9
7
|
self, name: str, description: str | None = None, banner: str | None = None
|
10
8
|
):
|
@@ -35,21 +33,21 @@ class Group(AnyGroup, Generic[GroupType, TaskType]):
|
|
35
33
|
def subgroups(self) -> dict[str, AnyGroup]:
|
36
34
|
names = list(self._groups.keys())
|
37
35
|
names.sort()
|
38
|
-
return {name: self._groups
|
36
|
+
return {name: self._groups[name] for name in names}
|
39
37
|
|
40
38
|
@property
|
41
39
|
def subtasks(self) -> dict[str, AnyTask]:
|
42
40
|
alias = list(self._tasks.keys())
|
43
41
|
alias.sort()
|
44
|
-
return {name: self._tasks
|
42
|
+
return {name: self._tasks[name] for name in alias}
|
45
43
|
|
46
|
-
def add_group(self, group:
|
47
|
-
real_group
|
44
|
+
def add_group(self, group: AnyGroup, alias: str | None = None) -> AnyGroup:
|
45
|
+
real_group = Group(group) if isinstance(group, str) else group
|
48
46
|
alias = alias if alias is not None else real_group.name
|
49
47
|
self._groups[alias] = real_group
|
50
48
|
return real_group
|
51
49
|
|
52
|
-
def add_task(self, task:
|
50
|
+
def add_task(self, task: AnyTask, alias: str | None = None) -> AnyTask:
|
53
51
|
alias = alias if alias is not None else task.name
|
54
52
|
self._tasks[alias] = task
|
55
53
|
return task
|
@@ -0,0 +1,64 @@
|
|
1
|
+
When your primary task is to write, refactor, or fix code, you MUST follow this comprehensive software development workflow. This process is designed to ensure your contributions are safe, high-quality, and align with existing project conventions.
|
2
|
+
|
3
|
+
# 1. Core Mandates & Prohibitions
|
4
|
+
|
5
|
+
These are non-negotiable rules.
|
6
|
+
|
7
|
+
- **Conventions First:** Rigorously adhere to existing project conventions. Your primary goal is to make it look like the existing codebase's author wrote the code.
|
8
|
+
- **Mimic Style & Structure:** Match the formatting, naming, structure, framework choices, typing, and architectural patterns of the code you're editing.
|
9
|
+
- **NEVER Assume Dependencies:** You MUST NOT use a library, framework, or package unless you have first verified it is an existing project dependency (e.g., by checking `package.json`, `requirements.txt`, `pyproject.toml`, etc.).
|
10
|
+
- **NEVER Commit Without Verification:** You MUST NOT use version control tools like `git commit` until you have staged the changes and successfully run the project's own verification steps (tests, linter, build).
|
11
|
+
|
12
|
+
# 2. The Software Development Workflow
|
13
|
+
|
14
|
+
Follow this sequence for all coding tasks.
|
15
|
+
|
16
|
+
### Step 1: Understand & Strategize
|
17
|
+
|
18
|
+
Before writing a single line of code, you MUST gather context.
|
19
|
+
|
20
|
+
- **Analyze the Request:** Break down the user's request into concrete requirements.
|
21
|
+
- **Explore the Codebase:** Use file search and read tools extensively to build a mental model.
|
22
|
+
- **Identify Relevant Files:** Locate the primary files that need modification.
|
23
|
+
- **Discover Conventions:** Look for configuration files (`.eslintrc`, `.prettierrc`, `ruff.toml`, etc.). Analyze surrounding source files to determine naming conventions, typing style, error handling patterns, and architecture.
|
24
|
+
- **Understand the Safety Net:** Find existing tests. Understanding how the project tests its code is critical for your implementation and verification steps.
|
25
|
+
- **Check Dependencies:** Verify that any libraries you plan to use are already part of the project.
|
26
|
+
|
27
|
+
### Step 2: Plan
|
28
|
+
|
29
|
+
Based on your understanding, create and communicate a clear plan.
|
30
|
+
|
31
|
+
- **Formulate a Plan:** Build a coherent, step-by-step plan to implement the required changes.
|
32
|
+
- **Share the Plan:** Present a concise summary of your plan to the user before you begin writing code. This ensures alignment and allows for course correction.
|
33
|
+
|
34
|
+
### Step 3: Implement Idiomatically
|
35
|
+
|
36
|
+
Execute your plan, adhering strictly to the patterns discovered in the "Understand" phase.
|
37
|
+
|
38
|
+
- **Write/Modify Code:** Make the necessary changes.
|
39
|
+
- **CRITICAL: Design for Testability:** Produce code that is easy to test automatically. This is a core principle of good software engineering.
|
40
|
+
- **Prefer `return` over `print`:** Core logic functions MUST `return` values. I/O operations like `print()` should be separated into different, testable functions.
|
41
|
+
- **Embrace Modularity:** Decompose complex tasks into smaller, single-responsibility functions or classes that can be tested independently.
|
42
|
+
- **Use Function Arguments:** Avoid relying on global state. Pass necessary data into functions as arguments to make them pure and predictable.
|
43
|
+
|
44
|
+
### Step 4: Verify with Tests
|
45
|
+
|
46
|
+
This is the first of two critical verification phases. You are responsible for ensuring your changes work as expected.
|
47
|
+
|
48
|
+
- **Run Existing Tests:** Execute the project's full test suite (e.g., `npm run test`, `pytest`).
|
49
|
+
- **Add New Tests:** For new features or bug fixes, add corresponding unit or integration tests to prove your code works and prevent future regressions.
|
50
|
+
- **Debug and Fix:** If any tests fail, you MUST enter a debugging loop. Analyze the errors, fix the code, and re-run the tests until they all pass.
|
51
|
+
|
52
|
+
### Step 5: Verify with Standards
|
53
|
+
|
54
|
+
This second verification phase ensures your code meets the project's quality standards.
|
55
|
+
|
56
|
+
- **Run Linters & Formatters:** Use the project's linting and formatting commands (e.g., `npm run lint`, `ruff check .`).
|
57
|
+
- **Run Build Processes:** If applicable, run the build command (e.g., `npm run build`, `tsc`) to check for compilation or type-checking errors.
|
58
|
+
- **Debug and Fix:** Just as with testing, if any of these checks fail, you MUST debug and fix the issues until all standards are met.
|
59
|
+
|
60
|
+
### Step 6: Finalize
|
61
|
+
|
62
|
+
Only after all verification steps have passed is the task complete.
|
63
|
+
|
64
|
+
- **Await Instruction:** Do not remove any created files (like tests). Await the user's next instruction. If they are satisfied, you can suggest committing the changes.
|
@@ -124,23 +124,6 @@ async def summarize_history(
|
|
124
124
|
json.dumps(truncate_str(conversation_history.history, 1000)),
|
125
125
|
as_code=True,
|
126
126
|
),
|
127
|
-
make_prompt_section(
|
128
|
-
"Notes",
|
129
|
-
"\n".join(
|
130
|
-
[
|
131
|
-
make_prompt_section(
|
132
|
-
"Long Term",
|
133
|
-
conversation_history.long_term_note,
|
134
|
-
as_code=True,
|
135
|
-
),
|
136
|
-
make_prompt_section(
|
137
|
-
"Contextual",
|
138
|
-
conversation_history.contextual_note,
|
139
|
-
as_code=True,
|
140
|
-
),
|
141
|
-
]
|
142
|
-
),
|
143
|
-
),
|
144
127
|
]
|
145
128
|
)
|
146
129
|
summarize = create_history_summarization_tool(conversation_history)
|
@@ -7,32 +7,20 @@ from zrb.task.llm.conversation_history_model import ConversationHistory
|
|
7
7
|
|
8
8
|
def create_history_summarization_tool(
|
9
9
|
conversation_history: ConversationHistory,
|
10
|
-
) -> Callable[[str, str
|
10
|
+
) -> Callable[[str, str], str]:
|
11
11
|
def update_conversation_memory(
|
12
12
|
past_conversation_summary: str,
|
13
13
|
past_conversation_transcript: str,
|
14
|
-
long_term_note: str | None = None,
|
15
|
-
contextual_note: str | None = None,
|
16
|
-
context_path: str | None = None,
|
17
14
|
) -> str:
|
18
15
|
"""
|
19
|
-
Update the conversation memory including summary
|
16
|
+
Update the conversation memory including summary and transcript.
|
20
17
|
- past_conversation_summary: A concise narrative that integrates the
|
21
18
|
previous summary with the recent conversation.
|
22
19
|
- past_conversation_transcript: MUST be ONLY the last 4 (four) turns
|
23
20
|
of the conversation.
|
24
|
-
- long_term_note: Global facts about the user or their preferences.
|
25
|
-
- contextual_note: Facts specific to the current project or directory.
|
26
|
-
- context_path: The directory path for the contextual note.
|
27
21
|
"""
|
28
22
|
conversation_history.past_conversation_summary = past_conversation_summary
|
29
23
|
conversation_history.past_conversation_transcript = past_conversation_transcript
|
30
|
-
if long_term_note is not None:
|
31
|
-
llm_context_config.write_note(long_term_note, context_path="/")
|
32
|
-
if contextual_note is not None:
|
33
|
-
if context_path is None:
|
34
|
-
context_path = conversation_history.project_path
|
35
|
-
llm_context_config.write_note(contextual_note, context_path=context_path)
|
36
24
|
return "Conversation memory updated"
|
37
25
|
|
38
26
|
return update_conversation_memory
|
@@ -111,16 +111,24 @@ def _create_wrapper(
|
|
111
111
|
# somehow provided it.
|
112
112
|
kwargs[any_context_param_name] = ctx
|
113
113
|
try:
|
114
|
+
has_ever_edited = False
|
114
115
|
if not ctx.is_web_mode and ctx.is_tty:
|
115
116
|
if (
|
116
117
|
isinstance(yolo_mode, list) and func.__name__ not in yolo_mode
|
117
118
|
) or not yolo_mode:
|
118
|
-
approval, reason = await _handle_user_response(
|
119
|
+
approval, reason, has_ever_edited = await _handle_user_response(
|
119
120
|
ctx, func, args, kwargs
|
120
121
|
)
|
121
122
|
if not approval:
|
122
123
|
raise ToolExecutionCancelled(f"User disapproving: {reason}")
|
123
|
-
|
124
|
+
result = await run_async(func(*args, **kwargs))
|
125
|
+
if has_ever_edited:
|
126
|
+
return {
|
127
|
+
"tool_call_result": result,
|
128
|
+
"new_tool_parameters": kwargs,
|
129
|
+
"message": "User has intercepted tool call and updated the parameters",
|
130
|
+
}
|
131
|
+
return result
|
124
132
|
except KeyboardInterrupt as e:
|
125
133
|
raise e
|
126
134
|
except Exception as e:
|
@@ -140,7 +148,8 @@ async def _handle_user_response(
|
|
140
148
|
func: Callable,
|
141
149
|
args: list[Any] | tuple[Any],
|
142
150
|
kwargs: dict[str, Any],
|
143
|
-
) -> tuple[bool, str]:
|
151
|
+
) -> tuple[bool, str, bool]:
|
152
|
+
has_ever_edited = False
|
144
153
|
while True:
|
145
154
|
func_call_str = _get_func_call_str(func, args, kwargs)
|
146
155
|
complete_confirmation_message = "\n".join(
|
@@ -156,13 +165,15 @@ async def _handle_user_response(
|
|
156
165
|
new_kwargs, is_edited = _get_edited_kwargs(ctx, user_response, kwargs)
|
157
166
|
if is_edited:
|
158
167
|
kwargs = new_kwargs
|
168
|
+
has_ever_edited = True
|
159
169
|
continue
|
160
170
|
approval_and_reason = _get_user_approval_and_reason(
|
161
171
|
ctx, user_response, func_call_str
|
162
172
|
)
|
163
173
|
if approval_and_reason is None:
|
164
174
|
continue
|
165
|
-
|
175
|
+
approval, reason = approval_and_reason
|
176
|
+
return approval, reason, has_ever_edited
|
166
177
|
|
167
178
|
|
168
179
|
def _get_edited_kwargs(
|
@@ -205,8 +205,6 @@ class LLMTask(BaseTask):
|
|
205
205
|
self.append_toolset(*toolset)
|
206
206
|
|
207
207
|
def append_toolset(self, *toolset: "AbstractToolset[None] | str"):
|
208
|
-
from pydantic_ai.mcp import load_mcp_servers
|
209
|
-
|
210
208
|
for single_toolset in toolset:
|
211
209
|
self._additional_toolsets.append(single_toolset)
|
212
210
|
|
@@ -1,24 +0,0 @@
|
|
1
|
-
When the user's request involves writing or modifying code, you MUST follow these domain-specific rules in addition to your core workflow.
|
2
|
-
|
3
|
-
## 1. Critical Prohibitions
|
4
|
-
- **NEVER Assume Dependencies:** You MUST NOT use a library, framework, or package unless you have first verified it is an existing project dependency (e.g., in `package.json`, `requirements.txt`, `pyproject.toml`, etc.).
|
5
|
-
- **NEVER Commit Without Verification:** You MUST NOT use `git commit` until you have staged the changes and run the project's own verification steps (tests, linter, build).
|
6
|
-
|
7
|
-
## 2. Code Development Workflow
|
8
|
-
This expands on your core "Execute and Verify" loop with steps specific to coding.
|
9
|
-
|
10
|
-
1. **CRITICAL: Gather Context First:** Before writing or modifying any code, you MUST gather context to ensure your changes are idiomatic and correct.
|
11
|
-
* **Project Structure & Dependencies:** Check for `README.md`, `package.json`, etc., to understand the project's scripts (lint, test, build).
|
12
|
-
* **Code Style & Conventions:** Look for `.eslintrc`, `.prettierrc`, `ruff.toml`, etc. Analyze surrounding source files to determine naming conventions, typing style, error handling, and architectural patterns.
|
13
|
-
* **For new tests:** You MUST read the full source code of the module(s) you are testing.
|
14
|
-
* **For new features:** You MUST look for existing tests and related modules to understand conventions.
|
15
|
-
|
16
|
-
2. **Implement Idiomatically:** Make the changes, strictly adhering to the patterns and conventions discovered in the context-gathering phase.
|
17
|
-
|
18
|
-
3. **CRITICAL: Design for Testability:** Your primary goal is to produce code that is easy to test automatically.
|
19
|
-
* **Prefer `return` over `print`:** Core logic functions MUST `return` values. I/O operations like `print()` should be separated into different functions.
|
20
|
-
* **Embrace Modularity:** Decompose complex tasks into smaller, single-responsibility functions or classes.
|
21
|
-
* **Use Function Arguments:** Avoid relying on global state. Pass necessary data into functions as arguments.
|
22
|
-
|
23
|
-
4. **Verify with Project Tooling:** After implementation, run all relevant project-specific commands (e.g., `npm run test`, `pytest`, `npm run lint`). This is the verification step for code.
|
24
|
-
* **CRITICAL:** If any verification step fails, you MUST enter your standard Debugging Loop. You are responsible for fixing the code until all project-specific verifications pass. Do not stop until the code is working correctly.
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.flake8
RENAMED
File without changes
|
File without changes
|
{zrb-1.16.3 → zrb-1.16.4}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/README.md
RENAMED
File without changes
|