@red-hat-developer-hub/backstage-plugin-lightspeed 2.0.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/dist/alpha.d.ts +24 -0
- package/dist/api/NotebooksApiClient.esm.js +88 -17
- package/dist/api/NotebooksApiClient.esm.js.map +1 -1
- package/dist/api/notebooksApi.esm.js.map +1 -1
- package/dist/components/LightSpeedChat.esm.js +68 -17
- package/dist/components/LightSpeedChat.esm.js.map +1 -1
- package/dist/components/Router.esm.js +2 -1
- package/dist/components/Router.esm.js.map +1 -1
- package/dist/components/notebooks/AddDocumentModal.esm.js +170 -0
- package/dist/components/notebooks/AddDocumentModal.esm.js.map +1 -0
- package/dist/components/notebooks/DocumentSidebar.esm.js +154 -0
- package/dist/components/notebooks/DocumentSidebar.esm.js.map +1 -0
- package/dist/components/notebooks/FileTypeIcon.esm.js +59 -0
- package/dist/components/notebooks/FileTypeIcon.esm.js.map +1 -0
- package/dist/components/notebooks/NotebookCard.esm.js +86 -75
- package/dist/components/notebooks/NotebookCard.esm.js.map +1 -1
- package/dist/components/notebooks/NotebookView.esm.js +376 -0
- package/dist/components/notebooks/NotebookView.esm.js.map +1 -0
- package/dist/components/notebooks/NotebooksTab.esm.js +15 -5
- package/dist/components/notebooks/NotebooksTab.esm.js.map +1 -1
- package/dist/components/notebooks/OverwriteConfirmModal.esm.js +141 -0
- package/dist/components/notebooks/OverwriteConfirmModal.esm.js.map +1 -0
- package/dist/components/notebooks/SidebarCollapseIcon.esm.js +47 -0
- package/dist/components/notebooks/SidebarCollapseIcon.esm.js.map +1 -0
- package/dist/components/notebooks/UploadResourceScreen.esm.js +58 -0
- package/dist/components/notebooks/UploadResourceScreen.esm.js.map +1 -0
- package/dist/const.esm.js +26 -1
- package/dist/const.esm.js.map +1 -1
- package/dist/hooks/notebooks/useCreateNotebook.esm.js +19 -0
- package/dist/hooks/notebooks/useCreateNotebook.esm.js.map +1 -0
- package/dist/hooks/notebooks/useDocumentStatusPolling.esm.js +39 -0
- package/dist/hooks/notebooks/useDocumentStatusPolling.esm.js.map +1 -0
- package/dist/hooks/notebooks/useNotebookDocuments.esm.js +18 -0
- package/dist/hooks/notebooks/useNotebookDocuments.esm.js.map +1 -0
- package/dist/hooks/notebooks/useUploadDocument.esm.js +28 -0
- package/dist/hooks/notebooks/useUploadDocument.esm.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/plugin.esm.js +3 -2
- package/dist/plugin.esm.js.map +1 -1
- package/dist/routes.esm.js +6 -1
- package/dist/routes.esm.js.map +1 -1
- package/dist/translations/de.esm.js +27 -0
- package/dist/translations/de.esm.js.map +1 -1
- package/dist/translations/es.esm.js +27 -0
- package/dist/translations/es.esm.js.map +1 -1
- package/dist/translations/fr.esm.js +27 -0
- package/dist/translations/fr.esm.js.map +1 -1
- package/dist/translations/it.esm.js +27 -0
- package/dist/translations/it.esm.js.map +1 -1
- package/dist/translations/ja.esm.js +27 -0
- package/dist/translations/ja.esm.js.map +1 -1
- package/dist/translations/ref.esm.js +27 -0
- package/dist/translations/ref.esm.js.map +1 -1
- package/dist/types.esm.js.map +1 -1
- package/dist/utils/notebook-upload-utils.esm.js +48 -0
- package/dist/utils/notebook-upload-utils.esm.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OverwriteConfirmModal.esm.js","sources":["../../../src/components/notebooks/OverwriteConfirmModal.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport CloseIcon from '@mui/icons-material/Close';\nimport Alert from '@mui/material/Alert';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport IconButton from '@mui/material/IconButton';\nimport Typography from '@mui/material/Typography';\n\nimport { useTranslation } from '../../hooks/useTranslation';\nimport { FileTypeIcon } from './FileTypeIcon';\n\nconst useStyles = makeStyles(theme => ({\n dialogPaper: {\n borderRadius: 24,\n maxWidth: 578,\n },\n dialogTitle: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '24px 24px 16px',\n },\n titleText: {\n fontWeight: 500,\n fontSize: '1.25rem',\n lineHeight: '1.625rem',\n letterSpacing: '-0.25px',\n },\n closeButton: {\n color: theme.palette.grey[700],\n },\n dialogContent: {\n padding: '0 24px 24px',\n },\n fileList: {\n margin: 0,\n padding: 0,\n listStyle: 'none',\n },\n fileItem: {\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n padding: `${theme.spacing(2)}px 0`,\n borderBottom:\n '1px solid var(--pf-t--global--border--color--default, #c7c7c7)',\n },\n fileName: {\n flex: 1,\n minWidth: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n fontSize: '0.875rem',\n lineHeight: '1.25rem',\n },\n dialogActions: {\n justifyContent: 'left',\n padding: theme.spacing(2.5),\n gap: theme.spacing(1),\n },\n overwriteButton: {\n textTransform: 'none',\n borderRadius: 999,\n },\n cancelButton: {\n textTransform: 'none',\n borderRadius: 999,\n },\n warningAlert: {\n borderRadius: '6px',\n },\n}));\n\ntype OverwriteConfirmModalProps = {\n isOpen: boolean;\n onClose: () => void;\n onConfirm: () => void;\n fileNames: string[];\n};\n\nexport const OverwriteConfirmModal = ({\n isOpen,\n onClose,\n onConfirm,\n fileNames,\n}: OverwriteConfirmModalProps) => {\n const classes = useStyles();\n const { t } = useTranslation();\n\n return (\n <Dialog\n open={isOpen}\n onClose={onClose}\n aria-labelledby=\"overwrite-confirm-modal-title\"\n PaperProps={{\n className: classes.dialogPaper,\n }}\n >\n <DialogTitle className={classes.dialogTitle}>\n <Typography component=\"h2\" className={classes.titleText}>\n {t('notebook.overwrite.modal.title')}\n </Typography>\n <IconButton\n aria-label={t('common.close')}\n onClick={onClose}\n className={classes.closeButton}\n size=\"small\"\n >\n <CloseIcon />\n </IconButton>\n </DialogTitle>\n\n <DialogContent className={classes.dialogContent}>\n <Alert severity=\"warning\" className={classes.warningAlert}>\n {t('notebook.overwrite.modal.description')}\n </Alert>\n\n <ul className={classes.fileList}>\n {fileNames.map(name => (\n <li key={name} className={classes.fileItem}>\n <FileTypeIcon fileName={name} />\n <Typography className={classes.fileName}>{name}</Typography>\n </li>\n ))}\n </ul>\n </DialogContent>\n\n <DialogActions className={classes.dialogActions}>\n <Button\n variant=\"contained\"\n color=\"error\"\n className={classes.overwriteButton}\n onClick={onConfirm}\n >\n {t('notebook.overwrite.modal.action')}\n </Button>\n <Button\n variant=\"outlined\"\n className={classes.cancelButton}\n onClick={onClose}\n >\n {t('common.cancel')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
const SidebarCollapseIcon = ({ className }) => /* @__PURE__ */ jsx(
|
|
4
|
+
"svg",
|
|
5
|
+
{
|
|
6
|
+
className,
|
|
7
|
+
width: "24",
|
|
8
|
+
height: "24",
|
|
9
|
+
viewBox: "0 0 24 24",
|
|
10
|
+
fill: "none",
|
|
11
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
12
|
+
children: /* @__PURE__ */ jsx("path", { d: "M16 21V3H14V21H16ZM12 17V7L7 12L12 17Z", fill: "currentColor" })
|
|
13
|
+
}
|
|
14
|
+
);
|
|
15
|
+
const SidebarExpandIcon = ({ className }) => /* @__PURE__ */ jsx(
|
|
16
|
+
"svg",
|
|
17
|
+
{
|
|
18
|
+
className,
|
|
19
|
+
width: "24",
|
|
20
|
+
height: "24",
|
|
21
|
+
viewBox: "0 0 24 24",
|
|
22
|
+
fill: "none",
|
|
23
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
24
|
+
children: /* @__PURE__ */ jsx("path", { d: "M9 21V3H11V21H9ZM13 17V7L18 12L13 17Z", fill: "currentColor" })
|
|
25
|
+
}
|
|
26
|
+
);
|
|
27
|
+
const AddCircleFilledIcon = ({ className }) => /* @__PURE__ */ jsx(
|
|
28
|
+
"svg",
|
|
29
|
+
{
|
|
30
|
+
className,
|
|
31
|
+
width: "16",
|
|
32
|
+
height: "16",
|
|
33
|
+
viewBox: "0 0 16 16",
|
|
34
|
+
fill: "none",
|
|
35
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
36
|
+
children: /* @__PURE__ */ jsx(
|
|
37
|
+
"path",
|
|
38
|
+
{
|
|
39
|
+
d: "M7.75 0C12.0312 1.02089e-05 15.5 3.46877 15.5 7.75C15.5 12.0312 12.0312 15.5 7.75 15.5C3.46877 15.5 1.02086e-05 12.0312 0 7.75C0 3.46876 3.46876 0 7.75 0ZM6.875 3.25C6.66876 3.25 6.5 3.41876 6.5 3.625V6.5H3.625C3.41876 6.5 3.25 6.66876 3.25 6.875V8.625C3.25001 8.83123 3.41877 9 3.625 9H6.5V11.875C6.50002 12.0812 6.66877 12.25 6.875 12.25H8.625C8.83122 12.25 8.99998 12.0812 9 11.875V9H11.875C12.0812 8.99998 12.25 8.83122 12.25 8.625V6.875C12.25 6.66877 12.0812 6.50002 11.875 6.5H9V3.625C9 3.41877 8.83123 3.25001 8.625 3.25H6.875Z",
|
|
40
|
+
fill: "#0066CC"
|
|
41
|
+
}
|
|
42
|
+
)
|
|
43
|
+
}
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
export { AddCircleFilledIcon, SidebarCollapseIcon, SidebarExpandIcon };
|
|
47
|
+
//# sourceMappingURL=SidebarCollapseIcon.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SidebarCollapseIcon.esm.js","sources":["../../../src/components/notebooks/SidebarCollapseIcon.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype IconProps = {\n className?: string;\n};\n\nexport const SidebarCollapseIcon = ({ className }: IconProps) => (\n <svg\n className={className}\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M16 21V3H14V21H16ZM12 17V7L7 12L12 17Z\" fill=\"currentColor\" />\n </svg>\n);\n\nexport const SidebarExpandIcon = ({ className }: IconProps) => (\n <svg\n className={className}\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M9 21V3H11V21H9ZM13 17V7L18 12L13 17Z\" fill=\"currentColor\" />\n </svg>\n);\n\nexport const AddCircleFilledIcon = ({ className }: IconProps) => (\n <svg\n className={className}\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M7.75 0C12.0312 1.02089e-05 15.5 3.46877 15.5 7.75C15.5 12.0312 12.0312 15.5 7.75 15.5C3.46877 15.5 1.02086e-05 12.0312 0 7.75C0 3.46876 3.46876 0 7.75 0ZM6.875 3.25C6.66876 3.25 6.5 3.41876 6.5 3.625V6.5H3.625C3.41876 6.5 3.25 6.66876 3.25 6.875V8.625C3.25001 8.83123 3.41877 9 3.625 9H6.5V11.875C6.50002 12.0812 6.66877 12.25 6.875 12.25H8.625C8.83122 12.25 8.99998 12.0812 9 11.875V9H11.875C12.0812 8.99998 12.25 8.83122 12.25 8.625V6.875C12.25 6.66877 12.0812 6.50002 11.875 6.5H9V3.625C9 3.41877 8.83123 3.25001 8.625 3.25H6.875Z\"\n fill=\"#0066CC\"\n />\n </svg>\n);\n"],"names":[],"mappings":";;AAoBO,MAAM,mBAAsB,GAAA,CAAC,EAAE,SAAA,EACpC,qBAAA,GAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,SAAA;AAAA,IACA,KAAM,EAAA,IAAA;AAAA,IACN,MAAO,EAAA,IAAA;AAAA,IACP,OAAQ,EAAA,WAAA;AAAA,IACR,IAAK,EAAA,MAAA;AAAA,IACL,KAAM,EAAA,4BAAA;AAAA,IAEN,QAAC,kBAAA,GAAA,CAAA,MAAA,EAAA,EAAK,CAAE,EAAA,wCAAA,EAAyC,MAAK,cAAe,EAAA;AAAA;AACvE;AAGK,MAAM,iBAAoB,GAAA,CAAC,EAAE,SAAA,EAClC,qBAAA,GAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,SAAA;AAAA,IACA,KAAM,EAAA,IAAA;AAAA,IACN,MAAO,EAAA,IAAA;AAAA,IACP,OAAQ,EAAA,WAAA;AAAA,IACR,IAAK,EAAA,MAAA;AAAA,IACL,KAAM,EAAA,4BAAA;AAAA,IAEN,QAAC,kBAAA,GAAA,CAAA,MAAA,EAAA,EAAK,CAAE,EAAA,uCAAA,EAAwC,MAAK,cAAe,EAAA;AAAA;AACtE;AAGK,MAAM,mBAAsB,GAAA,CAAC,EAAE,SAAA,EACpC,qBAAA,GAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,SAAA;AAAA,IACA,KAAM,EAAA,IAAA;AAAA,IACN,MAAO,EAAA,IAAA;AAAA,IACP,OAAQ,EAAA,WAAA;AAAA,IACR,IAAK,EAAA,MAAA;AAAA,IACL,KAAM,EAAA,4BAAA;AAAA,IAEN,QAAA,kBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,CAAE,EAAA,whBAAA;AAAA,QACF,IAAK,EAAA;AAAA;AAAA;AACP;AACF;;;;"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { makeStyles, Typography } from '@material-ui/core';
|
|
3
|
+
import { Button } from '@patternfly/react-core';
|
|
4
|
+
import { AddCircleOIcon } from '@patternfly/react-icons';
|
|
5
|
+
import { CatalogIcon } from '@patternfly/react-icons/dist/esm/icons';
|
|
6
|
+
import { useTranslation } from '../../hooks/useTranslation.esm.js';
|
|
7
|
+
|
|
8
|
+
const useStyles = makeStyles((theme) => ({
|
|
9
|
+
container: {
|
|
10
|
+
display: "flex",
|
|
11
|
+
flexDirection: "column",
|
|
12
|
+
alignItems: "center",
|
|
13
|
+
justifyContent: "center",
|
|
14
|
+
flex: 1,
|
|
15
|
+
textAlign: "center",
|
|
16
|
+
gap: theme.spacing(2)
|
|
17
|
+
},
|
|
18
|
+
icon: {
|
|
19
|
+
fontSize: 48,
|
|
20
|
+
color: "var(--pf-t--global--icon--color--subtle)"
|
|
21
|
+
},
|
|
22
|
+
heading: {
|
|
23
|
+
fontWeight: 500,
|
|
24
|
+
fontSize: "1.5rem",
|
|
25
|
+
lineHeight: "2rem",
|
|
26
|
+
letterSpacing: "-0.25px"
|
|
27
|
+
},
|
|
28
|
+
uploadButton: {
|
|
29
|
+
textTransform: "none",
|
|
30
|
+
borderRadius: 999,
|
|
31
|
+
paddingLeft: theme.spacing(3),
|
|
32
|
+
paddingRight: theme.spacing(3)
|
|
33
|
+
}
|
|
34
|
+
}));
|
|
35
|
+
const UploadResourceScreen = ({
|
|
36
|
+
onUploadClick
|
|
37
|
+
}) => {
|
|
38
|
+
const classes = useStyles();
|
|
39
|
+
const { t } = useTranslation();
|
|
40
|
+
return /* @__PURE__ */ jsxs("div", { className: classes.container, children: [
|
|
41
|
+
/* @__PURE__ */ jsx(CatalogIcon, { className: classes.icon }),
|
|
42
|
+
/* @__PURE__ */ jsx(Typography, { className: classes.heading, children: t("notebook.view.upload.heading") }),
|
|
43
|
+
/* @__PURE__ */ jsx(
|
|
44
|
+
Button,
|
|
45
|
+
{
|
|
46
|
+
variant: "secondary",
|
|
47
|
+
className: classes.uploadButton,
|
|
48
|
+
icon: /* @__PURE__ */ jsx(AddCircleOIcon, {}),
|
|
49
|
+
iconPosition: "end",
|
|
50
|
+
onClick: onUploadClick,
|
|
51
|
+
children: t("notebook.view.upload.action")
|
|
52
|
+
}
|
|
53
|
+
)
|
|
54
|
+
] });
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export { UploadResourceScreen };
|
|
58
|
+
//# sourceMappingURL=UploadResourceScreen.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UploadResourceScreen.esm.js","sources":["../../../src/components/notebooks/UploadResourceScreen.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { makeStyles, Typography } from '@material-ui/core';\nimport { Button } from '@patternfly/react-core';\nimport { AddCircleOIcon } from '@patternfly/react-icons';\nimport { CatalogIcon } from '@patternfly/react-icons/dist/esm/icons';\n\nimport { useTranslation } from '../../hooks/useTranslation';\n\nconst useStyles = makeStyles(theme => ({\n container: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n flex: 1,\n textAlign: 'center',\n gap: theme.spacing(2),\n },\n icon: {\n fontSize: 48,\n color: 'var(--pf-t--global--icon--color--subtle)',\n },\n heading: {\n fontWeight: 500,\n fontSize: '1.5rem',\n lineHeight: '2rem',\n letterSpacing: '-0.25px',\n },\n uploadButton: {\n textTransform: 'none',\n borderRadius: 999,\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n },\n}));\n\ntype UploadResourceScreenProps = {\n onUploadClick: () => void;\n};\n\nexport const UploadResourceScreen = ({\n onUploadClick,\n}: UploadResourceScreenProps) => {\n const classes = useStyles();\n const { t } = useTranslation();\n\n return (\n <div className={classes.container}>\n <CatalogIcon className={classes.icon} />\n <Typography className={classes.heading}>\n {t('notebook.view.upload.heading')}\n </Typography>\n <Button\n variant=\"secondary\"\n className={classes.uploadButton}\n icon={<AddCircleOIcon />}\n iconPosition=\"end\"\n onClick={onUploadClick}\n >\n {t('notebook.view.upload.action')}\n </Button>\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;AAuBA,MAAM,SAAA,GAAY,WAAW,CAAU,KAAA,MAAA;AAAA,EACrC,SAAW,EAAA;AAAA,IACT,OAAS,EAAA,MAAA;AAAA,IACT,aAAe,EAAA,QAAA;AAAA,IACf,UAAY,EAAA,QAAA;AAAA,IACZ,cAAgB,EAAA,QAAA;AAAA,IAChB,IAAM,EAAA,CAAA;AAAA,IACN,SAAW,EAAA,QAAA;AAAA,IACX,GAAA,EAAK,KAAM,CAAA,OAAA,CAAQ,CAAC;AAAA,GACtB;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,QAAU,EAAA,EAAA;AAAA,IACV,KAAO,EAAA;AAAA,GACT;AAAA,EACA,OAAS,EAAA;AAAA,IACP,UAAY,EAAA,GAAA;AAAA,IACZ,QAAU,EAAA,QAAA;AAAA,IACV,UAAY,EAAA,MAAA;AAAA,IACZ,aAAe,EAAA;AAAA,GACjB;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,aAAe,EAAA,MAAA;AAAA,IACf,YAAc,EAAA,GAAA;AAAA,IACd,WAAA,EAAa,KAAM,CAAA,OAAA,CAAQ,CAAC,CAAA;AAAA,IAC5B,YAAA,EAAc,KAAM,CAAA,OAAA,CAAQ,CAAC;AAAA;AAEjC,CAAE,CAAA,CAAA;AAMK,MAAM,uBAAuB,CAAC;AAAA,EACnC;AACF,CAAiC,KAAA;AAC/B,EAAA,MAAM,UAAU,SAAU,EAAA;AAC1B,EAAM,MAAA,EAAE,CAAE,EAAA,GAAI,cAAe,EAAA;AAE7B,EAAA,uBACG,IAAA,CAAA,KAAA,EAAA,EAAI,SAAW,EAAA,OAAA,CAAQ,SACtB,EAAA,QAAA,EAAA;AAAA,oBAAC,GAAA,CAAA,WAAA,EAAA,EAAY,SAAW,EAAA,OAAA,CAAQ,IAAM,EAAA,CAAA;AAAA,wBACrC,UAAW,EAAA,EAAA,SAAA,EAAW,QAAQ,OAC5B,EAAA,QAAA,EAAA,CAAA,CAAE,8BAA8B,CACnC,EAAA,CAAA;AAAA,oBACA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,OAAQ,EAAA,WAAA;AAAA,QACR,WAAW,OAAQ,CAAA,YAAA;AAAA,QACnB,IAAA,sBAAO,cAAe,EAAA,EAAA,CAAA;AAAA,QACtB,YAAa,EAAA,KAAA;AAAA,QACb,OAAS,EAAA,aAAA;AAAA,QAER,YAAE,6BAA6B;AAAA;AAAA;AAClC,GACF,EAAA,CAAA;AAEJ;;;;"}
|
package/dist/const.esm.js
CHANGED
|
@@ -8,6 +8,31 @@ const supportedFileTypes = {
|
|
|
8
8
|
"application/json": [".json"],
|
|
9
9
|
"application/yaml": [".yaml", ".yml"]
|
|
10
10
|
};
|
|
11
|
+
const NOTEBOOK_MAX_FILES = 10;
|
|
12
|
+
const NOTEBOOK_MAX_FILE_SIZE_BYTES = 25 * 1024 * 1024;
|
|
13
|
+
const UNTITLED_NOTEBOOK_NAME = "Untitled Notebook";
|
|
14
|
+
const NOTEBOOK_ALLOWED_EXTENSIONS = {
|
|
15
|
+
"text/plain": [".txt", ".log"],
|
|
16
|
+
"text/markdown": [".md"],
|
|
17
|
+
"application/pdf": [".pdf"],
|
|
18
|
+
"application/json": [".json"],
|
|
19
|
+
"application/x-yaml": [".yaml", ".yml"],
|
|
20
|
+
"application/vnd.openxmlformats-officedocument.wordprocessingml.document": [
|
|
21
|
+
".docx"
|
|
22
|
+
],
|
|
23
|
+
"application/vnd.oasis.opendocument.text": [".odt"]
|
|
24
|
+
};
|
|
25
|
+
const NOTEBOOK_EXTENSION_TO_FILE_TYPE = {
|
|
26
|
+
".txt": "txt",
|
|
27
|
+
".md": "md",
|
|
28
|
+
".pdf": "pdf",
|
|
29
|
+
".json": "json",
|
|
30
|
+
".yaml": "yaml",
|
|
31
|
+
".yml": "yaml",
|
|
32
|
+
".log": "log",
|
|
33
|
+
".docx": "txt",
|
|
34
|
+
".odt": "txt"
|
|
35
|
+
};
|
|
11
36
|
const DEFAULT_SAMPLE_PROMPTS = [
|
|
12
37
|
createPrompt(
|
|
13
38
|
"prompts.codeReadability.title",
|
|
@@ -44,5 +69,5 @@ const VALID_TOPIC_RESTRICTION_PROVIDER_IDS = [
|
|
|
44
69
|
];
|
|
45
70
|
const DOCKED_CONTENT_OFFSET = "calc(var(--docked-drawer-width, 500px) + 1.5em)";
|
|
46
71
|
|
|
47
|
-
export { DEFAULT_SAMPLE_PROMPTS, DOCKED_CONTENT_OFFSET, LIGHTSPEED_APP_DRAWER_ID, RHDH_SAMPLE_PROMPTS, TEMP_CONVERSATION_ID, VALID_TOPIC_RESTRICTION_PROVIDER_IDS, supportedFileTypes };
|
|
72
|
+
export { DEFAULT_SAMPLE_PROMPTS, DOCKED_CONTENT_OFFSET, LIGHTSPEED_APP_DRAWER_ID, NOTEBOOK_ALLOWED_EXTENSIONS, NOTEBOOK_EXTENSION_TO_FILE_TYPE, NOTEBOOK_MAX_FILES, NOTEBOOK_MAX_FILE_SIZE_BYTES, RHDH_SAMPLE_PROMPTS, TEMP_CONVERSATION_ID, UNTITLED_NOTEBOOK_NAME, VALID_TOPIC_RESTRICTION_PROVIDER_IDS, supportedFileTypes };
|
|
48
73
|
//# sourceMappingURL=const.esm.js.map
|
package/dist/const.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.esm.js","sources":["../src/const.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SamplePrompts } from './types';\n\nexport const TEMP_CONVERSATION_ID = 'temp-conversation-id';\n\nexport const LIGHTSPEED_APP_DRAWER_ID = 'lightspeed';\n\n// Translation keys for disclaimers\nexport const FUNCTION_DISCLAIMER_WITHOUT_QUESTION_VALIDATION_KEY =\n 'disclaimer.withoutValidation';\nexport const FUNCTION_DISCLAIMER_KEY = 'disclaimer.withValidation';\n\nconst createPrompt = (titleKey: string, messageKey: string) => {\n return { titleKey, messageKey };\n};\n\nexport const supportedFileTypes = {\n 'text/plain': ['.txt'],\n 'application/json': ['.json'],\n 'application/yaml': ['.yaml', '.yml'],\n};\n\nexport const DEFAULT_SAMPLE_PROMPTS: SamplePrompts = [\n createPrompt(\n 'prompts.codeReadability.title',\n 'prompts.codeReadability.message',\n ),\n createPrompt('prompts.debugging.title', 'prompts.debugging.message'),\n createPrompt(\n 'prompts.developmentConcept.title',\n 'prompts.developmentConcept.message',\n ),\n createPrompt(\n 'prompts.codeOptimization.title',\n 'prompts.codeOptimization.message',\n ),\n createPrompt('prompts.documentation.title', 'prompts.documentation.message'),\n createPrompt('prompts.gitWorkflows.title', 'prompts.gitWorkflows.message'),\n createPrompt(\n 'prompts.testingStrategies.title',\n 'prompts.testingStrategies.message',\n ),\n createPrompt(\n 'prompts.sortingAlgorithms.title',\n 'prompts.sortingAlgorithms.message',\n ),\n createPrompt('prompts.eventDriven.title', 'prompts.eventDriven.message'),\n];\n\nexport const RHDH_SAMPLE_PROMPTS: SamplePrompts = [\n createPrompt('prompts.tekton.title', 'prompts.tekton.message'),\n createPrompt('prompts.openshift.title', 'prompts.openshift.message'),\n createPrompt('prompts.rhdh.title', 'prompts.rhdh.message'),\n];\n\n// Topic restriction valid provider IDs\nexport const VALID_TOPIC_RESTRICTION_PROVIDER_IDS = [\n 'lightspeed_question_validity-shield',\n];\n\n// Matches app shell margin on main when ApplicationDrawer is docked (e.g. Root.tsx).\nexport const DOCKED_CONTENT_OFFSET =\n 'calc(var(--docked-drawer-width, 500px) + 1.5em)';\n"],"names":[],"mappings":"AAkBO,MAAM,oBAAuB,GAAA;AAE7B,MAAM,wBAA2B,GAAA;AAOxC,MAAM,YAAA,GAAe,CAAC,QAAA,EAAkB,UAAuB,KAAA;AAC7D,EAAO,OAAA,EAAE,UAAU,UAAW,EAAA;AAChC,CAAA;AAEO,MAAM,kBAAqB,GAAA;AAAA,EAChC,YAAA,EAAc,CAAC,MAAM,CAAA;AAAA,EACrB,kBAAA,EAAoB,CAAC,OAAO,CAAA;AAAA,EAC5B,kBAAA,EAAoB,CAAC,OAAA,EAAS,MAAM;AACtC;AAEO,MAAM,sBAAwC,GAAA;AAAA,EACnD,YAAA;AAAA,IACE,+BAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,YAAA,CAAa,2BAA2B,2BAA2B,CAAA;AAAA,EACnE,YAAA;AAAA,IACE,kCAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,YAAA;AAAA,IACE,gCAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,YAAA,CAAa,+BAA+B,+BAA+B,CAAA;AAAA,EAC3E,YAAA,CAAa,8BAA8B,8BAA8B,CAAA;AAAA,EACzE,YAAA;AAAA,IACE,iCAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,YAAA;AAAA,IACE,iCAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,YAAA,CAAa,6BAA6B,6BAA6B;AACzE;AAEO,MAAM,mBAAqC,GAAA;AAAA,EAChD,YAAA,CAAa,wBAAwB,wBAAwB,CAAA;AAAA,EAC7D,YAAA,CAAa,2BAA2B,2BAA2B,CAAA;AAAA,EACnE,YAAA,CAAa,sBAAsB,sBAAsB;AAC3D;AAGO,MAAM,oCAAuC,GAAA;AAAA,EAClD;AACF;AAGO,MAAM,qBACX,GAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"const.esm.js","sources":["../src/const.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SamplePrompts } from './types';\n\nexport const TEMP_CONVERSATION_ID = 'temp-conversation-id';\n\nexport const LIGHTSPEED_APP_DRAWER_ID = 'lightspeed';\n\n// Translation keys for disclaimers\nexport const FUNCTION_DISCLAIMER_WITHOUT_QUESTION_VALIDATION_KEY =\n 'disclaimer.withoutValidation';\nexport const FUNCTION_DISCLAIMER_KEY = 'disclaimer.withValidation';\n\nconst createPrompt = (titleKey: string, messageKey: string) => {\n return { titleKey, messageKey };\n};\n\nexport const supportedFileTypes = {\n 'text/plain': ['.txt'],\n 'application/json': ['.json'],\n 'application/yaml': ['.yaml', '.yml'],\n};\n\nexport const NOTEBOOK_MAX_FILES = 10;\nexport const NOTEBOOK_MAX_FILE_SIZE_BYTES = 25 * 1024 * 1024; // 25 MB\nexport const UNTITLED_NOTEBOOK_NAME = 'Untitled Notebook';\n\nexport const NOTEBOOK_ALLOWED_EXTENSIONS: Record<string, string[]> = {\n 'text/plain': ['.txt', '.log'],\n 'text/markdown': ['.md'],\n 'application/pdf': ['.pdf'],\n 'application/json': ['.json'],\n 'application/x-yaml': ['.yaml', '.yml'],\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': [\n '.docx',\n ],\n 'application/vnd.oasis.opendocument.text': ['.odt'],\n};\n\nexport const NOTEBOOK_EXTENSION_TO_FILE_TYPE: Record<string, string> = {\n '.txt': 'txt',\n '.md': 'md',\n '.pdf': 'pdf',\n '.json': 'json',\n '.yaml': 'yaml',\n '.yml': 'yaml',\n '.log': 'log',\n '.docx': 'txt',\n '.odt': 'txt',\n};\n\nexport const DEFAULT_SAMPLE_PROMPTS: SamplePrompts = [\n createPrompt(\n 'prompts.codeReadability.title',\n 'prompts.codeReadability.message',\n ),\n createPrompt('prompts.debugging.title', 'prompts.debugging.message'),\n createPrompt(\n 'prompts.developmentConcept.title',\n 'prompts.developmentConcept.message',\n ),\n createPrompt(\n 'prompts.codeOptimization.title',\n 'prompts.codeOptimization.message',\n ),\n createPrompt('prompts.documentation.title', 'prompts.documentation.message'),\n createPrompt('prompts.gitWorkflows.title', 'prompts.gitWorkflows.message'),\n createPrompt(\n 'prompts.testingStrategies.title',\n 'prompts.testingStrategies.message',\n ),\n createPrompt(\n 'prompts.sortingAlgorithms.title',\n 'prompts.sortingAlgorithms.message',\n ),\n createPrompt('prompts.eventDriven.title', 'prompts.eventDriven.message'),\n];\n\nexport const RHDH_SAMPLE_PROMPTS: SamplePrompts = [\n createPrompt('prompts.tekton.title', 'prompts.tekton.message'),\n createPrompt('prompts.openshift.title', 'prompts.openshift.message'),\n createPrompt('prompts.rhdh.title', 'prompts.rhdh.message'),\n];\n\n// Topic restriction valid provider IDs\nexport const VALID_TOPIC_RESTRICTION_PROVIDER_IDS = [\n 'lightspeed_question_validity-shield',\n];\n\n// Matches app shell margin on main when ApplicationDrawer is docked (e.g. Root.tsx).\nexport const DOCKED_CONTENT_OFFSET =\n 'calc(var(--docked-drawer-width, 500px) + 1.5em)';\n"],"names":[],"mappings":"AAkBO,MAAM,oBAAuB,GAAA;AAE7B,MAAM,wBAA2B,GAAA;AAOxC,MAAM,YAAA,GAAe,CAAC,QAAA,EAAkB,UAAuB,KAAA;AAC7D,EAAO,OAAA,EAAE,UAAU,UAAW,EAAA;AAChC,CAAA;AAEO,MAAM,kBAAqB,GAAA;AAAA,EAChC,YAAA,EAAc,CAAC,MAAM,CAAA;AAAA,EACrB,kBAAA,EAAoB,CAAC,OAAO,CAAA;AAAA,EAC5B,kBAAA,EAAoB,CAAC,OAAA,EAAS,MAAM;AACtC;AAEO,MAAM,kBAAqB,GAAA;AACrB,MAAA,4BAAA,GAA+B,KAAK,IAAO,GAAA;AACjD,MAAM,sBAAyB,GAAA;AAE/B,MAAM,2BAAwD,GAAA;AAAA,EACnE,YAAA,EAAc,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,EAC7B,eAAA,EAAiB,CAAC,KAAK,CAAA;AAAA,EACvB,iBAAA,EAAmB,CAAC,MAAM,CAAA;AAAA,EAC1B,kBAAA,EAAoB,CAAC,OAAO,CAAA;AAAA,EAC5B,oBAAA,EAAsB,CAAC,OAAA,EAAS,MAAM,CAAA;AAAA,EACtC,yEAA2E,EAAA;AAAA,IACzE;AAAA,GACF;AAAA,EACA,yCAAA,EAA2C,CAAC,MAAM;AACpD;AAEO,MAAM,+BAA0D,GAAA;AAAA,EACrE,MAAQ,EAAA,KAAA;AAAA,EACR,KAAO,EAAA,IAAA;AAAA,EACP,MAAQ,EAAA,KAAA;AAAA,EACR,OAAS,EAAA,MAAA;AAAA,EACT,OAAS,EAAA,MAAA;AAAA,EACT,MAAQ,EAAA,MAAA;AAAA,EACR,MAAQ,EAAA,KAAA;AAAA,EACR,OAAS,EAAA,KAAA;AAAA,EACT,MAAQ,EAAA;AACV;AAEO,MAAM,sBAAwC,GAAA;AAAA,EACnD,YAAA;AAAA,IACE,+BAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,YAAA,CAAa,2BAA2B,2BAA2B,CAAA;AAAA,EACnE,YAAA;AAAA,IACE,kCAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,YAAA;AAAA,IACE,gCAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,YAAA,CAAa,+BAA+B,+BAA+B,CAAA;AAAA,EAC3E,YAAA,CAAa,8BAA8B,8BAA8B,CAAA;AAAA,EACzE,YAAA;AAAA,IACE,iCAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,YAAA;AAAA,IACE,iCAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,YAAA,CAAa,6BAA6B,6BAA6B;AACzE;AAEO,MAAM,mBAAqC,GAAA;AAAA,EAChD,YAAA,CAAa,wBAAwB,wBAAwB,CAAA;AAAA,EAC7D,YAAA,CAAa,2BAA2B,2BAA2B,CAAA;AAAA,EACnE,YAAA,CAAa,sBAAsB,sBAAsB;AAC3D;AAGO,MAAM,oCAAuC,GAAA;AAAA,EAClD;AACF;AAGO,MAAM,qBACX,GAAA;;;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { useApi } from '@backstage/core-plugin-api';
|
|
2
|
+
import { useQueryClient, useMutation } from '@tanstack/react-query';
|
|
3
|
+
import { notebooksApiRef } from '../../api/notebooksApi.esm.js';
|
|
4
|
+
|
|
5
|
+
const useCreateNotebook = () => {
|
|
6
|
+
const notebooksApi = useApi(notebooksApiRef);
|
|
7
|
+
const queryClient = useQueryClient();
|
|
8
|
+
return useMutation({
|
|
9
|
+
mutationFn: async ({ name, description }) => {
|
|
10
|
+
return notebooksApi.createSession(name, description);
|
|
11
|
+
},
|
|
12
|
+
onSuccess: () => {
|
|
13
|
+
queryClient.invalidateQueries({ queryKey: ["notebooks", "sessions"] });
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export { useCreateNotebook };
|
|
19
|
+
//# sourceMappingURL=useCreateNotebook.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCreateNotebook.esm.js","sources":["../../../src/hooks/notebooks/useCreateNotebook.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useApi } from '@backstage/core-plugin-api';\n\nimport {\n useMutation,\n useQueryClient,\n type UseMutationResult,\n} from '@tanstack/react-query';\n\nimport { notebooksApiRef } from '../../api/notebooksApi';\nimport { NotebookSession } from '../../types';\n\ntype CreateNotebookParams = {\n name: string;\n description?: string;\n};\n\nexport const useCreateNotebook = (): UseMutationResult<\n NotebookSession,\n unknown,\n CreateNotebookParams\n> => {\n const notebooksApi = useApi(notebooksApiRef);\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: async ({ name, description }: CreateNotebookParams) => {\n return notebooksApi.createSession(name, description);\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['notebooks', 'sessions'] });\n },\n });\n};\n"],"names":[],"mappings":";;;;AAgCO,MAAM,oBAAoB,MAI5B;AACH,EAAM,MAAA,YAAA,GAAe,OAAO,eAAe,CAAA;AAC3C,EAAA,MAAM,cAAc,cAAe,EAAA;AAEnC,EAAA,OAAO,WAAY,CAAA;AAAA,IACjB,UAAY,EAAA,OAAO,EAAE,IAAA,EAAM,aAAwC,KAAA;AACjE,MAAO,OAAA,YAAA,CAAa,aAAc,CAAA,IAAA,EAAM,WAAW,CAAA;AAAA,KACrD;AAAA,IACA,WAAW,MAAM;AACf,MAAA,WAAA,CAAY,kBAAkB,EAAE,QAAA,EAAU,CAAC,WAAa,EAAA,UAAU,GAAG,CAAA;AAAA;AACvE,GACD,CAAA;AACH;;;;"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { useApi } from '@backstage/core-plugin-api';
|
|
2
|
+
import { useQueries } from '@tanstack/react-query';
|
|
3
|
+
import { notebooksApiRef } from '../../api/notebooksApi.esm.js';
|
|
4
|
+
|
|
5
|
+
const POLL_INTERVAL_MS = 5e3;
|
|
6
|
+
const useDocumentStatusPolling = (sessionId, pendingUploads) => {
|
|
7
|
+
const notebooksApi = useApi(notebooksApiRef);
|
|
8
|
+
const results = useQueries({
|
|
9
|
+
queries: pendingUploads.map((upload) => ({
|
|
10
|
+
queryKey: ["notebooks", "documentStatus", sessionId, upload.documentId],
|
|
11
|
+
queryFn: () => notebooksApi.getDocumentStatus(sessionId, upload.documentId),
|
|
12
|
+
refetchInterval: (query) => {
|
|
13
|
+
if (query.state.status === "error") {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
const status = query.state.data?.status;
|
|
17
|
+
if (status === "completed" || status === "failed" || status === "cancelled") {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
return POLL_INTERVAL_MS;
|
|
21
|
+
},
|
|
22
|
+
retry: 10,
|
|
23
|
+
enabled: Boolean(upload.documentId)
|
|
24
|
+
}))
|
|
25
|
+
});
|
|
26
|
+
return pendingUploads.map((upload, index) => {
|
|
27
|
+
const result = results[index];
|
|
28
|
+
const dataStatus = result?.data?.status;
|
|
29
|
+
const isQueryError = result?.isError;
|
|
30
|
+
return {
|
|
31
|
+
fileName: upload.fileName,
|
|
32
|
+
documentId: upload.documentId,
|
|
33
|
+
status: isQueryError ? "failed" : dataStatus ?? "polling"
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export { useDocumentStatusPolling };
|
|
39
|
+
//# sourceMappingURL=useDocumentStatusPolling.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDocumentStatusPolling.esm.js","sources":["../../../src/hooks/notebooks/useDocumentStatusPolling.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useApi } from '@backstage/core-plugin-api';\n\nimport { useQueries } from '@tanstack/react-query';\n\nimport { notebooksApiRef } from '../../api/notebooksApi';\nimport { DocumentStatus } from '../../types';\n\nexport type PendingUpload = {\n fileName: string;\n documentId: string;\n};\n\nexport type DocumentPollingResult = {\n fileName: string;\n documentId: string;\n status: DocumentStatus['status'] | 'polling';\n};\n\nconst POLL_INTERVAL_MS = 5000;\n\nexport const useDocumentStatusPolling = (\n sessionId: string,\n pendingUploads: PendingUpload[],\n): DocumentPollingResult[] => {\n const notebooksApi = useApi(notebooksApiRef);\n\n const results = useQueries({\n queries: pendingUploads.map(upload => ({\n queryKey: ['notebooks', 'documentStatus', sessionId, upload.documentId],\n queryFn: () =>\n notebooksApi.getDocumentStatus(sessionId, upload.documentId),\n refetchInterval: (query: {\n state: { data?: DocumentStatus; status: string };\n }) => {\n if (query.state.status === 'error') {\n return false;\n }\n const status = query.state.data?.status;\n if (\n status === 'completed' ||\n status === 'failed' ||\n status === 'cancelled'\n ) {\n return false;\n }\n return POLL_INTERVAL_MS;\n },\n retry: 10,\n enabled: Boolean(upload.documentId),\n })),\n });\n\n return pendingUploads.map((upload, index) => {\n const result = results[index];\n const dataStatus = result?.data?.status;\n const isQueryError = result?.isError;\n return {\n fileName: upload.fileName,\n documentId: upload.documentId,\n status: isQueryError ? 'failed' : (dataStatus ?? 'polling'),\n };\n });\n};\n"],"names":[],"mappings":";;;;AAkCA,MAAM,gBAAmB,GAAA,GAAA;AAEZ,MAAA,wBAAA,GAA2B,CACtC,SAAA,EACA,cAC4B,KAAA;AAC5B,EAAM,MAAA,YAAA,GAAe,OAAO,eAAe,CAAA;AAE3C,EAAA,MAAM,UAAU,UAAW,CAAA;AAAA,IACzB,OAAA,EAAS,cAAe,CAAA,GAAA,CAAI,CAAW,MAAA,MAAA;AAAA,MACrC,UAAU,CAAC,WAAA,EAAa,gBAAkB,EAAA,SAAA,EAAW,OAAO,UAAU,CAAA;AAAA,MACtE,SAAS,MACP,YAAA,CAAa,iBAAkB,CAAA,SAAA,EAAW,OAAO,UAAU,CAAA;AAAA,MAC7D,eAAA,EAAiB,CAAC,KAEZ,KAAA;AACJ,QAAI,IAAA,KAAA,CAAM,KAAM,CAAA,MAAA,KAAW,OAAS,EAAA;AAClC,UAAO,OAAA,KAAA;AAAA;AAET,QAAM,MAAA,MAAA,GAAS,KAAM,CAAA,KAAA,CAAM,IAAM,EAAA,MAAA;AACjC,QAAA,IACE,MAAW,KAAA,WAAA,IACX,MAAW,KAAA,QAAA,IACX,WAAW,WACX,EAAA;AACA,UAAO,OAAA,KAAA;AAAA;AAET,QAAO,OAAA,gBAAA;AAAA,OACT;AAAA,MACA,KAAO,EAAA,EAAA;AAAA,MACP,OAAA,EAAS,OAAQ,CAAA,MAAA,CAAO,UAAU;AAAA,KAClC,CAAA;AAAA,GACH,CAAA;AAED,EAAA,OAAO,cAAe,CAAA,GAAA,CAAI,CAAC,MAAA,EAAQ,KAAU,KAAA;AAC3C,IAAM,MAAA,MAAA,GAAS,QAAQ,KAAK,CAAA;AAC5B,IAAM,MAAA,UAAA,GAAa,QAAQ,IAAM,EAAA,MAAA;AACjC,IAAA,MAAM,eAAe,MAAQ,EAAA,OAAA;AAC7B,IAAO,OAAA;AAAA,MACL,UAAU,MAAO,CAAA,QAAA;AAAA,MACjB,YAAY,MAAO,CAAA,UAAA;AAAA,MACnB,MAAA,EAAQ,YAAe,GAAA,QAAA,GAAY,UAAc,IAAA;AAAA,KACnD;AAAA,GACD,CAAA;AACH;;;;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { useApi } from '@backstage/core-plugin-api';
|
|
2
|
+
import { useQuery } from '@tanstack/react-query';
|
|
3
|
+
import { notebooksApiRef } from '../../api/notebooksApi.esm.js';
|
|
4
|
+
|
|
5
|
+
const useNotebookDocuments = (sessionId) => {
|
|
6
|
+
const notebooksApi = useApi(notebooksApiRef);
|
|
7
|
+
return useQuery({
|
|
8
|
+
queryKey: ["notebooks", "documents", sessionId],
|
|
9
|
+
queryFn: async () => {
|
|
10
|
+
return await notebooksApi.listDocuments(sessionId);
|
|
11
|
+
},
|
|
12
|
+
enabled: Boolean(sessionId),
|
|
13
|
+
staleTime: 1e3 * 60
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export { useNotebookDocuments };
|
|
18
|
+
//# sourceMappingURL=useNotebookDocuments.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useNotebookDocuments.esm.js","sources":["../../../src/hooks/notebooks/useNotebookDocuments.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useApi } from '@backstage/core-plugin-api';\n\nimport { useQuery, type UseQueryResult } from '@tanstack/react-query';\n\nimport { notebooksApiRef } from '../../api/notebooksApi';\nimport { SessionDocument } from '../../types';\n\nexport const useNotebookDocuments = (\n sessionId?: string,\n): UseQueryResult<SessionDocument[], Error> => {\n const notebooksApi = useApi(notebooksApiRef);\n return useQuery({\n queryKey: ['notebooks', 'documents', sessionId],\n queryFn: async () => {\n return await notebooksApi.listDocuments(sessionId!);\n },\n enabled: Boolean(sessionId),\n staleTime: 1000 * 60,\n });\n};\n"],"names":[],"mappings":";;;;AAuBa,MAAA,oBAAA,GAAuB,CAClC,SAC6C,KAAA;AAC7C,EAAM,MAAA,YAAA,GAAe,OAAO,eAAe,CAAA;AAC3C,EAAA,OAAO,QAAS,CAAA;AAAA,IACd,QAAU,EAAA,CAAC,WAAa,EAAA,WAAA,EAAa,SAAS,CAAA;AAAA,IAC9C,SAAS,YAAY;AACnB,MAAO,OAAA,MAAM,YAAa,CAAA,aAAA,CAAc,SAAU,CAAA;AAAA,KACpD;AAAA,IACA,OAAA,EAAS,QAAQ,SAAS,CAAA;AAAA,IAC1B,WAAW,GAAO,GAAA;AAAA,GACnB,CAAA;AACH;;;;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { useApi } from '@backstage/core-plugin-api';
|
|
2
|
+
import { useQueryClient, useMutation } from '@tanstack/react-query';
|
|
3
|
+
import { notebooksApiRef } from '../../api/notebooksApi.esm.js';
|
|
4
|
+
import { NOTEBOOK_EXTENSION_TO_FILE_TYPE } from '../../const.esm.js';
|
|
5
|
+
|
|
6
|
+
const getFileType = (fileName) => {
|
|
7
|
+
const lastDot = fileName.lastIndexOf(".");
|
|
8
|
+
const ext = lastDot >= 0 ? fileName.slice(lastDot).toLowerCase() : "";
|
|
9
|
+
return NOTEBOOK_EXTENSION_TO_FILE_TYPE[ext] ?? "txt";
|
|
10
|
+
};
|
|
11
|
+
const useUploadDocument = () => {
|
|
12
|
+
const notebooksApi = useApi(notebooksApiRef);
|
|
13
|
+
const queryClient = useQueryClient();
|
|
14
|
+
return useMutation({
|
|
15
|
+
mutationFn: async ({ sessionId, file }) => {
|
|
16
|
+
const fileType = getFileType(file.name);
|
|
17
|
+
return notebooksApi.uploadDocument(sessionId, file, fileType, file.name);
|
|
18
|
+
},
|
|
19
|
+
onSuccess: (_data, variables) => {
|
|
20
|
+
queryClient.invalidateQueries({
|
|
21
|
+
queryKey: ["notebooks", "documents", variables.sessionId]
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export { useUploadDocument };
|
|
28
|
+
//# sourceMappingURL=useUploadDocument.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUploadDocument.esm.js","sources":["../../../src/hooks/notebooks/useUploadDocument.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useApi } from '@backstage/core-plugin-api';\n\nimport {\n useMutation,\n useQueryClient,\n type UseMutationResult,\n} from '@tanstack/react-query';\n\nimport { notebooksApiRef } from '../../api/notebooksApi';\nimport { NOTEBOOK_EXTENSION_TO_FILE_TYPE } from '../../const';\nimport { UploadDocumentResponse } from '../../types';\n\ntype UploadDocumentParams = {\n sessionId: string;\n file: File;\n};\n\nconst getFileType = (fileName: string): string => {\n const lastDot = fileName.lastIndexOf('.');\n const ext = lastDot >= 0 ? fileName.slice(lastDot).toLowerCase() : '';\n return NOTEBOOK_EXTENSION_TO_FILE_TYPE[ext] ?? 'txt';\n};\n\nexport const useUploadDocument = (): UseMutationResult<\n UploadDocumentResponse,\n Error,\n UploadDocumentParams\n> => {\n const notebooksApi = useApi(notebooksApiRef);\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: async ({ sessionId, file }: UploadDocumentParams) => {\n const fileType = getFileType(file.name);\n return notebooksApi.uploadDocument(sessionId, file, fileType, file.name);\n },\n onSuccess: (_data, variables) => {\n queryClient.invalidateQueries({\n queryKey: ['notebooks', 'documents', variables.sessionId],\n });\n },\n });\n};\n"],"names":[],"mappings":";;;;;AAiCA,MAAM,WAAA,GAAc,CAAC,QAA6B,KAAA;AAChD,EAAM,MAAA,OAAA,GAAU,QAAS,CAAA,WAAA,CAAY,GAAG,CAAA;AACxC,EAAM,MAAA,GAAA,GAAM,WAAW,CAAI,GAAA,QAAA,CAAS,MAAM,OAAO,CAAA,CAAE,aAAgB,GAAA,EAAA;AACnE,EAAO,OAAA,+BAAA,CAAgC,GAAG,CAAK,IAAA,KAAA;AACjD,CAAA;AAEO,MAAM,oBAAoB,MAI5B;AACH,EAAM,MAAA,YAAA,GAAe,OAAO,eAAe,CAAA;AAC3C,EAAA,MAAM,cAAc,cAAe,EAAA;AAEnC,EAAA,OAAO,WAAY,CAAA;AAAA,IACjB,UAAY,EAAA,OAAO,EAAE,SAAA,EAAW,MAAiC,KAAA;AAC/D,MAAM,MAAA,QAAA,GAAW,WAAY,CAAA,IAAA,CAAK,IAAI,CAAA;AACtC,MAAA,OAAO,aAAa,cAAe,CAAA,SAAA,EAAW,IAAM,EAAA,QAAA,EAAU,KAAK,IAAI,CAAA;AAAA,KACzE;AAAA,IACA,SAAA,EAAW,CAAC,KAAA,EAAO,SAAc,KAAA;AAC/B,MAAA,WAAA,CAAY,iBAAkB,CAAA;AAAA,QAC5B,QAAU,EAAA,CAAC,WAAa,EAAA,WAAA,EAAa,UAAU,SAAS;AAAA,OACzD,CAAA;AAAA;AACH,GACD,CAAA;AACH;;;;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ import { PropsWithChildren } from 'react';
|
|
|
9
9
|
declare const lightspeedPlugin: _backstage_core_plugin_api.BackstagePlugin<{
|
|
10
10
|
root: _backstage_core_plugin_api.RouteRef<undefined>;
|
|
11
11
|
lightspeedConversation: _backstage_core_plugin_api.SubRouteRef<_backstage_core_plugin_api.PathParams<"/conversation/:conversationId">>;
|
|
12
|
+
lightspeedNotebooks: _backstage_core_plugin_api.SubRouteRef<undefined>;
|
|
12
13
|
}, {}, {}>;
|
|
13
14
|
/**
|
|
14
15
|
* Lightspeed Page Router
|
package/dist/plugin.esm.js
CHANGED
|
@@ -5,13 +5,14 @@ import { lightspeedApiRef } from './api/api.esm.js';
|
|
|
5
5
|
import { LightspeedApiClient } from './api/LightspeedApiClient.esm.js';
|
|
6
6
|
import { notebooksApiRef } from './api/notebooksApi.esm.js';
|
|
7
7
|
import { NotebooksApiClient } from './api/NotebooksApiClient.esm.js';
|
|
8
|
-
import { rootRouteRef, addConversationRouteRef } from './routes.esm.js';
|
|
8
|
+
import { rootRouteRef, addConversationRouteRef, notebooksRouteRef } from './routes.esm.js';
|
|
9
9
|
|
|
10
10
|
const lightspeedPlugin = createPlugin({
|
|
11
11
|
id: "lightspeed",
|
|
12
12
|
routes: {
|
|
13
13
|
root: rootRouteRef,
|
|
14
|
-
lightspeedConversation: addConversationRouteRef
|
|
14
|
+
lightspeedConversation: addConversationRouteRef,
|
|
15
|
+
lightspeedNotebooks: notebooksRouteRef
|
|
15
16
|
},
|
|
16
17
|
apis: [
|
|
17
18
|
createApiFactory({
|
package/dist/plugin.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.esm.js","sources":["../src/plugin.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport '@patternfly/react-core/dist/styles/base-no-reset.css';\nimport '@patternfly/chatbot/dist/css/main.css';\n\nimport { PropsWithChildren } from 'react';\n\nimport {\n configApiRef,\n createApiFactory,\n createComponentExtension,\n createPlugin,\n createRoutableExtension,\n fetchApiRef,\n} from '@backstage/core-plugin-api';\n\nimport { lightspeedApiRef } from './api/api';\nimport { LightspeedApiClient } from './api/LightspeedApiClient';\nimport { notebooksApiRef } from './api/notebooksApi';\nimport { NotebooksApiClient } from './api/NotebooksApiClient';\nimport {
|
|
1
|
+
{"version":3,"file":"plugin.esm.js","sources":["../src/plugin.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport '@patternfly/react-core/dist/styles/base-no-reset.css';\nimport '@patternfly/chatbot/dist/css/main.css';\n\nimport { PropsWithChildren } from 'react';\n\nimport {\n configApiRef,\n createApiFactory,\n createComponentExtension,\n createPlugin,\n createRoutableExtension,\n fetchApiRef,\n} from '@backstage/core-plugin-api';\n\nimport { lightspeedApiRef } from './api/api';\nimport { LightspeedApiClient } from './api/LightspeedApiClient';\nimport { notebooksApiRef } from './api/notebooksApi';\nimport { NotebooksApiClient } from './api/NotebooksApiClient';\nimport {\n addConversationRouteRef,\n notebooksRouteRef,\n rootRouteRef,\n} from './routes';\n\n/**\n * Lightspeed Plugin\n * @public\n */\nexport const lightspeedPlugin = createPlugin({\n id: 'lightspeed',\n routes: {\n root: rootRouteRef,\n lightspeedConversation: addConversationRouteRef,\n lightspeedNotebooks: notebooksRouteRef,\n },\n apis: [\n createApiFactory({\n api: lightspeedApiRef,\n deps: {\n configApi: configApiRef,\n fetchApi: fetchApiRef,\n },\n factory: ({ configApi, fetchApi }) =>\n new LightspeedApiClient({ configApi, fetchApi }),\n }),\n createApiFactory({\n api: notebooksApiRef,\n deps: {\n configApi: configApiRef,\n fetchApi: fetchApiRef,\n },\n factory: ({ configApi, fetchApi }) =>\n new NotebooksApiClient({ configApi, fetchApi }),\n }),\n ],\n});\n\n/**\n * Lightspeed Page Router\n * @public\n */\nexport const LightspeedPage = lightspeedPlugin.provide(\n createRoutableExtension({\n name: 'LightspeedPage',\n component: () => import('./components/Router').then(m => m.Router),\n mountPoint: rootRouteRef,\n }),\n);\n\n/**\n * Lightspeed Drawer Provider\n *\n * @public\n */\nexport const LightspeedDrawerProvider: React.ComponentType<PropsWithChildren> =\n lightspeedPlugin.provide(\n createComponentExtension({\n name: 'LightspeedDrawerProvider',\n component: {\n lazy: () =>\n import('./components/LightspeedDrawerProvider').then(\n m => m.LightspeedDrawerProvider,\n ),\n },\n }),\n );\n\n/**\n * Lightspeed FAB for global floating action button fot LightspeedAI\n *\n * @public\n */\nexport const LightspeedFAB: React.ComponentType = lightspeedPlugin.provide(\n createComponentExtension({\n name: 'LightspeedFAB',\n component: {\n lazy: () =>\n import('./components/LightspeedFAB').then(m => m.LightspeedFAB),\n },\n }),\n);\n\n/**\n * Lightspeed Drawer State Exposer exposes its drawer state\n *\n * @public\n */\nexport const LightspeedDrawerStateExposer = lightspeedPlugin.provide(\n createComponentExtension({\n name: 'LightspeedDrawerStateExposer',\n component: {\n lazy: () =>\n import('./components/LightspeedDrawerStateExposer').then(\n m => m.LightspeedDrawerStateExposer,\n ),\n },\n }),\n);\n\n/**\n * Lightspeed Chat Container component extension\n *\n * @public\n */\nexport const LightspeedChatContainer = lightspeedPlugin.provide(\n createComponentExtension({\n name: 'LightspeedChatContainer',\n component: {\n lazy: () =>\n import('./components/LightspeedChatContainer').then(\n m => m.LightspeedChatContainer,\n ),\n },\n }),\n);\n"],"names":[],"mappings":";;;;;;;;;AA4CO,MAAM,mBAAmB,YAAa,CAAA;AAAA,EAC3C,EAAI,EAAA,YAAA;AAAA,EACJ,MAAQ,EAAA;AAAA,IACN,IAAM,EAAA,YAAA;AAAA,IACN,sBAAwB,EAAA,uBAAA;AAAA,IACxB,mBAAqB,EAAA;AAAA,GACvB;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,gBAAiB,CAAA;AAAA,MACf,GAAK,EAAA,gBAAA;AAAA,MACL,IAAM,EAAA;AAAA,QACJ,SAAW,EAAA,YAAA;AAAA,QACX,QAAU,EAAA;AAAA,OACZ;AAAA,MACA,OAAA,EAAS,CAAC,EAAE,SAAW,EAAA,QAAA,EACrB,KAAA,IAAI,mBAAoB,CAAA,EAAE,SAAW,EAAA,QAAA,EAAU;AAAA,KAClD,CAAA;AAAA,IACD,gBAAiB,CAAA;AAAA,MACf,GAAK,EAAA,eAAA;AAAA,MACL,IAAM,EAAA;AAAA,QACJ,SAAW,EAAA,YAAA;AAAA,QACX,QAAU,EAAA;AAAA,OACZ;AAAA,MACA,OAAA,EAAS,CAAC,EAAE,SAAW,EAAA,QAAA,EACrB,KAAA,IAAI,kBAAmB,CAAA,EAAE,SAAW,EAAA,QAAA,EAAU;AAAA,KACjD;AAAA;AAEL,CAAC;AAMM,MAAM,iBAAiB,gBAAiB,CAAA,OAAA;AAAA,EAC7C,uBAAwB,CAAA;AAAA,IACtB,IAAM,EAAA,gBAAA;AAAA,IACN,SAAA,EAAW,MAAM,OAAO,4BAAqB,EAAE,IAAK,CAAA,CAAA,CAAA,KAAK,EAAE,MAAM,CAAA;AAAA,IACjE,UAAY,EAAA;AAAA,GACb;AACH;AAOO,MAAM,2BACX,gBAAiB,CAAA,OAAA;AAAA,EACf,wBAAyB,CAAA;AAAA,IACvB,IAAM,EAAA,0BAAA;AAAA,IACN,SAAW,EAAA;AAAA,MACT,IAAM,EAAA,MACJ,OAAO,8CAAuC,CAAE,CAAA,IAAA;AAAA,QAC9C,OAAK,CAAE,CAAA;AAAA;AACT;AACJ,GACD;AACH;AAOgD,gBAAiB,CAAA,OAAA;AAAA,EACjE,wBAAyB,CAAA;AAAA,IACvB,IAAM,EAAA,eAAA;AAAA,IACN,SAAW,EAAA;AAAA,MACT,IAAA,EAAM,MACJ,OAAO,mCAA4B,EAAE,IAAK,CAAA,CAAA,CAAA,KAAK,EAAE,aAAa;AAAA;AAClE,GACD;AACH;AAO4C,gBAAiB,CAAA,OAAA;AAAA,EAC3D,wBAAyB,CAAA;AAAA,IACvB,IAAM,EAAA,8BAAA;AAAA,IACN,SAAW,EAAA;AAAA,MACT,IAAM,EAAA,MACJ,OAAO,kDAA2C,CAAE,CAAA,IAAA;AAAA,QAClD,OAAK,CAAE,CAAA;AAAA;AACT;AACJ,GACD;AACH;AAOuC,gBAAiB,CAAA,OAAA;AAAA,EACtD,wBAAyB,CAAA;AAAA,IACvB,IAAM,EAAA,yBAAA;AAAA,IACN,SAAW,EAAA;AAAA,MACT,IAAM,EAAA,MACJ,OAAO,6CAAsC,CAAE,CAAA,IAAA;AAAA,QAC7C,OAAK,CAAE,CAAA;AAAA;AACT;AACJ,GACD;AACH;;;;"}
|
package/dist/routes.esm.js
CHANGED
|
@@ -8,6 +8,11 @@ const addConversationRouteRef = createSubRouteRef({
|
|
|
8
8
|
parent: rootRouteRef,
|
|
9
9
|
path: "/conversation/:conversationId"
|
|
10
10
|
});
|
|
11
|
+
const notebooksRouteRef = createSubRouteRef({
|
|
12
|
+
id: "lightspeed-notebooks",
|
|
13
|
+
parent: rootRouteRef,
|
|
14
|
+
path: "/notebooks"
|
|
15
|
+
});
|
|
11
16
|
|
|
12
|
-
export { addConversationRouteRef, rootRouteRef };
|
|
17
|
+
export { addConversationRouteRef, notebooksRouteRef, rootRouteRef };
|
|
13
18
|
//# sourceMappingURL=routes.esm.js.map
|
package/dist/routes.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.esm.js","sources":["../src/routes.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createRouteRef, createSubRouteRef } from '@backstage/core-plugin-api';\n\nexport const rootRouteRef = createRouteRef({\n id: 'lightspeed',\n});\n\nexport const addConversationRouteRef = createSubRouteRef({\n id: 'lightspeed-conversation',\n parent: rootRouteRef,\n path: '/conversation/:conversationId',\n});\n"],"names":[],"mappings":";;AAkBO,MAAM,eAAe,cAAe,CAAA;AAAA,EACzC,EAAI,EAAA;AACN,CAAC;AAEM,MAAM,0BAA0B,iBAAkB,CAAA;AAAA,EACvD,EAAI,EAAA,yBAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"routes.esm.js","sources":["../src/routes.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createRouteRef, createSubRouteRef } from '@backstage/core-plugin-api';\n\nexport const rootRouteRef = createRouteRef({\n id: 'lightspeed',\n});\n\nexport const addConversationRouteRef = createSubRouteRef({\n id: 'lightspeed-conversation',\n parent: rootRouteRef,\n path: '/conversation/:conversationId',\n});\n\nexport const notebooksRouteRef = createSubRouteRef({\n id: 'lightspeed-notebooks',\n parent: rootRouteRef,\n path: '/notebooks',\n});\n"],"names":[],"mappings":";;AAkBO,MAAM,eAAe,cAAe,CAAA;AAAA,EACzC,EAAI,EAAA;AACN,CAAC;AAEM,MAAM,0BAA0B,iBAAkB,CAAA;AAAA,EACvD,EAAI,EAAA,yBAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,oBAAoB,iBAAkB,CAAA;AAAA,EACjD,EAAI,EAAA,sBAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;;;;"}
|
|
@@ -30,6 +30,33 @@ const lightspeedTranslationDe = createTranslationMessages({
|
|
|
30
30
|
"notebooks.updated.yesterday": "Vor 1 Tag aktualisiert",
|
|
31
31
|
"notebooks.updated.days": "Vor {{days}} Tagen aktualisiert",
|
|
32
32
|
"notebooks.updated.on": "Aktualisiert am",
|
|
33
|
+
// Notebook view
|
|
34
|
+
"notebook.view.title": "Unbenanntes Notizbuch",
|
|
35
|
+
"notebook.view.close": "Notizbuch schlie\xDFen",
|
|
36
|
+
"notebook.view.documents.count": "{{count}} Dokumente",
|
|
37
|
+
"notebook.view.documents.add": "Hinzuf\xFCgen",
|
|
38
|
+
"notebook.view.upload.heading": "Laden Sie eine Ressource hoch, um zu beginnen",
|
|
39
|
+
"notebook.view.upload.action": "Ressource hochladen",
|
|
40
|
+
"notebook.view.input.placeholder": "Fragen Sie zu Ihren Dokumenten...",
|
|
41
|
+
"notebook.view.sidebar.collapse": "Seitenleiste einklappen",
|
|
42
|
+
"notebook.view.sidebar.expand": "Seitenleiste ausklappen",
|
|
43
|
+
"notebook.view.sidebar.resize": "Gr\xF6\xDFe der Seitenleiste \xE4ndern",
|
|
44
|
+
"notebook.view.documents.uploading": "Dokument wird hochgeladen",
|
|
45
|
+
"notebook.upload.success": "{{fileName}} erfolgreich hochgeladen.",
|
|
46
|
+
"notebook.upload.failed": "Hochladen von {{fileName}} fehlgeschlagen.",
|
|
47
|
+
// Notebook upload modal
|
|
48
|
+
"notebook.upload.modal.title": "Dokument zum Notizbuch hinzuf\xFCgen",
|
|
49
|
+
"notebook.upload.modal.dragDropTitle": "Dateien hierher ziehen und ablegen",
|
|
50
|
+
"notebook.upload.modal.browseButton": "Hochladen",
|
|
51
|
+
"notebook.upload.modal.separator": "oder",
|
|
52
|
+
"notebook.upload.modal.infoText": "Akzeptierte Dateitypen: .md, .txt, .pdf, .json, .yaml, .log",
|
|
53
|
+
"notebook.upload.error.unsupportedType": "Upload-Fehler: Nicht unterst\xFCtzte Dateitypen gefunden. Bitte laden Sie nur unterst\xFCtzte Dateitypen hoch.",
|
|
54
|
+
"notebook.upload.error.fileTooLarge": "Upload-Fehler: Dateigr\xF6\xDFe \xFCberschreitet das Limit von 25 MB.",
|
|
55
|
+
"notebook.upload.error.tooManyFiles": "Upload-Fehler: Maximal {{max}} Dateien erlaubt.",
|
|
56
|
+
// Notebook overwrite modal
|
|
57
|
+
"notebook.overwrite.modal.title": "Dateien \xFCberschreiben?",
|
|
58
|
+
"notebook.overwrite.modal.description": "Die folgenden Dateien existieren bereits in diesem Notizbuch. M\xF6chten Sie sie mit den neuen Versionen \xFCberschreiben?",
|
|
59
|
+
"notebook.overwrite.modal.action": "\xDCberschreiben",
|
|
33
60
|
"prompts.codeReadability.title": "Hilfe zur Code-Lesbarkeit erhalten",
|
|
34
61
|
"prompts.codeReadability.message": "K\xF6nnen Sie mir Techniken vorschlagen, mit denen ich meinen Code lesbarer und wartungsfreundlicher gestalten kann?",
|
|
35
62
|
"prompts.debugging.title": "Hilfe beim Debuggen erhalten",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"de.esm.js","sources":["../../src/translations/de.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createTranslationMessages } from '@backstage/core-plugin-api/alpha';\n\nimport { lightspeedTranslationRef } from './ref';\n\n/**\n * de translation for plugin.lightspeed.\n * @public\n */\nconst lightspeedTranslationDe = createTranslationMessages({\n ref: lightspeedTranslationRef,\n messages: {\n 'page.title': 'Lightspeed',\n 'page.subtitle': 'KI-gestützter Entwicklungsassistent',\n 'tabs.ariaLabel': 'Lightspeed-Ansichten',\n 'tabs.chat': 'Chat',\n 'tabs.notebooks': 'Notizbücher',\n 'tabs.notebooks.empty': 'Inhalte der Notizbücher kommen hierhin.',\n 'notebooks.title': 'Meine Notizbücher',\n 'notebooks.empty.title': 'Keine erstellten Notizbücher',\n 'notebooks.empty.description':\n 'Erstellen Sie ein neues Notizbuch, um Ihre Quellen zu organisieren und KI-gestützte Erkenntnisse zu gewinnen.',\n 'notebooks.empty.action': 'Neues Notizbuch erstellen',\n 'notebooks.documents': 'Dokumente',\n 'notebooks.actions.rename': 'Umbenennen',\n 'notebooks.actions.delete': 'Löschen',\n 'notebooks.rename.title': '{{name}} umbenennen?',\n 'notebooks.rename.description':\n 'Bitte geben Sie den neuen Namen für dieses Notizbuch ein und klicken Sie auf „Senden“, um fortzufahren.',\n 'notebooks.rename.label': 'Neuer Name',\n 'notebooks.rename.placeholder': 'Neuer Name',\n 'notebooks.rename.action': 'Senden',\n 'notebooks.delete.title': '{{name}} löschen?',\n 'notebooks.delete.message':\n 'Dieses Notizbuch wird hier nicht mehr angezeigt. Dadurch werden auch zugehörige Aktivitäten wie Eingaben, Antworten und Feedback aus Ihrer Lightspeed-Aktivität gelöscht.',\n 'notebooks.delete.action': 'Löschen',\n 'notebooks.delete.toast': 'Notizbuch gelöscht!',\n 'notebooks.updated.today': 'Heute aktualisiert',\n 'notebooks.updated.yesterday': 'Vor 1 Tag aktualisiert',\n 'notebooks.updated.days': 'Vor {{days}} Tagen aktualisiert',\n 'notebooks.updated.on': 'Aktualisiert am',\n 'prompts.codeReadability.title': 'Hilfe zur Code-Lesbarkeit erhalten',\n 'prompts.codeReadability.message':\n 'Können Sie mir Techniken vorschlagen, mit denen ich meinen Code lesbarer und wartungsfreundlicher gestalten kann?',\n 'prompts.debugging.title': 'Hilfe beim Debuggen erhalten',\n 'prompts.debugging.message':\n 'Meine Anwendung gibt beim Versuch einer Verbindung zur Datenbank einen Fehler aus. Können Sie mir helfen, das Problem zu identifizieren?',\n 'prompts.developmentConcept.title': 'Ein Entwicklungskonzept erläutern',\n 'prompts.developmentConcept.message':\n 'Können Sie erklären, wie eine Microservices-Architektur funktioniert und welche Vorteile sie gegenüber einem monolithischen Design bietet?',\n 'prompts.codeOptimization.title':\n 'Vorschläge zur Codeoptimierung unterbreiten',\n 'prompts.codeOptimization.message':\n 'Können Sie gängige Methoden zur Codeoptimierung vorschlagen, um eine bessere Performance zu erzielen?',\n 'prompts.documentation.title': 'Zusammenfassung von Dokumentation',\n 'prompts.documentation.message':\n 'Können Sie die Dokumentation zur Implementierung der OAuth 2.0-Authentifizierung in einer Webanwendung zusammenfassen?',\n 'prompts.gitWorkflows.title': 'Workflows mit Git',\n 'prompts.gitWorkflows.message':\n 'Ich möchte Änderungen am Code in einem anderen Branch vornehmen, ohne meine bestehende Arbeit zu verlieren. Wie geht man dabei mit Git vor?',\n 'prompts.testingStrategies.title': 'Teststrategien vorschlagen',\n 'prompts.testingStrategies.message':\n 'Können Sie mir einige gängige Teststrategien empfehlen, die meine Anwendung robust und fehlerfrei machen?',\n 'prompts.sortingAlgorithms.title':\n 'Sortieralgorithmen verständlich erklären',\n 'prompts.sortingAlgorithms.message':\n 'Können Sie den Unterschied zwischen Quicksort und Mergesort erklären und wann man welchen Algorithmus verwendet?',\n 'prompts.eventDriven.title': 'Ereignisgesteuerte Architektur verstehen',\n 'prompts.eventDriven.message':\n 'Können Sie erklären, was ereignisgesteuerte Architektur bedeutet und wann ihre Verwendung in der Softwareentwicklung von Vorteil ist?',\n 'prompts.tekton.title': 'Mit Tekton deployen',\n 'prompts.tekton.message':\n 'Können Sie mir helfen, das Deployment meiner Anwendung mithilfe von Tekton-Pipelines zu automatisieren?',\n 'prompts.openshift.title': 'OpenShift-Deployment erstellen',\n 'prompts.openshift.message':\n 'Können Sie mich bei der Erstellung eines neuen Deployments in OpenShift für eine containerisierte Anwendung unterstützen?',\n 'prompts.rhdh.title': 'Erste Schritte mit dem Red Hat Developer Hub',\n 'prompts.rhdh.message':\n 'Können Sie mich bei den ersten Schritten zur Nutzung des Developer Hub als Entwickler unterstützen, z. B. beim Erkunden des Softwarekatalogs und beim Hinzufügen meines Dienstes?',\n 'conversation.delete.confirm.title': 'Chat löschen?',\n 'conversation.delete.confirm.message':\n 'Dieser Chat wird hier nicht mehr angezeigt. Dadurch werden auch zugehörige Aktivitäten wie Prompts, Antworten und Feedback aus Ihrer Lightspeed-Aktivität gelöscht.',\n 'conversation.delete.confirm.action': 'Löschen',\n 'conversation.rename.confirm.title': 'Chat umbenennen?',\n 'conversation.rename.confirm.action': 'Umbenennen',\n 'conversation.rename.placeholder': 'Chatname',\n 'permission.required.title': 'Fehlende Berechtigungen',\n 'permission.required.description':\n 'Um <subject/> anzuzeigen, wenden Sie sich an Ihren Administrator, um die Berechtigung <permissions/> zu erhalten.',\n 'permission.subject.plugin': 'das Lightspeed-Plugin',\n 'permission.subject.notebooks': 'die Lightspeed-Notizbücher',\n 'permission.notebooks.goBack': 'Zurück',\n 'disclaimer.withValidation':\n 'Diese Funktion nutzt KI-Technologie. Geben Sie bei Ihrer Eingabe keine persönlichen oder sonstigen sensiblen Informationen an. Interaktionen können dazu genutzt werden, die Produkte oder Dienstleistungen von Red Hat zu verbessern.',\n 'disclaimer.withoutValidation':\n 'Diese Funktion nutzt KI-Technologie. Geben Sie bei Ihrer Eingabe keine persönlichen oder sonstigen sensiblen Informationen an. Interaktionen können dazu genutzt werden, die Produkte oder Dienstleistungen von Red Hat zu verbessern.',\n 'footer.accuracy.label':\n 'KI-generierte Inhalte sollten vor der Verwendung stets überprüft werden.',\n 'common.cancel': 'Abbrechen',\n 'common.close': 'Schließen',\n 'common.readMore': 'Mehr lesen',\n 'common.noSearchResults': 'Keine Ergebnisse, die der Suche entsprechen',\n 'menu.newConversation': 'Neuer Chat',\n 'chatbox.header.title': 'Developer Lightspeed',\n 'chatbox.search.placeholder': 'Suchen',\n 'chatbox.provider.other': 'Andere',\n 'chatbox.emptyState.noPinnedChats': 'Keine angehefteten Chats',\n 'chatbox.emptyState.noRecentChats': 'Keine letzten Chats',\n 'chatbox.emptyState.noResults.title': 'Keine Ergebnisse gefunden',\n 'chatbox.emptyState.noResults.body':\n 'Passen Sie Ihre Suchanfrage an, und versuchen Sie es erneut. Überprüfen Sie Ihre Rechtschreibung, oder versuchen Sie es mit einem allgemeineren Begriff.',\n 'chatbox.welcome.greeting': 'Hallo {{userName}}',\n 'chatbox.welcome.description': 'Wie kann ich Ihnen heute helfen?',\n 'chatbox.message.placeholder':\n 'Senden Sie eine Nachricht, und laden Sie optional eine JSON-, YAML- oder TXT-Datei hoch ...',\n 'chatbox.fileUpload.failed': 'Datei-Upload fehlgeschlagen',\n 'chatbox.fileUpload.infoText':\n 'Unterstützte Dateitypen: .txt, .yaml und .json. Die maximale Dateigröße beträgt 25 MB.',\n 'aria.chatbotSelector': 'Chatbot-Auswahl',\n 'aria.important': 'Wichtig',\n 'aria.chatHistoryMenu': 'Chatverlauf-Menü',\n 'aria.closeDrawerPanel': 'Drawer-Fenster schließen',\n 'aria.search.placeholder': 'Suchen',\n 'aria.searchPreviousConversations': 'Vorherige Unterhaltungen durchsuchen',\n 'aria.resize': 'Größe ändern',\n 'aria.options.label': 'Optionen',\n 'aria.scroll.down': 'Zurück zum Ende',\n 'aria.scroll.up': 'Zurück zum Anfang',\n 'aria.settings.label': 'Chatbot-Optionen',\n 'aria.close': 'Chatbot schließen',\n 'modal.edit': 'Bearbeiten',\n 'modal.save': 'Speichern',\n 'modal.close': 'Schließen',\n 'modal.cancel': 'Abbrechen',\n 'conversation.delete': 'Löschen',\n 'conversation.rename': 'Umbenennen',\n 'conversation.addToPinnedChats': 'Anheften',\n 'conversation.removeFromPinnedChats': 'Lösen',\n 'conversation.announcement.userMessage':\n 'Nachricht vom Benutzer: {{prompt}}. Nachricht vom Bot wird geladen.',\n 'user.guest': 'Gast',\n 'conversation.announcement.responseStopped': 'Antwort angehalten.',\n 'user.loading': '...',\n 'tooltip.attach': 'Anhängen',\n 'tooltip.send': 'Senden',\n 'tooltip.microphone.active': 'Überwachen beenden',\n 'tooltip.microphone.inactive': 'Mikrofon verwenden',\n 'button.newChat': 'Neuer Chat',\n 'tooltip.chatHistoryMenu': 'Chatverlauf-Menü',\n 'tooltip.responseRecorded': 'Antwort aufgezeichnet',\n 'tooltip.backToTop': 'Zurück zum Anfang',\n 'tooltip.backToBottom': 'Zurück zum Ende',\n 'tooltip.settings': 'Chatbot-Optionen',\n 'tooltip.close': 'Schließen',\n 'modal.title.preview': 'Anhang in der Vorschau anzeigen',\n 'modal.title.edit': 'Anhang bearbeiten',\n 'icon.lightspeed.alt': 'Lightspeed-Symbol',\n 'icon.permissionRequired.alt': \"Symbol für 'Berechtigung erforderlich'\",\n 'message.options.label': 'Optionen',\n 'file.upload.error.alreadyExists': 'Datei existiert bereits.',\n 'file.upload.error.multipleFiles':\n 'Es wurden mehr als eine Datei hochgeladen.',\n 'file.upload.error.unsupportedType':\n 'Nicht unterstützter Dateityp. Unterstützte Typen: .txt, .yaml und .json.',\n 'file.upload.error.fileTooLarge':\n 'Ihre Dateigröße ist zu groß. Bitte stellen Sie sicher, dass Ihre Datei kleiner als 25 MB ist.',\n 'file.upload.error.readFailed':\n 'Datei konnte nicht gelesen werden: {{errorMessage}}',\n 'error.context.fileAttachment':\n 'useFileAttachmentContext muss innerhalb eines FileAttachmentContextProvider liegen',\n 'feedback.form.title': 'Warum haben Sie diese Bewertung gewählt?',\n 'feedback.form.textAreaPlaceholder':\n 'Geben Sie optional zusätzliches Feedback an',\n 'feedback.form.submitWord': 'Absenden',\n 'feedback.tooltips.goodResponse': 'Gute Antwort',\n 'feedback.tooltips.badResponse': 'Schlechte Antwort',\n 'feedback.tooltips.copied': 'Kopiert',\n 'feedback.tooltips.copy': 'Kopieren',\n 'feedback.tooltips.listening': 'Überwachung',\n 'feedback.tooltips.listen': 'Überwachen',\n 'feedback.quickResponses.positive.helpful': 'Hilfreiche Informationen',\n 'feedback.quickResponses.positive.easyToUnderstand': 'Leicht verständlich',\n 'feedback.quickResponses.positive.resolvedIssue':\n 'Mein Problem wurde gelöst',\n 'feedback.quickResponses.negative.didntAnswer':\n 'Meine Frage wurde nicht beantwortet',\n 'feedback.quickResponses.negative.hardToUnderstand': 'Schwer zu verstehen',\n 'feedback.quickResponses.negative.notHelpful': 'Nicht hilfreich',\n 'feedback.completion.title': 'Feedback übermittelt',\n 'feedback.completion.body':\n 'Wir haben Ihre Antwort erhalten. Vielen Dank für Ihr Feedback!',\n 'conversation.category.pinnedChats': 'Angeheftet',\n 'conversation.category.recent': 'Neueste',\n 'settings.pinned.enable': 'Angeheftete Chats aktivieren',\n 'settings.pinned.disable': 'Angeheftete Chats deaktivieren',\n 'settings.pinned.enabled.description':\n 'Angeheftete Chats sind derzeit aktiviert',\n 'settings.pinned.disabled.description':\n 'Angeheftete Chats sind derzeit deaktiviert.',\n 'settings.mcp.label': 'MCP-Einstellungen',\n 'mcp.settings.title': 'MCP-Server',\n 'mcp.settings.selectedCount':\n '{{selectedCount}} von {{totalCount}} ausgewählt',\n 'mcp.settings.closeAriaLabel': 'MCP-Einstellungen schließen',\n 'mcp.settings.readOnlyAccess':\n 'Sie haben schreibgeschützten Zugriff auf MCP-Server.',\n 'mcp.settings.tableAriaLabel': 'MCP-Server-Tabelle',\n 'mcp.settings.enabled': 'Aktiviert',\n 'mcp.settings.name': 'Name',\n 'mcp.settings.status': 'Status',\n 'mcp.settings.edit': 'Bearbeiten',\n 'mcp.settings.loading': 'MCP-Server werden geladen...',\n 'mcp.settings.noneAvailable': 'Keine MCP-Server verfügbar.',\n 'mcp.settings.status.disabled': 'Deaktiviert',\n 'mcp.settings.status.tokenRequired': 'Token erforderlich',\n 'mcp.settings.status.failed': 'Fehlgeschlagen',\n 'mcp.settings.status.oneTool': '{{count}} Tool',\n 'mcp.settings.status.manyTools': '{{count}} Tools',\n 'mcp.settings.status.unknown': 'Unbekannt',\n 'mcp.settings.toggleServerAriaLabel': '{{serverName}} umschalten',\n 'mcp.settings.editServerAriaLabel': '{{serverName}} bearbeiten',\n 'mcp.settings.configureServerTitle': 'Server {{serverName}} konfigurieren',\n 'mcp.settings.closeConfigureModalAriaLabel':\n 'Konfigurationsdialog schließen',\n 'mcp.settings.modalDescription':\n 'Anmeldedaten werden verschlüsselt gespeichert und sind auf Ihr Profil beschränkt. Lightspeed arbeitet mit genau Ihren Berechtigungen.',\n 'mcp.settings.savedToken': 'Gespeicherter Token',\n 'mcp.settings.personalAccessToken': 'Persönlicher Zugriffstoken',\n 'mcp.settings.usingAdminCredential':\n 'Administratoranmeldedaten werden verwendet. Geben Sie einen persönlichen Token ein, um ihn für Ihr Konto zu überschreiben.',\n 'mcp.settings.enterToken': 'Geben Sie Ihren Token ein',\n 'mcp.settings.removePersonalToken': 'Persönlichen Token entfernen',\n 'mcp.settings.token.clearAriaLabel': 'Tokeneingabe löschen',\n 'mcp.settings.token.validating': 'Token wird validiert...',\n 'mcp.settings.token.savingAndValidating':\n 'Token wird gespeichert und validiert...',\n 'mcp.settings.token.urlUnavailableForValidation':\n 'Token kann nicht validiert werden, da die Server-URL nicht verfügbar ist.',\n 'mcp.settings.token.invalidCredentials':\n 'Ungültige Anmeldedaten. Überprüfen Sie Server-URL und Token.',\n 'mcp.settings.token.validationFailed':\n 'Validierung fehlgeschlagen. Überprüfen Sie Server-URL und Token.',\n 'mcp.settings.token.connectionSuccessful': 'Verbindung erfolgreich',\n 'toolCall.header': 'Antwort des Tools: {{toolName}}',\n 'toolCall.thinking': 'Hat {{seconds}} Sekunden nachgedacht',\n 'toolCall.executionTime': 'Ausführungszeit: ',\n 'toolCall.parameters': 'Parameter',\n 'toolCall.response': 'Antwort',\n 'toolCall.showMore': 'Mehr anzeigen',\n 'toolCall.showLess': 'Weniger anzeigen',\n 'toolCall.loading': 'Tool wird ausgeführt...',\n 'toolCall.executing': 'Tool wird ausgeführt...',\n 'toolCall.copyResponse': 'Antwort kopieren',\n 'toolCall.summary': 'Hier ist eine Zusammenfassung Ihrer Antwort.',\n 'toolCall.mcpServer': 'MCP-Server',\n 'settings.displayMode.label': 'Anzeigemodus',\n 'settings.displayMode.overlay': 'Overlay',\n 'settings.displayMode.docked': 'An Fenster andocken',\n 'settings.displayMode.fullscreen': 'Vollbild',\n 'sort.label': 'Unterhaltungen sortieren',\n 'sort.newest': 'Datum (neuestes zuerst)',\n 'sort.oldest': 'Datum (ältestes zuerst)',\n 'sort.alphabeticalAsc': 'Name (A-Z)',\n 'sort.alphabeticalDesc': 'Name (Z-A)',\n 'reasoning.thinking': 'Denkvorgang anzeigen',\n },\n});\n\nexport default lightspeedTranslationDe;\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"de.esm.js","sources":["../../src/translations/de.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createTranslationMessages } from '@backstage/core-plugin-api/alpha';\n\nimport { lightspeedTranslationRef } from './ref';\n\n/**\n * de translation for plugin.lightspeed.\n * @public\n */\nconst lightspeedTranslationDe = createTranslationMessages({\n ref: lightspeedTranslationRef,\n messages: {\n 'page.title': 'Lightspeed',\n 'page.subtitle': 'KI-gestützter Entwicklungsassistent',\n 'tabs.ariaLabel': 'Lightspeed-Ansichten',\n 'tabs.chat': 'Chat',\n 'tabs.notebooks': 'Notizbücher',\n 'tabs.notebooks.empty': 'Inhalte der Notizbücher kommen hierhin.',\n 'notebooks.title': 'Meine Notizbücher',\n 'notebooks.empty.title': 'Keine erstellten Notizbücher',\n 'notebooks.empty.description':\n 'Erstellen Sie ein neues Notizbuch, um Ihre Quellen zu organisieren und KI-gestützte Erkenntnisse zu gewinnen.',\n 'notebooks.empty.action': 'Neues Notizbuch erstellen',\n 'notebooks.documents': 'Dokumente',\n 'notebooks.actions.rename': 'Umbenennen',\n 'notebooks.actions.delete': 'Löschen',\n 'notebooks.rename.title': '{{name}} umbenennen?',\n 'notebooks.rename.description':\n 'Bitte geben Sie den neuen Namen für dieses Notizbuch ein und klicken Sie auf „Senden“, um fortzufahren.',\n 'notebooks.rename.label': 'Neuer Name',\n 'notebooks.rename.placeholder': 'Neuer Name',\n 'notebooks.rename.action': 'Senden',\n 'notebooks.delete.title': '{{name}} löschen?',\n 'notebooks.delete.message':\n 'Dieses Notizbuch wird hier nicht mehr angezeigt. Dadurch werden auch zugehörige Aktivitäten wie Eingaben, Antworten und Feedback aus Ihrer Lightspeed-Aktivität gelöscht.',\n 'notebooks.delete.action': 'Löschen',\n 'notebooks.delete.toast': 'Notizbuch gelöscht!',\n 'notebooks.updated.today': 'Heute aktualisiert',\n 'notebooks.updated.yesterday': 'Vor 1 Tag aktualisiert',\n 'notebooks.updated.days': 'Vor {{days}} Tagen aktualisiert',\n 'notebooks.updated.on': 'Aktualisiert am',\n\n // Notebook view\n 'notebook.view.title': 'Unbenanntes Notizbuch',\n 'notebook.view.close': 'Notizbuch schließen',\n 'notebook.view.documents.count': '{{count}} Dokumente',\n 'notebook.view.documents.add': 'Hinzufügen',\n 'notebook.view.upload.heading':\n 'Laden Sie eine Ressource hoch, um zu beginnen',\n 'notebook.view.upload.action': 'Ressource hochladen',\n 'notebook.view.input.placeholder': 'Fragen Sie zu Ihren Dokumenten...',\n 'notebook.view.sidebar.collapse': 'Seitenleiste einklappen',\n 'notebook.view.sidebar.expand': 'Seitenleiste ausklappen',\n 'notebook.view.sidebar.resize': 'Größe der Seitenleiste ändern',\n 'notebook.view.documents.uploading': 'Dokument wird hochgeladen',\n 'notebook.upload.success': '{{fileName}} erfolgreich hochgeladen.',\n 'notebook.upload.failed': 'Hochladen von {{fileName}} fehlgeschlagen.',\n\n // Notebook upload modal\n 'notebook.upload.modal.title': 'Dokument zum Notizbuch hinzufügen',\n 'notebook.upload.modal.dragDropTitle': 'Dateien hierher ziehen und ablegen',\n 'notebook.upload.modal.browseButton': 'Hochladen',\n 'notebook.upload.modal.separator': 'oder',\n 'notebook.upload.modal.infoText':\n 'Akzeptierte Dateitypen: .md, .txt, .pdf, .json, .yaml, .log',\n 'notebook.upload.error.unsupportedType':\n 'Upload-Fehler: Nicht unterstützte Dateitypen gefunden. Bitte laden Sie nur unterstützte Dateitypen hoch.',\n 'notebook.upload.error.fileTooLarge':\n 'Upload-Fehler: Dateigröße überschreitet das Limit von 25 MB.',\n 'notebook.upload.error.tooManyFiles':\n 'Upload-Fehler: Maximal {{max}} Dateien erlaubt.',\n\n // Notebook overwrite modal\n 'notebook.overwrite.modal.title': 'Dateien überschreiben?',\n 'notebook.overwrite.modal.description':\n 'Die folgenden Dateien existieren bereits in diesem Notizbuch. Möchten Sie sie mit den neuen Versionen überschreiben?',\n 'notebook.overwrite.modal.action': 'Überschreiben',\n\n 'prompts.codeReadability.title': 'Hilfe zur Code-Lesbarkeit erhalten',\n 'prompts.codeReadability.message':\n 'Können Sie mir Techniken vorschlagen, mit denen ich meinen Code lesbarer und wartungsfreundlicher gestalten kann?',\n 'prompts.debugging.title': 'Hilfe beim Debuggen erhalten',\n 'prompts.debugging.message':\n 'Meine Anwendung gibt beim Versuch einer Verbindung zur Datenbank einen Fehler aus. Können Sie mir helfen, das Problem zu identifizieren?',\n 'prompts.developmentConcept.title': 'Ein Entwicklungskonzept erläutern',\n 'prompts.developmentConcept.message':\n 'Können Sie erklären, wie eine Microservices-Architektur funktioniert und welche Vorteile sie gegenüber einem monolithischen Design bietet?',\n 'prompts.codeOptimization.title':\n 'Vorschläge zur Codeoptimierung unterbreiten',\n 'prompts.codeOptimization.message':\n 'Können Sie gängige Methoden zur Codeoptimierung vorschlagen, um eine bessere Performance zu erzielen?',\n 'prompts.documentation.title': 'Zusammenfassung von Dokumentation',\n 'prompts.documentation.message':\n 'Können Sie die Dokumentation zur Implementierung der OAuth 2.0-Authentifizierung in einer Webanwendung zusammenfassen?',\n 'prompts.gitWorkflows.title': 'Workflows mit Git',\n 'prompts.gitWorkflows.message':\n 'Ich möchte Änderungen am Code in einem anderen Branch vornehmen, ohne meine bestehende Arbeit zu verlieren. Wie geht man dabei mit Git vor?',\n 'prompts.testingStrategies.title': 'Teststrategien vorschlagen',\n 'prompts.testingStrategies.message':\n 'Können Sie mir einige gängige Teststrategien empfehlen, die meine Anwendung robust und fehlerfrei machen?',\n 'prompts.sortingAlgorithms.title':\n 'Sortieralgorithmen verständlich erklären',\n 'prompts.sortingAlgorithms.message':\n 'Können Sie den Unterschied zwischen Quicksort und Mergesort erklären und wann man welchen Algorithmus verwendet?',\n 'prompts.eventDriven.title': 'Ereignisgesteuerte Architektur verstehen',\n 'prompts.eventDriven.message':\n 'Können Sie erklären, was ereignisgesteuerte Architektur bedeutet und wann ihre Verwendung in der Softwareentwicklung von Vorteil ist?',\n 'prompts.tekton.title': 'Mit Tekton deployen',\n 'prompts.tekton.message':\n 'Können Sie mir helfen, das Deployment meiner Anwendung mithilfe von Tekton-Pipelines zu automatisieren?',\n 'prompts.openshift.title': 'OpenShift-Deployment erstellen',\n 'prompts.openshift.message':\n 'Können Sie mich bei der Erstellung eines neuen Deployments in OpenShift für eine containerisierte Anwendung unterstützen?',\n 'prompts.rhdh.title': 'Erste Schritte mit dem Red Hat Developer Hub',\n 'prompts.rhdh.message':\n 'Können Sie mich bei den ersten Schritten zur Nutzung des Developer Hub als Entwickler unterstützen, z. B. beim Erkunden des Softwarekatalogs und beim Hinzufügen meines Dienstes?',\n 'conversation.delete.confirm.title': 'Chat löschen?',\n 'conversation.delete.confirm.message':\n 'Dieser Chat wird hier nicht mehr angezeigt. Dadurch werden auch zugehörige Aktivitäten wie Prompts, Antworten und Feedback aus Ihrer Lightspeed-Aktivität gelöscht.',\n 'conversation.delete.confirm.action': 'Löschen',\n 'conversation.rename.confirm.title': 'Chat umbenennen?',\n 'conversation.rename.confirm.action': 'Umbenennen',\n 'conversation.rename.placeholder': 'Chatname',\n 'permission.required.title': 'Fehlende Berechtigungen',\n 'permission.required.description':\n 'Um <subject/> anzuzeigen, wenden Sie sich an Ihren Administrator, um die Berechtigung <permissions/> zu erhalten.',\n 'permission.subject.plugin': 'das Lightspeed-Plugin',\n 'permission.subject.notebooks': 'die Lightspeed-Notizbücher',\n 'permission.notebooks.goBack': 'Zurück',\n 'disclaimer.withValidation':\n 'Diese Funktion nutzt KI-Technologie. Geben Sie bei Ihrer Eingabe keine persönlichen oder sonstigen sensiblen Informationen an. Interaktionen können dazu genutzt werden, die Produkte oder Dienstleistungen von Red Hat zu verbessern.',\n 'disclaimer.withoutValidation':\n 'Diese Funktion nutzt KI-Technologie. Geben Sie bei Ihrer Eingabe keine persönlichen oder sonstigen sensiblen Informationen an. Interaktionen können dazu genutzt werden, die Produkte oder Dienstleistungen von Red Hat zu verbessern.',\n 'footer.accuracy.label':\n 'KI-generierte Inhalte sollten vor der Verwendung stets überprüft werden.',\n 'common.cancel': 'Abbrechen',\n 'common.close': 'Schließen',\n 'common.readMore': 'Mehr lesen',\n 'common.noSearchResults': 'Keine Ergebnisse, die der Suche entsprechen',\n 'menu.newConversation': 'Neuer Chat',\n 'chatbox.header.title': 'Developer Lightspeed',\n 'chatbox.search.placeholder': 'Suchen',\n 'chatbox.provider.other': 'Andere',\n 'chatbox.emptyState.noPinnedChats': 'Keine angehefteten Chats',\n 'chatbox.emptyState.noRecentChats': 'Keine letzten Chats',\n 'chatbox.emptyState.noResults.title': 'Keine Ergebnisse gefunden',\n 'chatbox.emptyState.noResults.body':\n 'Passen Sie Ihre Suchanfrage an, und versuchen Sie es erneut. Überprüfen Sie Ihre Rechtschreibung, oder versuchen Sie es mit einem allgemeineren Begriff.',\n 'chatbox.welcome.greeting': 'Hallo {{userName}}',\n 'chatbox.welcome.description': 'Wie kann ich Ihnen heute helfen?',\n 'chatbox.message.placeholder':\n 'Senden Sie eine Nachricht, und laden Sie optional eine JSON-, YAML- oder TXT-Datei hoch ...',\n 'chatbox.fileUpload.failed': 'Datei-Upload fehlgeschlagen',\n 'chatbox.fileUpload.infoText':\n 'Unterstützte Dateitypen: .txt, .yaml und .json. Die maximale Dateigröße beträgt 25 MB.',\n 'aria.chatbotSelector': 'Chatbot-Auswahl',\n 'aria.important': 'Wichtig',\n 'aria.chatHistoryMenu': 'Chatverlauf-Menü',\n 'aria.closeDrawerPanel': 'Drawer-Fenster schließen',\n 'aria.search.placeholder': 'Suchen',\n 'aria.searchPreviousConversations': 'Vorherige Unterhaltungen durchsuchen',\n 'aria.resize': 'Größe ändern',\n 'aria.options.label': 'Optionen',\n 'aria.scroll.down': 'Zurück zum Ende',\n 'aria.scroll.up': 'Zurück zum Anfang',\n 'aria.settings.label': 'Chatbot-Optionen',\n 'aria.close': 'Chatbot schließen',\n 'modal.edit': 'Bearbeiten',\n 'modal.save': 'Speichern',\n 'modal.close': 'Schließen',\n 'modal.cancel': 'Abbrechen',\n 'conversation.delete': 'Löschen',\n 'conversation.rename': 'Umbenennen',\n 'conversation.addToPinnedChats': 'Anheften',\n 'conversation.removeFromPinnedChats': 'Lösen',\n 'conversation.announcement.userMessage':\n 'Nachricht vom Benutzer: {{prompt}}. Nachricht vom Bot wird geladen.',\n 'user.guest': 'Gast',\n 'conversation.announcement.responseStopped': 'Antwort angehalten.',\n 'user.loading': '...',\n 'tooltip.attach': 'Anhängen',\n 'tooltip.send': 'Senden',\n 'tooltip.microphone.active': 'Überwachen beenden',\n 'tooltip.microphone.inactive': 'Mikrofon verwenden',\n 'button.newChat': 'Neuer Chat',\n 'tooltip.chatHistoryMenu': 'Chatverlauf-Menü',\n 'tooltip.responseRecorded': 'Antwort aufgezeichnet',\n 'tooltip.backToTop': 'Zurück zum Anfang',\n 'tooltip.backToBottom': 'Zurück zum Ende',\n 'tooltip.settings': 'Chatbot-Optionen',\n 'tooltip.close': 'Schließen',\n 'modal.title.preview': 'Anhang in der Vorschau anzeigen',\n 'modal.title.edit': 'Anhang bearbeiten',\n 'icon.lightspeed.alt': 'Lightspeed-Symbol',\n 'icon.permissionRequired.alt': \"Symbol für 'Berechtigung erforderlich'\",\n 'message.options.label': 'Optionen',\n 'file.upload.error.alreadyExists': 'Datei existiert bereits.',\n 'file.upload.error.multipleFiles':\n 'Es wurden mehr als eine Datei hochgeladen.',\n 'file.upload.error.unsupportedType':\n 'Nicht unterstützter Dateityp. Unterstützte Typen: .txt, .yaml und .json.',\n 'file.upload.error.fileTooLarge':\n 'Ihre Dateigröße ist zu groß. Bitte stellen Sie sicher, dass Ihre Datei kleiner als 25 MB ist.',\n 'file.upload.error.readFailed':\n 'Datei konnte nicht gelesen werden: {{errorMessage}}',\n 'error.context.fileAttachment':\n 'useFileAttachmentContext muss innerhalb eines FileAttachmentContextProvider liegen',\n 'feedback.form.title': 'Warum haben Sie diese Bewertung gewählt?',\n 'feedback.form.textAreaPlaceholder':\n 'Geben Sie optional zusätzliches Feedback an',\n 'feedback.form.submitWord': 'Absenden',\n 'feedback.tooltips.goodResponse': 'Gute Antwort',\n 'feedback.tooltips.badResponse': 'Schlechte Antwort',\n 'feedback.tooltips.copied': 'Kopiert',\n 'feedback.tooltips.copy': 'Kopieren',\n 'feedback.tooltips.listening': 'Überwachung',\n 'feedback.tooltips.listen': 'Überwachen',\n 'feedback.quickResponses.positive.helpful': 'Hilfreiche Informationen',\n 'feedback.quickResponses.positive.easyToUnderstand': 'Leicht verständlich',\n 'feedback.quickResponses.positive.resolvedIssue':\n 'Mein Problem wurde gelöst',\n 'feedback.quickResponses.negative.didntAnswer':\n 'Meine Frage wurde nicht beantwortet',\n 'feedback.quickResponses.negative.hardToUnderstand': 'Schwer zu verstehen',\n 'feedback.quickResponses.negative.notHelpful': 'Nicht hilfreich',\n 'feedback.completion.title': 'Feedback übermittelt',\n 'feedback.completion.body':\n 'Wir haben Ihre Antwort erhalten. Vielen Dank für Ihr Feedback!',\n 'conversation.category.pinnedChats': 'Angeheftet',\n 'conversation.category.recent': 'Neueste',\n 'settings.pinned.enable': 'Angeheftete Chats aktivieren',\n 'settings.pinned.disable': 'Angeheftete Chats deaktivieren',\n 'settings.pinned.enabled.description':\n 'Angeheftete Chats sind derzeit aktiviert',\n 'settings.pinned.disabled.description':\n 'Angeheftete Chats sind derzeit deaktiviert.',\n 'settings.mcp.label': 'MCP-Einstellungen',\n 'mcp.settings.title': 'MCP-Server',\n 'mcp.settings.selectedCount':\n '{{selectedCount}} von {{totalCount}} ausgewählt',\n 'mcp.settings.closeAriaLabel': 'MCP-Einstellungen schließen',\n 'mcp.settings.readOnlyAccess':\n 'Sie haben schreibgeschützten Zugriff auf MCP-Server.',\n 'mcp.settings.tableAriaLabel': 'MCP-Server-Tabelle',\n 'mcp.settings.enabled': 'Aktiviert',\n 'mcp.settings.name': 'Name',\n 'mcp.settings.status': 'Status',\n 'mcp.settings.edit': 'Bearbeiten',\n 'mcp.settings.loading': 'MCP-Server werden geladen...',\n 'mcp.settings.noneAvailable': 'Keine MCP-Server verfügbar.',\n 'mcp.settings.status.disabled': 'Deaktiviert',\n 'mcp.settings.status.tokenRequired': 'Token erforderlich',\n 'mcp.settings.status.failed': 'Fehlgeschlagen',\n 'mcp.settings.status.oneTool': '{{count}} Tool',\n 'mcp.settings.status.manyTools': '{{count}} Tools',\n 'mcp.settings.status.unknown': 'Unbekannt',\n 'mcp.settings.toggleServerAriaLabel': '{{serverName}} umschalten',\n 'mcp.settings.editServerAriaLabel': '{{serverName}} bearbeiten',\n 'mcp.settings.configureServerTitle': 'Server {{serverName}} konfigurieren',\n 'mcp.settings.closeConfigureModalAriaLabel':\n 'Konfigurationsdialog schließen',\n 'mcp.settings.modalDescription':\n 'Anmeldedaten werden verschlüsselt gespeichert und sind auf Ihr Profil beschränkt. Lightspeed arbeitet mit genau Ihren Berechtigungen.',\n 'mcp.settings.savedToken': 'Gespeicherter Token',\n 'mcp.settings.personalAccessToken': 'Persönlicher Zugriffstoken',\n 'mcp.settings.usingAdminCredential':\n 'Administratoranmeldedaten werden verwendet. Geben Sie einen persönlichen Token ein, um ihn für Ihr Konto zu überschreiben.',\n 'mcp.settings.enterToken': 'Geben Sie Ihren Token ein',\n 'mcp.settings.removePersonalToken': 'Persönlichen Token entfernen',\n 'mcp.settings.token.clearAriaLabel': 'Tokeneingabe löschen',\n 'mcp.settings.token.validating': 'Token wird validiert...',\n 'mcp.settings.token.savingAndValidating':\n 'Token wird gespeichert und validiert...',\n 'mcp.settings.token.urlUnavailableForValidation':\n 'Token kann nicht validiert werden, da die Server-URL nicht verfügbar ist.',\n 'mcp.settings.token.invalidCredentials':\n 'Ungültige Anmeldedaten. Überprüfen Sie Server-URL und Token.',\n 'mcp.settings.token.validationFailed':\n 'Validierung fehlgeschlagen. Überprüfen Sie Server-URL und Token.',\n 'mcp.settings.token.connectionSuccessful': 'Verbindung erfolgreich',\n 'toolCall.header': 'Antwort des Tools: {{toolName}}',\n 'toolCall.thinking': 'Hat {{seconds}} Sekunden nachgedacht',\n 'toolCall.executionTime': 'Ausführungszeit: ',\n 'toolCall.parameters': 'Parameter',\n 'toolCall.response': 'Antwort',\n 'toolCall.showMore': 'Mehr anzeigen',\n 'toolCall.showLess': 'Weniger anzeigen',\n 'toolCall.loading': 'Tool wird ausgeführt...',\n 'toolCall.executing': 'Tool wird ausgeführt...',\n 'toolCall.copyResponse': 'Antwort kopieren',\n 'toolCall.summary': 'Hier ist eine Zusammenfassung Ihrer Antwort.',\n 'toolCall.mcpServer': 'MCP-Server',\n 'settings.displayMode.label': 'Anzeigemodus',\n 'settings.displayMode.overlay': 'Overlay',\n 'settings.displayMode.docked': 'An Fenster andocken',\n 'settings.displayMode.fullscreen': 'Vollbild',\n 'sort.label': 'Unterhaltungen sortieren',\n 'sort.newest': 'Datum (neuestes zuerst)',\n 'sort.oldest': 'Datum (ältestes zuerst)',\n 'sort.alphabeticalAsc': 'Name (A-Z)',\n 'sort.alphabeticalDesc': 'Name (Z-A)',\n 'reasoning.thinking': 'Denkvorgang anzeigen',\n },\n});\n\nexport default lightspeedTranslationDe;\n"],"names":[],"mappings":"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"}
|