mammoth-cli 2.2.70__tar.gz → 2.2.71__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.
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/PKG-INFO +6 -5
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/README.md +4 -3
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/__init__.py +1 -1
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/upgrade.py +25 -10
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/context/oauth.py +51 -15
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/runtime/updates.py +33 -12
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/pyproject.toml +2 -2
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/.gitignore +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/LICENSE +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/__main__.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/app.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/SKILL.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/about-mammoth.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities-misc.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/command-index.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/activity.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/addon.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/agent.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/ai.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/annotation.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/auth.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/automation.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/batch.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/billing.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/browse.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/calc.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/capability.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/client-app.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/completion.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/config.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/connector.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/context.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-qa.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-style.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-template.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/data-app.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dataset.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/doctor.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/external-key.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/file.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/folder.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/job.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/link.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/log.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/notification.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/parameter.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/project.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/report.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/resolve.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schedule.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schema.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/skill.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/snippet.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/support.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/template.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/token.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/trash.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/upgrade.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/user.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/version.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view-transform.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/webhook.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workflow.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workspace.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/handoff.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/input.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/jobs-drafts.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/machine-output.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/operations.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/auth-scope.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/build-an-agent.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/cleanup.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/dashboards.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/database-import.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/end-to-end.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/exports.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/file-import.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/index.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/need-action.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/resources.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/scheduling.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/transforms.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/typed-etl-discovery.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/recovery.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/report-checklist.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/retention.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/safety.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/task-start.md +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/__init__.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/_lazy.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/activity.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/addon.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/agent.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/ai.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/annotation.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/auth.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/automation.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/batch.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/billing.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/browse.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/calc.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/capability.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/client_app.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/completion.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/config.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/connector.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/context.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/dashboard.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/data_app.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/dataset.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/doctor.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/external_key.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/file.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/folder.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/help_summaries.json +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/job.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/link.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/notification.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/parameter.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/project.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/registry.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/report.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/resolve.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/schedule.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/schema.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/skill.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/snippet.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/support.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/template.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/trash.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/user.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/view.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/view_ops.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/view_profile.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/webhook.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/workflow.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/commands/workspace.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/context/__init__.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/context/credentials.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/context/endpoint.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/context/keyring_backend.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/context/profiles.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/context/resolver.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/contracts/__init__.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/contracts/auth.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/embed.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/errors/__init__.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/errors/envelope.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/manifest/__init__.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/manifest/loader.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/messages/__init__.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/output/__init__.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/output/envelope.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/output/normalize.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/output/policy.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/output/progress.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/output/render.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/py.typed +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/runtime/__init__.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/runtime/confirm.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/runtime/dataset_health.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/runtime/dryrun.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/runtime/dryrun_targets.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/runtime/embedded.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/runtime/executor.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/runtime/input_loader.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/runtime/intent_only.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/runtime/invocation.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/runtime/locked_files.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/runtime/new_data.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/runtime/opens.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/runtime/options.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/runtime/parents.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/runtime/runlog.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/runtime/session.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/runtime/state.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/runtime/strict.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/runtime/validate.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/runtime/verify.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/__init__.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/append_blank_columns.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/argspec.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/board_values.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/coerce.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/command_contract.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/conditional_format.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/conditions.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/dashboard_filters.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/dashboard_pages.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/dashboard_review.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/data_profile.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/data_quality.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/dispatch.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/explore_cards.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/factory.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/folder_ids.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/input_fields.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/job_outcome.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/listing.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/local_time.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/mapping.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/openapi_types.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/positionals.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/protocol.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/read_queries.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/sdk_service.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/sql_check.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/stored_stats.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/testing.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/text_dates.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/type_system.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/view_analysis.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/view_variants.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/services/write_impact.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/skills/__init__.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/skills/installer.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/skills/steering.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/testing.py +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/activity.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/addon.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/agent.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/ai.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/annotation.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/auth.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/automation.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/batch.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/billing.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/browse.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/calc.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/capability.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/client-app.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/completion.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/config.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/connector.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/context.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/dashboard.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/data-app.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/dataset.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/doctor.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/external-key.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/file.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/folder.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/job.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/link.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/log.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/notification.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/parameter.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/project.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/report.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/resolve.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/schedule.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/schema.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/skill.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/snippet.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/support.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/template.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/token.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/trash.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/upgrade.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/user.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/version.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/view.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/webhook.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/workflow.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/commands/workspace.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/edits-target.source.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/openapi-operations.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/schema-v1.json +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/sdk-catalog.source.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/manifests/sdk-methods.yaml +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/openapi/metadata.json +0 -0
- {mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/spec/openapi/openapi.json +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mammoth-cli
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.71
|
|
4
4
|
Summary: Command-line interface for the Mammoth Analytics platform
|
|
5
5
|
Project-URL: homepage, https://mammoth.io
|
|
6
6
|
Project-URL: repository, https://github.com/EdgeMetric/mammothsdk
|
|
@@ -17,7 +17,7 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
|
17
17
|
Requires-Python: <3.15,>=3.12
|
|
18
18
|
Requires-Dist: jsonschema>=4.20
|
|
19
19
|
Requires-Dist: keyring<26,>=25.7
|
|
20
|
-
Requires-Dist: mammoth-io<0.9,>=0.8.
|
|
20
|
+
Requires-Dist: mammoth-io<0.9,>=0.8.33
|
|
21
21
|
Requires-Dist: platformdirs<5,>=4.10
|
|
22
22
|
Requires-Dist: pydantic<3,>=2.12.5
|
|
23
23
|
Requires-Dist: pyyaml<7,>=6
|
|
@@ -242,10 +242,11 @@ mammoth skill install --input '{"agents": ["codex"], "scope": "project"}'
|
|
|
242
242
|
Use `mammoth skill update` after a CLI upgrade. It refreshes copies owned by the
|
|
243
243
|
installer and reports modified copies instead of silently replacing them.
|
|
244
244
|
|
|
245
|
-
The CLI checks PyPI for a newer release at most once
|
|
245
|
+
The CLI checks PyPI for a newer release at most once an hour, after a command
|
|
246
246
|
has finished: every JSON envelope carries `meta.update_available` and human
|
|
247
|
-
output adds one stderr line.
|
|
248
|
-
|
|
247
|
+
output adds one stderr line. In a terminal it also upgrades itself before the
|
|
248
|
+
next command; set `MAMMOTH_AUTO_UPGRADE=0` to stop that, or
|
|
249
|
+
`MAMMOTH_NO_UPDATE_CHECK=1` to turn the check off (see
|
|
249
250
|
[Upgrade](https://github.com/EdgeMetric/mammothsdk/blob/main/mammoth-cli/docs/upgrade.md)).
|
|
250
251
|
|
|
251
252
|
## What you can do
|
|
@@ -214,10 +214,11 @@ mammoth skill install --input '{"agents": ["codex"], "scope": "project"}'
|
|
|
214
214
|
Use `mammoth skill update` after a CLI upgrade. It refreshes copies owned by the
|
|
215
215
|
installer and reports modified copies instead of silently replacing them.
|
|
216
216
|
|
|
217
|
-
The CLI checks PyPI for a newer release at most once
|
|
217
|
+
The CLI checks PyPI for a newer release at most once an hour, after a command
|
|
218
218
|
has finished: every JSON envelope carries `meta.update_available` and human
|
|
219
|
-
output adds one stderr line.
|
|
220
|
-
|
|
219
|
+
output adds one stderr line. In a terminal it also upgrades itself before the
|
|
220
|
+
next command; set `MAMMOTH_AUTO_UPGRADE=0` to stop that, or
|
|
221
|
+
`MAMMOTH_NO_UPDATE_CHECK=1` to turn the check off (see
|
|
221
222
|
[Upgrade](https://github.com/EdgeMetric/mammothsdk/blob/main/mammoth-cli/docs/upgrade.md)).
|
|
222
223
|
|
|
223
224
|
## What you can do
|
|
@@ -278,6 +278,22 @@ def run_upgrade(command: list[str]) -> subprocess.CompletedProcess[str]:
|
|
|
278
278
|
) from exc
|
|
279
279
|
|
|
280
280
|
|
|
281
|
+
def installed_version() -> str | None:
|
|
282
|
+
"""The version a fresh interpreter reports, i.e. what the upgrade really installed."""
|
|
283
|
+
try:
|
|
284
|
+
result = subprocess.run( # noqa: S603 - fixed argv, no shell
|
|
285
|
+
[sys.executable, "-m", "mammoth_cli", "--version"],
|
|
286
|
+
capture_output=True,
|
|
287
|
+
text=True,
|
|
288
|
+
timeout=30,
|
|
289
|
+
check=False,
|
|
290
|
+
)
|
|
291
|
+
except (OSError, subprocess.SubprocessError):
|
|
292
|
+
return None
|
|
293
|
+
output = result.stdout.strip().splitlines()
|
|
294
|
+
return output[-1].strip() if result.returncode == 0 and output else None
|
|
295
|
+
|
|
296
|
+
|
|
281
297
|
def _envelope(
|
|
282
298
|
*,
|
|
283
299
|
manager: str,
|
|
@@ -379,17 +395,16 @@ def perform(invocation: Invocation, *, check: bool, target_version: str | None)
|
|
|
379
395
|
},
|
|
380
396
|
hint=f"Run it manually to see full output: {' '.join(command)}",
|
|
381
397
|
)
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
command=command,
|
|
390
|
-
),
|
|
391
|
-
{},
|
|
398
|
+
envelope = _envelope(
|
|
399
|
+
manager=manager,
|
|
400
|
+
current=current,
|
|
401
|
+
latest=latest,
|
|
402
|
+
target=target_version,
|
|
403
|
+
action=ACTION_UPGRADED,
|
|
404
|
+
command=command,
|
|
392
405
|
)
|
|
406
|
+
envelope["installed_version"] = installed_version()
|
|
407
|
+
return envelope, {}
|
|
393
408
|
|
|
394
409
|
|
|
395
410
|
def upgrade_command(
|
|
@@ -20,6 +20,7 @@ from __future__ import annotations
|
|
|
20
20
|
|
|
21
21
|
import base64
|
|
22
22
|
import contextlib
|
|
23
|
+
import functools
|
|
23
24
|
import hashlib
|
|
24
25
|
import html
|
|
25
26
|
import http.server
|
|
@@ -34,13 +35,16 @@ from dataclasses import dataclass
|
|
|
34
35
|
|
|
35
36
|
from mammoth_cli.context import credentials
|
|
36
37
|
from mammoth_cli.context.credentials import OAuthSession
|
|
37
|
-
from mammoth_cli.context.endpoint import DEFAULT_SERVER_PREFIX
|
|
38
|
+
from mammoth_cli.context.endpoint import DEFAULT_SERVER_PREFIX, resolve_base_url
|
|
38
39
|
from mammoth_cli.context.profiles import config_dir
|
|
39
40
|
from mammoth_cli.errors.envelope import EXIT_AUTH, EXIT_USAGE, CliError
|
|
40
41
|
|
|
41
42
|
#: The first-party CLI's OAuth client id, one constant per environment (the
|
|
42
43
|
#: server prefix). The server allow-lists these ids, so they are not
|
|
43
44
|
#: configurable at run time. An environment absent here has no CLI client yet.
|
|
45
|
+
#: This table is the fallback for servers that do not publish
|
|
46
|
+
#: ``mammoth_cli_client_id`` in their OAuth metadata (see
|
|
47
|
+
#: :func:`published_client_id`); it is removed once every server publishes it.
|
|
44
48
|
OAUTH_CLIENT_IDS: dict[str, str] = {
|
|
45
49
|
"challenger": "oc_aea5c2ce829da3f8",
|
|
46
50
|
"koyal": "oc_f2566336e235795c",
|
|
@@ -78,11 +82,43 @@ def login_expired_error() -> CliError:
|
|
|
78
82
|
)
|
|
79
83
|
|
|
80
84
|
|
|
85
|
+
#: The metadata field carrying the CLI's client id on servers that publish it.
|
|
86
|
+
METADATA_CLIENT_ID_FIELD = "mammoth_cli_client_id"
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
@functools.cache
|
|
90
|
+
def published_client_id(prefix: str) -> str | None:
|
|
91
|
+
"""The client id the server publishes in its OAuth metadata, or None.
|
|
92
|
+
|
|
93
|
+
One GET per environment per process. None when the field is absent, the
|
|
94
|
+
server cannot be reached, or it answers anything but metadata: the caller
|
|
95
|
+
then falls back to :data:`OAUTH_CLIENT_IDS`.
|
|
96
|
+
"""
|
|
97
|
+
from mammoth import oauth as sdk_oauth
|
|
98
|
+
|
|
99
|
+
try:
|
|
100
|
+
status, body = sdk_oauth.metadata_request(resolve_base_url(prefix))
|
|
101
|
+
except CliError:
|
|
102
|
+
return None
|
|
103
|
+
except sdk_oauth.OAuthTransportError:
|
|
104
|
+
return None
|
|
105
|
+
if status != 200:
|
|
106
|
+
return None
|
|
107
|
+
value = body.get(METADATA_CLIENT_ID_FIELD) if isinstance(body, dict) else None
|
|
108
|
+
return value if isinstance(value, str) and value else None
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
def _resolve_client_id(server_prefix: str | None) -> str | None:
|
|
112
|
+
prefix = server_prefix if server_prefix is not None else DEFAULT_SERVER_PREFIX
|
|
113
|
+
return published_client_id(prefix) or OAUTH_CLIENT_IDS.get(prefix)
|
|
114
|
+
|
|
115
|
+
|
|
81
116
|
def has_client_id(server_prefix: str | None) -> bool:
|
|
82
|
-
"""Whether the CLI has an OAuth client
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
117
|
+
"""Whether the CLI has an OAuth client for this environment.
|
|
118
|
+
|
|
119
|
+
Makes a network call (cached per process): call it only on login paths.
|
|
120
|
+
"""
|
|
121
|
+
return _resolve_client_id(server_prefix) is not None
|
|
86
122
|
|
|
87
123
|
|
|
88
124
|
def client_id_for(server_prefix: str | None) -> str:
|
|
@@ -91,17 +127,17 @@ def client_id_for(server_prefix: str | None) -> str:
|
|
|
91
127
|
Raises:
|
|
92
128
|
CliError: ``oauth_unavailable`` when the environment has no CLI client.
|
|
93
129
|
"""
|
|
130
|
+
client_id = _resolve_client_id(server_prefix)
|
|
131
|
+
if client_id is not None:
|
|
132
|
+
return client_id
|
|
94
133
|
prefix = server_prefix if server_prefix is not None else DEFAULT_SERVER_PREFIX
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
hint="Pick option 3 (paste an API token) or run: mammoth auth login --method token",
|
|
103
|
-
recovery_commands=["mammoth auth login --method token"],
|
|
104
|
-
) from None
|
|
134
|
+
raise CliError(
|
|
135
|
+
code=CODE_OAUTH_UNAVAILABLE,
|
|
136
|
+
message=f"Browser sign-in is not available on '{prefix}' yet.",
|
|
137
|
+
exit_status=EXIT_USAGE,
|
|
138
|
+
hint="Pick option 3 (paste an API token) or run: mammoth auth login --method token",
|
|
139
|
+
recovery_commands=["mammoth auth login --method token"],
|
|
140
|
+
)
|
|
105
141
|
|
|
106
142
|
|
|
107
143
|
# --- PKCE ---------------------------------------------------------------------
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
"""
|
|
1
|
+
"""Hourly update check, and the automatic upgrade (on by default).
|
|
2
2
|
|
|
3
3
|
The CLI never blocks a command on the network for this. A command reads the
|
|
4
4
|
cached answer (``update-check.json`` in the platform state directory, next to
|
|
5
|
-
the run log's ``logs/``) and, when that answer is older than
|
|
5
|
+
the run log's ``logs/``) and, when that answer is older than an hour, refreshes
|
|
6
6
|
it *after* its own output has been written, with a short timeout and every
|
|
7
7
|
failure swallowed. The hint therefore appears from the next command on.
|
|
8
8
|
|
|
@@ -12,11 +12,13 @@ What a caller sees:
|
|
|
12
12
|
``{"current", "latest", "command"}`` when a newer release is on PyPI.
|
|
13
13
|
* one line on stderr in human output modes (never in ``json``/``ndjson``).
|
|
14
14
|
* ``MAMMOTH_NO_UPDATE_CHECK=1`` disables the check and the hint entirely.
|
|
15
|
-
*
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
* The upgrade runs before the command, once per detected release, through the
|
|
16
|
+
same manager detection as ``mammoth upgrade``; the running command still
|
|
17
|
+
completes on the version that started it. ``MAMMOTH_AUTO_UPGRADE=0`` (or
|
|
18
|
+
``false``/``no``/``off``) turns it off. Unless ``MAMMOTH_AUTO_UPGRADE`` is
|
|
19
|
+
set to an on value (``1``), it also stays off when stdout is not a terminal
|
|
20
|
+
or ``CI`` is set, because pinned environments (locks, CI, scripts) must
|
|
21
|
+
never change underneath a task.
|
|
20
22
|
|
|
21
23
|
``MAMMOTH_UPDATE_CACHE`` overrides the cache file path (tests and sandboxes).
|
|
22
24
|
"""
|
|
@@ -41,7 +43,7 @@ AUTO_UPGRADE_ENV = "MAMMOTH_AUTO_UPGRADE"
|
|
|
41
43
|
CACHE_ENV = "MAMMOTH_UPDATE_CACHE"
|
|
42
44
|
|
|
43
45
|
#: How long a cached PyPI answer is trusted.
|
|
44
|
-
CACHE_TTL = _dt.timedelta(hours=
|
|
46
|
+
CACHE_TTL = _dt.timedelta(hours=1)
|
|
45
47
|
#: The background refresh must not hold a finished command hostage.
|
|
46
48
|
REFRESH_TIMEOUT_SECONDS = 3.0
|
|
47
49
|
#: Commands that manage the install themselves; no hint, no auto-upgrade.
|
|
@@ -55,6 +57,7 @@ _NO_NOTICE = frozenset({"upgrade"})
|
|
|
55
57
|
UPGRADE_COMMAND = "mammoth upgrade --yes"
|
|
56
58
|
|
|
57
59
|
_TRUTHY = frozenset({"1", "true", "yes", "on"})
|
|
60
|
+
_FALSY = frozenset({"0", "false", "no", "off"})
|
|
58
61
|
|
|
59
62
|
|
|
60
63
|
def _flag(name: str) -> bool:
|
|
@@ -66,8 +69,23 @@ def enabled() -> bool:
|
|
|
66
69
|
return not _flag(DISABLE_ENV) and not embedded.active()
|
|
67
70
|
|
|
68
71
|
|
|
72
|
+
def _interactive_session() -> bool:
|
|
73
|
+
"""A terminal on stdout and no ``CI`` variable: a person is running this."""
|
|
74
|
+
return sys.stdout.isatty() and not (os.environ.get("CI") or "").strip()
|
|
75
|
+
|
|
76
|
+
|
|
69
77
|
def auto_upgrade_enabled() -> bool:
|
|
70
|
-
|
|
78
|
+
"""On by default for interactive sessions; ``MAMMOTH_AUTO_UPGRADE`` overrides.
|
|
79
|
+
|
|
80
|
+
``0``/``false``/``no``/``off`` turns it off; ``1``/``true``/``yes``/``on``
|
|
81
|
+
forces it on even without a terminal or inside CI.
|
|
82
|
+
"""
|
|
83
|
+
if not enabled():
|
|
84
|
+
return False
|
|
85
|
+
setting = (os.environ.get(AUTO_UPGRADE_ENV) or "").strip().lower()
|
|
86
|
+
if setting in _FALSY:
|
|
87
|
+
return False
|
|
88
|
+
return setting in _TRUTHY or _interactive_session()
|
|
71
89
|
|
|
72
90
|
|
|
73
91
|
def cache_path() -> Path:
|
|
@@ -153,10 +171,13 @@ def available_update(command_id: str | None = None) -> dict[str, Any] | None:
|
|
|
153
171
|
|
|
154
172
|
|
|
155
173
|
def hint_line(update: dict[str, Any]) -> str:
|
|
156
|
-
|
|
174
|
+
line = (
|
|
157
175
|
f"mammoth-cli {update['latest']} is available (you have {update['current']}); "
|
|
158
176
|
f"run: {update['command']}"
|
|
159
177
|
)
|
|
178
|
+
if auto_upgrade_enabled():
|
|
179
|
+
line += f" (auto-upgrade is on; turn it off with {AUTO_UPGRADE_ENV}=0)"
|
|
180
|
+
return line
|
|
160
181
|
|
|
161
182
|
|
|
162
183
|
def _fetch_latest() -> str | None:
|
|
@@ -206,7 +227,7 @@ def refresh_in_background(command_id: str | None = None) -> None:
|
|
|
206
227
|
"""Refresh a stale cache in a detached process, so the command exits at once.
|
|
207
228
|
|
|
208
229
|
:func:`refresh_if_stale` asks PyPI with a 3 s timeout; run inline it keeps
|
|
209
|
-
the finished command alive for up to that long once
|
|
230
|
+
the finished command alive for up to that long once an hour. The cache is
|
|
210
231
|
stamped first so concurrent commands do not each spawn a check; the child
|
|
211
232
|
(``python -m mammoth_cli.runtime.updates``) writes the answer.
|
|
212
233
|
"""
|
|
@@ -241,7 +262,7 @@ def emit_hint(update: dict[str, Any] | None, *, output: str) -> None:
|
|
|
241
262
|
|
|
242
263
|
|
|
243
264
|
def auto_upgrade(command_id: str, run_log: Any = None) -> dict[str, Any] | None:
|
|
244
|
-
"""Upgrade in place when
|
|
265
|
+
"""Upgrade in place when auto-upgrade is enabled and a release is cached.
|
|
245
266
|
|
|
246
267
|
Returns a record of what happened (also written to ``run_log`` when
|
|
247
268
|
given), or ``None`` when nothing was attempted. The current process keeps
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "mammoth-cli"
|
|
3
|
-
version = "2.2.
|
|
3
|
+
version = "2.2.71"
|
|
4
4
|
description = "Command-line interface for the Mammoth Analytics platform"
|
|
5
5
|
authors = [{name = "Mammoth Analytics", email = "support@mammoth.io"}]
|
|
6
6
|
readme = "README.md"
|
|
7
7
|
license = "LicenseRef-Proprietary"
|
|
8
8
|
requires-python = ">=3.12,<3.15"
|
|
9
9
|
dependencies = [
|
|
10
|
-
"mammoth-io (>=0.8.
|
|
10
|
+
"mammoth-io (>=0.8.33,<0.9)",
|
|
11
11
|
"typer (>=0.27,<0.28)",
|
|
12
12
|
"rich (>=15,<16)",
|
|
13
13
|
"platformdirs (>=4.10,<5)",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.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
|
|
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
|
{mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/input.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
|
{mammoth_cli-2.2.70 → mammoth_cli-2.2.71}/mammoth_cli/bundled_skill/mammoth-cli/references/safety.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
|