DuyTa's picture
Upload folder using huggingface_hub
bc20498 verified
{"version":3,"file":"13.Co_9uU9W.js","sources":["../../../../../../src/lib/components/icons/GlobeAlt.svelte","../../../../../../src/lib/components/workspace/Functions/FunctionMenu.svelte","../../../../../../src/lib/components/workspace/Functions.svelte"],"sourcesContent":["<script lang=\"ts\">\n\texport let className = 'w-4 h-4';\n\texport let strokeWidth = '1.5';\n</script>\n\n<svg\n\txmlns=\"http://www.w3.org/2000/svg\"\n\tfill=\"none\"\n\tviewBox=\"0 0 24 24\"\n\tstroke-width={strokeWidth}\n\tstroke=\"currentColor\"\n\tclass={className}\n>\n\t<path\n\t\tstroke-linecap=\"round\"\n\t\tstroke-linejoin=\"round\"\n\t\td=\"M12 21a9.004 9.004 0 0 0 8.716-6.747M12 21a9.004 9.004 0 0 1-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 0 1 7.843 4.582M12 3a8.997 8.997 0 0 0-7.843 4.582m15.686 0A11.953 11.953 0 0 1 12 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0 1 21 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0 1 12 16.5c-3.162 0-6.133-.815-8.716-2.247m0 0A9.015 9.015 0 0 1 3 12c0-1.605.42-3.113 1.157-4.418\"\n\t/>\n</svg>\n","<script lang=\"ts\">\n\timport { DropdownMenu } from 'bits-ui';\n\timport { flyAndScale } from '$lib/utils/transitions';\n\timport { getContext } from 'svelte';\n\n\timport Dropdown from '$lib/components/common/Dropdown.svelte';\n\timport GarbageBin from '$lib/components/icons/GarbageBin.svelte';\n\timport Tooltip from '$lib/components/common/Tooltip.svelte';\n\timport Share from '$lib/components/icons/Share.svelte';\n\timport DocumentDuplicate from '$lib/components/icons/DocumentDuplicate.svelte';\n\timport ArrowDownTray from '$lib/components/icons/ArrowDownTray.svelte';\n\timport Switch from '$lib/components/common/Switch.svelte';\n\timport GlobeAlt from '$lib/components/icons/GlobeAlt.svelte';\n\n\tconst i18n = getContext('i18n');\n\n\texport let func;\n\n\texport let editHandler: Function;\n\texport let shareHandler: Function;\n\texport let cloneHandler: Function;\n\texport let exportHandler: Function;\n\texport let deleteHandler: Function;\n\texport let toggleGlobalHandler: Function;\n\n\texport let onClose: Function;\n\n\tlet show = false;\n</script>\n\n<Dropdown\n\tbind:show\n\ton:change={(e) => {\n\t\tif (e.detail === false) {\n\t\t\tonClose();\n\t\t}\n\t}}\n>\n\t<Tooltip content={$i18n.t('More')}>\n\t\t<slot />\n\t</Tooltip>\n\n\t<div slot=\"content\">\n\t\t<DropdownMenu.Content\n\t\t\tclass=\"w-full max-w-[180px] rounded-xl px-1 py-1.5 border border-gray-300/30 dark:border-gray-700/50 z-50 bg-white dark:bg-gray-850 dark:text-white shadow\"\n\t\t\tsideOffset={-2}\n\t\t\tside=\"bottom\"\n\t\t\talign=\"start\"\n\t\t\ttransition={flyAndScale}\n\t\t>\n\t\t\t{#if ['filter', 'action'].includes(func.type)}\n\t\t\t\t<div\n\t\t\t\t\tclass=\"flex gap-2 justify-between items-center px-3 py-2 text-sm font-medium cursor-pointerrounded-md\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"flex gap-2 items-center\">\n\t\t\t\t\t\t<GlobeAlt />\n\n\t\t\t\t\t\t<div class=\"flex items-center\">{$i18n.t('Global')}</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<Switch on:change={toggleGlobalHandler} bind:state={func.is_global} />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<hr class=\"border-gray-100 dark:border-gray-800 my-1\" />\n\t\t\t{/if}\n\n\t\t\t<DropdownMenu.Item\n\t\t\t\tclass=\"flex gap-2 items-center px-3 py-2 text-sm font-medium cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-md\"\n\t\t\t\ton:click={() => {\n\t\t\t\t\teditHandler();\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tstroke-width=\"1.5\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tclass=\"w-4 h-4\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\t\td=\"M16.862 4.487l1.687-1.688a1.875 1.875 0 112.652 2.652L6.832 19.82a4.5 4.5 0 01-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 011.13-1.897L16.863 4.487zm0 0L19.5 7.125\"\n\t\t\t\t\t/>\n\t\t\t\t</svg>\n\n\t\t\t\t<div class=\"flex items-center\">{$i18n.t('Edit')}</div>\n\t\t\t</DropdownMenu.Item>\n\n\t\t\t<DropdownMenu.Item\n\t\t\t\tclass=\"flex gap-2 items-center px-3 py-2 text-sm font-medium cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-md\"\n\t\t\t\ton:click={() => {\n\t\t\t\t\tshareHandler();\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<Share />\n\t\t\t\t<div class=\"flex items-center\">{$i18n.t('Share')}</div>\n\t\t\t</DropdownMenu.Item>\n\n\t\t\t<DropdownMenu.Item\n\t\t\t\tclass=\"flex gap-2 items-center px-3 py-2 text-sm font-medium cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-md\"\n\t\t\t\ton:click={() => {\n\t\t\t\t\tcloneHandler();\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<DocumentDuplicate />\n\n\t\t\t\t<div class=\"flex items-center\">{$i18n.t('Clone')}</div>\n\t\t\t</DropdownMenu.Item>\n\n\t\t\t<DropdownMenu.Item\n\t\t\t\tclass=\"flex gap-2 items-center px-3 py-2 text-sm font-medium cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-md\"\n\t\t\t\ton:click={() => {\n\t\t\t\t\texportHandler();\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<ArrowDownTray />\n\n\t\t\t\t<div class=\"flex items-center\">{$i18n.t('Export')}</div>\n\t\t\t</DropdownMenu.Item>\n\n\t\t\t<hr class=\"border-gray-100 dark:border-gray-800 my-1\" />\n\n\t\t\t<DropdownMenu.Item\n\t\t\t\tclass=\"flex gap-2 items-center px-3 py-2 text-sm font-medium cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-md\"\n\t\t\t\ton:click={() => {\n\t\t\t\t\tdeleteHandler();\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<GarbageBin strokeWidth=\"2\" />\n\t\t\t\t<div class=\"flex items-center\">{$i18n.t('Delete')}</div>\n\t\t\t</DropdownMenu.Item>\n\t\t</DropdownMenu.Content>\n\t</div>\n</Dropdown>\n","<script lang=\"ts\">\n\timport { toast } from 'svelte-sonner';\n\timport fileSaver from 'file-saver';\n\tconst { saveAs } = fileSaver;\n\n\timport { WEBUI_NAME, functions, models } from '$lib/stores';\n\timport { onMount, getContext, tick } from 'svelte';\n\timport { createNewPrompt, deletePromptByCommand, getPrompts } from '$lib/apis/prompts';\n\n\timport { goto } from '$app/navigation';\n\timport {\n\t\tcreateNewFunction,\n\t\tdeleteFunctionById,\n\t\texportFunctions,\n\t\tgetFunctionById,\n\t\tgetFunctions,\n\t\ttoggleFunctionById,\n\t\ttoggleGlobalById\n\t} from '$lib/apis/functions';\n\n\timport ArrowDownTray from '../icons/ArrowDownTray.svelte';\n\timport Tooltip from '../common/Tooltip.svelte';\n\timport ConfirmDialog from '../common/ConfirmDialog.svelte';\n\timport { getModels } from '$lib/apis';\n\timport FunctionMenu from './Functions/FunctionMenu.svelte';\n\timport EllipsisHorizontal from '../icons/EllipsisHorizontal.svelte';\n\timport Switch from '../common/Switch.svelte';\n\timport ValvesModal from './common/ValvesModal.svelte';\n\timport ManifestModal from './common/ManifestModal.svelte';\n\timport Heart from '../icons/Heart.svelte';\n\timport DeleteConfirmDialog from '$lib/components/common/ConfirmDialog.svelte';\n\timport GarbageBin from '../icons/GarbageBin.svelte';\n\n\tconst i18n = getContext('i18n');\n\n\tlet shiftKey = false;\n\n\tlet functionsImportInputElement: HTMLInputElement;\n\tlet importFiles;\n\n\tlet showConfirm = false;\n\tlet query = '';\n\n\tlet showManifestModal = false;\n\tlet showValvesModal = false;\n\tlet selectedFunction = null;\n\n\tlet showDeleteConfirm = false;\n\n\tconst shareHandler = async (func) => {\n\t\tconst item = await getFunctionById(localStorage.token, func.id).catch((error) => {\n\t\t\ttoast.error(error);\n\t\t\treturn null;\n\t\t});\n\n\t\ttoast.success($i18n.t('Redirecting you to OpenWebUI Community'));\n\n\t\tconst url = 'https://openwebui.com';\n\n\t\tconst tab = await window.open(`${url}/functions/create`, '_blank');\n\n\t\t// Define the event handler function\n\t\tconst messageHandler = (event) => {\n\t\t\tif (event.origin !== url) return;\n\t\t\tif (event.data === 'loaded') {\n\t\t\t\ttab.postMessage(JSON.stringify(item), '*');\n\n\t\t\t\t// Remove the event listener after handling the message\n\t\t\t\twindow.removeEventListener('message', messageHandler);\n\t\t\t}\n\t\t};\n\n\t\twindow.addEventListener('message', messageHandler, false);\n\t\tconsole.log(item);\n\t};\n\n\tconst cloneHandler = async (func) => {\n\t\tconst _function = await getFunctionById(localStorage.token, func.id).catch((error) => {\n\t\t\ttoast.error(error);\n\t\t\treturn null;\n\t\t});\n\n\t\tif (_function) {\n\t\t\tsessionStorage.function = JSON.stringify({\n\t\t\t\t..._function,\n\t\t\t\tid: `${_function.id}_clone`,\n\t\t\t\tname: `${_function.name} (Clone)`\n\t\t\t});\n\t\t\tgoto('/workspace/functions/create');\n\t\t}\n\t};\n\n\tconst exportHandler = async (func) => {\n\t\tconst _function = await getFunctionById(localStorage.token, func.id).catch((error) => {\n\t\t\ttoast.error(error);\n\t\t\treturn null;\n\t\t});\n\n\t\tif (_function) {\n\t\t\tlet blob = new Blob([JSON.stringify([_function])], {\n\t\t\t\ttype: 'application/json'\n\t\t\t});\n\t\t\tsaveAs(blob, `function-${_function.id}-export-${Date.now()}.json`);\n\t\t}\n\t};\n\n\tconst deleteHandler = async (func) => {\n\t\tconst res = await deleteFunctionById(localStorage.token, func.id).catch((error) => {\n\t\t\ttoast.error(error);\n\t\t\treturn null;\n\t\t});\n\n\t\tif (res) {\n\t\t\ttoast.success($i18n.t('Function deleted successfully'));\n\n\t\t\tfunctions.set(await getFunctions(localStorage.token));\n\t\t\tmodels.set(await getModels(localStorage.token));\n\t\t}\n\t};\n\n\tconst toggleGlobalHandler = async (func) => {\n\t\tconst res = await toggleGlobalById(localStorage.token, func.id).catch((error) => {\n\t\t\ttoast.error(error);\n\t\t});\n\n\t\tif (res) {\n\t\t\tif (func.is_global) {\n\t\t\t\tfunc.type === 'filter'\n\t\t\t\t\t? toast.success($i18n.t('Filter is now globally enabled'))\n\t\t\t\t\t: toast.success($i18n.t('Function is now globally enabled'));\n\t\t\t} else {\n\t\t\t\tfunc.type === 'filter'\n\t\t\t\t\t? toast.success($i18n.t('Filter is now globally disabled'))\n\t\t\t\t\t: toast.success($i18n.t('Function is now globally disabled'));\n\t\t\t}\n\n\t\t\tfunctions.set(await getFunctions(localStorage.token));\n\t\t\tmodels.set(await getModels(localStorage.token));\n\t\t}\n\t};\n\n\tonMount(() => {\n\t\tconst onKeyDown = (event) => {\n\t\t\tif (event.key === 'Shift') {\n\t\t\t\tshiftKey = true;\n\t\t\t}\n\t\t};\n\n\t\tconst onKeyUp = (event) => {\n\t\t\tif (event.key === 'Shift') {\n\t\t\t\tshiftKey = false;\n\t\t\t}\n\t\t};\n\n\t\tconst onBlur = () => {\n\t\t\tshiftKey = false;\n\t\t};\n\n\t\twindow.addEventListener('keydown', onKeyDown);\n\t\twindow.addEventListener('keyup', onKeyUp);\n\t\twindow.addEventListener('blur', onBlur);\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener('keydown', onKeyDown);\n\t\t\twindow.removeEventListener('keyup', onKeyUp);\n\t\t\twindow.removeEventListener('blur', onBlur);\n\t\t};\n\t});\n</script>\n\n<svelte:head>\n\t<title>\n\t\t{$i18n.t('Functions')} | {$WEBUI_NAME}\n\t</title>\n</svelte:head>\n\n<div class=\"mb-3 flex justify-between items-center\">\n\t<div class=\" text-lg font-semibold self-center\">{$i18n.t('Functions')}</div>\n</div>\n\n<div class=\" flex w-full space-x-2\">\n\t<div class=\"flex flex-1\">\n\t\t<div class=\" self-center ml-1 mr-3\">\n\t\t\t<svg\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\tviewBox=\"0 0 20 20\"\n\t\t\t\tfill=\"currentColor\"\n\t\t\t\tclass=\"w-4 h-4\"\n\t\t\t>\n\t\t\t\t<path\n\t\t\t\t\tfill-rule=\"evenodd\"\n\t\t\t\t\td=\"M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z\"\n\t\t\t\t\tclip-rule=\"evenodd\"\n\t\t\t\t/>\n\t\t\t</svg>\n\t\t</div>\n\t\t<input\n\t\t\tclass=\" w-full text-sm pr-4 py-1 rounded-r-xl outline-none bg-transparent\"\n\t\t\tbind:value={query}\n\t\t\tplaceholder={$i18n.t('Search Functions')}\n\t\t/>\n\t</div>\n\n\t<div>\n\t\t<a\n\t\t\tclass=\" px-2 py-2 rounded-xl border border-gray-200 dark:border-gray-600 dark:border-0 hover:bg-gray-100 dark:bg-gray-800 dark:hover:bg-gray-700 transition font-medium text-sm flex items-center space-x-1\"\n\t\t\thref=\"/workspace/functions/create\"\n\t\t>\n\t\t\t<svg\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\tfill=\"currentColor\"\n\t\t\t\tclass=\"w-4 h-4\"\n\t\t\t>\n\t\t\t\t<path\n\t\t\t\t\td=\"M8.75 3.75a.75.75 0 0 0-1.5 0v3.5h-3.5a.75.75 0 0 0 0 1.5h3.5v3.5a.75.75 0 0 0 1.5 0v-3.5h3.5a.75.75 0 0 0 0-1.5h-3.5v-3.5Z\"\n\t\t\t\t/>\n\t\t\t</svg>\n\t\t</a>\n\t</div>\n</div>\n<hr class=\" dark:border-gray-850 my-2.5\" />\n\n<div class=\"my-3 mb-5\">\n\t{#each $functions.filter((f) => query === '' || f.name\n\t\t\t\t.toLowerCase()\n\t\t\t\t.includes(query.toLowerCase()) || f.id.toLowerCase().includes(query.toLowerCase())) as func}\n\t\t<div\n\t\t\tclass=\" flex space-x-4 cursor-pointer w-full px-3 py-2 dark:hover:bg-white/5 hover:bg-black/5 rounded-xl\"\n\t\t>\n\t\t\t<a\n\t\t\t\tclass=\" flex flex-1 space-x-3.5 cursor-pointer w-full\"\n\t\t\t\thref={`/workspace/functions/edit?id=${encodeURIComponent(func.id)}`}\n\t\t\t>\n\t\t\t\t<div class=\"flex items-center text-left\">\n\t\t\t\t\t<div class=\" flex-1 self-center pl-1\">\n\t\t\t\t\t\t<div class=\" font-semibold flex items-center gap-1.5\">\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\" text-xs font-bold px-1 rounded uppercase line-clamp-1 bg-gray-500/20 text-gray-700 dark:text-gray-200\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{func.type}\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t{#if func?.meta?.manifest?.version}\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclass=\"text-xs font-bold px-1 rounded line-clamp-1 bg-gray-500/20 text-gray-700 dark:text-gray-200\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tv{func?.meta?.manifest?.version ?? ''}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{/if}\n\n\t\t\t\t\t\t\t<div class=\" line-clamp-1\">\n\t\t\t\t\t\t\t\t{func.name}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div class=\"flex gap-1.5 px-1\">\n\t\t\t\t\t\t\t<div class=\" text-gray-500 text-xs font-medium flex-shrink-0\">{func.id}</div>\n\n\t\t\t\t\t\t\t<div class=\" text-xs overflow-hidden text-ellipsis line-clamp-1\">\n\t\t\t\t\t\t\t\t{func.meta.description}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</a>\n\t\t\t<div class=\"flex flex-row gap-0.5 self-center\">\n\t\t\t\t{#if shiftKey}\n\t\t\t\t\t<Tooltip content={$i18n.t('Delete')}>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclass=\"self-center w-fit text-sm px-2 py-2 dark:text-gray-300 dark:hover:text-white hover:bg-black/5 dark:hover:bg-white/5 rounded-xl\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\ton:click={() => {\n\t\t\t\t\t\t\t\tdeleteHandler(func);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<GarbageBin />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t{:else}\n\t\t\t\t\t{#if func?.meta?.manifest?.funding_url ?? false}\n\t\t\t\t\t\t<Tooltip content={$i18n.t('Support')}>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tclass=\"self-center w-fit text-sm px-2 py-2 dark:text-gray-300 dark:hover:text-white hover:bg-black/5 dark:hover:bg-white/5 rounded-xl\"\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\ton:click={() => {\n\t\t\t\t\t\t\t\t\tselectedFunction = func;\n\t\t\t\t\t\t\t\t\tshowManifestModal = true;\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Heart />\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t{/if}\n\n\t\t\t\t\t<Tooltip content={$i18n.t('Valves')}>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclass=\"self-center w-fit text-sm px-2 py-2 dark:text-gray-300 dark:hover:text-white hover:bg-black/5 dark:hover:bg-white/5 rounded-xl\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\ton:click={() => {\n\t\t\t\t\t\t\t\tselectedFunction = func;\n\t\t\t\t\t\t\t\tshowValvesModal = true;\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\t\tstroke-width=\"1.5\"\n\t\t\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\t\t\tclass=\"size-4\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\t\t\t\t\td=\"M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.325.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 0 1 1.37.49l1.296 2.247a1.125 1.125 0 0 1-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 0 1 0 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.247a1.125 1.125 0 0 1-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 0 1-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 0 1-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 0 1-1.369-.49l-1.297-2.247a1.125 1.125 0 0 1 .26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 0 1 0-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 0 1-.26-1.43l1.297-2.247a1.125 1.125 0 0 1 1.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\t\t\t\t\td=\"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</Tooltip>\n\n\t\t\t\t\t<FunctionMenu\n\t\t\t\t\t\t{func}\n\t\t\t\t\t\teditHandler={() => {\n\t\t\t\t\t\t\tgoto(`/workspace/functions/edit?id=${encodeURIComponent(func.id)}`);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tshareHandler={() => {\n\t\t\t\t\t\t\tshareHandler(func);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tcloneHandler={() => {\n\t\t\t\t\t\t\tcloneHandler(func);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\texportHandler={() => {\n\t\t\t\t\t\t\texportHandler(func);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tdeleteHandler={async () => {\n\t\t\t\t\t\t\tselectedFunction = func;\n\t\t\t\t\t\t\tshowDeleteConfirm = true;\n\t\t\t\t\t\t}}\n\t\t\t\t\t\ttoggleGlobalHandler={() => {\n\t\t\t\t\t\t\tif (['filter', 'action'].includes(func.type)) {\n\t\t\t\t\t\t\t\ttoggleGlobalHandler(func);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonClose={() => {}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclass=\"self-center w-fit text-sm p-1.5 dark:text-gray-300 dark:hover:text-white hover:bg-black/5 dark:hover:bg-white/5 rounded-xl\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<EllipsisHorizontal className=\"size-5\" />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</FunctionMenu>\n\t\t\t\t{/if}\n\n\t\t\t\t<div class=\" self-center mx-1\">\n\t\t\t\t\t<Tooltip content={func.is_active ? $i18n.t('Enabled') : $i18n.t('Disabled')}>\n\t\t\t\t\t\t<Switch\n\t\t\t\t\t\t\tbind:state={func.is_active}\n\t\t\t\t\t\t\ton:change={async (e) => {\n\t\t\t\t\t\t\t\ttoggleFunctionById(localStorage.token, func.id);\n\t\t\t\t\t\t\t\tmodels.set(await getModels(localStorage.token));\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t{/each}\n</div>\n\n<!-- <div class=\" text-gray-500 text-xs mt-1 mb-2\">\n\tⓘ {$i18n.t(\n\t\t'Admins have access to all tools at all times; users need tools assigned per model in the workspace.'\n\t)}\n</div> -->\n\n<div class=\" flex justify-end w-full mb-2\">\n\t<div class=\"flex space-x-2\">\n\t\t<input\n\t\t\tid=\"documents-import-input\"\n\t\t\tbind:this={functionsImportInputElement}\n\t\t\tbind:files={importFiles}\n\t\t\ttype=\"file\"\n\t\t\taccept=\".json\"\n\t\t\thidden\n\t\t\ton:change={() => {\n\t\t\t\tconsole.log(importFiles);\n\t\t\t\tshowConfirm = true;\n\t\t\t}}\n\t\t/>\n\n\t\t<button\n\t\t\tclass=\"flex text-xs items-center space-x-1 px-3 py-1.5 rounded-xl bg-gray-50 hover:bg-gray-100 dark:bg-gray-800 dark:hover:bg-gray-700 dark:text-gray-200 transition\"\n\t\t\ton:click={() => {\n\t\t\t\tfunctionsImportInputElement.click();\n\t\t\t}}\n\t\t>\n\t\t\t<div class=\" self-center mr-2 font-medium line-clamp-1\">{$i18n.t('Import Functions')}</div>\n\n\t\t\t<div class=\" self-center\">\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t\tclass=\"w-4 h-4\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\tfill-rule=\"evenodd\"\n\t\t\t\t\t\td=\"M4 2a1.5 1.5 0 0 0-1.5 1.5v9A1.5 1.5 0 0 0 4 14h8a1.5 1.5 0 0 0 1.5-1.5V6.621a1.5 1.5 0 0 0-.44-1.06L9.94 2.439A1.5 1.5 0 0 0 8.878 2H4Zm4 9.5a.75.75 0 0 1-.75-.75V8.06l-.72.72a.75.75 0 0 1-1.06-1.06l2-2a.75.75 0 0 1 1.06 0l2 2a.75.75 0 1 1-1.06 1.06l-.72-.72v2.69a.75.75 0 0 1-.75.75Z\"\n\t\t\t\t\t\tclip-rule=\"evenodd\"\n\t\t\t\t\t/>\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t</button>\n\n\t\t<button\n\t\t\tclass=\"flex text-xs items-center space-x-1 px-3 py-1.5 rounded-xl bg-gray-50 hover:bg-gray-100 dark:bg-gray-800 dark:hover:bg-gray-700 dark:text-gray-200 transition\"\n\t\t\ton:click={async () => {\n\t\t\t\tconst _functions = await exportFunctions(localStorage.token).catch((error) => {\n\t\t\t\t\ttoast.error(error);\n\t\t\t\t\treturn null;\n\t\t\t\t});\n\n\t\t\t\tif (_functions) {\n\t\t\t\t\tlet blob = new Blob([JSON.stringify(_functions)], {\n\t\t\t\t\t\ttype: 'application/json'\n\t\t\t\t\t});\n\t\t\t\t\tsaveAs(blob, `functions-export-${Date.now()}.json`);\n\t\t\t\t}\n\t\t\t}}\n\t\t>\n\t\t\t<div class=\" self-center mr-2 font-medium line-clamp-1\">{$i18n.t('Export Functions')}</div>\n\n\t\t\t<div class=\" self-center\">\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t\tclass=\"w-4 h-4\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\tfill-rule=\"evenodd\"\n\t\t\t\t\t\td=\"M4 2a1.5 1.5 0 0 0-1.5 1.5v9A1.5 1.5 0 0 0 4 14h8a1.5 1.5 0 0 0 1.5-1.5V6.621a1.5 1.5 0 0 0-.44-1.06L9.94 2.439A1.5 1.5 0 0 0 8.878 2H4Zm4 3.5a.75.75 0 0 1 .75.75v2.69l.72-.72a.75.75 0 1 1 1.06 1.06l-2 2a.75.75 0 0 1-1.06 0l-2-2a.75.75 0 0 1 1.06-1.06l.72.72V6.25A.75.75 0 0 1 8 5.5Z\"\n\t\t\t\t\t\tclip-rule=\"evenodd\"\n\t\t\t\t\t/>\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t</button>\n\t</div>\n</div>\n\n\n<DeleteConfirmDialog\n\tbind:show={showDeleteConfirm}\n\ttitle={$i18n.t('Delete function?')}\n\ton:confirm={() => {\n\t\tdeleteHandler(selectedFunction);\n\t}}\n>\n\t<div class=\" text-sm text-gray-500\">\n\t\t{$i18n.t('This will delete')} <span class=\" font-semibold\">{selectedFunction.name}</span>.\n\t</div>\n</DeleteConfirmDialog>\n\n<ManifestModal bind:show={showManifestModal} manifest={selectedFunction?.meta?.manifest ?? {}} />\n<ValvesModal\n\tbind:show={showValvesModal}\n\ttype=\"function\"\n\tid={selectedFunction?.id ?? null}\n\ton:save={async () => {\n\t\tawait tick();\n\t\tmodels.set(await getModels(localStorage.token));\n\t}}\n/>\n\n<ConfirmDialog\n\tbind:show={showConfirm}\n\ton:confirm={() => {\n\t\tconst reader = new FileReader();\n\t\treader.onload = async (event) => {\n\t\t\tconst _functions = JSON.parse(event.target.result);\n\t\t\tconsole.log(_functions);\n\n\t\t\tfor (const func of _functions) {\n\t\t\t\tconst res = await createNewFunction(localStorage.token, func).catch((error) => {\n\t\t\t\t\ttoast.error(error);\n\t\t\t\t\treturn null;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\ttoast.success($i18n.t('Functions imported successfully'));\n\t\t\tfunctions.set(await getFunctions(localStorage.token));\n\t\t\tmodels.set(await getModels(localStorage.token));\n\t\t};\n\n\t\treader.readAsText(importFiles[0]);\n\t}}\n>\n\t<div class=\"text-sm text-gray-500\">\n\t\t<div class=\" bg-yellow-500/20 text-yellow-700 dark:text-yellow-200 rounded-lg px-4 py-3\">\n\t\t\t<div>Please carefully review the following warnings:</div>\n\n\t\t\t<ul class=\" mt-1 list-disc pl-4 text-xs\">\n\t\t\t\t<li>{$i18n.t('Functions allow arbitrary code execution.')}</li>\n\t\t\t\t<li>{$i18n.t('Do not install functions from sources you do not fully trust.')}</li>\n\t\t\t</ul>\n\t\t</div>\n\n\t\t<div class=\"my-3\">\n\t\t\t{$i18n.t(\n\t\t\t\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.'\n\t\t\t)}\n\t\t</div>\n\t</div>\n</ConfirmDialog>\n"],"names":["ctx","insert_hydration","target","svg","anchor","append_hydration","path","className","$$props","strokeWidth","switch_1_props","is_function","div3","div1","div0","div2","hr","set_data","t1","t1_value","switch_1_changes","div","show_if","dirty","flyAndScale","i18n","getContext","func","editHandler","shareHandler","cloneHandler","exportHandler","deleteHandler","toggleGlobalHandler","onClose","show","$$self","value","e","_c","_b","_a","if_block","create_if_block_1","button","t0_value","t3_value","t5_value","if_block0","create_if_block_2","div10","a","div7","div6","div5","div4","div9","div8","current","t0","t3","t5","t7","t7_value","tooltip_changes","t2_value","span","t2","ul","li0","li1","t4","t4_value","t6","t6_value","title_value","each_value","ensure_array_like","i","input0","div12","div11","input1","button0","button1","each_blocks","t9","t9_value","t12","t12_value","saveAs","fileSaver","shiftKey","functionsImportInputElement","importFiles","showConfirm","query","showManifestModal","showValvesModal","selectedFunction","showDeleteConfirm","item","getFunctionById","error","toast","$i18n","url","tab","messageHandler","event","_function","goto","blob","deleteFunctionById","functions","getFunctions","models","getModels","toggleGlobalById","onMount","onKeyDown","onKeyUp","onBlur","f","$$invalidate","toggleFunctionById","$$value","_functions","exportFunctions","tick","reader","createNewFunction"],"mappings":"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"}