f7cloud_client/apps/assistant/js/assistant-fileActions.mjs.map
root 8b6a0139db f7cloud_client
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 22:59:26 +00:00

1 line
14 KiB
Plaintext

{"version":3,"mappings":";iTAAA,MAAAA,EAAe,4vBCAfC,EAAe,4gBCAfC,EAAe,onBCcTC,EAAoB,CACzB,WACA,cACD,EAEA,SAASC,EAAoBC,EAAW,CACvC,MAAMC,EAAc,IAAIC,EAAW,CAClC,GAAI,kBACJ,YAAcC,GACN,EAAE,YAAa,cAAc,EAErC,QAAQA,EAAOC,EAAM,CACpB,MAAO,CAACN,EAAkB,SAASM,EAAK,EAAE,GACtCD,EAAM,SAAW,GACjB,CAACA,EAAM,KAAK,CAAC,CAAE,YAAAE,CAAW,KAAQA,EAAcC,EAAW,QAAU,CAAC,GACtEH,EAAM,MAAM,CAAC,CAAE,KAAAI,CAAI,IAAOA,IAASC,EAAS,IAAI,GAChDL,EAAM,MAAM,CAAC,CAAE,KAAAM,CAAI,IAAOT,EAAU,SAASS,CAAI,CAAC,CACvD,EACA,cAAe,IAAMC,EACrB,MAAO,EACP,MAAM,MAAO,CACZ,OAAO,IACR,CACF,CAAE,EACDC,EAAmBV,CAAW,CAC/B,CAEA,SAASW,GAA0B,CAClC,MAAMC,EAAkB,IAAIX,EAAW,CACtC,GAAI,sBACJ,OAAQ,kBACR,YAAcC,GACN,EAAE,WAAY,oBAAoB,EAE1C,QAAQA,EAAOC,EAAM,CACpB,MAAO,CAACN,EAAkB,SAASM,EAAK,EAAE,GACtCD,EAAM,SAAW,GACjB,CAACA,EAAM,KAAK,CAAC,CAAE,YAAAE,CAAW,KAAQA,EAAcC,EAAW,QAAU,CAAC,GACtEH,EAAM,MAAM,CAAC,CAAE,KAAAI,CAAI,IAAOA,IAASC,EAAS,IAAI,GAChDL,EAAM,MAAM,CAAC,CAAE,KAAAM,CAAI,IAAOK,EAAsB,SAASL,CAAI,CAAC,CACnE,EACA,cAAe,IAAMd,EACrB,MAAO,EACP,MAAM,KAAKoB,EAAM,CAChB,KAAM,CAAE,QAASC,CAAK,EAAK,MAAKC,EAAA,wBAAAD,CAAA,OAAC,QAAO,4BAAkB,iBAAAA,EAAA,0CACpD,CAAE,eAAAE,CAAc,EAAK,+CAAM,QAAO,4BAAmB,OAAAC,KAAA,yBAAAD,CAAA,uBACrD,CAAE,UAAAE,EAAW,YAAAC,CAAW,EAAK,MAAKJ,EAAA,0BAAAG,EAAA,YAAAC,CAAA,OAAC,QAAO,4BAAoB,OAAAF,KAAA,oBAAAC,EAAA,YAAAC,EAAA,sDAC9DC,EAAMJ,EAAe,qEAAsE,CAAE,OAAQH,EAAK,MAAM,CAAE,EACxH,GAAI,CACH,MAAMC,EAAM,KAAKM,CAAG,EACpBD,EACC,EAAE,YAAa,+CAA+C,EAAI;AAAA,EAC/D,EAAE,YAAa,wCAAwC,EAAI;AAAA,EAC3D,EAAE,YAAa,oFAAoF,CAC3G,CACG,OAASE,EAAO,CACf,QAAQ,MAAMA,CAAK,EACnBH,EAAU,EAAE,YAAa,qCAAqC,CAAC,CAChE,CACA,OAAO,IACR,CACF,CAAE,EACDT,EAAmBE,CAAe,CACnC,CAEA,SAASW,GAAoB,CAC5B,MAAMC,EAAY,IAAIvB,EAAW,CAChC,GAAI,gBACJ,OAAQ,kBACR,YAAcC,GACN,EAAE,YAAa,yBAAyB,EAEhD,QAAQA,EAAOC,EAAM,CACpB,MAAO,CAACN,EAAkB,SAASM,EAAK,EAAE,GACtCD,EAAM,SAAW,GACjB,CAACA,EAAM,KAAK,CAAC,CAAE,YAAAE,CAAW,KAAQA,EAAcC,EAAW,QAAU,CAAC,GACtEH,EAAM,MAAM,CAAC,CAAE,KAAAI,CAAI,IAAOA,IAASC,EAAS,IAAI,GAChDL,EAAM,MAAM,CAAC,CAAE,KAAAM,CAAI,IAAOK,EAAsB,SAASL,CAAI,CAAC,CACnE,EACA,cAAe,IAAMb,EACrB,MAAO,EACP,MAAM,KAAKmB,EAAM,CAChB,KAAM,CAAE,QAASC,CAAK,EAAK,MAAKC,EAAA,wBAAAD,CAAA,OAAC,QAAO,4BAAkB,iBAAAA,EAAA,0CACpD,CAAE,eAAAE,CAAc,EAAK,+CAAM,QAAO,4BAAmB,OAAAC,KAAA,yBAAAD,CAAA,uBACrD,CAAE,UAAAE,EAAW,YAAAC,CAAW,EAAK,MAAKJ,EAAA,0BAAAG,EAAA,YAAAC,CAAA,OAAC,QAAO,4BAAoB,OAAAF,KAAA,oBAAAC,EAAA,YAAAC,EAAA,sDAC9DC,EAAMJ,EAAe,+DAAgE,CAAE,OAAQH,EAAK,MAAM,CAAE,EAClH,GAAI,CACH,MAAMC,EAAM,KAAKM,CAAG,EACpBD,EACC,EAAE,YAAa,gDAAgD,EAAI;AAAA,EAChE,EAAE,YAAa,wCAAwC,EAAI;AAAA,EAC3D,EAAE,YAAa,2FAA2F,CAClH,CACG,OAASE,EAAO,CACf,QAAQ,MAAMA,CAAK,EACnBH,EAAU,EAAE,YAAa,qCAAqC,CAAC,CAChE,CACA,OAAO,IACR,CACF,CAAE,EACDT,EAAmBc,CAAS,CAC7B,CAEA,SAASC,GAAoB,CAC5B,MAAMC,EAAY,IAAIzB,EAAW,CAChC,GAAI,gBACJ,OAAQ,kBACR,YAAcC,GACN,EAAE,YAAa,2BAA2B,EAElD,QAAQA,EAAOC,EAAM,CACpB,MAAO,CAACN,EAAkB,SAASM,EAAK,EAAE,GACtCD,EAAM,SAAW,GACjB,CAACA,EAAM,KAAK,CAAC,CAAE,YAAAE,CAAW,KAAQA,EAAcC,EAAW,QAAU,CAAC,GACtEH,EAAM,MAAM,CAAC,CAAE,KAAAI,CAAI,IAAOA,IAASC,EAAS,IAAI,GAChDL,EAAM,MAAM,CAAC,CAAE,KAAAM,CAAI,IAAOmB,EAAuB,SAASnB,CAAI,CAAC,CACpE,EACA,cAAe,IAAMZ,EACrB,MAAO,EACP,MAAM,KAAKkB,EAAM,CAChB,KAAM,CAAE,QAASC,CAAK,EAAK,MAAKC,EAAA,wBAAAD,CAAA,OAAC,QAAO,4BAAkB,iBAAAA,EAAA,0CACpD,CAAE,eAAAE,CAAc,EAAK,+CAAM,QAAO,4BAAmB,OAAAC,KAAA,yBAAAD,CAAA,uBACrD,CAAE,UAAAE,EAAW,YAAAC,CAAW,EAAK,MAAKJ,EAAA,0BAAAG,EAAA,YAAAC,CAAA,OAAC,QAAO,4BAAoB,OAAAF,KAAA,oBAAAC,EAAA,YAAAC,EAAA,sDAC9DC,EAAMJ,EAAe,8DAA+D,CAAE,OAAQH,EAAK,MAAM,CAAE,EACjH,GAAI,CACH,MAAMC,EAAM,KAAKM,CAAG,EACpBD,EACC,EAAE,YAAa,+CAA+C,EAAI;AAAA,EAC/D,EAAE,YAAa,wCAAwC,EAAI;AAAA,EAC3D,EAAE,YAAa,4FAA4F,CACnH,CACG,OAASE,EAAO,CACf,QAAQ,MAAMA,CAAK,EACnBH,EAAU,EAAE,YAAa,qCAAqC,CAAC,CAChE,CACA,OAAO,IACR,CACF,CAAE,EACDT,EAAmBgB,CAAS,CAC7B,CAEA,MAAME,EAAmBC,EAAU,YAAa,oBAAqB,EAAK,EACpEC,EAAqBD,EAAU,YAAa,sBAAuB,EAAK,EACxEE,EAAeF,EAAU,YAAa,gBAAiB,EAAK,EAC5DG,EAAeH,EAAU,YAAa,gBAAiB,EAAK,EAElE,GAAID,EAAkB,CACrB,GAAIE,GAAsBC,GAAgBC,EAAc,CACvD,MAAMC,EAAiB,IACnBH,GAAsBE,IACzBC,EAAe,KAAK,GAAGpB,CAAqB,EAEzCkB,GACHE,EAAe,KAAK,GAAGN,CAAsB,EAE9C7B,EAAoBmC,CAAc,CACnC,CACIF,GACHN,EAAiB,EAEdK,GACHnB,EAAuB,EAEpBqB,GACHT,EAAiB,CAEnB","names":["SummarizeSymbol","TTSSymbol","STTSymbol","actionIgnoreLists","registerGroupAction","mimeTypes","groupAction","FileAction","nodes","view","permissions","Permission","type","FileType","mime","CreationSvgIcon","registerFileAction","registerSummarizeAction","summarizeAction","VALID_TEXT_MIME_TYPES","node","axios","__vitePreload","generateOcsUrl","n","showError","showSuccess","url","error","registerTtsAction","ttsAction","registerSttAction","sttAction","VALID_AUDIO_MIME_TYPES","assistantEnabled","loadState","summarizeAvailable","sttAvailable","ttsAvailable","groupMimeTypes"],"ignoreList":[0,1,2],"sources":["../node_modules/@material-symbols/svg-700/outlined/summarize.svg?raw","../node_modules/@material-symbols/svg-700/outlined/text_to_speech.svg?raw","../node_modules/@material-symbols/svg-700/outlined/speech_to_text.svg?raw","../src/files/fileActions.js"],"sourcesContent":["export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"48\\\" height=\\\"48\\\" viewBox=\\\"0 -960 960 960\\\"><path d=\\\"M309-615q15.4 0 25.7-10.3Q345-635.6 345-651q0-15.4-10.3-25.7Q324.4-687 309-687q-15.4 0-25.7 10.3Q273-666.4 273-651q0 15.4 10.3 25.7Q293.6-615 309-615Zm0 171q15.4 0 25.7-10.3Q345-464.6 345-480q0-15.4-10.3-25.7Q324.4-516 309-516q-15.4 0-25.7 10.3Q273-495.4 273-480q0 15.4 10.3 25.7Q293.6-444 309-444Zm0 171q15.4 0 25.7-10.3Q345-293.6 345-309q0-15.4-10.3-25.7Q324.4-345 309-345q-15.4 0-25.7 10.3Q273-324.4 273-309q0 15.4 10.3 25.7Q293.6-273 309-273ZM189-95q-39.05 0-66.53-27.47Q95-149.95 95-189v-582q0-39.46 27.47-67.23Q149.95-866 189-866h453l224 224v453q0 39.05-27.77 66.53Q810.46-95 771-95H189Zm0-94h582v-398.57H588V-771H189v582Zm0-582v183.43V-771v582-582Z\\\"/></svg>\"","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"48\\\" height=\\\"48\\\" viewBox=\\\"0 -960 960 960\\\"><path d=\\\"M140-46q-38.8 0-66.4-27.6Q46-101.2 46-140v-680q0-39.21 27.6-67.11Q101.2-915 140-915h359l-95 95H140v680h463v-110h94v110q0 38.75-27.6 66.37Q641.8-46 603-46H140Zm100-204v-60h280v60H240Zm0-120v-60h200v60H240Zm421 51L476-503H326v-217h150l185-184v585Zm60-121v-347q61 19 96.5 74T853-608.5q0 49.5-38.5 102.5T721-440Zm0 176v-97q76-22 134-91.5T913-609q0-87-55-155t-137-92v-97q129 33 208 129.5t79 215q0 118.5-82 218.5T721-264Z\\\"/></svg>\"","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"48\\\" height=\\\"48\\\" viewBox=\\\"0 -960 960 960\\\"><path d=\\\"M690.15-568q-29.15 0-50.65-21.07Q618-610.15 618-640v-160q0-30.28 21.18-51.14T690.11-872Q720-872 741-850.93q21 21.08 21 50.93v160q0 30.28-20.91 51.14Q720.19-568 690.15-568ZM180-46q-38.78 0-66.39-27.61T86-140v-680q0-39.19 27.61-67.09Q141.22-915 180-915h340v95H180v680h463v-100h94v100q0 38.78-27.61 66.39Q681.77-46 643-46H180Zm100-194v-70h280v70H280Zm0-130v-60h200v60H280Zm457 57h-94v-115q-76-16-128-74.2-52-58.21-52-137.8h80q0 58 43.59 97.5T689.58-503Q750-503 794-542.43T838-640h80q0 79.6-52 137.8-52 58.2-129 74.49V-313Z\\\"/></svg>\"","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { registerFileAction, Permission, FileAction, FileType } from '@nextcloud/files'\nimport { loadState } from '@nextcloud/initial-state'\n\nimport CreationSvgIcon from '@mdi/svg/svg/creation.svg?raw'\nimport SummarizeSymbol from '@material-symbols/svg-700/outlined/summarize.svg?raw'\nimport TTSSymbol from '@material-symbols/svg-700/outlined/text_to_speech.svg?raw'\nimport STTSymbol from '@material-symbols/svg-700/outlined/speech_to_text.svg?raw'\nimport { VALID_AUDIO_MIME_TYPES, VALID_TEXT_MIME_TYPES } from '../constants.js'\n\nconst actionIgnoreLists = [\n\t'trashbin',\n\t'files.public',\n]\n\nfunction registerGroupAction(mimeTypes) {\n\tconst groupAction = new FileAction({\n\t\tid: 'assistant-group',\n\t\tdisplayName: (nodes) => {\n\t\t\treturn t('assistant', 'AI Assistant')\n\t\t},\n\t\tenabled(nodes, view) {\n\t\t\treturn !actionIgnoreLists.includes(view.id)\n\t\t\t\t&& nodes.length === 1\n\t\t\t\t&& !nodes.some(({ permissions }) => (permissions & Permission.READ) === 0)\n\t\t\t\t&& nodes.every(({ type }) => type === FileType.File)\n\t\t\t\t&& nodes.every(({ mime }) => mimeTypes.includes(mime))\n\t\t},\n\t\ticonSvgInline: () => CreationSvgIcon,\n\t\torder: 0,\n\t\tasync exec() {\n\t\t\treturn null\n\t\t},\n\t})\n\tregisterFileAction(groupAction)\n}\n\nfunction registerSummarizeAction() {\n\tconst summarizeAction = new FileAction({\n\t\tid: 'assistant-summarize',\n\t\tparent: 'assistant-group',\n\t\tdisplayName: (nodes) => {\n\t\t\treturn t('approval', 'Summarize using AI')\n\t\t},\n\t\tenabled(nodes, view) {\n\t\t\treturn !actionIgnoreLists.includes(view.id)\n\t\t\t\t&& nodes.length === 1\n\t\t\t\t&& !nodes.some(({ permissions }) => (permissions & Permission.READ) === 0)\n\t\t\t\t&& nodes.every(({ type }) => type === FileType.File)\n\t\t\t\t&& nodes.every(({ mime }) => VALID_TEXT_MIME_TYPES.includes(mime))\n\t\t},\n\t\ticonSvgInline: () => SummarizeSymbol,\n\t\torder: 0,\n\t\tasync exec(node) {\n\t\t\tconst { default: axios } = await import('@nextcloud/axios')\n\t\t\tconst { generateOcsUrl } = await import('@nextcloud/router')\n\t\t\tconst { showError, showSuccess } = await import('@nextcloud/dialogs')\n\t\t\tconst url = generateOcsUrl('/apps/assistant/api/v1/file-action/{fileId}/core:text2text:summary', { fileId: node.fileid })\n\t\t\ttry {\n\t\t\t\tawait axios.post(url)\n\t\t\t\tshowSuccess(\n\t\t\t\t\tt('assistant', 'Summarization AI task submitted successfully.') + '\\n'\n\t\t\t\t\t\t+ t('assistant', 'You will be notified when it is ready.') + '\\n'\n\t\t\t\t\t\t+ t('assistant', 'It can also be checked in the Assistant in the \"Work with text -> Summarize\" menu.'),\n\t\t\t\t)\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error)\n\t\t\t\tshowError(t('assistant', 'Failed to launch the AI file action'))\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t})\n\tregisterFileAction(summarizeAction)\n}\n\nfunction registerTtsAction() {\n\tconst ttsAction = new FileAction({\n\t\tid: 'assistant-tts',\n\t\tparent: 'assistant-group',\n\t\tdisplayName: (nodes) => {\n\t\t\treturn t('assistant', 'Text-To-Speech using AI')\n\t\t},\n\t\tenabled(nodes, view) {\n\t\t\treturn !actionIgnoreLists.includes(view.id)\n\t\t\t\t&& nodes.length === 1\n\t\t\t\t&& !nodes.some(({ permissions }) => (permissions & Permission.READ) === 0)\n\t\t\t\t&& nodes.every(({ type }) => type === FileType.File)\n\t\t\t\t&& nodes.every(({ mime }) => VALID_TEXT_MIME_TYPES.includes(mime))\n\t\t},\n\t\ticonSvgInline: () => TTSSymbol,\n\t\torder: 0,\n\t\tasync exec(node) {\n\t\t\tconst { default: axios } = await import('@nextcloud/axios')\n\t\t\tconst { generateOcsUrl } = await import('@nextcloud/router')\n\t\t\tconst { showError, showSuccess } = await import('@nextcloud/dialogs')\n\t\t\tconst url = generateOcsUrl('/apps/assistant/api/v1/file-action/{fileId}/core:text2speech', { fileId: node.fileid })\n\t\t\ttry {\n\t\t\t\tawait axios.post(url)\n\t\t\t\tshowSuccess(\n\t\t\t\t\tt('assistant', 'Text-to-Speech AI task submitted successfully.') + '\\n'\n\t\t\t\t\t\t+ t('assistant', 'You will be notified when it is ready.') + '\\n'\n\t\t\t\t\t\t+ t('assistant', 'It can also be checked in the Assistant in the \"Work with audio -> Generate speech\" menu.'),\n\t\t\t\t)\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error)\n\t\t\t\tshowError(t('assistant', 'Failed to launch the AI file action'))\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t})\n\tregisterFileAction(ttsAction)\n}\n\nfunction registerSttAction() {\n\tconst sttAction = new FileAction({\n\t\tid: 'assistant-stt',\n\t\tparent: 'assistant-group',\n\t\tdisplayName: (nodes) => {\n\t\t\treturn t('assistant', 'Transcribe audio using AI')\n\t\t},\n\t\tenabled(nodes, view) {\n\t\t\treturn !actionIgnoreLists.includes(view.id)\n\t\t\t\t&& nodes.length === 1\n\t\t\t\t&& !nodes.some(({ permissions }) => (permissions & Permission.READ) === 0)\n\t\t\t\t&& nodes.every(({ type }) => type === FileType.File)\n\t\t\t\t&& nodes.every(({ mime }) => VALID_AUDIO_MIME_TYPES.includes(mime))\n\t\t},\n\t\ticonSvgInline: () => STTSymbol,\n\t\torder: 0,\n\t\tasync exec(node) {\n\t\t\tconst { default: axios } = await import('@nextcloud/axios')\n\t\t\tconst { generateOcsUrl } = await import('@nextcloud/router')\n\t\t\tconst { showError, showSuccess } = await import('@nextcloud/dialogs')\n\t\t\tconst url = generateOcsUrl('/apps/assistant/api/v1/file-action/{fileId}/core:audio2text', { fileId: node.fileid })\n\t\t\ttry {\n\t\t\t\tawait axios.post(url)\n\t\t\t\tshowSuccess(\n\t\t\t\t\tt('assistant', 'Transcription AI task submitted successfully.') + '\\n'\n\t\t\t\t\t\t+ t('assistant', 'You will be notified when it is ready.') + '\\n'\n\t\t\t\t\t\t+ t('assistant', 'It can also be checked in the Assistant in the \"Work with audio -> Transcribe audio\" menu.'),\n\t\t\t\t)\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error)\n\t\t\t\tshowError(t('assistant', 'Failed to launch the AI file action'))\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t})\n\tregisterFileAction(sttAction)\n}\n\nconst assistantEnabled = loadState('assistant', 'assistant-enabled', false)\nconst summarizeAvailable = loadState('assistant', 'summarize-available', false)\nconst sttAvailable = loadState('assistant', 'stt-available', false)\nconst ttsAvailable = loadState('assistant', 'tts-available', false)\n\nif (assistantEnabled) {\n\tif (summarizeAvailable || sttAvailable || ttsAvailable) {\n\t\tconst groupMimeTypes = []\n\t\tif (summarizeAvailable || ttsAvailable) {\n\t\t\tgroupMimeTypes.push(...VALID_TEXT_MIME_TYPES)\n\t\t}\n\t\tif (sttAvailable) {\n\t\t\tgroupMimeTypes.push(...VALID_AUDIO_MIME_TYPES)\n\t\t}\n\t\tregisterGroupAction(groupMimeTypes)\n\t}\n\tif (sttAvailable) {\n\t\tregisterSttAction()\n\t}\n\tif (summarizeAvailable) {\n\t\tregisterSummarizeAction()\n\t}\n\tif (ttsAvailable) {\n\t\tregisterTtsAction()\n\t}\n}\n"],"file":"assistant-fileActions.mjs"}