zrb 1.9.7__tar.gz → 1.9.9__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.9.7 → zrb-1.9.9}/PKG-INFO +1 -1
  2. {zrb-1.9.7 → zrb-1.9.9}/pyproject.toml +1 -1
  3. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/llm/tool/code.py +15 -39
  4. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/llm/tool/file.py +6 -22
  5. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/config/config.py +106 -2
  6. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/config/llm_config.py +74 -38
  7. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/llm_task.py +2 -133
  8. {zrb-1.9.7 → zrb-1.9.9}/README.md +0 -0
  9. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/__init__.py +0 -0
  10. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/__main__.py +0 -0
  11. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/attr/__init__.py +0 -0
  12. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/attr/type.py +0 -0
  13. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/__init__.py +0 -0
  14. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/base64.py +0 -0
  15. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/git.py +0 -0
  16. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/git_subtree.py +0 -0
  17. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/group.py +0 -0
  18. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/http.py +0 -0
  19. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/jwt.py +0 -0
  20. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/llm/chat_session.py +0 -0
  21. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/llm/history.py +0 -0
  22. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/llm/input.py +0 -0
  23. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/llm/llm_ask.py +0 -0
  24. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/llm/previous-session.js +0 -0
  25. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/llm/tool/__init__.py +0 -0
  26. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/llm/tool/api.py +0 -0
  27. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/llm/tool/cli.py +0 -0
  28. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/llm/tool/rag.py +0 -0
  29. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/llm/tool/sub_agent.py +0 -0
  30. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/llm/tool/web.py +0 -0
  31. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/md5.py +0 -0
  32. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/__init__.py +0 -0
  33. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_input.py +0 -0
  34. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_task.py +0 -0
  35. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.coveragerc +0 -0
  36. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.flake8 +0 -0
  37. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.gitignore +0 -0
  38. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/README.md +0 -0
  39. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/__init__.py +0 -0
  40. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_task.py +0 -0
  41. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_util.py +0 -0
  42. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/config.py +0 -0
  43. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_task.py +0 -0
  44. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_util.py +0 -0
  45. {zrb-1.9.7 → zrb-1.9.9}/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
  46. {zrb-1.9.7 → zrb-1.9.9}/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
  47. {zrb-1.9.7 → zrb-1.9.9}/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
  48. {zrb-1.9.7 → zrb-1.9.9}/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
  49. {zrb-1.9.7 → zrb-1.9.9}/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
  50. {zrb-1.9.7 → zrb-1.9.9}/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
  51. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/schema/my_entity.py +0 -0
  52. {zrb-1.9.7 → zrb-1.9.9}/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
  53. {zrb-1.9.7 → zrb-1.9.9}/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
  54. {zrb-1.9.7 → zrb-1.9.9}/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
  55. {zrb-1.9.7 → zrb-1.9.9}/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
  56. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/client_method.py +0 -0
  57. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/gateway_subroute.py +0 -0
  58. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/navigation_config_file.py +0 -0
  59. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/format_task.py +0 -0
  60. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/group.py +0 -0
  61. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/input.py +0 -0
  62. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_task.py +0 -0
  63. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_util.py +0 -0
  64. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/gateway/subroute/my_module.py +0 -0
  65. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/alembic.ini +0 -0
  66. {zrb-1.9.7 → zrb-1.9.9}/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
  67. {zrb-1.9.7 → zrb-1.9.9}/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
  68. {zrb-1.9.7 → zrb-1.9.9}/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
  69. {zrb-1.9.7 → zrb-1.9.9}/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
  70. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/README +0 -0
  71. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/env.py +0 -0
  72. {zrb-1.9.7 → zrb-1.9.9}/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
  73. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/versions/.gitkeep +0 -0
  74. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration_metadata.py +0 -0
  75. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/route.py +0 -0
  76. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/service/__init__.py +0 -0
  77. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/module_task_definition.py +0 -0
  78. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/navigation_config_file.py +0 -0
  79. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task.py +0 -0
  80. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task_util.py +0 -0
  81. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/util.py +0 -0
  82. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/venv_task.py +0 -0
  83. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/__init__.py +0 -0
  84. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/app_factory.py +0 -0
  85. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_db_repository.py +0 -0
  86. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_service.py +0 -0
  87. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/db_engine_factory.py +0 -0
  88. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/error.py +0 -0
  89. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/logger_factory.py +0 -0
  90. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/parser_factory.py +0 -0
  91. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/schema.py +0 -0
  92. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/app.py +0 -0
  93. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/parser.py +0 -0
  94. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/user_agent.py +0 -0
  95. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/view.py +0 -0
  96. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/config.py +0 -0
  97. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/main.py +0 -0
  98. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/__init__.py +0 -0
  99. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/alembic.ini +0 -0
  100. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_api_client.py +0 -0
  101. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client.py +0 -0
  102. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client_factory.py +0 -0
  103. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_direct_client.py +0 -0
  104. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/README +0 -0
  105. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/env.py +0 -0
  106. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/script.py.mako +0 -0
  107. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/3093c7336477_add_auth_tables.py +0 -0
  108. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/8ed025bcc845_create_permissions.py +0 -0
  109. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration_metadata.py +0 -0
  110. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/route.py +0 -0
  111. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/__init__.py +0 -0
  112. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/__init__.py +0 -0
  113. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service.py +0 -0
  114. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service_factory.py +0 -0
  115. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_db_repository.py +0 -0
  116. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository.py +0 -0
  117. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository_factory.py +0 -0
  118. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/__init__.py +0 -0
  119. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_db_repository.py +0 -0
  120. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository.py +0 -0
  121. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository_factory.py +0 -0
  122. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service.py +0 -0
  123. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service_factory.py +0 -0
  124. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/__init__.py +0 -0
  125. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_db_repository.py +0 -0
  126. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository.py +0 -0
  127. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository_factory.py +0 -0
  128. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service.py +0 -0
  129. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service_factory.py +0 -0
  130. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/alembic.ini +0 -0
  131. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/config/navigation.py +0 -0
  132. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/README +0 -0
  133. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/env.py +0 -0
  134. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/script.py.mako +0 -0
  135. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/versions/.gitkeep +0 -0
  136. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration_metadata.py +0 -0
  137. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/route.py +0 -0
  138. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/schema/navigation.py +0 -0
  139. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/subroute/auth.py +0 -0
  140. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/auth.py +0 -0
  141. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/view.py +0 -0
  142. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/permission.html +0 -0
  143. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/role.html +0 -0
  144. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/user.html +0 -0
  145. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/error.html +0 -0
  146. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/homepage.html +0 -0
  147. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/login.html +0 -0
  148. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/logout.html +0 -0
  149. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/common/util.js +0 -0
  150. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/style.css +0 -0
  151. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/util.js +0 -0
  152. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/pico-style.css +0 -0
  153. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/script.js +0 -0
  154. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/style.css +0 -0
  155. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-192x192.png +0 -0
  156. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-512x512.png +0 -0
  157. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/favicon-32x32.png +0 -0
  158. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.amber.min.css +0 -0
  159. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.blue.min.css +0 -0
  160. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.cyan.min.css +0 -0
  161. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.fuchsia.min.css +0 -0
  162. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.green.min.css +0 -0
  163. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.grey.min.css +0 -0
  164. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.indigo.min.css +0 -0
  165. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.jade.min.css +0 -0
  166. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.lime.min.css +0 -0
  167. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.min.css +0 -0
  168. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.orange.min.css +0 -0
  169. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.pink.min.css +0 -0
  170. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.pumpkin.min.css +0 -0
  171. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.purple.min.css +0 -0
  172. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.red.min.css +0 -0
  173. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.sand.min.css +0 -0
  174. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.slate.min.css +0 -0
  175. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.violet.min.css +0 -0
  176. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.yellow.min.css +0 -0
  177. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.zinc.min.css +0 -0
  178. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/template/default.html +0 -0
  179. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/requirements.txt +0 -0
  180. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/__init__.py +0 -0
  181. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/permission.py +0 -0
  182. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/role.py +0 -0
  183. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/user.py +0 -0
  184. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/template.env +0 -0
  185. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/_util/access_token.py +0 -0
  186. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_create_permission.py +0 -0
  187. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_delete_permission.py +0 -0
  188. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_read_permission.py +0 -0
  189. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_update_permission.py +0 -0
  190. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/test_user_session.py +0 -0
  191. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_health_and_readiness.py +0 -0
  192. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_homepage.py +0 -0
  193. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_not_found_error.py +0 -0
  194. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test.sh +0 -0
  195. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/add/fastapp/fastapp_util.py +0 -0
  196. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/create/__init__.py +0 -0
  197. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/create/project-template/README.md +0 -0
  198. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/create/project-template/zrb_init.py +0 -0
  199. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/project/create/project_task.py +0 -0
  200. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/python.py +0 -0
  201. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/random.py +0 -0
  202. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/setup/asdf/asdf.py +0 -0
  203. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/setup/asdf/asdf_helper.py +0 -0
  204. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/setup/common_input.py +0 -0
  205. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/setup/latex/ubuntu.py +0 -0
  206. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/setup/tmux/tmux.py +0 -0
  207. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/setup/tmux/tmux_config.sh +0 -0
  208. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/setup/tmux/tmux_helper.py +0 -0
  209. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/setup/ubuntu.py +0 -0
  210. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/setup/zsh/zsh.py +0 -0
  211. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/setup/zsh/zsh_config.sh +0 -0
  212. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/setup/zsh/zsh_helper.py +0 -0
  213. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/shell/__init__.py +0 -0
  214. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/shell/autocomplete/__init__.py +0 -0
  215. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/shell/autocomplete/bash.py +0 -0
  216. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/shell/autocomplete/subcmd.py +0 -0
  217. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/shell/autocomplete/zsh.py +0 -0
  218. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/todo.py +0 -0
  219. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/builtin/uuid.py +0 -0
  220. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/callback/__init__.py +0 -0
  221. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/callback/any_callback.py +0 -0
  222. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/callback/callback.py +0 -0
  223. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/cmd/__init__.py +0 -0
  224. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/cmd/cmd_result.py +0 -0
  225. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/cmd/cmd_val.py +0 -0
  226. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/config/llm_rate_limitter.py +0 -0
  227. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/config/web_auth_config.py +0 -0
  228. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/content_transformer/__init__.py +0 -0
  229. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/content_transformer/any_content_transformer.py +0 -0
  230. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/content_transformer/content_transformer.py +0 -0
  231. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/context/__init__.py +0 -0
  232. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/context/any_context.py +0 -0
  233. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/context/any_shared_context.py +0 -0
  234. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/context/context.py +0 -0
  235. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/context/shared_context.py +0 -0
  236. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/dot_dict/__init__.py +0 -0
  237. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/dot_dict/dot_dict.py +0 -0
  238. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/env/__init__.py +0 -0
  239. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/env/any_env.py +0 -0
  240. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/env/env.py +0 -0
  241. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/env/env_file.py +0 -0
  242. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/env/env_map.py +0 -0
  243. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/group/__init__.py +0 -0
  244. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/group/any_group.py +0 -0
  245. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/group/group.py +0 -0
  246. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/input/__init__.py +0 -0
  247. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/input/any_input.py +0 -0
  248. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/input/base_input.py +0 -0
  249. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/input/bool_input.py +0 -0
  250. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/input/float_input.py +0 -0
  251. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/input/int_input.py +0 -0
  252. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/input/option_input.py +0 -0
  253. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/input/password_input.py +0 -0
  254. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/input/str_input.py +0 -0
  255. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/input/text_input.py +0 -0
  256. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/__init__.py +0 -0
  257. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/cli.py +0 -0
  258. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/common_util.py +0 -0
  259. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_app.py +0 -0
  260. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/__init__.py +0 -0
  261. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/docs_route.py +0 -0
  262. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/error_page/serve_default_404.py +0 -0
  263. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/error_page/show_error_page.py +0 -0
  264. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/error_page/view.html +0 -0
  265. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/home_page/__init__.py +0 -0
  266. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/home_page/home_page_route.py +0 -0
  267. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/home_page/view.html +0 -0
  268. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/login_api_route.py +0 -0
  269. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/login_page/login_page_route.py +0 -0
  270. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/login_page/view.html +0 -0
  271. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/logout_api_route.py +0 -0
  272. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/logout_page/logout_page_route.py +0 -0
  273. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/logout_page/view.html +0 -0
  274. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/node_page/group/show_group_page.py +0 -0
  275. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/node_page/group/view.html +0 -0
  276. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/node_page/node_page_route.py +0 -0
  277. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/node_page/task/partial/input.html +0 -0
  278. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/node_page/task/show_task_page.py +0 -0
  279. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/node_page/task/view.html +0 -0
  280. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/refresh_token_api_route.py +0 -0
  281. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/global_template.html +0 -0
  282. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/refresh-token.template.js +0 -0
  283. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/common.css +0 -0
  284. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/common.js +0 -0
  285. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/favicon-32x32.png +0 -0
  286. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/login/event.js +0 -0
  287. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/logout/event.js +0 -0
  288. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/pico-css/pico.amber.min.css +0 -0
  289. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/pico-css/pico.blue.min.css +0 -0
  290. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/pico-css/pico.cyan.min.css +0 -0
  291. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/pico-css/pico.fuchsia.min.css +0 -0
  292. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/pico-css/pico.green.min.css +0 -0
  293. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/pico-css/pico.grey.min.css +0 -0
  294. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/pico-css/pico.indigo.min.css +0 -0
  295. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/pico-css/pico.jade.min.css +0 -0
  296. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/pico-css/pico.lime.min.css +0 -0
  297. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/pico-css/pico.min.css +0 -0
  298. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/pico-css/pico.orange.min.css +0 -0
  299. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/pico-css/pico.pink.min.css +0 -0
  300. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/pico-css/pico.pumpkin.min.css +0 -0
  301. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/pico-css/pico.purple.min.css +0 -0
  302. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/pico-css/pico.red.min.css +0 -0
  303. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/pico-css/pico.sand.min.css +0 -0
  304. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/pico-css/pico.slate.min.css +0 -0
  305. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/pico-css/pico.violet.min.css +0 -0
  306. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/pico-css/pico.yellow.min.css +0 -0
  307. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/pico-css/pico.zinc.min.css +0 -0
  308. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/session/common-util.js +0 -0
  309. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/session/current-session.js +0 -0
  310. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/session/event.js +0 -0
  311. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/resources/session/past-session.js +0 -0
  312. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/static/static_route.py +0 -0
  313. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/task_input_api_route.py +0 -0
  314. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_route/task_session_api_route.py +0 -0
  315. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_schema/session.py +0 -0
  316. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_schema/token.py +0 -0
  317. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_schema/user.py +0 -0
  318. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_util/cookie.py +0 -0
  319. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_util/html.py +0 -0
  320. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_util/token.py +0 -0
  321. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/runner/web_util/user.py +0 -0
  322. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/session/__init__.py +0 -0
  323. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/session/any_session.py +0 -0
  324. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/session/session.py +0 -0
  325. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/session_state_log/__init__.py +0 -0
  326. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/session_state_log/session_state_log.py +0 -0
  327. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/session_state_logger/__init__.py +0 -0
  328. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/session_state_logger/any_session_state_logger.py +0 -0
  329. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/session_state_logger/file_session_state_logger.py +0 -0
  330. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/session_state_logger/session_state_logger_factory.py +0 -0
  331. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/__init__.py +0 -0
  332. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/any_task.py +0 -0
  333. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/base/__init__.py +0 -0
  334. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/base/context.py +0 -0
  335. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/base/execution.py +0 -0
  336. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/base/lifecycle.py +0 -0
  337. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/base/monitoring.py +0 -0
  338. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/base/operators.py +0 -0
  339. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/base_task.py +0 -0
  340. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/base_trigger.py +0 -0
  341. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/cmd_task.py +0 -0
  342. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/http_check.py +0 -0
  343. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/llm/__init__.py +0 -0
  344. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/llm/agent.py +0 -0
  345. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/llm/config.py +0 -0
  346. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/llm/context.py +0 -0
  347. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/llm/context_enrichment.py +0 -0
  348. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/llm/error.py +0 -0
  349. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/llm/history.py +0 -0
  350. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/llm/history_summarization.py +0 -0
  351. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/llm/print_node.py +0 -0
  352. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/llm/prompt.py +0 -0
  353. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/llm/tool_wrapper.py +0 -0
  354. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/llm/typing.py +0 -0
  355. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/make_task.py +0 -0
  356. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/rsync_task.py +0 -0
  357. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/scaffolder.py +0 -0
  358. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/scheduler.py +0 -0
  359. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/task.py +0 -0
  360. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task/tcp_check.py +0 -0
  361. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task_status/__init__.py +0 -0
  362. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/task_status/task_status.py +0 -0
  363. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/__init__.py +0 -0
  364. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/attr.py +0 -0
  365. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/cli/__init__.py +0 -0
  366. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/cli/style.py +0 -0
  367. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/cli/subcommand.py +0 -0
  368. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/cmd/__init__.py +0 -0
  369. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/cmd/command.py +0 -0
  370. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/cmd/remote.py +0 -0
  371. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/codemod/__init__.py +0 -0
  372. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/codemod/modification_mode.py +0 -0
  373. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/codemod/modify_class.py +0 -0
  374. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/codemod/modify_class_parent.py +0 -0
  375. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/codemod/modify_class_property.py +0 -0
  376. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/codemod/modify_dict.py +0 -0
  377. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/codemod/modify_function.py +0 -0
  378. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/codemod/modify_function_call.py +0 -0
  379. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/codemod/modify_method.py +0 -0
  380. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/codemod/modify_module.py +0 -0
  381. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/cron.py +0 -0
  382. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/file.py +0 -0
  383. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/git.py +0 -0
  384. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/git_subtree.py +0 -0
  385. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/group.py +0 -0
  386. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/init_path.py +0 -0
  387. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/load.py +0 -0
  388. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/run.py +0 -0
  389. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/string/__init__.py +0 -0
  390. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/string/conversion.py +0 -0
  391. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/string/format.py +0 -0
  392. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/string/name.py +0 -0
  393. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/todo.py +0 -0
  394. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/util/todo_model.py +0 -0
  395. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/xcom/__init__.py +0 -0
  396. {zrb-1.9.7 → zrb-1.9.9}/src/zrb/xcom/xcom.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zrb
3
- Version: 1.9.7
3
+ Version: 1.9.9
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.9.7"
3
+ version = "1.9.9"
4
4
  description = "Your Automation Powerhouse"
5
5
  authors = ["Go Frendi Gunawan <gofrendiasgard@gmail.com>"]
6
6
  license = "AGPL-3.0-or-later"
@@ -3,40 +3,10 @@ import os
3
3
 
4
4
  from zrb.builtin.llm.tool.file import DEFAULT_EXCLUDED_PATTERNS, is_excluded
5
5
  from zrb.builtin.llm.tool.sub_agent import create_sub_agent_tool
6
+ from zrb.config.config import CFG
6
7
  from zrb.config.llm_rate_limitter import llm_rate_limitter
7
8
  from zrb.context.any_context import AnyContext
8
9
 
9
- _EXTRACT_INFO_FROM_REPO_SYSTEM_PROMPT = """
10
- You are an extraction info agent.
11
- Your goal is to help to extract relevant information to help the main assistant.
12
- You write your output is in markdown format containing path and relevant information.
13
- Extract only information that relevant to main assistant's goal.
14
-
15
- Extracted Information format (Use this as reference, extract relevant information only):
16
- # <file-name>
17
- ## imports
18
- - <imported-package>
19
- - ...
20
- ## variables
21
- - <variable-type> <variable-name>: <the-purpose-of-the-variable>
22
- - ...
23
- ## functions
24
- - <function-name>:
25
- - parameters: <parameters>
26
- - logic/description: <what-the-function-do-and-how-it-works>
27
- ...
28
- # <other-file-name>
29
- ...
30
- """.strip()
31
-
32
-
33
- _SUMMARIZE_INFO_SYSTEM_PROMPT = """
34
- You are an information summarization agent.
35
- Your goal is to summarize information to help the main assistant.
36
- The summarization result should contains all necessary details
37
- to help main assistant achieve the goal.
38
- """
39
-
40
10
  _DEFAULT_EXTENSIONS = [
41
11
  "py",
42
12
  "go",
@@ -82,8 +52,8 @@ async def analyze_repo(
82
52
  goal: str,
83
53
  extensions: list[str] = _DEFAULT_EXTENSIONS,
84
54
  exclude_patterns: list[str] = DEFAULT_EXCLUDED_PATTERNS,
85
- extraction_token_limit: int = 40000,
86
- summarization_token_limit: int = 40000,
55
+ extraction_token_threshold: int | None = None,
56
+ summarization_token_threshold: int | None = None,
87
57
  ) -> str:
88
58
  """
89
59
  Performs a deep, goal-oriented analysis of a code repository or directory.
@@ -102,14 +72,20 @@ async def analyze_repo(
102
72
  goal (str): A clear and specific description of what you want to achieve. A good goal is critical for getting a useful result. For example: "Understand the database schema by analyzing all the .sql files" or "Create a summary of all the API endpoints defined in the 'api' directory".
103
73
  extensions (list[str], optional): A list of file extensions to include in the analysis. Defaults to a comprehensive list of common code and configuration files.
104
74
  exclude_patterns (list[str], optional): A list of glob patterns for files and directories to exclude from the analysis. Defaults to common patterns like '.git', 'node_modules', and '.venv'.
105
- extraction_token_limit (int, optional): The maximum token limit for the extraction sub-agent.
106
- summarization_token_limit (int, optional): The maximum token limit for the summarization sub-agent.
75
+ extraction_token_threshold (int, optional): The maximum token threshold for the extraction sub-agent.
76
+ summarization_token_threshold (int, optional): The maximum token threshold for the summarization sub-agent.
107
77
 
108
78
  Returns:
109
79
  str: A detailed, markdown-formatted analysis and summary of the repository, tailored to the specified goal.
110
80
  Raises:
111
81
  Exception: If an error occurs during the analysis.
112
82
  """
83
+ if extraction_token_threshold is None:
84
+ extraction_token_threshold = CFG.LLM_REPO_ANALYSIS_EXTRACTION_TOKEN_THRESHOLD
85
+ if summarization_token_threshold is None:
86
+ summarization_token_threshold = (
87
+ CFG.LLM_REPO_ANALYSIS_SUMMARIZATION_TOKEN_THRESHOLD
88
+ )
113
89
  abs_path = os.path.abspath(os.path.expanduser(path))
114
90
  file_metadatas = _get_file_metadatas(abs_path, extensions, exclude_patterns)
115
91
  ctx.print("Extraction")
@@ -117,7 +93,7 @@ async def analyze_repo(
117
93
  ctx,
118
94
  file_metadatas=file_metadatas,
119
95
  goal=goal,
120
- token_limit=extraction_token_limit,
96
+ token_limit=extraction_token_threshold,
121
97
  )
122
98
  if len(extracted_infos) == 1:
123
99
  return extracted_infos[0]
@@ -129,7 +105,7 @@ async def analyze_repo(
129
105
  ctx,
130
106
  extracted_infos=summarized_infos,
131
107
  goal=goal,
132
- token_limit=summarization_token_limit,
108
+ token_limit=summarization_token_threshold,
133
109
  )
134
110
  return summarized_infos[0]
135
111
 
@@ -167,7 +143,7 @@ async def _extract_info(
167
143
  extract = create_sub_agent_tool(
168
144
  tool_name="extract",
169
145
  tool_description="extract",
170
- system_prompt=_EXTRACT_INFO_FROM_REPO_SYSTEM_PROMPT,
146
+ system_prompt=CFG.LLM_REPO_EXTRACTOR_SYSTEM_PROMPT,
171
147
  )
172
148
  extracted_infos = []
173
149
  content_buffer = []
@@ -218,7 +194,7 @@ async def _summarize_info(
218
194
  summarize = create_sub_agent_tool(
219
195
  tool_name="extract",
220
196
  tool_description="extract",
221
- system_prompt=_SUMMARIZE_INFO_SYSTEM_PROMPT,
197
+ system_prompt=CFG.LLM_REPO_SUMMARIZER_SYSTEM_PROMPT,
222
198
  )
223
199
  summarized_infos = []
224
200
  content_buffer = ""
@@ -5,30 +5,12 @@ import re
5
5
  from typing import Any, Dict, List, Optional
6
6
 
7
7
  from zrb.builtin.llm.tool.sub_agent import create_sub_agent_tool
8
+ from zrb.config.config import CFG
8
9
  from zrb.config.llm_rate_limitter import llm_rate_limitter
9
10
  from zrb.context.any_context import AnyContext
10
11
  from zrb.util.file import read_file, read_file_with_line_numbers, write_file
11
12
 
12
- _EXTRACT_INFO_FROM_FILE_SYSTEM_PROMPT = """
13
- You are an extraction info agent.
14
- Your goal is to help to extract relevant information to help the main assistant.
15
- You write your output is in markdown format containing path and relevant information.
16
- Extract only information that relevant to main assistant's goal.
17
-
18
- Extracted Information format (Use this as reference, extract relevant information only):
19
- # imports
20
- - <imported-package>
21
- - ...
22
- # variables
23
- - <variable-type> <variable-name>: <the-purpose-of-the-variable>
24
- - ...
25
- # functions
26
- - <function-name>:
27
- - parameters: <parameters>
28
- - logic/description: <what-the-function-do-and-how-it-works>
29
- ...
30
- ...
31
- """.strip()
13
+ _EXTRACT_INFO_FROM_FILE_SYSTEM_PROMPT = CFG.LLM_ANALYZE_FILE_EXTRACTOR_SYSTEM_PROMPT
32
14
 
33
15
 
34
16
  DEFAULT_EXCLUDED_PATTERNS = [
@@ -457,7 +439,7 @@ def replace_in_file(
457
439
 
458
440
 
459
441
  async def analyze_file(
460
- ctx: AnyContext, path: str, query: str, token_limit: int = 40000
442
+ ctx: AnyContext, path: str, query: str, token_limit: int | None = None
461
443
  ) -> str:
462
444
  """
463
445
  Performs a deep, goal-oriented analysis of a single file using a sub-agent.
@@ -480,6 +462,8 @@ async def analyze_file(
480
462
  Raises:
481
463
  FileNotFoundError: If the specified file does not exist.
482
464
  """
465
+ if token_limit is None:
466
+ token_limit = CFG.LLM_FILE_ANALYSIS_TOKEN_LIMIT
483
467
  abs_path = os.path.abspath(os.path.expanduser(path))
484
468
  if not os.path.exists(abs_path):
485
469
  raise FileNotFoundError(f"File not found: {path}")
@@ -487,7 +471,7 @@ async def analyze_file(
487
471
  _analyze_file = create_sub_agent_tool(
488
472
  tool_name="analyze_file",
489
473
  tool_description="analyze file with LLM capability",
490
- system_prompt=_EXTRACT_INFO_FROM_FILE_SYSTEM_PROMPT,
474
+ system_prompt=CFG.LLM_ANALYZE_FILE_EXTRACTOR_SYSTEM_PROMPT,
491
475
  tools=[read_from_file, search_files],
492
476
  )
493
477
  payload = json.dumps(
@@ -19,6 +19,75 @@ Your Automation Powerhouse
19
19
  🐤 Follow us at: https://twitter.com/zarubastalchmst
20
20
  """
21
21
 
22
+ _DEFAULT_LLM_ANALYZE_FILE_EXTRACTOR_SYSTEM_PROMPT = (
23
+ "You are an intelligent code and configuration analysis agent.\n"
24
+ "Your primary goal is to extract key information from the provided file(s) "
25
+ "that is directly relevant to the main assistant's objective.\n"
26
+ "\n"
27
+ "Analyze the file content and determine its type (e.g., Python script, "
28
+ "YAML configuration, Dockerfile, Markdown documentation).\n"
29
+ "Based on the file type, extract the most important information in a "
30
+ "structured markdown format.\n"
31
+ "\n"
32
+ "- For source code (e.g., .py, .js, .go): Extract key components like "
33
+ "classes, functions, important variables, and their purposes.\n"
34
+ "- For configuration files (e.g., .yaml, .toml, .json): Extract the main "
35
+ "configuration sections, keys, and their values.\n"
36
+ "- For infrastructure files (e.g., Dockerfile, .tf): Extract resources, "
37
+ "settings, and commands.\n"
38
+ "- For documentation (e.g., .md): Extract headings, summaries, code "
39
+ "blocks, and links.\n"
40
+ "\n"
41
+ "Focus on quality and relevance over quantity. The output should be a "
42
+ "concise yet comprehensive summary that directly helps the main "
43
+ "assistant achieve its goal."
44
+ ).strip()
45
+
46
+ _DEFAULT_LLM_REPO_EXTRACTOR_SYSTEM_PROMPT = (
47
+ "You are an intelligent code and configuration analysis agent.\n"
48
+ "Your primary goal is to extract key information from the provided file(s) "
49
+ "that is directly relevant to the main assistant's objective.\n"
50
+ "\n"
51
+ "Analyze the file content and determine its type (e.g., Python script, "
52
+ "YAML configuration, Dockerfile, Markdown documentation).\n"
53
+ "Based on the file type, extract the most important information in a "
54
+ "structured markdown format.\n"
55
+ "\n"
56
+ "- For source code (e.g., .py, .js, .go): Extract key components like "
57
+ "classes, functions, important variables, and their purposes.\n"
58
+ "- For configuration files (e.g., .yaml, .toml, .json): Extract the main "
59
+ "configuration sections, keys, and their values.\n"
60
+ "- For infrastructure files (e.g., Dockerfile, .tf): Extract resources, "
61
+ "settings, and commands.\n"
62
+ "- For documentation (e.g., .md): Extract headings, summaries, code "
63
+ "blocks, and links.\n"
64
+ "\n"
65
+ "Focus on quality and relevance over quantity. The output should be a "
66
+ "concise yet comprehensive summary that directly helps the main "
67
+ "assistant achieve its goal."
68
+ ).strip()
69
+
70
+ _DEFAULT_LLM_REPO_SUMMARIZER_SYSTEM_PROMPT = (
71
+ "You are an expert summarization and synthesis agent.\n"
72
+ "Your goal is to consolidate multiple pieces of extracted information into a "
73
+ "single, coherent summary that directly addresses the main assistant's "
74
+ "objective.\n"
75
+ "\n"
76
+ "Do not simply list the information you receive. Instead, perform the "
77
+ "following actions:\n"
78
+ "1. **Synthesize**: Combine related pieces of information from different "
79
+ "sources into a unified narrative.\n"
80
+ "2. **Consolidate**: Merge duplicate or overlapping information to create a "
81
+ "concise summary.\n"
82
+ "3. **Identify Patterns**: Look for high-level patterns, architectural "
83
+ "structures, or recurring themes in the data.\n"
84
+ "4. **Structure**: Organize the final output in a logical markdown format "
85
+ "that tells a clear story and directly answers the main assistant's goal.\n"
86
+ "\n"
87
+ "Focus on creating a holistic understanding of the subject matter based on "
88
+ "the provided context."
89
+ ).strip()
90
+
22
91
 
23
92
  class Config:
24
93
  @property
@@ -277,7 +346,7 @@ class Config:
277
346
 
278
347
  @property
279
348
  def LLM_HISTORY_SUMMARIZATION_TOKEN_THRESHOLD(self) -> int:
280
- return int(os.getenv("ZRB_LLM_HISTORY_SUMMARIZATION_TOKEN_THRESHOLD", "3000"))
349
+ return int(os.getenv("ZRB_LLM_HISTORY_SUMMARIZATION_TOKEN_THRESHOLD", "20000"))
281
350
 
282
351
  @property
283
352
  def LLM_ENRICH_CONTEXT(self) -> bool:
@@ -285,7 +354,42 @@ class Config:
285
354
 
286
355
  @property
287
356
  def LLM_CONTEXT_ENRICHMENT_TOKEN_THRESHOLD(self) -> int:
288
- return int(os.getenv("ZRB_LLM_CONTEXT_ENRICHMENT_TOKEN_THRESHOLD", "3000"))
357
+ return int(os.getenv("ZRB_LLM_CONTEXT_ENRICHMENT_TOKEN_THRESHOLD", "20000"))
358
+
359
+ @property
360
+ def LLM_REPO_ANALYSIS_EXTRACTION_TOKEN_THRESHOLD(self) -> int:
361
+ return int(os.getenv("ZRB_LLM_REPO_ANALYSIS_EXTRACTION_TOKEN_LIMIT", "35000"))
362
+
363
+ @property
364
+ def LLM_REPO_ANALYSIS_SUMMARIZATION_TOKEN_THRESHOLD(self) -> int:
365
+ return int(
366
+ os.getenv("ZRB_LLM_REPO_ANALYSIS_SUMMARIZATION_TOKEN_LIMIT", "35000")
367
+ )
368
+
369
+ @property
370
+ def LLM_FILE_ANALYSIS_TOKEN_LIMIT(self) -> int:
371
+ return int(os.getenv("ZRB_LLM_FILE_ANALYSIS_TOKEN_LIMIT", "35000"))
372
+
373
+ @property
374
+ def LLM_ANALYZE_FILE_EXTRACTOR_SYSTEM_PROMPT(self) -> str:
375
+ return os.getenv(
376
+ "ZRB_LLM_ANALYZE_FILE_EXTRACTOR_SYSTEM_PROMPT",
377
+ _DEFAULT_LLM_ANALYZE_FILE_EXTRACTOR_SYSTEM_PROMPT,
378
+ )
379
+
380
+ @property
381
+ def LLM_REPO_EXTRACTOR_SYSTEM_PROMPT(self) -> str:
382
+ return os.getenv(
383
+ "ZRB_LLM_REPO_EXTRACTOR_SYSTEM_PROMPT",
384
+ _DEFAULT_LLM_REPO_EXTRACTOR_SYSTEM_PROMPT,
385
+ )
386
+
387
+ @property
388
+ def LLM_REPO_SUMMARIZER_SYSTEM_PROMPT(self) -> str:
389
+ return os.getenv(
390
+ "ZRB_LLM_REPO_SUMMARIZER_SYSTEM_PROMPT",
391
+ _DEFAULT_LLM_REPO_SUMMARIZER_SYSTEM_PROMPT,
392
+ )
289
393
 
290
394
  @property
291
395
  def LLM_HISTORY_DIR(self) -> str:
@@ -8,57 +8,79 @@ if TYPE_CHECKING:
8
8
  from pydantic_ai.settings import ModelSettings
9
9
 
10
10
 
11
- DEFAULT_PERSONA = (
11
+ _DEFAULT_PERSONA = (
12
12
  "You are a helpful and efficient AI agent specializing in CLI " "interaction."
13
13
  )
14
14
 
15
- DEFAULT_INTERACTIVE_SYSTEM_PROMPT = (
15
+ _DEFAULT_INTERACTIVE_SYSTEM_PROMPT = (
16
16
  "This is an interactive CLI session. Your standard response format is\n"
17
17
  "GitHub-flavored Markdown. You MUST follow this thinking process:\n\n"
18
- "1. **Analyze Request:** Use the `Scratchpad` and `Narrative Summary` to\n"
19
- " fully understand the user's request in the context of the\n"
20
- " conversation.\n\n"
21
- "2. **Plan & Verify Pre-conditions:** Create a step-by-step plan. Before\n"
18
+ "1. **Analyze Request, Scope & Identify Gaps:** Use the `Scratchpad`\n"
19
+ " and `Narrative Summary` to fully understand the user's request.\n"
20
+ " - **Determine Scope:** Critically assess if the request is a\n"
21
+ " one-time command or a standing order that should affect future\n"
22
+ " interactions (e.g., 'From now on...'). Resolve contextual\n"
23
+ " references like 'it' or 'that' to the immediate topic.\n"
24
+ " - **Identify Gaps:** Assess if you have enough information to\n"
25
+ " proceed. If not, identify the missing information as an\n"
26
+ " 'information gap'.\n\n"
27
+ "2. **Fill Information Gaps:** Before planning, you MUST proactively use\n"
28
+ " your tools to fill any identified information gaps. Be persistent.\n"
29
+ " If one tool or approach fails, try another until you have the\n"
30
+ " necessary information or determine it's impossible to obtain.\n\n"
31
+ "3. **Plan & Verify Pre-conditions:** Create a step-by-step plan. Before\n"
22
32
  " executing, use read-only tools to check the current state. For\n"
23
33
  " example, if the plan is to create a file, check if it already\n"
24
34
  " exists. If pre-conditions are not as expected, inform the user.\n\n"
25
- "3. **Assess Consent & Execute:**\n"
35
+ "4. **Assess Consent & Execute:**\n"
36
+ " - **You have standing consent to use any read-only tools** for\n"
37
+ " information gathering, planning, and verification. You do not\n"
38
+ " need to ask for permission for these actions.\n"
26
39
  " - If the user's last instruction was an explicit command (e.g.,\n"
27
40
  ' "create file X", "delete Y"), you have consent. Proceed with the\n'
28
41
  " action.\n"
29
42
  ' - If the request was general (e.g., "fix the bug") and your plan\n'
30
43
  " involves a potentially altering action, you MUST explain the\n"
31
44
  " action and ask for user approval before proceeding.\n\n"
32
- "4. **Verify Outcome:** After executing the action, use read-only tools to\n"
45
+ "5. **Verify Outcome:** After executing the action, use read-only tools to\n"
33
46
  " confirm it was successful. Report the outcome to the user.\n\n"
34
- "For software engineering tasks, you MUST follow the guidelines in the\n"
35
- "`DEFAULT_SPECIAL_INSTRUCTION_PROMPT`."
36
47
  ).strip()
37
48
 
38
- DEFAULT_SYSTEM_PROMPT = (
49
+ _DEFAULT_SYSTEM_PROMPT = (
39
50
  "This is a one-shot CLI session. Your final answer MUST be in\n"
40
51
  "GitHub-flavored Markdown. You MUST follow this thinking process:\n\n"
41
- "1. **Analyze Request:** Use the `Scratchpad` and `Narrative Summary` to\n"
42
- " fully understand the user's request in the context of the\n"
43
- " conversation.\n\n"
44
- "2. **Plan & Verify Pre-conditions:** Create a step-by-step plan. Before\n"
52
+ "1. **Analyze Request, Scope & Identify Gaps:** Use the `Scratchpad`\n"
53
+ " and `Narrative Summary` to fully understand the user's request.\n"
54
+ " - **Determine Scope:** Critically assess if the request is a\n"
55
+ " one-time command or a standing order that should affect future\n"
56
+ " interactions (e.g., 'From now on...'). Resolve contextual\n"
57
+ " references like 'it' or 'that' to the immediate topic.\n"
58
+ " - **Identify Gaps:** Assess if you have enough information to\n"
59
+ " proceed. If not, identify the missing information as an\n"
60
+ " 'information gap'.\n\n"
61
+ "2. **Fill Information Gaps:** Before planning, you MUST proactively use\n"
62
+ " your tools to fill any identified information gaps. Be persistent.\n"
63
+ " If one tool or approach fails, try another until you have the\n"
64
+ " necessary information or determine it's impossible to obtain.\n\n"
65
+ "3. **Plan & Verify Pre-conditions:** Create a step-by-step plan. Before\n"
45
66
  " executing, use read-only tools to check the current state. For\n"
46
67
  " example, if the plan is to create a file, check if it already\n"
47
68
  " exists. If pre-conditions are not as expected, state that and stop.\n\n"
48
- "3. **Assess Consent & Execute:**\n"
69
+ "4. **Assess Consent & Execute:**\n"
70
+ " - **You have standing consent to use any read-only tools** for\n"
71
+ " information gathering, planning, and verification. You do not\n"
72
+ " need to ask for permission for these actions.\n"
49
73
  " - If the user's last instruction was an explicit command (e.g.,\n"
50
74
  ' "create file X", "delete Y"), you have consent. Proceed with the\n'
51
75
  " action.\n"
52
76
  ' - If the request was general (e.g., "fix the bug") and your plan\n'
53
77
  " involves a potentially altering action, you MUST explain the\n"
54
78
  " action and ask for user approval before proceeding.\n\n"
55
- "4. **Verify Outcome:** After executing the action, use read-only tools to\n"
79
+ "5. **Verify Outcome:** After executing the action, use read-only tools to\n"
56
80
  " confirm it was successful. Report the outcome to the user.\n\n"
57
- "For software engineering tasks, you MUST follow the guidelines in the\n"
58
- "`DEFAULT_SPECIAL_INSTRUCTION_PROMPT`."
59
81
  ).strip()
60
82
 
61
- DEFAULT_SPECIAL_INSTRUCTION_PROMPT = (
83
+ _DEFAULT_SPECIAL_INSTRUCTION_PROMPT = (
62
84
  "## Software Engineering Tasks\n"
63
85
  "When requested to perform tasks like fixing bugs, adding features,\n"
64
86
  "refactoring, or explaining code, follow this sequence:\n"
@@ -77,6 +99,10 @@ DEFAULT_SPECIAL_INSTRUCTION_PROMPT = (
77
99
  "5. **Verify (Standards):** After making code changes, execute the\n"
78
100
  "project-specific build, linting and type-checking commands. This\n"
79
101
  "ensures code quality and adherence to standards.\n\n"
102
+ "## Shell Command Guidelines\n"
103
+ "NEVER use backticks (`` ` ``) for command substitution; use `$(...)` "
104
+ "instead. Always enclose literal strings and paths in single quotes (`'`) "
105
+ "to prevent unintended interpretation of special characters.\n\n"
80
106
  "## New Applications\n"
81
107
  "When asked to create a new application, follow this workflow:\n"
82
108
  "1. **Understand Requirements:** Analyze the user's request to identify\n"
@@ -111,7 +137,7 @@ DEFAULT_SPECIAL_INSTRUCTION_PROMPT = (
111
137
  ).strip()
112
138
 
113
139
 
114
- DEFAULT_SUMMARIZATION_PROMPT = (
140
+ _DEFAULT_SUMMARIZATION_PROMPT = (
115
141
  "You are a Conversation Historian. Your task is to distill the\n"
116
142
  "conversation history into a dense, structured snapshot for the main\n"
117
143
  "assistant. This snapshot is CRITICAL, as it will become the agent's\n"
@@ -143,7 +169,8 @@ DEFAULT_SUMMARIZATION_PROMPT = (
143
169
  "2. `## Scratchpad` (The new, non-truncated recent history)"
144
170
  ).strip()
145
171
 
146
- DEFAULT_CONTEXT_ENRICHMENT_PROMPT = (
172
+
173
+ _DEFAULT_CONTEXT_ENRICHMENT_PROMPT = (
147
174
  "You are a Memory Curator. Your sole purpose is to process a\n"
148
175
  "conversation and produce a concise, up-to-date Markdown block of\n"
149
176
  "long-term context for the main assistant.\n\n"
@@ -157,22 +184,31 @@ DEFAULT_CONTEXT_ENRICHMENT_PROMPT = (
157
184
  "3. **Re-write:** Create the new 'Long-Term Context' by applying these\n"
158
185
  " changes.\n\n"
159
186
  "**CRITICAL CURATION RULES:**\n"
187
+ "- **Do Not Assume Permanence:** A one-time request (e.g., 'Write it in\n"
188
+ " JSON') is NOT a permanent preference. Only save preferences that are\n"
189
+ " explicitly stated as long-term (e.g., 'From now on, always...').\n"
160
190
  "- **The context MUST NOT grow indefinitely.** Your primary goal is to\n"
161
191
  " keep it concise and relevant to the *current* state of the\n"
162
192
  " conversation.\n"
163
- "- **ADD** new, stable facts (e.g., long-term user preferences).\n"
164
- "- **UPDATE** existing facts if the user provides new information.\n"
165
- "- **REMOVE** goals, tasks, or files that are completed or no longer\n"
166
- " relevant. Be aggressive in pruning irrelevant information.\n"
193
+ "- **ADD** new, explicitly stable facts (e.g., long-term user\n"
194
+ " preferences).\n"
195
+ "- **UPDATE** existing facts if the user provides new information or if\n"
196
+ " new information overrides the previous one.\n"
197
+ "- **Your primary goal is to create a concise, relevant context.** "
198
+ "Aggressively prune outdated or irrelevant information, but retain any "
199
+ "detail, fact, or nuance that is critical for understanding the user's "
200
+ "current and future goals.\n"
167
201
  "- **CONDENSE** older entries that are still relevant but not the\n"
168
202
  " immediate focus. For example, a completed high-level goal might be\n"
169
- " condensed into a single 'Past Accomplishments' line item.\n\n"
203
+ " condensed into a single 'Past Accomplishments' line item.\n"
204
+ "\n"
170
205
  "**A Note on Dynamic Information:**\n"
171
- "Be mindful that some information is temporary. Details like the current\n"
172
- "working directory, project context, or file contents can change\n"
173
- "frequently. The main assistant MUST NOT assume this information is\n"
174
- "current and should always use its tools to verify the latest state when\n"
175
- "needed."
206
+ "Be mindful that some information is temporary and highly dynamic (e.g.,\n"
207
+ "current weather, location, current working directory, project context,\n"
208
+ "or file contents). You MUST add a note to this kind of information,\n"
209
+ "for example: `(short-term, must be re-verified)`.\n"
210
+ "The main assistant MUST NOT assume this information is current and\n"
211
+ "should always use its tools to verify the latest state when needed."
176
212
  ).strip()
177
213
 
178
214
 
@@ -265,7 +301,7 @@ class LLMConfig:
265
301
  return self._default_system_prompt
266
302
  if CFG.LLM_SYSTEM_PROMPT is not None:
267
303
  return CFG.LLM_SYSTEM_PROMPT
268
- return DEFAULT_SYSTEM_PROMPT
304
+ return _DEFAULT_SYSTEM_PROMPT
269
305
 
270
306
  @property
271
307
  def default_interactive_system_prompt(self) -> str:
@@ -273,7 +309,7 @@ class LLMConfig:
273
309
  return self._default_interactive_system_prompt
274
310
  if CFG.LLM_INTERACTIVE_SYSTEM_PROMPT is not None:
275
311
  return CFG.LLM_INTERACTIVE_SYSTEM_PROMPT
276
- return DEFAULT_INTERACTIVE_SYSTEM_PROMPT
312
+ return _DEFAULT_INTERACTIVE_SYSTEM_PROMPT
277
313
 
278
314
  @property
279
315
  def default_persona(self) -> str:
@@ -281,7 +317,7 @@ class LLMConfig:
281
317
  return self._default_persona
282
318
  if CFG.LLM_PERSONA is not None:
283
319
  return CFG.LLM_PERSONA
284
- return DEFAULT_PERSONA
320
+ return _DEFAULT_PERSONA
285
321
 
286
322
  @property
287
323
  def default_special_instruction_prompt(self) -> str:
@@ -289,7 +325,7 @@ class LLMConfig:
289
325
  return self._default_special_instruction_prompt
290
326
  if CFG.LLM_SPECIAL_INSTRUCTION_PROMPT is not None:
291
327
  return CFG.LLM_SPECIAL_INSTRUCTION_PROMPT
292
- return DEFAULT_SPECIAL_INSTRUCTION_PROMPT
328
+ return _DEFAULT_SPECIAL_INSTRUCTION_PROMPT
293
329
 
294
330
  @property
295
331
  def default_summarization_prompt(self) -> str:
@@ -297,7 +333,7 @@ class LLMConfig:
297
333
  return self._default_summarization_prompt
298
334
  if CFG.LLM_SUMMARIZATION_PROMPT is not None:
299
335
  return CFG.LLM_SUMMARIZATION_PROMPT
300
- return DEFAULT_SUMMARIZATION_PROMPT
336
+ return _DEFAULT_SUMMARIZATION_PROMPT
301
337
 
302
338
  @property
303
339
  def default_context_enrichment_prompt(self) -> str:
@@ -305,7 +341,7 @@ class LLMConfig:
305
341
  return self._default_context_enrichment_prompt
306
342
  if CFG.LLM_CONTEXT_ENRICHMENT_PROMPT is not None:
307
343
  return CFG.LLM_CONTEXT_ENRICHMENT_PROMPT
308
- return DEFAULT_CONTEXT_ENRICHMENT_PROMPT
344
+ return _DEFAULT_CONTEXT_ENRICHMENT_PROMPT
309
345
 
310
346
  @property
311
347
  def default_model(self) -> "Model | str | None":