vision input fails
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 48/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Pouca atividade
- Stack de tecnologia
- typescript
Direção de pesquisa
Comece por src/tools/read-file/read-file.ts e src/utils/file-references.ts e, em seguida, compare o tratamento binário deles com o de src/utils/clipboard-image.ts. Reproduza o problema com cmd -p usando uma imagem local e rastreie como o arquivo chega ao modelo; considera-se concluído quando arquivos de imagem compatíveis, incluindo os formatos mencionados no issue, produzirem vision content em headless mode em vez de gerar apenas texto ou serem ignorados.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Summary
Vision input currently works only through interactive TUI clipboard-paste and drag-drop (detectDroppedImageFile / detectClipboardImage → Jimp → base64 → {type:"image"}).
Environment
- cmd v0.38.2
- Installed via npm i -g command-code (mise)
- macOS (darwin)
- Model: Claude Sonnet 4 (claude-4-sonnet-20250514) — confirmed inputModalities: ["text","image"]
Reproduce
1. Put any JPEG or PNG in the working directory
2. Run:
cmd -p "Describe what you see in test.jpg"
Result: Model responds that it cannot visually inspect the image. Same result for PNG, GIF, WEBP.
Root cause (from inspecting dist/index.mjs)
- read_file returns text-only output for all binary files
src/tools/read-file/read-file.ts → formatOutput:
function formatOutput(e) {
if ("binary" === e.contentType)
return [...,Binary file: ${e.fileType}].join("\n");
// Model only ever sees: "Binary file: image/jpeg"
...
}
No {type: "image"} content block is ever created from a file read. The raw bytes are read into a Buffer but discarded. - @filepath references silently skip binary files
src/utils/file-references.ts → processFileReferences:
if ("binary" === i.contentType) continue; // images vanish entirely - AVIF and other modern formats fall through to the text path
getFileType uses a hardcoded extension map (Ib) with no .avif entry:
Ib = { ".png":"image/png", ".jpg":"image/jpeg", ".jpeg":"image/jpeg",
".gif":"image/gif", ".webp":"image/webp", ".svg":"image/svg+xml",
".bmp":"image/bmp", ".ico":"image/x-icon", ... }
// No .avif, .heic, .heif, .tiff
Since getFileType(".avif") returns "unknown", and isBinaryFile("unknown") returns false (it only matches known MIME values), AVIF files are read as UTF-8 text — producing garbled output rather than being flagged as binary. - Vision content blocks only exist in the TUI paste/drag-drop path
src/utils/clipboard-image.ts → detectDroppedImageFile → Jimp resize → base64 → {type:"image"}. This path is a React/Ink interactive handler and is not reachable in headless mode.
Expected Behavior
..
Actual Behavior
..
Steps to reproduce the issue
..
Command Code Version
latest
Operating System
macOS
Terminal/IDE
No response
Shell
No response
Additional context
No response
- Linguagem predominante
- Sem dados de linguagem
- Estrelas
- 4k
- Forks
- 350
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de CommandCodeAI/command-code
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
CommandCodeAI/command-code#855 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
CommandCodeAI/command-code#841 · 1 comentário ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
CommandCodeAI/command-code#655 · 1 comentário ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
CommandCodeAI/command-code#608 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 70/100
CommandCodeAI/command-code#893 ·
Todas as issues de CommandCodeAI/command-code
Issues semelhantes
-
enhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
JuliusBrussee/caveman#1102 · 1 comentário ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
use-agent-os/agent-os#3263 ·
-
[Bug]: context-limit error parsing has no pattern for llama.cpp's "context size (N tokens)" phrasing Abertaarea/compression area/local-models area/sessions comp/agent duplicate P2 sweeper:risk-session-state type/bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
NousResearch/hermes-agent#117793 · 1 comentário ·
-
possible bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
Mintplex-Labs/anything-llm#6415 · 1 comentário ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100