zrb 1.14.5__tar.gz → 1.14.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (411) hide show
  1. {zrb-1.14.5 → zrb-1.14.6}/PKG-INFO +4 -6
  2. {zrb-1.14.5 → zrb-1.14.6}/pyproject.toml +16 -11
  3. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/llm/tool/sub_agent.py +3 -4
  4. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/llm/tool/web.py +75 -77
  5. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/setup/latex/ubuntu.py +1 -0
  6. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/setup/ubuntu.py +1 -1
  7. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/config/config.py +92 -77
  8. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/llm/agent.py +32 -13
  9. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/llm/history_summarization.py +1 -0
  10. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/llm/print_node.py +1 -0
  11. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/llm/prompt.py +24 -1
  12. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/llm_task.py +14 -8
  13. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/file.py +15 -8
  14. {zrb-1.14.5 → zrb-1.14.6}/README.md +0 -0
  15. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/__init__.py +0 -0
  16. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/__main__.py +0 -0
  17. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/attr/__init__.py +0 -0
  18. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/attr/type.py +0 -0
  19. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/__init__.py +0 -0
  20. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/base64.py +0 -0
  21. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/git.py +0 -0
  22. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/git_subtree.py +0 -0
  23. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/group.py +0 -0
  24. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/http.py +0 -0
  25. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/jwt.py +0 -0
  26. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/llm/chat_session.py +0 -0
  27. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/llm/history.py +0 -0
  28. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/llm/input.py +0 -0
  29. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/llm/llm_ask.py +0 -0
  30. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/llm/previous-session.js +0 -0
  31. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/llm/tool/__init__.py +0 -0
  32. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/llm/tool/api.py +0 -0
  33. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/llm/tool/cli.py +0 -0
  34. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/llm/tool/code.py +0 -0
  35. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/llm/tool/file.py +0 -0
  36. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/llm/tool/rag.py +0 -0
  37. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/md5.py +0 -0
  38. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/__init__.py +0 -0
  39. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_input.py +0 -0
  40. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_task.py +0 -0
  41. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.coveragerc +0 -0
  42. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.flake8 +0 -0
  43. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.gitignore +0 -0
  44. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/README.md +0 -0
  45. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/__init__.py +0 -0
  46. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_task.py +0 -0
  47. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_util.py +0 -0
  48. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/config.py +0 -0
  49. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_task.py +0 -0
  50. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_util.py +0 -0
  51. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/gateway/view/content/my-module/my-entity.html +0 -0
  52. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/my_entity_service.py +0 -0
  53. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/my_entity_service_factory.py +0 -0
  54. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/repository/my_entity_db_repository.py +0 -0
  55. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/repository/my_entity_repository.py +0 -0
  56. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/repository/my_entity_repository_factory.py +0 -0
  57. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/schema/my_entity.py +0 -0
  58. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/test/my_module/my_entity/test_create_my_entity.py +0 -0
  59. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/test/my_module/my_entity/test_delete_my_entity.py +0 -0
  60. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/test/my_module/my_entity/test_read_my_entity.py +0 -0
  61. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/test/my_module/my_entity/test_update_my_entity.py +0 -0
  62. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/client_method.py +0 -0
  63. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/gateway_subroute.py +0 -0
  64. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/navigation_config_file.py +0 -0
  65. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/format_task.py +0 -0
  66. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/group.py +0 -0
  67. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/input.py +0 -0
  68. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_task.py +0 -0
  69. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_util.py +0 -0
  70. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/gateway/subroute/my_module.py +0 -0
  71. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/alembic.ini +0 -0
  72. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_api_client.py +0 -0
  73. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_client.py +0 -0
  74. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_client_factory.py +0 -0
  75. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_direct_client.py +0 -0
  76. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/README +0 -0
  77. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/env.py +0 -0
  78. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/script.py.mako +0 -0
  79. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/versions/.gitkeep +0 -0
  80. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration_metadata.py +0 -0
  81. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/route.py +0 -0
  82. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/service/__init__.py +0 -0
  83. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/module_task_definition.py +0 -0
  84. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/navigation_config_file.py +0 -0
  85. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task.py +0 -0
  86. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task_util.py +0 -0
  87. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/util.py +0 -0
  88. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/venv_task.py +0 -0
  89. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/__init__.py +0 -0
  90. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/app_factory.py +0 -0
  91. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_db_repository.py +0 -0
  92. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_service.py +0 -0
  93. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/db_engine_factory.py +0 -0
  94. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/error.py +0 -0
  95. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/logger_factory.py +0 -0
  96. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/parser_factory.py +0 -0
  97. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/schema.py +0 -0
  98. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/app.py +0 -0
  99. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/parser.py +0 -0
  100. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/user_agent.py +0 -0
  101. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/view.py +0 -0
  102. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/config.py +0 -0
  103. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/main.py +0 -0
  104. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/__init__.py +0 -0
  105. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/alembic.ini +0 -0
  106. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_api_client.py +0 -0
  107. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client.py +0 -0
  108. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client_factory.py +0 -0
  109. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_direct_client.py +0 -0
  110. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/README +0 -0
  111. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/env.py +0 -0
  112. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/script.py.mako +0 -0
  113. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/3093c7336477_add_auth_tables.py +0 -0
  114. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/8ed025bcc845_create_permissions.py +0 -0
  115. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration_metadata.py +0 -0
  116. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/route.py +0 -0
  117. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/__init__.py +0 -0
  118. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/__init__.py +0 -0
  119. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service.py +0 -0
  120. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service_factory.py +0 -0
  121. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_db_repository.py +0 -0
  122. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository.py +0 -0
  123. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository_factory.py +0 -0
  124. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/__init__.py +0 -0
  125. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_db_repository.py +0 -0
  126. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository.py +0 -0
  127. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository_factory.py +0 -0
  128. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service.py +0 -0
  129. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service_factory.py +0 -0
  130. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/__init__.py +0 -0
  131. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_db_repository.py +0 -0
  132. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository.py +0 -0
  133. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository_factory.py +0 -0
  134. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service.py +0 -0
  135. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service_factory.py +0 -0
  136. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/alembic.ini +0 -0
  137. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/config/navigation.py +0 -0
  138. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/README +0 -0
  139. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/env.py +0 -0
  140. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/script.py.mako +0 -0
  141. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/versions/.gitkeep +0 -0
  142. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration_metadata.py +0 -0
  143. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/route.py +0 -0
  144. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/schema/navigation.py +0 -0
  145. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/subroute/auth.py +0 -0
  146. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/auth.py +0 -0
  147. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/view.py +0 -0
  148. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/permission.html +0 -0
  149. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/role.html +0 -0
  150. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/user.html +0 -0
  151. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/error.html +0 -0
  152. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/homepage.html +0 -0
  153. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/login.html +0 -0
  154. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/logout.html +0 -0
  155. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/common/util.js +0 -0
  156. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/style.css +0 -0
  157. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/util.js +0 -0
  158. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/pico-style.css +0 -0
  159. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/script.js +0 -0
  160. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/style.css +0 -0
  161. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-192x192.png +0 -0
  162. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-512x512.png +0 -0
  163. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/favicon-32x32.png +0 -0
  164. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.amber.min.css +0 -0
  165. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.blue.min.css +0 -0
  166. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.cyan.min.css +0 -0
  167. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.fuchsia.min.css +0 -0
  168. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.green.min.css +0 -0
  169. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.grey.min.css +0 -0
  170. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.indigo.min.css +0 -0
  171. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.jade.min.css +0 -0
  172. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.lime.min.css +0 -0
  173. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.min.css +0 -0
  174. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.orange.min.css +0 -0
  175. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.pink.min.css +0 -0
  176. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.pumpkin.min.css +0 -0
  177. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.purple.min.css +0 -0
  178. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.red.min.css +0 -0
  179. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.sand.min.css +0 -0
  180. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.slate.min.css +0 -0
  181. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.violet.min.css +0 -0
  182. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.yellow.min.css +0 -0
  183. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.zinc.min.css +0 -0
  184. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/template/default.html +0 -0
  185. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/requirements.txt +0 -0
  186. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/__init__.py +0 -0
  187. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/permission.py +0 -0
  188. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/role.py +0 -0
  189. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/user.py +0 -0
  190. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/template.env +0 -0
  191. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/_util/access_token.py +0 -0
  192. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_create_permission.py +0 -0
  193. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_delete_permission.py +0 -0
  194. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_read_permission.py +0 -0
  195. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_update_permission.py +0 -0
  196. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/test_user_session.py +0 -0
  197. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_health_and_readiness.py +0 -0
  198. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_homepage.py +0 -0
  199. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_not_found_error.py +0 -0
  200. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test.sh +0 -0
  201. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/add/fastapp/fastapp_util.py +0 -0
  202. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/create/__init__.py +0 -0
  203. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/create/project-template/README.md +0 -0
  204. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/create/project-template/zrb_init.py +0 -0
  205. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/project/create/project_task.py +0 -0
  206. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/python.py +0 -0
  207. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/random.py +0 -0
  208. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/setup/asdf/asdf.py +0 -0
  209. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/setup/asdf/asdf_helper.py +0 -0
  210. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/setup/common_input.py +0 -0
  211. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/setup/tmux/tmux.py +0 -0
  212. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/setup/tmux/tmux_config.sh +0 -0
  213. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/setup/tmux/tmux_helper.py +0 -0
  214. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/setup/zsh/zsh.py +0 -0
  215. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/setup/zsh/zsh_config.sh +0 -0
  216. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/setup/zsh/zsh_helper.py +0 -0
  217. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/shell/__init__.py +0 -0
  218. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/shell/autocomplete/__init__.py +0 -0
  219. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/shell/autocomplete/bash.py +0 -0
  220. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/shell/autocomplete/subcmd.py +0 -0
  221. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/shell/autocomplete/zsh.py +0 -0
  222. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/todo.py +0 -0
  223. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/builtin/uuid.py +0 -0
  224. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/callback/__init__.py +0 -0
  225. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/callback/any_callback.py +0 -0
  226. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/callback/callback.py +0 -0
  227. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/cmd/__init__.py +0 -0
  228. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/cmd/cmd_result.py +0 -0
  229. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/cmd/cmd_val.py +0 -0
  230. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/config/default_prompt/file_extractor_system_prompt.md +0 -0
  231. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/config/default_prompt/interactive_system_prompt.md +0 -0
  232. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/config/default_prompt/persona.md +0 -0
  233. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/config/default_prompt/repo_extractor_system_prompt.md +0 -0
  234. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/config/default_prompt/repo_summarizer_system_prompt.md +0 -0
  235. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/config/default_prompt/summarization_prompt.md +0 -0
  236. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/config/default_prompt/system_prompt.md +0 -0
  237. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/config/llm_config.py +0 -0
  238. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/config/llm_context/config.py +0 -0
  239. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/config/llm_context/config_parser.py +0 -0
  240. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/config/llm_rate_limitter.py +0 -0
  241. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/config/web_auth_config.py +0 -0
  242. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/content_transformer/__init__.py +0 -0
  243. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/content_transformer/any_content_transformer.py +0 -0
  244. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/content_transformer/content_transformer.py +0 -0
  245. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/context/__init__.py +0 -0
  246. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/context/any_context.py +0 -0
  247. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/context/any_shared_context.py +0 -0
  248. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/context/context.py +0 -0
  249. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/context/shared_context.py +0 -0
  250. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/dot_dict/__init__.py +0 -0
  251. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/dot_dict/dot_dict.py +0 -0
  252. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/env/__init__.py +0 -0
  253. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/env/any_env.py +0 -0
  254. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/env/env.py +0 -0
  255. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/env/env_file.py +0 -0
  256. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/env/env_map.py +0 -0
  257. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/group/__init__.py +0 -0
  258. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/group/any_group.py +0 -0
  259. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/group/group.py +0 -0
  260. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/input/__init__.py +0 -0
  261. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/input/any_input.py +0 -0
  262. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/input/base_input.py +0 -0
  263. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/input/bool_input.py +0 -0
  264. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/input/float_input.py +0 -0
  265. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/input/int_input.py +0 -0
  266. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/input/option_input.py +0 -0
  267. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/input/password_input.py +0 -0
  268. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/input/str_input.py +0 -0
  269. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/input/text_input.py +0 -0
  270. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/__init__.py +0 -0
  271. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/cli.py +0 -0
  272. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/common_util.py +0 -0
  273. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_app.py +0 -0
  274. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/__init__.py +0 -0
  275. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/docs_route.py +0 -0
  276. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/error_page/serve_default_404.py +0 -0
  277. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/error_page/show_error_page.py +0 -0
  278. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/error_page/view.html +0 -0
  279. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/home_page/__init__.py +0 -0
  280. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/home_page/home_page_route.py +0 -0
  281. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/home_page/view.html +0 -0
  282. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/login_api_route.py +0 -0
  283. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/login_page/login_page_route.py +0 -0
  284. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/login_page/view.html +0 -0
  285. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/logout_api_route.py +0 -0
  286. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/logout_page/logout_page_route.py +0 -0
  287. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/logout_page/view.html +0 -0
  288. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/node_page/group/show_group_page.py +0 -0
  289. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/node_page/group/view.html +0 -0
  290. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/node_page/node_page_route.py +0 -0
  291. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/node_page/task/partial/input.html +0 -0
  292. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/node_page/task/show_task_page.py +0 -0
  293. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/node_page/task/view.html +0 -0
  294. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/refresh_token_api_route.py +0 -0
  295. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/global_template.html +0 -0
  296. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/refresh-token.template.js +0 -0
  297. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/common.css +0 -0
  298. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/common.js +0 -0
  299. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/favicon-32x32.png +0 -0
  300. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/login/event.js +0 -0
  301. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/logout/event.js +0 -0
  302. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.amber.min.css +0 -0
  303. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.blue.min.css +0 -0
  304. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.cyan.min.css +0 -0
  305. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.fuchsia.min.css +0 -0
  306. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.green.min.css +0 -0
  307. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.grey.min.css +0 -0
  308. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.indigo.min.css +0 -0
  309. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.jade.min.css +0 -0
  310. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.lime.min.css +0 -0
  311. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.min.css +0 -0
  312. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.orange.min.css +0 -0
  313. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.pink.min.css +0 -0
  314. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.pumpkin.min.css +0 -0
  315. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.purple.min.css +0 -0
  316. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.red.min.css +0 -0
  317. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.sand.min.css +0 -0
  318. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.slate.min.css +0 -0
  319. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.violet.min.css +0 -0
  320. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.yellow.min.css +0 -0
  321. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/pico-css/pico.zinc.min.css +0 -0
  322. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/session/common-util.js +0 -0
  323. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/session/current-session.js +0 -0
  324. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/session/event.js +0 -0
  325. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/resources/session/past-session.js +0 -0
  326. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/static/static_route.py +0 -0
  327. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/task_input_api_route.py +0 -0
  328. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_route/task_session_api_route.py +0 -0
  329. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_schema/session.py +0 -0
  330. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_schema/token.py +0 -0
  331. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_schema/user.py +0 -0
  332. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_util/cookie.py +0 -0
  333. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_util/html.py +0 -0
  334. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_util/token.py +0 -0
  335. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/runner/web_util/user.py +0 -0
  336. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/session/__init__.py +0 -0
  337. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/session/any_session.py +0 -0
  338. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/session/session.py +0 -0
  339. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/session_state_log/__init__.py +0 -0
  340. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/session_state_log/session_state_log.py +0 -0
  341. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/session_state_logger/__init__.py +0 -0
  342. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/session_state_logger/any_session_state_logger.py +0 -0
  343. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/session_state_logger/file_session_state_logger.py +0 -0
  344. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/session_state_logger/session_state_logger_factory.py +0 -0
  345. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/__init__.py +0 -0
  346. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/any_task.py +0 -0
  347. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/base/__init__.py +0 -0
  348. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/base/context.py +0 -0
  349. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/base/execution.py +0 -0
  350. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/base/lifecycle.py +0 -0
  351. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/base/monitoring.py +0 -0
  352. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/base/operators.py +0 -0
  353. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/base_task.py +0 -0
  354. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/base_trigger.py +0 -0
  355. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/cmd_task.py +0 -0
  356. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/http_check.py +0 -0
  357. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/llm/__init__.py +0 -0
  358. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/llm/config.py +0 -0
  359. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/llm/conversation_history.py +0 -0
  360. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/llm/conversation_history_model.py +0 -0
  361. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/llm/default_workflow/coding.md +0 -0
  362. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/llm/default_workflow/copywriting.md +0 -0
  363. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/llm/default_workflow/researching.md +0 -0
  364. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/llm/error.py +0 -0
  365. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/llm/tool_wrapper.py +0 -0
  366. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/llm/typing.py +0 -0
  367. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/make_task.py +0 -0
  368. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/rsync_task.py +0 -0
  369. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/scaffolder.py +0 -0
  370. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/scheduler.py +0 -0
  371. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/task.py +0 -0
  372. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task/tcp_check.py +0 -0
  373. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task_status/__init__.py +0 -0
  374. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/task_status/task_status.py +0 -0
  375. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/__init__.py +0 -0
  376. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/attr.py +0 -0
  377. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/callable.py +0 -0
  378. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/cli/__init__.py +0 -0
  379. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/cli/style.py +0 -0
  380. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/cli/subcommand.py +0 -0
  381. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/cmd/__init__.py +0 -0
  382. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/cmd/command.py +0 -0
  383. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/cmd/remote.py +0 -0
  384. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/codemod/__init__.py +0 -0
  385. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/codemod/modification_mode.py +0 -0
  386. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/codemod/modify_class.py +0 -0
  387. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/codemod/modify_class_parent.py +0 -0
  388. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/codemod/modify_class_property.py +0 -0
  389. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/codemod/modify_dict.py +0 -0
  390. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/codemod/modify_function.py +0 -0
  391. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/codemod/modify_function_call.py +0 -0
  392. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/codemod/modify_method.py +0 -0
  393. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/codemod/modify_module.py +0 -0
  394. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/cron.py +0 -0
  395. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/git.py +0 -0
  396. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/git_diff_model.py +0 -0
  397. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/git_subtree.py +0 -0
  398. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/git_subtree_model.py +0 -0
  399. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/group.py +0 -0
  400. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/init_path.py +0 -0
  401. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/llm/prompt.py +0 -0
  402. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/load.py +0 -0
  403. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/run.py +0 -0
  404. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/string/__init__.py +0 -0
  405. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/string/conversion.py +0 -0
  406. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/string/format.py +0 -0
  407. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/string/name.py +0 -0
  408. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/todo.py +0 -0
  409. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/util/todo_model.py +0 -0
  410. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/xcom/__init__.py +0 -0
  411. {zrb-1.14.5 → zrb-1.14.6}/src/zrb/xcom/xcom.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zrb
3
- Version: 1.14.5
3
+ Version: 1.14.6
4
4
  Summary: Your Automation Powerhouse
5
5
  Home-page: https://github.com/state-alchemists/zrb
6
6
  License: AGPL-3.0-or-later
@@ -22,17 +22,15 @@ Requires-Dist: chromadb (>=0.6.3,<0.7.0) ; extra == "rag" or extra == "all"
22
22
  Requires-Dist: fastapi[standard] (>=0.116.1,<0.117.0)
23
23
  Requires-Dist: isort (>=6.0.1,<6.1.0)
24
24
  Requires-Dist: libcst (>=1.7.0,<2.0.0)
25
- Requires-Dist: openai (>=1.86.0,<2.0.0) ; extra == "rag" or extra == "all"
26
- Requires-Dist: pdfplumber (>=0.11.6,<0.12.0) ; extra == "rag" or extra == "all"
25
+ Requires-Dist: openai (>=1.92.0,<=1.99.1)
26
+ Requires-Dist: pdfplumber (>=0.11.6,<0.12.0)
27
27
  Requires-Dist: playwright (>=1.53.0,<2.0.0) ; extra == "playwright" or extra == "all"
28
- Requires-Dist: prompt-toolkit (>=3.0.51,<4.0.0)
29
28
  Requires-Dist: psutil (>=7.0.0,<8.0.0)
30
- Requires-Dist: pydantic-ai (>=0.4.5,<0.5.0)
29
+ Requires-Dist: pydantic-ai-slim[anthropic,bedrock,cli,cohere,google,groq,huggingface,mcp,mistral,openai,vertexai] (>=0.6.2,<0.7.0)
31
30
  Requires-Dist: pyjwt (>=2.10.1,<3.0.0)
32
31
  Requires-Dist: python-dotenv (>=1.1.1,<2.0.0)
33
32
  Requires-Dist: python-jose[cryptography] (>=3.4.0,<4.0.0)
34
33
  Requires-Dist: requests (>=2.32.4,<3.0.0)
35
- Requires-Dist: rich (>=14.0.0,<15.0.0)
36
34
  Requires-Dist: tiktoken (>=0.8.0,<0.9.0)
37
35
  Requires-Dist: ulid-py (>=1.1.0,<2.0.0)
38
36
  Project-URL: Documentation, https://github.com/state-alchemists/zrb
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "zrb"
3
- version = "1.14.5"
3
+ version = "1.14.6"
4
4
  description = "Your Automation Powerhouse"
5
5
  authors = ["Go Frendi Gunawan <gofrendiasgard@gmail.com>"]
6
6
  license = "AGPL-3.0-or-later"
@@ -43,26 +43,31 @@ black = "~25.1.0"
43
43
  isort = "~6.0.1"
44
44
  requests = "^2.32.4"
45
45
  libcst = "^1.7.0"
46
- chromadb = {version = "^0.6.3", optional = true}
47
- pdfplumber = {version = "^0.11.6", optional = true}
48
46
  beautifulsoup4 = "^4.13.3"
47
+ pdfplumber = "^0.11.6"
49
48
  fastapi = {extras = ["standard"], version = "^0.116.1"}
50
49
  python-jose = {extras = ["cryptography"], version = "^3.4.0"}
51
50
  ulid-py = "^1.1.0"
52
- pydantic-ai = "^0.4.5"
53
- tiktoken = "^0.8.0"
54
- openai = {version = "^1.86.0", optional = true}
55
- playwright = {version = "^1.53.0", optional = true}
56
51
  psutil = "^7.0.0"
57
52
  pyjwt = "^2.10.1"
58
- prompt-toolkit = "^3.0.51"
59
- rich = "^14.0.0"
53
+
54
+ # NOTE: Look at https://github.com/pydantic/pydantic-ai/blob/main/pydantic_ai_slim/pyproject.toml
55
+ # - We want to include all models, as well as mcp capability.
56
+ # - We also need prompt-toolkit and rich which are included in pydantic ai's cli optional dependency
57
+ pydantic-ai-slim = {extras = ["openai", "cohere", "vertexai", "google", "anthropic", "groq", "mistral", "bedrock", "huggingface", "cli", "mcp"], version = "^0.6.2"}
58
+
59
+ # NOTE: On Pydantic AI 0.6.2, The last working version of OpenAI is 0.99.1
60
+ openai = ">=1.92.0, <=1.99.1"
61
+
62
+ tiktoken = "^0.8.0"
63
+ playwright = {version = "^1.53.0", optional = true}
64
+ chromadb = {version = "^0.6.3", optional = true}
60
65
 
61
66
  [tool.poetry.extras]
62
67
  # poetry install -E rag
63
- rag = ["chromadb", "pdfplumber", "openai"]
68
+ rag = ["chromadb"]
64
69
  playwright = ["playwright"]
65
- all = ["chromadb", "pdfplumber", "openai", "playwright"]
70
+ all = ["chromadb", "playwright"]
66
71
 
67
72
  [tool.poetry.group.dev.dependencies]
68
73
  alembic = "^1.16.2" # FastApp dependencies
@@ -15,8 +15,6 @@ if TYPE_CHECKING:
15
15
  from pydantic_ai.toolsets import AbstractToolset
16
16
 
17
17
  ToolOrCallable = Tool | Callable
18
- else:
19
- ToolOrCallable = Any
20
18
 
21
19
 
22
20
  def create_sub_agent_tool(
@@ -25,7 +23,7 @@ def create_sub_agent_tool(
25
23
  system_prompt: str | None = None,
26
24
  model: "str | Model | None" = None,
27
25
  model_settings: "ModelSettings | None" = None,
28
- tools: list[ToolOrCallable] = [],
26
+ tools: "list[ToolOrCallable]" = [],
29
27
  toolsets: list["AbstractToolset[Agent]"] = [],
30
28
  is_yolo_mode: bool | None = None,
31
29
  ) -> Callable[[AnyContext, str], Coroutine[Any, Any, str]]:
@@ -97,7 +95,8 @@ def create_sub_agent_tool(
97
95
  ctx=ctx,
98
96
  agent=sub_agent_agent,
99
97
  user_prompt=query,
100
- history_list=[], # Start with empty history for the sub-agent
98
+ attachments=[],
99
+ history_list=[],
101
100
  )
102
101
 
103
102
  # Return the sub-agent's final message content
@@ -1,64 +1,25 @@
1
1
  import json
2
2
  from collections.abc import Callable
3
+ from urllib.parse import urljoin
4
+
5
+ from bs4 import BeautifulSoup
3
6
 
4
7
 
5
8
  async def open_web_page(url: str) -> str:
6
9
  """
7
- Fetches and parses the textual content of a given web page URL.
10
+ Fetches, parses, and converts the content of a web page to Markdown.
8
11
 
9
- Use this tool to "read" a web page. It strips away HTML tags, scripts, and other non-textual elements to provide the clean text content. It also extracts any hyperlinks found on the page. This is useful when you need to understand the content of a specific URL that you have discovered through a search or from another source.
12
+ This tool "reads" a web page by fetching its content, stripping away non-essential elements like scripts and styles, and then converting the cleaned HTML into Markdown format. This preserves the semantic structure of the content (headings, lists, etc.) while removing clutter. It also extracts all hyperlinks and resolves them to absolute URLs.
10
13
 
11
14
  Args:
12
15
  url (str): The full URL of the web page to open (e.g., "https://example.com/article").
13
16
 
14
17
  Returns:
15
- str: A JSON object containing the cleaned text `content` of the page and a list of `links_on_page`.
18
+ str: A JSON object containing the page's content in Markdown format and a list of all absolute links found on the page.
16
19
  """
17
-
18
- async def get_page_content(page_url: str):
19
- user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" # noqa
20
- try:
21
- from playwright.async_api import async_playwright
22
-
23
- async with async_playwright() as p:
24
- browser = await p.chromium.launch(headless=True)
25
- page = await browser.new_page()
26
- await page.set_extra_http_headers({"User-Agent": user_agent})
27
- try:
28
- # Navigate to the URL with a timeout of 30 seconds
29
- await page.goto(page_url, wait_until="networkidle", timeout=30000)
30
- # Wait for the content to load
31
- await page.wait_for_load_state("domcontentloaded")
32
- # Get the page content
33
- content = await page.content()
34
- # Extract all links from the page
35
- links = await page.eval_on_selector_all(
36
- "a[href]",
37
- """
38
- (elements) => elements.map(el => {
39
- const href = el.getAttribute('href');
40
- if (href && !href.startsWith('#') && !href.startsWith('/')) {
41
- return href;
42
- }
43
- return null;
44
- }).filter(href => href !== null)
45
- """,
46
- )
47
- return {"content": content, "links_on_page": links}
48
- finally:
49
- await browser.close()
50
- except BaseException:
51
- import requests
52
-
53
- response = requests.get(url, headers={"User-Agent": user_agent})
54
- if response.status_code != 200:
55
- msg = f"Unable to retrieve search results. Status code: {response.status_code}"
56
- raise Exception(msg)
57
- return {"content": response.text, "links_on_page": []}
58
-
59
- result = await get_page_content(url)
60
- # Parse the HTML content
61
- return json.dumps(parse_html_text(result["content"]))
20
+ html_content, links = await _fetch_page_content(url)
21
+ markdown_content = _convert_html_to_markdown(html_content)
22
+ return json.dumps({"content": markdown_content, "links_on_page": links})
62
23
 
63
24
 
64
25
  def create_search_internet_tool(serp_api_key: str) -> Callable[[str, int], str]:
@@ -85,14 +46,14 @@ def create_search_internet_tool(serp_api_key: str) -> Callable[[str, int], str]:
85
46
  num_results (int, optional): The desired number of search results. Defaults to 10.
86
47
 
87
48
  Returns:
88
- str: A JSON object containing the parsed text content from the search results page.
49
+ str: A formatted string summarizing the search results, including titles, links, and snippets.
89
50
  """
90
51
  import requests
91
52
 
92
53
  response = requests.get(
93
54
  "https://serpapi.com/search",
94
55
  headers={
95
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" # noqa
56
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
96
57
  },
97
58
  params={
98
59
  "q": query,
@@ -104,9 +65,9 @@ def create_search_internet_tool(serp_api_key: str) -> Callable[[str, int], str]:
104
65
  )
105
66
  if response.status_code != 200:
106
67
  raise Exception(
107
- f"Error: Unable to retrieve search results (status code: {response.status_code})" # noqa
68
+ f"Error: Unable to retrieve search results (status code: {response.status_code})"
108
69
  )
109
- return json.dumps(parse_html_text(response.text))
70
+ return response.json()
110
71
 
111
72
  return search_internet
112
73
 
@@ -150,30 +111,67 @@ def search_arxiv(query: str, num_results: int = 10) -> str:
150
111
  return response.content
151
112
 
152
113
 
153
- def parse_html_text(html_text: str) -> dict[str, str]:
154
- from bs4 import BeautifulSoup
155
-
156
- ignored_tags = [
157
- "script",
158
- "link",
159
- "meta",
160
- "style",
161
- "code",
162
- "footer",
163
- "nav",
164
- "header",
165
- "aside",
166
- ]
114
+ async def _fetch_page_content(url: str) -> tuple[str, list[str]]:
115
+ """Fetches the HTML content and all absolute links from a URL."""
116
+ user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
117
+ try:
118
+ from playwright.async_api import async_playwright
119
+
120
+ async with async_playwright() as p:
121
+ browser = await p.chromium.launch(headless=True)
122
+ page = await browser.new_page()
123
+ await page.set_extra_http_headers({"User-Agent": user_agent})
124
+ try:
125
+ await page.goto(url, wait_until="networkidle", timeout=30000)
126
+ await page.wait_for_load_state("domcontentloaded")
127
+ content = await page.content()
128
+ links = await page.eval_on_selector_all(
129
+ "a[href]",
130
+ """
131
+ (elements, baseUrl) => elements.map(el => {
132
+ const href = el.getAttribute('href');
133
+ if (!href || href.startsWith('#')) return null;
134
+ try {
135
+ return new URL(href, baseUrl).href;
136
+ } catch (e) {
137
+ return null;
138
+ }
139
+ }).filter(href => href !== null)
140
+ """,
141
+ url,
142
+ )
143
+ return content, links
144
+ # return json.dumps({"content": content, "links": links})
145
+ finally:
146
+ await browser.close()
147
+ except Exception:
148
+ import requests
149
+
150
+ response = requests.get(url, headers={"User-Agent": user_agent})
151
+ if response.status_code != 200:
152
+ raise Exception(
153
+ f"Unable to retrieve page content. Status code: {response.status_code}"
154
+ )
155
+ content = response.text
156
+ soup = BeautifulSoup(content, "html.parser")
157
+ links = [
158
+ urljoin(url, a["href"])
159
+ for a in soup.find_all("a", href=True)
160
+ if not a["href"].startswith("#")
161
+ ]
162
+ return content, links
163
+ # return json.dumps({"content": content, "links": links})
164
+
165
+
166
+ def _convert_html_to_markdown(html_text: str) -> str:
167
+ """Converts HTML content to a clean Markdown representation."""
168
+ from markdownify import markdownify as md
169
+
167
170
  soup = BeautifulSoup(html_text, "html.parser")
168
- links = []
169
- for anchor in soup.find_all("a"):
170
- if not anchor or "href" not in anchor.attrs:
171
- continue
172
- link: str = anchor["href"]
173
- if link.startswith("#") or link.startswith("/"):
174
- continue
175
- links.append(link)
176
- for tag in soup(ignored_tags):
171
+ # Remove non-content tags
172
+ for tag in soup(
173
+ ["script", "link", "meta", "style", "header", "footer", "nav", "aside"]
174
+ ):
177
175
  tag.decompose()
178
- html_text = soup.get_text(separator=" ", strip=True)
179
- return {"content": html_text, "links_on_page": links}
176
+ # Convert the cleaned HTML to Markdown
177
+ return md(str(soup))
@@ -12,6 +12,7 @@ setup_latex_on_ubuntu = setup_latex_group.add_task(
12
12
  "texlive-fonts-extra texlive-latex-extra",
13
13
  ],
14
14
  render_cmd=False,
15
+ is_interactive=True,
15
16
  ),
16
17
  alias="ubuntu",
17
18
  )
@@ -22,7 +22,7 @@ setup_ubuntu = setup_group.add_task(
22
22
  description="🐧 Setup ubuntu",
23
23
  cmd=[
24
24
  "sudo apt install -y \\",
25
- "build-essential python3-distutils libssl-dev zlib1g-dev \\"
25
+ "build-essential libssl-dev zlib1g-dev \\"
26
26
  "libbz2-dev libreadline-dev libsqlite3-dev libpq-dev python3-dev \\",
27
27
  "llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev \\",
28
28
  "liblzma-dev python3-openssl libblas-dev liblapack-dev rustc \\",