mammoth-cli 2.2.44__tar.gz → 2.2.45__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.44 → mammoth_cli-2.2.45}/PKG-INFO +1 -1
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/__init__.py +1 -1
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities.md +1 -1
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/command-index.md +2 -1
- mammoth_cli-2.2.45/mammoth_cli/bundled_skill/mammoth-cli/references/commands/resolve.md +13 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/dataset.py +30 -12
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/registry.py +2 -0
- mammoth_cli-2.2.45/mammoth_cli/commands/resolve.py +119 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/schema.py +4 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/command_contract.py +1 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/positionals.py +11 -1
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/pyproject.toml +1 -1
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/dataset.yaml +2 -1
- mammoth_cli-2.2.45/spec/manifests/commands/resolve.yaml +39 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/.gitignore +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/LICENSE +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/README.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/__main__.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/app.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/SKILL.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/about-mammoth.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities-misc.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/activity.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/addon.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/agent.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/ai.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/annotation.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/auth.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/automation.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/batch.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/billing.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/browse.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/calc.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/capability.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/client-app.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/completion.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/config.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/connector.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/context.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-qa.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-style.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-template.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/data-app.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dataset.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/doctor.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/external-key.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/file.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/folder.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/job.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/link.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/log.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/notification.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/parameter.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/project.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/report.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schedule.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schema.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/skill.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/snippet.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/support.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/template.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/token.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/trash.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/upgrade.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/user.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/version.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view-transform.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/webhook.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workflow.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workspace.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/handoff.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/input.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/jobs-drafts.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/machine-output.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/operations.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/auth-scope.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/cleanup.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/dashboards.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/database-import.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/end-to-end.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/exports.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/index.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/need-action.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/resources.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/scheduling.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/transforms.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/typed-etl-discovery.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/recovery.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/report-checklist.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/retention.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/safety.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/bundled_skill/mammoth-cli/references/task-start.md +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/__init__.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/activity.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/addon.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/agent.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/ai.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/annotation.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/auth.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/automation.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/batch.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/billing.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/browse.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/calc.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/capability.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/client_app.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/completion.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/config.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/connector.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/context.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/dashboard.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/data_app.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/doctor.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/external_key.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/file.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/folder.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/job.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/link.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/notification.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/parameter.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/project.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/report.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/schedule.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/skill.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/snippet.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/support.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/template.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/trash.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/upgrade.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/user.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/view.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/view_ops.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/view_profile.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/webhook.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/workflow.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/commands/workspace.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/context/__init__.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/context/credentials.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/context/endpoint.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/context/oauth.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/context/profiles.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/context/resolver.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/contracts/__init__.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/contracts/auth.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/embed.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/errors/__init__.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/errors/envelope.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/manifest/__init__.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/manifest/loader.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/messages/__init__.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/output/__init__.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/output/envelope.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/output/normalize.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/output/policy.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/output/progress.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/output/render.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/py.typed +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/runtime/__init__.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/runtime/confirm.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/runtime/dataset_health.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/runtime/dryrun.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/runtime/dryrun_targets.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/runtime/embedded.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/runtime/executor.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/runtime/input_loader.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/runtime/intent_only.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/runtime/invocation.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/runtime/new_data.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/runtime/options.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/runtime/parents.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/runtime/runlog.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/runtime/session.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/runtime/state.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/runtime/strict.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/runtime/updates.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/runtime/validate.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/runtime/verify.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/__init__.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/append_blank_columns.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/argspec.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/board_values.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/coerce.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/conditional_format.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/conditions.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/dashboard_filters.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/dashboard_pages.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/dashboard_review.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/data_profile.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/data_quality.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/dispatch.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/factory.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/input_fields.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/job_outcome.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/listing.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/local_time.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/mapping.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/openapi_types.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/protocol.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/read_queries.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/sdk_service.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/sql_check.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/stored_stats.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/testing.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/text_dates.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/type_system.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/view_analysis.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/services/write_impact.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/skills/__init__.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/skills/installer.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/skills/steering.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/mammoth_cli/testing.py +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/activity.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/addon.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/agent.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/ai.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/annotation.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/auth.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/automation.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/batch.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/billing.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/browse.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/calc.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/capability.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/client-app.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/completion.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/config.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/connector.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/context.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/dashboard.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/data-app.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/doctor.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/external-key.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/file.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/folder.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/job.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/link.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/log.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/notification.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/parameter.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/project.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/report.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/schedule.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/schema.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/skill.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/snippet.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/support.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/template.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/token.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/trash.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/upgrade.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/user.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/version.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/view.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/webhook.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/workflow.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/commands/workspace.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/edits-target.source.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/openapi-operations.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/schema-v1.json +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/sdk-catalog.source.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/manifests/sdk-methods.yaml +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/openapi/metadata.json +0 -0
- {mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/spec/openapi/openapi.json +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# What is proven on release
|
|
2
2
|
|
|
3
3
|
Generated from `docs/release-capability-matrix.json`; do not edit by hand.
|
|
4
|
-
The CLI publishes
|
|
4
|
+
The CLI publishes 656 commands. 516 of them bind one of the 545 API operations in the matrix; the remainder are local commands (`schema`, `auth`, `doctor`, `log`, ...) or typed variants that share an operation (`view transform *` commands submit through `view.task.add`, except `rename-columns` and `sort`, which set view display properties through `view.update`). 262 bound commands ran once successfully on release, 1 are not supported there, and the rest are untried. Untried is not broken: discover the contract with `mammoth schema get COMMAND_ID`, run it, and treat the structured error envelope as the answer. Use an untried command normally: confirm a write with the user first, check its result with a read afterwards, and never refuse a command only because it is untried.
|
|
5
5
|
|
|
6
6
|
Status meanings:
|
|
7
7
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Published CLI command catalog
|
|
2
2
|
|
|
3
|
-
This generated catalog is a lookup table for every command in the published CLI manifest, currently
|
|
3
|
+
This generated catalog is a lookup table for every command in the published CLI manifest, currently 656; each entry carries its release status line. It is a command-contract index, not an assertion that every backend/OpenAPI operation has a CLI binding. For an exact local CLI contract, run `mammoth schema get COMMAND_ID`; `mammoth capability list` is an API-binding inventory and can omit typed/local CLI routes. For focused workflows, read the [recipes index](recipes/index.md). Sensitive structured input must come from a private file or pipe; never put secrets in literal argv.
|
|
4
4
|
|
|
5
5
|
Load only the applicable domain file:
|
|
6
6
|
|
|
@@ -38,6 +38,7 @@ Load only the applicable domain file:
|
|
|
38
38
|
- [parameter](commands/parameter.md) — 14 published commands
|
|
39
39
|
- [project](commands/project.md) — 25 published commands
|
|
40
40
|
- [report](commands/report.md) — 1 published commands
|
|
41
|
+
- [resolve](commands/resolve.md) — 1 published commands
|
|
41
42
|
- [schedule](commands/schedule.md) — 5 published commands
|
|
42
43
|
- [schema](commands/schema.md) — 3 published commands
|
|
43
44
|
- [skill](commands/skill.md) — 7 published commands
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# `resolve` commands
|
|
2
|
+
|
|
3
|
+
Every command returns the standard JSON envelope. On nonzero exit, read the error envelope and its `recovery_commands`; do not guess request fields. "Status on release" is joined from `docs/release-capability-matrix.json`: *ran once* means one bounded live run succeeded on the named CLI release, *untried* means nobody has run it (use it normally: confirm writes with the user, check the result afterwards), *not supported* means the backend refuses it. When this file disagrees with [capabilities](../capabilities.md) or a recipe, they win. Envelope shapes: [machine output](../machine-output.md).
|
|
4
|
+
|
|
5
|
+
### `resolve`
|
|
6
|
+
|
|
7
|
+
Run: `mammoth resolve`. Exact input fields: `mammoth schema get resolve`.
|
|
8
|
+
|
|
9
|
+
Example: `mammoth resolve uqa-w29-ren`. Placeholders are illustrative; resolve IDs and input from observed reads.
|
|
10
|
+
|
|
11
|
+
Result: `ResolveResult`; mutation `read`, confirmation `none`, wait policy `not_async`.
|
|
12
|
+
|
|
13
|
+
Status on release: untried; no live run recorded.
|
|
@@ -353,15 +353,38 @@ def _find_by_columns(
|
|
|
353
353
|
return matches, cut
|
|
354
354
|
|
|
355
355
|
|
|
356
|
+
def _tag_scope(matches: list[dict[str, Any]], project_id: int) -> list[dict[str, Any]]:
|
|
357
|
+
"""Mark each match ``in_project``: whether it sits in the project the call runs under."""
|
|
358
|
+
return [{**m, "in_project": m.get("project_id") == project_id} for m in matches]
|
|
359
|
+
|
|
360
|
+
|
|
361
|
+
def _find_scoped(
|
|
362
|
+
service: Any,
|
|
363
|
+
needle: str,
|
|
364
|
+
visible: list[dict[str, Any]],
|
|
365
|
+
project_id: int,
|
|
366
|
+
skipped: list[dict[str, Any]],
|
|
367
|
+
) -> tuple[list[dict[str, Any]], list[dict[str, Any]], bool]:
|
|
368
|
+
"""``(matches, projects searched, cut)``: the project's own matches, then every other one's."""
|
|
369
|
+
home = named_project(service, project_id, visible)
|
|
370
|
+
own = _find_in_projects(service, needle, [home], skipped)
|
|
371
|
+
holding, cut = _projects_holding(service, needle, visible)
|
|
372
|
+
outside = _find_in_projects(service, needle, _other_projects(holding, project_id), skipped)
|
|
373
|
+
searched = [home] + _other_projects(visible, project_id)
|
|
374
|
+
return _tag_scope(own + outside, project_id), searched, cut
|
|
375
|
+
|
|
376
|
+
|
|
356
377
|
def dataset_find(invocation: Invocation) -> HandlerResult:
|
|
357
378
|
"""Search dataset names for a substring across every visible project.
|
|
358
379
|
|
|
359
380
|
Read-only local composite: lists the projects the credential can see, then
|
|
360
381
|
lists datasets in each and keeps a case-insensitive substring match. With
|
|
361
|
-
``--project``
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
382
|
+
``--project`` the project's own matches come first and the matches in every
|
|
383
|
+
other visible project are returned too, each row marked ``in_project`` and
|
|
384
|
+
carrying its ``project_id`` and ``project_name``: the in-product agent runs
|
|
385
|
+
every call under the project the user last opened, which is often not the one
|
|
386
|
+
the named dataset is in, so it states where the name is instead of asking the
|
|
387
|
+
user to switch. Does not require an active project.
|
|
365
388
|
"""
|
|
366
389
|
name_substring = _require_string_positional(invocation, "name substring")
|
|
367
390
|
needle = name_substring.lower()
|
|
@@ -370,14 +393,9 @@ def dataset_find(invocation: Invocation) -> HandlerResult:
|
|
|
370
393
|
visible = _visible_projects(service)
|
|
371
394
|
cut = False
|
|
372
395
|
if invocation.project is not None:
|
|
373
|
-
projects
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
holding, cut = _projects_holding(service, needle, visible)
|
|
377
|
-
matches = _find_in_projects(
|
|
378
|
-
service, needle, _other_projects(holding, invocation.project), skipped
|
|
379
|
-
)
|
|
380
|
-
projects += _other_projects(visible, invocation.project)
|
|
396
|
+
matches, projects, cut = _find_scoped(
|
|
397
|
+
service, needle, visible, invocation.project, skipped
|
|
398
|
+
)
|
|
381
399
|
else:
|
|
382
400
|
projects = visible
|
|
383
401
|
holding, cut = _projects_holding(service, needle, visible)
|
|
@@ -45,6 +45,7 @@ from mammoth_cli.commands import notification as notification_cmd
|
|
|
45
45
|
from mammoth_cli.commands import parameter as parameter_cmd
|
|
46
46
|
from mammoth_cli.commands import project as project_cmd
|
|
47
47
|
from mammoth_cli.commands import report as report_cmd
|
|
48
|
+
from mammoth_cli.commands import resolve as resolve_cmd
|
|
48
49
|
from mammoth_cli.commands import schedule as schedule_cmd
|
|
49
50
|
from mammoth_cli.commands import schema as schema_cmd
|
|
50
51
|
from mammoth_cli.commands import skill as skill_cmd
|
|
@@ -283,6 +284,7 @@ HANDLERS: dict[str, Handler] = {
|
|
|
283
284
|
"doctor": doctor_cmd.doctor,
|
|
284
285
|
"calc": calc_cmd.calc,
|
|
285
286
|
"link": link_cmd.link,
|
|
287
|
+
"resolve": resolve_cmd.resolve,
|
|
286
288
|
"completion.show": completion_cmd.completion_show,
|
|
287
289
|
"completion.install": completion_cmd.completion_install,
|
|
288
290
|
"skill.agents-md.install": skill_cmd.skill_agents_md_install,
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"""The ``resolve`` command: read-only, says what a name refers to.
|
|
2
|
+
|
|
3
|
+
A user types a name ("uqa-w29-ren") and the agent has to know whether it is a
|
|
4
|
+
dataset, a view or a project, and where. Reading it as the wrong kind sent the
|
|
5
|
+
agent looking for a project that was a dataset's name, and a name that lives in
|
|
6
|
+
another project made it ask the user to switch scope. One call answers both:
|
|
7
|
+
every dataset, view and project whose name matches, with ids and projects.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from __future__ import annotations
|
|
11
|
+
|
|
12
|
+
from typing import Any
|
|
13
|
+
|
|
14
|
+
from mammoth_cli.commands.dataset import (
|
|
15
|
+
_require_string_positional,
|
|
16
|
+
_visible_projects,
|
|
17
|
+
search_cut_note,
|
|
18
|
+
search_hits,
|
|
19
|
+
)
|
|
20
|
+
from mammoth_cli.runtime.invocation import Invocation
|
|
21
|
+
from mammoth_cli.runtime.session import open_service
|
|
22
|
+
|
|
23
|
+
HandlerResult = tuple[Any, dict[str, Any]]
|
|
24
|
+
|
|
25
|
+
#: Resource-search type for each kind of match, in the order the kinds are listed.
|
|
26
|
+
_SEARCH_TYPES = (("dataset", "datasource"), ("view", "dataview"))
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def _row(
|
|
30
|
+
kind: str, needle: str, entry: dict[str, Any], names: dict[Any, Any], home: int | None
|
|
31
|
+
) -> dict[str, Any]:
|
|
32
|
+
"""One match: its kind, ids, project, whether the name is exact and where it sits."""
|
|
33
|
+
is_project = kind == "project"
|
|
34
|
+
project_id = entry.get("id") if is_project else entry.get("project_id")
|
|
35
|
+
name = entry.get("name")
|
|
36
|
+
row: dict[str, Any] = {
|
|
37
|
+
"kind": kind,
|
|
38
|
+
"id": entry.get("id") if is_project else entry.get("object_id"),
|
|
39
|
+
"name": name,
|
|
40
|
+
"project_id": project_id,
|
|
41
|
+
"project_name": name if is_project else names.get(project_id),
|
|
42
|
+
"exact": isinstance(name, str) and name.lower() == needle,
|
|
43
|
+
}
|
|
44
|
+
if home is not None:
|
|
45
|
+
row["in_project"] = project_id == home
|
|
46
|
+
return row
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def resolve_matches(
|
|
50
|
+
needle: str,
|
|
51
|
+
projects: list[dict[str, Any]],
|
|
52
|
+
hits_by_kind: dict[str, list[dict[str, Any]]],
|
|
53
|
+
home: int | None = None,
|
|
54
|
+
) -> list[dict[str, Any]]:
|
|
55
|
+
"""Every project, dataset and view whose name contains ``needle`` (any case).
|
|
56
|
+
|
|
57
|
+
Exact names come first, then the project the call runs under (``home``), then
|
|
58
|
+
projects, datasets and views in that order. Pure: no network.
|
|
59
|
+
"""
|
|
60
|
+
lowered = needle.lower()
|
|
61
|
+
names = {p.get("id"): p.get("name") for p in projects}
|
|
62
|
+
rows = [
|
|
63
|
+
_row("project", lowered, p, names, home)
|
|
64
|
+
for p in projects
|
|
65
|
+
if isinstance(p.get("name"), str) and lowered in p["name"].lower()
|
|
66
|
+
]
|
|
67
|
+
for kind, _ in _SEARCH_TYPES:
|
|
68
|
+
rows += [_row(kind, lowered, h, names, home) for h in hits_by_kind.get(kind, [])]
|
|
69
|
+
order = {"project": 0, "dataset": 1, "view": 2}
|
|
70
|
+
return sorted(
|
|
71
|
+
rows, key=lambda r: (not r["exact"], not r.get("in_project", False), order[r["kind"]])
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def kinds_note(name: str, rows: list[dict[str, Any]]) -> str:
|
|
76
|
+
"""Says what the name is: one kind, or several, so it is never read as the wrong one."""
|
|
77
|
+
if not rows:
|
|
78
|
+
return f"Nothing visible to this login is named like '{name}'."
|
|
79
|
+
exact = [r for r in rows if r["exact"]] or rows
|
|
80
|
+
kinds = sorted({r["kind"] for r in exact}, key=("project", "dataset", "view").index)
|
|
81
|
+
if len(exact) == 1:
|
|
82
|
+
only = exact[0]
|
|
83
|
+
return f"'{name}' is a {only['kind']} (id {only['id']}) in project {only['project_name']}."
|
|
84
|
+
if len(kinds) == 1:
|
|
85
|
+
where = sorted({str(r["project_name"]) for r in exact})
|
|
86
|
+
return f"'{name}' is {len(exact)} {kinds[0]}s, in projects {', '.join(where)}: ask which."
|
|
87
|
+
return (
|
|
88
|
+
f"'{name}' names {len(exact)} things ({', '.join(kinds)}): tell them apart by "
|
|
89
|
+
"kind and project before using an id."
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
def resolve(invocation: Invocation) -> HandlerResult:
|
|
94
|
+
"""Say what NAME refers to: a dataset, a view or a project, with ids and projects.
|
|
95
|
+
|
|
96
|
+
Read-only. NAME is a case-insensitive substring and the only argument; the
|
|
97
|
+
command has no options besides the global ``--project``, which only marks
|
|
98
|
+
each match ``in_project`` (matches elsewhere are always returned). Searches
|
|
99
|
+
every project the credential can see. Does not require an active project.
|
|
100
|
+
"""
|
|
101
|
+
name = _require_string_positional(invocation, "name")
|
|
102
|
+
cut = False
|
|
103
|
+
with open_service(invocation) as (service, auth):
|
|
104
|
+
projects = _visible_projects(service)
|
|
105
|
+
hits: dict[str, list[dict[str, Any]]] = {}
|
|
106
|
+
for kind, resource_type in _SEARCH_TYPES:
|
|
107
|
+
hits[kind], more = search_hits(service, resource_type, name)
|
|
108
|
+
cut = cut or more
|
|
109
|
+
meta = {
|
|
110
|
+
"profile": invocation.profile,
|
|
111
|
+
"workspace_id": auth.workspace_id,
|
|
112
|
+
"project_id": invocation.project,
|
|
113
|
+
}
|
|
114
|
+
rows = resolve_matches(name, projects, hits, invocation.project)
|
|
115
|
+
result: dict[str, Any] = {"name": name, "matches": rows, "note": kinds_note(name, rows)}
|
|
116
|
+
if cut:
|
|
117
|
+
result["truncated"] = True
|
|
118
|
+
result["note"] += " " + search_cut_note("datasets or views")
|
|
119
|
+
return result, meta
|
|
@@ -411,6 +411,10 @@ _COMMAND_DISCOVERY_PURPOSES = {
|
|
|
411
411
|
"link url pasted address app page open file dataset view folder project "
|
|
412
412
|
"workspace ids selected resource parse"
|
|
413
413
|
),
|
|
414
|
+
"resolve": (
|
|
415
|
+
"resolve name what is this dataset view project called named which kind "
|
|
416
|
+
"ambiguous same name another project lookup identify"
|
|
417
|
+
),
|
|
414
418
|
"dataset.broken-rows.list": (
|
|
415
419
|
"unstructured skipped ragged rows lines unparsed mismatched columns monitor "
|
|
416
420
|
"needs review file upload bad rows"
|
|
@@ -644,6 +644,15 @@ POSITIONAL_OVERRIDES: dict[str, tuple[PositionalSpec, ...]] = {
|
|
|
644
644
|
example_value="https://app.mammoth.io/workspaces/1/projects/2/data/datasets",
|
|
645
645
|
),
|
|
646
646
|
),
|
|
647
|
+
"resolve": (
|
|
648
|
+
PositionalSpec(
|
|
649
|
+
name="name",
|
|
650
|
+
type=str,
|
|
651
|
+
required=True,
|
|
652
|
+
help="Case-insensitive name, or part of one, to look up as a dataset, view or project.",
|
|
653
|
+
example_value="uqa-w29-ren",
|
|
654
|
+
),
|
|
655
|
+
),
|
|
647
656
|
"capability.find": (
|
|
648
657
|
PositionalSpec(
|
|
649
658
|
name="query",
|
|
@@ -673,7 +682,8 @@ POSITIONAL_OVERRIDES: dict[str, tuple[PositionalSpec, ...]] = {
|
|
|
673
682
|
type=str,
|
|
674
683
|
required=False,
|
|
675
684
|
help="Case-insensitive substring to match against dataset names; optional "
|
|
676
|
-
"when --input gives 'columns'."
|
|
685
|
+
"when --input gives 'columns'. Matches in other projects are listed too, "
|
|
686
|
+
"marked in_project when --project is given.",
|
|
677
687
|
example_value="sales",
|
|
678
688
|
),
|
|
679
689
|
),
|
|
@@ -523,7 +523,8 @@ commands:
|
|
|
523
523
|
metavar: NAME_SUBSTRING
|
|
524
524
|
falls_back_to_field: null
|
|
525
525
|
help: Case-insensitive substring to match against dataset names; optional when --input
|
|
526
|
-
gives 'columns'.
|
|
526
|
+
gives 'columns'. Matches in other projects are listed too, marked in_project when
|
|
527
|
+
--project is given.
|
|
527
528
|
options: []
|
|
528
529
|
sdk_symbol: mammoth_cli.commands.dataset.find
|
|
529
530
|
sdk_conversion: Call mammoth_cli.commands.dataset.find with validated request fields.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
manifest_schema_version: 1
|
|
2
|
+
commands:
|
|
3
|
+
- command_id: resolve
|
|
4
|
+
command_path: resolve
|
|
5
|
+
disposition: command
|
|
6
|
+
alias_of: null
|
|
7
|
+
operation_ids: []
|
|
8
|
+
positionals:
|
|
9
|
+
- name: name
|
|
10
|
+
type: str
|
|
11
|
+
required: true
|
|
12
|
+
metavar: NAME
|
|
13
|
+
falls_back_to_field: null
|
|
14
|
+
help: Case-insensitive name, or part of one, to look up as a dataset, view or project.
|
|
15
|
+
options: []
|
|
16
|
+
sdk_symbol: mammoth_cli.commands.resolve.resolve
|
|
17
|
+
sdk_conversion: Call mammoth_cli.commands.resolve.resolve with validated request fields.
|
|
18
|
+
request_model: ResolveRequest
|
|
19
|
+
result_model: ResolveResult
|
|
20
|
+
mutation_class: read
|
|
21
|
+
confirmation: none
|
|
22
|
+
wait_policy: not_async
|
|
23
|
+
pagination_policy: none
|
|
24
|
+
acceptance_evidence: live_read_only
|
|
25
|
+
live_test: null
|
|
26
|
+
live_exemption_reason: Read-only composite over the workspace resource search and the project list.
|
|
27
|
+
contract_fixture: null
|
|
28
|
+
required_fixture_guard: null
|
|
29
|
+
secret_fields: []
|
|
30
|
+
human_example: mammoth resolve NAME --help
|
|
31
|
+
agent_example: mammoth resolve uqa-w29-ren
|
|
32
|
+
unit_tests:
|
|
33
|
+
- UT-RESOLVE
|
|
34
|
+
contract_tests:
|
|
35
|
+
- CT-RESOLVE-S1-LOCAL
|
|
36
|
+
draft_test: null
|
|
37
|
+
undo_test: null
|
|
38
|
+
known_restrictions: null
|
|
39
|
+
reviewed_by: primary
|
|
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.44 → mammoth_cli-2.2.45}/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
|
{mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/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
|
{mammoth_cli-2.2.44 → mammoth_cli-2.2.45}/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
|