feat: mcp resources (#6542)

This commit is contained in:
Paolo Ricciuti
2026-01-04 16:12:54 +01:00
committed by GitHub
parent e00621cb17
commit 21dc3c24d9
9 changed files with 329 additions and 4 deletions

View File

@@ -231,6 +231,40 @@ export function Autocomplete(props: {
},
)
const mcpResources = createMemo(() => {
if (!store.visible || store.visible === "/") return []
const options: AutocompleteOption[] = []
const width = props.anchor().width - 4
for (const res of Object.values(sync.data.mcp_resource)) {
options.push({
display: Locale.truncateMiddle(`${res.name} (${res.uri})`, width),
description: res.description,
onSelect: () => {
insertPart(res.name, {
type: "file",
mime: res.mimeType ?? "text/plain",
filename: res.name,
url: res.uri,
source: {
type: "resource",
text: {
start: 0,
end: 0,
value: "",
},
clientName: res.client,
uri: res.uri,
},
})
},
})
}
return options
})
const agents = createMemo(() => {
const agents = sync.data.agent
return agents
@@ -416,7 +450,7 @@ export function Autocomplete(props: {
const commandsValue = commands()
const mixed: AutocompleteOption[] = (
store.visible === "@" ? [...agentsValue, ...(filesValue || [])] : [...commandsValue]
store.visible === "@" ? [...agentsValue, ...(filesValue || []), ...mcpResources()] : [...commandsValue]
).filter((x) => x.disabled !== true)
const currentFilter = filter()