mammoth-cli 2.0.35__tar.gz → 2.0.37__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 (221) hide show
  1. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/PKG-INFO +16 -13
  2. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/README.md +14 -11
  3. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/__init__.py +1 -1
  4. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/SKILL.md +50 -3
  5. mammoth_cli-2.0.37/mammoth_cli/bundled_skill/mammoth-cli/references/about-mammoth.md +144 -0
  6. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.md +23 -16
  7. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/handoff.md +1 -1
  8. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/task-start.md +10 -7
  9. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/auth.py +74 -38
  10. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/doctor.py +10 -9
  11. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/schema.py +169 -45
  12. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/context/credentials.py +77 -31
  13. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/context/endpoint.py +2 -1
  14. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/context/resolver.py +18 -13
  15. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/contracts/auth.py +2 -4
  16. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/services/command_contract.py +1 -2
  17. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/services/mapping.py +6 -1
  18. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/services/sdk_service.py +6 -2
  19. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/skills/steering.py +3 -1
  20. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/testing.py +1 -1
  21. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/pyproject.toml +2 -2
  22. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/.gitignore +0 -0
  23. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/LICENSE +0 -0
  24. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/__main__.py +0 -0
  25. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/app.py +0 -0
  26. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities-misc.md +0 -0
  27. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities.md +0 -0
  28. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/command-index.md +0 -0
  29. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/activity.md +0 -0
  30. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/addon.md +0 -0
  31. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/agent.md +0 -0
  32. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/ai.md +0 -0
  33. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/annotation.md +0 -0
  34. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/auth.md +0 -0
  35. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/automation.md +0 -0
  36. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/batch.md +0 -0
  37. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/billing.md +0 -0
  38. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/browse.md +0 -0
  39. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/capability.md +0 -0
  40. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/client-app.md +0 -0
  41. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/completion.md +0 -0
  42. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/config.md +0 -0
  43. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/connector.md +0 -0
  44. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/context.md +0 -0
  45. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard.md +0 -0
  46. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/data-app.md +0 -0
  47. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dataset.md +0 -0
  48. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/doctor.md +0 -0
  49. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/external-key.md +0 -0
  50. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/file.md +0 -0
  51. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/folder.md +0 -0
  52. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/job.md +0 -0
  53. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/log.md +0 -0
  54. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/notification.md +0 -0
  55. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/parameter.md +0 -0
  56. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/project.md +0 -0
  57. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/report.md +0 -0
  58. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schedule.md +0 -0
  59. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schema.md +0 -0
  60. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/skill.md +0 -0
  61. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/snippet.md +0 -0
  62. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/support.md +0 -0
  63. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/template.md +0 -0
  64. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/trash.md +0 -0
  65. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/upgrade.md +0 -0
  66. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/user.md +0 -0
  67. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/version.md +0 -0
  68. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view.md +0 -0
  69. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/webhook.md +0 -0
  70. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workflow.md +0 -0
  71. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workspace.md +0 -0
  72. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/input.md +0 -0
  73. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/jobs-drafts.md +0 -0
  74. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/machine-output.md +0 -0
  75. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/operations.md +0 -0
  76. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/auth-scope.md +0 -0
  77. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/cleanup.md +0 -0
  78. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/dashboards.md +0 -0
  79. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/end-to-end.md +0 -0
  80. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/exports.md +0 -0
  81. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/index.md +0 -0
  82. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/need-action.md +0 -0
  83. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/resources.md +0 -0
  84. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/transforms.md +0 -0
  85. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/typed-etl-discovery.md +0 -0
  86. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/recovery.md +0 -0
  87. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/report-checklist.md +0 -0
  88. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/retention.md +0 -0
  89. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/bundled_skill/mammoth-cli/references/safety.md +0 -0
  90. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/__init__.py +0 -0
  91. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/activity.py +0 -0
  92. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/addon.py +0 -0
  93. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/agent.py +0 -0
  94. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/ai.py +0 -0
  95. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/annotation.py +0 -0
  96. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/automation.py +0 -0
  97. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/batch.py +0 -0
  98. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/billing.py +0 -0
  99. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/browse.py +0 -0
  100. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/capability.py +0 -0
  101. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/client_app.py +0 -0
  102. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/completion.py +0 -0
  103. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/config.py +0 -0
  104. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/connector.py +0 -0
  105. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/context.py +0 -0
  106. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/dashboard.py +0 -0
  107. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/data_app.py +0 -0
  108. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/dataset.py +0 -0
  109. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/external_key.py +0 -0
  110. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/file.py +0 -0
  111. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/folder.py +0 -0
  112. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/job.py +0 -0
  113. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/notification.py +0 -0
  114. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/parameter.py +0 -0
  115. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/project.py +0 -0
  116. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/registry.py +0 -0
  117. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/report.py +0 -0
  118. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/schedule.py +0 -0
  119. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/skill.py +0 -0
  120. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/snippet.py +0 -0
  121. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/support.py +0 -0
  122. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/template.py +0 -0
  123. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/trash.py +0 -0
  124. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/upgrade.py +0 -0
  125. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/user.py +0 -0
  126. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/view.py +0 -0
  127. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/view_ops.py +0 -0
  128. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/webhook.py +0 -0
  129. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/workflow.py +0 -0
  130. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/commands/workspace.py +0 -0
  131. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/context/__init__.py +0 -0
  132. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/context/profiles.py +0 -0
  133. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/contracts/__init__.py +0 -0
  134. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/errors/__init__.py +0 -0
  135. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/errors/envelope.py +0 -0
  136. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/manifest/__init__.py +0 -0
  137. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/manifest/loader.py +0 -0
  138. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/messages/__init__.py +0 -0
  139. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/output/__init__.py +0 -0
  140. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/output/envelope.py +0 -0
  141. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/output/normalize.py +0 -0
  142. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/output/policy.py +0 -0
  143. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/output/progress.py +0 -0
  144. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/output/render.py +0 -0
  145. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/py.typed +0 -0
  146. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/runtime/__init__.py +0 -0
  147. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/runtime/confirm.py +0 -0
  148. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/runtime/dryrun.py +0 -0
  149. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/runtime/executor.py +0 -0
  150. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/runtime/input_loader.py +0 -0
  151. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/runtime/invocation.py +0 -0
  152. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/runtime/options.py +0 -0
  153. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/runtime/parents.py +0 -0
  154. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/runtime/runlog.py +0 -0
  155. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/runtime/session.py +0 -0
  156. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/runtime/strict.py +0 -0
  157. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/runtime/updates.py +0 -0
  158. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/runtime/validate.py +0 -0
  159. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/services/__init__.py +0 -0
  160. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/services/argspec.py +0 -0
  161. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/services/coerce.py +0 -0
  162. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/services/conditions.py +0 -0
  163. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/services/dispatch.py +0 -0
  164. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/services/factory.py +0 -0
  165. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/services/input_fields.py +0 -0
  166. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/services/openapi_types.py +0 -0
  167. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/services/positionals.py +0 -0
  168. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/services/protocol.py +0 -0
  169. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/services/testing.py +0 -0
  170. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/services/type_system.py +0 -0
  171. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/skills/__init__.py +0 -0
  172. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/mammoth_cli/skills/installer.py +0 -0
  173. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/activity.yaml +0 -0
  174. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/addon.yaml +0 -0
  175. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/agent.yaml +0 -0
  176. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/ai.yaml +0 -0
  177. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/annotation.yaml +0 -0
  178. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/auth.yaml +0 -0
  179. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/automation.yaml +0 -0
  180. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/batch.yaml +0 -0
  181. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/billing.yaml +0 -0
  182. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/browse.yaml +0 -0
  183. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/capability.yaml +0 -0
  184. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/client-app.yaml +0 -0
  185. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/completion.yaml +0 -0
  186. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/config.yaml +0 -0
  187. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/connector.yaml +0 -0
  188. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/context.yaml +0 -0
  189. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/dashboard.yaml +0 -0
  190. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/data-app.yaml +0 -0
  191. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/dataset.yaml +0 -0
  192. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/doctor.yaml +0 -0
  193. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/external-key.yaml +0 -0
  194. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/file.yaml +0 -0
  195. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/folder.yaml +0 -0
  196. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/job.yaml +0 -0
  197. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/log.yaml +0 -0
  198. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/notification.yaml +0 -0
  199. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/parameter.yaml +0 -0
  200. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/project.yaml +0 -0
  201. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/report.yaml +0 -0
  202. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/schedule.yaml +0 -0
  203. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/schema.yaml +0 -0
  204. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/skill.yaml +0 -0
  205. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/snippet.yaml +0 -0
  206. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/support.yaml +0 -0
  207. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/template.yaml +0 -0
  208. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/trash.yaml +0 -0
  209. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/upgrade.yaml +0 -0
  210. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/user.yaml +0 -0
  211. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/version.yaml +0 -0
  212. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/view.yaml +0 -0
  213. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/webhook.yaml +0 -0
  214. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/workflow.yaml +0 -0
  215. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/commands/workspace.yaml +0 -0
  216. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/openapi-operations.yaml +0 -0
  217. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/schema-v1.json +0 -0
  218. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/sdk-catalog.source.yaml +0 -0
  219. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/manifests/sdk-methods.yaml +0 -0
  220. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/spec/openapi/metadata.json +0 -0
  221. {mammoth_cli-2.0.35 → mammoth_cli-2.0.37}/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.35
3
+ Version: 2.0.37
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.15
20
+ Requires-Dist: mammoth-io<0.8,>=0.7.16
21
21
  Requires-Dist: platformdirs<5,>=4.10
22
22
  Requires-Dist: pydantic<3,>=2.13
23
23
  Requires-Dist: pyyaml<7,>=6
@@ -203,21 +203,24 @@ one-time login, and works from the shipped skill. The long form is
203
203
  [docs/agent-prompt.md](https://github.com/EdgeMetric/mammothsdk/blob/main/mammoth-cli/docs/agent-prompt.md).
204
204
 
205
205
  ```text
206
- Use Mammoth Analytics only through the `mammoth` CLI in bash; run
207
- `export MAMMOTH_OUTPUT=json MAMMOTH_NO_INPUT=1` once. Onboard me first:
206
+ Use Mammoth Analytics only through the `mammoth` CLI in bash, never the web
207
+ app in a browser; run `export MAMMOTH_OUTPUT=json MAMMOTH_NO_INPUT=1` once.
208
+ Onboard me first:
208
209
  1. If `mammoth --version` fails, install, then re-check (new shell if needed):
209
210
  curl -fsSL https://raw.githubusercontent.com/EdgeMetric/mammothsdk/main/mammoth-cli/installers/mammoth-install.sh | bash
210
- 2. Run `mammoth auth status`. If it shows no credentials, print exactly this
211
- and wait until I say done: "In the Mammoth web app open Workspace settings
212
- → API Tokens → Create token, copy the key and the secret (shown once), and
213
- note the workspace id (the number after /workspaces/ in the address bar),
214
- then run in your own terminal: mammoth auth login" — never ask for, read, or pass a key
215
- or secret yourself, and never run auth login.
211
+ 2. Run `mammoth auth status`. If it shows no credentials or a
212
+ `recommendation`, print exactly this and wait until I say done: "In the
213
+ Mammoth web app open Workspace settings → API Tokens → Create token (no
214
+ project, so I can create projects), copy the token (it starts with mm_ and
215
+ is shown once), and note the workspace id (the number after /workspaces/
216
+ in the address bar), then run in your own terminal: mammoth auth login" —
217
+ never ask for, read, or pass the token yourself, and never run auth login.
216
218
  3. Require `mammoth doctor` to pass, then run `mammoth skill show` and
217
219
  follow the guide it prints.
218
220
  Work inside `mammoth project ensure 'PROJECT NAME'` unless I name a project;
219
- take ids only from reads; `schema get COMMAND_ID` before a new command; read
220
- results back before reporting.
221
+ take ids only from reads; find a command with `schema find "GOAL IN PLAIN
222
+ WORDS"` or `view transform --help`, and `schema get COMMAND_ID` before a new
223
+ command; read results back before reporting.
221
224
  TASK: <what to achieve, and how you will know it is done>
222
225
  ```
223
226
 
@@ -265,7 +268,7 @@ The full generated list is in [docs/reference/commands.md](https://github.com/Ed
265
268
  |---|---|
266
269
  | [Installation](https://github.com/EdgeMetric/mammothsdk/blob/main/mammoth-cli/docs/installation.md) | Install the CLI and the agent skill. |
267
270
  | [Quick start](https://github.com/EdgeMetric/mammothsdk/blob/main/mammoth-cli/docs/quickstart.md) | Log in and run your first commands. |
268
- | [Authentication](https://github.com/EdgeMetric/mammothsdk/blob/main/mammoth-cli/docs/authentication.md) | Getting an API key, login, profiles, projects. |
271
+ | [Authentication](https://github.com/EdgeMetric/mammothsdk/blob/main/mammoth-cli/docs/authentication.md) | Getting an API token, login, profiles, projects. |
269
272
  | [Agent handover and operation](https://github.com/EdgeMetric/mammothsdk/blob/main/mammoth-cli/docs/agents.md) | Cold start, discovery, checkpoints, recovery. |
270
273
  | [Portable handoff format](https://github.com/EdgeMetric/mammothsdk/blob/main/mammoth-cli/docs/agent-handoff.md) | Nonsecret checkpoint schema and receiving procedure. |
271
274
  | [Bundled agent skill](https://github.com/EdgeMetric/mammothsdk/blob/main/mammoth-cli/mammoth_cli/bundled_skill/mammoth-cli/SKILL.md) | Focused routing for shell-capable agents. |
@@ -175,21 +175,24 @@ one-time login, and works from the shipped skill. The long form is
175
175
  [docs/agent-prompt.md](https://github.com/EdgeMetric/mammothsdk/blob/main/mammoth-cli/docs/agent-prompt.md).
176
176
 
177
177
  ```text
178
- Use Mammoth Analytics only through the `mammoth` CLI in bash; run
179
- `export MAMMOTH_OUTPUT=json MAMMOTH_NO_INPUT=1` once. Onboard me first:
178
+ Use Mammoth Analytics only through the `mammoth` CLI in bash, never the web
179
+ app in a browser; run `export MAMMOTH_OUTPUT=json MAMMOTH_NO_INPUT=1` once.
180
+ Onboard me first:
180
181
  1. If `mammoth --version` fails, install, then re-check (new shell if needed):
181
182
  curl -fsSL https://raw.githubusercontent.com/EdgeMetric/mammothsdk/main/mammoth-cli/installers/mammoth-install.sh | bash
182
- 2. Run `mammoth auth status`. If it shows no credentials, print exactly this
183
- and wait until I say done: "In the Mammoth web app open Workspace settings
184
- → API Tokens → Create token, copy the key and the secret (shown once), and
185
- note the workspace id (the number after /workspaces/ in the address bar),
186
- then run in your own terminal: mammoth auth login" — never ask for, read, or pass a key
187
- or secret yourself, and never run auth login.
183
+ 2. Run `mammoth auth status`. If it shows no credentials or a
184
+ `recommendation`, print exactly this and wait until I say done: "In the
185
+ Mammoth web app open Workspace settings → API Tokens → Create token (no
186
+ project, so I can create projects), copy the token (it starts with mm_ and
187
+ is shown once), and note the workspace id (the number after /workspaces/
188
+ in the address bar), then run in your own terminal: mammoth auth login" —
189
+ never ask for, read, or pass the token yourself, and never run auth login.
188
190
  3. Require `mammoth doctor` to pass, then run `mammoth skill show` and
189
191
  follow the guide it prints.
190
192
  Work inside `mammoth project ensure 'PROJECT NAME'` unless I name a project;
191
- take ids only from reads; `schema get COMMAND_ID` before a new command; read
192
- results back before reporting.
193
+ take ids only from reads; find a command with `schema find "GOAL IN PLAIN
194
+ WORDS"` or `view transform --help`, and `schema get COMMAND_ID` before a new
195
+ command; read results back before reporting.
193
196
  TASK: <what to achieve, and how you will know it is done>
194
197
  ```
195
198
 
@@ -237,7 +240,7 @@ The full generated list is in [docs/reference/commands.md](https://github.com/Ed
237
240
  |---|---|
238
241
  | [Installation](https://github.com/EdgeMetric/mammothsdk/blob/main/mammoth-cli/docs/installation.md) | Install the CLI and the agent skill. |
239
242
  | [Quick start](https://github.com/EdgeMetric/mammothsdk/blob/main/mammoth-cli/docs/quickstart.md) | Log in and run your first commands. |
240
- | [Authentication](https://github.com/EdgeMetric/mammothsdk/blob/main/mammoth-cli/docs/authentication.md) | Getting an API key, login, profiles, projects. |
243
+ | [Authentication](https://github.com/EdgeMetric/mammothsdk/blob/main/mammoth-cli/docs/authentication.md) | Getting an API token, login, profiles, projects. |
241
244
  | [Agent handover and operation](https://github.com/EdgeMetric/mammothsdk/blob/main/mammoth-cli/docs/agents.md) | Cold start, discovery, checkpoints, recovery. |
242
245
  | [Portable handoff format](https://github.com/EdgeMetric/mammothsdk/blob/main/mammoth-cli/docs/agent-handoff.md) | Nonsecret checkpoint schema and receiving procedure. |
243
246
  | [Bundled agent skill](https://github.com/EdgeMetric/mammothsdk/blob/main/mammoth-cli/mammoth_cli/bundled_skill/mammoth-cli/SKILL.md) | Focused routing for shell-capable agents. |
@@ -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.35"
9
+ __version__ = "2.0.37"
10
10
 
11
11
  # The versioned machine output envelope contract.
12
12
  SCHEMA_VERSION = 1
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: mammoth-cli
3
- version: 2.0.35
4
- description: "Use Mammoth Analytics from a terminal: install or authenticate the CLI, discover its live command contract, and safely manage projects, data, views, pipelines, dashboards, exports, and handoffs."
3
+ version: 2.0.37
4
+ description: "Use Mammoth Analytics from a terminal: install or authenticate the CLI, discover its live command contract, and safely manage projects, data, views, pipelines (join, merge, pivot, filter, clean), dashboards, exports, and handoffs."
5
5
  ---
6
6
 
7
7
  # Mammoth CLI
@@ -10,6 +10,19 @@ Use this skill for Mammoth shell work, not for Python SDK integration. The
10
10
  CLI is the contract: it validates every request locally, returns one JSON
11
11
  envelope, and needs no flag for that when you pipe its output.
12
12
 
13
+ ## What Mammoth is
14
+
15
+ Mammoth Analytics is a no-code data platform. Data comes in from files, URLs
16
+ or connectors and lands in a **dataset**. It is cleaned, joined, reshaped and
17
+ calculated in a **pipeline** of tasks on a **view**, and the result is
18
+ published as a dashboard or delivered as a CSV, a database table, a BI feed
19
+ or another dataset. The pipeline re-runs when new data arrives, so build the
20
+ steps in Mammoth rather than computing a result locally. The web app and
21
+ this CLI call the same API: every task in the web app's Transform menu is a
22
+ `mammoth view transform` command. The data model, the high-level
23
+ capabilities and the full web-to-CLI map are in
24
+ [about Mammoth](references/about-mammoth.md).
25
+
13
26
  ## Start
14
27
 
15
28
  ```bash
@@ -23,7 +36,7 @@ task names it, and check `meta.profile`/`auth status` `endpoint` match the
23
36
  intended environment before doing anything. If no profile has credentials,
24
37
  tell the operator to run `mammoth auth login` in their own terminal (add
25
38
  `--profile NAME` only for a profile other than `default`; [auth](references/auth.md)
26
- says where the key and secret come from) and wait; never ask for a key or secret in chat,
39
+ says where the token comes from) and wait; never ask for the token in chat,
27
40
  never read one from a file or environment variable, never run `auth login`
28
41
  yourself. If any envelope carries `meta.update_available`, run its `command`
29
42
  before the next step.
@@ -42,6 +55,38 @@ before the next step.
42
55
  - Commands that start platform work wait up to 300 s for the job; on
43
56
  `timeout` use the `job get` recovery command printed, do not resubmit.
44
57
 
58
+ ## Find the command for a goal
59
+
60
+ State the goal in plain words; the search knows common phrasing, and
61
+ `view transform --help` is the Transform menu with one line per task:
62
+
63
+ ```bash
64
+ mammoth schema find "merge two datasets" # -> view.transform.join
65
+ mammoth view transform --help # every data transformation
66
+ ```
67
+
68
+ | Goal | Command |
69
+ |---|---|
70
+ | Combine two datasets on a key (merge, VLOOKUP) | `view transform join`; one value per key: `view transform lookup` |
71
+ | Add rows to an existing dataset | `file upload FILE --input '{"append_to_ds_id": DATASET_ID}'` |
72
+ | Keep or remove rows | `view transform filter` |
73
+ | Remove duplicate rows | `view transform discard-duplicates` |
74
+ | Totals, counts, averages per group | `view transform pivot` |
75
+ | A calculated column | `view transform math` |
76
+ | Blanks to a constant, or to the previous row's value | `view transform set-values` (`IS_EMPTY`), `view transform fill-missing` |
77
+ | Clean text | `view transform text`, `replace`, `bulk-replace` |
78
+ | Change a column's type | `view transform convert-type` |
79
+ | Rank, running total, previous row | `view transform window` |
80
+ | A dashboard | `dashboard create-blank` ([dashboards](references/recipes/dashboards.md)) |
81
+ | Deliver the rows | `view export csv`, `view export postgres` (and other destinations), `view export dataset` |
82
+
83
+ A search with no full match returns `suggestions` and a `hint`. Before you
84
+ conclude the CLI cannot do something the web app does, check
85
+ `view transform --help` and "Not a pipeline step" in
86
+ [about Mammoth](references/about-mammoth.md). Do not switch to the web app
87
+ in a browser, or compute the result locally, for work the CLI covers;
88
+ report a real gap with the command you tried.
89
+
45
90
  ## Calling a command
46
91
 
47
92
  - Ids are positionals; request fields are one `--input '{...}'` document;
@@ -89,6 +134,8 @@ before the next step.
89
134
 
90
135
  ## Route only what the task needs
91
136
 
137
+ - **What Mammoth is, its data model, which feature fits a business goal, or
138
+ a web-app task you cannot find in the CLI:** [about Mammoth](references/about-mammoth.md)
92
139
  - **Cold start, task plan, or unsupported route:** [task start](references/task-start.md)
93
140
  - **Login, profiles, and authorized scope:** [auth](references/auth.md)
94
141
  - **Nested input, output envelopes, confirmations, jobs, or recovery:**
@@ -0,0 +1,144 @@
1
+ # What Mammoth is, and what it can do
2
+
3
+ Read this when the task is stated as a business goal ("combine these files",
4
+ "a monthly summary per region", "feed this to Power BI") and you need to know
5
+ which Mammoth feature does it, or when you think the CLI cannot do something
6
+ the web app can.
7
+
8
+ ## Why Mammoth exists
9
+
10
+ Mammoth Analytics is a cloud platform that turns raw business data into
11
+ output people can trust and that stays current, without code. It has two
12
+ layers:
13
+
14
+ - **Preparation (the engine).** Data comes in from files, URLs or
15
+ connectors. It is cleaned, reshaped, joined and calculated in a
16
+ **pipeline**: an ordered list of tasks on a **view**. The pipeline re-runs
17
+ when new data arrives, so a monthly report is built once and refreshed,
18
+ not rebuilt.
19
+ - **Output.** Dashboards (and presentations, documents and Q&A pages) are
20
+ built from a prepared view. Data is also delivered: CSV downloads,
21
+ databases, cloud storage, BI tools, or another Mammoth dataset. Every
22
+ number is computed from the prepared data, never written by a model.
23
+
24
+ People use it to replace manual spreadsheet work: an analyst automating a
25
+ recurring report, a small practice producing client deliverables, a team
26
+ feeding clean data to Tableau or Power BI. Every step is visible and
27
+ repeatable, which is the point: someone else can inspect, re-run or take
28
+ over the work. So, as an agent, build the steps **in Mammoth** (as pipeline
29
+ tasks, dashboards and exports) rather than computing a result locally and
30
+ uploading it; a local result does not refresh and cannot be inspected.
31
+
32
+ ## How Mammoth organises data
33
+
34
+ ```
35
+ workspace account and billing; an API token belongs to one workspace
36
+ └─ project a container with its own members; work stays inside one
37
+ └─ dataset data from an upload, URL or connector; each import is a batch
38
+ └─ view a working copy of the dataset's rows; a dataset can have several
39
+ ├─ pipeline tasks run top to bottom; each `view transform` adds one at the end
40
+ ├─ exports CSV, databases, cloud storage, BI tools, another dataset
41
+ └─ dashboards built from the view's prepared rows
42
+ ```
43
+
44
+ - An upload returns a **dataset** id. Transforms, joins, exports and
45
+ dashboards take a **view** id (`view list DATASET_ID`).
46
+ - Columns have a **display name** (what people see, and what every CLI
47
+ input uses) and an internal name (`column_7`), which you never type.
48
+ - A task that ran is part of the view: later data refreshes run it again.
49
+ Draft mode (`view draft enter` / `submit`) holds several tasks and runs
50
+ them together.
51
+
52
+ ## What it can do, and where that is in the CLI
53
+
54
+ | Goal | Web app | CLI |
55
+ |---|---|---|
56
+ | Bring data in | Data → new dataset | `file upload`, `dataset create` (URL), `connector ...` |
57
+ | Add rows to existing data | a new batch on the dataset | `file upload FILE --input '{"append_to_ds_id": DATASET_ID}'` |
58
+ | Clean and reshape | View → Transform menu | `view transform OPERATION` (table below) |
59
+ | Combine two sources | Transform → Join, Lookup | `view transform join`, `view transform lookup` |
60
+ | Summarise | Transform → Group & Pivot | `view transform pivot`, `view transform crosstab` |
61
+ | Check data quality in the pipeline | Data Check, Checkpoint Alert | `view data-check create`, `view checkpoint create` |
62
+ | Reuse a value or a SQL block | Parameters, Snippets | `parameter ...`, `snippet ...` |
63
+ | Inspect or restore pipeline history | Version history | `view version list`, `view version apply` |
64
+ | Build a dashboard | Publish | `dashboard create-blank`, `dashboard v3 generate`, `dashboard canvas ...` |
65
+ | Deliver data | Export, Send to dataset | `view export csv`, `view export postgres` (and other destinations), `view export dataset` |
66
+ | Automate | Automations | `automation ...`, `workflow ...` |
67
+ | Undo a delete | Trash | `trash list`, `trash restore` |
68
+
69
+ Whether a route ran on release is in [capabilities](capabilities.md); read
70
+ it before you promise a deliverable. `schedule` is not implemented on
71
+ release.
72
+
73
+ ## The Transform menu, command by command
74
+
75
+ The web app groups its pipeline tasks in a Transform menu. Each data task is
76
+ a `mammoth view transform` command; `mammoth view transform --help` lists
77
+ them with one line each, and `mammoth schema get view.transform.join` (or
78
+ any other operation) gives the input. Send to Dataset is `view export dataset`; Data Check and
79
+ Checkpoint Alert are the `view data-check` and `view checkpoint` families.
80
+
81
+ | You want to | Web app task | Command |
82
+ |---|---|---|
83
+ | Keep or remove rows that match a condition | Conditional Filter | `filter` (`filter_type` `SHOW` or `REMOVE`) |
84
+ | Remove duplicate rows | Remove Duplicate Rows | `discard-duplicates` |
85
+ | Keep the first or last N rows by an order | Show Top/Bottom Rows | `limit-rows` (`n`, `order_by`, `bottom`) |
86
+ | Write a value where a condition holds, or a label or bucket column | Label & Insert Values | `set-values` |
87
+ | Fill blanks with the previous or next row's value | Fill Missing Values | `fill-missing` |
88
+ | Find and replace one value | Find & Replace | `replace` |
89
+ | Map many spellings to one value | Bulk Replace | `bulk-replace` |
90
+ | Change case or trim spaces | Text Formatting | `text` |
91
+ | Take part of a text value (characters or regex) | Extract Text | `substring` |
92
+ | Split one column into several | Split Into Multiple Columns | `split` |
93
+ | Join several columns into one text column | Combine Columns & Text | `combine-columns` |
94
+ | Change a column's type | Convert Column Type | `convert-type` |
95
+ | Calculate a column from others | Math Function | `math` |
96
+ | Rank, running total, previous or next row | Window function | `window` |
97
+ | Nth smallest or largest across columns | Obtain Large or Small Values | `small-large` |
98
+ | Take a year, month, weekday from a date | Extract Date Part | `extract-date` |
99
+ | Days (or months, ...) between two dates | Calculate Date Difference | `date-diff` |
100
+ | Shift a date by an interval | Add / Subtract Date Values | `increment-date` |
101
+ | Add an empty column | Add Column | `add-column` |
102
+ | Copy a column under a new name | Copy Columns | `copy-columns` |
103
+ | Remove columns | Remove Column | `delete-columns` |
104
+ | Add columns from another view by matching keys | Join | `join` (`INNER`, `LEFT`, `RIGHT`, `OUTER`) |
105
+ | Bring one value per key from another view | Lookup | `lookup` |
106
+ | Totals, counts, averages per group | Group & Pivot | `pivot` (replaces the view's columns) |
107
+ | A rows-by-columns summary table | Group & Pivot (crosstab) | `crosstab` (writes a new dataset) |
108
+ | Turn wide columns into label/value rows | Unpivot | `unnest` |
109
+ | Read fields out of a JSON column | Extract JSON | `json-extract` |
110
+ | Classify, tag or summarise rows with AI | Generative AI | `ai` |
111
+ | One SQL query over the view | AI SQL Query | `add-sql` (replaces the view's columns), `generate-sql` (from plain words) |
112
+ | Copy rows into another dataset, refreshed with the pipeline | Send to Dataset | `view export dataset` (not a `view transform`) |
113
+
114
+ `join` or `lookup`: `join` adds the chosen columns from every matching row
115
+ (a key that repeats on the other side repeats rows); `lookup` brings one
116
+ value per key into one new column. Before either, confirm the key columns
117
+ in both views have the same type and values; recipes/transforms.md has the
118
+ read-back.
119
+
120
+ ## Not a pipeline step, and the nearest route
121
+
122
+ - **Rename a column.** The web app's rename is a display change, not a
123
+ task; the CLI has no rename command. Name new columns when you create them
124
+ (`new_column`, `as_name`); for an existing column, `copy-columns` under
125
+ the new name.
126
+ - **Sort.** There is no sort task, and the CLI has no sort command. For
127
+ "top N by X" use `limit-rows` with `order_by`; for a rank column use
128
+ `window` (`RANK`, `ROW_NUMBER`).
129
+ - **Union or append two views.** There is no union task. Upload a file into
130
+ an existing dataset with `append_to_ds_id`, or send a view's rows into an
131
+ existing dataset with `view export dataset` (`target_ds_id` and
132
+ `save_as_mode` `APPEND_TO_DS`; that mode is untried on release).
133
+ - **Hide or reorder columns.** Display changes in the web app; they do not
134
+ change the data.
135
+
136
+ ## The web app and the CLI
137
+
138
+ Both call the same API. Do not switch to the web app in a browser for a
139
+ task the CLI covers. Before you conclude that the CLI cannot do something,
140
+ run `mammoth view transform --help`, search in plain words (`mammoth schema
141
+ find "merge two datasets"` finds `join`; a search with no full match lists
142
+ `suggestions`), and read the section above. If it is still missing, report
143
+ the gap with the command you tried; do not work around it in the browser or
144
+ by computing the result locally.
@@ -1,7 +1,16 @@
1
1
  # Authentication and profiles
2
2
 
3
- Required: API key, API secret, workspace id. Optional: a one-label server
4
- prefix (default `app`, resolving to `https://app.mammoth.io/api/v2`).
3
+ Required: an API token (`mm_...`) and a workspace id. Optional: a one-label
4
+ server prefix (default `app`, resolving to `https://app.mammoth.io/api/v2`).
5
+ Login accepts nothing else. If `auth status` reports `credential: key_secret`
6
+ (a profile saved by an older CLI), it still works, but ask the operator to run
7
+ `mammoth auth login` again with a token.
8
+
9
+ A token may be limited to one project. It then gets HTTP 403
10
+ `authorization_required` in every other project, including a project it has
11
+ created. When that happens, stop creating projects: ask the operator which
12
+ project the token belongs to and pass `--project ID`, or ask for a token
13
+ created without a project.
5
14
 
6
15
  ## Precedence
7
16
  1. Explicit login handed to the current command (secure prompt or `--input`).
@@ -13,14 +22,14 @@ history, or unrelated files for them.
13
22
 
14
23
  ## How an agent obtains credentials
15
24
 
16
- An agent never receives the key or secret. When `auth status` reports a
25
+ An agent never receives the token. When `auth status` reports a
17
26
  missing profile or `has_credentials=false`, stop and hand the login to the
18
27
  human operator:
19
28
 
20
29
  1. Tell the operator where the credentials come from: in the Mammoth web app,
21
- **Workspace settings → API Tokens → Create token** gives a key and a secret;
22
- the web app shows the secret only once (on an existing token, **Generate new
23
- secret** replaces it). The workspace id is the number after `/workspaces/`
30
+ **Workspace settings → API Tokens → Create token** gives a token that
31
+ starts with `mm_`; the web app shows it only once (if it is lost, create a
32
+ new one). The workspace id is the number after `/workspaces/`
24
33
  in the web app's address bar. Then give the exact command to run in
25
34
  **their own** terminal. For production it is:
26
35
 
@@ -30,9 +39,9 @@ human operator:
30
39
 
31
40
  Add `--server-prefix release` only when the task names the release
32
41
  environment, and `--profile NAME` only when the operator wants a profile
33
- other than `default`. The command prompts for the key and secret with
34
- hidden input, then the workspace id, so no secret enters chat, argv, or
35
- history. Credentials are per environment: a release key never
42
+ other than `default`. The command prompts for the token with hidden
43
+ input, then the workspace id, so no secret enters chat, argv, or history.
44
+ Tokens are per environment and per workspace: a release token never
36
45
  authenticates on `app`.
37
46
  On macOS the Keychain may show a dialog about `mammoth-cli`; tell the
38
47
  operator to choose **Always Allow**. If the keychain cannot be used (for
@@ -41,12 +50,11 @@ human operator:
41
50
  2. Wait for the operator to confirm, then re-run
42
51
  `mammoth auth status --profile PROFILE` and
43
52
  `mammoth doctor --profile PROFILE`.
44
- 3. Do not ask the operator to paste the key or secret into chat. Do not run
53
+ 3. Do not ask the operator to paste the token into chat. Do not run
45
54
  `auth login` yourself, with or without `--input`, unless the operator has
46
55
  explicitly given you a protected `0600` credential file path to use.
47
56
 
48
- The only supported configuration is the API key, API secret, workspace id, and
49
- an optional one-label server prefix (default `app`). There is no base-url
57
+ The only supported configuration is the API token, the workspace id, and an optional one-label server prefix (default `app`). There is no base-url
50
58
  override.
51
59
 
52
60
  ## Cold-start sequence
@@ -107,8 +115,7 @@ authorization failure. When using the selected profile, `--profile PROFILE`
107
115
  may be omitted.
108
116
 
109
117
  For an ordinary human-operated terminal, prefer the first command: it asks
110
- for the key and secret without putting either in shell history, argv, chat, or
111
- logs. For headless POSIX work, create the JSON file outside the repository, set
118
+ for the token without putting it in shell history, argv, chat, or logs. For headless POSIX work, create the JSON file outside the repository, set
112
119
  its permissions to `0600`, and pass only its path. With a protected POSIX file,
113
120
  specify `--storage file` explicitly; `--storage auto` can require an available
114
121
  OS keyring and is not a reliable headless fallback. On Windows, do not use the
@@ -116,8 +123,8 @@ file backend as a secret store; use the OS keyring or stop and obtain a
116
123
  supported secure store. Remove any input file after the
117
124
  profile is stored.
118
125
 
119
- `creds.json` is a `0600` JSON file: `{"api_key": "...", "api_secret": "...",
120
- "workspace_id": 4, "server_prefix": "app"}` (`server_prefix` optional). You can
126
+ `creds.json` is a `0600` JSON file: `{"api_token": "mm_...", "workspace_id": 4,
127
+ "server_prefix": "app"}` (`server_prefix` optional). You can
121
128
  also pipe it with `--input - --input-format json`.
122
129
 
123
130
  Secrets live in the OS keyring (or an explicitly selected `0600` file
@@ -24,7 +24,7 @@ workspace/project scope. Then add:
24
24
  - completed actions and remaining objectives;
25
25
  - a cleanup owner plus dependency order.
26
26
 
27
- Never include API keys, API secrets, tokens, headers, credentials files, raw
27
+ Never include API tokens, headers, credentials files, raw
28
28
  secret-bearing input, or unredacted response bodies. IDs and display names are
29
29
  safe only when needed to identify the authorized task.
30
30
 
@@ -46,14 +46,17 @@ or secrets in an argument, prompt, transcript, or checkpoint.
46
46
 
47
47
  Do not print, echo, or copy secret-bearing inputs. A failed status, login,
48
48
  or doctor check stops the task before discovery and business commands.
49
- 4. Discover instead of guessing. Run `mammoth schema list/find/get --output
50
- json --no-input` for local CLI routes; `mammoth capability list --output
51
- json --no-input` is an API-binding inventory and can omit typed/local
52
- routes. Check [capabilities](capabilities.md) for whether a route is
53
- proven, not supported, or untried on release before building a plan on
54
- it. Then resolve workspace/project/dataset/view
49
+ 4. Discover instead of guessing. Search with the goal in plain words
50
+ (`mammoth schema find "merge two datasets"` finds the join), then run
51
+ `mammoth schema get COMMAND_ID` for local CLI routes; `mammoth view transform
52
+ --help` lists every data transformation; `mammoth schema list` is the
53
+ complete inventory. `mammoth capability list` is an API-binding inventory
54
+ and can omit typed/local routes. Check [capabilities](capabilities.md)
55
+ for whether a route is proven, not supported, or untried on release
56
+ before building a plan on it. Then resolve workspace/project/dataset/view
55
57
  parents with reads. Use display names returned by the exact view schema.
56
- 5. Translate the business intent into a plan the agent chooses. Submit only
58
+ 5. Translate the business intent into a plan the agent chooses;
59
+ [about Mammoth](about-mammoth.md) maps goals to features. Submit only
57
60
  supported operations against the active project (`project ensure` sets it;
58
61
  `--project` overrides) with structured `--input`. Do not use private
59
62
  HTTP/SDK escape hatches or local data processing as a substitute.