mammoth-cli 2.1.0__tar.gz → 2.1.2__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.1.0 → mammoth_cli-2.1.2}/PKG-INFO +1 -1
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/__init__.py +1 -1
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/SKILL.md +2 -2
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/dashboards.md +18 -4
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/recovery.md +1 -1
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/activity.py +44 -1
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/dataset.py +62 -32
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/pyproject.toml +1 -1
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/openapi/metadata.json +1 -1
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/openapi/openapi.json +1 -1
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/.gitignore +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/LICENSE +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/README.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/__main__.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/app.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/about-mammoth.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities-misc.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/command-index.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/activity.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/addon.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/agent.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/ai.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/annotation.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/auth.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/automation.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/batch.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/billing.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/browse.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/calc.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/capability.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/client-app.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/completion.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/config.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/connector.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/context.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-qa.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-style.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/data-app.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dataset.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/doctor.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/external-key.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/file.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/folder.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/job.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/log.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/notification.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/parameter.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/project.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/report.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schedule.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schema.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/skill.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/snippet.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/support.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/template.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/trash.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/upgrade.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/user.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/version.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view-transform.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/webhook.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workflow.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workspace.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/handoff.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/input.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/jobs-drafts.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/machine-output.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/operations.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/auth-scope.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/cleanup.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/end-to-end.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/exports.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/index.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/need-action.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/resources.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/scheduling.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/transforms.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/typed-etl-discovery.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/report-checklist.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/retention.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/safety.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/task-start.md +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/__init__.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/addon.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/agent.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/ai.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/annotation.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/auth.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/automation.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/batch.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/billing.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/browse.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/calc.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/capability.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/client_app.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/completion.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/config.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/connector.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/context.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/dashboard.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/data_app.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/doctor.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/external_key.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/file.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/folder.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/job.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/notification.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/parameter.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/project.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/registry.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/report.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/schedule.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/schema.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/skill.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/snippet.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/support.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/template.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/trash.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/upgrade.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/user.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/view.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/view_ops.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/view_profile.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/webhook.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/workflow.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/commands/workspace.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/context/__init__.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/context/credentials.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/context/endpoint.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/context/profiles.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/context/resolver.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/contracts/__init__.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/contracts/auth.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/embed.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/errors/__init__.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/errors/envelope.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/manifest/__init__.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/manifest/loader.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/messages/__init__.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/output/__init__.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/output/envelope.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/output/normalize.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/output/policy.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/output/progress.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/output/render.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/py.typed +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/runtime/__init__.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/runtime/confirm.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/runtime/dataset_health.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/runtime/dryrun.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/runtime/dryrun_targets.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/runtime/embedded.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/runtime/executor.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/runtime/input_loader.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/runtime/intent_only.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/runtime/invocation.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/runtime/new_data.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/runtime/options.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/runtime/parents.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/runtime/runlog.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/runtime/session.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/runtime/state.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/runtime/strict.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/runtime/updates.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/runtime/validate.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/runtime/verify.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/__init__.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/argspec.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/board_values.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/coerce.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/command_contract.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/conditions.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/dashboard_filters.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/dashboard_pages.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/dashboard_review.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/data_profile.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/data_quality.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/dispatch.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/factory.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/input_fields.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/listing.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/mapping.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/openapi_types.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/positionals.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/protocol.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/read_queries.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/sdk_service.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/stored_stats.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/testing.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/text_dates.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/type_system.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/services/write_impact.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/skills/__init__.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/skills/installer.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/skills/steering.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/testing.py +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/activity.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/addon.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/agent.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/ai.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/annotation.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/auth.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/automation.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/batch.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/billing.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/browse.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/calc.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/capability.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/client-app.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/completion.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/config.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/connector.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/context.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/dashboard.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/data-app.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/dataset.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/doctor.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/external-key.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/file.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/folder.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/job.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/log.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/notification.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/parameter.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/project.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/report.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/schedule.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/schema.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/skill.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/snippet.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/support.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/template.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/trash.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/upgrade.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/user.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/version.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/view.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/webhook.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/workflow.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/commands/workspace.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/edits-target.source.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/openapi-operations.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/schema-v1.json +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/sdk-catalog.source.yaml +0 -0
- {mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/spec/manifests/sdk-methods.yaml +0 -0
|
@@ -85,8 +85,8 @@ mammoth schema find "join two datasets; remove duplicates; build a dashboard"
|
|
|
85
85
|
| Change a column's type | `view transform convert-type` |
|
|
86
86
|
| Rename a column, sort the rows (view settings, not tasks) | `view transform rename-columns`, `view transform sort` |
|
|
87
87
|
| Rank, running total, previous row | `view transform window` |
|
|
88
|
-
| A dashboard | `dashboard v3 generate`, then `chat edit` ([dashboards](references/recipes/dashboards.md)) |
|
|
89
|
-
| Deliver the rows | `view export csv`, `view export postgres` (and
|
|
88
|
+
| A dashboard, or its PDF or slides | `dashboard v3 generate`, then `chat edit` ([dashboards](references/recipes/dashboards.md)) |
|
|
89
|
+
| Deliver the rows | `view export csv`, `view export postgres` (and more), `view export dataset` |
|
|
90
90
|
| Run something on a schedule or on new data (refresh, append, alert) | `automation create`: a condition (`at_specific_time`, new file in a folder, ...) and tasks (`run_data_retrieval`, `append_data`, `send_an_alert`, `pull_cloud_files`). `schedule create` only pulls a connector's data. A dataset from an uploaded file or URL is a one-time copy with no source to refresh; say so. Recipe and caveats: [recurring work](references/recipes/scheduling.md) |
|
|
91
91
|
|
|
92
92
|
Call a find result (or `suggestions` entry) from its `accepted_fields` and
|
|
@@ -134,10 +134,24 @@ that canvas: `--input '{"widget_id": "WIDGET_UUID"}'` (optional
|
|
|
134
134
|
descriptor with a `kind` (`scalar`, `group`, `rate`, `detail`, `options`,
|
|
135
135
|
`range`); `{"kind":"scalar","agg":"count"}` is the smallest that runs.
|
|
136
136
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
137
|
+
There is NO slide/PowerPoint export. Never answer "turn this into a slide deck"
|
|
138
|
+
by editing the user's board (`dashboard chat edit`, `canvas save`) into a
|
|
139
|
+
"brief"; say plainly that a slide file is not possible and offer a PDF instead.
|
|
140
|
+
|
|
141
|
+
PDF from the CLI:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
mammoth dashboard pdf export DASHBOARD_ID --input '{"body":{"params":{"carousel":true}}}'
|
|
145
|
+
# -> job_id; wait for it, then: mammoth dashboard pdf-artifact DASHBOARD_ID JOB_ID
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
`carousel:true` prints the board's narrative as 1080x1350 cards, one claim per
|
|
149
|
+
card (the closest thing to a short deck), and needs no `params.data`. A layout
|
|
150
|
+
print (no `carousel`) needs the browser-hydrated `DashboardData` map in
|
|
151
|
+
`params.data` ONLY for `dashboard`/`qa` style boards; the backend refuses to
|
|
152
|
+
rebuild it (HTTP 400 `params.data`). For that print, offer the carousel or tell
|
|
153
|
+
the user to use Download PDF in the app; never retry with `{"data": {}}`.
|
|
154
|
+
`dashboard video export` needs a motion-story dashboard.
|
|
141
155
|
|
|
142
156
|
## Publishing and the url routes
|
|
143
157
|
|
{mammoth_cli-2.1.0 → mammoth_cli-2.1.2}/mammoth_cli/bundled_skill/mammoth-cli/references/recovery.md
RENAMED
|
@@ -34,7 +34,7 @@ these commands are not blanket permission to replay a mutation.
|
|
|
34
34
|
| `needs_view` in `file upload` result, or `status: ready` with `status_info.ready` "more than one plausible way to be read" and `view list` empty | all-text CSV: the platform ingests the rows but creates no view | run the `next_command` (`view create DATASET_ID`) once, then `view list DATASET_ID`; see recipes/need-action.md |
|
|
35
35
|
| `need_action` in `file upload` result | the platform needs a parsing decision (e.g. ambiguous dates) | run the `next_command` it returns (`dataset file-settings get ID`), then `dataset file-settings update ID`; see recipes/need-action.md |
|
|
36
36
|
| `confirmation_required` (exit 2) | destructive/high-impact command without `--yes` (and `--confirm TARGET` when policy is confirm_target) | re-run with the flag after you have read the target back by id |
|
|
37
|
-
| `4GENR001 ... params.data` (HTTP 400) from `dashboard pdf export` | route needs a browser-rendered payload |
|
|
37
|
+
| `4GENR001 ... params.data` (HTTP 400) from `dashboard pdf export` | route needs a browser-rendered payload | layout print of a dashboard-style board needs the browser payload; retry with `{"carousel":true}` (narrative cards, no data needed) or tell the user to use Download PDF in the app; do not retry with `{"data": {}}` |
|
|
38
38
|
| `'destination'` KeyError in a `view export create` job with handler_type csv_file | generic export route is broken for CSV on release | use `view export csv` |
|
|
39
39
|
| `timeout` / `outcome_unknown` (exit 7) | the request may have completed | run the envelope's `recovery_commands` first: `job get JOB_ID`, `project get ID` after a delete (repeat until `resource_not_found`), `dashboard list` after `create-blank` (look for your title), `dashboard canvas get ID` after a canvas or pages write. Else re-list the resource (`dataset list`, `view task list VIEW_ID DATASET_ID`) before any replay |
|
|
40
40
|
| HTTP 502 / connection errors on every command | backend outage | `mammoth doctor`; wait and re-run doctor until it succeeds; do not replay mutations blindly |
|
|
@@ -11,9 +11,15 @@ public SDK method named by the command's reviewed manifest ``sdk_symbol``.
|
|
|
11
11
|
|
|
12
12
|
from __future__ import annotations
|
|
13
13
|
|
|
14
|
+
import json
|
|
14
15
|
from typing import Any
|
|
15
16
|
|
|
16
|
-
from mammoth_cli.errors.envelope import
|
|
17
|
+
from mammoth_cli.errors.envelope import (
|
|
18
|
+
CODE_INVALID_ARGUMENT,
|
|
19
|
+
CODE_SDK_SYMBOL_UNRESOLVED,
|
|
20
|
+
EXIT_USAGE,
|
|
21
|
+
CliError,
|
|
22
|
+
)
|
|
17
23
|
from mammoth_cli.manifest.loader import command_by_id
|
|
18
24
|
from mammoth_cli.runtime.invocation import Invocation
|
|
19
25
|
from mammoth_cli.runtime.session import open_service, resolved_project
|
|
@@ -38,6 +44,16 @@ _LIST_OPTIONAL = (
|
|
|
38
44
|
"search_text",
|
|
39
45
|
)
|
|
40
46
|
|
|
47
|
+
# How the activity log keys an entry's resource: ``<type>_<id>``. A bare id names no
|
|
48
|
+
# type, so the backend's exact match on it finds nothing and reads as "no activity".
|
|
49
|
+
_RESOURCE_TYPES = (
|
|
50
|
+
("dataview", "a view"),
|
|
51
|
+
("datasource", "a dataset"),
|
|
52
|
+
("project", "a project"),
|
|
53
|
+
("dashboard", "a dashboard"),
|
|
54
|
+
("automation", "an automation"),
|
|
55
|
+
)
|
|
56
|
+
|
|
41
57
|
_EXPORT_OPTIONAL = (
|
|
42
58
|
"format",
|
|
43
59
|
"start_time",
|
|
@@ -97,6 +113,32 @@ def _forward_optional(
|
|
|
97
113
|
kwargs[field] = value
|
|
98
114
|
|
|
99
115
|
|
|
116
|
+
def _refuse_bare_resource_id(document: dict[str, Any]) -> None:
|
|
117
|
+
"""Refuse a ``resource_id`` that is a bare id: it matches no log entry.
|
|
118
|
+
|
|
119
|
+
Raises:
|
|
120
|
+
CliError: ``invalid_argument`` naming each typed form, with the retry for a
|
|
121
|
+
view and for a dataset as recovery commands.
|
|
122
|
+
"""
|
|
123
|
+
resource = str(document.get("resource_id", "")).strip()
|
|
124
|
+
if not resource.isdigit():
|
|
125
|
+
return
|
|
126
|
+
forms = "; ".join(f"{kind}_{resource} for {label}" for kind, label in _RESOURCE_TYPES)
|
|
127
|
+
retries = [
|
|
128
|
+
json.dumps({**document, "resource_id": f"{kind}_{resource}"})
|
|
129
|
+
for kind, _ in _RESOURCE_TYPES[:2]
|
|
130
|
+
]
|
|
131
|
+
raise CliError(
|
|
132
|
+
code=CODE_INVALID_ARGUMENT,
|
|
133
|
+
message=(
|
|
134
|
+
f"resource_id {resource} is a bare id, which no activity entry has: the log"
|
|
135
|
+
f" keys each resource by its type — {forms}."
|
|
136
|
+
),
|
|
137
|
+
exit_status=EXIT_USAGE,
|
|
138
|
+
recovery_commands=[f"mammoth activity list --input '{retry}'" for retry in retries],
|
|
139
|
+
)
|
|
140
|
+
|
|
141
|
+
|
|
100
142
|
def _meta(invocation: Invocation, workspace_id: int, project_id: int | None) -> dict[str, Any]:
|
|
101
143
|
"""Build the common envelope metadata for an activity command.
|
|
102
144
|
|
|
@@ -118,6 +160,7 @@ def _meta(invocation: Invocation, workspace_id: int, project_id: int | None) ->
|
|
|
118
160
|
def activity_list(invocation: Invocation) -> HandlerResult:
|
|
119
161
|
"""List activity logs in the active workspace, with optional filters."""
|
|
120
162
|
document = _bound_document(invocation)
|
|
163
|
+
_refuse_bare_resource_id(document)
|
|
121
164
|
kwargs: dict[str, Any] = {}
|
|
122
165
|
_forward_optional(document, kwargs, _LIST_OPTIONAL)
|
|
123
166
|
with open_service(invocation) as (service, auth):
|
|
@@ -146,43 +146,65 @@ def _require_string_positional(invocation: Invocation, name: str) -> str:
|
|
|
146
146
|
_MAX_PROJECTS_SEARCHED = 100
|
|
147
147
|
|
|
148
148
|
|
|
149
|
+
def _visible_projects(service: Any) -> list[dict[str, Any]]:
|
|
150
|
+
"""The projects the credential can see (at most ``_MAX_PROJECTS_SEARCHED``)."""
|
|
151
|
+
listing = service.list_projects(limit=_MAX_PROJECTS_SEARCHED)
|
|
152
|
+
return list(listing.get("projects", [])) if isinstance(listing, dict) else []
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
def _find_in_projects(
|
|
156
|
+
service: Any, needle: str, projects: list[dict[str, Any]]
|
|
157
|
+
) -> list[dict[str, Any]]:
|
|
158
|
+
"""Datasets whose name contains ``needle`` (case-insensitive), in each of ``projects``."""
|
|
159
|
+
matches: list[dict[str, Any]] = []
|
|
160
|
+
for project in projects:
|
|
161
|
+
project_id = project.get("id")
|
|
162
|
+
if project_id is None:
|
|
163
|
+
continue
|
|
164
|
+
response = service.call("mammoth.api.datasets.DatasetsAPI.list_all", project_id=project_id)
|
|
165
|
+
datasets = response.get("datasets", []) if isinstance(response, dict) else []
|
|
166
|
+
for dataset in datasets:
|
|
167
|
+
name = dataset.get("name") if isinstance(dataset, dict) else None
|
|
168
|
+
if isinstance(name, str) and needle in name.lower():
|
|
169
|
+
matches.append(
|
|
170
|
+
{
|
|
171
|
+
"project_id": project_id,
|
|
172
|
+
"project_name": project.get("name"),
|
|
173
|
+
"id": dataset.get("id"),
|
|
174
|
+
"name": name,
|
|
175
|
+
}
|
|
176
|
+
)
|
|
177
|
+
return matches
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
def _other_projects(service: Any, project_id: int) -> list[dict[str, Any]]:
|
|
181
|
+
"""Every visible project except ``project_id``."""
|
|
182
|
+
return [p for p in _visible_projects(service) if p.get("id") != project_id]
|
|
183
|
+
|
|
184
|
+
|
|
149
185
|
def dataset_find(invocation: Invocation) -> HandlerResult:
|
|
150
186
|
"""Search dataset names for a substring across every visible project.
|
|
151
187
|
|
|
152
|
-
Read-only local composite: lists the projects the credential can see
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
project
|
|
188
|
+
Read-only local composite: lists the projects the credential can see, then
|
|
189
|
+
lists datasets in each and keeps a case-insensitive substring match. With
|
|
190
|
+
``--project`` that project is searched first, and the rest only when it holds
|
|
191
|
+
no match: the in-product agent runs every call under the project the user
|
|
192
|
+
last opened, which is often not the one the named dataset is in. Does not
|
|
193
|
+
require an active project.
|
|
156
194
|
"""
|
|
157
195
|
name_substring = _require_string_positional(invocation, "name substring")
|
|
158
196
|
needle = name_substring.lower()
|
|
159
|
-
matches: list[dict[str, Any]] = []
|
|
160
197
|
with open_service(invocation) as (service, auth):
|
|
161
198
|
if invocation.project is not None:
|
|
162
199
|
projects: list[dict[str, Any]] = [{"id": invocation.project, "name": None}]
|
|
200
|
+
matches = _find_in_projects(service, needle, projects)
|
|
201
|
+
if not matches:
|
|
202
|
+
others = _other_projects(service, invocation.project)
|
|
203
|
+
matches = _find_in_projects(service, needle, others)
|
|
204
|
+
projects += others
|
|
163
205
|
else:
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
for project in projects:
|
|
167
|
-
project_id = project.get("id")
|
|
168
|
-
if project_id is None:
|
|
169
|
-
continue
|
|
170
|
-
project_name = project.get("name")
|
|
171
|
-
response = service.call(
|
|
172
|
-
"mammoth.api.datasets.DatasetsAPI.list_all", project_id=project_id
|
|
173
|
-
)
|
|
174
|
-
datasets = response.get("datasets", []) if isinstance(response, dict) else []
|
|
175
|
-
for dataset in datasets:
|
|
176
|
-
name = dataset.get("name") if isinstance(dataset, dict) else None
|
|
177
|
-
if isinstance(name, str) and needle in name.lower():
|
|
178
|
-
matches.append(
|
|
179
|
-
{
|
|
180
|
-
"project_id": project_id,
|
|
181
|
-
"project_name": project_name,
|
|
182
|
-
"id": dataset.get("id"),
|
|
183
|
-
"name": name,
|
|
184
|
-
}
|
|
185
|
-
)
|
|
206
|
+
projects = _visible_projects(service)
|
|
207
|
+
matches = _find_in_projects(service, needle, projects)
|
|
186
208
|
meta = {
|
|
187
209
|
"profile": invocation.profile,
|
|
188
210
|
"workspace_id": auth.workspace_id,
|
|
@@ -191,9 +213,7 @@ def dataset_find(invocation: Invocation) -> HandlerResult:
|
|
|
191
213
|
return {
|
|
192
214
|
"matches": matches,
|
|
193
215
|
"projects_searched": len(projects),
|
|
194
|
-
"projects_truncated": (
|
|
195
|
-
invocation.project is None and len(projects) >= _MAX_PROJECTS_SEARCHED
|
|
196
|
-
),
|
|
216
|
+
"projects_truncated": len(projects) >= _MAX_PROJECTS_SEARCHED,
|
|
197
217
|
}, meta
|
|
198
218
|
|
|
199
219
|
|
|
@@ -240,8 +260,18 @@ def _dataset_name_search(
|
|
|
240
260
|
sort=document.get("sort", "(created_at:desc)"),
|
|
241
261
|
fields=DATASET_LIST_FIELDS,
|
|
242
262
|
)
|
|
243
|
-
|
|
244
|
-
|
|
263
|
+
records = data.get("datasets", []) if isinstance(data, dict) else []
|
|
264
|
+
page = search_page(records, name, int(document.get("offset", 0)), document.get("limit"))
|
|
265
|
+
if page["matched"] == 0:
|
|
266
|
+
elsewhere = _find_in_projects(
|
|
267
|
+
service, name.lower(), _other_projects(service, project_id)
|
|
268
|
+
)
|
|
269
|
+
if elsewhere:
|
|
270
|
+
page["in_other_projects"] = elsewhere
|
|
271
|
+
page["note"] = (
|
|
272
|
+
f"No dataset in project {project_id} matches; the ones listed in "
|
|
273
|
+
"in_other_projects do. Run the next call with --project <its project_id>."
|
|
274
|
+
)
|
|
245
275
|
page["name"] = name
|
|
246
276
|
return page, _meta(invocation, auth.workspace_id, project_id)
|
|
247
277
|
|
|
@@ -20,6 +20,6 @@
|
|
|
20
20
|
"key (credential-shaped)"
|
|
21
21
|
],
|
|
22
22
|
"schema_count": 864,
|
|
23
|
-
"sha256": "
|
|
23
|
+
"sha256": "31a0b89da93732ffd8e158529d81733aaa7437a19a0c4375133b89e080bd63a5",
|
|
24
24
|
"source_url": "https://app.mammoth.io/api/v2/docs/openapi.json"
|
|
25
25
|
}
|