zrb 1.17.4__tar.gz → 1.18.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 (426) hide show
  1. {zrb-1.17.4 → zrb-1.18.0}/PKG-INFO +1 -1
  2. {zrb-1.17.4 → zrb-1.18.0}/pyproject.toml +1 -1
  3. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/llm/chat_session.py +17 -17
  4. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/llm/llm_ask.py +8 -6
  5. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/config/config.py +22 -8
  6. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/config/default_prompt/interactive_system_prompt.md +1 -1
  7. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/config/default_prompt/system_prompt.md +1 -1
  8. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/config/llm_config.py +14 -14
  9. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/config/llm_context/config.py +27 -4
  10. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/llm/agent.py +1 -1
  11. zrb-1.18.0/src/zrb/task/llm/default_workflow/coding/git.md +142 -0
  12. zrb-1.18.0/src/zrb/task/llm/default_workflow/coding/golang.md +23 -0
  13. zrb-1.18.0/src/zrb/task/llm/default_workflow/coding/javascript.md +24 -0
  14. zrb-1.18.0/src/zrb/task/llm/default_workflow/coding/python.md +23 -0
  15. zrb-1.18.0/src/zrb/task/llm/default_workflow/coding/rust.md +23 -0
  16. zrb-1.18.0/src/zrb/task/llm/default_workflow/coding/shell.md +245 -0
  17. zrb-1.18.0/src/zrb/task/llm/default_workflow/coding/workflow.md +67 -0
  18. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/llm/prompt.py +82 -76
  19. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/llm/tool_wrapper.py +20 -14
  20. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/llm_task.py +8 -9
  21. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/rsync_task.py +5 -4
  22. zrb-1.17.4/src/zrb/task/llm/default_workflow/coding.md +0 -64
  23. {zrb-1.17.4 → zrb-1.18.0}/README.md +0 -0
  24. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/__init__.py +0 -0
  25. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/__main__.py +0 -0
  26. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/attr/__init__.py +0 -0
  27. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/attr/type.py +0 -0
  28. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/__init__.py +0 -0
  29. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/base64.py +0 -0
  30. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/git.py +0 -0
  31. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/git_subtree.py +0 -0
  32. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/group.py +0 -0
  33. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/http.py +0 -0
  34. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/jwt.py +0 -0
  35. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/llm/chat_trigger.py +0 -0
  36. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/llm/history.py +0 -0
  37. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/llm/input.py +0 -0
  38. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/llm/previous-session.js +0 -0
  39. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/llm/tool/__init__.py +0 -0
  40. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/llm/tool/api.py +0 -0
  41. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/llm/tool/cli.py +0 -0
  42. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/llm/tool/code.py +0 -0
  43. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/llm/tool/file.py +0 -0
  44. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/llm/tool/note.py +0 -0
  45. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/llm/tool/rag.py +0 -0
  46. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/llm/tool/sub_agent.py +0 -0
  47. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/llm/tool/web.py +0 -0
  48. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/md5.py +0 -0
  49. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/__init__.py +0 -0
  50. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_input.py +0 -0
  51. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_task.py +0 -0
  52. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.coveragerc +0 -0
  53. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.flake8 +0 -0
  54. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.gitignore +0 -0
  55. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/README.md +0 -0
  56. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/__init__.py +0 -0
  57. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_task.py +0 -0
  58. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_util.py +0 -0
  59. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/config.py +0 -0
  60. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_task.py +0 -0
  61. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_util.py +0 -0
  62. {zrb-1.17.4 → zrb-1.18.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
  63. {zrb-1.17.4 → zrb-1.18.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
  64. {zrb-1.17.4 → zrb-1.18.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
  65. {zrb-1.17.4 → zrb-1.18.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
  66. {zrb-1.17.4 → zrb-1.18.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
  67. {zrb-1.17.4 → zrb-1.18.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
  68. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/schema/my_entity.py +0 -0
  69. {zrb-1.17.4 → zrb-1.18.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
  70. {zrb-1.17.4 → zrb-1.18.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
  71. {zrb-1.17.4 → zrb-1.18.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
  72. {zrb-1.17.4 → zrb-1.18.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
  73. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/client_method.py +0 -0
  74. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/gateway_subroute.py +0 -0
  75. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/navigation_config_file.py +0 -0
  76. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/format_task.py +0 -0
  77. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/group.py +0 -0
  78. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/input.py +0 -0
  79. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_task.py +0 -0
  80. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_util.py +0 -0
  81. {zrb-1.17.4 → zrb-1.18.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
  82. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/alembic.ini +0 -0
  83. {zrb-1.17.4 → zrb-1.18.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
  84. {zrb-1.17.4 → zrb-1.18.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
  85. {zrb-1.17.4 → zrb-1.18.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
  86. {zrb-1.17.4 → zrb-1.18.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
  87. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/README +0 -0
  88. {zrb-1.17.4 → zrb-1.18.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
  89. {zrb-1.17.4 → zrb-1.18.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
  90. {zrb-1.17.4 → zrb-1.18.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
  91. {zrb-1.17.4 → zrb-1.18.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
  92. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/route.py +0 -0
  93. {zrb-1.17.4 → zrb-1.18.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
  94. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/module_task_definition.py +0 -0
  95. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/navigation_config_file.py +0 -0
  96. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task.py +0 -0
  97. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task_util.py +0 -0
  98. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/util.py +0 -0
  99. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/venv_task.py +0 -0
  100. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/__init__.py +0 -0
  101. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/app_factory.py +0 -0
  102. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_db_repository.py +0 -0
  103. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_service.py +0 -0
  104. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/db_engine_factory.py +0 -0
  105. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/error.py +0 -0
  106. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/logger_factory.py +0 -0
  107. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/parser_factory.py +0 -0
  108. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/schema.py +0 -0
  109. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/app.py +0 -0
  110. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/parser.py +0 -0
  111. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/user_agent.py +0 -0
  112. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/view.py +0 -0
  113. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/config.py +0 -0
  114. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/main.py +0 -0
  115. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/__init__.py +0 -0
  116. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/alembic.ini +0 -0
  117. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_api_client.py +0 -0
  118. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client.py +0 -0
  119. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client_factory.py +0 -0
  120. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_direct_client.py +0 -0
  121. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/README +0 -0
  122. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/env.py +0 -0
  123. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/script.py.mako +0 -0
  124. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/3093c7336477_add_auth_tables.py +0 -0
  125. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/8ed025bcc845_create_permissions.py +0 -0
  126. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration_metadata.py +0 -0
  127. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/route.py +0 -0
  128. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/__init__.py +0 -0
  129. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/__init__.py +0 -0
  130. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service.py +0 -0
  131. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service_factory.py +0 -0
  132. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_db_repository.py +0 -0
  133. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository.py +0 -0
  134. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository_factory.py +0 -0
  135. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/__init__.py +0 -0
  136. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_db_repository.py +0 -0
  137. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository.py +0 -0
  138. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository_factory.py +0 -0
  139. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service.py +0 -0
  140. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service_factory.py +0 -0
  141. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/__init__.py +0 -0
  142. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_db_repository.py +0 -0
  143. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository.py +0 -0
  144. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository_factory.py +0 -0
  145. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service.py +0 -0
  146. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service_factory.py +0 -0
  147. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/alembic.ini +0 -0
  148. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/config/navigation.py +0 -0
  149. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/README +0 -0
  150. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/env.py +0 -0
  151. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/script.py.mako +0 -0
  152. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/versions/.gitkeep +0 -0
  153. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration_metadata.py +0 -0
  154. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/route.py +0 -0
  155. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/schema/navigation.py +0 -0
  156. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/subroute/auth.py +0 -0
  157. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/auth.py +0 -0
  158. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/view.py +0 -0
  159. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/permission.html +0 -0
  160. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/role.html +0 -0
  161. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/user.html +0 -0
  162. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/error.html +0 -0
  163. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/homepage.html +0 -0
  164. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/login.html +0 -0
  165. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/logout.html +0 -0
  166. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/common/util.js +0 -0
  167. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/style.css +0 -0
  168. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/util.js +0 -0
  169. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/pico-style.css +0 -0
  170. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/script.js +0 -0
  171. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/style.css +0 -0
  172. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-192x192.png +0 -0
  173. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-512x512.png +0 -0
  174. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/favicon-32x32.png +0 -0
  175. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.amber.min.css +0 -0
  176. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.blue.min.css +0 -0
  177. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.cyan.min.css +0 -0
  178. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.fuchsia.min.css +0 -0
  179. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.green.min.css +0 -0
  180. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.grey.min.css +0 -0
  181. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.indigo.min.css +0 -0
  182. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.jade.min.css +0 -0
  183. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.lime.min.css +0 -0
  184. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.min.css +0 -0
  185. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.orange.min.css +0 -0
  186. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.pink.min.css +0 -0
  187. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.pumpkin.min.css +0 -0
  188. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.purple.min.css +0 -0
  189. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.red.min.css +0 -0
  190. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.sand.min.css +0 -0
  191. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.slate.min.css +0 -0
  192. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.violet.min.css +0 -0
  193. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.yellow.min.css +0 -0
  194. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.zinc.min.css +0 -0
  195. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/template/default.html +0 -0
  196. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/requirements.txt +0 -0
  197. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/__init__.py +0 -0
  198. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/permission.py +0 -0
  199. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/role.py +0 -0
  200. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/user.py +0 -0
  201. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/template.env +0 -0
  202. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/_util/access_token.py +0 -0
  203. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_create_permission.py +0 -0
  204. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_delete_permission.py +0 -0
  205. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_read_permission.py +0 -0
  206. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_update_permission.py +0 -0
  207. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/test_user_session.py +0 -0
  208. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_health_and_readiness.py +0 -0
  209. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_homepage.py +0 -0
  210. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_not_found_error.py +0 -0
  211. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test.sh +0 -0
  212. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/add/fastapp/fastapp_util.py +0 -0
  213. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/create/__init__.py +0 -0
  214. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/create/project-template/README.md +0 -0
  215. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/create/project-template/zrb_init.py +0 -0
  216. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/project/create/project_task.py +0 -0
  217. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/python.py +0 -0
  218. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/random.py +0 -0
  219. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/searxng/config/settings.yml +0 -0
  220. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/searxng/start.py +0 -0
  221. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/setup/asdf/asdf.py +0 -0
  222. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/setup/asdf/asdf_helper.py +0 -0
  223. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/setup/common_input.py +0 -0
  224. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/setup/latex/ubuntu.py +0 -0
  225. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/setup/tmux/tmux.py +0 -0
  226. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/setup/tmux/tmux_config.sh +0 -0
  227. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/setup/tmux/tmux_helper.py +0 -0
  228. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/setup/ubuntu.py +0 -0
  229. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/setup/zsh/zsh.py +0 -0
  230. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/setup/zsh/zsh_config.sh +0 -0
  231. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/setup/zsh/zsh_helper.py +0 -0
  232. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/shell/__init__.py +0 -0
  233. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/shell/autocomplete/__init__.py +0 -0
  234. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/shell/autocomplete/bash.py +0 -0
  235. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/shell/autocomplete/subcmd.py +0 -0
  236. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/shell/autocomplete/zsh.py +0 -0
  237. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/todo.py +0 -0
  238. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/builtin/uuid.py +0 -0
  239. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/callback/__init__.py +0 -0
  240. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/callback/any_callback.py +0 -0
  241. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/callback/callback.py +0 -0
  242. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/cmd/__init__.py +0 -0
  243. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/cmd/cmd_result.py +0 -0
  244. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/cmd/cmd_val.py +0 -0
  245. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/config/default_prompt/file_extractor_system_prompt.md +0 -0
  246. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/config/default_prompt/persona.md +0 -0
  247. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/config/default_prompt/repo_extractor_system_prompt.md +0 -0
  248. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/config/default_prompt/repo_summarizer_system_prompt.md +0 -0
  249. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/config/default_prompt/summarization_prompt.md +0 -0
  250. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/config/llm_context/config_parser.py +0 -0
  251. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/config/llm_rate_limitter.py +0 -0
  252. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/config/web_auth_config.py +0 -0
  253. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/content_transformer/__init__.py +0 -0
  254. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/content_transformer/any_content_transformer.py +0 -0
  255. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/content_transformer/content_transformer.py +0 -0
  256. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/context/__init__.py +0 -0
  257. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/context/any_context.py +0 -0
  258. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/context/any_shared_context.py +0 -0
  259. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/context/context.py +0 -0
  260. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/context/shared_context.py +0 -0
  261. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/dot_dict/__init__.py +0 -0
  262. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/dot_dict/dot_dict.py +0 -0
  263. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/env/__init__.py +0 -0
  264. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/env/any_env.py +0 -0
  265. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/env/env.py +0 -0
  266. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/env/env_file.py +0 -0
  267. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/env/env_map.py +0 -0
  268. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/group/__init__.py +0 -0
  269. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/group/any_group.py +0 -0
  270. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/group/group.py +0 -0
  271. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/input/__init__.py +0 -0
  272. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/input/any_input.py +0 -0
  273. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/input/base_input.py +0 -0
  274. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/input/bool_input.py +0 -0
  275. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/input/float_input.py +0 -0
  276. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/input/int_input.py +0 -0
  277. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/input/option_input.py +0 -0
  278. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/input/password_input.py +0 -0
  279. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/input/str_input.py +0 -0
  280. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/input/text_input.py +0 -0
  281. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/__init__.py +0 -0
  282. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/cli.py +0 -0
  283. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/common_util.py +0 -0
  284. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_app.py +0 -0
  285. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/__init__.py +0 -0
  286. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/docs_route.py +0 -0
  287. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/error_page/serve_default_404.py +0 -0
  288. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/error_page/show_error_page.py +0 -0
  289. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/error_page/view.html +0 -0
  290. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/home_page/__init__.py +0 -0
  291. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/home_page/home_page_route.py +0 -0
  292. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/home_page/view.html +0 -0
  293. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/login_api_route.py +0 -0
  294. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/login_page/login_page_route.py +0 -0
  295. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/login_page/view.html +0 -0
  296. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/logout_api_route.py +0 -0
  297. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/logout_page/logout_page_route.py +0 -0
  298. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/logout_page/view.html +0 -0
  299. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/node_page/group/show_group_page.py +0 -0
  300. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/node_page/group/view.html +0 -0
  301. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/node_page/node_page_route.py +0 -0
  302. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/node_page/task/partial/input.html +0 -0
  303. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/node_page/task/show_task_page.py +0 -0
  304. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/node_page/task/view.html +0 -0
  305. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/refresh_token_api_route.py +0 -0
  306. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/global_template.html +0 -0
  307. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/refresh-token.template.js +0 -0
  308. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/common.css +0 -0
  309. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/common.js +0 -0
  310. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/favicon-32x32.png +0 -0
  311. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/login/event.js +0 -0
  312. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/logout/event.js +0 -0
  313. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.amber.min.css +0 -0
  314. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.blue.min.css +0 -0
  315. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.cyan.min.css +0 -0
  316. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.fuchsia.min.css +0 -0
  317. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.green.min.css +0 -0
  318. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.grey.min.css +0 -0
  319. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.indigo.min.css +0 -0
  320. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.jade.min.css +0 -0
  321. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.lime.min.css +0 -0
  322. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.min.css +0 -0
  323. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.orange.min.css +0 -0
  324. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.pink.min.css +0 -0
  325. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.pumpkin.min.css +0 -0
  326. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.purple.min.css +0 -0
  327. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.red.min.css +0 -0
  328. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.sand.min.css +0 -0
  329. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.slate.min.css +0 -0
  330. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.violet.min.css +0 -0
  331. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.yellow.min.css +0 -0
  332. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/pico-css/pico.zinc.min.css +0 -0
  333. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/session/common-util.js +0 -0
  334. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/session/current-session.js +0 -0
  335. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/session/event.js +0 -0
  336. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/resources/session/past-session.js +0 -0
  337. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/static/static_route.py +0 -0
  338. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/task_input_api_route.py +0 -0
  339. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_route/task_session_api_route.py +0 -0
  340. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_schema/session.py +0 -0
  341. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_schema/token.py +0 -0
  342. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_schema/user.py +0 -0
  343. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_util/cookie.py +0 -0
  344. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_util/html.py +0 -0
  345. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_util/token.py +0 -0
  346. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/runner/web_util/user.py +0 -0
  347. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/session/__init__.py +0 -0
  348. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/session/any_session.py +0 -0
  349. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/session/session.py +0 -0
  350. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/session_state_log/__init__.py +0 -0
  351. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/session_state_log/session_state_log.py +0 -0
  352. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/session_state_logger/__init__.py +0 -0
  353. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/session_state_logger/any_session_state_logger.py +0 -0
  354. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/session_state_logger/file_session_state_logger.py +0 -0
  355. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/session_state_logger/session_state_logger_factory.py +0 -0
  356. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/__init__.py +0 -0
  357. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/any_task.py +0 -0
  358. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/base/__init__.py +0 -0
  359. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/base/context.py +0 -0
  360. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/base/execution.py +0 -0
  361. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/base/lifecycle.py +0 -0
  362. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/base/monitoring.py +0 -0
  363. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/base/operators.py +0 -0
  364. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/base_task.py +0 -0
  365. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/base_trigger.py +0 -0
  366. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/cmd_task.py +0 -0
  367. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/http_check.py +0 -0
  368. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/llm/__init__.py +0 -0
  369. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/llm/config.py +0 -0
  370. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/llm/conversation_history.py +0 -0
  371. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/llm/conversation_history_model.py +0 -0
  372. /zrb-1.17.4/src/zrb/task/llm/default_workflow/copywriting.md → /zrb-1.18.0/src/zrb/task/llm/default_workflow/copywriting/workflow.md +0 -0
  373. /zrb-1.17.4/src/zrb/task/llm/default_workflow/researching.md → /zrb-1.18.0/src/zrb/task/llm/default_workflow/researching/workflow.md +0 -0
  374. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/llm/error.py +0 -0
  375. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/llm/history_summarization.py +0 -0
  376. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/llm/history_summarization_tool.py +0 -0
  377. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/llm/print_node.py +0 -0
  378. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/llm/typing.py +0 -0
  379. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/make_task.py +0 -0
  380. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/scaffolder.py +0 -0
  381. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/scheduler.py +0 -0
  382. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/task.py +0 -0
  383. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task/tcp_check.py +0 -0
  384. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task_status/__init__.py +0 -0
  385. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/task_status/task_status.py +0 -0
  386. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/__init__.py +0 -0
  387. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/attr.py +0 -0
  388. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/callable.py +0 -0
  389. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/cli/__init__.py +0 -0
  390. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/cli/markdown.py +0 -0
  391. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/cli/style.py +0 -0
  392. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/cli/subcommand.py +0 -0
  393. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/cli/text.py +0 -0
  394. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/cmd/__init__.py +0 -0
  395. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/cmd/command.py +0 -0
  396. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/cmd/remote.py +0 -0
  397. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/codemod/__init__.py +0 -0
  398. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/codemod/modification_mode.py +0 -0
  399. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/codemod/modify_class.py +0 -0
  400. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/codemod/modify_class_parent.py +0 -0
  401. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/codemod/modify_class_property.py +0 -0
  402. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/codemod/modify_dict.py +0 -0
  403. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/codemod/modify_function.py +0 -0
  404. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/codemod/modify_function_call.py +0 -0
  405. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/codemod/modify_method.py +0 -0
  406. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/codemod/modify_module.py +0 -0
  407. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/cron.py +0 -0
  408. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/file.py +0 -0
  409. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/git.py +0 -0
  410. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/git_diff_model.py +0 -0
  411. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/git_subtree.py +0 -0
  412. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/git_subtree_model.py +0 -0
  413. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/group.py +0 -0
  414. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/init_path.py +0 -0
  415. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/llm/prompt.py +0 -0
  416. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/load.py +0 -0
  417. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/run.py +0 -0
  418. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/string/__init__.py +0 -0
  419. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/string/conversion.py +0 -0
  420. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/string/format.py +0 -0
  421. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/string/name.py +0 -0
  422. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/todo.py +0 -0
  423. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/todo_model.py +0 -0
  424. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/util/truncate.py +0 -0
  425. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/xcom/__init__.py +0 -0
  426. {zrb-1.17.4 → zrb-1.18.0}/src/zrb/xcom/xcom.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: zrb
3
- Version: 1.17.4
3
+ Version: 1.18.0
4
4
  Summary: Your Automation Powerhouse
5
5
  License: AGPL-3.0-or-later
6
6
  Keywords: Automation,Task Runner,Code Generator,Monorepo,Low Code
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "zrb"
3
- version = "1.17.4"
3
+ version = "1.18.0"
4
4
  description = "Your Automation Powerhouse"
5
5
  authors = ["Go Frendi Gunawan <gofrendiasgard@gmail.com>"]
6
6
  license = "AGPL-3.0-or-later"
@@ -32,7 +32,7 @@ async def read_user_prompt(ctx: AnyContext) -> str:
32
32
  reader: PromptSession[Any] | StreamReader = await _setup_input_reader(is_tty)
33
33
  multiline_mode = False
34
34
  is_first_time = True
35
- current_modes: str = ctx.input.modes
35
+ current_workflows: str = ctx.input.workflows
36
36
  current_yolo_mode: bool | str = ctx.input.yolo
37
37
  user_inputs: list[str] = []
38
38
  final_result: str = ""
@@ -59,7 +59,7 @@ async def read_user_prompt(ctx: AnyContext) -> str:
59
59
  result = await _trigger_ask_and_wait_for_result(
60
60
  ctx=ctx,
61
61
  user_prompt=user_prompt,
62
- modes=current_modes,
62
+ workflows=current_workflows,
63
63
  yolo_mode=current_yolo_mode,
64
64
  previous_session_name=previous_session_name,
65
65
  start_new=start_new,
@@ -77,7 +77,7 @@ async def read_user_prompt(ctx: AnyContext) -> str:
77
77
  result = await _trigger_ask_and_wait_for_result(
78
78
  ctx=ctx,
79
79
  user_prompt=user_prompt,
80
- modes=current_modes,
80
+ workflows=current_workflows,
81
81
  yolo_mode=current_yolo_mode,
82
82
  previous_session_name=previous_session_name,
83
83
  start_new=start_new,
@@ -86,18 +86,18 @@ async def read_user_prompt(ctx: AnyContext) -> str:
86
86
  final_result = result
87
87
  if ctx.is_web_mode or not is_tty:
88
88
  return final_result
89
- elif user_input.strip().lower().startswith("/mode"):
90
- mode_parts = user_input.split(" ", maxsplit=2)
91
- if len(mode_parts) > 1:
92
- current_modes = mode_parts[1]
93
- ctx.print(f"Current mode: {current_modes}", plain=True)
89
+ elif user_input.strip().lower().startswith("/workflow"):
90
+ workflow_parts = user_input.split(" ", maxsplit=2)
91
+ if len(workflow_parts) > 1:
92
+ current_workflows = workflow_parts[1]
93
+ ctx.print(f"Current workflows: {current_workflows}", plain=True)
94
94
  ctx.print("", plain=True)
95
95
  continue
96
96
  elif user_input.strip().lower().startswith("/yolo"):
97
97
  yolo_mode_parts = user_input.split(" ", maxsplit=2)
98
98
  if len(yolo_mode_parts) > 1:
99
99
  current_yolo_mode = to_boolean(yolo_mode_parts[1])
100
- ctx.print(f"Current_yolo mode: {current_yolo_mode}", plain=True)
100
+ ctx.print(f"Current YOLO mode: {current_yolo_mode}", plain=True)
101
101
  ctx.print("", plain=True)
102
102
  continue
103
103
  elif user_input.strip().lower() in ("/help", "/info"):
@@ -112,7 +112,7 @@ async def read_user_prompt(ctx: AnyContext) -> str:
112
112
  result = await _trigger_ask_and_wait_for_result(
113
113
  ctx=ctx,
114
114
  user_prompt=user_prompt,
115
- modes=current_modes,
115
+ workflows=current_workflows,
116
116
  yolo_mode=current_yolo_mode,
117
117
  previous_session_name=previous_session_name,
118
118
  start_new=start_new,
@@ -136,8 +136,8 @@ def _show_info(ctx: AnyContext):
136
136
  _show_command("/bye", "Quit from chat session"),
137
137
  _show_command("/multi", "Start multiline input"),
138
138
  _show_command("/end", "End multiline input"),
139
- _show_command("/modes", "Show current modes"),
140
- _show_subcommand("<mode1,mode2,..>", "Set current modes"),
139
+ _show_command("/workflows", "Show current workflows"),
140
+ _show_subcommand("<wf1,wf2,..>", "Set current workflows"),
141
141
  _show_command("/yolo", "Get current YOLO mode"),
142
142
  _show_subcommand("<true|false|list-of-tools>", "Set YOLO mode"),
143
143
  _show_command("/help", "Show this message"),
@@ -179,7 +179,7 @@ async def _setup_input_reader(
179
179
  async def _trigger_ask_and_wait_for_result(
180
180
  ctx: AnyContext,
181
181
  user_prompt: str,
182
- modes: str,
182
+ workflows: str,
183
183
  yolo_mode: bool | str,
184
184
  previous_session_name: str | None = None,
185
185
  start_new: bool = False,
@@ -199,7 +199,7 @@ async def _trigger_ask_and_wait_for_result(
199
199
  if user_prompt.strip() == "":
200
200
  return None
201
201
  await _trigger_ask(
202
- ctx, user_prompt, modes, yolo_mode, previous_session_name, start_new
202
+ ctx, user_prompt, workflows, yolo_mode, previous_session_name, start_new
203
203
  )
204
204
  result = await _wait_ask_result(ctx)
205
205
  md_result = render_markdown(result) if result is not None else ""
@@ -231,7 +231,7 @@ def get_llm_ask_input_mapping(callback_ctx: AnyContext):
231
231
  "start-new": data.get("start_new"),
232
232
  "previous-session": data.get("previous_session_name"),
233
233
  "message": data.get("message"),
234
- "modes": data.get("modes"),
234
+ "workflows": data.get("workflows"),
235
235
  "yolo": data.get("yolo"),
236
236
  }
237
237
 
@@ -239,7 +239,7 @@ def get_llm_ask_input_mapping(callback_ctx: AnyContext):
239
239
  async def _trigger_ask(
240
240
  ctx: AnyContext,
241
241
  user_prompt: str,
242
- modes: str,
242
+ workflows: str,
243
243
  yolo_mode: bool | str,
244
244
  previous_session_name: str | None = None,
245
245
  start_new: bool = False,
@@ -260,7 +260,7 @@ async def _trigger_ask(
260
260
  "previous_session_name": previous_session_name,
261
261
  "start_new": start_new,
262
262
  "message": user_prompt,
263
- "modes": modes,
263
+ "workflows": workflows,
264
264
  "yolo": yolo_mode,
265
265
  }
266
266
  )
@@ -152,10 +152,10 @@ def _get_inputs(require_message: bool = True) -> list[AnyInput | None]:
152
152
  always_prompt=False,
153
153
  ),
154
154
  TextInput(
155
- "modes",
156
- description="Modes",
157
- prompt="Modes",
158
- default=lambda ctx: ",".join(llm_config.default_modes),
155
+ "workflows",
156
+ description="Workflows",
157
+ prompt="Workflows",
158
+ default=lambda ctx: ",".join(llm_config.default_workflows),
159
159
  allow_positional_parsing=False,
160
160
  always_prompt=False,
161
161
  ),
@@ -210,8 +210,10 @@ llm_ask: LLMTask = llm_group.add_task(
210
210
  system_prompt=lambda ctx: (
211
211
  None if ctx.input.system_prompt.strip() == "" else ctx.input.system_prompt
212
212
  ),
213
- modes=lambda ctx: (
214
- None if ctx.input.modes.strip() == "" else ctx.input.modes.split(",")
213
+ workflows=lambda ctx: (
214
+ None
215
+ if ctx.input.workflows.strip() == ""
216
+ else ctx.input.workflows.split(",")
215
217
  ),
216
218
  message="{ctx.input.message}",
217
219
  tools=_get_tool,
@@ -275,12 +275,26 @@ class Config:
275
275
  return None if value == "" else value
276
276
 
277
277
  @property
278
- def LLM_MODES(self) -> list[str]:
279
- return [
280
- mode.strip()
281
- for mode in self._getenv("LLM_MODES", "coding").split(",")
282
- if mode.strip() != ""
283
- ]
278
+ def LLM_WORKFLOWS(self) -> list[str]:
279
+ """Get a list of LLM workflows from environment variables."""
280
+ workflows = []
281
+ for workflow in self._getenv("LLM_WORKFLOWS", "coding").split(","):
282
+ workflow = workflow.strip()
283
+ if workflow != "":
284
+ workflows.append(workflow)
285
+ return workflows
286
+
287
+ @property
288
+ def LLM_BUILTIN_WORKFLOW_PATHS(self) -> list[str]:
289
+ """Get a list of additional builtin workflow paths from environment variables."""
290
+ builtin_workflow_paths_str = self._getenv("LLM_BUILTIN_WORKFLOW_PATHS", "")
291
+ if builtin_workflow_paths_str != "":
292
+ return [
293
+ path.strip()
294
+ for path in builtin_workflow_paths_str.split(":")
295
+ if path.strip() != ""
296
+ ]
297
+ return []
284
298
 
285
299
  @property
286
300
  def LLM_SPECIAL_INSTRUCTION_PROMPT(self) -> str | None:
@@ -479,8 +493,8 @@ class Config:
479
493
  return int(self._getenv("SEARXNG_SAFE", "0"))
480
494
 
481
495
  @property
482
- def SEARXNG_LANG(self) -> int:
483
- return int(self._getenv("SEARXNG_LANG", "en"))
496
+ def SEARXNG_LANG(self) -> str:
497
+ return self._getenv("SEARXNG_LANG", "en")
484
498
 
485
499
  @property
486
500
  def BANNER(self) -> str:
@@ -20,7 +20,7 @@ You are an expert interactive AI agent. You MUST follow this workflow for this i
20
20
 
21
21
  3. **Execute and Verify (The E+V Loop):**
22
22
  * Execute the action.
23
- * **CRITICAL:** After each step, you MUST use a tool to verify the outcome (e.g., check command exit codes, read back file contents, list files).
23
+ * **CRITICAL:** After each step, you MUST use a tool to verify the outcome (e.g., check command exit codes, verify changes has been applied, or new files has been created).
24
24
 
25
25
  4. **Handle Errors (The Debugging Loop):**
26
26
  * If an action fails, you MUST NOT give up. You MUST enter a persistent debugging loop until the error is resolved.
@@ -16,7 +16,7 @@ You are an expert AI agent fulfilling a single request. You must provide a compl
16
16
 
17
17
  3. **Execute and Verify (The E+V Loop):**
18
18
  * Execute each step of your plan.
19
- * **CRITICAL:** After each step, you MUST use a tool to verify the outcome (e.g., check command exit codes, read back file contents, list files).
19
+ * **CRITICAL:** After each step, you MUST use a tool to verify the outcome (e.g., check command exit codes, verify changes has been applied, or new files has been created).
20
20
 
21
21
  4. **Handle Errors (The Debugging Loop):**
22
22
  * If an action fails, you MUST NOT give up. You MUST enter a persistent debugging loop until the error is resolved.
@@ -25,7 +25,7 @@ class LLMConfig:
25
25
  default_summarization_prompt: str | None = None,
26
26
  default_summarize_history: bool | None = None,
27
27
  default_history_summarization_token_threshold: int | None = None,
28
- default_modes: list[str] | None = None,
28
+ default_workflows: list[str] | None = None,
29
29
  default_model: "Model | None" = None,
30
30
  default_model_settings: "ModelSettings | None" = None,
31
31
  default_model_provider: "Provider | None" = None,
@@ -53,7 +53,7 @@ class LLMConfig:
53
53
  self._default_history_summarization_token_threshold = (
54
54
  default_history_summarization_token_threshold
55
55
  )
56
- self._default_modes = default_modes
56
+ self._default_workflows = default_workflows
57
57
  self._default_model = default_model
58
58
  self._default_model_settings = default_model_settings
59
59
  self._default_model_provider = default_model_provider
@@ -191,9 +191,9 @@ class LLMConfig:
191
191
  )
192
192
 
193
193
  @property
194
- def default_modes(self) -> list[str]:
194
+ def default_workflows(self) -> list[str]:
195
195
  return self._get_property(
196
- self._default_modes, CFG.LLM_MODES, lambda: ["coding"]
196
+ self._default_workflows, CFG.LLM_WORKFLOWS, lambda: ["coding"]
197
197
  )
198
198
 
199
199
  @property
@@ -279,18 +279,18 @@ class LLMConfig:
279
279
  def set_default_special_instruction_prompt(self, special_instruction_prompt: str):
280
280
  self._default_special_instruction_prompt = special_instruction_prompt
281
281
 
282
- def set_default_modes(self, modes: list[str]):
283
- self._default_modes = modes
282
+ def set_default_workflows(self, workflows: list[str]):
283
+ self._default_workflows = workflows
284
284
 
285
- def add_default_mode(self, mode: str):
286
- if self._default_modes is None:
287
- self._default_modes = []
288
- self._default_modes.append(mode)
285
+ def add_default_workflow(self, workflow: str):
286
+ if self._default_workflows is None:
287
+ self._default_workflows = []
288
+ self._default_workflows.append(workflow)
289
289
 
290
- def remove_default_mode(self, mode: str):
291
- if self._default_modes is None:
292
- self._default_modes = []
293
- self._default_modes.remove(mode)
290
+ def remove_default_workflow(self, workflow: str):
291
+ if self._default_workflows is None:
292
+ self._default_workflows = []
293
+ self._default_workflows.remove(workflow)
294
294
 
295
295
  def set_default_summarization_prompt(self, summarization_prompt: str):
296
296
  self._default_summarization_prompt = summarization_prompt
@@ -5,6 +5,25 @@ from zrb.config.llm_context.config_parser import markdown_to_dict
5
5
  from zrb.util.llm.prompt import demote_markdown_headers
6
6
 
7
7
 
8
+ class LLMWorkflow:
9
+ def __init__(self, name: str, path: str, content: str):
10
+ self._name = name
11
+ self._path = path
12
+ self._content = content
13
+
14
+ @property
15
+ def name(self) -> str:
16
+ return self._name
17
+
18
+ @property
19
+ def path(self) -> str:
20
+ return self._path
21
+
22
+ @property
23
+ def content(self) -> str:
24
+ return self._content
25
+
26
+
8
27
  class LLMContextConfig:
9
28
  """High-level API for interacting with cascaded configurations."""
10
29
 
@@ -75,20 +94,24 @@ class LLMContextConfig:
75
94
  notes[abs_context_path] = value
76
95
  return notes
77
96
 
78
- def get_workflows(self, cwd: str | None = None) -> dict[str, str]:
97
+ def get_workflows(self, cwd: str | None = None) -> dict[str, LLMWorkflow]:
79
98
  """Gathers all relevant workflows for a given path."""
80
99
  if cwd is None:
81
100
  cwd = os.getcwd()
82
101
  all_sections = self._get_all_sections(cwd)
83
- workflows: dict[str, str] = {}
102
+ workflows: dict[str, LLMWorkflow] = {}
84
103
  # Iterate from closest to farthest
85
- for _, sections in all_sections:
104
+ for config_dir, sections in all_sections:
86
105
  for key, value in sections.items():
87
106
  if key.lower().startswith("workflow:"):
88
107
  workflow_name = key[len("workflow:") :].strip().lower()
89
108
  # First one found wins
90
109
  if workflow_name not in workflows:
91
- workflows[workflow_name] = value
110
+ workflows[workflow_name] = LLMWorkflow(
111
+ name=workflow_name,
112
+ content=value,
113
+ path=config_dir,
114
+ )
92
115
  return workflows
93
116
 
94
117
  def get_contexts(self, cwd: str | None = None) -> dict[str, str]:
@@ -106,7 +106,7 @@ def create_agent_instance(
106
106
  return Agent[None, Any](
107
107
  model=model,
108
108
  output_type=output_type,
109
- system_prompt=system_prompt,
109
+ instructions=system_prompt,
110
110
  tools=tool_list,
111
111
  toolsets=wrapped_toolsets,
112
112
  model_settings=model_settings,
@@ -0,0 +1,142 @@
1
+ # Git Command Guidelines
2
+
3
+ ## Core Principles
4
+
5
+ - **Safety First:** Always verify current branch and status before destructive operations
6
+ - **Atomic Commits:** Each commit should represent a single logical change
7
+ - **Descriptive Messages:** Write clear, concise commit messages that explain "why" not just "what"
8
+ - **Interactive Mode:** Use interactive rebase and staging for precise control
9
+
10
+ ## Essential Commands
11
+
12
+ ### Repository Status
13
+ ```bash
14
+ # Check current status and branch
15
+ git status
16
+ git branch -v
17
+
18
+ # See uncommitted changes
19
+ git diff
20
+ git diff --staged
21
+ ```
22
+
23
+ ### Safe Branch Operations
24
+ ```bash
25
+ # Create and switch to new branch
26
+ git checkout -b feature/new-feature
27
+
28
+ # Switch branches safely
29
+ git switch main
30
+ git switch feature/branch-name
31
+
32
+ # List all branches
33
+ git branch -a
34
+ ```
35
+
36
+ ### Staging and Committing
37
+ ```bash
38
+ # Stage specific files
39
+ git add path/to/file.py
40
+ git add src/
41
+
42
+ # Stage interactively
43
+ git add -p
44
+
45
+ # Commit with descriptive message
46
+ git commit -m "feat: add user authentication
47
+
48
+ - Implement JWT token generation
49
+ - Add login/logout endpoints
50
+ - Add password hashing"
51
+
52
+ # Amend last commit (use carefully)
53
+ git commit --amend
54
+ ```
55
+
56
+ ### History and Logs
57
+ ```bash
58
+ # View commit history
59
+ git log --oneline --graph -10
60
+ git log --stat
61
+
62
+ # See who changed what
63
+ git blame file.py
64
+ ```
65
+
66
+ ## Advanced Operations
67
+
68
+ ### Rebasing and Merging
69
+ ```bash
70
+ # Update feature branch from main
71
+ git switch feature/branch
72
+ git rebase main
73
+
74
+ # Interactive rebase for cleanup
75
+ git rebase -i HEAD~5
76
+
77
+ # Safe merge
78
+ git merge --no-ff feature/branch
79
+ ```
80
+
81
+ ### Stashing
82
+ ```bash
83
+ # Save uncommitted changes temporarily
84
+ git stash push -m "WIP: feature implementation"
85
+
86
+ # List stashes
87
+ git stash list
88
+
89
+ # Apply and keep stash
90
+ git stash apply stash@{0}
91
+
92
+ # Apply and drop stash
93
+ git stash pop
94
+ ```
95
+
96
+ ### Remote Operations
97
+ ```bash
98
+ # Fetch and check before pulling
99
+ git fetch origin
100
+ git log origin/main..main
101
+
102
+ # Push safely
103
+ git push origin feature/branch
104
+ git push --force-with-lease # Safer than --force
105
+ ```
106
+
107
+ ## Safety Checklist
108
+
109
+ 1. **Before destructive operations:** Always run `git status` and `git branch -v`
110
+ 2. **Before force push:** Use `--force-with-lease` instead of `--force`
111
+ 3. **Before rebase:** Ensure working directory is clean
112
+ 4. **Before merge:** Resolve conflicts immediately
113
+ 5. **Regularly:** Fetch and integrate upstream changes
114
+
115
+ ## Common Patterns
116
+
117
+ ### Feature Development
118
+ ```bash
119
+ git checkout -b feature/new-feature
120
+ # ... make changes ...
121
+ git add .
122
+ git commit -m "feat: implement new feature"
123
+ git push origin feature/new-feature
124
+ ```
125
+
126
+ ### Hotfix Workflow
127
+ ```bash
128
+ git checkout -b hotfix/critical-bug main
129
+ # ... fix the bug ...
130
+ git add .
131
+ git commit -m "fix: resolve critical issue"
132
+ git push origin hotfix/critical-bug
133
+ ```
134
+
135
+ ### Cleanup
136
+ ```bash
137
+ # Delete merged branches locally
138
+ git branch --merged main | grep -v "main" | xargs git branch -d
139
+
140
+ # Delete remote branches
141
+ git push origin --delete old-branch
142
+ ```
@@ -0,0 +1,23 @@
1
+ # Go Development Guide
2
+
3
+ ## Core Principles
4
+ - **Follow Go conventions** and effective Go patterns
5
+ - **Use `go fmt`** for consistent formatting
6
+ - **Follow project's package structure** and naming
7
+
8
+ ## Project Analysis
9
+ - Check for: `go.mod`, `go.sum`, `Makefile`
10
+ - Look for project-specific patterns in existing code
11
+ - Identify testing approach: table tests, integration tests
12
+
13
+ ## Implementation Patterns
14
+ - **Error Handling:** Follow project's error wrapping and handling style
15
+ - **Package Organization:** Match existing package boundaries and dependencies
16
+ - **Naming:** Follow Go conventions (camelCase, short names)
17
+ - **Testing:** Use same test organization and helper patterns
18
+
19
+ ## Common Commands
20
+ - Formatting: `go fmt`
21
+ - Testing: `go test`
22
+ - Linting: `golangci-lint`, `staticcheck`
23
+ - Building: `go build`
@@ -0,0 +1,24 @@
1
+ # JavaScript/TypeScript Development Guide
2
+
3
+ ## Core Principles
4
+ - **Follow project's style guide** (ESLint, Prettier, etc.)
5
+ - **Use TypeScript** if the project uses it
6
+ - **Match module system** (CommonJS, ES modules)
7
+
8
+ ## Project Analysis
9
+ - Check for: `package.json`, `tsconfig.json`, `jsconfig.json`
10
+ - Look for style guides: `.eslintrc`, `.prettierrc`, `.editorconfig`
11
+ - Identify testing framework: `jest`, `mocha`, `vitest`
12
+ - Check build tools: `webpack`, `vite`, `rollup`
13
+
14
+ ## Implementation Patterns
15
+ - **Module System:** Follow project's import/export patterns
16
+ - **Error Handling:** Match promise/async patterns and error types
17
+ - **TypeScript:** Use same strictness level and type patterns
18
+ - **Testing:** Use project's test utilities and mocking patterns
19
+
20
+ ## Common Commands
21
+ - Package management: `npm`, `yarn`, `pnpm`
22
+ - Testing: `npm test`, `npm run test`
23
+ - Linting: `npm run lint`, `eslint`
24
+ - Building: `npm run build`, `tsc`
@@ -0,0 +1,23 @@
1
+ # Python Development Guide
2
+
3
+ ## Core Principles
4
+ - **Follow PEP 8** unless project has specific style guides
5
+ - **Use type hints** if the project uses them
6
+ - **Match existing patterns** for imports, docstrings, and error handling
7
+
8
+ ## Project Analysis
9
+ - Check for: `pyproject.toml`, `requirements.txt`, `setup.py`, `.python-version`
10
+ - Look for style guides: `.flake8`, `.pylintrc`, `ruff.toml`, `mypy.ini`
11
+ - Identify testing framework: `pytest`, `unittest`, `nose`
12
+
13
+ ## Implementation Patterns
14
+ - **Imports:** Follow project's import organization (stdlib, third-party, local)
15
+ - **Error Handling:** Match existing exception patterns and logging
16
+ - **Documentation:** Use same docstring format (Google, NumPy, reStructuredText)
17
+ - **Testing:** Use project's test organization and fixtures
18
+
19
+ ## Common Commands
20
+ - Formatting: `black`, `autopep8`, `yapf`
21
+ - Linting: `flake8`, `pylint`, `ruff`
22
+ - Testing: `pytest`, `python -m unittest`
23
+ - Type checking: `mypy`, `pyright`
@@ -0,0 +1,23 @@
1
+ # Rust Development Guide
2
+
3
+ ## Core Principles
4
+ - **Follow Rust conventions** and idiomatic patterns
5
+ - **Use `rustfmt`** for consistent formatting
6
+ - **Follow ownership and borrowing** patterns in existing code
7
+
8
+ ## Project Analysis
9
+ - Check for: `Cargo.toml`, `Cargo.lock`
10
+ - Look for: `rustfmt.toml`, `clippy.toml`
11
+ - Identify testing approach: unit tests, integration tests
12
+
13
+ ## Implementation Patterns
14
+ - **Error Handling:** Follow project's `Result` and `Option` patterns
15
+ - **Crate Organization:** Match existing module structure
16
+ - **Ownership:** Follow existing borrowing and lifetime patterns
17
+ - **Testing:** Use same test organization and attribute patterns
18
+
19
+ ## Common Commands
20
+ - Formatting: `cargo fmt`
21
+ - Testing: `cargo test`
22
+ - Linting: `cargo clippy`
23
+ - Building: `cargo build`