f7cloud_client/apps/assistant/js/assistant-assistantPage.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,"file":"assistant-assistantPage.mjs","sources":["../src/views/AssistantPage.vue","../src/assistantPage.js"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<NcContent app-name=\"assistant\">\n\t\t<NcAppContent>\n\t\t\t<div class=\"assistant-wrapper\">\n\t\t\t\t<AssistantTextProcessingForm\n\t\t\t\t\tclass=\"form\"\n\t\t\t\t\t:selected-task-id=\"task.id\"\n\t\t\t\t\t:inputs=\"task.input\"\n\t\t\t\t\t:outputs=\"task.output\"\n\t\t\t\t\t:selected-task-type-id=\"task.type\"\n\t\t\t\t\t:loading=\"loading\"\n\t\t\t\t\t:show-sync-task-running=\"showSyncTaskRunning\"\n\t\t\t\t\t:short-input=\"shortInput\"\n\t\t\t\t\t:task-status=\"task.status\"\n\t\t\t\t\t:scheduled-at=\"task.scheduledAt\"\n\t\t\t\t\t:progress=\"progress\"\n\t\t\t\t\t:expected-runtime=\"expectedRuntime\"\n\t\t\t\t\t:is-notify-enabled=\"isNotifyEnabled\"\n\t\t\t\t\t@sync-submit=\"onSyncSubmit\"\n\t\t\t\t\t@try-again=\"onTryAgain\"\n\t\t\t\t\t@load-task=\"onLoadTask\"\n\t\t\t\t\t@new-task=\"onNewTask\"\n\t\t\t\t\t@background-notify=\"onBackgroundNotify\"\n\t\t\t\t\t@cancel-task=\"onCancel\" />\n\t\t\t</div>\n\t\t</NcAppContent>\n\t</NcContent>\n</template>\n\n<script>\nimport NcContent from '@nextcloud/vue/components/NcContent'\nimport NcAppContent from '@nextcloud/vue/components/NcAppContent'\n\nimport AssistantTextProcessingForm from '../components/AssistantTextProcessingForm.vue'\n\nimport { showError } from '@nextcloud/dialogs'\nimport { emit } from '@nextcloud/event-bus'\nimport { loadState } from '@nextcloud/initial-state'\nimport {\n\tcancelTask,\n\tcancelTaskPolling,\n\tgetTask,\n\tpollTask,\n\tscheduleTask,\n\tsetNotifyReady,\n} from '../assistant.js'\nimport { TASK_STATUS_STRING } from '../constants.js'\n\nexport default {\n\tname: 'AssistantPage',\n\n\tcomponents: {\n\t\tAssistantTextProcessingForm,\n\t\tNcContent,\n\t\tNcAppContent,\n\t},\n\n\tprops: {\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\ttask: loadState('assistant', 'task'),\n\t\t\tshowSyncTaskRunning: false,\n\t\t\tprogress: null,\n\t\t\tloading: false,\n\t\t\tisNotifyEnabled: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tshortInput() {\n\t\t\tconst input = this.task.input.input ?? this.task.input.sourceMaterial ?? ''\n\t\t\tif (typeof input === 'string') {\n\t\t\t\tif (input.length <= 200) {\n\t\t\t\t\treturn input\n\t\t\t\t}\n\t\t\t\treturn input.slice(0, 200) + '…'\n\t\t\t}\n\t\t\treturn ''\n\t\t},\n\t\texpectedRuntime() {\n\t\t\tconst expected = this.task.completionExpectedAt\n\t\t\tconst scheduled = this.task.scheduledAt\n\t\t\treturn (expected && scheduled) ? (expected - scheduled) : null\n\t\t},\n\t},\n\n\tmounted() {\n\t\tconsole.debug('[assistant] task', this.task)\n\t},\n\n\tmethods: {\n\t\tonBackgroundNotify(enable) {\n\t\t\tsetNotifyReady(this.task.id, enable).then(res => {\n\t\t\t\tthis.isNotifyEnabled = enable\n\t\t\t})\n\t\t},\n\t\tonCancel() {\n\t\t\tcancelTaskPolling()\n\t\t\tsetNotifyReady(this.task.id, false)\n\t\t\tcancelTask(this.task.id).then(res => {\n\t\t\t\tthis.loading = false\n\t\t\t\tthis.showSyncTaskRunning = false\n\t\t\t\tthis.task.id = null\n\t\t\t})\n\t\t},\n\t\tsyncSubmit(inputs, taskTypeId, newTaskIdentifier = '') {\n\t\t\tthis.showSyncTaskRunning = true\n\t\t\tthis.isNotifyEnabled = false\n\t\t\tthis.progress = null\n\t\t\tthis.task.completionExpectedAt = null\n\t\t\tthis.task.scheduledAt = null\n\t\t\tthis.task.input = inputs\n\t\t\tthis.task.type = taskTypeId\n\t\t\tscheduleTask('assistant', this.task.identifier, taskTypeId, inputs)\n\t\t\t\t.then((response) => {\n\t\t\t\t\tconsole.debug('Assistant SYNC result', response.data?.ocs?.data)\n\t\t\t\t\tconst task = response.data?.ocs?.data?.task\n\t\t\t\t\tthis.task.id = task.id\n\t\t\t\t\tthis.task.completionExpectedAt = task.completionExpectedAt\n\t\t\t\t\tthis.task.scheduledAt = task.scheduledAt\n\t\t\t\t\tpollTask(task.id, this, this.updateTask).then(finishedTask => {\n\t\t\t\t\t\tif (finishedTask.status === TASK_STATUS_STRING.successful) {\n\t\t\t\t\t\t\tthis.task.output = finishedTask?.output\n\t\t\t\t\t\t} else if (finishedTask.status === TASK_STATUS_STRING.failed) {\n\t\t\t\t\t\t\tshowError(t('assistant', 'Your task with ID {id} has failed', { id: finishedTask.id }))\n\t\t\t\t\t\t\tconsole.error('[assistant] Task failed', finishedTask)\n\t\t\t\t\t\t\tthis.task.output = null\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.loading = false\n\t\t\t\t\t\tthis.showSyncTaskRunning = false\n\t\t\t\t\t\temit('assistant:task:updated', finishedTask)\n\t\t\t\t\t}).catch(error => {\n\t\t\t\t\t\tconsole.debug('[assistant] poll error', error)\n\t\t\t\t\t\tif (error.message === 'task-not-found') {\n\t\t\t\t\t\t\tthis.loading = false\n\t\t\t\t\t\t\tthis.showSyncTaskRunning = false\n\t\t\t\t\t\t\tthis.isNotifyEnabled = false\n\t\t\t\t\t\t\tthis.task.status = TASK_STATUS_STRING.unknown\n\t\t\t\t\t\t\tthis.task.output = null\n\t\t\t\t\t\t\tthis.task.id = null\n\t\t\t\t\t\t\tshowError(t('assistant', 'The current Assistant task could not be found'))\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t\t.catch(error => {\n\t\t\t\t\tthis.loading = false\n\t\t\t\t\tthis.showSyncTaskRunning = false\n\t\t\t\t\tconsole.error('Assistant scheduling error', error?.response?.data?.ocs?.data?.message)\n\t\t\t\t\tshowError(t('assistant', 'Assistant error') + ': ' + t('assistant', 'Something went wrong when scheduling the task'))\n\t\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t})\n\t\t},\n\t\tupdateTask(task) {\n\t\t\tif (task.status === TASK_STATUS_STRING.running) {\n\t\t\t\tthis.progress = task.progress\n\t\t\t}\n\t\t\tthis.task = task\n\t\t},\n\t\tonSyncSubmit(data) {\n\t\t\tthis.syncSubmit(data.inputs, data.selectedTaskTypeId, this.task.identifier)\n\t\t},\n\t\tonTryAgain(task) {\n\t\t\tthis.syncSubmit(task.input, task.type)\n\t\t},\n\t\tonLoadTask(task) {\n\t\t\tcancelTaskPolling()\n\t\t\tthis.showSyncTaskRunning = false\n\t\t\tthis.loading = false\n\n\t\t\tthis.task.type = task.type\n\t\t\tthis.task.input = task.input\n\t\t\tthis.task.status = task.status\n\t\t\tthis.task.output = task.status === TASK_STATUS_STRING.successful ? task.output : null\n\t\t\tthis.task.id = task.id\n\n\t\t\tif ([TASK_STATUS_STRING.scheduled, TASK_STATUS_STRING.running].includes(task?.status)) {\n\t\t\t\tgetTask(task.id).then(response => {\n\t\t\t\t\tconst updatedTask = response.data?.ocs?.data?.task\n\n\t\t\t\t\tif (![TASK_STATUS_STRING.scheduled, TASK_STATUS_STRING.running].includes(updatedTask?.status)) {\n\t\t\t\t\t\tthis.selectedTaskTypeId = updatedTask.type\n\t\t\t\t\t\tthis.task.input = updatedTask.input\n\t\t\t\t\t\tthis.task.output = updatedTask.status === TASK_STATUS_STRING.successful ? updatedTask.output : null\n\t\t\t\t\t\tthis.task.id = updatedTask.id\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.loading = true\n\t\t\t\t\tthis.showSyncTaskRunning = true\n\t\t\t\t\tthis.progress = null\n\t\t\t\t\tthis.task.completionExpectedAt = updatedTask.completionExpectedAt\n\t\t\t\t\tthis.task.scheduledAt = updatedTask.scheduledAt\n\n\t\t\t\t\tpollTask(updatedTask.id, this, this.updateTask).then(finishedTask => {\n\t\t\t\t\t\tconsole.debug('pollTask.then', finishedTask)\n\t\t\t\t\t\tif (finishedTask.status === TASK_STATUS_STRING.successful) {\n\t\t\t\t\t\t\tthis.task.output = finishedTask?.output\n\t\t\t\t\t\t\tthis.task.id = finishedTask?.id\n\t\t\t\t\t\t} else if (finishedTask.status === TASK_STATUS_STRING.failed) {\n\t\t\t\t\t\t\tshowError(t('assistant', 'Your task with ID {id} has failed', { id: finishedTask.id }))\n\t\t\t\t\t\t\tconsole.error('Assistant task failed', finishedTask)\n\t\t\t\t\t\t\tthis.task.output = null\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// resolve(finishedTask)\n\t\t\t\t\t\tthis.loading = false\n\t\t\t\t\t\tthis.showSyncTaskRunning = false\n\t\t\t\t\t\temit('assistant:task:updated', finishedTask)\n\t\t\t\t\t}).catch(error => {\n\t\t\t\t\t\tconsole.debug('Assistant poll error', error)\n\t\t\t\t\t\tif (error.message === 'task-not-found') {\n\t\t\t\t\t\t\tthis.loading = false\n\t\t\t\t\t\t\tthis.showSyncTaskRunning = false\n\t\t\t\t\t\t\tthis.isNotifyEnabled = false\n\t\t\t\t\t\t\tthis.task.status = TASK_STATUS_STRING.unknown\n\t\t\t\t\t\t\tthis.task.output = null\n\t\t\t\t\t\t\tthis.task.id = null\n\t\t\t\t\t\t\tshowError(t('assistant', 'The current Assistant task could not be found'))\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}).catch(error => {\n\t\t\t\t\tconsole.error(error)\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t\tonNewTask() {\n\t\t\tcancelTaskPolling()\n\t\t\tthis.loading = false\n\t\t\tthis.showSyncTaskRunning = false\n\t\t\tthis.isNotifyEnabled = false\n\t\t\tthis.task.status = TASK_STATUS_STRING.unknown\n\t\t\tthis.task.output = null\n\t\t\tthis.task.id = null\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.assistant-wrapper {\n\theight: 90%;\n\tdisplay: flex;\n\tjustify-content: center;\n\tmargin: 24px 16px 16px 16px;\n\t.form {\n\t\twidth: 100%;\n\t\tmax-width: 1220px;\n\t}\n}\n</style>\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport AssistantPage from './views/AssistantPage.vue'\n\nconst app = createApp(AssistantPage)\napp.mixin({ methods: { t, n } })\napp.mount('#content')\n"],"names":["_sfc_main","AssistantTextProcessingForm","NcContent","NcAppContent","loadState","input","expected","scheduled","enable","setNotifyReady","res","cancelTaskPolling","cancelTask","inputs","taskTypeId","newTaskIdentifier","scheduleTask","response","task","pollTask","finishedTask","TASK_STATUS_STRING","showError","emit","error","data","getTask","updatedTask","_hoisted_1","_createBlock","_component_NcContent","_createVNode","_component_NcAppContent","_createElementVNode","_component_AssistantTextProcessingForm","$data","$options","app","createApp","AssistantPage"],"mappings":"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"}