diff --git a/.github/workflows/validate-canvas-extensions.yml b/.github/workflows/validate-canvas-extensions.yml index 558a5766c..07d997a13 100644 --- a/.github/workflows/validate-canvas-extensions.yml +++ b/.github/workflows/validate-canvas-extensions.yml @@ -54,7 +54,10 @@ jobs: ext_name="${file#extensions/}" ext_name="${ext_name%%/*}" - if [ "$ext_name" = "external-assets" ]; then + # Skip the shared external-assets/ directory and any catalog files that + # live directly under extensions/ (e.g. external.json) — these are not + # extension directories. Top-level files are identified by a dot in the name. + if [ "$ext_name" = "external-assets" ] || [[ "$ext_name" == *.* ]]; then continue fi diff --git a/extensions/external-assets/vox-preview.png b/extensions/external-assets/vox-preview.png new file mode 100644 index 000000000..9ac349236 Binary files /dev/null and b/extensions/external-assets/vox-preview.png differ diff --git a/extensions/external.json b/extensions/external.json index f0e2f561a..a42502492 100644 --- a/extensions/external.json +++ b/extensions/external.json @@ -22,5 +22,31 @@ "installUrl": "https://github.com/jdubois/coffilot", "sourceUrl": "https://github.com/jdubois/coffilot", "imagePath": "extensions/external-assets/coffilot-preview.png" + }, + { + "id": "vox", + "name": "Vox", + "description": "Hands-free voice panel for Copilot: talk to the agent out loud and hear it reply, with a reactive listening orb. Voice in, voice out.", + "author": { "name": "aasis21", "url": "https://github.com/aasis21" }, + "keywords": [ + "voice", + "text-to-speech", + "speech-to-text", + "accessibility", + "hands-free" + ], + "screenshots": { + "icon": { + "path": "extensions/external-assets/vox-preview.png", + "type": "image/png" + }, + "gallery": { + "path": "extensions/external-assets/vox-preview.png", + "type": "image/png" + } + }, + "installUrl": "https://github.com/aasis21/vox", + "sourceUrl": "https://github.com/aasis21/vox", + "imagePath": "extensions/external-assets/vox-preview.png" } ]