@red-hat-developer-hub/backstage-plugin-intelligent-assistant 5.0.1 → 5.0.2

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.
Files changed (93) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/alpha.d.ts +1 -2
  3. package/dist/components/Attachment.esm.js +10 -12
  4. package/dist/components/Attachment.esm.js.map +1 -1
  5. package/dist/components/CollapsedHistoryStrip.esm.js +46 -51
  6. package/dist/components/CollapsedHistoryStrip.esm.js.map +1 -1
  7. package/dist/components/FilePreview.esm.js +3 -2
  8. package/dist/components/FilePreview.esm.js.map +1 -1
  9. package/dist/components/LightSpeedChat.esm.js +580 -745
  10. package/dist/components/LightSpeedChat.esm.js.map +1 -1
  11. package/dist/components/LightspeedChatBox.esm.js +2 -3
  12. package/dist/components/LightspeedChatBox.esm.js.map +1 -1
  13. package/dist/components/LightspeedChatBoxHeader.esm.js +38 -34
  14. package/dist/components/LightspeedChatBoxHeader.esm.js.map +1 -1
  15. package/dist/components/LightspeedChatContainer.esm.js +6 -8
  16. package/dist/components/LightspeedChatContainer.esm.js.map +1 -1
  17. package/dist/components/LightspeedChatModelsState.esm.js +67 -73
  18. package/dist/components/LightspeedChatModelsState.esm.js.map +1 -1
  19. package/dist/components/LightspeedDrawerContext.esm.js.map +1 -1
  20. package/dist/components/LightspeedDrawerProvider.esm.js +13 -16
  21. package/dist/components/LightspeedDrawerProvider.esm.js.map +1 -1
  22. package/dist/components/LightspeedFABContent.esm.js +40 -9
  23. package/dist/components/LightspeedFABContent.esm.js.map +1 -1
  24. package/dist/components/LightspeedPage.esm.js +1 -10
  25. package/dist/components/LightspeedPage.esm.js.map +1 -1
  26. package/dist/components/McpConfigureServerModal.esm.js +79 -86
  27. package/dist/components/McpConfigureServerModal.esm.js.map +1 -1
  28. package/dist/components/McpServersSettings.esm.js +246 -212
  29. package/dist/components/McpServersSettings.esm.js.map +1 -1
  30. package/dist/components/MessageBarModelSelector.esm.js +29 -33
  31. package/dist/components/MessageBarModelSelector.esm.js.map +1 -1
  32. package/dist/components/PermissionRequiredState.esm.js +63 -63
  33. package/dist/components/PermissionRequiredState.esm.js.map +1 -1
  34. package/dist/components/RenameConversationModal.esm.js +38 -31
  35. package/dist/components/RenameConversationModal.esm.js.map +1 -1
  36. package/dist/components/Router.esm.js +4 -13
  37. package/dist/components/Router.esm.js.map +1 -1
  38. package/dist/components/ToastAlertGroup.esm.js +24 -40
  39. package/dist/components/ToastAlertGroup.esm.js.map +1 -1
  40. package/dist/components/ToolCallContent.esm.js +8 -11
  41. package/dist/components/ToolCallContent.esm.js.map +1 -1
  42. package/dist/components/notebooks/AddDocumentModal.esm.js +232 -252
  43. package/dist/components/notebooks/AddDocumentModal.esm.js.map +1 -1
  44. package/dist/components/notebooks/DeleteDocumentModal.esm.js +35 -77
  45. package/dist/components/notebooks/DeleteDocumentModal.esm.js.map +1 -1
  46. package/dist/components/notebooks/DeleteNotebookModal.esm.js +46 -81
  47. package/dist/components/notebooks/DeleteNotebookModal.esm.js.map +1 -1
  48. package/dist/components/notebooks/DocumentSidebar.esm.js +172 -196
  49. package/dist/components/notebooks/DocumentSidebar.esm.js.map +1 -1
  50. package/dist/components/notebooks/FileListItem.esm.js +69 -57
  51. package/dist/components/notebooks/FileListItem.esm.js.map +1 -1
  52. package/dist/components/notebooks/FileTypeIcon.esm.js +17 -27
  53. package/dist/components/notebooks/FileTypeIcon.esm.js.map +1 -1
  54. package/dist/components/notebooks/NotebookCard.esm.js +86 -25
  55. package/dist/components/notebooks/NotebookCard.esm.js.map +1 -1
  56. package/dist/components/notebooks/NotebookView.esm.js +367 -380
  57. package/dist/components/notebooks/NotebookView.esm.js.map +1 -1
  58. package/dist/components/notebooks/NotebooksTab.esm.js +93 -30
  59. package/dist/components/notebooks/NotebooksTab.esm.js.map +1 -1
  60. package/dist/components/notebooks/OverwriteConfirmModal.esm.js +142 -184
  61. package/dist/components/notebooks/OverwriteConfirmModal.esm.js.map +1 -1
  62. package/dist/components/notebooks/UploadResourceScreen.esm.js +58 -50
  63. package/dist/components/notebooks/UploadResourceScreen.esm.js.map +1 -1
  64. package/dist/components/notebooks/notebookDialogStyles.esm.js +33 -37
  65. package/dist/components/notebooks/notebookDialogStyles.esm.js.map +1 -1
  66. package/dist/const.esm.js +15 -2
  67. package/dist/const.esm.js.map +1 -1
  68. package/dist/hooks/useAutoScroll.esm.js +11 -11
  69. package/dist/hooks/useAutoScroll.esm.js.map +1 -1
  70. package/dist/hooks/useBufferedMessages.esm.js +5 -5
  71. package/dist/hooks/useBufferedMessages.esm.js.map +1 -1
  72. package/dist/hooks/useIsMobile.esm.js +3 -3
  73. package/dist/hooks/useIsMobile.esm.js.map +1 -1
  74. package/dist/translations/de.esm.js +1 -2
  75. package/dist/translations/de.esm.js.map +1 -1
  76. package/dist/translations/es.esm.js +1 -2
  77. package/dist/translations/es.esm.js.map +1 -1
  78. package/dist/translations/fr.esm.js +1 -2
  79. package/dist/translations/fr.esm.js.map +1 -1
  80. package/dist/translations/it.esm.js +1 -2
  81. package/dist/translations/it.esm.js.map +1 -1
  82. package/dist/translations/ja.esm.js +1 -2
  83. package/dist/translations/ja.esm.js.map +1 -1
  84. package/dist/translations/ref.esm.js +1 -2
  85. package/dist/translations/ref.esm.js.map +1 -1
  86. package/dist/types.esm.js.map +1 -1
  87. package/dist/utils/fab-anchor-utils.esm.js +41 -0
  88. package/dist/utils/fab-anchor-utils.esm.js.map +1 -0
  89. package/dist/utils/scoped-dialog-utils.esm.js +6 -3
  90. package/dist/utils/scoped-dialog-utils.esm.js.map +1 -1
  91. package/package.json +4 -8
  92. package/dist/utils/generateClassName.esm.js +0 -12
  93. package/dist/utils/generateClassName.esm.js.map +0 -1
@@ -1,40 +1,36 @@
1
- const notebookDialogStyles = (theme) => ({
2
- dialogPaper: {
3
- borderRadius: 24,
4
- maxWidth: 578
5
- },
6
- dialogPaperCompact: {
7
- borderRadius: 12,
8
- maxWidth: "300px"
9
- },
10
- dialogTitle: {
11
- display: "flex",
12
- alignItems: "center",
13
- justifyContent: "space-between",
14
- padding: "24px 24px 16px"
15
- },
16
- dialogTitleCompact: {
17
- display: "flex",
18
- alignItems: "center",
19
- justifyContent: "space-between",
20
- padding: "16px 16px 12px !important"
21
- },
22
- titleText: {
23
- fontWeight: 500,
24
- fontSize: "1.25rem",
25
- lineHeight: "1.625rem",
26
- letterSpacing: "-0.25px"
27
- },
28
- closeButton: {
29
- color: theme.palette.text.primary
30
- },
31
- dialogContent: {
32
- padding: "0 24px 24px"
33
- },
34
- dialogContentCompact: {
35
- padding: "0 16px 16px !important"
36
- }
1
+ const notebookDialogPaperSx = (isCompact) => ({
2
+ borderRadius: isCompact ? "12px" : "24px",
3
+ maxWidth: isCompact ? 300 : 578
4
+ });
5
+ const notebookDialogTitleSx = (isCompact) => ({
6
+ display: "flex",
7
+ alignItems: "center",
8
+ justifyContent: "space-between",
9
+ p: isCompact ? "16px 16px 12px !important" : "24px 24px 16px"
10
+ });
11
+ const notebookDialogTitleTextSx = (isCompact) => ({
12
+ fontWeight: isCompact ? 600 : 500,
13
+ fontSize: isCompact ? "1.125rem" : "1.25rem",
14
+ lineHeight: isCompact ? "1.5rem" : "1.625rem",
15
+ letterSpacing: "-0.25px"
37
16
  });
17
+ const notebookDialogCloseButtonSx = {
18
+ color: "text.primary"
19
+ };
20
+ const notebookDialogContentSx = (isCompact) => ({
21
+ p: isCompact ? "0 16px 16px !important" : "0 24px 24px"
22
+ });
23
+ const notebookDialogActionsSx = (isCompact) => ({
24
+ justifyContent: "flex-start",
25
+ p: isCompact ? "12px 16px !important" : "16px 24px",
26
+ gap: 1
27
+ });
28
+ const optionalStyle = (sx) => {
29
+ if (!sx || typeof sx === "function" || Array.isArray(sx)) {
30
+ return false;
31
+ }
32
+ return sx;
33
+ };
38
34
 
39
- export { notebookDialogStyles };
35
+ export { notebookDialogActionsSx, notebookDialogCloseButtonSx, notebookDialogContentSx, notebookDialogPaperSx, notebookDialogTitleSx, notebookDialogTitleTextSx, optionalStyle };
40
36
  //# sourceMappingURL=notebookDialogStyles.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"notebookDialogStyles.esm.js","sources":["../../../src/components/notebooks/notebookDialogStyles.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 type { Theme } from '@material-ui/core/styles';\n\nexport const notebookDialogStyles = (theme: Theme) =>\n ({\n dialogPaper: {\n borderRadius: 24,\n maxWidth: 578,\n },\n dialogPaperCompact: {\n borderRadius: 12,\n maxWidth: '300px',\n },\n dialogTitle: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '24px 24px 16px',\n },\n dialogTitleCompact: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '16px 16px 12px !important',\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.text.primary,\n },\n dialogContent: {\n padding: '0 24px 24px',\n },\n dialogContentCompact: {\n padding: '0 16px 16px !important',\n },\n }) as const;\n"],"names":[],"mappings":"AAkBO,MAAM,oBAAA,GAAuB,CAAC,KAAA,MAClC;AAAA,EACC,WAAA,EAAa;AAAA,IACX,YAAA,EAAc,EAAA;AAAA,IACd,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,kBAAA,EAAoB;AAAA,IAClB,YAAA,EAAc,EAAA;AAAA,IACd,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,WAAA,EAAa;AAAA,IACX,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,eAAA;AAAA,IAChB,OAAA,EAAS;AAAA,GACX;AAAA,EACA,kBAAA,EAAoB;AAAA,IAClB,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,eAAA;AAAA,IAChB,OAAA,EAAS;AAAA,GACX;AAAA,EACA,SAAA,EAAW;AAAA,IACT,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,SAAA;AAAA,IACV,UAAA,EAAY,UAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,WAAA,EAAa;AAAA,IACX,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK;AAAA,GAC5B;AAAA,EACA,aAAA,EAAe;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,oBAAA,EAAsB;AAAA,IACpB,OAAA,EAAS;AAAA;AAEb,CAAA;;;;"}
1
+ {"version":3,"file":"notebookDialogStyles.esm.js","sources":["../../../src/components/notebooks/notebookDialogStyles.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 type { SxProps, Theme } from '@mui/material/styles';\n\ntype StaticDialogSx = Exclude<\n SxProps<Theme>,\n readonly unknown[] | ((theme: Theme) => unknown)\n>;\n\nexport const notebookDialogPaperSx = (isCompact: boolean): StaticDialogSx => ({\n borderRadius: isCompact ? '12px' : '24px',\n maxWidth: isCompact ? 300 : 578,\n});\n\nexport const notebookDialogTitleSx = (isCompact: boolean): StaticDialogSx => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n p: isCompact ? '16px 16px 12px !important' : '24px 24px 16px',\n});\n\nexport const notebookDialogTitleTextSx = (\n isCompact: boolean,\n): StaticDialogSx => ({\n fontWeight: isCompact ? 600 : 500,\n fontSize: isCompact ? '1.125rem' : '1.25rem',\n lineHeight: isCompact ? '1.5rem' : '1.625rem',\n letterSpacing: '-0.25px',\n});\n\nexport const notebookDialogCloseButtonSx = {\n color: 'text.primary',\n} as const;\n\nexport const notebookDialogContentSx = (\n isCompact: boolean,\n): StaticDialogSx => ({\n p: isCompact ? '0 16px 16px !important' : '0 24px 24px',\n});\n\nexport const notebookDialogActionsSx = (\n isCompact: boolean,\n): StaticDialogSx => ({\n justifyContent: 'flex-start',\n p: isCompact ? '12px 16px !important' : '16px 24px',\n gap: 1,\n});\n\n/** Narrow Dialog Paper `sx` so it can sit in an `sx={[...]}` array. */\nexport const optionalStyle = (\n sx: SxProps<Theme> | undefined,\n): StaticDialogSx | false => {\n if (!sx || typeof sx === 'function' || Array.isArray(sx)) {\n return false;\n }\n return sx as StaticDialogSx;\n};\n"],"names":[],"mappings":"AAuBO,MAAM,qBAAA,GAAwB,CAAC,SAAA,MAAwC;AAAA,EAC5E,YAAA,EAAc,YAAY,MAAA,GAAS,MAAA;AAAA,EACnC,QAAA,EAAU,YAAY,GAAA,GAAM;AAC9B,CAAA;AAEO,MAAM,qBAAA,GAAwB,CAAC,SAAA,MAAwC;AAAA,EAC5E,OAAA,EAAS,MAAA;AAAA,EACT,UAAA,EAAY,QAAA;AAAA,EACZ,cAAA,EAAgB,eAAA;AAAA,EAChB,CAAA,EAAG,YAAY,2BAAA,GAA8B;AAC/C,CAAA;AAEO,MAAM,yBAAA,GAA4B,CACvC,SAAA,MACoB;AAAA,EACpB,UAAA,EAAY,YAAY,GAAA,GAAM,GAAA;AAAA,EAC9B,QAAA,EAAU,YAAY,UAAA,GAAa,SAAA;AAAA,EACnC,UAAA,EAAY,YAAY,QAAA,GAAW,UAAA;AAAA,EACnC,aAAA,EAAe;AACjB,CAAA;AAEO,MAAM,2BAAA,GAA8B;AAAA,EACzC,KAAA,EAAO;AACT;AAEO,MAAM,uBAAA,GAA0B,CACrC,SAAA,MACoB;AAAA,EACpB,CAAA,EAAG,YAAY,wBAAA,GAA2B;AAC5C,CAAA;AAEO,MAAM,uBAAA,GAA0B,CACrC,SAAA,MACoB;AAAA,EACpB,cAAA,EAAgB,YAAA;AAAA,EAChB,CAAA,EAAG,YAAY,sBAAA,GAAyB,WAAA;AAAA,EACxC,GAAA,EAAK;AACP,CAAA;AAGO,MAAM,aAAA,GAAgB,CAC3B,EAAA,KAC2B;AAC3B,EAAA,IAAI,CAAC,MAAM,OAAO,EAAA,KAAO,cAAc,KAAA,CAAM,OAAA,CAAQ,EAAE,CAAA,EAAG;AACxD,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,OAAO,EAAA;AACT;;;;"}
package/dist/const.esm.js CHANGED
@@ -67,9 +67,22 @@ const NOTEBOOK_PROMPT_KEYS = [
67
67
  const VALID_TOPIC_RESTRICTION_PROVIDER_IDS = [
68
68
  "lightspeed_question_validity-shield"
69
69
  ];
70
- const DOCKED_CONTENT_OFFSET = "calc(var(--docked-drawer-width, 500px) + 1.5em)";
70
+ const LIGHTSPEED_FAB_ELEMENT_ID = "lightspeed-fab";
71
+ const LIGHTSPEED_OVERLAY_CHATBOT_MODAL_CLASS = "ia-overlay-chatbot-modal";
72
+ const LIGHTSPEED_FAB_ANCHOR_VARS = {
73
+ insetBlockEnd: "--ia-fab-inset-block-end",
74
+ insetInlineEnd: "--ia-fab-inset-inline-end",
75
+ height: "--ia-fab-height",
76
+ overlayGap: "--ia-overlay-gap",
77
+ dockedDrawerGutter: "--ia-docked-drawer-gutter"
78
+ };
79
+ const zero = "0px";
80
+ const DOCKED_CONTENT_OFFSET = `calc(var(--docked-drawer-width, ${zero}) + var(${LIGHTSPEED_FAB_ANCHOR_VARS.dockedDrawerGutter}, ${zero}))`;
81
+ const LIGHTSPEED_OVERLAY_BOTTOM = `calc(var(${LIGHTSPEED_FAB_ANCHOR_VARS.insetBlockEnd}, ${zero}) + var(${LIGHTSPEED_FAB_ANCHOR_VARS.height}, ${zero}) + var(${LIGHTSPEED_FAB_ANCHOR_VARS.overlayGap}, ${zero}))`;
82
+ const LIGHTSPEED_OVERLAY_RIGHT = `var(${LIGHTSPEED_FAB_ANCHOR_VARS.insetInlineEnd}, ${zero})`;
83
+ const LIGHTSPEED_OVERLAY_MAX_WIDTH = `min(30rem, calc(100vw - 2 * var(${LIGHTSPEED_FAB_ANCHOR_VARS.overlayGap}, ${zero})))`;
71
84
  const LIGHTSPEED_PATH = "/intelligent-assistant";
72
85
  const LIGHTSPEED_LEGACY_PATH = "/lightspeed";
73
86
 
74
- export { DEFAULT_SAMPLE_PROMPTS, DOCKED_CONTENT_OFFSET, LIGHTSPEED_APP_DRAWER_ID, LIGHTSPEED_LEGACY_PATH, LIGHTSPEED_PATH, NOTEBOOK_ALLOWED_EXTENSIONS, NOTEBOOK_EXTENSION_TO_FILE_TYPE, NOTEBOOK_MAX_FILES, NOTEBOOK_MAX_FILE_SIZE_BYTES, NOTEBOOK_MAX_TITLE_LENGTH, NOTEBOOK_PROMPT_KEYS, RHDH_SAMPLE_PROMPTS, TEMP_CONVERSATION_ID, UNTITLED_NOTEBOOK_NAME, VALID_TOPIC_RESTRICTION_PROVIDER_IDS, supportedFileTypes };
87
+ export { DEFAULT_SAMPLE_PROMPTS, DOCKED_CONTENT_OFFSET, LIGHTSPEED_APP_DRAWER_ID, LIGHTSPEED_FAB_ANCHOR_VARS, LIGHTSPEED_FAB_ELEMENT_ID, LIGHTSPEED_LEGACY_PATH, LIGHTSPEED_OVERLAY_BOTTOM, LIGHTSPEED_OVERLAY_CHATBOT_MODAL_CLASS, LIGHTSPEED_OVERLAY_MAX_WIDTH, LIGHTSPEED_OVERLAY_RIGHT, LIGHTSPEED_PATH, NOTEBOOK_ALLOWED_EXTENSIONS, NOTEBOOK_EXTENSION_TO_FILE_TYPE, NOTEBOOK_MAX_FILES, NOTEBOOK_MAX_FILE_SIZE_BYTES, NOTEBOOK_MAX_TITLE_LENGTH, NOTEBOOK_PROMPT_KEYS, RHDH_SAMPLE_PROMPTS, TEMP_CONVERSATION_ID, UNTITLED_NOTEBOOK_NAME, VALID_TOPIC_RESTRICTION_PROVIDER_IDS, supportedFileTypes };
75
88
  //# sourceMappingURL=const.esm.js.map
@@ -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 = 'intelligent-assistant';\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 NOTEBOOK_MAX_TITLE_LENGTH = 255;\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};\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};\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\nexport const NOTEBOOK_PROMPT_KEYS: string[] = [\n 'notebooks.prompts.coreConcepts.title',\n 'notebooks.prompts.vulnerabilities.title',\n 'notebooks.prompts.accessIssue.title',\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\nexport const LIGHTSPEED_PATH = '/intelligent-assistant';\nexport const LIGHTSPEED_LEGACY_PATH = '/lightspeed';\n"],"names":[],"mappings":"AAkBO,MAAM,oBAAA,GAAuB;AAE7B,MAAM,wBAAA,GAA2B;AAOxC,MAAM,YAAA,GAAe,CAAC,QAAA,EAAkB,UAAA,KAAuB;AAC7D,EAAA,OAAO,EAAE,UAAU,UAAA,EAAW;AAChC,CAAA;AAEO,MAAM,kBAAA,GAAqB;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,kBAAA,GAAqB;AAC3B,MAAM,4BAAA,GAA+B,KAAK,IAAA,GAAO;AACjD,MAAM,yBAAA,GAA4B;AAClC,MAAM,sBAAA,GAAyB;AAE/B,MAAM,2BAAA,GAAwD;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;AACxC;AAEO,MAAM,+BAAA,GAA0D;AAAA,EACrE,MAAA,EAAQ,KAAA;AAAA,EACR,KAAA,EAAO,IAAA;AAAA,EACP,MAAA,EAAQ,KAAA;AAAA,EACR,OAAA,EAAS,MAAA;AAAA,EACT,OAAA,EAAS,MAAA;AAAA,EACT,MAAA,EAAQ,MAAA;AAAA,EACR,MAAA,EAAQ;AACV;AAEO,MAAM,sBAAA,GAAwC;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,mBAAA,GAAqC;AAAA,EAChD,YAAA,CAAa,wBAAwB,wBAAwB,CAAA;AAAA,EAC7D,YAAA,CAAa,2BAA2B,2BAA2B,CAAA;AAAA,EACnE,YAAA,CAAa,sBAAsB,sBAAsB;AAC3D;AAEO,MAAM,oBAAA,GAAiC;AAAA,EAC5C,sCAAA;AAAA,EACA,yCAAA;AAAA,EACA;AACF;AAGO,MAAM,oCAAA,GAAuC;AAAA,EAClD;AACF;AAGO,MAAM,qBAAA,GACX;AAEK,MAAM,eAAA,GAAkB;AACxB,MAAM,sBAAA,GAAyB;;;;"}
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 = 'intelligent-assistant';\n\n// Translation keys for disclaimers\nexport const FUNCTION_DISCLAIMER_WITHOUT_QUESTION_VALIDATION_KEY =\n 'disclaimer.withoutValidation';\nexport const FUNCTION_DISCLAIMER_KEY = 'disclaimer';\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 NOTEBOOK_MAX_TITLE_LENGTH = 255;\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};\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};\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\nexport const NOTEBOOK_PROMPT_KEYS: string[] = [\n 'notebooks.prompts.coreConcepts.title',\n 'notebooks.prompts.vulnerabilities.title',\n 'notebooks.prompts.accessIssue.title',\n];\n\n// Topic restriction valid provider IDs\nexport const VALID_TOPIC_RESTRICTION_PROVIDER_IDS = [\n 'lightspeed_question_validity-shield',\n];\n\nexport const LIGHTSPEED_FAB_ELEMENT_ID = 'lightspeed-fab';\nexport const LIGHTSPEED_OVERLAY_CHATBOT_MODAL_CLASS =\n 'ia-overlay-chatbot-modal';\n\n/** CSS variables published by LightspeedFABContent single source for overlay layout. */\nexport const LIGHTSPEED_FAB_ANCHOR_VARS = {\n insetBlockEnd: '--ia-fab-inset-block-end',\n insetInlineEnd: '--ia-fab-inset-inline-end',\n height: '--ia-fab-height',\n overlayGap: '--ia-overlay-gap',\n dockedDrawerGutter: '--ia-docked-drawer-gutter',\n} as const;\n\nconst zero = '0px';\n\n/** Shift FAB/overlay left when the app drawer is docked (drawer width + theme gutter). */\nexport const DOCKED_CONTENT_OFFSET = `calc(var(--docked-drawer-width, ${zero}) + var(${LIGHTSPEED_FAB_ANCHOR_VARS.dockedDrawerGutter}, ${zero}))`;\n\n/** Overlay bottom: measured FAB bottom inset + FAB height + theme gap. */\nexport const LIGHTSPEED_OVERLAY_BOTTOM = `calc(var(${LIGHTSPEED_FAB_ANCHOR_VARS.insetBlockEnd}, ${zero}) + var(${LIGHTSPEED_FAB_ANCHOR_VARS.height}, ${zero}) + var(${LIGHTSPEED_FAB_ANCHOR_VARS.overlayGap}, ${zero}))`;\n\n/** Overlay right: measured FAB right inset (tracks docked margin via getBoundingClientRect). */\nexport const LIGHTSPEED_OVERLAY_RIGHT = `var(${LIGHTSPEED_FAB_ANCHOR_VARS.insetInlineEnd}, ${zero})`;\n\n/** Overlay max width: PatternFly default capped by viewport minus theme gutters. */\nexport const LIGHTSPEED_OVERLAY_MAX_WIDTH = `min(30rem, calc(100vw - 2 * var(${LIGHTSPEED_FAB_ANCHOR_VARS.overlayGap}, ${zero})))`;\n\nexport const LIGHTSPEED_PATH = '/intelligent-assistant';\nexport const LIGHTSPEED_LEGACY_PATH = '/lightspeed';\n"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- import React from 'react';
1
+ import { useState, useRef, useCallback, useEffect } from 'react';
2
2
 
3
3
  const useAutoScroll = (containerRef, options = {}) => {
4
4
  const { deltaUp = 10, deltaDown = 60, delay = 200 } = options;
5
- const [autoScroll, setAutoScroll] = React.useState(true);
6
- const lastScrollTop = React.useRef(0);
7
- const manualScrollInterrupted = React.useRef(false);
8
- const debounceTimeout = React.useRef(null);
9
- const onScroll = React.useCallback(() => {
5
+ const [autoScroll, setAutoScroll] = useState(true);
6
+ const lastScrollTop = useRef(0);
7
+ const manualScrollInterrupted = useRef(false);
8
+ const debounceTimeout = useRef(null);
9
+ const onScroll = useCallback(() => {
10
10
  const container = containerRef.current;
11
11
  if (!container) return;
12
12
  const currentScrollTop = container.scrollTop;
@@ -27,7 +27,7 @@ const useAutoScroll = (containerRef, options = {}) => {
27
27
  }
28
28
  lastScrollTop.current = currentScrollTop;
29
29
  }, [containerRef, deltaUp, deltaDown, delay]);
30
- React.useEffect(() => {
30
+ useEffect(() => {
31
31
  const container = containerRef.current;
32
32
  if (!container) {
33
33
  return void 0;
@@ -38,15 +38,15 @@ const useAutoScroll = (containerRef, options = {}) => {
38
38
  if (debounceTimeout.current) clearTimeout(debounceTimeout.current);
39
39
  };
40
40
  }, [onScroll, containerRef]);
41
- const resumeAutoScroll = React.useCallback(() => {
41
+ const resumeAutoScroll = useCallback(() => {
42
42
  manualScrollInterrupted.current = false;
43
43
  setAutoScroll(true);
44
44
  }, []);
45
- const stopAutoScroll = React.useCallback(() => {
45
+ const stopAutoScroll = useCallback(() => {
46
46
  manualScrollInterrupted.current = true;
47
47
  setAutoScroll(false);
48
48
  }, []);
49
- const scrollToTop = React.useCallback(() => {
49
+ const scrollToTop = useCallback(() => {
50
50
  stopAutoScroll();
51
51
  const container = containerRef.current;
52
52
  if (!container) return;
@@ -55,7 +55,7 @@ const useAutoScroll = (containerRef, options = {}) => {
55
55
  behavior: "smooth"
56
56
  });
57
57
  }, [stopAutoScroll, containerRef]);
58
- const scrollToBottom = React.useCallback(() => {
58
+ const scrollToBottom = useCallback(() => {
59
59
  const container = containerRef.current;
60
60
  if (container) {
61
61
  container.scrollTo({
@@ -1 +1 @@
1
- {"version":3,"file":"useAutoScroll.esm.js","sources":["../../src/hooks/useAutoScroll.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 */\nimport React from 'react';\n\ninterface useAutoScrollOptions {\n deltaUp?: number;\n deltaDown?: number;\n delay?: number;\n}\n\nexport const useAutoScroll = (\n containerRef: React.RefObject<HTMLElement>,\n options: useAutoScrollOptions = {},\n) => {\n const { deltaUp = 10, deltaDown = 60, delay = 200 } = options;\n\n const [autoScroll, setAutoScroll] = React.useState(true);\n const lastScrollTop = React.useRef(0);\n const manualScrollInterrupted = React.useRef(false);\n const debounceTimeout = React.useRef<NodeJS.Timeout | null>(null);\n\n const onScroll = React.useCallback(() => {\n const container = containerRef.current;\n if (!container) return;\n\n const currentScrollTop = container.scrollTop;\n const isScrollingDown = currentScrollTop > lastScrollTop.current;\n\n const distanceFromBottom =\n container.scrollHeight - container.scrollTop - container.clientHeight;\n\n const delta = isScrollingDown ? deltaDown : deltaUp;\n const isAtBottom = distanceFromBottom <= delta;\n\n if (debounceTimeout.current) clearTimeout(debounceTimeout.current);\n\n if (isAtBottom && manualScrollInterrupted.current && isScrollingDown) {\n debounceTimeout.current = setTimeout(() => {\n manualScrollInterrupted.current = false;\n setAutoScroll(true);\n }, delay);\n }\n\n if (!isAtBottom && !manualScrollInterrupted.current) {\n manualScrollInterrupted.current = true;\n setAutoScroll(false);\n }\n\n lastScrollTop.current = currentScrollTop;\n }, [containerRef, deltaUp, deltaDown, delay]);\n\n React.useEffect(() => {\n const container = containerRef.current;\n if (!container) {\n return undefined;\n }\n\n container.addEventListener('scroll', onScroll, { passive: true });\n return () => {\n container.removeEventListener('scroll', onScroll);\n if (debounceTimeout.current) clearTimeout(debounceTimeout.current);\n };\n }, [onScroll, containerRef]);\n\n const resumeAutoScroll = React.useCallback(() => {\n manualScrollInterrupted.current = false;\n setAutoScroll(true);\n }, []);\n\n const stopAutoScroll = React.useCallback(() => {\n manualScrollInterrupted.current = true;\n setAutoScroll(false);\n }, []);\n\n const scrollToTop = React.useCallback(() => {\n stopAutoScroll();\n const container = containerRef.current;\n if (!container) return;\n\n container.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n }, [stopAutoScroll, containerRef]);\n\n const scrollToBottom = React.useCallback(() => {\n const container = containerRef.current;\n if (container) {\n container.scrollTo({\n top: container.scrollHeight,\n behavior: 'smooth',\n });\n }\n resumeAutoScroll();\n }, [resumeAutoScroll, containerRef]);\n\n return {\n autoScroll,\n resumeAutoScroll,\n stopAutoScroll,\n scrollToBottom,\n scrollToTop,\n };\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAutoScroll.esm.js","sources":["../../src/hooks/useAutoScroll.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 { RefObject, useCallback, useEffect, useRef, useState } from 'react';\n\ninterface useAutoScrollOptions {\n deltaUp?: number;\n deltaDown?: number;\n delay?: number;\n}\n\nexport const useAutoScroll = (\n containerRef: RefObject<HTMLElement>,\n options: useAutoScrollOptions = {},\n) => {\n const { deltaUp = 10, deltaDown = 60, delay = 200 } = options;\n\n const [autoScroll, setAutoScroll] = useState(true);\n const lastScrollTop = useRef(0);\n const manualScrollInterrupted = useRef(false);\n const debounceTimeout = useRef<NodeJS.Timeout | null>(null);\n\n const onScroll = useCallback(() => {\n const container = containerRef.current;\n if (!container) return;\n\n const currentScrollTop = container.scrollTop;\n const isScrollingDown = currentScrollTop > lastScrollTop.current;\n\n const distanceFromBottom =\n container.scrollHeight - container.scrollTop - container.clientHeight;\n\n const delta = isScrollingDown ? deltaDown : deltaUp;\n const isAtBottom = distanceFromBottom <= delta;\n\n if (debounceTimeout.current) clearTimeout(debounceTimeout.current);\n\n if (isAtBottom && manualScrollInterrupted.current && isScrollingDown) {\n debounceTimeout.current = setTimeout(() => {\n manualScrollInterrupted.current = false;\n setAutoScroll(true);\n }, delay);\n }\n\n if (!isAtBottom && !manualScrollInterrupted.current) {\n manualScrollInterrupted.current = true;\n setAutoScroll(false);\n }\n\n lastScrollTop.current = currentScrollTop;\n }, [containerRef, deltaUp, deltaDown, delay]);\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) {\n return undefined;\n }\n\n container.addEventListener('scroll', onScroll, { passive: true });\n return () => {\n container.removeEventListener('scroll', onScroll);\n if (debounceTimeout.current) clearTimeout(debounceTimeout.current);\n };\n }, [onScroll, containerRef]);\n\n const resumeAutoScroll = useCallback(() => {\n manualScrollInterrupted.current = false;\n setAutoScroll(true);\n }, []);\n\n const stopAutoScroll = useCallback(() => {\n manualScrollInterrupted.current = true;\n setAutoScroll(false);\n }, []);\n\n const scrollToTop = useCallback(() => {\n stopAutoScroll();\n const container = containerRef.current;\n if (!container) return;\n\n container.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n }, [stopAutoScroll, containerRef]);\n\n const scrollToBottom = useCallback(() => {\n const container = containerRef.current;\n if (container) {\n container.scrollTo({\n top: container.scrollHeight,\n behavior: 'smooth',\n });\n }\n resumeAutoScroll();\n }, [resumeAutoScroll, containerRef]);\n\n return {\n autoScroll,\n resumeAutoScroll,\n stopAutoScroll,\n scrollToBottom,\n scrollToTop,\n };\n};\n"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import React from 'react';
1
+ import { useState, useRef, useEffect } from 'react';
2
2
 
3
3
  const useBufferedMessages = (messages, interval = 30) => {
4
- const [bufferedMessages, setBufferedMessages] = React.useState(messages);
5
- const lastUpdateTime = React.useRef(0);
6
- const animationFrame = React.useRef(null);
7
- React.useEffect(() => {
4
+ const [bufferedMessages, setBufferedMessages] = useState(messages);
5
+ const lastUpdateTime = useRef(0);
6
+ const animationFrame = useRef(null);
7
+ useEffect(() => {
8
8
  const now = Date.now();
9
9
  const update = () => {
10
10
  setBufferedMessages(messages);
@@ -1 +1 @@
1
- {"version":3,"file":"useBufferedMessages.esm.js","sources":["../../src/hooks/useBufferedMessages.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 */\nimport React from 'react';\n\nexport const useBufferedMessages = <T>(messages: T[], interval = 30): T[] => {\n const [bufferedMessages, setBufferedMessages] = React.useState(messages);\n const lastUpdateTime = React.useRef(0);\n const animationFrame = React.useRef<number | null>(null);\n\n React.useEffect(() => {\n const now = Date.now();\n\n const update = () => {\n setBufferedMessages(messages);\n lastUpdateTime.current = now;\n };\n\n if (now - lastUpdateTime.current > interval) {\n update();\n } else {\n if (animationFrame.current) cancelAnimationFrame(animationFrame.current);\n animationFrame.current = requestAnimationFrame(update);\n }\n\n return () => {\n if (animationFrame.current) cancelAnimationFrame(animationFrame.current);\n };\n }, [messages, interval]);\n\n return bufferedMessages;\n};\n"],"names":[],"mappings":";;AAiBO,MAAM,mBAAA,GAAsB,CAAI,QAAA,EAAe,QAAA,GAAW,EAAA,KAAY;AAC3E,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAI,KAAA,CAAM,SAAS,QAAQ,CAAA;AACvE,EAAA,MAAM,cAAA,GAAiB,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA;AACrC,EAAA,MAAM,cAAA,GAAiB,KAAA,CAAM,MAAA,CAAsB,IAAI,CAAA;AAEvD,EAAA,KAAA,CAAM,UAAU,MAAM;AACpB,IAAA,MAAM,GAAA,GAAM,KAAK,GAAA,EAAI;AAErB,IAAA,MAAM,SAAS,MAAM;AACnB,MAAA,mBAAA,CAAoB,QAAQ,CAAA;AAC5B,MAAA,cAAA,CAAe,OAAA,GAAU,GAAA;AAAA,IAC3B,CAAA;AAEA,IAAA,IAAI,GAAA,GAAM,cAAA,CAAe,OAAA,GAAU,QAAA,EAAU;AAC3C,MAAA,MAAA,EAAO;AAAA,IACT,CAAA,MAAO;AACL,MAAA,IAAI,cAAA,CAAe,OAAA,EAAS,oBAAA,CAAqB,cAAA,CAAe,OAAO,CAAA;AACvE,MAAA,cAAA,CAAe,OAAA,GAAU,sBAAsB,MAAM,CAAA;AAAA,IACvD;AAEA,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,cAAA,CAAe,OAAA,EAAS,oBAAA,CAAqB,cAAA,CAAe,OAAO,CAAA;AAAA,IACzE,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,QAAA,EAAU,QAAQ,CAAC,CAAA;AAEvB,EAAA,OAAO,gBAAA;AACT;;;;"}
1
+ {"version":3,"file":"useBufferedMessages.esm.js","sources":["../../src/hooks/useBufferedMessages.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 { useEffect, useRef, useState } from 'react';\n\nexport const useBufferedMessages = <T>(messages: T[], interval = 30): T[] => {\n const [bufferedMessages, setBufferedMessages] = useState(messages);\n const lastUpdateTime = useRef(0);\n const animationFrame = useRef<number | null>(null);\n\n useEffect(() => {\n const now = Date.now();\n\n const update = () => {\n setBufferedMessages(messages);\n lastUpdateTime.current = now;\n };\n\n if (now - lastUpdateTime.current > interval) {\n update();\n } else {\n if (animationFrame.current) cancelAnimationFrame(animationFrame.current);\n animationFrame.current = requestAnimationFrame(update);\n }\n\n return () => {\n if (animationFrame.current) cancelAnimationFrame(animationFrame.current);\n };\n }, [messages, interval]);\n\n return bufferedMessages;\n};\n"],"names":[],"mappings":";;AAkBO,MAAM,mBAAA,GAAsB,CAAI,QAAA,EAAe,QAAA,GAAW,EAAA,KAAY;AAC3E,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAI,SAAS,QAAQ,CAAA;AACjE,EAAA,MAAM,cAAA,GAAiB,OAAO,CAAC,CAAA;AAC/B,EAAA,MAAM,cAAA,GAAiB,OAAsB,IAAI,CAAA;AAEjD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,GAAA,GAAM,KAAK,GAAA,EAAI;AAErB,IAAA,MAAM,SAAS,MAAM;AACnB,MAAA,mBAAA,CAAoB,QAAQ,CAAA;AAC5B,MAAA,cAAA,CAAe,OAAA,GAAU,GAAA;AAAA,IAC3B,CAAA;AAEA,IAAA,IAAI,GAAA,GAAM,cAAA,CAAe,OAAA,GAAU,QAAA,EAAU;AAC3C,MAAA,MAAA,EAAO;AAAA,IACT,CAAA,MAAO;AACL,MAAA,IAAI,cAAA,CAAe,OAAA,EAAS,oBAAA,CAAqB,cAAA,CAAe,OAAO,CAAA;AACvE,MAAA,cAAA,CAAe,OAAA,GAAU,sBAAsB,MAAM,CAAA;AAAA,IACvD;AAEA,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,cAAA,CAAe,OAAA,EAAS,oBAAA,CAAqB,cAAA,CAAe,OAAO,CAAA;AAAA,IACzE,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,QAAA,EAAU,QAAQ,CAAC,CAAA;AAEvB,EAAA,OAAO,gBAAA;AACT;;;;"}
@@ -1,8 +1,8 @@
1
- import React from 'react';
1
+ import { useState, useEffect } from 'react';
2
2
 
3
3
  const useIsMobile = () => {
4
- const [isMobile, setIsMobile] = React.useState(window.innerWidth <= 768);
5
- React.useEffect(() => {
4
+ const [isMobile, setIsMobile] = useState(window.innerWidth <= 768);
5
+ useEffect(() => {
6
6
  const handleResize = () => setIsMobile(window.innerWidth <= 768);
7
7
  window.addEventListener("resize", handleResize);
8
8
  return () => window.removeEventListener("resize", handleResize);
@@ -1 +1 @@
1
- {"version":3,"file":"useIsMobile.esm.js","sources":["../../src/hooks/useIsMobile.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 */\nimport React from 'react';\n\nexport const useIsMobile = () => {\n const [isMobile, setIsMobile] = React.useState(window.innerWidth <= 768);\n\n React.useEffect(() => {\n const handleResize = () => setIsMobile(window.innerWidth <= 768);\n window.addEventListener('resize', handleResize);\n\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n return isMobile;\n};\n"],"names":[],"mappings":";;AAiBO,MAAM,cAAc,MAAM;AAC/B,EAAA,MAAM,CAAC,UAAU,WAAW,CAAA,GAAI,MAAM,QAAA,CAAS,MAAA,CAAO,cAAc,GAAG,CAAA;AAEvE,EAAA,KAAA,CAAM,UAAU,MAAM;AACpB,IAAA,MAAM,YAAA,GAAe,MAAM,WAAA,CAAY,MAAA,CAAO,cAAc,GAAG,CAAA;AAC/D,IAAA,MAAA,CAAO,gBAAA,CAAiB,UAAU,YAAY,CAAA;AAE9C,IAAA,OAAO,MAAM,MAAA,CAAO,mBAAA,CAAoB,QAAA,EAAU,YAAY,CAAA;AAAA,EAChE,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,OAAO,QAAA;AACT;;;;"}
1
+ {"version":3,"file":"useIsMobile.esm.js","sources":["../../src/hooks/useIsMobile.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 { useEffect, useState } from 'react';\n\nexport const useIsMobile = () => {\n const [isMobile, setIsMobile] = useState(window.innerWidth <= 768);\n\n useEffect(() => {\n const handleResize = () => setIsMobile(window.innerWidth <= 768);\n window.addEventListener('resize', handleResize);\n\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n return isMobile;\n};\n"],"names":[],"mappings":";;AAkBO,MAAM,cAAc,MAAM;AAC/B,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,IAAI,QAAA,CAAS,MAAA,CAAO,cAAc,GAAG,CAAA;AAEjE,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,YAAA,GAAe,MAAM,WAAA,CAAY,MAAA,CAAO,cAAc,GAAG,CAAA;AAC/D,IAAA,MAAA,CAAO,gBAAA,CAAiB,UAAU,YAAY,CAAA;AAE9C,IAAA,OAAO,MAAM,MAAA,CAAO,mBAAA,CAAoB,QAAA,EAAU,YAAY,CAAA;AAAA,EAChE,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,OAAO,QAAA;AACT;;;;"}
@@ -51,8 +51,7 @@ const intelligentAssistantTranslationDe = createTranslationMessages({
51
51
  "conversation.rename.confirm.action": "Umbenennen",
52
52
  "conversation.rename.confirm.title": "Chat umbenennen?",
53
53
  "conversation.rename.placeholder": "Chatname",
54
- "disclaimer.withValidation": "Diese Funktion nutzt KI-Technologie. Geben Sie bei Ihrer Eingabe keine pers\xF6nlichen oder sonstigen sensiblen Informationen an. Interaktionen k\xF6nnen dazu genutzt werden, die Produkte oder Dienstleistungen von Red Hat zu verbessern.",
55
- "disclaimer.withoutValidation": "Diese Funktion nutzt KI-Technologie. Geben Sie bei Ihrer Eingabe keine pers\xF6nlichen oder sonstigen sensiblen Informationen an. Interaktionen k\xF6nnen dazu genutzt werden, die Produkte oder Dienstleistungen von Red Hat zu verbessern.",
54
+ disclaimer: "Diese Funktion nutzt KI-Technologie. Geben Sie bei Ihrer Eingabe keine pers\xF6nlichen oder sonstigen sensiblen Informationen an. Interaktionen k\xF6nnen dazu genutzt werden, die Produkte oder Dienstleistungen von Red Hat zu verbessern.",
56
55
  "error.context.fileAttachment": "useFileAttachmentContext muss innerhalb eines FileAttachmentContextProvider liegen",
57
56
  "feedback.completion.body": "Wir haben Ihre Antwort erhalten. Vielen Dank f\xFCr Ihr Feedback!",
58
57
  "feedback.completion.title": "Feedback \xFCbermittelt",
@@ -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 { intelligentAssistantTranslationRef } from './ref';\n\n/**\n * de translation for plugin.intelligent-assistant.\n * @public\n */\nconst intelligentAssistantTranslationDe = createTranslationMessages({\n ref: intelligentAssistantTranslationRef,\n messages: {\n 'aria.chatHistoryMenu': 'Chatverlauf-Menü',\n 'modelSelector.disabledTooltip':\n 'Jede Chatsitzung unterstützt nur ein Modell. Um das Modell zu wechseln, starten Sie einen neuen Chat.',\n 'aria.chatbotSelector': 'Chatbot-Auswahl',\n 'aria.close': 'Chatbot schließen',\n 'aria.closeDrawerPanel': 'Drawer-Fenster schließen',\n 'aria.important': 'Wichtig',\n 'aria.options.label': 'Optionen',\n 'aria.resize': 'Größe ändern',\n 'aria.scroll.down': 'Zurück zum Ende',\n 'aria.scroll.up': 'Zurück zum Anfang',\n 'aria.search.placeholder': 'Suchen',\n 'aria.searchPreviousConversations': 'Vorherige Unterhaltungen durchsuchen',\n 'attach.menu.description': 'Eine JSON-, YAML- oder TXT-Datei anhängen',\n 'attach.menu.title': 'Anhängen',\n 'button.newChat': 'Neuer Chat',\n 'chatbox.emptyState.noPinnedChats': 'Chats anheften, um sie oben zu halten',\n 'chatbox.emptyState.noRecentChats': 'Keine letzten Chats',\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.emptyState.noResults.title': 'Keine Ergebnisse gefunden',\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 'chatbox.header.title': 'Developer Hub Intelligenter Assistent',\n 'chatbox.message.placeholder':\n 'Senden Sie eine Nachricht, und laden Sie optional eine JSON-, YAML- oder TXT-Datei hoch ...',\n 'chatbox.provider.other': 'Andere',\n 'chatbox.search.placeholder': 'Suchen',\n 'chatbox.welcome.description': 'Wie kann ich Ihnen heute helfen?',\n 'chatbox.welcome.greeting': 'Hallo {{userName}}',\n 'common.cancel': 'Abbrechen',\n 'common.close': 'Schließen',\n 'common.loading': 'Wird geladen',\n 'common.noSearchResults': 'Keine Ergebnisse, die der Suche entsprechen',\n 'common.readMore': 'Mehr lesen',\n 'common.retry': 'Erneut versuchen',\n 'conversation.addToPinnedChats': 'Anheften',\n 'conversation.announcement.responseStopped': 'Antwort angehalten.',\n 'conversation.announcement.userMessage':\n 'Nachricht vom Benutzer: {{prompt}}. Nachricht vom Bot wird geladen.',\n 'conversation.category.pinnedChats': 'Angeheftete Chats',\n 'conversation.category.recent': 'Chats',\n 'conversation.delete': 'Löschen',\n 'conversation.delete.confirm.action': '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 Aktivität gelöscht.',\n 'conversation.delete.confirm.title': 'Chat \"{{chatName}}\" löschen?',\n 'conversation.removeFromPinnedChats': 'Lösen',\n 'conversation.rename': 'Umbenennen',\n 'conversation.rename.confirm.action': 'Umbenennen',\n 'conversation.rename.confirm.title': 'Chat umbenennen?',\n 'conversation.rename.placeholder': 'Chatname',\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 'error.context.fileAttachment':\n 'useFileAttachmentContext muss innerhalb eines FileAttachmentContextProvider liegen',\n 'feedback.completion.body':\n 'Wir haben Ihre Antwort erhalten. Vielen Dank für Ihr Feedback!',\n 'feedback.completion.title': 'Feedback übermittelt',\n 'feedback.form.submitWord': 'Absenden',\n 'feedback.form.textAreaPlaceholder':\n 'Geben Sie optional zusätzliches Feedback an',\n 'feedback.form.title': 'Warum haben Sie diese Bewertung gewählt?',\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.quickResponses.positive.easyToUnderstand': 'Leicht verständlich',\n 'feedback.quickResponses.positive.helpful': 'Hilfreiche Informationen',\n 'feedback.quickResponses.positive.resolvedIssue':\n 'Mein Problem wurde gelöst',\n 'feedback.tooltips.badResponse': 'Schlechte Antwort',\n 'feedback.tooltips.copied': 'Kopiert',\n 'feedback.tooltips.copy': 'Kopieren',\n 'feedback.tooltips.goodResponse': 'Gute Antwort',\n 'feedback.tooltips.listen': 'Überwachen',\n 'feedback.tooltips.listening': 'Überwachung',\n 'file.upload.error.alreadyExists': 'Datei existiert bereits.',\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.multipleFiles':\n 'Es wurden mehr als eine Datei hochgeladen.',\n 'file.upload.error.readFailed':\n 'Datei konnte nicht gelesen werden: {{errorMessage}}',\n 'file.upload.error.unsupportedType':\n 'Nicht unterstützter Dateityp. Unterstützte Typen: .txt, .yaml und .json.',\n 'footer.accuracy.label':\n 'KI-generierte Inhalte sollten vor der Verwendung stets überprüft werden.',\n 'icon.lightspeed.alt': 'Symbol des intelligenten Assistenten',\n 'icon.permissionRequired.alt': \"Symbol für 'Berechtigung erforderlich'\",\n 'lcore.loadError.description':\n 'Das Backend des intelligenten Assistenten hat keine Modellliste zurückgegeben. Prüfen Sie, ob der Dienst läuft und erreichbar ist, und versuchen Sie es erneut.',\n 'lcore.loadError.title': 'Modelle konnten nicht geladen werden',\n 'lcore.notConfigured.backendDocs':\n 'Backend des intelligenten Assistenten einrichten',\n 'lcore.notConfigured.description':\n 'Der intelligente Assistent erfordert ein registriertes LLM. Wenden Sie sich an den Plattformadministrator Ihrer Organisation, um die Einrichtung abzuschließen.',\n 'lcore.notConfigured.developerLightspeedDocs':\n 'Developer Hub Intelligent Assistant wird konfiguriert',\n 'lcore.notConfigured.title': 'Verbinden Sie ein LLM, um zu starten',\n 'mcp.settings.closeAriaLabel': 'MCP-Einstellungen schließen',\n 'mcp.settings.closeConfigureModalAriaLabel':\n 'Konfigurationsdialog schließen',\n 'mcp.settings.configureServerTitle':\n '{{serverName}} MCP-Server-Einstellungen',\n 'mcp.settings.edit': 'Bearbeiten',\n 'mcp.settings.editServerAriaLabel': '{{serverName}} bearbeiten',\n 'mcp.settings.enabled': 'Aktiviert',\n 'mcp.settings.enterToken': 'Geben Sie Ihren Token ein',\n 'mcp.settings.loading': 'MCP-Server werden geladen...',\n 'mcp.settings.modalDescription':\n 'Anmeldedaten werden verschlüsselt gespeichert und sind auf Ihr Profil beschränkt. Der intelligente Assistent arbeitet mit genau Ihren Berechtigungen.',\n 'mcp.settings.modalDescriptionDcr':\n 'Dieser Server verwendet Dynamic Client Registration (DCR). Token werden automatisch mit Ihrer Backstage-Identität erstellt — kein manuelles Token erforderlich.',\n 'mcp.settings.authenticationToken': 'Authentifizierungstoken',\n 'mcp.settings.modal.authenticationHeading': 'Authentifizierung',\n 'mcp.settings.modal.credentialMode.organization':\n 'Organisations-Standard-Token verwenden',\n 'mcp.settings.modal.credentialMode.organizationDescription':\n 'Verwendet den von Ihrem Administrator konfigurierten Token.',\n 'mcp.settings.modal.credentialMode.personal':\n 'Persönlichen Token verwenden',\n 'mcp.settings.modal.toolsHeading': 'Tools ({{count}})',\n 'mcp.settings.modal.loadingTools': 'Tools werden geladen...',\n 'mcp.settings.modal.fetchingStatus': 'Status wird abgerufen...',\n 'mcp.settings.modal.loadingStatus': 'Verbindung wird getrennt...',\n 'mcp.settings.modal.tokenRemovedWarning':\n 'Token wurde entfernt. Um diesen MCP-Server erneut zu verwenden, geben Sie einen neuen Token ein.',\n 'mcp.settings.modal.noToolsAvailable': 'Keine Tools verfügbar.',\n 'mcp.settings.modal.toolsLoadFailed': 'Tools konnten nicht geladen werden.',\n 'mcp.settings.modal.enabledDescription':\n 'Dieser Server ist aktiv und im Chat verfügbar.',\n 'mcp.settings.modal.enabledDescriptionOff':\n 'Dieser Server ist deaktiviert und im Chat nicht verfügbar.',\n 'mcp.settings.modal.enabledDescriptionTokenRequired':\n 'Dieser Server ist derzeit deaktiviert. Geben Sie einen Token ein, um ihn zu aktivieren.',\n 'mcp.settings.name': 'Name',\n 'mcp.settings.noneAvailable': 'Keine MCP-Server verfügbar.',\n 'mcp.settings.personalAccessToken': 'Persönlicher Zugriffstoken',\n 'mcp.settings.readOnlyAccess':\n 'Sie haben schreibgeschützten Zugriff auf MCP-Server.',\n 'mcp.settings.removePersonalToken': 'Persönlichen Token entfernen',\n 'mcp.settings.savedToken': 'Gespeicherter Token',\n 'mcp.settings.selectedCount':\n '{{selectedCount}} von {{totalCount}} ausgewählt',\n 'mcp.settings.status': 'Status',\n 'mcp.settings.status.disabled': 'Deaktiviert',\n 'mcp.settings.status.failed': 'Fehlgeschlagen',\n 'mcp.settings.status.manyTools': '{{count}} Tools',\n 'mcp.settings.status.oneTool': '{{count}} Tool',\n 'mcp.settings.status.tokenRequired': 'Token erforderlich',\n 'mcp.settings.status.unknown': 'Unbekannt',\n 'mcp.settings.tableAriaLabel': 'MCP-Server-Tabelle',\n 'mcp.settings.title': 'MCP-Server',\n 'mcp.settings.toggleServerAriaLabel': '{{serverName}} umschalten',\n 'mcp.settings.token.clearAriaLabel': 'Tokeneingabe löschen',\n 'mcp.settings.token.connectionSuccessful': 'Verbindung erfolgreich',\n 'mcp.settings.token.invalidCredentials':\n 'Ungültige Anmeldedaten. Überprüfen Sie Server-URL und Token.',\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.validating': 'Token wird validiert...',\n 'mcp.settings.token.validationFailed':\n 'Validierung fehlgeschlagen. Überprüfen Sie Server-URL und Token.',\n 'menu.newConversation': 'Neuer Chat',\n 'message.options.label': 'Optionen',\n 'modal.cancel': 'Abbrechen',\n 'modal.close': 'Schließen',\n 'modal.edit': 'Bearbeiten',\n 'modal.save': 'Speichern',\n 'modal.title.edit': 'Anhang bearbeiten',\n 'modal.title.preview': 'Anhang in der Vorschau anzeigen',\n 'notebook.document.rename': 'Umbenennen',\n 'notebook.document.rename.tooltip': 'Klicken zum Umbenennen',\n 'notebook.document.rename.error':\n 'Umbenennung von \"{{documentName}}\" fehlgeschlagen.',\n 'notebook.document.rename.conflict': 'Name existiert bereits.',\n 'notebook.document.rename.tooLong': 'Name zu lang (max 255).',\n 'notebook.document.delete': 'Löschen',\n 'notebook.document.delete.action': 'Entfernen',\n 'notebook.document.delete.description':\n 'Sind Sie sicher, dass Sie <documentName/> aus diesem Notizbuch entfernen möchten? Diese Aktion kann nicht rückgängig gemacht werden.',\n 'notebook.document.delete.success':\n '„{{documentName}}\" wurde erfolgreich entfernt.',\n 'notebook.document.delete.title': 'Ressource entfernen?',\n 'notebook.overwrite.modal.action': 'Hochladen ({{count}})',\n 'notebook.overwrite.modal.back': 'Zurück',\n 'notebook.overwrite.modal.description':\n '{{duplicateCount}} Dateien existieren bereits in diesem Notizbuch. {{newCount}} neue Ressourcen werden trotzdem hinzugefügt.',\n 'notebook.overwrite.modal.ignore': 'Doppelte Dateien ignorieren',\n 'notebook.overwrite.modal.replace': 'Bestehende Dateien ersetzen',\n 'notebook.overwrite.modal.title': 'Datei existiert bereits',\n 'notebook.overwrite.modal.title.one': 'Datei existiert bereits',\n 'notebook.overwrite.modal.title.other': 'Dateien existieren bereits',\n 'notebook.overwrite.modal.description.one':\n '{{duplicateCount}} Datei existiert bereits in diesem Notizbuch. {{newCount}} neue Ressourcen werden trotzdem hinzugefügt.',\n 'notebook.overwrite.modal.description.other':\n '{{duplicateCount}} Dateien existieren bereits in diesem Notizbuch. {{newCount}} neue Ressourcen werden trotzdem hinzugefügt.',\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 'notebook.upload.error.unsupportedType':\n 'Upload-Fehler: Nicht unterstützte Dateitypen gefunden. Bitte laden Sie nur unterstützte Dateitypen hoch.',\n 'notebook.upload.failed': 'Hochladen von \"{{fileName}}\" fehlgeschlagen.',\n 'notebook.upload.modal.addButton': 'Hinzufügen ({{count}})',\n 'notebook.upload.modal.addButtonEmpty': 'Hinzufügen',\n 'notebook.upload.modal.browseButton': 'Hochladen',\n 'notebook.upload.modal.dragDropTitle':\n 'Dateien hierher ziehen und ablegen oder zum Durchsuchen klicken',\n 'notebook.upload.modal.infoText':\n 'Akzeptierte Dateitypen: .md, .txt, .pdf, .json, .yaml, .log',\n 'notebook.upload.modal.maxFileSize': 'Maximale Dateigröße beträgt 25 MB.',\n 'notebook.upload.modal.supportedFormats': 'Unterstützte Formate:',\n 'notebook.upload.modal.removeFile': '{{fileName}} entfernen',\n 'notebook.upload.modal.selectedFiles':\n '{{count}} von {{max}} Dateien ausgewählt',\n 'notebook.upload.modal.separator': 'oder',\n 'notebook.upload.modal.title': 'Ressourcen hinzufügen',\n 'notebook.view.close': 'Notizbuch schließen',\n 'notebook.view.documents.add': 'Hinzufügen',\n 'notebook.view.documents.count_one': '{{count}} Ressource',\n 'notebook.view.documents.count_other': '{{count}} Ressourcen',\n 'notebook.view.documents.maxReached':\n 'Maximal 10 Ressourcen sind erlaubt. Löschen Sie eine Ressource, um eine neue hochzuladen.',\n 'notebook.view.documents.uploading': 'Ressource wird hochgeladen',\n 'notebook.view.input.disabledTooltip':\n 'Wählen Sie mindestens eine geladene Ressource aus, um den Chat zu starten',\n 'notebook.view.input.placeholder': 'Fragen Sie zu Ihren Ressourcen...',\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.title': 'Unbenanntes Notizbuch',\n 'notebook.view.upload.action': 'Ressource hinzufügen',\n 'notebook.view.processing.description':\n 'Ihre Dateien werden indexiert. Sie können Fragen stellen, sobald die Verarbeitung abgeschlossen ist.',\n 'notebook.view.processing.heading': 'Ressourcen werden verarbeitet...',\n 'notebook.view.upload.heading':\n 'Fügen Sie eine Ressource hinzu, um zu beginnen',\n 'notebooks.actions.delete': 'Löschen',\n 'notebooks.actions.rename': 'Umbenennen',\n 'notebooks.card.openAria': 'Notizbuch {{name}} öffnen',\n 'notebooks.delete.action': '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 Aktivität gelöscht.',\n 'notebooks.delete.title': '{{name}} löschen?',\n 'notebooks.delete.toast': 'Notizbuch gelöscht!',\n 'notebooks.documents_one': '{{count}} Ressource',\n 'notebooks.documents_other': '{{count}} Ressourcen',\n 'notebooks.empty.action': 'Neues Notizbuch erstellen',\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.title': 'Keine erstellten Notizbücher',\n 'notebooks.prompts.accessIssue.title': 'Hilf mir bei einem Zugriffsproblem',\n 'notebooks.prompts.coreConcepts.title': 'Was sind die Kernkonzepte?',\n 'notebooks.prompts.vulnerabilities.title':\n 'Zeige meine kritischen Schwachstellen',\n 'notebooks.rename.inline.tooltip': 'Klicken zum Umbenennen',\n 'notebooks.rename.inline.error':\n 'Umbenennung von \"{{notebookName}}\" fehlgeschlagen.',\n 'notebooks.title': 'Meine Notizbücher',\n 'notebooks.updated.days': 'Vor {{days}} Tagen aktualisiert',\n 'notebooks.updated.on': 'Aktualisiert am',\n 'notebooks.updated.today': 'Heute aktualisiert',\n 'notebooks.updated.yesterday': 'Vor 1 Tag aktualisiert',\n 'page.subtitle': 'KI-gestützter Entwicklungsassistent',\n 'page.title': 'Intelligenter Assistent',\n 'permission.notebooks.goBack': 'Zurück',\n 'permission.required.description':\n 'Um <subject/> anzuzeigen, wenden Sie sich an Ihren Administrator, um die Berechtigung <permissions/> zu erhalten.',\n 'permission.required.title': 'Fehlende Berechtigungen',\n 'permission.subject.notebooks':\n 'die Notizbücher des intelligenten Assistenten',\n 'permission.subject.plugin': 'das Plugin des intelligenten Assistenten',\n 'prompts.codeOptimization.message':\n 'Können Sie gängige Methoden zur Codeoptimierung vorschlagen, um eine bessere Performance zu erzielen?',\n 'prompts.codeOptimization.title':\n 'Vorschläge zur Codeoptimierung unterbreiten',\n 'prompts.codeReadability.message':\n 'Können Sie mir Techniken vorschlagen, mit denen ich meinen Code lesbarer und wartungsfreundlicher gestalten kann?',\n 'prompts.codeReadability.title': 'Hilfe zur Code-Lesbarkeit 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.debugging.title': 'Hilfe beim Debuggen erhalten',\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.developmentConcept.title': 'Ein Entwicklungskonzept erläutern',\n 'prompts.documentation.message':\n 'Können Sie die Dokumentation zur Implementierung der OAuth 2.0-Authentifizierung in einer Webanwendung zusammenfassen?',\n 'prompts.documentation.title': 'Zusammenfassung von Dokumentation',\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.eventDriven.title': 'Ereignisgesteuerte Architektur verstehen',\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.gitWorkflows.title': 'Workflows mit Git',\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.openshift.title': 'OpenShift-Deployment erstellen',\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 'prompts.rhdh.title': 'Erste Schritte mit dem Red Hat Developer Hub',\n 'prompts.sortingAlgorithms.message':\n 'Können Sie den Unterschied zwischen Quicksort und Mergesort erklären und wann man welchen Algorithmus verwendet?',\n 'prompts.sortingAlgorithms.title':\n 'Sortieralgorithmen verständlich erklären',\n 'prompts.tekton.message':\n 'Können Sie mir helfen, das Deployment meiner Anwendung mithilfe von Tekton-Pipelines zu automatisieren?',\n 'prompts.tekton.title': 'Mit Tekton deployen',\n 'prompts.testingStrategies.message':\n 'Können Sie mir einige gängige Teststrategien empfehlen, die meine Anwendung robust und fehlerfrei machen?',\n 'prompts.testingStrategies.title': 'Teststrategien vorschlagen',\n 'reasoning.thinking': 'Denkvorgang anzeigen',\n 'settings.displayMode.docked': 'An Fenster andocken',\n 'settings.displayMode.fullscreen': 'Vollbild',\n 'settings.displayMode.label': 'Anzeigemodus',\n 'settings.displayMode.overlay': 'Overlay',\n 'settings.mcp.badge': 'Neu',\n 'settings.mcp.label': 'MCP-Einstellungen',\n 'settings.pinned.disable': 'Angeheftete Chats deaktivieren',\n 'settings.pinned.disabled.description':\n 'Angeheftete Chats sind derzeit deaktiviert.',\n 'settings.pinned.enable': 'Angeheftete Chats aktivieren',\n 'settings.pinned.enabled.description':\n 'Angeheftete Chats sind derzeit aktiviert',\n 'sort.alphabeticalAsc': 'Name (A-Z)',\n 'sort.alphabeticalDesc': 'Name (Z-A)',\n 'sort.label': 'Unterhaltungen sortieren',\n 'sort.newest': 'Datum (neuestes zuerst)',\n 'sort.oldest': 'Datum (ältestes zuerst)',\n 'sources.chip.label_one': '{{count}} Quelle',\n 'sources.chip.label_other': '{{count}} Quellen',\n 'sources.modal.description':\n 'Die folgenden Quellen wurden verwendet, um diese KI-Antwort zu generieren und ergänzende Informationen bereitzustellen:',\n 'sources.modal.title': 'Quellen',\n 'sources.popover.closeAriaLabel': 'Quellen schließen',\n 'tabs.ariaLabel': 'Ansichten des intelligenten Assistenten',\n 'tabs.chat': 'Chat',\n 'tabs.notebooks': 'Notizbücher',\n 'tabs.notebooks.devPreview': 'Entwicklervorschau',\n 'tabs.notebooks.empty': 'Inhalte der Notizbücher kommen hierhin.',\n 'toolCall.copyResponse': 'Antwort kopieren',\n 'toolCall.executing': 'Tool wird ausgeführt...',\n 'toolCall.executionTime': 'Ausführungszeit: ',\n 'toolCall.header': 'Antwort des Tools: {{toolName}}',\n 'toolCall.loading': 'Tool wird ausgeführt...',\n 'toolCall.mcpServer': 'MCP-Server',\n 'toolCall.parameters': 'Parameter',\n 'toolCall.response': 'Antwort',\n 'toolCall.showLess': 'Weniger anzeigen',\n 'toolCall.showMore': 'Mehr anzeigen',\n 'toolCall.summary': 'Hier ist eine Zusammenfassung Ihrer Antwort.',\n 'toolCall.thinking': 'Hat {{seconds}} Sekunden nachgedacht',\n 'tooltip.attach': 'Anhängen',\n 'tooltip.backToBottom': 'Zurück zum Ende',\n 'tooltip.backToTop': 'Zurück zum Anfang',\n 'tooltip.chatHistoryMenu': 'Chatverlauf-Menü',\n 'tooltip.close': 'Schließen',\n 'tooltip.collapseHistoryPanel': 'Chatverlauf minimieren',\n 'tooltip.expandHistoryPanel': 'Chatverlauf erweitern',\n 'tooltip.fab.close': 'Intelligenten Assistenten schließen',\n 'tooltip.fab.open': 'Intelligenten Assistenten öffnen',\n 'tooltip.microphone.active': 'Überwachen beenden',\n 'tooltip.microphone.inactive': 'Mikrofon verwenden',\n 'tooltip.quickNewChat': 'Neuer Chat',\n 'tooltip.responseRecorded': 'Antwort aufgezeichnet',\n 'tooltip.send': 'Senden',\n 'user.guest': 'Gast',\n 'user.loading': '...',\n },\n});\n\nexport default intelligentAssistantTranslationDe;\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 { intelligentAssistantTranslationRef } from './ref';\n\n/**\n * de translation for plugin.intelligent-assistant.\n * @public\n */\nconst intelligentAssistantTranslationDe = createTranslationMessages({\n ref: intelligentAssistantTranslationRef,\n messages: {\n 'aria.chatHistoryMenu': 'Chatverlauf-Menü',\n 'modelSelector.disabledTooltip':\n 'Jede Chatsitzung unterstützt nur ein Modell. Um das Modell zu wechseln, starten Sie einen neuen Chat.',\n 'aria.chatbotSelector': 'Chatbot-Auswahl',\n 'aria.close': 'Chatbot schließen',\n 'aria.closeDrawerPanel': 'Drawer-Fenster schließen',\n 'aria.important': 'Wichtig',\n 'aria.options.label': 'Optionen',\n 'aria.resize': 'Größe ändern',\n 'aria.scroll.down': 'Zurück zum Ende',\n 'aria.scroll.up': 'Zurück zum Anfang',\n 'aria.search.placeholder': 'Suchen',\n 'aria.searchPreviousConversations': 'Vorherige Unterhaltungen durchsuchen',\n 'attach.menu.description': 'Eine JSON-, YAML- oder TXT-Datei anhängen',\n 'attach.menu.title': 'Anhängen',\n 'button.newChat': 'Neuer Chat',\n 'chatbox.emptyState.noPinnedChats': 'Chats anheften, um sie oben zu halten',\n 'chatbox.emptyState.noRecentChats': 'Keine letzten Chats',\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.emptyState.noResults.title': 'Keine Ergebnisse gefunden',\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 'chatbox.header.title': 'Developer Hub Intelligenter Assistent',\n 'chatbox.message.placeholder':\n 'Senden Sie eine Nachricht, und laden Sie optional eine JSON-, YAML- oder TXT-Datei hoch ...',\n 'chatbox.provider.other': 'Andere',\n 'chatbox.search.placeholder': 'Suchen',\n 'chatbox.welcome.description': 'Wie kann ich Ihnen heute helfen?',\n 'chatbox.welcome.greeting': 'Hallo {{userName}}',\n 'common.cancel': 'Abbrechen',\n 'common.close': 'Schließen',\n 'common.loading': 'Wird geladen',\n 'common.noSearchResults': 'Keine Ergebnisse, die der Suche entsprechen',\n 'common.readMore': 'Mehr lesen',\n 'common.retry': 'Erneut versuchen',\n 'conversation.addToPinnedChats': 'Anheften',\n 'conversation.announcement.responseStopped': 'Antwort angehalten.',\n 'conversation.announcement.userMessage':\n 'Nachricht vom Benutzer: {{prompt}}. Nachricht vom Bot wird geladen.',\n 'conversation.category.pinnedChats': 'Angeheftete Chats',\n 'conversation.category.recent': 'Chats',\n 'conversation.delete': 'Löschen',\n 'conversation.delete.confirm.action': '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 Aktivität gelöscht.',\n 'conversation.delete.confirm.title': 'Chat \"{{chatName}}\" löschen?',\n 'conversation.removeFromPinnedChats': 'Lösen',\n 'conversation.rename': 'Umbenennen',\n 'conversation.rename.confirm.action': 'Umbenennen',\n 'conversation.rename.confirm.title': 'Chat umbenennen?',\n 'conversation.rename.placeholder': 'Chatname',\n disclaimer:\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 'error.context.fileAttachment':\n 'useFileAttachmentContext muss innerhalb eines FileAttachmentContextProvider liegen',\n 'feedback.completion.body':\n 'Wir haben Ihre Antwort erhalten. Vielen Dank für Ihr Feedback!',\n 'feedback.completion.title': 'Feedback übermittelt',\n 'feedback.form.submitWord': 'Absenden',\n 'feedback.form.textAreaPlaceholder':\n 'Geben Sie optional zusätzliches Feedback an',\n 'feedback.form.title': 'Warum haben Sie diese Bewertung gewählt?',\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.quickResponses.positive.easyToUnderstand': 'Leicht verständlich',\n 'feedback.quickResponses.positive.helpful': 'Hilfreiche Informationen',\n 'feedback.quickResponses.positive.resolvedIssue':\n 'Mein Problem wurde gelöst',\n 'feedback.tooltips.badResponse': 'Schlechte Antwort',\n 'feedback.tooltips.copied': 'Kopiert',\n 'feedback.tooltips.copy': 'Kopieren',\n 'feedback.tooltips.goodResponse': 'Gute Antwort',\n 'feedback.tooltips.listen': 'Überwachen',\n 'feedback.tooltips.listening': 'Überwachung',\n 'file.upload.error.alreadyExists': 'Datei existiert bereits.',\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.multipleFiles':\n 'Es wurden mehr als eine Datei hochgeladen.',\n 'file.upload.error.readFailed':\n 'Datei konnte nicht gelesen werden: {{errorMessage}}',\n 'file.upload.error.unsupportedType':\n 'Nicht unterstützter Dateityp. Unterstützte Typen: .txt, .yaml und .json.',\n 'footer.accuracy.label':\n 'KI-generierte Inhalte sollten vor der Verwendung stets überprüft werden.',\n 'icon.lightspeed.alt': 'Symbol des intelligenten Assistenten',\n 'icon.permissionRequired.alt': \"Symbol für 'Berechtigung erforderlich'\",\n 'lcore.loadError.description':\n 'Das Backend des intelligenten Assistenten hat keine Modellliste zurückgegeben. Prüfen Sie, ob der Dienst läuft und erreichbar ist, und versuchen Sie es erneut.',\n 'lcore.loadError.title': 'Modelle konnten nicht geladen werden',\n 'lcore.notConfigured.backendDocs':\n 'Backend des intelligenten Assistenten einrichten',\n 'lcore.notConfigured.description':\n 'Der intelligente Assistent erfordert ein registriertes LLM. Wenden Sie sich an den Plattformadministrator Ihrer Organisation, um die Einrichtung abzuschließen.',\n 'lcore.notConfigured.developerLightspeedDocs':\n 'Developer Hub Intelligent Assistant wird konfiguriert',\n 'lcore.notConfigured.title': 'Verbinden Sie ein LLM, um zu starten',\n 'mcp.settings.closeAriaLabel': 'MCP-Einstellungen schließen',\n 'mcp.settings.closeConfigureModalAriaLabel':\n 'Konfigurationsdialog schließen',\n 'mcp.settings.configureServerTitle':\n '{{serverName}} MCP-Server-Einstellungen',\n 'mcp.settings.edit': 'Bearbeiten',\n 'mcp.settings.editServerAriaLabel': '{{serverName}} bearbeiten',\n 'mcp.settings.enabled': 'Aktiviert',\n 'mcp.settings.enterToken': 'Geben Sie Ihren Token ein',\n 'mcp.settings.loading': 'MCP-Server werden geladen...',\n 'mcp.settings.modalDescription':\n 'Anmeldedaten werden verschlüsselt gespeichert und sind auf Ihr Profil beschränkt. Der intelligente Assistent arbeitet mit genau Ihren Berechtigungen.',\n 'mcp.settings.modalDescriptionDcr':\n 'Dieser Server verwendet Dynamic Client Registration (DCR). Token werden automatisch mit Ihrer Backstage-Identität erstellt — kein manuelles Token erforderlich.',\n 'mcp.settings.authenticationToken': 'Authentifizierungstoken',\n 'mcp.settings.modal.authenticationHeading': 'Authentifizierung',\n 'mcp.settings.modal.credentialMode.organization':\n 'Organisations-Standard-Token verwenden',\n 'mcp.settings.modal.credentialMode.organizationDescription':\n 'Verwendet den von Ihrem Administrator konfigurierten Token.',\n 'mcp.settings.modal.credentialMode.personal':\n 'Persönlichen Token verwenden',\n 'mcp.settings.modal.toolsHeading': 'Tools ({{count}})',\n 'mcp.settings.modal.loadingTools': 'Tools werden geladen...',\n 'mcp.settings.modal.fetchingStatus': 'Status wird abgerufen...',\n 'mcp.settings.modal.loadingStatus': 'Verbindung wird getrennt...',\n 'mcp.settings.modal.tokenRemovedWarning':\n 'Token wurde entfernt. Um diesen MCP-Server erneut zu verwenden, geben Sie einen neuen Token ein.',\n 'mcp.settings.modal.noToolsAvailable': 'Keine Tools verfügbar.',\n 'mcp.settings.modal.toolsLoadFailed': 'Tools konnten nicht geladen werden.',\n 'mcp.settings.modal.enabledDescription':\n 'Dieser Server ist aktiv und im Chat verfügbar.',\n 'mcp.settings.modal.enabledDescriptionOff':\n 'Dieser Server ist deaktiviert und im Chat nicht verfügbar.',\n 'mcp.settings.modal.enabledDescriptionTokenRequired':\n 'Dieser Server ist derzeit deaktiviert. Geben Sie einen Token ein, um ihn zu aktivieren.',\n 'mcp.settings.name': 'Name',\n 'mcp.settings.noneAvailable': 'Keine MCP-Server verfügbar.',\n 'mcp.settings.personalAccessToken': 'Persönlicher Zugriffstoken',\n 'mcp.settings.readOnlyAccess':\n 'Sie haben schreibgeschützten Zugriff auf MCP-Server.',\n 'mcp.settings.removePersonalToken': 'Persönlichen Token entfernen',\n 'mcp.settings.savedToken': 'Gespeicherter Token',\n 'mcp.settings.selectedCount':\n '{{selectedCount}} von {{totalCount}} ausgewählt',\n 'mcp.settings.status': 'Status',\n 'mcp.settings.status.disabled': 'Deaktiviert',\n 'mcp.settings.status.failed': 'Fehlgeschlagen',\n 'mcp.settings.status.manyTools': '{{count}} Tools',\n 'mcp.settings.status.oneTool': '{{count}} Tool',\n 'mcp.settings.status.tokenRequired': 'Token erforderlich',\n 'mcp.settings.status.unknown': 'Unbekannt',\n 'mcp.settings.tableAriaLabel': 'MCP-Server-Tabelle',\n 'mcp.settings.title': 'MCP-Server',\n 'mcp.settings.toggleServerAriaLabel': '{{serverName}} umschalten',\n 'mcp.settings.token.clearAriaLabel': 'Tokeneingabe löschen',\n 'mcp.settings.token.connectionSuccessful': 'Verbindung erfolgreich',\n 'mcp.settings.token.invalidCredentials':\n 'Ungültige Anmeldedaten. Überprüfen Sie Server-URL und Token.',\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.validating': 'Token wird validiert...',\n 'mcp.settings.token.validationFailed':\n 'Validierung fehlgeschlagen. Überprüfen Sie Server-URL und Token.',\n 'menu.newConversation': 'Neuer Chat',\n 'message.options.label': 'Optionen',\n 'modal.cancel': 'Abbrechen',\n 'modal.close': 'Schließen',\n 'modal.edit': 'Bearbeiten',\n 'modal.save': 'Speichern',\n 'modal.title.edit': 'Anhang bearbeiten',\n 'modal.title.preview': 'Anhang in der Vorschau anzeigen',\n 'notebook.document.rename': 'Umbenennen',\n 'notebook.document.rename.tooltip': 'Klicken zum Umbenennen',\n 'notebook.document.rename.error':\n 'Umbenennung von \"{{documentName}}\" fehlgeschlagen.',\n 'notebook.document.rename.conflict': 'Name existiert bereits.',\n 'notebook.document.rename.tooLong': 'Name zu lang (max 255).',\n 'notebook.document.delete': 'Löschen',\n 'notebook.document.delete.action': 'Entfernen',\n 'notebook.document.delete.description':\n 'Sind Sie sicher, dass Sie <documentName/> aus diesem Notizbuch entfernen möchten? Diese Aktion kann nicht rückgängig gemacht werden.',\n 'notebook.document.delete.success':\n '„{{documentName}}\" wurde erfolgreich entfernt.',\n 'notebook.document.delete.title': 'Ressource entfernen?',\n 'notebook.overwrite.modal.action': 'Hochladen ({{count}})',\n 'notebook.overwrite.modal.back': 'Zurück',\n 'notebook.overwrite.modal.description':\n '{{duplicateCount}} Dateien existieren bereits in diesem Notizbuch. {{newCount}} neue Ressourcen werden trotzdem hinzugefügt.',\n 'notebook.overwrite.modal.ignore': 'Doppelte Dateien ignorieren',\n 'notebook.overwrite.modal.replace': 'Bestehende Dateien ersetzen',\n 'notebook.overwrite.modal.title': 'Datei existiert bereits',\n 'notebook.overwrite.modal.title.one': 'Datei existiert bereits',\n 'notebook.overwrite.modal.title.other': 'Dateien existieren bereits',\n 'notebook.overwrite.modal.description.one':\n '{{duplicateCount}} Datei existiert bereits in diesem Notizbuch. {{newCount}} neue Ressourcen werden trotzdem hinzugefügt.',\n 'notebook.overwrite.modal.description.other':\n '{{duplicateCount}} Dateien existieren bereits in diesem Notizbuch. {{newCount}} neue Ressourcen werden trotzdem hinzugefügt.',\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 'notebook.upload.error.unsupportedType':\n 'Upload-Fehler: Nicht unterstützte Dateitypen gefunden. Bitte laden Sie nur unterstützte Dateitypen hoch.',\n 'notebook.upload.failed': 'Hochladen von \"{{fileName}}\" fehlgeschlagen.',\n 'notebook.upload.modal.addButton': 'Hinzufügen ({{count}})',\n 'notebook.upload.modal.addButtonEmpty': 'Hinzufügen',\n 'notebook.upload.modal.browseButton': 'Hochladen',\n 'notebook.upload.modal.dragDropTitle':\n 'Dateien hierher ziehen und ablegen oder zum Durchsuchen klicken',\n 'notebook.upload.modal.infoText':\n 'Akzeptierte Dateitypen: .md, .txt, .pdf, .json, .yaml, .log',\n 'notebook.upload.modal.maxFileSize': 'Maximale Dateigröße beträgt 25 MB.',\n 'notebook.upload.modal.supportedFormats': 'Unterstützte Formate:',\n 'notebook.upload.modal.removeFile': '{{fileName}} entfernen',\n 'notebook.upload.modal.selectedFiles':\n '{{count}} von {{max}} Dateien ausgewählt',\n 'notebook.upload.modal.separator': 'oder',\n 'notebook.upload.modal.title': 'Ressourcen hinzufügen',\n 'notebook.view.close': 'Notizbuch schließen',\n 'notebook.view.documents.add': 'Hinzufügen',\n 'notebook.view.documents.count_one': '{{count}} Ressource',\n 'notebook.view.documents.count_other': '{{count}} Ressourcen',\n 'notebook.view.documents.maxReached':\n 'Maximal 10 Ressourcen sind erlaubt. Löschen Sie eine Ressource, um eine neue hochzuladen.',\n 'notebook.view.documents.uploading': 'Ressource wird hochgeladen',\n 'notebook.view.input.disabledTooltip':\n 'Wählen Sie mindestens eine geladene Ressource aus, um den Chat zu starten',\n 'notebook.view.input.placeholder': 'Fragen Sie zu Ihren Ressourcen...',\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.title': 'Unbenanntes Notizbuch',\n 'notebook.view.upload.action': 'Ressource hinzufügen',\n 'notebook.view.processing.description':\n 'Ihre Dateien werden indexiert. Sie können Fragen stellen, sobald die Verarbeitung abgeschlossen ist.',\n 'notebook.view.processing.heading': 'Ressourcen werden verarbeitet...',\n 'notebook.view.upload.heading':\n 'Fügen Sie eine Ressource hinzu, um zu beginnen',\n 'notebooks.actions.delete': 'Löschen',\n 'notebooks.actions.rename': 'Umbenennen',\n 'notebooks.card.openAria': 'Notizbuch {{name}} öffnen',\n 'notebooks.delete.action': '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 Aktivität gelöscht.',\n 'notebooks.delete.title': '{{name}} löschen?',\n 'notebooks.delete.toast': 'Notizbuch gelöscht!',\n 'notebooks.documents_one': '{{count}} Ressource',\n 'notebooks.documents_other': '{{count}} Ressourcen',\n 'notebooks.empty.action': 'Neues Notizbuch erstellen',\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.title': 'Keine erstellten Notizbücher',\n 'notebooks.prompts.accessIssue.title': 'Hilf mir bei einem Zugriffsproblem',\n 'notebooks.prompts.coreConcepts.title': 'Was sind die Kernkonzepte?',\n 'notebooks.prompts.vulnerabilities.title':\n 'Zeige meine kritischen Schwachstellen',\n 'notebooks.rename.inline.tooltip': 'Klicken zum Umbenennen',\n 'notebooks.rename.inline.error':\n 'Umbenennung von \"{{notebookName}}\" fehlgeschlagen.',\n 'notebooks.title': 'Meine Notizbücher',\n 'notebooks.updated.days': 'Vor {{days}} Tagen aktualisiert',\n 'notebooks.updated.on': 'Aktualisiert am',\n 'notebooks.updated.today': 'Heute aktualisiert',\n 'notebooks.updated.yesterday': 'Vor 1 Tag aktualisiert',\n 'page.subtitle': 'KI-gestützter Entwicklungsassistent',\n 'page.title': 'Intelligenter Assistent',\n 'permission.notebooks.goBack': 'Zurück',\n 'permission.required.description':\n 'Um <subject/> anzuzeigen, wenden Sie sich an Ihren Administrator, um die Berechtigung <permissions/> zu erhalten.',\n 'permission.required.title': 'Fehlende Berechtigungen',\n 'permission.subject.notebooks':\n 'die Notizbücher des intelligenten Assistenten',\n 'permission.subject.plugin': 'das Plugin des intelligenten Assistenten',\n 'prompts.codeOptimization.message':\n 'Können Sie gängige Methoden zur Codeoptimierung vorschlagen, um eine bessere Performance zu erzielen?',\n 'prompts.codeOptimization.title':\n 'Vorschläge zur Codeoptimierung unterbreiten',\n 'prompts.codeReadability.message':\n 'Können Sie mir Techniken vorschlagen, mit denen ich meinen Code lesbarer und wartungsfreundlicher gestalten kann?',\n 'prompts.codeReadability.title': 'Hilfe zur Code-Lesbarkeit 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.debugging.title': 'Hilfe beim Debuggen erhalten',\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.developmentConcept.title': 'Ein Entwicklungskonzept erläutern',\n 'prompts.documentation.message':\n 'Können Sie die Dokumentation zur Implementierung der OAuth 2.0-Authentifizierung in einer Webanwendung zusammenfassen?',\n 'prompts.documentation.title': 'Zusammenfassung von Dokumentation',\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.eventDriven.title': 'Ereignisgesteuerte Architektur verstehen',\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.gitWorkflows.title': 'Workflows mit Git',\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.openshift.title': 'OpenShift-Deployment erstellen',\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 'prompts.rhdh.title': 'Erste Schritte mit dem Red Hat Developer Hub',\n 'prompts.sortingAlgorithms.message':\n 'Können Sie den Unterschied zwischen Quicksort und Mergesort erklären und wann man welchen Algorithmus verwendet?',\n 'prompts.sortingAlgorithms.title':\n 'Sortieralgorithmen verständlich erklären',\n 'prompts.tekton.message':\n 'Können Sie mir helfen, das Deployment meiner Anwendung mithilfe von Tekton-Pipelines zu automatisieren?',\n 'prompts.tekton.title': 'Mit Tekton deployen',\n 'prompts.testingStrategies.message':\n 'Können Sie mir einige gängige Teststrategien empfehlen, die meine Anwendung robust und fehlerfrei machen?',\n 'prompts.testingStrategies.title': 'Teststrategien vorschlagen',\n 'reasoning.thinking': 'Denkvorgang anzeigen',\n 'settings.displayMode.docked': 'An Fenster andocken',\n 'settings.displayMode.fullscreen': 'Vollbild',\n 'settings.displayMode.label': 'Anzeigemodus',\n 'settings.displayMode.overlay': 'Overlay',\n 'settings.mcp.badge': 'Neu',\n 'settings.mcp.label': 'MCP-Einstellungen',\n 'settings.pinned.disable': 'Angeheftete Chats deaktivieren',\n 'settings.pinned.disabled.description':\n 'Angeheftete Chats sind derzeit deaktiviert.',\n 'settings.pinned.enable': 'Angeheftete Chats aktivieren',\n 'settings.pinned.enabled.description':\n 'Angeheftete Chats sind derzeit aktiviert',\n 'sort.alphabeticalAsc': 'Name (A-Z)',\n 'sort.alphabeticalDesc': 'Name (Z-A)',\n 'sort.label': 'Unterhaltungen sortieren',\n 'sort.newest': 'Datum (neuestes zuerst)',\n 'sort.oldest': 'Datum (ältestes zuerst)',\n 'sources.chip.label_one': '{{count}} Quelle',\n 'sources.chip.label_other': '{{count}} Quellen',\n 'sources.modal.description':\n 'Die folgenden Quellen wurden verwendet, um diese KI-Antwort zu generieren und ergänzende Informationen bereitzustellen:',\n 'sources.modal.title': 'Quellen',\n 'sources.popover.closeAriaLabel': 'Quellen schließen',\n 'tabs.ariaLabel': 'Ansichten des intelligenten Assistenten',\n 'tabs.chat': 'Chat',\n 'tabs.notebooks': 'Notizbücher',\n 'tabs.notebooks.devPreview': 'Entwicklervorschau',\n 'tabs.notebooks.empty': 'Inhalte der Notizbücher kommen hierhin.',\n 'toolCall.copyResponse': 'Antwort kopieren',\n 'toolCall.executing': 'Tool wird ausgeführt...',\n 'toolCall.executionTime': 'Ausführungszeit: ',\n 'toolCall.header': 'Antwort des Tools: {{toolName}}',\n 'toolCall.loading': 'Tool wird ausgeführt...',\n 'toolCall.mcpServer': 'MCP-Server',\n 'toolCall.parameters': 'Parameter',\n 'toolCall.response': 'Antwort',\n 'toolCall.showLess': 'Weniger anzeigen',\n 'toolCall.showMore': 'Mehr anzeigen',\n 'toolCall.summary': 'Hier ist eine Zusammenfassung Ihrer Antwort.',\n 'toolCall.thinking': 'Hat {{seconds}} Sekunden nachgedacht',\n 'tooltip.attach': 'Anhängen',\n 'tooltip.backToBottom': 'Zurück zum Ende',\n 'tooltip.backToTop': 'Zurück zum Anfang',\n 'tooltip.chatHistoryMenu': 'Chatverlauf-Menü',\n 'tooltip.close': 'Schließen',\n 'tooltip.collapseHistoryPanel': 'Chatverlauf minimieren',\n 'tooltip.expandHistoryPanel': 'Chatverlauf erweitern',\n 'tooltip.fab.close': 'Intelligenten Assistenten schließen',\n 'tooltip.fab.open': 'Intelligenten Assistenten öffnen',\n 'tooltip.microphone.active': 'Überwachen beenden',\n 'tooltip.microphone.inactive': 'Mikrofon verwenden',\n 'tooltip.quickNewChat': 'Neuer Chat',\n 'tooltip.responseRecorded': 'Antwort aufgezeichnet',\n 'tooltip.send': 'Senden',\n 'user.guest': 'Gast',\n 'user.loading': '...',\n },\n});\n\nexport default intelligentAssistantTranslationDe;\n"],"names":[],"mappings":"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"}
@@ -51,8 +51,7 @@ const intelligentAssistantTranslationEs = createTranslationMessages({
51
51
  "conversation.rename.confirm.action": "Cambiar el nombre",
52
52
  "conversation.rename.confirm.title": "\xBFCambiar el nombre del chat?",
53
53
  "conversation.rename.placeholder": "Nombre del chat",
54
- "disclaimer.withValidation": "Esta funcionalidad utiliza tecnolog\xEDa de IA. No incluya informaci\xF3n personal ni otros datos confidenciales en la entrada. Las interacciones pueden utilizarse para mejorar los productos o servicios de Red\xA0Hat.",
55
- "disclaimer.withoutValidation": "Esta funcionalidad utiliza tecnolog\xEDa de IA. No incluya informaci\xF3n personal ni otros datos confidenciales en la entrada. Las interacciones pueden utilizarse para mejorar los productos o servicios de Red\xA0Hat.",
54
+ disclaimer: "Esta funcionalidad utiliza tecnolog\xEDa de IA. No incluya informaci\xF3n personal ni otros datos confidenciales en la entrada. Las interacciones pueden utilizarse para mejorar los productos o servicios de Red\xA0Hat.",
56
55
  "error.context.fileAttachment": "useFileAttachmentContext debe estar dentro de un FileAttachmentContextProvider",
57
56
  "feedback.completion.body": "Recibimos su respuesta. \xA1Gracias por compartir sus comentarios!",
58
57
  "feedback.completion.title": "Comentarios enviados",