ellf-cli 20.0.7__tar.gz → 21.0.0__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.7/ellf_cli.egg-info → ellf_cli-21.0.0}/PKG-INFO +1 -1
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/README.md +1 -1
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/agents.py +19 -5
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf.json +3 -3
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/messages.py +2 -2
- ellf_cli-21.0.0/ellf_cli/version/20.0.7_2026-10-16-07-09-40_major_3e5dfba3-2810-47b4-85a9-938bfff72a04 +3 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0/ellf_cli.egg-info}/PKG-INFO +1 -1
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli.egg-info/SOURCES.txt +1 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_agents.py +26 -2
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/LICENSE +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/MANIFEST.in +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/__init__.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/__main__.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/about.json +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/about.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/appdirs.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/auth.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/cli.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/cloud/__init__.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/cloud/gcp.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/cluster_config.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/__init__.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/_cluster_select.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/_org_select.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/_project_scope.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/_recipe_file.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/_recipe_subcommand.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/_state.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/_usage.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/actions.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/agents.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/assets.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/auth.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/clusters.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/config.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/datasets.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/files/__init__.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/files/cp.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/files/ls.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/files/rm.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/files/rsync.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/files/stats.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/general.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/import_export.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/infra/__init__.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/infra/_config_io.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/infra/_helpers.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/infra/configure.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/infra/deploy.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/infra/hibernate.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/infra/init.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/infra/init_values.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/infra/pause.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/infra/provision.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/infra/register.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/infra/setup.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/infra/start.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/infra/terraform.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/infra/tls.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/jobs.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/mcp.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/packages.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/paths.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/plans.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/projects.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/publish_code.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/publish_data.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/recipes.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/secrets.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/services.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/sessions.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/support.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/tasks.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/todos.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/commands/users.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/config.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/.gitignore +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/render.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-annotate/SKILL.assistant.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-annotate/SKILL.coding.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-annotate/references/annotation_audit.assistant.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-annotate/references/annotation_audit.coding.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-annotate/references/builtin_ellf_annotation_recipes.assistant.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-annotate/references/builtin_ellf_annotation_recipes.coding.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-annotate/references/builtin_prodigy_recipes.coding.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-annotate/references/label_schemes.assistant.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-annotate/references/label_schemes.coding.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-ask/SKILL.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-handoff/SKILL.assistant.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-monitor/SKILL.assistant.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-monitor/SKILL.coding.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-monitor/references/annotation_metrics.assistant.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-monitor/references/annotation_metrics.coding.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-monitor/references/training_monitoring.assistant.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-monitor/references/training_monitoring.coding.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-monitor/scripts.coding/check_training.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-ops/SKILL.assistant.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-ops/SKILL.coding.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-ops/references.coding/data_infra_cli.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-ops/scripts.coding/run_job.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-patterns/SKILL.coding.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-patterns/references/pattern_strategies.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-prodigy/SKILL.coding.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_action_recipe.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_agent_recipe.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_blocks_ui.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_correct.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_custom_ui.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_manual.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_pages_ui.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_routing.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_service_recipe.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_task_recipe.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_teach.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/builtin_recipes.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/ellf_recipe_sdk.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/lint_recipe.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/prodigy_recipe_api.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/template_index.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-project/SKILL.assistant.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-project/SKILL.coding.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-project/references/annotation_agents.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-project/references/consulting_patterns.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-project/references/explosion_strategy.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-project/references/label_schemes.assistant.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-project/references/label_schemes.coding.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-support/SKILL.assistant.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-support/SKILL.coding.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-todo/SKILL.coding.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-train/SKILL.assistant.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-train/SKILL.coding.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-train/references/config_advanced.coding.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-train/references/config_architectures.coding.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-train/references/config_training.coding.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-train/references/diagnostics.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-train/references/evaluation_guide.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-train/references/experiment_patterns.coding.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-train/references/model_selection.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-train/references/training_paradigms.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-train/references/training_troubleshooting.coding.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-train/references/workflow.assistant.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-train/references/workflow.coding.md +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-train/scripts.coding/ellf_logger.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/errors.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/helm.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/interactivity.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/key_pair.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/main.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/mcp_proxy.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/pypi_auth.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/query.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/recipes_cookiecutter/cookiecutter.json +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/.gitignore +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/README.md.tmpl +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/requirements-dev.in +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/requirements.in +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/setup.py.tmpl +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/{{cookiecutter.package_name}}/__init__.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/{{cookiecutter.package_name}}/about.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/{{cookiecutter.package_name}}/recipes/__init__.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/{{cookiecutter.package_name}}/recipes/example_task.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/testing/__init__.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ty.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ui.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/url.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/util.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.114_2026-08-19-08-36-57__1a4e37c1-471e-4a81-b4d5-1ffe7dec3a61 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.114_2026-08-19-09-25-21_patch_33ff1e26-0e5e-46d8-8052-ab1d032e8b6c +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.115_2026-08-19-09-27-13_patch_4ac728c3-0342-4a36-adbc-e28d2d99b1ba +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.116_2026-08-19-09-30-47_patch_c706fef6-6813-4183-b268-12e7b00d7d0b +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.117_2026-08-19-09-39-14_patch_c6b0495f-2f88-4aa8-9ebf-0a235b4c407e +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.118_2026-08-19-09-52-00_patch_b395655a-8d78-4344-9266-6901c20f6517 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.119_2026-08-19-10-22-38_patch_8f95c49d-aedc-41b8-816d-ccb95f048831 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.120_2026-08-19-10-26-58_patch_7fbf35e6-cc01-4b75-8c9a-f5d054bcaf93 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.121_2026-08-19-10-42-02_patch_31a81b02-a886-4dea-84e0-67cc6ca412d5 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.122_2026-08-19-11-16-49_patch_1c4d7307-48d4-493e-936d-80af799d644b +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.123_2026-08-19-11-47-32_patch_d3d78d04-9989-45b1-91b1-93b571d8814a +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.124_2026-08-20-08-03-17_patch_57f4c389-2d19-41ce-aca4-13b61c62f387 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.125_2026-08-20-08-25-05_patch_7f368148-0d1c-4525-bbdf-c6d257ad861a +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.126_2026-08-20-14-51-36_patch_a99abcc8-3371-4c63-a759-bb7ea5b32432 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.127_2026-08-21-05-48-58_patch_34b4ccee-7596-4f57-93e9-774973cca58e +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.128_2026-08-21-10-47-20_patch_693112b9-927c-4a8f-8553-b06eef86079d +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.129_2026-08-21-11-16-54_patch_7a981666-01d9-4d1b-9ba3-2129744e3bd5 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.130_2026-08-21-13-09-36_patch_b7ad1a76-ce70-4d70-9d1a-7c414eba5bb4 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.131_2026-08-21-14-31-10_patch_9128ef66-193e-4caf-8710-afd86128e638 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.132_2026-08-24-08-59-34_patch_c600fc14-86a5-460f-9c4e-f0177056f756 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.133_2026-08-24-10-28-29_patch_b6ce3e32-9d7b-48ac-981a-270c22c180dd +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.134_2026-08-24-11-00-51_patch_a4fc0484-4a64-46a2-94f8-aa805254c7b0 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.135_2026-08-24-12-12-41_patch_a870a56f-9a65-49eb-92da-f572b26667d8 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.136_2026-08-24-12-42-46_patch_9b399356-6482-4291-8da7-e748a99c4b53 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.137_2026-08-24-12-53-57_patch_f7979348-1910-40cd-a535-90299eca84ee +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.138_2026-08-24-14-36-30_patch_ed0f8750-f663-498b-85e7-0d3f2213fcfe +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.139_2026-08-25-08-37-26_patch_3ba87e19-902b-4f76-b64c-90e5c0ca1fc6 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.140_2026-08-25-09-52-45_patch_abc830f2-df15-4385-b797-cdaf72c10752 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.141_2026-08-25-11-37-20_patch_1d9ec01e-06f6-4c8e-b095-af17d5b62b00 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.142_2026-08-26-07-38-49_patch_3dd23e36-e7df-494c-986f-a412861a8d40 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.143_2026-08-26-09-32-32_patch_7b7ebd34-de27-4b73-98a7-3e1501e16cd5 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.144_2026-08-26-10-56-43_patch_166064f2-2208-4c9b-9e25-25dc4cd32084 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.145_2026-08-26-11-37-29_patch_b997f3ee-d7d3-4408-9f2f-c8b6d08bdb3b +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.146_2026-08-26-12-15-20_patch_afbbb893-25db-468c-81db-2663ca373068 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.147_2026-08-26-14-10-50_patch_fd753b1f-2fa1-4ddb-a9e7-de690da85254 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.148_2026-08-27-09-08-35_patch_23814c0b-7f77-489c-b4a8-ceadd18146e3 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.149_2026-08-27-09-40-17_patch_8879d72e-a3d8-4abc-a16a-d9dcf75f0fa1 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.150_2026-08-27-10-57-25_patch_afbe60ed-3e23-4d88-be3c-f800d7002a7d +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.151_2026-08-28-09-02-46_patch_1d4ca23b-aeae-4ea8-96b1-8cf57371f29d +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.152_2026-08-28-15-37-24_patch_c9d0bdc1-a7e1-432b-92b9-92dc76fe0c78 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.153_2026-08-29-09-03-27_patch_7531573a-1b33-4092-aa9c-0e65f47b201f +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.154_2026-08-29-11-56-35_patch_919f5787-39c8-4dc1-ae6a-f27c28380f21 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.155_2026-08-29-15-15-59_patch_822f9ed8-c366-4e5f-9791-dee8467cf3ce +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.156_2026-08-29-16-19-01_patch_3ac2bf36-20f7-4c9f-9fdb-295d4466d59e +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.157_2026-08-30-17-32-17_patch_4302354c-c9c5-4be7-acd3-542872a748d8 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.158_2026-08-31-09-28-33_patch_3523774f-c25d-4102-8c1a-92fff046a48d +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.159_2026-08-31-10-31-01_patch_fe3e6290-2553-4154-a0a0-8b8a418280ed +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.160_2026-08-31-11-23-39_patch_e701a085-3d23-4212-b0af-73b1d419a4c1 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.161_2026-08-31-12-41-01_patch_074d7bde-c493-44db-bc15-e81fd91e2921 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.162_2026-08-31-13-58-06_patch_84db1d60-4280-433b-bd3a-22e5611cd315 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.163_2026-08-31-15-25-54_patch_1931c5ba-73df-48cb-8dcb-555ace0af267 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.163_2026-08-31-15-44-37_patch_3962e805-2a92-494a-a87b-b6e6d66c40a0 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.165_2026-08-31-19-48-59_patch_86e5b923-2b99-4b86-b542-469b197614be +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.166_2026-09-01-07-39-57_patch_c344892f-d542-4e7b-8f27-02365a411e15 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.167_2026-09-01-08-21-53_patch_e199d419-282a-4dbb-8756-cf98b7037e2b +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.168_2026-09-01-09-12-31_patch_235c9fe0-da15-431d-bb56-01e2b9b15f4b +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.169_2026-09-01-11-54-19_patch_98b617ab-d130-42b5-93f2-19cae56d4c4c +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.170_2026-09-02-09-27-28_patch_e448d2e6-b7ec-4235-96bf-0173b3623c87 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.171_2026-09-02-12-52-44_patch_e6a241c2-1d62-482c-a9eb-9e3373395c50 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.172_2026-09-04-08-47-04_patch_daae079f-c104-4fcd-bb57-7bff68e80ad9 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.173_2026-09-04-12-34-42_patch_399c4cbd-0c28-4dfd-a4ec-e569420a36e4 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.174_2026-09-04-13-08-48_patch_f5cfe3d5-808e-45e4-bafc-00d0554838ee +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.175_2026-09-04-17-20-46_patch_1ef542fa-5d8e-4d90-aa15-9fc4cea3dfec +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.176_2026-09-05-08-25-05_patch_ced5521f-f9da-4640-a921-95fcb5cd2e6d +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.177_2026-09-05-09-00-16_patch_803c1ad4-a9af-4953-92c5-d882dec03ea2 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.178_2026-09-05-09-30-34_patch_012f6259-2e3f-4591-9806-1920fd06cb1f +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.179_2026-09-05-09-33-43_patch_f4bdf28c-d584-47a5-b699-8c883330162c +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.180_2026-09-05-12-02-21_patch_34a14b01-d22d-44a8-ac63-be0370a61422 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.181_2026-09-05-12-47-46_patch_56b18867-99f6-4d5c-8215-7b9d60d34010 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.182_2026-09-05-13-35-18_patch_61b7d4d1-73c8-4603-9b0c-593e7405587f +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.183_2026-09-06-07-27-09_patch_d76331b2-e3a3-4c0b-8412-ecd131b6ac02 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.184_2026-09-06-10-21-47_patch_7680b7a1-49f0-4eef-b12e-4c854407448c +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.185_2026-09-06-10-30-40_patch_e56c2183-77f8-44ef-a92e-7377ea6ce8c1 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.186_2026-09-07-10-00-51_patch_67de5683-d208-4bc0-8fb6-7677377908e7 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.187_2026-09-07-10-18-13_patch_2086cee2-276b-48f7-80ce-6a17397b9541 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.188_2026-09-07-12-51-28_patch_d6590822-068f-4a19-814d-34bbf204ba6e +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.189_2026-09-07-12-55-23_patch_7e0fb04b-4d40-4490-974f-c74ba2ae55a1 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.190_2026-09-08-08-58-03_patch_15e3ac1e-4475-4272-bdd8-d00bb0db8f17 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.191_2026-09-08-09-55-58_patch_3d350e50-ee53-4282-bc75-d2251142c46e +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.192_2026-09-08-11-12-21_patch_0733223b-1ae2-4b5b-897f-dfc57574ff83 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.193_2026-09-08-21-48-17_patch_8d07d4e6-3555-4720-85c9-9452570fae2d +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.194_2026-09-09-07-53-43_patch_69559429-aa42-4b62-9bd7-cdfded1c00d0 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.195_2026-09-09-09-55-40_patch_bbf67f1d-3b9a-43a2-b1bc-22df3fed8a34 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.196_2026-09-09-09-59-47_patch_70d76812-7b3c-4192-ad49-fcaccc29b0da +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.197_2026-09-09-13-06-06_patch_d455be0b-5421-492a-b952-fab0fd8110f8 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.198_2026-09-09-13-14-34_patch_267f54e5-311e-435e-882f-8e19191325ea +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.199_2026-09-09-22-24-18_patch_81e3e453-ca0e-42fa-9c21-8f94d43c05f2 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.200_2026-09-10-07-19-50_patch_911714fa-1fa3-4165-bfe6-d10c650bf5bf +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.201_2026-09-10-10-14-19_patch_864015f2-b0b0-4563-a1c8-155629cb9126 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.202_2026-09-10-11-00-05_patch_18270ecf-e770-4e69-8bcf-e5143c39929b +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.203_2026-09-10-11-10-41_patch_ff273ab1-44f3-4bc0-b184-3396e943df04 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.204_2026-09-10-13-02-02_patch_d4ee41e2-d13c-4941-8605-3f1a42b56b22 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.205_2026-09-10-13-57-50_patch_284df67e-5957-4b0c-bc64-5581db6ddecc +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.206_2026-09-11-10-18-50_patch_1ac7e410-0e62-4eef-bbe4-ebf93c9d0869 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/17.0.207_2026-09-11-15-26-02_major_3f1b3ed7-eaac-41f5-b740-0af3331595d9 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.0_2026-09-12-10-01-10_patch_8995783a-a9fa-4c4e-90b3-6386a4c481eb +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.10_2026-09-14-16-09-38_patch_9403d562-eed0-4125-a8b3-09cd92a13298 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.11_2026-09-15-09-05-57_patch_8b22dba2-d931-4c4d-ae60-db3238d5e73d +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.12_2026-09-15-11-18-52_patch_81314afa-e70d-4ad8-b45b-3f8d62b983e7 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.13_2026-09-16-08-00-55_patch_bfa30fc0-3281-4de6-bb56-d7290c98d1c3 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.14_2026-09-16-14-38-26_patch_aae6e9b0-88f4-4bcf-b611-3308c7fcd6eb +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.15_2026-09-17-07-58-54_patch_43d40582-effd-4925-a8bd-e70fecf1faab +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.16_2026-09-17-08-12-37_patch_b4db2d23-88f1-45c1-82d9-78d38014fcb6 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.17_2026-09-18-09-38-19_patch_25697fc3-e9a8-4980-962b-e6cb0a4760c5 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.18_2026-09-18-09-54-33_patch_d37d9c71-c469-4d94-90d7-4898915ee991 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.19_2026-09-18-10-47-33_patch_47607b3c-d1b6-4864-b9b0-00a2a8d2ac32 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.1_2026-09-12-17-33-30_patch_f6ea2c99-a715-4c4d-876a-23ed8c62a83d +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.20_2026-09-18-11-07-21_patch_5a336f91-63a6-4877-97ed-da89395cc8f5 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.21_2026-09-18-13-34-52_patch_c56462e1-63d9-498f-a912-c80c5f0171d1 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.22_2026-09-20-08-10-45_patch_6afa2c20-bcef-4b7d-8685-2c9815d8683f +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.23_2026-09-20-08-38-35_patch_a7f169e5-37ab-4ec0-bf89-d14770181303 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.24_2026-09-20-15-49-27_patch_c1222081-ff44-4f20-aea2-5840b6d76efd +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.25_2026-09-21-06-11-40_patch_6df46dd9-e7d3-4e71-bec4-e5c93b4ac863 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.26_2026-09-21-07-54-11_patch_cc52dd36-5eba-4094-a1b0-d6f79f103441 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.27_2026-09-21-08-36-49_patch_a25fa125-9bcd-4317-8da5-851c1c329631 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.28_2026-09-21-09-44-01_patch_4430a721-0b3c-4f6a-b9bc-a53e667161bb +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.29_2026-09-21-10-58-07_patch_83b2b942-60a4-4bef-afd1-99690ba52b69 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.2_2026-09-13-06-36-33_patch_176bb944-1c49-4dd3-a001-8fce908825a0 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.30_2026-09-21-12-51-16_patch_519b9a65-d400-4234-b113-36b46e315507 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.31_2026-09-22-06-53-35_patch_5c45a235-81b6-4d05-801a-07dc7db61400 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.32_2026-09-22-07-42-04_patch_f12c6415-8166-4063-9e5d-26601b929d63 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.33_2026-09-22-08-12-32_patch_cec31bb0-a6cb-43e6-8407-25aba322b54c +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.34_2026-09-23-07-09-16_patch_659fccbb-c0a0-4f6f-bc87-e6abaa8815a7 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.35_2026-09-23-09-38-52_patch_023f904d-807a-4833-8a40-570365e8ec06 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.36_2026-09-23-10-05-33_patch_846fb491-2b1b-47ed-ac1f-ba40e744e199 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.37_2026-09-23-13-08-30_patch_8e4b1d24-156e-4ffe-8e4a-b8740ec18588 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.38_2026-09-24-06-41-37_patch_67adb1d6-3f49-4357-a67f-b1d48f23a972 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.39_2026-09-24-15-24-32_patch_e5dd375d-5643-4514-9b65-8d877c4a2bb2 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.3_2026-09-13-12-32-46_patch_58e5ce3a-f2a7-4789-b2cd-5cc75c72b6ec +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.40_2026-09-24-19-58-14_patch_ff18824b-be51-4a3d-a621-e96279e53c3e +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.41_2026-09-26-09-24-52_patch_b9979267-30f9-440a-a4ce-c611991d4886 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.42_2026-09-28-12-39-34_patch_dda535d9-8922-4eb9-ab51-6ecff0650c10 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.43_2026-09-28-13-35-27_minor_aca1168a-1286-4326-9d0c-2f2587c9fe92 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.4_2026-09-13-12-45-14_patch_b6c79d55-8f85-4f47-a304-df52b122c38c +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.5_2026-09-13-14-11-18_patch_9b111116-5e62-472a-b72c-d1bbafa22c97 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.5_2026-09-13-17-01-11_patch_d4bf61c0-83ac-4dd3-b512-a65805d298c8 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.6_2026-09-14-11-31-04_patch_fd2ebda6-22cb-4e7d-9452-2f6f2640e828 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.7_2026-09-13-17-06-08_patch_428af161-0b27-43c2-8751-e5f7874df120 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.0.9_2026-09-14-12-37-42_patch_b2ca0529-4b67-4fa4-8fdc-5f5e9f5d5166 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.1.0_2026-09-28-14-27-54_patch_324444f7-d24e-4189-b21f-1188894a3109 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/18.1.1_2026-09-28-21-03-07_major_e266a14a-7d96-4ece-92a3-8f34e64438a5 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/19.0.0_2026-09-29-11-05-31_patch_77d6f9f8-ead3-4d79-a4b2-b084b2dffc98 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/19.0.10_2026-10-02-12-56-52_patch_14e97576-73ca-44b8-82c9-7dad6f1789ab +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/19.0.11_2026-10-04-10-31-19_patch_088eb371-1799-4949-a119-286cf1cd55d1 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/19.0.12_2026-10-06-18-00-25_patch_36554bed-49c5-41cb-9fd4-48cc6af74c09 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/19.0.13_2026-10-07-12-24-08_patch_a540a364-3a0d-4960-b278-06ba2c7cc258 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/19.0.14_2026-10-07-12-52-39_patch_e3a6fc5c-2ee4-414c-a2dd-4910a655a7dd +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/19.0.15_2026-10-09-04-15-56_patch_bd7a9b06-867b-4fea-9678-973a05e3022d +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/19.0.16_2026-10-09-16-11-56_patch_a1135435-7dea-4f00-8c98-203ba3974382 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/19.0.17_2026-10-09-17-44-55_patch_faeacad8-541a-40f2-ab9c-abcd66fcd00e +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/19.0.18_2026-10-10-07-29-38_major_02601a1e-9bdb-45bf-ad67-a07b7dcd0002 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/19.0.1_2026-09-29-11-59-38_patch_bbf4753c-d641-4c2f-ac7c-02be6bd8e7c2 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/19.0.2_2026-09-29-12-44-07_patch_19fdaa94-60dc-464b-93b8-c17607ebc7b6 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/19.0.3_2026-09-29-14-16-00_patch_3cb60272-95cf-4311-8897-721e1b5c2c88 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/19.0.4_2026-09-29-16-24-53_patch_9fe8ad2b-e3ec-4558-a5fc-9c44c5c266dc +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/19.0.5_2026-09-29-17-13-16_patch_e48d2dd2-f41a-402e-a441-756b23c01dcb +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/19.0.6_2026-09-29-17-22-11_patch_3b1c79e9-9002-4e96-ba78-10668c33be6a +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/19.0.7_2026-09-30-07-50-58_patch_e8b1f046-d819-499c-9cd5-3e1a20fc9acf +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/19.0.8_2026-10-01-13-41-44_patch_7d63af18-e0af-4127-ab58-aede2407490f +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/19.0.9_2026-10-01-15-57-35_patch_143863cb-8f63-4ef7-bd78-c1114fc93a2d +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/20.0.0_2026-10-10-09-36-17_patch_d2618f39-cdc9-4d3a-ba40-1a0ad6265f3b +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/20.0.1_2026-10-11-10-24-33_patch_e29a8713-eecb-4eb1-9641-789d3cfab21a +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/20.0.2_2026-10-12-07-22-24_patch_f4053ad1-8fcd-4591-a68d-bf1e23485ba7 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/20.0.3_2026-10-14-14-29-16_patch_070af1c4-f9d9-4f97-8112-058de90d3ea8 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/20.0.4_2026-10-14-16-20-24_patch_c6672844-8227-4e0a-9fb5-36af7e7141dc +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/20.0.5_2026-10-15-08-53-28_patch_10154146-8afd-4632-b250-9b4b9f5bf67c +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/20.0.6_2026-10-15-14-17-40_patch_df3a5d3c-f0e0-46cb-aeaf-15b51c8a0f13 +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/__init__.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/version/read_version.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli.egg-info/dependency_links.txt +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli.egg-info/entry_points.txt +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli.egg-info/not-zip-safe +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli.egg-info/requires.txt +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli.egg-info/top_level.txt +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/pyproject.toml +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/setup.cfg +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/setup.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_agents_info_stats.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_appdirs.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_auth.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_clusters_info_stats.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_config.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_datasets_export.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_errors.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_files_cp.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_files_cp_helpers.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_helm.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_import_export.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_info.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_infra_config_io.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_infra_configure.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_infra_deploy_node_labels.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_infra_destroy.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_infra_get_terraform.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_infra_hibernate.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_infra_init.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_infra_pause.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_infra_provision.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_infra_start_fixes.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_infra_start_validation.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_infra_state_bucket.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_infra_terraform_init.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_invalid_secrets.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_job_list_project_filter.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_jobs_info_hides_creator.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_jobs_list_unmatched.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_key_pair.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_login.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_logout.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_main.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_mcp_proxy.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_org_select.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_plans.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_projects.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_projects_delete_confirm.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_publish_build_poll.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_publish_data.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_publish_import_root.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_publish_requirements.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_publish_versions.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_pypi_auth.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_query.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_recipe_file.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_recipe_required_args.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_recipes.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_sessions.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_state.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_support.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_todos.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_ty.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_ui.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_ui_extras.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_usage_counts.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_users_assign.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_users_info_stats.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_users_list.py +0 -0
- {ellf_cli-20.0.7 → ellf_cli-21.0.0}/tests/test_util.py +0 -0
|
@@ -1679,7 +1679,7 @@ Log in to your Ellf account. You normally don't need to call this manually. It w
|
|
|
1679
1679
|
| `--org` | `str` | Name or ID of the organization to log into. If omitted: auto-select when only one is available, or prompt interactively | `None` |
|
|
1680
1680
|
| `--cluster` | `str` | Name or ID of the cluster to log into. If omitted: auto-select when only one is available, or prompt interactively | `None` |
|
|
1681
1681
|
| `--json` | `bool` | Output the result as JSON | `False` |
|
|
1682
|
-
| `--agent` | `str` | Set up coding agents to work with Ellf: install the Ellf skills and the knowledge base MCP server. One of claude, codex,
|
|
1682
|
+
| `--agent` | `str` | Set up coding agents to work with Ellf: install the Ellf skills and the knowledge base MCP server. One of claude, codex, copilot, junie, opencode; repeat the option or comma-separate them for several | `None` |
|
|
1683
1683
|
| `--claude` | `bool` | Shortcut for --agent claude | `False` |
|
|
1684
1684
|
|
|
1685
1685
|
### `ellf logout`
|
|
@@ -12,12 +12,13 @@ from pathlib import Path
|
|
|
12
12
|
from types import ModuleType
|
|
13
13
|
from typing import Any, Callable, Optional, Union
|
|
14
14
|
|
|
15
|
-
AGENTS = ("claude", "codex", "
|
|
15
|
+
AGENTS = ("claude", "codex", "copilot", "junie", "opencode")
|
|
16
16
|
AGENT_NAMES = {
|
|
17
17
|
"claude": "Claude Code",
|
|
18
18
|
"codex": "Codex",
|
|
19
|
-
"opencode": "OpenCode",
|
|
20
19
|
"copilot": "GitHub Copilot",
|
|
20
|
+
"junie": "Junie",
|
|
21
|
+
"opencode": "OpenCode",
|
|
21
22
|
}
|
|
22
23
|
MCP_SERVER_NAME = "ellf-kb"
|
|
23
24
|
|
|
@@ -39,6 +40,10 @@ def _copilot_home() -> Path:
|
|
|
39
40
|
return _env_dir("COPILOT_HOME", _home() / ".copilot")
|
|
40
41
|
|
|
41
42
|
|
|
43
|
+
def _junie_home() -> Path:
|
|
44
|
+
return _env_dir("JUNIE_HOME", _home() / ".junie")
|
|
45
|
+
|
|
46
|
+
|
|
42
47
|
def _opencode_config_dir() -> Path:
|
|
43
48
|
return _env_dir("XDG_CONFIG_HOME", _home() / ".config") / "opencode"
|
|
44
49
|
|
|
@@ -55,7 +60,7 @@ def skills_dirs(agent: str) -> list[Path]:
|
|
|
55
60
|
"""The user-level skill directories an agent reads ellf skills from."""
|
|
56
61
|
if agent == "claude":
|
|
57
62
|
return [_home() / ".claude" / "skills"]
|
|
58
|
-
# Codex,
|
|
63
|
+
# Codex, Copilot (CLI and VS Code), Junie and OpenCode all read ~/.agents/skills.
|
|
59
64
|
dirs = [_home() / ".agents" / "skills"]
|
|
60
65
|
if agent == "copilot" and os.environ.get("COPILOT_HOME"):
|
|
61
66
|
# Copilot CLI stops reading ~/.agents/skills when COPILOT_HOME is set.
|
|
@@ -271,6 +276,14 @@ def _configure_copilot_cli(command: list[str]) -> Path:
|
|
|
271
276
|
return path
|
|
272
277
|
|
|
273
278
|
|
|
279
|
+
def _configure_junie(command: list[str]) -> Path:
|
|
280
|
+
# The Junie CLI and the JetBrains IDE plugin share this file.
|
|
281
|
+
path = _junie_home() / "mcp" / "mcp.json"
|
|
282
|
+
entry = {"command": command[0], "args": command[1:]}
|
|
283
|
+
_set_json_entry(path, ("mcpServers", MCP_SERVER_NAME), entry)
|
|
284
|
+
return path
|
|
285
|
+
|
|
286
|
+
|
|
274
287
|
def _configure_vscode(command: list[str]) -> Optional[Path]:
|
|
275
288
|
# VS Code keeps its own user mcp.json; only touch it when VS Code is there.
|
|
276
289
|
vscode_dir = _vscode_user_dir()
|
|
@@ -285,8 +298,9 @@ def _configure_vscode(command: list[str]) -> Optional[Path]:
|
|
|
285
298
|
_MCP_CONFIGURERS: dict[str, list[Callable[[list[str]], Optional[Path]]]] = {
|
|
286
299
|
"claude": [_configure_claude],
|
|
287
300
|
"codex": [_configure_codex],
|
|
288
|
-
"opencode": [_configure_opencode],
|
|
289
301
|
"copilot": [_configure_copilot_cli, _configure_vscode],
|
|
302
|
+
"junie": [_configure_junie],
|
|
303
|
+
"opencode": [_configure_opencode],
|
|
290
304
|
}
|
|
291
305
|
|
|
292
306
|
|
|
@@ -328,7 +342,7 @@ _SESSION_ENV_VARS = (
|
|
|
328
342
|
|
|
329
343
|
def current_session() -> Optional[AgentSession]:
|
|
330
344
|
"""The agent session this process runs in, from the variables agents set
|
|
331
|
-
for the commands they run. OpenCode
|
|
345
|
+
for the commands they run. Junie and OpenCode set none.
|
|
332
346
|
|
|
333
347
|
An agent started from another agent's shell inherits the outer agent's
|
|
334
348
|
variables too, and nothing says which one is running this command. Rather
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"prog": "ellf",
|
|
3
3
|
"help": "Ellf Command Line Interface.",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "21.0.0",
|
|
5
5
|
"extra_key": "_extra",
|
|
6
6
|
"commands": {
|
|
7
7
|
"actions": {
|
|
@@ -289,9 +289,9 @@
|
|
|
289
289
|
"id": "agent",
|
|
290
290
|
"option": "--agent",
|
|
291
291
|
"short": null,
|
|
292
|
-
"orig_help": "Set up coding agents to work with Ellf: install the Ellf skills and the knowledge base MCP server. One of claude, codex,
|
|
292
|
+
"orig_help": "Set up coding agents to work with Ellf: install the Ellf skills and the knowledge base MCP server. One of claude, codex, copilot, junie, opencode; repeat the option or comma-separate them for several",
|
|
293
293
|
"default": null,
|
|
294
|
-
"help": "Set up coding agents to work with Ellf: install the Ellf skills and the knowledge base MCP server. One of claude, codex,
|
|
294
|
+
"help": "Set up coding agents to work with Ellf: install the Ellf skills and the knowledge base MCP server. One of claude, codex, copilot, junie, opencode; repeat the option or comma-separate them for several (str)",
|
|
295
295
|
"action": "append",
|
|
296
296
|
"choices": null,
|
|
297
297
|
"has_converter": false,
|
|
@@ -219,8 +219,8 @@ ellf secret create my-credentials OPENAI_API_KEY="sk-..." CUSTOM_SECRET=-
|
|
|
219
219
|
login_org = "Name or ID of the organization to log into. If omitted: auto-select when only one is available, or prompt interactively"
|
|
220
220
|
login_agent = (
|
|
221
221
|
"Set up coding agents to work with Ellf: install the Ellf skills and the "
|
|
222
|
-
"knowledge base MCP server. One of claude, codex,
|
|
223
|
-
"the option or comma-separate them for several"
|
|
222
|
+
"knowledge base MCP server. One of claude, codex, copilot, junie, opencode; "
|
|
223
|
+
"repeat the option or comma-separate them for several"
|
|
224
224
|
)
|
|
225
225
|
claude = "Shortcut for --agent claude"
|
|
226
226
|
use_active_venv = "Use the currently active virtualenv, instead of making a temporary one"
|
|
@@ -336,6 +336,7 @@ ellf_cli/version/20.0.3_2026-10-14-14-29-16_patch_070af1c4-f9d9-4f97-8112-058de9
|
|
|
336
336
|
ellf_cli/version/20.0.4_2026-10-14-16-20-24_patch_c6672844-8227-4e0a-9fb5-36af7e7141dc
|
|
337
337
|
ellf_cli/version/20.0.5_2026-10-15-08-53-28_patch_10154146-8afd-4632-b250-9b4b9f5bf67c
|
|
338
338
|
ellf_cli/version/20.0.6_2026-10-15-14-17-40_patch_df3a5d3c-f0e0-46cb-aeaf-15b51c8a0f13
|
|
339
|
+
ellf_cli/version/20.0.7_2026-10-16-07-09-40_major_3e5dfba3-2810-47b4-85a9-938bfff72a04
|
|
339
340
|
ellf_cli/version/__init__.py
|
|
340
341
|
ellf_cli/version/read_version.py
|
|
341
342
|
tests/test_agents.py
|
|
@@ -19,14 +19,20 @@ SESSION_VARS = (
|
|
|
19
19
|
@pytest.fixture(autouse=True)
|
|
20
20
|
def home(tmp_path, monkeypatch) -> Path:
|
|
21
21
|
monkeypatch.setattr(Path, "home", lambda: tmp_path)
|
|
22
|
-
for var in (
|
|
22
|
+
for var in (
|
|
23
|
+
*SESSION_VARS,
|
|
24
|
+
"CODEX_HOME",
|
|
25
|
+
"COPILOT_HOME",
|
|
26
|
+
"JUNIE_HOME",
|
|
27
|
+
"XDG_CONFIG_HOME",
|
|
28
|
+
):
|
|
23
29
|
monkeypatch.delenv(var, raising=False)
|
|
24
30
|
return tmp_path
|
|
25
31
|
|
|
26
32
|
|
|
27
33
|
def test_skills_dirs(home, monkeypatch):
|
|
28
34
|
assert agents.skills_dirs("claude") == [home / ".claude" / "skills"]
|
|
29
|
-
for agent in ("codex", "opencode", "copilot"):
|
|
35
|
+
for agent in ("codex", "opencode", "copilot", "junie"):
|
|
30
36
|
assert agents.skills_dirs(agent) == [home / ".agents" / "skills"]
|
|
31
37
|
monkeypatch.setenv("COPILOT_HOME", str(home / "cp"))
|
|
32
38
|
assert agents.skills_dirs("copilot") == [
|
|
@@ -210,6 +216,24 @@ class TestCopilotConfig:
|
|
|
210
216
|
assert "ellf-kb" in json.loads(target.read_text())["mcpServers"]
|
|
211
217
|
|
|
212
218
|
|
|
219
|
+
class TestJunieConfig:
|
|
220
|
+
def test_writes_stdio_server(self, home):
|
|
221
|
+
path = home / ".junie" / "mcp" / "mcp.json"
|
|
222
|
+
path.parent.mkdir(parents=True)
|
|
223
|
+
path.write_text(json.dumps({"mcpServers": {"other": {"url": "x"}}}))
|
|
224
|
+
assert agents.configure_mcp("junie", CMD) == [path]
|
|
225
|
+
servers = json.loads(path.read_text())["mcpServers"]
|
|
226
|
+
assert servers["other"] == {"url": "x"}
|
|
227
|
+
assert servers["ellf-kb"] == {
|
|
228
|
+
"command": "/venv/bin/ellf",
|
|
229
|
+
"args": ["mcp", "kb"],
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
def test_honours_junie_home(self, home, monkeypatch):
|
|
233
|
+
monkeypatch.setenv("JUNIE_HOME", str(home / "jn"))
|
|
234
|
+
assert agents.configure_mcp("junie", CMD) == [home / "jn" / "mcp" / "mcp.json"]
|
|
235
|
+
|
|
236
|
+
|
|
213
237
|
class TestSessions:
|
|
214
238
|
def test_no_session_outside_agents(self):
|
|
215
239
|
assert agents.current_session() is None
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-annotate/SKILL.assistant.md
RENAMED
|
File without changes
|
{ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-annotate/SKILL.coding.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-handoff/SKILL.assistant.md
RENAMED
|
File without changes
|
{ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-monitor/SKILL.assistant.md
RENAMED
|
File without changes
|
{ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-monitor/SKILL.coding.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-ops/scripts.coding/run_job.py
RENAMED
|
File without changes
|
{ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-patterns/SKILL.coding.md
RENAMED
|
File without changes
|
|
File without changes
|
{ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-prodigy/SKILL.coding.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-project/SKILL.assistant.md
RENAMED
|
File without changes
|
{ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-project/SKILL.coding.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-support/SKILL.assistant.md
RENAMED
|
File without changes
|
{ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-support/SKILL.coding.md
RENAMED
|
File without changes
|
|
File without changes
|
{ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-train/SKILL.assistant.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ellf_cli-20.0.7 → ellf_cli-21.0.0}/ellf_cli/ellf_skills/skills/ellf-train/references/diagnostics.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|