{"version":3,"file":"index.f8aa1646.js","sources":["../../../../../../src/lib/apis/index.ts"],"sourcesContent":["import { WEBUI_API_BASE_URL, WEBUI_BASE_URL } from '$lib/constants';\n\nexport const getModels = async (token: string = '') => {\n\tlet error = null;\n\n\tconst res = await fetch(`${WEBUI_BASE_URL}/api/models`, {\n\t\tmethod: 'GET',\n\t\theaders: {\n\t\t\tAccept: 'application/json',\n\t\t\t'Content-Type': 'application/json',\n\t\t\t...(token && { authorization: `Bearer ${token}` })\n\t\t}\n\t})\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\terror = err;\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\tlet models = res?.data ?? [];\n\n\tmodels = models\n\t\t.filter((models) => models)\n\t\t// Sort the models\n\t\t.sort((a, b) => {\n\t\t\t// Check if models have position property\n\t\t\tconst aHasPosition = a.info?.meta?.position !== undefined;\n\t\t\tconst bHasPosition = b.info?.meta?.position !== undefined;\n\n\t\t\t// If both a and b have the position property\n\t\t\tif (aHasPosition && bHasPosition) {\n\t\t\t\treturn a.info.meta.position - b.info.meta.position;\n\t\t\t}\n\n\t\t\t// If only a has the position property, it should come first\n\t\t\tif (aHasPosition) return -1;\n\n\t\t\t// If only b has the position property, it should come first\n\t\t\tif (bHasPosition) return 1;\n\n\t\t\t// Compare case-insensitively by name for models without position property\n\t\t\tconst lowerA = a.name.toLowerCase();\n\t\t\tconst lowerB = b.name.toLowerCase();\n\n\t\t\tif (lowerA < lowerB) return -1;\n\t\t\tif (lowerA > lowerB) return 1;\n\n\t\t\t// If same case-insensitively, sort by original strings,\n\t\t\t// lowercase will come before uppercase due to ASCII values\n\t\t\tif (a.name < b.name) return -1;\n\t\t\tif (a.name > b.name) return 1;\n\n\t\t\treturn 0; // They are equal\n\t\t});\n\n\tconsole.log(models);\n\treturn models;\n};\n\ntype ChatCompletedForm = {\n\tmodel: string;\n\tmessages: string[];\n\tchat_id: string;\n};\n\nexport const chatCompleted = async (token: string, body: ChatCompletedForm) => {\n\tlet error = null;\n\n\tconst res = await fetch(`${WEBUI_BASE_URL}/api/chat/completed`, {\n\t\tmethod: 'POST',\n\t\theaders: {\n\t\t\tAccept: 'application/json',\n\t\t\t'Content-Type': 'application/json',\n\t\t\t...(token && { authorization: `Bearer ${token}` })\n\t\t},\n\t\tbody: JSON.stringify(body)\n\t})\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\tif ('detail' in err) {\n\t\t\t\terror = err.detail;\n\t\t\t} else {\n\t\t\t\terror = err;\n\t\t\t}\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\treturn res;\n};\n\nexport const getTaskConfig = async (token: string = '') => {\n\tlet error = null;\n\n\tconst res = await fetch(`${WEBUI_BASE_URL}/api/task/config`, {\n\t\tmethod: 'GET',\n\t\theaders: {\n\t\t\tAccept: 'application/json',\n\t\t\t'Content-Type': 'application/json',\n\t\t\t...(token && { authorization: `Bearer ${token}` })\n\t\t}\n\t})\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\terror = err;\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\treturn res;\n};\n\nexport const updateTaskConfig = async (token: string, config: object) => {\n\tlet error = null;\n\n\tconst res = await fetch(`${WEBUI_BASE_URL}/api/task/config/update`, {\n\t\tmethod: 'POST',\n\t\theaders: {\n\t\t\tAccept: 'application/json',\n\t\t\t'Content-Type': 'application/json',\n\t\t\t...(token && { authorization: `Bearer ${token}` })\n\t\t},\n\t\tbody: JSON.stringify(config)\n\t})\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\tif ('detail' in err) {\n\t\t\t\terror = err.detail;\n\t\t\t} else {\n\t\t\t\terror = err;\n\t\t\t}\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\treturn res;\n};\n\nexport const generateTitle = async (\n\ttoken: string = '',\n\tmodel: string,\n\tprompt: string,\n\tchat_id?: string\n) => {\n\tlet error = null;\n\n\tconst res = await fetch(`${WEBUI_BASE_URL}/api/task/title/completions`, {\n\t\tmethod: 'POST',\n\t\theaders: {\n\t\t\tAccept: 'application/json',\n\t\t\t'Content-Type': 'application/json',\n\t\t\tAuthorization: `Bearer ${token}`\n\t\t},\n\t\tbody: JSON.stringify({\n\t\t\tmodel: model,\n\t\t\tprompt: prompt,\n\t\t\t...(chat_id && { chat_id: chat_id })\n\t\t})\n\t})\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\tif ('detail' in err) {\n\t\t\t\terror = err.detail;\n\t\t\t}\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\treturn res?.choices[0]?.message?.content.replace(/[\"']/g, '') ?? 'New Chat';\n};\n\nexport const generateEmoji = async (\n\ttoken: string = '',\n\tmodel: string,\n\tprompt: string,\n\tchat_id?: string\n) => {\n\tlet error = null;\n\n\tconst res = await fetch(`${WEBUI_BASE_URL}/api/task/emoji/completions`, {\n\t\tmethod: 'POST',\n\t\theaders: {\n\t\t\tAccept: 'application/json',\n\t\t\t'Content-Type': 'application/json',\n\t\t\tAuthorization: `Bearer ${token}`\n\t\t},\n\t\tbody: JSON.stringify({\n\t\t\tmodel: model,\n\t\t\tprompt: prompt,\n\t\t\t...(chat_id && { chat_id: chat_id })\n\t\t})\n\t})\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\tif ('detail' in err) {\n\t\t\t\terror = err.detail;\n\t\t\t}\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\tconst response = res?.choices[0]?.message?.content.replace(/[\"']/g, '') ?? null;\n\n\tif (response) {\n\t\tif (/\\p{Extended_Pictographic}/u.test(response)) {\n\t\t\treturn response.match(/\\p{Extended_Pictographic}/gu)[0];\n\t\t}\n\t}\n\n\treturn null;\n};\n\nexport const generateSearchQuery = async (\n\ttoken: string = '',\n\tmodel: string,\n\tmessages: object[],\n\tprompt: string\n) => {\n\tlet error = null;\n\n\tconst res = await fetch(`${WEBUI_BASE_URL}/api/task/query/completions`, {\n\t\tmethod: 'POST',\n\t\theaders: {\n\t\t\tAccept: 'application/json',\n\t\t\t'Content-Type': 'application/json',\n\t\t\tAuthorization: `Bearer ${token}`\n\t\t},\n\t\tbody: JSON.stringify({\n\t\t\tmodel: model,\n\t\t\tmessages: messages,\n\t\t\tprompt: prompt\n\t\t})\n\t})\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\tif ('detail' in err) {\n\t\t\t\terror = err.detail;\n\t\t\t}\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\treturn res?.choices[0]?.message?.content.replace(/[\"']/g, '') ?? prompt;\n};\n\nexport const getPipelinesList = async (token: string = '') => {\n\tlet error = null;\n\n\tconst res = await fetch(`${WEBUI_BASE_URL}/api/pipelines/list`, {\n\t\tmethod: 'GET',\n\t\theaders: {\n\t\t\tAccept: 'application/json',\n\t\t\t'Content-Type': 'application/json',\n\t\t\t...(token && { authorization: `Bearer ${token}` })\n\t\t}\n\t})\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\terror = err;\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\tlet pipelines = res?.data ?? [];\n\treturn pipelines;\n};\n\nexport const uploadPipeline = async (token: string, file: File, urlIdx: string) => {\n\tlet error = null;\n\n\t// Create a new FormData object to handle the file upload\n\tconst formData = new FormData();\n\tformData.append('file', file);\n\tformData.append('urlIdx', urlIdx);\n\n\tconst res = await fetch(`${WEBUI_BASE_URL}/api/pipelines/upload`, {\n\t\tmethod: 'POST',\n\t\theaders: {\n\t\t\t...(token && { authorization: `Bearer ${token}` })\n\t\t\t// 'Content-Type': 'multipart/form-data' is not needed as Fetch API will set it automatically\n\t\t},\n\t\tbody: formData\n\t})\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\tif ('detail' in err) {\n\t\t\t\terror = err.detail;\n\t\t\t} else {\n\t\t\t\terror = err;\n\t\t\t}\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\treturn res;\n};\n\nexport const downloadPipeline = async (token: string, url: string, urlIdx: string) => {\n\tlet error = null;\n\n\tconst res = await fetch(`${WEBUI_BASE_URL}/api/pipelines/add`, {\n\t\tmethod: 'POST',\n\t\theaders: {\n\t\t\tAccept: 'application/json',\n\t\t\t'Content-Type': 'application/json',\n\t\t\t...(token && { authorization: `Bearer ${token}` })\n\t\t},\n\t\tbody: JSON.stringify({\n\t\t\turl: url,\n\t\t\turlIdx: urlIdx\n\t\t})\n\t})\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\tif ('detail' in err) {\n\t\t\t\terror = err.detail;\n\t\t\t} else {\n\t\t\t\terror = err;\n\t\t\t}\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\treturn res;\n};\n\nexport const deletePipeline = async (token: string, id: string, urlIdx: string) => {\n\tlet error = null;\n\n\tconst res = await fetch(`${WEBUI_BASE_URL}/api/pipelines/delete`, {\n\t\tmethod: 'DELETE',\n\t\theaders: {\n\t\t\tAccept: 'application/json',\n\t\t\t'Content-Type': 'application/json',\n\t\t\t...(token && { authorization: `Bearer ${token}` })\n\t\t},\n\t\tbody: JSON.stringify({\n\t\t\tid: id,\n\t\t\turlIdx: urlIdx\n\t\t})\n\t})\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\tif ('detail' in err) {\n\t\t\t\terror = err.detail;\n\t\t\t} else {\n\t\t\t\terror = err;\n\t\t\t}\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\treturn res;\n};\n\nexport const getPipelines = async (token: string, urlIdx?: string) => {\n\tlet error = null;\n\n\tconst searchParams = new URLSearchParams();\n\tif (urlIdx !== undefined) {\n\t\tsearchParams.append('urlIdx', urlIdx);\n\t}\n\n\tconst res = await fetch(`${WEBUI_BASE_URL}/api/pipelines?${searchParams.toString()}`, {\n\t\tmethod: 'GET',\n\t\theaders: {\n\t\t\tAccept: 'application/json',\n\t\t\t'Content-Type': 'application/json',\n\t\t\t...(token && { authorization: `Bearer ${token}` })\n\t\t}\n\t})\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\terror = err;\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\tlet pipelines = res?.data ?? [];\n\treturn pipelines;\n};\n\nexport const getPipelineValves = async (token: string, pipeline_id: string, urlIdx: string) => {\n\tlet error = null;\n\n\tconst searchParams = new URLSearchParams();\n\tif (urlIdx !== undefined) {\n\t\tsearchParams.append('urlIdx', urlIdx);\n\t}\n\n\tconst res = await fetch(\n\t\t`${WEBUI_BASE_URL}/api/pipelines/${pipeline_id}/valves?${searchParams.toString()}`,\n\t\t{\n\t\t\tmethod: 'GET',\n\t\t\theaders: {\n\t\t\t\tAccept: 'application/json',\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t...(token && { authorization: `Bearer ${token}` })\n\t\t\t}\n\t\t}\n\t)\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\terror = err;\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\treturn res;\n};\n\nexport const getPipelineValvesSpec = async (token: string, pipeline_id: string, urlIdx: string) => {\n\tlet error = null;\n\n\tconst searchParams = new URLSearchParams();\n\tif (urlIdx !== undefined) {\n\t\tsearchParams.append('urlIdx', urlIdx);\n\t}\n\n\tconst res = await fetch(\n\t\t`${WEBUI_BASE_URL}/api/pipelines/${pipeline_id}/valves/spec?${searchParams.toString()}`,\n\t\t{\n\t\t\tmethod: 'GET',\n\t\t\theaders: {\n\t\t\t\tAccept: 'application/json',\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t...(token && { authorization: `Bearer ${token}` })\n\t\t\t}\n\t\t}\n\t)\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\terror = err;\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\treturn res;\n};\n\nexport const updatePipelineValves = async (\n\ttoken: string = '',\n\tpipeline_id: string,\n\tvalves: object,\n\turlIdx: string\n) => {\n\tlet error = null;\n\n\tconst searchParams = new URLSearchParams();\n\tif (urlIdx !== undefined) {\n\t\tsearchParams.append('urlIdx', urlIdx);\n\t}\n\n\tconst res = await fetch(\n\t\t`${WEBUI_BASE_URL}/api/pipelines/${pipeline_id}/valves/update?${searchParams.toString()}`,\n\t\t{\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\tAccept: 'application/json',\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t...(token && { authorization: `Bearer ${token}` })\n\t\t\t},\n\t\t\tbody: JSON.stringify(valves)\n\t\t}\n\t)\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\n\t\t\tif ('detail' in err) {\n\t\t\t\terror = err.detail;\n\t\t\t} else {\n\t\t\t\terror = err;\n\t\t\t}\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\treturn res;\n};\n\nexport const getBackendConfig = async () => {\n\tlet error = null;\n\n\tconst res = await fetch(`${WEBUI_BASE_URL}/api/config`, {\n\t\tmethod: 'GET',\n\t\theaders: {\n\t\t\t'Content-Type': 'application/json'\n\t\t}\n\t})\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\terror = err;\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\treturn res;\n};\n\nexport const getChangelog = async () => {\n\tlet error = null;\n\n\tconst res = await fetch(`${WEBUI_BASE_URL}/api/changelog`, {\n\t\tmethod: 'GET',\n\t\theaders: {\n\t\t\t'Content-Type': 'application/json'\n\t\t}\n\t})\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\terror = err;\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\treturn res;\n};\n\nexport const getVersionUpdates = async () => {\n\tlet error = null;\n\n\tconst res = await fetch(`${WEBUI_BASE_URL}/api/version/updates`, {\n\t\tmethod: 'GET',\n\t\theaders: {\n\t\t\t'Content-Type': 'application/json'\n\t\t}\n\t})\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\terror = err;\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\treturn res;\n};\n\nexport const getModelFilterConfig = async (token: string) => {\n\tlet error = null;\n\n\tconst res = await fetch(`${WEBUI_BASE_URL}/api/config/model/filter`, {\n\t\tmethod: 'GET',\n\t\theaders: {\n\t\t\t'Content-Type': 'application/json',\n\t\t\tAuthorization: `Bearer ${token}`\n\t\t}\n\t})\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\terror = err;\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\treturn res;\n};\n\nexport const updateModelFilterConfig = async (\n\ttoken: string,\n\tenabled: boolean,\n\tmodels: string[]\n) => {\n\tlet error = null;\n\n\tconst res = await fetch(`${WEBUI_BASE_URL}/api/config/model/filter`, {\n\t\tmethod: 'POST',\n\t\theaders: {\n\t\t\t'Content-Type': 'application/json',\n\t\t\tAuthorization: `Bearer ${token}`\n\t\t},\n\t\tbody: JSON.stringify({\n\t\t\tenabled: enabled,\n\t\t\tmodels: models\n\t\t})\n\t})\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\terror = err;\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\treturn res;\n};\n\nexport const getWebhookUrl = async (token: string) => {\n\tlet error = null;\n\n\tconst res = await fetch(`${WEBUI_BASE_URL}/api/webhook`, {\n\t\tmethod: 'GET',\n\t\theaders: {\n\t\t\t'Content-Type': 'application/json',\n\t\t\tAuthorization: `Bearer ${token}`\n\t\t}\n\t})\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\terror = err;\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\treturn res.url;\n};\n\nexport const updateWebhookUrl = async (token: string, url: string) => {\n\tlet error = null;\n\n\tconst res = await fetch(`${WEBUI_BASE_URL}/api/webhook`, {\n\t\tmethod: 'POST',\n\t\theaders: {\n\t\t\t'Content-Type': 'application/json',\n\t\t\tAuthorization: `Bearer ${token}`\n\t\t},\n\t\tbody: JSON.stringify({\n\t\t\turl: url\n\t\t})\n\t})\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\terror = err;\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\treturn res.url;\n};\n\nexport const getCommunitySharingEnabledStatus = async (token: string) => {\n\tlet error = null;\n\n\tconst res = await fetch(`${WEBUI_BASE_URL}/api/community_sharing`, {\n\t\tmethod: 'GET',\n\t\theaders: {\n\t\t\t'Content-Type': 'application/json',\n\t\t\tAuthorization: `Bearer ${token}`\n\t\t}\n\t})\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\terror = err;\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\treturn res;\n};\n\nexport const toggleCommunitySharingEnabledStatus = async (token: string) => {\n\tlet error = null;\n\n\tconst res = await fetch(`${WEBUI_BASE_URL}/api/community_sharing/toggle`, {\n\t\tmethod: 'GET',\n\t\theaders: {\n\t\t\t'Content-Type': 'application/json',\n\t\t\tAuthorization: `Bearer ${token}`\n\t\t}\n\t})\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\terror = err.detail;\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\treturn res;\n};\n\nexport const getModelConfig = async (token: string): Promise => {\n\tlet error = null;\n\n\tconst res = await fetch(`${WEBUI_BASE_URL}/api/config/models`, {\n\t\tmethod: 'GET',\n\t\theaders: {\n\t\t\t'Content-Type': 'application/json',\n\t\t\tAuthorization: `Bearer ${token}`\n\t\t}\n\t})\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\terror = err;\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\treturn res.models;\n};\n\nexport interface ModelConfig {\n\tid: string;\n\tname: string;\n\tmeta: ModelMeta;\n\tbase_model_id?: string;\n\tparams: ModelParams;\n}\n\nexport interface ModelMeta {\n\tdescription?: string;\n\tcapabilities?: object;\n}\n\nexport interface ModelParams {}\n\nexport type GlobalModelConfig = ModelConfig[];\n\nexport const updateModelConfig = async (token: string, config: GlobalModelConfig) => {\n\tlet error = null;\n\n\tconst res = await fetch(`${WEBUI_BASE_URL}/api/config/models`, {\n\t\tmethod: 'POST',\n\t\theaders: {\n\t\t\t'Content-Type': 'application/json',\n\t\t\tAuthorization: `Bearer ${token}`\n\t\t},\n\t\tbody: JSON.stringify({\n\t\t\tmodels: config\n\t\t})\n\t})\n\t\t.then(async (res) => {\n\t\t\tif (!res.ok) throw await res.json();\n\t\t\treturn res.json();\n\t\t})\n\t\t.catch((err) => {\n\t\t\tconsole.log(err);\n\t\t\terror = err;\n\t\t\treturn null;\n\t\t});\n\n\tif (error) {\n\t\tthrow error;\n\t}\n\n\treturn res;\n};\n"],"names":["getModels","token","error","res","WEBUI_BASE_URL","err","models","a","b","aHasPosition","_b","_a","bHasPosition","_d","_c","lowerA","lowerB","chatCompleted","body","getTaskConfig","updateTaskConfig","config","generateTitle","model","prompt","chat_id","generateEmoji","response","generateSearchQuery","messages","getPipelinesList","uploadPipeline","file","urlIdx","formData","downloadPipeline","url","deletePipeline","id","getPipelines","searchParams","getPipelineValves","pipeline_id","getPipelineValvesSpec","updatePipelineValves","valves","getBackendConfig","getChangelog","getVersionUpdates","getModelFilterConfig","updateModelFilterConfig","enabled","getWebhookUrl","updateWebhookUrl"],"mappings":"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"}