Command-line interface for the Mammoth Analytics platform
Project description
mammoth-cli
A typed command-line interface for the Mammoth Analytics
platform. The executable is mammoth.
The CLI uses the public mammoth-io SDK for all Mammoth requests. It does not
build a second HTTP client and does not call private SDK members.
Status
Stable. mammoth-cli 1.0.0 is a production release; the command surface and the
machine-output contract are covered by the compatibility policy below.
Versioning & support
mammoth-cli follows Semantic Versioning for the 1.x
series. Within the 1.x major line:
- The machine-output and error-envelope contract is stable.
SCHEMA_VERSION(seemammoth_cli/__init__.py) identifies that contract and does not change incompatibly within a major version; new fields may be added, but existing fields and their meanings are preserved. - The CLI surface is stable: command names, subcommands, flags, and exit codes are not removed or repurposed. New commands, flags, and output fields may be added in minor releases.
- Bug fixes ship in patch releases; additive, backward-compatible changes ship in minor releases.
Any breaking change to the machine-output contract or the CLI surface bumps the major version (2.0.0).
Layout
| Path | Purpose |
|---|---|
mammoth_cli/ |
CLI package (app, commands, contracts, services, context, output, errors, manifest, skills, messages). |
spec/openapi/ |
Pinned production OpenAPI snapshot and metadata. |
spec/manifests/ |
Reviewed parity manifests: operations, SDK methods, commands, and the schema. |
spec/reports/ |
Generated parity report and expected red-first baseline. |
scripts/ |
Deterministic build scripts (offline, no login). |
tests/ |
Contract, unit, subprocess, and guarded live tests. |
Reproducing the manifests
python scripts/sync_openapi.py --check # verify the pinned snapshot digest
python scripts/build_manifests.py # regenerate the three manifests
python scripts/build_parity_report.py # regenerate spec/reports/parity.md
Refreshing the pinned snapshot from the network is an explicit maintenance
operation (python scripts/sync_openapi.py); ordinary CI never fetches it.
Development
pytest tests/ -q # unit + contract tests (live tests deselected)
ruff check mammoth_cli scripts tests
black mammoth_cli scripts tests
mypy mammoth_cli
Releasing
The CLI and its mammoth-io SDK dependency publish from independent,
tag-triggered workflows (cli-v* / sdk-v*); the SDK must publish first. The
full process — tag-triggered CI (Trusted Publishing + Sigstore-signed installer
assets), one-time PyPI setup, the local fallback, and the dependency lock — is
documented in ../RELEASING.md.
poetry.lock pins the resolved dependency tree; CI runs poetry check --lock
to keep it consistent with pyproject.toml.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mammoth_cli-1.0.1.tar.gz.
File metadata
- Download URL: mammoth_cli-1.0.1.tar.gz
- Upload date:
- Size: 404.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53d9071a213ecdc5a43039b99fc16d2bf02e5b8e604d20b5fb9808a192cfa558
|
|
| MD5 |
b9456a037bb99ab77986e45fc933b515
|
|
| BLAKE2b-256 |
79f6b618b2854f90f0b90cca071f963a74048db51a05d4a754b08e671ba313d3
|
File details
Details for the file mammoth_cli-1.0.1-py3-none-any.whl.
File metadata
- Download URL: mammoth_cli-1.0.1-py3-none-any.whl
- Upload date:
- Size: 507.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e66b3b3d740f6bdd71cb46e6861ddbc2e0113ecf69f8163483dda13706fc519
|
|
| MD5 |
63a368767a4917217fe96c1202c09bc4
|
|
| BLAKE2b-256 |
86b9c5efb728e137762f0d1c03958e6d7fafb6f0bbbb15c37a58ae5f2ce179ef
|