asterai component push - Push a component to the registry
USAGE:
asterai component push [OPTIONS]
OPTIONS:
--pkg <PATH> Path to package.wasm (WIT interface) [default: package.wasm]
--component <PATH> Path to component.wasm (implementation) [default: component.wasm]
-i, --interface-only Push only the WIT interface (no implementation)
-f, --force Force overwrite existing version
-p, --public Push and create the component as public
-h, --help Show this help message
VERSION BEHAVIOR:
- Version is read from the WIT package declaration
- No version in WIT -> pushes to :latest (mutable)
- Semver version (0.2.3) -> immutable for public components
- Pre-release (0.2.3-alpha) -> mutable
Private components:
- Mutable tags (latest, pre-release) can be overwritten freely
- Immutable tags require --force to overwrite
Public components:
- Immutable tags (release semver) can NEVER be overwritten
- Mutable tags require --force to overwrite (prevents accidents)
- If immutable version exists, CLI auto-bumps patch and asks you to rebuild
EXAMPLES:
# Push component with interface (default paths)
asterai component push
# Push with custom paths
asterai component push --pkg ./build/package.wasm --component ./build/component.wasm
# Push interface-only (WIT package without implementation)
asterai component push --interface-only --pkg ./my-interface.wasm
# Force overwrite (private components only)
asterai component push --force
NOTES:
- package.wasm (WIT interface) is always required
- component.wasm is optional; if not found, pushes as interface-only
- Files are searched in current directory, then in ./build/
- --public only works for new components; existing private components
must change visibility via the web UI