mammoth-cli 2.0.7__tar.gz → 2.0.9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/PKG-INFO +1 -1
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/__init__.py +1 -1
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/SKILL.md +4 -1
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.md +13 -8
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/task-start.md +2 -2
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/auth.py +4 -2
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/view.py +32 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/view_ops.py +6 -8
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/context/profiles.py +27 -1
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/services/positionals.py +38 -2
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/pyproject.toml +1 -1
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/view.yaml +78 -39
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/.gitignore +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/LICENSE +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/README.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/__main__.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/app.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/command-index.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/activity.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/addon.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/agent.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/ai.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/annotation.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/auth.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/automation.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/batch.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/billing.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/browse.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/capability.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/client-app.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/completion.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/config.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/connector.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/context.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/data-app.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dataset.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/doctor.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/external-key.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/file.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/folder.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/job.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/notification.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/parameter.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/project.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/report.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schedule.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schema.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/skill.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/snippet.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/support.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/template.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/trash.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/upgrade.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/user.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/version.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/webhook.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workflow.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workspace.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/handoff.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/input.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/jobs-drafts.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/machine-output.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/operations.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/auth-scope.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/cleanup.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/dashboards.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/exports.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/index.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/resources.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/transforms.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/typed-etl-discovery.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/recovery.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/retention.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/safety.md +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/__init__.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/activity.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/addon.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/agent.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/ai.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/annotation.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/automation.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/batch.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/billing.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/browse.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/capability.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/client_app.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/completion.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/config.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/connector.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/context.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/dashboard.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/data_app.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/dataset.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/doctor.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/external_key.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/file.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/folder.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/job.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/notification.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/parameter.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/project.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/registry.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/report.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/schedule.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/schema.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/skill.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/snippet.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/support.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/template.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/trash.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/upgrade.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/user.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/webhook.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/workflow.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/commands/workspace.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/context/__init__.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/context/credentials.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/context/endpoint.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/context/resolver.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/contracts/__init__.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/contracts/auth.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/errors/__init__.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/errors/envelope.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/manifest/__init__.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/manifest/loader.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/messages/__init__.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/output/__init__.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/output/envelope.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/output/normalize.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/output/policy.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/output/progress.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/output/render.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/py.typed +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/runtime/__init__.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/runtime/confirm.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/runtime/executor.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/runtime/input_loader.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/runtime/invocation.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/runtime/options.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/runtime/session.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/runtime/strict.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/runtime/validate.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/services/__init__.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/services/argspec.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/services/coerce.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/services/command_contract.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/services/conditions.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/services/dispatch.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/services/factory.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/services/input_fields.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/services/mapping.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/services/openapi_types.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/services/protocol.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/services/sdk_service.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/services/testing.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/services/type_system.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/skills/__init__.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/skills/installer.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/testing.py +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/activity.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/addon.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/agent.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/ai.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/annotation.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/auth.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/automation.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/batch.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/billing.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/browse.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/capability.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/client-app.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/completion.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/config.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/connector.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/context.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/dashboard.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/data-app.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/dataset.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/doctor.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/external-key.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/file.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/folder.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/job.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/notification.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/parameter.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/project.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/report.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/schedule.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/schema.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/skill.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/snippet.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/support.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/template.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/trash.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/upgrade.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/user.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/version.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/webhook.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/workflow.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/commands/workspace.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/openapi-operations.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/schema-v1.json +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/sdk-catalog.source.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/manifests/sdk-methods.yaml +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/openapi/metadata.json +0 -0
- {mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/spec/openapi/openapi.json +0 -0
|
@@ -39,7 +39,10 @@ the result.
|
|
|
39
39
|
## Working rules
|
|
40
40
|
|
|
41
41
|
- Resolve workspace/project/dataset/view parents from reads; pass observed IDs
|
|
42
|
-
and `--project`. A dataset does not select a default view.
|
|
42
|
+
and `--project`. A dataset does not select a default view. Every `view`
|
|
43
|
+
command that changes, exports, or deletes data requires the exact parent
|
|
44
|
+
`DATASET_ID` (trailing positional or `dataset_id` input field); only reads
|
|
45
|
+
may omit it and discover the parent. Get it from `mammoth view get VIEW_ID`.
|
|
43
46
|
- Use exact view-schema **display names** in expressions and column inputs,
|
|
44
47
|
never backend aliases.
|
|
45
48
|
- Inspect the result after a mutation. A timeout, exit 7, or interruption does
|
{mammoth_cli-2.0.7 → mammoth_cli-2.0.9}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.md
RENAMED
|
@@ -17,15 +17,19 @@ An agent never receives the key or secret. When `auth status` reports a
|
|
|
17
17
|
missing profile or `has_credentials=false`, stop and hand the login to the
|
|
18
18
|
human operator:
|
|
19
19
|
|
|
20
|
-
1. Tell the operator the exact command to run in **their own** terminal
|
|
21
|
-
|
|
20
|
+
1. Tell the operator the exact command to run in **their own** terminal. For
|
|
21
|
+
production it is just:
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
mammoth auth login
|
|
24
|
+
mammoth auth login
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
Add `--server-prefix release` only when the task names the release
|
|
28
|
+
environment, and `--profile NAME` only when the operator wants a profile
|
|
29
|
+
other than `default`. The command prompts for the key and secret with
|
|
30
|
+
hidden input, then the workspace id, so no secret enters chat, argv, or
|
|
31
|
+
history. Credentials are per environment: a release key never
|
|
32
|
+
authenticates on `app`.
|
|
29
33
|
2. Wait for the operator to confirm, then re-run
|
|
30
34
|
`mammoth auth status --profile PROFILE --output json --no-input` and
|
|
31
35
|
`mammoth doctor --profile PROFILE --output json --no-input`.
|
|
@@ -53,8 +57,8 @@ If status reports a missing profile or `has_credentials=false`, run the secure
|
|
|
53
57
|
login flow, then check status again:
|
|
54
58
|
|
|
55
59
|
```bash
|
|
56
|
-
mammoth auth login --profile
|
|
57
|
-
mammoth auth status --
|
|
60
|
+
mammoth auth login # production; add --profile NAME if not 'default'
|
|
61
|
+
mammoth auth status --output json --no-input
|
|
58
62
|
```
|
|
59
63
|
|
|
60
64
|
`auth status` is a local profile/credential-presence check; it does not prove
|
|
@@ -76,7 +80,8 @@ targets release.
|
|
|
76
80
|
|
|
77
81
|
## Commands
|
|
78
82
|
```bash
|
|
79
|
-
mammoth auth login
|
|
83
|
+
mammoth auth login # hidden prompts; production
|
|
84
|
+
mammoth auth login --server-prefix release # release environment
|
|
80
85
|
mammoth auth login --profile PROFILE --input creds.json --storage file --output json --no-input
|
|
81
86
|
mammoth auth status --profile PROFILE --output json --no-input
|
|
82
87
|
mammoth auth logout --profile default --output json --no-input --yes
|
|
@@ -33,8 +33,8 @@ or secrets in an argument, prompt, transcript, or checkpoint.
|
|
|
33
33
|
Compare the status response's `endpoint` with the intended environment. If
|
|
34
34
|
the profile or credentials are missing, or the endpoint is for another
|
|
35
35
|
environment, stop and follow [authentication](auth.md): tell the operator
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
to run `mammoth auth login` (production; `--server-prefix release` for
|
|
37
|
+
release) in their own terminal, wait for them, then re-check status.
|
|
38
38
|
The CLI does not read credentials from environment variables; do not look
|
|
39
39
|
for them there. Never silently reuse or rewrite a mismatched profile,
|
|
40
40
|
invent a profile, ask for credentials in chat, or put secrets in argv.
|
|
@@ -243,7 +243,10 @@ def _run_login(
|
|
|
243
243
|
server_prefix=effective_prefix,
|
|
244
244
|
project_id=existing.project_id if existing is not None else None,
|
|
245
245
|
)
|
|
246
|
-
|
|
246
|
+
# Persist the record and the selection pointer in one write, before the
|
|
247
|
+
# secret goes to its store: a stored secret with no readable record is the
|
|
248
|
+
# "credentials present / no profile" state that strands a later doctor run.
|
|
249
|
+
profiles.save_profile(record, select=True)
|
|
247
250
|
storage_used = credentials.store_credentials(
|
|
248
251
|
profile_name,
|
|
249
252
|
api_key,
|
|
@@ -251,7 +254,6 @@ def _run_login(
|
|
|
251
254
|
storage=cast(credentials.StorageMode, storage),
|
|
252
255
|
interactive=not blockers,
|
|
253
256
|
)
|
|
254
|
-
profiles.set_selected(profile_name)
|
|
255
257
|
|
|
256
258
|
data = {
|
|
257
259
|
"profile": profile_name,
|
|
@@ -164,9 +164,41 @@ def _resolve_dataset_id(
|
|
|
164
164
|
field = document.get(_DATASET_ID_FIELD)
|
|
165
165
|
if field is not None:
|
|
166
166
|
return int(field)
|
|
167
|
+
_require_discovery_allowed(invocation, view_id)
|
|
167
168
|
return int(service.call(_FIND_DATASET_SYMBOL, dataview_id=view_id))
|
|
168
169
|
|
|
169
170
|
|
|
171
|
+
def _require_discovery_allowed(invocation: Invocation, view_id: int) -> None:
|
|
172
|
+
"""Refuse project-wide parent discovery before anything but a read.
|
|
173
|
+
|
|
174
|
+
Omitting the parent sends the resolver on a browse-and-probe walk over
|
|
175
|
+
every dataset in the project. For a read that is a convenience; before a
|
|
176
|
+
mutation, an export, or a delete it means the target is chosen by a
|
|
177
|
+
probe whose first denied dataset can end the search on the wrong parent.
|
|
178
|
+
Those commands therefore require the exact parent, and fail closed here
|
|
179
|
+
with the read that supplies it.
|
|
180
|
+
"""
|
|
181
|
+
record = command_by_id(invocation.command_id) or {}
|
|
182
|
+
if record.get("mutation_class", "read") == "read":
|
|
183
|
+
return
|
|
184
|
+
project = f" --project {invocation.project}" if invocation.project else ""
|
|
185
|
+
lookup = f"mammoth view get {view_id}{project} --output json --no-input"
|
|
186
|
+
raise CliError(
|
|
187
|
+
code=CODE_MISSING_ARGUMENT,
|
|
188
|
+
message=(
|
|
189
|
+
"This command changes or exports data, so it requires the exact parent "
|
|
190
|
+
"DATASET_ID; project-wide parent discovery is only performed for reads."
|
|
191
|
+
),
|
|
192
|
+
exit_status=EXIT_USAGE,
|
|
193
|
+
hint=(
|
|
194
|
+
"Read the parent first, then pass it as the trailing DATASET_ID positional "
|
|
195
|
+
"or the 'dataset_id' input field: " + lookup
|
|
196
|
+
),
|
|
197
|
+
details={"view_id": view_id, "mutation_class": record.get("mutation_class")},
|
|
198
|
+
recovery_commands=[lookup],
|
|
199
|
+
)
|
|
200
|
+
|
|
201
|
+
|
|
170
202
|
def _meta(invocation: Invocation, workspace_id: int, project_id: int | None) -> dict[str, Any]:
|
|
171
203
|
"""Build the common envelope metadata for a view command."""
|
|
172
204
|
return {
|
|
@@ -301,18 +301,16 @@ def view_get(invocation: Invocation) -> HandlerResult:
|
|
|
301
301
|
def view_delete(invocation: Invocation) -> HandlerResult:
|
|
302
302
|
"""Permanently delete one view by id. Prompt or ``--yes`` required.
|
|
303
303
|
|
|
304
|
-
``dataset_id``
|
|
305
|
-
|
|
306
|
-
the SDK so deletion uses exactly that parent endpoint and
|
|
307
|
-
|
|
304
|
+
``dataset_id`` is required: the trailing positional, the structured input
|
|
305
|
+
field, or a typed resource reference must name the exact parent. It is
|
|
306
|
+
forwarded to the SDK so deletion uses exactly that parent endpoint and
|
|
307
|
+
never performs a project-wide parent probe before a destructive call.
|
|
308
308
|
"""
|
|
309
309
|
view_id = _view_id(invocation)
|
|
310
310
|
enforce_confirmation(invocation, policy=POLICY_PROMPT_OR_YES, action=f"delete view {view_id}")
|
|
311
311
|
document = invocation.load_input() or {}
|
|
312
|
-
dataset_id = _resolve_exact_dataset_id(invocation, view_id, document)
|
|
313
|
-
context: dict[str, Any] = {"view_id": view_id}
|
|
314
|
-
if dataset_id is not None:
|
|
315
|
-
context["dataset_id"] = dataset_id
|
|
312
|
+
dataset_id = _resolve_exact_dataset_id(invocation, view_id, document, required=True)
|
|
313
|
+
context: dict[str, Any] = {"view_id": view_id, "dataset_id": dataset_id}
|
|
316
314
|
kwargs = bind_command_inputs(invocation.command_id, document, **context)
|
|
317
315
|
with open_service(invocation) as (service, auth):
|
|
318
316
|
data = service.call(_symbol(invocation), **kwargs)
|
|
@@ -237,15 +237,22 @@ def get_profile(name: str) -> ProfileRecord | None:
|
|
|
237
237
|
return _parse_profile(name, table[name])
|
|
238
238
|
|
|
239
239
|
|
|
240
|
-
def save_profile(record: ProfileRecord) -> None:
|
|
240
|
+
def save_profile(record: ProfileRecord, *, select: bool = False) -> None:
|
|
241
241
|
"""Create or replace one profile's non-secret record.
|
|
242
242
|
|
|
243
243
|
Args:
|
|
244
244
|
record: The complete profile record to store. Replaces any existing
|
|
245
245
|
record with the same name.
|
|
246
|
+
select: Also make this profile the selected one, in the same write.
|
|
247
|
+
Login uses this so the record and the selection pointer can never
|
|
248
|
+
be persisted separately: a pointer to a profile whose record is
|
|
249
|
+
missing is exactly the state ``doctor`` reports as
|
|
250
|
+
``no profile``.
|
|
246
251
|
|
|
247
252
|
Raises:
|
|
248
253
|
CliError: ``invalid_profile_name`` for a malformed name.
|
|
254
|
+
CliError: ``profile_write_failed`` if the record cannot be read back
|
|
255
|
+
from the file just written.
|
|
249
256
|
"""
|
|
250
257
|
validate_profile_name(record.name)
|
|
251
258
|
document = _load_document()
|
|
@@ -260,7 +267,18 @@ def save_profile(record: ProfileRecord) -> None:
|
|
|
260
267
|
if record.project_id is not None:
|
|
261
268
|
entry["project_id"] = record.project_id
|
|
262
269
|
table[record.name] = entry
|
|
270
|
+
if select:
|
|
271
|
+
document["selected"] = record.name
|
|
263
272
|
_write_document(document)
|
|
273
|
+
stored = get_profile(record.name)
|
|
274
|
+
if stored is None or stored.workspace_id != record.workspace_id:
|
|
275
|
+
raise CliError(
|
|
276
|
+
code="profile_write_failed",
|
|
277
|
+
message=f"Profile '{record.name}' was not persisted to {profiles_path()}.",
|
|
278
|
+
exit_status=EXIT_USAGE,
|
|
279
|
+
hint="Check that no other process rewrites the configuration directory, then retry.",
|
|
280
|
+
details={"path": str(profiles_path())},
|
|
281
|
+
)
|
|
264
282
|
|
|
265
283
|
|
|
266
284
|
def delete_profile(name: str) -> bool:
|
|
@@ -313,6 +331,14 @@ def set_selected(name: str) -> None:
|
|
|
313
331
|
"""
|
|
314
332
|
validate_profile_name(name)
|
|
315
333
|
document = _load_document()
|
|
334
|
+
table = document.get("profiles")
|
|
335
|
+
if table is None or name not in table:
|
|
336
|
+
raise CliError(
|
|
337
|
+
code="profile_not_found",
|
|
338
|
+
message=f"Profile '{name}' has no stored record, so it cannot be selected.",
|
|
339
|
+
exit_status=EXIT_USAGE,
|
|
340
|
+
hint=f"Run 'mammoth auth login --profile {name}' to create it first.",
|
|
341
|
+
)
|
|
316
342
|
document["selected"] = name
|
|
317
343
|
_write_document(document)
|
|
318
344
|
|
|
@@ -852,10 +852,46 @@ def positionals_for(command_id: str, sdk_symbol: str | None) -> tuple[Positional
|
|
|
852
852
|
signature derivation, else an empty tuple).
|
|
853
853
|
"""
|
|
854
854
|
if command_id in POSITIONAL_OVERRIDES:
|
|
855
|
-
return POSITIONAL_OVERRIDES[command_id]
|
|
855
|
+
return _with_exact_parent_help(command_id, POSITIONAL_OVERRIDES[command_id])
|
|
856
856
|
if not sdk_symbol:
|
|
857
857
|
return ()
|
|
858
|
-
return derive_positionals(command_id, sdk_symbol)
|
|
858
|
+
return _with_exact_parent_help(command_id, derive_positionals(command_id, sdk_symbol))
|
|
859
|
+
|
|
860
|
+
|
|
861
|
+
EXACT_PARENT_HELP = (
|
|
862
|
+
"Exact parent dataset ID. Required for this command: pass it here or as the "
|
|
863
|
+
"'dataset_id' input field; only read commands may omit it and discover the parent."
|
|
864
|
+
)
|
|
865
|
+
|
|
866
|
+
|
|
867
|
+
def _with_exact_parent_help(
|
|
868
|
+
command_id: str, specs: tuple[PositionalSpec, ...]
|
|
869
|
+
) -> tuple[PositionalSpec, ...]:
|
|
870
|
+
"""Tell the truth about an optional ``dataset_id`` on a non-read command.
|
|
871
|
+
|
|
872
|
+
The parse shape stays optional (the field may also arrive via ``--input``),
|
|
873
|
+
but the handler refuses project-wide parent discovery before a mutation,
|
|
874
|
+
export, or delete, so the help must say the parent is required there.
|
|
875
|
+
"""
|
|
876
|
+
record = command_by_id(command_id)
|
|
877
|
+
if record is None or record.get("mutation_class", "read") == "read":
|
|
878
|
+
return specs
|
|
879
|
+
return tuple(
|
|
880
|
+
(
|
|
881
|
+
PositionalSpec(
|
|
882
|
+
name=spec.name,
|
|
883
|
+
type=spec.type,
|
|
884
|
+
required=spec.required,
|
|
885
|
+
help=EXACT_PARENT_HELP,
|
|
886
|
+
falls_back_to_field=spec.falls_back_to_field,
|
|
887
|
+
fills_sdk_param=spec.fills_sdk_param,
|
|
888
|
+
example_value=spec.example_value,
|
|
889
|
+
)
|
|
890
|
+
if spec.name == "dataset_id" and not spec.required and spec.falls_back_to_field
|
|
891
|
+
else spec
|
|
892
|
+
)
|
|
893
|
+
for spec in specs
|
|
894
|
+
)
|
|
859
895
|
|
|
860
896
|
|
|
861
897
|
def _symbol_for(command_id: str) -> str | None:
|