mammoth-cli 2.0.14__tar.gz → 2.0.16__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.14 → mammoth_cli-2.0.16}/PKG-INFO +2 -2
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/__init__.py +1 -1
- mammoth_cli-2.0.16/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities.md +270 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/ai.md +2 -2
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/batch.md +1 -1
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/connector.md +1 -1
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dataset.md +1 -1
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/folder.md +1 -1
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/project.md +3 -3
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/user.md +2 -4
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view.md +10 -12
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/dashboards.md +14 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/exports.md +9 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/transforms.md +27 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/ai.py +12 -5
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/connector.py +11 -9
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/dashboard.py +15 -1
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/dataset.py +25 -3
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/project.py +47 -5
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/schema.py +18 -1
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/view.py +17 -3
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/services/command_contract.py +3 -2
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/services/input_fields.py +61 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/services/mapping.py +19 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/services/protocol.py +1 -1
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/services/sdk_service.py +15 -3
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/services/testing.py +4 -1
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/pyproject.toml +2 -2
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/ai.yaml +8 -3
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/batch.yaml +2 -2
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/connector.yaml +2 -2
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/dataset.yaml +1 -1
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/folder.yaml +2 -1
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/project.yaml +9 -7
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/user.yaml +4 -2
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/view.yaml +19 -13
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/sdk-methods.yaml +376 -804
- mammoth_cli-2.0.14/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities.md +0 -220
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/.gitignore +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/LICENSE +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/README.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/__main__.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/app.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/SKILL.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/command-index.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/activity.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/addon.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/agent.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/annotation.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/auth.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/automation.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/billing.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/browse.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/capability.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/client-app.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/completion.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/config.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/context.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/data-app.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/doctor.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/external-key.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/file.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/job.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/notification.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/parameter.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/report.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schedule.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schema.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/skill.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/snippet.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/support.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/template.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/trash.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/upgrade.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/version.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/webhook.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workflow.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workspace.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/handoff.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/input.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/jobs-drafts.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/machine-output.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/operations.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/auth-scope.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/cleanup.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/index.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/need-action.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/resources.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/typed-etl-discovery.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/recovery.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/retention.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/safety.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/task-start.md +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/__init__.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/activity.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/addon.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/agent.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/annotation.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/auth.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/automation.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/batch.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/billing.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/browse.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/capability.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/client_app.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/completion.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/config.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/context.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/data_app.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/doctor.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/external_key.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/file.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/folder.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/job.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/notification.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/parameter.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/registry.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/report.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/schedule.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/skill.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/snippet.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/support.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/template.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/trash.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/upgrade.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/user.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/view_ops.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/webhook.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/workflow.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/commands/workspace.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/context/__init__.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/context/credentials.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/context/endpoint.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/context/profiles.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/context/resolver.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/contracts/__init__.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/contracts/auth.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/errors/__init__.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/errors/envelope.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/manifest/__init__.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/manifest/loader.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/messages/__init__.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/output/__init__.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/output/envelope.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/output/normalize.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/output/policy.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/output/progress.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/output/render.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/py.typed +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/runtime/__init__.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/runtime/confirm.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/runtime/executor.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/runtime/input_loader.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/runtime/invocation.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/runtime/options.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/runtime/session.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/runtime/strict.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/runtime/validate.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/services/__init__.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/services/argspec.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/services/coerce.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/services/conditions.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/services/dispatch.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/services/factory.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/services/openapi_types.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/services/positionals.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/services/type_system.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/skills/__init__.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/skills/installer.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/mammoth_cli/testing.py +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/activity.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/addon.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/agent.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/annotation.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/auth.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/automation.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/billing.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/browse.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/capability.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/client-app.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/completion.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/config.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/context.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/dashboard.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/data-app.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/doctor.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/external-key.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/file.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/job.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/notification.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/parameter.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/report.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/schedule.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/schema.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/skill.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/snippet.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/support.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/template.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/trash.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/upgrade.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/version.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/webhook.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/workflow.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/commands/workspace.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/openapi-operations.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/schema-v1.json +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/manifests/sdk-catalog.source.yaml +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/spec/openapi/metadata.json +0 -0
- {mammoth_cli-2.0.14 → mammoth_cli-2.0.16}/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.16
|
|
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.8
|
|
21
21
|
Requires-Dist: platformdirs<5,>=4.10
|
|
22
22
|
Requires-Dist: pydantic<3,>=2.13
|
|
23
23
|
Requires-Dist: pyyaml<7,>=6
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
# What is proven on release
|
|
2
|
+
|
|
3
|
+
Generated from `docs/release-capability-matrix.json`; do not edit by hand.
|
|
4
|
+
455 API operations have a CLI command. 225 were exercised successfully on release, 2 are not supported there, and the rest are untried. Untried is not broken: discover the contract with `mammoth schema get COMMAND_ID --output json --no-input`, run it, and treat the structured error envelope as the answer.
|
|
5
|
+
|
|
6
|
+
Status meanings:
|
|
7
|
+
|
|
8
|
+
- **verified**: one bounded live run on release returned a success envelope (single path; variants and error paths are usually untested).
|
|
9
|
+
- **not supported**: the backend refuses the route on release; the note says why and what to use instead.
|
|
10
|
+
- **observed blocker**: the last run hit an error; the note quotes it. Re-check before relying on the route, and do not retry the same input.
|
|
11
|
+
- **CLI defect fixed, untried since**: the failure was on the CLI side and this release repairs it; nobody has re-run the route yet.
|
|
12
|
+
- Commands not listed under a family are untried.
|
|
13
|
+
|
|
14
|
+
The typed `view transform *` commands all submit through `view.task.add`; its row below carries the transformations proven end to end (filter, fill-missing, join, pivot with an exported summary). A transformation not named there has the same untried status as any other command.
|
|
15
|
+
|
|
16
|
+
## Coverage by family
|
|
17
|
+
|
|
18
|
+
| Family | Commands | Verified | Not supported | Untried |
|
|
19
|
+
|---|---|---|---|---|
|
|
20
|
+
| `dashboard` | 104 | 81 | 2 | 21 |
|
|
21
|
+
| `view` | 62 | 50 | 0 | 12 |
|
|
22
|
+
| `support` | 45 | 9 | 0 | 36 |
|
|
23
|
+
| `billing` | 23 | 4 | 0 | 19 |
|
|
24
|
+
| `connector` | 22 | 2 | 0 | 20 |
|
|
25
|
+
| `workspace` | 19 | 7 | 0 | 12 |
|
|
26
|
+
| `project` | 17 | 15 | 0 | 2 |
|
|
27
|
+
| `workflow` | 16 | 5 | 0 | 11 |
|
|
28
|
+
| `dataset` | 15 | 12 | 0 | 3 |
|
|
29
|
+
| `parameter` | 14 | 2 | 0 | 12 |
|
|
30
|
+
| `data-app` | 12 | 1 | 0 | 11 |
|
|
31
|
+
| `folder` | 8 | 8 | 0 | 0 |
|
|
32
|
+
| `snippet` | 8 | 1 | 0 | 7 |
|
|
33
|
+
| `automation` | 7 | 1 | 0 | 6 |
|
|
34
|
+
| `user` | 7 | 3 | 0 | 4 |
|
|
35
|
+
| `webhook` | 7 | 0 | 0 | 7 |
|
|
36
|
+
| `addon` | 6 | 0 | 0 | 6 |
|
|
37
|
+
| `batch` | 6 | 5 | 0 | 1 |
|
|
38
|
+
| `file` | 6 | 5 | 0 | 1 |
|
|
39
|
+
| `agent` | 5 | 1 | 0 | 4 |
|
|
40
|
+
| `ai` | 5 | 2 | 0 | 3 |
|
|
41
|
+
| `annotation` | 5 | 1 | 0 | 4 |
|
|
42
|
+
| `client-app` | 5 | 0 | 0 | 5 |
|
|
43
|
+
| `notification` | 5 | 1 | 0 | 4 |
|
|
44
|
+
| `schedule` | 5 | 0 | 0 | 5 |
|
|
45
|
+
| `template` | 5 | 0 | 0 | 5 |
|
|
46
|
+
| `browse` | 4 | 2 | 0 | 2 |
|
|
47
|
+
| `external-key` | 4 | 0 | 0 | 4 |
|
|
48
|
+
| `trash` | 3 | 3 | 0 | 0 |
|
|
49
|
+
| `activity` | 2 | 1 | 0 | 1 |
|
|
50
|
+
| `job` | 2 | 2 | 0 | 0 |
|
|
51
|
+
| `report` | 1 | 1 | 0 | 0 |
|
|
52
|
+
|
|
53
|
+
## `activity`
|
|
54
|
+
|
|
55
|
+
Verified: `activity.list`
|
|
56
|
+
|
|
57
|
+
| Command | State | Note |
|
|
58
|
+
|---|---|---|
|
|
59
|
+
| `activity.export` | observed blocker | server_error: see sweep report |
|
|
60
|
+
|
|
61
|
+
## `agent`
|
|
62
|
+
|
|
63
|
+
Verified: `agent.session.list`
|
|
64
|
+
|
|
65
|
+
## `ai`
|
|
66
|
+
|
|
67
|
+
Verified: `ai.condition.generate`, `ai.expression.generate`
|
|
68
|
+
|
|
69
|
+
| Command | State | Note |
|
|
70
|
+
|---|---|---|
|
|
71
|
+
| `ai.retention.condition` | observed blocker | permission: POST /workspaces/4/projects/24/sql_generation/retention_policy -> HTTP 403 4PERM001 PERMISSION_UNDEFINED, error_object {code:76,message:'Permissions have not been set c |
|
|
72
|
+
| `ai.sql.generate` | observed blocker | backend_error: Fix held (dataset_id required and sent as query param -- request reached backend and got a domain-specific conflict, not an empty api_error) |
|
|
73
|
+
| `ai.suggestion.list` | observed blocker | backend_error: Fix held: release UnifiedPromptSpec (suggestion_type + params, optional dataset_id/dataview_id) shape accepted and dispatched to a real job (id 381), which failed fo |
|
|
74
|
+
|
|
75
|
+
## `annotation`
|
|
76
|
+
|
|
77
|
+
Verified: `annotation.list`
|
|
78
|
+
|
|
79
|
+
## `automation`
|
|
80
|
+
|
|
81
|
+
Verified: `automation.list`
|
|
82
|
+
|
|
83
|
+
## `batch`
|
|
84
|
+
|
|
85
|
+
Verified: `batch.bulk-delete`, `batch.delete`, `batch.get`, `batch.list`, `batch.update`
|
|
86
|
+
|
|
87
|
+
| Command | State | Note |
|
|
88
|
+
|---|---|---|
|
|
89
|
+
| `batch.create` | CLI defect fixed, untried since | 2.0.16 (mapping items carry expected_destination_c_type (TEXT/NUMERIC/DATE) |
|
|
90
|
+
|
|
91
|
+
## `billing`
|
|
92
|
+
|
|
93
|
+
Verified: `billing.stripe.history`, `billing.stripe.payment-method.list`, `billing.stripe.status`, `billing.subscription.get`
|
|
94
|
+
|
|
95
|
+
| Command | State | Note |
|
|
96
|
+
|---|---|---|
|
|
97
|
+
| `billing.chargebee-plan` | observed blocker | backend_error: The CLI gates this GET behind --yes --confirm WORKSPACE_ID; with confirmation: HTTP 400 4SUBS014 'Chargebee plan not found for the given workspace' (workspace 4 is n |
|
|
98
|
+
| `billing.invoice.get` | observed blocker | blocked_missing_fixture: The CLI gates this GET behind --yes --confirm WORKSPACE_ID; with confirmation: billing invoice list answered HTTP 500, so no invoice id was observed |
|
|
99
|
+
| `billing.invoice.list` | observed blocker | backend_error: The CLI gates this GET behind --yes --confirm WORKSPACE_ID; with confirmation: HTTP 500 with empty body on GET /workspaces/4/subscription_v1/invoices |
|
|
100
|
+
| `billing.stripe.preview-invoice` | observed blocker | backend_error: The CLI gates this GET behind --yes --confirm WORKSPACE_ID; with confirmation: HTTP 400 4SUBS037 'Failed to perform subscription operation' |
|
|
101
|
+
| `billing.stripe.upcoming-invoice` | observed blocker | backend_error: The CLI gates this GET behind --yes --confirm WORKSPACE_ID; with confirmation: HTTP 400 4SUBS074 'Upcoming invoice not found' (no active Stripe subscription on works |
|
|
102
|
+
| `billing.stripe.usage` | observed blocker | backend_error: The CLI gates this GET behind --yes --confirm WORKSPACE_ID; with confirmation: HTTP 400 5GENR010 UNKNOWN_ERROR 'Unknown error occurred |
|
|
103
|
+
|
|
104
|
+
## `browse`
|
|
105
|
+
|
|
106
|
+
Verified: `browse.project`, `browse.workspace`
|
|
107
|
+
|
|
108
|
+
| Command | State | Note |
|
|
109
|
+
|---|---|---|
|
|
110
|
+
| `browse.folder` | observed blocker | cli_error: rejects folder id 0 although folder.root reports id 0 as the root |
|
|
111
|
+
| `browse.root` | observed blocker | server_error: see sweep report |
|
|
112
|
+
|
|
113
|
+
## `client-app`
|
|
114
|
+
|
|
115
|
+
| Command | State | Note |
|
|
116
|
+
|---|---|---|
|
|
117
|
+
| `client-app.list` | observed blocker | forbidden: backend_code=4GENR012 INVALID_TOKEN_FOR_CLIENT_APPS: 'Cannot access this API with API-tokens' on GET /workspaces/4/clientapps |
|
|
118
|
+
|
|
119
|
+
## `connector`
|
|
120
|
+
|
|
121
|
+
Verified: `connector.active`, `connector.list`
|
|
122
|
+
|
|
123
|
+
| Command | State | Note |
|
|
124
|
+
|---|---|---|
|
|
125
|
+
| `connector.ai.session.list` | observed blocker | cli_error: backend returned HTTP 200 but the CLI raised api_error (envelope mismatch) |
|
|
126
|
+
| `connector.connection.list` | observed blocker | server_error: see sweep report |
|
|
127
|
+
| `connector.get` | observed blocker | validation_error: HTTP 400 'Invalid connector key' for a key returned by connector.list |
|
|
128
|
+
| `connector.query.generate` | observed blocker | blocked_missing_fixture: No real connector connection exists in workspace 4 (connector.list shows all is_added:false; connector.active returns []), matching the documented capabili |
|
|
129
|
+
| `connector.query.status` | observed blocker | blocked_missing_fixture: No real connector connection exists in workspace 4 (connector list shows all is_added:false; connector active returns []) and creating one requires externa |
|
|
130
|
+
|
|
131
|
+
## `dashboard`
|
|
132
|
+
|
|
133
|
+
Verified: `dashboard.action`, `dashboard.analytics`, `dashboard.archive`, `dashboard.cancel-generation`, `dashboard.canvas.get`, `dashboard.canvas.restore`, `dashboard.canvas.save`, `dashboard.chat.edit`, `dashboard.chat.history`, `dashboard.context.create`, `dashboard.context.delete`, `dashboard.context.extract`, `dashboard.context.list`, `dashboard.context.update`, `dashboard.create-blank`, `dashboard.delete`, `dashboard.descriptor-data`, `dashboard.duplicate`, `dashboard.exemplar.extract`, `dashboard.figure-intent`, `dashboard.get`, `dashboard.get-by-url`, `dashboard.job-by-url`, `dashboard.list`, `dashboard.og-card`, `dashboard.page.plan`, `dashboard.pages.add`, `dashboard.published.canvas`, `dashboard.published.share-page`, `dashboard.qa.ask`, `dashboard.qa.comment.create`, `dashboard.qa.comment.delete`, `dashboard.qa.feedback`, `dashboard.qa.session.create`, `dashboard.qa.session.delete`, `dashboard.qa.session.fork`, `dashboard.qa.session.get`, `dashboard.qa.session.list`, `dashboard.qa.session.rename`, `dashboard.qa.session.set-visibility`, `dashboard.qa.settings.get`, `dashboard.qa.settings.set`, `dashboard.query`, `dashboard.restore`, `dashboard.rls.assignment.list`, `dashboard.rls.assignment.set`, `dashboard.rls.column.list`, `dashboard.rls.value.list`, `dashboard.share`, `dashboard.signature.create`, `dashboard.signature.delete`, `dashboard.signature.list`, `dashboard.signature.update`, `dashboard.style.custom.create`, `dashboard.style.custom.delete`, `dashboard.style.custom.list`, `dashboard.style.custom.update`, `dashboard.style.default.get`, `dashboard.style.default.set`, `dashboard.style.derive`, `dashboard.style.extract-brand`, `dashboard.style.preset.list`, `dashboard.style.token.list`, `dashboard.suggestion.list`, `dashboard.swap-data`, `dashboard.tags.delete`, `dashboard.tags.list`, `dashboard.tags.merge`, `dashboard.tags.rename`, `dashboard.tags.set`, `dashboard.template.apply`, `dashboard.template.fit`, `dashboard.template.get`, `dashboard.template.list`, `dashboard.template.preview`, `dashboard.template.resolve-mapping`, `dashboard.templates.pending`, `dashboard.trash`, `dashboard.update`, `dashboard.v3.generate`, `dashboard.video-state`
|
|
134
|
+
|
|
135
|
+
| Command | State | Note |
|
|
136
|
+
|---|---|---|
|
|
137
|
+
| `dashboard.create` | not supported | Not supported on release: backend returns HTTP 409 4DASH012 DASHBOARD_LEGACY_CREATION_RETIRED (legacy dashboard creation retired). Use dashboard.create-blank or dashboard.v3.generate. Dashboard sweep 2026-09-18, CLI 2.0.12. |
|
|
138
|
+
| `dashboard.pdf.export` | not supported | Not supported from the CLI on release: backend HTTP 400 4GENR001 requires params.data to be the browser-hydrated DashboardData map and states it cannot rebuild it from stored descriptors (dashboard sweep and Haiku e2e, 2026-09-18). The route works only with a client render pass. |
|
|
139
|
+
| `dashboard.data.draft` | observed blocker | blocked_missing_fixture: Dashboard 56 (create-blank/v3 engine) has no widgets in its canvas and getDraftData rejects with backend_code 4DASH004 DASHBOARD_WRONG_ENGINE: "This dashbo |
|
|
140
|
+
| `dashboard.data.published` | observed blocker | blocked_missing_fixture: Same as dashboard.data.draft: backend_code 4DASH004 DASHBOARD_WRONG_ENGINE on /dashboards/56/getPublishData |
|
|
141
|
+
| `dashboard.published-data-by-url` | observed blocker | blocked_missing_fixture: backend_code 4DASH004 DASHBOARD_WRONG_ENGINE on /dashboards/url/IuZl5tk5KcEHJWTy4tnhrA/getPublishData, same class of blocker as widget-data: this v3 dashbo |
|
|
142
|
+
| `dashboard.published.data` | observed blocker | blocked_missing_fixture: Could not publish dashboard 59 to reach a live published state: `dashboard action 59 {action:publish-presentation}` failed twice with HTTP 500 outcome_unkn |
|
|
143
|
+
| `dashboard.published.pdf-artifact` | observed blocker | blocked_missing_fixture: Same as dashboard.pdf-artifact: no real pdf job available; used job 313 (descriptor-data job) as the only real job id in hand and got backend_code 4DASH001 |
|
|
144
|
+
| `dashboard.published.pdf.export` | observed blocker | backend_error: Got backend_code 4PERM002 PERMISSION_ERROR, "User lacks permission to perform given action" on POST /dashboards/url/IuZl5tk5KcEHJWTy4tnhrA/pdf (403), envelope: {"err |
|
|
145
|
+
| `dashboard.published.video.export` | observed blocker | backend_error: backend_code 4PERM002 PERMISSION_ERROR, "User lacks permission to perform given action" on POST /dashboards/url/IuZl5tk5KcEHJWTy4tnhrA/video (403) |
|
|
146
|
+
| `dashboard.source.list` | observed blocker | blocker; still broken, not one of the 11 CLI-fixed commands |
|
|
147
|
+
| `dashboard.template.create` | observed blocker | backend: POST /dashboards/v3/templates -> HTTP 500, empty response_body, request_id:null, code:outcome_unknown |
|
|
148
|
+
| `dashboard.template.delete` | observed blocker | blocked_missing_fixture: dashboard.template.create never produced an owned template (HTTP 500 both attempts, reconciled as not-committed via template list) |
|
|
149
|
+
| `dashboard.templates.use` | observed blocker | skipped_out_of_scope: BRIEF instructs running templates.use "on that template" (i.e |
|
|
150
|
+
| `dashboard.video.export` | observed blocker | backend_error: After publishing dashboard 56 (dashboard.share public + dashboard.action publish-presentation), the previously-documented "publish the dashboard before exporting a v |
|
|
151
|
+
| `dashboard.widget-data` | observed blocker | blocked_missing_fixture: backend_code 4DASH004 DASHBOARD_WRONG_ENGINE, "This dashboard uses a different rendering engine -- use the matching endpoints", on POST /dashboards/56/widg |
|
|
152
|
+
| `dashboard.widget-data-by-url` | observed blocker | blocked_missing_fixture: Same backend_code 4DASH004 DASHBOARD_WRONG_ENGINE, on POST /dashboards/url/IuZl5tk5KcEHJWTy4tnhrA/widgets/data |
|
|
153
|
+
|
|
154
|
+
## `data-app`
|
|
155
|
+
|
|
156
|
+
Verified: `data-app.list`
|
|
157
|
+
|
|
158
|
+
## `dataset`
|
|
159
|
+
|
|
160
|
+
Verified: `dataset.batch-data`, `dataset.bulk-delete`, `dataset.create`, `dataset.data`, `dataset.delete`, `dataset.file-settings.get`, `dataset.file-settings.undo`, `dataset.file-settings.update`, `dataset.get`, `dataset.list`, `dataset.restore`, `dataset.trash`
|
|
161
|
+
|
|
162
|
+
| Command | State | Note |
|
|
163
|
+
|---|---|---|
|
|
164
|
+
| `dataset.bulk-update` | observed blocker | cli_error: Schema preconditions already flag this as BLOCKED[B07 DATASET_PATCH_UNTYPED]; reserved, not registered -- confirmed live |
|
|
165
|
+
| `dataset.create-from-pdf` | observed blocker | backend: POST /workspaces/4/projects/24/datasets-from-pdf |
|
|
166
|
+
|
|
167
|
+
## `external-key`
|
|
168
|
+
|
|
169
|
+
| Command | State | Note |
|
|
170
|
+
|---|---|---|
|
|
171
|
+
| `external-key.list` | observed blocker | cli_error: not_authenticated although the same session authenticated elsewhere |
|
|
172
|
+
|
|
173
|
+
## `file`
|
|
174
|
+
|
|
175
|
+
Verified: `file.bulk-delete`, `file.delete`, `file.get`, `file.list`, `file.upload`
|
|
176
|
+
|
|
177
|
+
| Command | State | Note |
|
|
178
|
+
|---|---|---|
|
|
179
|
+
| `file.update` | observed blocker | backend_error: CLI accepted the typed patch and submitted job 314 (handle_file on /workspaces/4/projects/21/files/50), then correctly reported timeout after 60s with recovery_comma |
|
|
180
|
+
|
|
181
|
+
## `folder`
|
|
182
|
+
|
|
183
|
+
Verified: `folder.bulk-delete`, `folder.create`, `folder.delete`, `folder.get`, `folder.list`, `folder.move`, `folder.trash`, `folder.update`
|
|
184
|
+
|
|
185
|
+
## `job`
|
|
186
|
+
|
|
187
|
+
Verified: `job.get`, `job.get-many`
|
|
188
|
+
|
|
189
|
+
## `notification`
|
|
190
|
+
|
|
191
|
+
Verified: `notification.list`
|
|
192
|
+
|
|
193
|
+
## `parameter`
|
|
194
|
+
|
|
195
|
+
Verified: `parameter.group.list`, `parameter.list`
|
|
196
|
+
|
|
197
|
+
## `project`
|
|
198
|
+
|
|
199
|
+
Verified: `project.bulk-delete`, `project.bulk-update`, `project.checkpoint.list`, `project.create`, `project.data-check.list`, `project.delete`, `project.list`, `project.pending-changes`, `project.publish-credentials`, `project.resource-dependencies`, `project.resource-dependencies.update`, `project.resource-status`, `project.sample-flow`, `project.update`, `project.user.add`
|
|
200
|
+
|
|
201
|
+
| Command | State | Note |
|
|
202
|
+
|---|---|---|
|
|
203
|
+
| `project.user.update` | observed blocker | backend_error: HTTP 400 4PROJ010 ROLE_ALREADY_ASSIGNED: "Role already assigned to the user" -- targeted our own user (id 5, already project_admin as project owner) |
|
|
204
|
+
|
|
205
|
+
## `report`
|
|
206
|
+
|
|
207
|
+
Verified: `report.list`
|
|
208
|
+
|
|
209
|
+
## `schedule`
|
|
210
|
+
|
|
211
|
+
| Command | State | Note |
|
|
212
|
+
|---|---|---|
|
|
213
|
+
| `schedule.get` | observed blocker | blocked_missing_fixture: Not run: id source schedule.list failed with backend_error (5GENR011 NOT_IMPLEMENTED, HTTP 400), so no schedule_id was observed to use |
|
|
214
|
+
| `schedule.list` | observed blocker | backend_error: backend_code=5GENR011 NOT_IMPLEMENTED: 'Not implemented' on GET /workspaces/4/projects/3/schedules |
|
|
215
|
+
|
|
216
|
+
## `snippet`
|
|
217
|
+
|
|
218
|
+
Verified: `snippet.list`
|
|
219
|
+
|
|
220
|
+
## `support`
|
|
221
|
+
|
|
222
|
+
Verified: `support.connector-profile.list`, `support.connector.list`, `support.feature-profile.list`, `support.feature.list`, `support.plan.chargebee-list`, `support.plan.list`, `support.plan.self-serve-list`, `support.user.list-all`, `support.workspace.list`
|
|
223
|
+
|
|
224
|
+
## `template`
|
|
225
|
+
|
|
226
|
+
| Command | State | Note |
|
|
227
|
+
|---|---|---|
|
|
228
|
+
| `template.list` | observed blocker | cli_error: backend returned HTTP 200 but the CLI raised api_error (envelope mismatch) |
|
|
229
|
+
|
|
230
|
+
## `trash`
|
|
231
|
+
|
|
232
|
+
Verified: `trash.add`, `trash.list`, `trash.restore`
|
|
233
|
+
|
|
234
|
+
## `user`
|
|
235
|
+
|
|
236
|
+
Verified: `user.get`, `user.preference.get`, `user.preference.update`
|
|
237
|
+
|
|
238
|
+
## `view`
|
|
239
|
+
|
|
240
|
+
Verified: `view.active-user.list`, `view.active-user.mark`, `view.ai.generate-data`, `view.ai.profile`, `view.bulk-delete`, `view.checkpoint.create`, `view.checkpoint.delete`, `view.checkpoint.list`, `view.conditional-format.list`, `view.conditional-format.update`, `view.create`, `view.data-check.create`, `view.data-check.delete`, `view.data-check.get`, `view.data-check.list`, `view.data.get`, `view.data.query`, `view.delete`, `view.derivative.create`, `view.derivative.delete`, `view.derivative.list`, `view.derivative.update`, `view.draft.command`, `view.export.delete`, `view.export.get`, `view.export.list`, `view.export.publish-db`, `view.export.update`, `view.exportable-config.get`, `view.get`, `view.list`, `view.parameter-context`, `view.pipeline.edit`, `view.pipeline.get`, `view.pipeline.items`, `view.pipeline.rerun`, `view.preview`, `view.restore`, `view.task.add`, `view.task.delete`, `view.task.get`, `view.task.list`, `view.task.update`, `view.trash`, `view.version.apply`, `view.version.delete`, `view.version.get`, `view.version.list`, `view.version.update`
|
|
241
|
+
|
|
242
|
+
| Command | State | Note |
|
|
243
|
+
|---|---|---|
|
|
244
|
+
| `view.ai.generation-info` | observed blocker | backend: GET /workspaces/4/projects/24/datasets/54/dataviews/76/data/generate -> HTTP 400 5GENR011 NOT_IMPLEMENTED 'Not implemented', request_id:null |
|
|
245
|
+
| `view.checkpoint.get` | observed blocker | backend: GET /workspaces/4/projects/24/datasets/54/dataviews/76/pipeline/checkpoints/2 -> HTTP 500, empty response_body:{}, request_id:null, backend code: none surfaced (generic ap |
|
|
246
|
+
| `view.checkpoint.update` | observed blocker | backend_error: CLI-side fix (payload now carries value:null as required) held: the correctly-shaped request was dispatched and the backend returned HTTP 500 (not a CLI-side crash): |
|
|
247
|
+
| `view.conditional-format.create` | observed blocker | cli_error: Skill doc (view.md) claims this route is 'fail-closed and must not dispatch a request' (BLOCKED B09 DATAVIEW_INPUT_UNTYPED) -- but live it DOES dispatch: HTTP 400 4GENR0 |
|
|
248
|
+
| `view.data-check.update` | observed blocker | backend: PATCH .../pipeline/data-checks/3 -> HTTP 500, empty response_body, request_id:null, code:outcome_unknown |
|
|
249
|
+
| `view.derivative.data` | observed blocker | backend: POST .../derivatives/4/data -> HTTP 500, empty response_body, request_id:null, code:outcome_unknown |
|
|
250
|
+
| `view.export.create` | observed blocker | backend: CLI accepts the request (exit 0, job 358 accepted on POST /dataviews/76/actions), but job get 358 -> status:error, response:{"error":{"message":"'destination'"}} (a raw Py |
|
|
251
|
+
| `view.exportable-config.apply` | observed blocker | cli_error: Schema's own runnable_example (config:{tasks:[]}) fails: job_failed, response:{reason:(quote)dependencies(quote)} -- a raw Python KeyError, not a structured validation m |
|
|
252
|
+
| `view.conditional-format.delete-all` | CLI defect fixed, untried since | 2.0.16 (the handler now forwards rule_id from --input (2.0.15 accepted the field but dropped it before the SDK call)) |
|
|
253
|
+
| `view.export.publish-db-update` | CLI defect fixed, untried since | 2.0.16 (example value is the documented {"odbc_type": "postgres"} object (a bare string is rejected)) |
|
|
254
|
+
| `view.task.preview` | CLI defect fixed, untried since | 2.0.16 (example now uses the backend COPY param-template shape: list of {SOURCE, AS{COLUMN,TYPE,INTERNAL_NAME}}, VERSION 2 |
|
|
255
|
+
|
|
256
|
+
## `webhook`
|
|
257
|
+
|
|
258
|
+
| Command | State | Note |
|
|
259
|
+
|---|---|---|
|
|
260
|
+
| `webhook.list` | observed blocker | cli_error: api_error with no HTTP status recorded |
|
|
261
|
+
|
|
262
|
+
## `workflow`
|
|
263
|
+
|
|
264
|
+
Verified: `workflow.graph`, `workflow.list`, `workflow.workspace-datasets`, `workflow.workspace-exports`, `workflow.workspace-sources`
|
|
265
|
+
|
|
266
|
+
## `workspace`
|
|
267
|
+
|
|
268
|
+
Verified: `workspace.app-usage`, `workspace.get`, `workspace.list`, `workspace.segment.list`, `workspace.segment.update`, `workspace.storage-breakdown`, `workspace.user.list`
|
|
269
|
+
|
|
270
|
+
Evidence version: CLI mammoth-cli 1.1.11; mammoth-io 0.7.1. Details: `docs/capability-evidence/` in the repository.
|
|
@@ -28,7 +28,7 @@ Expected success: `AiRetentionConditionResult` in the standard JSON envelope; mu
|
|
|
28
28
|
|
|
29
29
|
Run: `mammoth ai sql generate`. Exact input fields: `mammoth schema get ai.sql.generate --output json --no-input`.
|
|
30
30
|
|
|
31
|
-
Example: `mammoth ai sql generate 'Summarize revenue by region' --output json --no-input`. Runnable only after resolving schema-required IDs and input from observed reads.
|
|
31
|
+
Example: `mammoth ai sql generate 'Summarize revenue by region' --input '{"dataset_id": 456}' --output json --no-input`. Runnable only after resolving schema-required IDs and input from observed reads.
|
|
32
32
|
|
|
33
33
|
Expected success: `AiSqlGenerateResult` in the standard JSON envelope; mutation `read`, confirmation `none`, wait policy `always_wait`. On nonzero exit, inspect the JSON error envelope and its `recovery_commands`; do not guess request fields. See [representative envelopes](../machine-output.md) for concrete success/error shapes.
|
|
34
34
|
|
|
@@ -36,6 +36,6 @@ Expected success: `AiSqlGenerateResult` in the standard JSON envelope; mutation
|
|
|
36
36
|
|
|
37
37
|
Run: `mammoth ai suggestion list`. Exact input fields: `mammoth schema get ai.suggestion.list --output json --no-input`.
|
|
38
38
|
|
|
39
|
-
Example: `mammoth ai suggestion list --output json --no-input`. Runnable only after resolving schema-required IDs and input from observed reads.
|
|
39
|
+
Example: `mammoth ai suggestion list --input '{"suggestion_type": "generate_task", "params": {"prompt": "Filter rows where Price > 100"}, "dataset_id": 456, "dataview_id": 123}' --output json --no-input`. Runnable only after resolving schema-required IDs and input from observed reads.
|
|
40
40
|
|
|
41
41
|
Expected success: `AiSuggestionListResult` in the standard JSON envelope; mutation `read`, confirmation `none`, wait policy `always_wait`. On nonzero exit, inspect the JSON error envelope and its `recovery_commands`; do not guess request fields. See [representative envelopes](../machine-output.md) for concrete success/error shapes.
|
|
@@ -12,7 +12,7 @@ Expected success: `BatchBulkDeleteResult` in the standard JSON envelope; mutatio
|
|
|
12
12
|
|
|
13
13
|
Run: `mammoth batch create`. Exact input fields: `mammoth schema get batch.create --output json --no-input`.
|
|
14
14
|
|
|
15
|
-
Example: `mammoth batch create 123 123 --input '{"mapping": {"
|
|
15
|
+
Example: `mammoth batch create 123 123 --input '{"mapping": [{"source_c_name": "column_1", "destination_c_name": "column_1", "expected_destination_c_type": "TEXT"}]}' --output json --no-input`. Runnable only after resolving schema-required IDs and input from observed reads.
|
|
16
16
|
|
|
17
17
|
Expected success: `BatchCreateResult` in the standard JSON envelope; mutation `benign_mutation`, confirmation `none`, wait policy `returns_job`. On nonzero exit, inspect the JSON error envelope and its `recovery_commands`; do not guess request fields. See [representative envelopes](../machine-output.md) for concrete success/error shapes.
|
|
18
18
|
|
|
@@ -164,7 +164,7 @@ Expected success: `ConnectorListResult` in the standard JSON envelope; mutation
|
|
|
164
164
|
|
|
165
165
|
Run: `mammoth connector query generate`. Exact input fields: `mammoth schema get connector.query.generate --output json --no-input`.
|
|
166
166
|
|
|
167
|
-
Example: `mammoth connector query generate sample sample --input '{"
|
|
167
|
+
Example: `mammoth connector query generate sample sample --input '{"query": "Total sales for January"}' --output json --no-input`. Runnable only after resolving schema-required IDs and input from observed reads.
|
|
168
168
|
|
|
169
169
|
Expected success: `ConnectorQueryGenerateResult` in the standard JSON envelope; mutation `read`, confirmation `none`, wait policy `always_wait`. On nonzero exit, inspect the JSON error envelope and its `recovery_commands`; do not guess request fields. See [representative envelopes](../machine-output.md) for concrete success/error shapes.
|
|
170
170
|
|
|
@@ -12,7 +12,7 @@ Expected success: `DatasetBatchDataResult` in the standard JSON envelope; mutati
|
|
|
12
12
|
|
|
13
13
|
Run: `mammoth dataset bulk-delete`. Exact input fields: `mammoth schema get dataset.bulk-delete --output json --no-input`.
|
|
14
14
|
|
|
15
|
-
Example: `mammoth dataset bulk-delete --output json --no-input`. Illustrative only: append `--yes` after observing an owned target.
|
|
15
|
+
Example: `mammoth dataset bulk-delete --input '{"dataset_ids": [456, 457]}' --output json --no-input`. Illustrative only: append `--yes` after observing an owned target.
|
|
16
16
|
|
|
17
17
|
Expected success: `DatasetBulkDeleteResult` in the standard JSON envelope; mutation `destructive`, confirmation `prompt_or_yes`, wait policy `not_async`. On nonzero exit, inspect the JSON error envelope and its `recovery_commands`; do not guess request fields. See [representative envelopes](../machine-output.md) for concrete success/error shapes.
|
|
18
18
|
|
|
@@ -52,7 +52,7 @@ Expected success: `FolderListResult` in the standard JSON envelope; mutation `re
|
|
|
52
52
|
|
|
53
53
|
Run: `mammoth folder move`. Exact input fields: `mammoth schema get folder.move --output json --no-input`.
|
|
54
54
|
|
|
55
|
-
Example: `mammoth folder move --input '{"resource_ids": ["
|
|
55
|
+
Example: `mammoth folder move --input '{"resource_ids": [8024], "target_folder_resource_id": "root"}' --output json --no-input`. Runnable only after resolving schema-required IDs and input from observed reads.
|
|
56
56
|
|
|
57
57
|
Expected success: `FolderMoveResult` in the standard JSON envelope; mutation `benign_mutation`, confirmation `none`, wait policy `returns_job`. On nonzero exit, inspect the JSON error envelope and its `recovery_commands`; do not guess request fields. See [representative envelopes](../machine-output.md) for concrete success/error shapes.
|
|
58
58
|
|
|
@@ -12,7 +12,7 @@ Expected success: `ProjectBulkDeleteResult` in the standard JSON envelope; mutat
|
|
|
12
12
|
|
|
13
13
|
Run: `mammoth project bulk-update`. Exact input fields: `mammoth schema get project.bulk-update --output json --no-input`.
|
|
14
14
|
|
|
15
|
-
Example: `mammoth project bulk-update --input '{"patch_data": {"
|
|
15
|
+
Example: `mammoth project bulk-update --input '{"patch_data": {"patches": [{"op": "add", "path": "role", "value": [{"project_id": 456, "user_roles": [{"user_id": 123, "role": "project_analyst"}]}]}]}}' --output json --no-input`. Illustrative only: append `--yes --confirm <EXACT_TARGET>` after observing the target.
|
|
16
16
|
|
|
17
17
|
Expected success: `ProjectBulkUpdateResult` in the standard JSON envelope; mutation `high_impact`, confirmation `confirm_target`, wait policy `not_async`. On nonzero exit, inspect the JSON error envelope and its `recovery_commands`; do not guess request fields. See [representative envelopes](../machine-output.md) for concrete success/error shapes.
|
|
18
18
|
|
|
@@ -116,7 +116,7 @@ Expected success: `ProjectSampleFlowResult` in the standard JSON envelope; mutat
|
|
|
116
116
|
|
|
117
117
|
Run: `mammoth project update`. Exact input fields: `mammoth schema get project.update --output json --no-input`.
|
|
118
118
|
|
|
119
|
-
Example: `mammoth project update 123 --output json --no-input`. Runnable only after resolving schema-required IDs and input from observed reads.
|
|
119
|
+
Example: `mammoth project update 123 --input '{"name": "Renamed project"}' --output json --no-input`. Runnable only after resolving schema-required IDs and input from observed reads.
|
|
120
120
|
|
|
121
121
|
Expected success: `ProjectUpdateResult` in the standard JSON envelope; mutation `benign_mutation`, confirmation `none`, wait policy `not_async`. On nonzero exit, inspect the JSON error envelope and its `recovery_commands`; do not guess request fields. See [representative envelopes](../machine-output.md) for concrete success/error shapes.
|
|
122
122
|
|
|
@@ -124,7 +124,7 @@ Expected success: `ProjectUpdateResult` in the standard JSON envelope; mutation
|
|
|
124
124
|
|
|
125
125
|
Run: `mammoth project user add`. Exact input fields: `mammoth schema get project.user.add --output json --no-input`.
|
|
126
126
|
|
|
127
|
-
Example: `mammoth project user add 123 --input '{"user_ids": [
|
|
127
|
+
Example: `mammoth project user add 123 --input '{"user_ids": [123], "role": "project_analyst"}' --output json --no-input`. Illustrative only: append `--yes --confirm <EXACT_TARGET>` after observing the target.
|
|
128
128
|
|
|
129
129
|
Expected success: `ProjectUserAddResult` in the standard JSON envelope; mutation `high_impact`, confirmation `confirm_target`, wait policy `not_async`. On nonzero exit, inspect the JSON error envelope and its `recovery_commands`; do not guess request fields. See [representative envelopes](../machine-output.md) for concrete success/error shapes.
|
|
130
130
|
|
|
@@ -54,11 +54,9 @@ Expected success: `UserPreferenceGetResult` in the standard JSON envelope; mutat
|
|
|
54
54
|
|
|
55
55
|
Run: `mammoth user preference update`. Exact input fields: `mammoth schema get user.preference.update --output json --no-input`.
|
|
56
56
|
|
|
57
|
-
Example: `mammoth user preference update --output json --no-input`.
|
|
57
|
+
Example: `mammoth user preference update --input '{"patch": [{"op": "replace", "path": "GLOBAL.PREFERENCES.TOP_TABS", "value": []}]}' --output json --no-input`. Runnable only after resolving schema-required IDs and input from observed reads.
|
|
58
58
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
Known restriction: BLOCKED[B17 VARIADIC_INPUT_UNTYPED]: **prefs is unconstrained; reserved, not registered.
|
|
59
|
+
Expected success: `UserPreferenceUpdateResult` in the standard JSON envelope; mutation `benign_mutation`, confirmation `none`, wait policy `not_async`. On nonzero exit, inspect the JSON error envelope and its `recovery_commands`; do not guess request fields. See [representative envelopes](../machine-output.md) for concrete success/error shapes.
|
|
62
60
|
|
|
63
61
|
### `user.update`
|
|
64
62
|
|
|
@@ -36,7 +36,7 @@ Expected success: `ViewAiGenerationInfoResult` in the standard JSON envelope; mu
|
|
|
36
36
|
|
|
37
37
|
Run: `mammoth view ai profile`. Exact input fields: `mammoth schema get view.ai.profile --output json --no-input`.
|
|
38
38
|
|
|
39
|
-
Example: `mammoth view ai profile 123 --output json --no-input`. Runnable only after resolving schema-required IDs and input from observed reads.
|
|
39
|
+
Example: `mammoth view ai profile 123 --input '{"dataset_id": 456, "action": "insights"}' --output json --no-input`. Runnable only after resolving schema-required IDs and input from observed reads.
|
|
40
40
|
|
|
41
41
|
Expected success: `ViewAiProfileResult` in the standard JSON envelope; mutation `benign_mutation`, confirmation `none`, wait policy `always_wait`. On nonzero exit, inspect the JSON error envelope and its `recovery_commands`; do not guess request fields. See [representative envelopes](../machine-output.md) for concrete success/error shapes.
|
|
42
42
|
|
|
@@ -84,7 +84,7 @@ Expected success: `ViewCheckpointListResult` in the standard JSON envelope; muta
|
|
|
84
84
|
|
|
85
85
|
Run: `mammoth view checkpoint update`. Exact input fields: `mammoth schema get view.checkpoint.update --output json --no-input`.
|
|
86
86
|
|
|
87
|
-
Example: `mammoth view checkpoint update 123 123 123 --input '{"body": {"patches": [{"op": "
|
|
87
|
+
Example: `mammoth view checkpoint update 123 123 123 --input '{"body": {"patches": [{"op": "command", "path": "approve", "value": null}]}}' --output json --no-input`. Runnable only after resolving schema-required IDs and input from observed reads.
|
|
88
88
|
|
|
89
89
|
Expected success: `ViewCheckpointUpdateResult` in the standard JSON envelope; mutation `benign_mutation`, confirmation `none`, wait policy `not_async`. On nonzero exit, inspect the JSON error envelope and its `recovery_commands`; do not guess request fields. See [representative envelopes](../machine-output.md) for concrete success/error shapes.
|
|
90
90
|
|
|
@@ -92,17 +92,15 @@ Expected success: `ViewCheckpointUpdateResult` in the standard JSON envelope; mu
|
|
|
92
92
|
|
|
93
93
|
Run: `mammoth view conditional-format create`. Exact input fields: `mammoth schema get view.conditional-format.create --output json --no-input`.
|
|
94
94
|
|
|
95
|
-
Example: `mammoth view conditional-format create 123 123 --input '{"rule": {"sample_key": "Status"}}' --output json --no-input`.
|
|
95
|
+
Example: `mammoth view conditional-format create 123 123 --input '{"rule": {"sample_key": "Status"}}' --output json --no-input`. Runnable only after resolving schema-required IDs and input from observed reads.
|
|
96
96
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
Known restriction: BLOCKED[B09 DATAVIEW_INPUT_UNTYPED]: rule is an arbitrary dictionary; reserved, not registered.
|
|
97
|
+
Expected success: `ViewConditionalFormatCreateResult` in the standard JSON envelope; mutation `benign_mutation`, confirmation `none`, wait policy `not_async`. On nonzero exit, inspect the JSON error envelope and its `recovery_commands`; do not guess request fields. See [representative envelopes](../machine-output.md) for concrete success/error shapes.
|
|
100
98
|
|
|
101
99
|
### `view.conditional-format.delete-all`
|
|
102
100
|
|
|
103
101
|
Run: `mammoth view conditional-format delete-all`. Exact input fields: `mammoth schema get view.conditional-format.delete-all --output json --no-input`.
|
|
104
102
|
|
|
105
|
-
Example: `mammoth view conditional-format delete-all 123 123 --output json --no-input`. Illustrative only: append `--yes` after observing an owned target.
|
|
103
|
+
Example: `mammoth view conditional-format delete-all 123 123 --input '{"rule_id": "rule-1"}' --output json --no-input`. Illustrative only: append `--yes` after observing an owned target.
|
|
106
104
|
|
|
107
105
|
Expected success: `ViewConditionalFormatDeleteAllResult` in the standard JSON envelope; mutation `destructive`, confirmation `prompt_or_yes`, wait policy `not_async`. On nonzero exit, inspect the JSON error envelope and its `recovery_commands`; do not guess request fields. See [representative envelopes](../machine-output.md) for concrete success/error shapes.
|
|
108
106
|
|
|
@@ -448,7 +446,7 @@ Expected success: `ViewExportPublishDbResult` in the standard JSON envelope; mut
|
|
|
448
446
|
|
|
449
447
|
Run: `mammoth view export publish-db-update`. Exact input fields: `mammoth schema get view.export.publish-db-update --output json --no-input`.
|
|
450
448
|
|
|
451
|
-
Example: `mammoth view export publish-db-update 123 --input '{"patch": [{"
|
|
449
|
+
Example: `mammoth view export publish-db-update 123 --input '{"patch": [{"op": "replace", "path": "credentials", "value": {"odbc_type": "postgres"}}]}' --output json --no-input`. Illustrative only: append `--yes` after observing an owned target.
|
|
452
450
|
|
|
453
451
|
Expected success: `ViewExportPublishDbUpdateResult` in the standard JSON envelope; mutation `external_effect`, confirmation `yes_always`, wait policy `not_async`. On nonzero exit, inspect the JSON error envelope and its `recovery_commands`; do not guess request fields. See [representative envelopes](../machine-output.md) for concrete success/error shapes.
|
|
454
452
|
|
|
@@ -550,7 +548,7 @@ Expected success: `ViewParameterContextResult` in the standard JSON envelope; mu
|
|
|
550
548
|
|
|
551
549
|
Run: `mammoth view pipeline edit`. Exact input fields: `mammoth schema get view.pipeline.edit --output json --no-input`.
|
|
552
550
|
|
|
553
|
-
Example: `mammoth view pipeline edit 123 --input '{"patches": [{"
|
|
551
|
+
Example: `mammoth view pipeline edit 123 --input '{"patches": [{"op": "replace", "path": "auto_run", "value": true}]}' --output json --no-input`. Runnable only after resolving schema-required IDs and input from observed reads.
|
|
554
552
|
|
|
555
553
|
Expected success: `ViewPipelineEditResult` in the standard JSON envelope; mutation `benign_mutation`, confirmation `none`, wait policy `always_wait`. On nonzero exit, inspect the JSON error envelope and its `recovery_commands`; do not guess request fields. See [representative envelopes](../machine-output.md) for concrete success/error shapes.
|
|
556
554
|
|
|
@@ -614,7 +612,7 @@ Expected success: `ViewRestoreResult` in the standard JSON envelope; mutation `b
|
|
|
614
612
|
|
|
615
613
|
Run: `mammoth view task add`. Exact input fields: `mammoth schema get view.task.add --output json --no-input`.
|
|
616
614
|
|
|
617
|
-
Example: `mammoth view task add 123 --input '{"task_spec": {"DATAVIEW_ID": 123, "SEQUENCE_NUMBER": 1, "COPY": {}}}' --output json --no-input`. Runnable only after resolving schema-required IDs and input from observed reads.
|
|
615
|
+
Example: `mammoth view task add 123 --input '{"task_spec": {"DATAVIEW_ID": 123, "SEQUENCE_NUMBER": 1, "COPY": [{"SOURCE": "column_1", "AS": {"COLUMN": "Copy of column 1", "TYPE": "TEXT", "INTERNAL_NAME": "column_9"}}], "VERSION": 2}}' --output json --no-input`. Runnable only after resolving schema-required IDs and input from observed reads.
|
|
618
616
|
|
|
619
617
|
Expected success: `ViewTaskAddResult` in the standard JSON envelope; mutation `reversible_pipeline`, confirmation `none`, wait policy `always_wait`. On nonzero exit, inspect the JSON error envelope and its `recovery_commands`; do not guess request fields. See [representative envelopes](../machine-output.md) for concrete success/error shapes.
|
|
620
618
|
|
|
@@ -646,7 +644,7 @@ Expected success: `ViewTaskListResult` in the standard JSON envelope; mutation `
|
|
|
646
644
|
|
|
647
645
|
Run: `mammoth view task preview`. Exact input fields: `mammoth schema get view.task.preview --output json --no-input`.
|
|
648
646
|
|
|
649
|
-
Example: `mammoth view task preview 123 --input '{"task_spec": {"DATAVIEW_ID": 123, "SEQUENCE_NUMBER": 1, "COPY": {}}}' --output json --no-input`. Runnable only after resolving schema-required IDs and input from observed reads.
|
|
647
|
+
Example: `mammoth view task preview 123 --input '{"task_spec": {"DATAVIEW_ID": 123, "SEQUENCE_NUMBER": 1, "COPY": [{"SOURCE": "column_1", "AS": {"COLUMN": "Copy of column 1", "TYPE": "TEXT", "INTERNAL_NAME": "column_9"}}], "VERSION": 2}}' --output json --no-input`. Runnable only after resolving schema-required IDs and input from observed reads.
|
|
650
648
|
|
|
651
649
|
Expected success: `ViewTaskPreviewResult` in the standard JSON envelope; mutation `read`, confirmation `none`, wait policy `always_wait`. On nonzero exit, inspect the JSON error envelope and its `recovery_commands`; do not guess request fields. See [representative envelopes](../machine-output.md) for concrete success/error shapes.
|
|
652
650
|
|
|
@@ -654,7 +652,7 @@ Expected success: `ViewTaskPreviewResult` in the standard JSON envelope; mutatio
|
|
|
654
652
|
|
|
655
653
|
Run: `mammoth view task update`. Exact input fields: `mammoth schema get view.task.update --output json --no-input`.
|
|
656
654
|
|
|
657
|
-
Example: `mammoth view task update 123 123 --input '{"task_spec": {"DATAVIEW_ID": 123, "SEQUENCE_NUMBER": 1, "COPY": {}}, "dataset_id": 456}' --output json --no-input`. Runnable only after resolving schema-required IDs and input from observed reads.
|
|
655
|
+
Example: `mammoth view task update 123 123 --input '{"task_spec": {"DATAVIEW_ID": 123, "SEQUENCE_NUMBER": 1, "COPY": [{"SOURCE": "column_1", "AS": {"COLUMN": "Copy of column 1", "TYPE": "TEXT", "INTERNAL_NAME": "column_9"}}], "VERSION": 2}, "dataset_id": 456}' --output json --no-input`. Runnable only after resolving schema-required IDs and input from observed reads.
|
|
658
656
|
|
|
659
657
|
Expected success: `ViewTaskUpdateResult` in the standard JSON envelope; mutation `reversible_pipeline`, confirmation `none`, wait policy `always_wait`. On nonzero exit, inspect the JSON error envelope and its `recovery_commands`; do not guess request fields. See [representative envelopes](../machine-output.md) for concrete success/error shapes.
|
|
660
658
|
|
|
@@ -57,3 +57,17 @@ this as a known limitation instead of retrying with `{}`. `dashboard create`
|
|
|
57
57
|
(legacy engine) is retired on release (HTTP 409 `4DASH012`); use
|
|
58
58
|
`create-blank` or `v3 generate`.
|
|
59
59
|
|
|
60
|
+
## Publishing and the url routes
|
|
61
|
+
|
|
62
|
+
`dashboard share DASHBOARD_ID --input '{"type_of_auth":"public"}'` alone does
|
|
63
|
+
not publish: `was_published` stays false until you also run
|
|
64
|
+
`dashboard action DASHBOARD_ID --input '{"action":"publish-presentation"}'`.
|
|
65
|
+
`share` returns `data: null`; read the url slug back with `dashboard get`.
|
|
66
|
+
Only then do `dashboard published canvas URL`, `published data URL`,
|
|
67
|
+
`job-by-url URL JOB_ID` and the other `/dashboards/url/...` routes answer;
|
|
68
|
+
before that they return 404 `DASHBOARD_NOT_FOUND`. Legacy widget routes
|
|
69
|
+
(`widget-data`, `widget-data-by-url`, `published-data-by-url`, `data draft`,
|
|
70
|
+
`data published`) answer 409 `DASHBOARD_WRONG_ENGINE` on a v3 dashboard.
|
|
71
|
+
`video export` needs a motion-story dashboard. Revert the share
|
|
72
|
+
(`type_of_auth: "mammoth"`) before trashing a temporary dashboard.
|
|
73
|
+
|
|
@@ -21,3 +21,12 @@ returns `job_id`, read it until terminal success before inspecting the artifact.
|
|
|
21
21
|
If `schema get view.export.csv` rejects requested fields, preserve the
|
|
22
22
|
structured error and discover another declared export route rather than using
|
|
23
23
|
raw HTTP.
|
|
24
|
+
|
|
25
|
+
## Generic export routes
|
|
26
|
+
|
|
27
|
+
`view export csv` and the typed destination commands are the proven path. The
|
|
28
|
+
generic `view export create` accepts a raw `export_spec`; for `handler_type`
|
|
29
|
+
`csv_file` the release job failed with a bare `'destination'` key even when
|
|
30
|
+
`target_properties.destination` was set, so do not use it for CSV. `view export
|
|
31
|
+
publish-db-update` only rotates credentials: the body is
|
|
32
|
+
`{"patch":[{"op":"replace","path":"credentials","value":"postgres"|"bigquery"}]}`.
|
|
@@ -68,3 +68,30 @@ Reject malformed fields with the structured error envelope and stop rather than
|
|
|
68
68
|
guessing names. Verify exact display names, join multiplicity, math values and
|
|
69
69
|
remote task/pipeline readback. Draft submit is not proof all tasks persisted:
|
|
70
70
|
discover draft enter/status/submit/discard schemas and reconcile IDs/parents.
|
|
71
|
+
|
|
72
|
+
## Pipeline, checkpoint and raw task routes
|
|
73
|
+
|
|
74
|
+
These routes forward release patch bodies that `schema get` shows only as
|
|
75
|
+
free-form lists. Observed shapes:
|
|
76
|
+
|
|
77
|
+
- `view pipeline edit VIEW_ID --input '{"dataset_id":DATASET_ID,"patches":[{"op":"command","path":"discard-changes","value":null}]}'`
|
|
78
|
+
takes exactly one patch; `path` is one of `auto_run`, `run`, `submit-changes`,
|
|
79
|
+
`reset`, `discard-changes`, `suspend`, `restore`, `discard`, `reorder`, and
|
|
80
|
+
the `value` type follows the path (bool for `auto_run`, a reorder spec for
|
|
81
|
+
`reorder`, `null` for commands). Prefer `view draft *` for submit/discard.
|
|
82
|
+
- `view task update VIEW_ID TASK_ID --input '{"dataset_id":DATASET_ID,"task_spec":{...}}'`
|
|
83
|
+
sends `{"patches":[{"op":"replace","path":"params","value":task_spec}]}`;
|
|
84
|
+
pass `patches` directly for other paths. Raw `task_spec` bodies use the
|
|
85
|
+
backend param-template shape with internal column names, e.g. COPY is
|
|
86
|
+
`{"COPY":[{"SOURCE":"column_1","AS":{"COLUMN":"Copy","TYPE":"TEXT","INTERNAL_NAME":"column_9"}}],"VERSION":2,...}`;
|
|
87
|
+
prefer the typed `view transform *` commands, which build these for you.
|
|
88
|
+
`view task preview` currently fails on the backend for views with a DATE
|
|
89
|
+
column (`datetime is not JSON serializable`), so do not rely on it.
|
|
90
|
+
- `view checkpoint update` sends `{"patches":[{"op":"command","path":"approve","value":null}]}`;
|
|
91
|
+
the release backend answered HTTP 500 to that shape, so treat checkpoint
|
|
92
|
+
approval as unavailable until `checkpoint get` succeeds again.
|
|
93
|
+
- `view exportable-config apply` needs the complete object returned by
|
|
94
|
+
`view exportable-config get` (tasks, dependencies, metadata, ...); a partial
|
|
95
|
+
config fails the job with a bare key name instead of a validation message.
|
|
96
|
+
- `ai expression generate` accepts `mode` `math` or `metric` only; an invalid
|
|
97
|
+
mode is refused before any request as `invalid_arguments`.
|
|
@@ -305,11 +305,13 @@ def ai_retention_condition(invocation: Invocation) -> HandlerResult:
|
|
|
305
305
|
|
|
306
306
|
|
|
307
307
|
def ai_suggestion_list(invocation: Invocation) -> HandlerResult:
|
|
308
|
-
"""List AI-powered
|
|
308
|
+
"""List AI-powered suggestions for the active project.
|
|
309
309
|
|
|
310
|
-
The
|
|
311
|
-
|
|
312
|
-
|
|
310
|
+
The release route is ``POST .../suggestions`` with a ``UnifiedPromptSpec``
|
|
311
|
+
body: ``suggestion_type`` (``extract_text``, ``add_condition``,
|
|
312
|
+
``generate_task``, ``apply_ai_template``, ``dashboards`` or
|
|
313
|
+
``derivative_fuzzy_bucket``) plus the type-specific ``params`` object.
|
|
314
|
+
``dataset_id``/``dataview_id`` scope the request via query parameters.
|
|
313
315
|
|
|
314
316
|
Args:
|
|
315
317
|
invocation: The current command's resolved global options.
|
|
@@ -318,6 +320,11 @@ def ai_suggestion_list(invocation: Invocation) -> HandlerResult:
|
|
|
318
320
|
The raw suggestions response and envelope metadata.
|
|
319
321
|
"""
|
|
320
322
|
project_id = require_project(invocation)
|
|
323
|
+
document = invocation.load_input()
|
|
324
|
+
suggestion_type = _require_field(document, "suggestion_type")
|
|
325
|
+
params = _require_field(document, "params")
|
|
326
|
+
kwargs: dict[str, Any] = {"suggestion_type": suggestion_type, "params": params}
|
|
327
|
+
_forward_optional(document or {}, kwargs, ("dataset_id", "dataview_id"))
|
|
321
328
|
with open_service(invocation) as (service, auth):
|
|
322
|
-
data = service.call(_symbol(invocation))
|
|
329
|
+
data = service.call(_symbol(invocation), **kwargs)
|
|
323
330
|
return data, _meta(invocation, auth.workspace_id, project_id)
|