ellf-cli 20.0.0__tar.gz → 20.0.2__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-20.0.0/ellf_cli.egg-info → ellf_cli-20.0.2}/PKG-INFO +1 -1
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/recipes.py +1 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf.json +56 -56
- ellf_cli-20.0.2/ellf_cli/version/20.0.0_2026-10-10-09-36-17_patch_d2618f39-cdc9-4d3a-ba40-1a0ad6265f3b +3 -0
- ellf_cli-20.0.2/ellf_cli/version/20.0.1_2026-10-11-10-24-33_patch_e29a8713-eecb-4eb1-9641-789d3cfab21a +3 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2/ellf_cli.egg-info}/PKG-INFO +1 -1
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli.egg-info/SOURCES.txt +2 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_recipes.py +23 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/LICENSE +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/MANIFEST.in +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/README.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/__init__.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/__main__.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/about.json +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/about.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/agents.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/appdirs.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/auth.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/cli.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/cloud/__init__.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/cloud/gcp.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/cluster_config.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/__init__.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/_cluster_select.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/_org_select.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/_project_scope.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/_recipe_file.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/_recipe_subcommand.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/_state.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/_usage.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/actions.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/agents.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/assets.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/auth.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/clusters.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/config.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/datasets.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/files/__init__.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/files/cp.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/files/ls.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/files/rm.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/files/rsync.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/files/stats.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/general.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/import_export.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/infra/__init__.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/infra/_config_io.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/infra/_helpers.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/infra/configure.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/infra/deploy.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/infra/hibernate.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/infra/init.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/infra/init_values.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/infra/pause.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/infra/provision.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/infra/register.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/infra/setup.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/infra/start.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/infra/terraform.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/infra/tls.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/jobs.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/mcp.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/packages.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/paths.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/plans.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/projects.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/publish_code.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/publish_data.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/secrets.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/services.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/sessions.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/support.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/tasks.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/todos.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/commands/users.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/config.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/.gitignore +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/render.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-annotate/SKILL.assistant.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-annotate/SKILL.coding.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-annotate/references/annotation_audit.assistant.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-annotate/references/annotation_audit.coding.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-annotate/references/builtin_ellf_annotation_recipes.assistant.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-annotate/references/builtin_ellf_annotation_recipes.coding.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-annotate/references/builtin_prodigy_recipes.coding.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-annotate/references/label_schemes.assistant.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-annotate/references/label_schemes.coding.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-ask/SKILL.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-handoff/SKILL.assistant.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-monitor/SKILL.assistant.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-monitor/SKILL.coding.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-monitor/references/annotation_metrics.assistant.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-monitor/references/annotation_metrics.coding.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-monitor/references/training_monitoring.assistant.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-monitor/references/training_monitoring.coding.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-monitor/scripts.coding/check_training.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-ops/SKILL.assistant.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-ops/SKILL.coding.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-ops/references.coding/data_infra_cli.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-ops/scripts.coding/run_job.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-patterns/SKILL.coding.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-patterns/references/pattern_strategies.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-prodigy/SKILL.coding.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_action_recipe.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_agent_recipe.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_blocks_ui.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_correct.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_custom_ui.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_manual.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_pages_ui.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_routing.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_service_recipe.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_task_recipe.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_teach.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/builtin_recipes.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/ellf_recipe_sdk.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/lint_recipe.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/prodigy_recipe_api.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/template_index.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-project/SKILL.assistant.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-project/SKILL.coding.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-project/references/annotation_agents.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-project/references/consulting_patterns.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-project/references/explosion_strategy.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-project/references/label_schemes.assistant.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-project/references/label_schemes.coding.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-support/SKILL.assistant.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-support/SKILL.coding.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-todo/SKILL.coding.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-train/SKILL.assistant.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-train/SKILL.coding.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-train/references/config_advanced.coding.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-train/references/config_architectures.coding.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-train/references/config_training.coding.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-train/references/diagnostics.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-train/references/evaluation_guide.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-train/references/experiment_patterns.coding.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-train/references/model_selection.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-train/references/training_paradigms.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-train/references/training_troubleshooting.coding.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-train/references/workflow.assistant.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-train/references/workflow.coding.md +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ellf_skills/skills/ellf-train/scripts.coding/ellf_logger.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/errors.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/helm.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/interactivity.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/key_pair.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/main.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/mcp_proxy.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/messages.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/pypi_auth.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/query.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/recipes_cookiecutter/cookiecutter.json +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/.gitignore +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/README.md.tmpl +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/requirements-dev.in +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/requirements.in +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/setup.py.tmpl +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/{{cookiecutter.package_name}}/__init__.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/{{cookiecutter.package_name}}/about.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/{{cookiecutter.package_name}}/recipes/__init__.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/{{cookiecutter.package_name}}/recipes/example_task.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/testing/__init__.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ty.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/ui.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/url.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/util.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.114_2026-08-19-08-36-57__1a4e37c1-471e-4a81-b4d5-1ffe7dec3a61 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.114_2026-08-19-09-25-21_patch_33ff1e26-0e5e-46d8-8052-ab1d032e8b6c +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.115_2026-08-19-09-27-13_patch_4ac728c3-0342-4a36-adbc-e28d2d99b1ba +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.116_2026-08-19-09-30-47_patch_c706fef6-6813-4183-b268-12e7b00d7d0b +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.117_2026-08-19-09-39-14_patch_c6b0495f-2f88-4aa8-9ebf-0a235b4c407e +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.118_2026-08-19-09-52-00_patch_b395655a-8d78-4344-9266-6901c20f6517 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.119_2026-08-19-10-22-38_patch_8f95c49d-aedc-41b8-816d-ccb95f048831 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.120_2026-08-19-10-26-58_patch_7fbf35e6-cc01-4b75-8c9a-f5d054bcaf93 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.121_2026-08-19-10-42-02_patch_31a81b02-a886-4dea-84e0-67cc6ca412d5 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.122_2026-08-19-11-16-49_patch_1c4d7307-48d4-493e-936d-80af799d644b +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.123_2026-08-19-11-47-32_patch_d3d78d04-9989-45b1-91b1-93b571d8814a +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.124_2026-08-20-08-03-17_patch_57f4c389-2d19-41ce-aca4-13b61c62f387 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.125_2026-08-20-08-25-05_patch_7f368148-0d1c-4525-bbdf-c6d257ad861a +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.126_2026-08-20-14-51-36_patch_a99abcc8-3371-4c63-a759-bb7ea5b32432 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.127_2026-08-21-05-48-58_patch_34b4ccee-7596-4f57-93e9-774973cca58e +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.128_2026-08-21-10-47-20_patch_693112b9-927c-4a8f-8553-b06eef86079d +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.129_2026-08-21-11-16-54_patch_7a981666-01d9-4d1b-9ba3-2129744e3bd5 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.130_2026-08-21-13-09-36_patch_b7ad1a76-ce70-4d70-9d1a-7c414eba5bb4 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.131_2026-08-21-14-31-10_patch_9128ef66-193e-4caf-8710-afd86128e638 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.132_2026-08-24-08-59-34_patch_c600fc14-86a5-460f-9c4e-f0177056f756 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.133_2026-08-24-10-28-29_patch_b6ce3e32-9d7b-48ac-981a-270c22c180dd +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.134_2026-08-24-11-00-51_patch_a4fc0484-4a64-46a2-94f8-aa805254c7b0 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.135_2026-08-24-12-12-41_patch_a870a56f-9a65-49eb-92da-f572b26667d8 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.136_2026-08-24-12-42-46_patch_9b399356-6482-4291-8da7-e748a99c4b53 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.137_2026-08-24-12-53-57_patch_f7979348-1910-40cd-a535-90299eca84ee +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.138_2026-08-24-14-36-30_patch_ed0f8750-f663-498b-85e7-0d3f2213fcfe +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.139_2026-08-25-08-37-26_patch_3ba87e19-902b-4f76-b64c-90e5c0ca1fc6 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.140_2026-08-25-09-52-45_patch_abc830f2-df15-4385-b797-cdaf72c10752 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.141_2026-08-25-11-37-20_patch_1d9ec01e-06f6-4c8e-b095-af17d5b62b00 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.142_2026-08-26-07-38-49_patch_3dd23e36-e7df-494c-986f-a412861a8d40 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.143_2026-08-26-09-32-32_patch_7b7ebd34-de27-4b73-98a7-3e1501e16cd5 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.144_2026-08-26-10-56-43_patch_166064f2-2208-4c9b-9e25-25dc4cd32084 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.145_2026-08-26-11-37-29_patch_b997f3ee-d7d3-4408-9f2f-c8b6d08bdb3b +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.146_2026-08-26-12-15-20_patch_afbbb893-25db-468c-81db-2663ca373068 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.147_2026-08-26-14-10-50_patch_fd753b1f-2fa1-4ddb-a9e7-de690da85254 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.148_2026-08-27-09-08-35_patch_23814c0b-7f77-489c-b4a8-ceadd18146e3 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.149_2026-08-27-09-40-17_patch_8879d72e-a3d8-4abc-a16a-d9dcf75f0fa1 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.150_2026-08-27-10-57-25_patch_afbe60ed-3e23-4d88-be3c-f800d7002a7d +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.151_2026-08-28-09-02-46_patch_1d4ca23b-aeae-4ea8-96b1-8cf57371f29d +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.152_2026-08-28-15-37-24_patch_c9d0bdc1-a7e1-432b-92b9-92dc76fe0c78 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.153_2026-08-29-09-03-27_patch_7531573a-1b33-4092-aa9c-0e65f47b201f +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.154_2026-08-29-11-56-35_patch_919f5787-39c8-4dc1-ae6a-f27c28380f21 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.155_2026-08-29-15-15-59_patch_822f9ed8-c366-4e5f-9791-dee8467cf3ce +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.156_2026-08-29-16-19-01_patch_3ac2bf36-20f7-4c9f-9fdb-295d4466d59e +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.157_2026-08-30-17-32-17_patch_4302354c-c9c5-4be7-acd3-542872a748d8 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.158_2026-08-31-09-28-33_patch_3523774f-c25d-4102-8c1a-92fff046a48d +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.159_2026-08-31-10-31-01_patch_fe3e6290-2553-4154-a0a0-8b8a418280ed +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.160_2026-08-31-11-23-39_patch_e701a085-3d23-4212-b0af-73b1d419a4c1 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.161_2026-08-31-12-41-01_patch_074d7bde-c493-44db-bc15-e81fd91e2921 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.162_2026-08-31-13-58-06_patch_84db1d60-4280-433b-bd3a-22e5611cd315 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.163_2026-08-31-15-25-54_patch_1931c5ba-73df-48cb-8dcb-555ace0af267 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.163_2026-08-31-15-44-37_patch_3962e805-2a92-494a-a87b-b6e6d66c40a0 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.165_2026-08-31-19-48-59_patch_86e5b923-2b99-4b86-b542-469b197614be +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.166_2026-09-01-07-39-57_patch_c344892f-d542-4e7b-8f27-02365a411e15 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.167_2026-09-01-08-21-53_patch_e199d419-282a-4dbb-8756-cf98b7037e2b +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.168_2026-09-01-09-12-31_patch_235c9fe0-da15-431d-bb56-01e2b9b15f4b +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.169_2026-09-01-11-54-19_patch_98b617ab-d130-42b5-93f2-19cae56d4c4c +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.170_2026-09-02-09-27-28_patch_e448d2e6-b7ec-4235-96bf-0173b3623c87 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.171_2026-09-02-12-52-44_patch_e6a241c2-1d62-482c-a9eb-9e3373395c50 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.172_2026-09-04-08-47-04_patch_daae079f-c104-4fcd-bb57-7bff68e80ad9 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.173_2026-09-04-12-34-42_patch_399c4cbd-0c28-4dfd-a4ec-e569420a36e4 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.174_2026-09-04-13-08-48_patch_f5cfe3d5-808e-45e4-bafc-00d0554838ee +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.175_2026-09-04-17-20-46_patch_1ef542fa-5d8e-4d90-aa15-9fc4cea3dfec +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.176_2026-09-05-08-25-05_patch_ced5521f-f9da-4640-a921-95fcb5cd2e6d +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.177_2026-09-05-09-00-16_patch_803c1ad4-a9af-4953-92c5-d882dec03ea2 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.178_2026-09-05-09-30-34_patch_012f6259-2e3f-4591-9806-1920fd06cb1f +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.179_2026-09-05-09-33-43_patch_f4bdf28c-d584-47a5-b699-8c883330162c +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.180_2026-09-05-12-02-21_patch_34a14b01-d22d-44a8-ac63-be0370a61422 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.181_2026-09-05-12-47-46_patch_56b18867-99f6-4d5c-8215-7b9d60d34010 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.182_2026-09-05-13-35-18_patch_61b7d4d1-73c8-4603-9b0c-593e7405587f +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.183_2026-09-06-07-27-09_patch_d76331b2-e3a3-4c0b-8412-ecd131b6ac02 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.184_2026-09-06-10-21-47_patch_7680b7a1-49f0-4eef-b12e-4c854407448c +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.185_2026-09-06-10-30-40_patch_e56c2183-77f8-44ef-a92e-7377ea6ce8c1 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.186_2026-09-07-10-00-51_patch_67de5683-d208-4bc0-8fb6-7677377908e7 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.187_2026-09-07-10-18-13_patch_2086cee2-276b-48f7-80ce-6a17397b9541 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.188_2026-09-07-12-51-28_patch_d6590822-068f-4a19-814d-34bbf204ba6e +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.189_2026-09-07-12-55-23_patch_7e0fb04b-4d40-4490-974f-c74ba2ae55a1 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.190_2026-09-08-08-58-03_patch_15e3ac1e-4475-4272-bdd8-d00bb0db8f17 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.191_2026-09-08-09-55-58_patch_3d350e50-ee53-4282-bc75-d2251142c46e +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.192_2026-09-08-11-12-21_patch_0733223b-1ae2-4b5b-897f-dfc57574ff83 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.193_2026-09-08-21-48-17_patch_8d07d4e6-3555-4720-85c9-9452570fae2d +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.194_2026-09-09-07-53-43_patch_69559429-aa42-4b62-9bd7-cdfded1c00d0 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.195_2026-09-09-09-55-40_patch_bbf67f1d-3b9a-43a2-b1bc-22df3fed8a34 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.196_2026-09-09-09-59-47_patch_70d76812-7b3c-4192-ad49-fcaccc29b0da +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.197_2026-09-09-13-06-06_patch_d455be0b-5421-492a-b952-fab0fd8110f8 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.198_2026-09-09-13-14-34_patch_267f54e5-311e-435e-882f-8e19191325ea +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.199_2026-09-09-22-24-18_patch_81e3e453-ca0e-42fa-9c21-8f94d43c05f2 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.200_2026-09-10-07-19-50_patch_911714fa-1fa3-4165-bfe6-d10c650bf5bf +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.201_2026-09-10-10-14-19_patch_864015f2-b0b0-4563-a1c8-155629cb9126 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.202_2026-09-10-11-00-05_patch_18270ecf-e770-4e69-8bcf-e5143c39929b +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.203_2026-09-10-11-10-41_patch_ff273ab1-44f3-4bc0-b184-3396e943df04 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.204_2026-09-10-13-02-02_patch_d4ee41e2-d13c-4941-8605-3f1a42b56b22 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.205_2026-09-10-13-57-50_patch_284df67e-5957-4b0c-bc64-5581db6ddecc +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.206_2026-09-11-10-18-50_patch_1ac7e410-0e62-4eef-bbe4-ebf93c9d0869 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/17.0.207_2026-09-11-15-26-02_major_3f1b3ed7-eaac-41f5-b740-0af3331595d9 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.0_2026-09-12-10-01-10_patch_8995783a-a9fa-4c4e-90b3-6386a4c481eb +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.10_2026-09-14-16-09-38_patch_9403d562-eed0-4125-a8b3-09cd92a13298 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.11_2026-09-15-09-05-57_patch_8b22dba2-d931-4c4d-ae60-db3238d5e73d +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.12_2026-09-15-11-18-52_patch_81314afa-e70d-4ad8-b45b-3f8d62b983e7 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.13_2026-09-16-08-00-55_patch_bfa30fc0-3281-4de6-bb56-d7290c98d1c3 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.14_2026-09-16-14-38-26_patch_aae6e9b0-88f4-4bcf-b611-3308c7fcd6eb +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.15_2026-09-17-07-58-54_patch_43d40582-effd-4925-a8bd-e70fecf1faab +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.16_2026-09-17-08-12-37_patch_b4db2d23-88f1-45c1-82d9-78d38014fcb6 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.17_2026-09-18-09-38-19_patch_25697fc3-e9a8-4980-962b-e6cb0a4760c5 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.18_2026-09-18-09-54-33_patch_d37d9c71-c469-4d94-90d7-4898915ee991 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.19_2026-09-18-10-47-33_patch_47607b3c-d1b6-4864-b9b0-00a2a8d2ac32 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.1_2026-09-12-17-33-30_patch_f6ea2c99-a715-4c4d-876a-23ed8c62a83d +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.20_2026-09-18-11-07-21_patch_5a336f91-63a6-4877-97ed-da89395cc8f5 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.21_2026-09-18-13-34-52_patch_c56462e1-63d9-498f-a912-c80c5f0171d1 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.22_2026-09-20-08-10-45_patch_6afa2c20-bcef-4b7d-8685-2c9815d8683f +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.23_2026-09-20-08-38-35_patch_a7f169e5-37ab-4ec0-bf89-d14770181303 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.24_2026-09-20-15-49-27_patch_c1222081-ff44-4f20-aea2-5840b6d76efd +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.25_2026-09-21-06-11-40_patch_6df46dd9-e7d3-4e71-bec4-e5c93b4ac863 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.26_2026-09-21-07-54-11_patch_cc52dd36-5eba-4094-a1b0-d6f79f103441 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.27_2026-09-21-08-36-49_patch_a25fa125-9bcd-4317-8da5-851c1c329631 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.28_2026-09-21-09-44-01_patch_4430a721-0b3c-4f6a-b9bc-a53e667161bb +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.29_2026-09-21-10-58-07_patch_83b2b942-60a4-4bef-afd1-99690ba52b69 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.2_2026-09-13-06-36-33_patch_176bb944-1c49-4dd3-a001-8fce908825a0 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.30_2026-09-21-12-51-16_patch_519b9a65-d400-4234-b113-36b46e315507 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.31_2026-09-22-06-53-35_patch_5c45a235-81b6-4d05-801a-07dc7db61400 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.32_2026-09-22-07-42-04_patch_f12c6415-8166-4063-9e5d-26601b929d63 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.33_2026-09-22-08-12-32_patch_cec31bb0-a6cb-43e6-8407-25aba322b54c +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.34_2026-09-23-07-09-16_patch_659fccbb-c0a0-4f6f-bc87-e6abaa8815a7 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.35_2026-09-23-09-38-52_patch_023f904d-807a-4833-8a40-570365e8ec06 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.36_2026-09-23-10-05-33_patch_846fb491-2b1b-47ed-ac1f-ba40e744e199 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.37_2026-09-23-13-08-30_patch_8e4b1d24-156e-4ffe-8e4a-b8740ec18588 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.38_2026-09-24-06-41-37_patch_67adb1d6-3f49-4357-a67f-b1d48f23a972 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.39_2026-09-24-15-24-32_patch_e5dd375d-5643-4514-9b65-8d877c4a2bb2 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.3_2026-09-13-12-32-46_patch_58e5ce3a-f2a7-4789-b2cd-5cc75c72b6ec +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.40_2026-09-24-19-58-14_patch_ff18824b-be51-4a3d-a621-e96279e53c3e +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.41_2026-09-26-09-24-52_patch_b9979267-30f9-440a-a4ce-c611991d4886 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.42_2026-09-28-12-39-34_patch_dda535d9-8922-4eb9-ab51-6ecff0650c10 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.43_2026-09-28-13-35-27_minor_aca1168a-1286-4326-9d0c-2f2587c9fe92 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.4_2026-09-13-12-45-14_patch_b6c79d55-8f85-4f47-a304-df52b122c38c +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.5_2026-09-13-14-11-18_patch_9b111116-5e62-472a-b72c-d1bbafa22c97 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.5_2026-09-13-17-01-11_patch_d4bf61c0-83ac-4dd3-b512-a65805d298c8 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.6_2026-09-14-11-31-04_patch_fd2ebda6-22cb-4e7d-9452-2f6f2640e828 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.7_2026-09-13-17-06-08_patch_428af161-0b27-43c2-8751-e5f7874df120 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.0.9_2026-09-14-12-37-42_patch_b2ca0529-4b67-4fa4-8fdc-5f5e9f5d5166 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.1.0_2026-09-28-14-27-54_patch_324444f7-d24e-4189-b21f-1188894a3109 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/18.1.1_2026-09-28-21-03-07_major_e266a14a-7d96-4ece-92a3-8f34e64438a5 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/19.0.0_2026-09-29-11-05-31_patch_77d6f9f8-ead3-4d79-a4b2-b084b2dffc98 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/19.0.10_2026-10-02-12-56-52_patch_14e97576-73ca-44b8-82c9-7dad6f1789ab +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/19.0.11_2026-10-04-10-31-19_patch_088eb371-1799-4949-a119-286cf1cd55d1 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/19.0.12_2026-10-06-18-00-25_patch_36554bed-49c5-41cb-9fd4-48cc6af74c09 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/19.0.13_2026-10-07-12-24-08_patch_a540a364-3a0d-4960-b278-06ba2c7cc258 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/19.0.14_2026-10-07-12-52-39_patch_e3a6fc5c-2ee4-414c-a2dd-4910a655a7dd +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/19.0.15_2026-10-09-04-15-56_patch_bd7a9b06-867b-4fea-9678-973a05e3022d +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/19.0.16_2026-10-09-16-11-56_patch_a1135435-7dea-4f00-8c98-203ba3974382 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/19.0.17_2026-10-09-17-44-55_patch_faeacad8-541a-40f2-ab9c-abcd66fcd00e +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/19.0.18_2026-10-10-07-29-38_major_02601a1e-9bdb-45bf-ad67-a07b7dcd0002 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/19.0.1_2026-09-29-11-59-38_patch_bbf4753c-d641-4c2f-ac7c-02be6bd8e7c2 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/19.0.2_2026-09-29-12-44-07_patch_19fdaa94-60dc-464b-93b8-c17607ebc7b6 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/19.0.3_2026-09-29-14-16-00_patch_3cb60272-95cf-4311-8897-721e1b5c2c88 +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/19.0.4_2026-09-29-16-24-53_patch_9fe8ad2b-e3ec-4558-a5fc-9c44c5c266dc +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/19.0.5_2026-09-29-17-13-16_patch_e48d2dd2-f41a-402e-a441-756b23c01dcb +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/19.0.6_2026-09-29-17-22-11_patch_3b1c79e9-9002-4e96-ba78-10668c33be6a +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/19.0.7_2026-09-30-07-50-58_patch_e8b1f046-d819-499c-9cd5-3e1a20fc9acf +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/19.0.8_2026-10-01-13-41-44_patch_7d63af18-e0af-4127-ab58-aede2407490f +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/19.0.9_2026-10-01-15-57-35_patch_143863cb-8f63-4ef7-bd78-c1114fc93a2d +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/__init__.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli/version/read_version.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli.egg-info/dependency_links.txt +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli.egg-info/entry_points.txt +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli.egg-info/not-zip-safe +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli.egg-info/requires.txt +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/ellf_cli.egg-info/top_level.txt +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/pyproject.toml +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/setup.cfg +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/setup.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_agents.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_agents_info_stats.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_appdirs.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_auth.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_clusters_info_stats.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_config.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_datasets_export.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_errors.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_files_cp.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_files_cp_helpers.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_helm.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_import_export.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_info.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_infra_config_io.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_infra_configure.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_infra_deploy_node_labels.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_infra_destroy.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_infra_get_terraform.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_infra_hibernate.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_infra_init.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_infra_pause.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_infra_provision.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_infra_start_fixes.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_infra_start_validation.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_infra_state_bucket.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_infra_terraform_init.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_invalid_secrets.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_job_list_project_filter.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_jobs_info_hides_creator.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_jobs_list_unmatched.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_key_pair.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_login.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_logout.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_main.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_mcp_proxy.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_org_select.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_plans.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_projects.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_projects_delete_confirm.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_publish_build_poll.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_publish_data.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_publish_import_root.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_publish_requirements.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_pypi_auth.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_query.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_recipe_file.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_recipe_required_args.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_sessions.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_state.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_support.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_todos.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_ty.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_ui.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_ui_extras.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_usage_counts.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_users_assign.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_users_info_stats.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_users_list.py +0 -0
- {ellf_cli-20.0.0 → ellf_cli-20.0.2}/tests/test_util.py +0 -0
|
@@ -167,6 +167,7 @@ def export(
|
|
|
167
167
|
"title": recipe_detail.title,
|
|
168
168
|
"description": recipe_detail.description,
|
|
169
169
|
"job_type": recipe_detail.job_type,
|
|
170
|
+
**({"category": recipe_detail.category} if recipe_detail.category else {}),
|
|
170
171
|
"is_action": recipe_detail.is_action,
|
|
171
172
|
"is_agent": recipe_detail.job_type == "agent",
|
|
172
173
|
"is_service": recipe_detail.job_type == "service",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"prog": "ellf",
|
|
3
3
|
"help": "Ellf Command Line Interface.",
|
|
4
|
-
"version": "20.0.
|
|
4
|
+
"version": "20.0.2",
|
|
5
5
|
"extra_key": "_extra",
|
|
6
6
|
"commands": {
|
|
7
7
|
"actions": {
|
|
@@ -312,7 +312,7 @@
|
|
|
312
312
|
"orig_type": "bool"
|
|
313
313
|
}
|
|
314
314
|
],
|
|
315
|
-
"description": "\
|
|
315
|
+
"description": "\nLog in to your Ellf account. You normally don't need to call this\nmanually. It will automatically authenticate when needed.\n",
|
|
316
316
|
"allow_extra": false,
|
|
317
317
|
"parent": null,
|
|
318
318
|
"is_placeholder": false
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"orig_type": "bool"
|
|
348
348
|
}
|
|
349
349
|
],
|
|
350
|
-
"description": "\
|
|
350
|
+
"description": "\nLog out by deleting locally-stored auth tokens.\n\nPAM bearer tokens can't be revoked server-side, so this is a local\noperation: subsequent commands will trigger a fresh device-flow\nlogin. The cached tokens would have expired on their own within\nroughly an hour. Use ``--all`` to also reset the saved defaults\n(active org, cluster, project, etc.), e.g. when handing the\nmachine to a different user.\n",
|
|
351
351
|
"allow_extra": false,
|
|
352
352
|
"parent": null,
|
|
353
353
|
"is_placeholder": false
|
|
@@ -401,7 +401,7 @@
|
|
|
401
401
|
"orig_type": "Literal[api, cluster, id, ci, ellf-core]"
|
|
402
402
|
}
|
|
403
403
|
],
|
|
404
|
-
"description": "\
|
|
404
|
+
"description": "\nReturn an auth token for the current user\n",
|
|
405
405
|
"allow_extra": false,
|
|
406
406
|
"parent": null,
|
|
407
407
|
"is_placeholder": false
|
|
@@ -479,7 +479,7 @@
|
|
|
479
479
|
"orig_type": "list[Literal[tasks, actions, agents, services, assets, datasets, paths]]"
|
|
480
480
|
}
|
|
481
481
|
],
|
|
482
|
-
"description": "\
|
|
482
|
+
"description": "\nSave the state of the current app JSON file. If an assets directory is\nprovided, assets will be downloaded and referenced in the JSON accordingly.\n",
|
|
483
483
|
"allow_extra": false,
|
|
484
484
|
"parent": null,
|
|
485
485
|
"is_placeholder": false
|
|
@@ -514,7 +514,7 @@
|
|
|
514
514
|
"orig_type": "bool"
|
|
515
515
|
}
|
|
516
516
|
],
|
|
517
|
-
"description": "\
|
|
517
|
+
"description": "\nPopulate Ellf with data for projects, tasks, actions, agents, services,\nassets, datasets and paths.\n",
|
|
518
518
|
"allow_extra": false,
|
|
519
519
|
"parent": null,
|
|
520
520
|
"is_placeholder": false
|
|
@@ -604,7 +604,7 @@
|
|
|
604
604
|
"orig_type": "List[str]"
|
|
605
605
|
}
|
|
606
606
|
],
|
|
607
|
-
"description": "\
|
|
607
|
+
"description": "\nCreate a new action. The available action recipes are fetched from your\ncluster and are added as dynamic subcommands. You can see more details\nand available arguments by calling the subcommand with --help, e.g. create\n[name] --help\n",
|
|
608
608
|
"allow_extra": true,
|
|
609
609
|
"parent": "actions",
|
|
610
610
|
"is_placeholder": false
|
|
@@ -652,7 +652,7 @@
|
|
|
652
652
|
"orig_type": "bool"
|
|
653
653
|
}
|
|
654
654
|
],
|
|
655
|
-
"description": "\
|
|
655
|
+
"description": "\nList the actions in a project. Uses your default project unless --project\nis given. By default, this includes their ID, name and current state,\ne.g. created or completed\n",
|
|
656
656
|
"allow_extra": false,
|
|
657
657
|
"parent": "actions",
|
|
658
658
|
"is_placeholder": false
|
|
@@ -1111,7 +1111,7 @@
|
|
|
1111
1111
|
"orig_type": "List[str]"
|
|
1112
1112
|
}
|
|
1113
1113
|
],
|
|
1114
|
-
"description": "\
|
|
1114
|
+
"description": "\nCreate a new agent. The available agent recipes are fetched from your\ncluster and are added as dynamic subcommands. You can see more details\nand available arguments by calling the subcommand with --help, e.g. create\n[name] --help\n",
|
|
1115
1115
|
"allow_extra": true,
|
|
1116
1116
|
"parent": "agents",
|
|
1117
1117
|
"is_placeholder": false
|
|
@@ -1259,7 +1259,7 @@
|
|
|
1259
1259
|
"orig_type": "bool"
|
|
1260
1260
|
}
|
|
1261
1261
|
],
|
|
1262
|
-
"description": "\
|
|
1262
|
+
"description": "\nRemove an agent from a task. This will only remove the assignment and keep\nall annotations the agent has created.\n",
|
|
1263
1263
|
"allow_extra": false,
|
|
1264
1264
|
"parent": "agents",
|
|
1265
1265
|
"is_placeholder": false
|
|
@@ -1307,7 +1307,7 @@
|
|
|
1307
1307
|
"orig_type": "bool"
|
|
1308
1308
|
}
|
|
1309
1309
|
],
|
|
1310
|
-
"description": "\
|
|
1310
|
+
"description": "\nList the agents in a project. Uses your default project unless --project\nis given. By default, this includes their ID, name and current state,\ne.g. created or completed\n",
|
|
1311
1311
|
"allow_extra": false,
|
|
1312
1312
|
"parent": "agents",
|
|
1313
1313
|
"is_placeholder": false
|
|
@@ -1801,7 +1801,7 @@
|
|
|
1801
1801
|
"orig_type": "bool"
|
|
1802
1802
|
}
|
|
1803
1803
|
],
|
|
1804
|
-
"description": "\
|
|
1804
|
+
"description": "\nGet detailed info for an asset uploaded to the cluster and registered\nwith Ellf\n",
|
|
1805
1805
|
"allow_extra": false,
|
|
1806
1806
|
"parent": "assets",
|
|
1807
1807
|
"is_placeholder": false
|
|
@@ -1901,7 +1901,7 @@
|
|
|
1901
1901
|
"orig_type": "bool"
|
|
1902
1902
|
}
|
|
1903
1903
|
],
|
|
1904
|
-
"description": "\
|
|
1904
|
+
"description": "\nCreate an asset on the cluster and register it with Ellf. Assets\npoint to files or directories you control. The Ellf server only has\na reference to them. This command doesn't transfer any data. See `ellf files`\nfor utilities to transfer files to and from your cluster\n",
|
|
1905
1905
|
"allow_extra": false,
|
|
1906
1906
|
"parent": "assets",
|
|
1907
1907
|
"is_placeholder": false
|
|
@@ -1972,7 +1972,7 @@
|
|
|
1972
1972
|
"import": {
|
|
1973
1973
|
"name": "import",
|
|
1974
1974
|
"args": [],
|
|
1975
|
-
"description": "Read a serialised FileSecrets blob from stdin and write it to\
|
|
1975
|
+
"description": "Read a serialised FileSecrets blob from stdin and write it to\nthe local secrets file.\n\nCounterpart to ``ellf auth push``. Existing local auth state is\noverwritten; the file is written 0600 by FileSecrets.save.\n",
|
|
1976
1976
|
"allow_extra": false,
|
|
1977
1977
|
"parent": "auth",
|
|
1978
1978
|
"is_placeholder": false
|
|
@@ -2007,7 +2007,7 @@
|
|
|
2007
2007
|
"orig_type": "str"
|
|
2008
2008
|
}
|
|
2009
2009
|
],
|
|
2010
|
-
"description": "Push local auth state to a remote machine via SSH.\n\
|
|
2010
|
+
"description": "Push local auth state to a remote machine via SSH.\n\nReads the local FileSecrets, JSON-serialises it, and pipes it to\n``<remote_ellf> auth import`` over an SSH connection to *host*.\nAuthentication is delegated to ssh \u2014 anything in your ssh config\n(host aliases, ProxyJump, key-based auth) just works.\n\nThe pushed blob includes id_token, api_token, and any cached\nbroker_tokens. id_token expiry is dictated by the issuer (typically\n~1h), so this is a \"give the remote a usable session\" operation,\nnot a permanent provisioning. Re-run when the token expires.\n",
|
|
2011
2011
|
"allow_extra": false,
|
|
2012
2012
|
"parent": "auth",
|
|
2013
2013
|
"is_placeholder": false
|
|
@@ -2079,7 +2079,7 @@
|
|
|
2079
2079
|
"orig_type": "bool"
|
|
2080
2080
|
}
|
|
2081
2081
|
],
|
|
2082
|
-
"description": "Switch the active cluster.\n\
|
|
2082
|
+
"description": "Switch the active cluster.\n\nLooks up the cluster by name or ID via PAM. With no argument and\nmultiple clusters available, prompts interactively in a TTY.\n",
|
|
2083
2083
|
"allow_extra": false,
|
|
2084
2084
|
"parent": "clusters",
|
|
2085
2085
|
"is_placeholder": false
|
|
@@ -2223,7 +2223,7 @@
|
|
|
2223
2223
|
"orig_type": "bool"
|
|
2224
2224
|
}
|
|
2225
2225
|
],
|
|
2226
|
-
"description": "\
|
|
2226
|
+
"description": "\nDelete a cluster from PAM. This only removes PAM's record\nof it. The cluster itself will continue to exist - you need\nto shut it down separately.\n",
|
|
2227
2227
|
"allow_extra": false,
|
|
2228
2228
|
"parent": "clusters",
|
|
2229
2229
|
"is_placeholder": false
|
|
@@ -2323,7 +2323,7 @@
|
|
|
2323
2323
|
"orig_type": "bool"
|
|
2324
2324
|
}
|
|
2325
2325
|
],
|
|
2326
|
-
"description": "Check the health of a cluster deployment.\n\
|
|
2326
|
+
"description": "Check the health of a cluster deployment.\n\nRuns CLI-side connectivity checks against the cluster and PAM.\nUse --deep (or supply --s3-bucket / --nfs-path / --recipe) to also\ntrigger cluster-side deployment checks via the broker's /v1/check\nendpoints (K8s API, NFS, S3, recipe execution, DB).\n",
|
|
2327
2327
|
"allow_extra": false,
|
|
2328
2328
|
"parent": "clusters",
|
|
2329
2329
|
"is_placeholder": false
|
|
@@ -2419,7 +2419,7 @@
|
|
|
2419
2419
|
"orig_type": "bool"
|
|
2420
2420
|
}
|
|
2421
2421
|
],
|
|
2422
|
-
"description": "Rotate the cluster RSA keypair.\n\
|
|
2422
|
+
"description": "Rotate the cluster RSA keypair.\n\nGenerates a new keypair, updates the cluster record in PAM with the\nnew public key, patches the K8s secret with the new private key,\nand restarts the cluster deployment.\n",
|
|
2423
2423
|
"allow_extra": false,
|
|
2424
2424
|
"parent": "clusters",
|
|
2425
2425
|
"is_placeholder": false
|
|
@@ -3230,7 +3230,7 @@
|
|
|
3230
3230
|
"orig_type": "str"
|
|
3231
3231
|
}
|
|
3232
3232
|
],
|
|
3233
|
-
"description": "Export all the examples from a dataset and save it in the designated file as\
|
|
3233
|
+
"description": "Export all the examples from a dataset and save it in the designated file as\nJSONL (newline-delimited JSON).\n",
|
|
3234
3234
|
"allow_extra": false,
|
|
3235
3235
|
"parent": "datasets",
|
|
3236
3236
|
"is_placeholder": false
|
|
@@ -3704,7 +3704,7 @@
|
|
|
3704
3704
|
"orig_type": "bool"
|
|
3705
3705
|
}
|
|
3706
3706
|
],
|
|
3707
|
-
"description": "Register a new cluster with PAM and write credentials to cluster-creds.json.\n\
|
|
3707
|
+
"description": "Register a new cluster with PAM and write credentials to cluster-creds.json.\n\nPass --domain to use your own DNS, or omit it to be allocated a managed\nsubdomain (with base + wildcard A records) under an Explosion-controlled\nzone.\n",
|
|
3708
3708
|
"allow_extra": false,
|
|
3709
3709
|
"parent": "infra",
|
|
3710
3710
|
"is_placeholder": false
|
|
@@ -3804,7 +3804,7 @@
|
|
|
3804
3804
|
"orig_type": "str"
|
|
3805
3805
|
}
|
|
3806
3806
|
],
|
|
3807
|
-
"description": "Create a versioned bucket for terraform remote state and record it in\
|
|
3807
|
+
"description": "Create a versioned bucket for terraform remote state and record it in\nconfig.yaml (or print the block to add when no config file exists).\n\nRemote state is the recommended setup: local state is owned by whichever\ndisk ran terraform, so it's easy to lose and impossible to share. The\nbucket is managed outside the terraform on purpose \u2014 it must exist before\nterraform runs and outlive the cluster so 'infra destroy' has state to\nwork against; nothing here (or in destroy) ever deletes it. Uses the\naws / gcloud CLI, which the terraform flow already relies on for\ncredentials.\n",
|
|
3808
3808
|
"allow_extra": false,
|
|
3809
3809
|
"parent": "infra",
|
|
3810
3810
|
"is_placeholder": false
|
|
@@ -3926,7 +3926,7 @@
|
|
|
3926
3926
|
"orig_type": "bool"
|
|
3927
3927
|
}
|
|
3928
3928
|
],
|
|
3929
|
-
"description": "Apply terraform to create or update cluster infrastructure.\n\
|
|
3929
|
+
"description": "Apply terraform to create or update cluster infrastructure.\n\nReturns True when an apply actually ran \u2014 'infra provision' wraps this\nand only backfills config.yaml from outputs after a real apply.\n",
|
|
3930
3930
|
"allow_extra": false,
|
|
3931
3931
|
"parent": "infra",
|
|
3932
3932
|
"is_placeholder": false
|
|
@@ -4000,7 +4000,7 @@
|
|
|
4000
4000
|
"orig_type": "bool"
|
|
4001
4001
|
}
|
|
4002
4002
|
],
|
|
4003
|
-
"description": "Destroy the cluster infrastructure created by 'infra terraform',\
|
|
4003
|
+
"description": "Destroy the cluster infrastructure created by 'infra terraform',\nincluding every annotation, file and dataset stored on it.\n\nThe database, data bucket and shared volume are deletion-protected, so\nthis refuses to run without --delete-data. To stop paying for compute\nwhile keeping the data, use 'ellf infra pause' instead. With\n--delete-data, a first apply lifts the protection, then the destroy runs.\nOn AWS the database still leaves a final snapshot behind.\n\nNote this never touches the terraform state bucket: the bucket is managed\noutside the terraform (see 'infra init --state-bucket') and outlives the\ncluster so the destroy itself has state to work against.\n",
|
|
4004
4004
|
"allow_extra": false,
|
|
4005
4005
|
"parent": "infra",
|
|
4006
4006
|
"is_placeholder": false
|
|
@@ -4269,7 +4269,7 @@
|
|
|
4269
4269
|
"orig_type": "bool"
|
|
4270
4270
|
}
|
|
4271
4271
|
],
|
|
4272
|
-
"description": "Initialize a cluster: register with PAM (allocating a managed domain\
|
|
4272
|
+
"description": "Initialize a cluster: register with PAM (allocating a managed domain\nunless --domain is given), download the terraform files, and generate\nconfig.yaml \u2014 the input every later phase (configure, provision, start)\nreads. Idempotent and safe to re-run.\n\nAfter init, the directory is a complete hand-off bundle (terraform files\n+ terraform.tfvars.json + config.yaml) for teams that apply terraform\nthrough their own pipeline; they later sync outputs back with\n'ellf infra configure --from-terraform' instead of 'ellf infra provision'.\n",
|
|
4273
4273
|
"allow_extra": false,
|
|
4274
4274
|
"parent": "infra",
|
|
4275
4275
|
"is_placeholder": false
|
|
@@ -4525,7 +4525,7 @@
|
|
|
4525
4525
|
"orig_type": "bool"
|
|
4526
4526
|
}
|
|
4527
4527
|
],
|
|
4528
|
-
"description": "Update the config.yaml written by 'ellf infra init' \u2014 repeatable, so no\
|
|
4528
|
+
"description": "Update the config.yaml written by 'ellf infra init' \u2014 repeatable, so no\ndecision made at init time is final. With no flags on a terminal, re-runs\nthe provider prompts with the current values as defaults.",
|
|
4529
4529
|
"allow_extra": false,
|
|
4530
4530
|
"parent": "infra",
|
|
4531
4531
|
"is_placeholder": false
|
|
@@ -4586,7 +4586,7 @@
|
|
|
4586
4586
|
"orig_type": "bool"
|
|
4587
4587
|
}
|
|
4588
4588
|
],
|
|
4589
|
-
"description": "Deploy or upgrade the Ellf Helm chart.\n\
|
|
4589
|
+
"description": "Deploy or upgrade the Ellf Helm chart.\n\nCreates the namespace, image pull secret, cluster keypair secret,\nthen runs helm upgrade --install with the provided values. The broker\nand cpl image versions come from PAM's cluster settings at deploy time\n\u2014 the same targets the CPL sidecar auto-updates the running cluster to\n\u2014 so a deploy can never roll an auto-updated cluster back.\n",
|
|
4590
4590
|
"allow_extra": false,
|
|
4591
4591
|
"parent": "infra",
|
|
4592
4592
|
"is_placeholder": false
|
|
@@ -4660,7 +4660,7 @@
|
|
|
4660
4660
|
"orig_type": "bool"
|
|
4661
4661
|
}
|
|
4662
4662
|
],
|
|
4663
|
-
"description": "Idle the cluster: scale every node pool to zero and stop the database.\n\
|
|
4663
|
+
"description": "Idle the cluster: scale every node pool to zero and stop the database.\n\nNothing is deleted. The database's disk and backups, the data bucket,\nthe shared volume, the container registry and the ingress load balancer\nall stay, so 'ellf infra resume' brings the cluster back exactly as it\nwas. What keeps billing is that storage, the load balancer, and the\nGKE/EKS control plane fee (AKS stops its control plane too). Refuses\nwhile jobs are running unless --stop-jobs is given, since pausing would\nkill them mid-run.\n\nAWS and Azure automatically restart a stopped database after 7 days;\nre-run this command to stop it again.\n",
|
|
4664
4664
|
"allow_extra": false,
|
|
4665
4665
|
"parent": "infra",
|
|
4666
4666
|
"is_placeholder": false
|
|
@@ -4708,7 +4708,7 @@
|
|
|
4708
4708
|
"orig_type": "str"
|
|
4709
4709
|
}
|
|
4710
4710
|
],
|
|
4711
|
-
"description": "Bring a cluster paused with 'ellf infra pause' back up.\n\
|
|
4711
|
+
"description": "Bring a cluster paused with 'ellf infra pause' back up.\n\nStarts the database first, then restores the node pools to the sizes in\nconfig.yaml. The broker reconnects to Ellf on its own once its node is\nup, usually within a few minutes.\n",
|
|
4712
4712
|
"allow_extra": false,
|
|
4713
4713
|
"parent": "infra",
|
|
4714
4714
|
"is_placeholder": false
|
|
@@ -4795,7 +4795,7 @@
|
|
|
4795
4795
|
"orig_type": "bool"
|
|
4796
4796
|
}
|
|
4797
4797
|
],
|
|
4798
|
-
"description": "Delete the cluster's GKE cluster, keeping all of its data.\n\
|
|
4798
|
+
"description": "Delete the cluster's GKE cluster, keeping all of its data.\n\nGoes further than 'ellf infra pause': the GKE cluster itself is deleted,\nwhich also ends its management fee. The database (stopped), the data\nbucket, the shared volume's Filestore instance, the container registry,\nthe ingress IP and the broker's keypair all stay, and 'ellf infra wake'\nrecreates the cluster around them. Only in-cluster objects are lost, and\nwake recreates all of those (TLS certificates are re-issued).\n\nThe shared volume's Filestore instance is recorded in config.yaml\n(deployment.existing_shared_volume) first, so the recreated cluster binds\nto it instead of provisioning a new, empty one. GCP only.\n",
|
|
4799
4799
|
"allow_extra": false,
|
|
4800
4800
|
"parent": "infra",
|
|
4801
4801
|
"is_placeholder": false
|
|
@@ -4856,7 +4856,7 @@
|
|
|
4856
4856
|
"orig_type": "bool"
|
|
4857
4857
|
}
|
|
4858
4858
|
],
|
|
4859
|
-
"description": "Recreate a cluster hibernated with 'ellf infra hibernate'.\n\
|
|
4859
|
+
"description": "Recreate a cluster hibernated with 'ellf infra hibernate'.\n\nStarts the database, recreates the GKE cluster with terraform (binding\nthe shared volume to the Filestore instance it had before), then deploys\nthe cluster services as 'ellf infra start' does. Takes 15-20 minutes,\nmost of it GKE creating the cluster.\n",
|
|
4860
4860
|
"allow_extra": false,
|
|
4861
4861
|
"parent": "infra",
|
|
4862
4862
|
"is_placeholder": false
|
|
@@ -5004,7 +5004,7 @@
|
|
|
5004
5004
|
"orig_type": "bool"
|
|
5005
5005
|
}
|
|
5006
5006
|
],
|
|
5007
|
-
"description": "Provision the cluster infrastructure: terraform init + plan + apply,\
|
|
5007
|
+
"description": "Provision the cluster infrastructure: terraform init + plan + apply,\nthen backfill config.yaml from the outputs and point the managed domain\nat the ingress IP (where the provider exposes one). Requires a terraform\nstate location \u2014 see 'ellf infra init --state-bucket' / 'ellf infra\nconfigure --state-bucket'; the state bucket itself is managed outside\nthe terraform and is never touched here or by 'infra destroy'.",
|
|
5008
5008
|
"allow_extra": false,
|
|
5009
5009
|
"parent": "infra",
|
|
5010
5010
|
"is_placeholder": false
|
|
@@ -5065,7 +5065,7 @@
|
|
|
5065
5065
|
"orig_type": "str"
|
|
5066
5066
|
}
|
|
5067
5067
|
],
|
|
5068
|
-
"description": "Install cluster infrastructure prerequisites (Traefik, cert-manager).\n\
|
|
5068
|
+
"description": "Install cluster infrastructure prerequisites (Traefik, cert-manager).\n\nThese operations are idempotent and safe to re-run.\n",
|
|
5069
5069
|
"allow_extra": false,
|
|
5070
5070
|
"parent": "infra",
|
|
5071
5071
|
"is_placeholder": false
|
|
@@ -5226,7 +5226,7 @@
|
|
|
5226
5226
|
"orig_type": "str"
|
|
5227
5227
|
}
|
|
5228
5228
|
],
|
|
5229
|
-
"description": "Manage TLS certificates for local cluster access.\n\
|
|
5229
|
+
"description": "Manage TLS certificates for local cluster access.\n\nUse --self-signed when you have direct kubectl access to the cluster.\nUse --setup HOST to do everything from your laptop over SSH.\nUse --trust HOST to fetch and install an existing CA from a remote cluster.\n",
|
|
5230
5230
|
"allow_extra": false,
|
|
5231
5231
|
"parent": "infra",
|
|
5232
5232
|
"is_placeholder": false
|
|
@@ -5250,7 +5250,7 @@
|
|
|
5250
5250
|
"orig_type": "str"
|
|
5251
5251
|
}
|
|
5252
5252
|
],
|
|
5253
|
-
"description": "\
|
|
5253
|
+
"description": "\nRun a job directly on the cluster from a YAML spec file, bypassing PAM.\n",
|
|
5254
5254
|
"allow_extra": false,
|
|
5255
5255
|
"parent": "jobs",
|
|
5256
5256
|
"is_placeholder": false
|
|
@@ -5298,7 +5298,7 @@
|
|
|
5298
5298
|
"orig_type": "bool"
|
|
5299
5299
|
}
|
|
5300
5300
|
],
|
|
5301
|
-
"description": "\
|
|
5301
|
+
"description": "\nList the workloads running on your cluster. This reads the cluster directly,\nso it also shows orphaned workloads that have no matching task, action,\nagent or service in Ellf.\n",
|
|
5302
5302
|
"allow_extra": false,
|
|
5303
5303
|
"parent": "jobs",
|
|
5304
5304
|
"is_placeholder": false
|
|
@@ -5346,7 +5346,7 @@
|
|
|
5346
5346
|
"orig_type": "bool"
|
|
5347
5347
|
}
|
|
5348
5348
|
],
|
|
5349
|
-
"description": "\
|
|
5349
|
+
"description": "\nStop a job on the cluster by its ID. Works for workloads that have no\nmatching job in Ellf, which the stop commands of tasks, actions, agents and\nservices cannot reach.\n",
|
|
5350
5350
|
"allow_extra": false,
|
|
5351
5351
|
"parent": "jobs",
|
|
5352
5352
|
"is_placeholder": false
|
|
@@ -5356,7 +5356,7 @@
|
|
|
5356
5356
|
"kb": {
|
|
5357
5357
|
"name": "kb",
|
|
5358
5358
|
"args": [],
|
|
5359
|
-
"description": "\
|
|
5359
|
+
"description": "\nRun the Ellf knowledge base MCP server over stdio, using your ellf login.\nCoding agents start this themselves once 'ellf login --agent' has set\nthem up.\n",
|
|
5360
5360
|
"allow_extra": false,
|
|
5361
5361
|
"parent": "mcp",
|
|
5362
5362
|
"is_placeholder": false
|
|
@@ -6473,7 +6473,7 @@
|
|
|
6473
6473
|
"orig_type": "str"
|
|
6474
6474
|
}
|
|
6475
6475
|
],
|
|
6476
|
-
"description": "\
|
|
6476
|
+
"description": "\nUpload and advertise a recipes package from your Python environment.\n",
|
|
6477
6477
|
"allow_extra": false,
|
|
6478
6478
|
"parent": "publish",
|
|
6479
6479
|
"is_placeholder": false
|
|
@@ -6612,7 +6612,7 @@
|
|
|
6612
6612
|
"orig_type": "str"
|
|
6613
6613
|
}
|
|
6614
6614
|
],
|
|
6615
|
-
"description": "\
|
|
6615
|
+
"description": "\nTransfer data to the cluster, and advertise it to Ellf.\n\nThese steps can also be done separately. See `ellf files` to transfer\ndata to the cluster without creating an Asset record for it, and\n`ellf assets create` to create an Asset without transfer.\n",
|
|
6616
6616
|
"allow_extra": false,
|
|
6617
6617
|
"parent": "publish",
|
|
6618
6618
|
"is_placeholder": false
|
|
@@ -6697,7 +6697,7 @@
|
|
|
6697
6697
|
"orig_type": "bool"
|
|
6698
6698
|
}
|
|
6699
6699
|
],
|
|
6700
|
-
"description": "Export recipes from the cluster to a local YAML or JSON file.\n\
|
|
6700
|
+
"description": "Export recipes from the cluster to a local YAML or JSON file.\n\nExports every package by default. Use --packages to export only certain\nones, e.g. to keep ad-hoc packages published to the cluster out of the\ndocs.\n",
|
|
6701
6701
|
"allow_extra": false,
|
|
6702
6702
|
"parent": "recipes",
|
|
6703
6703
|
"is_placeholder": false
|
|
@@ -7180,7 +7180,7 @@
|
|
|
7180
7180
|
"orig_type": "List[str]"
|
|
7181
7181
|
}
|
|
7182
7182
|
],
|
|
7183
|
-
"description": "\
|
|
7183
|
+
"description": "\nCreate a new service. The available service recipes are fetched from your\ncluster and are added as dynamic subcommands. You can see more details\nand available arguments by calling the subcommand with --help, e.g. create\n[name] --help\n",
|
|
7184
7184
|
"allow_extra": true,
|
|
7185
7185
|
"parent": "services",
|
|
7186
7186
|
"is_placeholder": false
|
|
@@ -7228,7 +7228,7 @@
|
|
|
7228
7228
|
"orig_type": "bool"
|
|
7229
7229
|
}
|
|
7230
7230
|
],
|
|
7231
|
-
"description": "\
|
|
7231
|
+
"description": "\nList the services in a project. Uses your default project unless\n--project is given.\n",
|
|
7232
7232
|
"allow_extra": false,
|
|
7233
7233
|
"parent": "services",
|
|
7234
7234
|
"is_placeholder": false
|
|
@@ -7659,7 +7659,7 @@
|
|
|
7659
7659
|
"orig_type": "bool"
|
|
7660
7660
|
}
|
|
7661
7661
|
],
|
|
7662
|
-
"description": "Print the bearer-token-authenticated URL for a service.\n\
|
|
7662
|
+
"description": "Print the bearer-token-authenticated URL for a service.\n\nMints a fresh 90-day token via ``POST /v1/service/issue-token`` and\nformats it together with the service's public URL so the result can\nbe dropped into an MCP client config or curl invocation:\n\n curl -H \"Authorization: Bearer <token>\" <url>\n\nUse ``services rotate-token`` to mint a new token without printing\nthe URL again.\n",
|
|
7663
7663
|
"allow_extra": false,
|
|
7664
7664
|
"parent": "services",
|
|
7665
7665
|
"is_placeholder": false
|
|
@@ -7720,7 +7720,7 @@
|
|
|
7720
7720
|
"orig_type": "bool"
|
|
7721
7721
|
}
|
|
7722
7722
|
],
|
|
7723
|
-
"description": "Mint a fresh 90-day token for an existing service.\n\
|
|
7723
|
+
"description": "Mint a fresh 90-day token for an existing service.\n\nIssuing a new token does not invalidate previous ones -- they remain\nvalid until their own expiration. Use this when the previous token\nis leaked, or when you want a longer remaining window for an MCP\nclient config.\n",
|
|
7724
7724
|
"allow_extra": false,
|
|
7725
7725
|
"parent": "services",
|
|
7726
7726
|
"is_placeholder": false
|
|
@@ -7796,7 +7796,7 @@
|
|
|
7796
7796
|
"orig_type": "bool"
|
|
7797
7797
|
}
|
|
7798
7798
|
],
|
|
7799
|
-
"description": "List a task's annotation sessions, with how much each annotated, how\
|
|
7799
|
+
"description": "List a task's annotation sessions, with how much each annotated, how\nmuch of that the dataset still holds, and whether it was excluded",
|
|
7800
7800
|
"allow_extra": false,
|
|
7801
7801
|
"parent": "sessions",
|
|
7802
7802
|
"is_placeholder": false
|
|
@@ -7831,7 +7831,7 @@
|
|
|
7831
7831
|
"orig_type": "bool"
|
|
7832
7832
|
}
|
|
7833
7833
|
],
|
|
7834
|
-
"description": "Exclude an annotation session: take its examples out of the task's\
|
|
7834
|
+
"description": "Exclude an annotation session: take its examples out of the task's\ndataset, so training and exports leave them out and their tasks are served\nagain. They still count as the annotator's work",
|
|
7835
7835
|
"allow_extra": false,
|
|
7836
7836
|
"parent": "sessions",
|
|
7837
7837
|
"is_placeholder": false
|
|
@@ -7866,7 +7866,7 @@
|
|
|
7866
7866
|
"orig_type": "bool"
|
|
7867
7867
|
}
|
|
7868
7868
|
],
|
|
7869
|
-
"description": "Activate an excluded annotation session: put its examples back into\
|
|
7869
|
+
"description": "Activate an excluded annotation session: put its examples back into\nthe task's dataset",
|
|
7870
7870
|
"allow_extra": false,
|
|
7871
7871
|
"parent": "sessions",
|
|
7872
7872
|
"is_placeholder": false
|
|
@@ -8086,7 +8086,7 @@
|
|
|
8086
8086
|
"orig_type": "List[str]"
|
|
8087
8087
|
}
|
|
8088
8088
|
],
|
|
8089
|
-
"description": "\
|
|
8089
|
+
"description": "\nCreate a new task. The available task recipes are fetched from your\ncluster and are added as dynamic subcommands. You can see more details\nand available arguments by calling the subcommand with --help, e.g. create\n[name] --help\n",
|
|
8090
8090
|
"allow_extra": true,
|
|
8091
8091
|
"parent": "tasks",
|
|
8092
8092
|
"is_placeholder": false
|
|
@@ -8134,7 +8134,7 @@
|
|
|
8134
8134
|
"orig_type": "bool"
|
|
8135
8135
|
}
|
|
8136
8136
|
],
|
|
8137
|
-
"description": "\
|
|
8137
|
+
"description": "\nList the tasks in a project. Uses your default project unless --project\nis given. By default, this includes their ID, name and current state,\ne.g. created or completed\n",
|
|
8138
8138
|
"allow_extra": false,
|
|
8139
8139
|
"parent": "tasks",
|
|
8140
8140
|
"is_placeholder": false
|
|
@@ -8565,7 +8565,7 @@
|
|
|
8565
8565
|
"orig_type": "bool"
|
|
8566
8566
|
}
|
|
8567
8567
|
],
|
|
8568
|
-
"description": "Fetch a batch of questions from a running annotation task.\n\
|
|
8568
|
+
"description": "Fetch a batch of questions from a running annotation task.\n\nMirrors the web app: asks the broker for a Prodigy login token, then talks\nto the task pod directly via its public task_url. Note that requesting a\nbatch reserves those questions for this CLI's session \u2014 they will not be\nhanded to other annotators until they are answered or another session\nruns out of work and steals them.\n",
|
|
8569
8569
|
"allow_extra": false,
|
|
8570
8570
|
"parent": "tasks",
|
|
8571
8571
|
"is_placeholder": false
|
|
@@ -9122,7 +9122,7 @@
|
|
|
9122
9122
|
"orig_type": "bool"
|
|
9123
9123
|
}
|
|
9124
9124
|
],
|
|
9125
|
-
"description": "Update a user's role, name, locale, or tags.\n\
|
|
9125
|
+
"description": "Update a user's role, name, locale, or tags.\n\nEmail can't be set here: it's the login identity, so it can only be\nchanged through the verified change-email flow (a confirmation link\nsent to the new address) \u2014 see ellf_pam/api/user.py.\n",
|
|
9126
9126
|
"allow_extra": false,
|
|
9127
9127
|
"parent": "users",
|
|
9128
9128
|
"is_placeholder": false
|
|
@@ -9170,7 +9170,7 @@
|
|
|
9170
9170
|
"orig_type": "bool"
|
|
9171
9171
|
}
|
|
9172
9172
|
],
|
|
9173
|
-
"description": "Remove a user from the organization. By default the user is\
|
|
9173
|
+
"description": "Remove a user from the organization. By default the user is\ndeactivated: they lose access and stop taking up a seat, but their\nwork stays in the organization and an admin can reactivate them.",
|
|
9174
9174
|
"allow_extra": false,
|
|
9175
9175
|
"parent": "users",
|
|
9176
9176
|
"is_placeholder": false
|
|
@@ -9205,7 +9205,7 @@
|
|
|
9205
9205
|
"orig_type": "bool"
|
|
9206
9206
|
}
|
|
9207
9207
|
],
|
|
9208
|
-
"description": "Reactivate a user who was removed from the organization. They get\
|
|
9208
|
+
"description": "Reactivate a user who was removed from the organization. They get\nback the access they had, and take up a seat again.",
|
|
9209
9209
|
"allow_extra": false,
|
|
9210
9210
|
"parent": "users",
|
|
9211
9211
|
"is_placeholder": false
|
|
@@ -9453,7 +9453,7 @@
|
|
|
9453
9453
|
"orig_type": "bool"
|
|
9454
9454
|
}
|
|
9455
9455
|
],
|
|
9456
|
-
"description": "\
|
|
9456
|
+
"description": "\nAssign an annotator to a task and email them an invitation to start\nannotating.\n",
|
|
9457
9457
|
"allow_extra": false,
|
|
9458
9458
|
"parent": "users",
|
|
9459
9459
|
"is_placeholder": false
|
|
@@ -9527,7 +9527,7 @@
|
|
|
9527
9527
|
"orig_type": "bool"
|
|
9528
9528
|
}
|
|
9529
9529
|
],
|
|
9530
|
-
"description": "\
|
|
9530
|
+
"description": "\nRemove an annotator from a task. This only removes the assignment and\nkeeps all annotations the user has created.\n",
|
|
9531
9531
|
"allow_extra": false,
|
|
9532
9532
|
"parent": "users",
|
|
9533
9533
|
"is_placeholder": false
|
|
@@ -329,6 +329,8 @@ ellf_cli/version/19.0.6_2026-09-29-17-22-11_patch_3b1c79e9-9002-4e96-ba78-10668c
|
|
|
329
329
|
ellf_cli/version/19.0.7_2026-09-30-07-50-58_patch_e8b1f046-d819-499c-9cd5-3e1a20fc9acf
|
|
330
330
|
ellf_cli/version/19.0.8_2026-10-01-13-41-44_patch_7d63af18-e0af-4127-ab58-aede2407490f
|
|
331
331
|
ellf_cli/version/19.0.9_2026-10-01-15-57-35_patch_143863cb-8f63-4ef7-bd78-c1114fc93a2d
|
|
332
|
+
ellf_cli/version/20.0.0_2026-10-10-09-36-17_patch_d2618f39-cdc9-4d3a-ba40-1a0ad6265f3b
|
|
333
|
+
ellf_cli/version/20.0.1_2026-10-11-10-24-33_patch_e29a8713-eecb-4eb1-9641-789d3cfab21a
|
|
332
334
|
ellf_cli/version/__init__.py
|
|
333
335
|
ellf_cli/version/read_version.py
|
|
334
336
|
tests/test_agents.py
|
|
@@ -30,6 +30,7 @@ def _recipe_summary(
|
|
|
30
30
|
job_type: str,
|
|
31
31
|
is_action: bool,
|
|
32
32
|
package_id: UUID | None = None,
|
|
33
|
+
category: str | None = None,
|
|
33
34
|
) -> RecipeSummary:
|
|
34
35
|
now = datetime.now(timezone.utc)
|
|
35
36
|
return RecipeSummary(
|
|
@@ -43,6 +44,7 @@ def _recipe_summary(
|
|
|
43
44
|
description="",
|
|
44
45
|
job_type=job_type,
|
|
45
46
|
is_action=is_action,
|
|
47
|
+
category=category,
|
|
46
48
|
is_latest=True,
|
|
47
49
|
entry_point="pkg:recipe",
|
|
48
50
|
)
|
|
@@ -230,6 +232,7 @@ def _recipe_detail(summary: RecipeSummary, package_name: str) -> Any:
|
|
|
230
232
|
title=summary.title,
|
|
231
233
|
description=summary.description,
|
|
232
234
|
job_type=summary.job_type,
|
|
235
|
+
category=summary.category,
|
|
233
236
|
is_action=summary.is_action,
|
|
234
237
|
package=SimpleNamespace(name=package_name, container="image:tag"),
|
|
235
238
|
form_schema=SimpleNamespace(cli_names={}, fields=[]),
|
|
@@ -240,6 +243,7 @@ def _setup_export(
|
|
|
240
243
|
monkeypatch,
|
|
241
244
|
packages: dict[str, list[str]],
|
|
242
245
|
superseded: dict[str, list[str]] | None = None,
|
|
246
|
+
categories: dict[str, str] | None = None,
|
|
243
247
|
):
|
|
244
248
|
"""Build an export fixture from a {package name: [recipe names]} mapping.
|
|
245
249
|
|
|
@@ -259,6 +263,7 @@ def _setup_export(
|
|
|
259
263
|
job_type="task",
|
|
260
264
|
is_action=False,
|
|
261
265
|
package_id=package_id,
|
|
266
|
+
category=(categories or {}).get(recipe_name),
|
|
262
267
|
)
|
|
263
268
|
recipes.append(summary)
|
|
264
269
|
package_of[summary.id] = package_name
|
|
@@ -398,3 +403,21 @@ def test_recipes_export_skips_recipes_dropped_from_the_package(monkeypatch, tmp_
|
|
|
398
403
|
recipes_cmd.export(str(out), as_json=True)
|
|
399
404
|
|
|
400
405
|
assert _exported_names(out) == ["ner.correct"]
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
def test_recipes_export_includes_the_category_when_set(monkeypatch, tmp_path):
|
|
409
|
+
"""The site's recipe directory groups recipes by category."""
|
|
410
|
+
_setup_export(
|
|
411
|
+
monkeypatch,
|
|
412
|
+
{"ellf-recipes": ["ner.correct", "custom.recipe"]},
|
|
413
|
+
categories={"ner.correct": "text"},
|
|
414
|
+
)
|
|
415
|
+
out = tmp_path / "recipes.json"
|
|
416
|
+
|
|
417
|
+
recipes_cmd.export(str(out), as_json=True)
|
|
418
|
+
|
|
419
|
+
data = srsly.read_json(out)
|
|
420
|
+
assert isinstance(data, dict)
|
|
421
|
+
by_name = {recipe["name"]: recipe for recipe in data["recipes"]}
|
|
422
|
+
assert by_name["ner.correct"]["category"] == "text"
|
|
423
|
+
assert "category" not in by_name["custom.recipe"]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|