mammoth-cli 2.1.6__tar.gz → 2.2.0__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 (251) hide show
  1. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/PKG-INFO +2 -2
  2. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/__init__.py +1 -1
  3. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/app.py +16 -1
  4. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/command-index.md +2 -2
  5. mammoth_cli-2.2.0/mammoth_cli/bundled_skill/mammoth-cli/references/commands/agent.md +133 -0
  6. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/agent.py +59 -0
  7. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/registry.py +8 -0
  8. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/schema.py +26 -1
  9. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/embed.py +8 -0
  10. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/runtime/invocation.py +1 -0
  11. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/input_fields.py +14 -0
  12. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/positionals.py +24 -0
  13. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/sdk_service.py +10 -0
  14. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/pyproject.toml +2 -2
  15. mammoth_cli-2.2.0/spec/manifests/commands/agent.yaml +534 -0
  16. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/edits-target.source.yaml +5 -0
  17. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/sdk-catalog.source.yaml +56 -0
  18. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/sdk-methods.yaml +96 -0
  19. mammoth_cli-2.1.6/mammoth_cli/bundled_skill/mammoth-cli/references/commands/agent.md +0 -53
  20. mammoth_cli-2.1.6/spec/manifests/commands/agent.yaml +0 -206
  21. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/.gitignore +0 -0
  22. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/LICENSE +0 -0
  23. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/README.md +0 -0
  24. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/__main__.py +0 -0
  25. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/SKILL.md +0 -0
  26. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/about-mammoth.md +0 -0
  27. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.md +0 -0
  28. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities-misc.md +0 -0
  29. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities.md +0 -0
  30. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/activity.md +0 -0
  31. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/addon.md +0 -0
  32. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/ai.md +0 -0
  33. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/annotation.md +0 -0
  34. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/auth.md +0 -0
  35. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/automation.md +0 -0
  36. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/batch.md +0 -0
  37. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/billing.md +0 -0
  38. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/browse.md +0 -0
  39. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/calc.md +0 -0
  40. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/capability.md +0 -0
  41. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/client-app.md +0 -0
  42. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/completion.md +0 -0
  43. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/config.md +0 -0
  44. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/connector.md +0 -0
  45. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/context.md +0 -0
  46. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-qa.md +0 -0
  47. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-style.md +0 -0
  48. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard.md +0 -0
  49. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/data-app.md +0 -0
  50. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dataset.md +0 -0
  51. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/doctor.md +0 -0
  52. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/external-key.md +0 -0
  53. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/file.md +0 -0
  54. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/folder.md +0 -0
  55. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/job.md +0 -0
  56. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/log.md +0 -0
  57. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/notification.md +0 -0
  58. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/parameter.md +0 -0
  59. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/project.md +0 -0
  60. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/report.md +0 -0
  61. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schedule.md +0 -0
  62. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schema.md +0 -0
  63. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/skill.md +0 -0
  64. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/snippet.md +0 -0
  65. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/support.md +0 -0
  66. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/template.md +0 -0
  67. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/trash.md +0 -0
  68. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/upgrade.md +0 -0
  69. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/user.md +0 -0
  70. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/version.md +0 -0
  71. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view-transform.md +0 -0
  72. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view.md +0 -0
  73. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/webhook.md +0 -0
  74. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workflow.md +0 -0
  75. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workspace.md +0 -0
  76. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/handoff.md +0 -0
  77. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/input.md +0 -0
  78. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/jobs-drafts.md +0 -0
  79. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/machine-output.md +0 -0
  80. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/operations.md +0 -0
  81. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/auth-scope.md +0 -0
  82. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/cleanup.md +0 -0
  83. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/dashboards.md +0 -0
  84. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/end-to-end.md +0 -0
  85. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/exports.md +0 -0
  86. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/index.md +0 -0
  87. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/need-action.md +0 -0
  88. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/resources.md +0 -0
  89. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/scheduling.md +0 -0
  90. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/transforms.md +0 -0
  91. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/typed-etl-discovery.md +0 -0
  92. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/recovery.md +0 -0
  93. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/report-checklist.md +0 -0
  94. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/retention.md +0 -0
  95. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/safety.md +0 -0
  96. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/bundled_skill/mammoth-cli/references/task-start.md +0 -0
  97. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/__init__.py +0 -0
  98. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/activity.py +0 -0
  99. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/addon.py +0 -0
  100. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/ai.py +0 -0
  101. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/annotation.py +0 -0
  102. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/auth.py +0 -0
  103. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/automation.py +0 -0
  104. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/batch.py +0 -0
  105. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/billing.py +0 -0
  106. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/browse.py +0 -0
  107. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/calc.py +0 -0
  108. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/capability.py +0 -0
  109. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/client_app.py +0 -0
  110. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/completion.py +0 -0
  111. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/config.py +0 -0
  112. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/connector.py +0 -0
  113. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/context.py +0 -0
  114. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/dashboard.py +0 -0
  115. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/data_app.py +0 -0
  116. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/dataset.py +0 -0
  117. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/doctor.py +0 -0
  118. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/external_key.py +0 -0
  119. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/file.py +0 -0
  120. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/folder.py +0 -0
  121. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/job.py +0 -0
  122. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/notification.py +0 -0
  123. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/parameter.py +0 -0
  124. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/project.py +0 -0
  125. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/report.py +0 -0
  126. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/schedule.py +0 -0
  127. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/skill.py +0 -0
  128. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/snippet.py +0 -0
  129. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/support.py +0 -0
  130. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/template.py +0 -0
  131. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/trash.py +0 -0
  132. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/upgrade.py +0 -0
  133. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/user.py +0 -0
  134. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/view.py +0 -0
  135. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/view_ops.py +0 -0
  136. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/view_profile.py +0 -0
  137. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/webhook.py +0 -0
  138. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/workflow.py +0 -0
  139. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/commands/workspace.py +0 -0
  140. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/context/__init__.py +0 -0
  141. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/context/credentials.py +0 -0
  142. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/context/endpoint.py +0 -0
  143. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/context/profiles.py +0 -0
  144. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/context/resolver.py +0 -0
  145. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/contracts/__init__.py +0 -0
  146. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/contracts/auth.py +0 -0
  147. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/errors/__init__.py +0 -0
  148. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/errors/envelope.py +0 -0
  149. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/manifest/__init__.py +0 -0
  150. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/manifest/loader.py +0 -0
  151. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/messages/__init__.py +0 -0
  152. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/output/__init__.py +0 -0
  153. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/output/envelope.py +0 -0
  154. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/output/normalize.py +0 -0
  155. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/output/policy.py +0 -0
  156. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/output/progress.py +0 -0
  157. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/output/render.py +0 -0
  158. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/py.typed +0 -0
  159. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/runtime/__init__.py +0 -0
  160. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/runtime/confirm.py +0 -0
  161. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/runtime/dataset_health.py +0 -0
  162. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/runtime/dryrun.py +0 -0
  163. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/runtime/dryrun_targets.py +0 -0
  164. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/runtime/embedded.py +0 -0
  165. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/runtime/executor.py +0 -0
  166. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/runtime/input_loader.py +0 -0
  167. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/runtime/intent_only.py +0 -0
  168. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/runtime/new_data.py +0 -0
  169. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/runtime/options.py +0 -0
  170. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/runtime/parents.py +0 -0
  171. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/runtime/runlog.py +0 -0
  172. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/runtime/session.py +0 -0
  173. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/runtime/state.py +0 -0
  174. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/runtime/strict.py +0 -0
  175. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/runtime/updates.py +0 -0
  176. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/runtime/validate.py +0 -0
  177. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/runtime/verify.py +0 -0
  178. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/__init__.py +0 -0
  179. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/argspec.py +0 -0
  180. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/board_values.py +0 -0
  181. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/coerce.py +0 -0
  182. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/command_contract.py +0 -0
  183. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/conditions.py +0 -0
  184. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/dashboard_filters.py +0 -0
  185. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/dashboard_pages.py +0 -0
  186. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/dashboard_review.py +0 -0
  187. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/data_profile.py +0 -0
  188. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/data_quality.py +0 -0
  189. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/dispatch.py +0 -0
  190. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/factory.py +0 -0
  191. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/listing.py +0 -0
  192. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/mapping.py +0 -0
  193. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/openapi_types.py +0 -0
  194. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/protocol.py +0 -0
  195. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/read_queries.py +0 -0
  196. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/stored_stats.py +0 -0
  197. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/testing.py +0 -0
  198. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/text_dates.py +0 -0
  199. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/type_system.py +0 -0
  200. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/services/write_impact.py +0 -0
  201. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/skills/__init__.py +0 -0
  202. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/skills/installer.py +0 -0
  203. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/skills/steering.py +0 -0
  204. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/mammoth_cli/testing.py +0 -0
  205. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/activity.yaml +0 -0
  206. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/addon.yaml +0 -0
  207. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/ai.yaml +0 -0
  208. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/annotation.yaml +0 -0
  209. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/auth.yaml +0 -0
  210. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/automation.yaml +0 -0
  211. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/batch.yaml +0 -0
  212. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/billing.yaml +0 -0
  213. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/browse.yaml +0 -0
  214. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/calc.yaml +0 -0
  215. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/capability.yaml +0 -0
  216. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/client-app.yaml +0 -0
  217. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/completion.yaml +0 -0
  218. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/config.yaml +0 -0
  219. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/connector.yaml +0 -0
  220. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/context.yaml +0 -0
  221. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/dashboard.yaml +0 -0
  222. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/data-app.yaml +0 -0
  223. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/dataset.yaml +0 -0
  224. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/doctor.yaml +0 -0
  225. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/external-key.yaml +0 -0
  226. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/file.yaml +0 -0
  227. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/folder.yaml +0 -0
  228. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/job.yaml +0 -0
  229. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/log.yaml +0 -0
  230. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/notification.yaml +0 -0
  231. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/parameter.yaml +0 -0
  232. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/project.yaml +0 -0
  233. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/report.yaml +0 -0
  234. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/schedule.yaml +0 -0
  235. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/schema.yaml +0 -0
  236. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/skill.yaml +0 -0
  237. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/snippet.yaml +0 -0
  238. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/support.yaml +0 -0
  239. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/template.yaml +0 -0
  240. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/trash.yaml +0 -0
  241. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/upgrade.yaml +0 -0
  242. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/user.yaml +0 -0
  243. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/version.yaml +0 -0
  244. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/view.yaml +0 -0
  245. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/webhook.yaml +0 -0
  246. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/workflow.yaml +0 -0
  247. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/commands/workspace.yaml +0 -0
  248. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/openapi-operations.yaml +0 -0
  249. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/manifests/schema-v1.json +0 -0
  250. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/openapi/metadata.json +0 -0
  251. {mammoth_cli-2.1.6 → mammoth_cli-2.2.0}/spec/openapi/openapi.json +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mammoth-cli
3
- Version: 2.1.6
3
+ Version: 2.2.0
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.9,>=0.8.2
20
+ Requires-Dist: mammoth-io<0.9,>=0.8.3
21
21
  Requires-Dist: platformdirs<5,>=4.10
22
22
  Requires-Dist: pydantic<3,>=2.12.5
23
23
  Requires-Dist: pyyaml<7,>=6
@@ -6,7 +6,7 @@ not implement a second HTTP client and does not call private SDK members.
6
6
 
7
7
  from __future__ import annotations
8
8
 
9
- __version__ = "2.1.6"
9
+ __version__ = "2.2.0"
10
10
 
11
11
  # The versioned machine output envelope contract.
12
12
  SCHEMA_VERSION = 1
@@ -30,6 +30,7 @@ from typer.core import TyperGroup
30
30
  from mammoth_cli import __version__
31
31
  from mammoth_cli.commands import BESPOKE
32
32
  from mammoth_cli.commands.registry import HANDLERS, Handler
33
+ from mammoth_cli.commands.schema import IN_PLACE_RECIPE, edits_view_in_place
33
34
  from mammoth_cli.context import profiles
34
35
  from mammoth_cli.errors.envelope import EXIT_USAGE, CliError, not_implemented_error
35
36
  from mammoth_cli.manifest.loader import command_by_id, load_commands
@@ -60,7 +61,7 @@ OUTPUT_MODES = VALID_OUTPUTS
60
61
  _GROUP_DESCRIPTIONS = {
61
62
  "activity": "Inspect workspace activity and audit history.",
62
63
  "addon": "Manage workspace add-ons.",
63
- "agent": "Work with Mammoth agent sessions and messages.",
64
+ "agent": "Work with Mammoth agent sessions, the changes a chat made, and its runs.",
64
65
  "ai": "Generate AI-assisted expressions and conditions.",
65
66
  "annotation": "Manage annotations on Mammoth resources.",
66
67
  "auth": "Sign in, sign out, and inspect credentials.",
@@ -556,6 +557,18 @@ def _shared_option_params() -> list[inspect.Parameter]:
556
557
  ),
557
558
  ],
558
559
  ),
560
+ opt(
561
+ "session",
562
+ None,
563
+ Annotated[
564
+ str | None,
565
+ typer.Option(
566
+ "--session",
567
+ help="Agent chat session id for 'agent action' and 'agent run' commands.",
568
+ rich_help_panel="Context and timeouts",
569
+ ),
570
+ ],
571
+ ),
559
572
  opt(
560
573
  "timeout",
561
574
  None,
@@ -929,6 +942,8 @@ def _command_help(command_id: str, record: dict[str, Any] | None) -> str | None:
929
942
  summary = doc.strip().splitlines()[0].strip().replace("``", "'")
930
943
  if summary:
931
944
  parts.append(summary)
945
+ if record is not None and edits_view_in_place(record):
946
+ parts.append(IN_PLACE_RECIPE)
932
947
  example = (record or {}).get("agent_example")
933
948
  if example:
934
949
  parts.append(f"Example: {example}")
@@ -1,12 +1,12 @@
1
1
  # Published CLI command catalog
2
2
 
3
- This generated catalog is a lookup table for every command in the published CLI manifest, currently 580; each entry carries its release status line. It is a command-contract index, not an assertion that every backend/OpenAPI operation has a CLI binding. For an exact local CLI contract, run `mammoth schema get COMMAND_ID`; `mammoth capability list` is an API-binding inventory and can omit typed/local CLI routes. For focused workflows, read the [recipes index](recipes/index.md). Sensitive structured input must come from a private file or pipe; never put secrets in literal argv.
3
+ This generated catalog is a lookup table for every command in the published CLI manifest, currently 588; each entry carries its release status line. It is a command-contract index, not an assertion that every backend/OpenAPI operation has a CLI binding. For an exact local CLI contract, run `mammoth schema get COMMAND_ID`; `mammoth capability list` is an API-binding inventory and can omit typed/local CLI routes. For focused workflows, read the [recipes index](recipes/index.md). Sensitive structured input must come from a private file or pipe; never put secrets in literal argv.
4
4
 
5
5
  Load only the applicable domain file:
6
6
 
7
7
  - [activity](commands/activity.md) — 2 published commands
8
8
  - [addon](commands/addon.md) — 7 published commands
9
- - [agent](commands/agent.md) — 5 published commands
9
+ - [agent](commands/agent.md) — 13 published commands
10
10
  - [ai](commands/ai.md) — 5 published commands
11
11
  - [annotation](commands/annotation.md) — 5 published commands
12
12
  - [auth](commands/auth.md) — 3 published commands
@@ -0,0 +1,133 @@
1
+ # `agent` commands
2
+
3
+ Every command returns the standard JSON envelope. On nonzero exit, read the error envelope and its `recovery_commands`; do not guess request fields. "Status on release" is joined from `docs/release-capability-matrix.json`: *ran once* means one bounded live run succeeded on the named CLI release, *untried* means nobody has run it, *not supported* means the backend refuses it. When this file disagrees with [capabilities](../capabilities.md) or a recipe, they win. Envelope shapes: [machine output](../machine-output.md).
4
+
5
+ ### `agent.action.delete`
6
+
7
+ Run: `mammoth agent action delete`. Exact input fields: `mammoth schema get agent.action.delete`.
8
+
9
+ Example: `mammoth agent action delete resource-123`. Illustrative only: append `--yes` after observing an owned target.
10
+
11
+ Result: `AgentActionDeleteResult`; mutation `destructive`, confirmation `prompt_or_yes`, wait policy `not_async`.
12
+
13
+ Status on release: untried; no live run recorded.
14
+
15
+ ### `agent.action.list`
16
+
17
+ Run: `mammoth agent action list`. Exact input fields: `mammoth schema get agent.action.list`.
18
+
19
+ Example: `mammoth agent action list`. Placeholders are illustrative; resolve IDs and input from observed reads.
20
+
21
+ Result: `AgentActionListResult`; mutation `read`, confirmation `none`, wait policy `not_async`.
22
+
23
+ Status on release: untried; no live run recorded.
24
+
25
+ ### `agent.chat`
26
+
27
+ Run: `mammoth agent chat`. Exact input fields: `mammoth schema get agent.chat`.
28
+
29
+ Example: `mammoth agent chat --input '{"message": "Summarize revenue by region", "scope": {"sample_key": "Status"}}'`. Placeholders are illustrative; resolve IDs and input from observed reads.
30
+
31
+ Result: `AgentChatResult`; mutation `benign_mutation`, confirmation `none`, wait policy `not_async`.
32
+
33
+ Status on release: untried; no live run recorded.
34
+
35
+ ### `agent.run.extend`
36
+
37
+ Run: `mammoth agent run extend`. Exact input fields: `mammoth schema get agent.run.extend`.
38
+
39
+ Example: `mammoth agent run extend resource-123`. Placeholders are illustrative; resolve IDs and input from observed reads.
40
+
41
+ Result: `AgentRunExtendResult`; mutation `benign_mutation`, confirmation `none`, wait policy `not_async`.
42
+
43
+ Status on release: untried; no live run recorded.
44
+
45
+ ### `agent.run.list`
46
+
47
+ Run: `mammoth agent run list`. Exact input fields: `mammoth schema get agent.run.list`.
48
+
49
+ Example: `mammoth agent run list`. Placeholders are illustrative; resolve IDs and input from observed reads.
50
+
51
+ Result: `AgentRunListResult`; mutation `read`, confirmation `none`, wait policy `not_async`.
52
+
53
+ Status on release: untried; no live run recorded.
54
+
55
+ ### `agent.run.pause`
56
+
57
+ Run: `mammoth agent run pause`. Exact input fields: `mammoth schema get agent.run.pause`.
58
+
59
+ Example: `mammoth agent run pause resource-123`. Placeholders are illustrative; resolve IDs and input from observed reads.
60
+
61
+ Result: `AgentRunPauseResult`; mutation `benign_mutation`, confirmation `none`, wait policy `not_async`.
62
+
63
+ Status on release: untried; no live run recorded.
64
+
65
+ ### `agent.run.resume`
66
+
67
+ Run: `mammoth agent run resume`. Exact input fields: `mammoth schema get agent.run.resume`.
68
+
69
+ Example: `mammoth agent run resume resource-123`. Placeholders are illustrative; resolve IDs and input from observed reads.
70
+
71
+ Result: `AgentRunResumeResult`; mutation `benign_mutation`, confirmation `none`, wait policy `not_async`.
72
+
73
+ Status on release: untried; no live run recorded.
74
+
75
+ ### `agent.run.status`
76
+
77
+ Run: `mammoth agent run status`. Exact input fields: `mammoth schema get agent.run.status`.
78
+
79
+ Example: `mammoth agent run status`. Placeholders are illustrative; resolve IDs and input from observed reads.
80
+
81
+ Result: `AgentRunStatusResult`; mutation `read`, confirmation `none`, wait policy `not_async`.
82
+
83
+ Status on release: untried; no live run recorded.
84
+
85
+ ### `agent.run.stop`
86
+
87
+ Run: `mammoth agent run stop`. Exact input fields: `mammoth schema get agent.run.stop`.
88
+
89
+ Example: `mammoth agent run stop resource-123`. Placeholders are illustrative; resolve IDs and input from observed reads.
90
+
91
+ Result: `AgentRunStopResult`; mutation `benign_mutation`, confirmation `none`, wait policy `not_async`.
92
+
93
+ Status on release: untried; no live run recorded.
94
+
95
+ ### `agent.session.delete`
96
+
97
+ Run: `mammoth agent session delete`. Exact input fields: `mammoth schema get agent.session.delete`.
98
+
99
+ Example: `mammoth agent session delete resource-123`. Illustrative only: append `--yes` after observing an owned target.
100
+
101
+ Result: `AgentSessionDeleteResult`; mutation `destructive`, confirmation `prompt_or_yes`, wait policy `not_async`.
102
+
103
+ Status on release: untried; no live run recorded.
104
+
105
+ ### `agent.session.list`
106
+
107
+ Run: `mammoth agent session list`. Exact input fields: `mammoth schema get agent.session.list`.
108
+
109
+ Example: `mammoth agent session list`. Placeholders are illustrative; resolve IDs and input from observed reads.
110
+
111
+ Result: `AgentSessionListResult`; mutation `read`, confirmation `none`, wait policy `not_async`.
112
+
113
+ Status on release: ran once on CLI 2.0.11 — Read-only sweep 2026-09-18: exit 0 on release with CLI 2.0.11; result keys: sessions. Single read only; no fixture variants, error envelopes, or write paths assessed.
114
+
115
+ ### `agent.session.messages`
116
+
117
+ Run: `mammoth agent session messages`. Exact input fields: `mammoth schema get agent.session.messages`.
118
+
119
+ Example: `mammoth agent session messages resource-123`. Placeholders are illustrative; resolve IDs and input from observed reads.
120
+
121
+ Result: `AgentSessionMessagesResult`; mutation `read`, confirmation `none`, wait policy `not_async`.
122
+
123
+ Status on release: untried; no live run recorded.
124
+
125
+ ### `agent.session.set-visibility`
126
+
127
+ Run: `mammoth agent session set-visibility`. Exact input fields: `mammoth schema get agent.session.set-visibility`.
128
+
129
+ Example: `mammoth agent session set-visibility resource-123 --input '{"visibility": "sample"}'`. Placeholders are illustrative; resolve IDs and input from observed reads.
130
+
131
+ Result: `AgentSessionSetVisibilityResult`; mutation `benign_mutation`, confirmation `none`, wait policy `not_async`.
132
+
133
+ Status on release: untried; no live run recorded.
@@ -204,3 +204,62 @@ def agent_session_set_visibility(invocation: Invocation) -> HandlerResult:
204
204
  with open_service(invocation) as (service, auth):
205
205
  data = service.call(_symbol(invocation), session_id=session_id, visibility=visibility)
206
206
  return data, _meta(invocation, auth.workspace_id, resolved_project(invocation))
207
+
208
+
209
+ def _require_session(invocation: Invocation) -> str:
210
+ """Return the agent chat session id, raising when none was given.
211
+
212
+ An embedded call gets the embedding chat's session as ``--session`` from
213
+ :func:`mammoth_cli.embed.invoke`; outside that, the caller passes it.
214
+
215
+ Raises:
216
+ CliError: ``missing_argument`` when no session id is set.
217
+ """
218
+ if not invocation.session:
219
+ raise CliError(
220
+ code=CODE_MISSING_ARGUMENT,
221
+ message="This command requires a session id.",
222
+ exit_status=EXIT_USAGE,
223
+ hint="Pass --session SESSION_ID (see 'mammoth agent session list').",
224
+ )
225
+ return invocation.session
226
+
227
+
228
+ def _session_call(invocation: Invocation, **ids: str) -> HandlerResult:
229
+ """Call this command's SDK method on the session plus any extra ids."""
230
+ session_id = _require_session(invocation)
231
+ with open_service(invocation) as (service, auth):
232
+ data = service.call(_symbol(invocation), session_id=session_id, **ids)
233
+ return data, _meta(invocation, auth.workspace_id, resolved_project(invocation))
234
+
235
+
236
+ def agent_action_list(invocation: Invocation) -> HandlerResult:
237
+ """List the changes one agent chat session made."""
238
+ return _session_call(invocation)
239
+
240
+
241
+ def agent_action_delete(invocation: Invocation) -> HandlerResult:
242
+ """Delete one object the chat created, by action id. Prompt or ``--yes`` required."""
243
+ action_id = _require_string_positional(invocation, "action id")
244
+ enforce_confirmation(
245
+ invocation, policy=POLICY_PROMPT_OR_YES, action=f"delete what agent action {action_id} made"
246
+ )
247
+ return _session_call(invocation, action_id=action_id)
248
+
249
+
250
+ def agent_run_status(invocation: Invocation) -> HandlerResult:
251
+ """Show the current run of one agent chat session."""
252
+ return _session_call(invocation)
253
+
254
+
255
+ def agent_run_list(invocation: Invocation) -> HandlerResult:
256
+ """List the runs of one agent chat session."""
257
+ return _session_call(invocation)
258
+
259
+
260
+ def _run_control(invocation: Invocation) -> HandlerResult:
261
+ """Pause, resume, stop or extend one run; the SDK method is the manifest's."""
262
+ return _session_call(invocation, run_id=_require_string_positional(invocation, "run id"))
263
+
264
+
265
+ agent_run_pause = agent_run_resume = agent_run_stop = agent_run_extend = _run_control
@@ -535,7 +535,15 @@ HANDLERS: dict[str, Handler] = {
535
535
  "schedule.update": schedule_cmd.schedule_update,
536
536
  "schedule.delete": schedule_cmd.schedule_delete,
537
537
  # agent family
538
+ "agent.action.delete": agent_cmd.agent_action_delete,
539
+ "agent.action.list": agent_cmd.agent_action_list,
538
540
  "agent.chat": agent_cmd.agent_chat,
541
+ "agent.run.extend": agent_cmd.agent_run_extend,
542
+ "agent.run.list": agent_cmd.agent_run_list,
543
+ "agent.run.pause": agent_cmd.agent_run_pause,
544
+ "agent.run.resume": agent_cmd.agent_run_resume,
545
+ "agent.run.status": agent_cmd.agent_run_status,
546
+ "agent.run.stop": agent_cmd.agent_run_stop,
539
547
  "agent.session.delete": agent_cmd.agent_session_delete,
540
548
  "agent.session.list": agent_cmd.agent_session_list,
541
549
  "agent.session.messages": agent_cmd.agent_session_messages,
@@ -469,6 +469,28 @@ _SCOPE_REQUIREMENTS: dict[str, dict[str, Any]] = {
469
469
  }
470
470
 
471
471
  _MAX_FIND_RESULTS = 20
472
+ # View transform/task commands add a step to the GIVEN view. An agent asked for
473
+ # a NEW dataset must know that before calling, so the statement is carried by
474
+ # every such command's contract (schema get ``preconditions``, find, --help).
475
+ _IN_PLACE_PREFIXES = ("view.transform.", "view.task.")
476
+ IN_PLACE_RECIPE = (
477
+ "EDITS THE GIVEN VIEW IN PLACE: this adds a step to the view and changes that view "
478
+ "and its dataset's output. To make a NEW dataset and leave the source untouched: "
479
+ "`mammoth view create SOURCE_DATASET_ID` (working view), do the steps on that working "
480
+ 'view, then `mammoth view export dataset WORKING_VIEW_ID --input \'{"dataset_name": "..."}\'`.'
481
+ )
482
+ _IN_PLACE_KEYWORDS = (
483
+ "new dataset create make in place edits given view working view source untouched"
484
+ )
485
+
486
+
487
+ def edits_view_in_place(record: dict[str, Any]) -> bool:
488
+ """True for a view transform/task command that changes an existing view."""
489
+ return bool(record.get("edits_target")) and str(record.get("command_id", "")).startswith(
490
+ _IN_PLACE_PREFIXES
491
+ )
492
+
493
+
472
494
  # Outranks any word-overlap score: a command named by its full path comes first.
473
495
  _NAMED_COMMAND_BOOST = 10_000
474
496
  # Bag-of-words scoring cannot tell "create a NEW VIEW from an existing
@@ -944,7 +966,9 @@ def _compact_contract(record: dict[str, Any]) -> dict[str, Any]:
944
966
  "the intended postcondition."
945
967
  )
946
968
  restrictions = record.get("known_restrictions")
947
- if restrictions is None:
969
+ if edits_view_in_place(record):
970
+ restrictions = f"{IN_PLACE_RECIPE} {restrictions or ''}".strip()
971
+ elif restrictions is None:
948
972
  required_positionals = [
949
973
  str(item.get("metavar") or item.get("name"))
950
974
  for item in record.get("positionals", [])
@@ -1664,6 +1688,7 @@ def find_schemas(
1664
1688
  (30, f"{record.get('human_example', '')} {record.get('agent_example', '')}"),
1665
1689
  (20, positional_help),
1666
1690
  (15, _operation_hints_by_command().get(command_id, "")),
1691
+ (15, _IN_PLACE_KEYWORDS if edits_view_in_place(record) else ""),
1667
1692
  (60, _COMMAND_DISCOVERY_PURPOSES.get(command_id, "")),
1668
1693
  (3, _GROUP_DISCOVERY_PURPOSES.get(command_path.split()[0], "")),
1669
1694
  )
@@ -39,6 +39,7 @@ def invoke(
39
39
  *,
40
40
  login: ExplicitLogin,
41
41
  project_id: int | None = None,
42
+ session_id: str | None = None,
42
43
  timeout: float | None = None,
43
44
  pipeline_timeout: float | None = None,
44
45
  job_timeout: float | None = None,
@@ -52,6 +53,9 @@ def invoke(
52
53
  login: The credentials, endpoint and extra headers for this call.
53
54
  project_id: The active project, sent as ``--project`` unless ``args``
54
55
  already names one.
56
+ session_id: The embedding chat's session, sent as ``--session`` unless
57
+ ``args`` already names one; ``agent action`` and ``agent run``
58
+ commands act on it, so the model never has to know its id.
55
59
  timeout: Per-request timeout in seconds, sent as ``--timeout`` unless
56
60
  ``args`` already sets one.
57
61
  pipeline_timeout: Pipeline wait timeout in seconds, sent as
@@ -68,6 +72,7 @@ def invoke(
68
72
  argv = _argv(
69
73
  args,
70
74
  project_id=project_id,
75
+ session_id=session_id,
71
76
  timeout=timeout,
72
77
  pipeline_timeout=pipeline_timeout,
73
78
  job_timeout=job_timeout,
@@ -92,11 +97,14 @@ def _argv(
92
97
  pipeline_timeout: float | None,
93
98
  job_timeout: float | None,
94
99
  return_running: bool,
100
+ session_id: str | None = None,
95
101
  ) -> list[str]:
96
102
  """``args`` plus the options an embedded call always runs with."""
97
103
  argv = list(args)
98
104
  if project_id is not None and not _has_option(argv, "--project"):
99
105
  argv += ["--project", str(project_id)]
106
+ if session_id is not None and not _has_option(argv, "--session"):
107
+ argv += ["--session", session_id]
100
108
  if timeout is not None and not _has_option(argv, "--timeout"):
101
109
  argv += ["--timeout", str(timeout)]
102
110
  if pipeline_timeout is not None and not _has_option(argv, "--pipeline-timeout"):
@@ -50,6 +50,7 @@ class Invocation:
50
50
  output: str = "table"
51
51
  profile: str | None = None
52
52
  project: int | None = None
53
+ session: str | None = None
53
54
  timeout: float | None = None
54
55
  job_timeout: float | None = None
55
56
  pipeline_timeout: float | None = None
@@ -7,6 +7,20 @@ from typing import Any
7
7
  from mammoth_cli.services.positionals import resolve_positionals
8
8
 
9
9
  _HANDLER_OWNED_FIELDS: dict[str, frozenset[str]] = {
10
+ # The chat session comes from the global ``--session`` option.
11
+ **{
12
+ f"agent.{command}": frozenset({"session_id"})
13
+ for command in (
14
+ "action.list",
15
+ "action.delete",
16
+ "run.status",
17
+ "run.list",
18
+ "run.pause",
19
+ "run.resume",
20
+ "run.stop",
21
+ "run.extend",
22
+ )
23
+ },
10
24
  # Skill handlers deliberately derive filesystem roots from the running
11
25
  # process and generate their own backup timestamp. User input must not
12
26
  # claim to control values that the handlers replace or omit.
@@ -127,6 +127,30 @@ def _optional_project_id() -> tuple[PositionalSpec, ...]:
127
127
  # Commands whose positionals the signature cannot express correctly. Each entry
128
128
  # replaces the derivation wholesale; the drift test proves the union is right.
129
129
  POSITIONAL_OVERRIDES: dict[str, tuple[PositionalSpec, ...]] = {
130
+ # The chat session is the global ``--session`` option, never a positional or
131
+ # an --input field; only the action or run being addressed is positional.
132
+ "agent.action.list": (),
133
+ "agent.run.status": (),
134
+ "agent.run.list": (),
135
+ "agent.action.delete": (
136
+ PositionalSpec(
137
+ name="action_id",
138
+ type=str,
139
+ required=True,
140
+ help="ID of the recorded action (from agent action list).",
141
+ ),
142
+ ),
143
+ **{
144
+ f"agent.run.{verb}": (
145
+ PositionalSpec(
146
+ name="run_id",
147
+ type=str,
148
+ required=True,
149
+ help="ID of the run (from agent run status or agent run list).",
150
+ ),
151
+ )
152
+ for verb in ("pause", "resume", "stop", "extend")
153
+ },
130
154
  "dashboard.assess-twb": (
131
155
  PositionalSpec(
132
156
  name="file",
@@ -16,6 +16,7 @@ from __future__ import annotations
16
16
 
17
17
  import asyncio
18
18
  import inspect
19
+ import os
19
20
  import re
20
21
  import threading
21
22
  from collections.abc import Callable
@@ -73,6 +74,10 @@ def _unrecognized_expression_token(message: str, expression: Any) -> str:
73
74
  return token or expression
74
75
 
75
76
 
77
+ AGENT_RUN_ENV = "MAMMOTH_AGENT_RUN"
78
+ AGENT_RUN_HEADER = "X-Mammoth-Agent-Run"
79
+
80
+
76
81
  class SdkMammothService:
77
82
  """Production :class:`~mammoth_cli.services.protocol.MammothService`."""
78
83
 
@@ -141,6 +146,11 @@ class SdkMammothService:
141
146
  # After construction: the client sets its credential headers in
142
147
  # ``__init__``, and a forwarded session must replace them.
143
148
  self._client.session.headers.update(auth.headers)
149
+ run_id = os.environ.get(AGENT_RUN_ENV, "").strip()
150
+ if run_id:
151
+ # A leg of a durable agent run names its run, so the server can
152
+ # refuse the run's own resume and extend.
153
+ self._client.session.headers[AGENT_RUN_HEADER] = run_id
144
154
  if project_id is not None:
145
155
  self._client.set_project_id(project_id)
146
156
 
@@ -1,13 +1,13 @@
1
1
  [project]
2
2
  name = "mammoth-cli"
3
- version = "2.1.6"
3
+ version = "2.2.0"
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.2,<0.9)",
10
+ "mammoth-io (>=0.8.3,<0.9)",
11
11
  "typer (>=0.27,<0.28)",
12
12
  "rich (>=15,<16)",
13
13
  "platformdirs (>=4.10,<5)",