/** Declarative help for the `assistant avatar` command. */ import type { CliCommandHelp } from "../lib/cli-command-help.js"; export const avatarHelp: CliCommandHelp = { name: "avatar", description: "Manage the assistant's avatar", helpText: ` The avatar system supports two modes: 1. Native character — a procedurally generated character with configurable body shape, eye style, and color. The character is rendered as both a PNG image and ASCII art. Use the "character" subcommand group to manage native character avatars. 2. Custom image — an externally provided image file set via the "set" subcommand, or generated via "generate". Files are stored in $VELLUM_WORKSPACE_DIR/data/avatar/: character-traits.json Current trait selection (bodyShape, eyeStyle, color) avatar-image.png Rendered PNG of the character character-ascii.txt ASCII art representation (best-effort; may not be written) Examples: $ assistant avatar set --image /path/to/photo.png $ assistant avatar remove $ assistant avatar get --format base64 $ assistant avatar character update --body-shape blob --eye-style curious --color green $ assistant avatar generate --description "a cute blue cat"`, subcommands: [ { name: "generate", description: "Generate an AI avatar from a text description", options: [ { flags: "--description ", description: "Description of the avatar to generate", required: true, }, ], helpText: ` Generates an avatar image using AI based on the provided text description and saves it as the assistant's avatar PNG. This replaces any existing native character avatar — the character traits and ASCII files are removed. On success, writes avatar-image.png to $VELLUM_WORKSPACE_DIR/data/avatar/ and removes character-traits.json and character-ascii.txt if they exist. Examples: $ assistant avatar generate --description "a cute blue cat" $ assistant avatar generate --description "a friendly robot with green eyes"`, }, { name: "set", description: "Set the assistant's avatar from an image file (removes any native character)", options: [ { flags: "--image ", description: "Path to image file (absolute or relative to workspace)", required: true, }, ], helpText: ` Sets the assistant's avatar by copying the provided image file to the canonical avatar location. This REPLACES any existing avatar and removes any configured native character: character-traits.json (and character-ascii.txt) are deleted, so a previously configured character is NOT preserved and cannot be restored. Rebuild the character with "assistant avatar character update" to reconfigure one. The --image path can be absolute or relative to the workspace directory. Examples: $ assistant avatar set --image /path/to/photo.png $ assistant avatar set --image conversations/abc123/attachments/Dropped\\ Image.png`, }, { name: "remove", description: "Reset the avatar to none (clears image and character)", helpText: ` Resets the avatar to its empty state. This deletes ALL avatar artifacts — the custom image (avatar-image.png) AND any configured native character (character-traits.json / character-ascii.txt) — and marks the avatar as "none". This is destructive: a previously configured native character is NOT preserved and will not be restored. Rebuild the character (or set a new image) to configure an avatar again. Examples: $ assistant avatar remove`, }, { name: "get", description: "Retrieve the current avatar", options: [ { flags: "--format ", description: "Output format: path or base64", defaultValue: "path", }, ], helpText: ` Retrieves the current avatar. By default prints the absolute file path; with --format base64, prints the base64-encoded image content. If no avatar image exists but character-traits.json is present, the PNG is regenerated from the saved traits before output. Examples: $ assistant avatar get $ assistant avatar get --format path $ assistant avatar get --format base64`, }, { name: "character", description: "Manage the native character avatar", helpText: ` A native character avatar is composed of three traits: - body shape: the silhouette of the character (e.g. blob, cloud, star) - eye style: the expression of the character's eyes (e.g. curious, gentle) - color: the body fill color (e.g. green, purple, teal) Use "character components" to list all available values for each trait. Use "character update" to set traits and regenerate the avatar files. Use "character ascii" to preview the current character in the terminal. Examples: $ assistant avatar character update --body-shape blob --eye-style curious --color green $ assistant avatar character components --json $ assistant avatar character ascii --width 40`, subcommands: [ { name: "update", description: "Set character traits and regenerate avatar", options: [ { flags: "--body-shape ", description: "Body shape (e.g. blob, cloud, star)", required: true, }, { flags: "--eye-style