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.
- {ellf_cli-19.0.7/ellf_cli.egg-info → ellf_cli-19.0.9}/PKG-INFO +1 -1
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/README.md +4 -4
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf.json +9 -9
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-annotate.assistant/SKILL.md +7 -10
- {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
- {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
- {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
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-annotate.coding/SKILL.md +3 -5
- {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
- {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
- {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
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-annotate.coding/references/label_schemes.md +8 -19
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-handoff/SKILL.md +1 -7
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-monitor.assistant/SKILL.md +6 -8
- ellf_cli-19.0.9/ellf_cli/ellf_skills/skills/ellf-monitor.assistant/references/annotation_metrics.md +26 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-monitor.coding/SKILL.md +7 -33
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-monitor.coding/references/training_monitoring.md +2 -8
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-monitor.coding/scripts/check_training.py +17 -29
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-ops.assistant/SKILL.md +25 -41
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-ops.coding/SKILL.md +15 -76
- {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
- ellf_cli-19.0.9/ellf_cli/ellf_skills/skills/ellf-patterns/SKILL.md +48 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-patterns/references/pattern_strategies.md +1 -1
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/SKILL.md +3 -11
- {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
- {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
- {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
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/builtin_recipes.md +8 -31
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/ellf_recipe_sdk.md +36 -195
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/lint_recipe.py +18 -71
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/prodigy_recipe_api.md +41 -48
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/template_index.md +3 -18
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-project.assistant/SKILL.md +18 -24
- {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
- ellf_cli-19.0.9/ellf_cli/ellf_skills/skills/ellf-project.assistant/references/prodigy_llm_bot.md +87 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-project.coding/SKILL.md +13 -13
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-project.coding/references/label_schemes.md +8 -19
- ellf_cli-19.0.9/ellf_cli/ellf_skills/skills/ellf-project.coding/references/prodigy_llm_bot.md +87 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-support.coding/SKILL.md +3 -16
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-todo/SKILL.md +7 -11
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.assistant/SKILL.md +5 -5
- {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
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.assistant/references/model_selection.md +2 -2
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.assistant/references/training_paradigms.md +1 -1
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.assistant/references/workflow.md +8 -7
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.coding/SKILL.md +12 -46
- {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
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/model_selection.md +2 -2
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/training_paradigms.md +1 -1
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/workflow.md +20 -25
- 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
- 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
- {ellf_cli-19.0.7 → ellf_cli-19.0.9/ellf_cli.egg-info}/PKG-INFO +1 -1
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli.egg-info/SOURCES.txt +4 -3
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_users_assign.py +2 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_users_info_stats.py +2 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_users_list.py +1 -0
- ellf_cli-19.0.7/ellf_cli/ellf_skills/skills/ellf-monitor.assistant/references/annotation_metrics.md +0 -34
- ellf_cli-19.0.7/ellf_cli/ellf_skills/skills/ellf-patterns/SKILL.md +0 -80
- ellf_cli-19.0.7/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_service_recipe.py +0 -91
- ellf_cli-19.0.7/ellf_cli/ellf_skills/skills/ellf-project.assistant/references/annotation_agents.md +0 -100
- ellf_cli-19.0.7/ellf_cli/ellf_skills/skills/ellf-project.coding/references/annotation_agents.md +0 -100
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/LICENSE +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/MANIFEST.in +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/__init__.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/__main__.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/about.json +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/about.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/appdirs.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/auth.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/cli.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/cloud/__init__.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/cloud/gcp.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/cluster_config.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/__init__.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/_cluster_select.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/_org_select.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/_project_scope.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/_recipe_file.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/_recipe_subcommand.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/_state.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/_usage.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/actions.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/agents.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/assets.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/auth.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/clusters.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/config.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/datasets.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/files/__init__.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/files/cp.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/files/ls.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/files/rm.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/files/rsync.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/files/stats.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/general.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/import_export.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/__init__.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/_config_io.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/_helpers.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/configure.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/deploy.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/init.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/init_values.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/provision.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/register.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/setup.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/start.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/terraform.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/infra/tls.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/jobs.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/packages.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/paths.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/plans.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/projects.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/publish_code.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/publish_data.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/recipes.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/secrets.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/services.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/sessions.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/support.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/tasks.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/todos.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/commands/users.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/config.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/.claude-plugin/plugin.json +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/.gitignore +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skill_variants.json +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-ask/SKILL.md +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-monitor.assistant/references/training_monitoring.md +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-monitor.coding/references/annotation_metrics.md +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-ops.coding/scripts/run_job.py +0 -0
- {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
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_correct.py +0 -0
- {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
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_manual.py +0 -0
- {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
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_routing.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_teach.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-project.assistant/references/consulting_patterns.md +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-project.assistant/references/explosion_strategy.md +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-project.coding/references/consulting_patterns.md +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-project.coding/references/explosion_strategy.md +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-support.assistant/SKILL.md +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.assistant/references/evaluation_guide.md +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/config_advanced.md +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/config_architectures.md +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/config_training.md +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/evaluation_guide.md +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/experiment_patterns.md +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/training_troubleshooting.md +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-train.coding/scripts/ellf_logger.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/errors.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/helm.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/interactivity.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/key_pair.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/main.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/messages.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/pypi_auth.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/query.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/recipes_cookiecutter/cookiecutter.json +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/.gitignore +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/README.md.tmpl +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/requirements-dev.in +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/requirements.in +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/setup.py.tmpl +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/{{cookiecutter.package_name}}/__init__.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/{{cookiecutter.package_name}}/about.py +0 -0
- {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
- {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
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/testing/__init__.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ty.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ui.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/url.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/util.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/__init__.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/version/read_version.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli.egg-info/dependency_links.txt +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli.egg-info/entry_points.txt +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli.egg-info/not-zip-safe +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli.egg-info/requires.txt +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli.egg-info/top_level.txt +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/pyproject.toml +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/setup.cfg +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/setup.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_agents_info_stats.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_appdirs.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_auth.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_clusters_info_stats.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_config.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_datasets_export.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_errors.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_files_cp.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_files_cp_helpers.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_helm.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_import_export.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_info.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_infra_config_io.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_infra_configure.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_infra_deploy_node_labels.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_infra_get_terraform.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_infra_init.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_infra_provision.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_infra_start_fixes.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_infra_start_validation.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_infra_state_bucket.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_infra_terraform_init.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_invalid_secrets.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_job_list_project_filter.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_jobs_info_hides_creator.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_jobs_list_unmatched.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_key_pair.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_login.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_logout.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_main.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_org_select.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_plans.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_projects.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_projects_delete_confirm.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_publish_build_poll.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_publish_data.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_publish_import_root.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_publish_requirements.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_pypi_auth.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_query.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_recipe_file.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_recipes.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_sessions.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_state.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_support.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_todos.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_ty.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_ui.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_ui_extras.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_usage_counts.py +0 -0
- {ellf_cli-19.0.7 → ellf_cli-19.0.9}/tests/test_util.py +0 -0
|
@@ -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.
|
|
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,
|
{ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-annotate.assistant/SKILL.md
RENAMED
|
@@ -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`,
|
|
31
|
-
inferred from their verb
|
|
32
|
-
|
|
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
|
-
-
|
|
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
|
|
150
|
-
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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`)
|
|
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
|
-
|
|
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` (
|
|
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:**
|
|
97
|
-
|
|
98
|
-
recipe forms.
|
|
99
|
-
- **Reuse:**
|
|
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.
|
|
103
|
-
|
|
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 (
|
|
111
|
-
|
|
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
|
|
{ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-annotate.coding/SKILL.md
RENAMED
|
@@ -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
|
|
166
|
-
ellf tasks
|
|
165
|
+
ellf tasks info "<name>" --json
|
|
166
|
+
ellf tasks logs "<name>"
|
|
167
167
|
```
|
|
168
168
|
|
|
169
|
-
Confirm the task exists and
|
|
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
|
|
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
|
-
|
|
|
116
|
-
|
|
|
117
|
-
| `textcat`
|
|
118
|
-
|
|
|
119
|
-
|
|
|
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
|
|
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
|
|
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.
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
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`)
|
|
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
|
|
68
|
-
|
|
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.
|
|
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,
|
|
112
|
-
`--label-scheme`, so annotators and agents see the definitions from then on
|
|
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,
|
|
129
|
-
|
|
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.
|
|
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.
|
{ellf_cli-19.0.7 → ellf_cli-19.0.9}/ellf_cli/ellf_skills/skills/ellf-monitor.assistant/SKILL.md
RENAMED
|
@@ -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/
|
|
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()
|
|
84
|
-
mcp__cluster__dataset_example_count(name="<name>") #
|
|
85
|
-
mcp__cluster__dataset_session_counts(name="<name>") #
|
|
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
|
|
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 |
|
ellf_cli-19.0.9/ellf_cli/ellf_skills/skills/ellf-monitor.assistant/references/annotation_metrics.md
ADDED
|
@@ -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
|