zrb 1.4.0__tar.gz → 1.4.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 (350) hide show
  1. {zrb-1.4.0 → zrb-1.4.2}/PKG-INFO +78 -47
  2. zrb-1.4.2/README.md +172 -0
  3. {zrb-1.4.0 → zrb-1.4.2}/pyproject.toml +1 -1
  4. zrb-1.4.2/src/zrb/__main__.py +50 -0
  5. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/llm/llm_chat.py +7 -6
  6. zrb-1.4.2/src/zrb/builtin/llm/tool/file.py +152 -0
  7. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/config.py +0 -9
  8. zrb-1.4.2/src/zrb/llm_config.py +95 -0
  9. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/cli.py +0 -2
  10. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/task/llm_task.py +9 -7
  11. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/load.py +0 -16
  12. zrb-1.4.0/README.md +0 -141
  13. zrb-1.4.0/src/zrb/__main__.py +0 -26
  14. zrb-1.4.0/src/zrb/builtin/llm/tool/file.py +0 -76
  15. zrb-1.4.0/src/zrb/llm_config.py +0 -50
  16. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/__init__.py +0 -0
  17. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/attr/__init__.py +0 -0
  18. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/attr/type.py +0 -0
  19. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/__init__.py +0 -0
  20. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/base64.py +0 -0
  21. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/git.py +0 -0
  22. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/git_subtree.py +0 -0
  23. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/group.py +0 -0
  24. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/llm/previous-session.js +0 -0
  25. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/llm/tool/api.py +0 -0
  26. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/llm/tool/cli.py +0 -0
  27. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/llm/tool/rag.py +0 -0
  28. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/llm/tool/web.py +0 -0
  29. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/md5.py +0 -0
  30. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/__init__.py +0 -0
  31. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_input.py +0 -0
  32. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_task.py +0 -0
  33. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.coveragerc +0 -0
  34. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.flake8 +0 -0
  35. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.gitignore +0 -0
  36. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/README.md +0 -0
  37. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/__init__.py +0 -0
  38. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_task.py +0 -0
  39. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_util.py +0 -0
  40. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/config.py +0 -0
  41. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_task.py +0 -0
  42. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_util.py +0 -0
  43. {zrb-1.4.0 → zrb-1.4.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
  44. {zrb-1.4.0 → zrb-1.4.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
  45. {zrb-1.4.0 → zrb-1.4.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
  46. {zrb-1.4.0 → zrb-1.4.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
  47. {zrb-1.4.0 → zrb-1.4.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
  48. {zrb-1.4.0 → zrb-1.4.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
  49. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/schema/my_entity.py +0 -0
  50. {zrb-1.4.0 → zrb-1.4.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
  51. {zrb-1.4.0 → zrb-1.4.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
  52. {zrb-1.4.0 → zrb-1.4.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
  53. {zrb-1.4.0 → zrb-1.4.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
  54. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/client_method.py +0 -0
  55. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/gateway_subroute.py +0 -0
  56. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/navigation_config_file.py +0 -0
  57. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/format_task.py +0 -0
  58. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/group.py +0 -0
  59. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/input.py +0 -0
  60. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_task.py +0 -0
  61. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_util.py +0 -0
  62. {zrb-1.4.0 → zrb-1.4.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
  63. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/alembic.ini +0 -0
  64. {zrb-1.4.0 → zrb-1.4.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
  65. {zrb-1.4.0 → zrb-1.4.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
  66. {zrb-1.4.0 → zrb-1.4.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
  67. {zrb-1.4.0 → zrb-1.4.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
  68. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/README +0 -0
  69. {zrb-1.4.0 → zrb-1.4.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
  70. {zrb-1.4.0 → zrb-1.4.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
  71. {zrb-1.4.0 → zrb-1.4.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
  72. {zrb-1.4.0 → zrb-1.4.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
  73. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/route.py +0 -0
  74. {zrb-1.4.0 → zrb-1.4.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
  75. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/module_task_definition.py +0 -0
  76. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/navigation_config_file.py +0 -0
  77. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task.py +0 -0
  78. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task_util.py +0 -0
  79. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/util.py +0 -0
  80. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/venv_task.py +0 -0
  81. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/__init__.py +0 -0
  82. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/app_factory.py +0 -0
  83. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_db_repository.py +0 -0
  84. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_service.py +0 -0
  85. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/db_engine_factory.py +0 -0
  86. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/error.py +0 -0
  87. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/logger_factory.py +0 -0
  88. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/parser_factory.py +0 -0
  89. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/schema.py +0 -0
  90. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/app.py +0 -0
  91. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/parser.py +0 -0
  92. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/user_agent.py +0 -0
  93. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/view.py +0 -0
  94. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/config.py +0 -0
  95. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/main.py +0 -0
  96. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/__init__.py +0 -0
  97. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/alembic.ini +0 -0
  98. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_api_client.py +0 -0
  99. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client.py +0 -0
  100. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client_factory.py +0 -0
  101. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_direct_client.py +0 -0
  102. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/README +0 -0
  103. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/env.py +0 -0
  104. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/script.py.mako +0 -0
  105. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/3093c7336477_add_auth_tables.py +0 -0
  106. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/8ed025bcc845_create_permissions.py +0 -0
  107. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration_metadata.py +0 -0
  108. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/route.py +0 -0
  109. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/__init__.py +0 -0
  110. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/__init__.py +0 -0
  111. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service.py +0 -0
  112. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service_factory.py +0 -0
  113. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_db_repository.py +0 -0
  114. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository.py +0 -0
  115. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository_factory.py +0 -0
  116. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/__init__.py +0 -0
  117. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_db_repository.py +0 -0
  118. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository.py +0 -0
  119. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository_factory.py +0 -0
  120. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service.py +0 -0
  121. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service_factory.py +0 -0
  122. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/__init__.py +0 -0
  123. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_db_repository.py +0 -0
  124. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository.py +0 -0
  125. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository_factory.py +0 -0
  126. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service.py +0 -0
  127. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service_factory.py +0 -0
  128. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/alembic.ini +0 -0
  129. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/config/navigation.py +0 -0
  130. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/README +0 -0
  131. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/env.py +0 -0
  132. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/script.py.mako +0 -0
  133. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/versions/.gitkeep +0 -0
  134. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration_metadata.py +0 -0
  135. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/route.py +0 -0
  136. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/schema/navigation.py +0 -0
  137. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/subroute/auth.py +0 -0
  138. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/auth.py +0 -0
  139. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/view.py +0 -0
  140. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/permission.html +0 -0
  141. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/role.html +0 -0
  142. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/user.html +0 -0
  143. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/error.html +0 -0
  144. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/homepage.html +0 -0
  145. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/login.html +0 -0
  146. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/logout.html +0 -0
  147. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/common/util.js +0 -0
  148. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/style.css +0 -0
  149. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/util.js +0 -0
  150. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/pico-style.css +0 -0
  151. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/script.js +0 -0
  152. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/style.css +0 -0
  153. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-192x192.png +0 -0
  154. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-512x512.png +0 -0
  155. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/favicon-32x32.png +0 -0
  156. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.amber.min.css +0 -0
  157. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.blue.min.css +0 -0
  158. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.cyan.min.css +0 -0
  159. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.fuchsia.min.css +0 -0
  160. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.green.min.css +0 -0
  161. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.grey.min.css +0 -0
  162. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.indigo.min.css +0 -0
  163. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.jade.min.css +0 -0
  164. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.lime.min.css +0 -0
  165. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.min.css +0 -0
  166. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.orange.min.css +0 -0
  167. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.pink.min.css +0 -0
  168. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.pumpkin.min.css +0 -0
  169. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.purple.min.css +0 -0
  170. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.red.min.css +0 -0
  171. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.sand.min.css +0 -0
  172. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.slate.min.css +0 -0
  173. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.violet.min.css +0 -0
  174. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.yellow.min.css +0 -0
  175. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.zinc.min.css +0 -0
  176. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/template/default.html +0 -0
  177. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/requirements.txt +0 -0
  178. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/__init__.py +0 -0
  179. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/permission.py +0 -0
  180. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/role.py +0 -0
  181. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/user.py +0 -0
  182. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/template.env +0 -0
  183. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/_util/access_token.py +0 -0
  184. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_create_permission.py +0 -0
  185. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_delete_permission.py +0 -0
  186. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_read_permission.py +0 -0
  187. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_update_permission.py +0 -0
  188. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/test_user_session.py +0 -0
  189. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_health_and_readiness.py +0 -0
  190. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_homepage.py +0 -0
  191. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_not_found_error.py +0 -0
  192. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test.sh +0 -0
  193. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/add/fastapp/fastapp_util.py +0 -0
  194. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/create/__init__.py +0 -0
  195. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/create/project-template/README.md +0 -0
  196. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/create/project-template/zrb_init.py +0 -0
  197. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/project/create/project_task.py +0 -0
  198. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/python.py +0 -0
  199. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/random.py +0 -0
  200. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/setup/asdf/asdf.py +0 -0
  201. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/setup/asdf/asdf_helper.py +0 -0
  202. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/setup/common_input.py +0 -0
  203. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/setup/latex/ubuntu.py +0 -0
  204. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/setup/tmux/tmux.py +0 -0
  205. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/setup/tmux/tmux_config.sh +0 -0
  206. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/setup/tmux/tmux_helper.py +0 -0
  207. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/setup/ubuntu.py +0 -0
  208. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/setup/zsh/zsh.py +0 -0
  209. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/setup/zsh/zsh_config.sh +0 -0
  210. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/setup/zsh/zsh_helper.py +0 -0
  211. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/shell/__init__.py +0 -0
  212. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/shell/autocomplete/__init__.py +0 -0
  213. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/shell/autocomplete/bash.py +0 -0
  214. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/shell/autocomplete/subcmd.py +0 -0
  215. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/shell/autocomplete/zsh.py +0 -0
  216. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/builtin/todo.py +0 -0
  217. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/callback/__init__.py +0 -0
  218. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/callback/any_callback.py +0 -0
  219. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/callback/callback.py +0 -0
  220. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/cmd/__init__.py +0 -0
  221. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/cmd/cmd_result.py +0 -0
  222. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/cmd/cmd_val.py +0 -0
  223. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/content_transformer/__init__.py +0 -0
  224. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/content_transformer/any_content_transformer.py +0 -0
  225. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/content_transformer/content_transformer.py +0 -0
  226. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/context/__init__.py +0 -0
  227. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/context/any_context.py +0 -0
  228. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/context/any_shared_context.py +0 -0
  229. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/context/context.py +0 -0
  230. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/context/shared_context.py +0 -0
  231. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/dot_dict/__init__.py +0 -0
  232. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/dot_dict/dot_dict.py +0 -0
  233. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/env/__init__.py +0 -0
  234. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/env/any_env.py +0 -0
  235. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/env/env.py +0 -0
  236. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/env/env_file.py +0 -0
  237. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/env/env_map.py +0 -0
  238. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/group/__init__.py +0 -0
  239. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/group/any_group.py +0 -0
  240. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/group/group.py +0 -0
  241. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/input/__init__.py +0 -0
  242. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/input/any_input.py +0 -0
  243. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/input/base_input.py +0 -0
  244. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/input/bool_input.py +0 -0
  245. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/input/float_input.py +0 -0
  246. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/input/int_input.py +0 -0
  247. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/input/option_input.py +0 -0
  248. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/input/password_input.py +0 -0
  249. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/input/str_input.py +0 -0
  250. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/input/text_input.py +0 -0
  251. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/__init__.py +0 -0
  252. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/common_util.py +0 -0
  253. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_app.py +0 -0
  254. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_config/config.py +0 -0
  255. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_config/config_factory.py +0 -0
  256. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/__init__.py +0 -0
  257. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/docs_route.py +0 -0
  258. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/error_page/serve_default_404.py +0 -0
  259. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/error_page/show_error_page.py +0 -0
  260. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/error_page/view.html +0 -0
  261. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/home_page/__init__.py +0 -0
  262. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/home_page/home_page_route.py +0 -0
  263. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/home_page/view.html +0 -0
  264. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/login_api_route.py +0 -0
  265. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/login_page/login_page_route.py +0 -0
  266. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/login_page/view.html +0 -0
  267. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/logout_api_route.py +0 -0
  268. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/logout_page/logout_page_route.py +0 -0
  269. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/logout_page/view.html +0 -0
  270. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/node_page/group/show_group_page.py +0 -0
  271. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/node_page/group/view.html +0 -0
  272. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/node_page/node_page_route.py +0 -0
  273. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/node_page/task/partial/input.html +0 -0
  274. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/node_page/task/show_task_page.py +0 -0
  275. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/node_page/task/view.html +0 -0
  276. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/refresh_token_api_route.py +0 -0
  277. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/static/refresh-token.template.js +0 -0
  278. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/static/resources/common.css +0 -0
  279. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/static/resources/favicon-32x32.png +0 -0
  280. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/static/resources/login/event.js +0 -0
  281. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/static/resources/logout/event.js +0 -0
  282. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/static/resources/pico.min.css +0 -0
  283. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/static/resources/session/common-util.js +0 -0
  284. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/static/resources/session/current-session.js +0 -0
  285. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/static/resources/session/event.js +0 -0
  286. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/static/resources/session/past-session.js +0 -0
  287. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/static/static_route.py +0 -0
  288. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/task_input_api_route.py +0 -0
  289. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_route/task_session_api_route.py +0 -0
  290. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_schema/session.py +0 -0
  291. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_schema/token.py +0 -0
  292. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_schema/user.py +0 -0
  293. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_util/cookie.py +0 -0
  294. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_util/html.py +0 -0
  295. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_util/token.py +0 -0
  296. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/runner/web_util/user.py +0 -0
  297. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/session/__init__.py +0 -0
  298. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/session/any_session.py +0 -0
  299. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/session/session.py +0 -0
  300. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/session_state_log/__init__.py +0 -0
  301. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/session_state_log/session_state_log.py +0 -0
  302. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/session_state_logger/__init__.py +0 -0
  303. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/session_state_logger/any_session_state_logger.py +0 -0
  304. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/session_state_logger/file_session_state_logger.py +0 -0
  305. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/session_state_logger/session_state_logger_factory.py +0 -0
  306. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/task/__init__.py +0 -0
  307. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/task/any_task.py +0 -0
  308. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/task/base_task.py +0 -0
  309. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/task/base_trigger.py +0 -0
  310. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/task/cmd_task.py +0 -0
  311. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/task/http_check.py +0 -0
  312. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/task/make_task.py +0 -0
  313. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/task/rsync_task.py +0 -0
  314. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/task/scaffolder.py +0 -0
  315. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/task/scheduler.py +0 -0
  316. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/task/task.py +0 -0
  317. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/task/tcp_check.py +0 -0
  318. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/task_status/__init__.py +0 -0
  319. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/task_status/task_status.py +0 -0
  320. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/__init__.py +0 -0
  321. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/attr.py +0 -0
  322. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/cli/__init__.py +0 -0
  323. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/cli/style.py +0 -0
  324. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/cli/subcommand.py +0 -0
  325. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/cmd/__init__.py +0 -0
  326. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/cmd/command.py +0 -0
  327. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/cmd/remote.py +0 -0
  328. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/codemod/__init__.py +0 -0
  329. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/codemod/modification_mode.py +0 -0
  330. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/codemod/modify_class.py +0 -0
  331. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/codemod/modify_class_parent.py +0 -0
  332. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/codemod/modify_class_property.py +0 -0
  333. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/codemod/modify_dict.py +0 -0
  334. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/codemod/modify_function.py +0 -0
  335. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/codemod/modify_function_call.py +0 -0
  336. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/codemod/modify_method.py +0 -0
  337. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/codemod/modify_module.py +0 -0
  338. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/cron.py +0 -0
  339. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/file.py +0 -0
  340. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/git.py +0 -0
  341. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/git_subtree.py +0 -0
  342. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/group.py +0 -0
  343. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/run.py +0 -0
  344. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/string/__init__.py +0 -0
  345. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/string/conversion.py +0 -0
  346. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/string/format.py +0 -0
  347. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/string/name.py +0 -0
  348. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/util/todo.py +0 -0
  349. {zrb-1.4.0 → zrb-1.4.2}/src/zrb/xcom/__init__.py +0 -0
  350. {zrb-1.4.0 → zrb-1.4.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.4.0
3
+ Version: 1.4.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
@@ -39,29 +39,58 @@ Description-Content-Type: text/markdown
39
39
 
40
40
  # 🤖 Zrb: Your Automation Powerhouse
41
41
 
42
- Zrb allows you to write your automation tasks in Python. For example, you can define the following script in your home directory (`/home/<your-user-name>/zrb_init.py`).
42
+
43
+ **Unlock the full potential of automation in your projects!**
44
+
45
+ Zrb streamlines repetitive tasks, integrates with powerful LLMs, and lets you create custom automation workflows effortlessly. Whether you’re building CI/CD pipelines, code generators, or unique automation scripts, Zrb is designed to simplify and supercharge your workflow.
46
+
47
+
48
+ ## 🚀 Why Zrb?
49
+
50
+ - **Easy Automation with Python:** Write your tasks in Python and let Zrb handle the rest.
51
+ - **Seamless Integration:** Utilize built-in support for LLM tasks, command execution, and more.
52
+ - **Custom Workflows:** Chain tasks, set dependencies, and build robust automation pipelines.
53
+ - **Developer-Friendly:** Quick to install and get started, with clear documentation and examples.
54
+ - **Web Interface:** Run Zrb as a server to make tasks accessible even to non-technical team members.
55
+
56
+
57
+ ## 🔥 Key Features
58
+
59
+ - **LLM Integration:** Leverage state-of-the-art language models to generate code, diagrams, and documentation.
60
+ - **Task Chaining:** Easily define dependencies between tasks to create complex workflows.
61
+ - **CLI & Server Mode:** Run tasks directly from the command line or through a user-friendly web UI.
62
+ - **Flexible Input Handling:** Defaults, prompts, and command-line parameters to suit any workflow.
63
+ - **Extensible & Open Source:** Contribute, customize, or extend Zrb to fit your unique needs.
64
+
65
+
66
+ # 🛠️ Installation
67
+
68
+ Install Zrb via pip:
69
+
70
+ ```bash
71
+ pip install zrb
72
+
73
+ ```
74
+
75
+ Or run our installation script to set up Zrb along with all prerequisites:
76
+
77
+ ```bash
78
+ bash -c "$(curl -fsSL https://raw.githubusercontent.com/state-alchemists/zrb/main/install.sh)"
79
+
80
+ ```
81
+
82
+ # 🍲 Quick Start
83
+
84
+ Create a file at `/home/<your-user-name>/zrb_init.py` with the following content:
43
85
 
44
86
 
45
87
  ```python
46
88
  import os
47
89
  from zrb import cli, llm_config, LLMTask, CmdTask, StrInput, Group
48
90
  from zrb.builtin.llm.tool.file import read_all_files, write_text_file
49
- from pydantic_ai.models.openai import OpenAIModel
50
- from pydantic_ai.providers.openai import OpenAIProvider
51
91
 
52
92
  CURRENT_DIR = os.getcwd()
53
93
 
54
- # Setup default LLM Config
55
- llm_config.set_default_model(
56
- OpenAIModel(
57
- model_name="gpt-4o",
58
- provider=OpenAIProvider(
59
- base_url="https://openrouter.ai/api/v1",
60
- api_key=os.getenv("OPENROUTER_API_KEY", "")
61
- )
62
- )
63
- )
64
-
65
94
  # Make UML group
66
95
  uml_group = cli.add_group(Group(name="uml", description="UML related tasks"))
67
96
 
@@ -98,27 +127,39 @@ make_uml_image = uml_group.add_task(
98
127
  make_uml_script >> make_uml_image
99
128
  ```
100
129
 
101
- Once defined, your automation tasks are immediately accessible from the CLI. You can then invoke the tasks by invoking.
130
+ You have just define two automation tasks.
131
+
132
+ The first one use LLM to read files in your current directory and create a `PlantUML script` on that directory.
133
+
134
+ The second task turn the PlantUML script into a `*.png` file. The second task depends on the first task and both of them are located under the same group.
135
+
136
+ You can run the tasks by invoking `zrb uml make-script` or `zrb uml make-image` respectively.
137
+
138
+ When you run zrb, it automatically searches for a file named `zrb_init.py` starting from your current directory and moving upward through its parent directories. This design lets you set up common automation tasks in a central location—like placing a `zrb_init.py` in your home directory (`/home/<your-user>/zrb_init.py`)—so that your tasks are available across all your projects.
139
+
140
+ Now, go to your project and create a state diagram:
102
141
 
103
142
  ```bash
143
+ git clone git@github.com:jjinux/gotetris.git
144
+ cd gotetris
104
145
  zrb uml make-image --diagram "state diagram"
105
146
  ```
106
147
 
107
- Or you can invoke the tasks without parameter.
148
+ You can also invoke the task without specifying parameter.
108
149
 
109
150
  ```bash
110
151
  zrb uml make-image
111
152
  ```
112
153
 
113
- At this point, Zrb will politely ask you to provide the diagram type.
154
+ Once you do so, Zrb will ask you to provide the diagram type.
114
155
 
115
156
  ```
116
157
  diagram [state diagram]:
117
158
  ```
118
159
 
119
- You can just press enter if you want to use the default value.
160
+ You can just press enter if you want to use the default value (i.e., in this case `state diagram`).
120
161
 
121
- Finally, you can run Zrb as a server and make your tasks available for non technical users by invoking the following command.
162
+ Finally, you can also serve the tasks via a Web UI interface by invoking the following command:
122
163
 
123
164
  ```bash
124
165
  zrb server start
@@ -128,49 +169,39 @@ You will have a nice web interface running on `http://localhost:12123`
128
169
 
129
170
  ![Zrb Web UI](https://raw.githubusercontent.com/state-alchemists/zrb/main/_images/zrb-web-ui.png)
130
171
 
131
- Now, let's see how Zrb generate the state diagram. Based on the source code in your current directory, Zrb will generate a `state diagram.uml` and transform it into `state diagram.png`.
172
+ Now, let's see how things work in detail. First, Zrb generates a `state diagram.uml` in your current directory, it then transform the UML script into a PNG image `state diagram.png`.
132
173
 
133
174
  ![State Diagram](https://raw.githubusercontent.com/state-alchemists/zrb/main/_images/state-diagram.png)
134
175
 
135
- See the [getting started guide](https://github.com/state-alchemists/zrb/blob/main/docs/recipes/getting-started/README.md) for more information. Or just watch the demo:
136
-
137
- [![Video Title](https://img.youtube.com/vi/W7dgk96l__o/0.jpg)](https://www.youtube.com/watch?v=W7dgk96l__o)
138
-
139
176
 
140
- # 🫰 Installing Zrb
177
+ # 🎥 Demo & Documentation
141
178
 
142
- You can install Zrb as a pip package by invoking the following command:
179
+ - **Step by step guide:** [Getting started with Zrb](https://github.com/state-alchemists/zrb/blob/main/docs/recipes/getting-started/README.md).
180
+ - **Full documentation:** [Zrb Documentation](https://github.com/state-alchemists/zrb/blob/main/docs/README.md)
181
+ - **Video demo:**
182
+ [![Video Title](https://img.youtube.com/vi/W7dgk96l__o/0.jpg)](https://www.youtube.com/watch?v=W7dgk96l__o)
143
183
 
144
- ```bash
145
- pip install --pre zrb
146
- ```
147
-
148
- Alternatively, you can also use our installation script to install Zrb along with some prerequisites:
149
184
 
150
- ```bash
151
- bash -c "$(curl -fsSL https://raw.githubusercontent.com/state-alchemists/zrb/main/install.sh)"
152
- ```
185
+ # 🤝 Join the Community
153
186
 
154
- # 🐞 Bug Report + Feature Request
187
+ - **Bug Reports & Feature Requests:** Create an [issue](https://github.com/state-alchemists/zrb/issues) on Zrb's GitHub Repositories and include:
188
+ - Your Zrb version (i.e., `zrb version`).
189
+ - Steps you’ve taken and what you expected versus what happened
190
+ - **Contributions:** We welcome pull requests! Check out our [contribution guidelines](https://github.com/state-alchemists/zrb/pulls).
155
191
 
156
- You can submit bug reports and feature requests by creating a new [issue](https://github.com/state-alchemists/zrb/issues) on Zrb's GitHub Repositories. When reporting a bug or requesting a feature, please be sure to:
157
192
 
158
- - Include the version of Zrb you are using (i.e., `zrb version`)
159
- - Tell us what you have tried
160
- - Tell us what you expect
161
- - Tell us what you get
193
+ # Support The Project
162
194
 
163
- We will also welcome your [pull requests and contributions](https://github.com/state-alchemists/zrb/pulls).
164
-
165
-
166
- # ☕ Donation
167
-
168
- Help Red Skull to click the donation button:
195
+ If you find Zrb valuable, please consider donating:
169
196
 
170
197
  [![](https://raw.githubusercontent.com/state-alchemists/zrb/main/_images/donator.png)](https://stalchmst.com/donation)
171
198
 
172
199
  # 🎉 Fun Fact
173
200
 
201
+ Did you know?
202
+
203
+ Zrb is named after `Zaruba`, a powerful support tool from the Garo universe!
204
+
174
205
  > Madou Ring Zaruba (魔導輪ザルバ, Madōrin Zaruba) is a Madougu which supports bearers of the Garo Armor. [(Garo Wiki | Fandom)](https://garo.fandom.com/wiki/Zaruba)
175
206
 
176
207
  ![Madou Ring Zaruba on Kouga's Hand](https://raw.githubusercontent.com/state-alchemists/zrb/main/_images/madou-ring-zaruba.jpg)
zrb-1.4.2/README.md ADDED
@@ -0,0 +1,172 @@
1
+ ![](https://raw.githubusercontent.com/state-alchemists/zrb/main/_images/zrb/android-chrome-192x192.png)
2
+
3
+ [Documentation](https://github.com/state-alchemists/zrb/blob/main/docs/README.md)
4
+
5
+ # 🤖 Zrb: Your Automation Powerhouse
6
+
7
+
8
+ **Unlock the full potential of automation in your projects!**
9
+
10
+ Zrb streamlines repetitive tasks, integrates with powerful LLMs, and lets you create custom automation workflows effortlessly. Whether you’re building CI/CD pipelines, code generators, or unique automation scripts, Zrb is designed to simplify and supercharge your workflow.
11
+
12
+
13
+ ## 🚀 Why Zrb?
14
+
15
+ - **Easy Automation with Python:** Write your tasks in Python and let Zrb handle the rest.
16
+ - **Seamless Integration:** Utilize built-in support for LLM tasks, command execution, and more.
17
+ - **Custom Workflows:** Chain tasks, set dependencies, and build robust automation pipelines.
18
+ - **Developer-Friendly:** Quick to install and get started, with clear documentation and examples.
19
+ - **Web Interface:** Run Zrb as a server to make tasks accessible even to non-technical team members.
20
+
21
+
22
+ ## 🔥 Key Features
23
+
24
+ - **LLM Integration:** Leverage state-of-the-art language models to generate code, diagrams, and documentation.
25
+ - **Task Chaining:** Easily define dependencies between tasks to create complex workflows.
26
+ - **CLI & Server Mode:** Run tasks directly from the command line or through a user-friendly web UI.
27
+ - **Flexible Input Handling:** Defaults, prompts, and command-line parameters to suit any workflow.
28
+ - **Extensible & Open Source:** Contribute, customize, or extend Zrb to fit your unique needs.
29
+
30
+
31
+ # 🛠️ Installation
32
+
33
+ Install Zrb via pip:
34
+
35
+ ```bash
36
+ pip install zrb
37
+
38
+ ```
39
+
40
+ Or run our installation script to set up Zrb along with all prerequisites:
41
+
42
+ ```bash
43
+ bash -c "$(curl -fsSL https://raw.githubusercontent.com/state-alchemists/zrb/main/install.sh)"
44
+
45
+ ```
46
+
47
+ # 🍲 Quick Start
48
+
49
+ Create a file at `/home/<your-user-name>/zrb_init.py` with the following content:
50
+
51
+
52
+ ```python
53
+ import os
54
+ from zrb import cli, llm_config, LLMTask, CmdTask, StrInput, Group
55
+ from zrb.builtin.llm.tool.file import read_all_files, write_text_file
56
+
57
+ CURRENT_DIR = os.getcwd()
58
+
59
+ # Make UML group
60
+ uml_group = cli.add_group(Group(name="uml", description="UML related tasks"))
61
+
62
+ # Generate UML script
63
+ make_uml_script = uml_group.add_task(
64
+ LLMTask(
65
+ name="make-script",
66
+ description="Creating plantuml diagram based on source code in current directory",
67
+ input=StrInput(name="diagram", default="state diagram"),
68
+ message=(
69
+ f"Read source code in {CURRENT_DIR}, "
70
+ "make a {ctx.input.diagram} in plantuml format. "
71
+ f"Write the script into {CURRENT_DIR}/{{ctx.input.diagram}}.uml"
72
+ ),
73
+ tools=[
74
+ read_all_files,
75
+ write_text_file,
76
+ ],
77
+ )
78
+ )
79
+
80
+ # Defining a Cmd Task to transform Plantuml script into a png image.
81
+ make_uml_image = uml_group.add_task(
82
+ CmdTask(
83
+ name="make-image",
84
+ description="Creating png based on source code in current directory",
85
+ input=StrInput(name="diagram", default="state diagram"),
86
+ cmd="plantuml -tpng '{ctx.input.diagram}.uml'",
87
+ cwd=CURRENT_DIR,
88
+ )
89
+ )
90
+
91
+ # Making sure that make_png has make_uml as its dependency.
92
+ make_uml_script >> make_uml_image
93
+ ```
94
+
95
+ You have just define two automation tasks.
96
+
97
+ The first one use LLM to read files in your current directory and create a `PlantUML script` on that directory.
98
+
99
+ The second task turn the PlantUML script into a `*.png` file. The second task depends on the first task and both of them are located under the same group.
100
+
101
+ You can run the tasks by invoking `zrb uml make-script` or `zrb uml make-image` respectively.
102
+
103
+ When you run zrb, it automatically searches for a file named `zrb_init.py` starting from your current directory and moving upward through its parent directories. This design lets you set up common automation tasks in a central location—like placing a `zrb_init.py` in your home directory (`/home/<your-user>/zrb_init.py`)—so that your tasks are available across all your projects.
104
+
105
+ Now, go to your project and create a state diagram:
106
+
107
+ ```bash
108
+ git clone git@github.com:jjinux/gotetris.git
109
+ cd gotetris
110
+ zrb uml make-image --diagram "state diagram"
111
+ ```
112
+
113
+ You can also invoke the task without specifying parameter.
114
+
115
+ ```bash
116
+ zrb uml make-image
117
+ ```
118
+
119
+ Once you do so, Zrb will ask you to provide the diagram type.
120
+
121
+ ```
122
+ diagram [state diagram]:
123
+ ```
124
+
125
+ You can just press enter if you want to use the default value (i.e., in this case `state diagram`).
126
+
127
+ Finally, you can also serve the tasks via a Web UI interface by invoking the following command:
128
+
129
+ ```bash
130
+ zrb server start
131
+ ```
132
+
133
+ You will have a nice web interface running on `http://localhost:12123`
134
+
135
+ ![Zrb Web UI](https://raw.githubusercontent.com/state-alchemists/zrb/main/_images/zrb-web-ui.png)
136
+
137
+ Now, let's see how things work in detail. First, Zrb generates a `state diagram.uml` in your current directory, it then transform the UML script into a PNG image `state diagram.png`.
138
+
139
+ ![State Diagram](https://raw.githubusercontent.com/state-alchemists/zrb/main/_images/state-diagram.png)
140
+
141
+
142
+ # 🎥 Demo & Documentation
143
+
144
+ - **Step by step guide:** [Getting started with Zrb](https://github.com/state-alchemists/zrb/blob/main/docs/recipes/getting-started/README.md).
145
+ - **Full documentation:** [Zrb Documentation](https://github.com/state-alchemists/zrb/blob/main/docs/README.md)
146
+ - **Video demo:**
147
+ [![Video Title](https://img.youtube.com/vi/W7dgk96l__o/0.jpg)](https://www.youtube.com/watch?v=W7dgk96l__o)
148
+
149
+
150
+ # 🤝 Join the Community
151
+
152
+ - **Bug Reports & Feature Requests:** Create an [issue](https://github.com/state-alchemists/zrb/issues) on Zrb's GitHub Repositories and include:
153
+ - Your Zrb version (i.e., `zrb version`).
154
+ - Steps you’ve taken and what you expected versus what happened
155
+ - **Contributions:** We welcome pull requests! Check out our [contribution guidelines](https://github.com/state-alchemists/zrb/pulls).
156
+
157
+
158
+ # ☕ Support The Project
159
+
160
+ If you find Zrb valuable, please consider donating:
161
+
162
+ [![](https://raw.githubusercontent.com/state-alchemists/zrb/main/_images/donator.png)](https://stalchmst.com/donation)
163
+
164
+ # 🎉 Fun Fact
165
+
166
+ Did you know?
167
+
168
+ Zrb is named after `Zaruba`, a powerful support tool from the Garo universe!
169
+
170
+ > Madou Ring Zaruba (魔導輪ザルバ, Madōrin Zaruba) is a Madougu which supports bearers of the Garo Armor. [(Garo Wiki | Fandom)](https://garo.fandom.com/wiki/Zaruba)
171
+
172
+ ![Madou Ring Zaruba on Kouga's Hand](https://raw.githubusercontent.com/state-alchemists/zrb/main/_images/madou-ring-zaruba.jpg)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "zrb"
3
- version = "1.4.0"
3
+ version = "1.4.2"
4
4
  description = "Your Automation Powerhouse"
5
5
  authors = ["Go Frendi Gunawan <gofrendiasgard@gmail.com>"]
6
6
  license = "AGPL-3.0-or-later"
@@ -0,0 +1,50 @@
1
+ import os
2
+ import sys
3
+
4
+ from zrb.config import INIT_MODULES, INIT_SCRIPTS
5
+ from zrb.runner.cli import cli
6
+ from zrb.util.cli.style import stylize_error, stylize_warning
7
+ from zrb.util.group import NodeNotFoundError
8
+ from zrb.util.load import load_file, load_module
9
+
10
+
11
+ def serve_cli():
12
+ try:
13
+ # load init modules
14
+ for init_module in INIT_MODULES:
15
+ load_module(init_module)
16
+ zrb_init_path_list = _get_zrb_init_path_list()
17
+ # load init scripts
18
+ for init_script in INIT_SCRIPTS:
19
+ abs_init_script = os.path.abspath(init_script)
20
+ if abs_init_script not in zrb_init_path_list:
21
+ load_file(abs_init_script, -1)
22
+ # load zrb init
23
+ for zrb_init_path in zrb_init_path_list:
24
+ load_file(zrb_init_path)
25
+ # run the CLI
26
+ cli.run(sys.argv[1:])
27
+ except KeyboardInterrupt:
28
+ print(stylize_warning("\nStopped"), file=sys.stderr)
29
+ sys.exit(1)
30
+ except RuntimeError as e:
31
+ if f"{e}".lower() != "event loop is closed":
32
+ raise e
33
+ sys.exit(1)
34
+ except NodeNotFoundError as e:
35
+ print(stylize_error(f"{e}"), file=sys.stderr)
36
+ sys.exit(1)
37
+
38
+
39
+ def _get_zrb_init_path_list() -> list[str]:
40
+ current_path = os.path.abspath(os.getcwd())
41
+ dir_path_list = [current_path]
42
+ while current_path != os.path.dirname(current_path): # Stop at root
43
+ current_path = os.path.dirname(current_path)
44
+ dir_path_list.append(current_path)
45
+ zrb_init_path_list = []
46
+ for current_path in dir_path_list[::-1]:
47
+ zrb_init_path = os.path.join(current_path, "zrb_init.py")
48
+ if os.path.isfile(zrb_init_path):
49
+ zrb_init_path_list.append(zrb_init_path)
50
+ return zrb_init_path_list
@@ -22,7 +22,6 @@ from zrb.config import (
22
22
  LLM_ALLOW_ACCESS_LOCAL_FILE,
23
23
  LLM_ALLOW_ACCESS_SHELL,
24
24
  LLM_HISTORY_DIR,
25
- LLM_SYSTEM_PROMPT,
26
25
  SERP_API_KEY,
27
26
  )
28
27
  from zrb.context.any_shared_context import AnySharedContext
@@ -119,7 +118,7 @@ llm_chat: LLMTask = llm_group.add_task(
119
118
  "system-prompt",
120
119
  description="System prompt",
121
120
  prompt="System prompt",
122
- default=LLM_SYSTEM_PROMPT,
121
+ default="",
123
122
  allow_positional_parsing=False,
124
123
  always_prompt=False,
125
124
  ),
@@ -141,17 +140,19 @@ llm_chat: LLMTask = llm_group.add_task(
141
140
  always_prompt=False,
142
141
  ),
143
142
  ],
144
- model=lambda ctx: None if ctx.input.model == "" else ctx.input.model,
143
+ model=lambda ctx: None if ctx.input.model.strip() == "" else ctx.input.model,
145
144
  model_base_url=lambda ctx: (
146
- None if ctx.input.base_url == "" else ctx.input.base_url
145
+ None if ctx.input.base_url.strip() == "" else ctx.input.base_url
147
146
  ),
148
147
  model_api_key=lambda ctx: (
149
- None if ctx.input.api_key == "" else ctx.input.api_key
148
+ None if ctx.input.api_key.strip() == "" else ctx.input.api_key
150
149
  ),
151
150
  conversation_history_reader=_read_chat_conversation,
152
151
  conversation_history_writer=_write_chat_conversation,
153
152
  description="Chat with LLM",
154
- system_prompt="{ctx.input.system_prompt}",
153
+ system_prompt=lambda ctx: (
154
+ None if ctx.input.system_prompt.strip() == "" else ctx.input.system_prompt
155
+ ),
155
156
  message="{ctx.input.message}",
156
157
  retries=0,
157
158
  ),
@@ -0,0 +1,152 @@
1
+ import fnmatch
2
+ import os
3
+
4
+ from zrb.util.file import read_file, write_file
5
+
6
+ _INCLUDED_PATTERNS: list[str] = [
7
+ "*.py", # Python
8
+ "*.go", # Go
9
+ "*.rs", # Rust
10
+ "*.js", # JavaScript
11
+ "*.ts", # TypeScript
12
+ "*.java", # Java
13
+ "*.c", # C
14
+ "*.cpp", # C++
15
+ "*.cc", # Alternative C++ extension
16
+ "*.cxx", # Alternative C++ extension
17
+ "*.rb", # Ruby
18
+ "*.swift", # Swift
19
+ "*.kt", # Kotlin
20
+ "*.php", # PHP
21
+ "*.pl", # Perl / Prolog
22
+ "*.pm", # Perl module
23
+ "*.sh", # Shell
24
+ "*.bat", # Batch
25
+ "*.ps1", # PowerShell
26
+ "*.R", # R (capital)
27
+ "*.r", # R (lowercase)
28
+ "*.scala", # Scala
29
+ "*.hs", # Haskell
30
+ "*.cs", # C#
31
+ "*.fs", # F#
32
+ "*.ex", # Elixir
33
+ "*.exs", # Elixir script
34
+ "*.erl", # Erlang
35
+ "*.hrl", # Erlang header
36
+ "*.dart", # Dart
37
+ "*.m", # Objective-C / Matlab (note: conflicts may arise)
38
+ "*.mm", # Objective-C++
39
+ "*.lua", # Lua
40
+ "*.jl", # Julia
41
+ "*.groovy", # Groovy
42
+ "*.clj", # Clojure
43
+ "*.cljs", # ClojureScript
44
+ "*.cljc", # Clojure common
45
+ "*.vb", # Visual Basic
46
+ "*.f90", # Fortran
47
+ "*.f95", # Fortran
48
+ "*.adb", # Ada
49
+ "*.ads", # Ada specification
50
+ "*.pas", # Pascal
51
+ "*.pp", # Pascal
52
+ "*.ml", # OCaml
53
+ "*.mli", # OCaml interface
54
+ "*.nim", # Nim
55
+ "*.rkt", # Racket
56
+ "*.d", # D
57
+ "*.lisp", # Common Lisp
58
+ "*.lsp", # Lisp variant
59
+ "*.cl", # Common Lisp
60
+ "*.scm", # Scheme
61
+ "*.st", # Smalltalk
62
+ "*.vhd", # VHDL
63
+ "*.vhdl", # VHDL
64
+ "*.v", # Verilog
65
+ "*.asm", # Assembly
66
+ "*.s", # Assembly (alternative)
67
+ "*.sql", # SQL (if desired)
68
+ ]
69
+
70
+ # Extended list of directories and patterns to exclude.
71
+ _EXCLUDED_PATTERNS: list[str] = [
72
+ "venv", # Python virtual environments
73
+ ".venv",
74
+ "node_modules", # Node.js dependencies
75
+ ".git", # Git repositories
76
+ "__pycache__", # Python cache directories
77
+ "build", # Build directories
78
+ "dist", # Distribution directories
79
+ "target", # Build output directories (Java, Rust, etc.)
80
+ "bin", # Binary directories
81
+ "obj", # Object files directories
82
+ ".idea", # JetBrains IDEs
83
+ ".vscode", # VS Code settings
84
+ ".eggs", # Python eggs
85
+ ]
86
+
87
+
88
+ def list_files(
89
+ directory: str = ".",
90
+ included_patterns: list[str] = _INCLUDED_PATTERNS,
91
+ excluded_patterns: list[str] = _EXCLUDED_PATTERNS,
92
+ ) -> list[str]:
93
+ """List all files in a directory that match any of the included glob patterns
94
+ and do not reside in any directory matching an excluded pattern.
95
+ Patterns are evaluated using glob-style matching.
96
+ """
97
+ all_files: list[str] = []
98
+ for root, dirs, files in os.walk(directory):
99
+ for filename in files:
100
+ if any(fnmatch.fnmatch(filename, pat) for pat in included_patterns):
101
+ full_path = os.path.join(root, filename)
102
+ if _should_exclude(full_path, excluded_patterns):
103
+ continue
104
+ all_files.append(full_path)
105
+ return all_files
106
+
107
+
108
+ def _should_exclude(full_path: str, excluded_patterns: list[str]) -> bool:
109
+ """
110
+ Return True if the file at full_path should be excluded based on
111
+ the list of excluded_patterns. Patterns that include a path separator
112
+ are applied to the full normalized path; otherwise they are matched
113
+ against each individual component of the path.
114
+ """
115
+ norm_path = os.path.normpath(full_path)
116
+ path_parts = norm_path.split(os.sep)
117
+ for pat in excluded_patterns:
118
+ # If the pattern seems intended for full path matching (contains a separator)
119
+ if os.sep in pat or "/" in pat:
120
+ if fnmatch.fnmatch(norm_path, pat):
121
+ return True
122
+ else:
123
+ # Otherwise check each part of the path
124
+ if any(fnmatch.fnmatch(part, pat) for part in path_parts):
125
+ return True
126
+ return False
127
+
128
+
129
+ def read_text_file(file: str) -> str:
130
+ """Read a text file and return a string containing the file content."""
131
+ return read_file(os.path.abspath(file))
132
+
133
+
134
+ def write_text_file(file: str, content: str):
135
+ """Write content to a text file"""
136
+ return write_file(os.path.abspath(file), content)
137
+
138
+
139
+ def read_all_files(
140
+ directory: str = ".",
141
+ included_patterns: list[str] = _INCLUDED_PATTERNS,
142
+ excluded_patterns: list[str] = _EXCLUDED_PATTERNS,
143
+ ) -> list[str]:
144
+ """Read all files in a directory that match any of the included glob patterns
145
+ and do not match any of the excluded glob patterns.
146
+ Patterns are evaluated using glob-style matching.
147
+ """
148
+ files = list_files(directory, included_patterns, excluded_patterns)
149
+ for index, file in enumerate(files):
150
+ content = read_text_file(file)
151
+ files[index] = f"# {file}\n```\n{content}\n```"
152
+ return files
@@ -76,15 +76,6 @@ WEB_AUTH_REFRESH_TOKEN_EXPIRE_MINUTES = int(
76
76
  os.getenv("ZRB_WEB_REFRESH_TOKEN_EXPIRE_MINUTES", "60")
77
77
  )
78
78
 
79
- _DEFAULT_PROMPT = (
80
- "You are a helpful AI assistant capable of using various tools to answer user queries. When solving a problem:\n"
81
- "1. Carefully analyze the user's request and identify what information is needed to provide a complete answer.\n"
82
- "2. Determine which available tools can help you gather the necessary information.\n"
83
- "3. Call tools strategically and in a logical sequence to collect required data.\n"
84
- "4. If a tool provides incomplete information, intelligently decide which additional tool or approach to use.\n"
85
- "5. Always aim to provide the most accurate and helpful response possible."
86
- )
87
- LLM_SYSTEM_PROMPT = os.getenv("ZRB_LLM_SYSTEM_PROMPT", _DEFAULT_PROMPT)
88
79
  LLM_HISTORY_DIR = os.getenv(
89
80
  "ZRB_LLM_HISTORY_DIR", os.path.expanduser(os.path.join("~", ".zrb-llm-history"))
90
81
  )