quidproquo-web-admin 0.1.7 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/Config/Config.js +2 -2
- package/lib/commonjs/Config/Config.js.map +1 -1
- package/lib/commonjs/LogViewer/AdminLogs/AdminLogGrid/AdminLogGrid.d.ts +1 -1
- package/lib/commonjs/LogViewer/AdminLogs/AdminLogGrid/AdminLogGrid.js.map +1 -1
- package/lib/commonjs/LogViewer/AdminLogs/hooks/useLogLogMananagement/useLogLogMananagement.d.ts +1 -1
- package/lib/commonjs/LogViewer/AdminLogs/hooks/useLogLogMananagement/useLogLogMananagement.js.map +1 -1
- package/lib/commonjs/LogViewer/Dashboard.js +2 -2
- package/lib/commonjs/LogViewer/Dashboard.js.map +1 -1
- package/lib/commonjs/LogViewer/LogChat/EventDocAiSegments.d.ts +7 -0
- package/lib/commonjs/LogViewer/LogChat/EventDocAiSegments.js +33 -0
- package/lib/commonjs/LogViewer/LogChat/EventDocAiSegments.js.map +1 -0
- package/lib/commonjs/LogViewer/LogChat/LogChat.d.ts +7 -0
- package/lib/commonjs/LogViewer/LogChat/LogChat.js +63 -0
- package/lib/commonjs/LogViewer/LogChat/LogChat.js.map +1 -0
- package/lib/commonjs/LogViewer/LogChat/eventDocAiLogChatRuntime.d.ts +6 -0
- package/lib/commonjs/LogViewer/LogChat/eventDocAiLogChatRuntime.js +9 -0
- package/lib/commonjs/LogViewer/LogChat/eventDocAiLogChatRuntime.js.map +1 -0
- package/lib/commonjs/LogViewer/LogChat/index.d.ts +1 -0
- package/lib/commonjs/LogViewer/{HelpChat → LogChat}/index.js +1 -1
- package/lib/commonjs/LogViewer/LogChat/index.js.map +1 -0
- package/lib/commonjs/LogViewer/LogChat/logic/askEventDocAiLogChatBoot.d.ts +2 -0
- package/lib/commonjs/LogViewer/LogChat/logic/askEventDocAiLogChatBoot.js +17 -0
- package/lib/commonjs/LogViewer/LogChat/logic/askEventDocAiLogChatBoot.js.map +1 -0
- package/lib/commonjs/LogViewer/LogDialog/LogDialog.js.map +1 -1
- package/lib/commonjs/LogViewer/LogDialog/tabs/HelpTab/HelpTab.js +4 -2
- package/lib/commonjs/LogViewer/LogDialog/tabs/HelpTab/HelpTab.js.map +1 -1
- package/lib/commonjs/LogViewer/LogDialog/tabs/TraceTab/TraceTab.js +2 -2
- package/lib/commonjs/LogViewer/LogDialog/tabs/TraceTab/TraceTab.js.map +1 -1
- package/lib/commonjs/LogViewer/LogMetadataGrid.d.ts +1 -1
- package/lib/commonjs/LogViewer/LogMetadataGrid.js.map +1 -1
- package/lib/commonjs/LogViewer/LogSummary.js +4 -4
- package/lib/commonjs/LogViewer/LogSummary.js.map +1 -1
- package/lib/commonjs/LogViewer/logic/actionComponentMap/webserver/webserverServiceActionComponentMap.js +2 -2
- package/lib/commonjs/LogViewer/logic/actionComponentMap/webserver/webserverServiceActionComponentMap.js.map +1 -1
- package/lib/commonjs/adminApp/VolatileState.d.ts +2 -8
- package/lib/commonjs/adminApp/VolatileState.js +1 -1
- package/lib/commonjs/adminApp/VolatileState.js.map +1 -1
- package/lib/commonjs/adminApp/actionCreators/volatile/askUIVolatileLogLogSearchPartLoaded.d.ts +1 -1
- package/lib/commonjs/adminApp/actionCreators/volatile/askUIVolatileLogLogSearchPartLoaded.js.map +1 -1
- package/lib/commonjs/adminApp/actionCreators/volatile/askUIVolatileServiceNamesLoaded.d.ts +1 -1
- package/lib/commonjs/adminApp/actionCreators/volatile/askUIVolatileServiceNamesLoaded.js +2 -2
- package/lib/commonjs/adminApp/actionCreators/volatile/askUIVolatileServiceNamesLoaded.js.map +1 -1
- package/lib/commonjs/adminApp/actionCreators/volatile/index.d.ts +0 -3
- package/lib/commonjs/adminApp/actionCreators/volatile/index.js +0 -3
- package/lib/commonjs/adminApp/actionCreators/volatile/index.js.map +1 -1
- package/lib/commonjs/adminApp/adminAppRuntime.d.ts +0 -1
- package/lib/commonjs/adminApp/effects/volatile/VolatileEffect.d.ts +0 -3
- package/lib/commonjs/adminApp/effects/volatile/VolatileEffect.js +0 -3
- package/lib/commonjs/adminApp/effects/volatile/VolatileEffect.js.map +1 -1
- package/lib/commonjs/adminApp/effects/volatile/VolatileEffects.d.ts +1 -4
- package/lib/commonjs/adminApp/effects/volatile/VolatileEffects.js.map +1 -1
- package/lib/commonjs/adminApp/effects/volatile/VolatileLogLogSearchPartLoadedEffect.d.ts +1 -1
- package/lib/commonjs/adminApp/effects/volatile/VolatileLogLogSearchPartLoadedEffect.js.map +1 -1
- package/lib/commonjs/adminApp/effects/volatile/VolatileServiceNamesLoadedEffect.d.ts +1 -0
- package/lib/commonjs/adminApp/effects/volatile/VolatileServiceNamesLoadedEffect.js.map +1 -1
- package/lib/commonjs/adminApp/effects/volatile/index.d.ts +0 -3
- package/lib/commonjs/adminApp/effects/volatile/index.js +0 -3
- package/lib/commonjs/adminApp/effects/volatile/index.js.map +1 -1
- package/lib/commonjs/adminApp/hooks/useAdminApp.d.ts +0 -1
- package/lib/commonjs/adminApp/logic/chat/askSendChatMessage.js +3 -17
- package/lib/commonjs/adminApp/logic/chat/askSendChatMessage.js.map +1 -1
- package/lib/commonjs/adminApp/logic/chat/index.d.ts +0 -1
- package/lib/commonjs/adminApp/logic/chat/index.js +0 -1
- package/lib/commonjs/adminApp/logic/chat/index.js.map +1 -1
- package/lib/commonjs/adminApp/logic/config/askLoadServiceNames.js +1 -1
- package/lib/commonjs/adminApp/logic/config/askLoadServiceNames.js.map +1 -1
- package/lib/commonjs/adminApp/logic/search/askRunLogLogSearch.js.map +1 -1
- package/lib/commonjs/adminApp/sharedAdminAppApi.d.ts +0 -2
- package/lib/commonjs/adminApp/sharedAdminAppApi.js +0 -2
- package/lib/commonjs/adminApp/sharedAdminAppApi.js.map +1 -1
- package/lib/commonjs/adminApp/stateUpdaters/volatile/index.d.ts +0 -3
- package/lib/commonjs/adminApp/stateUpdaters/volatile/index.js +0 -3
- package/lib/commonjs/adminApp/stateUpdaters/volatile/index.js.map +1 -1
- package/lib/commonjs/adminApp/stateUpdaters/volatile/logLogSearchPartLoaded.js.map +1 -1
- package/lib/commonjs/adminApp/stateUpdaters/volatile/serviceNamesLoaded.js +1 -1
- package/lib/commonjs/adminApp/stateUpdaters/volatile/serviceNamesLoaded.js.map +1 -1
- package/lib/commonjs/adminApp/volatileReducer.js +0 -6
- package/lib/commonjs/adminApp/volatileReducer.js.map +1 -1
- package/lib/commonjs/types/index.d.ts +0 -3
- package/lib/commonjs/types/index.js +0 -3
- package/lib/commonjs/types/index.js.map +1 -1
- package/lib/esm/Config/Config.js +1 -1
- package/lib/esm/Config/Config.js.map +1 -1
- package/lib/esm/LogViewer/AdminLogs/AdminLogGrid/AdminLogGrid.d.ts +1 -1
- package/lib/esm/LogViewer/AdminLogs/AdminLogGrid/AdminLogGrid.js.map +1 -1
- package/lib/esm/LogViewer/AdminLogs/hooks/useLogLogMananagement/useLogLogMananagement.d.ts +1 -1
- package/lib/esm/LogViewer/AdminLogs/hooks/useLogLogMananagement/useLogLogMananagement.js.map +1 -1
- package/lib/esm/LogViewer/Dashboard.js +1 -1
- package/lib/esm/LogViewer/Dashboard.js.map +1 -1
- package/lib/esm/LogViewer/LogChat/EventDocAiSegments.d.ts +7 -0
- package/lib/esm/LogViewer/LogChat/EventDocAiSegments.js +26 -0
- package/lib/esm/LogViewer/LogChat/EventDocAiSegments.js.map +1 -0
- package/lib/esm/LogViewer/LogChat/LogChat.d.ts +7 -0
- package/lib/esm/LogViewer/LogChat/LogChat.js +59 -0
- package/lib/esm/LogViewer/LogChat/LogChat.js.map +1 -0
- package/lib/esm/LogViewer/LogChat/eventDocAiLogChatRuntime.d.ts +6 -0
- package/lib/esm/LogViewer/LogChat/eventDocAiLogChatRuntime.js +6 -0
- package/lib/esm/LogViewer/LogChat/eventDocAiLogChatRuntime.js.map +1 -0
- package/lib/esm/LogViewer/LogChat/index.d.ts +1 -0
- package/lib/esm/LogViewer/LogChat/index.js +2 -0
- package/lib/esm/LogViewer/LogChat/index.js.map +1 -0
- package/lib/esm/LogViewer/LogChat/logic/askEventDocAiLogChatBoot.d.ts +2 -0
- package/lib/esm/LogViewer/LogChat/logic/askEventDocAiLogChatBoot.js +14 -0
- package/lib/esm/LogViewer/LogChat/logic/askEventDocAiLogChatBoot.js.map +1 -0
- package/lib/esm/LogViewer/LogDialog/LogDialog.js.map +1 -1
- package/lib/esm/LogViewer/LogDialog/tabs/HelpTab/HelpTab.js +4 -2
- package/lib/esm/LogViewer/LogDialog/tabs/HelpTab/HelpTab.js.map +1 -1
- package/lib/esm/LogViewer/LogDialog/tabs/TraceTab/TraceTab.js +1 -1
- package/lib/esm/LogViewer/LogDialog/tabs/TraceTab/TraceTab.js.map +1 -1
- package/lib/esm/LogViewer/LogMetadataGrid.d.ts +1 -1
- package/lib/esm/LogViewer/LogMetadataGrid.js.map +1 -1
- package/lib/esm/LogViewer/LogSummary.js +1 -1
- package/lib/esm/LogViewer/LogSummary.js.map +1 -1
- package/lib/esm/LogViewer/logic/actionComponentMap/webserver/webserverServiceActionComponentMap.js +1 -1
- package/lib/esm/LogViewer/logic/actionComponentMap/webserver/webserverServiceActionComponentMap.js.map +1 -1
- package/lib/esm/adminApp/VolatileState.d.ts +2 -8
- package/lib/esm/adminApp/VolatileState.js +1 -1
- package/lib/esm/adminApp/VolatileState.js.map +1 -1
- package/lib/esm/adminApp/actionCreators/volatile/askUIVolatileLogLogSearchPartLoaded.d.ts +1 -1
- package/lib/esm/adminApp/actionCreators/volatile/askUIVolatileLogLogSearchPartLoaded.js.map +1 -1
- package/lib/esm/adminApp/actionCreators/volatile/askUIVolatileServiceNamesLoaded.d.ts +1 -1
- package/lib/esm/adminApp/actionCreators/volatile/askUIVolatileServiceNamesLoaded.js +2 -2
- package/lib/esm/adminApp/actionCreators/volatile/askUIVolatileServiceNamesLoaded.js.map +1 -1
- package/lib/esm/adminApp/actionCreators/volatile/index.d.ts +0 -3
- package/lib/esm/adminApp/actionCreators/volatile/index.js +0 -3
- package/lib/esm/adminApp/actionCreators/volatile/index.js.map +1 -1
- package/lib/esm/adminApp/adminAppRuntime.d.ts +0 -1
- package/lib/esm/adminApp/effects/volatile/VolatileEffect.d.ts +0 -3
- package/lib/esm/adminApp/effects/volatile/VolatileEffect.js +0 -3
- package/lib/esm/adminApp/effects/volatile/VolatileEffect.js.map +1 -1
- package/lib/esm/adminApp/effects/volatile/VolatileEffects.d.ts +1 -4
- package/lib/esm/adminApp/effects/volatile/VolatileEffects.js.map +1 -1
- package/lib/esm/adminApp/effects/volatile/VolatileLogLogSearchPartLoadedEffect.d.ts +1 -1
- package/lib/esm/adminApp/effects/volatile/VolatileLogLogSearchPartLoadedEffect.js.map +1 -1
- package/lib/esm/adminApp/effects/volatile/VolatileServiceNamesLoadedEffect.d.ts +1 -0
- package/lib/esm/adminApp/effects/volatile/VolatileServiceNamesLoadedEffect.js.map +1 -1
- package/lib/esm/adminApp/effects/volatile/index.d.ts +0 -3
- package/lib/esm/adminApp/effects/volatile/index.js +0 -3
- package/lib/esm/adminApp/effects/volatile/index.js.map +1 -1
- package/lib/esm/adminApp/hooks/useAdminApp.d.ts +0 -1
- package/lib/esm/adminApp/logic/chat/askSendChatMessage.js +3 -17
- package/lib/esm/adminApp/logic/chat/askSendChatMessage.js.map +1 -1
- package/lib/esm/adminApp/logic/chat/index.d.ts +0 -1
- package/lib/esm/adminApp/logic/chat/index.js +0 -1
- package/lib/esm/adminApp/logic/chat/index.js.map +1 -1
- package/lib/esm/adminApp/logic/config/askLoadServiceNames.js +1 -1
- package/lib/esm/adminApp/logic/config/askLoadServiceNames.js.map +1 -1
- package/lib/esm/adminApp/logic/search/askRunLogLogSearch.js.map +1 -1
- package/lib/esm/adminApp/sharedAdminAppApi.d.ts +0 -2
- package/lib/esm/adminApp/sharedAdminAppApi.js +0 -2
- package/lib/esm/adminApp/sharedAdminAppApi.js.map +1 -1
- package/lib/esm/adminApp/stateUpdaters/volatile/index.d.ts +0 -3
- package/lib/esm/adminApp/stateUpdaters/volatile/index.js +0 -3
- package/lib/esm/adminApp/stateUpdaters/volatile/index.js.map +1 -1
- package/lib/esm/adminApp/stateUpdaters/volatile/logLogSearchPartLoaded.js.map +1 -1
- package/lib/esm/adminApp/stateUpdaters/volatile/serviceNamesLoaded.js +1 -0
- package/lib/esm/adminApp/stateUpdaters/volatile/serviceNamesLoaded.js.map +1 -1
- package/lib/esm/adminApp/volatileReducer.js +0 -6
- package/lib/esm/adminApp/volatileReducer.js.map +1 -1
- package/lib/esm/types/index.d.ts +0 -3
- package/lib/esm/types/index.js +0 -3
- package/lib/esm/types/index.js.map +1 -1
- package/package.json +7 -7
- package/lib/commonjs/LogViewer/HelpChat/HelpChat.d.ts +0 -6
- package/lib/commonjs/LogViewer/HelpChat/HelpChat.js +0 -75
- package/lib/commonjs/LogViewer/HelpChat/HelpChat.js.map +0 -1
- package/lib/commonjs/LogViewer/HelpChat/index.d.ts +0 -1
- package/lib/commonjs/LogViewer/HelpChat/index.js.map +0 -1
- package/lib/commonjs/adminApp/actionCreators/volatile/askUIVolatileChatMessageAppended.d.ts +0 -3
- package/lib/commonjs/adminApp/actionCreators/volatile/askUIVolatileChatMessageAppended.js +0 -9
- package/lib/commonjs/adminApp/actionCreators/volatile/askUIVolatileChatMessageAppended.js.map +0 -1
- package/lib/commonjs/adminApp/actionCreators/volatile/askUIVolatileChatMessagesLoaded.d.ts +0 -3
- package/lib/commonjs/adminApp/actionCreators/volatile/askUIVolatileChatMessagesLoaded.js +0 -9
- package/lib/commonjs/adminApp/actionCreators/volatile/askUIVolatileChatMessagesLoaded.js.map +0 -1
- package/lib/commonjs/adminApp/actionCreators/volatile/askUIVolatileChatPendingReplyChanged.d.ts +0 -2
- package/lib/commonjs/adminApp/actionCreators/volatile/askUIVolatileChatPendingReplyChanged.js +0 -9
- package/lib/commonjs/adminApp/actionCreators/volatile/askUIVolatileChatPendingReplyChanged.js.map +0 -1
- package/lib/commonjs/adminApp/effects/volatile/VolatileChatMessageAppendedEffect.d.ts +0 -8
- package/lib/commonjs/adminApp/effects/volatile/VolatileChatMessageAppendedEffect.js +0 -3
- package/lib/commonjs/adminApp/effects/volatile/VolatileChatMessageAppendedEffect.js.map +0 -1
- package/lib/commonjs/adminApp/effects/volatile/VolatileChatMessagesLoadedEffect.d.ts +0 -9
- package/lib/commonjs/adminApp/effects/volatile/VolatileChatMessagesLoadedEffect.js +0 -3
- package/lib/commonjs/adminApp/effects/volatile/VolatileChatMessagesLoadedEffect.js.map +0 -1
- package/lib/commonjs/adminApp/effects/volatile/VolatileChatPendingReplyChangedEffect.d.ts +0 -7
- package/lib/commonjs/adminApp/effects/volatile/VolatileChatPendingReplyChangedEffect.js +0 -3
- package/lib/commonjs/adminApp/effects/volatile/VolatileChatPendingReplyChangedEffect.js.map +0 -1
- package/lib/commonjs/adminApp/logic/chat/askLoadChatMessages.d.ts +0 -2
- package/lib/commonjs/adminApp/logic/chat/askLoadChatMessages.js +0 -16
- package/lib/commonjs/adminApp/logic/chat/askLoadChatMessages.js.map +0 -1
- package/lib/commonjs/adminApp/stateUpdaters/volatile/chatMessageAppended.d.ts +0 -3
- package/lib/commonjs/adminApp/stateUpdaters/volatile/chatMessageAppended.js +0 -10
- package/lib/commonjs/adminApp/stateUpdaters/volatile/chatMessageAppended.js.map +0 -1
- package/lib/commonjs/adminApp/stateUpdaters/volatile/chatMessagesLoaded.d.ts +0 -3
- package/lib/commonjs/adminApp/stateUpdaters/volatile/chatMessagesLoaded.js +0 -14
- package/lib/commonjs/adminApp/stateUpdaters/volatile/chatMessagesLoaded.js.map +0 -1
- package/lib/commonjs/adminApp/stateUpdaters/volatile/chatPendingReplyChanged.d.ts +0 -3
- package/lib/commonjs/adminApp/stateUpdaters/volatile/chatPendingReplyChanged.js +0 -10
- package/lib/commonjs/adminApp/stateUpdaters/volatile/chatPendingReplyChanged.js.map +0 -1
- package/lib/commonjs/types/ListLogChatMessages.d.ts +0 -4
- package/lib/commonjs/types/ListLogChatMessages.js +0 -3
- package/lib/commonjs/types/ListLogChatMessages.js.map +0 -1
- package/lib/commonjs/types/LogChatMessage.d.ts +0 -5
- package/lib/commonjs/types/LogChatMessage.js +0 -3
- package/lib/commonjs/types/LogChatMessage.js.map +0 -1
- package/lib/commonjs/types/SendLogChatMessage.d.ts +0 -4
- package/lib/commonjs/types/SendLogChatMessage.js +0 -3
- package/lib/commonjs/types/SendLogChatMessage.js.map +0 -1
- package/lib/esm/LogViewer/HelpChat/HelpChat.d.ts +0 -6
- package/lib/esm/LogViewer/HelpChat/HelpChat.js +0 -67
- package/lib/esm/LogViewer/HelpChat/HelpChat.js.map +0 -1
- package/lib/esm/LogViewer/HelpChat/index.d.ts +0 -1
- package/lib/esm/LogViewer/HelpChat/index.js +0 -2
- package/lib/esm/LogViewer/HelpChat/index.js.map +0 -1
- package/lib/esm/adminApp/actionCreators/volatile/askUIVolatileChatMessageAppended.d.ts +0 -3
- package/lib/esm/adminApp/actionCreators/volatile/askUIVolatileChatMessageAppended.js +0 -6
- package/lib/esm/adminApp/actionCreators/volatile/askUIVolatileChatMessageAppended.js.map +0 -1
- package/lib/esm/adminApp/actionCreators/volatile/askUIVolatileChatMessagesLoaded.d.ts +0 -3
- package/lib/esm/adminApp/actionCreators/volatile/askUIVolatileChatMessagesLoaded.js +0 -6
- package/lib/esm/adminApp/actionCreators/volatile/askUIVolatileChatMessagesLoaded.js.map +0 -1
- package/lib/esm/adminApp/actionCreators/volatile/askUIVolatileChatPendingReplyChanged.d.ts +0 -2
- package/lib/esm/adminApp/actionCreators/volatile/askUIVolatileChatPendingReplyChanged.js +0 -6
- package/lib/esm/adminApp/actionCreators/volatile/askUIVolatileChatPendingReplyChanged.js.map +0 -1
- package/lib/esm/adminApp/effects/volatile/VolatileChatMessageAppendedEffect.d.ts +0 -8
- package/lib/esm/adminApp/effects/volatile/VolatileChatMessageAppendedEffect.js +0 -2
- package/lib/esm/adminApp/effects/volatile/VolatileChatMessageAppendedEffect.js.map +0 -1
- package/lib/esm/adminApp/effects/volatile/VolatileChatMessagesLoadedEffect.d.ts +0 -9
- package/lib/esm/adminApp/effects/volatile/VolatileChatMessagesLoadedEffect.js +0 -2
- package/lib/esm/adminApp/effects/volatile/VolatileChatMessagesLoadedEffect.js.map +0 -1
- package/lib/esm/adminApp/effects/volatile/VolatileChatPendingReplyChangedEffect.d.ts +0 -7
- package/lib/esm/adminApp/effects/volatile/VolatileChatPendingReplyChangedEffect.js +0 -2
- package/lib/esm/adminApp/effects/volatile/VolatileChatPendingReplyChangedEffect.js.map +0 -1
- package/lib/esm/adminApp/logic/chat/askLoadChatMessages.d.ts +0 -2
- package/lib/esm/adminApp/logic/chat/askLoadChatMessages.js +0 -13
- package/lib/esm/adminApp/logic/chat/askLoadChatMessages.js.map +0 -1
- package/lib/esm/adminApp/stateUpdaters/volatile/chatMessageAppended.d.ts +0 -3
- package/lib/esm/adminApp/stateUpdaters/volatile/chatMessageAppended.js +0 -14
- package/lib/esm/adminApp/stateUpdaters/volatile/chatMessageAppended.js.map +0 -1
- package/lib/esm/adminApp/stateUpdaters/volatile/chatMessagesLoaded.d.ts +0 -3
- package/lib/esm/adminApp/stateUpdaters/volatile/chatMessagesLoaded.js +0 -13
- package/lib/esm/adminApp/stateUpdaters/volatile/chatMessagesLoaded.js.map +0 -1
- package/lib/esm/adminApp/stateUpdaters/volatile/chatPendingReplyChanged.d.ts +0 -3
- package/lib/esm/adminApp/stateUpdaters/volatile/chatPendingReplyChanged.js +0 -14
- package/lib/esm/adminApp/stateUpdaters/volatile/chatPendingReplyChanged.js.map +0 -1
- package/lib/esm/types/ListLogChatMessages.d.ts +0 -4
- package/lib/esm/types/ListLogChatMessages.js +0 -2
- package/lib/esm/types/ListLogChatMessages.js.map +0 -1
- package/lib/esm/types/LogChatMessage.d.ts +0 -5
- package/lib/esm/types/LogChatMessage.js +0 -2
- package/lib/esm/types/LogChatMessage.js.map +0 -1
- package/lib/esm/types/SendLogChatMessage.d.ts +0 -4
- package/lib/esm/types/SendLogChatMessage.js +0 -2
- package/lib/esm/types/SendLogChatMessage.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogDialog.js","sourceRoot":"","sources":["../../../../src/LogViewer/LogDialog/LogDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useBaseUrlResolvers, useStateUpdater } from 'quidproquo-web-react';\n\nimport { AppBar, Button, Dialog, DialogActions, DialogContent, DialogTitle, LinearProgress, Tab, Tabs } from '@mui/material';\n\nimport { apiRequestPost } from '../../logic';\nimport { EventTimeline } from '../EventTimeline'; // Add this import\nimport { HelpChat } from '../HelpChat';\nimport { useLogTreeData } from '../hooks';\nimport { LogCorrelations } from '../LogCorrelations';\nimport { LogRawJson } from '../LogRawJson';\nimport { LogSummary } from '../LogSummary';\nimport { useLoadedStoryResult, useLogDialogStateManagement } from './hooks';\nimport { HelpTab, LogDetailsTab, NotesTab, RawTab, TimelineTab, TraceTab, TreeTab } from './tabs';\n\ninterface LogDialogProps {\n open: boolean;\n logCorrelation: string;\n handleClose: () => void;\n storyResultMetadatas: any[];\n setSelectedLogCorrelation: (logCorrelation: string) => void;\n}\n\nfunction downloadJson(json: string, filename: string): void {\n const blob = new Blob([json], { type: 'application/json' });\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n\n link.href = url;\n link.download = filename;\n link.click();\n\n // The URL.revokeObjectURL() method releases an existing object URL\n URL.revokeObjectURL(url);\n}\n\nconst getTabStyle = (tabIndex: number, selectedTab: number) => ({\n display: selectedTab === tabIndex ? 'block' : 'none',\n height: '100%',\n});\n\nexport const LogDialog = ({ logCorrelation, open, handleClose, setSelectedLogCorrelation }: LogDialogProps) => {\n const [logDialogState, logDialogStateApi] = useLogDialogStateManagement();\n const asyncLog = useLoadedStoryResult(logCorrelation);\n const urlResolvers = useBaseUrlResolvers();\n\n const handleExecute = async () => {\n if (asyncLog.log) {\n await apiRequestPost('http://localhost:8080/admin/service/log/execute', asyncLog.log, urlResolvers.getApiUrl());\n }\n };\n\n const handleTabChange = (event: React.SyntheticEvent, newValue: number) => {\n logDialogStateApi.setSelectedTab(newValue);\n };\n\n const treeApi = useLogTreeData(logCorrelation, false);\n\n return (\n <Dialog\n aria-describedby=\"scroll-dialog-description\"\n aria-labelledby=\"scroll-dialog-title\"\n fullWidth={true}\n maxWidth={false}\n onClose={handleClose}\n open={open}\n PaperProps={{\n style: {\n width: '90%',\n height: '90%',\n maxHeight: '90%',\n maxWidth: '90%',\n },\n }}\n scroll={'paper'}\n >\n <DialogTitle id=\"scroll-dialog-title\">Log Details - {logCorrelation}</DialogTitle>\n <AppBar color=\"primary\" position=\"sticky\">\n <Tabs indicatorColor=\"secondary\" onChange={handleTabChange} textColor=\"inherit\" value={logDialogState.selectedTab}>\n <Tab label=\"Log Details\" />\n <Tab label=\"Tree\" />\n <Tab label=\"Timeline\" />\n <Tab label=\"Notes\" />\n <Tab label=\"Raw JSON\" />\n <Tab label=\"Trace\" />\n <Tab label=\"Help\" />\n </Tabs>\n </AppBar>\n <DialogContent\n dividers={true}\n sx={{\n minHeight: '150px',\n overflowY: 'scroll',\n }}\n >\n {asyncLog.isLoading && <LinearProgress />}\n <div style={getTabStyle(logDialogState.selectedTab, 0)}>\n <LogDetailsTab log={asyncLog} logDialogState={logDialogState} logDialogStateApi={logDialogStateApi} />\n </div>\n <div style={getTabStyle(logDialogState.selectedTab, 1)}>\n <TreeTab\n isVisible={logDialogState.selectedTab === 1}\n log={asyncLog}\n setSelectedLogCorrelation={setSelectedLogCorrelation}\n treeApi={treeApi}\n />\n </div>\n <div style={getTabStyle(logDialogState.selectedTab, 2)}>\n <TimelineTab\n isVisible={logDialogState.selectedTab === 2}\n log={asyncLog}\n setSelectedLogCorrelation={setSelectedLogCorrelation}\n treeApi={treeApi}\n />\n </div>\n <div style={getTabStyle(logDialogState.selectedTab, 3)}>\n <NotesTab log={asyncLog} />\n </div>\n <div style={getTabStyle(logDialogState.selectedTab, 4)}>\n <RawTab log={asyncLog} />\n </div>\n <div style={getTabStyle(logDialogState.selectedTab, 5)}>\n {/* keyed on the correlation so walking the tree remounts the tab with fresh\n trace state instead of showing the previous log's trace */}\n <TraceTab key={logCorrelation} isVisible={logDialogState.selectedTab === 5} log={asyncLog} />\n </div>\n <div style={getTabStyle(logDialogState.selectedTab, 6)}>\n <HelpTab log={asyncLog} />\n </div>\n </DialogContent>\n\n <DialogActions>\n <Button disabled={asyncLog.isLoading} onClick={(event) => treeApi.refreshTreeData()} style={getTabStyle(logDialogState.selectedTab, 1)}>\n Refresh Tree\n </Button>\n <Button disabled={asyncLog.isLoading} onClick={(event) => treeApi.refreshTreeData()} style={getTabStyle(logDialogState.selectedTab, 2)}>\n Refresh Timeline\n </Button>\n <Button\n disabled={asyncLog.isLoading}\n onClick={(event) => {\n if (asyncLog.log) {\n downloadJson(JSON.stringify(asyncLog.log, null, 2), `${asyncLog.log.correlation}.json`);\n }\n event.stopPropagation();\n }}\n >\n Download\n </Button>\n {asyncLog.log && (\n <Button disabled={asyncLog.isLoading} onClick={handleExecute}>\n Execute\n </Button>\n )}\n <Button onClick={handleClose}>Close</Button>\n </DialogActions>\n </Dialog>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"LogDialog.js","sourceRoot":"","sources":["../../../../src/LogViewer/LogDialog/LogDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useBaseUrlResolvers, useStateUpdater } from 'quidproquo-web-react';\n\nimport { AppBar, Button, Dialog, DialogActions, DialogContent, DialogTitle, LinearProgress, Tab, Tabs } from '@mui/material';\n\nimport { apiRequestPost } from '../../logic';\nimport { EventTimeline } from '../EventTimeline'; // Add this import\nimport { useLogTreeData } from '../hooks';\nimport { LogCorrelations } from '../LogCorrelations';\nimport { LogRawJson } from '../LogRawJson';\nimport { LogSummary } from '../LogSummary';\nimport { useLoadedStoryResult, useLogDialogStateManagement } from './hooks';\nimport { HelpTab, LogDetailsTab, NotesTab, RawTab, TimelineTab, TraceTab, TreeTab } from './tabs';\n\ninterface LogDialogProps {\n open: boolean;\n logCorrelation: string;\n handleClose: () => void;\n storyResultMetadatas: any[];\n setSelectedLogCorrelation: (logCorrelation: string) => void;\n}\n\nfunction downloadJson(json: string, filename: string): void {\n const blob = new Blob([json], { type: 'application/json' });\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n\n link.href = url;\n link.download = filename;\n link.click();\n\n // The URL.revokeObjectURL() method releases an existing object URL\n URL.revokeObjectURL(url);\n}\n\nconst getTabStyle = (tabIndex: number, selectedTab: number) => ({\n display: selectedTab === tabIndex ? 'block' : 'none',\n height: '100%',\n});\n\nexport const LogDialog = ({ logCorrelation, open, handleClose, setSelectedLogCorrelation }: LogDialogProps) => {\n const [logDialogState, logDialogStateApi] = useLogDialogStateManagement();\n const asyncLog = useLoadedStoryResult(logCorrelation);\n const urlResolvers = useBaseUrlResolvers();\n\n const handleExecute = async () => {\n if (asyncLog.log) {\n await apiRequestPost('http://localhost:8080/admin/service/log/execute', asyncLog.log, urlResolvers.getApiUrl());\n }\n };\n\n const handleTabChange = (event: React.SyntheticEvent, newValue: number) => {\n logDialogStateApi.setSelectedTab(newValue);\n };\n\n const treeApi = useLogTreeData(logCorrelation, false);\n\n return (\n <Dialog\n aria-describedby=\"scroll-dialog-description\"\n aria-labelledby=\"scroll-dialog-title\"\n fullWidth={true}\n maxWidth={false}\n onClose={handleClose}\n open={open}\n PaperProps={{\n style: {\n width: '90%',\n height: '90%',\n maxHeight: '90%',\n maxWidth: '90%',\n },\n }}\n scroll={'paper'}\n >\n <DialogTitle id=\"scroll-dialog-title\">Log Details - {logCorrelation}</DialogTitle>\n <AppBar color=\"primary\" position=\"sticky\">\n <Tabs indicatorColor=\"secondary\" onChange={handleTabChange} textColor=\"inherit\" value={logDialogState.selectedTab}>\n <Tab label=\"Log Details\" />\n <Tab label=\"Tree\" />\n <Tab label=\"Timeline\" />\n <Tab label=\"Notes\" />\n <Tab label=\"Raw JSON\" />\n <Tab label=\"Trace\" />\n <Tab label=\"Help\" />\n </Tabs>\n </AppBar>\n <DialogContent\n dividers={true}\n sx={{\n minHeight: '150px',\n overflowY: 'scroll',\n }}\n >\n {asyncLog.isLoading && <LinearProgress />}\n <div style={getTabStyle(logDialogState.selectedTab, 0)}>\n <LogDetailsTab log={asyncLog} logDialogState={logDialogState} logDialogStateApi={logDialogStateApi} />\n </div>\n <div style={getTabStyle(logDialogState.selectedTab, 1)}>\n <TreeTab\n isVisible={logDialogState.selectedTab === 1}\n log={asyncLog}\n setSelectedLogCorrelation={setSelectedLogCorrelation}\n treeApi={treeApi}\n />\n </div>\n <div style={getTabStyle(logDialogState.selectedTab, 2)}>\n <TimelineTab\n isVisible={logDialogState.selectedTab === 2}\n log={asyncLog}\n setSelectedLogCorrelation={setSelectedLogCorrelation}\n treeApi={treeApi}\n />\n </div>\n <div style={getTabStyle(logDialogState.selectedTab, 3)}>\n <NotesTab log={asyncLog} />\n </div>\n <div style={getTabStyle(logDialogState.selectedTab, 4)}>\n <RawTab log={asyncLog} />\n </div>\n <div style={getTabStyle(logDialogState.selectedTab, 5)}>\n {/* keyed on the correlation so walking the tree remounts the tab with fresh\n trace state instead of showing the previous log's trace */}\n <TraceTab key={logCorrelation} isVisible={logDialogState.selectedTab === 5} log={asyncLog} />\n </div>\n <div style={getTabStyle(logDialogState.selectedTab, 6)}>\n <HelpTab log={asyncLog} />\n </div>\n </DialogContent>\n\n <DialogActions>\n <Button disabled={asyncLog.isLoading} onClick={(event) => treeApi.refreshTreeData()} style={getTabStyle(logDialogState.selectedTab, 1)}>\n Refresh Tree\n </Button>\n <Button disabled={asyncLog.isLoading} onClick={(event) => treeApi.refreshTreeData()} style={getTabStyle(logDialogState.selectedTab, 2)}>\n Refresh Timeline\n </Button>\n <Button\n disabled={asyncLog.isLoading}\n onClick={(event) => {\n if (asyncLog.log) {\n downloadJson(JSON.stringify(asyncLog.log, null, 2), `${asyncLog.log.correlation}.json`);\n }\n event.stopPropagation();\n }}\n >\n Download\n </Button>\n {asyncLog.log && (\n <Button disabled={asyncLog.isLoading} onClick={handleExecute}>\n Execute\n </Button>\n )}\n <Button onClick={handleClose}>Close</Button>\n </DialogActions>\n </Dialog>\n );\n};\n"]}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { useVolatileState } from '../../../../adminApp';
|
|
3
|
+
import { LogChat } from '../../../LogChat';
|
|
3
4
|
export const HelpTab = ({ log }) => {
|
|
4
|
-
|
|
5
|
+
const volatile = useVolatileState();
|
|
6
|
+
return _jsx(LogChat, { logCorrelation: log.logCorrelation, logServiceName: volatile.logServiceName });
|
|
5
7
|
};
|
|
6
8
|
//# sourceMappingURL=HelpTab.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HelpTab.js","sourceRoot":"","sources":["../../../../../../src/LogViewer/LogDialog/tabs/HelpTab/HelpTab.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"HelpTab.js","sourceRoot":"","sources":["../../../../../../src/LogViewer/LogDialog/tabs/HelpTab/HelpTab.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAO3C,MAAM,CAAC,MAAM,OAAO,GAA2B,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IACzD,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IAEpC,OAAO,KAAC,OAAO,IAAC,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE,cAAc,EAAE,QAAQ,CAAC,cAAc,GAAI,CAAC;AAClG,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport { useVolatileState } from '../../../../adminApp';\nimport { LogChat } from '../../../LogChat';\nimport { AsyncStoryState } from '../../hooks';\n\ninterface HelpTabProps {\n log: AsyncStoryState;\n}\n\nexport const HelpTab: React.FC<HelpTabProps> = ({ log }) => {\n const volatile = useVolatileState();\n\n return <LogChat logCorrelation={log.logCorrelation} logServiceName={volatile.logServiceName} />;\n};\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { QpqRuntimeType } from 'quidproquo-core';
|
|
3
|
+
import { WebSocketQueueQpqAdminServerMessageEventType } from 'quidproquo-features';
|
|
3
4
|
import { useAuthAccessToken, useBaseUrlResolvers, useSubscribeToWebSocketEvent } from 'quidproquo-web-react';
|
|
4
|
-
import { WebSocketQueueQpqAdminServerMessageEventType } from 'quidproquo-webserver';
|
|
5
5
|
import { useEffect, useRef, useState } from 'react';
|
|
6
6
|
import TroubleshootIcon from '@mui/icons-material/Troubleshoot';
|
|
7
7
|
import { Alert, Box, Button, Checkbox, FormControlLabel, LinearProgress, Tooltip, Typography } from '@mui/material';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TraceTab.js","sourceRoot":"","sources":["../../../../../../src/LogViewer/LogDialog/tabs/TraceTab/TraceTab.tsx"],"names":[],"mappings":"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","sourcesContent":["import { QpqExecutionTrace, QpqRuntimeType } from 'quidproquo-core';\nimport { useAuthAccessToken, useBaseUrlResolvers, useSubscribeToWebSocketEvent } from 'quidproquo-web-react';\nimport { WebSocketQueueQpqAdminServerEventMessageTraceDone, WebSocketQueueQpqAdminServerMessageEventType } from 'quidproquo-webserver';\n\nimport React, { useEffect, useRef, useState } from 'react';\nimport TroubleshootIcon from '@mui/icons-material/Troubleshoot';\nimport { Alert, Box, Button, Checkbox, FormControlLabel, LinearProgress, Tooltip, Typography } from '@mui/material';\n\nimport { getLogTrace } from '../../../logic';\nimport { TraceViewer } from '../../../TraceViewer';\nimport { AsyncStoryState } from '../../hooks';\nimport { MovedToColdStorage } from '../../MovedToColdStorage';\n\ninterface TraceTabProps {\n log: AsyncStoryState;\n isVisible: boolean;\n}\n\n// Backstop for a missed TraceDone websocket message (reconnect gaps, dev servers\n// without the admin socket). checkOnly polls never trigger trace runs.\nconst PENDING_POLL_MS = 15_000;\n\n// Async trace flow: the first open only checks for a stored trace — found ones load\n// immediately, otherwise an explainer with a Begin Trace button is shown. Beginning a\n// trace kicks off a fire-and-forget run in the owning service and this tab waits for\n// its TraceDone websocket push (with a slow checkOnly poll as a fallback). See\n// trace-replay-plan.md.\nexport const TraceTab: React.FC<TraceTabProps> = ({ log, isVisible }) => {\n const urlResolvers = useBaseUrlResolvers();\n const accessToken = useAuthAccessToken();\n\n const [trace, setTrace] = useState<QpqExecutionTrace | undefined>(undefined);\n const [isWaiting, setIsWaiting] = useState(false);\n const [traceError, setTraceError] = useState<string | undefined>(undefined);\n const [hasRequested, setHasRequested] = useState(false);\n const [hasCheckedForStoredTrace, setHasCheckedForStoredTrace] = useState(false);\n\n // \"My code only\" — held here so Begin Trace / Re-run Trace can send it: a trace with\n // it on sets no breakpoints outside the user's own code. Every step pause freezes the\n // replay for several inspector round trips, so full traces of real bundles burn the\n // whole wall-clock budget on framework glue — own-code-only is the sane default.\n const [hideExternalSteps, setHideExternalSteps] = useState(true);\n\n // The request a stale async response must not clobber (rapid re-runs, dialog reuse)\n const requestVersionRef = useRef(0);\n\n const requestTrace = async (options: { refresh?: boolean; checkOnly?: boolean; onlyOwnCode?: boolean }) => {\n const requestVersion = ++requestVersionRef.current;\n if (!options.checkOnly) {\n setIsWaiting(true);\n setTraceError(undefined);\n }\n\n try {\n const result = await getLogTrace(urlResolvers.getApiUrl(), log.logCorrelation, options, accessToken);\n if (requestVersion !== requestVersionRef.current) {\n return;\n }\n\n if (result.trace) {\n setTrace(result.trace);\n setIsWaiting(false);\n } else if (result.pending && !options.checkOnly) {\n // check=true reports pending whenever no trace is stored — the server can't\n // tell idle from in-flight — so only a real trace request may start waiting\n setIsWaiting(true);\n } else if (!options.checkOnly) {\n setTraceError('No trace was produced for this log');\n setIsWaiting(false);\n }\n } catch (error) {\n if (requestVersion !== requestVersionRef.current) {\n return;\n }\n setTraceError(error instanceof Error ? error.message : String(error));\n setIsWaiting(false);\n }\n };\n\n useEffect(() => {\n if (isVisible && !hasRequested && !log.isLoading && !log.isLogInColdStorage) {\n setHasRequested(true);\n // First open never starts a trace — it only loads a stored one; starting one is\n // the explicit Begin Trace action below\n requestTrace({ checkOnly: true }).finally(() => setHasCheckedForStoredTrace(true));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isVisible, hasRequested, log.isLoading, log.isLogInColdStorage]);\n\n // The owning service finished tracing — the log service pushed the result\n useSubscribeToWebSocketEvent(\n WebSocketQueueQpqAdminServerMessageEventType.TraceDone,\n (webSocketService, message: WebSocketQueueQpqAdminServerEventMessageTraceDone) => {\n if (message.payload.correlation !== log.logCorrelation || !isWaiting) {\n return;\n }\n\n if (message.payload.succeeded) {\n requestTrace({ checkOnly: true });\n } else {\n setTraceError(message.payload.errorText || 'Trace failed');\n setIsWaiting(false);\n }\n },\n );\n\n // Poll fallback while waiting — checkOnly, so it can never stack trace runs\n useEffect(() => {\n if (!isWaiting) {\n return;\n }\n const pollTimer = setInterval(() => requestTrace({ checkOnly: true }), PENDING_POLL_MS);\n return () => clearInterval(pollTimer);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isWaiting]);\n\n if (log.isLoading) {\n return <div>Loading...</div>;\n }\n\n if (log.isLogInColdStorage) {\n return <MovedToColdStorage guid={log.logCorrelation} />;\n }\n\n if (isWaiting) {\n return (\n <Box sx={{ p: 2 }}>\n <Typography sx={{ mb: 1 }} variant=\"body2\">\n Tracing in {log.log?.moduleName ? `the ${log.log.moduleName} service` : 'the owning service'} — replaying the log and recording every\n statement. This can take a minute; the result appears here when it lands.\n </Typography>\n <LinearProgress />\n </Box>\n );\n }\n\n if (traceError) {\n return (\n <Box sx={{ p: 2 }}>\n <Alert\n action={\n <Button color=\"inherit\" onClick={() => requestTrace({ refresh: true, onlyOwnCode: hideExternalSteps })} size=\"small\">\n Retry\n </Button>\n }\n severity=\"error\"\n >\n {traceError}\n </Alert>\n </Box>\n );\n }\n\n if (!trace) {\n if (!hasCheckedForStoredTrace) {\n return null;\n }\n\n // No stored trace — explain what tracing is and let the user start one explicitly.\n // Begin Trace deliberately leaves refresh false so a trace that landed since the\n // check is served straight from storage instead of re-running.\n const isTraceable = log.log?.runtimeType === QpqRuntimeType.EXECUTE_STORY;\n\n return (\n <Box sx={{ alignItems: 'center', display: 'flex', height: '100%', justifyContent: 'center', p: 3 }}>\n <Box sx={{ maxWidth: 560, textAlign: 'center' }}>\n <TroubleshootIcon color=\"primary\" sx={{ fontSize: 56, mb: 1 }} />\n <Typography gutterBottom variant=\"h6\">\n Step-through execution trace\n </Typography>\n <Typography color=\"text.secondary\" sx={{ mb: 3 }} variant=\"body2\">\n A trace replays this log inside the service that ran it, recording every statement it executes and the local variables at each step — then\n you can scrub through the run line by line, like a time-travel debugger for exactly what happened.\n </Typography>\n {!isTraceable && (\n <Alert severity=\"warning\" sx={{ mb: 3, textAlign: 'left' }}>\n Only {QpqRuntimeType.EXECUTE_STORY} logs can be traced — this is a {log.log?.runtimeType || 'different'} log. Use the Tree tab to walk\n down to the {QpqRuntimeType.EXECUTE_STORY} runs it triggered and trace those instead.\n </Alert>\n )}\n {isTraceable && (\n <Box sx={{ mb: 1 }}>\n <FormControlLabel\n control={<Checkbox checked={hideExternalSteps} onChange={(event) => setHideExternalSteps(event.target.checked)} size=\"small\" />}\n label={\n <Typography variant=\"body2\">\n My code only — trace just this service's own source (much faster; framework internals get no steps)\n </Typography>\n }\n />\n </Box>\n )}\n <Button disabled={!isTraceable} onClick={() => requestTrace({ onlyOwnCode: hideExternalSteps })} variant=\"contained\">\n Begin Trace\n </Button>\n {isTraceable && (\n <Typography color=\"text.secondary\" display=\"block\" sx={{ mt: 1.5 }} variant=\"caption\">\n Runs in {log.log?.moduleName ? `the ${log.log.moduleName} service` : 'the owning service'} and can take a minute.\n </Typography>\n )}\n </Box>\n </Box>\n );\n }\n\n return (\n <Box sx={{ height: '100%' }}>\n <TraceViewer\n actions={\n <Tooltip\n title={hideExternalSteps ? 'Re-traces with breakpoints only in your own code — the whole step budget goes to your statements' : ''}\n >\n <Button onClick={() => requestTrace({ refresh: true, onlyOwnCode: hideExternalSteps })} size=\"small\" sx={{ flexShrink: 0 }}>\n Re-run Trace{hideExternalSteps ? ' (my code only)' : ''}\n </Button>\n </Tooltip>\n }\n hideExternalSteps={hideExternalSteps}\n onHideExternalStepsChange={setHideExternalSteps}\n trace={trace}\n />\n </Box>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"TraceTab.js","sourceRoot":"","sources":["../../../../../../src/LogViewer/LogDialog/tabs/TraceTab/TraceTab.tsx"],"names":[],"mappings":"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","sourcesContent":["import { QpqExecutionTrace, QpqRuntimeType } from 'quidproquo-core';\nimport { WebSocketQueueQpqAdminServerEventMessageTraceDone, WebSocketQueueQpqAdminServerMessageEventType } from 'quidproquo-features';\nimport { useAuthAccessToken, useBaseUrlResolvers, useSubscribeToWebSocketEvent } from 'quidproquo-web-react';\n\nimport React, { useEffect, useRef, useState } from 'react';\nimport TroubleshootIcon from '@mui/icons-material/Troubleshoot';\nimport { Alert, Box, Button, Checkbox, FormControlLabel, LinearProgress, Tooltip, Typography } from '@mui/material';\n\nimport { getLogTrace } from '../../../logic';\nimport { TraceViewer } from '../../../TraceViewer';\nimport { AsyncStoryState } from '../../hooks';\nimport { MovedToColdStorage } from '../../MovedToColdStorage';\n\ninterface TraceTabProps {\n log: AsyncStoryState;\n isVisible: boolean;\n}\n\n// Backstop for a missed TraceDone websocket message (reconnect gaps, dev servers\n// without the admin socket). checkOnly polls never trigger trace runs.\nconst PENDING_POLL_MS = 15_000;\n\n// Async trace flow: the first open only checks for a stored trace — found ones load\n// immediately, otherwise an explainer with a Begin Trace button is shown. Beginning a\n// trace kicks off a fire-and-forget run in the owning service and this tab waits for\n// its TraceDone websocket push (with a slow checkOnly poll as a fallback). See\n// trace-replay-plan.md.\nexport const TraceTab: React.FC<TraceTabProps> = ({ log, isVisible }) => {\n const urlResolvers = useBaseUrlResolvers();\n const accessToken = useAuthAccessToken();\n\n const [trace, setTrace] = useState<QpqExecutionTrace | undefined>(undefined);\n const [isWaiting, setIsWaiting] = useState(false);\n const [traceError, setTraceError] = useState<string | undefined>(undefined);\n const [hasRequested, setHasRequested] = useState(false);\n const [hasCheckedForStoredTrace, setHasCheckedForStoredTrace] = useState(false);\n\n // \"My code only\" — held here so Begin Trace / Re-run Trace can send it: a trace with\n // it on sets no breakpoints outside the user's own code. Every step pause freezes the\n // replay for several inspector round trips, so full traces of real bundles burn the\n // whole wall-clock budget on framework glue — own-code-only is the sane default.\n const [hideExternalSteps, setHideExternalSteps] = useState(true);\n\n // The request a stale async response must not clobber (rapid re-runs, dialog reuse)\n const requestVersionRef = useRef(0);\n\n const requestTrace = async (options: { refresh?: boolean; checkOnly?: boolean; onlyOwnCode?: boolean }) => {\n const requestVersion = ++requestVersionRef.current;\n if (!options.checkOnly) {\n setIsWaiting(true);\n setTraceError(undefined);\n }\n\n try {\n const result = await getLogTrace(urlResolvers.getApiUrl(), log.logCorrelation, options, accessToken);\n if (requestVersion !== requestVersionRef.current) {\n return;\n }\n\n if (result.trace) {\n setTrace(result.trace);\n setIsWaiting(false);\n } else if (result.pending && !options.checkOnly) {\n // check=true reports pending whenever no trace is stored — the server can't\n // tell idle from in-flight — so only a real trace request may start waiting\n setIsWaiting(true);\n } else if (!options.checkOnly) {\n setTraceError('No trace was produced for this log');\n setIsWaiting(false);\n }\n } catch (error) {\n if (requestVersion !== requestVersionRef.current) {\n return;\n }\n setTraceError(error instanceof Error ? error.message : String(error));\n setIsWaiting(false);\n }\n };\n\n useEffect(() => {\n if (isVisible && !hasRequested && !log.isLoading && !log.isLogInColdStorage) {\n setHasRequested(true);\n // First open never starts a trace — it only loads a stored one; starting one is\n // the explicit Begin Trace action below\n requestTrace({ checkOnly: true }).finally(() => setHasCheckedForStoredTrace(true));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isVisible, hasRequested, log.isLoading, log.isLogInColdStorage]);\n\n // The owning service finished tracing — the log service pushed the result\n useSubscribeToWebSocketEvent(\n WebSocketQueueQpqAdminServerMessageEventType.TraceDone,\n (webSocketService, message: WebSocketQueueQpqAdminServerEventMessageTraceDone) => {\n if (message.payload.correlation !== log.logCorrelation || !isWaiting) {\n return;\n }\n\n if (message.payload.succeeded) {\n requestTrace({ checkOnly: true });\n } else {\n setTraceError(message.payload.errorText || 'Trace failed');\n setIsWaiting(false);\n }\n },\n );\n\n // Poll fallback while waiting — checkOnly, so it can never stack trace runs\n useEffect(() => {\n if (!isWaiting) {\n return;\n }\n const pollTimer = setInterval(() => requestTrace({ checkOnly: true }), PENDING_POLL_MS);\n return () => clearInterval(pollTimer);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isWaiting]);\n\n if (log.isLoading) {\n return <div>Loading...</div>;\n }\n\n if (log.isLogInColdStorage) {\n return <MovedToColdStorage guid={log.logCorrelation} />;\n }\n\n if (isWaiting) {\n return (\n <Box sx={{ p: 2 }}>\n <Typography sx={{ mb: 1 }} variant=\"body2\">\n Tracing in {log.log?.moduleName ? `the ${log.log.moduleName} service` : 'the owning service'} — replaying the log and recording every\n statement. This can take a minute; the result appears here when it lands.\n </Typography>\n <LinearProgress />\n </Box>\n );\n }\n\n if (traceError) {\n return (\n <Box sx={{ p: 2 }}>\n <Alert\n action={\n <Button color=\"inherit\" onClick={() => requestTrace({ refresh: true, onlyOwnCode: hideExternalSteps })} size=\"small\">\n Retry\n </Button>\n }\n severity=\"error\"\n >\n {traceError}\n </Alert>\n </Box>\n );\n }\n\n if (!trace) {\n if (!hasCheckedForStoredTrace) {\n return null;\n }\n\n // No stored trace — explain what tracing is and let the user start one explicitly.\n // Begin Trace deliberately leaves refresh false so a trace that landed since the\n // check is served straight from storage instead of re-running.\n const isTraceable = log.log?.runtimeType === QpqRuntimeType.EXECUTE_STORY;\n\n return (\n <Box sx={{ alignItems: 'center', display: 'flex', height: '100%', justifyContent: 'center', p: 3 }}>\n <Box sx={{ maxWidth: 560, textAlign: 'center' }}>\n <TroubleshootIcon color=\"primary\" sx={{ fontSize: 56, mb: 1 }} />\n <Typography gutterBottom variant=\"h6\">\n Step-through execution trace\n </Typography>\n <Typography color=\"text.secondary\" sx={{ mb: 3 }} variant=\"body2\">\n A trace replays this log inside the service that ran it, recording every statement it executes and the local variables at each step — then\n you can scrub through the run line by line, like a time-travel debugger for exactly what happened.\n </Typography>\n {!isTraceable && (\n <Alert severity=\"warning\" sx={{ mb: 3, textAlign: 'left' }}>\n Only {QpqRuntimeType.EXECUTE_STORY} logs can be traced — this is a {log.log?.runtimeType || 'different'} log. Use the Tree tab to walk\n down to the {QpqRuntimeType.EXECUTE_STORY} runs it triggered and trace those instead.\n </Alert>\n )}\n {isTraceable && (\n <Box sx={{ mb: 1 }}>\n <FormControlLabel\n control={<Checkbox checked={hideExternalSteps} onChange={(event) => setHideExternalSteps(event.target.checked)} size=\"small\" />}\n label={\n <Typography variant=\"body2\">\n My code only — trace just this service's own source (much faster; framework internals get no steps)\n </Typography>\n }\n />\n </Box>\n )}\n <Button disabled={!isTraceable} onClick={() => requestTrace({ onlyOwnCode: hideExternalSteps })} variant=\"contained\">\n Begin Trace\n </Button>\n {isTraceable && (\n <Typography color=\"text.secondary\" display=\"block\" sx={{ mt: 1.5 }} variant=\"caption\">\n Runs in {log.log?.moduleName ? `the ${log.log.moduleName} service` : 'the owning service'} and can take a minute.\n </Typography>\n )}\n </Box>\n </Box>\n );\n }\n\n return (\n <Box sx={{ height: '100%' }}>\n <TraceViewer\n actions={\n <Tooltip\n title={hideExternalSteps ? 'Re-traces with breakpoints only in your own code — the whole step budget goes to your statements' : ''}\n >\n <Button onClick={() => requestTrace({ refresh: true, onlyOwnCode: hideExternalSteps })} size=\"small\" sx={{ flexShrink: 0 }}>\n Re-run Trace{hideExternalSteps ? ' (my code only)' : ''}\n </Button>\n </Tooltip>\n }\n hideExternalSteps={hideExternalSteps}\n onHideExternalStepsChange={setHideExternalSteps}\n trace={trace}\n />\n </Box>\n );\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogMetadataGrid.js","sourceRoot":"","sources":["../../../src/LogViewer/LogMetadataGrid.tsx"],"names":[],"mappings":"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","sourcesContent":["import { LogMetadata } from 'quidproquo-
|
|
1
|
+
{"version":3,"file":"LogMetadataGrid.js","sourceRoot":"","sources":["../../../src/LogViewer/LogMetadataGrid.tsx"],"names":[],"mappings":"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","sourcesContent":["import { LogMetadata } from 'quidproquo-features';\n\nimport LinearProgress from '@mui/material/LinearProgress';\nimport { DataGrid, GridColDef, GridRenderCellParams, GridRowClassNameParams } from '@mui/x-data-grid';\n\nimport { CorrelationOpenSource, getSearchProgress, logSearchKey, useAdminApp, useSessionState, useVolatileState } from '../adminApp';\nimport { DataGridPagination } from '../components/DataGridPagination/DataGridPagination';\nimport { DateCell } from '../components/DateCell/DateCell';\nimport { LogDialog } from './LogDialog';\n\nconst formatTime = (ms: number) => {\n if (ms < 1000) return `${ms}ms`;\n const sec = ms / 1000;\n if (sec < 60) return `${sec.toFixed(1)}s`;\n const min = sec / 60;\n if (min < 60) return `${min.toFixed(1)}m`;\n const hr = min / 60;\n if (hr < 24) return `${hr.toFixed(1)}h`;\n const day = hr / 24;\n return `${day.toFixed(1)}d`;\n};\n\nconst columns: GridColDef[] = [\n {\n field: 'startedAt',\n headerName: 'Started at',\n flex: 1,\n renderCell: (params: GridRenderCellParams) => <DateCell isoDateTime={params.value} />,\n },\n { field: 'moduleName', headerName: 'Service', flex: 1 },\n { field: 'runtimeType', headerName: 'Type', flex: 1 },\n { field: 'generic', headerName: 'Info', flex: 3 },\n { field: 'error', headerName: 'Error', flex: 4 },\n { field: 'userInfo', headerName: 'User', flex: 1.5 },\n {\n field: 'executionTimeMs',\n headerName: 'Execution Time',\n flex: 1,\n renderCell: (params: GridRenderCellParams) => <>{formatTime(params.value)}</>,\n sortComparator: (v1, v2) => Number(v1) - Number(v2),\n },\n];\n\ntype LogMetadataGridProps = {\n logs: LogMetadata[];\n isLoading: boolean;\n};\n\nexport const LogMetadataGrid = ({ logs, isLoading }: LogMetadataGridProps) => {\n const [api] = useAdminApp();\n const session = useSessionState();\n const volatile = useVolatileState();\n\n const searchProgress = getSearchProgress(volatile.logResults[logSearchKey(session.search)]);\n const selectedLogCorrelation = session.openCorrelation ?? '';\n\n const onRowClick = ({ row }: { row: { correlation: string } }) => api.applyCorrelationOpened(row.correlation, CorrelationOpenSource.grid);\n const clearSelectedLogCorrelation = () => api.applyCorrelationClosed();\n const setSelectedLogCorrelation = (correlation: string) => api.applyCorrelationOpened(correlation, CorrelationOpenSource.tree);\n\n const getRowClassName = (params: GridRowClassNameParams) => {\n return params.row.checked ? 'greenRow' : '';\n };\n\n return (\n <>\n <style>\n {`\n .greenRow {\n background-color: #eaffea;\n }\n `}\n </style>\n <DataGrid\n autoPageSize\n columns={columns}\n components={{\n Pagination: DataGridPagination,\n LoadingOverlay: () => <LinearProgress value={searchProgress} variant=\"determinate\" />,\n }}\n getRowClassName={getRowClassName}\n loading={isLoading}\n onRowClick={onRowClick}\n rows={logs.map((log) => ({ ...log, id: log.correlation }))}\n />\n <LogDialog\n handleClose={clearSelectedLogCorrelation}\n logCorrelation={selectedLogCorrelation}\n open={!!selectedLogCorrelation}\n setSelectedLogCorrelation={setSelectedLogCorrelation}\n storyResultMetadatas={logs}\n />\n </>\n );\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { WebsocketAdminClientMessageEventType, WebSocketQueueQpqAdminServerMessageEventType, } from 'quidproquo-features';
|
|
2
3
|
import { useSubscribeToWebSocketEvent, useWebsocketSendEvent } from 'quidproquo-web-react';
|
|
3
|
-
import { WebsocketAdminClientMessageEventType, WebSocketQueueQpqAdminServerMessageEventType, } from 'quidproquo-webserver';
|
|
4
4
|
import { useEffect, useState } from 'react';
|
|
5
5
|
import { Box, Checkbox, CircularProgress, FormControlLabel, Typography } from '@mui/material';
|
|
6
6
|
import { useAdminApp } from '../adminApp';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogSummary.js","sourceRoot":"","sources":["../../../src/LogViewer/LogSummary.tsx"],"names":[],"mappings":";AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"LogSummary.js","sourceRoot":"","sources":["../../../src/LogViewer/LogSummary.tsx"],"names":[],"mappings":";AACA,OAAO,EAEL,oCAAoC,EAIpC,4CAA4C,GAC7C,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE3F,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE9F,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM1C,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,GAAG,EAAmB,EAAE,EAAE;IACrD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAC;IAEzE,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,EAAE,CAAC;IACjC,MAAM,WAAW,GAAG,qBAAqB,EAAE,CAAC;IAE5C,MAAM,oBAAoB,GAAG,CAAC,KAA0C,EAAE,EAAE;QAC1E,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAExB,MAAM,UAAU,GAA2D;YACzE,IAAI,EAAE,oCAAoC,CAAC,cAAc;YACzD,OAAO,EAAE;gBACP,aAAa,EAAE,GAAG,CAAC,WAAW;gBAC9B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;aAC9B;SACF,CAAC;QAEF,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrE,WAAW,CAAC,UAAU,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,4BAA4B,CAC1B,4CAA4C,CAAC,WAAW,EACxD,CAAC,iBAAiB,EAAE,OAA4D,EAAE,EAAE;QAClF,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC;YACxD,OAAO;QACT,CAAC;QAED,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACzB,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC,CACF,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAA+D;YAC/E,IAAI,EAAE,oCAAoC,CAAC,kBAAkB;YAC7D,OAAO,EAAE;gBACP,aAAa,EAAE,GAAG,CAAC,WAAW;aAC/B;SACF,CAAC;QAEF,WAAW,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;IAEnC,OAAO,CACL,MAAC,GAAG,IAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,aACzB,KAAC,UAAU,IAAC,YAAY,QAAC,OAAO,EAAC,IAAI,4BAExB,EACb,MAAC,UAAU,mCAAkB,GAAG,CAAC,WAAW,IAAc,EAC1D,KAAC,gBAAgB,IACf,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,KAAC,gBAAgB,IAAC,IAAI,EAAE,EAAE,GAAI,CAAC,CAAC,CAAC,KAAC,QAAQ,IAAC,OAAO,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,oBAAoB,GAAI,EACxI,KAAK,EAAC,cAAc,GACpB,IACE,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { StoryResult } from 'quidproquo-core';\nimport {\n LogMetadata,\n WebsocketAdminClientMessageEventType,\n WebSocketQueueClientEventMessageQpqAdminMarkLogChecked,\n WebSocketQueueClientEventMessageQpqAdminRefreshLogMetadata,\n WebSocketQueueQpqAdminServerEventMessageLogMetadata,\n WebSocketQueueQpqAdminServerMessageEventType,\n} from 'quidproquo-features';\nimport { useSubscribeToWebSocketEvent, useWebsocketSendEvent } from 'quidproquo-web-react';\n\nimport { useEffect, useState } from 'react';\nimport { Box, Checkbox, CircularProgress, FormControlLabel, Typography } from '@mui/material';\n\nimport { useAdminApp } from '../adminApp';\n\ninterface LogSummaryProps {\n log: StoryResult<any>;\n}\n\nexport const LogSummary = ({ log }: LogSummaryProps) => {\n const [checkedLoading, setCheckedLoading] = useState(true);\n const [logMetadata, setLogMetadata] = useState<LogMetadata | null>(null);\n\n const [adminApi] = useAdminApp();\n const sendMessage = useWebsocketSendEvent();\n\n const handleCheckboxChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setCheckedLoading(true);\n\n const checkEvent: WebSocketQueueClientEventMessageQpqAdminMarkLogChecked = {\n type: WebsocketAdminClientMessageEventType.MarkLogChecked,\n payload: {\n correlationId: log.correlation,\n checked: event.target.checked,\n },\n };\n\n adminApi.applyLogCheckToggled(log.correlation, event.target.checked);\n sendMessage(checkEvent);\n };\n\n useSubscribeToWebSocketEvent(\n WebSocketQueueQpqAdminServerMessageEventType.LogMetadata,\n (_webSocketService, message: WebSocketQueueQpqAdminServerEventMessageLogMetadata) => {\n if (message.payload.log.correlation !== log.correlation) {\n return;\n }\n\n setCheckedLoading(false);\n setLogMetadata(message.payload.log);\n },\n );\n\n useEffect(() => {\n const refreshEvent: WebSocketQueueClientEventMessageQpqAdminRefreshLogMetadata = {\n type: WebsocketAdminClientMessageEventType.RefreshLogMetadata,\n payload: {\n correlationId: log.correlation,\n },\n };\n\n sendMessage(refreshEvent);\n }, [log.correlation, sendMessage]);\n\n return (\n <Box sx={{ width: 1, p: 2 }}>\n <Typography gutterBottom variant=\"h6\">\n Log Summary\n </Typography>\n <Typography>Correlation ID: {log.correlation}</Typography>\n <FormControlLabel\n control={checkedLoading ? <CircularProgress size={24} /> : <Checkbox checked={!!logMetadata?.checked} onChange={handleCheckboxChange} />}\n label=\"Mark as done\"\n />\n </Box>\n );\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webserverServiceActionComponentMap.js","sourceRoot":"","sources":["../../../../../../src/LogViewer/logic/actionComponentMap/webserver/webserverServiceActionComponentMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"webserverServiceActionComponentMap.js","sourceRoot":"","sources":["../../../../../../src/LogViewer/logic/actionComponentMap/webserver/webserverServiceActionComponentMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,kCAAkC,GAA6B;IACnE,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC;CACvF,CAAC;AAEF,eAAe,kCAAkC,CAAC","sourcesContent":["import { ServiceActionType } from 'quidproquo-features';\n\nconst webserverServiceActionComponentMap: Record<string, string[]> = {\n [ServiceActionType.Request]: ['askServiceRequest', 'serviceName', 'method', 'payload'],\n};\n\nexport default webserverServiceActionComponentMap;\n"]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { StoryResultMetadata } from 'quidproquo-core';
|
|
2
|
-
import { LogLog } from 'quidproquo-
|
|
3
|
-
import { LogChatMessage } from '../types/LogChatMessage';
|
|
2
|
+
import { LogLog } from 'quidproquo-features';
|
|
4
3
|
export type VolatileLogResults = {
|
|
5
4
|
logs: StoryResultMetadata[];
|
|
6
5
|
partsTotal: number;
|
|
@@ -15,16 +14,11 @@ export type VolatileLogLogResults = {
|
|
|
15
14
|
isSearching: boolean;
|
|
16
15
|
fetchedAt: string | null;
|
|
17
16
|
};
|
|
18
|
-
export type VolatileChat = {
|
|
19
|
-
messages: LogChatMessage[];
|
|
20
|
-
nextPageKey?: string;
|
|
21
|
-
pendingReplies: number;
|
|
22
|
-
};
|
|
23
17
|
export type VolatileState = {
|
|
24
18
|
logResults: Record<string, VolatileLogResults>;
|
|
25
19
|
logLogResults: Record<string, VolatileLogLogResults>;
|
|
26
|
-
chatByCorrelation: Record<string, VolatileChat>;
|
|
27
20
|
realtimeErrorLogs: StoryResultMetadata[];
|
|
28
21
|
serviceNames: string[];
|
|
22
|
+
logServiceName: string;
|
|
29
23
|
};
|
|
30
24
|
export declare const createInitialVolatileState: () => VolatileState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VolatileState.js","sourceRoot":"","sources":["../../../src/adminApp/VolatileState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"VolatileState.js","sourceRoot":"","sources":["../../../src/adminApp/VolatileState.ts"],"names":[],"mappings":"AAkCA,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAkB,EAAE,CAAC,CAAC;IAC9D,UAAU,EAAE,EAAE;IACd,aAAa,EAAE,EAAE;IACjB,iBAAiB,EAAE,EAAE;IACrB,YAAY,EAAE,EAAE;IAChB,cAAc,EAAE,EAAE;CACnB,CAAC,CAAC","sourcesContent":["import { StoryResultMetadata } from 'quidproquo-core';\nimport { LogLog } from 'quidproquo-features';\n\n// Server-derived / transient data that is NOT part of the audited session fold.\n// Search results are a cache keyed by the raw search params that produced them\n// (the request intent lives in the session fold; the response payload lives\n// here). Searches fan out one part per runtime type / log level, so progress is\n// partsDone / partsTotal.\nexport type VolatileLogResults = {\n logs: StoryResultMetadata[];\n partsTotal: number;\n partsDone: number;\n isSearching: boolean;\n fetchedAt: string | null;\n};\n\nexport type VolatileLogLogResults = {\n logLogs: LogLog[];\n partsTotal: number;\n partsDone: number;\n isSearching: boolean;\n fetchedAt: string | null;\n};\n\nexport type VolatileState = {\n logResults: Record<string, VolatileLogResults>;\n logLogResults: Record<string, VolatileLogLogResults>;\n realtimeErrorLogs: StoryResultMetadata[];\n serviceNames: string[];\n // This admin instance's own deployed service name — needed to address the\n // EventDocAi log chat over the wire (qpq/serviceRequest/{logServiceName}/...).\n logServiceName: string;\n};\n\nexport const createInitialVolatileState = (): VolatileState => ({\n logResults: {},\n logLogResults: {},\n realtimeErrorLogs: [],\n serviceNames: [],\n logServiceName: '',\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"askUIVolatileLogLogSearchPartLoaded.js","sourceRoot":"","sources":["../../../../../src/adminApp/actionCreators/volatile/askUIVolatileLogLogSearchPartLoaded.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAGtE,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAGvE,MAAM,SAAS,CAAC,CAAC,mCAAmC,CAAC,SAAiB,EAAE,OAAiB;IACvF,KAAK,CAAC,CAAC,sBAAsB,CAAuC,cAAc,CAAC,sBAAsB,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;AACrI,CAAC","sourcesContent":["import { AskResponse, askStateDispatchEffect } from 'quidproquo-core';\nimport { LogLog } from 'quidproquo-
|
|
1
|
+
{"version":3,"file":"askUIVolatileLogLogSearchPartLoaded.js","sourceRoot":"","sources":["../../../../../src/adminApp/actionCreators/volatile/askUIVolatileLogLogSearchPartLoaded.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAGtE,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAGvE,MAAM,SAAS,CAAC,CAAC,mCAAmC,CAAC,SAAiB,EAAE,OAAiB;IACvF,KAAK,CAAC,CAAC,sBAAsB,CAAuC,cAAc,CAAC,sBAAsB,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;AACrI,CAAC","sourcesContent":["import { AskResponse, askStateDispatchEffect } from 'quidproquo-core';\nimport { LogLog } from 'quidproquo-features';\n\nimport { VolatileEffect } from '../../effects/volatile/VolatileEffect';\nimport { VolatileLogLogSearchPartLoadedEffect } from '../../effects/volatile/VolatileLogLogSearchPartLoadedEffect';\n\nexport function* askUIVolatileLogLogSearchPartLoaded(searchKey: string, logLogs: LogLog[]): AskResponse<void> {\n yield* askStateDispatchEffect<VolatileLogLogSearchPartLoadedEffect>(VolatileEffect.logLogSearchPartLoaded, { searchKey, logLogs });\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { AskResponse } from 'quidproquo-core';
|
|
2
|
-
export declare function askUIVolatileServiceNamesLoaded(serviceNames: string[]): AskResponse<void>;
|
|
2
|
+
export declare function askUIVolatileServiceNamesLoaded(serviceNames: string[], logServiceName: string): AskResponse<void>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { askStateDispatchEffect } from 'quidproquo-core';
|
|
2
2
|
import { VolatileEffect } from '../../effects/volatile/VolatileEffect';
|
|
3
|
-
export function* askUIVolatileServiceNamesLoaded(serviceNames) {
|
|
4
|
-
yield* askStateDispatchEffect(VolatileEffect.serviceNamesLoaded, { serviceNames });
|
|
3
|
+
export function* askUIVolatileServiceNamesLoaded(serviceNames, logServiceName) {
|
|
4
|
+
yield* askStateDispatchEffect(VolatileEffect.serviceNamesLoaded, { serviceNames, logServiceName });
|
|
5
5
|
}
|
|
6
6
|
//# sourceMappingURL=askUIVolatileServiceNamesLoaded.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"askUIVolatileServiceNamesLoaded.js","sourceRoot":"","sources":["../../../../../src/adminApp/actionCreators/volatile/askUIVolatileServiceNamesLoaded.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAGvE,MAAM,SAAS,CAAC,CAAC,+BAA+B,CAAC,YAAsB;
|
|
1
|
+
{"version":3,"file":"askUIVolatileServiceNamesLoaded.js","sourceRoot":"","sources":["../../../../../src/adminApp/actionCreators/volatile/askUIVolatileServiceNamesLoaded.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAGvE,MAAM,SAAS,CAAC,CAAC,+BAA+B,CAAC,YAAsB,EAAE,cAAsB;IAC7F,KAAK,CAAC,CAAC,sBAAsB,CAAmC,cAAc,CAAC,kBAAkB,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC;AACvI,CAAC","sourcesContent":["import { AskResponse, askStateDispatchEffect } from 'quidproquo-core';\n\nimport { VolatileEffect } from '../../effects/volatile/VolatileEffect';\nimport { VolatileServiceNamesLoadedEffect } from '../../effects/volatile/VolatileServiceNamesLoadedEffect';\n\nexport function* askUIVolatileServiceNamesLoaded(serviceNames: string[], logServiceName: string): AskResponse<void> {\n yield* askStateDispatchEffect<VolatileServiceNamesLoadedEffect>(VolatileEffect.serviceNamesLoaded, { serviceNames, logServiceName });\n}\n"]}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
export * from './askUIVolatileChatMessageAppended';
|
|
2
|
-
export * from './askUIVolatileChatMessagesLoaded';
|
|
3
|
-
export * from './askUIVolatileChatPendingReplyChanged';
|
|
4
1
|
export * from './askUIVolatileLogLogSearchCompleted';
|
|
5
2
|
export * from './askUIVolatileLogLogSearchPartLoaded';
|
|
6
3
|
export * from './askUIVolatileLogLogSearchStarted';
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
export * from './askUIVolatileChatMessageAppended';
|
|
2
|
-
export * from './askUIVolatileChatMessagesLoaded';
|
|
3
|
-
export * from './askUIVolatileChatPendingReplyChanged';
|
|
4
1
|
export * from './askUIVolatileLogLogSearchCompleted';
|
|
5
2
|
export * from './askUIVolatileLogLogSearchPartLoaded';
|
|
6
3
|
export * from './askUIVolatileLogLogSearchStarted';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/adminApp/actionCreators/volatile/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/adminApp/actionCreators/volatile/index.ts"],"names":[],"mappings":"AAAA,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AACxD,cAAc,mCAAmC,CAAC","sourcesContent":["export * from './askUIVolatileLogLogSearchCompleted';\nexport * from './askUIVolatileLogLogSearchPartLoaded';\nexport * from './askUIVolatileLogLogSearchStarted';\nexport * from './askUIVolatileLogSearchCompleted';\nexport * from './askUIVolatileLogSearchPartLoaded';\nexport * from './askUIVolatileLogSearchStarted';\nexport * from './askUIVolatileRealtimeErrorLogReceived';\nexport * from './askUIVolatileServiceNamesLoaded';\n"]}
|
|
@@ -8,7 +8,6 @@ export declare const adminAppRuntime: import("quidproquo-web-react").QpqRuntimeD
|
|
|
8
8
|
askApplySessionEvent: typeof import("./actions").askApplySessionEvent;
|
|
9
9
|
askApplyTabChanged: typeof import("./logic").askApplyTabChanged;
|
|
10
10
|
askEndSession: typeof import("./logic").askEndSession;
|
|
11
|
-
askLoadChatMessages: typeof import("./logic").askLoadChatMessages;
|
|
12
11
|
askLoadServiceNames: typeof import("./logic").askLoadServiceNames;
|
|
13
12
|
askReceiveRealtimeErrorLog: typeof import("./logic").askReceiveRealtimeErrorLog;
|
|
14
13
|
askRunDashboardErrorSearch: typeof import("./logic").askRunDashboardErrorSearch;
|
|
@@ -5,9 +5,6 @@ export declare enum VolatileEffect {
|
|
|
5
5
|
logLogSearchStarted = "qpqAdmin/volatile/logLogSearchStarted",
|
|
6
6
|
logLogSearchPartLoaded = "qpqAdmin/volatile/logLogSearchPartLoaded",
|
|
7
7
|
logLogSearchCompleted = "qpqAdmin/volatile/logLogSearchCompleted",
|
|
8
|
-
chatMessagesLoaded = "qpqAdmin/volatile/chatMessagesLoaded",
|
|
9
|
-
chatMessageAppended = "qpqAdmin/volatile/chatMessageAppended",
|
|
10
|
-
chatPendingReplyChanged = "qpqAdmin/volatile/chatPendingReplyChanged",
|
|
11
8
|
serviceNamesLoaded = "qpqAdmin/volatile/serviceNamesLoaded",
|
|
12
9
|
realtimeErrorLogReceived = "qpqAdmin/volatile/realtimeErrorLogReceived"
|
|
13
10
|
}
|
|
@@ -6,9 +6,6 @@ export var VolatileEffect;
|
|
|
6
6
|
VolatileEffect["logLogSearchStarted"] = "qpqAdmin/volatile/logLogSearchStarted";
|
|
7
7
|
VolatileEffect["logLogSearchPartLoaded"] = "qpqAdmin/volatile/logLogSearchPartLoaded";
|
|
8
8
|
VolatileEffect["logLogSearchCompleted"] = "qpqAdmin/volatile/logLogSearchCompleted";
|
|
9
|
-
VolatileEffect["chatMessagesLoaded"] = "qpqAdmin/volatile/chatMessagesLoaded";
|
|
10
|
-
VolatileEffect["chatMessageAppended"] = "qpqAdmin/volatile/chatMessageAppended";
|
|
11
|
-
VolatileEffect["chatPendingReplyChanged"] = "qpqAdmin/volatile/chatPendingReplyChanged";
|
|
12
9
|
VolatileEffect["serviceNamesLoaded"] = "qpqAdmin/volatile/serviceNamesLoaded";
|
|
13
10
|
VolatileEffect["realtimeErrorLogReceived"] = "qpqAdmin/volatile/realtimeErrorLogReceived";
|
|
14
11
|
})(VolatileEffect || (VolatileEffect = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VolatileEffect.js","sourceRoot":"","sources":["../../../../../src/adminApp/effects/volatile/VolatileEffect.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"VolatileEffect.js","sourceRoot":"","sources":["../../../../../src/adminApp/effects/volatile/VolatileEffect.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,cASX;AATD,WAAY,cAAc;IACxB,yEAAuD,CAAA;IACvD,+EAA6D,CAAA;IAC7D,6EAA2D,CAAA;IAC3D,+EAA6D,CAAA;IAC7D,qFAAmE,CAAA;IACnE,mFAAiE,CAAA;IACjE,6EAA2D,CAAA;IAC3D,yFAAuE,CAAA;AACzE,CAAC,EATW,cAAc,KAAd,cAAc,QASzB","sourcesContent":["export enum VolatileEffect {\n logSearchStarted = 'qpqAdmin/volatile/logSearchStarted',\n logSearchPartLoaded = 'qpqAdmin/volatile/logSearchPartLoaded',\n logSearchCompleted = 'qpqAdmin/volatile/logSearchCompleted',\n logLogSearchStarted = 'qpqAdmin/volatile/logLogSearchStarted',\n logLogSearchPartLoaded = 'qpqAdmin/volatile/logLogSearchPartLoaded',\n logLogSearchCompleted = 'qpqAdmin/volatile/logLogSearchCompleted',\n serviceNamesLoaded = 'qpqAdmin/volatile/serviceNamesLoaded',\n realtimeErrorLogReceived = 'qpqAdmin/volatile/realtimeErrorLogReceived',\n}\n"]}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import { VolatileChatMessageAppendedEffect } from './VolatileChatMessageAppendedEffect';
|
|
2
|
-
import { VolatileChatMessagesLoadedEffect } from './VolatileChatMessagesLoadedEffect';
|
|
3
|
-
import { VolatileChatPendingReplyChangedEffect } from './VolatileChatPendingReplyChangedEffect';
|
|
4
1
|
import { VolatileLogLogSearchCompletedEffect } from './VolatileLogLogSearchCompletedEffect';
|
|
5
2
|
import { VolatileLogLogSearchPartLoadedEffect } from './VolatileLogLogSearchPartLoadedEffect';
|
|
6
3
|
import { VolatileLogLogSearchStartedEffect } from './VolatileLogLogSearchStartedEffect';
|
|
@@ -9,4 +6,4 @@ import { VolatileLogSearchPartLoadedEffect } from './VolatileLogSearchPartLoaded
|
|
|
9
6
|
import { VolatileLogSearchStartedEffect } from './VolatileLogSearchStartedEffect';
|
|
10
7
|
import { VolatileRealtimeErrorLogReceivedEffect } from './VolatileRealtimeErrorLogReceivedEffect';
|
|
11
8
|
import { VolatileServiceNamesLoadedEffect } from './VolatileServiceNamesLoadedEffect';
|
|
12
|
-
export type VolatileEffects = VolatileLogSearchStartedEffect | VolatileLogSearchPartLoadedEffect | VolatileLogSearchCompletedEffect | VolatileLogLogSearchStartedEffect | VolatileLogLogSearchPartLoadedEffect | VolatileLogLogSearchCompletedEffect |
|
|
9
|
+
export type VolatileEffects = VolatileLogSearchStartedEffect | VolatileLogSearchPartLoadedEffect | VolatileLogSearchCompletedEffect | VolatileLogLogSearchStartedEffect | VolatileLogLogSearchPartLoadedEffect | VolatileLogLogSearchCompletedEffect | VolatileServiceNamesLoadedEffect | VolatileRealtimeErrorLogReceivedEffect;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VolatileEffects.js","sourceRoot":"","sources":["../../../../../src/adminApp/effects/volatile/VolatileEffects.ts"],"names":[],"mappings":"","sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"VolatileEffects.js","sourceRoot":"","sources":["../../../../../src/adminApp/effects/volatile/VolatileEffects.ts"],"names":[],"mappings":"","sourcesContent":["import { VolatileLogLogSearchCompletedEffect } from './VolatileLogLogSearchCompletedEffect';\nimport { VolatileLogLogSearchPartLoadedEffect } from './VolatileLogLogSearchPartLoadedEffect';\nimport { VolatileLogLogSearchStartedEffect } from './VolatileLogLogSearchStartedEffect';\nimport { VolatileLogSearchCompletedEffect } from './VolatileLogSearchCompletedEffect';\nimport { VolatileLogSearchPartLoadedEffect } from './VolatileLogSearchPartLoadedEffect';\nimport { VolatileLogSearchStartedEffect } from './VolatileLogSearchStartedEffect';\nimport { VolatileRealtimeErrorLogReceivedEffect } from './VolatileRealtimeErrorLogReceivedEffect';\nimport { VolatileServiceNamesLoadedEffect } from './VolatileServiceNamesLoadedEffect';\n\nexport type VolatileEffects =\n | VolatileLogSearchStartedEffect\n | VolatileLogSearchPartLoadedEffect\n | VolatileLogSearchCompletedEffect\n | VolatileLogLogSearchStartedEffect\n | VolatileLogLogSearchPartLoadedEffect\n | VolatileLogLogSearchCompletedEffect\n | VolatileServiceNamesLoadedEffect\n | VolatileRealtimeErrorLogReceivedEffect;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VolatileLogLogSearchPartLoadedEffect.js","sourceRoot":"","sources":["../../../../../src/adminApp/effects/volatile/VolatileLogLogSearchPartLoadedEffect.ts"],"names":[],"mappings":"","sourcesContent":["import { Effect } from 'quidproquo-core';\nimport { LogLog } from 'quidproquo-
|
|
1
|
+
{"version":3,"file":"VolatileLogLogSearchPartLoadedEffect.js","sourceRoot":"","sources":["../../../../../src/adminApp/effects/volatile/VolatileLogLogSearchPartLoadedEffect.ts"],"names":[],"mappings":"","sourcesContent":["import { Effect } from 'quidproquo-core';\nimport { LogLog } from 'quidproquo-features';\n\nimport { VolatileEffect } from './VolatileEffect';\n\nexport type VolatileLogLogSearchPartLoadedPayload = {\n searchKey: string;\n logLogs: LogLog[];\n};\n\nexport type VolatileLogLogSearchPartLoadedEffect = Effect<VolatileEffect.logLogSearchPartLoaded, VolatileLogLogSearchPartLoadedPayload>;\n"]}
|
|
@@ -2,5 +2,6 @@ import { Effect } from 'quidproquo-core';
|
|
|
2
2
|
import { VolatileEffect } from './VolatileEffect';
|
|
3
3
|
export type VolatileServiceNamesLoadedPayload = {
|
|
4
4
|
serviceNames: string[];
|
|
5
|
+
logServiceName: string;
|
|
5
6
|
};
|
|
6
7
|
export type VolatileServiceNamesLoadedEffect = Effect<VolatileEffect.serviceNamesLoaded, VolatileServiceNamesLoadedPayload>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VolatileServiceNamesLoadedEffect.js","sourceRoot":"","sources":["../../../../../src/adminApp/effects/volatile/VolatileServiceNamesLoadedEffect.ts"],"names":[],"mappings":"","sourcesContent":["import { Effect } from 'quidproquo-core';\n\nimport { VolatileEffect } from './VolatileEffect';\n\nexport type VolatileServiceNamesLoadedPayload = {\n serviceNames: string[];\n};\n\nexport type VolatileServiceNamesLoadedEffect = Effect<VolatileEffect.serviceNamesLoaded, VolatileServiceNamesLoadedPayload>;\n"]}
|
|
1
|
+
{"version":3,"file":"VolatileServiceNamesLoadedEffect.js","sourceRoot":"","sources":["../../../../../src/adminApp/effects/volatile/VolatileServiceNamesLoadedEffect.ts"],"names":[],"mappings":"","sourcesContent":["import { Effect } from 'quidproquo-core';\n\nimport { VolatileEffect } from './VolatileEffect';\n\nexport type VolatileServiceNamesLoadedPayload = {\n serviceNames: string[];\n logServiceName: string;\n};\n\nexport type VolatileServiceNamesLoadedEffect = Effect<VolatileEffect.serviceNamesLoaded, VolatileServiceNamesLoadedPayload>;\n"]}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
export * from './VolatileChatMessageAppendedEffect';
|
|
2
|
-
export * from './VolatileChatMessagesLoadedEffect';
|
|
3
|
-
export * from './VolatileChatPendingReplyChangedEffect';
|
|
4
1
|
export * from './VolatileEffect';
|
|
5
2
|
export * from './VolatileEffects';
|
|
6
3
|
export * from './VolatileLogLogSearchCompletedEffect';
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
export * from './VolatileChatMessageAppendedEffect';
|
|
2
|
-
export * from './VolatileChatMessagesLoadedEffect';
|
|
3
|
-
export * from './VolatileChatPendingReplyChangedEffect';
|
|
4
1
|
export * from './VolatileEffect';
|
|
5
2
|
export * from './VolatileEffects';
|
|
6
3
|
export * from './VolatileLogLogSearchCompletedEffect';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/adminApp/effects/volatile/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/adminApp/effects/volatile/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC","sourcesContent":["export * from './VolatileEffect';\nexport * from './VolatileEffects';\nexport * from './VolatileLogLogSearchCompletedEffect';\nexport * from './VolatileLogLogSearchPartLoadedEffect';\nexport * from './VolatileLogLogSearchStartedEffect';\nexport * from './VolatileLogSearchCompletedEffect';\nexport * from './VolatileLogSearchPartLoadedEffect';\nexport * from './VolatileLogSearchStartedEffect';\nexport * from './VolatileRealtimeErrorLogReceivedEffect';\nexport * from './VolatileSearchCompletedPayload';\nexport * from './VolatileSearchStartedPayload';\nexport * from './VolatileServiceNamesLoadedEffect';\n"]}
|
|
@@ -8,7 +8,6 @@ export declare const useAdminApp: () => [import("quidproquo-web-react").QpqMappe
|
|
|
8
8
|
askApplySessionEvent: typeof import("..").askApplySessionEvent;
|
|
9
9
|
askApplyTabChanged: typeof import("..").askApplyTabChanged;
|
|
10
10
|
askEndSession: typeof import("..").askEndSession;
|
|
11
|
-
askLoadChatMessages: typeof import("..").askLoadChatMessages;
|
|
12
11
|
askLoadServiceNames: typeof import("..").askLoadServiceNames;
|
|
13
12
|
askReceiveRealtimeErrorLog: typeof import("..").askReceiveRealtimeErrorLog;
|
|
14
13
|
askRunDashboardErrorSearch: typeof import("..").askRunDashboardErrorSearch;
|
|
@@ -1,26 +1,12 @@
|
|
|
1
|
-
import { askDateNow } from 'quidproquo-core';
|
|
2
|
-
import { askPlatformRequest } from '../../../platformLogic/network/askPlatformRequest';
|
|
3
|
-
import { askUIVolatileChatMessageAppended } from '../../actionCreators/volatile/askUIVolatileChatMessageAppended';
|
|
4
|
-
import { askUIVolatileChatPendingReplyChanged } from '../../actionCreators/volatile/askUIVolatileChatPendingReplyChanged';
|
|
5
1
|
import { askApplySessionEvent } from '../../actions/askApplySessionEvent';
|
|
6
2
|
import { AdminSessionEventType } from '../../effects/session/AdminSessionEventType';
|
|
7
|
-
//
|
|
8
|
-
//
|
|
3
|
+
// Records that the user asked the log chat something — audit trail only. The
|
|
4
|
+
// message itself, the AI's reply, and their storage are the EventDocAi log
|
|
5
|
+
// chat's concern now (see LogViewer/LogChat), not this session fold.
|
|
9
6
|
export function* askSendChatMessage(correlationId, message) {
|
|
10
7
|
if (!message.trim()) {
|
|
11
8
|
return;
|
|
12
9
|
}
|
|
13
10
|
yield* askApplySessionEvent(AdminSessionEventType.chatMessageSent, { correlationId, message });
|
|
14
|
-
const timestamp = yield* askDateNow();
|
|
15
|
-
const userMessage = { message, timestamp, isAi: false };
|
|
16
|
-
yield* askUIVolatileChatMessageAppended(correlationId, userMessage);
|
|
17
|
-
yield* askUIVolatileChatPendingReplyChanged(correlationId, 1);
|
|
18
|
-
const body = { correlationId, message };
|
|
19
|
-
const response = yield* askPlatformRequest('POST', '/log/chat/message', { body });
|
|
20
|
-
yield* askUIVolatileChatPendingReplyChanged(correlationId, -1);
|
|
21
|
-
if (response.status < 200 || response.status >= 300) {
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
yield* askUIVolatileChatMessageAppended(correlationId, response.data);
|
|
25
11
|
}
|
|
26
12
|
//# sourceMappingURL=askSendChatMessage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"askSendChatMessage.js","sourceRoot":"","sources":["../../../../../src/adminApp/logic/chat/askSendChatMessage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"askSendChatMessage.js","sourceRoot":"","sources":["../../../../../src/adminApp/logic/chat/askSendChatMessage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAGpF,6EAA6E;AAC7E,2EAA2E;AAC3E,qEAAqE;AACrE,MAAM,SAAS,CAAC,CAAC,kBAAkB,CAAC,aAAqB,EAAE,OAAe;IACxE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACpB,OAAO;IACT,CAAC;IAED,KAAK,CAAC,CAAC,oBAAoB,CAAsB,qBAAqB,CAAC,eAAe,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;AACtH,CAAC","sourcesContent":["import { AskResponse } from 'quidproquo-core';\n\nimport { askApplySessionEvent } from '../../actions/askApplySessionEvent';\nimport { AdminSessionEventType } from '../../effects/session/AdminSessionEventType';\nimport { ChatMessageSentData } from '../../effects/session/ChatMessageSentEvent';\n\n// Records that the user asked the log chat something — audit trail only. The\n// message itself, the AI's reply, and their storage are the EventDocAi log\n// chat's concern now (see LogViewer/LogChat), not this session fold.\nexport function* askSendChatMessage(correlationId: string, message: string): AskResponse<void> {\n if (!message.trim()) {\n return;\n }\n\n yield* askApplySessionEvent<ChatMessageSentData>(AdminSessionEventType.chatMessageSent, { correlationId, message });\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/adminApp/logic/chat/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/adminApp/logic/chat/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC","sourcesContent":["export * from './askSendChatMessage';\n"]}
|