@red-hat-developer-hub/backstage-plugin-intelligent-assistant 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/CHANGELOG.md +681 -0
  2. package/README.md +378 -0
  3. package/config.d.ts +70 -0
  4. package/dist/alpha.d.ts +285 -0
  5. package/dist/alpha.esm.js +3 -0
  6. package/dist/alpha.esm.js.map +1 -0
  7. package/dist/api/LightspeedApiClient.esm.js +234 -0
  8. package/dist/api/LightspeedApiClient.esm.js.map +1 -0
  9. package/dist/api/NotebooksApiClient.esm.js +179 -0
  10. package/dist/api/NotebooksApiClient.esm.js.map +1 -0
  11. package/dist/api/api.esm.js +8 -0
  12. package/dist/api/api.esm.js.map +1 -0
  13. package/dist/api/notebooksApi.esm.js +10 -0
  14. package/dist/api/notebooksApi.esm.js.map +1 -0
  15. package/dist/components/Attachment.esm.js +108 -0
  16. package/dist/components/Attachment.esm.js.map +1 -0
  17. package/dist/components/AttachmentContext.esm.js +125 -0
  18. package/dist/components/AttachmentContext.esm.js.map +1 -0
  19. package/dist/components/CollapsedHistoryStrip.esm.js +87 -0
  20. package/dist/components/CollapsedHistoryStrip.esm.js.map +1 -0
  21. package/dist/components/DeleteModal.esm.js +92 -0
  22. package/dist/components/DeleteModal.esm.js.map +1 -0
  23. package/dist/components/FilePreview.esm.js +49 -0
  24. package/dist/components/FilePreview.esm.js.map +1 -0
  25. package/dist/components/LightSpeedChat.esm.js +1898 -0
  26. package/dist/components/LightSpeedChat.esm.js.map +1 -0
  27. package/dist/components/LightspeedChatBox.esm.js +252 -0
  28. package/dist/components/LightspeedChatBox.esm.js.map +1 -0
  29. package/dist/components/LightspeedChatBoxHeader.esm.js +210 -0
  30. package/dist/components/LightspeedChatBoxHeader.esm.js.map +1 -0
  31. package/dist/components/LightspeedChatContainer.esm.js +162 -0
  32. package/dist/components/LightspeedChatContainer.esm.js.map +1 -0
  33. package/dist/components/LightspeedChatModelsState.esm.js +198 -0
  34. package/dist/components/LightspeedChatModelsState.esm.js.map +1 -0
  35. package/dist/components/LightspeedDrawerContext.esm.js +15 -0
  36. package/dist/components/LightspeedDrawerContext.esm.js.map +1 -0
  37. package/dist/components/LightspeedDrawerProvider.esm.js +44 -0
  38. package/dist/components/LightspeedDrawerProvider.esm.js.map +1 -0
  39. package/dist/components/LightspeedDrawerStateExposer.esm.js +34 -0
  40. package/dist/components/LightspeedDrawerStateExposer.esm.js.map +1 -0
  41. package/dist/components/LightspeedFAB.esm.js +6 -0
  42. package/dist/components/LightspeedFAB.esm.js.map +1 -0
  43. package/dist/components/LightspeedFABContent.esm.js +65 -0
  44. package/dist/components/LightspeedFABContent.esm.js.map +1 -0
  45. package/dist/components/LightspeedIcon.esm.js +46 -0
  46. package/dist/components/LightspeedIcon.esm.js.map +1 -0
  47. package/dist/components/LightspeedPage.esm.js +31 -0
  48. package/dist/components/LightspeedPage.esm.js.map +1 -0
  49. package/dist/components/McpServersSettings.esm.js +953 -0
  50. package/dist/components/McpServersSettings.esm.js.map +1 -0
  51. package/dist/components/McpSettingsIcon.esm.js +18 -0
  52. package/dist/components/McpSettingsIcon.esm.js.map +1 -0
  53. package/dist/components/MessageBarModelSelector.esm.js +92 -0
  54. package/dist/components/MessageBarModelSelector.esm.js.map +1 -0
  55. package/dist/components/PermissionRequiredIcon.esm.js +18 -0
  56. package/dist/components/PermissionRequiredIcon.esm.js.map +1 -0
  57. package/dist/components/PermissionRequiredState.esm.js +88 -0
  58. package/dist/components/PermissionRequiredState.esm.js.map +1 -0
  59. package/dist/components/RenameConversationModal.esm.js +157 -0
  60. package/dist/components/RenameConversationModal.esm.js.map +1 -0
  61. package/dist/components/Router.esm.js +35 -0
  62. package/dist/components/Router.esm.js.map +1 -0
  63. package/dist/components/SourcesChipModal.esm.js +124 -0
  64. package/dist/components/SourcesChipModal.esm.js.map +1 -0
  65. package/dist/components/ToolCallContent.esm.js +208 -0
  66. package/dist/components/ToolCallContent.esm.js.map +1 -0
  67. package/dist/components/Trans.esm.js +33 -0
  68. package/dist/components/Trans.esm.js.map +1 -0
  69. package/dist/components/notebooks/AddDocumentModal.esm.js +271 -0
  70. package/dist/components/notebooks/AddDocumentModal.esm.js.map +1 -0
  71. package/dist/components/notebooks/DeleteDocumentModal.esm.js +131 -0
  72. package/dist/components/notebooks/DeleteDocumentModal.esm.js.map +1 -0
  73. package/dist/components/notebooks/DeleteNotebookModal.esm.js +143 -0
  74. package/dist/components/notebooks/DeleteNotebookModal.esm.js.map +1 -0
  75. package/dist/components/notebooks/DocumentSidebar.esm.js +235 -0
  76. package/dist/components/notebooks/DocumentSidebar.esm.js.map +1 -0
  77. package/dist/components/notebooks/FileListItem.esm.js +94 -0
  78. package/dist/components/notebooks/FileListItem.esm.js.map +1 -0
  79. package/dist/components/notebooks/FileTypeIcon.esm.js +59 -0
  80. package/dist/components/notebooks/FileTypeIcon.esm.js.map +1 -0
  81. package/dist/components/notebooks/NotebookCard.esm.js +118 -0
  82. package/dist/components/notebooks/NotebookCard.esm.js.map +1 -0
  83. package/dist/components/notebooks/NotebookView.esm.js +681 -0
  84. package/dist/components/notebooks/NotebookView.esm.js.map +1 -0
  85. package/dist/components/notebooks/NotebooksTab.esm.js +71 -0
  86. package/dist/components/notebooks/NotebooksTab.esm.js.map +1 -0
  87. package/dist/components/notebooks/OverwriteConfirmModal.esm.js +142 -0
  88. package/dist/components/notebooks/OverwriteConfirmModal.esm.js.map +1 -0
  89. package/dist/components/notebooks/RenameNotebookModal.esm.js +187 -0
  90. package/dist/components/notebooks/RenameNotebookModal.esm.js.map +1 -0
  91. package/dist/components/notebooks/SidebarCollapseIcon.esm.js +50 -0
  92. package/dist/components/notebooks/SidebarCollapseIcon.esm.js.map +1 -0
  93. package/dist/components/notebooks/UploadResourceScreen.esm.js +79 -0
  94. package/dist/components/notebooks/UploadResourceScreen.esm.js.map +1 -0
  95. package/dist/const.esm.js +74 -0
  96. package/dist/const.esm.js.map +1 -0
  97. package/dist/dev.d.ts +2 -0
  98. package/dist/dev.esm.js +48 -0
  99. package/dist/dev.esm.js.map +1 -0
  100. package/dist/hooks/notebooks/useCreateNotebook.esm.js +19 -0
  101. package/dist/hooks/notebooks/useCreateNotebook.esm.js.map +1 -0
  102. package/dist/hooks/notebooks/useCreateNotebookMessage.esm.js +24 -0
  103. package/dist/hooks/notebooks/useCreateNotebookMessage.esm.js.map +1 -0
  104. package/dist/hooks/notebooks/useDeleteNotebook.esm.js +19 -0
  105. package/dist/hooks/notebooks/useDeleteNotebook.esm.js.map +1 -0
  106. package/dist/hooks/notebooks/useDocumentStatusPolling.esm.js +40 -0
  107. package/dist/hooks/notebooks/useDocumentStatusPolling.esm.js.map +1 -0
  108. package/dist/hooks/notebooks/useLightspeedNotebooksPermission.esm.js +15 -0
  109. package/dist/hooks/notebooks/useLightspeedNotebooksPermission.esm.js.map +1 -0
  110. package/dist/hooks/notebooks/useNotebookDocuments.esm.js +18 -0
  111. package/dist/hooks/notebooks/useNotebookDocuments.esm.js.map +1 -0
  112. package/dist/hooks/notebooks/useNotebookSession.esm.js +18 -0
  113. package/dist/hooks/notebooks/useNotebookSession.esm.js.map +1 -0
  114. package/dist/hooks/notebooks/useNotebookSessions.esm.js +18 -0
  115. package/dist/hooks/notebooks/useNotebookSessions.esm.js.map +1 -0
  116. package/dist/hooks/notebooks/useRenameNotebook.esm.js +19 -0
  117. package/dist/hooks/notebooks/useRenameNotebook.esm.js.map +1 -0
  118. package/dist/hooks/notebooks/useUploadDocument.esm.js +28 -0
  119. package/dist/hooks/notebooks/useUploadDocument.esm.js.map +1 -0
  120. package/dist/hooks/toolCallsCacheStore.esm.js +61 -0
  121. package/dist/hooks/toolCallsCacheStore.esm.js.map +1 -0
  122. package/dist/hooks/useAllModels.esm.js +20 -0
  123. package/dist/hooks/useAllModels.esm.js.map +1 -0
  124. package/dist/hooks/useAutoScroll.esm.js +78 -0
  125. package/dist/hooks/useAutoScroll.esm.js.map +1 -0
  126. package/dist/hooks/useBackstageUserIdentity.esm.js +14 -0
  127. package/dist/hooks/useBackstageUserIdentity.esm.js.map +1 -0
  128. package/dist/hooks/useBufferedMessages.esm.js +27 -0
  129. package/dist/hooks/useBufferedMessages.esm.js.map +1 -0
  130. package/dist/hooks/useCaptureFeedback.esm.js +21 -0
  131. package/dist/hooks/useCaptureFeedback.esm.js.map +1 -0
  132. package/dist/hooks/useConversationMessages.esm.js +544 -0
  133. package/dist/hooks/useConversationMessages.esm.js.map +1 -0
  134. package/dist/hooks/useConversations.esm.js +25 -0
  135. package/dist/hooks/useConversations.esm.js.map +1 -0
  136. package/dist/hooks/useCreateCoversationMessage.esm.js +33 -0
  137. package/dist/hooks/useCreateCoversationMessage.esm.js.map +1 -0
  138. package/dist/hooks/useDeleteConversation.esm.js +39 -0
  139. package/dist/hooks/useDeleteConversation.esm.js.map +1 -0
  140. package/dist/hooks/useDisplayModeSettings.esm.js +57 -0
  141. package/dist/hooks/useDisplayModeSettings.esm.js.map +1 -0
  142. package/dist/hooks/useFeedbackActions.esm.js +275 -0
  143. package/dist/hooks/useFeedbackActions.esm.js.map +1 -0
  144. package/dist/hooks/useFeedbackState.esm.js +93 -0
  145. package/dist/hooks/useFeedbackState.esm.js.map +1 -0
  146. package/dist/hooks/useFeedbackStatus.esm.js +14 -0
  147. package/dist/hooks/useFeedbackStatus.esm.js.map +1 -0
  148. package/dist/hooks/useIsMobile.esm.js +14 -0
  149. package/dist/hooks/useIsMobile.esm.js.map +1 -0
  150. package/dist/hooks/useLastOpenedConversation.esm.js +51 -0
  151. package/dist/hooks/useLastOpenedConversation.esm.js.map +1 -0
  152. package/dist/hooks/useLightspeedDeletePermission.esm.js +12 -0
  153. package/dist/hooks/useLightspeedDeletePermission.esm.js.map +1 -0
  154. package/dist/hooks/useLightspeedDrawerContext.esm.js +15 -0
  155. package/dist/hooks/useLightspeedDrawerContext.esm.js.map +1 -0
  156. package/dist/hooks/useLightspeedProviderState.esm.js +277 -0
  157. package/dist/hooks/useLightspeedProviderState.esm.js.map +1 -0
  158. package/dist/hooks/useLightspeedUpdatePermission.esm.js +12 -0
  159. package/dist/hooks/useLightspeedUpdatePermission.esm.js.map +1 -0
  160. package/dist/hooks/useLightspeedViewPermission.esm.js +18 -0
  161. package/dist/hooks/useLightspeedViewPermission.esm.js.map +1 -0
  162. package/dist/hooks/useNotebookConversationIds.esm.js +19 -0
  163. package/dist/hooks/useNotebookConversationIds.esm.js.map +1 -0
  164. package/dist/hooks/useNotebookWelcomePrompts.esm.js +14 -0
  165. package/dist/hooks/useNotebookWelcomePrompts.esm.js.map +1 -0
  166. package/dist/hooks/usePinnedChatsSettings.esm.js +118 -0
  167. package/dist/hooks/usePinnedChatsSettings.esm.js.map +1 -0
  168. package/dist/hooks/useQuestionValidation.esm.js +16 -0
  169. package/dist/hooks/useQuestionValidation.esm.js.map +1 -0
  170. package/dist/hooks/useRenameConversation.esm.js +44 -0
  171. package/dist/hooks/useRenameConversation.esm.js.map +1 -0
  172. package/dist/hooks/useSortSettings.esm.js +60 -0
  173. package/dist/hooks/useSortSettings.esm.js.map +1 -0
  174. package/dist/hooks/useStopConversation.esm.js +18 -0
  175. package/dist/hooks/useStopConversation.esm.js.map +1 -0
  176. package/dist/hooks/useTranslation.esm.js +7 -0
  177. package/dist/hooks/useTranslation.esm.js.map +1 -0
  178. package/dist/hooks/useWelcomePrompts.esm.js +36 -0
  179. package/dist/hooks/useWelcomePrompts.esm.js.map +1 -0
  180. package/dist/images/bot-avatar-dark.svg +4 -0
  181. package/dist/images/bot-avatar.svg +4 -0
  182. package/dist/images/permission-required.svg +319 -0
  183. package/dist/images/user-avatar.svg +4 -0
  184. package/dist/index.d.ts +113 -0
  185. package/dist/index.esm.js +137 -0
  186. package/dist/index.esm.js.map +1 -0
  187. package/dist/intelligent-assistant-fab-module.d.ts +4 -0
  188. package/dist/intelligent-assistant-fab-module.esm.js +2 -0
  189. package/dist/intelligent-assistant-fab-module.esm.js.map +1 -0
  190. package/dist/intelligent-assistant-translations-module.d.ts +4 -0
  191. package/dist/intelligent-assistant-translations-module.esm.js +2 -0
  192. package/dist/intelligent-assistant-translations-module.esm.js.map +1 -0
  193. package/dist/legacy.d.ts +75 -0
  194. package/dist/legacy.esm.js +13 -0
  195. package/dist/legacy.esm.js.map +1 -0
  196. package/dist/plugin.esm.js +84 -0
  197. package/dist/plugin.esm.js.map +1 -0
  198. package/dist/routes.esm.js +23 -0
  199. package/dist/routes.esm.js.map +1 -0
  200. package/dist/translations/de.esm.js +278 -0
  201. package/dist/translations/de.esm.js.map +1 -0
  202. package/dist/translations/es.esm.js +278 -0
  203. package/dist/translations/es.esm.js.map +1 -0
  204. package/dist/translations/fr.esm.js +278 -0
  205. package/dist/translations/fr.esm.js.map +1 -0
  206. package/dist/translations/index.esm.js +16 -0
  207. package/dist/translations/index.esm.js.map +1 -0
  208. package/dist/translations/it.esm.js +278 -0
  209. package/dist/translations/it.esm.js.map +1 -0
  210. package/dist/translations/ja.esm.js +278 -0
  211. package/dist/translations/ja.esm.js.map +1 -0
  212. package/dist/translations/ref.esm.js +315 -0
  213. package/dist/translations/ref.esm.js.map +1 -0
  214. package/dist/types.esm.js +9 -0
  215. package/dist/types.esm.js.map +1 -0
  216. package/dist/utils/attachment-utils.esm.js +30 -0
  217. package/dist/utils/attachment-utils.esm.js.map +1 -0
  218. package/dist/utils/formatToolResponseForMarkdown.esm.js +98 -0
  219. package/dist/utils/formatToolResponseForMarkdown.esm.js.map +1 -0
  220. package/dist/utils/generateClassName.esm.js +12 -0
  221. package/dist/utils/generateClassName.esm.js.map +1 -0
  222. package/dist/utils/lightspeed-chatbox-utils.esm.js +232 -0
  223. package/dist/utils/lightspeed-chatbox-utils.esm.js.map +1 -0
  224. package/dist/utils/notebook-upload-utils.esm.js +48 -0
  225. package/dist/utils/notebook-upload-utils.esm.js.map +1 -0
  226. package/dist/utils/notebooks-utils.esm.js +25 -0
  227. package/dist/utils/notebooks-utils.esm.js.map +1 -0
  228. package/dist/utils/prompt-utils.esm.js +17 -0
  229. package/dist/utils/prompt-utils.esm.js.map +1 -0
  230. package/dist/utils/queryClient.esm.js +6 -0
  231. package/dist/utils/queryClient.esm.js.map +1 -0
  232. package/dist/utils/reasoningParser.esm.js +33 -0
  233. package/dist/utils/reasoningParser.esm.js.map +1 -0
  234. package/dist/utils/toolCallMapper.esm.js +15 -0
  235. package/dist/utils/toolCallMapper.esm.js.map +1 -0
  236. package/dist/utils/user-utils.esm.js +7 -0
  237. package/dist/utils/user-utils.esm.js.map +1 -0
  238. package/package.json +182 -0
@@ -0,0 +1,75 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
3
+ import { PropsWithChildren } from 'react';
4
+
5
+ /**
6
+ * Lightspeed Plugin
7
+ * @public
8
+ */
9
+ declare const lightspeedPlugin: _backstage_core_plugin_api.BackstagePlugin<{
10
+ root: _backstage_core_plugin_api.RouteRef<undefined>;
11
+ lightspeedConversation: _backstage_core_plugin_api.SubRouteRef<_backstage_core_plugin_api.PathParams<"/conversation/:conversationId">>;
12
+ lightspeedNotebooks: _backstage_core_plugin_api.SubRouteRef<undefined>;
13
+ lightspeedNotebookView: _backstage_core_plugin_api.SubRouteRef<_backstage_core_plugin_api.PathParams<"/notebooks/:notebookId">>;
14
+ }, {}, {}>;
15
+ /**
16
+ * Lightspeed Page Router
17
+ * @public
18
+ */
19
+ declare const LightspeedPage: () => react_jsx_runtime.JSX.Element;
20
+ /**
21
+ * Lightspeed Drawer Provider
22
+ *
23
+ * @public
24
+ */
25
+ declare const LightspeedDrawerProvider: React.ComponentType<PropsWithChildren>;
26
+
27
+ /**
28
+ * @public
29
+ * Intelligent Assistant Icon
30
+ */
31
+ declare const LightspeedIcon: () => react_jsx_runtime.JSX.Element;
32
+
33
+ /**
34
+ * @public
35
+ * Lightspeed Floating action button to open/close the lightspeed chatbot
36
+ */
37
+ declare const LightspeedFAB: () => react_jsx_runtime.JSX.Element | null;
38
+
39
+ /**
40
+ * @public
41
+ */
42
+ declare const LightspeedChatContainer: () => react_jsx_runtime.JSX.Element;
43
+
44
+ /**
45
+ * @public
46
+ * Partial Lightspeed drawer state exposed to the ApplicationDrawer
47
+ */
48
+ type DrawerState = {
49
+ id: string;
50
+ isDrawerOpen: boolean;
51
+ drawerWidth: number;
52
+ setDrawerWidth: (width: number) => void;
53
+ closeDrawer: () => void;
54
+ };
55
+ /**
56
+ * @public
57
+ * Props for drawer state exposer components
58
+ */
59
+ type DrawerStateExposerProps = {
60
+ /**
61
+ * Callback called whenever the drawer state changes
62
+ */
63
+ onStateChange: (state: DrawerState) => void;
64
+ };
65
+ /**
66
+ * @public
67
+ * This exposes LightspeedDrawer's partial context to the ApplicationDrawer
68
+ *
69
+ * It reads the LightspeedDrawerContext and calls the onStateChange callback with the
70
+ * partial state (id, isDrawerOpen, drawerWidth, setDrawerWidth).
71
+
72
+ */
73
+ declare const LightspeedDrawerStateExposer: ({ onStateChange, }: DrawerStateExposerProps) => null;
74
+
75
+ export { type DrawerState, type DrawerStateExposerProps, LightspeedChatContainer, LightspeedDrawerProvider, LightspeedDrawerStateExposer, LightspeedFAB, LightspeedIcon, LightspeedPage, lightspeedPlugin };
@@ -0,0 +1,13 @@
1
+ import '@patternfly/react-core/dist/styles/base-no-reset.css';
2
+ import '@patternfly/chatbot/dist/css/main.css';
3
+ import { unstable_ClassNameGenerator } from '@mui/material/className';
4
+ export { LightspeedDrawerProvider, LightspeedPage, lightspeedPlugin } from './plugin.esm.js';
5
+ export { LightspeedIcon } from './components/LightspeedIcon.esm.js';
6
+ export { LightspeedFAB } from './components/LightspeedFAB.esm.js';
7
+ export { LightspeedChatContainer } from './components/LightspeedChatContainer.esm.js';
8
+ export { LightspeedDrawerStateExposer } from './components/LightspeedDrawerStateExposer.esm.js';
9
+
10
+ unstable_ClassNameGenerator.configure(
11
+ (componentName) => componentName.startsWith("v5-") ? componentName : `v5-${componentName}`
12
+ );
13
+ //# sourceMappingURL=legacy.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy.esm.js","sources":["../src/legacy.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport '@patternfly/react-core/dist/styles/base-no-reset.css';\nimport '@patternfly/chatbot/dist/css/main.css';\n\nimport { unstable_ClassNameGenerator as ClassNameGenerator } from '@mui/material/className';\n\nClassNameGenerator.configure(componentName =>\n componentName.startsWith('v5-') ? componentName : `v5-${componentName}`,\n);\n\nexport {\n lightspeedPlugin,\n LightspeedPage,\n LightspeedDrawerProvider,\n} from './plugin';\nexport { LightspeedIcon } from './components/LightspeedIcon';\nexport { LightspeedFAB } from './components/LightspeedFAB';\nexport { LightspeedChatContainer } from './components/LightspeedChatContainer';\nexport { LightspeedDrawerStateExposer } from './components/LightspeedDrawerStateExposer';\nexport type {\n DrawerStateExposerProps,\n DrawerState,\n} from './components/LightspeedDrawerStateExposer';\n"],"names":["ClassNameGenerator"],"mappings":";;;;;;;;;AAqBAA,2BAAA,CAAmB,SAAA;AAAA,EAAU,mBAC3B,aAAA,CAAc,UAAA,CAAW,KAAK,CAAA,GAAI,aAAA,GAAgB,MAAM,aAAa,CAAA;AACvE,CAAA"}
@@ -0,0 +1,84 @@
1
+ import '@patternfly/react-core/dist/styles/base-no-reset.css';
2
+ import '@patternfly/chatbot/dist/css/main.css';
3
+ import { createPlugin, createApiFactory, fetchApiRef, configApiRef, createRoutableExtension, createComponentExtension } from '@backstage/core-plugin-api';
4
+ import { lightspeedApiRef } from './api/api.esm.js';
5
+ import { LightspeedApiClient } from './api/LightspeedApiClient.esm.js';
6
+ import { notebooksApiRef } from './api/notebooksApi.esm.js';
7
+ import { NotebooksApiClient } from './api/NotebooksApiClient.esm.js';
8
+ import { notebookViewRouteRef, notebooksRouteRef, addConversationRouteRef, rootRouteRef } from './routes.esm.js';
9
+
10
+ const lightspeedPlugin = createPlugin({
11
+ id: "intelligent-assistant",
12
+ routes: {
13
+ root: rootRouteRef,
14
+ lightspeedConversation: addConversationRouteRef,
15
+ lightspeedNotebooks: notebooksRouteRef,
16
+ lightspeedNotebookView: notebookViewRouteRef
17
+ },
18
+ apis: [
19
+ createApiFactory({
20
+ api: lightspeedApiRef,
21
+ deps: {
22
+ configApi: configApiRef,
23
+ fetchApi: fetchApiRef
24
+ },
25
+ factory: ({ configApi, fetchApi }) => new LightspeedApiClient({ configApi, fetchApi })
26
+ }),
27
+ createApiFactory({
28
+ api: notebooksApiRef,
29
+ deps: {
30
+ configApi: configApiRef,
31
+ fetchApi: fetchApiRef
32
+ },
33
+ factory: ({ configApi, fetchApi }) => new NotebooksApiClient({ configApi, fetchApi })
34
+ })
35
+ ]
36
+ });
37
+ const LightspeedPage = lightspeedPlugin.provide(
38
+ createRoutableExtension({
39
+ name: "LightspeedPage",
40
+ component: () => import('./components/Router.esm.js').then((m) => m.Router),
41
+ mountPoint: rootRouteRef
42
+ })
43
+ );
44
+ const LightspeedDrawerProvider = lightspeedPlugin.provide(
45
+ createComponentExtension({
46
+ name: "LightspeedDrawerProvider",
47
+ component: {
48
+ lazy: () => import('./components/LightspeedDrawerProvider.esm.js').then(
49
+ (m) => m.LightspeedDrawerProvider
50
+ )
51
+ }
52
+ })
53
+ );
54
+ lightspeedPlugin.provide(
55
+ createComponentExtension({
56
+ name: "LightspeedFAB",
57
+ component: {
58
+ lazy: () => import('./components/LightspeedFAB.esm.js').then((m) => m.LightspeedFAB)
59
+ }
60
+ })
61
+ );
62
+ lightspeedPlugin.provide(
63
+ createComponentExtension({
64
+ name: "LightspeedDrawerStateExposer",
65
+ component: {
66
+ lazy: () => import('./components/LightspeedDrawerStateExposer.esm.js').then(
67
+ (m) => m.LightspeedDrawerStateExposer
68
+ )
69
+ }
70
+ })
71
+ );
72
+ lightspeedPlugin.provide(
73
+ createComponentExtension({
74
+ name: "LightspeedChatContainer",
75
+ component: {
76
+ lazy: () => import('./components/LightspeedChatContainer.esm.js').then(
77
+ (m) => m.LightspeedChatContainer
78
+ )
79
+ }
80
+ })
81
+ );
82
+
83
+ export { LightspeedDrawerProvider, LightspeedPage, lightspeedPlugin };
84
+ //# sourceMappingURL=plugin.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.esm.js","sources":["../src/plugin.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport '@patternfly/react-core/dist/styles/base-no-reset.css';\nimport '@patternfly/chatbot/dist/css/main.css';\n\nimport { PropsWithChildren } from 'react';\n\nimport {\n configApiRef,\n createApiFactory,\n createComponentExtension,\n createPlugin,\n createRoutableExtension,\n fetchApiRef,\n} from '@backstage/core-plugin-api';\n\nimport { lightspeedApiRef } from './api/api';\nimport { LightspeedApiClient } from './api/LightspeedApiClient';\nimport { notebooksApiRef } from './api/notebooksApi';\nimport { NotebooksApiClient } from './api/NotebooksApiClient';\nimport {\n addConversationRouteRef,\n notebooksRouteRef,\n notebookViewRouteRef,\n rootRouteRef,\n} from './routes';\n\n/**\n * Lightspeed Plugin\n * @public\n */\nexport const lightspeedPlugin = createPlugin({\n id: 'intelligent-assistant',\n routes: {\n root: rootRouteRef,\n lightspeedConversation: addConversationRouteRef,\n lightspeedNotebooks: notebooksRouteRef,\n lightspeedNotebookView: notebookViewRouteRef,\n },\n apis: [\n createApiFactory({\n api: lightspeedApiRef,\n deps: {\n configApi: configApiRef,\n fetchApi: fetchApiRef,\n },\n factory: ({ configApi, fetchApi }) =>\n new LightspeedApiClient({ configApi, fetchApi }),\n }),\n createApiFactory({\n api: notebooksApiRef,\n deps: {\n configApi: configApiRef,\n fetchApi: fetchApiRef,\n },\n factory: ({ configApi, fetchApi }) =>\n new NotebooksApiClient({ configApi, fetchApi }),\n }),\n ],\n});\n\n/**\n * Lightspeed Page Router\n * @public\n */\nexport const LightspeedPage = lightspeedPlugin.provide(\n createRoutableExtension({\n name: 'LightspeedPage',\n component: () => import('./components/Router').then(m => m.Router),\n mountPoint: rootRouteRef,\n }),\n);\n\n/**\n * Lightspeed Drawer Provider\n *\n * @public\n */\nexport const LightspeedDrawerProvider: React.ComponentType<PropsWithChildren> =\n lightspeedPlugin.provide(\n createComponentExtension({\n name: 'LightspeedDrawerProvider',\n component: {\n lazy: () =>\n import('./components/LightspeedDrawerProvider').then(\n m => m.LightspeedDrawerProvider,\n ),\n },\n }),\n );\n\n/**\n * Lightspeed FAB for global floating action button fot LightspeedAI\n *\n * @public\n */\nexport const LightspeedFAB: React.ComponentType = lightspeedPlugin.provide(\n createComponentExtension({\n name: 'LightspeedFAB',\n component: {\n lazy: () =>\n import('./components/LightspeedFAB').then(m => m.LightspeedFAB),\n },\n }),\n);\n\n/**\n * Lightspeed Drawer State Exposer exposes its drawer state\n *\n * @public\n */\nexport const LightspeedDrawerStateExposer = lightspeedPlugin.provide(\n createComponentExtension({\n name: 'LightspeedDrawerStateExposer',\n component: {\n lazy: () =>\n import('./components/LightspeedDrawerStateExposer').then(\n m => m.LightspeedDrawerStateExposer,\n ),\n },\n }),\n);\n\n/**\n * Lightspeed Chat Container component extension\n *\n * @public\n */\nexport const LightspeedChatContainer = lightspeedPlugin.provide(\n createComponentExtension({\n name: 'LightspeedChatContainer',\n component: {\n lazy: () =>\n import('./components/LightspeedChatContainer').then(\n m => m.LightspeedChatContainer,\n ),\n },\n }),\n);\n"],"names":[],"mappings":";;;;;;;;;AA6CO,MAAM,mBAAmB,YAAA,CAAa;AAAA,EAC3C,EAAA,EAAI,uBAAA;AAAA,EACJ,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,YAAA;AAAA,IACN,sBAAA,EAAwB,uBAAA;AAAA,IACxB,mBAAA,EAAqB,iBAAA;AAAA,IACrB,sBAAA,EAAwB;AAAA,GAC1B;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,gBAAA,CAAiB;AAAA,MACf,GAAA,EAAK,gBAAA;AAAA,MACL,IAAA,EAAM;AAAA,QACJ,SAAA,EAAW,YAAA;AAAA,QACX,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,OAAA,EAAS,CAAC,EAAE,SAAA,EAAW,QAAA,EAAS,KAC9B,IAAI,mBAAA,CAAoB,EAAE,SAAA,EAAW,QAAA,EAAU;AAAA,KAClD,CAAA;AAAA,IACD,gBAAA,CAAiB;AAAA,MACf,GAAA,EAAK,eAAA;AAAA,MACL,IAAA,EAAM;AAAA,QACJ,SAAA,EAAW,YAAA;AAAA,QACX,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,OAAA,EAAS,CAAC,EAAE,SAAA,EAAW,QAAA,EAAS,KAC9B,IAAI,kBAAA,CAAmB,EAAE,SAAA,EAAW,QAAA,EAAU;AAAA,KACjD;AAAA;AAEL,CAAC;AAMM,MAAM,iBAAiB,gBAAA,CAAiB,OAAA;AAAA,EAC7C,uBAAA,CAAwB;AAAA,IACtB,IAAA,EAAM,gBAAA;AAAA,IACN,SAAA,EAAW,MAAM,OAAO,4BAAqB,EAAE,IAAA,CAAK,CAAA,CAAA,KAAK,EAAE,MAAM,CAAA;AAAA,IACjE,UAAA,EAAY;AAAA,GACb;AACH;AAOO,MAAM,2BACX,gBAAA,CAAiB,OAAA;AAAA,EACf,wBAAA,CAAyB;AAAA,IACvB,IAAA,EAAM,0BAAA;AAAA,IACN,SAAA,EAAW;AAAA,MACT,IAAA,EAAM,MACJ,OAAO,8CAAuC,CAAA,CAAE,IAAA;AAAA,QAC9C,OAAK,CAAA,CAAE;AAAA;AACT;AACJ,GACD;AACH;AAOgD,gBAAA,CAAiB,OAAA;AAAA,EACjE,wBAAA,CAAyB;AAAA,IACvB,IAAA,EAAM,eAAA;AAAA,IACN,SAAA,EAAW;AAAA,MACT,IAAA,EAAM,MACJ,OAAO,mCAA4B,EAAE,IAAA,CAAK,CAAA,CAAA,KAAK,EAAE,aAAa;AAAA;AAClE,GACD;AACH;AAO4C,gBAAA,CAAiB,OAAA;AAAA,EAC3D,wBAAA,CAAyB;AAAA,IACvB,IAAA,EAAM,8BAAA;AAAA,IACN,SAAA,EAAW;AAAA,MACT,IAAA,EAAM,MACJ,OAAO,kDAA2C,CAAA,CAAE,IAAA;AAAA,QAClD,OAAK,CAAA,CAAE;AAAA;AACT;AACJ,GACD;AACH;AAOuC,gBAAA,CAAiB,OAAA;AAAA,EACtD,wBAAA,CAAyB;AAAA,IACvB,IAAA,EAAM,yBAAA;AAAA,IACN,SAAA,EAAW;AAAA,MACT,IAAA,EAAM,MACJ,OAAO,6CAAsC,CAAA,CAAE,IAAA;AAAA,QAC7C,OAAK,CAAA,CAAE;AAAA;AACT;AACJ,GACD;AACH;;;;"}
@@ -0,0 +1,23 @@
1
+ import { createRouteRef, createSubRouteRef } from '@backstage/core-plugin-api';
2
+
3
+ const rootRouteRef = createRouteRef({
4
+ id: "intelligent-assistant"
5
+ });
6
+ const addConversationRouteRef = createSubRouteRef({
7
+ id: "intelligent-assistant-conversation",
8
+ parent: rootRouteRef,
9
+ path: "/conversation/:conversationId"
10
+ });
11
+ const notebooksRouteRef = createSubRouteRef({
12
+ id: "intelligent-assistant-notebooks",
13
+ parent: rootRouteRef,
14
+ path: "/notebooks"
15
+ });
16
+ const notebookViewRouteRef = createSubRouteRef({
17
+ id: "intelligent-assistant-notebook-view",
18
+ parent: rootRouteRef,
19
+ path: "/notebooks/:notebookId"
20
+ });
21
+
22
+ export { addConversationRouteRef, notebookViewRouteRef, notebooksRouteRef, rootRouteRef };
23
+ //# sourceMappingURL=routes.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.esm.js","sources":["../src/routes.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createRouteRef, createSubRouteRef } from '@backstage/core-plugin-api';\n\nexport const rootRouteRef = createRouteRef({\n id: 'intelligent-assistant',\n});\n\nexport const addConversationRouteRef = createSubRouteRef({\n id: 'intelligent-assistant-conversation',\n parent: rootRouteRef,\n path: '/conversation/:conversationId',\n});\n\nexport const notebooksRouteRef = createSubRouteRef({\n id: 'intelligent-assistant-notebooks',\n parent: rootRouteRef,\n path: '/notebooks',\n});\n\nexport const notebookViewRouteRef = createSubRouteRef({\n id: 'intelligent-assistant-notebook-view',\n parent: rootRouteRef,\n path: '/notebooks/:notebookId',\n});\n"],"names":[],"mappings":";;AAkBO,MAAM,eAAe,cAAA,CAAe;AAAA,EACzC,EAAA,EAAI;AACN,CAAC;AAEM,MAAM,0BAA0B,iBAAA,CAAkB;AAAA,EACvD,EAAA,EAAI,oCAAA;AAAA,EACJ,MAAA,EAAQ,YAAA;AAAA,EACR,IAAA,EAAM;AACR,CAAC;AAEM,MAAM,oBAAoB,iBAAA,CAAkB;AAAA,EACjD,EAAA,EAAI,iCAAA;AAAA,EACJ,MAAA,EAAQ,YAAA;AAAA,EACR,IAAA,EAAM;AACR,CAAC;AAEM,MAAM,uBAAuB,iBAAA,CAAkB;AAAA,EACpD,EAAA,EAAI,qCAAA;AAAA,EACJ,MAAA,EAAQ,YAAA;AAAA,EACR,IAAA,EAAM;AACR,CAAC;;;;"}
@@ -0,0 +1,278 @@
1
+ import { createTranslationMessages } from '@backstage/core-plugin-api/alpha';
2
+ import { intelligentAssistantTranslationRef } from './ref.esm.js';
3
+
4
+ const intelligentAssistantTranslationDe = createTranslationMessages({
5
+ ref: intelligentAssistantTranslationRef,
6
+ messages: {
7
+ "aria.chatHistoryMenu": "Chatverlauf-Men\xFC",
8
+ "aria.chatbotSelector": "Chatbot-Auswahl",
9
+ "aria.close": "Chatbot schlie\xDFen",
10
+ "aria.closeDrawerPanel": "Drawer-Fenster schlie\xDFen",
11
+ "aria.important": "Wichtig",
12
+ "aria.options.label": "Optionen",
13
+ "aria.resize": "Gr\xF6\xDFe \xE4ndern",
14
+ "aria.scroll.down": "Zur\xFCck zum Ende",
15
+ "aria.scroll.up": "Zur\xFCck zum Anfang",
16
+ "aria.search.placeholder": "Suchen",
17
+ "aria.searchPreviousConversations": "Vorherige Unterhaltungen durchsuchen",
18
+ "attach.menu.description": "Eine JSON-, YAML- oder TXT-Datei anh\xE4ngen",
19
+ "attach.menu.title": "Anh\xE4ngen",
20
+ "button.newChat": "Neuer Chat",
21
+ "chatbox.emptyState.noPinnedChats": "Chats anheften, um sie oben zu halten",
22
+ "chatbox.emptyState.noRecentChats": "Keine letzten Chats",
23
+ "chatbox.emptyState.noResults.body": "Passen Sie Ihre Suchanfrage an, und versuchen Sie es erneut. \xDCberpr\xFCfen Sie Ihre Rechtschreibung, oder versuchen Sie es mit einem allgemeineren Begriff.",
24
+ "chatbox.emptyState.noResults.title": "Keine Ergebnisse gefunden",
25
+ "chatbox.fileUpload.failed": "Datei-Upload fehlgeschlagen",
26
+ "chatbox.fileUpload.infoText": "Unterst\xFCtzte Dateitypen: .txt, .yaml und .json. Die maximale Dateigr\xF6\xDFe betr\xE4gt 25 MB.",
27
+ "chatbox.header.title": "Developer Hub Intelligenter Assistent",
28
+ "chatbox.message.placeholder": "Senden Sie eine Nachricht, und laden Sie optional eine JSON-, YAML- oder TXT-Datei hoch\xA0...",
29
+ "chatbox.provider.other": "Andere",
30
+ "chatbox.search.placeholder": "Suchen",
31
+ "chatbox.welcome.description": "Wie kann ich Ihnen heute helfen?",
32
+ "chatbox.welcome.greeting": "Hallo {{userName}}",
33
+ "common.cancel": "Abbrechen",
34
+ "common.close": "Schlie\xDFen",
35
+ "common.loading": "Wird geladen",
36
+ "common.noSearchResults": "Keine Ergebnisse, die der Suche entsprechen",
37
+ "common.readMore": "Mehr lesen",
38
+ "common.retry": "Erneut versuchen",
39
+ "conversation.addToPinnedChats": "Anheften",
40
+ "conversation.announcement.responseStopped": "Antwort angehalten.",
41
+ "conversation.announcement.userMessage": "Nachricht vom Benutzer: {{prompt}}. Nachricht vom Bot wird geladen.",
42
+ "conversation.category.pinnedChats": "Angeheftete Chats",
43
+ "conversation.category.recent": "Chats",
44
+ "conversation.delete": "L\xF6schen",
45
+ "conversation.delete.confirm.action": "L\xF6schen",
46
+ "conversation.delete.confirm.message": "Dieser Chat wird hier nicht mehr angezeigt. Dadurch werden auch zugeh\xF6rige Aktivit\xE4ten wie Prompts, Antworten und Feedback aus Ihrer Aktivit\xE4t gel\xF6scht.",
47
+ "conversation.delete.confirm.title": 'Chat "{{chatName}}" l\xF6schen?',
48
+ "conversation.removeFromPinnedChats": "L\xF6sen",
49
+ "conversation.rename": "Umbenennen",
50
+ "conversation.rename.confirm.action": "Umbenennen",
51
+ "conversation.rename.confirm.title": "Chat umbenennen?",
52
+ "conversation.rename.placeholder": "Chatname",
53
+ "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.",
54
+ "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.",
55
+ "error.context.fileAttachment": "useFileAttachmentContext muss innerhalb eines FileAttachmentContextProvider liegen",
56
+ "feedback.completion.body": "Wir haben Ihre Antwort erhalten. Vielen Dank f\xFCr Ihr Feedback!",
57
+ "feedback.completion.title": "Feedback \xFCbermittelt",
58
+ "feedback.form.submitWord": "Absenden",
59
+ "feedback.form.textAreaPlaceholder": "Geben Sie optional zus\xE4tzliches Feedback an",
60
+ "feedback.form.title": "Warum haben Sie diese Bewertung gew\xE4hlt?",
61
+ "feedback.quickResponses.negative.didntAnswer": "Meine Frage wurde nicht beantwortet",
62
+ "feedback.quickResponses.negative.hardToUnderstand": "Schwer zu verstehen",
63
+ "feedback.quickResponses.negative.notHelpful": "Nicht hilfreich",
64
+ "feedback.quickResponses.positive.easyToUnderstand": "Leicht verst\xE4ndlich",
65
+ "feedback.quickResponses.positive.helpful": "Hilfreiche Informationen",
66
+ "feedback.quickResponses.positive.resolvedIssue": "Mein Problem wurde gel\xF6st",
67
+ "feedback.tooltips.badResponse": "Schlechte Antwort",
68
+ "feedback.tooltips.copied": "Kopiert",
69
+ "feedback.tooltips.copy": "Kopieren",
70
+ "feedback.tooltips.goodResponse": "Gute Antwort",
71
+ "feedback.tooltips.listen": "\xDCberwachen",
72
+ "feedback.tooltips.listening": "\xDCberwachung",
73
+ "file.upload.error.alreadyExists": "Datei existiert bereits.",
74
+ "file.upload.error.fileTooLarge": "Ihre Dateigr\xF6\xDFe ist zu gro\xDF. Bitte stellen Sie sicher, dass Ihre Datei kleiner als 25 MB ist.",
75
+ "file.upload.error.multipleFiles": "Es wurden mehr als eine Datei hochgeladen.",
76
+ "file.upload.error.readFailed": "Datei konnte nicht gelesen werden: {{errorMessage}}",
77
+ "file.upload.error.unsupportedType": "Nicht unterst\xFCtzter Dateityp. Unterst\xFCtzte Typen: .txt, .yaml und .json.",
78
+ "footer.accuracy.label": "KI-generierte Inhalte sollten vor der Verwendung stets \xFCberpr\xFCft werden.",
79
+ "icon.lightspeed.alt": "Symbol des intelligenten Assistenten",
80
+ "icon.permissionRequired.alt": "Symbol f\xFCr 'Berechtigung erforderlich'",
81
+ "lcore.loadError.description": "Das Backend des intelligenten Assistenten hat keine Modellliste zur\xFCckgegeben. Pr\xFCfen Sie, ob der Dienst l\xE4uft und erreichbar ist, und versuchen Sie es erneut.",
82
+ "lcore.loadError.title": "Modelle konnten nicht geladen werden",
83
+ "lcore.notConfigured.backendDocs": "Backend des intelligenten Assistenten einrichten",
84
+ "lcore.notConfigured.description": "Der intelligente Assistent erfordert ein registriertes LLM. Wenden Sie sich an den Plattformadministrator Ihrer Organisation, um die Einrichtung abzuschlie\xDFen.",
85
+ "lcore.notConfigured.developerLightspeedDocs": "Developer Hub Intelligent Assistant wird konfiguriert",
86
+ "lcore.notConfigured.title": "Verbinden Sie ein LLM, um zu starten",
87
+ "mcp.settings.closeAriaLabel": "MCP-Einstellungen schlie\xDFen",
88
+ "mcp.settings.closeConfigureModalAriaLabel": "Konfigurationsdialog schlie\xDFen",
89
+ "mcp.settings.configureServerTitle": "Server {{serverName}} konfigurieren",
90
+ "mcp.settings.edit": "Bearbeiten",
91
+ "mcp.settings.editServerAriaLabel": "{{serverName}} bearbeiten",
92
+ "mcp.settings.enabled": "Aktiviert",
93
+ "mcp.settings.enterToken": "Geben Sie Ihren Token ein",
94
+ "mcp.settings.loading": "MCP-Server werden geladen...",
95
+ "mcp.settings.modalDescription": "Anmeldedaten werden verschl\xFCsselt gespeichert und sind auf Ihr Profil beschr\xE4nkt. Der intelligente Assistent arbeitet mit genau Ihren Berechtigungen.",
96
+ "mcp.settings.modalDescriptionDcr": "Dieser Server verwendet Dynamic Client Registration (DCR). Token werden automatisch mit Ihrer Backstage-Identit\xE4t erstellt \u2014 kein manuelles Token erforderlich.",
97
+ "mcp.settings.name": "Name",
98
+ "mcp.settings.noneAvailable": "Keine MCP-Server verf\xFCgbar.",
99
+ "mcp.settings.personalAccessToken": "Pers\xF6nlicher Zugriffstoken",
100
+ "mcp.settings.readOnlyAccess": "Sie haben schreibgesch\xFCtzten Zugriff auf MCP-Server.",
101
+ "mcp.settings.removePersonalToken": "Pers\xF6nlichen Token entfernen",
102
+ "mcp.settings.savedToken": "Gespeicherter Token",
103
+ "mcp.settings.selectedCount": "{{selectedCount}} von {{totalCount}} ausgew\xE4hlt",
104
+ "mcp.settings.status": "Status",
105
+ "mcp.settings.status.disabled": "Deaktiviert",
106
+ "mcp.settings.status.failed": "Fehlgeschlagen",
107
+ "mcp.settings.status.manyTools": "{{count}} Tools",
108
+ "mcp.settings.status.oneTool": "{{count}} Tool",
109
+ "mcp.settings.status.tokenRequired": "Token erforderlich",
110
+ "mcp.settings.status.unknown": "Unbekannt",
111
+ "mcp.settings.tableAriaLabel": "MCP-Server-Tabelle",
112
+ "mcp.settings.title": "MCP-Server",
113
+ "mcp.settings.toggleServerAriaLabel": "{{serverName}} umschalten",
114
+ "mcp.settings.token.clearAriaLabel": "Tokeneingabe l\xF6schen",
115
+ "mcp.settings.token.connectionSuccessful": "Verbindung erfolgreich",
116
+ "mcp.settings.token.invalidCredentials": "Ung\xFCltige Anmeldedaten. \xDCberpr\xFCfen Sie Server-URL und Token.",
117
+ "mcp.settings.token.savingAndValidating": "Token wird gespeichert und validiert...",
118
+ "mcp.settings.token.urlUnavailableForValidation": "Token kann nicht validiert werden, da die Server-URL nicht verf\xFCgbar ist.",
119
+ "mcp.settings.token.validating": "Token wird validiert...",
120
+ "mcp.settings.token.validationFailed": "Validierung fehlgeschlagen. \xDCberpr\xFCfen Sie Server-URL und Token.",
121
+ "mcp.settings.usingAdminCredential": "Administratoranmeldedaten werden verwendet. Geben Sie einen pers\xF6nlichen Token ein, um ihn f\xFCr Ihr Konto zu \xFCberschreiben.",
122
+ "menu.newConversation": "Neuer Chat",
123
+ "message.options.label": "Optionen",
124
+ "modal.cancel": "Abbrechen",
125
+ "modal.close": "Schlie\xDFen",
126
+ "modal.edit": "Bearbeiten",
127
+ "modal.save": "Speichern",
128
+ "modal.title.edit": "Anhang bearbeiten",
129
+ "modal.title.preview": "Anhang in der Vorschau anzeigen",
130
+ "notebook.document.delete": "L\xF6schen",
131
+ "notebook.document.delete.action": "Entfernen",
132
+ "notebook.document.delete.description": "Sind Sie sicher, dass Sie <documentName/> aus diesem Notizbuch entfernen m\xF6chten? Diese Aktion kann nicht r\xFCckg\xE4ngig gemacht werden.",
133
+ "notebook.document.delete.success": '\u201E{{documentName}}" wurde erfolgreich entfernt.',
134
+ "notebook.document.delete.title": "Ressource entfernen?",
135
+ "notebook.overwrite.modal.action": "\xDCberschreiben",
136
+ "notebook.overwrite.modal.description": "Die folgenden Dateien existieren bereits in diesem Notizbuch. M\xF6chten Sie sie mit den neuen Versionen \xFCberschreiben?",
137
+ "notebook.overwrite.modal.title": "Dateien \xFCberschreiben?",
138
+ "notebook.upload.error.fileTooLarge": "Upload-Fehler: Dateigr\xF6\xDFe \xFCberschreitet das Limit von 25 MB.",
139
+ "notebook.upload.error.tooManyFiles": "Upload-Fehler: Maximal {{max}} Dateien erlaubt.",
140
+ "notebook.upload.error.unsupportedType": "Upload-Fehler: Nicht unterst\xFCtzte Dateitypen gefunden. Bitte laden Sie nur unterst\xFCtzte Dateitypen hoch.",
141
+ "notebook.upload.failed": 'Hochladen von "{{fileName}}" fehlgeschlagen.',
142
+ "notebook.upload.modal.addButton": "Hinzuf\xFCgen ({{count}})",
143
+ "notebook.upload.modal.browseButton": "Hochladen",
144
+ "notebook.upload.modal.dragDropTitle": "Dateien hierher ziehen und ablegen",
145
+ "notebook.upload.modal.infoText": "Akzeptierte Dateitypen: .md, .txt, .pdf, .json, .yaml, .log",
146
+ "notebook.upload.modal.removeFile": "{{fileName}} entfernen",
147
+ "notebook.upload.modal.selectedFiles": "{{count}} von {{max}} Dateien ausgew\xE4hlt",
148
+ "notebook.upload.modal.separator": "oder",
149
+ "notebook.upload.modal.title": "Dokument zum Notizbuch hinzuf\xFCgen",
150
+ "notebook.view.close": "Notizbuch schlie\xDFen",
151
+ "notebook.view.documents.add": "Hinzuf\xFCgen",
152
+ "notebook.view.documents.count": "{{count}} Dokumente",
153
+ "notebook.view.documents.maxReached": "Maximal 10 Dokumente sind erlaubt. L\xF6schen Sie ein Dokument, um ein neues hochzuladen.",
154
+ "notebook.view.documents.uploading": "Dokument wird hochgeladen",
155
+ "notebook.view.input.disabledTooltip": "W\xE4hlen Sie mindestens eine geladene Ressource aus, um den Chat zu starten",
156
+ "notebook.view.input.placeholder": "Fragen Sie zu Ihren Dokumenten...",
157
+ "notebook.view.sidebar.collapse": "Seitenleiste einklappen",
158
+ "notebook.view.sidebar.expand": "Seitenleiste ausklappen",
159
+ "notebook.view.sidebar.resize": "Gr\xF6\xDFe der Seitenleiste \xE4ndern",
160
+ "notebook.view.title": "Unbenanntes Notizbuch",
161
+ "notebook.view.upload.action": "Ressource hochladen",
162
+ "notebook.view.processing.description": "Ihre Dateien werden indexiert. Sie k\xF6nnen Fragen stellen, sobald die Verarbeitung abgeschlossen ist.",
163
+ "notebook.view.processing.heading": "Ressourcen werden verarbeitet...",
164
+ "notebook.view.upload.heading": "Laden Sie eine Ressource hoch, um zu beginnen",
165
+ "notebooks.actions.delete": "L\xF6schen",
166
+ "notebooks.actions.rename": "Umbenennen",
167
+ "notebooks.card.openAria": "Notizbuch {{name}} \xF6ffnen",
168
+ "notebooks.delete.action": "L\xF6schen",
169
+ "notebooks.delete.message": "Dieses Notizbuch wird hier nicht mehr angezeigt. Dadurch werden auch zugeh\xF6rige Aktivit\xE4ten wie Eingaben, Antworten und Feedback aus Ihrer Aktivit\xE4t gel\xF6scht.",
170
+ "notebooks.delete.title": "{{name}} l\xF6schen?",
171
+ "notebooks.delete.toast": "Notizbuch gel\xF6scht!",
172
+ "notebooks.documents": "Dokumente",
173
+ "notebooks.empty.action": "Neues Notizbuch erstellen",
174
+ "notebooks.empty.description": "Erstellen Sie ein neues Notizbuch, um Ihre Quellen zu organisieren und KI-gest\xFCtzte Erkenntnisse zu gewinnen.",
175
+ "notebooks.empty.title": "Keine erstellten Notizb\xFCcher",
176
+ "notebooks.prompts.accessIssue.title": "Hilf mir bei einem Zugriffsproblem",
177
+ "notebooks.prompts.coreConcepts.title": "Was sind die Kernkonzepte?",
178
+ "notebooks.prompts.vulnerabilities.title": "Zeige meine kritischen Schwachstellen",
179
+ "notebooks.rename.action": "Senden",
180
+ "notebooks.rename.description": "Bitte geben Sie den neuen Namen f\xFCr dieses Notizbuch ein und klicken Sie auf \u201ESenden\u201C, um fortzufahren.",
181
+ "notebooks.rename.label": "Neuer Name",
182
+ "notebooks.rename.placeholder": "Neuer Name",
183
+ "notebooks.rename.title": "{{name}} umbenennen?",
184
+ "notebooks.title": "Meine Notizb\xFCcher",
185
+ "notebooks.updated.days": "Vor {{days}} Tagen aktualisiert",
186
+ "notebooks.updated.on": "Aktualisiert am",
187
+ "notebooks.updated.today": "Heute aktualisiert",
188
+ "notebooks.updated.yesterday": "Vor 1 Tag aktualisiert",
189
+ "page.subtitle": "KI-gest\xFCtzter Entwicklungsassistent",
190
+ "page.title": "Intelligenter Assistent",
191
+ "permission.notebooks.goBack": "Zur\xFCck",
192
+ "permission.required.description": "Um <subject/> anzuzeigen, wenden Sie sich an Ihren Administrator, um die Berechtigung <permissions/> zu erhalten.",
193
+ "permission.required.title": "Fehlende Berechtigungen",
194
+ "permission.subject.notebooks": "die Notizb\xFCcher des intelligenten Assistenten",
195
+ "permission.subject.plugin": "das Plugin des intelligenten Assistenten",
196
+ "prompts.codeOptimization.message": "K\xF6nnen Sie g\xE4ngige Methoden zur Codeoptimierung vorschlagen, um eine bessere Performance zu erzielen?",
197
+ "prompts.codeOptimization.title": "Vorschl\xE4ge zur Codeoptimierung unterbreiten",
198
+ "prompts.codeReadability.message": "K\xF6nnen Sie mir Techniken vorschlagen, mit denen ich meinen Code lesbarer und wartungsfreundlicher gestalten kann?",
199
+ "prompts.codeReadability.title": "Hilfe zur Code-Lesbarkeit erhalten",
200
+ "prompts.debugging.message": "Meine Anwendung gibt beim Versuch einer Verbindung zur Datenbank einen Fehler aus. K\xF6nnen Sie mir helfen, das Problem zu identifizieren?",
201
+ "prompts.debugging.title": "Hilfe beim Debuggen erhalten",
202
+ "prompts.developmentConcept.message": "K\xF6nnen Sie erkl\xE4ren, wie eine Microservices-Architektur funktioniert und welche Vorteile sie gegen\xFCber einem monolithischen Design bietet?",
203
+ "prompts.developmentConcept.title": "Ein Entwicklungskonzept erl\xE4utern",
204
+ "prompts.documentation.message": "K\xF6nnen Sie die Dokumentation zur Implementierung der OAuth 2.0-Authentifizierung in einer Webanwendung zusammenfassen?",
205
+ "prompts.documentation.title": "Zusammenfassung von Dokumentation",
206
+ "prompts.eventDriven.message": "K\xF6nnen Sie erkl\xE4ren, was ereignisgesteuerte Architektur bedeutet und wann ihre Verwendung in der Softwareentwicklung von Vorteil ist?",
207
+ "prompts.eventDriven.title": "Ereignisgesteuerte Architektur verstehen",
208
+ "prompts.gitWorkflows.message": "Ich m\xF6chte \xC4nderungen am Code in einem anderen Branch vornehmen, ohne meine bestehende Arbeit zu verlieren. Wie geht man dabei mit Git vor?",
209
+ "prompts.gitWorkflows.title": "Workflows mit Git",
210
+ "prompts.openshift.message": "K\xF6nnen Sie mich bei der Erstellung eines neuen Deployments in OpenShift f\xFCr eine containerisierte Anwendung unterst\xFCtzen?",
211
+ "prompts.openshift.title": "OpenShift-Deployment erstellen",
212
+ "prompts.rhdh.message": "K\xF6nnen Sie mich bei den ersten Schritten zur Nutzung des Developer Hub als Entwickler unterst\xFCtzen, z.\xA0B. beim Erkunden des Softwarekatalogs und beim Hinzuf\xFCgen meines Dienstes?",
213
+ "prompts.rhdh.title": "Erste Schritte mit dem Red Hat Developer Hub",
214
+ "prompts.sortingAlgorithms.message": "K\xF6nnen Sie den Unterschied zwischen Quicksort und Mergesort erkl\xE4ren und wann man welchen Algorithmus verwendet?",
215
+ "prompts.sortingAlgorithms.title": "Sortieralgorithmen verst\xE4ndlich erkl\xE4ren",
216
+ "prompts.tekton.message": "K\xF6nnen Sie mir helfen, das Deployment meiner Anwendung mithilfe von Tekton-Pipelines zu automatisieren?",
217
+ "prompts.tekton.title": "Mit Tekton deployen",
218
+ "prompts.testingStrategies.message": "K\xF6nnen Sie mir einige g\xE4ngige Teststrategien empfehlen, die meine Anwendung robust und fehlerfrei machen?",
219
+ "prompts.testingStrategies.title": "Teststrategien vorschlagen",
220
+ "reasoning.thinking": "Denkvorgang anzeigen",
221
+ "settings.displayMode.docked": "An Fenster andocken",
222
+ "settings.displayMode.fullscreen": "Vollbild",
223
+ "settings.displayMode.label": "Anzeigemodus",
224
+ "settings.displayMode.overlay": "Overlay",
225
+ "settings.mcp.badge": "Neu",
226
+ "settings.mcp.label": "MCP-Einstellungen",
227
+ "settings.pinned.disable": "Angeheftete Chats deaktivieren",
228
+ "settings.pinned.disabled.description": "Angeheftete Chats sind derzeit deaktiviert.",
229
+ "settings.pinned.enable": "Angeheftete Chats aktivieren",
230
+ "settings.pinned.enabled.description": "Angeheftete Chats sind derzeit aktiviert",
231
+ "sort.alphabeticalAsc": "Name (A-Z)",
232
+ "sort.alphabeticalDesc": "Name (Z-A)",
233
+ "sort.label": "Unterhaltungen sortieren",
234
+ "sort.newest": "Datum (neuestes zuerst)",
235
+ "sort.oldest": "Datum (\xE4ltestes zuerst)",
236
+ "sources.chip.label_one": "{{count}} Quelle",
237
+ "sources.chip.label_other": "{{count}} Quellen",
238
+ "sources.modal.description": "Die folgenden Quellen wurden verwendet, um diese KI-Antwort zu generieren und erg\xE4nzende Informationen bereitzustellen:",
239
+ "sources.modal.title": "Quellen",
240
+ "sources.popover.closeAriaLabel": "Quellen schlie\xDFen",
241
+ "tabs.ariaLabel": "Ansichten des intelligenten Assistenten",
242
+ "tabs.chat": "Chat",
243
+ "tabs.notebooks": "Notizb\xFCcher",
244
+ "tabs.notebooks.devPreview": "Entwicklervorschau",
245
+ "tabs.notebooks.empty": "Inhalte der Notizb\xFCcher kommen hierhin.",
246
+ "toolCall.copyResponse": "Antwort kopieren",
247
+ "toolCall.executing": "Tool wird ausgef\xFChrt...",
248
+ "toolCall.executionTime": "Ausf\xFChrungszeit: ",
249
+ "toolCall.header": "Antwort des Tools: {{toolName}}",
250
+ "toolCall.loading": "Tool wird ausgef\xFChrt...",
251
+ "toolCall.mcpServer": "MCP-Server",
252
+ "toolCall.parameters": "Parameter",
253
+ "toolCall.response": "Antwort",
254
+ "toolCall.showLess": "Weniger anzeigen",
255
+ "toolCall.showMore": "Mehr anzeigen",
256
+ "toolCall.summary": "Hier ist eine Zusammenfassung Ihrer Antwort.",
257
+ "toolCall.thinking": "Hat {{seconds}} Sekunden nachgedacht",
258
+ "tooltip.attach": "Anh\xE4ngen",
259
+ "tooltip.backToBottom": "Zur\xFCck zum Ende",
260
+ "tooltip.backToTop": "Zur\xFCck zum Anfang",
261
+ "tooltip.chatHistoryMenu": "Chatverlauf-Men\xFC",
262
+ "tooltip.close": "Schlie\xDFen",
263
+ "tooltip.collapseHistoryPanel": "Chatverlauf minimieren",
264
+ "tooltip.expandHistoryPanel": "Chatverlauf erweitern",
265
+ "tooltip.fab.close": "Intelligenten Assistenten schlie\xDFen",
266
+ "tooltip.fab.open": "Intelligenten Assistenten \xF6ffnen",
267
+ "tooltip.microphone.active": "\xDCberwachen beenden",
268
+ "tooltip.microphone.inactive": "Mikrofon verwenden",
269
+ "tooltip.quickNewChat": "Neuer Chat",
270
+ "tooltip.responseRecorded": "Antwort aufgezeichnet",
271
+ "tooltip.send": "Senden",
272
+ "user.guest": "Gast",
273
+ "user.loading": "..."
274
+ }
275
+ });
276
+
277
+ export { intelligentAssistantTranslationDe as default };
278
+ //# sourceMappingURL=de.esm.js.map
@@ -0,0 +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 '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': 'Server {{serverName}} konfigurieren',\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.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 'mcp.settings.usingAdminCredential':\n 'Administratoranmeldedaten werden verwendet. Geben Sie einen persönlichen Token ein, um ihn für Ihr Konto zu überschreiben.',\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.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': 'Überschreiben',\n 'notebook.overwrite.modal.description':\n 'Die folgenden Dateien existieren bereits in diesem Notizbuch. Möchten Sie sie mit den neuen Versionen überschreiben?',\n 'notebook.overwrite.modal.title': 'Dateien überschreiben?',\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.browseButton': 'Hochladen',\n 'notebook.upload.modal.dragDropTitle': 'Dateien hierher ziehen und ablegen',\n 'notebook.upload.modal.infoText':\n 'Akzeptierte Dateitypen: .md, .txt, .pdf, .json, .yaml, .log',\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': 'Dokument zum Notizbuch hinzufügen',\n 'notebook.view.close': 'Notizbuch schließen',\n 'notebook.view.documents.add': 'Hinzufügen',\n 'notebook.view.documents.count': '{{count}} Dokumente',\n 'notebook.view.documents.maxReached':\n 'Maximal 10 Dokumente sind erlaubt. Löschen Sie ein Dokument, um ein neues hochzuladen.',\n 'notebook.view.documents.uploading': 'Dokument 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 Dokumenten...',\n 'notebook.view.sidebar.collapse': 'Seitenleiste einklappen',\n 'notebook.view.sidebar.expand': 'Seitenleiste ausklappen',\n 'notebook.view.sidebar.resize': 'Größe der Seitenleiste ändern',\n 'notebook.view.title': 'Unbenanntes Notizbuch',\n 'notebook.view.upload.action': 'Ressource hochladen',\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 'Laden Sie eine Ressource hoch, 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': 'Dokumente',\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.action': 'Senden',\n 'notebooks.rename.description':\n 'Bitte geben Sie den neuen Namen für dieses Notizbuch ein und klicken Sie auf „Senden“, um fortzufahren.',\n 'notebooks.rename.label': 'Neuer Name',\n 'notebooks.rename.placeholder': 'Neuer Name',\n 'notebooks.rename.title': '{{name}} umbenennen?',\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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"}