mammoth-cli 2.0.9__tar.gz → 2.0.11__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.0.9 → mammoth_cli-2.0.11}/PKG-INFO +1 -1
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/__init__.py +1 -1
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.md +5 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/auth.py +57 -2
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/doctor.py +58 -1
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/pyproject.toml +1 -1
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/.gitignore +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/LICENSE +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/README.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/__main__.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/app.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/SKILL.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/command-index.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/activity.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/addon.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/agent.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/ai.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/annotation.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/auth.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/automation.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/batch.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/billing.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/browse.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/capability.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/client-app.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/completion.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/config.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/connector.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/context.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/data-app.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dataset.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/doctor.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/external-key.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/file.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/folder.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/job.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/notification.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/parameter.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/project.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/report.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schedule.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schema.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/skill.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/snippet.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/support.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/template.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/trash.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/upgrade.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/user.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/version.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/webhook.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workflow.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workspace.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/handoff.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/input.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/jobs-drafts.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/machine-output.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/operations.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/auth-scope.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/cleanup.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/dashboards.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/exports.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/index.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/resources.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/transforms.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/typed-etl-discovery.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/recovery.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/retention.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/safety.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/task-start.md +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/__init__.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/activity.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/addon.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/agent.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/ai.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/annotation.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/automation.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/batch.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/billing.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/browse.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/capability.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/client_app.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/completion.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/config.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/connector.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/context.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/dashboard.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/data_app.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/dataset.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/external_key.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/file.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/folder.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/job.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/notification.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/parameter.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/project.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/registry.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/report.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/schedule.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/schema.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/skill.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/snippet.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/support.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/template.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/trash.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/upgrade.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/user.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/view.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/view_ops.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/webhook.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/workflow.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/commands/workspace.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/context/__init__.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/context/credentials.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/context/endpoint.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/context/profiles.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/context/resolver.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/contracts/__init__.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/contracts/auth.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/errors/__init__.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/errors/envelope.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/manifest/__init__.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/manifest/loader.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/messages/__init__.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/output/__init__.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/output/envelope.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/output/normalize.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/output/policy.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/output/progress.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/output/render.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/py.typed +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/runtime/__init__.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/runtime/confirm.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/runtime/executor.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/runtime/input_loader.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/runtime/invocation.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/runtime/options.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/runtime/session.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/runtime/strict.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/runtime/validate.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/services/__init__.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/services/argspec.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/services/coerce.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/services/command_contract.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/services/conditions.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/services/dispatch.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/services/factory.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/services/input_fields.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/services/mapping.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/services/openapi_types.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/services/positionals.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/services/protocol.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/services/sdk_service.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/services/testing.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/services/type_system.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/skills/__init__.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/skills/installer.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/testing.py +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/activity.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/addon.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/agent.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/ai.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/annotation.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/auth.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/automation.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/batch.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/billing.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/browse.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/capability.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/client-app.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/completion.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/config.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/connector.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/context.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/dashboard.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/data-app.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/dataset.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/doctor.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/external-key.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/file.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/folder.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/job.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/notification.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/parameter.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/project.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/report.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/schedule.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/schema.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/skill.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/snippet.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/support.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/template.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/trash.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/upgrade.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/user.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/version.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/view.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/webhook.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/workflow.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/commands/workspace.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/openapi-operations.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/schema-v1.json +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/sdk-catalog.source.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/manifests/sdk-methods.yaml +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/openapi/metadata.json +0 -0
- {mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/spec/openapi/openapi.json +0 -0
{mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.md
RENAMED
|
@@ -72,6 +72,11 @@ present and its endpoint matches, verify the live connection:
|
|
|
72
72
|
mammoth doctor --profile PROFILE --output json --no-input
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
+
`doctor` also lists the projects the credential can see (`projects` check)
|
|
76
|
+
and verifies that `--project` or the selected project is one of them
|
|
77
|
+
(`project_context` check). Pick the project id from that list; the API does
|
|
78
|
+
not expose write permission, so the first write is what proves it.
|
|
79
|
+
|
|
75
80
|
Do not continue to schema discovery or business operations after an
|
|
76
81
|
authentication or doctor failure. The `app` server prefix is the production
|
|
77
82
|
default; release or other environment credentials do not imply authorization
|
|
@@ -27,6 +27,7 @@ from mammoth_cli.context.resolver import (
|
|
|
27
27
|
)
|
|
28
28
|
from mammoth_cli.contracts.auth import LoginRequest
|
|
29
29
|
from mammoth_cli.errors.envelope import (
|
|
30
|
+
CODE_AUTHENTICATION_FAILED,
|
|
30
31
|
CODE_CONFIRMATION_DECLINED,
|
|
31
32
|
CODE_CONFIRMATION_REQUIRED,
|
|
32
33
|
CODE_INVALID_WORKSPACE_ID,
|
|
@@ -135,6 +136,34 @@ def _validate_login_document(document: dict[str, Any]) -> LoginRequest:
|
|
|
135
136
|
) from exc
|
|
136
137
|
|
|
137
138
|
|
|
139
|
+
def _masked_receipt(value: str) -> str:
|
|
140
|
+
"""Describe a secret without revealing it: its length and last four characters."""
|
|
141
|
+
if len(value) <= 4:
|
|
142
|
+
return f"{len(value)} characters"
|
|
143
|
+
return f"{len(value)} characters, ending in …{value[-4:]}"
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
def _prompt_secret(label: str) -> str:
|
|
147
|
+
"""Prompt for one secret with hidden input, then confirm what was captured.
|
|
148
|
+
|
|
149
|
+
A hidden prompt shows nothing while typing, so a paste that silently
|
|
150
|
+
carried a newline or trailing space, or an empty return, used to surface
|
|
151
|
+
only later as an opaque 401. Surrounding whitespace is stripped, an empty
|
|
152
|
+
entry is rejected here, and a masked receipt (length and last four
|
|
153
|
+
characters, never the value) is printed to stderr as feedback.
|
|
154
|
+
"""
|
|
155
|
+
value = typer.prompt(label, hide_input=True).strip()
|
|
156
|
+
if not value:
|
|
157
|
+
raise CliError(
|
|
158
|
+
code="login_input_required",
|
|
159
|
+
message=f"The {label} was empty.",
|
|
160
|
+
exit_status=EXIT_USAGE,
|
|
161
|
+
hint=f"Paste the {label} at the hidden prompt; nothing is echoed while you type.",
|
|
162
|
+
)
|
|
163
|
+
typer.echo(f" {label}: {_masked_receipt(value)}", err=True)
|
|
164
|
+
return str(value)
|
|
165
|
+
|
|
166
|
+
|
|
138
167
|
def _prompt_blockers(invocation: Invocation) -> list[str]:
|
|
139
168
|
"""Reasons this invocation cannot interactively prompt, in report order.
|
|
140
169
|
|
|
@@ -190,8 +219,8 @@ def _run_login(
|
|
|
190
219
|
# Two flows, nothing else: a terminal prompts for everything (key,
|
|
191
220
|
# secret, then workspace id), and non-interactive uses --input. The
|
|
192
221
|
# workspace is asked last, after the credentials.
|
|
193
|
-
api_key =
|
|
194
|
-
api_secret =
|
|
222
|
+
api_key = _prompt_secret("API key")
|
|
223
|
+
api_secret = _prompt_secret("API secret")
|
|
195
224
|
effective_workspace = typer.prompt("Workspace id", type=int)
|
|
196
225
|
effective_prefix = server_prefix
|
|
197
226
|
else:
|
|
@@ -231,6 +260,32 @@ def _run_login(
|
|
|
231
260
|
service = service_factory.build_service(resolved_auth, timeout=invocation.timeout)
|
|
232
261
|
try:
|
|
233
262
|
service.check_connection()
|
|
263
|
+
except CliError as exc:
|
|
264
|
+
if exc.code == CODE_AUTHENTICATION_FAILED:
|
|
265
|
+
# Say exactly what was tried, without the secret: the endpoint,
|
|
266
|
+
# the workspace, and a masked receipt of the key. Credentials are
|
|
267
|
+
# per environment, and a release key typed at a production login
|
|
268
|
+
# is the common cause of an otherwise opaque 401.
|
|
269
|
+
exc.details = {
|
|
270
|
+
**exc.details,
|
|
271
|
+
"endpoint_base_url": resolved_base_url,
|
|
272
|
+
"workspace_id": effective_workspace,
|
|
273
|
+
# Receipts only (length and last four characters). The output
|
|
274
|
+
# layer redacts any key that looks like a credential, so these
|
|
275
|
+
# are named for what they are: descriptions, not values.
|
|
276
|
+
"credential_receipt": {
|
|
277
|
+
"key": _masked_receipt(api_key),
|
|
278
|
+
"second_value_length": len(api_secret),
|
|
279
|
+
},
|
|
280
|
+
}
|
|
281
|
+
exc.hint = (
|
|
282
|
+
f"{resolved_base_url} rejected this key/secret for workspace "
|
|
283
|
+
f"{effective_workspace}. Credentials are per environment: a key issued on "
|
|
284
|
+
"one Mammoth server does not authenticate on another. Check the key, the "
|
|
285
|
+
"secret, the workspace id, and that --server-prefix matches where the key "
|
|
286
|
+
"was issued."
|
|
287
|
+
)
|
|
288
|
+
raise
|
|
234
289
|
finally:
|
|
235
290
|
service.close()
|
|
236
291
|
|
|
@@ -111,6 +111,16 @@ def _safe_connection_diagnostics(error: CliError, *, debug: bool) -> dict[str, A
|
|
|
111
111
|
return result
|
|
112
112
|
|
|
113
113
|
|
|
114
|
+
_PROJECT_LIMIT = 20
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
def _visible_projects(service: Any) -> list[dict[str, Any]]:
|
|
118
|
+
"""Return the projects this credential can list, or an empty list."""
|
|
119
|
+
response = service.list_projects(limit=_PROJECT_LIMIT + 1)
|
|
120
|
+
projects = response.get("projects", []) if isinstance(response, dict) else []
|
|
121
|
+
return [p for p in projects if isinstance(p, dict)]
|
|
122
|
+
|
|
123
|
+
|
|
114
124
|
def doctor(invocation: Invocation) -> HandlerResult:
|
|
115
125
|
"""Run environment and connectivity diagnostics.
|
|
116
126
|
|
|
@@ -168,10 +178,12 @@ def doctor(invocation: Invocation) -> HandlerResult:
|
|
|
168
178
|
|
|
169
179
|
connection_ok = False
|
|
170
180
|
connection_detail = "not attempted"
|
|
181
|
+
projects: list[dict[str, Any]] | None = None
|
|
171
182
|
if auth_ok:
|
|
172
183
|
try:
|
|
173
184
|
with open_service(invocation) as (service, _auth):
|
|
174
185
|
service.check_connection()
|
|
186
|
+
projects = _visible_projects(service)
|
|
175
187
|
connection_ok = True
|
|
176
188
|
connection_detail = "authenticated request succeeded"
|
|
177
189
|
except CliError as error:
|
|
@@ -185,11 +197,56 @@ def doctor(invocation: Invocation) -> HandlerResult:
|
|
|
185
197
|
if not auth_ok:
|
|
186
198
|
checks.append(_check("connection", connection_ok, connection_detail))
|
|
187
199
|
|
|
200
|
+
# Authentication proves an identity, not a place to work. Report the
|
|
201
|
+
# projects this credential can see and whether the selected project is
|
|
202
|
+
# one of them. The API exposes no role or permission data, so write
|
|
203
|
+
# access is claimed by nobody here: the first write reports it.
|
|
204
|
+
selected_project = resolved_project(invocation)
|
|
205
|
+
if projects is not None:
|
|
206
|
+
visible_ids = [p.get("id") for p in projects]
|
|
207
|
+
checks.append(
|
|
208
|
+
{
|
|
209
|
+
**_check(
|
|
210
|
+
"projects",
|
|
211
|
+
bool(projects),
|
|
212
|
+
(
|
|
213
|
+
f"{len(projects)} project(s) visible in workspace"
|
|
214
|
+
if projects
|
|
215
|
+
else "no projects visible to this credential in the workspace"
|
|
216
|
+
),
|
|
217
|
+
),
|
|
218
|
+
"projects": [
|
|
219
|
+
{"id": p.get("id"), "name": p.get("name")} for p in projects[:_PROJECT_LIMIT]
|
|
220
|
+
],
|
|
221
|
+
"truncated": len(projects) > _PROJECT_LIMIT,
|
|
222
|
+
}
|
|
223
|
+
)
|
|
224
|
+
if selected_project is None:
|
|
225
|
+
# Not a failure: every command accepts --project explicitly. It is
|
|
226
|
+
# reported so an agent knows it still has to choose one.
|
|
227
|
+
project_ok = True
|
|
228
|
+
project_detail = "no project selected; pass --project per command or set one"
|
|
229
|
+
elif selected_project in visible_ids:
|
|
230
|
+
project_ok, project_detail = True, f"project {selected_project} is visible"
|
|
231
|
+
else:
|
|
232
|
+
project_ok = False
|
|
233
|
+
project_detail = f"project {selected_project} is not among the visible projects"
|
|
234
|
+
checks.append(
|
|
235
|
+
{
|
|
236
|
+
**_check("project_context", project_ok, project_detail),
|
|
237
|
+
"project_id": selected_project,
|
|
238
|
+
"write_access": "not verifiable from the API; the first write reports it",
|
|
239
|
+
}
|
|
240
|
+
)
|
|
241
|
+
|
|
188
242
|
recommendations: list[str] = []
|
|
189
243
|
if record is None or not credentials.has_credentials(profile_name):
|
|
190
244
|
login_profile = f" --profile {shlex.quote(profile_name)}" if profile_name else ""
|
|
191
245
|
recommendations.append(f"mammoth auth login{login_profile}")
|
|
192
|
-
elif
|
|
246
|
+
elif selected_project is None or (
|
|
247
|
+
projects is not None and selected_project not in [p.get("id") for p in projects]
|
|
248
|
+
):
|
|
249
|
+
recommendations.append("mammoth project list --output json --no-input")
|
|
193
250
|
recommendations.append("mammoth context project use PROJECT_ID")
|
|
194
251
|
if not connection_ok and auth_ok and not invocation.debug:
|
|
195
252
|
debug_profile = f" --profile {shlex.quote(profile_name)}" if profile_name else ""
|
|
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.0.9 → mammoth_cli-2.0.11}/mammoth_cli/bundled_skill/mammoth-cli/references/handoff.md
RENAMED
|
File without changes
|
{mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/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
|
{mammoth_cli-2.0.9 → mammoth_cli-2.0.11}/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
|
|
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
|
|
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
|