mammoth-cli 2.0.52__tar.gz → 2.0.54__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.52 → mammoth_cli-2.0.54}/PKG-INFO +2 -2
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/__init__.py +1 -1
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/SKILL.md +5 -5
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/jobs-drafts.md +10 -2
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/folder.py +35 -8
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/project.py +14 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/schema.py +32 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/view.py +54 -5
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/pyproject.toml +2 -2
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/folder.yaml +5 -2
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/sdk-catalog.source.yaml +8 -2
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/sdk-methods.yaml +1 -1
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/.gitignore +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/LICENSE +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/README.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/__main__.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/app.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/about-mammoth.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities-misc.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/command-index.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/activity.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/addon.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/agent.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/ai.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/annotation.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/auth.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/automation.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/batch.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/billing.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/browse.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/capability.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/client-app.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/completion.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/config.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/connector.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/context.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-qa.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/data-app.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dataset.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/doctor.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/external-key.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/file.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/folder.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/job.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/log.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/notification.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/parameter.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/project.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/report.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schedule.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schema.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/skill.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/snippet.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/support.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/template.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/trash.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/upgrade.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/user.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/version.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view-transform.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/webhook.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workflow.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workspace.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/handoff.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/input.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/machine-output.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/operations.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/auth-scope.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/cleanup.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/dashboards.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/end-to-end.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/exports.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/index.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/need-action.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/resources.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/scheduling.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/transforms.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/typed-etl-discovery.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/recovery.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/report-checklist.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/retention.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/safety.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/bundled_skill/mammoth-cli/references/task-start.md +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/__init__.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/activity.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/addon.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/agent.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/ai.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/annotation.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/auth.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/automation.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/batch.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/billing.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/browse.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/capability.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/client_app.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/completion.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/config.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/connector.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/context.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/dashboard.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/data_app.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/dataset.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/doctor.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/external_key.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/file.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/job.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/notification.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/parameter.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/registry.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/report.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/schedule.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/skill.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/snippet.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/support.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/template.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/trash.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/upgrade.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/user.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/view_ops.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/webhook.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/workflow.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/commands/workspace.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/context/__init__.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/context/credentials.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/context/endpoint.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/context/profiles.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/context/resolver.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/contracts/__init__.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/contracts/auth.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/embed.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/errors/__init__.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/errors/envelope.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/manifest/__init__.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/manifest/loader.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/messages/__init__.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/output/__init__.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/output/envelope.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/output/normalize.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/output/policy.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/output/progress.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/output/render.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/py.typed +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/runtime/__init__.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/runtime/confirm.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/runtime/dryrun.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/runtime/embedded.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/runtime/executor.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/runtime/input_loader.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/runtime/invocation.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/runtime/options.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/runtime/parents.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/runtime/runlog.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/runtime/session.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/runtime/strict.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/runtime/updates.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/runtime/validate.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/services/__init__.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/services/argspec.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/services/coerce.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/services/command_contract.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/services/conditions.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/services/dashboard_pages.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/services/dashboard_review.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/services/data_quality.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/services/dispatch.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/services/factory.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/services/input_fields.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/services/mapping.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/services/openapi_types.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/services/positionals.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/services/protocol.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/services/sdk_service.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/services/testing.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/services/type_system.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/skills/__init__.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/skills/installer.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/skills/steering.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/mammoth_cli/testing.py +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/activity.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/addon.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/agent.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/ai.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/annotation.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/auth.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/automation.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/batch.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/billing.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/browse.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/capability.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/client-app.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/completion.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/config.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/connector.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/context.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/dashboard.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/data-app.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/dataset.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/doctor.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/external-key.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/file.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/job.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/log.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/notification.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/parameter.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/project.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/report.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/schedule.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/schema.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/skill.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/snippet.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/support.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/template.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/trash.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/upgrade.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/user.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/version.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/view.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/webhook.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/workflow.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/commands/workspace.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/openapi-operations.yaml +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/manifests/schema-v1.json +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/openapi/metadata.json +0 -0
- {mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/spec/openapi/openapi.json +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mammoth-cli
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.54
|
|
4
4
|
Summary: Command-line interface for the Mammoth Analytics platform
|
|
5
5
|
Project-URL: homepage, https://mammoth.io
|
|
6
6
|
Project-URL: repository, https://github.com/EdgeMetric/mammothsdk
|
|
@@ -17,7 +17,7 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
|
17
17
|
Requires-Python: <3.15,>=3.12
|
|
18
18
|
Requires-Dist: jsonschema>=4.20
|
|
19
19
|
Requires-Dist: keyring<26,>=25.7
|
|
20
|
-
Requires-Dist: mammoth-io<0.8,>=0.7.
|
|
20
|
+
Requires-Dist: mammoth-io<0.8,>=0.7.25
|
|
21
21
|
Requires-Dist: platformdirs<5,>=4.10
|
|
22
22
|
Requires-Dist: pydantic<3,>=2.13
|
|
23
23
|
Requires-Dist: pyyaml<7,>=6
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: mammoth-cli
|
|
3
|
-
version: 2.0.
|
|
3
|
+
version: 2.0.54
|
|
4
4
|
description: "Use Mammoth Analytics from a terminal: install or authenticate the CLI, discover its live command contract, and safely manage projects, data, views, pipelines (join, merge, pivot, filter, clean), dashboards, exports, and handoffs."
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -140,10 +140,10 @@ your report. If no column links the files, ask before you combine them.
|
|
|
140
140
|
- `mammoth skill show --input '{"file": "references/recipes/transforms.md"}'`
|
|
141
141
|
prints any file of this skill; `mammoth skill agents-md install` writes a
|
|
142
142
|
steering block into a repository's AGENTS.md so later sessions start here.
|
|
143
|
-
- `COMMAND --help` lists
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
143
|
+
- `COMMAND --help` lists input fields; `schema find WORDS` inlines
|
|
144
|
+
`accepted_fields`/`agent_example` for top matches, else `mammoth schema
|
|
145
|
+
get COMMAND_ID` (`--input '{"full": true}'` for the schema); `schema
|
|
146
|
+
list`/`schema list view` list families.
|
|
147
147
|
- Uploads return a **dataset** id; transforms, joins, exports and previews
|
|
148
148
|
take the **view** id from `view list DATASET_ID`.
|
|
149
149
|
- `view list` and `view get` return the brief record (id, ds_id, name,
|
|
@@ -9,7 +9,9 @@ happens with the job, so you do not have to guess:
|
|
|
9
9
|
envelope says `"status": "done"` and `"pipeline_state": "ready"`: the
|
|
10
10
|
pipeline has finished, so do not poll its `future_id`; verify the values
|
|
11
11
|
with `view data get`. (With SDK ≤ 0.7.13 the same envelope said
|
|
12
|
-
`"processing"`; it meant the same thing.)
|
|
12
|
+
`"processing"`; it meant the same thing.) If the view's auto-run is off,
|
|
13
|
+
the same call instead returns `"status": "staged"` with a `message`
|
|
14
|
+
naming `view draft submit VIEW_ID` — run that to actually execute it.
|
|
13
15
|
- Only a `returns_job` command normally needs you to wait on the job id
|
|
14
16
|
explicitly:
|
|
15
17
|
```bash
|
|
@@ -27,7 +29,13 @@ is `outcome_unknown`. Re-read the exact target and scope before replaying it;
|
|
|
27
29
|
the operation may already have committed.
|
|
28
30
|
|
|
29
31
|
## Draft mode
|
|
30
|
-
|
|
32
|
+
With auto-run on (the normal mode), every pipeline change reruns the whole
|
|
33
|
+
pipeline. On a big view, say 1M rows, adding 3 rules runs it 3 times. When you
|
|
34
|
+
know up front that you will make several changes, enter draft mode, add them
|
|
35
|
+
all, then submit: the pipeline runs once. A staged change has no data until the
|
|
36
|
+
submit, so read back after it, not before. A view already in draft mode (auto-run
|
|
37
|
+
off) answers each change with `"status": "staged"`; add the rest, then submit
|
|
38
|
+
once.
|
|
31
39
|
```bash
|
|
32
40
|
mammoth view draft enter 1039 --project 180
|
|
33
41
|
mammoth view transform add-column 1039 --project 180 \
|
|
@@ -156,8 +156,9 @@ def folder_find(invocation: Invocation) -> HandlerResult:
|
|
|
156
156
|
return {
|
|
157
157
|
"matches": matches,
|
|
158
158
|
"projects_searched": len(projects),
|
|
159
|
-
"projects_truncated":
|
|
160
|
-
|
|
159
|
+
"projects_truncated": (
|
|
160
|
+
invocation.project is None and len(projects) >= _MAX_PROJECTS_SEARCHED
|
|
161
|
+
),
|
|
161
162
|
}, meta
|
|
162
163
|
|
|
163
164
|
|
|
@@ -240,13 +241,39 @@ def folder_update(invocation: Invocation) -> HandlerResult:
|
|
|
240
241
|
|
|
241
242
|
|
|
242
243
|
def folder_move(invocation: Invocation) -> HandlerResult:
|
|
243
|
-
"""Move resources into a target folder in the active project.
|
|
244
|
+
"""Move resources into a target folder in the active project.
|
|
245
|
+
|
|
246
|
+
One of ``resource_ids``, ``dataset_ids``, or ``view_ids`` is required.
|
|
247
|
+
``dataset_ids``/``view_ids`` take the plain ids ``dataset get``/``view
|
|
248
|
+
get`` return and are resolved to resource ids by the SDK; ``resource_ids``
|
|
249
|
+
is for when the caller already has a resource id from elsewhere.
|
|
250
|
+
"""
|
|
244
251
|
project_id = require_project(invocation)
|
|
245
|
-
document = invocation.load_input()
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
252
|
+
document = invocation.load_input() or {}
|
|
253
|
+
kwargs: dict[str, Any] = {"project_id": project_id}
|
|
254
|
+
_forward_optional(
|
|
255
|
+
document,
|
|
256
|
+
kwargs,
|
|
257
|
+
(
|
|
258
|
+
"resource_ids",
|
|
259
|
+
"dataset_ids",
|
|
260
|
+
"view_ids",
|
|
261
|
+
"target_folder_resource_id",
|
|
262
|
+
"source_folder_resource_id",
|
|
263
|
+
),
|
|
264
|
+
)
|
|
265
|
+
if not any(field in kwargs for field in ("resource_ids", "dataset_ids", "view_ids")):
|
|
266
|
+
raise CliError(
|
|
267
|
+
code=CODE_MISSING_FIELD,
|
|
268
|
+
message=(
|
|
269
|
+
"This command requires one of 'resource_ids', 'dataset_ids', " "or 'view_ids'."
|
|
270
|
+
),
|
|
271
|
+
exit_status=EXIT_USAGE,
|
|
272
|
+
hint=(
|
|
273
|
+
"Pass it via --input, e.g. "
|
|
274
|
+
'--input \'{"dataset_ids": [1407], "target_folder_resource_id": 3445}\'.'
|
|
275
|
+
),
|
|
276
|
+
)
|
|
250
277
|
with open_service(invocation) as (service, auth):
|
|
251
278
|
data = service.call(_symbol(invocation), **kwargs)
|
|
252
279
|
return data, _meta(invocation, auth.workspace_id, project_id)
|
|
@@ -572,6 +572,20 @@ def project_check(invocation: Invocation) -> HandlerResult:
|
|
|
572
572
|
}
|
|
573
573
|
if "before_dashboard" in preview:
|
|
574
574
|
entry["before_dashboard"] = preview["before_dashboard"]
|
|
575
|
+
other_views = preview.get("other_views")
|
|
576
|
+
if other_views:
|
|
577
|
+
# Only the first (most recent) view is previewed and checked.
|
|
578
|
+
# Say so explicitly instead of letting silence read as "this
|
|
579
|
+
# is the only view" -- which view to change is the user's
|
|
580
|
+
# call unless they already named one.
|
|
581
|
+
entry["other_views"] = other_views
|
|
582
|
+
other_desc = ", ".join(f"{v['id']} ({v.get('name')})" for v in other_views)
|
|
583
|
+
to_report.append(
|
|
584
|
+
f"dataset {dataset.get('name')} (id {dataset_id}) has "
|
|
585
|
+
f"{len(other_views) + 1} views; only view {preview['view_id']} was "
|
|
586
|
+
f"checked (others: {other_desc}). Which view to change is the "
|
|
587
|
+
"user's pick unless they named one."
|
|
588
|
+
)
|
|
575
589
|
views.append(entry)
|
|
576
590
|
where = f"view {preview['view_id']} ({dataset.get('name')})"
|
|
577
591
|
to_report += [_report_line(where, w) for w in entry["column_warnings"]]
|
|
@@ -227,6 +227,14 @@ _SCOPE_REQUIREMENTS: dict[str, dict[str, Any]] = {
|
|
|
227
227
|
|
|
228
228
|
_MAX_FIND_RESULTS = 20
|
|
229
229
|
_MAX_FIND_LIMIT = 100
|
|
230
|
+
# How many of a find's top matches carry inline accepted_fields/agent_example.
|
|
231
|
+
# 35% of all eval tool calls were command discovery (schema find -> schema
|
|
232
|
+
# get) because find's compact entry gave a command_id but not what to pass
|
|
233
|
+
# it; inlining the top few lets an agent act without a second round trip in
|
|
234
|
+
# the common case where one of them is right. Bounded to a few commands so a
|
|
235
|
+
# broad query never balloons the result (the tool result goes into the
|
|
236
|
+
# model's context).
|
|
237
|
+
_INLINE_DETAIL_COUNT = 3
|
|
230
238
|
|
|
231
239
|
# Search is intentionally a small, deterministic intent matcher rather than a
|
|
232
240
|
# fuzzy/remote search service. The aliases describe language users commonly
|
|
@@ -369,6 +377,19 @@ def _accepted_fields(record: dict[str, Any]) -> list[dict[str, Any]] | None:
|
|
|
369
377
|
]
|
|
370
378
|
|
|
371
379
|
|
|
380
|
+
def _compact_accepted_fields(record: dict[str, Any]) -> list[dict[str, Any]] | None:
|
|
381
|
+
"""``_accepted_fields`` without the per-field JSON Schema.
|
|
382
|
+
|
|
383
|
+
A find result inlines this for its top matches: enough to compose a call
|
|
384
|
+
(name, type, required, enum) without the nested-schema detail ``schema
|
|
385
|
+
get`` returns.
|
|
386
|
+
"""
|
|
387
|
+
fields = _accepted_fields(record)
|
|
388
|
+
if fields is None:
|
|
389
|
+
return None
|
|
390
|
+
return [{key: field[key] for key in ("name", "type", "required", "enum")} for field in fields]
|
|
391
|
+
|
|
392
|
+
|
|
372
393
|
def _externally_supplied_fields(command_id: str) -> frozenset[str]:
|
|
373
394
|
"""Fields supplied by positionals or authenticated CLI context."""
|
|
374
395
|
if command_id in LOCAL_COMMANDS:
|
|
@@ -1301,6 +1322,17 @@ def find_schemas(
|
|
|
1301
1322
|
)
|
|
1302
1323
|
total_matches = len(ranked_matches)
|
|
1303
1324
|
page = [match for _, match in ranked_matches[offset : offset + bounded_limit]]
|
|
1325
|
+
for rank, match in enumerate(page, start=offset):
|
|
1326
|
+
if rank >= _INLINE_DETAIL_COUNT:
|
|
1327
|
+
break
|
|
1328
|
+
match_record = command_by_id(match["command_id"])
|
|
1329
|
+
if match_record is None:
|
|
1330
|
+
continue
|
|
1331
|
+
fields = _compact_accepted_fields(match_record)
|
|
1332
|
+
if fields is not None:
|
|
1333
|
+
match["accepted_fields"] = fields
|
|
1334
|
+
if match_record.get("agent_example"):
|
|
1335
|
+
match["agent_example"] = match_record["agent_example"]
|
|
1304
1336
|
has_more = offset + len(page) < total_matches
|
|
1305
1337
|
continuation = (
|
|
1306
1338
|
{
|
|
@@ -2307,16 +2307,25 @@ def view_export_specialized(invocation: Invocation) -> HandlerResult:
|
|
|
2307
2307
|
if is_dataset_route and isinstance(data, int):
|
|
2308
2308
|
# The SDK returns the bare id of the dataset written to; name it, and
|
|
2309
2309
|
# say which project it landed in, so the agent's next read is obvious.
|
|
2310
|
+
# The written dataset's view id/name is resolved here too: an append
|
|
2311
|
+
# (save_as_mode=APPEND_TO_DS) never changes it, so telling the agent
|
|
2312
|
+
# to go re-list every time -- as a text-only 'next' hint used to --
|
|
2313
|
+
# cost one avoidable round trip per append to the same dataset. Best
|
|
2314
|
+
# effort: a failed lookup falls back to the old hint instead.
|
|
2310
2315
|
data = {
|
|
2311
2316
|
"dataset_id": data,
|
|
2312
2317
|
"project_id": result_project_id,
|
|
2313
2318
|
"source_view_id": dataview_id,
|
|
2314
|
-
"next": (
|
|
2315
|
-
f"mammoth view list {data}"
|
|
2316
|
-
+ (f" --project {result_project_id}" if target_project is not None else "")
|
|
2317
|
-
),
|
|
2318
2319
|
}
|
|
2319
|
-
|
|
2320
|
+
view_info = _dataset_view_info(service, data["dataset_id"], result_project_id)
|
|
2321
|
+
if view_info is not None:
|
|
2322
|
+
data["view_id"] = view_info["id"]
|
|
2323
|
+
data["view_name"] = view_info["name"]
|
|
2324
|
+
else:
|
|
2325
|
+
data["next"] = f"mammoth view list {data['dataset_id']}" + (
|
|
2326
|
+
f" --project {result_project_id}" if target_project is not None else ""
|
|
2327
|
+
)
|
|
2328
|
+
rows_after = view_info["row_count"] if view_info is not None else None
|
|
2320
2329
|
if rows_after is not None:
|
|
2321
2330
|
data["rows_after"] = rows_after
|
|
2322
2331
|
if rows_before is not None:
|
|
@@ -2342,6 +2351,35 @@ def _dataset_row_count(service: Any, dataset_id: int, project_id: int | None) ->
|
|
|
2342
2351
|
return None
|
|
2343
2352
|
|
|
2344
2353
|
|
|
2354
|
+
def _dataset_view_info(
|
|
2355
|
+
service: Any, dataset_id: int, project_id: int | None
|
|
2356
|
+
) -> dict[str, Any] | None:
|
|
2357
|
+
"""Id, name, and row count of a dataset's current (most recent) view, best effort.
|
|
2358
|
+
|
|
2359
|
+
Used right after ``view.export.dataset`` writes to ``dataset_id``: the
|
|
2360
|
+
id/name let the response carry the view an agent needs next instead of a
|
|
2361
|
+
'go list it' hint (an append never changes it), and the row count feeds
|
|
2362
|
+
``rows_after`` -- one listing call instead of two. Any failure returns
|
|
2363
|
+
None; the caller falls back to the 'next' hint and skips ``rows_after``.
|
|
2364
|
+
"""
|
|
2365
|
+
try:
|
|
2366
|
+
listing = service.call(_DATAVIEW_LIST_SYMBOL, dataset_id=dataset_id, project_id=project_id)
|
|
2367
|
+
views = listing.get("dataviews") if isinstance(listing, dict) else None
|
|
2368
|
+
if not isinstance(views, list) or not views or not isinstance(views[0], dict):
|
|
2369
|
+
return None
|
|
2370
|
+
view_id = views[0].get("id")
|
|
2371
|
+
if not isinstance(view_id, int):
|
|
2372
|
+
return None
|
|
2373
|
+
except Exception: # noqa: BLE001 -- best effort; the caller's fallbacks still work
|
|
2374
|
+
return None
|
|
2375
|
+
row_count = views[0].get("row_count")
|
|
2376
|
+
return {
|
|
2377
|
+
"id": view_id,
|
|
2378
|
+
"name": views[0].get("name"),
|
|
2379
|
+
"row_count": int(row_count) if row_count is not None else None,
|
|
2380
|
+
}
|
|
2381
|
+
|
|
2382
|
+
|
|
2345
2383
|
_DATAVIEW_LIST_SYMBOL = "mammoth.api.dataviews.DataviewsAPI.list"
|
|
2346
2384
|
#: Rows an upload shows of each new view (enough to see keys and formats).
|
|
2347
2385
|
_UPLOAD_SAMPLE_ROWS = 3
|
|
@@ -2365,6 +2403,15 @@ def upload_preview(service: Any, dataset_id: int, project_id: int | None) -> dic
|
|
|
2365
2403
|
views = listing.get("dataviews") if isinstance(listing, dict) else None
|
|
2366
2404
|
if not isinstance(views, list) or not views or not isinstance(views[0], dict):
|
|
2367
2405
|
return None
|
|
2406
|
+
# A dataset with more than one live view has one previewed here; the
|
|
2407
|
+
# rest are named (id + name) so a caller (``project.check``) can say
|
|
2408
|
+
# a view besides the one checked exists, rather than silently acting
|
|
2409
|
+
# on the single view this function happens to preview.
|
|
2410
|
+
other_views = [
|
|
2411
|
+
{"id": other.get("id"), "name": other.get("name")}
|
|
2412
|
+
for other in views[1:]
|
|
2413
|
+
if isinstance(other, dict) and isinstance(other.get("id"), int)
|
|
2414
|
+
]
|
|
2368
2415
|
record = apply_column_renames(views[0])
|
|
2369
2416
|
view_id = record.get("id")
|
|
2370
2417
|
if not isinstance(view_id, int):
|
|
@@ -2412,6 +2459,8 @@ def upload_preview(service: Any, dataset_id: int, project_id: int | None) -> dic
|
|
|
2412
2459
|
hints = []
|
|
2413
2460
|
if hints:
|
|
2414
2461
|
preview["before_dashboard"] = {"warnings": hints, "note": UPLOAD_NOTE}
|
|
2462
|
+
if other_views:
|
|
2463
|
+
preview["other_views"] = other_views
|
|
2415
2464
|
return preview
|
|
2416
2465
|
|
|
2417
2466
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "mammoth-cli"
|
|
3
|
-
version = "2.0.
|
|
3
|
+
version = "2.0.54"
|
|
4
4
|
description = "Command-line interface for the Mammoth Analytics platform"
|
|
5
5
|
authors = [{name = "Mammoth Analytics", email = "support@mammoth.io"}]
|
|
6
6
|
readme = "README.md"
|
|
7
7
|
license = "LicenseRef-Proprietary"
|
|
8
8
|
requires-python = ">=3.12,<3.15"
|
|
9
9
|
dependencies = [
|
|
10
|
-
"mammoth-io (>=0.7.
|
|
10
|
+
"mammoth-io (>=0.7.25,<0.8)",
|
|
11
11
|
"typer (>=0.27,<0.28)",
|
|
12
12
|
"rich (>=15,<16)",
|
|
13
13
|
"platformdirs (>=4.10,<5)",
|
|
@@ -260,8 +260,11 @@ commands:
|
|
|
260
260
|
- CT-FOLDER-MOVE-ERROR
|
|
261
261
|
draft_test: null
|
|
262
262
|
undo_test: null
|
|
263
|
-
known_restrictions:
|
|
264
|
-
|
|
263
|
+
known_restrictions: Prefer dataset_ids/view_ids (the plain ids dataset get/view get return) over resource_ids
|
|
264
|
+
-- the SDK resolves them to resource ids for you. resource_ids itself takes each item's resource id,
|
|
265
|
+
not a dataset/view's own id. target_folder_resource_id is the destination folder's id field, exactly
|
|
266
|
+
as folder list/folder get/folder create return it (NOT the folder's resource_id field, despite this
|
|
267
|
+
parameter's name).
|
|
265
268
|
reviewed_by: primary
|
|
266
269
|
- command_id: folder.root
|
|
267
270
|
command_path: folder root
|
|
@@ -2507,8 +2507,14 @@ sdk_methods:
|
|
|
2507
2507
|
wait_policy: returns_job
|
|
2508
2508
|
pagination_policy: none
|
|
2509
2509
|
openapi_operation_ids: []
|
|
2510
|
-
|
|
2511
|
-
|
|
2510
|
+
# Internal-only: B05 FOLDER_MOVE_NO_WAIT — SDK returns ObjectJobSchema but exposes no public wait
|
|
2511
|
+
# method; do not advertise --wait/--no-wait. Kept here (not in `notes`, which build_manifests.py
|
|
2512
|
+
# surfaces verbatim as the agent-facing known_restrictions) per the T2-J-013 fix.
|
|
2513
|
+
notes: 'Prefer dataset_ids/view_ids (the plain ids dataset get/view get return) over resource_ids
|
|
2514
|
+
-- the SDK resolves them to resource ids for you. resource_ids itself takes each item''s resource
|
|
2515
|
+
id, not a dataset/view''s own id. target_folder_resource_id is the destination folder''s id field,
|
|
2516
|
+
exactly as folder list/folder get/folder create return it (NOT the folder''s resource_id field,
|
|
2517
|
+
despite this parameter''s name).'
|
|
2512
2518
|
- sdk_symbol: mammoth.api.folders.FoldersAPI.trash
|
|
2513
2519
|
canonical_command: folder.trash
|
|
2514
2520
|
alias_of: null
|
|
@@ -4130,7 +4130,7 @@ methods:
|
|
|
4130
4130
|
reviewed_by: primary
|
|
4131
4131
|
- sdk_symbol: mammoth.api.folders.FoldersAPI.move
|
|
4132
4132
|
implementation_origin: mammoth.api.folders.FoldersAPI.move
|
|
4133
|
-
signature: 'move(self, resource_ids: ''_list[str]'', target_folder_resource_id: ''str | None'' = None, source_folder_resource_id: ''str | None'' = None, workspace_id: ''int | None'' = None, project_id: ''int | None'' = None) -> ''ObjectJobSchema'''
|
|
4133
|
+
signature: 'move(self, resource_ids: ''_list[str] | None'' = None, target_folder_resource_id: ''str | None'' = None, source_folder_resource_id: ''str | None'' = None, workspace_id: ''int | None'' = None, project_id: ''int | None'' = None, *, dataset_ids: ''_list[int] | None'' = None, view_ids: ''_list[int] | None'' = None) -> ''ObjectJobSchema'''
|
|
4134
4134
|
openapi_operation_ids: []
|
|
4135
4135
|
canonical_command: folder.move
|
|
4136
4136
|
alias_of: null
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/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
|
{mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/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
|
{mammoth_cli-2.0.52 → mammoth_cli-2.0.54}/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
|