ellf-cli 19.0.7__tar.gz → 19.0.9__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. {ellf_cli-19.0.7/ellf_cli.egg-info → ellf_cli-19.0.9}/PKG-INFO +1 -1
  2. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/README.md +4 -4
  3. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf.json +9 -9
  4. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-annotate.assistant/SKILL.md +7 -10
  5. {ellf_cli-19.0.7/ellf_cli/ellf_skills/skills/ellf-annotate.coding → ellf_cli-19.0.9/ellf_cli/ellf_skills/skills/ellf-annotate.assistant}/references/annotation_audit.md +1 -1
  6. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-annotate.assistant/references/builtin_ellf_annotation_recipes.md +8 -31
  7. {ellf_cli-19.0.7/ellf_cli/ellf_skills/skills/ellf-project.assistant → ellf_cli-19.0.9/ellf_cli/ellf_skills/skills/ellf-annotate.assistant}/references/label_schemes.md +13 -13
  8. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-annotate.coding/SKILL.md +3 -5
  9. {ellf_cli-19.0.7/ellf_cli/ellf_skills/skills/ellf-annotate.assistant → ellf_cli-19.0.9/ellf_cli/ellf_skills/skills/ellf-annotate.coding}/references/annotation_audit.md +7 -6
  10. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-annotate.coding/references/builtin_ellf_annotation_recipes.md +7 -30
  11. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-annotate.coding/references/builtin_prodigy_recipes.md +0 -26
  12. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-annotate.coding/references/label_schemes.md +8 -19
  13. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-handoff/SKILL.md +1 -7
  14. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-monitor.assistant/SKILL.md +6 -8
  15. ellf_cli-19.0.9/ellf_cli/ellf_skills/skills/ellf-monitor.assistant/references/annotation_metrics.md +26 -0
  16. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-monitor.coding/SKILL.md +7 -33
  17. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-monitor.coding/references/training_monitoring.md +2 -8
  18. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-monitor.coding/scripts/check_training.py +17 -29
  19. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-ops.assistant/SKILL.md +25 -41
  20. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-ops.coding/SKILL.md +15 -76
  21. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-ops.coding/references/data_infra_cli.md +23 -77
  22. ellf_cli-19.0.9/ellf_cli/ellf_skills/skills/ellf-patterns/SKILL.md +48 -0
  23. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-patterns/references/pattern_strategies.md +1 -1
  24. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/SKILL.md +3 -11
  25. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_action_recipe.py +19 -15
  26. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_agent_recipe.py +17 -48
  27. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_task_recipe.py +15 -41
  28. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/builtin_recipes.md +8 -31
  29. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/ellf_recipe_sdk.md +36 -195
  30. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/lint_recipe.py +18 -71
  31. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/prodigy_recipe_api.md +41 -48
  32. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/template_index.md +3 -18
  33. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-project.assistant/SKILL.md +18 -24
  34. {ellf_cli-19.0.7/ellf_cli/ellf_skills/skills/ellf-annotate.assistant → ellf_cli-19.0.9/ellf_cli/ellf_skills/skills/ellf-project.assistant}/references/label_schemes.md +13 -13
  35. ellf_cli-19.0.9/ellf_cli/ellf_skills/skills/ellf-project.assistant/references/prodigy_llm_bot.md +87 -0
  36. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-project.coding/SKILL.md +13 -13
  37. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-project.coding/references/label_schemes.md +8 -19
  38. ellf_cli-19.0.9/ellf_cli/ellf_skills/skills/ellf-project.coding/references/prodigy_llm_bot.md +87 -0
  39. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-support.coding/SKILL.md +3 -16
  40. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-todo/SKILL.md +7 -11
  41. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.assistant/SKILL.md +5 -5
  42. {ellf_cli-19.0.7/ellf_cli/ellf_skills/skills/ellf-train.coding → ellf_cli-19.0.9/ellf_cli/ellf_skills/skills/ellf-train.assistant}/references/diagnostics.md +1 -1
  43. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.assistant/references/model_selection.md +2 -2
  44. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.assistant/references/training_paradigms.md +1 -1
  45. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.assistant/references/workflow.md +8 -7
  46. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.coding/SKILL.md +12 -46
  47. {ellf_cli-19.0.7/ellf_cli/ellf_skills/skills/ellf-train.assistant → ellf_cli-19.0.9/ellf_cli/ellf_skills/skills/ellf-train.coding}/references/diagnostics.md +1 -1
  48. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/model_selection.md +2 -2
  49. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/training_paradigms.md +1 -1
  50. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/workflow.md +20 -25
  51. ellf_cli-19.0.9/ellf_cli/version/19.0.7_2026-09-30-07-50-58_patch_e8b1f046-d819-499c-9cd5-3e1a20fc9acf +3 -0
  52. ellf_cli-19.0.9/ellf_cli/version/19.0.8_2026-10-01-13-41-44_patch_7d63af18-e0af-4127-ab58-aede2407490f +3 -0
  53. {ellf_cli-19.0.7 → ellf_cli-19.0.9/ellf_cli.egg-info}/PKG-INFO +1 -1
  54. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli.egg-info/SOURCES.txt +4 -3
  55. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_users_assign.py +2 -0
  56. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_users_info_stats.py +2 -0
  57. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_users_list.py +1 -0
  58. ellf_cli-19.0.7/ellf_cli/ellf_skills/skills/ellf-monitor.assistant/references/annotation_metrics.md +0 -34
  59. ellf_cli-19.0.7/ellf_cli/ellf_skills/skills/ellf-patterns/SKILL.md +0 -80
  60. ellf_cli-19.0.7/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_service_recipe.py +0 -91
  61. ellf_cli-19.0.7/ellf_cli/ellf_skills/skills/ellf-project.assistant/references/annotation_agents.md +0 -100
  62. ellf_cli-19.0.7/ellf_cli/ellf_skills/skills/ellf-project.coding/references/annotation_agents.md +0 -100
  63. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/LICENSE +0 -0
  64. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/MANIFEST.in +0 -0
  65. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/__init__.py +0 -0
  66. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/__main__.py +0 -0
  67. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/about.json +0 -0
  68. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/about.py +0 -0
  69. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/appdirs.py +0 -0
  70. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/auth.py +0 -0
  71. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/cli.py +0 -0
  72. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/cloud/__init__.py +0 -0
  73. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/cloud/gcp.py +0 -0
  74. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/cluster_config.py +0 -0
  75. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/__init__.py +0 -0
  76. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/_cluster_select.py +0 -0
  77. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/_org_select.py +0 -0
  78. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/_project_scope.py +0 -0
  79. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/_recipe_file.py +0 -0
  80. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/_recipe_subcommand.py +0 -0
  81. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/_state.py +0 -0
  82. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/_usage.py +0 -0
  83. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/actions.py +0 -0
  84. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/agents.py +0 -0
  85. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/assets.py +0 -0
  86. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/auth.py +0 -0
  87. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/clusters.py +0 -0
  88. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/config.py +0 -0
  89. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/datasets.py +0 -0
  90. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/files/__init__.py +0 -0
  91. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/files/cp.py +0 -0
  92. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/files/ls.py +0 -0
  93. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/files/rm.py +0 -0
  94. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/files/rsync.py +0 -0
  95. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/files/stats.py +0 -0
  96. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/general.py +0 -0
  97. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/import_export.py +0 -0
  98. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/__init__.py +0 -0
  99. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/_config_io.py +0 -0
  100. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/_helpers.py +0 -0
  101. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/configure.py +0 -0
  102. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/deploy.py +0 -0
  103. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/init.py +0 -0
  104. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/init_values.py +0 -0
  105. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/provision.py +0 -0
  106. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/register.py +0 -0
  107. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/setup.py +0 -0
  108. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/start.py +0 -0
  109. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/terraform.py +0 -0
  110. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/tls.py +0 -0
  111. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/jobs.py +0 -0
  112. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/packages.py +0 -0
  113. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/paths.py +0 -0
  114. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/plans.py +0 -0
  115. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/projects.py +0 -0
  116. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/publish_code.py +0 -0
  117. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/publish_data.py +0 -0
  118. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/recipes.py +0 -0
  119. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/secrets.py +0 -0
  120. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/services.py +0 -0
  121. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/sessions.py +0 -0
  122. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/support.py +0 -0
  123. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/tasks.py +0 -0
  124. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/todos.py +0 -0
  125. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/users.py +0 -0
  126. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/config.py +0 -0
  127. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/.claude-plugin/plugin.json +0 -0
  128. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/.gitignore +0 -0
  129. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skill_variants.json +0 -0
  130. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-ask/SKILL.md +0 -0
  131. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-monitor.assistant/references/training_monitoring.md +0 -0
  132. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-monitor.coding/references/annotation_metrics.md +0 -0
  133. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-ops.coding/scripts/run_job.py +0 -0
  134. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_blocks_ui.py +0 -0
  135. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_correct.py +0 -0
  136. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_custom_ui.py +0 -0
  137. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_manual.py +0 -0
  138. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_pages_ui.py +0 -0
  139. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_routing.py +0 -0
  140. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_teach.py +0 -0
  141. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-project.assistant/references/consulting_patterns.md +0 -0
  142. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-project.assistant/references/explosion_strategy.md +0 -0
  143. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-project.coding/references/consulting_patterns.md +0 -0
  144. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-project.coding/references/explosion_strategy.md +0 -0
  145. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-support.assistant/SKILL.md +0 -0
  146. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.assistant/references/evaluation_guide.md +0 -0
  147. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/config_advanced.md +0 -0
  148. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/config_architectures.md +0 -0
  149. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/config_training.md +0 -0
  150. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/evaluation_guide.md +0 -0
  151. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/experiment_patterns.md +0 -0
  152. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/training_troubleshooting.md +0 -0
  153. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.coding/scripts/ellf_logger.py +0 -0
  154. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/errors.py +0 -0
  155. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/helm.py +0 -0
  156. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/interactivity.py +0 -0
  157. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/key_pair.py +0 -0
  158. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/main.py +0 -0
  159. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/messages.py +0 -0
  160. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/pypi_auth.py +0 -0
  161. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/query.py +0 -0
  162. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/recipes_cookiecutter/cookiecutter.json +0 -0
  163. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/.gitignore +0 -0
  164. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/README.md.tmpl +0 -0
  165. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/requirements-dev.in +0 -0
  166. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/requirements.in +0 -0
  167. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/setup.py.tmpl +0 -0
  168. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/{{cookiecutter.package_name}}/__init__.py +0 -0
  169. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/{{cookiecutter.package_name}}/about.py +0 -0
  170. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/{{cookiecutter.package_name}}/recipes/__init__.py +0 -0
  171. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/{{cookiecutter.package_name}}/recipes/example_task.py +0 -0
  172. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/testing/__init__.py +0 -0
  173. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ty.py +0 -0
  174. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ui.py +0 -0
  175. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/url.py +0 -0
  176. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/util.py +0 -0
  177. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.114_2026-08-19-08-36-57__1a4e37c1-471e-4a81-b4d5-1ffe7dec3a61 +0 -0
  178. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.114_2026-08-19-09-25-21_patch_33ff1e26-0e5e-46d8-8052-ab1d032e8b6c +0 -0
  179. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.115_2026-08-19-09-27-13_patch_4ac728c3-0342-4a36-adbc-e28d2d99b1ba +0 -0
  180. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.116_2026-08-19-09-30-47_patch_c706fef6-6813-4183-b268-12e7b00d7d0b +0 -0
  181. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.117_2026-08-19-09-39-14_patch_c6b0495f-2f88-4aa8-9ebf-0a235b4c407e +0 -0
  182. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.118_2026-08-19-09-52-00_patch_b395655a-8d78-4344-9266-6901c20f6517 +0 -0
  183. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.119_2026-08-19-10-22-38_patch_8f95c49d-aedc-41b8-816d-ccb95f048831 +0 -0
  184. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.120_2026-08-19-10-26-58_patch_7fbf35e6-cc01-4b75-8c9a-f5d054bcaf93 +0 -0
  185. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.121_2026-08-19-10-42-02_patch_31a81b02-a886-4dea-84e0-67cc6ca412d5 +0 -0
  186. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.122_2026-08-19-11-16-49_patch_1c4d7307-48d4-493e-936d-80af799d644b +0 -0
  187. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.123_2026-08-19-11-47-32_patch_d3d78d04-9989-45b1-91b1-93b571d8814a +0 -0
  188. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.124_2026-08-20-08-03-17_patch_57f4c389-2d19-41ce-aca4-13b61c62f387 +0 -0
  189. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.125_2026-08-20-08-25-05_patch_7f368148-0d1c-4525-bbdf-c6d257ad861a +0 -0
  190. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.126_2026-08-20-14-51-36_patch_a99abcc8-3371-4c63-a759-bb7ea5b32432 +0 -0
  191. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.127_2026-08-21-05-48-58_patch_34b4ccee-7596-4f57-93e9-774973cca58e +0 -0
  192. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.128_2026-08-21-10-47-20_patch_693112b9-927c-4a8f-8553-b06eef86079d +0 -0
  193. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.129_2026-08-21-11-16-54_patch_7a981666-01d9-4d1b-9ba3-2129744e3bd5 +0 -0
  194. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.130_2026-08-21-13-09-36_patch_b7ad1a76-ce70-4d70-9d1a-7c414eba5bb4 +0 -0
  195. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.131_2026-08-21-14-31-10_patch_9128ef66-193e-4caf-8710-afd86128e638 +0 -0
  196. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.132_2026-08-24-08-59-34_patch_c600fc14-86a5-460f-9c4e-f0177056f756 +0 -0
  197. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.133_2026-08-24-10-28-29_patch_b6ce3e32-9d7b-48ac-981a-270c22c180dd +0 -0
  198. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.134_2026-08-24-11-00-51_patch_a4fc0484-4a64-46a2-94f8-aa805254c7b0 +0 -0
  199. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.135_2026-08-24-12-12-41_patch_a870a56f-9a65-49eb-92da-f572b26667d8 +0 -0
  200. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.136_2026-08-24-12-42-46_patch_9b399356-6482-4291-8da7-e748a99c4b53 +0 -0
  201. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.137_2026-08-24-12-53-57_patch_f7979348-1910-40cd-a535-90299eca84ee +0 -0
  202. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.138_2026-08-24-14-36-30_patch_ed0f8750-f663-498b-85e7-0d3f2213fcfe +0 -0
  203. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.139_2026-08-25-08-37-26_patch_3ba87e19-902b-4f76-b64c-90e5c0ca1fc6 +0 -0
  204. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.140_2026-08-25-09-52-45_patch_abc830f2-df15-4385-b797-cdaf72c10752 +0 -0
  205. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.141_2026-08-25-11-37-20_patch_1d9ec01e-06f6-4c8e-b095-af17d5b62b00 +0 -0
  206. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.142_2026-08-26-07-38-49_patch_3dd23e36-e7df-494c-986f-a412861a8d40 +0 -0
  207. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.143_2026-08-26-09-32-32_patch_7b7ebd34-de27-4b73-98a7-3e1501e16cd5 +0 -0
  208. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.144_2026-08-26-10-56-43_patch_166064f2-2208-4c9b-9e25-25dc4cd32084 +0 -0
  209. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.145_2026-08-26-11-37-29_patch_b997f3ee-d7d3-4408-9f2f-c8b6d08bdb3b +0 -0
  210. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.146_2026-08-26-12-15-20_patch_afbbb893-25db-468c-81db-2663ca373068 +0 -0
  211. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.147_2026-08-26-14-10-50_patch_fd753b1f-2fa1-4ddb-a9e7-de690da85254 +0 -0
  212. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.148_2026-08-27-09-08-35_patch_23814c0b-7f77-489c-b4a8-ceadd18146e3 +0 -0
  213. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.149_2026-08-27-09-40-17_patch_8879d72e-a3d8-4abc-a16a-d9dcf75f0fa1 +0 -0
  214. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.150_2026-08-27-10-57-25_patch_afbe60ed-3e23-4d88-be3c-f800d7002a7d +0 -0
  215. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.151_2026-08-28-09-02-46_patch_1d4ca23b-aeae-4ea8-96b1-8cf57371f29d +0 -0
  216. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.152_2026-08-28-15-37-24_patch_c9d0bdc1-a7e1-432b-92b9-92dc76fe0c78 +0 -0
  217. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.153_2026-08-29-09-03-27_patch_7531573a-1b33-4092-aa9c-0e65f47b201f +0 -0
  218. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.154_2026-08-29-11-56-35_patch_919f5787-39c8-4dc1-ae6a-f27c28380f21 +0 -0
  219. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.155_2026-08-29-15-15-59_patch_822f9ed8-c366-4e5f-9791-dee8467cf3ce +0 -0
  220. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.156_2026-08-29-16-19-01_patch_3ac2bf36-20f7-4c9f-9fdb-295d4466d59e +0 -0
  221. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.157_2026-08-30-17-32-17_patch_4302354c-c9c5-4be7-acd3-542872a748d8 +0 -0
  222. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.158_2026-08-31-09-28-33_patch_3523774f-c25d-4102-8c1a-92fff046a48d +0 -0
  223. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.159_2026-08-31-10-31-01_patch_fe3e6290-2553-4154-a0a0-8b8a418280ed +0 -0
  224. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.160_2026-08-31-11-23-39_patch_e701a085-3d23-4212-b0af-73b1d419a4c1 +0 -0
  225. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.161_2026-08-31-12-41-01_patch_074d7bde-c493-44db-bc15-e81fd91e2921 +0 -0
  226. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.162_2026-08-31-13-58-06_patch_84db1d60-4280-433b-bd3a-22e5611cd315 +0 -0
  227. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.163_2026-08-31-15-25-54_patch_1931c5ba-73df-48cb-8dcb-555ace0af267 +0 -0
  228. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.163_2026-08-31-15-44-37_patch_3962e805-2a92-494a-a87b-b6e6d66c40a0 +0 -0
  229. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.165_2026-08-31-19-48-59_patch_86e5b923-2b99-4b86-b542-469b197614be +0 -0
  230. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.166_2026-09-01-07-39-57_patch_c344892f-d542-4e7b-8f27-02365a411e15 +0 -0
  231. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.167_2026-09-01-08-21-53_patch_e199d419-282a-4dbb-8756-cf98b7037e2b +0 -0
  232. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.168_2026-09-01-09-12-31_patch_235c9fe0-da15-431d-bb56-01e2b9b15f4b +0 -0
  233. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.169_2026-09-01-11-54-19_patch_98b617ab-d130-42b5-93f2-19cae56d4c4c +0 -0
  234. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.170_2026-09-02-09-27-28_patch_e448d2e6-b7ec-4235-96bf-0173b3623c87 +0 -0
  235. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.171_2026-09-02-12-52-44_patch_e6a241c2-1d62-482c-a9eb-9e3373395c50 +0 -0
  236. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.172_2026-09-04-08-47-04_patch_daae079f-c104-4fcd-bb57-7bff68e80ad9 +0 -0
  237. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.173_2026-09-04-12-34-42_patch_399c4cbd-0c28-4dfd-a4ec-e569420a36e4 +0 -0
  238. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.174_2026-09-04-13-08-48_patch_f5cfe3d5-808e-45e4-bafc-00d0554838ee +0 -0
  239. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.175_2026-09-04-17-20-46_patch_1ef542fa-5d8e-4d90-aa15-9fc4cea3dfec +0 -0
  240. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.176_2026-09-05-08-25-05_patch_ced5521f-f9da-4640-a921-95fcb5cd2e6d +0 -0
  241. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.177_2026-09-05-09-00-16_patch_803c1ad4-a9af-4953-92c5-d882dec03ea2 +0 -0
  242. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.178_2026-09-05-09-30-34_patch_012f6259-2e3f-4591-9806-1920fd06cb1f +0 -0
  243. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.179_2026-09-05-09-33-43_patch_f4bdf28c-d584-47a5-b699-8c883330162c +0 -0
  244. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.180_2026-09-05-12-02-21_patch_34a14b01-d22d-44a8-ac63-be0370a61422 +0 -0
  245. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.181_2026-09-05-12-47-46_patch_56b18867-99f6-4d5c-8215-7b9d60d34010 +0 -0
  246. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.182_2026-09-05-13-35-18_patch_61b7d4d1-73c8-4603-9b0c-593e7405587f +0 -0
  247. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.183_2026-09-06-07-27-09_patch_d76331b2-e3a3-4c0b-8412-ecd131b6ac02 +0 -0
  248. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.184_2026-09-06-10-21-47_patch_7680b7a1-49f0-4eef-b12e-4c854407448c +0 -0
  249. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.185_2026-09-06-10-30-40_patch_e56c2183-77f8-44ef-a92e-7377ea6ce8c1 +0 -0
  250. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.186_2026-09-07-10-00-51_patch_67de5683-d208-4bc0-8fb6-7677377908e7 +0 -0
  251. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.187_2026-09-07-10-18-13_patch_2086cee2-276b-48f7-80ce-6a17397b9541 +0 -0
  252. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.188_2026-09-07-12-51-28_patch_d6590822-068f-4a19-814d-34bbf204ba6e +0 -0
  253. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.189_2026-09-07-12-55-23_patch_7e0fb04b-4d40-4490-974f-c74ba2ae55a1 +0 -0
  254. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.190_2026-09-08-08-58-03_patch_15e3ac1e-4475-4272-bdd8-d00bb0db8f17 +0 -0
  255. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.191_2026-09-08-09-55-58_patch_3d350e50-ee53-4282-bc75-d2251142c46e +0 -0
  256. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.192_2026-09-08-11-12-21_patch_0733223b-1ae2-4b5b-897f-dfc57574ff83 +0 -0
  257. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.193_2026-09-08-21-48-17_patch_8d07d4e6-3555-4720-85c9-9452570fae2d +0 -0
  258. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.194_2026-09-09-07-53-43_patch_69559429-aa42-4b62-9bd7-cdfded1c00d0 +0 -0
  259. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.195_2026-09-09-09-55-40_patch_bbf67f1d-3b9a-43a2-b1bc-22df3fed8a34 +0 -0
  260. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.196_2026-09-09-09-59-47_patch_70d76812-7b3c-4192-ad49-fcaccc29b0da +0 -0
  261. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.197_2026-09-09-13-06-06_patch_d455be0b-5421-492a-b952-fab0fd8110f8 +0 -0
  262. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.198_2026-09-09-13-14-34_patch_267f54e5-311e-435e-882f-8e19191325ea +0 -0
  263. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.199_2026-09-09-22-24-18_patch_81e3e453-ca0e-42fa-9c21-8f94d43c05f2 +0 -0
  264. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.200_2026-09-10-07-19-50_patch_911714fa-1fa3-4165-bfe6-d10c650bf5bf +0 -0
  265. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.201_2026-09-10-10-14-19_patch_864015f2-b0b0-4563-a1c8-155629cb9126 +0 -0
  266. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.202_2026-09-10-11-00-05_patch_18270ecf-e770-4e69-8bcf-e5143c39929b +0 -0
  267. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.203_2026-09-10-11-10-41_patch_ff273ab1-44f3-4bc0-b184-3396e943df04 +0 -0
  268. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.204_2026-09-10-13-02-02_patch_d4ee41e2-d13c-4941-8605-3f1a42b56b22 +0 -0
  269. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.205_2026-09-10-13-57-50_patch_284df67e-5957-4b0c-bc64-5581db6ddecc +0 -0
  270. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.206_2026-09-11-10-18-50_patch_1ac7e410-0e62-4eef-bbe4-ebf93c9d0869 +0 -0
  271. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/17.0.207_2026-09-11-15-26-02_major_3f1b3ed7-eaac-41f5-b740-0af3331595d9 +0 -0
  272. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.0_2026-09-12-10-01-10_patch_8995783a-a9fa-4c4e-90b3-6386a4c481eb +0 -0
  273. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.10_2026-09-14-16-09-38_patch_9403d562-eed0-4125-a8b3-09cd92a13298 +0 -0
  274. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.11_2026-09-15-09-05-57_patch_8b22dba2-d931-4c4d-ae60-db3238d5e73d +0 -0
  275. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.12_2026-09-15-11-18-52_patch_81314afa-e70d-4ad8-b45b-3f8d62b983e7 +0 -0
  276. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.13_2026-09-16-08-00-55_patch_bfa30fc0-3281-4de6-bb56-d7290c98d1c3 +0 -0
  277. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.14_2026-09-16-14-38-26_patch_aae6e9b0-88f4-4bcf-b611-3308c7fcd6eb +0 -0
  278. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.15_2026-09-17-07-58-54_patch_43d40582-effd-4925-a8bd-e70fecf1faab +0 -0
  279. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.16_2026-09-17-08-12-37_patch_b4db2d23-88f1-45c1-82d9-78d38014fcb6 +0 -0
  280. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.17_2026-09-18-09-38-19_patch_25697fc3-e9a8-4980-962b-e6cb0a4760c5 +0 -0
  281. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.18_2026-09-18-09-54-33_patch_d37d9c71-c469-4d94-90d7-4898915ee991 +0 -0
  282. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.19_2026-09-18-10-47-33_patch_47607b3c-d1b6-4864-b9b0-00a2a8d2ac32 +0 -0
  283. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.1_2026-09-12-17-33-30_patch_f6ea2c99-a715-4c4d-876a-23ed8c62a83d +0 -0
  284. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.20_2026-09-18-11-07-21_patch_5a336f91-63a6-4877-97ed-da89395cc8f5 +0 -0
  285. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.21_2026-09-18-13-34-52_patch_c56462e1-63d9-498f-a912-c80c5f0171d1 +0 -0
  286. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.22_2026-09-20-08-10-45_patch_6afa2c20-bcef-4b7d-8685-2c9815d8683f +0 -0
  287. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.23_2026-09-20-08-38-35_patch_a7f169e5-37ab-4ec0-bf89-d14770181303 +0 -0
  288. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.24_2026-09-20-15-49-27_patch_c1222081-ff44-4f20-aea2-5840b6d76efd +0 -0
  289. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.25_2026-09-21-06-11-40_patch_6df46dd9-e7d3-4e71-bec4-e5c93b4ac863 +0 -0
  290. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.26_2026-09-21-07-54-11_patch_cc52dd36-5eba-4094-a1b0-d6f79f103441 +0 -0
  291. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.27_2026-09-21-08-36-49_patch_a25fa125-9bcd-4317-8da5-851c1c329631 +0 -0
  292. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.28_2026-09-21-09-44-01_patch_4430a721-0b3c-4f6a-b9bc-a53e667161bb +0 -0
  293. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.29_2026-09-21-10-58-07_patch_83b2b942-60a4-4bef-afd1-99690ba52b69 +0 -0
  294. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.2_2026-09-13-06-36-33_patch_176bb944-1c49-4dd3-a001-8fce908825a0 +0 -0
  295. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.30_2026-09-21-12-51-16_patch_519b9a65-d400-4234-b113-36b46e315507 +0 -0
  296. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.31_2026-09-22-06-53-35_patch_5c45a235-81b6-4d05-801a-07dc7db61400 +0 -0
  297. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.32_2026-09-22-07-42-04_patch_f12c6415-8166-4063-9e5d-26601b929d63 +0 -0
  298. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.33_2026-09-22-08-12-32_patch_cec31bb0-a6cb-43e6-8407-25aba322b54c +0 -0
  299. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.34_2026-09-23-07-09-16_patch_659fccbb-c0a0-4f6f-bc87-e6abaa8815a7 +0 -0
  300. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.35_2026-09-23-09-38-52_patch_023f904d-807a-4833-8a40-570365e8ec06 +0 -0
  301. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.36_2026-09-23-10-05-33_patch_846fb491-2b1b-47ed-ac1f-ba40e744e199 +0 -0
  302. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.37_2026-09-23-13-08-30_patch_8e4b1d24-156e-4ffe-8e4a-b8740ec18588 +0 -0
  303. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.38_2026-09-24-06-41-37_patch_67adb1d6-3f49-4357-a67f-b1d48f23a972 +0 -0
  304. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.39_2026-09-24-15-24-32_patch_e5dd375d-5643-4514-9b65-8d877c4a2bb2 +0 -0
  305. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.3_2026-09-13-12-32-46_patch_58e5ce3a-f2a7-4789-b2cd-5cc75c72b6ec +0 -0
  306. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.40_2026-09-24-19-58-14_patch_ff18824b-be51-4a3d-a621-e96279e53c3e +0 -0
  307. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.41_2026-09-26-09-24-52_patch_b9979267-30f9-440a-a4ce-c611991d4886 +0 -0
  308. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.42_2026-09-28-12-39-34_patch_dda535d9-8922-4eb9-ab51-6ecff0650c10 +0 -0
  309. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.43_2026-09-28-13-35-27_minor_aca1168a-1286-4326-9d0c-2f2587c9fe92 +0 -0
  310. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.4_2026-09-13-12-45-14_patch_b6c79d55-8f85-4f47-a304-df52b122c38c +0 -0
  311. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.5_2026-09-13-14-11-18_patch_9b111116-5e62-472a-b72c-d1bbafa22c97 +0 -0
  312. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.5_2026-09-13-17-01-11_patch_d4bf61c0-83ac-4dd3-b512-a65805d298c8 +0 -0
  313. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.6_2026-09-14-11-31-04_patch_fd2ebda6-22cb-4e7d-9452-2f6f2640e828 +0 -0
  314. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.7_2026-09-13-17-06-08_patch_428af161-0b27-43c2-8751-e5f7874df120 +0 -0
  315. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.0.9_2026-09-14-12-37-42_patch_b2ca0529-4b67-4fa4-8fdc-5f5e9f5d5166 +0 -0
  316. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.1.0_2026-09-28-14-27-54_patch_324444f7-d24e-4189-b21f-1188894a3109 +0 -0
  317. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/18.1.1_2026-09-28-21-03-07_major_e266a14a-7d96-4ece-92a3-8f34e64438a5 +0 -0
  318. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/19.0.0_2026-09-29-11-05-31_patch_77d6f9f8-ead3-4d79-a4b2-b084b2dffc98 +0 -0
  319. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/19.0.1_2026-09-29-11-59-38_patch_bbf4753c-d641-4c2f-ac7c-02be6bd8e7c2 +0 -0
  320. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/19.0.2_2026-09-29-12-44-07_patch_19fdaa94-60dc-464b-93b8-c17607ebc7b6 +0 -0
  321. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/19.0.3_2026-09-29-14-16-00_patch_3cb60272-95cf-4311-8897-721e1b5c2c88 +0 -0
  322. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/19.0.4_2026-09-29-16-24-53_patch_9fe8ad2b-e3ec-4558-a5fc-9c44c5c266dc +0 -0
  323. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/19.0.5_2026-09-29-17-13-16_patch_e48d2dd2-f41a-402e-a441-756b23c01dcb +0 -0
  324. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/19.0.6_2026-09-29-17-22-11_patch_3b1c79e9-9002-4e96-ba78-10668c33be6a +0 -0
  325. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/__init__.py +0 -0
  326. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/read_version.py +0 -0
  327. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli.egg-info/dependency_links.txt +0 -0
  328. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli.egg-info/entry_points.txt +0 -0
  329. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli.egg-info/not-zip-safe +0 -0
  330. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli.egg-info/requires.txt +0 -0
  331. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli.egg-info/top_level.txt +0 -0
  332. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/pyproject.toml +0 -0
  333. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/setup.cfg +0 -0
  334. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/setup.py +0 -0
  335. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_agents_info_stats.py +0 -0
  336. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_appdirs.py +0 -0
  337. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_auth.py +0 -0
  338. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_clusters_info_stats.py +0 -0
  339. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_config.py +0 -0
  340. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_datasets_export.py +0 -0
  341. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_errors.py +0 -0
  342. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_files_cp.py +0 -0
  343. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_files_cp_helpers.py +0 -0
  344. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_helm.py +0 -0
  345. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_import_export.py +0 -0
  346. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_info.py +0 -0
  347. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_infra_config_io.py +0 -0
  348. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_infra_configure.py +0 -0
  349. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_infra_deploy_node_labels.py +0 -0
  350. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_infra_get_terraform.py +0 -0
  351. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_infra_init.py +0 -0
  352. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_infra_provision.py +0 -0
  353. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_infra_start_fixes.py +0 -0
  354. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_infra_start_validation.py +0 -0
  355. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_infra_state_bucket.py +0 -0
  356. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_infra_terraform_init.py +0 -0
  357. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_invalid_secrets.py +0 -0
  358. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_job_list_project_filter.py +0 -0
  359. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_jobs_info_hides_creator.py +0 -0
  360. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_jobs_list_unmatched.py +0 -0
  361. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_key_pair.py +0 -0
  362. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_login.py +0 -0
  363. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_logout.py +0 -0
  364. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_main.py +0 -0
  365. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_org_select.py +0 -0
  366. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_plans.py +0 -0
  367. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_projects.py +0 -0
  368. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_projects_delete_confirm.py +0 -0
  369. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_publish_build_poll.py +0 -0
  370. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_publish_data.py +0 -0
  371. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_publish_import_root.py +0 -0
  372. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_publish_requirements.py +0 -0
  373. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_pypi_auth.py +0 -0
  374. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_query.py +0 -0
  375. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_recipe_file.py +0 -0
  376. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_recipes.py +0 -0
  377. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_sessions.py +0 -0
  378. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_state.py +0 -0
  379. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_support.py +0 -0
  380. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_todos.py +0 -0
  381. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_ty.py +0 -0
  382. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_ui.py +0 -0
  383. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_ui_extras.py +0 -0
  384. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_usage_counts.py +0 -0
  385. {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ellf-cli
3
- Version: 19.0.7
3
+ Version: 19.0.9
4
4
  Summary: Ellf Command Line Interface
5
5
  Home-page: https://prodi.gy
6
6
  Author: ExplosionAI GmbH
@@ -1467,7 +1467,7 @@ List all users in the organization
1467
1467
 
1468
1468
  | Argument | Type | Description | Default |
1469
1469
  | --- | --- | --- | --- |
1470
- | `--select` | `list[str]` | Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'name', 'org_id', 'org_name', 'person_id', 'email', 'avatar_url', 'locale', 'is_org_admin', 'is_org_developer', 'last_cluster_id', 'last_project_id', 'deactivated_at', 'role', 'status'] | `['id', 'name', 'email', 'role']` |
1470
+ | `--select` | `list[str]` | Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'name', 'org_id', 'org_name', 'person_id', 'email', 'avatar_url', 'avatar_color', 'locale', 'is_org_admin', 'is_org_developer', 'last_cluster_id', 'last_project_id', 'deactivated_at', 'role', 'status'] | `['id', 'name', 'email', 'role']` |
1471
1471
  | `--role` | `str` | Filter by role | `None` |
1472
1472
  | `--include-deactivated` | `bool` | Include deactivated users | `False` |
1473
1473
  | `--json` | `bool` | Output the result as JSON | `False` |
@@ -1479,7 +1479,7 @@ Get detailed info for a user
1479
1479
  | Argument | Type | Description | Default |
1480
1480
  | --- | --- | --- | --- |
1481
1481
  | `email_name_or_id` | `Union[str, UUID]` | Email, name, or ID of the user | |
1482
- | `--select` | `list[str]` | Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'name', 'org_id', 'org_name', 'person_id', 'email', 'avatar_url', 'locale', 'is_org_admin', 'is_org_developer', 'last_cluster_id', 'last_project_id', 'deactivated_at', 'groups', 'tags'] | `None` |
1482
+ | `--select` | `list[str]` | Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'name', 'org_id', 'org_name', 'person_id', 'email', 'avatar_url', 'avatar_color', 'locale', 'is_org_admin', 'is_org_developer', 'last_cluster_id', 'last_project_id', 'deactivated_at', 'groups', 'tags', 'default_avatar_url'] | `None` |
1483
1483
  | `--json` | `bool` | Output the result as JSON | `False` |
1484
1484
 
1485
1485
  #### `ellf users whoami`
@@ -1488,7 +1488,7 @@ Show the currently authenticated user
1488
1488
 
1489
1489
  | Argument | Type | Description | Default |
1490
1490
  | --- | --- | --- | --- |
1491
- | `--select` | `list[str]` | Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'name', 'org_id', 'org_name', 'person_id', 'email', 'avatar_url', 'locale', 'is_org_admin', 'is_org_developer', 'last_cluster_id', 'last_project_id', 'deactivated_at', 'groups', 'tags'] | `None` |
1491
+ | `--select` | `list[str]` | Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'name', 'org_id', 'org_name', 'person_id', 'email', 'avatar_url', 'avatar_color', 'locale', 'is_org_admin', 'is_org_developer', 'last_cluster_id', 'last_project_id', 'deactivated_at', 'groups', 'tags', 'default_avatar_url'] | `None` |
1492
1492
  | `--json` | `bool` | Output the result as JSON | `False` |
1493
1493
 
1494
1494
  #### `ellf users update`
@@ -1541,7 +1541,7 @@ List pending invitations
1541
1541
 
1542
1542
  | Argument | Type | Description | Default |
1543
1543
  | --- | --- | --- | --- |
1544
- | `--select` | `list[str]` | Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'org_id', 'email', 'claimed', 'vars', 'created_by_id', 'role'] | `['id', 'email', 'role', 'claimed']` |
1544
+ | `--select` | `list[str]` | Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'org_id', 'email', 'avatar_color', 'avatar_url', 'claimed', 'vars', 'created_by_id', 'role'] | `['id', 'email', 'role', 'claimed']` |
1545
1545
  | `--all` | `bool` | Also include invitations that have already been claimed | `False` |
1546
1546
  | `--json` | `bool` | Output the result as JSON | `False` |
1547
1547
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "prog": "ellf",
3
3
  "help": "Ellf Command Line Interface.",
4
- "version": "19.0.7",
4
+ "version": "19.0.9",
5
5
  "extra_key": "_extra",
6
6
  "commands": {
7
7
  "actions": {
@@ -8581,9 +8581,9 @@
8581
8581
  "id": "select",
8582
8582
  "option": "--select",
8583
8583
  "short": null,
8584
- "orig_help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'name', 'org_id', 'org_name', 'person_id', 'email', 'avatar_url', 'locale', 'is_org_admin', 'is_org_developer', 'last_cluster_id', 'last_project_id', 'deactivated_at', 'role', 'status']",
8584
+ "orig_help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'name', 'org_id', 'org_name', 'person_id', 'email', 'avatar_url', 'avatar_color', 'locale', 'is_org_admin', 'is_org_developer', 'last_cluster_id', 'last_project_id', 'deactivated_at', 'role', 'status']",
8585
8585
  "default": "['id', 'name', 'email', 'role']",
8586
- "help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'name', 'org_id', 'org_name', 'person_id', 'email', 'avatar_url', 'locale', 'is_org_admin', 'is_org_developer', 'last_cluster_id', 'last_project_id', 'deactivated_at', 'role', 'status'] (list[str])",
8586
+ "help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'name', 'org_id', 'org_name', 'person_id', 'email', 'avatar_url', 'avatar_color', 'locale', 'is_org_admin', 'is_org_developer', 'last_cluster_id', 'last_project_id', 'deactivated_at', 'role', 'status'] (list[str])",
8587
8587
  "action": null,
8588
8588
  "choices": null,
8589
8589
  "has_converter": true,
@@ -8659,9 +8659,9 @@
8659
8659
  "id": "select",
8660
8660
  "option": "--select",
8661
8661
  "short": null,
8662
- "orig_help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'name', 'org_id', 'org_name', 'person_id', 'email', 'avatar_url', 'locale', 'is_org_admin', 'is_org_developer', 'last_cluster_id', 'last_project_id', 'deactivated_at', 'groups', 'tags']",
8662
+ "orig_help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'name', 'org_id', 'org_name', 'person_id', 'email', 'avatar_url', 'avatar_color', 'locale', 'is_org_admin', 'is_org_developer', 'last_cluster_id', 'last_project_id', 'deactivated_at', 'groups', 'tags', 'default_avatar_url']",
8663
8663
  "default": null,
8664
- "help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'name', 'org_id', 'org_name', 'person_id', 'email', 'avatar_url', 'locale', 'is_org_admin', 'is_org_developer', 'last_cluster_id', 'last_project_id', 'deactivated_at', 'groups', 'tags'] (list[str])",
8664
+ "help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'name', 'org_id', 'org_name', 'person_id', 'email', 'avatar_url', 'avatar_color', 'locale', 'is_org_admin', 'is_org_developer', 'last_cluster_id', 'last_project_id', 'deactivated_at', 'groups', 'tags', 'default_avatar_url'] (list[str])",
8665
8665
  "action": null,
8666
8666
  "choices": null,
8667
8667
  "has_converter": true,
@@ -8694,9 +8694,9 @@
8694
8694
  "id": "select",
8695
8695
  "option": "--select",
8696
8696
  "short": null,
8697
- "orig_help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'name', 'org_id', 'org_name', 'person_id', 'email', 'avatar_url', 'locale', 'is_org_admin', 'is_org_developer', 'last_cluster_id', 'last_project_id', 'deactivated_at', 'groups', 'tags']",
8697
+ "orig_help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'name', 'org_id', 'org_name', 'person_id', 'email', 'avatar_url', 'avatar_color', 'locale', 'is_org_admin', 'is_org_developer', 'last_cluster_id', 'last_project_id', 'deactivated_at', 'groups', 'tags', 'default_avatar_url']",
8698
8698
  "default": null,
8699
- "help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'name', 'org_id', 'org_name', 'person_id', 'email', 'avatar_url', 'locale', 'is_org_admin', 'is_org_developer', 'last_cluster_id', 'last_project_id', 'deactivated_at', 'groups', 'tags'] (list[str])",
8699
+ "help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'name', 'org_id', 'org_name', 'person_id', 'email', 'avatar_url', 'avatar_color', 'locale', 'is_org_admin', 'is_org_developer', 'last_cluster_id', 'last_project_id', 'deactivated_at', 'groups', 'tags', 'default_avatar_url'] (list[str])",
8700
8700
  "action": null,
8701
8701
  "choices": null,
8702
8702
  "has_converter": true,
@@ -8981,9 +8981,9 @@
8981
8981
  "id": "select",
8982
8982
  "option": "--select",
8983
8983
  "short": null,
8984
- "orig_help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'org_id', 'email', 'claimed', 'vars', 'created_by_id', 'role']",
8984
+ "orig_help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'org_id', 'email', 'avatar_color', 'avatar_url', 'claimed', 'vars', 'created_by_id', 'role']",
8985
8985
  "default": "['id', 'email', 'role', 'claimed']",
8986
- "help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'org_id', 'email', 'claimed', 'vars', 'created_by_id', 'role'] (list[str])",
8986
+ "help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'org_id', 'email', 'avatar_color', 'avatar_url', 'claimed', 'vars', 'created_by_id', 'role'] (list[str])",
8987
8987
  "action": null,
8988
8988
  "choices": null,
8989
8989
  "has_converter": true,
@@ -27,9 +27,9 @@ If the workflow requires a new custom recipe or custom interface, use
27
27
  methodology or schema work is needed, use `/ellf-project`.
28
28
 
29
29
  **Never narrate routing or argument inference to the user.** The user does
30
- not need to know that you're delegating to `/ellf-ops`, whether you
31
- inferred from their verb that they want the task started, or which cli-name
32
- you chose for which field. Say only what the user can act on: the outcome, the next step, the
30
+ not need to know that you're delegating to `/ellf-ops`, what `auto_start`
31
+ value you inferred from their verb, or which cli-name you chose for which
32
+ field. Say only what the user can act on: the outcome, the next step, the
33
33
  link. The audit summary is useful when something failed and the user needs
34
34
  to fix it; otherwise skip it and let the create tool's artifact (card,
35
35
  form link, or prerequisite link) do the talking.
@@ -118,20 +118,17 @@ mcp__pam__task_create(
118
118
  recipe_id=<from recipe_list>,
119
119
  args=<resolved scalar args>,
120
120
  name=<optional; PAM auto-names from recipe + timestamp when omitted>,
121
+ auto_start=<true if the user said run/start/launch, false for create/save/set up>,
121
122
  )
122
123
  ```
123
124
 
124
- Creating never starts the task. If the user said run/start/launch and the
125
- create returned `status: "created"`, call `mcp__pam__task_start(id=<object.id>)`
126
- next; for create/save/set up, stop after creation.
127
-
128
125
  If an annotation agent was also planned, call `mcp__pam__agent_create(...)`
129
126
  for the agent. After the agent is created and started, attach it to the
130
127
  task with `mcp__pam__task_assign_bot(task_id=..., agent_id=...)`.
131
128
 
132
129
  The create tool's internal validation routes every case to a useful
133
130
  user-facing artifact:
134
- - Allow/Deny confirmation card on clean validation (creates the task; it does not start it)
131
+ - confirmation card (three buttons: `Create and start` / `Create only` / `Cancel`) on clean validation
135
132
  - form-handoff link on missing scalars or complex JSON args
136
133
  - missing-prerequisite link on a referenced asset / dataset / secret that doesn't exist on the cluster
137
134
 
@@ -146,8 +143,8 @@ X, Y, Z", any pre-emptive validation reasoning).
146
143
  Once the user confirms the create card (or the form-handoff link is followed
147
144
  through to completion), help verify and run any follow-ups:
148
145
 
149
- - if the user didn't ask to run it yet: use the `/ellf-ops` start workflow when
150
- they're ready
146
+ - if the task wasn't auto-started (user clicked `Create only`): use `/ellf-ops`
147
+ start workflow when the user is ready
151
148
  - check cluster status with `mcp__cluster__job_status(id="<id>")` to confirm the
152
149
  task is running or healthy
153
150
  - provide the task link and tell the user where to open it in the app
@@ -1,7 +1,7 @@
1
1
  # Annotation Audit Reference
2
2
 
3
3
  Quick-reference for auditing an annotation plan before launching a recipe.
4
- This covers the checks ellf-annotate runs before launch. For deep strategic
4
+ This covers the checks ellf-annotate runs in Step 6. For deep strategic
5
5
  questions (team structure, agile workflow, full schema redesign), escalate to
6
6
  ellf-project.
7
7
 
@@ -39,27 +39,9 @@ workflows.
39
39
  | `audio` | Audio annotation |
40
40
  | `video` | Video annotation |
41
41
  | `curate` | Data curation / exploration |
42
- | `review` | Review and correction of prior annotations (structured datasets only) |
42
+ | `review` | Review and correction of prior annotations |
43
43
  | `sent` | Sentence segmentation |
44
44
 
45
- PDF task recipes (the `recipes_pdf` package; confirm the cluster lists them):
46
-
47
- | Recipe | Use for |
48
- |---|---|
49
- | `pdf_image` | Bounding boxes and segments on PDF pages rendered as images |
50
- | `pdf_spans` | Text spans in PDFs, from a `layout` asset made by the `pdf_layout_fetch` action |
51
- | `pdf_ocr_correct` | OCR the boxes from a `pdf_image` dataset and correct the extracted text |
52
-
53
- `pdf_image` and `pdf_ocr_correct` take a `pdf` asset (`pdf_ocr_correct` also the
54
- `pdf_image` dataset); `pdf_spans` takes the `layout` asset that `pdf_layout_fetch`
55
- makes from one. The `pdf_ingest` action renders a PDF annotation-ready
56
- (it can also run on upload), and `pdf_layout_fetch` extracts its text and layout into the `layout`
57
- asset `pdf_spans` needs.
58
-
59
- `review` only reads datasets in structured storage. Datasets with examples from before
60
- it must first go through the "Migrate dataset to structured" action
61
- (`migrate_to_structured`). Its labels default to the ones found in the annotations.
62
-
63
45
  ## Label schemes
64
46
 
65
47
  Only `ner`, `spans` and `textcat` take a label scheme. No other built-in recipe accepts
@@ -79,7 +61,7 @@ for an existing one before writing a new one. Format and design advice:
79
61
 
80
62
  ## Annotation instructions
81
63
 
82
- Built-in task recipes except `review` and `terms` take annotation instructions in their annotation settings
64
+ Built-in task recipes take annotation instructions in their annotation settings
83
65
  (the **Instructions** field): an asset of kind `instructions` holding one Markdown
84
66
  document. HTML isn't accepted. Annotators open it in the annotation app from the help
85
67
  icon or with the H key.
@@ -126,20 +108,15 @@ them when the user asks for Hugging Face models or already has a suitable fine-t
126
108
  model.
127
109
  - `hf_model_agent` runs a model already fine-tuned for the task (from the Hub or an
128
110
  `hf_model` asset) on the cluster. It only serves `ner_manual` / `spans_manual`, binary
129
- `ner` / `spans`, `choice` and binary `classification` tasks. Model labels with the
130
- same name as a task label map automatically; map the others with `label_map` (model
131
- label → task label). It stops on its first task with an error naming what's missing
132
- when a manual spans or choice task has a label the model can't produce, when the
133
- interface isn't supported, or when the model type doesn't fit the task (a
134
- token-classification model on a choice task, say). Binary tasks whose label the model
135
- doesn't have are answered "ignore" instead.
111
+ `ner` / `spans`, `choice` and binary `classification` tasks. Every task label (or
112
+ choice option) must map to a model label via `label_map`. If one doesn't, or the
113
+ interface isn't supported (`blocks`, `html`, relations, image, audio), the agent stops
114
+ on its first task with an error naming what's missing, rather than answering.
136
115
  - `hf_llm_agent` works like `gemini_agent` but uses a chat model from Hugging Face
137
116
  Inference Providers, and needs an `hf_token` secret. A bad token, missing credits or an
138
117
  unusable model stops it at startup with the reason.
139
118
 
140
- The LLM agents (`gemini_agent`, `hf_llm_agent`) only annotate text: tasks without
141
- text, and interfaces no prompt covers (relations, dependencies, `blocks`, image, audio),
142
- are answered "ignore" and left to people. They include the task's annotation
119
+ The LLM agents (`gemini_agent`, `hf_llm_agent`) include the task's annotation
143
120
  instructions in every prompt by default. Their **Agent annotation settings** add:
144
121
  - **Agent instructions**: an agent-only `instructions` asset, combined with the task's.
145
122
  Use it for guidance only the model needs, such as mistakes it keeps making.
@@ -166,4 +143,4 @@ definitions.
166
143
  annotations rather than creating annotations from scratch.
167
144
  - If the user needs a custom interface, multi-view workflow, unusual routing,
168
145
  or annotation logic the built-ins cannot express cleanly, delegate to
169
- `/ellf-handoff`, which hands the custom recipe to the coding agent.
146
+ `ellf-prodigy`.
@@ -9,10 +9,10 @@ into something a task can use, or when writing annotation guidelines for labels
9
9
  that already exist.
10
10
 
11
11
  **Only some recipes take a scheme.** A scheme is a recipe argument, and the only
12
- built-in recipes that have it are `ner`, `spans` and `textcat` (**Asset** on the
13
- **Labels** field). A custom recipe can take one too, if it implements
12
+ built-in recipes that have it are `ner`, `spans` and `textcat` (`--label-scheme`, or
13
+ **Asset** on the **Labels** field). A custom recipe can take one too, if it implements
14
14
  it with `props.label_scheme` (hand a new one off to the coding agent with `/ellf-handoff`). No other built-in recipe accepts a
15
- `labels` asset, so never suggest a scheme for one of them. For
15
+ `labels` asset, so never suggest a scheme or `--label-scheme` for one of them. For
16
16
  those, write the label definitions into the annotation guidelines (an `instructions`
17
17
  asset) instead, or build a custom recipe if the definitions need to reach annotators
18
18
  and agents label by label.
@@ -93,23 +93,23 @@ Show it to the user and settle the labels before publishing.
93
93
 
94
94
  ## Publishing and using a scheme
95
95
 
96
- - **Publish:** the user uploads the file on the cluster's Assets page with the kind
97
- `labels`. Assets can be previewed from the Assets page and from the asset picker in
98
- recipe forms.
99
- - **Reuse:** ask the user to check the Assets page for an existing `labels` asset
100
- before writing a new one. Use one scheme per label set, not one per task.
96
+ - **Publish:** `ellf publish data scheme.json "<cluster_path>" --name "<name>" --kind labels`,
97
+ or upload the file on the cluster's Assets page with the kind `labels`. Assets can be
98
+ previewed from the Assets page and from the asset picker in recipe forms.
99
+ - **Reuse:** check for an existing `labels` asset (`ellf assets list`, or the Assets
100
+ page) before writing a new one. Use one scheme per label set, not one per task.
101
101
  - **Tasks:** only the built-in `ner`, `spans` and `textcat` recipes (and custom recipes
102
- that implement it) take a scheme. In the web form, their **Labels** field switches
103
- between **List** (typed labels) and **Asset** (a scheme). Prefer a scheme whenever
102
+ that implement it) take a scheme. They accept either a typed list of labels
103
+ (`--label A,B`) or a scheme (`--label-scheme <asset>`). In the web form, the
104
+ **Labels** field switches between **List** and **Asset**. Prefer a scheme whenever
104
105
  the labels need explaining, are reused across tasks, or agents will annotate.
105
106
  - **Annotators** see a label's description when they hover the label in the annotation
106
107
  app (and on choice options for text classification).
107
108
  - **Agents:** a task with a scheme passes its label definitions on to every LLM agent assigned to it
108
109
  (`gemini_agent`, `hf_llm_agent`), and they're included in each prompt: description,
109
110
  `do_not_mark` and the examples that fit the task type. An agent can have its own
110
- scheme on top (its **Label scheme** setting), whose definitions replace the task's
111
- for the labels it defines, or ignore the task's definitions (**Ignore label
112
- definitions from task**).
111
+ scheme on top (`--labels.scheme`), whose definitions replace the task's for the
112
+ labels it defines, or ignore the task's definitions (`--labels.ignore-task-labels`).
113
113
  The agent always annotates the task's labels; labels only its scheme has are ignored.
114
114
  `hf_model_agent` doesn't use label definitions.
115
115
 
@@ -162,15 +162,13 @@ A launch is not complete until you verify that the annotation process is usable.
162
162
  ### Ellf cluster
163
163
 
164
164
  ```bash
165
- ellf tasks logs "<name>" --show-errors --json # state + structured errors
166
- ellf tasks info "<name>" --json # url + stats
165
+ ellf tasks info "<name>" --json
166
+ ellf tasks logs "<name>"
167
167
  ```
168
168
 
169
- Confirm the task exists and its state is `running` or `ready` (`info --json` has no
170
- state field). If an agent was requested:
169
+ Confirm the task exists and is running. If an agent was requested:
171
170
 
172
171
  ```bash
173
- ellf agents logs "<agent_name>" --show-errors --json
174
172
  ellf agents info "<agent_name>" --json
175
173
  ```
176
174
 
@@ -1,7 +1,7 @@
1
1
  # Annotation Audit Reference
2
2
 
3
3
  Quick-reference for auditing an annotation plan before launching a recipe.
4
- This covers the checks ellf-annotate runs before launch. For deep strategic
4
+ This covers the checks ellf-annotate runs in Step 6. For deep strategic
5
5
  questions (team structure, agile workflow, full schema redesign), escalate to
6
6
  ellf-project.
7
7
 
@@ -112,11 +112,12 @@ These catch cases where a different recipe would be significantly more efficient
112
112
 
113
113
  | Situation | Suggestion |
114
114
  |---|---|
115
- | `ner` or `spans` with a blank model, but a trained pipeline exists | Pick the trained model in the recipe's **Model** field: the task shows its predictions to correct, faster than annotating from scratch |
116
- | `ner` or `spans` without patterns, but patterns exist | Add them as a `patterns` asset in the **Patterns** field to pre-highlight matches |
117
- | `textcat` without a model, but a trained classifier exists | Pick the classifier in the **Model** field to pre-select its predictions |
118
- | Large dataset, no model assistance | Consider an annotation agent (`gemini_agent`) to pre-annotate, with humans correcting; see `builtin_ellf_annotation_recipes.md` |
119
- | Complex UI needs (custom blocks, multiple views) | Hand the custom recipe to the coding agent with `/ellf-handoff` |
115
+ | User picks `ner.manual` but has a trained model | Suggest `ner.correct` — faster (correct vs annotate from scratch) |
116
+ | User picks `ner.manual` but has existing patterns | Use patterns for pre-annotation, then `ner.correct` to review |
117
+ | User picks `textcat.manual` but has a trained classifier | Suggest `textcat.correct` |
118
+ | User picks `spans.manual` but has a trained spans model | Suggest `spans.correct` |
119
+ | Large dataset, no model assistance | Suggest active learning recipe (`.teach` variants) |
120
+ | Complex UI needs (custom blocks, multiple views) | Delegate to ellf-prodigy for custom recipe |
120
121
 
121
122
  ---
122
123
 
@@ -39,27 +39,9 @@ workflows.
39
39
  | `audio` | Audio annotation |
40
40
  | `video` | Video annotation |
41
41
  | `curate` | Data curation / exploration |
42
- | `review` | Review and correction of prior annotations (structured datasets only) |
42
+ | `review` | Review and correction of prior annotations |
43
43
  | `sent` | Sentence segmentation |
44
44
 
45
- PDF task recipes (the `recipes_pdf` package; confirm the cluster lists them):
46
-
47
- | Recipe | Use for |
48
- |---|---|
49
- | `pdf_image` | Bounding boxes and segments on PDF pages rendered as images |
50
- | `pdf_spans` | Text spans in PDFs, from a `layout` asset made by the `pdf_layout_fetch` action |
51
- | `pdf_ocr_correct` | OCR the boxes from a `pdf_image` dataset and correct the extracted text |
52
-
53
- `pdf_image` and `pdf_ocr_correct` take a `pdf` asset (`pdf_ocr_correct` also the
54
- `pdf_image` dataset); `pdf_spans` takes the `layout` asset that `pdf_layout_fetch`
55
- makes from one. The `pdf_ingest` action renders a PDF annotation-ready
56
- (`ellf publish data <file.pdf> --kind pdf --render` runs it on upload), and `pdf_layout_fetch` extracts its text and layout into the `layout`
57
- asset `pdf_spans` needs.
58
-
59
- `review` only reads datasets in structured storage. Datasets with examples from before
60
- it must first go through the "Migrate dataset to structured" action
61
- (`migrate_to_structured`). Its labels default to the ones found in the annotations.
62
-
63
45
  ## Label schemes
64
46
 
65
47
  Only `ner`, `spans` and `textcat` take a label scheme. No other built-in recipe accepts
@@ -79,7 +61,7 @@ for an existing one first with `ellf assets list`. Format and design advice:
79
61
 
80
62
  ## Annotation instructions
81
63
 
82
- Built-in task recipes except `review` and `terms` take annotation instructions in their annotation settings
64
+ Built-in task recipes take annotation instructions in their annotation settings
83
65
  (`--settings.instructions`): an asset of kind `instructions` holding one Markdown
84
66
  document. HTML isn't accepted. Annotators open it in the annotation app from the help
85
67
  icon or with the H key. Publish it with
@@ -127,20 +109,15 @@ them when the user asks for Hugging Face models or already has a suitable fine-t
127
109
  model.
128
110
  - `hf_model_agent` runs a model already fine-tuned for the task (from the Hub or an
129
111
  `hf_model` asset) on the cluster. It only serves `ner_manual` / `spans_manual`, binary
130
- `ner` / `spans`, `choice` and binary `classification` tasks. Model labels with the
131
- same name as a task label map automatically; map the others with `label_map` (model
132
- label → task label). It stops on its first task with an error naming what's missing
133
- when a manual spans or choice task has a label the model can't produce, when the
134
- interface isn't supported, or when the model type doesn't fit the task (a
135
- token-classification model on a choice task, say). Binary tasks whose label the model
136
- doesn't have are answered "ignore" instead.
112
+ `ner` / `spans`, `choice` and binary `classification` tasks. Every task label (or
113
+ choice option) must map to a model label via `label_map`. If one doesn't, or the
114
+ interface isn't supported (`blocks`, `html`, relations, image, audio), the agent stops
115
+ on its first task with an error naming what's missing, rather than answering.
137
116
  - `hf_llm_agent` works like `gemini_agent` but uses a chat model from Hugging Face
138
117
  Inference Providers, and needs an `hf_token` secret. A bad token, missing credits or an
139
118
  unusable model stops it at startup with the reason.
140
119
 
141
- The LLM agents (`gemini_agent`, `hf_llm_agent`) only annotate text: tasks without
142
- text, and interfaces no prompt covers (relations, dependencies, `blocks`, image, audio),
143
- are answered "ignore" and left to people. They include the task's annotation
120
+ The LLM agents (`gemini_agent`, `hf_llm_agent`) include the task's annotation
144
121
  instructions in every prompt by default. Their agent settings add:
145
122
  - `--settings.instructions`: an agent-only `instructions` asset, combined with the
146
123
  task's. Use it for guidance only the model needs, such as mistakes it keeps making.
@@ -16,7 +16,6 @@ built-ins or an existing custom recipe are not enough.
16
16
  | `ner.correct` | Correct model predictions |
17
17
  | `ner.teach` | Active-learning binary review |
18
18
  | `ner.llm.correct` | Correct LLM-assisted predictions |
19
- | `ner.silver-to-gold` | Turn binary (accept/reject) annotations into complete gold ones |
20
19
 
21
20
  ## Span Categorization
22
21
 
@@ -24,7 +23,6 @@ built-ins or an existing custom recipe are not enough.
24
23
  |---|---|
25
24
  | `spans.manual` | Manual overlapping span annotation |
26
25
  | `spans.correct` | Correct span predictions |
27
- | `spans.llm.correct` | Correct LLM-assisted span predictions |
28
26
 
29
27
  ## Text Classification
30
28
 
@@ -62,30 +60,6 @@ built-ins or an existing custom recipe are not enough.
62
60
  |---|---|
63
61
  | `coref.manual` | Manual coreference annotation |
64
62
 
65
- ## Image and audio
66
-
67
- | Recipe | Use for |
68
- |---|---|
69
- | `image.manual` | Bounding boxes, polygons and freehand shapes on images |
70
- | `audio.manual` | Label regions in audio or video |
71
- | `audio.transcribe` | Transcribe audio or video |
72
-
73
- ## Terminology
74
-
75
- | Recipe | Use for |
76
- |---|---|
77
- | `terms.teach` | Build a terminology list from seed terms with word vectors |
78
- | `terms.to-patterns` | Turn a terminology dataset into match patterns |
79
-
80
- ## Pre-annotating and comparing
81
-
82
- | Recipe | Use for |
83
- |---|---|
84
- | `ner.model-annotate` / `spans.model-annotate` / `textcat.model-annotate` | Save a model's predictions to a dataset, e.g. to review or compare |
85
- | `ner.llm.fetch` / `spans.llm.fetch` / `textcat.llm.fetch` | Fetch LLM predictions for a whole corpus up front, then correct them |
86
- | `compare` | Compare two sets of outputs side by side (A/B) |
87
- | `ner.eval-ab` | A/B evaluation of two NER models |
88
-
89
63
  ## Relations and review
90
64
 
91
65
  | Recipe | Use for |
@@ -64,10 +64,8 @@ no plain list of labels.
64
64
  exactly the span's `text`.
65
65
 
66
66
  Unknown keys are an error (`"desc"` instead of `"description"`), and so is anything
67
- else that doesn't fit the format; a top-level `"$schema"` string is allowed. The file
68
- is checked when it's published with `ellf publish data --kind labels` and again when a
69
- task or agent loads it, and every problem is reported at once, so fix them all in one
70
- go.
67
+ else that doesn't fit the format. The file is checked when a task or agent loads it,
68
+ and every problem is reported at once, so fix them all in one go.
71
69
 
72
70
  ## Designing a scheme
73
71
 
@@ -101,34 +99,25 @@ user has annotated data for the labels, or can't settle the definitions up front
101
99
 
102
100
  - **From an existing dataset.** Export it with
103
101
  `ellf datasets export "<dataset>" -o annotations.jsonl` and derive the scheme from
104
- it, as described below. Export refuses datasets that still hold examples from
105
- before structured storage; run the "Migrate dataset to structured" action
106
- (`migrate_to_structured`) on them first.
102
+ it, as described below.
107
103
  - **Pilot first, then write the scheme.** If there's no data yet and the labels
108
104
  aren't settled, queue up a small batch with a plain list of labels (`--label A,B`)
109
105
  and flagging enabled (`"show_flag": true` in the Prodigy config), and ask the user
110
106
  to go through 50–100 examples, flagging the ones they're unsure about. Then build
111
- the scheme from that dataset, publish it, and create the next task with
112
- `--label-scheme`, so annotators and agents see the definitions from then on (a
113
- task's recipe args can't be changed after creation). The
107
+ the scheme from that dataset, and restart the task, or create the next one, with
108
+ `--label-scheme`, so annotators and agents see the definitions from then on. The
114
109
  flagged examples are usually what `do_not_mark` and the boundary examples need.
115
110
 
116
- The export is structured JSONL, one row per answer: the text is in `input.text`,
117
- the annotation in `user_anns` (`user_anns.spans` for spans, `user_anns.label` for
118
- text classification, `user_anns.accept` for choice; a key missing there comes from
119
- `server_anns`, the suggestion as served), the answer in `answer`, and the flag in
120
- `extras.flagged`. Rows don't record who annotated them.
121
-
122
111
  Derive the scheme from the exported JSONL:
123
112
  - **Labels and order:** the labels used in the data, most frequent first.
124
113
  - **`description`:** what the accepted spans or texts of each label have in common,
125
114
  written as a rule, not a summary of the data.
126
115
  - **`do_not_mark`:** the near misses. In binary (accept/reject) datasets, rejected
127
116
  suggestions are near misses. In manual datasets, look for the same kind of phrase
128
- annotated inconsistently, rows with `extras.flagged` set, and texts that got
129
- different answers or annotations (rows sharing the same `input_hash`).
117
+ annotated inconsistently, examples with `"flagged": true`, and texts that annotators
118
+ answered differently (compare `_session_id`s on the same `_input_hash`).
130
119
  - **`examples`:** one clear positive and one boundary case per label, copied from
131
- accepted answers. The spans in `user_anns.spans` already have `"start"` and `"end"`: keep them when
120
+ accepted answers. Prodigy spans already have `"start"` and `"end"`: keep them when
132
121
  the span text appears more than once in the example, and drop `token_start`,
133
122
  `token_end` and the other keys. Skip `"ignore"`d answers, and rejected answers in
134
123
  manual datasets, which mean the whole example was bad.
@@ -44,6 +44,7 @@ bound at session time.
44
44
  | Field | Value |
45
45
  |---|---|
46
46
  | **Request ID** | `<id from tool result>` |
47
+ | **Project** | <project name> |
47
48
  | **Status** | planned |
48
49
  | **Description** | <description> |
49
50
 
@@ -52,10 +53,3 @@ bound at session time.
52
53
 
53
54
  Briefly explain what the task covers — enough for the user to understand,
54
55
  not a full implementation plan.
55
-
56
- ## Later: checking status
57
-
58
- When the user asks how a handoff went, call `todo_list()` (scoped to this
59
- conversation). With more than one result, let the user pick via `AskUserQuestion`,
60
- using each todo's description as the label. Then `todo_read(id=...)` returns its
61
- status and the resolution the coding agent wrote.
@@ -55,8 +55,7 @@ If there are multiple plausible jobs, use `AskUserQuestion` to let the user choo
55
55
 
56
56
  Read:
57
57
  - `${CLAUDE_SKILL_DIR}/references/training_monitoring.md`
58
- - `${CLAUDE_SKILL_DIR}/../ellf-train/references/diagnostics.md` when an alert needs a root cause
59
-
58
+ - `${CLAUDE_SKILL_DIR}/../ellf-train/references/training_troubleshooting.md`
60
59
  Use cluster calls such as:
61
60
  ```text
62
61
  mcp__cluster__job_status(id="<id>")
@@ -80,9 +79,9 @@ Use cluster calls for job status and per-dataset counts; use PAM for dataset
80
79
  discovery:
81
80
  ```text
82
81
  mcp__cluster__job_status(id="<id>")
83
- mcp__pam__dataset_list() # discover datasets (org-wide), then pick the one you need by name
84
- mcp__cluster__dataset_example_count(name="<name>") # {active, annotated, used, legacy} (per-cluster, via broker)
85
- mcp__cluster__dataset_session_counts(name="<name>") # {counts: {<session>: {annotated, active, used}}, removed: [...]}
82
+ mcp__pam__dataset_list(cluster_id="<id>") # discover datasets (org-wide, registered with PAM)
83
+ mcp__cluster__dataset_example_count(name="<name>") # total examples in the dataset (per-cluster, via broker)
84
+ mcp__cluster__dataset_session_counts(name="<name>") # per-annotator breakdown (keys are session_ids; null = bulk import)
86
85
  ```
87
86
 
88
87
  `dataset_list` is a PAM read (org-wide registry), while the count tools talk to
@@ -96,8 +95,7 @@ Read when needed:
96
95
  Report:
97
96
  - task state
98
97
  - whether the task appears reachable and healthy
99
- - annotation count (from `dataset_example_count`: `active` for the dataset's size,
100
- `annotated` for the work done)
98
+ - annotation count (from `dataset_example_count`)
101
99
  - per-annotator activity (from `dataset_session_counts`) when the user asks
102
100
  who annotated what or about active annotators
103
101
  - dataset growth
@@ -203,4 +201,4 @@ When you finish, state:
203
201
  |------|---------------|--------------|
204
202
  | `${CLAUDE_SKILL_DIR}/references/training_monitoring.md` | Training log interpretation, alert classification, metric extraction | Training actions |
205
203
  | `${CLAUDE_SKILL_DIR}/references/annotation_metrics.md` | Annotation progress signals, dataset growth, annotator activity | Annotation tasks |
206
- | `${CLAUDE_SKILL_DIR}/../ellf-train/references/diagnostics.md` | Six problem classes with detection signals and fix guidance | Diagnosing training issues |
204
+ | `${CLAUDE_SKILL_DIR}/../ellf-train.assistant/references/diagnostics.md` | Six problem classes with detection signals and fix guidance | Diagnosing training issues |
@@ -0,0 +1,26 @@
1
+ # Annotation Metrics
2
+
3
+ Use this reference to interpret annotation activity and quality signals.
4
+
5
+ ## What to watch
6
+
7
+ - Total annotation count — from `mcp__cluster__dataset_example_count`
8
+ - Dataset growth over time — compare counts across checks
9
+ - Number of active annotators or agents — from `mcp__cluster__dataset_session_counts`
10
+ (each non-null key is a session_id; `null` means examples written directly via
11
+ `db-in` rather than through an annotation session)
12
+ - Whether a running task is producing new examples — combine job status with
13
+ example count over time
14
+
15
+ ## Warning signals
16
+
17
+ - Very fast growth can indicate careless annotation
18
+ - Very slow or flat growth can indicate task reachability or assignment problems
19
+ - Frequent agent errors with no dataset growth usually mean the agent is failing to annotate
20
+ - Repeated pauses or restarts may indicate an unstable launch or worker issue
21
+
22
+ ## Interpretation rules
23
+
24
+ - Do not infer annotation quality from counts alone
25
+ - Use counts and status to describe activity, not to prove correctness
26
+ - If progress is suspicious, recommend operational checks first, then methodology review if needed