zrb 1.8.15__tar.gz → 1.9.0__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 (396) hide show
  1. {zrb-1.8.15 → zrb-1.9.0}/PKG-INFO +1 -1
  2. {zrb-1.8.15 → zrb-1.9.0}/pyproject.toml +1 -1
  3. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/llm/chat_session.py +16 -11
  4. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/llm_config.py +132 -165
  5. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/any_task.py +6 -9
  6. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/llm/agent.py +26 -33
  7. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/llm/config.py +4 -7
  8. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/llm/context.py +0 -44
  9. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/llm/context_enrichment.py +44 -81
  10. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/llm/error.py +2 -4
  11. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/llm/history.py +19 -11
  12. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/llm/history_summarization.py +46 -69
  13. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/llm/print_node.py +10 -8
  14. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/llm/prompt.py +12 -19
  15. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/llm/tool_wrapper.py +2 -4
  16. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/llm_task.py +52 -60
  17. {zrb-1.8.15 → zrb-1.9.0}/README.md +0 -0
  18. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/__init__.py +0 -0
  19. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/__main__.py +0 -0
  20. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/attr/__init__.py +0 -0
  21. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/attr/type.py +0 -0
  22. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/__init__.py +0 -0
  23. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/base64.py +0 -0
  24. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/git.py +0 -0
  25. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/git_subtree.py +0 -0
  26. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/group.py +0 -0
  27. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/http.py +0 -0
  28. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/jwt.py +0 -0
  29. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/llm/history.py +0 -0
  30. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/llm/input.py +0 -0
  31. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/llm/llm_ask.py +0 -0
  32. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/llm/previous-session.js +0 -0
  33. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/llm/tool/__init__.py +0 -0
  34. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/llm/tool/api.py +0 -0
  35. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/llm/tool/cli.py +0 -0
  36. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/llm/tool/code.py +0 -0
  37. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/llm/tool/file.py +0 -0
  38. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/llm/tool/rag.py +0 -0
  39. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/llm/tool/sub_agent.py +0 -0
  40. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/llm/tool/web.py +0 -0
  41. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/md5.py +0 -0
  42. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/__init__.py +0 -0
  43. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_input.py +0 -0
  44. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_task.py +0 -0
  45. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.coveragerc +0 -0
  46. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.flake8 +0 -0
  47. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.gitignore +0 -0
  48. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/README.md +0 -0
  49. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/__init__.py +0 -0
  50. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_task.py +0 -0
  51. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_util.py +0 -0
  52. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/config.py +0 -0
  53. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_task.py +0 -0
  54. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_util.py +0 -0
  55. {zrb-1.8.15 → zrb-1.9.0}/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
  56. {zrb-1.8.15 → zrb-1.9.0}/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
  57. {zrb-1.8.15 → zrb-1.9.0}/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
  58. {zrb-1.8.15 → zrb-1.9.0}/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
  59. {zrb-1.8.15 → zrb-1.9.0}/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
  60. {zrb-1.8.15 → zrb-1.9.0}/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
  61. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/schema/my_entity.py +0 -0
  62. {zrb-1.8.15 → zrb-1.9.0}/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
  63. {zrb-1.8.15 → zrb-1.9.0}/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
  64. {zrb-1.8.15 → zrb-1.9.0}/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
  65. {zrb-1.8.15 → zrb-1.9.0}/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
  66. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/client_method.py +0 -0
  67. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/gateway_subroute.py +0 -0
  68. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/navigation_config_file.py +0 -0
  69. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/format_task.py +0 -0
  70. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/group.py +0 -0
  71. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/input.py +0 -0
  72. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_task.py +0 -0
  73. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_util.py +0 -0
  74. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/gateway/subroute/my_module.py +0 -0
  75. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/alembic.ini +0 -0
  76. {zrb-1.8.15 → zrb-1.9.0}/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
  77. {zrb-1.8.15 → zrb-1.9.0}/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
  78. {zrb-1.8.15 → zrb-1.9.0}/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
  79. {zrb-1.8.15 → zrb-1.9.0}/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
  80. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/README +0 -0
  81. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/env.py +0 -0
  82. {zrb-1.8.15 → zrb-1.9.0}/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
  83. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/versions/.gitkeep +0 -0
  84. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration_metadata.py +0 -0
  85. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/route.py +0 -0
  86. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/service/__init__.py +0 -0
  87. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/module_task_definition.py +0 -0
  88. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/navigation_config_file.py +0 -0
  89. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task.py +0 -0
  90. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task_util.py +0 -0
  91. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/util.py +0 -0
  92. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/venv_task.py +0 -0
  93. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/__init__.py +0 -0
  94. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/app_factory.py +0 -0
  95. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_db_repository.py +0 -0
  96. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_service.py +0 -0
  97. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/db_engine_factory.py +0 -0
  98. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/error.py +0 -0
  99. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/logger_factory.py +0 -0
  100. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/parser_factory.py +0 -0
  101. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/schema.py +0 -0
  102. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/app.py +0 -0
  103. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/parser.py +0 -0
  104. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/user_agent.py +0 -0
  105. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/view.py +0 -0
  106. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/config.py +0 -0
  107. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/main.py +0 -0
  108. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/__init__.py +0 -0
  109. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/alembic.ini +0 -0
  110. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_api_client.py +0 -0
  111. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client.py +0 -0
  112. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client_factory.py +0 -0
  113. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_direct_client.py +0 -0
  114. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/README +0 -0
  115. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/env.py +0 -0
  116. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/script.py.mako +0 -0
  117. {zrb-1.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/8ed025bcc845_create_permissions.py +0 -0
  119. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration_metadata.py +0 -0
  120. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/route.py +0 -0
  121. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/__init__.py +0 -0
  122. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/__init__.py +0 -0
  123. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service.py +0 -0
  124. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service_factory.py +0 -0
  125. {zrb-1.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository.py +0 -0
  127. {zrb-1.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/__init__.py +0 -0
  129. {zrb-1.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository.py +0 -0
  131. {zrb-1.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service.py +0 -0
  133. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service_factory.py +0 -0
  134. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/__init__.py +0 -0
  135. {zrb-1.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository.py +0 -0
  137. {zrb-1.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service.py +0 -0
  139. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service_factory.py +0 -0
  140. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/alembic.ini +0 -0
  141. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/config/navigation.py +0 -0
  142. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/README +0 -0
  143. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/env.py +0 -0
  144. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/script.py.mako +0 -0
  145. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/versions/.gitkeep +0 -0
  146. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration_metadata.py +0 -0
  147. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/route.py +0 -0
  148. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/schema/navigation.py +0 -0
  149. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/subroute/auth.py +0 -0
  150. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/auth.py +0 -0
  151. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/view.py +0 -0
  152. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/permission.html +0 -0
  153. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/role.html +0 -0
  154. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/user.html +0 -0
  155. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/error.html +0 -0
  156. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/homepage.html +0 -0
  157. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/login.html +0 -0
  158. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/logout.html +0 -0
  159. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/common/util.js +0 -0
  160. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/style.css +0 -0
  161. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/util.js +0 -0
  162. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/pico-style.css +0 -0
  163. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/script.js +0 -0
  164. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/style.css +0 -0
  165. {zrb-1.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/favicon-32x32.png +0 -0
  168. {zrb-1.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/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.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/template/default.html +0 -0
  189. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/requirements.txt +0 -0
  190. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/__init__.py +0 -0
  191. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/permission.py +0 -0
  192. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/role.py +0 -0
  193. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/user.py +0 -0
  194. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/template.env +0 -0
  195. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/_util/access_token.py +0 -0
  196. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_create_permission.py +0 -0
  197. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_delete_permission.py +0 -0
  198. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_read_permission.py +0 -0
  199. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_update_permission.py +0 -0
  200. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/test_user_session.py +0 -0
  201. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_health_and_readiness.py +0 -0
  202. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_homepage.py +0 -0
  203. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_not_found_error.py +0 -0
  204. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test.sh +0 -0
  205. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/add/fastapp/fastapp_util.py +0 -0
  206. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/create/__init__.py +0 -0
  207. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/create/project-template/README.md +0 -0
  208. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/create/project-template/zrb_init.py +0 -0
  209. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/project/create/project_task.py +0 -0
  210. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/python.py +0 -0
  211. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/random.py +0 -0
  212. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/setup/asdf/asdf.py +0 -0
  213. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/setup/asdf/asdf_helper.py +0 -0
  214. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/setup/common_input.py +0 -0
  215. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/setup/latex/ubuntu.py +0 -0
  216. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/setup/tmux/tmux.py +0 -0
  217. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/setup/tmux/tmux_config.sh +0 -0
  218. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/setup/tmux/tmux_helper.py +0 -0
  219. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/setup/ubuntu.py +0 -0
  220. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/setup/zsh/zsh.py +0 -0
  221. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/setup/zsh/zsh_config.sh +0 -0
  222. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/setup/zsh/zsh_helper.py +0 -0
  223. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/shell/__init__.py +0 -0
  224. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/shell/autocomplete/__init__.py +0 -0
  225. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/shell/autocomplete/bash.py +0 -0
  226. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/shell/autocomplete/subcmd.py +0 -0
  227. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/shell/autocomplete/zsh.py +0 -0
  228. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/todo.py +0 -0
  229. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/builtin/uuid.py +0 -0
  230. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/callback/__init__.py +0 -0
  231. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/callback/any_callback.py +0 -0
  232. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/callback/callback.py +0 -0
  233. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/cmd/__init__.py +0 -0
  234. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/cmd/cmd_result.py +0 -0
  235. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/cmd/cmd_val.py +0 -0
  236. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/config.py +0 -0
  237. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/content_transformer/__init__.py +0 -0
  238. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/content_transformer/any_content_transformer.py +0 -0
  239. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/content_transformer/content_transformer.py +0 -0
  240. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/context/__init__.py +0 -0
  241. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/context/any_context.py +0 -0
  242. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/context/any_shared_context.py +0 -0
  243. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/context/context.py +0 -0
  244. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/context/shared_context.py +0 -0
  245. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/dot_dict/__init__.py +0 -0
  246. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/dot_dict/dot_dict.py +0 -0
  247. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/env/__init__.py +0 -0
  248. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/env/any_env.py +0 -0
  249. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/env/env.py +0 -0
  250. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/env/env_file.py +0 -0
  251. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/env/env_map.py +0 -0
  252. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/group/__init__.py +0 -0
  253. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/group/any_group.py +0 -0
  254. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/group/group.py +0 -0
  255. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/input/__init__.py +0 -0
  256. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/input/any_input.py +0 -0
  257. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/input/base_input.py +0 -0
  258. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/input/bool_input.py +0 -0
  259. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/input/float_input.py +0 -0
  260. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/input/int_input.py +0 -0
  261. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/input/option_input.py +0 -0
  262. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/input/password_input.py +0 -0
  263. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/input/str_input.py +0 -0
  264. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/input/text_input.py +0 -0
  265. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/llm_rate_limitter.py +0 -0
  266. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/__init__.py +0 -0
  267. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/cli.py +0 -0
  268. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/common_util.py +0 -0
  269. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_app.py +0 -0
  270. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_auth_config.py +0 -0
  271. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/__init__.py +0 -0
  272. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/docs_route.py +0 -0
  273. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/error_page/serve_default_404.py +0 -0
  274. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/error_page/show_error_page.py +0 -0
  275. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/error_page/view.html +0 -0
  276. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/home_page/__init__.py +0 -0
  277. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/home_page/home_page_route.py +0 -0
  278. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/home_page/view.html +0 -0
  279. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/login_api_route.py +0 -0
  280. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/login_page/login_page_route.py +0 -0
  281. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/login_page/view.html +0 -0
  282. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/logout_api_route.py +0 -0
  283. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/logout_page/logout_page_route.py +0 -0
  284. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/logout_page/view.html +0 -0
  285. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/node_page/group/show_group_page.py +0 -0
  286. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/node_page/group/view.html +0 -0
  287. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/node_page/node_page_route.py +0 -0
  288. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/node_page/task/partial/input.html +0 -0
  289. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/node_page/task/show_task_page.py +0 -0
  290. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/node_page/task/view.html +0 -0
  291. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/refresh_token_api_route.py +0 -0
  292. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/global_template.html +0 -0
  293. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/refresh-token.template.js +0 -0
  294. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/common.css +0 -0
  295. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/common.js +0 -0
  296. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/favicon-32x32.png +0 -0
  297. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/login/event.js +0 -0
  298. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/logout/event.js +0 -0
  299. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.amber.min.css +0 -0
  300. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.blue.min.css +0 -0
  301. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.cyan.min.css +0 -0
  302. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.fuchsia.min.css +0 -0
  303. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.green.min.css +0 -0
  304. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.grey.min.css +0 -0
  305. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.indigo.min.css +0 -0
  306. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.jade.min.css +0 -0
  307. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.lime.min.css +0 -0
  308. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.min.css +0 -0
  309. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.orange.min.css +0 -0
  310. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.pink.min.css +0 -0
  311. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.pumpkin.min.css +0 -0
  312. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.purple.min.css +0 -0
  313. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.red.min.css +0 -0
  314. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.sand.min.css +0 -0
  315. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.slate.min.css +0 -0
  316. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.violet.min.css +0 -0
  317. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.yellow.min.css +0 -0
  318. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.zinc.min.css +0 -0
  319. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/session/common-util.js +0 -0
  320. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/session/current-session.js +0 -0
  321. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/session/event.js +0 -0
  322. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/resources/session/past-session.js +0 -0
  323. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/static/static_route.py +0 -0
  324. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/task_input_api_route.py +0 -0
  325. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_route/task_session_api_route.py +0 -0
  326. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_schema/session.py +0 -0
  327. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_schema/token.py +0 -0
  328. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_schema/user.py +0 -0
  329. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_util/cookie.py +0 -0
  330. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_util/html.py +0 -0
  331. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_util/token.py +0 -0
  332. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/runner/web_util/user.py +0 -0
  333. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/session/__init__.py +0 -0
  334. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/session/any_session.py +0 -0
  335. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/session/session.py +0 -0
  336. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/session_state_log/__init__.py +0 -0
  337. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/session_state_log/session_state_log.py +0 -0
  338. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/session_state_logger/__init__.py +0 -0
  339. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/session_state_logger/any_session_state_logger.py +0 -0
  340. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/session_state_logger/file_session_state_logger.py +0 -0
  341. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/session_state_logger/session_state_logger_factory.py +0 -0
  342. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/__init__.py +0 -0
  343. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/base/__init__.py +0 -0
  344. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/base/context.py +0 -0
  345. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/base/execution.py +0 -0
  346. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/base/lifecycle.py +0 -0
  347. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/base/monitoring.py +0 -0
  348. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/base/operators.py +0 -0
  349. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/base_task.py +0 -0
  350. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/base_trigger.py +0 -0
  351. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/cmd_task.py +0 -0
  352. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/http_check.py +0 -0
  353. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/llm/__init__.py +0 -0
  354. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/llm/typing.py +0 -0
  355. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/make_task.py +0 -0
  356. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/rsync_task.py +0 -0
  357. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/scaffolder.py +0 -0
  358. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/scheduler.py +0 -0
  359. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/task.py +0 -0
  360. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task/tcp_check.py +0 -0
  361. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task_status/__init__.py +0 -0
  362. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/task_status/task_status.py +0 -0
  363. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/__init__.py +0 -0
  364. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/attr.py +0 -0
  365. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/cli/__init__.py +0 -0
  366. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/cli/style.py +0 -0
  367. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/cli/subcommand.py +0 -0
  368. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/cmd/__init__.py +0 -0
  369. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/cmd/command.py +0 -0
  370. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/cmd/remote.py +0 -0
  371. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/codemod/__init__.py +0 -0
  372. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/codemod/modification_mode.py +0 -0
  373. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/codemod/modify_class.py +0 -0
  374. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/codemod/modify_class_parent.py +0 -0
  375. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/codemod/modify_class_property.py +0 -0
  376. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/codemod/modify_dict.py +0 -0
  377. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/codemod/modify_function.py +0 -0
  378. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/codemod/modify_function_call.py +0 -0
  379. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/codemod/modify_method.py +0 -0
  380. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/codemod/modify_module.py +0 -0
  381. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/cron.py +0 -0
  382. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/file.py +0 -0
  383. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/git.py +0 -0
  384. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/git_subtree.py +0 -0
  385. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/group.py +0 -0
  386. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/init_path.py +0 -0
  387. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/load.py +0 -0
  388. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/run.py +0 -0
  389. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/string/__init__.py +0 -0
  390. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/string/conversion.py +0 -0
  391. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/string/format.py +0 -0
  392. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/string/name.py +0 -0
  393. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/todo.py +0 -0
  394. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/util/todo_model.py +0 -0
  395. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/xcom/__init__.py +0 -0
  396. {zrb-1.8.15 → zrb-1.9.0}/src/zrb/xcom/xcom.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zrb
3
- Version: 1.8.15
3
+ Version: 1.9.0
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.8.15"
3
+ version = "1.9.0"
4
4
  description = "Your Automation Powerhouse"
5
5
  authors = ["Go Frendi Gunawan <gofrendiasgard@gmail.com>"]
6
6
  license = "AGPL-3.0-or-later"
@@ -29,7 +29,9 @@ async def read_user_prompt(ctx: AnyContext) -> str:
29
29
 
30
30
  _show_info(ctx)
31
31
  final_result = ""
32
- ctx.print(stylize_faint("🧑 >> ") + f"{ctx.input.message}", plain=True)
32
+ ctx.print(stylize_faint("💬"), plain=True)
33
+ ctx.print(ctx.input.message, plain=True)
34
+ ctx.print("", plain=True)
33
35
  result = await _trigger_ask_and_wait_for_result(
34
36
  ctx,
35
37
  user_prompt=ctx.input.message,
@@ -46,9 +48,11 @@ async def read_user_prompt(ctx: AnyContext) -> str:
46
48
  user_input_session = PromptSession()
47
49
  while True:
48
50
  await asyncio.sleep(0.01)
49
- ctx.print(stylize_faint("🧑 >> "), end="", plain=True)
51
+ if not multiline_mode:
52
+ ctx.print(stylize_faint("💬"), plain=True)
50
53
  user_input = await user_input_session.prompt_async()
51
- # user_input = input()
54
+ if not multiline_mode:
55
+ ctx.print("", plain=True)
52
56
  # Handle special input
53
57
  if user_input.strip().lower() in ("/bye", "/quit"):
54
58
  user_prompt = "\n".join(user_inputs)
@@ -60,6 +64,7 @@ async def read_user_prompt(ctx: AnyContext) -> str:
60
64
  elif user_input.strip().lower() in ("/multi",):
61
65
  multiline_mode = True
62
66
  elif user_input.strip().lower() in ("/end",):
67
+ ctx.print("", plain=True)
63
68
  multiline_mode = False
64
69
  user_prompt = "\n".join(user_inputs)
65
70
  user_inputs = []
@@ -103,7 +108,9 @@ async def _trigger_ask_and_wait_for_result(
103
108
  return None
104
109
  await _trigger_ask(ctx, user_prompt, previous_session_name, start_new)
105
110
  result = await _wait_ask_result(ctx)
106
- ctx.print(f"{stylize_faint('🤖 >>')} {result}", plain=True)
111
+ ctx.print(stylize_faint("\n🤖"), plain=True)
112
+ ctx.print(result, plain=True)
113
+ ctx.print("", plain=True)
107
114
  return result
108
115
 
109
116
 
@@ -199,13 +206,11 @@ def _show_info(ctx: AnyContext):
199
206
  ctx: The context object for the task.
200
207
  """
201
208
  ctx.print(
202
- "\n".join(
203
- [
204
- f"{stylize_bold_yellow('/bye')} {stylize_faint('Quit from chat session')}",
205
- f"{stylize_bold_yellow('/multi')} {stylize_faint('Start multiline input')}",
206
- f"{stylize_bold_yellow('/end')} {stylize_faint('End multiline input')}",
207
- f"{stylize_bold_yellow('/help')} {stylize_faint('Show this message')}",
208
- ]
209
+ (
210
+ f" {stylize_bold_yellow('/bye')} {stylize_faint('Quit from chat session')}\n"
211
+ f" {stylize_bold_yellow('/multi')} {stylize_faint('Start multiline input')}\n"
212
+ f" {stylize_bold_yellow('/end')} {stylize_faint('End multiline input')}\n"
213
+ f" {stylize_bold_yellow('/help')} {stylize_faint('Show this message')}\n"
209
214
  ),
210
215
  plain=True,
211
216
  )
@@ -15,185 +15,152 @@ DEFAULT_PERSONA = (
15
15
  ).strip()
16
16
 
17
17
  DEFAULT_INTERACTIVE_SYSTEM_PROMPT = (
18
- "You have access to tools and two forms of memory:\n"
19
- "1. A structured summary of the immediate task (including a payload) AND "
20
- "the raw text of the last few turns.\n"
21
- "2. A structured JSON object of long-term facts (user profile, project "
22
- "details).\n\n"
23
- "Your goal is to complete the user's task by following a strict workflow."
24
- "\n\n"
25
- "**YOUR CORE WORKFLOW**\n"
26
- "You MUST follow these steps in order for every task:\n\n"
27
- "1. **Synthesize and Verify:**\n"
28
- " - Review all parts of your memory: the long-term facts, the recent "
29
- "conversation history, and the summary of the next action.\n"
30
- " - Compare this with the user's absolute LATEST message.\n"
31
- " - **If your memory seems out of date or contradicts the user's new "
32
- "request, you MUST ask for clarification before doing anything else.**\n"
33
- " - Example: If memory says 'ready to build the app' but the user "
34
- "asks to 'add a new file', ask: 'My notes say we were about to build. "
35
- "Are you sure you want to add a new file first? Please confirm.'\n\n"
36
- "2. **Plan:**\n"
37
- " - Use the `Action Payload` from your memory if it exists.\n"
38
- " - State your plan in simple, numbered steps.\n\n"
39
- "3. **Execute:**\n"
40
- " - Follow your plan and use your tools to complete the task.\n\n"
41
- "**CRITICAL RULES**\n"
42
- "- **TRUST YOUR MEMORY (AFTER VERIFICATION):** Once you confirm your "
43
- "memory is correct, do NOT re-gather information. Use the `Action "
44
- "Payload` directly.\n"
45
- "- **ASK IF UNSURE:** If a required parameter (like a filename) is not in "
46
- "your memory or the user's last message, you MUST ask for it. Do not "
47
- "guess."
18
+ "This is an interactive session. To assist the user, you MUST follow "
19
+ "this core workflow:\n\n"
20
+ "# Core Interactive Workflow\n"
21
+ "1. **Clarify:** If the user's request is ambiguous, ask clarifying "
22
+ "questions to ensure you fully understand their goal.\n"
23
+ "2. **Plan:** For any non-trivial task, briefly outline your plan to the "
24
+ "user before you begin.\n"
25
+ "3. **Execute:** Carry out the plan, using your available tools as "
26
+ "needed.\n"
27
+ "4. **Confirm:** Before performing any significant or irreversible "
28
+ "action (e.g., modifying files, committing code), state your intention "
29
+ "and ask for the user's confirmation to proceed."
48
30
  ).strip()
49
31
 
50
32
  DEFAULT_SYSTEM_PROMPT = (
51
- "You are a helpful and precise expert assistant. Your goal is to "
52
- "follow instructions carefully to provide an accurate and efficient answer. "
53
- "Fulfill the user's request directly. Use your tools if necessary. "
54
- "Get straight to the point."
33
+ "To fulfill this one-shot request, follow this simple process:\n"
34
+ "1. **Analyze:** Deconstruct the user's request.\n"
35
+ "2. **Execute:** Fulfill the request directly and concisely, using tools "
36
+ "if necessary.\n"
37
+ "3. **Answer:** Provide a clear and accurate answer."
55
38
  ).strip()
56
39
 
57
40
  DEFAULT_SPECIAL_INSTRUCTION_PROMPT = (
58
- "## Technical Task Protocol\n"
59
- "When performing technical tasks, strictly follow this protocol.\n\n"
60
- "**1. Guiding Principles**\n"
61
- "Your work must be **Correct, Secure, and Readable**.\n\n"
62
- "**2. Code Modification: Surgical Precision**\n"
63
- "- Your primary goal is to preserve the user's work.\n"
64
- "- Find the **exact start and end lines** you need to change.\n"
65
- "- **ADD or MODIFY only those specific lines.** Do not touch any other "
66
- "part of the file.\n"
67
- "- Do not REPLACE a whole file unless the user explicitly tells you "
68
- "to.\n\n"
69
- "**3. Git Workflow: A Safe, Step-by-Step Process**\n"
70
- "Whenever you work in a git repository, you MUST follow these steps "
71
- "exactly:\n"
72
- "1. **Check Status:** Run `git status` to ensure the working directory "
73
- "is clean.\n"
74
- "2. **Halt if Dirty:** If the directory is not clean, STOP. Inform the "
75
- "user and wait for their instructions.\n"
76
- "3. **Create a New Branch:** Create a new branch and inform the user.\n"
77
- "4. **Execute on Branch:** Perform all your work and commits there.\n\n"
78
- "**4. Debugging Protocol**\n"
79
- "1. **Hypothesize:** State the most likely cause of the bug in one "
80
- "sentence.\n"
81
- "2. **Solve:** Provide the targeted code fix and explain simply *why* "
82
- "it works.\n"
83
- "3. **Verify:** Tell the user what command to run or what to check to "
84
- "confirm the fix works."
41
+ "If the user's request falls into a specialized category below, follow "
42
+ "the associated protocol.\n\n"
43
+ "---\n"
44
+ "## Software Engineering Protocol\n"
45
+ "This protocol applies to any request involving coding, debugging, or "
46
+ "other software development tasks.\n\n"
47
+ "### 1. Guiding Mandates\n"
48
+ "- **Safety First:** Never perform destructive actions without explicit "
49
+ "user confirmation. Explain critical commands before executing them.\n"
50
+ "- **Adhere to Conventions:** Your changes must blend in seamlessly with "
51
+ "the existing codebase. Match the formatting, naming, and architectural "
52
+ "patterns. *Never assume* a project's conventions; use your tools to "
53
+ "discover them.\n"
54
+ "- **No Assumptions on Dependencies:** Never assume a library or "
55
+ "framework is available. Verify its presence in `package.json`, "
56
+ "`requirements.txt`, or similar files first.\n\n"
57
+ "### 2. Core Workflow\n"
58
+ "1. **Understand:** Use your tools to analyze the relevant files and "
59
+ "codebase. Announce what you are inspecting (e.g., 'Okay, I will read "
60
+ "`main.py` and `utils.py` to understand the context.').\n"
61
+ "2. **Plan:** Announce your step-by-step plan (e.g., 'Here is my plan: "
62
+ "1. Add the function to `utils.py`. 2. Import and call it in `main.py`. "
63
+ "3. Run the tests.').\n"
64
+ "3. **Implement:** Execute the plan using your tools, following the "
65
+ "mandates above.\n"
66
+ "4. **Verify:** After making changes, run the relevant verification "
67
+ "commands (e.g., tests, linters). Announce the command you will run "
68
+ "(e.g., 'Now, I will run `npm test` to verify the changes.').\n"
69
+ "5. **Conclude:** Report the results of the verification step. If "
70
+ "successful, ask for the next step (e.g., 'All tests passed. Should I "
71
+ "commit these changes?')."
85
72
  ).strip()
86
73
 
87
74
  DEFAULT_SUMMARIZATION_PROMPT = (
88
- "You are a summarization assistant. Your job is to create a two-part "
89
- "summary to give the main assistant perfect context for its next "
90
- "action.\n\n"
91
- "**PART 1: RECENT CONVERSATION HISTORY**\n"
92
- "- Copy the last 3-4 turns of the conversation verbatim.\n"
93
- "- Use the format `user:` and `assistant:`.\n\n"
94
- "**PART 2: ANALYSIS OF CURRENT STATE**\n"
95
- "- Fill in the template to analyze the immediate task.\n"
96
- "- **CRITICAL RULE:** If the next action requires specific data (like "
97
- "text for a file or a command), you MUST include that exact data in the "
98
- "`Action Payload` field.\n\n"
99
- "---\n"
100
- "**TEMPLATE FOR YOUR ENTIRE OUTPUT**\n\n"
101
- "## Part 1: Recent Conversation History\n"
102
- "user: [The user's second-to-last message]\n"
103
- "assistant: [The assistant's last message]\n"
104
- "user: [The user's most recent message]\n\n"
75
+ "You are a Conversation Historian, a specialized assistant responsible "
76
+ "for updating a conversation summary to preserve context for the main "
77
+ "assistant.\n\n"
78
+ "## Historian Protocol\n"
79
+ "You MUST follow this protocol to generate the updated summary.\n\n"
80
+ "### 1. Input\n"
81
+ "You will receive two pieces of information:\n"
82
+ "1. The `Previous Summary` (which contains a narrative and recent history).\n"
83
+ "2. The `Recent Conversation History` (the new turns since the last "
84
+ "summary was made).\n\n"
85
+ "### 2. Task\n"
86
+ "Your job is to integrate the `Recent Conversation History` into the "
87
+ "`Previous Summary`.\n"
88
+ "1. Update the `Narrative Summary` to include the key events from the "
89
+ "new conversation turns.\n"
90
+ "2. Replace the `Recent History` with the last 4 turns of the *new* "
91
+ "conversation.\n\n"
92
+ "### 3. Output Specification\n"
93
+ "Your entire output MUST be a single block of text containing the "
94
+ "following two sections in this exact order:\n"
95
+ "1. `## Narrative Summary` (The updated narrative)\n"
96
+ "2. `## Recent History` (The new recent history)\n\n"
105
97
  "---\n"
106
- "## Part 2: Analysis of Current State\n\n"
107
- "**User's Main Goal:**\n"
108
- "[Describe the user's overall objective in one simple sentence.]\n\n"
109
- "**Next Action for Assistant:**\n"
110
- "[Describe the immediate next step. Example: 'Write new content to the "
111
- "README.md file.']\n\n"
112
- "**Action Payload:**\n"
113
- "[IMPORTANT: Provide the exact content, code, or command for the "
114
- "action. If no data is needed, write 'None'.]\n\n"
115
- "---\n"
116
- "**EXAMPLE SCENARIO & CORRECT OUTPUT**\n\n"
117
- "*PREVIOUS CONVERSATION:*\n"
118
- "user: Can you help me update my project's documentation?\n"
119
- "assistant: Of course. I have drafted the new content: '# Project "
120
- "Apollo\\nThis is the new documentation for the project.' Do you "
121
- "approve?\n"
122
- "user: Yes, that looks great. Please proceed.\n\n"
123
- "*YOUR CORRECT OUTPUT:*\n\n"
124
- "## Part 1: Recent Conversation History\n"
125
- "user: Can you help me update my project's documentation?\n"
126
- "assistant: Of course. I have drafted the new content: '# Project "
127
- "Apollo\\nThis is the new documentation for the project.' Do you "
128
- "approve?\n"
129
- "user: Yes, that looks great. Please proceed.\n\n"
130
- "---\n"
131
- "## Part 2: Analysis of Current State\n\n"
132
- "**User's Main Goal:**\n"
133
- "Update the project documentation.\n\n"
134
- "**Next Action for Assistant:**\n"
135
- "Write new content to the README.md file.\n\n"
136
- "**Action Payload:**\n"
137
- "# Project Apollo\n"
138
- "This is the new documentation for the project.\n"
139
- "---"
98
+ "## Example\n\n"
99
+ "### Input to You:\n\n"
100
+ "--- previous_summary ---\n"
101
+ "## Narrative Summary\n"
102
+ "The user, working on the 'Apollo' project, requested to refactor "
103
+ "`auth.py`.\n"
104
+ "## Recent History\n"
105
+ "user: I need to refactor auth.py to use the new 'requests' library.\n"
106
+ "assistant: Understood. I am starting the refactoring now.\n"
107
+ "user: Has it been completed?\n"
108
+ "assistant: Yes. The refactoring of `auth.py` is complete and all tests "
109
+ "are passing.\n"
110
+ "--- recent_conversation_history ---\n"
111
+ "user: Excellent. Now, please update the documentation in README.md.\n"
112
+ "assistant: I have updated the README.md file with the new documentation.\n"
113
+ "user: Looks good. Can you commit the changes for me?\n"
114
+ "assistant: Of course. What should the commit message be?\n\n"
115
+ "### Your Correct Output:\n"
116
+ "## Narrative Summary\n"
117
+ "The user, working on the 'Apollo' project, requested to refactor "
118
+ "`auth.py`. This was completed successfully. The user then asked to "
119
+ "update the documentation in `README.md`, which was also completed.\n\n"
120
+ "## Recent History\n"
121
+ "user: Excellent. Now, please update the documentation in README.md.\n"
122
+ "assistant: I have updated the README.md file with the new documentation.\n"
123
+ "user: Looks good. Can you commit the changes for me?\n"
124
+ "assistant: Of course. What should the commit message be?\n"
140
125
  ).strip()
141
126
 
142
127
  DEFAULT_CONTEXT_ENRICHMENT_PROMPT = (
143
- "You are an information extraction robot. Your sole purpose is to "
144
- "extract long-term, stable facts from the conversation and update a "
145
- "JSON object.\n\n"
146
- "**DEFINITIONS:**\n"
147
- "- **Stable Facts:** Information that does not change often. Examples: "
148
- "user's name, project name, preferred programming language.\n"
149
- "- **Volatile Facts (IGNORE THESE):** Information about the current, "
150
- "immediate task. Examples: the user's last request, the next action to "
151
- "take.\n\n"
152
- "**CRITICAL RULES:**\n"
153
- "1. Your ENTIRE response MUST be a single, valid JSON object. The root "
154
- "object must contain a single key named 'response'.\n"
155
- "2. DO NOT add any text, explanations, or markdown formatting before or "
156
- "after the JSON object.\n"
157
- "3. Your job is to update the JSON. If a value already exists, only "
158
- "change it if the user provides new information.\n"
159
- '4. If you cannot find a value for a key, use an empty string `""`. DO '
160
- "NOT GUESS.\n\n"
161
- "---\n"
162
- "**JSON TEMPLATE TO FILL:**\n\n"
163
- "Copy this exact structure. Only fill in values for stable facts you "
164
- "find.\n\n"
165
- "{\n"
166
- ' "response": {\n'
167
- ' "user_profile": {\n'
168
- ' "user_name": "",\n'
169
- ' "language_preference": ""\n'
170
- " },\n"
171
- ' "project_details": {\n'
172
- ' "project_name": "",\n'
173
- ' "primary_file_path": ""\n'
174
- " }\n"
175
- " }\n"
176
- "}\n\n"
128
+ "You are a Memory Curator assistant. Your sole purpose is to process a "
129
+ "conversation and produce a concise, up-to-date Markdown block of "
130
+ "long-term context for the main assistant.\n\n"
131
+ "You will be given the previous 'Long-Term Context' and the 'Recent "
132
+ "Conversation History'. Your job is to return a NEW, UPDATED version of "
133
+ "the 'Long-Term Context'.\n\n"
134
+ "**Your Curation Process:**\n"
135
+ "1. **Review:** Analyze the existing 'Long-Term Context'.\n"
136
+ "2. **Update:** Read the 'Recent Conversation History' to identify "
137
+ "new facts, changed goals, or completed tasks.\n"
138
+ "3. **Re-write:** Create the new 'Long-Term Context' by applying these "
139
+ "changes.\n\n"
140
+ "**CRITICAL CURATION RULES:**\n"
141
+ "- **ADD** new, stable facts (e.g., user preferences, project names).\n"
142
+ "- **UPDATE** existing facts if the user provides new information.\n"
143
+ "- **REMOVE** goals, tasks, or files that are completed or no longer "
144
+ "relevant. This is essential for keeping the context fresh.\n\n"
177
145
  "---\n"
178
- "**EXAMPLE SCENARIO**\n\n"
179
- "*CONVERSATION CONTEXT:*\n"
180
- "User: Hi, I'm Sarah, and I'm working on the 'Apollo' project. Let's fix "
181
- "a bug in `src/auth.js`.\n"
182
- "Assistant: Okay Sarah, let's look at `src/auth.js` from the 'Apollo' "
183
- "project.\n\n"
184
- "*CORRECT JSON OUTPUT:*\n\n"
185
- "{\n"
186
- ' "response": {\n'
187
- ' "user_profile": {\n'
188
- ' "user_name": "Sarah",\n'
189
- ' "language_preference": "javascript"\n'
190
- " },\n"
191
- ' "project_details": {\n'
192
- ' "project_name": "Apollo",\n'
193
- ' "primary_file_path": "src/auth.js"\n'
194
- " }\n"
195
- " }\n"
196
- "}"
146
+ "**EXAMPLE SCENARIO & CORRECT OUTPUT**\n\n"
147
+ "**INPUT TO YOU:**\n\n"
148
+ "--- previous_long_term_context ---\n"
149
+ "## Long-Term Context\n"
150
+ "- **User Profile:** The user's name is Alex.\n"
151
+ "- **Current Goal:** Refactor the `auth.py` module to use a new library.\n"
152
+ "- **Key Files:** `auth.py`\n"
153
+ "--- recent_conversation_history ---\n"
154
+ "assistant: The refactoring of `auth.py` is complete and all tests are "
155
+ "passing.\n"
156
+ "user: Great! Now, can you please write the documentation for the new "
157
+ "`auth.py` module in the `README.md` file?\n\n"
158
+ "**YOUR CORRECT OUTPUT (as a single Markdown block):**\n\n"
159
+ "## Long-Term Context\n"
160
+ "- **User Profile:** The user's name is Alex.\n"
161
+ "- **Current Goal:** Write documentation for the `auth.py` module in "
162
+ "`README.md`.\n"
163
+ "- **Key Files:** `auth.py`, `README.md`\n"
197
164
  ).strip()
198
165
 
199
166
 
@@ -9,9 +9,6 @@ from zrb.input.any_input import AnyInput
9
9
  if TYPE_CHECKING:
10
10
  from zrb.context.any_context import AnyContext
11
11
  from zrb.session.any_session import AnySession
12
- else:
13
- AnyContext = Any
14
- AnySession = Any
15
12
 
16
13
 
17
14
  class AnyTask(ABC):
@@ -146,12 +143,12 @@ class AnyTask(ABC):
146
143
  pass
147
144
 
148
145
  @abstractmethod
149
- def get_ctx(self, session: AnySession) -> AnyContext:
146
+ def get_ctx(self, session: "AnySession") -> "AnyContext":
150
147
  pass
151
148
 
152
149
  @abstractmethod
153
150
  def run(
154
- self, session: AnySession | None = None, str_kwargs: dict[str, str] = {}
151
+ self, session: "AnySession | None" = None, str_kwargs: dict[str, str] = {}
155
152
  ) -> Any:
156
153
  """Runs the task synchronously.
157
154
 
@@ -166,7 +163,7 @@ class AnyTask(ABC):
166
163
 
167
164
  @abstractmethod
168
165
  async def async_run(
169
- self, session: AnySession | None = None, str_kwargs: dict[str, str] = {}
166
+ self, session: "AnySession | None" = None, str_kwargs: dict[str, str] = {}
170
167
  ) -> Any:
171
168
  """Runs the task asynchronously.
172
169
 
@@ -180,7 +177,7 @@ class AnyTask(ABC):
180
177
  pass
181
178
 
182
179
  @abstractmethod
183
- async def exec_root_tasks(self, session: AnySession):
180
+ async def exec_root_tasks(self, session: "AnySession"):
184
181
  """Execute the root tasks along with the downstreams until the current task
185
182
  is ready.
186
183
 
@@ -190,7 +187,7 @@ class AnyTask(ABC):
190
187
  pass
191
188
 
192
189
  @abstractmethod
193
- async def exec_chain(self, session: AnySession):
190
+ async def exec_chain(self, session: "AnySession"):
194
191
  """Execute the task along with the downstreams.
195
192
 
196
193
  Args:
@@ -199,7 +196,7 @@ class AnyTask(ABC):
199
196
  pass
200
197
 
201
198
  @abstractmethod
202
- async def exec(self, session: AnySession):
199
+ async def exec(self, session: "AnySession"):
203
200
  """Execute the task (without upstream or downstream).
204
201
 
205
202
  Args:
@@ -1,23 +1,7 @@
1
+ import json
1
2
  from collections.abc import Callable
2
3
  from typing import TYPE_CHECKING, Any
3
4
 
4
- if TYPE_CHECKING:
5
- from pydantic_ai import Agent, Tool
6
- from pydantic_ai.agent import AgentRun
7
- from pydantic_ai.mcp import MCPServer
8
- from pydantic_ai.models import Model
9
- from pydantic_ai.settings import ModelSettings
10
- else:
11
- Agent = Any
12
- Tool = Any
13
- AgentRun = Any
14
- MCPServer = Any
15
- ModelMessagesTypeAdapter = Any
16
- Model = Any
17
- ModelSettings = Any
18
-
19
- import json
20
-
21
5
  from zrb.context.any_context import AnyContext
22
6
  from zrb.context.any_shared_context import AnySharedContext
23
7
  from zrb.llm_rate_limitter import LLMRateLimiter, llm_rate_limitter
@@ -26,18 +10,27 @@ from zrb.task.llm.print_node import print_node
26
10
  from zrb.task.llm.tool_wrapper import wrap_tool
27
11
  from zrb.task.llm.typing import ListOfDict
28
12
 
29
- ToolOrCallable = Tool | Callable
13
+ if TYPE_CHECKING:
14
+ from pydantic_ai import Agent, Tool
15
+ from pydantic_ai.agent import AgentRun
16
+ from pydantic_ai.mcp import MCPServer
17
+ from pydantic_ai.models import Model
18
+ from pydantic_ai.settings import ModelSettings
19
+
20
+ ToolOrCallable = Tool | Callable
21
+ else:
22
+ ToolOrCallable = Any
30
23
 
31
24
 
32
25
  def create_agent_instance(
33
26
  ctx: AnyContext,
34
- model: str | Model | None = None,
27
+ model: "str | Model | None" = None,
35
28
  system_prompt: str = "",
36
- model_settings: ModelSettings | None = None,
29
+ model_settings: "ModelSettings | None" = None,
37
30
  tools: list[ToolOrCallable] = [],
38
- mcp_servers: list[MCPServer] = [],
31
+ mcp_servers: list["MCPServer"] = [],
39
32
  retries: int = 3,
40
- ) -> Agent:
33
+ ) -> "Agent":
41
34
  """Creates a new Agent instance with configured tools and servers."""
42
35
  from pydantic_ai import Agent, Tool
43
36
 
@@ -62,18 +55,18 @@ def create_agent_instance(
62
55
 
63
56
  def get_agent(
64
57
  ctx: AnyContext,
65
- agent_attr: Agent | Callable[[AnySharedContext], Agent] | None,
66
- model: str | Model | None,
58
+ agent_attr: "Agent | Callable[[AnySharedContext], Agent] | None",
59
+ model: "str | Model | None",
67
60
  system_prompt: str,
68
- model_settings: ModelSettings | None,
61
+ model_settings: "ModelSettings | None",
69
62
  tools_attr: (
70
63
  list[ToolOrCallable] | Callable[[AnySharedContext], list[ToolOrCallable]]
71
64
  ),
72
65
  additional_tools: list[ToolOrCallable],
73
- mcp_servers_attr: list[MCPServer] | Callable[[AnySharedContext], list[MCPServer]],
74
- additional_mcp_servers: list[MCPServer],
66
+ mcp_servers_attr: "list[MCPServer] | Callable[[AnySharedContext], list[MCPServer]]",
67
+ additional_mcp_servers: "list[MCPServer]",
75
68
  retries: int = 3,
76
- ) -> Agent:
69
+ ) -> "Agent":
77
70
  """Retrieves the configured Agent instance or creates one if necessary."""
78
71
  from pydantic_ai import Agent
79
72
 
@@ -111,12 +104,12 @@ def get_agent(
111
104
 
112
105
  async def run_agent_iteration(
113
106
  ctx: AnyContext,
114
- agent: Agent,
107
+ agent: "Agent",
115
108
  user_prompt: str,
116
109
  history_list: ListOfDict,
117
110
  rate_limitter: LLMRateLimiter | None = None,
118
111
  max_retry: int = 2,
119
- ) -> AgentRun:
112
+ ) -> "AgentRun":
120
113
  """
121
114
  Runs a single iteration of the agent execution loop.
122
115
 
@@ -153,11 +146,11 @@ async def run_agent_iteration(
153
146
 
154
147
  async def _run_single_agent_iteration(
155
148
  ctx: AnyContext,
156
- agent: Agent,
149
+ agent: "Agent",
157
150
  user_prompt: str,
158
151
  history_list: ListOfDict,
159
152
  rate_limitter: LLMRateLimiter | None = None,
160
- ) -> AgentRun:
153
+ ) -> "AgentRun":
161
154
  from openai import APIError
162
155
  from pydantic_ai.messages import ModelMessagesTypeAdapter
163
156
 
@@ -190,7 +183,7 @@ async def _run_single_agent_iteration(
190
183
 
191
184
 
192
185
  def estimate_request_payload(
193
- agent: Agent, user_prompt: str, history_list: ListOfDict
186
+ agent: "Agent", user_prompt: str, history_list: ListOfDict
194
187
  ) -> str:
195
188
  system_prompts = agent._system_prompts if hasattr(agent, "_system_prompts") else ()
196
189
  return json.dumps(
@@ -3,9 +3,6 @@ from typing import TYPE_CHECKING, Any, Callable
3
3
  if TYPE_CHECKING:
4
4
  from pydantic_ai.models import Model
5
5
  from pydantic_ai.settings import ModelSettings
6
- else:
7
- Model = Any
8
- ModelSettings = Any
9
6
 
10
7
  from zrb.attr.type import StrAttr, fstring
11
8
  from zrb.context.any_context import AnyContext
@@ -17,9 +14,9 @@ from zrb.util.attr import get_attr
17
14
  def get_model_settings(
18
15
  ctx: AnyContext,
19
16
  model_settings_attr: (
20
- ModelSettings | Callable[[AnySharedContext], ModelSettings] | None
17
+ "ModelSettings | Callable[[AnySharedContext], ModelSettings] | None"
21
18
  ) = None,
22
- ) -> ModelSettings | None:
19
+ ) -> "ModelSettings | None":
23
20
  """Gets the model settings, resolving callables if necessary."""
24
21
  model_settings = get_attr(ctx, model_settings_attr, None, auto_render=False)
25
22
  if model_settings is None:
@@ -59,13 +56,13 @@ def get_model_api_key(
59
56
 
60
57
  def get_model(
61
58
  ctx: AnyContext,
62
- model_attr: Callable[[AnySharedContext], Model | str | fstring] | Model | None,
59
+ model_attr: "Callable[[AnySharedContext], Model | str | fstring] | Model | None",
63
60
  render_model: bool,
64
61
  model_base_url_attr: StrAttr | None = None,
65
62
  render_model_base_url: bool = True,
66
63
  model_api_key_attr: StrAttr | None = None,
67
64
  render_model_api_key: bool = True,
68
- ) -> str | Model | None:
65
+ ) -> "str | Model | None":
69
66
  """Gets the model instance or name, handling defaults and configuration."""
70
67
  from pydantic_ai.models import Model
71
68