mammoth-cli 2.0.71__tar.gz → 2.0.72__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.71 → mammoth_cli-2.0.72}/PKG-INFO +1 -1
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/__init__.py +1 -1
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/app.py +16 -1
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/SKILL.md +1 -1
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/view_ops.py +26 -0
- mammoth_cli-2.0.72/mammoth_cli/runtime/verify.py +111 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/pyproject.toml +1 -1
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/.gitignore +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/LICENSE +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/README.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/__main__.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/about-mammoth.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities-misc.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/command-index.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/activity.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/addon.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/agent.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/ai.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/annotation.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/auth.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/automation.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/batch.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/billing.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/browse.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/capability.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/client-app.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/completion.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/config.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/connector.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/context.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-qa.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/data-app.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dataset.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/doctor.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/external-key.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/file.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/folder.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/job.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/log.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/notification.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/parameter.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/project.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/report.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schedule.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schema.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/skill.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/snippet.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/support.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/template.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/trash.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/upgrade.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/user.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/version.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view-transform.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/webhook.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workflow.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workspace.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/handoff.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/input.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/jobs-drafts.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/machine-output.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/operations.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/auth-scope.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/cleanup.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/dashboards.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/end-to-end.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/exports.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/index.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/need-action.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/resources.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/scheduling.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/transforms.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/typed-etl-discovery.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/recovery.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/report-checklist.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/retention.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/safety.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/task-start.md +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/__init__.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/activity.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/addon.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/agent.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/ai.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/annotation.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/auth.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/automation.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/batch.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/billing.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/browse.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/capability.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/client_app.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/completion.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/config.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/connector.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/context.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/dashboard.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/data_app.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/dataset.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/doctor.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/external_key.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/file.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/folder.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/job.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/notification.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/parameter.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/project.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/registry.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/report.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/schedule.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/schema.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/skill.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/snippet.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/support.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/template.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/trash.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/upgrade.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/user.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/view.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/webhook.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/workflow.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/commands/workspace.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/context/__init__.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/context/credentials.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/context/endpoint.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/context/profiles.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/context/resolver.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/contracts/__init__.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/contracts/auth.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/embed.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/errors/__init__.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/errors/envelope.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/manifest/__init__.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/manifest/loader.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/messages/__init__.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/output/__init__.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/output/envelope.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/output/normalize.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/output/policy.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/output/progress.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/output/render.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/py.typed +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/runtime/__init__.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/runtime/confirm.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/runtime/dryrun.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/runtime/embedded.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/runtime/executor.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/runtime/input_loader.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/runtime/invocation.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/runtime/options.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/runtime/parents.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/runtime/runlog.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/runtime/session.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/runtime/strict.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/runtime/updates.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/runtime/validate.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/services/__init__.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/services/argspec.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/services/coerce.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/services/command_contract.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/services/conditions.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/services/dashboard_pages.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/services/dashboard_review.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/services/data_quality.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/services/dispatch.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/services/factory.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/services/input_fields.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/services/mapping.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/services/openapi_types.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/services/positionals.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/services/protocol.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/services/sdk_service.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/services/testing.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/services/type_system.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/skills/__init__.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/skills/installer.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/skills/steering.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/testing.py +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/activity.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/addon.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/agent.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/ai.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/annotation.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/auth.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/automation.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/batch.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/billing.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/browse.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/capability.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/client-app.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/completion.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/config.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/connector.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/context.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/dashboard.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/data-app.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/dataset.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/doctor.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/external-key.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/file.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/folder.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/job.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/log.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/notification.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/parameter.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/project.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/report.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/schedule.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/schema.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/skill.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/snippet.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/support.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/template.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/trash.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/upgrade.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/user.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/version.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/view.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/webhook.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/workflow.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/commands/workspace.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/openapi-operations.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/schema-v1.json +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/sdk-catalog.source.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/manifests/sdk-methods.yaml +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/openapi/metadata.json +0 -0
- {mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/spec/openapi/openapi.json +0 -0
|
@@ -44,6 +44,7 @@ from mammoth_cli.output.policy import (
|
|
|
44
44
|
from mammoth_cli.runtime import executor, validate
|
|
45
45
|
from mammoth_cli.runtime.invocation import Invocation
|
|
46
46
|
from mammoth_cli.runtime.strict import validate_extra_args
|
|
47
|
+
from mammoth_cli.runtime.verify import with_verify
|
|
47
48
|
from mammoth_cli.services.positionals import PositionalSpec, resolve_positionals
|
|
48
49
|
|
|
49
50
|
OUTPUT_MODES = VALID_OUTPUTS
|
|
@@ -823,7 +824,8 @@ def _execute(invocation: Invocation) -> None:
|
|
|
823
824
|
raise not_implemented_error(invocation.command_id, sdk_symbol)
|
|
824
825
|
if invocation.dry_run:
|
|
825
826
|
return _dry_run(handler, invocation)
|
|
826
|
-
|
|
827
|
+
data, meta = handler(invocation)
|
|
828
|
+
return _apply_verify(invocation.command_id, data), meta
|
|
827
829
|
|
|
828
830
|
executor.run(
|
|
829
831
|
invocation.command_id,
|
|
@@ -835,6 +837,19 @@ def _execute(invocation: Invocation) -> None:
|
|
|
835
837
|
)
|
|
836
838
|
|
|
837
839
|
|
|
840
|
+
def _apply_verify(command_id: str, data: Any) -> Any:
|
|
841
|
+
"""Add the automatic write read-back to a real, mutating, API-backed result.
|
|
842
|
+
|
|
843
|
+
A read command and a command with no reviewed ``sdk_symbol`` (a local or
|
|
844
|
+
not-yet-backed command) are returned unchanged; ``--dry-run`` never
|
|
845
|
+
reaches this at all, since it returns before the handler's real call.
|
|
846
|
+
"""
|
|
847
|
+
record = command_by_id(command_id) or {}
|
|
848
|
+
if record.get("mutation_class") == "read" or not record.get("sdk_symbol"):
|
|
849
|
+
return data
|
|
850
|
+
return with_verify(data)
|
|
851
|
+
|
|
852
|
+
|
|
838
853
|
def _dry_run(handler: Handler, invocation: Invocation) -> tuple[Any, dict[str, Any]]:
|
|
839
854
|
"""Run ``handler`` until its request would leave; report that request.
|
|
840
855
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: mammoth-cli
|
|
3
|
-
version: 2.0.
|
|
3
|
+
version: 2.0.72
|
|
4
4
|
description: "Use Mammoth Analytics from a terminal: install or authenticate the CLI, discover its live command contract, and safely manage projects, data, views, pipelines (join, merge, pivot, filter, clean), dashboards, exports, and handoffs."
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -25,6 +25,7 @@ from datetime import UTC, datetime, timedelta
|
|
|
25
25
|
from typing import Any
|
|
26
26
|
|
|
27
27
|
from mammoth_cli.commands.view import (
|
|
28
|
+
_DATAVIEW_GET_SYMBOL,
|
|
28
29
|
_FIND_DATASET_SYMBOL,
|
|
29
30
|
BRIEF_VIEW_FIELDS,
|
|
30
31
|
_dataview_metadata,
|
|
@@ -245,6 +246,17 @@ def _meta(invocation: Invocation, workspace_id: int) -> dict[str, Any]:
|
|
|
245
246
|
}
|
|
246
247
|
|
|
247
248
|
|
|
249
|
+
def _view_row_count(service: Any, dataset_id: int, view_id: int, project_id: int | None) -> Any:
|
|
250
|
+
"""Return a view's current row count via the cheapest read (best effort)."""
|
|
251
|
+
try:
|
|
252
|
+
info = service.call(
|
|
253
|
+
_DATAVIEW_GET_SYMBOL, dataset_id=dataset_id, dataview_id=view_id, project_id=project_id
|
|
254
|
+
)
|
|
255
|
+
except Exception: # noqa: BLE001 -- the check is advice; the write already ran
|
|
256
|
+
return None
|
|
257
|
+
return info.get("row_count") if isinstance(info, dict) else None
|
|
258
|
+
|
|
259
|
+
|
|
248
260
|
def _dispatch_view(
|
|
249
261
|
invocation: Invocation,
|
|
250
262
|
view_id: int,
|
|
@@ -262,7 +274,13 @@ def _dispatch_view(
|
|
|
262
274
|
result to emit. ``prepare(service, dataset_id, kwargs)`` may edit the call
|
|
263
275
|
arguments in place; when it returns a value, that value is emitted and no
|
|
264
276
|
call is made. All three need the exact parent; without one they are skipped.
|
|
277
|
+
|
|
278
|
+
When neither ``before`` nor ``after`` is given (every plain transform),
|
|
279
|
+
the view's row count is read before and after the call and added to the
|
|
280
|
+
result as ``row_check``, so a caller always sees whether the write changed
|
|
281
|
+
the row count -- the join path builds its own richer ``join_check`` instead.
|
|
265
282
|
"""
|
|
283
|
+
auto_row_check = before is None and after is None
|
|
266
284
|
# ``dataset_id`` is invocation-local resource context. It is not a View
|
|
267
285
|
# transform argument, but passing it through lets the service fetch the
|
|
268
286
|
# exact parent endpoint and prevents the SDK's legacy bare-view resolver
|
|
@@ -287,6 +305,11 @@ def _dispatch_view(
|
|
|
287
305
|
if early is not None:
|
|
288
306
|
return early, _meta(invocation, auth.workspace_id)
|
|
289
307
|
state = before(service, int(dataset_id)) if before and dataset_id is not None else None
|
|
308
|
+
rows_before = (
|
|
309
|
+
_view_row_count(service, int(dataset_id), view_id, invocation.project)
|
|
310
|
+
if auto_row_check and dataset_id is not None
|
|
311
|
+
else None
|
|
312
|
+
)
|
|
290
313
|
try:
|
|
291
314
|
if dataset_id is None:
|
|
292
315
|
_require_discovery_allowed(invocation, view_id)
|
|
@@ -306,6 +329,9 @@ def _dispatch_view(
|
|
|
306
329
|
)
|
|
307
330
|
if after is not None and dataset_id is not None:
|
|
308
331
|
data = after(service, int(dataset_id), state, data)
|
|
332
|
+
elif auto_row_check and dataset_id is not None and isinstance(data, dict):
|
|
333
|
+
rows_after = _view_row_count(service, int(dataset_id), view_id, invocation.project)
|
|
334
|
+
data["row_check"] = {"rows_before": rows_before, "rows_after": rows_after}
|
|
309
335
|
return data, _meta(invocation, auth.workspace_id)
|
|
310
336
|
|
|
311
337
|
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"""Automatic write read-back for every real, non-read API-backed command.
|
|
2
|
+
|
|
3
|
+
A backend write returns whatever shape that particular endpoint returns —
|
|
4
|
+
some carry ``has_error``, some a bare ``status``, some a pipeline job with its
|
|
5
|
+
own nested ``status``. :func:`with_verify` reads those backend-specific
|
|
6
|
+
signals once and adds one small, uniform ``verify`` block to the result, so
|
|
7
|
+
the agent that issued the write always has an explicit answer to "did this do
|
|
8
|
+
what it should" instead of re-deriving it per command.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from __future__ import annotations
|
|
12
|
+
|
|
13
|
+
from typing import Any
|
|
14
|
+
|
|
15
|
+
#: Below this share of matched rows, a join has enough misses to flag before
|
|
16
|
+
#: the caller builds anything further on it.
|
|
17
|
+
JOIN_MATCH_RATE_THRESHOLD = 0.8
|
|
18
|
+
|
|
19
|
+
_FAILURE_STATUSES = frozenset({"error", "failed", "failure"})
|
|
20
|
+
_FAILURE_PIPELINE_STATES = frozenset({"error", "ref_error"})
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def with_verify(data: Any) -> Any:
|
|
24
|
+
"""Return ``data`` with a ``verify`` read-back block added.
|
|
25
|
+
|
|
26
|
+
``data`` that is not a dict (a dry-run report, a bare list, ...) is
|
|
27
|
+
returned unchanged.
|
|
28
|
+
"""
|
|
29
|
+
if not isinstance(data, dict):
|
|
30
|
+
return data
|
|
31
|
+
verified = _verified(data)
|
|
32
|
+
state = _state(data)
|
|
33
|
+
rows_before, rows_after = _row_counts(data)
|
|
34
|
+
verify: dict[str, Any] = {"verified": verified, "state": state}
|
|
35
|
+
if rows_before is not None or rows_after is not None:
|
|
36
|
+
verify["rows_before"] = rows_before
|
|
37
|
+
verify["rows_after"] = rows_after
|
|
38
|
+
verify["warnings"] = _warnings(data)
|
|
39
|
+
verify["needs_user"] = _needs_user(
|
|
40
|
+
data, verified=verified, state=state, rows_before=rows_before, rows_after=rows_after
|
|
41
|
+
)
|
|
42
|
+
return {**data, "verify": verify}
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def _job_status(data: dict[str, Any]) -> str | None:
|
|
46
|
+
job = data.get("job")
|
|
47
|
+
status = job.get("status") if isinstance(job, dict) else None
|
|
48
|
+
return status if isinstance(status, str) else None
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def _verified(data: dict[str, Any]) -> bool:
|
|
52
|
+
if data.get("has_error"):
|
|
53
|
+
return False
|
|
54
|
+
for status in (data.get("status"), _job_status(data)):
|
|
55
|
+
if isinstance(status, str) and status.lower() in _FAILURE_STATUSES:
|
|
56
|
+
return False
|
|
57
|
+
pipeline_state = data.get("pipeline_state")
|
|
58
|
+
if isinstance(pipeline_state, str) and pipeline_state.lower() in _FAILURE_PIPELINE_STATES:
|
|
59
|
+
return False
|
|
60
|
+
return data.get("bake_ok") is not False
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def _state(data: dict[str, Any]) -> str:
|
|
64
|
+
for key in ("pipeline_state", "status"):
|
|
65
|
+
value = data.get(key)
|
|
66
|
+
if value is not None:
|
|
67
|
+
return str(value)
|
|
68
|
+
return "done"
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
def _row_counts(data: dict[str, Any]) -> tuple[int | None, int | None]:
|
|
72
|
+
for key in ("row_check", "join_check"):
|
|
73
|
+
check = data.get(key)
|
|
74
|
+
if isinstance(check, dict):
|
|
75
|
+
return check.get("rows_before"), check.get("rows_after")
|
|
76
|
+
return None, None
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
def _warnings(data: dict[str, Any]) -> list[str]:
|
|
80
|
+
notes: list[str] = []
|
|
81
|
+
for key, value in data.items():
|
|
82
|
+
if not key.endswith("_check") or not isinstance(value, dict):
|
|
83
|
+
continue
|
|
84
|
+
for list_key in ("notes", "warnings"):
|
|
85
|
+
items = value.get(list_key)
|
|
86
|
+
if isinstance(items, list):
|
|
87
|
+
notes.extend(item if isinstance(item, str) else str(item) for item in items)
|
|
88
|
+
return notes
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
def _needs_user(
|
|
92
|
+
data: dict[str, Any],
|
|
93
|
+
*,
|
|
94
|
+
verified: bool,
|
|
95
|
+
state: str,
|
|
96
|
+
rows_before: int | None,
|
|
97
|
+
rows_after: int | None,
|
|
98
|
+
) -> str | None:
|
|
99
|
+
if not verified:
|
|
100
|
+
return f"The change failed: {state}."
|
|
101
|
+
if rows_after == 0 and isinstance(rows_before, int) and rows_before > 0:
|
|
102
|
+
return f"The change left the view with no rows (was {rows_before})."
|
|
103
|
+
join_check = data.get("join_check")
|
|
104
|
+
match_rate = join_check.get("match_rate") if isinstance(join_check, dict) else None
|
|
105
|
+
if isinstance(match_rate, (int, float)) and match_rate < JOIN_MATCH_RATE_THRESHOLD:
|
|
106
|
+
percent = round(match_rate * 100)
|
|
107
|
+
return (
|
|
108
|
+
f"Only {percent}% of rows found a match in the join; the user should "
|
|
109
|
+
"confirm before building on it."
|
|
110
|
+
)
|
|
111
|
+
return None
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/input.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mammoth_cli-2.0.71 → mammoth_cli-2.0.72}/mammoth_cli/bundled_skill/mammoth-cli/references/safety.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|