diff --git a/packages/ui/src/components/message-part.css b/packages/ui/src/components/message-part.css index 56fe9cf4160..2bef792a2cb 100644 --- a/packages/ui/src/components/message-part.css +++ b/packages/ui/src/components/message-part.css @@ -809,3 +809,20 @@ display: none; } } + +[data-component="tool-loaded-file"] { + display: flex; + align-items: center; + gap: 8px; + padding: 4px 0 4px 28px; + font-family: var(--font-family-sans); + font-size: var(--font-size-small); + font-weight: var(--font-weight-regular); + line-height: var(--line-height-large); + color: var(--text-weak); + + [data-component="icon"] { + flex-shrink: 0; + color: var(--icon-weak); + } +} diff --git a/packages/ui/src/components/message-part.tsx b/packages/ui/src/components/message-part.tsx index 3fde255c85a..7aad01acea3 100644 --- a/packages/ui/src/components/message-part.tsx +++ b/packages/ui/src/components/message-part.tsx @@ -724,20 +724,39 @@ PART_MAPPING["reasoning"] = function ReasoningPartDisplay(props) { ToolRegistry.register({ name: "read", render(props) { + const data = useData() const i18n = useI18n() const args: string[] = [] if (props.input.offset) args.push("offset=" + props.input.offset) if (props.input.limit) args.push("limit=" + props.input.limit) + const loaded = createMemo(() => { + if (props.status !== "completed") return [] + const value = props.metadata.loaded + if (!value || !Array.isArray(value)) return [] + return value.filter((p): p is string => typeof p === "string") + }) return ( - + <> + + + {(filepath) => ( +
+ + + {i18n.t("ui.tool.loaded")} {relativizeProjectPaths(filepath, data.directory)} + +
+ )} +
+ ) }, }) diff --git a/packages/ui/src/i18n/ar.ts b/packages/ui/src/i18n/ar.ts index a4179a41449..fc99bdacb37 100644 --- a/packages/ui/src/i18n/ar.ts +++ b/packages/ui/src/i18n/ar.ts @@ -54,6 +54,7 @@ export const dict = { "ui.imagePreview.alt": "معاينة الصورة", "ui.tool.read": "قراءة", + "ui.tool.loaded": "تم التحميل", "ui.tool.list": "قائمة", "ui.tool.glob": "Glob", "ui.tool.grep": "Grep", diff --git a/packages/ui/src/i18n/br.ts b/packages/ui/src/i18n/br.ts index b8e6fdbe539..fdec9138a0b 100644 --- a/packages/ui/src/i18n/br.ts +++ b/packages/ui/src/i18n/br.ts @@ -54,6 +54,7 @@ export const dict = { "ui.imagePreview.alt": "Visualização de imagem", "ui.tool.read": "Ler", + "ui.tool.loaded": "Carregado", "ui.tool.list": "Listar", "ui.tool.glob": "Glob", "ui.tool.grep": "Grep", diff --git a/packages/ui/src/i18n/da.ts b/packages/ui/src/i18n/da.ts index 6e8f6b46e2c..fbe34e03ff2 100644 --- a/packages/ui/src/i18n/da.ts +++ b/packages/ui/src/i18n/da.ts @@ -54,6 +54,7 @@ export const dict = { "ui.imagePreview.alt": "Billedforhåndsvisning", "ui.tool.read": "Læs", + "ui.tool.loaded": "Indlæst", "ui.tool.list": "Liste", "ui.tool.glob": "Glob", "ui.tool.grep": "Grep", diff --git a/packages/ui/src/i18n/de.ts b/packages/ui/src/i18n/de.ts index 6d208602327..d74cd5d222e 100644 --- a/packages/ui/src/i18n/de.ts +++ b/packages/ui/src/i18n/de.ts @@ -58,6 +58,7 @@ export const dict = { "ui.imagePreview.alt": "Bildvorschau", "ui.tool.read": "Lesen", + "ui.tool.loaded": "Geladen", "ui.tool.list": "Auflisten", "ui.tool.glob": "Glob", "ui.tool.grep": "Grep", diff --git a/packages/ui/src/i18n/en.ts b/packages/ui/src/i18n/en.ts index da77b04aa52..8c0f09cb30b 100644 --- a/packages/ui/src/i18n/en.ts +++ b/packages/ui/src/i18n/en.ts @@ -55,6 +55,7 @@ export const dict = { "ui.imagePreview.alt": "Image preview", "ui.tool.read": "Read", + "ui.tool.loaded": "Loaded", "ui.tool.list": "List", "ui.tool.glob": "Glob", "ui.tool.grep": "Grep", diff --git a/packages/ui/src/i18n/es.ts b/packages/ui/src/i18n/es.ts index 19df81a6b9e..3f71a98aca4 100644 --- a/packages/ui/src/i18n/es.ts +++ b/packages/ui/src/i18n/es.ts @@ -54,6 +54,7 @@ export const dict = { "ui.imagePreview.alt": "Vista previa de imagen", "ui.tool.read": "Leer", + "ui.tool.loaded": "Cargado", "ui.tool.list": "Listar", "ui.tool.glob": "Glob", "ui.tool.grep": "Grep", diff --git a/packages/ui/src/i18n/fr.ts b/packages/ui/src/i18n/fr.ts index b563f9a0284..0ec70509a31 100644 --- a/packages/ui/src/i18n/fr.ts +++ b/packages/ui/src/i18n/fr.ts @@ -54,6 +54,7 @@ export const dict = { "ui.imagePreview.alt": "Aperçu de l'image", "ui.tool.read": "Lire", + "ui.tool.loaded": "Chargé", "ui.tool.list": "Lister", "ui.tool.glob": "Glob", "ui.tool.grep": "Grep", diff --git a/packages/ui/src/i18n/ja.ts b/packages/ui/src/i18n/ja.ts index 7bd4d8e4015..fd3f24ab35d 100644 --- a/packages/ui/src/i18n/ja.ts +++ b/packages/ui/src/i18n/ja.ts @@ -54,6 +54,7 @@ export const dict = { "ui.imagePreview.alt": "画像プレビュー", "ui.tool.read": "読み込み", + "ui.tool.loaded": "読み込み済み", "ui.tool.list": "リスト", "ui.tool.glob": "Glob", "ui.tool.grep": "Grep", diff --git a/packages/ui/src/i18n/ko.ts b/packages/ui/src/i18n/ko.ts index b83d7ef375b..e419f730a75 100644 --- a/packages/ui/src/i18n/ko.ts +++ b/packages/ui/src/i18n/ko.ts @@ -54,6 +54,7 @@ export const dict = { "ui.imagePreview.alt": "이미지 미리보기", "ui.tool.read": "읽기", + "ui.tool.loaded": "로드됨", "ui.tool.list": "목록", "ui.tool.glob": "Glob", "ui.tool.grep": "Grep", diff --git a/packages/ui/src/i18n/no.ts b/packages/ui/src/i18n/no.ts index c9a7481c942..4433b8114f0 100644 --- a/packages/ui/src/i18n/no.ts +++ b/packages/ui/src/i18n/no.ts @@ -57,6 +57,7 @@ export const dict: Record = { "ui.imagePreview.alt": "Bildeforhåndsvisning", "ui.tool.read": "Les", + "ui.tool.loaded": "Lastet", "ui.tool.list": "Liste", "ui.tool.glob": "Glob", "ui.tool.grep": "Grep", diff --git a/packages/ui/src/i18n/pl.ts b/packages/ui/src/i18n/pl.ts index 5531a7473ce..efe4bf6cfec 100644 --- a/packages/ui/src/i18n/pl.ts +++ b/packages/ui/src/i18n/pl.ts @@ -54,6 +54,7 @@ export const dict = { "ui.imagePreview.alt": "Podgląd obrazu", "ui.tool.read": "Odczyt", + "ui.tool.loaded": "Załadowano", "ui.tool.list": "Lista", "ui.tool.glob": "Glob", "ui.tool.grep": "Grep", diff --git a/packages/ui/src/i18n/ru.ts b/packages/ui/src/i18n/ru.ts index 8af9e05a5ea..60e63455d3e 100644 --- a/packages/ui/src/i18n/ru.ts +++ b/packages/ui/src/i18n/ru.ts @@ -54,6 +54,7 @@ export const dict = { "ui.imagePreview.alt": "Предпросмотр изображения", "ui.tool.read": "Чтение", + "ui.tool.loaded": "Загружено", "ui.tool.list": "Список", "ui.tool.glob": "Glob", "ui.tool.grep": "Grep", diff --git a/packages/ui/src/i18n/zh.ts b/packages/ui/src/i18n/zh.ts index c81f4725bd4..9a5a056a82e 100644 --- a/packages/ui/src/i18n/zh.ts +++ b/packages/ui/src/i18n/zh.ts @@ -58,6 +58,7 @@ export const dict = { "ui.imagePreview.alt": "图片预览", "ui.tool.read": "读取", + "ui.tool.loaded": "已加载", "ui.tool.list": "列表", "ui.tool.glob": "Glob", "ui.tool.grep": "Grep", diff --git a/packages/ui/src/i18n/zht.ts b/packages/ui/src/i18n/zht.ts index 906f602f98f..c5ef99cda8d 100644 --- a/packages/ui/src/i18n/zht.ts +++ b/packages/ui/src/i18n/zht.ts @@ -58,6 +58,7 @@ export const dict = { "ui.imagePreview.alt": "圖片預覽", "ui.tool.read": "讀取", + "ui.tool.loaded": "已載入", "ui.tool.list": "清單", "ui.tool.glob": "Glob", "ui.tool.grep": "Grep",