{$i18n.t('Tools')} / {$WEBUI_NAME} { sessionStorage.tool = JSON.stringify({ ...tool }); goto('/workspace/tools/create'); }} loadUrlHandler={async (url) => { return await loadToolByUrl(localStorage.token, url); }} successMessage={$i18n.t('Tool imported successfully')} /> {#if loaded} { console.log(importFiles); showConfirm = true; }} />
{#if query}
{/if}
{ if (e.deltaY !== 0) { e.preventDefault(); e.currentTarget.scrollLeft += e.deltaY; } }} >
{ localStorage.workspaceViewOption = value; await tick(); }} />
{#if (filteredItems ?? []).length !== 0}
{#each filteredItems as tool}
{ if (!tool.write_access || shouldIgnoreRowClick(e.target)) return; openTool(tool); }} on:keydown={(e) => { if (!tool.write_access || e.currentTarget !== e.target) return; if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); openTool(tool); } }} >
{tool.name}
{#if tool?.meta?.manifest?.version}
v{tool?.meta?.manifest?.version ?? ''}
{/if}
{dayjs(tool.updated_at * 1000).fromNow()}
{#if !tool.write_access} {/if}
{#if tool?.meta?.description}
{tool?.meta?.description}
{/if}
{#if tool.write_access}
{#if shiftKey} {:else} {#if tool?.meta?.manifest?.funding_url ?? false} {/if} { goto(`/workspace/tools/edit?id=${encodeURIComponent(tool.id)}`); }} shareHandler={() => { shareHandler(tool); }} cloneHandler={() => { cloneHandler(tool); }} exportHandler={() => { exportHandler(tool); }} deleteHandler={async () => { selectedTool = tool; showDeleteConfirm = true; }} onClose={() => { openToolMenuId = null; }} > {/if}
{/if}
{/each}
{:else}
{$i18n.t('No tools found')}
{$i18n.t('Try adjusting your search or filter to find what you are looking for.')}
{/if}
{#if $config?.features.enable_community_sharing} {/if} { deleteHandler(selectedTool); }} >
{$i18n.t('This will delete')} {selectedTool.name}.
{ const reader = new FileReader(); reader.onload = async (event) => { const _tools = JSON.parse(event.target.result); console.log(_tools); for (const tool of _tools) { const res = await createNewTool(localStorage.token, tool).catch((error) => { toast.error(`${error}`); return null; }); } toast.success($i18n.t('Tool imported successfully')); await init(); importFiles = null; toolsImportInputElement.value = ''; }; reader.readAsText(importFiles[0]); }} >
{$i18n.t('Please carefully review the following warnings:')}
  • {$i18n.t('Tools have a function calling system that allows arbitrary code execution.')}.
  • {$i18n.t('Do not install tools from sources you do not fully trust.')}
{$i18n.t( 'I acknowledge that I have read and I understand the implications of my action. I am aware of the risks associated with executing arbitrary code and I have verified the trustworthiness of the source.' )}
{:else}
{/if}