mammoth-cli 2.0.15__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.
Files changed (210) hide show
  1. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/PKG-INFO +2 -2
  2. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/__init__.py +1 -1
  3. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities.md +63 -67
  4. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/batch.md +1 -1
  5. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view.md +4 -4
  6. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/transforms.md +6 -2
  7. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/schema.py +18 -1
  8. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/view.py +16 -2
  9. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/services/input_fields.py +12 -1
  10. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/pyproject.toml +2 -2
  11. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/batch.yaml +2 -2
  12. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/view.yaml +7 -4
  13. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/sdk-methods.yaml +1 -1
  14. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/.gitignore +0 -0
  15. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/LICENSE +0 -0
  16. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/README.md +0 -0
  17. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/__main__.py +0 -0
  18. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/app.py +0 -0
  19. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/SKILL.md +0 -0
  20. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.md +0 -0
  21. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/command-index.md +0 -0
  22. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/activity.md +0 -0
  23. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/addon.md +0 -0
  24. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/agent.md +0 -0
  25. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/ai.md +0 -0
  26. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/annotation.md +0 -0
  27. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/auth.md +0 -0
  28. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/automation.md +0 -0
  29. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/billing.md +0 -0
  30. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/browse.md +0 -0
  31. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/capability.md +0 -0
  32. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/client-app.md +0 -0
  33. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/completion.md +0 -0
  34. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/config.md +0 -0
  35. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/connector.md +0 -0
  36. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/context.md +0 -0
  37. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard.md +0 -0
  38. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/data-app.md +0 -0
  39. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dataset.md +0 -0
  40. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/doctor.md +0 -0
  41. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/external-key.md +0 -0
  42. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/file.md +0 -0
  43. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/folder.md +0 -0
  44. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/job.md +0 -0
  45. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/notification.md +0 -0
  46. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/parameter.md +0 -0
  47. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/project.md +0 -0
  48. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/report.md +0 -0
  49. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schedule.md +0 -0
  50. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schema.md +0 -0
  51. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/skill.md +0 -0
  52. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/snippet.md +0 -0
  53. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/support.md +0 -0
  54. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/template.md +0 -0
  55. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/trash.md +0 -0
  56. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/upgrade.md +0 -0
  57. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/user.md +0 -0
  58. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/version.md +0 -0
  59. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/webhook.md +0 -0
  60. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workflow.md +0 -0
  61. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workspace.md +0 -0
  62. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/handoff.md +0 -0
  63. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/input.md +0 -0
  64. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/jobs-drafts.md +0 -0
  65. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/machine-output.md +0 -0
  66. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/operations.md +0 -0
  67. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/auth-scope.md +0 -0
  68. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/cleanup.md +0 -0
  69. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/dashboards.md +0 -0
  70. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/exports.md +0 -0
  71. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/index.md +0 -0
  72. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/need-action.md +0 -0
  73. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/resources.md +0 -0
  74. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/typed-etl-discovery.md +0 -0
  75. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/recovery.md +0 -0
  76. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/retention.md +0 -0
  77. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/safety.md +0 -0
  78. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/bundled_skill/mammoth-cli/references/task-start.md +0 -0
  79. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/__init__.py +0 -0
  80. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/activity.py +0 -0
  81. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/addon.py +0 -0
  82. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/agent.py +0 -0
  83. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/ai.py +0 -0
  84. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/annotation.py +0 -0
  85. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/auth.py +0 -0
  86. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/automation.py +0 -0
  87. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/batch.py +0 -0
  88. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/billing.py +0 -0
  89. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/browse.py +0 -0
  90. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/capability.py +0 -0
  91. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/client_app.py +0 -0
  92. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/completion.py +0 -0
  93. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/config.py +0 -0
  94. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/connector.py +0 -0
  95. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/context.py +0 -0
  96. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/dashboard.py +0 -0
  97. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/data_app.py +0 -0
  98. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/dataset.py +0 -0
  99. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/doctor.py +0 -0
  100. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/external_key.py +0 -0
  101. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/file.py +0 -0
  102. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/folder.py +0 -0
  103. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/job.py +0 -0
  104. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/notification.py +0 -0
  105. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/parameter.py +0 -0
  106. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/project.py +0 -0
  107. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/registry.py +0 -0
  108. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/report.py +0 -0
  109. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/schedule.py +0 -0
  110. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/skill.py +0 -0
  111. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/snippet.py +0 -0
  112. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/support.py +0 -0
  113. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/template.py +0 -0
  114. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/trash.py +0 -0
  115. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/upgrade.py +0 -0
  116. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/user.py +0 -0
  117. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/view_ops.py +0 -0
  118. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/webhook.py +0 -0
  119. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/workflow.py +0 -0
  120. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/commands/workspace.py +0 -0
  121. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/context/__init__.py +0 -0
  122. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/context/credentials.py +0 -0
  123. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/context/endpoint.py +0 -0
  124. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/context/profiles.py +0 -0
  125. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/context/resolver.py +0 -0
  126. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/contracts/__init__.py +0 -0
  127. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/contracts/auth.py +0 -0
  128. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/errors/__init__.py +0 -0
  129. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/errors/envelope.py +0 -0
  130. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/manifest/__init__.py +0 -0
  131. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/manifest/loader.py +0 -0
  132. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/messages/__init__.py +0 -0
  133. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/output/__init__.py +0 -0
  134. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/output/envelope.py +0 -0
  135. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/output/normalize.py +0 -0
  136. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/output/policy.py +0 -0
  137. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/output/progress.py +0 -0
  138. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/output/render.py +0 -0
  139. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/py.typed +0 -0
  140. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/runtime/__init__.py +0 -0
  141. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/runtime/confirm.py +0 -0
  142. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/runtime/executor.py +0 -0
  143. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/runtime/input_loader.py +0 -0
  144. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/runtime/invocation.py +0 -0
  145. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/runtime/options.py +0 -0
  146. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/runtime/session.py +0 -0
  147. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/runtime/strict.py +0 -0
  148. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/runtime/validate.py +0 -0
  149. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/services/__init__.py +0 -0
  150. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/services/argspec.py +0 -0
  151. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/services/coerce.py +0 -0
  152. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/services/command_contract.py +0 -0
  153. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/services/conditions.py +0 -0
  154. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/services/dispatch.py +0 -0
  155. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/services/factory.py +0 -0
  156. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/services/mapping.py +0 -0
  157. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/services/openapi_types.py +0 -0
  158. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/services/positionals.py +0 -0
  159. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/services/protocol.py +0 -0
  160. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/services/sdk_service.py +0 -0
  161. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/services/testing.py +0 -0
  162. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/services/type_system.py +0 -0
  163. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/skills/__init__.py +0 -0
  164. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/skills/installer.py +0 -0
  165. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/mammoth_cli/testing.py +0 -0
  166. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/activity.yaml +0 -0
  167. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/addon.yaml +0 -0
  168. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/agent.yaml +0 -0
  169. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/ai.yaml +0 -0
  170. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/annotation.yaml +0 -0
  171. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/auth.yaml +0 -0
  172. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/automation.yaml +0 -0
  173. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/billing.yaml +0 -0
  174. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/browse.yaml +0 -0
  175. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/capability.yaml +0 -0
  176. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/client-app.yaml +0 -0
  177. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/completion.yaml +0 -0
  178. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/config.yaml +0 -0
  179. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/connector.yaml +0 -0
  180. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/context.yaml +0 -0
  181. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/dashboard.yaml +0 -0
  182. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/data-app.yaml +0 -0
  183. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/dataset.yaml +0 -0
  184. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/doctor.yaml +0 -0
  185. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/external-key.yaml +0 -0
  186. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/file.yaml +0 -0
  187. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/folder.yaml +0 -0
  188. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/job.yaml +0 -0
  189. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/notification.yaml +0 -0
  190. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/parameter.yaml +0 -0
  191. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/project.yaml +0 -0
  192. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/report.yaml +0 -0
  193. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/schedule.yaml +0 -0
  194. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/schema.yaml +0 -0
  195. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/skill.yaml +0 -0
  196. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/snippet.yaml +0 -0
  197. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/support.yaml +0 -0
  198. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/template.yaml +0 -0
  199. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/trash.yaml +0 -0
  200. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/upgrade.yaml +0 -0
  201. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/user.yaml +0 -0
  202. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/version.yaml +0 -0
  203. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/webhook.yaml +0 -0
  204. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/workflow.yaml +0 -0
  205. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/commands/workspace.yaml +0 -0
  206. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/openapi-operations.yaml +0 -0
  207. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/schema-v1.json +0 -0
  208. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/manifests/sdk-catalog.source.yaml +0 -0
  209. {mammoth_cli-2.0.15 → mammoth_cli-2.0.16}/spec/openapi/metadata.json +0 -0
  210. {mammoth_cli-2.0.15 → 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.15
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.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
@@ -6,7 +6,7 @@ not implement a second HTTP client and does not call private SDK members.
6
6
 
7
7
  from __future__ import annotations
8
8
 
9
- __version__ = "2.0.15"
9
+ __version__ = "2.0.16"
10
10
 
11
11
  # The versioned machine output envelope contract.
12
12
  SCHEMA_VERSION = 1
@@ -1,7 +1,7 @@
1
1
  # What is proven on release
2
2
 
3
3
  Generated from `docs/release-capability-matrix.json`; do not edit by hand.
4
- 455 API operations have a CLI command. 193 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.
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
5
 
6
6
  Status meanings:
7
7
 
@@ -17,27 +17,27 @@ The typed `view transform *` commands all submit through `view.task.add`; its ro
17
17
 
18
18
  | Family | Commands | Verified | Not supported | Untried |
19
19
  |---|---|---|---|---|
20
- | `dashboard` | 104 | 80 | 2 | 22 |
21
- | `view` | 62 | 43 | 0 | 19 |
22
- | `support` | 45 | 0 | 0 | 45 |
23
- | `billing` | 23 | 0 | 0 | 23 |
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
24
  | `connector` | 22 | 2 | 0 | 20 |
25
- | `workspace` | 19 | 6 | 0 | 13 |
26
- | `project` | 17 | 11 | 0 | 6 |
25
+ | `workspace` | 19 | 7 | 0 | 12 |
26
+ | `project` | 17 | 15 | 0 | 2 |
27
27
  | `workflow` | 16 | 5 | 0 | 11 |
28
- | `dataset` | 15 | 10 | 0 | 5 |
28
+ | `dataset` | 15 | 12 | 0 | 3 |
29
29
  | `parameter` | 14 | 2 | 0 | 12 |
30
30
  | `data-app` | 12 | 1 | 0 | 11 |
31
- | `folder` | 8 | 7 | 0 | 1 |
31
+ | `folder` | 8 | 8 | 0 | 0 |
32
32
  | `snippet` | 8 | 1 | 0 | 7 |
33
33
  | `automation` | 7 | 1 | 0 | 6 |
34
- | `user` | 7 | 2 | 0 | 5 |
34
+ | `user` | 7 | 3 | 0 | 4 |
35
35
  | `webhook` | 7 | 0 | 0 | 7 |
36
36
  | `addon` | 6 | 0 | 0 | 6 |
37
- | `batch` | 6 | 4 | 0 | 2 |
37
+ | `batch` | 6 | 5 | 0 | 1 |
38
38
  | `file` | 6 | 5 | 0 | 1 |
39
39
  | `agent` | 5 | 1 | 0 | 4 |
40
- | `ai` | 5 | 1 | 0 | 4 |
40
+ | `ai` | 5 | 2 | 0 | 3 |
41
41
  | `annotation` | 5 | 1 | 0 | 4 |
42
42
  | `client-app` | 5 | 0 | 0 | 5 |
43
43
  | `notification` | 5 | 1 | 0 | 4 |
@@ -64,14 +64,13 @@ Verified: `agent.session.list`
64
64
 
65
65
  ## `ai`
66
66
 
67
- Verified: `ai.condition.generate`
67
+ Verified: `ai.condition.generate`, `ai.expression.generate`
68
68
 
69
69
  | Command | State | Note |
70
70
  |---|---|---|
71
- | `ai.retention.condition` | observed blocker | backend_error: HTTP 403 4PERM001 PERMISSION_UNDEFINED: "Permissions have not been set correctly for this API, please contact Mammoth Help to report this error" on POST /workspaces/ |
72
- | `ai.expression.generate` | CLI defect fixed, untried since | 2.0.15 (SDK-side argument rejections (e.g. mode not math/metric) surface as invalid_arguments with the SDK message instead of an empty api_error) |
73
- | `ai.sql.generate` | CLI defect fixed, untried since | 2.0.15 (dataset_id is required and sent as the query parameter |
74
- | `ai.suggestion.list` | CLI defect fixed, untried since | 2.0.15 (command takes the release UnifiedPromptSpec (suggestion_type + params, optional dataset_id/dataview_id)) |
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 |
75
74
 
76
75
  ## `annotation`
77
76
 
@@ -83,12 +82,24 @@ Verified: `automation.list`
83
82
 
84
83
  ## `batch`
85
84
 
86
- Verified: `batch.bulk-delete`, `batch.delete`, `batch.get`, `batch.list`
85
+ Verified: `batch.bulk-delete`, `batch.delete`, `batch.get`, `batch.list`, `batch.update`
87
86
 
88
87
  | Command | State | Note |
89
88
  |---|---|---|
90
- | `batch.create` | CLI defect fixed, untried since | 2.0.15 (mapping is sent as the release list of {source_c_name,destination_c_name} items and body keys match BatchesPostRequest) |
91
- | `batch.update` | CLI defect fixed, untried since | 2.0.15 (SDK-side argument rejections (patch ops must be replace/remove) surface as invalid_arguments with the SDK message instead of an empty api_error) |
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 |
92
103
 
93
104
  ## `browse`
94
105
 
@@ -99,6 +110,12 @@ Verified: `browse.project`, `browse.workspace`
99
110
  | `browse.folder` | observed blocker | cli_error: rejects folder id 0 although folder.root reports id 0 as the root |
100
111
  | `browse.root` | observed blocker | server_error: see sweep report |
101
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
+
102
119
  ## `connector`
103
120
 
104
121
  Verified: `connector.active`, `connector.list`
@@ -108,12 +125,12 @@ Verified: `connector.active`, `connector.list`
108
125
  | `connector.ai.session.list` | observed blocker | cli_error: backend returned HTTP 200 but the CLI raised api_error (envelope mismatch) |
109
126
  | `connector.connection.list` | observed blocker | server_error: see sweep report |
110
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 |
111
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 |
112
- | `connector.query.generate` | CLI defect fixed, untried since | 2.0.15 (input field is query (release Intent body) instead of prompt) |
113
130
 
114
131
  ## `dashboard`
115
132
 
116
- 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.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`
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`
117
134
 
118
135
  | Command | State | Note |
119
136
  |---|---|---|
@@ -122,18 +139,17 @@ Verified: `dashboard.action`, `dashboard.analytics`, `dashboard.archive`, `dashb
122
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 |
123
140
  | `dashboard.data.published` | observed blocker | blocked_missing_fixture: Same as dashboard.data.draft: backend_code 4DASH004 DASHBOARD_WRONG_ENGINE on /dashboards/56/getPublishData |
124
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 |
125
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 |
126
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 |
127
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) |
128
146
  | `dashboard.source.list` | observed blocker | blocker; still broken, not one of the 11 CLI-fixed commands |
129
- | `dashboard.template.create` | observed blocker | backend_error: Both attempts (2/2) returned the same outcome_unknown envelope: {"error":{"code":"outcome_unknown","details":{"endpoint":"/dashboards/v3/templates","method":"POST"," |
147
+ | `dashboard.template.create` | observed blocker | backend: POST /dashboards/v3/templates -> HTTP 500, empty response_body, request_id:null, code:outcome_unknown |
130
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) |
131
149
  | `dashboard.templates.use` | observed blocker | skipped_out_of_scope: BRIEF instructs running templates.use "on that template" (i.e |
132
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 |
133
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 |
134
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 |
135
- | `dashboard.og-card` | CLI defect fixed, untried since | SDK 0.7.5 returns a described binary body |
136
- | `dashboard.published.data` | CLI defect fixed, untried since | 2.0.15 (published-dashboard jobs are polled through the URL-scoped job route) |
137
153
 
138
154
  ## `data-app`
139
155
 
@@ -141,14 +157,12 @@ Verified: `data-app.list`
141
157
 
142
158
  ## `dataset`
143
159
 
144
- Verified: `dataset.batch-data`, `dataset.create`, `dataset.data`, `dataset.delete`, `dataset.file-settings.get`, `dataset.file-settings.update`, `dataset.get`, `dataset.list`, `dataset.restore`, `dataset.trash`
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`
145
161
 
146
162
  | Command | State | Note |
147
163
  |---|---|---|
148
164
  | `dataset.bulk-update` | observed blocker | cli_error: Schema preconditions already flag this as BLOCKED[B07 DATASET_PATCH_UNTYPED]; reserved, not registered -- confirmed live |
149
- | `dataset.create-from-pdf` | observed blocker | backend_error: Attempt 1 (file_name only) -> HTTP 400 4DSET053 MUST_PROVIDE_TABLE_LIST_OR_PREVIEW: "Either 'table_list' or 'is_preview_needed' must be provided." (clear, actionable |
150
- | `dataset.bulk-delete` | CLI defect fixed, untried since | 2.0.15 (dataset_ids is required, confirmation names the ids, and ids are sent as the ids query parameter) |
151
- | `dataset.file-settings.undo` | CLI defect fixed, untried since | 2.0.15 (2xx non-object bodies are reported as success instead of outcome_unknown) |
165
+ | `dataset.create-from-pdf` | observed blocker | backend: POST /workspaces/4/projects/24/datasets-from-pdf |
152
166
 
153
167
  ## `external-key`
154
168
 
@@ -166,11 +180,7 @@ Verified: `file.bulk-delete`, `file.delete`, `file.get`, `file.list`, `file.uplo
166
180
 
167
181
  ## `folder`
168
182
 
169
- Verified: `folder.bulk-delete`, `folder.create`, `folder.delete`, `folder.get`, `folder.list`, `folder.trash`, `folder.update`
170
-
171
- | Command | State | Note |
172
- |---|---|---|
173
- | `folder.move` | CLI defect fixed, untried since | 2.0.15 (SDK now sends {patch:[{op:move,from:[ids],path:destination/root}]}) |
183
+ Verified: `folder.bulk-delete`, `folder.create`, `folder.delete`, `folder.get`, `folder.list`, `folder.move`, `folder.trash`, `folder.update`
174
184
 
175
185
  ## `job`
176
186
 
@@ -186,15 +196,11 @@ Verified: `parameter.group.list`, `parameter.list`
186
196
 
187
197
  ## `project`
188
198
 
189
- Verified: `project.bulk-delete`, `project.checkpoint.list`, `project.create`, `project.data-check.list`, `project.list`, `project.pending-changes`, `project.publish-credentials`, `project.resource-dependencies`, `project.resource-dependencies.update`, `project.resource-status`, `project.sample-flow`
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`
190
200
 
191
201
  | Command | State | Note |
192
202
  |---|---|---|
193
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) |
194
- | `project.bulk-update` | CLI defect fixed, untried since | 2.0.15 (body must be a ProjectsPatch naming project_id in every value item and the confirmation lists those projects) |
195
- | `project.delete` | CLI defect fixed, untried since | 2.0.15 (2xx non-object bodies such as 202 Accepted are reported as success instead of outcome_unknown) |
196
- | `project.update` | CLI defect fixed, untried since | 2.0.15 (SDK now sends the release ProjectPatch {patches:[{op:replace,path:name/properties,...}]} body) |
197
- | `project.user.add` | CLI defect fixed, untried since | 2.0.15 (SDK now sends {users:[{user_id,role}]} with numeric user ids) |
198
204
 
199
205
  ## `report`
200
206
 
@@ -204,12 +210,17 @@ Verified: `report.list`
204
210
 
205
211
  | Command | State | Note |
206
212
  |---|---|---|
207
- | `schedule.list` | observed blocker | validation_error: HTTP 400 with message 'Not implemented' |
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 |
208
215
 
209
216
  ## `snippet`
210
217
 
211
218
  Verified: `snippet.list`
212
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
+
213
224
  ## `template`
214
225
 
215
226
  | Command | State | Note |
@@ -222,36 +233,25 @@ Verified: `trash.add`, `trash.list`, `trash.restore`
222
233
 
223
234
  ## `user`
224
235
 
225
- Verified: `user.get`, `user.preference.get`
226
-
227
- | Command | State | Note |
228
- |---|---|---|
229
- | `user.preference.update` | CLI defect fixed, untried since | 2.0.15 (command takes the release {patch:[...]} list instead of free keyword fields) |
236
+ Verified: `user.get`, `user.preference.get`, `user.preference.update`
230
237
 
231
238
  ## `view`
232
239
 
233
- Verified: `view.active-user.list`, `view.active-user.mark`, `view.ai.generate-data`, `view.bulk-delete`, `view.checkpoint.create`, `view.checkpoint.list`, `view.conditional-format.list`, `view.conditional-format.update`, `view.create`, `view.data-check.create`, `view.data-check.get`, `view.data-check.list`, `view.data.get`, `view.data.query`, `view.delete`, `view.derivative.create`, `view.derivative.list`, `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.get`, `view.pipeline.items`, `view.pipeline.rerun`, `view.preview`, `view.restore`, `view.task.add`, `view.task.delete`, `view.task.get`, `view.task.list`, `view.trash`, `view.version.apply`, `view.version.delete`, `view.version.get`, `view.version.list`, `view.version.update`
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`
234
241
 
235
242
  | Command | State | Note |
236
243
  |---|---|---|
237
- | `view.ai.generation-info` | observed blocker | backend_error: HTTP 400 5GENR011 NOT_IMPLEMENTED: "Not implemented" -- matches known capabilities.md observed blocker for this route (backend-side, not CLI) |
238
- | `view.checkpoint.get` | observed blocker | backend_error: HTTP 500 on GET /workspaces/4/projects/21/datasets/48/dataviews/73/pipeline/checkpoints/1 with empty response_body:{}, reproduced twice (2s apart) right after checkp |
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): |
239
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 |
240
- | `view.data-check.update` | observed blocker | backend_error: PATCH .../pipeline/data-checks/1 -> HTTP 500, empty response_body, CLI correctly reported outcome_unknown (exit 7) rather than a false success |
241
- | `view.derivative.data` | observed blocker | backend_error: HTTP 500 on POST .../dataviews/73/derivatives/2/data, empty response_body |
242
- | `view.export.create` | observed blocker | cli_error: Both attempts return exit 0 with a job accepted (334, then 335 after adding target_properties.destination:local), but the job itself always fails: job get shows status:e |
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 |
243
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 |
244
- | `view.task.preview` | observed blocker | cli_error: Schema's own runnable_example (COPY:{}) fails: HTTP 400 5GENR010 UNKNOWN_ERROR "Unknown error occurred |
245
- | `view.ai.profile` | CLI defect fixed, untried since | 2.0.15 (SDK sends the release ProfileGenerationSpec {params:{action}} body (action defaults to insights)) |
246
- | `view.checkpoint.delete` | CLI defect fixed, untried since | 2.0.15 (2xx non-object bodies such as 202 Accepted are reported as success instead of outcome_unknown) |
247
- | `view.checkpoint.update` | CLI defect fixed, untried since | 2.0.15 (example now carries value:null as the backend requires |
248
- | `view.conditional-format.delete-all` | CLI defect fixed, untried since | 2.0.15 (rule_id is required and sent as the query parameter) |
249
- | `view.data-check.delete` | CLI defect fixed, untried since | 2.0.15 (2xx non-object bodies such as 202 Accepted are reported as success instead of outcome_unknown) |
250
- | `view.derivative.delete` | CLI defect fixed, untried since | 2.0.15 (2xx non-object bodies such as 202 Accepted are reported as success instead of outcome_unknown) |
251
- | `view.derivative.update` | CLI defect fixed, untried since | 2.0.15 (2xx non-object bodies such as 202 Accepted are reported as success instead of outcome_unknown) |
252
- | `view.export.publish-db-update` | CLI defect fixed, untried since | 2.0.15 (example now shows the only accepted patch path (credentials -> postgres/bigquery)) |
253
- | `view.pipeline.edit` | CLI defect fixed, untried since | 2.0.15 (example now shows a valid patch (path auto_run with a bool value) |
254
- | `view.task.update` | CLI defect fixed, untried since | 2.0.15 (SDK now sends {patches:[{op:replace,path:params,value:task_spec}]} (or caller-supplied patches)) |
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
255
 
256
256
  ## `webhook`
257
257
 
@@ -265,10 +265,6 @@ Verified: `workflow.graph`, `workflow.list`, `workflow.workspace-datasets`, `wor
265
265
 
266
266
  ## `workspace`
267
267
 
268
- Verified: `workspace.app-usage`, `workspace.get`, `workspace.list`, `workspace.segment.list`, `workspace.storage-breakdown`, `workspace.user.list`
269
-
270
- | Command | State | Note |
271
- |---|---|---|
272
- | `workspace.segment.update` | CLI defect fixed, untried since | 2.0.15 (2xx non-object bodies are reported as success instead of outcome_unknown |
268
+ Verified: `workspace.app-usage`, `workspace.get`, `workspace.list`, `workspace.segment.list`, `workspace.segment.update`, `workspace.storage-breakdown`, `workspace.user.list`
273
269
 
274
270
  Evidence version: CLI mammoth-cli 1.1.11; mammoth-io 0.7.1. Details: `docs/capability-evidence/` in the repository.
@@ -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": {"sample_key": "Status"}}' --output json --no-input`. Runnable only after resolving schema-required IDs and input from observed reads.
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
 
@@ -446,7 +446,7 @@ Expected success: `ViewExportPublishDbResult` in the standard JSON envelope; mut
446
446
 
447
447
  Run: `mammoth view export publish-db-update`. Exact input fields: `mammoth schema get view.export.publish-db-update --output json --no-input`.
448
448
 
449
- Example: `mammoth view export publish-db-update 123 --input '{"patch": [{"op": "replace", "path": "credentials", "value": "postgres"}]}' --output json --no-input`. Illustrative only: append `--yes` after observing an owned target.
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.
450
450
 
451
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.
452
452
 
@@ -612,7 +612,7 @@ Expected success: `ViewRestoreResult` in the standard JSON envelope; mutation `b
612
612
 
613
613
  Run: `mammoth view task add`. Exact input fields: `mammoth schema get view.task.add --output json --no-input`.
614
614
 
615
- 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.
616
616
 
617
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.
618
618
 
@@ -644,7 +644,7 @@ Expected success: `ViewTaskListResult` in the standard JSON envelope; mutation `
644
644
 
645
645
  Run: `mammoth view task preview`. Exact input fields: `mammoth schema get view.task.preview --output json --no-input`.
646
646
 
647
- 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.
648
648
 
649
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.
650
650
 
@@ -652,7 +652,7 @@ Expected success: `ViewTaskPreviewResult` in the standard JSON envelope; mutatio
652
652
 
653
653
  Run: `mammoth view task update`. Exact input fields: `mammoth schema get view.task.update --output json --no-input`.
654
654
 
655
- 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.
656
656
 
657
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.
658
658
 
@@ -81,8 +81,12 @@ free-form lists. Observed shapes:
81
81
  `reorder`, `null` for commands). Prefer `view draft *` for submit/discard.
82
82
  - `view task update VIEW_ID TASK_ID --input '{"dataset_id":DATASET_ID,"task_spec":{...}}'`
83
83
  sends `{"patches":[{"op":"replace","path":"params","value":task_spec}]}`;
84
- pass `patches` directly for other paths. `view task preview` needs the
85
- task's internal column names (`view columns`), not display names.
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.
86
90
  - `view checkpoint update` sends `{"patches":[{"op":"command","path":"approve","value":null}]}`;
87
91
  the release backend answered HTTP 500 to that shape, so treat checkpoint
88
92
  approval as unavailable until `checkpoint get` succeeds again.
@@ -452,8 +452,25 @@ def runnable_example(
452
452
  "view.task.update": ["mammoth", "view", "task", "update", "123", "123"],
453
453
  }
454
454
  if record["command_id"] in task_examples:
455
+ # COPY follows the backend param template (a list of SOURCE/AS items
456
+ # with VERSION 2); the former ``COPY: {}`` placeholder was rejected
457
+ # with backend code 720.
455
458
  task_input: dict[str, Any] = {
456
- "task_spec": {"DATAVIEW_ID": 123, "SEQUENCE_NUMBER": 1, "COPY": {}}
459
+ "task_spec": {
460
+ "DATAVIEW_ID": 123,
461
+ "SEQUENCE_NUMBER": 1,
462
+ "COPY": [
463
+ {
464
+ "SOURCE": "column_1",
465
+ "AS": {
466
+ "COLUMN": "Copy of column 1",
467
+ "TYPE": "TEXT",
468
+ "INTERNAL_NAME": "column_9",
469
+ },
470
+ }
471
+ ],
472
+ "VERSION": 2,
473
+ }
457
474
  }
458
475
  if record["command_id"] == "view.task.update":
459
476
  task_input["dataset_id"] = 456
@@ -625,14 +625,27 @@ def view_conditional_format_create(invocation: Invocation) -> HandlerResult:
625
625
 
626
626
 
627
627
  def view_conditional_format_delete_all(invocation: Invocation) -> HandlerResult:
628
- """Delete all conditional-format rules on a dataview. Prompt or ``--yes``."""
628
+ """Delete a conditional-format rule on a dataview. Prompt or ``--yes``.
629
+
630
+ The release route deletes one rule per call and requires ``rule_id`` as a
631
+ query parameter (``view conditional-format list`` shows the ids).
632
+ """
629
633
  project_id = require_project(invocation)
630
634
  dataview_id = _require_int_positional_at(invocation, 0, "view id")
631
635
  document = invocation.load_input() or {}
636
+ rule_id = document.get("rule_id")
637
+ if rule_id is None:
638
+ raise CliError(
639
+ code=CODE_MISSING_FIELD,
640
+ message="This command requires the 'rule_id' input field.",
641
+ exit_status=EXIT_USAGE,
642
+ hint="List rules with 'view conditional-format list VIEW_ID', then pass "
643
+ "--input '{\"rule_id\": ...}'.",
644
+ )
632
645
  enforce_confirmation(
633
646
  invocation,
634
647
  policy=POLICY_PROMPT_OR_YES,
635
- action=f"delete all conditional-format rules on view {dataview_id}",
648
+ action=f"delete conditional-format rule {rule_id} on view {dataview_id}",
636
649
  )
637
650
  with open_service(invocation) as (service, auth):
638
651
  dataset_id = _resolve_dataset_id(service, invocation, dataview_id, document)
@@ -640,6 +653,7 @@ def view_conditional_format_delete_all(invocation: Invocation) -> HandlerResult:
640
653
  _symbol(invocation),
641
654
  dataset_id=dataset_id,
642
655
  dataview_id=dataview_id,
656
+ rule_id=rule_id,
643
657
  project_id=project_id,
644
658
  )
645
659
  return data, _meta(invocation, auth.workspace_id, project_id)
@@ -204,7 +204,18 @@ _EXAMPLE_INPUT_HINTS: dict[str, dict[str, Any]] = {
204
204
  "patches": [{"op": "replace", "path": "auto_run", "value": True}],
205
205
  },
206
206
  "view.export.publish-db-update": {
207
- "patch": [{"op": "replace", "path": "credentials", "value": "postgres"}],
207
+ "patch": [{"op": "replace", "path": "credentials", "value": {"odbc_type": "postgres"}}],
208
+ },
209
+ # BatchesPostRequest: every ColumnNameMapping item carries the expected
210
+ # destination type; a bare {src: dst} map cannot satisfy the route.
211
+ "batch.create": {
212
+ "mapping": [
213
+ {
214
+ "source_c_name": "column_1",
215
+ "destination_c_name": "column_1",
216
+ "expected_destination_c_type": "TEXT",
217
+ }
218
+ ]
208
219
  },
209
220
  "view.checkpoint.update": {
210
221
  "body": {"patches": [{"op": "command", "path": "approve", "value": None}]},
@@ -1,13 +1,13 @@
1
1
  [project]
2
2
  name = "mammoth-cli"
3
- version = "2.0.15"
3
+ version = "2.0.16"
4
4
  description = "Command-line interface for the Mammoth Analytics platform"
5
5
  authors = [{name = "Mammoth Analytics", email = "support@mammoth.io"}]
6
6
  readme = "README.md"
7
7
  license = "LicenseRef-Proprietary"
8
8
  requires-python = ">=3.12,<3.15"
9
9
  dependencies = [
10
- "mammoth-io (>=0.7.7,<0.8)",
10
+ "mammoth-io (>=0.7.8,<0.8)",
11
11
  "typer (>=0.27,<0.28)",
12
12
  "rich (>=15,<16)",
13
13
  "platformdirs (>=4.10,<5)",
@@ -75,8 +75,8 @@ commands:
75
75
  required_fixture_guard: null
76
76
  secret_fields: []
77
77
  human_example: mammoth batch create DATASET_ID SOURCE_ID --help
78
- agent_example: 'mammoth batch create 123 123 --input ''{"mapping": {"sample_key": "Status"}}'' --output
79
- json --no-input'
78
+ agent_example: 'mammoth batch create 123 123 --input ''{"mapping": [{"source_c_name": "column_1", "destination_c_name":
79
+ "column_1", "expected_destination_c_type": "TEXT"}]}'' --output json --no-input'
80
80
  unit_tests:
81
81
  - UT-BATCH-CREATE
82
82
  contract_tests:
@@ -2499,7 +2499,7 @@ commands:
2499
2499
  secret_fields: []
2500
2500
  human_example: mammoth view export publish-db-update DATAVIEW_ID --help
2501
2501
  agent_example: 'mammoth view export publish-db-update 123 --input ''{"patch": [{"op": "replace", "path":
2502
- "credentials", "value": "postgres"}]}'' --output json --no-input'
2502
+ "credentials", "value": {"odbc_type": "postgres"}}]}'' --output json --no-input'
2503
2503
  unit_tests:
2504
2504
  - UT-VIEW-EXPORT-PUBLISH-DB-UPDATE
2505
2505
  contract_tests:
@@ -3394,7 +3394,8 @@ commands:
3394
3394
  secret_fields: []
3395
3395
  human_example: mammoth view task add DATAVIEW_ID --help
3396
3396
  agent_example: 'mammoth view task add 123 --input ''{"task_spec": {"DATAVIEW_ID": 123, "SEQUENCE_NUMBER":
3397
- 1, "COPY": {}}}'' --output json --no-input'
3397
+ 1, "COPY": [{"SOURCE": "column_1", "AS": {"COLUMN": "Copy of column 1", "TYPE": "TEXT", "INTERNAL_NAME":
3398
+ "column_9"}}], "VERSION": 2}}'' --output json --no-input'
3398
3399
  unit_tests:
3399
3400
  - UT-VIEW-TASK-ADD
3400
3401
  contract_tests:
@@ -3569,7 +3570,8 @@ commands:
3569
3570
  secret_fields: []
3570
3571
  human_example: mammoth view task preview DATAVIEW_ID --help
3571
3572
  agent_example: 'mammoth view task preview 123 --input ''{"task_spec": {"DATAVIEW_ID": 123, "SEQUENCE_NUMBER":
3572
- 1, "COPY": {}}}'' --output json --no-input'
3573
+ 1, "COPY": [{"SOURCE": "column_1", "AS": {"COLUMN": "Copy of column 1", "TYPE": "TEXT", "INTERNAL_NAME":
3574
+ "column_9"}}], "VERSION": 2}}'' --output json --no-input'
3573
3575
  unit_tests:
3574
3576
  - UT-VIEW-TASK-PREVIEW
3575
3577
  contract_tests:
@@ -3616,7 +3618,8 @@ commands:
3616
3618
  secret_fields: []
3617
3619
  human_example: mammoth view task update DATAVIEW_ID TASK_ID --help
3618
3620
  agent_example: 'mammoth view task update 123 123 --input ''{"task_spec": {"DATAVIEW_ID": 123, "SEQUENCE_NUMBER":
3619
- 1, "COPY": {}}, "dataset_id": 456}'' --output json --no-input'
3621
+ 1, "COPY": [{"SOURCE": "column_1", "AS": {"COLUMN": "Copy of column 1", "TYPE": "TEXT", "INTERNAL_NAME":
3622
+ "column_9"}}], "VERSION": 2}, "dataset_id": 456}'' --output json --no-input'
3620
3623
  unit_tests:
3621
3624
  - UT-VIEW-TASK-UPDATE
3622
3625
  contract_tests:
@@ -881,7 +881,7 @@ methods:
881
881
  reviewed_by: primary
882
882
  - sdk_symbol: mammoth.api.batches.BatchesAPI.create
883
883
  implementation_origin: mammoth.api.batches.BatchesAPI.create
884
- signature: 'create(self, dataset_id: ''int'', source_id: ''int'', mapping: ''dict[str, str] | _list[dict[str, Any]]'', project_id: ''int | None'' = None, new_ds_params: ''dict[str, Any] | None'' = None, is_validation_required: ''bool | None'' = None, change_map: ''dict[str, Any] | None'' = None, delete_source_ds: ''bool'' = False) -> ''dict[str, Any]'''
884
+ signature: 'create(self, dataset_id: ''int'', source_id: ''int'', mapping: ''dict[str, str] | _list[dict[str, Any]]'', project_id: ''int | None'' = None, new_ds_params: ''dict[str, Any] | None'' = None, is_validation_required: ''bool | None'' = None, change_map: ''dict[str, Any] | None'' = None, delete_source_ds: ''bool'' = False, expected_destination_c_type: ''str'' = ''TEXT'') -> ''dict[str, Any]'''
885
885
  openapi_operation_ids: []
886
886
  canonical_command: batch.create
887
887
  alias_of: null
File without changes
File without changes
File without changes