pub enum Addition {
Graphify,
ClaudePlugins,
OhMyOpenAgent,
OhMyOpenCodeSlim,
Rust,
Chromium,
}Expand description
Something an image is built with beside the harness, in the order a build installs it.
These are what the recipe’s steps are: the parts of a profile that are downloaded while the image
is built, unpinned, like the harnesses themselves, so a rebuild is how an update arrives. A part
that is written into the image rather than downloaded — Extra::Settings — is not one of them.
Variants§
Graphify
graphify (PyPI graphifyy), the code map the owner’s own agents ask before they read a
file. Every harness gets it. It needs Python 3.10 or later, which the base image does not
carry, so Debian’s own python3 and pipx come with it, and it is installed outside the
home directory: everything under the home is copied into each workspace’s home volume on
its first start, and a 200 MB tool does not belong there.
ClaudePlugins
The Claude Code plugins of Template::claude_plugins, from the marketplaces in
CLAUDE_MARKETPLACES. Claude Code only; the others have their own counterparts.
OhMyOpenAgent
oh-my-openagent (npm), opencode’s plugin, loaded from the image by the path in
OPENCODE_PLUGIN_SETTINGS. opencode only.
OhMyOpenCodeSlim
oh-my-opencode-slim (npm), the lighter fork of oh-my-openagent, loaded from the image by
the path in OPENCODE_SLIM_SETTINGS. opencode under oh my opencode slim only; a profile
never has both, since each brings a whole team of agents meant to run alone.
Rust
What building the Quvyta apps needs, Quvyta development only: a C compiler, pkg-config
and OpenSSL’s headers from the system’s own packages, with git, ssh, curl, jq, procps and
bash; Rust’s stable toolchain with clippy and rustfmt from rustup, for whatever machine
the image is built on; and uv. Rust is installed outside the home directory, in
RUSTUP_HOME and CARGO_HOME, for the same reason graphify is, and left writable by
whoever the container runs as: a project that names its own toolchain has rustup fetch it
there at run time.
Chromium
Chromium from the system’s own packages, Quvyta development only: the browser project’s
tests drive a real one. Ubuntu 24.04 packages it only as a snap, which does not run in a
container, so there it cannot be had (crate::base::Os::chromium).
Trait Implementations§
impl Copy for Addition
impl Eq for Addition
impl StructuralPartialEq for Addition
Auto Trait Implementations§
impl Freeze for Addition
impl RefUnwindSafe for Addition
impl Send for Addition
impl Sync for Addition
impl Unpin for Addition
impl UnsafeUnpin for Addition
impl UnwindSafe for Addition
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more