zrb 1.5.4__tar.gz → 1.5.6__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 (362) hide show
  1. {zrb-1.5.4 → zrb-1.5.6}/PKG-INFO +1 -1
  2. {zrb-1.5.4 → zrb-1.5.6}/pyproject.toml +1 -1
  3. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/__init__.py +2 -0
  4. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/__main__.py +28 -2
  5. zrb-1.5.6/src/zrb/builtin/llm/history.py +73 -0
  6. zrb-1.5.6/src/zrb/builtin/llm/input.py +27 -0
  7. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/llm/llm_chat.py +4 -61
  8. zrb-1.5.6/src/zrb/builtin/llm/tool/api.py +53 -0
  9. zrb-1.5.6/src/zrb/builtin/llm/tool/cli.py +23 -0
  10. zrb-1.5.6/src/zrb/builtin/llm/tool/file.py +513 -0
  11. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/llm/tool/rag.py +18 -1
  12. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/llm/tool/web.py +31 -14
  13. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/error.py +6 -8
  14. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/config.py +1 -0
  15. zrb-1.5.6/src/zrb/llm_config.py +195 -0
  16. zrb-1.5.6/src/zrb/task/llm/agent_runner.py +53 -0
  17. zrb-1.5.6/src/zrb/task/llm/context_enricher.py +86 -0
  18. zrb-1.5.6/src/zrb/task/llm/default_context.py +44 -0
  19. zrb-1.5.6/src/zrb/task/llm/error.py +77 -0
  20. zrb-1.5.6/src/zrb/task/llm/history.py +92 -0
  21. zrb-1.5.6/src/zrb/task/llm/history_summarizer.py +71 -0
  22. zrb-1.5.6/src/zrb/task/llm/print_node.py +98 -0
  23. zrb-1.5.6/src/zrb/task/llm/tool_wrapper.py +88 -0
  24. zrb-1.5.6/src/zrb/task/llm_task.py +505 -0
  25. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/file.py +8 -2
  26. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/load.py +2 -0
  27. zrb-1.5.6/src/zrb/xcom/__init__.py +0 -0
  28. zrb-1.5.4/src/zrb/builtin/llm/tool/api.py +0 -31
  29. zrb-1.5.4/src/zrb/builtin/llm/tool/cli.py +0 -9
  30. zrb-1.5.4/src/zrb/builtin/llm/tool/file.py +0 -510
  31. zrb-1.5.4/src/zrb/llm_config.py +0 -129
  32. zrb-1.5.4/src/zrb/task/llm_task.py +0 -472
  33. {zrb-1.5.4 → zrb-1.5.6}/README.md +0 -0
  34. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/attr/__init__.py +0 -0
  35. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/attr/type.py +0 -0
  36. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/__init__.py +0 -0
  37. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/base64.py +0 -0
  38. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/git.py +0 -0
  39. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/git_subtree.py +0 -0
  40. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/group.py +0 -0
  41. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/llm/previous-session.js +0 -0
  42. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/md5.py +0 -0
  43. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/__init__.py +0 -0
  44. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_input.py +0 -0
  45. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_task.py +0 -0
  46. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.coveragerc +0 -0
  47. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.flake8 +0 -0
  48. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.gitignore +0 -0
  49. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/README.md +0 -0
  50. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/__init__.py +0 -0
  51. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_task.py +0 -0
  52. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_util.py +0 -0
  53. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/config.py +0 -0
  54. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_task.py +0 -0
  55. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_util.py +0 -0
  56. {zrb-1.5.4 → zrb-1.5.6}/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
  57. {zrb-1.5.4 → zrb-1.5.6}/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
  58. {zrb-1.5.4 → zrb-1.5.6}/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
  59. {zrb-1.5.4 → zrb-1.5.6}/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
  60. {zrb-1.5.4 → zrb-1.5.6}/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
  61. {zrb-1.5.4 → zrb-1.5.6}/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
  62. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/schema/my_entity.py +0 -0
  63. {zrb-1.5.4 → zrb-1.5.6}/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
  64. {zrb-1.5.4 → zrb-1.5.6}/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
  65. {zrb-1.5.4 → zrb-1.5.6}/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
  66. {zrb-1.5.4 → zrb-1.5.6}/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
  67. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/client_method.py +0 -0
  68. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/gateway_subroute.py +0 -0
  69. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/navigation_config_file.py +0 -0
  70. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/format_task.py +0 -0
  71. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/group.py +0 -0
  72. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/input.py +0 -0
  73. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_task.py +0 -0
  74. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_util.py +0 -0
  75. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/gateway/subroute/my_module.py +0 -0
  76. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/alembic.ini +0 -0
  77. {zrb-1.5.4 → zrb-1.5.6}/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
  78. {zrb-1.5.4 → zrb-1.5.6}/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
  79. {zrb-1.5.4 → zrb-1.5.6}/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
  80. {zrb-1.5.4 → zrb-1.5.6}/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
  81. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/README +0 -0
  82. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/env.py +0 -0
  83. {zrb-1.5.4 → zrb-1.5.6}/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
  84. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/versions/.gitkeep +0 -0
  85. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration_metadata.py +0 -0
  86. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/route.py +0 -0
  87. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/service/__init__.py +0 -0
  88. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/module_task_definition.py +0 -0
  89. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/navigation_config_file.py +0 -0
  90. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task.py +0 -0
  91. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task_util.py +0 -0
  92. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/util.py +0 -0
  93. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/venv_task.py +0 -0
  94. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/__init__.py +0 -0
  95. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/app_factory.py +0 -0
  96. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_db_repository.py +0 -0
  97. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_service.py +0 -0
  98. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/db_engine_factory.py +0 -0
  99. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/logger_factory.py +0 -0
  100. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/parser_factory.py +0 -0
  101. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/schema.py +0 -0
  102. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/app.py +0 -0
  103. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/parser.py +0 -0
  104. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/user_agent.py +0 -0
  105. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/view.py +0 -0
  106. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/config.py +0 -0
  107. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/main.py +0 -0
  108. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/__init__.py +0 -0
  109. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/alembic.ini +0 -0
  110. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_api_client.py +0 -0
  111. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client.py +0 -0
  112. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client_factory.py +0 -0
  113. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_direct_client.py +0 -0
  114. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/README +0 -0
  115. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/env.py +0 -0
  116. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/script.py.mako +0 -0
  117. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/3093c7336477_add_auth_tables.py +0 -0
  118. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/8ed025bcc845_create_permissions.py +0 -0
  119. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration_metadata.py +0 -0
  120. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/route.py +0 -0
  121. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/__init__.py +0 -0
  122. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/__init__.py +0 -0
  123. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service.py +0 -0
  124. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service_factory.py +0 -0
  125. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_db_repository.py +0 -0
  126. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository.py +0 -0
  127. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository_factory.py +0 -0
  128. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/__init__.py +0 -0
  129. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_db_repository.py +0 -0
  130. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository.py +0 -0
  131. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository_factory.py +0 -0
  132. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service.py +0 -0
  133. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service_factory.py +0 -0
  134. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/__init__.py +0 -0
  135. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_db_repository.py +0 -0
  136. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository.py +0 -0
  137. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository_factory.py +0 -0
  138. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service.py +0 -0
  139. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service_factory.py +0 -0
  140. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/alembic.ini +0 -0
  141. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/config/navigation.py +0 -0
  142. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/README +0 -0
  143. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/env.py +0 -0
  144. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/script.py.mako +0 -0
  145. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/versions/.gitkeep +0 -0
  146. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration_metadata.py +0 -0
  147. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/route.py +0 -0
  148. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/schema/navigation.py +0 -0
  149. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/subroute/auth.py +0 -0
  150. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/auth.py +0 -0
  151. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/view.py +0 -0
  152. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/permission.html +0 -0
  153. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/role.html +0 -0
  154. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/user.html +0 -0
  155. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/error.html +0 -0
  156. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/homepage.html +0 -0
  157. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/login.html +0 -0
  158. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/logout.html +0 -0
  159. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/common/util.js +0 -0
  160. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/style.css +0 -0
  161. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/util.js +0 -0
  162. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/pico-style.css +0 -0
  163. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/script.js +0 -0
  164. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/style.css +0 -0
  165. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-192x192.png +0 -0
  166. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-512x512.png +0 -0
  167. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/favicon-32x32.png +0 -0
  168. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.amber.min.css +0 -0
  169. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.blue.min.css +0 -0
  170. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.cyan.min.css +0 -0
  171. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.fuchsia.min.css +0 -0
  172. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.green.min.css +0 -0
  173. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.grey.min.css +0 -0
  174. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.indigo.min.css +0 -0
  175. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.jade.min.css +0 -0
  176. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.lime.min.css +0 -0
  177. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.min.css +0 -0
  178. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.orange.min.css +0 -0
  179. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.pink.min.css +0 -0
  180. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.pumpkin.min.css +0 -0
  181. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.purple.min.css +0 -0
  182. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.red.min.css +0 -0
  183. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.sand.min.css +0 -0
  184. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.slate.min.css +0 -0
  185. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.violet.min.css +0 -0
  186. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.yellow.min.css +0 -0
  187. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.zinc.min.css +0 -0
  188. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/template/default.html +0 -0
  189. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/requirements.txt +0 -0
  190. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/__init__.py +0 -0
  191. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/permission.py +0 -0
  192. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/role.py +0 -0
  193. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/user.py +0 -0
  194. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/template.env +0 -0
  195. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/_util/access_token.py +0 -0
  196. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_create_permission.py +0 -0
  197. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_delete_permission.py +0 -0
  198. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_read_permission.py +0 -0
  199. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_update_permission.py +0 -0
  200. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/test_user_session.py +0 -0
  201. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_health_and_readiness.py +0 -0
  202. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_homepage.py +0 -0
  203. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_not_found_error.py +0 -0
  204. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test.sh +0 -0
  205. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/add/fastapp/fastapp_util.py +0 -0
  206. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/create/__init__.py +0 -0
  207. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/create/project-template/README.md +0 -0
  208. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/create/project-template/zrb_init.py +0 -0
  209. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/project/create/project_task.py +0 -0
  210. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/python.py +0 -0
  211. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/random.py +0 -0
  212. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/setup/asdf/asdf.py +0 -0
  213. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/setup/asdf/asdf_helper.py +0 -0
  214. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/setup/common_input.py +0 -0
  215. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/setup/latex/ubuntu.py +0 -0
  216. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/setup/tmux/tmux.py +0 -0
  217. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/setup/tmux/tmux_config.sh +0 -0
  218. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/setup/tmux/tmux_helper.py +0 -0
  219. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/setup/ubuntu.py +0 -0
  220. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/setup/zsh/zsh.py +0 -0
  221. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/setup/zsh/zsh_config.sh +0 -0
  222. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/setup/zsh/zsh_helper.py +0 -0
  223. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/shell/__init__.py +0 -0
  224. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/shell/autocomplete/__init__.py +0 -0
  225. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/shell/autocomplete/bash.py +0 -0
  226. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/shell/autocomplete/subcmd.py +0 -0
  227. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/shell/autocomplete/zsh.py +0 -0
  228. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/builtin/todo.py +0 -0
  229. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/callback/__init__.py +0 -0
  230. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/callback/any_callback.py +0 -0
  231. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/callback/callback.py +0 -0
  232. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/cmd/__init__.py +0 -0
  233. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/cmd/cmd_result.py +0 -0
  234. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/cmd/cmd_val.py +0 -0
  235. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/content_transformer/__init__.py +0 -0
  236. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/content_transformer/any_content_transformer.py +0 -0
  237. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/content_transformer/content_transformer.py +0 -0
  238. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/context/__init__.py +0 -0
  239. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/context/any_context.py +0 -0
  240. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/context/any_shared_context.py +0 -0
  241. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/context/context.py +0 -0
  242. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/context/shared_context.py +0 -0
  243. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/dot_dict/__init__.py +0 -0
  244. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/dot_dict/dot_dict.py +0 -0
  245. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/env/__init__.py +0 -0
  246. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/env/any_env.py +0 -0
  247. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/env/env.py +0 -0
  248. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/env/env_file.py +0 -0
  249. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/env/env_map.py +0 -0
  250. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/group/__init__.py +0 -0
  251. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/group/any_group.py +0 -0
  252. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/group/group.py +0 -0
  253. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/input/__init__.py +0 -0
  254. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/input/any_input.py +0 -0
  255. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/input/base_input.py +0 -0
  256. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/input/bool_input.py +0 -0
  257. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/input/float_input.py +0 -0
  258. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/input/int_input.py +0 -0
  259. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/input/option_input.py +0 -0
  260. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/input/password_input.py +0 -0
  261. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/input/str_input.py +0 -0
  262. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/input/text_input.py +0 -0
  263. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/__init__.py +0 -0
  264. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/cli.py +0 -0
  265. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/common_util.py +0 -0
  266. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_app.py +0 -0
  267. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_config/config.py +0 -0
  268. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_config/config_factory.py +0 -0
  269. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/__init__.py +0 -0
  270. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/docs_route.py +0 -0
  271. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/error_page/serve_default_404.py +0 -0
  272. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/error_page/show_error_page.py +0 -0
  273. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/error_page/view.html +0 -0
  274. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/home_page/__init__.py +0 -0
  275. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/home_page/home_page_route.py +0 -0
  276. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/home_page/view.html +0 -0
  277. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/login_api_route.py +0 -0
  278. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/login_page/login_page_route.py +0 -0
  279. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/login_page/view.html +0 -0
  280. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/logout_api_route.py +0 -0
  281. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/logout_page/logout_page_route.py +0 -0
  282. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/logout_page/view.html +0 -0
  283. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/node_page/group/show_group_page.py +0 -0
  284. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/node_page/group/view.html +0 -0
  285. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/node_page/node_page_route.py +0 -0
  286. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/node_page/task/partial/input.html +0 -0
  287. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/node_page/task/show_task_page.py +0 -0
  288. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/node_page/task/view.html +0 -0
  289. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/refresh_token_api_route.py +0 -0
  290. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/static/refresh-token.template.js +0 -0
  291. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/static/resources/common.css +0 -0
  292. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/static/resources/favicon-32x32.png +0 -0
  293. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/static/resources/login/event.js +0 -0
  294. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/static/resources/logout/event.js +0 -0
  295. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/static/resources/pico.min.css +0 -0
  296. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/static/resources/session/common-util.js +0 -0
  297. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/static/resources/session/current-session.js +0 -0
  298. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/static/resources/session/event.js +0 -0
  299. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/static/resources/session/past-session.js +0 -0
  300. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/static/static_route.py +0 -0
  301. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/task_input_api_route.py +0 -0
  302. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_route/task_session_api_route.py +0 -0
  303. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_schema/session.py +0 -0
  304. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_schema/token.py +0 -0
  305. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_schema/user.py +0 -0
  306. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_util/cookie.py +0 -0
  307. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_util/html.py +0 -0
  308. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_util/token.py +0 -0
  309. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/runner/web_util/user.py +0 -0
  310. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/session/__init__.py +0 -0
  311. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/session/any_session.py +0 -0
  312. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/session/session.py +0 -0
  313. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/session_state_log/__init__.py +0 -0
  314. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/session_state_log/session_state_log.py +0 -0
  315. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/session_state_logger/__init__.py +0 -0
  316. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/session_state_logger/any_session_state_logger.py +0 -0
  317. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/session_state_logger/file_session_state_logger.py +0 -0
  318. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/session_state_logger/session_state_logger_factory.py +0 -0
  319. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/task/__init__.py +0 -0
  320. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/task/any_task.py +0 -0
  321. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/task/base_task.py +0 -0
  322. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/task/base_trigger.py +0 -0
  323. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/task/cmd_task.py +0 -0
  324. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/task/http_check.py +0 -0
  325. {zrb-1.5.4/src/zrb/task_status → zrb-1.5.6/src/zrb/task/llm}/__init__.py +0 -0
  326. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/task/make_task.py +0 -0
  327. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/task/rsync_task.py +0 -0
  328. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/task/scaffolder.py +0 -0
  329. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/task/scheduler.py +0 -0
  330. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/task/task.py +0 -0
  331. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/task/tcp_check.py +0 -0
  332. {zrb-1.5.4/src/zrb/util → zrb-1.5.6/src/zrb/task_status}/__init__.py +0 -0
  333. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/task_status/task_status.py +0 -0
  334. {zrb-1.5.4/src/zrb/util/cli → zrb-1.5.6/src/zrb/util}/__init__.py +0 -0
  335. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/attr.py +0 -0
  336. {zrb-1.5.4/src/zrb/util/cmd → zrb-1.5.6/src/zrb/util/cli}/__init__.py +0 -0
  337. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/cli/style.py +0 -0
  338. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/cli/subcommand.py +0 -0
  339. {zrb-1.5.4/src/zrb/util/codemod → zrb-1.5.6/src/zrb/util/cmd}/__init__.py +0 -0
  340. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/cmd/command.py +0 -0
  341. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/cmd/remote.py +0 -0
  342. {zrb-1.5.4/src/zrb/util/string → zrb-1.5.6/src/zrb/util/codemod}/__init__.py +0 -0
  343. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/codemod/modification_mode.py +0 -0
  344. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/codemod/modify_class.py +0 -0
  345. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/codemod/modify_class_parent.py +0 -0
  346. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/codemod/modify_class_property.py +0 -0
  347. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/codemod/modify_dict.py +0 -0
  348. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/codemod/modify_function.py +0 -0
  349. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/codemod/modify_function_call.py +0 -0
  350. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/codemod/modify_method.py +0 -0
  351. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/codemod/modify_module.py +0 -0
  352. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/cron.py +0 -0
  353. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/git.py +0 -0
  354. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/git_subtree.py +0 -0
  355. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/group.py +0 -0
  356. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/run.py +0 -0
  357. {zrb-1.5.4/src/zrb/xcom → zrb-1.5.6/src/zrb/util/string}/__init__.py +0 -0
  358. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/string/conversion.py +0 -0
  359. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/string/format.py +0 -0
  360. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/string/name.py +0 -0
  361. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/util/todo.py +0 -0
  362. {zrb-1.5.4 → zrb-1.5.6}/src/zrb/xcom/xcom.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zrb
3
- Version: 1.5.4
3
+ Version: 1.5.6
4
4
  Summary: Your Automation Powerhouse
5
5
  Home-page: https://github.com/state-alchemists/zrb
6
6
  License: AGPL-3.0-or-later
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "zrb"
3
- version = "1.5.4"
3
+ version = "1.5.6"
4
4
  description = "Your Automation Powerhouse"
5
5
  authors = ["Go Frendi Gunawan <gofrendiasgard@gmail.com>"]
6
6
  license = "AGPL-3.0-or-later"
@@ -43,6 +43,7 @@ from zrb.task.base_task import BaseTask
43
43
  from zrb.task.base_trigger import BaseTrigger
44
44
  from zrb.task.cmd_task import CmdTask
45
45
  from zrb.task.http_check import HttpCheck
46
+ from zrb.task.llm.history import ConversationHistoryData
46
47
  from zrb.task.llm_task import LLMTask
47
48
  from zrb.task.make_task import make_task
48
49
  from zrb.task.rsync_task import RsyncTask
@@ -91,6 +92,7 @@ assert BaseTrigger
91
92
  assert RsyncTask
92
93
  assert Task
93
94
  assert LLMTask
95
+ assert ConversationHistoryData
94
96
  assert Session
95
97
  assert AnyContext
96
98
  assert Context
@@ -1,26 +1,51 @@
1
+ import logging
1
2
  import os
2
3
  import sys
3
4
 
4
- from zrb.config import INIT_MODULES, INIT_SCRIPTS
5
+ from zrb.config import INIT_MODULES, INIT_SCRIPTS, LOGGER, LOGGING_LEVEL
5
6
  from zrb.runner.cli import cli
6
- from zrb.util.cli.style import stylize_error, stylize_warning
7
+ from zrb.util.cli.style import stylize_error, stylize_faint, stylize_warning
7
8
  from zrb.util.group import NodeNotFoundError
8
9
  from zrb.util.load import load_file, load_module
9
10
 
10
11
 
12
+ # Custom Formatter for faint styling
13
+ class FaintFormatter(logging.Formatter):
14
+
15
+ def __init__(self, fmt=None, datefmt=None):
16
+ default_fmt = "%(asctime)s %(levelname)s: %(message)s"
17
+ default_datefmt = "%Y-%m-%d %H:%M:%S"
18
+ super().__init__(fmt=fmt or default_fmt, datefmt=datefmt or default_datefmt)
19
+
20
+ def format(self, record):
21
+ log_msg = super().format(record)
22
+ return stylize_faint(log_msg)
23
+
24
+
11
25
  def serve_cli():
26
+ LOGGER.setLevel(LOGGING_LEVEL)
27
+ # Remove existing handlers to avoid duplicates/default formatting
28
+ for handler in LOGGER.handlers[:]:
29
+ LOGGER.removeHandler(handler)
30
+ handler = logging.StreamHandler()
31
+ handler.setFormatter(FaintFormatter())
32
+ LOGGER.addHandler(handler)
33
+ # --- End Logging Configuration ---
12
34
  try:
13
35
  # load init modules
14
36
  for init_module in INIT_MODULES:
37
+ LOGGER.info(f"Loading {init_module}")
15
38
  load_module(init_module)
16
39
  zrb_init_path_list = _get_zrb_init_path_list()
17
40
  # load init scripts
18
41
  for init_script in INIT_SCRIPTS:
19
42
  abs_init_script = os.path.abspath(os.path.expanduser(init_script))
20
43
  if abs_init_script not in zrb_init_path_list:
44
+ LOGGER.info(f"Loading {abs_init_script}")
21
45
  load_file(abs_init_script, -1)
22
46
  # load zrb init
23
47
  for zrb_init_path in zrb_init_path_list:
48
+ LOGGER.info(f"Loading {zrb_init_path}")
24
49
  load_file(zrb_init_path)
25
50
  # run the CLI
26
51
  cli.run(sys.argv[1:])
@@ -45,6 +70,7 @@ def _get_zrb_init_path_list() -> list[str]:
45
70
  zrb_init_path_list = []
46
71
  for current_path in dir_path_list[::-1]:
47
72
  zrb_init_path = os.path.join(current_path, "zrb_init.py")
73
+ LOGGER.info(f"Finding {zrb_init_path}")
48
74
  if os.path.isfile(zrb_init_path):
49
75
  zrb_init_path_list.append(zrb_init_path)
50
76
  return zrb_init_path_list
@@ -0,0 +1,73 @@
1
+ import json
2
+ import os
3
+ from typing import Any
4
+
5
+ from zrb.config import LLM_HISTORY_DIR
6
+ from zrb.context.any_shared_context import AnySharedContext
7
+ from zrb.task.llm.history import ConversationHistoryData
8
+ from zrb.util.file import read_file, write_file
9
+
10
+
11
+ def read_chat_conversation(ctx: AnySharedContext) -> dict[str, Any] | list | None:
12
+ """Reads conversation history from the session file.
13
+ Returns the raw dictionary or list loaded from JSON, or None if not found/empty.
14
+ The LLMTask will handle parsing this into ConversationHistoryData.
15
+ """
16
+ if ctx.input.start_new:
17
+ return None # Indicate no history to load
18
+ previous_session_name = ctx.input.previous_session
19
+ if not previous_session_name: # Check for empty string or None
20
+ last_session_file_path = os.path.join(LLM_HISTORY_DIR, "last-session")
21
+ if os.path.isfile(last_session_file_path):
22
+ previous_session_name = read_file(last_session_file_path).strip()
23
+ if not previous_session_name: # Handle empty last-session file
24
+ return None
25
+ else:
26
+ return None # No previous session specified and no last session found
27
+ conversation_file_path = os.path.join(
28
+ LLM_HISTORY_DIR, f"{previous_session_name}.json"
29
+ )
30
+ if not os.path.isfile(conversation_file_path):
31
+ ctx.log_warning(f"History file not found: {conversation_file_path}")
32
+ return None
33
+ try:
34
+ content = read_file(conversation_file_path)
35
+ if not content.strip():
36
+ ctx.log_warning(f"History file is empty: {conversation_file_path}")
37
+ return None
38
+ # Return the raw loaded data (dict or list)
39
+ return json.loads(content)
40
+ except json.JSONDecodeError:
41
+ ctx.log_warning(
42
+ f"Could not decode JSON from history file '{conversation_file_path}'. "
43
+ "Treating as empty history."
44
+ )
45
+ return None
46
+ except Exception as e:
47
+ ctx.log_warning(
48
+ f"Error reading history file '{conversation_file_path}': {e}. "
49
+ "Treating as empty history."
50
+ )
51
+ return None
52
+
53
+
54
+ def write_chat_conversation(
55
+ ctx: AnySharedContext, history_data: ConversationHistoryData
56
+ ):
57
+ """Writes the conversation history data (including context) to a session file."""
58
+ os.makedirs(LLM_HISTORY_DIR, exist_ok=True)
59
+ current_session_name = ctx.session.name
60
+ if not current_session_name:
61
+ ctx.log_warning("Cannot write history: Session name is empty.")
62
+ return
63
+ conversation_file_path = os.path.join(
64
+ LLM_HISTORY_DIR, f"{current_session_name}.json"
65
+ )
66
+ try:
67
+ # Use model_dump_json to serialize the Pydantic model
68
+ write_file(conversation_file_path, history_data.model_dump_json(indent=2))
69
+ # Update the last-session pointer
70
+ last_session_file_path = os.path.join(LLM_HISTORY_DIR, "last-session")
71
+ write_file(last_session_file_path, current_session_name)
72
+ except Exception as e:
73
+ ctx.log_error(f"Error writing history file '{conversation_file_path}': {e}")
@@ -0,0 +1,27 @@
1
+ import os
2
+
3
+ from zrb.context.any_shared_context import AnySharedContext
4
+ from zrb.input.str_input import StrInput
5
+ from zrb.util.file import read_file
6
+ from zrb.util.string.conversion import to_pascal_case
7
+
8
+
9
+ class PreviousSessionInput(StrInput):
10
+
11
+ def to_html(self, ctx: AnySharedContext) -> str:
12
+ name = self.name
13
+ description = self.description
14
+ default = self.get_default_str(ctx)
15
+ script = read_file(
16
+ file_path=os.path.join(os.path.dirname(__file__), "previous-session.js"),
17
+ replace_map={
18
+ "CURRENT_INPUT_NAME": name,
19
+ "CurrentPascalInputName": to_pascal_case(name),
20
+ },
21
+ )
22
+ return "\n".join(
23
+ [
24
+ f'<input name="{name}" placeholder="{description}" value="{default}" />',
25
+ f"<script>{script}</script>",
26
+ ]
27
+ )
@@ -1,8 +1,6 @@
1
- import json
2
- import os
3
- from typing import Any
4
-
5
1
  from zrb.builtin.group import llm_group
2
+ from zrb.builtin.llm.history import read_chat_conversation, write_chat_conversation
3
+ from zrb.builtin.llm.input import PreviousSessionInput
6
4
  from zrb.builtin.llm.tool.api import get_current_location, get_current_weather
7
5
  from zrb.builtin.llm.tool.cli import run_shell_command
8
6
  from zrb.builtin.llm.tool.file import (
@@ -22,67 +20,12 @@ from zrb.config import (
22
20
  LLM_ALLOW_ACCESS_INTERNET,
23
21
  LLM_ALLOW_ACCESS_LOCAL_FILE,
24
22
  LLM_ALLOW_ACCESS_SHELL,
25
- LLM_HISTORY_DIR,
26
23
  SERP_API_KEY,
27
24
  )
28
- from zrb.context.any_shared_context import AnySharedContext
29
25
  from zrb.input.bool_input import BoolInput
30
26
  from zrb.input.str_input import StrInput
31
27
  from zrb.input.text_input import TextInput
32
28
  from zrb.task.llm_task import LLMTask
33
- from zrb.util.file import read_file, write_file
34
- from zrb.util.string.conversion import to_pascal_case
35
-
36
-
37
- class PreviousSessionInput(StrInput):
38
-
39
- def to_html(self, ctx: AnySharedContext) -> str:
40
- name = self.name
41
- description = self.description
42
- default = self.get_default_str(ctx)
43
- script = read_file(
44
- file_path=os.path.join(os.path.dirname(__file__), "previous-session.js"),
45
- replace_map={
46
- "CURRENT_INPUT_NAME": name,
47
- "CurrentPascalInputName": to_pascal_case(name),
48
- },
49
- )
50
- return "\n".join(
51
- [
52
- f'<input name="{name}" placeholder="{description}" value="{default}" />',
53
- f"<script>{script}</script>",
54
- ]
55
- )
56
-
57
-
58
- def _read_chat_conversation(ctx: AnySharedContext) -> list[dict[str, Any]]:
59
- if ctx.input.start_new:
60
- return []
61
- previous_session_name = ctx.input.previous_session
62
- if previous_session_name == "" or previous_session_name is None:
63
- last_session_file_path = os.path.join(LLM_HISTORY_DIR, "last-session")
64
- if os.path.isfile(last_session_file_path):
65
- previous_session_name = read_file(last_session_file_path).strip()
66
- conversation_file_path = os.path.join(
67
- LLM_HISTORY_DIR, f"{previous_session_name}.json"
68
- )
69
- if not os.path.isfile(conversation_file_path):
70
- return []
71
- return json.loads(read_file(conversation_file_path))
72
-
73
-
74
- def _write_chat_conversation(
75
- ctx: AnySharedContext, conversations: list[dict[str, Any]]
76
- ):
77
- os.makedirs(LLM_HISTORY_DIR, exist_ok=True)
78
- current_session_name = ctx.session.name
79
- conversation_file_path = os.path.join(
80
- LLM_HISTORY_DIR, f"{current_session_name}.json"
81
- )
82
- write_file(conversation_file_path, json.dumps(conversations, indent=2))
83
- last_session_file_path = os.path.join(LLM_HISTORY_DIR, "last-session")
84
- write_file(last_session_file_path, current_session_name)
85
-
86
29
 
87
30
  llm_chat: LLMTask = llm_group.add_task(
88
31
  LLMTask(
@@ -148,8 +91,8 @@ llm_chat: LLMTask = llm_group.add_task(
148
91
  model_api_key=lambda ctx: (
149
92
  None if ctx.input.api_key.strip() == "" else ctx.input.api_key
150
93
  ),
151
- conversation_history_reader=_read_chat_conversation,
152
- conversation_history_writer=_write_chat_conversation,
94
+ conversation_history_reader=read_chat_conversation,
95
+ conversation_history_writer=write_chat_conversation,
153
96
  description="Chat with LLM",
154
97
  system_prompt=lambda ctx: (
155
98
  None if ctx.input.system_prompt.strip() == "" else ctx.input.system_prompt
@@ -0,0 +1,53 @@
1
+ import json
2
+ from typing import Literal
3
+
4
+
5
+ def get_current_location() -> str:
6
+ """Get current location (latitude, longitude) based on IP address.
7
+ Returns:
8
+ str: JSON string representing latitude and longitude.
9
+ Raises:
10
+ requests.RequestException: If the API request fails.
11
+ """
12
+ import requests
13
+
14
+ try:
15
+ response = requests.get("http://ip-api.com/json?fields=lat,lon", timeout=5)
16
+ response.raise_for_status()
17
+ return json.dumps(response.json())
18
+ except requests.RequestException as e:
19
+ raise requests.RequestException(f"Failed to get location: {e}") from None
20
+
21
+
22
+ def get_current_weather(
23
+ latitude: float,
24
+ longitude: float,
25
+ temperature_unit: Literal["celsius", "fahrenheit"],
26
+ ) -> str:
27
+ """Get current weather for a specific location.
28
+ Args:
29
+ latitude (float): Latitude coordinate.
30
+ longitude (float): Longitude coordinate.
31
+ temperature_unit (Literal["celsius", "fahrenheit"]): Temperature unit.
32
+ Returns:
33
+ str: JSON string with weather data.
34
+ Raises:
35
+ requests.RequestException: If the API request fails.
36
+ """
37
+ import requests
38
+
39
+ try:
40
+ response = requests.get(
41
+ "https://api.open-meteo.com/v1/forecast",
42
+ params={
43
+ "latitude": latitude,
44
+ "longitude": longitude,
45
+ "temperature_unit": temperature_unit,
46
+ "current_weather": True,
47
+ },
48
+ timeout=5,
49
+ )
50
+ response.raise_for_status()
51
+ return json.dumps(response.json())
52
+ except requests.RequestException as e:
53
+ raise requests.RequestException(f"Failed to get weather data: {e}") from None
@@ -0,0 +1,23 @@
1
+ import subprocess
2
+
3
+
4
+ def run_shell_command(command: str) -> str:
5
+ """Execute a shell command and return its combined stdout and stderr.
6
+ Args:
7
+ command (str): Shell command to execute on the user's system.
8
+ Returns:
9
+ str: The command's output (stdout and stderr combined).
10
+ Raises:
11
+ subprocess.CalledProcessError: If the command returns a non-zero exit code.
12
+ subprocess.SubprocessError: If there's an issue with subprocess execution.
13
+ """
14
+ try:
15
+ output = subprocess.check_output(
16
+ command, shell=True, stderr=subprocess.STDOUT, text=True
17
+ )
18
+ return output
19
+ except subprocess.CalledProcessError as e:
20
+ # Include the error output in the exception message
21
+ raise subprocess.CalledProcessError(
22
+ e.returncode, e.cmd, e.output, e.stderr
23
+ ) from None