zrb 1.0.0b4__tar.gz → 1.0.0b6__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 (310) hide show
  1. {zrb-1.0.0b4 → zrb-1.0.0b6}/PKG-INFO +3 -2
  2. {zrb-1.0.0b4 → zrb-1.0.0b6}/pyproject.toml +3 -2
  3. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/llm/llm_chat.py +2 -2
  4. zrb-1.0.0b6/src/zrb/builtin/llm/previous-session.js +21 -0
  5. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/llm/tool/rag.py +6 -8
  6. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/config.py +12 -17
  7. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/node_page/task/view.html +1 -1
  8. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/static/resources/session/current-session.js +10 -6
  9. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/static/resources/session/event.js +10 -1
  10. zrb-1.0.0b6/src/zrb/task/llm_task.py +199 -0
  11. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/llm/tool.py +33 -5
  12. zrb-1.0.0b4/src/zrb/builtin/llm/previous-session.js +0 -13
  13. zrb-1.0.0b4/src/zrb/task/llm_task.py +0 -350
  14. {zrb-1.0.0b4 → zrb-1.0.0b6}/README.md +0 -0
  15. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/__init__.py +0 -0
  16. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/__main__.py +0 -0
  17. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/attr/__init__.py +0 -0
  18. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/attr/type.py +0 -0
  19. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/__init__.py +0 -0
  20. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/base64.py +0 -0
  21. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/git.py +0 -0
  22. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/git_subtree.py +0 -0
  23. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/group.py +0 -0
  24. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/llm/tool/api.py +0 -0
  25. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/llm/tool/cli.py +0 -0
  26. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/llm/tool/web.py +0 -0
  27. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/md5.py +0 -0
  28. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/__init__.py +0 -0
  29. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_input.py +0 -0
  30. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_task.py +0 -0
  31. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.flake8 +0 -0
  32. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.gitignore +0 -0
  33. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/README.md +0 -0
  34. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/__init__.py +0 -0
  35. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_task.py +0 -0
  36. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/config.py +0 -0
  37. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_task.py +0 -0
  38. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_util.py +0 -0
  39. {zrb-1.0.0b4 → zrb-1.0.0b6}/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
  40. {zrb-1.0.0b4 → zrb-1.0.0b6}/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
  41. {zrb-1.0.0b4 → zrb-1.0.0b6}/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
  42. {zrb-1.0.0b4 → zrb-1.0.0b6}/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
  43. {zrb-1.0.0b4 → zrb-1.0.0b6}/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
  44. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/schema/my_entity.py +0 -0
  45. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/client_method.py +0 -0
  46. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/gateway_subroute.py +0 -0
  47. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/format_task.py +0 -0
  48. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/group.py +0 -0
  49. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/input.py +0 -0
  50. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_task.py +0 -0
  51. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_util.py +0 -0
  52. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/gateway/subroute/my_module.py +0 -0
  53. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/alembic.ini +0 -0
  54. {zrb-1.0.0b4 → zrb-1.0.0b6}/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
  55. {zrb-1.0.0b4 → zrb-1.0.0b6}/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
  56. {zrb-1.0.0b4 → zrb-1.0.0b6}/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
  57. {zrb-1.0.0b4 → zrb-1.0.0b6}/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
  58. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/README +0 -0
  59. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/env.py +0 -0
  60. {zrb-1.0.0b4 → zrb-1.0.0b6}/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
  61. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/versions/.gitkeep +0 -0
  62. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration_metadata.py +0 -0
  63. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/route.py +0 -0
  64. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/service/__init__.py +0 -0
  65. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/module_task_definition.py +0 -0
  66. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task.py +0 -0
  67. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/util.py +0 -0
  68. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/venv_task.py +0 -0
  69. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/__init__.py +0 -0
  70. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/app_factory.py +0 -0
  71. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_db_repository.py +0 -0
  72. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_service.py +0 -0
  73. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/db_engine_factory.py +0 -0
  74. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/error.py +0 -0
  75. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/logger_factory.py +0 -0
  76. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/parser_factory.py +0 -0
  77. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/schema.py +0 -0
  78. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/app.py +0 -0
  79. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/parser.py +0 -0
  80. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/user_agent.py +0 -0
  81. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/view.py +0 -0
  82. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/config.py +0 -0
  83. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/main.py +0 -0
  84. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/migrate.py +0 -0
  85. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/__init__.py +0 -0
  86. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/alembic.ini +0 -0
  87. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_api_client.py +0 -0
  88. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client.py +0 -0
  89. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client_factory.py +0 -0
  90. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_direct_client.py +0 -0
  91. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/README +0 -0
  92. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/env.py +0 -0
  93. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/script.py.mako +0 -0
  94. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/3093c7336477_add_auth_tables.py +0 -0
  95. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration_metadata.py +0 -0
  96. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/route.py +0 -0
  97. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/__init__.py +0 -0
  98. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/__init__.py +0 -0
  99. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service.py +0 -0
  100. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service_factory.py +0 -0
  101. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_db_repository.py +0 -0
  102. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository.py +0 -0
  103. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository_factory.py +0 -0
  104. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/__init__.py +0 -0
  105. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_db_repository.py +0 -0
  106. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository.py +0 -0
  107. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository_factory.py +0 -0
  108. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service.py +0 -0
  109. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service_factory.py +0 -0
  110. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/__init__.py +0 -0
  111. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_db_repository.py +0 -0
  112. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository.py +0 -0
  113. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository_factory.py +0 -0
  114. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service.py +0 -0
  115. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service_factory.py +0 -0
  116. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/alembic.ini +0 -0
  117. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/README +0 -0
  118. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/env.py +0 -0
  119. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/script.py.mako +0 -0
  120. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/versions/.gitkeep +0 -0
  121. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration_metadata.py +0 -0
  122. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/route.py +0 -0
  123. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/subroute/auth.py +0 -0
  124. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/view.py +0 -0
  125. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/error.html +0 -0
  126. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/homepage.html +0 -0
  127. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-192x192.png +0 -0
  128. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-512x512.png +0 -0
  129. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/favicon-32x32.png +0 -0
  130. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.amber.min.css +0 -0
  131. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.blue.min.css +0 -0
  132. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.cyan.min.css +0 -0
  133. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.fuchsia.min.css +0 -0
  134. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.green.min.css +0 -0
  135. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.grey.min.css +0 -0
  136. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.indigo.min.css +0 -0
  137. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.jade.min.css +0 -0
  138. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.lime.min.css +0 -0
  139. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.min.css +0 -0
  140. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.orange.min.css +0 -0
  141. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.pink.min.css +0 -0
  142. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.pumpkin.min.css +0 -0
  143. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.purple.min.css +0 -0
  144. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.red.min.css +0 -0
  145. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.sand.min.css +0 -0
  146. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.slate.min.css +0 -0
  147. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.violet.min.css +0 -0
  148. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.yellow.min.css +0 -0
  149. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.zinc.min.css +0 -0
  150. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/template/default.html +0 -0
  151. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/requirements.txt +0 -0
  152. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/__init__.py +0 -0
  153. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/permission.py +0 -0
  154. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/role.py +0 -0
  155. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/session.py +0 -0
  156. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/user.py +0 -0
  157. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/template.env +0 -0
  158. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/add/fastapp/fastapp_util.py +0 -0
  159. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/create/__init__.py +0 -0
  160. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/create/project-template/README.md +0 -0
  161. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/create/project-template/zrb_init.py +0 -0
  162. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/project/create/project_task.py +0 -0
  163. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/python.py +0 -0
  164. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/random.py +0 -0
  165. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/setup/asdf/asdf.py +0 -0
  166. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/setup/asdf/asdf_helper.py +0 -0
  167. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/setup/common_input.py +0 -0
  168. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/setup/latex/ubuntu.py +0 -0
  169. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/setup/tmux/tmux.py +0 -0
  170. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/setup/tmux/tmux_config.sh +0 -0
  171. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/setup/tmux/tmux_helper.py +0 -0
  172. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/setup/ubuntu.py +0 -0
  173. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/shell/__init__.py +0 -0
  174. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/shell/autocomplete/__init__.py +0 -0
  175. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/shell/autocomplete/bash.py +0 -0
  176. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/shell/autocomplete/subcmd.py +0 -0
  177. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/shell/autocomplete/zsh.py +0 -0
  178. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/builtin/todo.py +0 -0
  179. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/callback/__init__.py +0 -0
  180. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/callback/any_callback.py +0 -0
  181. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/callback/callback.py +0 -0
  182. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/cmd/__init__.py +0 -0
  183. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/cmd/cmd_result.py +0 -0
  184. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/cmd/cmd_val.py +0 -0
  185. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/content_transformer/__init__.py +0 -0
  186. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/content_transformer/any_content_transformer.py +0 -0
  187. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/content_transformer/content_transformer.py +0 -0
  188. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/context/__init__.py +0 -0
  189. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/context/any_context.py +0 -0
  190. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/context/any_shared_context.py +0 -0
  191. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/context/context.py +0 -0
  192. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/context/shared_context.py +0 -0
  193. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/dot_dict/__init__.py +0 -0
  194. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/dot_dict/dot_dict.py +0 -0
  195. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/env/__init__.py +0 -0
  196. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/env/any_env.py +0 -0
  197. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/env/env.py +0 -0
  198. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/env/env_file.py +0 -0
  199. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/env/env_map.py +0 -0
  200. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/group/__init__.py +0 -0
  201. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/group/any_group.py +0 -0
  202. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/group/group.py +0 -0
  203. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/input/__init__.py +0 -0
  204. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/input/any_input.py +0 -0
  205. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/input/base_input.py +0 -0
  206. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/input/bool_input.py +0 -0
  207. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/input/float_input.py +0 -0
  208. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/input/int_input.py +0 -0
  209. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/input/option_input.py +0 -0
  210. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/input/password_input.py +0 -0
  211. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/input/str_input.py +0 -0
  212. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/input/text_input.py +0 -0
  213. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/__init__.py +0 -0
  214. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/cli.py +0 -0
  215. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/common_util.py +0 -0
  216. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_app.py +0 -0
  217. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_config/config.py +0 -0
  218. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_config/config_factory.py +0 -0
  219. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/__init__.py +0 -0
  220. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/docs_route.py +0 -0
  221. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/error_page/serve_default_404.py +0 -0
  222. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/error_page/show_error_page.py +0 -0
  223. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/error_page/view.html +0 -0
  224. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/home_page/__init__.py +0 -0
  225. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/home_page/home_page_route.py +0 -0
  226. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/home_page/view.html +0 -0
  227. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/login_api_route.py +0 -0
  228. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/login_page/login_page_route.py +0 -0
  229. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/login_page/view.html +0 -0
  230. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/logout_api_route.py +0 -0
  231. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/logout_page/logout_page_route.py +0 -0
  232. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/logout_page/view.html +0 -0
  233. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/node_page/group/show_group_page.py +0 -0
  234. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/node_page/group/view.html +0 -0
  235. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/node_page/node_page_route.py +0 -0
  236. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/node_page/task/partial/input.html +0 -0
  237. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/node_page/task/show_task_page.py +0 -0
  238. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/refresh_token_api_route.py +0 -0
  239. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/static/refresh-token.template.js +0 -0
  240. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/static/resources/common.css +0 -0
  241. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/static/resources/favicon-32x32.png +0 -0
  242. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/static/resources/login/event.js +0 -0
  243. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/static/resources/logout/event.js +0 -0
  244. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/static/resources/pico.min.css +0 -0
  245. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/static/resources/session/common-util.js +0 -0
  246. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/static/resources/session/past-session.js +0 -0
  247. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/static/static_route.py +0 -0
  248. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/task_input_api_route.py +0 -0
  249. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_route/task_session_api_route.py +0 -0
  250. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_schema/session.py +0 -0
  251. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_schema/token.py +0 -0
  252. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_schema/user.py +0 -0
  253. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_util/cookie.py +0 -0
  254. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_util/html.py +0 -0
  255. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_util/token.py +0 -0
  256. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/runner/web_util/user.py +0 -0
  257. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/session/__init__.py +0 -0
  258. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/session/any_session.py +0 -0
  259. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/session/session.py +0 -0
  260. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/session_state_log/__init__.py +0 -0
  261. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/session_state_log/session_state_log.py +0 -0
  262. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/session_state_logger/__init__.py +0 -0
  263. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/session_state_logger/any_session_state_logger.py +0 -0
  264. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/session_state_logger/file_session_state_logger.py +0 -0
  265. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/session_state_logger/session_state_logger_factory.py +0 -0
  266. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/task/__init__.py +0 -0
  267. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/task/any_task.py +0 -0
  268. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/task/base_task.py +0 -0
  269. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/task/base_trigger.py +0 -0
  270. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/task/cmd_task.py +0 -0
  271. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/task/http_check.py +0 -0
  272. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/task/make_task.py +0 -0
  273. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/task/rsync_task.py +0 -0
  274. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/task/scaffolder.py +0 -0
  275. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/task/scheduler.py +0 -0
  276. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/task/task.py +0 -0
  277. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/task/tcp_check.py +0 -0
  278. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/task_status/__init__.py +0 -0
  279. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/task_status/task_status.py +0 -0
  280. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/__init__.py +0 -0
  281. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/attr.py +0 -0
  282. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/cli/__init__.py +0 -0
  283. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/cli/style.py +0 -0
  284. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/cli/subcommand.py +0 -0
  285. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/cmd/__init__.py +0 -0
  286. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/cmd/command.py +0 -0
  287. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/cmd/remote.py +0 -0
  288. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/codemod/__init__.py +0 -0
  289. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/codemod/append_code_to_class.py +0 -0
  290. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/codemod/append_code_to_function.py +0 -0
  291. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/codemod/append_code_to_method.py +0 -0
  292. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/codemod/append_key_to_dict.py +0 -0
  293. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/codemod/append_param_to_function_call.py +0 -0
  294. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/codemod/prepend_code_to_module.py +0 -0
  295. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/codemod/prepend_parent_to_class.py +0 -0
  296. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/codemod/prepend_property_to_class.py +0 -0
  297. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/cron.py +0 -0
  298. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/file.py +0 -0
  299. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/git.py +0 -0
  300. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/git_subtree.py +0 -0
  301. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/group.py +0 -0
  302. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/load.py +0 -0
  303. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/run.py +0 -0
  304. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/string/__init__.py +0 -0
  305. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/string/conversion.py +0 -0
  306. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/string/format.py +0 -0
  307. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/string/name.py +0 -0
  308. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/util/todo.py +0 -0
  309. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/xcom/__init__.py +0 -0
  310. {zrb-1.0.0b4 → zrb-1.0.0b6}/src/zrb/xcom/xcom.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zrb
3
- Version: 1.0.0b4
3
+ Version: 1.0.0b6
4
4
  Summary: Your Automation Powerhouse
5
5
  Home-page: https://github.com/state-alchemists/zrb
6
6
  License: AGPL-3.0-or-later
@@ -19,10 +19,11 @@ Requires-Dist: beautifulsoup4 (>=4.12.3,<5.0.0)
19
19
  Requires-Dist: black (>=24.10.0,<24.11.0)
20
20
  Requires-Dist: chromadb (>=0.5.20,<0.6.0) ; extra == "rag"
21
21
  Requires-Dist: fastapi[standard] (>=0.115.6,<0.116.0)
22
+ Requires-Dist: fastembed (>=0.5.1,<0.6.0)
22
23
  Requires-Dist: isort (>=5.13.2,<5.14.0)
23
24
  Requires-Dist: libcst (>=1.5.0,<2.0.0)
24
- Requires-Dist: litellm (>=1.52.12,<2.0.0)
25
25
  Requires-Dist: pdfplumber (>=0.11.4,<0.12.0) ; extra == "rag"
26
+ Requires-Dist: pydantic-ai (>=0.0.19,<0.0.20)
26
27
  Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
27
28
  Requires-Dist: python-jose[cryptography] (>=3.3.0,<4.0.0)
28
29
  Requires-Dist: requests (>=2.32.3,<3.0.0)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "zrb"
3
- version = "1.0.0b4"
3
+ version = "1.0.0b6"
4
4
  description = "Your Automation Powerhouse"
5
5
  authors = ["Go Frendi Gunawan <gofrendiasgard@gmail.com>"]
6
6
  license = "AGPL-3.0-or-later"
@@ -44,13 +44,14 @@ black = "~24.10.0"
44
44
  isort = "~5.13.2"
45
45
  requests = "^2.32.3"
46
46
  libcst = "^1.5.0"
47
- litellm = "^1.52.12"
48
47
  chromadb = {version = "^0.5.20", optional = true}
49
48
  pdfplumber = {version = "^0.11.4", optional = true}
50
49
  beautifulsoup4 = "^4.12.3"
51
50
  fastapi = {extras = ["standard"], version = "^0.115.6"}
52
51
  python-jose = {extras = ["cryptography"], version = "^3.3.0"}
53
52
  ulid-py = "^1.1.0"
53
+ pydantic-ai = "^0.0.19"
54
+ fastembed = "^0.5.1"
54
55
 
55
56
  [tool.poetry.extras]
56
57
  # poetry install -E rag
@@ -92,8 +92,8 @@ llm_chat: LLMTask = llm_group.add_task(
92
92
  ),
93
93
  BoolInput(
94
94
  "start-new",
95
- description="Start new conversation session",
96
- prompt="Forget everything and start new conversation session",
95
+ description="Start new conversation (LLM will forget everything)",
96
+ prompt="Start new conversation (LLM will forget everything)",
97
97
  default_str="false",
98
98
  allow_positional_parsing=False,
99
99
  ),
@@ -0,0 +1,21 @@
1
+ async function updatePreviousSession(event) {
2
+ const currentInput = event.target;
3
+ if (currentInput.name === "CURRENT_INPUT_NAME") {
4
+ return
5
+ }
6
+ const previousSessionInput = submitTaskForm.querySelector('[name="CURRENT_INPUT_NAME"]');
7
+ if (previousSessionInput) {
8
+ const currentSessionName = cfg.SESSION_NAME
9
+ previousSessionInput.value = currentSessionName;
10
+ }
11
+ }
12
+
13
+ document.getElementById("submit-task-form").querySelectorAll("input[name], textarea[name]").forEach((element) => {
14
+ element.addEventListener("input", updatePreviousSession);
15
+ element.addEventListener("keyup", updatePreviousSession);
16
+ });
17
+
18
+ document.getElementById("submit-task-form").querySelectorAll("select[name]").forEach((element) => {
19
+ element.addEventListener("change", updatePreviousSession);
20
+ });
21
+
@@ -3,7 +3,6 @@ import json
3
3
  import os
4
4
  import sys
5
5
 
6
- import litellm
7
6
  import ulid
8
7
 
9
8
  from zrb.config import (
@@ -30,7 +29,9 @@ def create_rag_from_directory(
30
29
  async def retrieve(query: str) -> str:
31
30
  from chromadb import PersistentClient
32
31
  from chromadb.config import Settings
32
+ from fastembed import TextEmbedding
33
33
 
34
+ embedding_model = TextEmbedding(model_name=model)
34
35
  client = PersistentClient(
35
36
  path=vector_db_path, settings=Settings(allow_reset=True)
36
37
  )
@@ -75,10 +76,8 @@ def create_rag_from_directory(
75
76
  ),
76
77
  file=sys.stderr,
77
78
  )
78
- response = await litellm.aembedding(
79
- model=model, input=[chunk]
80
- )
81
- vector = response["data"][0]["embedding"]
79
+ embedding_result = list(embedding_model.embed([chunk]))
80
+ vector = embedding_result[0]
82
81
  collection.upsert(
83
82
  ids=[chunk_id],
84
83
  embeddings=[vector],
@@ -102,9 +101,8 @@ def create_rag_from_directory(
102
101
  )
103
102
 
104
103
  print(stylize_faint("Vectorizing query"), file=sys.stderr)
105
- query_response = await litellm.aembedding(model=model, input=[query])
106
- query_vector = query_response["data"][0]["embedding"]
107
-
104
+ embedding_result = list(embedding_model.embed([query]))
105
+ query_vector = embedding_result[0]
108
106
  print(stylize_faint("Searching documents"), file=sys.stderr)
109
107
  results = collection.query(
110
108
  query_embeddings=query_vector,
@@ -78,22 +78,14 @@ WEB_AUTH_REFRESH_TOKEN_EXPIRE_MINUTES = int(
78
78
  )
79
79
  LLM_MODEL = os.getenv("ZRB_LLM_MODEL", "ollama_chat/llama3.1")
80
80
 
81
- _DEFAULT_PROMPT = """
82
- You are a helpful assistant and you have access to several tools.
83
- Your goal is to provide a final answer by executing a series of planning, actions, reasoning, and evaluations.
84
-
85
- Breakdown user request into several actionable tasks. For example, when user ask about current weather on current location, you should get the current location first.
86
-
87
- DO NOT TRY TO SIMULATE TOOL OUTPUT.
88
-
89
- ERROR HANDLING
90
- 1. If you receive an error, read the error message carefully and identify the specific issue.
91
- 2. Adjust your response accordingly and perform the review process again before resubmitting.
92
-
93
- REMINDER:
94
- - ALWAYS double-check your response format and function arguments before submitting.
95
- - DON'T make up answers.
96
- """.strip()
81
+ _DEFAULT_PROMPT = (
82
+ "You are a helpful AI assistant capable of using various tools to answer user queries. When solving a problem:\n"
83
+ "1. Carefully analyze the user's request and identify what information is needed to provide a complete answer.\n"
84
+ "2. Determine which available tools can help you gather the necessary information.\n"
85
+ "3. Call tools strategically and in a logical sequence to collect required data.\n"
86
+ "4. If a tool provides incomplete information, intelligently decide which additional tool or approach to use.\n"
87
+ "5. Always aim to provide the most accurate and helpful response possible."
88
+ )
97
89
  LLM_SYSTEM_PROMPT = os.getenv("ZRB_LLM_SYSTEM_PROMPT", _DEFAULT_PROMPT)
98
90
  LLM_HISTORY_DIR = os.getenv(
99
91
  "ZRB_LLM_HISTORY_DIR", os.path.expanduser(os.path.join("~", ".zrb-llm-history"))
@@ -103,7 +95,10 @@ LLM_HISTORY_FILE = os.getenv(
103
95
  )
104
96
  LLM_ALLOW_ACCESS_SHELL = to_boolean(os.getenv("ZRB_LLM_ACCESS_FILE", "1"))
105
97
  LLM_ALLOW_ACCESS_INTERNET = to_boolean(os.getenv("ZRB_LLM_ACCESS_INTERNET", "1"))
106
- RAG_EMBEDDING_MODEL = os.getenv("ZRB_RAG_EMBEDDING_MODEL", "ollama/nomic-embed-text")
98
+ # noqa See: https://qdrant.github.io/fastembed/examples/Supported_Models/#supported-text-embedding-models
99
+ RAG_EMBEDDING_MODEL = os.getenv(
100
+ "ZRB_RAG_EMBEDDING_MODEL", "nomic-ai/nomic-embed-text-v1.5-Q"
101
+ )
107
102
  RAG_CHUNK_SIZE = int(os.getenv("ZRB_RAG_CHUNK_SIZE", "1024"))
108
103
  RAG_OVERLAP = int(os.getenv("ZRB_RAG_OVERLAP", "128"))
109
104
  RAG_MAX_RESULT_COUNT = int(os.getenv("ZRB_RAG_MAX_RESULT_COUNT", "5"))
@@ -63,7 +63,7 @@
63
63
  <article>
64
64
  <form id="submit-task-form" onsubmit="submitNewSessionForm(event)">
65
65
  {task_inputs}
66
- <button>🚀 Run</button>
66
+ <button>🚀 Run New Session</button>
67
67
  </form>
68
68
  </article>
69
69
  <article>
@@ -4,18 +4,22 @@ const CURRENT_SESSION = {
4
4
  const logTextarea = document.getElementById("log-textarea");
5
5
  const submitTaskForm = document.getElementById("submit-task-form");
6
6
  let isFinished = false;
7
+ let isInputUpdated = false;
7
8
  let errorCount = 0;
8
9
  while (!isFinished) {
9
10
  try {
10
11
  const data = await this.getCurrentSession();
11
12
  // update inputs
12
- const dataInputs = data.input;
13
- for (const inputName in dataInputs) {
14
- const inputValue = dataInputs[inputName];
15
- const input = submitTaskForm.querySelector(`[name="${inputName}"]`);
16
- if (input) {
17
- input.value = inputValue;
13
+ if (!isInputUpdated) {
14
+ const dataInputs = data.input;
15
+ for (const inputName in dataInputs) {
16
+ const inputValue = dataInputs[inputName];
17
+ const input = submitTaskForm.querySelector(`[name="${inputName}"]`);
18
+ if (input) {
19
+ input.value = inputValue;
20
+ }
18
21
  }
22
+ isInputUpdated = true;
19
23
  }
20
24
  resultLineCount = data.final_result.split("\n").length;
21
25
  resultTextarea.rows = resultLineCount <= 5 ? resultLineCount : 5;
@@ -20,7 +20,7 @@ window.addEventListener("load", async function () {
20
20
 
21
21
 
22
22
  const submitTaskForm = document.getElementById("submit-task-form");
23
- submitTaskForm.addEventListener("change", async function(event) {
23
+ async function handleInputUpdate(event) {
24
24
  const currentInput = event.target;
25
25
  const inputs = Array.from(submitTaskForm.querySelectorAll("input[name], textarea[name], select[name]"));
26
26
  const inputMap = {};
@@ -59,6 +59,7 @@ submitTaskForm.addEventListener("change", async function(event) {
59
59
  if (value === "") {
60
60
  return;
61
61
  }
62
+ console.log(input, data);
62
63
  input.value = value;
63
64
  });
64
65
  } else {
@@ -67,6 +68,14 @@ submitTaskForm.addEventListener("change", async function(event) {
67
68
  } catch (error) {
68
69
  console.error("Error during fetch:", error);
69
70
  }
71
+ }
72
+
73
+ submitTaskForm.querySelectorAll("input[name], textarea[name]").forEach((element) => {
74
+ element.addEventListener("input", handleInputUpdate);
75
+ element.addEventListener("keyup", handleInputUpdate);
76
+ });
77
+ submitTaskForm.querySelectorAll("select[name]").forEach((element) => {
78
+ element.addEventListener("change", handleInputUpdate);
70
79
  });
71
80
 
72
81
 
@@ -0,0 +1,199 @@
1
+ import json
2
+ import os
3
+ from collections.abc import Callable
4
+ from typing import Any
5
+
6
+ from pydantic_ai import Agent, Tool
7
+ from pydantic_ai.messages import ModelMessagesTypeAdapter
8
+ from pydantic_ai.settings import ModelSettings
9
+
10
+ from zrb.attr.type import StrAttr
11
+ from zrb.config import LLM_MODEL, LLM_SYSTEM_PROMPT
12
+ from zrb.context.any_context import AnyContext
13
+ from zrb.context.any_shared_context import AnySharedContext
14
+ from zrb.env.any_env import AnyEnv
15
+ from zrb.input.any_input import AnyInput
16
+ from zrb.task.any_task import AnyTask
17
+ from zrb.task.base_task import BaseTask
18
+ from zrb.util.attr import get_str_attr
19
+ from zrb.util.cli.style import stylize_faint
20
+ from zrb.util.file import read_file, write_file
21
+ from zrb.util.run import run_async
22
+
23
+ ListOfDict = list[dict[str, Any]]
24
+ ToolOrCallable = Tool | Callable
25
+
26
+
27
+ class LLMTask(BaseTask):
28
+ def __init__(
29
+ self,
30
+ name: str,
31
+ color: int | None = None,
32
+ icon: str | None = None,
33
+ description: str | None = None,
34
+ cli_only: bool = False,
35
+ input: list[AnyInput | None] | AnyInput | None = None,
36
+ env: list[AnyEnv | None] | AnyEnv | None = None,
37
+ model: StrAttr | None = LLM_MODEL,
38
+ model_settings: (
39
+ ModelSettings | Callable[[AnySharedContext], ModelSettings] | None
40
+ ) = None,
41
+ render_model: bool = True,
42
+ agent: Agent | Callable[[AnySharedContext], Agent] | None = None,
43
+ system_prompt: StrAttr | None = LLM_SYSTEM_PROMPT,
44
+ render_system_prompt: bool = True,
45
+ message: StrAttr | None = None,
46
+ tools: (
47
+ list[ToolOrCallable] | Callable[[AnySharedContext], list[ToolOrCallable]]
48
+ ) = [],
49
+ conversation_history: (
50
+ ListOfDict | Callable[[AnySharedContext], ListOfDict]
51
+ ) = [],
52
+ conversation_history_reader: (
53
+ Callable[[AnySharedContext], ListOfDict] | None
54
+ ) = None,
55
+ conversation_history_writer: (
56
+ Callable[[AnySharedContext, ListOfDict], None] | None
57
+ ) = None,
58
+ conversation_history_file: StrAttr | None = None,
59
+ render_history_file: bool = True,
60
+ execute_condition: bool | str | Callable[[AnySharedContext], bool] = True,
61
+ retries: int = 2,
62
+ retry_period: float = 0,
63
+ readiness_check: list[AnyTask] | AnyTask | None = None,
64
+ readiness_check_delay: float = 0.5,
65
+ readiness_check_period: float = 5,
66
+ readiness_failure_threshold: int = 1,
67
+ readiness_timeout: int = 60,
68
+ monitor_readiness: bool = False,
69
+ max_call_iteration: int = 20,
70
+ upstream: list[AnyTask] | AnyTask | None = None,
71
+ fallback: list[AnyTask] | AnyTask | None = None,
72
+ successor: list[AnyTask] | AnyTask | None = None,
73
+ ):
74
+ super().__init__(
75
+ name=name,
76
+ color=color,
77
+ icon=icon,
78
+ description=description,
79
+ cli_only=cli_only,
80
+ input=input,
81
+ env=env,
82
+ execute_condition=execute_condition,
83
+ retries=retries,
84
+ retry_period=retry_period,
85
+ readiness_check=readiness_check,
86
+ readiness_check_delay=readiness_check_delay,
87
+ readiness_check_period=readiness_check_period,
88
+ readiness_failure_threshold=readiness_failure_threshold,
89
+ readiness_timeout=readiness_timeout,
90
+ monitor_readiness=monitor_readiness,
91
+ upstream=upstream,
92
+ fallback=fallback,
93
+ successor=successor,
94
+ )
95
+ self._model = model
96
+ self._model_settings = (model_settings,)
97
+ self._agent = agent
98
+ self._render_model = render_model
99
+ self._system_prompt = system_prompt
100
+ self._render_system_prompt = render_system_prompt
101
+ self._message = message
102
+ self._tools = tools
103
+ self._additional_tools: list[ToolOrCallable] = []
104
+ self._conversation_history = conversation_history
105
+ self._conversation_history_reader = conversation_history_reader
106
+ self._conversation_history_writer = conversation_history_writer
107
+ self._conversation_history_file = conversation_history_file
108
+ self._render_history_file = render_history_file
109
+ self._max_call_iteration = max_call_iteration
110
+
111
+ def add_tool(self, tool: ToolOrCallable):
112
+ self._additional_tools.append(tool)
113
+
114
+ async def _exec_action(self, ctx: AnyContext) -> Any:
115
+ history = await self._read_conversation_history(ctx)
116
+ user_prompt = self._get_message(ctx)
117
+ agent = self._get_agent(ctx)
118
+ result = await agent.run(
119
+ user_prompt=user_prompt,
120
+ message_history=ModelMessagesTypeAdapter.validate_python(history),
121
+ )
122
+ new_history = json.loads(result.all_messages_json())
123
+ for history in new_history:
124
+ ctx.print(stylize_faint(json.dumps(history)))
125
+ await self._write_conversation_history(ctx, new_history)
126
+ return result.data
127
+
128
+ async def _write_conversation_history(
129
+ self, ctx: AnyContext, conversations: list[Any]
130
+ ):
131
+ if self._conversation_history_writer is not None:
132
+ await run_async(self._conversation_history_writer(ctx, conversations))
133
+ history_file = self._get_history_file(ctx)
134
+ if history_file != "":
135
+ write_file(history_file, json.dumps(conversations, indent=2))
136
+
137
+ def _get_model_settings(self, ctx: AnyContext) -> ModelSettings | None:
138
+ if isinstance(self._model_settings, ModelSettings):
139
+ return self._model_settings
140
+ if callable(self._model_settings):
141
+ return self._model_settings(ctx)
142
+ return None
143
+
144
+ def _get_agent(self, ctx: AnyContext) -> Agent:
145
+ if isinstance(self._agent, Agent):
146
+ return self._agent
147
+ if callable(self._agent):
148
+ return self._agent(ctx)
149
+ tools_or_callables = list(
150
+ self._tools(ctx) if callable(self._tools) else self._tools
151
+ )
152
+ tools_or_callables.extend(self._additional_tools)
153
+ tools = [
154
+ tool if isinstance(tool, Tool) else Tool(tool, takes_ctx=False)
155
+ for tool in tools_or_callables
156
+ ]
157
+ return Agent(
158
+ self._get_model(ctx),
159
+ system_prompt=self._get_system_prompt(ctx),
160
+ tools=tools,
161
+ )
162
+
163
+ def _get_model(self, ctx: AnyContext) -> str:
164
+ return get_str_attr(
165
+ ctx, self._model, "ollama_chat/llama3.1", auto_render=self._render_model
166
+ )
167
+
168
+ def _get_system_prompt(self, ctx: AnyContext) -> str:
169
+ return get_str_attr(
170
+ ctx,
171
+ self._system_prompt,
172
+ "You are a helpful assistant",
173
+ auto_render=self._render_system_prompt,
174
+ )
175
+
176
+ def _get_message(self, ctx: AnyContext) -> str:
177
+ return get_str_attr(ctx, self._message, "How are you?", auto_render=True)
178
+
179
+ async def _read_conversation_history(self, ctx: AnyContext) -> ListOfDict:
180
+ if self._conversation_history_reader is not None:
181
+ return await run_async(self._conversation_history_reader(ctx))
182
+ if callable(self._conversation_history):
183
+ return self._conversation_history(ctx)
184
+ history_file = self._get_history_file(ctx)
185
+ if (
186
+ len(self._conversation_history) == 0
187
+ and history_file != ""
188
+ and os.path.isfile(history_file)
189
+ ):
190
+ return json.loads(read_file(history_file))
191
+ return self._conversation_history
192
+
193
+ def _get_history_file(self, ctx: AnyContext) -> str:
194
+ return get_str_attr(
195
+ ctx,
196
+ self._conversation_history_file,
197
+ "",
198
+ auto_render=self._render_history_file,
199
+ )
@@ -1,6 +1,6 @@
1
1
  import inspect
2
2
  from collections.abc import Callable
3
- from typing import Any, get_type_hints
3
+ from typing import Annotated, Any, Literal, get_type_hints
4
4
 
5
5
 
6
6
  def callable_to_tool_schema(callable_obj: Callable) -> dict[str, Any]:
@@ -21,10 +21,14 @@ def callable_to_tool_schema(callable_obj: Callable) -> dict[str, Any]:
21
21
  # Build parameter schema
22
22
  param_schema = {"type": "object", "properties": {}, "required": []}
23
23
  for param_name, param in sig.parameters.items():
24
- param_type = hints.get(param_name, str) # Default type is string
25
- param_schema["properties"][param_name] = {
26
- "type": _python_type_to_json_type(param_type)
27
- }
24
+ # Get the type hint or default to str
25
+ param_type = hints.get(param_name, str)
26
+
27
+ # Handle annotated types (e.g., Annotated[str, "description"])
28
+ json_type, param_metadata = _process_type_annotation(param_type)
29
+ param_schema["properties"][param_name] = param_metadata
30
+
31
+ # Mark required parameters
28
32
  if param.default is inspect.Parameter.empty:
29
33
  param_schema["required"].append(param_name)
30
34
  return {
@@ -37,6 +41,30 @@ def callable_to_tool_schema(callable_obj: Callable) -> dict[str, Any]:
37
41
  }
38
42
 
39
43
 
44
+ def _process_type_annotation(py_type: Any) -> tuple[str, dict]:
45
+ """
46
+ Process type annotations and return the JSON Schema type and metadata.
47
+
48
+ :param py_type: The type annotation.
49
+ :return: A tuple of (JSON type, parameter metadata).
50
+ """
51
+ if hasattr(py_type, "__origin__") and py_type.__origin__ is Literal:
52
+ # Handle Literal (enum)
53
+ enum_values = list(py_type.__args__)
54
+ return "string", {"type": "string", "enum": enum_values}
55
+
56
+ if hasattr(py_type, "__origin__") and py_type.__origin__ is Annotated:
57
+ # Handle Annotated types
58
+ base_type = py_type.__args__[0]
59
+ description = py_type.__args__[1]
60
+ json_type = _python_type_to_json_type(base_type)
61
+ return json_type, {"type": json_type, "description": description}
62
+
63
+ # Fallback to basic type conversion
64
+ json_type = _python_type_to_json_type(py_type)
65
+ return json_type, {"type": json_type}
66
+
67
+
40
68
  def _python_type_to_json_type(py_type):
41
69
  """
42
70
  Map Python types to JSON Schema types.
@@ -1,13 +0,0 @@
1
- let hasUpdateCurrentPascalInputName = false;
2
- document.getElementById("submit-task-form").addEventListener("change", async function(event) {
3
- const currentInput = event.target;
4
- if (hasUpdateCurrentPascalInputName || currentInput.name === "CURRENT_INPUT_NAME") {
5
- return
6
- }
7
- const previousSessionInput = submitTaskForm.querySelector('[name="CURRENT_INPUT_NAME"]');
8
- if (previousSessionInput) {
9
- const currentSessionName = cfg.SESSION_NAME
10
- previousSessionInput.value = currentSessionName;
11
- }
12
- hasUpdateCurrentPascalInputName = true;
13
- });