From 07d84fe008905e17894a053e4cb80fce3ae28a99 Mon Sep 17 00:00:00 2001 From: adamelmore <2363879+adamdottv@users.noreply.github.com> Date: Tue, 27 Jan 2026 11:18:07 -0600 Subject: [PATCH] feat(app): show loaded agents.md files --- packages/ui/src/components/message-part.css | 17 ++++++++++ packages/ui/src/components/message-part.tsx | 37 ++++++++++++++++----- packages/ui/src/i18n/ar.ts | 1 + packages/ui/src/i18n/br.ts | 1 + packages/ui/src/i18n/da.ts | 1 + packages/ui/src/i18n/de.ts | 1 + packages/ui/src/i18n/en.ts | 1 + packages/ui/src/i18n/es.ts | 1 + packages/ui/src/i18n/fr.ts | 1 + packages/ui/src/i18n/ja.ts | 1 + packages/ui/src/i18n/ko.ts | 1 + packages/ui/src/i18n/no.ts | 1 + packages/ui/src/i18n/pl.ts | 1 + packages/ui/src/i18n/ru.ts | 1 + packages/ui/src/i18n/zh.ts | 1 + packages/ui/src/i18n/zht.ts | 1 + 16 files changed, 59 insertions(+), 9 deletions(-) diff --git a/packages/ui/src/components/message-part.css b/packages/ui/src/components/message-part.css index 56fe9cf41..2bef792a2 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 3fde255c8..7aad01ace 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 a4179a414..fc99bdacb 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 b8e6fdbe5..fdec9138a 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 6e8f6b46e..fbe34e03f 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 6d2086023..d74cd5d22 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 da77b04aa..8c0f09cb3 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 19df81a6b..3f71a98ac 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 b563f9a02..0ec70509a 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 7bd4d8e40..fd3f24ab3 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 b83d7ef37..e419f730a 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 c9a7481c9..4433b8114 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 5531a7473..efe4bf6cf 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 8af9e05a5..60e63455d 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 c81f4725b..9a5a056a8 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 906f602f9..c5ef99cda 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",