zrb 1.0.0a18__tar.gz → 1.0.0a19__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 (244) hide show
  1. {zrb-1.0.0a18 → zrb-1.0.0a19}/PKG-INFO +1 -1
  2. {zrb-1.0.0a18 → zrb-1.0.0a19}/pyproject.toml +1 -1
  3. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/__init__.py +2 -0
  4. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/input/any_input.py +4 -0
  5. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/input/base_input.py +4 -4
  6. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/input/bool_input.py +1 -1
  7. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/input/float_input.py +2 -2
  8. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/input/int_input.py +1 -1
  9. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/input/option_input.py +2 -2
  10. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/input/password_input.py +2 -2
  11. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/input/text_input.py +2 -2
  12. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/cli.py +2 -30
  13. zrb-1.0.0a19/src/zrb/runner/common_util.py +31 -0
  14. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/web_app.py +20 -4
  15. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/web_controller/static/pico.min.css +1 -1
  16. zrb-1.0.0a19/src/zrb/runner/web_controller/static/task-ui/common-util.js +63 -0
  17. zrb-1.0.0a19/src/zrb/runner/web_controller/static/task-ui/current-session.js +164 -0
  18. zrb-1.0.0a19/src/zrb/runner/web_controller/static/task-ui/event.js +120 -0
  19. zrb-1.0.0a19/src/zrb/runner/web_controller/static/task-ui/past-session.js +138 -0
  20. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/web_controller/task_ui/controller.py +20 -19
  21. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/web_controller/task_ui/view.html +12 -15
  22. zrb-1.0.0a18/src/zrb/runner/web_controller/task_ui/partial/common-util.js +0 -37
  23. zrb-1.0.0a18/src/zrb/runner/web_controller/task_ui/partial/main.js +0 -195
  24. zrb-1.0.0a18/src/zrb/runner/web_controller/task_ui/partial/show-existing-session.js +0 -97
  25. zrb-1.0.0a18/src/zrb/runner/web_controller/task_ui/partial/visualize-history.js +0 -104
  26. {zrb-1.0.0a18 → zrb-1.0.0a19}/README.md +0 -0
  27. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/__main__.py +0 -0
  28. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/attr/__init__.py +0 -0
  29. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/attr/type.py +0 -0
  30. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/__init__.py +0 -0
  31. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/base64.py +0 -0
  32. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/git.py +0 -0
  33. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/git_subtree.py +0 -0
  34. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/group.py +0 -0
  35. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/llm/llm_chat.py +0 -0
  36. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/llm/tool/cli.py +0 -0
  37. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/llm/tool/rag.py +0 -0
  38. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/llm/tool/web.py +0 -0
  39. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/md5.py +0 -0
  40. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/__init__.py +0 -0
  41. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_input.py +0 -0
  42. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_task.py +0 -0
  43. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.flake8 +0 -0
  44. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.gitignore +0 -0
  45. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/README.md +0 -0
  46. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/__init__.py +0 -0
  47. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/create_column_task.py +0 -0
  48. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/config.py +0 -0
  49. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_task.py +0 -0
  50. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_util.py +0 -0
  51. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/any_client_method.py +0 -0
  52. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/my_entity_usecase.py +0 -0
  53. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/repository/factory.py +0 -0
  54. {zrb-1.0.0a18 → zrb-1.0.0a19}/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.0.0a18 → zrb-1.0.0a19}/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.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/schema/my_entity.py +0 -0
  57. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/format_task.py +0 -0
  58. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/group.py +0 -0
  59. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/input.py +0 -0
  60. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_task.py +0 -0
  61. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_util.py +0 -0
  62. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/gateway/subroute/my_module.py +0 -0
  63. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/alembic.ini +0 -0
  64. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/any_client.py +0 -0
  65. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/api_client.py +0 -0
  66. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/direct_client.py +0 -0
  67. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/factory.py +0 -0
  68. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/README +0 -0
  69. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/env.py +0 -0
  70. {zrb-1.0.0a18 → zrb-1.0.0a19}/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
  71. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/versions/.gitkeep +0 -0
  72. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration_metadata.py +0 -0
  73. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/route.py +0 -0
  74. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/service/__init__.py +0 -0
  75. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/module_task_definition.py +0 -0
  76. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task.py +0 -0
  77. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/util.py +0 -0
  78. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/venv_task.py +0 -0
  79. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/__init__.py +0 -0
  80. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/app.py +0 -0
  81. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_db_repository.py +0 -0
  82. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_usecase.py +0 -0
  83. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/db_engine.py +0 -0
  84. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/error.py +0 -0
  85. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/schema.py +0 -0
  86. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/config.py +0 -0
  87. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/main.py +0 -0
  88. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/migrate.py +0 -0
  89. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/__init__.py +0 -0
  90. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/alembic.ini +0 -0
  91. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/any_client.py +0 -0
  92. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/api_client.py +0 -0
  93. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/direct_client.py +0 -0
  94. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/factory.py +0 -0
  95. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/README +0 -0
  96. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/env.py +0 -0
  97. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/script.py.mako +0 -0
  98. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/3093c7336477_add_user_table.py +0 -0
  99. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration_metadata.py +0 -0
  100. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/route.py +0 -0
  101. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/__init__.py +0 -0
  102. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/__init__.py +0 -0
  103. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/__init__.py +0 -0
  104. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/factory.py +0 -0
  105. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_db_repository.py +0 -0
  106. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository.py +0 -0
  107. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_usecase.py +0 -0
  108. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/alembic.ini +0 -0
  109. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/README +0 -0
  110. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/env.py +0 -0
  111. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/script.py.mako +0 -0
  112. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/versions/.gitkeep +0 -0
  113. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration_metadata.py +0 -0
  114. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/route.py +0 -0
  115. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/subroute/auth.py +0 -0
  116. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/requirements.txt +0 -0
  117. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/__init__.py +0 -0
  118. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/permission.py +0 -0
  119. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/role.py +0 -0
  120. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/user.py +0 -0
  121. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/template.env +0 -0
  122. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/add/fastapp/fastapp_util.py +0 -0
  123. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/create/__init__.py +0 -0
  124. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/create/project-template/README.md +0 -0
  125. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/create/project-template/zrb_init.py +0 -0
  126. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/project/create/project_task.py +0 -0
  127. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/python.py +0 -0
  128. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/setup/asdf/asdf.py +0 -0
  129. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/setup/asdf/asdf_helper.py +0 -0
  130. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/setup/common_input.py +0 -0
  131. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/setup/latex/ubuntu.py +0 -0
  132. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/setup/tmux/tmux.py +0 -0
  133. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/setup/tmux/tmux_config.sh +0 -0
  134. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/setup/tmux/tmux_helper.py +0 -0
  135. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/setup/ubuntu.py +0 -0
  136. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/shell/__init__.py +0 -0
  137. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/shell/autocomplete/__init__.py +0 -0
  138. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/shell/autocomplete/bash.py +0 -0
  139. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/shell/autocomplete/subcmd.py +0 -0
  140. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/shell/autocomplete/zsh.py +0 -0
  141. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/builtin/todo.py +0 -0
  142. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/callback/__init__.py +0 -0
  143. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/callback/any_callback.py +0 -0
  144. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/callback/callback.py +0 -0
  145. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/cmd/__init__.py +0 -0
  146. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/cmd/cmd_result.py +0 -0
  147. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/cmd/cmd_val.py +0 -0
  148. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/config.py +0 -0
  149. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/content_transformer/__init__.py +0 -0
  150. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/content_transformer/any_content_transformer.py +0 -0
  151. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/content_transformer/content_transformer.py +0 -0
  152. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/context/__init__.py +0 -0
  153. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/context/any_context.py +0 -0
  154. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/context/any_shared_context.py +0 -0
  155. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/context/context.py +0 -0
  156. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/context/shared_context.py +0 -0
  157. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/dot_dict/__init__.py +0 -0
  158. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/dot_dict/dot_dict.py +0 -0
  159. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/env/__init__.py +0 -0
  160. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/env/any_env.py +0 -0
  161. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/env/env.py +0 -0
  162. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/env/env_file.py +0 -0
  163. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/env/env_map.py +0 -0
  164. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/group/__init__.py +0 -0
  165. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/group/any_group.py +0 -0
  166. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/group/group.py +0 -0
  167. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/input/__init__.py +0 -0
  168. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/input/str_input.py +0 -0
  169. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/__init__.py +0 -0
  170. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/web_controller/__init__.py +0 -0
  171. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/web_controller/group_info_ui/__init__.py +0 -0
  172. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/web_controller/group_info_ui/controller.py +0 -0
  173. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/web_controller/group_info_ui/partial/group_info.html +0 -0
  174. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/web_controller/group_info_ui/partial/group_li.html +0 -0
  175. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/web_controller/group_info_ui/partial/task_info.html +0 -0
  176. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/web_controller/group_info_ui/partial/task_li.html +0 -0
  177. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/web_controller/group_info_ui/view.html +0 -0
  178. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/web_controller/home_page/__init__.py +0 -0
  179. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/web_controller/home_page/controller.py +0 -0
  180. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/web_controller/home_page/partial/group_info.html +0 -0
  181. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/web_controller/home_page/partial/group_li.html +0 -0
  182. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/web_controller/home_page/partial/task_info.html +0 -0
  183. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/web_controller/home_page/partial/task_li.html +0 -0
  184. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/web_controller/home_page/view.html +0 -0
  185. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/web_controller/static/favicon-32x32.png +0 -0
  186. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/web_controller/task_ui/__init__.py +0 -0
  187. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/web_controller/task_ui/partial/input.html +0 -0
  188. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/runner/web_util.py +0 -0
  189. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/session/__init__.py +0 -0
  190. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/session/any_session.py +0 -0
  191. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/session/session.py +0 -0
  192. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/session_state_log/__init__.py +0 -0
  193. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/session_state_log/session_state_log.py +0 -0
  194. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/session_state_logger/__init__.py +0 -0
  195. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/session_state_logger/any_session_state_logger.py +0 -0
  196. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/session_state_logger/default_session_state_logger.py +0 -0
  197. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/session_state_logger/file_session_state_logger.py +0 -0
  198. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/task/__init__.py +0 -0
  199. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/task/any_task.py +0 -0
  200. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/task/base_task.py +0 -0
  201. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/task/base_trigger.py +0 -0
  202. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/task/cmd_task.py +0 -0
  203. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/task/http_check.py +0 -0
  204. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/task/llm_task.py +0 -0
  205. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/task/make_task.py +0 -0
  206. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/task/rsync_task.py +0 -0
  207. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/task/scaffolder.py +0 -0
  208. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/task/scheduler.py +0 -0
  209. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/task/task.py +0 -0
  210. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/task/tcp_check.py +0 -0
  211. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/task_status/__init__.py +0 -0
  212. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/task_status/task_status.py +0 -0
  213. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/__init__.py +0 -0
  214. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/attr.py +0 -0
  215. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/cli/__init__.py +0 -0
  216. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/cli/style.py +0 -0
  217. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/cli/subcommand.py +0 -0
  218. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/cmd/__init__.py +0 -0
  219. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/cmd/command.py +0 -0
  220. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/cmd/remote.py +0 -0
  221. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/codemod/__init__.py +0 -0
  222. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/codemod/append_code_to_class.py +0 -0
  223. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/codemod/append_code_to_function.py +0 -0
  224. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/codemod/append_code_to_method.py +0 -0
  225. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/codemod/append_key_to_dict.py +0 -0
  226. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/codemod/append_param_to_function_call.py +0 -0
  227. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/codemod/prepend_code_to_module.py +0 -0
  228. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/codemod/prepend_parent_to_class.py +0 -0
  229. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/codemod/prepend_property_to_class.py +0 -0
  230. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/cron.py +0 -0
  231. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/file.py +0 -0
  232. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/git.py +0 -0
  233. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/git_subtree.py +0 -0
  234. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/group.py +0 -0
  235. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/llm/tool.py +0 -0
  236. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/load.py +0 -0
  237. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/run.py +0 -0
  238. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/string/__init__.py +0 -0
  239. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/string/conversion.py +0 -0
  240. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/string/format.py +0 -0
  241. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/string/name.py +0 -0
  242. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/util/todo.py +0 -0
  243. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/xcom/__init__.py +0 -0
  244. {zrb-1.0.0a18 → zrb-1.0.0a19}/src/zrb/xcom/xcom.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zrb
3
- Version: 1.0.0a18
3
+ Version: 1.0.0a19
4
4
  Summary: Your Automation Powerhouse
5
5
  Home-page: https://github.com/state-alchemists/zrb
6
6
  License: AGPL-3.0-or-later
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "zrb"
3
- version = "1.0.0a18"
3
+ version = "1.0.0a19"
4
4
  description = "Your Automation Powerhouse"
5
5
  authors = ["Go Frendi Gunawan <gofrendiasgard@gmail.com>"]
6
6
  license = "AGPL-3.0-or-later"
@@ -27,6 +27,7 @@ from zrb.group.group import Group
27
27
  from zrb.input.any_input import AnyInput
28
28
  from zrb.input.base_input import BaseInput
29
29
  from zrb.input.bool_input import BoolInput
30
+ from zrb.input.float_input import FloatInput
30
31
  from zrb.input.int_input import IntInput
31
32
  from zrb.input.option_input import OptionInput
32
33
  from zrb.input.password_input import PasswordInput
@@ -73,6 +74,7 @@ assert CmdResult
73
74
  assert CmdTask
74
75
  assert HttpCheck
75
76
  assert TcpCheck
77
+ assert FloatInput
76
78
  assert IntInput
77
79
  assert OptionInput
78
80
  assert PasswordInput
@@ -32,3 +32,7 @@ class AnyInput(ABC):
32
32
  @abstractmethod
33
33
  def prompt_cli_str(self, shared_ctx: AnySharedContext) -> str:
34
34
  pass
35
+
36
+ @abstractmethod
37
+ def get_default_str(self, shared_ctx: AnySharedContext) -> str:
38
+ pass
@@ -42,14 +42,14 @@ class BaseInput(AnyInput):
42
42
  def to_html(self, ctx: AnySharedContext) -> str:
43
43
  name = self.name
44
44
  description = self.description
45
- default = self._get_default_str(ctx)
45
+ default = self.get_default_str(ctx)
46
46
  return f'<input name="{name}" placeholder="{description}" value="{default}" />'
47
47
 
48
48
  def update_shared_context(
49
49
  self, shared_ctx: AnySharedContext, str_value: str | None = None
50
50
  ):
51
51
  if str_value is None:
52
- str_value = self._get_default_str(shared_ctx)
52
+ str_value = self.get_default_str(shared_ctx)
53
53
  value = self._parse_str_value(str_value)
54
54
  if self.name in shared_ctx.input:
55
55
  raise ValueError(f"Input already defined in the context: {self.name}")
@@ -75,7 +75,7 @@ class BaseInput(AnyInput):
75
75
 
76
76
  def _prompt_cli_str(self, shared_ctx: AnySharedContext) -> str:
77
77
  prompt_message = self.prompt_message
78
- default_value = self._get_default_str(shared_ctx)
78
+ default_value = self.get_default_str(shared_ctx)
79
79
  if default_value != "":
80
80
  prompt_message = f"{prompt_message} [{default_value}]"
81
81
  print(f"{prompt_message}: ", end="")
@@ -84,7 +84,7 @@ class BaseInput(AnyInput):
84
84
  value = default_value
85
85
  return value
86
86
 
87
- def _get_default_str(self, shared_ctx: AnySharedContext) -> str:
87
+ def get_default_str(self, shared_ctx: AnySharedContext) -> str:
88
88
  return get_str_attr(
89
89
  shared_ctx, self._default_str, auto_render=self._auto_render
90
90
  )
@@ -26,7 +26,7 @@ class BoolInput(BaseInput):
26
26
  def to_html(self, ctx: AnySharedContext) -> str:
27
27
  name = self.name
28
28
  description = self.description
29
- default = to_boolean(self._get_default_str(ctx))
29
+ default = to_boolean(self.get_default_str(ctx))
30
30
  selected_true = "selected" if default else ""
31
31
  selected_false = "selected" if not default else ""
32
32
  return "\n".join(
@@ -25,8 +25,8 @@ class FloatInput(BaseInput):
25
25
  def to_html(self, ctx: AnySharedContext) -> str:
26
26
  name = self.name
27
27
  description = self.description
28
- default = self._get_default_str(ctx)
29
- return f'<input type="number" name="{name}" placeholder="{description}" value="{default}" />' # noqa
28
+ default = self.get_default_str(ctx)
29
+ return f'<input type="number" name="{name}" placeholder="{description}" value="{default}" step="any" />' # noqa
30
30
 
31
31
  def _parse_str_value(self, str_value: str) -> float:
32
32
  return float(str_value)
@@ -25,7 +25,7 @@ class IntInput(BaseInput):
25
25
  def to_html(self, ctx: AnySharedContext) -> str:
26
26
  name = self.name
27
27
  description = self.description
28
- default = self._get_default_str(ctx)
28
+ default = self.get_default_str(ctx)
29
29
  return f'<input type="number" step="1" name="{name}" placeholder="{description}" value="{default}" />' # noqa
30
30
 
31
31
  def _parse_str_value(self, str_value: str) -> int:
@@ -28,7 +28,7 @@ class OptionInput(BaseInput):
28
28
  def to_html(self, ctx: AnySharedContext) -> str:
29
29
  name = self.name
30
30
  description = self.description
31
- default = self._get_default_str(ctx)
31
+ default = self.get_default_str(ctx)
32
32
  html = [f'<select name="{name}" placeholder="{description}">']
33
33
  for value in get_str_list_attr(ctx, self._options, self._auto_render):
34
34
  selected = "selected" if value == default else ""
@@ -38,7 +38,7 @@ class OptionInput(BaseInput):
38
38
 
39
39
  def _prompt_cli_str(self, shared_ctx: AnySharedContext) -> str:
40
40
  prompt_message = self.prompt_message
41
- default_value = self._get_default_str(shared_ctx)
41
+ default_value = self.get_default_str(shared_ctx)
42
42
  options = get_str_list_attr(shared_ctx, self._options, self._auto_render)
43
43
  option_str = ", ".join(options)
44
44
  if default_value != "":
@@ -28,12 +28,12 @@ class PasswordInput(BaseInput):
28
28
  def to_html(self, ctx: AnySharedContext) -> str:
29
29
  name = self.name
30
30
  description = self.description
31
- default = self._get_default_str(ctx)
31
+ default = self.get_default_str(ctx)
32
32
  return f'<input type="password" name="{name}" placeholder="{description}" value="{default}" />' # noqa
33
33
 
34
34
  def _prompt_cli_str(self, shared_ctx: AnySharedContext) -> str:
35
35
  prompt_message = self.prompt_message
36
- default_value = self._get_default_str(shared_ctx)
36
+ default_value = self.get_default_str(shared_ctx)
37
37
  value = getpass.getpass(f"{prompt_message}: ")
38
38
  if value.strip() == "":
39
39
  value = default_value
@@ -57,7 +57,7 @@ class TextInput(BaseInput):
57
57
  def to_html(self, ctx: AnySharedContext) -> str:
58
58
  name = self.name
59
59
  description = self.description
60
- default = self._get_default_str(ctx)
60
+ default = self.get_default_str(ctx)
61
61
  return "\n".join(
62
62
  [
63
63
  f'<textarea name="{name}" placeholder="{description}">',
@@ -71,7 +71,7 @@ class TextInput(BaseInput):
71
71
  f"{self.comment_start}{super().prompt_message}{self.comment_end}"
72
72
  )
73
73
  prompt_message_eol = f"{prompt_message}\n"
74
- default_value = self._get_default_str(shared_ctx)
74
+ default_value = self.get_default_str(shared_ctx)
75
75
  with tempfile.NamedTemporaryFile(
76
76
  delete=False, suffix=self._extension
77
77
  ) as temp_file:
@@ -5,6 +5,7 @@ from zrb.config import BANNER, WEB_HTTP_PORT
5
5
  from zrb.context.any_context import AnyContext
6
6
  from zrb.context.shared_context import SharedContext
7
7
  from zrb.group.group import Group
8
+ from zrb.runner.common_util import get_run_kwargs
8
9
  from zrb.runner.web_app import create_app
9
10
  from zrb.session.session import Session
10
11
  from zrb.task.any_task import AnyTask
@@ -30,7 +31,7 @@ class Cli(Group):
30
31
  if "h" in kwargs or "help" in kwargs:
31
32
  self._show_task_info(node)
32
33
  return
33
- run_kwargs = self._get_run_kwargs(node, args, kwargs)
34
+ run_kwargs = get_run_kwargs(task=node, args=args, kwargs=kwargs, prompt=True)
34
35
  try:
35
36
  result = self._run_task(node, args, run_kwargs)
36
37
  if result is not None:
@@ -72,35 +73,6 @@ class Cli(Group):
72
73
  continue
73
74
  return task.run(Session(shared_ctx=shared_ctx, root_group=self))
74
75
 
75
- def _get_run_kwargs(
76
- self, task: AnyTask, args: list[str], kwargs: dict[str, str]
77
- ) -> tuple[Any]:
78
- arg_index = 0
79
- str_kwargs = {key: val for key, val in kwargs.items()}
80
- run_kwargs = {**str_kwargs}
81
- shared_ctx = SharedContext(args=args)
82
- for task_input in task.inputs:
83
- if task_input.name in str_kwargs:
84
- # Update shared context for next input default value
85
- task_input.update_shared_context(
86
- shared_ctx, str_kwargs[task_input.name]
87
- )
88
- elif arg_index < len(args):
89
- run_kwargs[task_input.name] = args[arg_index]
90
- # Update shared context for next input default value
91
- task_input.update_shared_context(
92
- shared_ctx, run_kwargs[task_input.name]
93
- )
94
- arg_index += 1
95
- else:
96
- str_value = task_input.prompt_cli_str(shared_ctx)
97
- run_kwargs[task_input.name] = str_value
98
- # Update shared context for next input default value
99
- task_input.update_shared_context(
100
- shared_ctx, run_kwargs[task_input.name]
101
- )
102
- return run_kwargs
103
-
104
76
  def _show_task_info(self, task: AnyTask):
105
77
  description = task.description
106
78
  inputs = task.inputs
@@ -0,0 +1,31 @@
1
+ from typing import Any
2
+
3
+ from zrb.context.shared_context import SharedContext
4
+ from zrb.task.any_task import AnyTask
5
+
6
+
7
+ def get_run_kwargs(
8
+ task: AnyTask, args: list[str], kwargs: dict[str, str], prompt: bool = True
9
+ ) -> tuple[Any]:
10
+ arg_index = 0
11
+ str_kwargs = {key: val for key, val in kwargs.items()}
12
+ run_kwargs = {**str_kwargs}
13
+ shared_ctx = SharedContext(args=args)
14
+ for task_input in task.inputs:
15
+ if task_input.name in str_kwargs:
16
+ # Update shared context for next input default value
17
+ task_input.update_shared_context(shared_ctx, str_kwargs[task_input.name])
18
+ elif arg_index < len(args):
19
+ run_kwargs[task_input.name] = args[arg_index]
20
+ # Update shared context for next input default value
21
+ task_input.update_shared_context(shared_ctx, run_kwargs[task_input.name])
22
+ arg_index += 1
23
+ else:
24
+ if prompt:
25
+ str_value = task_input.prompt_cli_str(shared_ctx)
26
+ else:
27
+ str_value = task_input.get_default_str(shared_ctx)
28
+ run_kwargs[task_input.name] = str_value
29
+ # Update shared context for next input default value
30
+ task_input.update_shared_context(shared_ctx, run_kwargs[task_input.name])
31
+ return run_kwargs
@@ -1,12 +1,13 @@
1
1
  import asyncio
2
+ import json
2
3
  import os
3
4
  import sys
4
5
  from datetime import datetime, timedelta
5
- from typing import Any
6
6
 
7
7
  from zrb.config import BANNER, WEB_HTTP_PORT
8
8
  from zrb.context.shared_context import SharedContext
9
9
  from zrb.group.any_group import AnyGroup
10
+ from zrb.runner.common_util import get_run_kwargs
10
11
  from zrb.runner.web_controller.group_info_ui.controller import handle_group_info_ui
11
12
  from zrb.runner.web_controller.home_page.controller import handle_home_page
12
13
  from zrb.runner.web_controller.task_ui.controller import handle_task_ui
@@ -76,9 +77,7 @@ def create_app(root_group: AnyGroup, port: int = WEB_HTTP_PORT):
76
77
  raise HTTPException(status_code=404, detail="Not Found")
77
78
 
78
79
  @app.post("/api/sessions/{path:path}")
79
- async def create_new_session(
80
- path: str, request: Request = None
81
- ) -> NewSessionResponse:
80
+ async def create_new_session(path: str, request: Request) -> NewSessionResponse:
82
81
  """
83
82
  Creating new session
84
83
  """
@@ -96,6 +95,23 @@ def create_app(root_group: AnyGroup, port: int = WEB_HTTP_PORT):
96
95
  return NewSessionResponse(session_name=session.name)
97
96
  raise HTTPException(status_code=404, detail="Not Found")
98
97
 
98
+ @app.get("/api/inputs/{path:path}", response_model=dict[str, str])
99
+ async def get_default_inputs(
100
+ path: str, query: str = Query("{}", description="JSON encoded inputs")
101
+ ):
102
+ """
103
+ Getting input completion for path
104
+ """
105
+ args = path.strip("/").split("/")
106
+ task, _, _ = extract_node_from_args(root_group, args)
107
+ if isinstance(task, AnyTask):
108
+ query_dict = json.loads(query)
109
+ run_kwargs = get_run_kwargs(
110
+ task=task, args=[], kwargs=query_dict, prompt=False
111
+ )
112
+ return run_kwargs
113
+ raise HTTPException(status_code=404, detail="Not Found")
114
+
99
115
  @app.get(
100
116
  "/api/sessions/{path:path}",
101
117
  response_model=SessionStateLog | SessionStateLogList,