mammoth-cli 2.2.73__tar.gz → 2.2.74__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 (277) hide show
  1. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/PKG-INFO +3 -2
  2. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/__init__.py +1 -1
  3. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/app.py +7 -1
  4. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view.md +1 -1
  5. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/task-start.md +1 -1
  6. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/schema.py +5 -1
  7. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/view.py +53 -2
  8. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/context/resolver.py +28 -4
  9. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/errors/envelope.py +13 -13
  10. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/runtime/invocation.py +3 -0
  11. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/runtime/state.py +1 -0
  12. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/sdk_service.py +2 -0
  13. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/skills/steering.py +4 -3
  14. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/pyproject.toml +3 -3
  15. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/project.yaml +1 -1
  16. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/view.yaml +1 -1
  17. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/.gitignore +0 -0
  18. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/LICENSE +0 -0
  19. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/README.md +0 -0
  20. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/__main__.py +0 -0
  21. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/SKILL.md +0 -0
  22. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/about-mammoth.md +0 -0
  23. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.md +0 -0
  24. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities-misc.md +0 -0
  25. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities.md +0 -0
  26. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/command-index.md +0 -0
  27. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/activity.md +0 -0
  28. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/addon.md +0 -0
  29. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/agent.md +0 -0
  30. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/ai.md +0 -0
  31. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/annotation.md +0 -0
  32. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/auth.md +0 -0
  33. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/automation.md +0 -0
  34. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/batch.md +0 -0
  35. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/billing.md +0 -0
  36. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/browse.md +0 -0
  37. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/calc.md +0 -0
  38. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/capability.md +0 -0
  39. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/client-app.md +0 -0
  40. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/completion.md +0 -0
  41. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/config.md +0 -0
  42. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/connector.md +0 -0
  43. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/context.md +0 -0
  44. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-qa.md +0 -0
  45. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-style.md +0 -0
  46. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-template.md +0 -0
  47. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard.md +0 -0
  48. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/data-app.md +0 -0
  49. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dataset.md +0 -0
  50. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/doctor.md +0 -0
  51. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/external-key.md +0 -0
  52. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/file.md +0 -0
  53. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/folder.md +0 -0
  54. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/job.md +0 -0
  55. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/link.md +0 -0
  56. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/log.md +0 -0
  57. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/notification.md +0 -0
  58. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/parameter.md +0 -0
  59. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/project.md +0 -0
  60. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/report.md +0 -0
  61. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/resolve.md +0 -0
  62. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schedule.md +0 -0
  63. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schema.md +0 -0
  64. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/skill.md +0 -0
  65. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/snippet.md +0 -0
  66. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/support.md +0 -0
  67. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/template.md +0 -0
  68. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/token.md +0 -0
  69. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/trash.md +0 -0
  70. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/upgrade.md +0 -0
  71. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/user.md +0 -0
  72. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/version.md +0 -0
  73. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view-transform.md +0 -0
  74. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/webhook.md +0 -0
  75. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workflow.md +0 -0
  76. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workspace.md +0 -0
  77. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/handoff.md +0 -0
  78. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/input.md +0 -0
  79. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/jobs-drafts.md +0 -0
  80. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/machine-output.md +0 -0
  81. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/operations.md +0 -0
  82. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/auth-scope.md +0 -0
  83. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/build-an-agent.md +0 -0
  84. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/cleanup.md +0 -0
  85. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/dashboards.md +0 -0
  86. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/database-import.md +0 -0
  87. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/end-to-end.md +0 -0
  88. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/exports.md +0 -0
  89. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/file-import.md +0 -0
  90. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/index.md +0 -0
  91. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/need-action.md +0 -0
  92. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/resources.md +0 -0
  93. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/rest-api-import.md +0 -0
  94. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/scheduling.md +0 -0
  95. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/transforms.md +0 -0
  96. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/typed-etl-discovery.md +0 -0
  97. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/recovery.md +0 -0
  98. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/report-checklist.md +0 -0
  99. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/retention.md +0 -0
  100. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/bundled_skill/mammoth-cli/references/safety.md +0 -0
  101. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/__init__.py +0 -0
  102. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/_lazy.py +0 -0
  103. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/activity.py +0 -0
  104. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/addon.py +0 -0
  105. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/agent.py +0 -0
  106. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/ai.py +0 -0
  107. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/annotation.py +0 -0
  108. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/auth.py +0 -0
  109. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/automation.py +0 -0
  110. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/batch.py +0 -0
  111. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/billing.py +0 -0
  112. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/browse.py +0 -0
  113. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/calc.py +0 -0
  114. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/capability.py +0 -0
  115. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/client_app.py +0 -0
  116. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/completion.py +0 -0
  117. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/config.py +0 -0
  118. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/connector.py +0 -0
  119. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/context.py +0 -0
  120. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/dashboard.py +0 -0
  121. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/data_app.py +0 -0
  122. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/dataset.py +0 -0
  123. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/doctor.py +0 -0
  124. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/external_key.py +0 -0
  125. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/file.py +0 -0
  126. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/folder.py +0 -0
  127. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/help_summaries.json +0 -0
  128. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/job.py +0 -0
  129. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/link.py +0 -0
  130. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/notification.py +0 -0
  131. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/parameter.py +0 -0
  132. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/project.py +0 -0
  133. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/registry.py +0 -0
  134. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/report.py +0 -0
  135. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/resolve.py +0 -0
  136. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/schedule.py +0 -0
  137. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/skill.py +0 -0
  138. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/snippet.py +0 -0
  139. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/support.py +0 -0
  140. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/template.py +0 -0
  141. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/trash.py +0 -0
  142. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/upgrade.py +0 -0
  143. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/user.py +0 -0
  144. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/view_ops.py +0 -0
  145. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/view_profile.py +0 -0
  146. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/webhook.py +0 -0
  147. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/workflow.py +0 -0
  148. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/commands/workspace.py +0 -0
  149. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/context/__init__.py +0 -0
  150. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/context/credentials.py +0 -0
  151. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/context/endpoint.py +0 -0
  152. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/context/keyring_backend.py +0 -0
  153. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/context/oauth.py +0 -0
  154. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/context/profiles.py +0 -0
  155. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/contracts/__init__.py +0 -0
  156. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/contracts/auth.py +0 -0
  157. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/embed.py +0 -0
  158. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/errors/__init__.py +0 -0
  159. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/manifest/__init__.py +0 -0
  160. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/manifest/loader.py +0 -0
  161. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/messages/__init__.py +0 -0
  162. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/output/__init__.py +0 -0
  163. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/output/envelope.py +0 -0
  164. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/output/normalize.py +0 -0
  165. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/output/policy.py +0 -0
  166. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/output/progress.py +0 -0
  167. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/output/render.py +0 -0
  168. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/py.typed +0 -0
  169. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/runtime/__init__.py +0 -0
  170. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/runtime/confirm.py +0 -0
  171. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/runtime/dataset_health.py +0 -0
  172. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/runtime/dryrun.py +0 -0
  173. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/runtime/dryrun_targets.py +0 -0
  174. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/runtime/embedded.py +0 -0
  175. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/runtime/executor.py +0 -0
  176. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/runtime/input_loader.py +0 -0
  177. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/runtime/intent_only.py +0 -0
  178. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/runtime/locked_files.py +0 -0
  179. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/runtime/new_data.py +0 -0
  180. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/runtime/opens.py +0 -0
  181. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/runtime/options.py +0 -0
  182. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/runtime/parents.py +0 -0
  183. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/runtime/runlog.py +0 -0
  184. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/runtime/session.py +0 -0
  185. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/runtime/strict.py +0 -0
  186. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/runtime/updates.py +0 -0
  187. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/runtime/validate.py +0 -0
  188. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/runtime/verify.py +0 -0
  189. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/__init__.py +0 -0
  190. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/append_blank_columns.py +0 -0
  191. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/argspec.py +0 -0
  192. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/board_values.py +0 -0
  193. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/coerce.py +0 -0
  194. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/command_contract.py +0 -0
  195. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/conditional_format.py +0 -0
  196. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/conditions.py +0 -0
  197. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/dashboard_filters.py +0 -0
  198. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/dashboard_pages.py +0 -0
  199. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/dashboard_review.py +0 -0
  200. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/data_profile.py +0 -0
  201. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/data_quality.py +0 -0
  202. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/dispatch.py +0 -0
  203. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/explore_cards.py +0 -0
  204. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/factory.py +0 -0
  205. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/folder_ids.py +0 -0
  206. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/input_fields.py +0 -0
  207. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/job_outcome.py +0 -0
  208. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/listing.py +0 -0
  209. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/local_time.py +0 -0
  210. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/mapping.py +0 -0
  211. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/openapi_types.py +0 -0
  212. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/positionals.py +0 -0
  213. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/protocol.py +0 -0
  214. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/read_queries.py +0 -0
  215. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/sql_check.py +0 -0
  216. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/stored_stats.py +0 -0
  217. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/testing.py +0 -0
  218. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/text_dates.py +0 -0
  219. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/type_system.py +0 -0
  220. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/view_analysis.py +0 -0
  221. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/view_variants.py +0 -0
  222. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/services/write_impact.py +0 -0
  223. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/skills/__init__.py +0 -0
  224. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/skills/installer.py +0 -0
  225. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/mammoth_cli/testing.py +0 -0
  226. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/activity.yaml +0 -0
  227. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/addon.yaml +0 -0
  228. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/agent.yaml +0 -0
  229. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/ai.yaml +0 -0
  230. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/annotation.yaml +0 -0
  231. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/auth.yaml +0 -0
  232. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/automation.yaml +0 -0
  233. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/batch.yaml +0 -0
  234. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/billing.yaml +0 -0
  235. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/browse.yaml +0 -0
  236. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/calc.yaml +0 -0
  237. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/capability.yaml +0 -0
  238. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/client-app.yaml +0 -0
  239. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/completion.yaml +0 -0
  240. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/config.yaml +0 -0
  241. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/connector.yaml +0 -0
  242. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/context.yaml +0 -0
  243. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/dashboard.yaml +0 -0
  244. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/data-app.yaml +0 -0
  245. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/dataset.yaml +0 -0
  246. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/doctor.yaml +0 -0
  247. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/external-key.yaml +0 -0
  248. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/file.yaml +0 -0
  249. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/folder.yaml +0 -0
  250. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/job.yaml +0 -0
  251. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/link.yaml +0 -0
  252. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/log.yaml +0 -0
  253. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/notification.yaml +0 -0
  254. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/parameter.yaml +0 -0
  255. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/report.yaml +0 -0
  256. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/resolve.yaml +0 -0
  257. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/schedule.yaml +0 -0
  258. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/schema.yaml +0 -0
  259. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/skill.yaml +0 -0
  260. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/snippet.yaml +0 -0
  261. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/support.yaml +0 -0
  262. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/template.yaml +0 -0
  263. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/token.yaml +0 -0
  264. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/trash.yaml +0 -0
  265. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/upgrade.yaml +0 -0
  266. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/user.yaml +0 -0
  267. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/version.yaml +0 -0
  268. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/webhook.yaml +0 -0
  269. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/workflow.yaml +0 -0
  270. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/commands/workspace.yaml +0 -0
  271. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/edits-target.source.yaml +0 -0
  272. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/openapi-operations.yaml +0 -0
  273. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/schema-v1.json +0 -0
  274. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/sdk-catalog.source.yaml +0 -0
  275. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/manifests/sdk-methods.yaml +0 -0
  276. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/openapi/metadata.json +0 -0
  277. {mammoth_cli-2.2.73 → mammoth_cli-2.2.74}/spec/openapi/openapi.json +0 -0
@@ -1,9 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mammoth-cli
3
- Version: 2.2.73
3
+ Version: 2.2.74
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
7
+ Project-URL: documentation, https://docs.mammoth.io/build/cli
7
8
  Author-email: Mammoth Analytics <support@mammoth.io>
8
9
  License-Expression: LicenseRef-Proprietary
9
10
  License-File: LICENSE
@@ -17,7 +18,7 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
17
18
  Requires-Python: <3.15,>=3.12
18
19
  Requires-Dist: jsonschema>=4.20
19
20
  Requires-Dist: keyring<26,>=25.7
20
- Requires-Dist: mammoth-io<0.9,>=0.8.33
21
+ Requires-Dist: mammoth-io<0.9,>=0.8.38
21
22
  Requires-Dist: platformdirs<5,>=4.10
22
23
  Requires-Dist: pydantic<3,>=2.12.5
23
24
  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.2.73"
9
+ __version__ = "2.2.74"
10
10
 
11
11
  # The versioned machine output envelope contract.
12
12
  SCHEMA_VERSION = 1
@@ -949,7 +949,7 @@ def _execute(invocation: Invocation) -> None:
949
949
  from mammoth_cli.runtime.strict import validate_extra_args
950
950
 
951
951
  if invocation.profile is None:
952
- invocation = replace(invocation, profile=profiles.get_selected())
952
+ invocation = replace(invocation, profile=profiles.get_selected(), profile_is_default=True)
953
953
 
954
954
  def producer() -> tuple[Any, dict[str, Any]]:
955
955
  refuse_hand_crafted_write(invocation.command_id)
@@ -1321,6 +1321,10 @@ def _top_level_typer(name: str) -> typer.Typer:
1321
1321
  return sub
1322
1322
 
1323
1323
 
1324
+ #: Groups kept out of ``mammoth --help`` until their backend is generally available.
1325
+ #: They still run when typed; only the listing hides them.
1326
+ _HIDDEN_UNTIL_GA = frozenset({"agent"})
1327
+
1324
1328
  # Top-level groups are converted to Click on first use. Building the leaf
1325
1329
  # callbacks and ``--help`` text for all ~550 commands, then letting Typer
1326
1330
  # convert every one of them, used to cost most of the CLI's start-up time on
@@ -1337,6 +1341,7 @@ def _load_top_level_group(name: str) -> Any:
1337
1341
  name=name,
1338
1342
  help=_GROUP_DESCRIPTIONS.get(name, f"Commands for {name}."),
1339
1343
  rich_help_panel=_ROOT_HELP_PANELS.get(name),
1344
+ hidden=name in _HIDDEN_UNTIL_GA,
1340
1345
  )
1341
1346
  return typer.main.get_group_from_info(info, **_LAZY_SETTINGS)
1342
1347
 
@@ -1409,6 +1414,7 @@ def _group_stub(name: str) -> Any:
1409
1414
  help=_GROUP_DESCRIPTIONS.get(name, f"Commands for {name}."),
1410
1415
  rich_help_panel=_ROOT_HELP_PANELS.get(name),
1411
1416
  rich_markup_mode=_LAZY_SETTINGS["rich_markup_mode"],
1417
+ hidden=name in _HIDDEN_UNTIL_GA,
1412
1418
  )
1413
1419
 
1414
1420
 
@@ -266,7 +266,7 @@ Status on release: untried; no live run recorded.
266
266
 
267
267
  Run: `mammoth view data get`. Exact input fields: `mammoth schema get view.data.get`.
268
268
 
269
- Example: `mammoth view data get 123 123`. Placeholders are illustrative; resolve IDs and input from observed reads.
269
+ Example: `mammoth view data get 123 456`. Placeholders are illustrative; resolve IDs and input from observed reads.
270
270
 
271
271
  Result: `ViewDataGetResult`; mutation `read`, confirmation `none`, wait policy `always_wait`.
272
272
 
@@ -10,7 +10,7 @@ or secrets in an argument, prompt, transcript, or checkpoint.
10
10
 
11
11
  ```bash
12
12
  python3 -m venv .mammoth && .mammoth/bin/python -m pip install --no-cache-dir --upgrade mammoth-cli
13
- .mammoth/bin/mammoth --version # or: uv tool install mammoth-cli
13
+ .mammoth/bin/mammoth --version # or: uv tool install mammoth-cli && uv tool update-shell
14
14
  ```
15
15
 
16
16
  Pin `mammoth-cli==X.Y.Z` when the task names an approved release, and
@@ -684,7 +684,7 @@ IN_PLACE_RECIPE = (
684
684
  "EDITS THE GIVEN VIEW IN PLACE: this adds a step to the view and changes that view "
685
685
  "and its dataset's output. To make a NEW dataset and leave the source untouched: "
686
686
  "`mammoth view create SOURCE_DATASET_ID` (working view), do the steps on that working "
687
- 'view, then `mammoth view export dataset WORKING_VIEW_ID` (add dataset_name only if the user named it).'
687
+ "view, then `mammoth view export dataset WORKING_VIEW_ID` (add dataset_name only if the user named it)."
688
688
  )
689
689
  _IN_PLACE_KEYWORDS = (
690
690
  "new dataset create make in place edits given view working view source untouched"
@@ -1244,6 +1244,10 @@ def runnable_example(
1244
1244
  # the manifest carries the safe ``creds.json`` invocation instead.
1245
1245
  if record["command_id"] == "auth.login":
1246
1246
  return None
1247
+ if record["command_id"] == "view.data.get":
1248
+ # VIEW_ID then DATASET_ID: two different placeholders so a reader can
1249
+ # tell which is which (the generic fallback printed "123 123").
1250
+ return "mammoth view data get 123 456"
1247
1251
  if record["command_id"] == "ai.retention.condition":
1248
1252
  return shlex.join(
1249
1253
  [
@@ -35,6 +35,7 @@ from mammoth_cli.errors.envelope import (
35
35
  CODE_INVALID_ARGUMENTS,
36
36
  CODE_MISSING_ARGUMENT,
37
37
  CODE_MISSING_FIELD,
38
+ CODE_RESOURCE_NOT_FOUND,
38
39
  CODE_SDK_SYMBOL_UNRESOLVED,
39
40
  CODE_UNSUPPORTED_CONTRACT,
40
41
  EXIT_USAGE,
@@ -1227,7 +1228,13 @@ def view_data_get(invocation: Invocation) -> HandlerResult:
1227
1228
  limit = document.get("limit", _DATA_GET_DEFAULT_LIMIT)
1228
1229
  with open_service(invocation) as (service, auth):
1229
1230
  dataset_id = _resolve_dataset_id(service, invocation, view_id, document)
1230
- meta = _read_meta(service, invocation, auth.workspace_id, dataset_id, view_id, project_id)
1231
+ try:
1232
+ meta = _read_meta(
1233
+ service, invocation, auth.workspace_id, dataset_id, view_id, project_id
1234
+ )
1235
+ except CliError as exc:
1236
+ _explain_swapped_ids(service, exc, view_id, dataset_id)
1237
+ raise
1231
1238
  kwargs: dict[str, Any] = {
1232
1239
  "dataset_id": dataset_id,
1233
1240
  "dataview_id": view_id,
@@ -1247,7 +1254,51 @@ def view_data_get(invocation: Invocation) -> HandlerResult:
1247
1254
  service, dataset_id, view_id, project_id, data, whole_view=whole_view
1248
1255
  )
1249
1256
  page_size = _DATA_PAGE_ROWS if whole_view else kwargs["limit"]
1250
- return _trim_rows(data, limit, page_size), meta
1257
+ data = _trim_rows(data, limit, page_size)
1258
+ if document.get("sequence") is None:
1259
+ # The view's row count is its latest step's; a read at an earlier step differs.
1260
+ data = _with_paging_total(data, meta)
1261
+ return data, meta
1262
+
1263
+
1264
+ def _with_paging_total(data: Any, meta: dict[str, Any]) -> Any:
1265
+ """Fill ``paging.total`` with the view's row count; the query route reports 0."""
1266
+ paging = data.get("paging") if isinstance(data, dict) else None
1267
+ row_count = meta["view"].get("row_count")
1268
+ if (
1269
+ isinstance(paging, dict)
1270
+ and isinstance(row_count, int)
1271
+ and row_count > paging.get("total", 0)
1272
+ ):
1273
+ return {**data, "paging": {**paging, "total": row_count}}
1274
+ return data
1275
+
1276
+
1277
+ def _explain_swapped_ids(service: Any, error: CliError, view_id: int, dataset_id: int) -> None:
1278
+ """Raise a clear refusal when a not-found read was given DATASET_ID then VIEW_ID.
1279
+
1280
+ The arguments are ``VIEW_ID [DATASET_ID]``; passing them the other way round
1281
+ only produces a bare 404. If the first number is really a view of the second,
1282
+ say so. Any other outcome leaves the original error to be re-raised.
1283
+ """
1284
+ if error.code != CODE_RESOURCE_NOT_FOUND:
1285
+ return
1286
+ try:
1287
+ parent = int(service.call(_FIND_DATASET_SYMBOL, dataview_id=dataset_id))
1288
+ except CliError:
1289
+ return
1290
+ if parent != view_id:
1291
+ return
1292
+ raise CliError(
1293
+ code=CODE_INVALID_ARGUMENT,
1294
+ message=(
1295
+ f"{view_id} is a dataset id and {dataset_id} is its view; "
1296
+ "the order is VIEW_ID DATASET_ID"
1297
+ ),
1298
+ exit_status=EXIT_USAGE,
1299
+ hint=f"Run it again as: mammoth view data get {dataset_id} {view_id}",
1300
+ details={"view_id": dataset_id, "dataset_id": view_id},
1301
+ ) from error
1251
1302
 
1252
1303
 
1253
1304
  _QUERY_DATA_SYMBOL = "mammoth.api.dataviews.DataviewsAPI.query_data"
@@ -3,8 +3,8 @@
3
3
  Authentication requires a login. Credentials come from an explicit secure
4
4
  input to the current command (a prompt or a permission-checked ``--input``
5
5
  file), or from the selected or ``--profile`` profile's saved credentials.
6
- There is no environment-variable credential path: ``mammoth auth login`` is the
7
- only way to establish credentials. The API endpoint falls back to the ``app``
6
+ For CI, an ``mm_...`` token in ``MAMMOTH_API_TOKEN`` (server prefix in
7
+ ``MAMMOTH_SERVER_PREFIX``) is used instead of a profile. The API endpoint falls back to the ``app``
8
8
  default when a profile supplies no server prefix. Project context resolves
9
9
  separately: ``--project`` overrides the saved profile project id, which
10
10
  overrides no project at all.
@@ -12,6 +12,8 @@ overrides no project at all.
12
12
 
13
13
  from __future__ import annotations
14
14
 
15
+ import os
16
+ import sys
15
17
  from collections.abc import Callable, Mapping
16
18
  from dataclasses import dataclass
17
19
 
@@ -158,6 +160,20 @@ def _endpoint(server_prefix: str | None) -> str:
158
160
  return resolve_base_url(server_prefix)
159
161
 
160
162
 
163
+ #: Environment variables a CI job sets instead of running ``mammoth auth login``.
164
+ API_TOKEN_ENV = "MAMMOTH_API_TOKEN" # noqa: S105 -- the variable name, not a secret
165
+ SERVER_PREFIX_ENV = "MAMMOTH_SERVER_PREFIX"
166
+
167
+
168
+ def _env_token_login() -> ExplicitLogin | None:
169
+ """The ``mm_...`` token in ``MAMMOTH_API_TOKEN`` as a login, or None when unset."""
170
+ token = os.environ.get(API_TOKEN_ENV, "").strip()
171
+ if not token:
172
+ return None
173
+ prefix = os.environ.get(SERVER_PREFIX_ENV, "").strip() or None
174
+ return ExplicitLogin(api_key=None, api_secret=None, server_prefix=prefix, api_token=token)
175
+
176
+
161
177
  def resolve_auth(
162
178
  invocation: Invocation,
163
179
  explicit_login: ExplicitLogin | None = None,
@@ -167,8 +183,9 @@ def resolve_auth(
167
183
  Credentials come from an explicit login (a secure prompt or ``--input``
168
184
  document handed to :func:`resolve_auth` by ``auth login``, or the login of
169
185
  the current embedded call, :mod:`mammoth_cli.runtime.embedded`), otherwise from
170
- the selected or ``--profile`` saved profile. There is no environment
171
- credential path; ``mammoth auth login`` is the only way to authenticate.
186
+ the selected or ``--profile`` saved profile. A ``MAMMOTH_API_TOKEN`` (and optional
187
+ ``MAMMOTH_SERVER_PREFIX``) in the environment outranks the selected profile, for CI,
188
+ but never an explicit ``--profile``; using it prints one stderr line.
172
189
 
173
190
  Args:
174
191
  invocation: The current command's resolved global options.
@@ -184,8 +201,15 @@ def resolve_auth(
184
201
  """
185
202
  if explicit_login is None and (call := embedded.current()) is not None:
186
203
  explicit_login = call.login
204
+ from_env = False
205
+ if explicit_login is None and (invocation.profile is None or invocation.profile_is_default):
206
+ # An explicit ``--profile`` outranks the ambient environment token.
207
+ explicit_login = _env_token_login()
208
+ from_env = explicit_login is not None
187
209
  if explicit_login is not None:
188
210
  base_url = _endpoint(explicit_login.server_prefix)
211
+ if from_env:
212
+ print(f"Using {API_TOKEN_ENV} for {base_url}", file=sys.stderr)
189
213
  return ResolvedAuth(
190
214
  api_key=explicit_login.api_key,
191
215
  api_secret=explicit_login.api_secret,
@@ -66,19 +66,19 @@ CODE_EMPTIES_VIEW = "empties_view"
66
66
  # ``message``/``hint``. Plain language only: no command names, ids, field names
67
67
  # or jargon. Exactly one entry per error code the CLI can raise;
68
68
  # ``tests/unit/test_error_summaries.py`` fails if a raised code has none.
69
- _S_BAD_REQUEST = "The assistant's request wasn't valid, so it is trying a different way."
69
+ _S_BAD_REQUEST = "The request wasn't valid."
70
70
  _S_BAD_INPUT = "Some of the information provided couldn't be used."
71
- _S_SIGN_IN = "The assistant isn't signed in to Mammoth."
72
- _S_INTERNAL = "The assistant hit an internal problem with this step."
73
- _S_NOT_FOUND = "Something the assistant looked for couldn't be found."
74
- _S_MISSING_INFO = "The assistant's request was missing some information."
71
+ _S_SIGN_IN = "You aren't signed in to Mammoth."
72
+ _S_INTERNAL = "This step hit an internal problem."
73
+ _S_NOT_FOUND = "Something that was looked for couldn't be found."
74
+ _S_MISSING_INFO = "The request was missing some information."
75
75
  _S_SETUP = "A setting needed for this step isn't set up correctly."
76
76
  _S_UNAVAILABLE = "This step isn't available right now."
77
77
 
78
78
  ERROR_SUMMARIES: dict[str, str] = {
79
79
  "aborted": "This step was stopped before it finished.",
80
80
  "ambiguous_resource_identity": (
81
- "More than one item matched, so the assistant needs to be more specific."
81
+ "More than one item matched, so the request needs to be more specific."
82
82
  ),
83
83
  "api_error": "Mammoth couldn't complete this step.",
84
84
  "append_leaves_columns_blank": (
@@ -90,8 +90,8 @@ ERROR_SUMMARIES: dict[str, str] = {
90
90
  "append_schema_unreadable": "The columns of the existing data couldn't be read.",
91
91
  "authentication_failed": "Mammoth didn't accept the sign-in for this step.",
92
92
  "authorization_required": "You don't have permission to do this.",
93
- "capability_not_found": "The assistant tried something Mammoth doesn't support.",
94
- "cli_key_expired": "The saved API key has expired, so the assistant needs to sign in again.",
93
+ "capability_not_found": "That isn't something Mammoth supports.",
94
+ "cli_key_expired": "The saved API key has expired, so a new sign-in is needed.",
95
95
  "cli_keys_need_browser_sign_in": "Managing API keys needs a browser sign-in, not an API token.",
96
96
  "cli_keys_not_allowed": "This server doesn't let a browser sign-in create API keys.",
97
97
  "confirmation_declined": "This step was not confirmed, so nothing was changed.",
@@ -102,7 +102,7 @@ ERROR_SUMMARIES: dict[str, str] = {
102
102
  "conflict": "This conflicts with the current state of your data, so nothing was changed.",
103
103
  "device_login_expired": "The sign-in code expired before it was approved.",
104
104
  "dry_run_targets_unresolvable": (
105
- "The assistant couldn't tell exactly which items this would change, so nothing was changed."
105
+ "It wasn't clear exactly which items this would change, so nothing was changed."
106
106
  ),
107
107
  "download_failed": "A download didn't complete.",
108
108
  "dry_run_unsupported": "That command can't be previewed, so it was not run.",
@@ -119,7 +119,7 @@ ERROR_SUMMARIES: dict[str, str] = {
119
119
  "input_unreadable": _S_BAD_INPUT,
120
120
  "insecure_credential_file": _S_SETUP,
121
121
  "insecure_input_file": _S_BAD_INPUT,
122
- "intent_only_dashboards": "The assistant builds dashboards from your request only.",
122
+ "intent_only_dashboards": "Dashboards are built from the request only.",
123
123
  "internal_column_name": "That column is internal to Mammoth and can't be used.",
124
124
  "internal_error": _S_INTERNAL,
125
125
  "interrupted": "This step was interrupted before it finished.",
@@ -169,7 +169,7 @@ ERROR_SUMMARIES: dict[str, str] = {
169
169
  "no_saved_project": "This step can't save a project here; each step names its own.",
170
170
  "not_available_embedded": "This step isn't available inside the Mammoth app.",
171
171
  "not_available": _S_UNAVAILABLE,
172
- "user_control": "Stopping, pausing or extending a run is left to you, not the assistant.",
172
+ "user_control": "Stopping, pausing or extending a run is left to you, not done automatically.",
173
173
  "profile_write_failed": _S_SETUP,
174
174
  "project_required": "No project has been chosen for this step.",
175
175
  "pypi_response_invalid": "An update check didn't return a usable answer.",
@@ -177,7 +177,7 @@ ERROR_SUMMARIES: dict[str, str] = {
177
177
  "replace_table_not_acknowledged": (
178
178
  "This export would drop and recreate a database table, and needs an explicit yes."
179
179
  ),
180
- "resource_identity_required": "The assistant needs to say which item it means.",
180
+ "resource_identity_required": "The request needs to say which item it means.",
181
181
  "resource_not_found": _S_NOT_FOUND,
182
182
  "retryable_error": "Mammoth was temporarily unavailable. Trying again may work.",
183
183
  "schema_not_found": _S_NOT_FOUND,
@@ -190,7 +190,7 @@ ERROR_SUMMARIES: dict[str, str] = {
190
190
  "too_many_ids": _S_BAD_REQUEST,
191
191
  "unexpected_argument": _S_BAD_REQUEST,
192
192
  "unknown_agent": _S_SETUP,
193
- "unknown_column": "A column the assistant referred to doesn't exist.",
193
+ "unknown_column": "A column that was referred to doesn't exist.",
194
194
  "unknown_config_key": _S_SETUP,
195
195
  "unknown_input_field": _S_BAD_REQUEST,
196
196
  "unknown_option": _S_BAD_REQUEST,
@@ -49,6 +49,9 @@ class Invocation:
49
49
  command_id: str
50
50
  output: str = "table"
51
51
  profile: str | None = None
52
+ # True when ``profile`` is the saved selection filled in for a command that
53
+ # named none, rather than a ``--profile`` / ``MAMMOTH_PROFILE`` the user gave.
54
+ profile_is_default: bool = field(default=False, repr=False, compare=False)
52
55
  project: int | None = None
53
56
  session: str | None = None
54
57
  timeout: float | None = None
@@ -224,6 +224,7 @@ def _read_invocation(command_id: str, resolved_ids: dict[str, Any], base: Invoca
224
224
  command_id=command_id,
225
225
  output="json",
226
226
  profile=base.profile,
227
+ profile_is_default=base.profile_is_default,
227
228
  project=base.project,
228
229
  timeout=base.timeout,
229
230
  job_timeout=base.job_timeout,
@@ -26,6 +26,7 @@ from typing import Any, NoReturn
26
26
 
27
27
  from mammoth.exceptions import MammothAPIError, MammothColumnError
28
28
 
29
+ from mammoth_cli import __version__
29
30
  from mammoth_cli.context.resolver import ResolvedAuth
30
31
  from mammoth_cli.errors.envelope import (
31
32
  CODE_INVALID_ARGUMENTS,
@@ -190,6 +191,7 @@ class SdkMammothService:
190
191
  self._client = MammothClient(
191
192
  **credential,
192
193
  base_url=auth.base_url,
194
+ user_agent=f"mammoth-cli/{__version__}",
193
195
  **kwargs,
194
196
  )
195
197
  # One loop for the process, not one per call: the client's connection
@@ -30,9 +30,10 @@ Transform-menu task is a `mammoth view transform` command (`mammoth view
30
30
  transform --help`). Before the first Mammoth command in a session run
31
31
  `mammoth doctor` (it must pass), then `mammoth skill show` and follow that
32
32
  guide. If `mammoth` is missing, install it with `pip install mammoth-cli`
33
- (or `uv tool install mammoth-cli`). If `mammoth auth status` shows no
34
- credentials, tell the operator the exact `mammoth auth login` command to run
35
- in their own terminal and wait; never ask for, read, or pass a key or secret.
33
+ (or `uv tool install mammoth-cli`, then `uv tool update-shell` so it is on
34
+ PATH). If `mammoth auth status` shows no credentials, tell the operator the
35
+ exact `mammoth auth login` command to run in their own terminal
36
+ and wait; never ask for, read, or pass a key or secret.
36
37
  Piped output is compact JSON. Take ids only from reads; run `mammoth schema get
37
38
  COMMAND_ID` before a command you have not used (`schema get A,B,C` reads
38
39
  several in one call); destructive commands need
@@ -1,13 +1,13 @@
1
1
  [project]
2
2
  name = "mammoth-cli"
3
- version = "2.2.73"
3
+ version = "2.2.74"
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.8.33,<0.9)",
10
+ "mammoth-io (>=0.8.38,<0.9)",
11
11
  "typer (>=0.27,<0.28)",
12
12
  "rich (>=15,<16)",
13
13
  "platformdirs (>=4.10,<5)",
@@ -17,7 +17,7 @@ dependencies = [
17
17
  "pydantic (>=2.12.5,<3)",
18
18
  "jsonschema (>=4.20)",
19
19
  ]
20
- urls = {homepage = "https://mammoth.io", repository = "https://github.com/EdgeMetric/mammothsdk"}
20
+ urls = {homepage = "https://mammoth.io", repository = "https://github.com/EdgeMetric/mammothsdk", documentation = "https://docs.mammoth.io/build/cli"}
21
21
  scripts.mammoth = "mammoth_cli.__main__:main"
22
22
  classifiers = [
23
23
  "Development Status :: 5 - Production/Stable",
@@ -265,7 +265,7 @@ commands:
265
265
  readback:
266
266
  command: project.get
267
267
  ids:
268
- project_id: result.id
268
+ project_id: result.project_id
269
269
  kind: object
270
270
  - command_id: project.data-check.list
271
271
  command_path: project data-check list
@@ -1168,7 +1168,7 @@ commands:
1168
1168
  required_fixture_guard: null
1169
1169
  secret_fields: []
1170
1170
  human_example: mammoth view data get VIEW_ID --help
1171
- agent_example: mammoth view data get 123 123
1171
+ agent_example: mammoth view data get 123 456
1172
1172
  unit_tests:
1173
1173
  - UT-VIEW-DATA-GET
1174
1174
  contract_tests:
File without changes
File without changes
File without changes