exoclaw-channel-codemod
The codemod that vendors HKUDS/nanobot channels into exoclaw — used as a build-time and test-time dependency by every exoclaw-channel-{slack,telegram,discord,email,matrix,whatsapp} package.
What it does
Given a HKUDS/nanobot channel source file (vendor/upstream.py) and optional ports (vendor/upstream_test.py) snapshotted at a pinned commit (vendor/SHA), plus optional channel-specific patches (patches/00NN-*.patch), it produces:
exoclaw_channel_<name>/channel.py— the channel module ready to shiptests/test_channel.py— the upstream test suite re-targeted at the local module
Transforms are mechanical (import rewrites, signature tweaks, bus capture, monkeypatch string-target rewrites). Patches are applied after the codemod for channel-specific tweaks that can't be generalized.
Public API
from exoclaw_channel_codemod import regenerate
regenerate(pkg_dir) # one package
Pure-Python and idempotent (only writes when content changed).
Maintainer scripts
sync.sh <name> [--apply]— fetch latest upstream, diff, optionally regeneratescaffold-channel.sh <name>— bootstrap a new channel package by snapshotting upstream
Why this is its own package
- Build isolation: hatchling builds each
exoclaw-channel-*wheel in an isolated env. The hatch hook in those packages declaresexoclaw-channel-codemodas a build dependency so it's importable inside the sandbox. - Audit boundary: the codemod is the trusted transform. Versioning it as a real package makes "what was used to derive this generated file" explicit.
Audit boundary
Vendored channel packages commit only vendor/upstream*.py + vendor/SHA + patches/. The generated channel.py and test_channel.py are gitignored — they're derivatives. Anyone reviewing a channel package can verify "this wheel = upstream@SHA + this codemod version + listed patches" by checking out the source and running the test suite (which materializes the codemod output via conftest.py).
Metadata
Release files for exoclaw-channel-codemod 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| exoclaw_channel_codemod-0.1.0.tar.gz | 9.6 kB | Without provenance | Details for exoclaw_channel_codemod-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| exoclaw_channel_codemod-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for exoclaw_channel_codemod-0.1.0-py3-none-any.whl |
Total release size: 17.0 kB
Release files / exoclaw_channel_codemod-0.1.0.tar.gz
| Download URL | exoclaw_channel_codemod-0.1.0.tar.gz |
|---|---|
| Size | 9.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c782347d7fd5a6984bde41e1eb18c3318e4451c1c69408b68c1a1898a15cc3b9
|
|
BLAKE2b-256 checksum How to use checksums |
28f32ea8859eb35a3f3777c6150181f9b239def988efaf5763b1ed68b79e1ca3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / exoclaw_channel_codemod-0.1.0-py3-none-any.whl
| Download URL | exoclaw_channel_codemod-0.1.0-py3-none-any.whl |
|---|---|
| Size | 7.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
74a1796f897677aa8fb720af0d6ef2965f4dec8807526315967ce0dd4309bbde
|
|
BLAKE2b-256 checksum How to use checksums |
6b510e133693d94ea339a528cd8421cb39a672d6fe3cabea3210e3613ea6c20a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for exoclaw-channel-codemod 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.