zrb 1.5.1__tar.gz → 1.5.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. {zrb-1.5.1 → zrb-1.5.2}/PKG-INFO +13 -14
  2. {zrb-1.5.1 → zrb-1.5.2}/pyproject.toml +20 -20
  3. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/__main__.py +1 -1
  4. zrb-1.5.2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/requirements.txt +12 -0
  5. zrb-1.5.2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_homepage.py +16 -0
  6. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/task/llm_task.py +136 -20
  7. zrb-1.5.1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/requirements.txt +0 -12
  8. zrb-1.5.1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_homepage.py +0 -15
  9. {zrb-1.5.1 → zrb-1.5.2}/README.md +0 -0
  10. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/__init__.py +0 -0
  11. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/attr/__init__.py +0 -0
  12. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/attr/type.py +0 -0
  13. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/__init__.py +0 -0
  14. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/base64.py +0 -0
  15. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/git.py +0 -0
  16. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/git_subtree.py +0 -0
  17. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/group.py +0 -0
  18. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/llm/llm_chat.py +0 -0
  19. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/llm/previous-session.js +0 -0
  20. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/llm/tool/api.py +0 -0
  21. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/llm/tool/cli.py +0 -0
  22. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/llm/tool/file.py +0 -0
  23. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/llm/tool/rag.py +0 -0
  24. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/llm/tool/web.py +0 -0
  25. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/md5.py +0 -0
  26. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/__init__.py +0 -0
  27. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_input.py +0 -0
  28. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_task.py +0 -0
  29. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.coveragerc +0 -0
  30. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.flake8 +0 -0
  31. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.gitignore +0 -0
  32. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/README.md +0 -0
  33. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/__init__.py +0 -0
  34. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_task.py +0 -0
  35. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_util.py +0 -0
  36. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/config.py +0 -0
  37. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_task.py +0 -0
  38. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_util.py +0 -0
  39. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/gateway/view/content/my-module/my-entity.html +0 -0
  40. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/my_entity_service.py +0 -0
  41. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/my_entity_service_factory.py +0 -0
  42. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/repository/my_entity_db_repository.py +0 -0
  43. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/repository/my_entity_repository.py +0 -0
  44. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/repository/my_entity_repository_factory.py +0 -0
  45. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/schema/my_entity.py +0 -0
  46. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/test/my_module/my_entity/test_create_my_entity.py +0 -0
  47. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/test/my_module/my_entity/test_delete_my_entity.py +0 -0
  48. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/test/my_module/my_entity/test_read_my_entity.py +0 -0
  49. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/test/my_module/my_entity/test_update_my_entity.py +0 -0
  50. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/client_method.py +0 -0
  51. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/gateway_subroute.py +0 -0
  52. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/navigation_config_file.py +0 -0
  53. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/format_task.py +0 -0
  54. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/group.py +0 -0
  55. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/input.py +0 -0
  56. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_task.py +0 -0
  57. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_util.py +0 -0
  58. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/gateway/subroute/my_module.py +0 -0
  59. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/alembic.ini +0 -0
  60. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_api_client.py +0 -0
  61. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_client.py +0 -0
  62. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_client_factory.py +0 -0
  63. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_direct_client.py +0 -0
  64. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/README +0 -0
  65. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/env.py +0 -0
  66. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/script.py.mako +0 -0
  67. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/versions/.gitkeep +0 -0
  68. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration_metadata.py +0 -0
  69. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/route.py +0 -0
  70. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/service/__init__.py +0 -0
  71. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/module_task_definition.py +0 -0
  72. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/navigation_config_file.py +0 -0
  73. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task.py +0 -0
  74. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task_util.py +0 -0
  75. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/util.py +0 -0
  76. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/venv_task.py +0 -0
  77. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/__init__.py +0 -0
  78. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/app_factory.py +0 -0
  79. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_db_repository.py +0 -0
  80. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_service.py +0 -0
  81. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/db_engine_factory.py +0 -0
  82. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/error.py +0 -0
  83. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/logger_factory.py +0 -0
  84. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/parser_factory.py +0 -0
  85. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/schema.py +0 -0
  86. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/app.py +0 -0
  87. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/parser.py +0 -0
  88. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/user_agent.py +0 -0
  89. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/view.py +0 -0
  90. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/config.py +0 -0
  91. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/main.py +0 -0
  92. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/__init__.py +0 -0
  93. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/alembic.ini +0 -0
  94. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_api_client.py +0 -0
  95. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client.py +0 -0
  96. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client_factory.py +0 -0
  97. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_direct_client.py +0 -0
  98. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/README +0 -0
  99. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/env.py +0 -0
  100. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/script.py.mako +0 -0
  101. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/3093c7336477_add_auth_tables.py +0 -0
  102. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/8ed025bcc845_create_permissions.py +0 -0
  103. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration_metadata.py +0 -0
  104. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/route.py +0 -0
  105. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/__init__.py +0 -0
  106. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/__init__.py +0 -0
  107. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service.py +0 -0
  108. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service_factory.py +0 -0
  109. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_db_repository.py +0 -0
  110. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository.py +0 -0
  111. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository_factory.py +0 -0
  112. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/__init__.py +0 -0
  113. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_db_repository.py +0 -0
  114. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository.py +0 -0
  115. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository_factory.py +0 -0
  116. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service.py +0 -0
  117. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service_factory.py +0 -0
  118. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/__init__.py +0 -0
  119. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_db_repository.py +0 -0
  120. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository.py +0 -0
  121. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository_factory.py +0 -0
  122. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service.py +0 -0
  123. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service_factory.py +0 -0
  124. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/alembic.ini +0 -0
  125. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/config/navigation.py +0 -0
  126. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/README +0 -0
  127. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/env.py +0 -0
  128. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/script.py.mako +0 -0
  129. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/versions/.gitkeep +0 -0
  130. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration_metadata.py +0 -0
  131. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/route.py +0 -0
  132. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/schema/navigation.py +0 -0
  133. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/subroute/auth.py +0 -0
  134. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/auth.py +0 -0
  135. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/view.py +0 -0
  136. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/permission.html +0 -0
  137. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/role.html +0 -0
  138. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/user.html +0 -0
  139. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/error.html +0 -0
  140. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/homepage.html +0 -0
  141. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/login.html +0 -0
  142. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/logout.html +0 -0
  143. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/common/util.js +0 -0
  144. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/style.css +0 -0
  145. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/util.js +0 -0
  146. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/pico-style.css +0 -0
  147. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/script.js +0 -0
  148. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/style.css +0 -0
  149. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-192x192.png +0 -0
  150. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-512x512.png +0 -0
  151. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/favicon-32x32.png +0 -0
  152. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.amber.min.css +0 -0
  153. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.blue.min.css +0 -0
  154. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.cyan.min.css +0 -0
  155. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.fuchsia.min.css +0 -0
  156. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.green.min.css +0 -0
  157. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.grey.min.css +0 -0
  158. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.indigo.min.css +0 -0
  159. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.jade.min.css +0 -0
  160. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.lime.min.css +0 -0
  161. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.min.css +0 -0
  162. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.orange.min.css +0 -0
  163. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.pink.min.css +0 -0
  164. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.pumpkin.min.css +0 -0
  165. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.purple.min.css +0 -0
  166. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.red.min.css +0 -0
  167. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.sand.min.css +0 -0
  168. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.slate.min.css +0 -0
  169. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.violet.min.css +0 -0
  170. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.yellow.min.css +0 -0
  171. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.zinc.min.css +0 -0
  172. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/template/default.html +0 -0
  173. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/__init__.py +0 -0
  174. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/permission.py +0 -0
  175. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/role.py +0 -0
  176. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/user.py +0 -0
  177. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/template.env +0 -0
  178. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/_util/access_token.py +0 -0
  179. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_create_permission.py +0 -0
  180. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_delete_permission.py +0 -0
  181. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_read_permission.py +0 -0
  182. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_update_permission.py +0 -0
  183. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/test_user_session.py +0 -0
  184. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_health_and_readiness.py +0 -0
  185. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_not_found_error.py +0 -0
  186. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test.sh +0 -0
  187. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/add/fastapp/fastapp_util.py +0 -0
  188. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/create/__init__.py +0 -0
  189. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/create/project-template/README.md +0 -0
  190. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/create/project-template/zrb_init.py +0 -0
  191. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/project/create/project_task.py +0 -0
  192. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/python.py +0 -0
  193. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/random.py +0 -0
  194. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/setup/asdf/asdf.py +0 -0
  195. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/setup/asdf/asdf_helper.py +0 -0
  196. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/setup/common_input.py +0 -0
  197. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/setup/latex/ubuntu.py +0 -0
  198. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/setup/tmux/tmux.py +0 -0
  199. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/setup/tmux/tmux_config.sh +0 -0
  200. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/setup/tmux/tmux_helper.py +0 -0
  201. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/setup/ubuntu.py +0 -0
  202. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/setup/zsh/zsh.py +0 -0
  203. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/setup/zsh/zsh_config.sh +0 -0
  204. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/setup/zsh/zsh_helper.py +0 -0
  205. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/shell/__init__.py +0 -0
  206. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/shell/autocomplete/__init__.py +0 -0
  207. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/shell/autocomplete/bash.py +0 -0
  208. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/shell/autocomplete/subcmd.py +0 -0
  209. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/shell/autocomplete/zsh.py +0 -0
  210. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/builtin/todo.py +0 -0
  211. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/callback/__init__.py +0 -0
  212. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/callback/any_callback.py +0 -0
  213. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/callback/callback.py +0 -0
  214. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/cmd/__init__.py +0 -0
  215. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/cmd/cmd_result.py +0 -0
  216. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/cmd/cmd_val.py +0 -0
  217. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/config.py +0 -0
  218. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/content_transformer/__init__.py +0 -0
  219. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/content_transformer/any_content_transformer.py +0 -0
  220. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/content_transformer/content_transformer.py +0 -0
  221. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/context/__init__.py +0 -0
  222. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/context/any_context.py +0 -0
  223. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/context/any_shared_context.py +0 -0
  224. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/context/context.py +0 -0
  225. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/context/shared_context.py +0 -0
  226. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/dot_dict/__init__.py +0 -0
  227. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/dot_dict/dot_dict.py +0 -0
  228. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/env/__init__.py +0 -0
  229. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/env/any_env.py +0 -0
  230. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/env/env.py +0 -0
  231. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/env/env_file.py +0 -0
  232. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/env/env_map.py +0 -0
  233. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/group/__init__.py +0 -0
  234. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/group/any_group.py +0 -0
  235. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/group/group.py +0 -0
  236. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/input/__init__.py +0 -0
  237. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/input/any_input.py +0 -0
  238. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/input/base_input.py +0 -0
  239. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/input/bool_input.py +0 -0
  240. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/input/float_input.py +0 -0
  241. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/input/int_input.py +0 -0
  242. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/input/option_input.py +0 -0
  243. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/input/password_input.py +0 -0
  244. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/input/str_input.py +0 -0
  245. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/input/text_input.py +0 -0
  246. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/llm_config.py +0 -0
  247. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/__init__.py +0 -0
  248. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/cli.py +0 -0
  249. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/common_util.py +0 -0
  250. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_app.py +0 -0
  251. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_config/config.py +0 -0
  252. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_config/config_factory.py +0 -0
  253. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/__init__.py +0 -0
  254. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/docs_route.py +0 -0
  255. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/error_page/serve_default_404.py +0 -0
  256. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/error_page/show_error_page.py +0 -0
  257. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/error_page/view.html +0 -0
  258. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/home_page/__init__.py +0 -0
  259. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/home_page/home_page_route.py +0 -0
  260. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/home_page/view.html +0 -0
  261. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/login_api_route.py +0 -0
  262. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/login_page/login_page_route.py +0 -0
  263. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/login_page/view.html +0 -0
  264. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/logout_api_route.py +0 -0
  265. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/logout_page/logout_page_route.py +0 -0
  266. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/logout_page/view.html +0 -0
  267. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/node_page/group/show_group_page.py +0 -0
  268. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/node_page/group/view.html +0 -0
  269. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/node_page/node_page_route.py +0 -0
  270. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/node_page/task/partial/input.html +0 -0
  271. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/node_page/task/show_task_page.py +0 -0
  272. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/node_page/task/view.html +0 -0
  273. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/refresh_token_api_route.py +0 -0
  274. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/static/refresh-token.template.js +0 -0
  275. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/static/resources/common.css +0 -0
  276. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/static/resources/favicon-32x32.png +0 -0
  277. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/static/resources/login/event.js +0 -0
  278. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/static/resources/logout/event.js +0 -0
  279. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/static/resources/pico.min.css +0 -0
  280. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/static/resources/session/common-util.js +0 -0
  281. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/static/resources/session/current-session.js +0 -0
  282. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/static/resources/session/event.js +0 -0
  283. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/static/resources/session/past-session.js +0 -0
  284. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/static/static_route.py +0 -0
  285. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/task_input_api_route.py +0 -0
  286. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_route/task_session_api_route.py +0 -0
  287. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_schema/session.py +0 -0
  288. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_schema/token.py +0 -0
  289. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_schema/user.py +0 -0
  290. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_util/cookie.py +0 -0
  291. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_util/html.py +0 -0
  292. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_util/token.py +0 -0
  293. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/runner/web_util/user.py +0 -0
  294. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/session/__init__.py +0 -0
  295. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/session/any_session.py +0 -0
  296. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/session/session.py +0 -0
  297. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/session_state_log/__init__.py +0 -0
  298. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/session_state_log/session_state_log.py +0 -0
  299. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/session_state_logger/__init__.py +0 -0
  300. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/session_state_logger/any_session_state_logger.py +0 -0
  301. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/session_state_logger/file_session_state_logger.py +0 -0
  302. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/session_state_logger/session_state_logger_factory.py +0 -0
  303. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/task/__init__.py +0 -0
  304. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/task/any_task.py +0 -0
  305. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/task/base_task.py +0 -0
  306. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/task/base_trigger.py +0 -0
  307. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/task/cmd_task.py +0 -0
  308. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/task/http_check.py +0 -0
  309. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/task/make_task.py +0 -0
  310. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/task/rsync_task.py +0 -0
  311. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/task/scaffolder.py +0 -0
  312. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/task/scheduler.py +0 -0
  313. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/task/task.py +0 -0
  314. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/task/tcp_check.py +0 -0
  315. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/task_status/__init__.py +0 -0
  316. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/task_status/task_status.py +0 -0
  317. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/__init__.py +0 -0
  318. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/attr.py +0 -0
  319. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/cli/__init__.py +0 -0
  320. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/cli/style.py +0 -0
  321. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/cli/subcommand.py +0 -0
  322. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/cmd/__init__.py +0 -0
  323. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/cmd/command.py +0 -0
  324. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/cmd/remote.py +0 -0
  325. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/codemod/__init__.py +0 -0
  326. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/codemod/modification_mode.py +0 -0
  327. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/codemod/modify_class.py +0 -0
  328. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/codemod/modify_class_parent.py +0 -0
  329. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/codemod/modify_class_property.py +0 -0
  330. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/codemod/modify_dict.py +0 -0
  331. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/codemod/modify_function.py +0 -0
  332. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/codemod/modify_function_call.py +0 -0
  333. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/codemod/modify_method.py +0 -0
  334. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/codemod/modify_module.py +0 -0
  335. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/cron.py +0 -0
  336. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/file.py +0 -0
  337. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/git.py +0 -0
  338. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/git_subtree.py +0 -0
  339. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/group.py +0 -0
  340. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/load.py +0 -0
  341. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/run.py +0 -0
  342. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/string/__init__.py +0 -0
  343. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/string/conversion.py +0 -0
  344. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/string/format.py +0 -0
  345. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/string/name.py +0 -0
  346. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/util/todo.py +0 -0
  347. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/xcom/__init__.py +0 -0
  348. {zrb-1.5.1 → zrb-1.5.2}/src/zrb/xcom/xcom.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zrb
3
- Version: 1.5.1
3
+ Version: 1.5.2
4
4
  Summary: Your Automation Powerhouse
5
5
  Home-page: https://github.com/state-alchemists/zrb
6
6
  License: AGPL-3.0-or-later
@@ -16,19 +16,18 @@ Classifier: Programming Language :: Python :: 3.12
16
16
  Provides-Extra: all
17
17
  Provides-Extra: playwright
18
18
  Provides-Extra: rag
19
- Requires-Dist: autopep8 (>=2.0.4,<3.0.0)
20
- Requires-Dist: beautifulsoup4 (>=4.12.3,<5.0.0)
21
- Requires-Dist: black (>=24.10.0,<24.11.0)
22
- Requires-Dist: chromadb (>=0.5.20,<0.6.0) ; extra == "rag" or extra == "all"
23
- Requires-Dist: fastapi[standard] (>=0.115.6,<0.116.0)
24
- Requires-Dist: isort (>=5.13.2,<5.14.0)
25
- Requires-Dist: libcst (>=1.5.0,<2.0.0)
26
- Requires-Dist: openai (>=1.10.0,<2.0.0) ; extra == "rag" or extra == "all"
27
- Requires-Dist: pdfplumber (>=0.11.4,<0.12.0) ; extra == "rag" or extra == "all"
28
- Requires-Dist: playwright (>=1.43.0,<2.0.0) ; extra == "playwright" or extra == "all"
29
- Requires-Dist: psutil (>=6.1.1,<7.0.0)
30
- Requires-Dist: pydantic-ai (>=0.0.42,<0.0.43)
31
- Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
19
+ Requires-Dist: beautifulsoup4 (>=4.13.3,<5.0.0)
20
+ Requires-Dist: black (>=25.1.0,<25.2.0)
21
+ Requires-Dist: chromadb (>=0.6.3,<0.7.0) ; extra == "rag" or extra == "all"
22
+ Requires-Dist: fastapi[standard] (>=0.115.12,<0.116.0)
23
+ Requires-Dist: isort (>=6.0.1,<6.1.0)
24
+ Requires-Dist: libcst (>=1.7.0,<2.0.0)
25
+ Requires-Dist: openai (>=1.70.0,<2.0.0) ; extra == "rag" or extra == "all"
26
+ Requires-Dist: pdfplumber (>=0.11.6,<0.12.0) ; extra == "rag" or extra == "all"
27
+ Requires-Dist: playwright (>=1.51.0,<2.0.0) ; extra == "playwright" or extra == "all"
28
+ Requires-Dist: psutil (>=7.0.0,<8.0.0)
29
+ Requires-Dist: pydantic-ai (>=0.0.49,<0.0.50)
30
+ Requires-Dist: python-dotenv (>=1.1.0,<2.0.0)
32
31
  Requires-Dist: python-jose[cryptography] (>=3.4.0,<4.0.0)
33
32
  Requires-Dist: requests (>=2.32.3,<3.0.0)
34
33
  Requires-Dist: ulid-py (>=1.1.0,<2.0.0)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "zrb"
3
- version = "1.5.1"
3
+ version = "1.5.2"
4
4
  description = "Your Automation Powerhouse"
5
5
  authors = ["Go Frendi Gunawan <gofrendiasgard@gmail.com>"]
6
6
  license = "AGPL-3.0-or-later"
@@ -38,22 +38,21 @@ exclude = [
38
38
 
39
39
  [tool.poetry.dependencies]
40
40
  python = ">=3.10.0,<4.0.0"
41
- python-dotenv = "^1.0.1"
42
- autopep8 = "^2.0.4"
43
- black = "~24.10.0"
44
- isort = "~5.13.2"
41
+ python-dotenv = "^1.1.0"
42
+ black = "~25.1.0"
43
+ isort = "~6.0.1"
45
44
  requests = "^2.32.3"
46
- libcst = "^1.5.0"
47
- chromadb = {version = "^0.5.20", optional = true}
48
- pdfplumber = {version = "^0.11.4", optional = true}
49
- beautifulsoup4 = "^4.12.3"
50
- fastapi = {extras = ["standard"], version = "^0.115.6"}
45
+ libcst = "^1.7.0"
46
+ chromadb = {version = "^0.6.3", optional = true}
47
+ pdfplumber = {version = "^0.11.6", optional = true}
48
+ beautifulsoup4 = "^4.13.3"
49
+ fastapi = {extras = ["standard"], version = "^0.115.12"}
51
50
  python-jose = {extras = ["cryptography"], version = "^3.4.0"}
52
51
  ulid-py = "^1.1.0"
53
- pydantic-ai = "^0.0.42"
54
- openai = {version = "^1.10.0", optional = true}
55
- playwright = {version = "^1.43.0", optional = true}
56
- psutil = "^6.1.1"
52
+ pydantic-ai = "^0.0.49"
53
+ openai = {version = "^1.70.0", optional = true}
54
+ playwright = {version = "^1.51.0", optional = true}
55
+ psutil = "^7.0.0"
57
56
 
58
57
  [tool.poetry.extras]
59
58
  # poetry install -E rag
@@ -62,12 +61,13 @@ playwright = ["playwright"]
62
61
  all = ["chromadb", "pdfplumber", "openai", "playwright"]
63
62
 
64
63
  [tool.poetry.group.dev.dependencies]
65
- alembic = "^1.14.0" # FastApp dependencies
66
- flake8 = "~7.1.1"
67
- pytest = "~8.3.3"
68
- pytest-cov = "~6.0.0"
69
- pytest-asyncio = "~0.24.0"
70
- sqlmodel = "^0.0.22" # FastApp dependencies
64
+ alembic = "^1.15.2" # FastApp dependencies
65
+ autopep8 = "^2.0.4"
66
+ flake8 = "~7.2.0"
67
+ pytest = "~8.3.5"
68
+ pytest-cov = "~6.1.0"
69
+ pytest-asyncio = "~0.26.0"
70
+ sqlmodel = "^0.0.24" # FastApp dependencies
71
71
  tomlkit = "^0.13.2"
72
72
 
73
73
  [tool.pytest.ini_options]
@@ -16,7 +16,7 @@ def serve_cli():
16
16
  zrb_init_path_list = _get_zrb_init_path_list()
17
17
  # load init scripts
18
18
  for init_script in INIT_SCRIPTS:
19
- abs_init_script = os.path.abspath(init_script)
19
+ abs_init_script = os.path.abspath(os.path.expanduser(init_script))
20
20
  if abs_init_script not in zrb_init_path_list:
21
21
  load_file(abs_init_script, -1)
22
22
  # load zrb init
@@ -0,0 +1,12 @@
1
+ fastapi[standard]~=0.115.12
2
+ alembic~=1.15.2
3
+ sqlmodel~=0.0.24
4
+ ulid-py~=1.1.0
5
+ passlib~=1.7.4
6
+ Jinja2~=3.1.6
7
+ python-jose~=3.4.0
8
+ passlib~=1.7.4
9
+
10
+ pytest~=8.3.5
11
+ pytest-asyncio~=0.26.0
12
+ pytest-cov~=6.1.0
@@ -0,0 +1,16 @@
1
+ from fastapi.testclient import TestClient
2
+ from my_app_name.main import app
3
+ from my_app_name.module.auth.service.user.user_service_factory import user_service
4
+ from my_app_name.module.gateway.util.view import render_content
5
+
6
+
7
+ async def test_homepage():
8
+ current_user = await user_service.get_current_user(access_token=None)
9
+ client = TestClient(app, base_url="http://localhost")
10
+ response = client.get("/")
11
+ assert response.status_code == 200
12
+ assert response.text == render_content(
13
+ "homepage.html",
14
+ page_name="gateway.home",
15
+ current_user=current_user,
16
+ ).body.decode("utf-8")
@@ -1,3 +1,4 @@
1
+ import copy
1
2
  import functools
2
3
  import inspect
3
4
  import json
@@ -6,6 +7,7 @@ import traceback
6
7
  from collections.abc import Callable
7
8
  from typing import Any
8
9
 
10
+ from openai import APIError
9
11
  from pydantic_ai import Agent, Tool
10
12
  from pydantic_ai.messages import (
11
13
  FinalResultEvent,
@@ -139,16 +141,31 @@ class LLMTask(BaseTask):
139
141
  history = await self._read_conversation_history(ctx)
140
142
  user_prompt = self._get_message(ctx)
141
143
  agent = self._get_agent(ctx)
142
- async with agent.iter(
143
- user_prompt=user_prompt,
144
- message_history=ModelMessagesTypeAdapter.validate_python(history),
145
- ) as agent_run:
146
- async for node in agent_run:
147
- # Each node represents a step in the agent's execution
148
- await self._print_node(ctx, agent_run, node)
149
- new_history = json.loads(agent_run.result.all_messages_json())
150
- await self._write_conversation_history(ctx, new_history)
151
- return agent_run.result.data
144
+ try:
145
+ async with agent.iter(
146
+ user_prompt=user_prompt,
147
+ message_history=ModelMessagesTypeAdapter.validate_python(history),
148
+ ) as agent_run:
149
+ async for node in agent_run:
150
+ # Each node represents a step in the agent's execution
151
+ # Reference: https://ai.pydantic.dev/agents/#streaming
152
+ try:
153
+ await self._print_node(ctx, agent_run, node)
154
+ except APIError as e:
155
+ # Extract detailed error information from the response
156
+ error_details = _extract_api_error_details(e)
157
+ ctx.log_error(f"API Error: {error_details}")
158
+ raise
159
+ except Exception as e:
160
+ ctx.log_error(f"Error processing node: {str(e)}")
161
+ ctx.log_error(f"Error type: {type(e).__name__}")
162
+ raise
163
+ new_history = json.loads(agent_run.result.all_messages_json())
164
+ await self._write_conversation_history(ctx, new_history)
165
+ return agent_run.result.data
166
+ except Exception as e:
167
+ ctx.log_error(f"Error in agent execution: {str(e)}")
168
+ raise
152
169
 
153
170
  async def _print_node(self, ctx: AnyContext, agent_run: Any, node: Any):
154
171
  if Agent.is_user_prompt_node(node):
@@ -204,9 +221,20 @@ class LLMTask(BaseTask):
204
221
  async with node.stream(agent_run.ctx) as handle_stream:
205
222
  async for event in handle_stream:
206
223
  if isinstance(event, FunctionToolCallEvent):
207
- # Fixing anthrophic claude when call function with empty parameter
208
- if event.part.args == "":
224
+ # Handle empty arguments across different providers
225
+ if event.part.args == "" or event.part.args is None:
226
+ event.part.args = {}
227
+ elif isinstance(
228
+ event.part.args, str
229
+ ) and event.part.args.strip() in ["null", "{}"]:
230
+ # Some providers might send "null" or "{}" as a string
209
231
  event.part.args = {}
232
+ # Handle dummy property if present (from our schema sanitization)
233
+ if (
234
+ isinstance(event.part.args, dict)
235
+ and "_dummy" in event.part.args
236
+ ):
237
+ del event.part.args["_dummy"]
210
238
  ctx.print(
211
239
  stylize_faint(
212
240
  f"[Tools] The LLM calls tool={event.part.tool_name!r} with args={event.part.args} (tool_call_id={event.part.tool_call_id!r})" # noqa
@@ -330,13 +358,101 @@ class LLMTask(BaseTask):
330
358
 
331
359
 
332
360
  def _wrap_tool(func):
333
- @functools.wraps(func)
334
- async def wrapper(*args, **kwargs):
361
+ sig = inspect.signature(func)
362
+ if len(sig.parameters) == 0:
363
+
364
+ @functools.wraps(func)
365
+ async def wrapper(_dummy=None):
366
+ try:
367
+ return await run_async(func())
368
+ except Exception as e:
369
+ # Optionally, you can include more details from traceback if needed.
370
+ error_details = traceback.format_exc()
371
+ return f"Error: {e}\nDetails: {error_details}"
372
+
373
+ new_sig = inspect.Signature(
374
+ parameters=[
375
+ inspect.Parameter(
376
+ "_dummy", inspect.Parameter.POSITIONAL_OR_KEYWORD, default=None
377
+ )
378
+ ]
379
+ )
380
+ # Override the wrapper's signature so introspection yields a non-empty schema.
381
+ wrapper.__signature__ = new_sig
382
+ return wrapper
383
+ else:
384
+
385
+ @functools.wraps(func)
386
+ async def wrapper(*args, **kwargs):
387
+ try:
388
+ return await run_async(func(*args, **kwargs))
389
+ except Exception as e:
390
+ # Optionally, you can include more details from traceback if needed.
391
+ error_details = traceback.format_exc()
392
+ return f"Error: {e}\nDetails: {error_details}"
393
+
394
+ return wrapper
395
+
396
+
397
+ def _extract_api_error_details(error: APIError) -> str:
398
+ """Extract detailed error information from an APIError."""
399
+ details = f"{error.message}"
400
+ # Try to parse the error body as JSON
401
+ if error.body:
335
402
  try:
336
- return await run_async(func(*args, **kwargs))
403
+ if isinstance(error.body, str):
404
+ body_json = json.loads(error.body)
405
+ elif isinstance(error.body, bytes):
406
+ body_json = json.loads(error.body.decode("utf-8"))
407
+ else:
408
+ body_json = error.body
409
+ # Extract error details from the JSON structure
410
+ if isinstance(body_json, dict):
411
+ if "error" in body_json:
412
+ error_obj = body_json["error"]
413
+ if isinstance(error_obj, dict):
414
+ if "message" in error_obj:
415
+ details += f"\nProvider message: {error_obj['message']}"
416
+ if "code" in error_obj:
417
+ details += f"\nError code: {error_obj['code']}"
418
+ if "status" in error_obj:
419
+ details += f"\nStatus: {error_obj['status']}"
420
+ # Check for metadata that might contain provider-specific information
421
+ if "metadata" in body_json and isinstance(body_json["metadata"], dict):
422
+ metadata = body_json["metadata"]
423
+ if "provider_name" in metadata:
424
+ details += f"\nProvider: {metadata['provider_name']}"
425
+ if "raw" in metadata:
426
+ try:
427
+ raw_json = json.loads(metadata["raw"])
428
+ if "error" in raw_json and isinstance(
429
+ raw_json["error"], dict
430
+ ):
431
+ raw_error = raw_json["error"]
432
+ if "message" in raw_error:
433
+ details += (
434
+ f"\nRaw error message: {raw_error['message']}"
435
+ )
436
+ except (KeyError, TypeError, ValueError):
437
+ # If we can't parse the raw JSON, just include it as is
438
+ details += f"\nRaw error data: {metadata['raw']}"
439
+ except json.JSONDecodeError:
440
+ # If we can't parse the JSON, include the raw body
441
+ details += f"\nRaw error body: {error.body}"
337
442
  except Exception as e:
338
- # Optionally, you can include more details from traceback if needed.
339
- error_details = traceback.format_exc()
340
- return f"Error: {e}\nDetails: {error_details}"
341
-
342
- return wrapper
443
+ # Catch any other exceptions during parsing
444
+ details += f"\nError parsing error body: {str(e)}"
445
+ # Include request information if available
446
+ if hasattr(error, "request") and error.request:
447
+ if hasattr(error.request, "method") and hasattr(error.request, "url"):
448
+ details += f"\nRequest: {error.request.method} {error.request.url}"
449
+ # Include a truncated version of the request content if available
450
+ if hasattr(error.request, "content") and error.request.content:
451
+ content = error.request.content
452
+ if isinstance(content, bytes):
453
+ try:
454
+ content = content.decode("utf-8")
455
+ except UnicodeDecodeError:
456
+ content = str(content)
457
+ details += f"\nRequest content: {content}"
458
+ return details
@@ -1,12 +0,0 @@
1
- fastapi[standard]~=0.115.6
2
- alembic~=1.14.0
3
- sqlmodel~=0.0.22
4
- ulid-py~=1.1.0
5
- passlib~=1.7.4
6
- Jinja2~=3.1.5
7
- python-jose~=3.4.0
8
- passlib~=1.7.4
9
-
10
- pytest~=8.3.4
11
- pytest-asyncio~=0.24.0
12
- pytest-cov~=6.0.0
@@ -1,15 +0,0 @@
1
- import os
2
-
3
- from fastapi.testclient import TestClient
4
- from my_app_name.main import app
5
- from my_app_name.module.gateway.util.view import render_content
6
-
7
-
8
- def test_homepage():
9
- client = TestClient(app, base_url="http://localhost")
10
- response = client.get("/")
11
- assert response.status_code == 200
12
- view_path = os.path.join(
13
- os.path.dirname(os.path.dirname(__file__)), "module", "gateway", "view"
14
- )
15
- assert response.text == render_content("homepage.html").body.decode("utf-8")
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