@projectcor/maia-components 2.31.0 → 2.31.1-1

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 (42) hide show
  1. package/CHANGELOG.md +664 -0
  2. package/lib/App.js +4 -2
  3. package/lib/components/atoms/MAIAInput/MAIAInput.js +62 -14
  4. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +121 -0
  5. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +197 -0
  6. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +182 -0
  7. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +123 -0
  8. package/lib/components/atoms/ReasoningBlock/groupParallelSteps.js +115 -0
  9. package/lib/components/atoms/ReasoningBlock/index.js +3 -0
  10. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +58 -0
  11. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +391 -120
  12. package/lib/components/molecules/ChatAIMessages/newStyles.js +50 -18
  13. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +42 -21
  14. package/lib/components/molecules/MessageFeedback/styles.js +6 -2
  15. package/lib/context/global-context.js +1 -1
  16. package/lib/dev/DevReasoningTimeline.js +237 -0
  17. package/lib/dev/reasoningTraceMock.js +556 -0
  18. package/lib/hooks/useChatManager/useChatManager.js +111 -63
  19. package/lib/hooks/useChatMessages/useChatMessages.js +28 -27
  20. package/lib/hooks/useEvent.js +2 -1
  21. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
  22. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +4 -3
  23. package/lib/hooks/useProjectSummaryConfig.js +45 -17
  24. package/lib/hooks/useReasoningTrace/index.js +3 -0
  25. package/lib/hooks/useReasoningTrace/reasoningStore.js +170 -0
  26. package/lib/hooks/useReasoningTrace/useReasoningTrace.js +14 -0
  27. package/lib/lang/br/index.js +237 -31
  28. package/lib/lang/en/index.js +237 -31
  29. package/lib/lang/es/index.js +237 -31
  30. package/lib/lang/fr/index.js +237 -31
  31. package/lib/services/maia/Orchestrator/orchestrator.js +9 -7
  32. package/lib/services/utils/mapChatMessages.js +21 -18
  33. package/lib/store/sessions/sessionStreamManager.js +99 -51
  34. package/lib/store/sessions/sessions.types.js +1 -1
  35. package/lib/types/Chat.js +1 -1
  36. package/lib/types/reasoning.js +2 -0
  37. package/lib/utils/autoApproveStorage.js +26 -0
  38. package/lib/utils/hitlAnalytics.js +4 -3
  39. package/lib/utils/reasoningMappers.js +62 -0
  40. package/lib/utils/streamActivityMessages.js +106 -41
  41. package/package.json +1 -1
  42. package/README.md +0 -2
@@ -81,7 +81,8 @@ export var useOrchestratorStream = function useOrchestratorStream(_ref) {
81
81
  agentName: payload.agentName,
82
82
  agentId: payload.agentId,
83
83
  isWebSearchActive: payload.isWebSearchActive,
84
- isDeepSearchActive: payload.isDeepSearchActive
84
+ isDeepSearchActive: payload.isDeepSearchActive,
85
+ isAutoApproveActive: payload.isAutoApproveActive
85
86
  }, payload.projectId ? {
86
87
  projectId: payload.projectId
87
88
  } : {}), payload.attachments ? {
@@ -136,7 +137,7 @@ export var useOrchestratorStream = function useOrchestratorStream(_ref) {
136
137
  },
137
138
  onFinishStream: function onFinishStream(finishPayload) {
138
139
  var _onFinishStreamRef$cu;
139
- return (_onFinishStreamRef$cu = onFinishStreamRef.current) === null || _onFinishStreamRef$cu === void 0 ? void 0 : _onFinishStreamRef$cu.call(onFinishStreamRef, ctx, finishPayload.content, finishPayload.sources, finishPayload.memorySessionId, finishPayload.attachments, finishPayload.suggestions, finishPayload.completedAgentId, finishPayload.resolvedContext);
140
+ return (_onFinishStreamRef$cu = onFinishStreamRef.current) === null || _onFinishStreamRef$cu === void 0 ? void 0 : _onFinishStreamRef$cu.call(onFinishStreamRef, ctx, finishPayload.content, finishPayload.sources, finishPayload.memorySessionId, finishPayload.attachments, finishPayload.suggestions, finishPayload.completedAgentId, finishPayload.resolvedContext, finishPayload.reasoning);
140
141
  },
141
142
  onError: function onError(errorType, errorMessage) {
142
143
  var _onErrorRef$current;
@@ -266,4 +267,4 @@ export var useOrchestratorStream = function useOrchestratorStream(_ref) {
266
267
  abortStreamSilently: abortStreamSilently
267
268
  };
268
269
  };
269
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVJlZiIsInVzZVRyYW5zbGF0aW9uIiwiU0VDVElPTlMiLCJzZXNzaW9uU3RyZWFtTWFuYWdlciIsInVzZVNlc3Npb25zU3RvcmUiLCJ1c2VTZXNzaW9uU3RyZWFtU3RhdGUiLCJ1c2VPcmNoZXN0cmF0b3JTdHJlYW0iLCJfcmVmIiwiYWN0aXZlU2Vzc2lvbklkIiwib25TdHJlYW1VcGRhdGUiLCJvbkZpbmlzaFN0cmVhbSIsIm9uU3RhcnRXcml0aW5nIiwib25TdG9wIiwib25FcnJvciIsIm9uQXBwcm92YWxSZXF1aXJlZCIsImhpdGxFeGVjdXRpb25Db250ZXh0UmVmIiwiX3VzZVRyYW5zbGF0aW9uIiwiY2hhdEFJIiwidCIsIl91c2VTZXNzaW9uU3RyZWFtU3RhdCIsImlzTG9hZGluZyIsImlzV3JpdGluZyIsImxvYWRpbmdNZXNzYWdlIiwic3RyZWFtQWN0aXZpdHkiLCJvblN0cmVhbVVwZGF0ZVJlZiIsIm9uRmluaXNoU3RyZWFtUmVmIiwib25TdGFydFdyaXRpbmdSZWYiLCJvblN0b3BSZWYiLCJvbkVycm9yUmVmIiwib25BcHByb3ZhbFJlcXVpcmVkUmVmIiwiY3VycmVudCIsImFza01haWEiLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwicGF5bG9hZCIsIl9wYXlsb2FkJGF0dGFjaG1lbnRzIiwiX3BheWxvYWQkYXR0YWNobWVudHMkIiwiX3BheWxvYWQkYXR0YWNobWVudHMyIiwiX2hpdGxFeGVjdXRpb25Db250ZXh0Iiwic2Vzc2lvbklkIiwibWVzc2FnZUlkIiwicGxhY2Vob2xkZXJJZCIsImN0eCIsInJlcXVlc3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImNoYXRJZCIsImNvbmNhdCIsIl9vYmplY3RTcHJlYWQiLCJpbnB1dCIsIm1lc3NhZ2UiLCJoaXN0b3J5IiwibGFuZyIsInVzZXJJZCIsImZpcnN0TmFtZSIsImxhc3ROYW1lIiwiY29tcGFueUlkIiwiY2xpZW50SWQiLCJmZWVJZCIsImFnZW50TmFtZSIsImFnZW50SWQiLCJpc1dlYlNlYXJjaEFjdGl2ZSIsImlzRGVlcFNlYXJjaEFjdGl2ZSIsInByb2plY3RJZCIsImF0dGFjaG1lbnRzIiwicHJvamVjdE5hbWUiLCJjbGllbnROYW1lIiwidGFza0lkIiwidGFza05hbWUiLCJmYXFJZCIsImFnZW50U3VnZ2VzdGlvbklkIiwiZnVhSWQiLCJzY0lkIiwiYWdlbnRFbnRpdHkiLCJhZ2VudFR5cGUiLCJjb250ZXh0TWVzc2FnZSIsImNvbnRleHREYXRhIiwiYWJydXB0Iiwic3RhcnRTdHJlYW0iLCJhY3Rpdml0eU9wdGlvbnMiLCJoYXNBdHRhY2htZW50cyIsIkJvb2xlYW4iLCJsZW5ndGgiLCJhdHRhY2htZW50c0NvdW50IiwiaGl0bEV4ZWN1dGlvbkNvbnRleHQiLCJjYWxsYmFja3MiLCJjb250ZW50IiwiX29uU3RyZWFtVXBkYXRlUmVmJGN1IiwiY2FsbCIsIl9vblN0YXJ0V3JpdGluZ1JlZiRjdSIsImZpbmlzaFBheWxvYWQiLCJfb25GaW5pc2hTdHJlYW1SZWYkY3UiLCJzb3VyY2VzIiwibWVtb3J5U2Vzc2lvbklkIiwic3VnZ2VzdGlvbnMiLCJjb21wbGV0ZWRBZ2VudElkIiwicmVzb2x2ZWRDb250ZXh0IiwiZXJyb3JUeXBlIiwiZXJyb3JNZXNzYWdlIiwiX29uRXJyb3JSZWYkY3VycmVudCIsImFwcHJvdmFsIiwiYWNjdW11bGF0ZWRDb250ZW50IiwiX29uQXBwcm92YWxSZXF1aXJlZFJlIiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJyZXRyeUNvbXBsZXRpb24iLCJfcmVmMyIsIl9jYWxsZWUyIiwiX2NvbnRleHQyIiwic3RhcnRSZXRyeVN0cmVhbSIsInJldHJ5UmVxdWVzdCIsIl9vblN0cmVhbVVwZGF0ZVJlZiRjdTIiLCJfb25TdGFydFdyaXRpbmdSZWYkY3UyIiwiX29uRmluaXNoU3RyZWFtUmVmJGN1MiIsIl9vbkVycm9yUmVmJGN1cnJlbnQyIiwiX29uQXBwcm92YWxSZXF1aXJlZFJlMiIsIl94MiIsInN0b3BTdHJlYW1pbmciLCJzdG9wU3RyZWFtIiwicGFydGlhbFRleHQiLCJfb25TdG9wUmVmJGN1cnJlbnQiLCJhYm9ydFN0cmVhbVNpbGVudGx5IiwiYWJvcnRTaWxlbnRseSIsInVwZGF0ZVN0cmVhbUFjdGl2aXR5IiwiYWN0aXZpdHkiLCJnZXRTdGF0ZSIsInNldEFjdGl2aXR5IiwicmVzZXQiLCJwYXRjaE1ldGEiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvdXNlT3JjaGVzdHJhdG9yU3RyZWFtL3VzZU9yY2hlc3RyYXRvclN0cmVhbS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRGb290ZXIvQ2hhdEZvb3RlcidcbmltcG9ydCB7IENoYXRIaXN0b3J5IH0gZnJvbSAnLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7IEFnZW50RW50aXR5LCBBZ2VudFR5cGUgfSBmcm9tICcuLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IENvbnRleHRNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5pbXBvcnQgeyBVc2VPcmNoZXN0cmF0b3JTdHJlYW1Qcm9wcywgU3RyZWFtQ29udGV4dCB9IGZyb20gJy4vdXNlT3JjaGVzdHJhdG9yU3RyZWFtLmludGVyZmFjZSdcbmltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB0eXBlIHsgU3RyZWFtQWN0aXZpdHkgfSBmcm9tICcuLi8uLi90eXBlcy9zdHJlYW1BY3Rpdml0eSdcbmltcG9ydCB7IHNlc3Npb25TdHJlYW1NYW5hZ2VyIH0gZnJvbSAnLi4vLi4vc3RvcmUvc2Vzc2lvbnMvc2Vzc2lvblN0cmVhbU1hbmFnZXInXG5pbXBvcnQgeyB1c2VTZXNzaW9uc1N0b3JlIH0gZnJvbSAnLi4vLi4vc3RvcmUvc2Vzc2lvbnMvdXNlU2Vzc2lvbnNTdG9yZSdcbmltcG9ydCB7IHVzZVNlc3Npb25TdHJlYW1TdGF0ZSB9IGZyb20gJy4uLy4uL3N0b3JlL3Nlc3Npb25zL3VzZVNlc3Npb25NZXRhJ1xuaW1wb3J0IHR5cGUgeyBTdGFydFN0cmVhbVJlc3VsdCB9IGZyb20gJy4uLy4uL3N0b3JlL3Nlc3Npb25zL3Nlc3Npb25zLnR5cGVzJ1xuXG50eXBlIFJldHJ5Q29tcGxldGlvblBheWxvYWQgPSB7XG4gIGNoYXRJZDogc3RyaW5nXG4gIG1lc3NhZ2VJZDogc3RyaW5nXG4gIG1lbW9yeVNlc3Npb25JZDogc3RyaW5nXG4gIGxhbmc6IHN0cmluZ1xuICBhZ2VudElkOiBzdHJpbmdcbiAgYWdlbnROYW1lOiBzdHJpbmdcbiAgYWdlbnRUeXBlPzogQWdlbnRUeXBlXG4gIGlzV2ViU2VhcmNoQWN0aXZlPzogYm9vbGVhblxuICBpc0RlZXBTZWFyY2hBY3RpdmU/OiBib29sZWFuXG4gIHByb2plY3RJZD86IG51bWJlciB8IG51bGxcbiAgY2xpZW50SWQ/OiBudW1iZXJcbiAgdGFza0lkPzogbnVtYmVyXG4gIGNvbnRleHREYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbn1cblxudHlwZSBBc2tNYWlhUGF5bG9hZCA9IHtcbiAgbWVzc2FnZTogc3RyaW5nXG4gIGhpc3Rvcnk6IENoYXRIaXN0b3J5W11cbiAgcHJvamVjdElkOiBudW1iZXIgfCBudWxsXG4gIGxhbmc6IHN0cmluZ1xuICB1c2VySWQ6IHN0cmluZ1xuICBmaXJzdE5hbWU/OiBzdHJpbmdcbiAgbGFzdE5hbWU/OiBzdHJpbmdcbiAgY29tcGFueUlkOiBzdHJpbmdcbiAgY2hhdElkOiBzdHJpbmdcbiAgbWVzc2FnZUlkOiBzdHJpbmdcbiAgY2xpZW50SWQ/OiBudW1iZXJcbiAgY2xpZW50TmFtZT86IHN0cmluZ1xuICBmZWVJZD86IG51bWJlclxuICBhZ2VudE5hbWU6IHN0cmluZ1xuICBhZ2VudElkOiBzdHJpbmdcbiAgaXNXZWJTZWFyY2hBY3RpdmU/OiBib29sZWFuXG4gIGlzRGVlcFNlYXJjaEFjdGl2ZT86IGJvb2xlYW5cbiAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdXG4gIHByb2plY3ROYW1lPzogc3RyaW5nXG4gIHRhc2tJZD86IG51bWJlclxuICB0YXNrTmFtZT86IHN0cmluZ1xuICBmYXFJZD86IHN0cmluZ1xuICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZ1xuICBmdWFJZD86IHN0cmluZ1xuICBzY0lkPzogc3RyaW5nXG4gIGFnZW50RW50aXR5PzogQWdlbnRFbnRpdHlcbiAgYWdlbnRUeXBlPzogQWdlbnRUeXBlXG4gIGFnZW50RW1vamk/OiBzdHJpbmcgfCBudWxsXG4gIGNvbnRleHRNZXNzYWdlPzogQ29udGV4dE1lc3NhZ2VcbiAgY29udGV4dERhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxufVxuXG4vKipcbiAqIEFkYXB0ZXIgc29icmUgYHNlc3Npb25TdHJlYW1NYW5hZ2VyYC4gTWFudGllbmUgbGEgQVBJIHDDumJsaWNhIGhpc3TDs3JpY2FcbiAqIChgYXNrTWFpYWAsIGBpc0xvYWRpbmdgLCBgaXNXcml0aW5nYCwgYHN0b3BTdHJlYW1pbmdgLCBldGMuKSBwZXJvIGFob3JhIGVsXG4gKiBtb3RvciBkZSBzdHJlYW1pbmcgdml2ZSBlbiBlbCBtYW5hZ2VyIChtb2R1bGUtbGV2ZWwpLCBsbyBxdWUgcGVybWl0ZSB0ZW5lclxuICogdmFyaWFzIHNlc2lvbmVzIGdlbmVyYW5kbyBhIGxhIHZleiB5IHF1ZSBzb2JyZXZpdmFuIGEgY2FtYmlvcyBkZSB2aXN0YS5cbiAqXG4gKiBMb3MgZmxhZ3MgcmVhY3Rpdm9zIChgaXNMb2FkaW5nYC9gaXNXcml0aW5nYC9gc3RyZWFtQWN0aXZpdHlgKSBzZSBsZWVuIGRlbFxuICogc3RvcmUgcGFyYSBsYSBzZXNpw7NuIGFjdHVhbG1lbnRlIGFjdGl2YSAoYGFjdGl2ZVNlc3Npb25JZGApLlxuICovXG5leHBvcnQgY29uc3QgdXNlT3JjaGVzdHJhdG9yU3RyZWFtID0gKHtcbiAgYWN0aXZlU2Vzc2lvbklkLFxuICBvblN0cmVhbVVwZGF0ZSxcbiAgb25GaW5pc2hTdHJlYW0sXG4gIG9uU3RhcnRXcml0aW5nLFxuICBvblN0b3AsXG4gIG9uRXJyb3IsXG4gIG9uQXBwcm92YWxSZXF1aXJlZCxcbiAgaGl0bEV4ZWN1dGlvbkNvbnRleHRSZWYsXG59OiBVc2VPcmNoZXN0cmF0b3JTdHJlYW1Qcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFtTRUNUSU9OUy5jaGF0QUldKVxuXG4gIGNvbnN0IHsgaXNMb2FkaW5nLCBpc1dyaXRpbmcsIGxvYWRpbmdNZXNzYWdlLCBzdHJlYW1BY3Rpdml0eSB9ID0gdXNlU2Vzc2lvblN0cmVhbVN0YXRlKGFjdGl2ZVNlc3Npb25JZClcblxuICBjb25zdCBvblN0cmVhbVVwZGF0ZVJlZiA9IHVzZVJlZihvblN0cmVhbVVwZGF0ZSlcbiAgY29uc3Qgb25GaW5pc2hTdHJlYW1SZWYgPSB1c2VSZWYob25GaW5pc2hTdHJlYW0pXG4gIGNvbnN0IG9uU3RhcnRXcml0aW5nUmVmID0gdXNlUmVmKG9uU3RhcnRXcml0aW5nKVxuICBjb25zdCBvblN0b3BSZWYgPSB1c2VSZWYob25TdG9wKVxuICBjb25zdCBvbkVycm9yUmVmID0gdXNlUmVmKG9uRXJyb3IpXG4gIGNvbnN0IG9uQXBwcm92YWxSZXF1aXJlZFJlZiA9IHVzZVJlZihvbkFwcHJvdmFsUmVxdWlyZWQpXG5cbiAgb25TdHJlYW1VcGRhdGVSZWYuY3VycmVudCA9IG9uU3RyZWFtVXBkYXRlXG4gIG9uRmluaXNoU3RyZWFtUmVmLmN1cnJlbnQgPSBvbkZpbmlzaFN0cmVhbVxuICBvblN0YXJ0V3JpdGluZ1JlZi5jdXJyZW50ID0gb25TdGFydFdyaXRpbmdcbiAgb25TdG9wUmVmLmN1cnJlbnQgPSBvblN0b3BcbiAgb25FcnJvclJlZi5jdXJyZW50ID0gb25FcnJvclxuICBvbkFwcHJvdmFsUmVxdWlyZWRSZWYuY3VycmVudCA9IG9uQXBwcm92YWxSZXF1aXJlZFxuXG4gIGNvbnN0IGFza01haWEgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocGF5bG9hZDogQXNrTWFpYVBheWxvYWQpOiBQcm9taXNlPFN0YXJ0U3RyZWFtUmVzdWx0PiA9PiB7XG4gICAgICBjb25zdCB7IGNoYXRJZDogc2Vzc2lvbklkLCBtZXNzYWdlSWQgfSA9IHBheWxvYWRcbiAgICAgIGNvbnN0IHBsYWNlaG9sZGVySWQgPSBgYW5zd2VyLSR7bWVzc2FnZUlkfS1zdHJlYW1pbmdgXG4gICAgICBjb25zdCBjdHg6IFN0cmVhbUNvbnRleHQgPSB7IHNlc3Npb25JZCwgbWVzc2FnZUlkLCBwbGFjZWhvbGRlcklkIH1cblxuICAgICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgICAgaW5wdXQ6IHBheWxvYWQubWVzc2FnZSxcbiAgICAgICAgaGlzdG9yeTogcGF5bG9hZC5oaXN0b3J5LFxuICAgICAgICBsYW5nOiBwYXlsb2FkLmxhbmcsXG4gICAgICAgIHVzZXJJZDogcGF5bG9hZC51c2VySWQsXG4gICAgICAgIC4uLihwYXlsb2FkLmZpcnN0TmFtZSA/IHsgZmlyc3ROYW1lOiBwYXlsb2FkLmZpcnN0TmFtZSB9IDoge30pLFxuICAgICAgICAuLi4ocGF5bG9hZC5sYXN0TmFtZSA/IHsgbGFzdE5hbWU6IHBheWxvYWQubGFzdE5hbWUgfSA6IHt9KSxcbiAgICAgICAgY29tcGFueUlkOiBwYXlsb2FkLmNvbXBhbnlJZCxcbiAgICAgICAgY2hhdElkOiBwYXlsb2FkLmNoYXRJZCxcbiAgICAgICAgbWVzc2FnZUlkOiBwYXlsb2FkLm1lc3NhZ2VJZCxcbiAgICAgICAgY2xpZW50SWQ6IHBheWxvYWQuY2xpZW50SWQsXG4gICAgICAgIC4uLihwYXlsb2FkLmZlZUlkICE9IG51bGwgPyB7IGZlZUlkOiBwYXlsb2FkLmZlZUlkIH0gOiB7fSksXG4gICAgICAgIGFnZW50TmFtZTogcGF5bG9hZC5hZ2VudE5hbWUsXG4gICAgICAgIGFnZW50SWQ6IHBheWxvYWQuYWdlbnRJZCxcbiAgICAgICAgaXNXZWJTZWFyY2hBY3RpdmU6IHBheWxvYWQuaXNXZWJTZWFyY2hBY3RpdmUsXG4gICAgICAgIGlzRGVlcFNlYXJjaEFjdGl2ZTogcGF5bG9hZC5pc0RlZXBTZWFyY2hBY3RpdmUsXG4gICAgICAgIC4uLihwYXlsb2FkLnByb2plY3RJZCA/IHsgcHJvamVjdElkOiBwYXlsb2FkLnByb2plY3RJZCB9IDoge30pLFxuICAgICAgICAuLi4ocGF5bG9hZC5hdHRhY2htZW50cyA/IHsgYXR0YWNobWVudHM6IHBheWxvYWQuYXR0YWNobWVudHMgfSA6IHt9KSxcbiAgICAgICAgLi4uKHBheWxvYWQucHJvamVjdE5hbWUgPyB7IHByb2plY3ROYW1lOiBwYXlsb2FkLnByb2plY3ROYW1lIH0gOiB7fSksXG4gICAgICAgIC4uLihwYXlsb2FkLmNsaWVudE5hbWUgPyB7IGNsaWVudE5hbWU6IHBheWxvYWQuY2xpZW50TmFtZSB9IDoge30pLFxuICAgICAgICAuLi4ocGF5bG9hZC50YXNrSWQgIT0gbnVsbCA/IHsgdGFza0lkOiBwYXlsb2FkLnRhc2tJZCB9IDoge30pLFxuICAgICAgICAuLi4ocGF5bG9hZC50YXNrTmFtZSA/IHsgdGFza05hbWU6IHBheWxvYWQudGFza05hbWUgfSA6IHt9KSxcbiAgICAgICAgLi4uKHBheWxvYWQuZmFxSWQgPyB7IGZhcUlkOiBwYXlsb2FkLmZhcUlkIH0gOiB7fSksXG4gICAgICAgIC4uLihwYXlsb2FkLmFnZW50U3VnZ2VzdGlvbklkID8geyBhZ2VudFN1Z2dlc3Rpb25JZDogcGF5bG9hZC5hZ2VudFN1Z2dlc3Rpb25JZCB9IDoge30pLFxuICAgICAgICAuLi4ocGF5bG9hZC5mdWFJZCA/IHsgZnVhSWQ6IHBheWxvYWQuZnVhSWQgfSA6IHt9KSxcbiAgICAgICAgLi4uKHBheWxvYWQuc2NJZCA/IHsgc2NJZDogcGF5bG9hZC5zY0lkIH0gOiB7fSksXG4gICAgICAgIC4uLihwYXlsb2FkLmFnZW50RW50aXR5ICE9IG51bGwgPyB7IGFnZW50RW50aXR5OiBwYXlsb2FkLmFnZW50RW50aXR5IH0gOiB7fSksXG4gICAgICAgIC4uLihwYXlsb2FkLmFnZW50VHlwZSAhPSBudWxsID8geyBhZ2VudFR5cGU6IHBheWxvYWQuYWdlbnRUeXBlIH0gOiB7fSksXG4gICAgICAgIC4uLihwYXlsb2FkLmNvbnRleHRNZXNzYWdlID8geyBjb250ZXh0TWVzc2FnZTogcGF5bG9hZC5jb250ZXh0TWVzc2FnZSB9IDoge30pLFxuICAgICAgICAuLi4ocGF5bG9hZC5jb250ZXh0RGF0YSA/IHsgY29udGV4dERhdGE6IHBheWxvYWQuY29udGV4dERhdGEgfSA6IHt9KSxcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHNlc3Npb25TdHJlYW1NYW5hZ2VyLnN0YXJ0U3RyZWFtKHtcbiAgICAgICAgc2Vzc2lvbklkLFxuICAgICAgICBwbGFjZWhvbGRlcklkLFxuICAgICAgICByZXF1ZXN0LFxuICAgICAgICB0LFxuICAgICAgICBhY3Rpdml0eU9wdGlvbnM6IHtcbiAgICAgICAgICBpc1dlYlNlYXJjaEFjdGl2ZTogcGF5bG9hZC5pc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICAgICAgICBpc0RlZXBTZWFyY2hBY3RpdmU6IHBheWxvYWQuaXNEZWVwU2VhcmNoQWN0aXZlLFxuICAgICAgICAgIGhhc0F0dGFjaG1lbnRzOiBCb29sZWFuKHBheWxvYWQuYXR0YWNobWVudHM/Lmxlbmd0aCksXG4gICAgICAgICAgYXR0YWNobWVudHNDb3VudDogcGF5bG9hZC5hdHRhY2htZW50cz8ubGVuZ3RoID8/IDAsXG4gICAgICAgIH0sXG4gICAgICAgIGhpdGxFeGVjdXRpb25Db250ZXh0OiBoaXRsRXhlY3V0aW9uQ29udGV4dFJlZj8uY3VycmVudCA/PyBudWxsLFxuICAgICAgICBhZ2VudElkOiBwYXlsb2FkLmFnZW50SWQsXG4gICAgICAgIGFnZW50TmFtZTogcGF5bG9hZC5hZ2VudE5hbWUsXG4gICAgICAgIGNhbGxiYWNrczoge1xuICAgICAgICAgIG9uU3RyZWFtVXBkYXRlOiBjb250ZW50ID0+IG9uU3RyZWFtVXBkYXRlUmVmLmN1cnJlbnQ/LihjdHgsIGNvbnRlbnQpLFxuICAgICAgICAgIG9uU3RhcnRXcml0aW5nOiAoKSA9PiBvblN0YXJ0V3JpdGluZ1JlZi5jdXJyZW50Py4oKSxcbiAgICAgICAgICBvbkZpbmlzaFN0cmVhbTogZmluaXNoUGF5bG9hZCA9PlxuICAgICAgICAgICAgb25GaW5pc2hTdHJlYW1SZWYuY3VycmVudD8uKFxuICAgICAgICAgICAgICBjdHgsXG4gICAgICAgICAgICAgIGZpbmlzaFBheWxvYWQuY29udGVudCxcbiAgICAgICAgICAgICAgZmluaXNoUGF5bG9hZC5zb3VyY2VzLFxuICAgICAgICAgICAgICBmaW5pc2hQYXlsb2FkLm1lbW9yeVNlc3Npb25JZCxcbiAgICAgICAgICAgICAgZmluaXNoUGF5bG9hZC5hdHRhY2htZW50cyxcbiAgICAgICAgICAgICAgZmluaXNoUGF5bG9hZC5zdWdnZXN0aW9ucyxcbiAgICAgICAgICAgICAgZmluaXNoUGF5bG9hZC5jb21wbGV0ZWRBZ2VudElkLFxuICAgICAgICAgICAgICBmaW5pc2hQYXlsb2FkLnJlc29sdmVkQ29udGV4dCBhcyBhbnlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgb25FcnJvcjogKGVycm9yVHlwZSwgZXJyb3JNZXNzYWdlKSA9PiBvbkVycm9yUmVmLmN1cnJlbnQ/LihjdHgsIGVycm9yVHlwZSwgZXJyb3JNZXNzYWdlKSxcbiAgICAgICAgICBvbkFwcHJvdmFsUmVxdWlyZWQ6IChhcHByb3ZhbCwgYWNjdW11bGF0ZWRDb250ZW50KSA9PlxuICAgICAgICAgICAgb25BcHByb3ZhbFJlcXVpcmVkUmVmLmN1cnJlbnQ/LihjdHgsIGFwcHJvdmFsLCBhY2N1bXVsYXRlZENvbnRlbnQpLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9LFxuICAgIFt0LCBoaXRsRXhlY3V0aW9uQ29udGV4dFJlZl1cbiAgKVxuXG4gIGNvbnN0IHJldHJ5Q29tcGxldGlvbiA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChwYXlsb2FkOiBSZXRyeUNvbXBsZXRpb25QYXlsb2FkKTogUHJvbWlzZTxTdGFydFN0cmVhbVJlc3VsdD4gPT4ge1xuICAgICAgY29uc3QgeyBjaGF0SWQ6IHNlc3Npb25JZCwgbWVzc2FnZUlkIH0gPSBwYXlsb2FkXG4gICAgICBjb25zdCBwbGFjZWhvbGRlcklkID0gYGFuc3dlci0ke21lc3NhZ2VJZH0tc3RyZWFtaW5nYFxuICAgICAgY29uc3QgY3R4OiBTdHJlYW1Db250ZXh0ID0geyBzZXNzaW9uSWQsIG1lc3NhZ2VJZCwgcGxhY2Vob2xkZXJJZCB9XG5cbiAgICAgIHJldHVybiBzZXNzaW9uU3RyZWFtTWFuYWdlci5zdGFydFJldHJ5U3RyZWFtKHtcbiAgICAgICAgc2Vzc2lvbklkLFxuICAgICAgICBwbGFjZWhvbGRlcklkLFxuICAgICAgICByZXRyeVJlcXVlc3Q6IHtcbiAgICAgICAgICBzZXNzaW9uSWQsXG4gICAgICAgICAgbWVtb3J5U2Vzc2lvbklkOiBwYXlsb2FkLm1lbW9yeVNlc3Npb25JZCxcbiAgICAgICAgICBhZ2VudElkOiBwYXlsb2FkLmFnZW50SWQsXG4gICAgICAgICAgbGFuZzogcGF5bG9hZC5sYW5nLFxuICAgICAgICAgIGlzV2ViU2VhcmNoQWN0aXZlOiBwYXlsb2FkLmlzV2ViU2VhcmNoQWN0aXZlLFxuICAgICAgICAgIGlzRGVlcFNlYXJjaEFjdGl2ZTogcGF5bG9hZC5pc0RlZXBTZWFyY2hBY3RpdmUsXG4gICAgICAgICAgLi4uKHBheWxvYWQucHJvamVjdElkID8geyBwcm9qZWN0SWQ6IHBheWxvYWQucHJvamVjdElkIH0gOiB7fSksXG4gICAgICAgICAgLi4uKHBheWxvYWQuY2xpZW50SWQgIT0gbnVsbCA/IHsgY2xpZW50SWQ6IHBheWxvYWQuY2xpZW50SWQgfSA6IHt9KSxcbiAgICAgICAgICAuLi4ocGF5bG9hZC50YXNrSWQgIT0gbnVsbCA/IHsgdGFza0lkOiBwYXlsb2FkLnRhc2tJZCB9IDoge30pLFxuICAgICAgICAgIC4uLihwYXlsb2FkLmFnZW50VHlwZSAhPSBudWxsID8geyBhZ2VudFR5cGU6IHBheWxvYWQuYWdlbnRUeXBlIH0gOiB7fSksXG4gICAgICAgICAgLi4uKHBheWxvYWQuY29udGV4dERhdGEgPyB7IGNvbnRleHREYXRhOiBwYXlsb2FkLmNvbnRleHREYXRhIH0gOiB7fSksXG4gICAgICAgIH0sXG4gICAgICAgIHQsXG4gICAgICAgIGFjdGl2aXR5T3B0aW9uczoge1xuICAgICAgICAgIGlzV2ViU2VhcmNoQWN0aXZlOiBwYXlsb2FkLmlzV2ViU2VhcmNoQWN0aXZlLFxuICAgICAgICAgIGlzRGVlcFNlYXJjaEFjdGl2ZTogcGF5bG9hZC5pc0RlZXBTZWFyY2hBY3RpdmUsXG4gICAgICAgIH0sXG4gICAgICAgIGFnZW50SWQ6IHBheWxvYWQuYWdlbnRJZCxcbiAgICAgICAgYWdlbnROYW1lOiBwYXlsb2FkLmFnZW50TmFtZSxcbiAgICAgICAgY2FsbGJhY2tzOiB7XG4gICAgICAgICAgb25TdHJlYW1VcGRhdGU6IGNvbnRlbnQgPT4gb25TdHJlYW1VcGRhdGVSZWYuY3VycmVudD8uKGN0eCwgY29udGVudCksXG4gICAgICAgICAgb25TdGFydFdyaXRpbmc6ICgpID0+IG9uU3RhcnRXcml0aW5nUmVmLmN1cnJlbnQ/LigpLFxuICAgICAgICAgIG9uRmluaXNoU3RyZWFtOiBmaW5pc2hQYXlsb2FkID0+XG4gICAgICAgICAgICBvbkZpbmlzaFN0cmVhbVJlZi5jdXJyZW50Py4oXG4gICAgICAgICAgICAgIGN0eCxcbiAgICAgICAgICAgICAgZmluaXNoUGF5bG9hZC5jb250ZW50LFxuICAgICAgICAgICAgICBmaW5pc2hQYXlsb2FkLnNvdXJjZXMsXG4gICAgICAgICAgICAgIGZpbmlzaFBheWxvYWQubWVtb3J5U2Vzc2lvbklkLFxuICAgICAgICAgICAgICBmaW5pc2hQYXlsb2FkLmF0dGFjaG1lbnRzLFxuICAgICAgICAgICAgICBmaW5pc2hQYXlsb2FkLnN1Z2dlc3Rpb25zLFxuICAgICAgICAgICAgICBmaW5pc2hQYXlsb2FkLmNvbXBsZXRlZEFnZW50SWQsXG4gICAgICAgICAgICAgIGZpbmlzaFBheWxvYWQucmVzb2x2ZWRDb250ZXh0IGFzIGFueVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICBvbkVycm9yOiAoZXJyb3JUeXBlLCBlcnJvck1lc3NhZ2UpID0+IG9uRXJyb3JSZWYuY3VycmVudD8uKGN0eCwgZXJyb3JUeXBlLCBlcnJvck1lc3NhZ2UpLFxuICAgICAgICAgIG9uQXBwcm92YWxSZXF1aXJlZDogKGFwcHJvdmFsLCBhY2N1bXVsYXRlZENvbnRlbnQpID0+XG4gICAgICAgICAgICBvbkFwcHJvdmFsUmVxdWlyZWRSZWYuY3VycmVudD8uKGN0eCwgYXBwcm92YWwsIGFjY3VtdWxhdGVkQ29udGVudCksXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIH0sXG4gICAgW3RdXG4gIClcblxuICBjb25zdCBzdG9wU3RyZWFtaW5nID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNlc3Npb25TdHJlYW1NYW5hZ2VyLnN0b3BTdHJlYW0oYWN0aXZlU2Vzc2lvbklkLCB7XG4gICAgICBvblN0b3A6IHBhcnRpYWxUZXh0ID0+IG9uU3RvcFJlZi5jdXJyZW50Py4ocGFydGlhbFRleHQpLFxuICAgIH0pXG4gIH0sIFthY3RpdmVTZXNzaW9uSWRdKVxuXG4gIGNvbnN0IGFib3J0U3RyZWFtU2lsZW50bHkgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2Vzc2lvblN0cmVhbU1hbmFnZXIuYWJvcnRTaWxlbnRseShhY3RpdmVTZXNzaW9uSWQpXG4gIH0sIFthY3RpdmVTZXNzaW9uSWRdKVxuXG4gIGNvbnN0IHVwZGF0ZVN0cmVhbUFjdGl2aXR5ID0gdXNlQ2FsbGJhY2soXG4gICAgKGFjdGl2aXR5OiBTdHJlYW1BY3Rpdml0eSB8IG51bGwpID0+IHtcbiAgICAgIHVzZVNlc3Npb25zU3RvcmUuZ2V0U3RhdGUoKS5zZXRBY3Rpdml0eShhY3RpdmVTZXNzaW9uSWQsIGFjdGl2aXR5KVxuICAgIH0sXG4gICAgW2FjdGl2ZVNlc3Npb25JZF1cbiAgKVxuXG4gIGNvbnN0IHJlc2V0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHVzZVNlc3Npb25zU3RvcmUuZ2V0U3RhdGUoKS5wYXRjaE1ldGEoYWN0aXZlU2Vzc2lvbklkLCB7IGlzTG9hZGluZzogZmFsc2UsIGlzV3JpdGluZzogZmFsc2UgfSlcbiAgICB1c2VTZXNzaW9uc1N0b3JlLmdldFN0YXRlKCkuc2V0QWN0aXZpdHkoYWN0aXZlU2Vzc2lvbklkLCBudWxsKVxuICB9LCBbYWN0aXZlU2Vzc2lvbklkXSlcblxuICByZXR1cm4ge1xuICAgIGFza01haWEsXG4gICAgcmV0cnlDb21wbGV0aW9uLFxuICAgIGlzTG9hZGluZyxcbiAgICBpc1dyaXRpbmcsXG4gICAgbG9hZGluZ01lc3NhZ2UsXG4gICAgc3RyZWFtQWN0aXZpdHksXG4gICAgdXBkYXRlU3RyZWFtQWN0aXZpdHksXG4gICAgcmVzZXQsXG4gICAgc3RvcFN0cmVhbWluZyxcbiAgICBhYm9ydFN0cmVhbVNpbGVudGx5LFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQSxTQUFTQSxXQUFXLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBQzNDLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBTTlDLFNBQVNDLFFBQVEsUUFBUSx3QkFBd0I7QUFFakQsU0FBU0Msb0JBQW9CLFFBQVEsMkNBQTJDO0FBQ2hGLFNBQVNDLGdCQUFnQixRQUFRLHVDQUF1QztBQUN4RSxTQUFTQyxxQkFBcUIsUUFBUSxxQ0FBcUM7QUFvRDNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUMscUJBQXFCLEdBQUcsU0FBeEJBLHFC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
270
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVJlZiIsInVzZVRyYW5zbGF0aW9uIiwiU0VDVElPTlMiLCJzZXNzaW9uU3RyZWFtTWFuYWdlciIsInVzZVNlc3Npb25zU3RvcmUiLCJ1c2VTZXNzaW9uU3RyZWFtU3RhdGUiLCJ1c2VPcmNoZXN0cmF0b3JTdHJlYW0iLCJfcmVmIiwiYWN0aXZlU2Vzc2lvbklkIiwib25TdHJlYW1VcGRhdGUiLCJvbkZpbmlzaFN0cmVhbSIsIm9uU3RhcnRXcml0aW5nIiwib25TdG9wIiwib25FcnJvciIsIm9uQXBwcm92YWxSZXF1aXJlZCIsImhpdGxFeGVjdXRpb25Db250ZXh0UmVmIiwiX3VzZVRyYW5zbGF0aW9uIiwiY2hhdEFJIiwidCIsIl91c2VTZXNzaW9uU3RyZWFtU3RhdCIsImlzTG9hZGluZyIsImlzV3JpdGluZyIsImxvYWRpbmdNZXNzYWdlIiwic3RyZWFtQWN0aXZpdHkiLCJvblN0cmVhbVVwZGF0ZVJlZiIsIm9uRmluaXNoU3RyZWFtUmVmIiwib25TdGFydFdyaXRpbmdSZWYiLCJvblN0b3BSZWYiLCJvbkVycm9yUmVmIiwib25BcHByb3ZhbFJlcXVpcmVkUmVmIiwiY3VycmVudCIsImFza01haWEiLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwicGF5bG9hZCIsIl9wYXlsb2FkJGF0dGFjaG1lbnRzIiwiX3BheWxvYWQkYXR0YWNobWVudHMkIiwiX3BheWxvYWQkYXR0YWNobWVudHMyIiwiX2hpdGxFeGVjdXRpb25Db250ZXh0Iiwic2Vzc2lvbklkIiwibWVzc2FnZUlkIiwicGxhY2Vob2xkZXJJZCIsImN0eCIsInJlcXVlc3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImNoYXRJZCIsImNvbmNhdCIsIl9vYmplY3RTcHJlYWQiLCJpbnB1dCIsIm1lc3NhZ2UiLCJoaXN0b3J5IiwibGFuZyIsInVzZXJJZCIsImZpcnN0TmFtZSIsImxhc3ROYW1lIiwiY29tcGFueUlkIiwiY2xpZW50SWQiLCJmZWVJZCIsImFnZW50TmFtZSIsImFnZW50SWQiLCJpc1dlYlNlYXJjaEFjdGl2ZSIsImlzRGVlcFNlYXJjaEFjdGl2ZSIsImlzQXV0b0FwcHJvdmVBY3RpdmUiLCJwcm9qZWN0SWQiLCJhdHRhY2htZW50cyIsInByb2plY3ROYW1lIiwiY2xpZW50TmFtZSIsInRhc2tJZCIsInRhc2tOYW1lIiwiZmFxSWQiLCJhZ2VudFN1Z2dlc3Rpb25JZCIsImZ1YUlkIiwic2NJZCIsImFnZW50RW50aXR5IiwiYWdlbnRUeXBlIiwiY29udGV4dE1lc3NhZ2UiLCJjb250ZXh0RGF0YSIsImFicnVwdCIsInN0YXJ0U3RyZWFtIiwiYWN0aXZpdHlPcHRpb25zIiwiaGFzQXR0YWNobWVudHMiLCJCb29sZWFuIiwibGVuZ3RoIiwiYXR0YWNobWVudHNDb3VudCIsImhpdGxFeGVjdXRpb25Db250ZXh0IiwiY2FsbGJhY2tzIiwiY29udGVudCIsIl9vblN0cmVhbVVwZGF0ZVJlZiRjdSIsImNhbGwiLCJfb25TdGFydFdyaXRpbmdSZWYkY3UiLCJmaW5pc2hQYXlsb2FkIiwiX29uRmluaXNoU3RyZWFtUmVmJGN1Iiwic291cmNlcyIsIm1lbW9yeVNlc3Npb25JZCIsInN1Z2dlc3Rpb25zIiwiY29tcGxldGVkQWdlbnRJZCIsInJlc29sdmVkQ29udGV4dCIsInJlYXNvbmluZyIsImVycm9yVHlwZSIsImVycm9yTWVzc2FnZSIsIl9vbkVycm9yUmVmJGN1cnJlbnQiLCJhcHByb3ZhbCIsImFjY3VtdWxhdGVkQ29udGVudCIsIl9vbkFwcHJvdmFsUmVxdWlyZWRSZSIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwicmV0cnlDb21wbGV0aW9uIiwiX3JlZjMiLCJfY2FsbGVlMiIsIl9jb250ZXh0MiIsInN0YXJ0UmV0cnlTdHJlYW0iLCJyZXRyeVJlcXVlc3QiLCJfb25TdHJlYW1VcGRhdGVSZWYkY3UyIiwiX29uU3RhcnRXcml0aW5nUmVmJGN1MiIsIl9vbkZpbmlzaFN0cmVhbVJlZiRjdTIiLCJfb25FcnJvclJlZiRjdXJyZW50MiIsIl9vbkFwcHJvdmFsUmVxdWlyZWRSZTIiLCJfeDIiLCJzdG9wU3RyZWFtaW5nIiwic3RvcFN0cmVhbSIsInBhcnRpYWxUZXh0IiwiX29uU3RvcFJlZiRjdXJyZW50IiwiYWJvcnRTdHJlYW1TaWxlbnRseSIsImFib3J0U2lsZW50bHkiLCJ1cGRhdGVTdHJlYW1BY3Rpdml0eSIsImFjdGl2aXR5IiwiZ2V0U3RhdGUiLCJzZXRBY3Rpdml0eSIsInJlc2V0IiwicGF0Y2hNZXRhIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL3VzZU9yY2hlc3RyYXRvclN0cmVhbS91c2VPcmNoZXN0cmF0b3JTdHJlYW0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgeyBDaGF0SGlzdG9yeSB9IGZyb20gJy4uLy4uL3R5cGVzL0NoYXQnXG5pbXBvcnQgeyBBZ2VudEVudGl0eSwgQWdlbnRUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBDb250ZXh0TWVzc2FnZSB9IGZyb20gJy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgVXNlT3JjaGVzdHJhdG9yU3RyZWFtUHJvcHMsIFN0cmVhbUNvbnRleHQgfSBmcm9tICcuL3VzZU9yY2hlc3RyYXRvclN0cmVhbS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgdHlwZSB7IFN0cmVhbUFjdGl2aXR5IH0gZnJvbSAnLi4vLi4vdHlwZXMvc3RyZWFtQWN0aXZpdHknXG5pbXBvcnQgeyBzZXNzaW9uU3RyZWFtTWFuYWdlciB9IGZyb20gJy4uLy4uL3N0b3JlL3Nlc3Npb25zL3Nlc3Npb25TdHJlYW1NYW5hZ2VyJ1xuaW1wb3J0IHsgdXNlU2Vzc2lvbnNTdG9yZSB9IGZyb20gJy4uLy4uL3N0b3JlL3Nlc3Npb25zL3VzZVNlc3Npb25zU3RvcmUnXG5pbXBvcnQgeyB1c2VTZXNzaW9uU3RyZWFtU3RhdGUgfSBmcm9tICcuLi8uLi9zdG9yZS9zZXNzaW9ucy91c2VTZXNzaW9uTWV0YSdcbmltcG9ydCB0eXBlIHsgU3RhcnRTdHJlYW1SZXN1bHQgfSBmcm9tICcuLi8uLi9zdG9yZS9zZXNzaW9ucy9zZXNzaW9ucy50eXBlcydcblxudHlwZSBSZXRyeUNvbXBsZXRpb25QYXlsb2FkID0ge1xuICBjaGF0SWQ6IHN0cmluZ1xuICBtZXNzYWdlSWQ6IHN0cmluZ1xuICBtZW1vcnlTZXNzaW9uSWQ6IHN0cmluZ1xuICBsYW5nOiBzdHJpbmdcbiAgYWdlbnRJZDogc3RyaW5nXG4gIGFnZW50TmFtZTogc3RyaW5nXG4gIGFnZW50VHlwZT86IEFnZW50VHlwZVxuICBpc1dlYlNlYXJjaEFjdGl2ZT86IGJvb2xlYW5cbiAgaXNEZWVwU2VhcmNoQWN0aXZlPzogYm9vbGVhblxuICBwcm9qZWN0SWQ/OiBudW1iZXIgfCBudWxsXG4gIGNsaWVudElkPzogbnVtYmVyXG4gIHRhc2tJZD86IG51bWJlclxuICBjb250ZXh0RGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG59XG5cbnR5cGUgQXNrTWFpYVBheWxvYWQgPSB7XG4gIG1lc3NhZ2U6IHN0cmluZ1xuICBoaXN0b3J5OiBDaGF0SGlzdG9yeVtdXG4gIHByb2plY3RJZDogbnVtYmVyIHwgbnVsbFxuICBsYW5nOiBzdHJpbmdcbiAgdXNlcklkOiBzdHJpbmdcbiAgZmlyc3ROYW1lPzogc3RyaW5nXG4gIGxhc3ROYW1lPzogc3RyaW5nXG4gIGNvbXBhbnlJZDogc3RyaW5nXG4gIGNoYXRJZDogc3RyaW5nXG4gIG1lc3NhZ2VJZDogc3RyaW5nXG4gIGNsaWVudElkPzogbnVtYmVyXG4gIGNsaWVudE5hbWU/OiBzdHJpbmdcbiAgZmVlSWQ/OiBudW1iZXJcbiAgYWdlbnROYW1lOiBzdHJpbmdcbiAgYWdlbnRJZDogc3RyaW5nXG4gIGlzV2ViU2VhcmNoQWN0aXZlPzogYm9vbGVhblxuICBpc0RlZXBTZWFyY2hBY3RpdmU/OiBib29sZWFuXG4gIGlzQXV0b0FwcHJvdmVBY3RpdmU/OiBib29sZWFuXG4gIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXVxuICBwcm9qZWN0TmFtZT86IHN0cmluZ1xuICB0YXNrSWQ/OiBudW1iZXJcbiAgdGFza05hbWU/OiBzdHJpbmdcbiAgZmFxSWQ/OiBzdHJpbmdcbiAgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmdcbiAgZnVhSWQ/OiBzdHJpbmdcbiAgc2NJZD86IHN0cmluZ1xuICBhZ2VudEVudGl0eT86IEFnZW50RW50aXR5XG4gIGFnZW50VHlwZT86IEFnZW50VHlwZVxuICBhZ2VudEVtb2ppPzogc3RyaW5nIHwgbnVsbFxuICBjb250ZXh0TWVzc2FnZT86IENvbnRleHRNZXNzYWdlXG4gIGNvbnRleHREYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbn1cblxuLyoqXG4gKiBBZGFwdGVyIHNvYnJlIGBzZXNzaW9uU3RyZWFtTWFuYWdlcmAuIE1hbnRpZW5lIGxhIEFQSSBww7pibGljYSBoaXN0w7NyaWNhXG4gKiAoYGFza01haWFgLCBgaXNMb2FkaW5nYCwgYGlzV3JpdGluZ2AsIGBzdG9wU3RyZWFtaW5nYCwgZXRjLikgcGVybyBhaG9yYSBlbFxuICogbW90b3IgZGUgc3RyZWFtaW5nIHZpdmUgZW4gZWwgbWFuYWdlciAobW9kdWxlLWxldmVsKSwgbG8gcXVlIHBlcm1pdGUgdGVuZXJcbiAqIHZhcmlhcyBzZXNpb25lcyBnZW5lcmFuZG8gYSBsYSB2ZXogeSBxdWUgc29icmV2aXZhbiBhIGNhbWJpb3MgZGUgdmlzdGEuXG4gKlxuICogTG9zIGZsYWdzIHJlYWN0aXZvcyAoYGlzTG9hZGluZ2AvYGlzV3JpdGluZ2AvYHN0cmVhbUFjdGl2aXR5YCkgc2UgbGVlbiBkZWxcbiAqIHN0b3JlIHBhcmEgbGEgc2VzacOzbiBhY3R1YWxtZW50ZSBhY3RpdmEgKGBhY3RpdmVTZXNzaW9uSWRgKS5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZU9yY2hlc3RyYXRvclN0cmVhbSA9ICh7XG4gIGFjdGl2ZVNlc3Npb25JZCxcbiAgb25TdHJlYW1VcGRhdGUsXG4gIG9uRmluaXNoU3RyZWFtLFxuICBvblN0YXJ0V3JpdGluZyxcbiAgb25TdG9wLFxuICBvbkVycm9yLFxuICBvbkFwcHJvdmFsUmVxdWlyZWQsXG4gIGhpdGxFeGVjdXRpb25Db250ZXh0UmVmLFxufTogVXNlT3JjaGVzdHJhdG9yU3RyZWFtUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbihbU0VDVElPTlMuY2hhdEFJXSlcblxuICBjb25zdCB7IGlzTG9hZGluZywgaXNXcml0aW5nLCBsb2FkaW5nTWVzc2FnZSwgc3RyZWFtQWN0aXZpdHkgfSA9IHVzZVNlc3Npb25TdHJlYW1TdGF0ZShhY3RpdmVTZXNzaW9uSWQpXG5cbiAgY29uc3Qgb25TdHJlYW1VcGRhdGVSZWYgPSB1c2VSZWYob25TdHJlYW1VcGRhdGUpXG4gIGNvbnN0IG9uRmluaXNoU3RyZWFtUmVmID0gdXNlUmVmKG9uRmluaXNoU3RyZWFtKVxuICBjb25zdCBvblN0YXJ0V3JpdGluZ1JlZiA9IHVzZVJlZihvblN0YXJ0V3JpdGluZylcbiAgY29uc3Qgb25TdG9wUmVmID0gdXNlUmVmKG9uU3RvcClcbiAgY29uc3Qgb25FcnJvclJlZiA9IHVzZVJlZihvbkVycm9yKVxuICBjb25zdCBvbkFwcHJvdmFsUmVxdWlyZWRSZWYgPSB1c2VSZWYob25BcHByb3ZhbFJlcXVpcmVkKVxuXG4gIG9uU3RyZWFtVXBkYXRlUmVmLmN1cnJlbnQgPSBvblN0cmVhbVVwZGF0ZVxuICBvbkZpbmlzaFN0cmVhbVJlZi5jdXJyZW50ID0gb25GaW5pc2hTdHJlYW1cbiAgb25TdGFydFdyaXRpbmdSZWYuY3VycmVudCA9IG9uU3RhcnRXcml0aW5nXG4gIG9uU3RvcFJlZi5jdXJyZW50ID0gb25TdG9wXG4gIG9uRXJyb3JSZWYuY3VycmVudCA9IG9uRXJyb3JcbiAgb25BcHByb3ZhbFJlcXVpcmVkUmVmLmN1cnJlbnQgPSBvbkFwcHJvdmFsUmVxdWlyZWRcblxuICBjb25zdCBhc2tNYWlhID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHBheWxvYWQ6IEFza01haWFQYXlsb2FkKTogUHJvbWlzZTxTdGFydFN0cmVhbVJlc3VsdD4gPT4ge1xuICAgICAgY29uc3QgeyBjaGF0SWQ6IHNlc3Npb25JZCwgbWVzc2FnZUlkIH0gPSBwYXlsb2FkXG4gICAgICBjb25zdCBwbGFjZWhvbGRlcklkID0gYGFuc3dlci0ke21lc3NhZ2VJZH0tc3RyZWFtaW5nYFxuICAgICAgY29uc3QgY3R4OiBTdHJlYW1Db250ZXh0ID0geyBzZXNzaW9uSWQsIG1lc3NhZ2VJZCwgcGxhY2Vob2xkZXJJZCB9XG5cbiAgICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICAgIGlucHV0OiBwYXlsb2FkLm1lc3NhZ2UsXG4gICAgICAgIGhpc3Rvcnk6IHBheWxvYWQuaGlzdG9yeSxcbiAgICAgICAgbGFuZzogcGF5bG9hZC5sYW5nLFxuICAgICAgICB1c2VySWQ6IHBheWxvYWQudXNlcklkLFxuICAgICAgICAuLi4ocGF5bG9hZC5maXJzdE5hbWUgPyB7IGZpcnN0TmFtZTogcGF5bG9hZC5maXJzdE5hbWUgfSA6IHt9KSxcbiAgICAgICAgLi4uKHBheWxvYWQubGFzdE5hbWUgPyB7IGxhc3ROYW1lOiBwYXlsb2FkLmxhc3ROYW1lIH0gOiB7fSksXG4gICAgICAgIGNvbXBhbnlJZDogcGF5bG9hZC5jb21wYW55SWQsXG4gICAgICAgIGNoYXRJZDogcGF5bG9hZC5jaGF0SWQsXG4gICAgICAgIG1lc3NhZ2VJZDogcGF5bG9hZC5tZXNzYWdlSWQsXG4gICAgICAgIGNsaWVudElkOiBwYXlsb2FkLmNsaWVudElkLFxuICAgICAgICAuLi4ocGF5bG9hZC5mZWVJZCAhPSBudWxsID8geyBmZWVJZDogcGF5bG9hZC5mZWVJZCB9IDoge30pLFxuICAgICAgICBhZ2VudE5hbWU6IHBheWxvYWQuYWdlbnROYW1lLFxuICAgICAgICBhZ2VudElkOiBwYXlsb2FkLmFnZW50SWQsXG4gICAgICAgIGlzV2ViU2VhcmNoQWN0aXZlOiBwYXlsb2FkLmlzV2ViU2VhcmNoQWN0aXZlLFxuICAgICAgICBpc0RlZXBTZWFyY2hBY3RpdmU6IHBheWxvYWQuaXNEZWVwU2VhcmNoQWN0aXZlLFxuICAgICAgICBpc0F1dG9BcHByb3ZlQWN0aXZlOiBwYXlsb2FkLmlzQXV0b0FwcHJvdmVBY3RpdmUsXG4gICAgICAgIC4uLihwYXlsb2FkLnByb2plY3RJZCA/IHsgcHJvamVjdElkOiBwYXlsb2FkLnByb2plY3RJZCB9IDoge30pLFxuICAgICAgICAuLi4ocGF5bG9hZC5hdHRhY2htZW50cyA/IHsgYXR0YWNobWVudHM6IHBheWxvYWQuYXR0YWNobWVudHMgfSA6IHt9KSxcbiAgICAgICAgLi4uKHBheWxvYWQucHJvamVjdE5hbWUgPyB7IHByb2plY3ROYW1lOiBwYXlsb2FkLnByb2plY3ROYW1lIH0gOiB7fSksXG4gICAgICAgIC4uLihwYXlsb2FkLmNsaWVudE5hbWUgPyB7IGNsaWVudE5hbWU6IHBheWxvYWQuY2xpZW50TmFtZSB9IDoge30pLFxuICAgICAgICAuLi4ocGF5bG9hZC50YXNrSWQgIT0gbnVsbCA/IHsgdGFza0lkOiBwYXlsb2FkLnRhc2tJZCB9IDoge30pLFxuICAgICAgICAuLi4ocGF5bG9hZC50YXNrTmFtZSA/IHsgdGFza05hbWU6IHBheWxvYWQudGFza05hbWUgfSA6IHt9KSxcbiAgICAgICAgLi4uKHBheWxvYWQuZmFxSWQgPyB7IGZhcUlkOiBwYXlsb2FkLmZhcUlkIH0gOiB7fSksXG4gICAgICAgIC4uLihwYXlsb2FkLmFnZW50U3VnZ2VzdGlvbklkID8geyBhZ2VudFN1Z2dlc3Rpb25JZDogcGF5bG9hZC5hZ2VudFN1Z2dlc3Rpb25JZCB9IDoge30pLFxuICAgICAgICAuLi4ocGF5bG9hZC5mdWFJZCA/IHsgZnVhSWQ6IHBheWxvYWQuZnVhSWQgfSA6IHt9KSxcbiAgICAgICAgLi4uKHBheWxvYWQuc2NJZCA/IHsgc2NJZDogcGF5bG9hZC5zY0lkIH0gOiB7fSksXG4gICAgICAgIC4uLihwYXlsb2FkLmFnZW50RW50aXR5ICE9IG51bGwgPyB7IGFnZW50RW50aXR5OiBwYXlsb2FkLmFnZW50RW50aXR5IH0gOiB7fSksXG4gICAgICAgIC4uLihwYXlsb2FkLmFnZW50VHlwZSAhPSBudWxsID8geyBhZ2VudFR5cGU6IHBheWxvYWQuYWdlbnRUeXBlIH0gOiB7fSksXG4gICAgICAgIC4uLihwYXlsb2FkLmNvbnRleHRNZXNzYWdlID8geyBjb250ZXh0TWVzc2FnZTogcGF5bG9hZC5jb250ZXh0TWVzc2FnZSB9IDoge30pLFxuICAgICAgICAuLi4ocGF5bG9hZC5jb250ZXh0RGF0YSA/IHsgY29udGV4dERhdGE6IHBheWxvYWQuY29udGV4dERhdGEgfSA6IHt9KSxcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHNlc3Npb25TdHJlYW1NYW5hZ2VyLnN0YXJ0U3RyZWFtKHtcbiAgICAgICAgc2Vzc2lvbklkLFxuICAgICAgICBwbGFjZWhvbGRlcklkLFxuICAgICAgICByZXF1ZXN0LFxuICAgICAgICB0LFxuICAgICAgICBhY3Rpdml0eU9wdGlvbnM6IHtcbiAgICAgICAgICBpc1dlYlNlYXJjaEFjdGl2ZTogcGF5bG9hZC5pc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICAgICAgICBpc0RlZXBTZWFyY2hBY3RpdmU6IHBheWxvYWQuaXNEZWVwU2VhcmNoQWN0aXZlLFxuICAgICAgICAgIGhhc0F0dGFjaG1lbnRzOiBCb29sZWFuKHBheWxvYWQuYXR0YWNobWVudHM/Lmxlbmd0aCksXG4gICAgICAgICAgYXR0YWNobWVudHNDb3VudDogcGF5bG9hZC5hdHRhY2htZW50cz8ubGVuZ3RoID8/IDAsXG4gICAgICAgIH0sXG4gICAgICAgIGhpdGxFeGVjdXRpb25Db250ZXh0OiBoaXRsRXhlY3V0aW9uQ29udGV4dFJlZj8uY3VycmVudCA/PyBudWxsLFxuICAgICAgICBhZ2VudElkOiBwYXlsb2FkLmFnZW50SWQsXG4gICAgICAgIGFnZW50TmFtZTogcGF5bG9hZC5hZ2VudE5hbWUsXG4gICAgICAgIGNhbGxiYWNrczoge1xuICAgICAgICAgIG9uU3RyZWFtVXBkYXRlOiBjb250ZW50ID0+IG9uU3RyZWFtVXBkYXRlUmVmLmN1cnJlbnQ/LihjdHgsIGNvbnRlbnQpLFxuICAgICAgICAgIG9uU3RhcnRXcml0aW5nOiAoKSA9PiBvblN0YXJ0V3JpdGluZ1JlZi5jdXJyZW50Py4oKSxcbiAgICAgICAgICBvbkZpbmlzaFN0cmVhbTogZmluaXNoUGF5bG9hZCA9PlxuICAgICAgICAgICAgb25GaW5pc2hTdHJlYW1SZWYuY3VycmVudD8uKFxuICAgICAgICAgICAgICBjdHgsXG4gICAgICAgICAgICAgIGZpbmlzaFBheWxvYWQuY29udGVudCxcbiAgICAgICAgICAgICAgZmluaXNoUGF5bG9hZC5zb3VyY2VzLFxuICAgICAgICAgICAgICBmaW5pc2hQYXlsb2FkLm1lbW9yeVNlc3Npb25JZCxcbiAgICAgICAgICAgICAgZmluaXNoUGF5bG9hZC5hdHRhY2htZW50cyxcbiAgICAgICAgICAgICAgZmluaXNoUGF5bG9hZC5zdWdnZXN0aW9ucyxcbiAgICAgICAgICAgICAgZmluaXNoUGF5bG9hZC5jb21wbGV0ZWRBZ2VudElkLFxuICAgICAgICAgICAgICBmaW5pc2hQYXlsb2FkLnJlc29sdmVkQ29udGV4dCBhcyBhbnksXG4gICAgICAgICAgICAgIGZpbmlzaFBheWxvYWQucmVhc29uaW5nXG4gICAgICAgICAgICApLFxuICAgICAgICAgIG9uRXJyb3I6IChlcnJvclR5cGUsIGVycm9yTWVzc2FnZSkgPT4gb25FcnJvclJlZi5jdXJyZW50Py4oY3R4LCBlcnJvclR5cGUsIGVycm9yTWVzc2FnZSksXG4gICAgICAgICAgb25BcHByb3ZhbFJlcXVpcmVkOiAoYXBwcm92YWwsIGFjY3VtdWxhdGVkQ29udGVudCkgPT5cbiAgICAgICAgICAgIG9uQXBwcm92YWxSZXF1aXJlZFJlZi5jdXJyZW50Py4oY3R4LCBhcHByb3ZhbCwgYWNjdW11bGF0ZWRDb250ZW50KSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbdCwgaGl0bEV4ZWN1dGlvbkNvbnRleHRSZWZdXG4gIClcblxuICBjb25zdCByZXRyeUNvbXBsZXRpb24gPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocGF5bG9hZDogUmV0cnlDb21wbGV0aW9uUGF5bG9hZCk6IFByb21pc2U8U3RhcnRTdHJlYW1SZXN1bHQ+ID0+IHtcbiAgICAgIGNvbnN0IHsgY2hhdElkOiBzZXNzaW9uSWQsIG1lc3NhZ2VJZCB9ID0gcGF5bG9hZFxuICAgICAgY29uc3QgcGxhY2Vob2xkZXJJZCA9IGBhbnN3ZXItJHttZXNzYWdlSWR9LXN0cmVhbWluZ2BcbiAgICAgIGNvbnN0IGN0eDogU3RyZWFtQ29udGV4dCA9IHsgc2Vzc2lvbklkLCBtZXNzYWdlSWQsIHBsYWNlaG9sZGVySWQgfVxuXG4gICAgICByZXR1cm4gc2Vzc2lvblN0cmVhbU1hbmFnZXIuc3RhcnRSZXRyeVN0cmVhbSh7XG4gICAgICAgIHNlc3Npb25JZCxcbiAgICAgICAgcGxhY2Vob2xkZXJJZCxcbiAgICAgICAgcmV0cnlSZXF1ZXN0OiB7XG4gICAgICAgICAgc2Vzc2lvbklkLFxuICAgICAgICAgIG1lbW9yeVNlc3Npb25JZDogcGF5bG9hZC5tZW1vcnlTZXNzaW9uSWQsXG4gICAgICAgICAgYWdlbnRJZDogcGF5bG9hZC5hZ2VudElkLFxuICAgICAgICAgIGxhbmc6IHBheWxvYWQubGFuZyxcbiAgICAgICAgICBpc1dlYlNlYXJjaEFjdGl2ZTogcGF5bG9hZC5pc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICAgICAgICBpc0RlZXBTZWFyY2hBY3RpdmU6IHBheWxvYWQuaXNEZWVwU2VhcmNoQWN0aXZlLFxuICAgICAgICAgIC4uLihwYXlsb2FkLnByb2plY3RJZCA/IHsgcHJvamVjdElkOiBwYXlsb2FkLnByb2plY3RJZCB9IDoge30pLFxuICAgICAgICAgIC4uLihwYXlsb2FkLmNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudElkOiBwYXlsb2FkLmNsaWVudElkIH0gOiB7fSksXG4gICAgICAgICAgLi4uKHBheWxvYWQudGFza0lkICE9IG51bGwgPyB7IHRhc2tJZDogcGF5bG9hZC50YXNrSWQgfSA6IHt9KSxcbiAgICAgICAgICAuLi4ocGF5bG9hZC5hZ2VudFR5cGUgIT0gbnVsbCA/IHsgYWdlbnRUeXBlOiBwYXlsb2FkLmFnZW50VHlwZSB9IDoge30pLFxuICAgICAgICAgIC4uLihwYXlsb2FkLmNvbnRleHREYXRhID8geyBjb250ZXh0RGF0YTogcGF5bG9hZC5jb250ZXh0RGF0YSB9IDoge30pLFxuICAgICAgICB9LFxuICAgICAgICB0LFxuICAgICAgICBhY3Rpdml0eU9wdGlvbnM6IHtcbiAgICAgICAgICBpc1dlYlNlYXJjaEFjdGl2ZTogcGF5bG9hZC5pc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICAgICAgICBpc0RlZXBTZWFyY2hBY3RpdmU6IHBheWxvYWQuaXNEZWVwU2VhcmNoQWN0aXZlLFxuICAgICAgICB9LFxuICAgICAgICBhZ2VudElkOiBwYXlsb2FkLmFnZW50SWQsXG4gICAgICAgIGFnZW50TmFtZTogcGF5bG9hZC5hZ2VudE5hbWUsXG4gICAgICAgIGNhbGxiYWNrczoge1xuICAgICAgICAgIG9uU3RyZWFtVXBkYXRlOiBjb250ZW50ID0+IG9uU3RyZWFtVXBkYXRlUmVmLmN1cnJlbnQ/LihjdHgsIGNvbnRlbnQpLFxuICAgICAgICAgIG9uU3RhcnRXcml0aW5nOiAoKSA9PiBvblN0YXJ0V3JpdGluZ1JlZi5jdXJyZW50Py4oKSxcbiAgICAgICAgICBvbkZpbmlzaFN0cmVhbTogZmluaXNoUGF5bG9hZCA9PlxuICAgICAgICAgICAgb25GaW5pc2hTdHJlYW1SZWYuY3VycmVudD8uKFxuICAgICAgICAgICAgICBjdHgsXG4gICAgICAgICAgICAgIGZpbmlzaFBheWxvYWQuY29udGVudCxcbiAgICAgICAgICAgICAgZmluaXNoUGF5bG9hZC5zb3VyY2VzLFxuICAgICAgICAgICAgICBmaW5pc2hQYXlsb2FkLm1lbW9yeVNlc3Npb25JZCxcbiAgICAgICAgICAgICAgZmluaXNoUGF5bG9hZC5hdHRhY2htZW50cyxcbiAgICAgICAgICAgICAgZmluaXNoUGF5bG9hZC5zdWdnZXN0aW9ucyxcbiAgICAgICAgICAgICAgZmluaXNoUGF5bG9hZC5jb21wbGV0ZWRBZ2VudElkLFxuICAgICAgICAgICAgICBmaW5pc2hQYXlsb2FkLnJlc29sdmVkQ29udGV4dCBhcyBhbnlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgb25FcnJvcjogKGVycm9yVHlwZSwgZXJyb3JNZXNzYWdlKSA9PiBvbkVycm9yUmVmLmN1cnJlbnQ/LihjdHgsIGVycm9yVHlwZSwgZXJyb3JNZXNzYWdlKSxcbiAgICAgICAgICBvbkFwcHJvdmFsUmVxdWlyZWQ6IChhcHByb3ZhbCwgYWNjdW11bGF0ZWRDb250ZW50KSA9PlxuICAgICAgICAgICAgb25BcHByb3ZhbFJlcXVpcmVkUmVmLmN1cnJlbnQ/LihjdHgsIGFwcHJvdmFsLCBhY2N1bXVsYXRlZENvbnRlbnQpLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9LFxuICAgIFt0XVxuICApXG5cbiAgY29uc3Qgc3RvcFN0cmVhbWluZyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXNzaW9uU3RyZWFtTWFuYWdlci5zdG9wU3RyZWFtKGFjdGl2ZVNlc3Npb25JZCwge1xuICAgICAgb25TdG9wOiBwYXJ0aWFsVGV4dCA9PiBvblN0b3BSZWYuY3VycmVudD8uKHBhcnRpYWxUZXh0KSxcbiAgICB9KVxuICB9LCBbYWN0aXZlU2Vzc2lvbklkXSlcblxuICBjb25zdCBhYm9ydFN0cmVhbVNpbGVudGx5ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNlc3Npb25TdHJlYW1NYW5hZ2VyLmFib3J0U2lsZW50bHkoYWN0aXZlU2Vzc2lvbklkKVxuICB9LCBbYWN0aXZlU2Vzc2lvbklkXSlcblxuICBjb25zdCB1cGRhdGVTdHJlYW1BY3Rpdml0eSA9IHVzZUNhbGxiYWNrKFxuICAgIChhY3Rpdml0eTogU3RyZWFtQWN0aXZpdHkgfCBudWxsKSA9PiB7XG4gICAgICB1c2VTZXNzaW9uc1N0b3JlLmdldFN0YXRlKCkuc2V0QWN0aXZpdHkoYWN0aXZlU2Vzc2lvbklkLCBhY3Rpdml0eSlcbiAgICB9LFxuICAgIFthY3RpdmVTZXNzaW9uSWRdXG4gIClcblxuICBjb25zdCByZXNldCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICB1c2VTZXNzaW9uc1N0b3JlLmdldFN0YXRlKCkucGF0Y2hNZXRhKGFjdGl2ZVNlc3Npb25JZCwgeyBpc0xvYWRpbmc6IGZhbHNlLCBpc1dyaXRpbmc6IGZhbHNlIH0pXG4gICAgdXNlU2Vzc2lvbnNTdG9yZS5nZXRTdGF0ZSgpLnNldEFjdGl2aXR5KGFjdGl2ZVNlc3Npb25JZCwgbnVsbClcbiAgfSwgW2FjdGl2ZVNlc3Npb25JZF0pXG5cbiAgcmV0dXJuIHtcbiAgICBhc2tNYWlhLFxuICAgIHJldHJ5Q29tcGxldGlvbixcbiAgICBpc0xvYWRpbmcsXG4gICAgaXNXcml0aW5nLFxuICAgIGxvYWRpbmdNZXNzYWdlLFxuICAgIHN0cmVhbUFjdGl2aXR5LFxuICAgIHVwZGF0ZVN0cmVhbUFjdGl2aXR5LFxuICAgIHJlc2V0LFxuICAgIHN0b3BTdHJlYW1pbmcsXG4gICAgYWJvcnRTdHJlYW1TaWxlbnRseSxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0EsU0FBU0EsV0FBVyxFQUFFQyxNQUFNLFFBQVEsT0FBTztBQUMzQyxTQUFTQyxjQUFjLFFBQVEsZUFBZTtBQU05QyxTQUFTQyxRQUFRLFFBQVEsd0JBQXdCO0FBRWpELFNBQVND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
@@ -4,9 +4,19 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
4
4
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
5
  import { useCallback, useRef, useMemo, useState, useEffect } from 'react';
6
6
  import { SECTIONS } from '../constants/config';
7
+ import { readAutoApprove, writeAutoApprove } from '../utils/autoApproveStorage';
7
8
  import { buildConfigureSettingsItems } from '../constants/permissions';
8
9
  import { useUser } from '../context/cor-user';
9
10
  import { useTWithSection } from './useT';
11
+ /**
12
+ * Auto-approve queda fuera de este release. El apagado va acá, en el origen del
13
+ * estado, para que la preferencia ya guardada en localStorage no pueda
14
+ * reactivarlo: sin esto, quien lo activó probando seguiría mandando
15
+ * `X-HITL-Approval-Mode: full_access` sin UI para apagarlo.
16
+ * Para volver a habilitarlo: poner en `true` y descomentar el item del
17
+ * plus-menu en `MAIAInput.tsx`.
18
+ */
19
+ var IS_AUTO_APPROVE_ENABLED = false;
10
20
  export var useProjectSummaryConfig = function useProjectSummaryConfig(_ref) {
11
21
  var _project$client3;
12
22
  var section = _ref.section,
@@ -33,27 +43,33 @@ export var useProjectSummaryConfig = function useProjectSummaryConfig(_ref) {
33
43
  _useState6 = _slicedToArray(_useState5, 2),
34
44
  isDeepSearchActive = _useState6[0],
35
45
  setIsDeepSearchActive = _useState6[1];
36
- var _useState7 = useState(entity || {
46
+ var _useState7 = useState(function () {
47
+ return IS_AUTO_APPROVE_ENABLED && readAutoApprove(user === null || user === void 0 ? void 0 : user.id);
48
+ }),
49
+ _useState8 = _slicedToArray(_useState7, 2),
50
+ isAutoApproveActive = _useState8[0],
51
+ setIsAutoApproveActive = _useState8[1];
52
+ var _useState9 = useState(entity || {
37
53
  projectId: null,
38
54
  clientId: null
39
55
  }),
40
- _useState8 = _slicedToArray(_useState7, 2),
41
- entityValues = _useState8[0],
42
- setEntityValues = _useState8[1];
43
- var _useState9 = useState(initialClient !== null && initialClient !== void 0 ? initialClient : null),
44
56
  _useState0 = _slicedToArray(_useState9, 2),
45
- client = _useState0[0],
46
- setClientState = _useState0[1];
47
- var setClient = setClientProp !== null && setClientProp !== void 0 ? setClientProp : setClientState;
48
- var _useState1 = useState(initialTask !== null && initialTask !== void 0 ? initialTask : null),
57
+ entityValues = _useState0[0],
58
+ setEntityValues = _useState0[1];
59
+ var _useState1 = useState(initialClient !== null && initialClient !== void 0 ? initialClient : null),
49
60
  _useState10 = _slicedToArray(_useState1, 2),
50
- task = _useState10[0],
51
- setTaskState = _useState10[1];
61
+ client = _useState10[0],
62
+ setClientState = _useState10[1];
63
+ var setClient = setClientProp !== null && setClientProp !== void 0 ? setClientProp : setClientState;
64
+ var _useState11 = useState(initialTask !== null && initialTask !== void 0 ? initialTask : null),
65
+ _useState12 = _slicedToArray(_useState11, 2),
66
+ task = _useState12[0],
67
+ setTaskState = _useState12[1];
52
68
  var setTask = useCallback(function (newTask) {
53
69
  return setTaskState(newTask);
54
70
  }, []);
55
71
  var configureSettingsItems = useRef(buildConfigureSettingsItems(user, t));
56
- var _useState11 = useState(function () {
72
+ var _useState13 = useState(function () {
57
73
  if ((section === 'project' || section === 'task') && (project === null || project === void 0 ? void 0 : project.id) != null) {
58
74
  var _project$client$name, _project$client;
59
75
  return {
@@ -64,9 +80,9 @@ export var useProjectSummaryConfig = function useProjectSummaryConfig(_ref) {
64
80
  }
65
81
  return null;
66
82
  }),
67
- _useState12 = _slicedToArray(_useState11, 2),
68
- chipsProject = _useState12[0],
69
- setChipsProjectState = _useState12[1];
83
+ _useState14 = _slicedToArray(_useState13, 2),
84
+ chipsProject = _useState14[0],
85
+ setChipsProjectState = _useState14[1];
70
86
 
71
87
  // Sincronizar chipsProject cuando el project prop cambia (ej. navegación entre proyectos o tareas)
72
88
  useEffect(function () {
@@ -131,6 +147,16 @@ export var useProjectSummaryConfig = function useProjectSummaryConfig(_ref) {
131
147
  return !prev;
132
148
  });
133
149
  }, []);
150
+ var toggleAutoApprove = useCallback(function () {
151
+ setIsAutoApproveActive(function (prev) {
152
+ var next = !prev;
153
+ writeAutoApprove(user === null || user === void 0 ? void 0 : user.id, next);
154
+ return next;
155
+ });
156
+ }, [user === null || user === void 0 ? void 0 : user.id]);
157
+ useEffect(function () {
158
+ setIsAutoApproveActive(IS_AUTO_APPROVE_ENABLED && readAutoApprove(user === null || user === void 0 ? void 0 : user.id));
159
+ }, [user === null || user === void 0 ? void 0 : user.id]);
134
160
  var setChipsProject = useCallback(function (newChipsProject) {
135
161
  setChipsProjectState(newChipsProject);
136
162
  }, []);
@@ -195,6 +221,8 @@ export var useProjectSummaryConfig = function useProjectSummaryConfig(_ref) {
195
221
  setTask: setTask,
196
222
  isWebSearchActive: isWebSearchActive,
197
223
  toggleWebSearch: toggleWebSearch,
224
+ isAutoApproveActive: isAutoApproveActive,
225
+ toggleAutoApprove: toggleAutoApprove,
198
226
  isDeepSearchActive: isDeepSearchActive,
199
227
  toggleDeepSearch: toggleDeepSearch,
200
228
  hasMultiAgents: hasMultiAgents,
@@ -202,10 +230,10 @@ export var useProjectSummaryConfig = function useProjectSummaryConfig(_ref) {
202
230
  setChipsProject: setChipsProject,
203
231
  pinnedContext: pinnedContext
204
232
  };
205
- }, [section, entityValues === null || entityValues === void 0 ? void 0 : entityValues.projectId, entityValues === null || entityValues === void 0 ? void 0 : entityValues.clientId, agent, selectAgent, clearAgent, setEntityValues, restoreConfigureSettings, project === null || project === void 0 ? void 0 : project.id, setProject, client === null || client === void 0 ? void 0 : client.id, setClient, task === null || task === void 0 ? void 0 : task.id, setTask, isWebSearchActive, toggleWebSearch, isDeepSearchActive, toggleDeepSearch, hasMultiAgents, chipsProject, setChipsProject, pinnedContext]);
233
+ }, [section, entityValues === null || entityValues === void 0 ? void 0 : entityValues.projectId, entityValues === null || entityValues === void 0 ? void 0 : entityValues.clientId, agent, selectAgent, clearAgent, setEntityValues, restoreConfigureSettings, project === null || project === void 0 ? void 0 : project.id, setProject, client === null || client === void 0 ? void 0 : client.id, setClient, task === null || task === void 0 ? void 0 : task.id, setTask, isWebSearchActive, toggleWebSearch, isAutoApproveActive, toggleAutoApprove, isDeepSearchActive, toggleDeepSearch, hasMultiAgents, chipsProject, setChipsProject, pinnedContext]);
206
234
  return {
207
235
  context: context,
208
236
  restoreConfigureSettings: restoreConfigureSettings
209
237
  };
210
238
  };
211
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVJlZiIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsIlNFQ1RJT05TIiwiYnVpbGRDb25maWd1cmVTZXR0aW5nc0l0ZW1zIiwidXNlVXNlciIsInVzZVRXaXRoU2VjdGlvbiIsInVzZVByb2plY3RTdW1tYXJ5Q29uZmlnIiwiX3JlZiIsIl9wcm9qZWN0JGNsaWVudDMiLCJzZWN0aW9uIiwiZW50aXR5IiwicHJvamVjdCIsInNldFByb2plY3QiLCJfcmVmJGNsaWVudCIsImNsaWVudCIsImluaXRpYWxDbGllbnQiLCJzZXRDbGllbnRQcm9wIiwic2V0Q2xpZW50IiwiX3JlZiR0YXNrIiwidGFzayIsImluaXRpYWxUYXNrIiwiaGFzTXVsdGlBZ2VudHMiLCJ1c2VyIiwidCIsImNoYXRBSSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImFnZW50Iiwic2V0QWdlbnQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImlzV2ViU2VhcmNoQWN0aXZlIiwic2V0SXNXZWJTZWFyY2hBY3RpdmUiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImlzRGVlcFNlYXJjaEFjdGl2ZSIsInNldElzRGVlcFNlYXJjaEFjdGl2ZSIsIl91c2VTdGF0ZTciLCJwcm9qZWN0SWQiLCJjbGllbnRJZCIsIl91c2VTdGF0ZTgiLCJlbnRpdHlWYWx1ZXMiLCJzZXRFbnRpdHlWYWx1ZXMiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsInNldENsaWVudFN0YXRlIiwiX3VzZVN0YXRlMSIsIl91c2VTdGF0ZTEwIiwic2V0VGFza1N0YXRlIiwic2V0VGFzayIsIm5ld1Rhc2siLCJjb25maWd1cmVTZXR0aW5nc0l0ZW1zIiwiX3VzZVN0YXRlMTEiLCJpZCIsIl9wcm9qZWN0JGNsaWVudCRuYW1lIiwiX3Byb2plY3QkY2xpZW50IiwiU3RyaW5nIiwicHJvamVjdE5hbWUiLCJuYW1lIiwiY2xpZW50TmFtZSIsIl91c2VTdGF0ZTEyIiwiY2hpcHNQcm9qZWN0Iiwic2V0Q2hpcHNQcm9qZWN0U3RhdGUiLCJwcmV2IiwiX3Byb2plY3QkY2xpZW50JG5hbWUyIiwiX3Byb2plY3QkY2xpZW50MiIsIl9lbnRpdHkkcHJvamVjdElkIiwiX2VudGl0eSRjbGllbnRJZCIsInJlc3RvcmVDb25maWd1cmVTZXR0aW5ncyIsIl9jb25maWd1cmVTZXR0aW5nc0l0ZSIsImN1cnJlbnQiLCJtYXAiLCJpdGVtIiwiX29iamVjdFNwcmVhZCIsImNoZWNrZWQiLCJoaWRkZW4iLCJzZWxlY3RBZ2VudCIsIm5ld0FnZW50IiwiY2xlYXJBZ2VudCIsInRvZ2dsZVdlYlNlYXJjaCIsInRvZ2dsZURlZXBTZWFyY2giLCJzZXRDaGlwc1Byb2plY3QiLCJuZXdDaGlwc1Byb2plY3QiLCJwaW5uZWRDb250ZXh0IiwidHlwZSIsInBhcmVudHMiLCJjb250ZXh0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVByb2plY3RTdW1tYXJ5Q29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VSZWYsIHVzZU1lbW8sIHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgQ2hpcHNQcm9qZWN0LCBQaW5uZWRDb250ZXh0LCB0eXBlIFNlY3Rpb24gfSBmcm9tICcuLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgU0VDVElPTlMgfSBmcm9tICcuLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgYnVpbGRDb25maWd1cmVTZXR0aW5nc0l0ZW1zIH0gZnJvbSAnLi4vY29uc3RhbnRzL3Blcm1pc3Npb25zJ1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uL3R5cGVzL2FnZW50J1xuXG5pbXBvcnQgeyB1c2VUV2l0aFNlY3Rpb24gfSBmcm9tICcuL3VzZVQnXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vdHlwZXMvUHJvamVjdCdcbmltcG9ydCB7IENsaWVudCB9IGZyb20gJy4uL3R5cGVzL0NsaWVudCdcbmltcG9ydCB7IFRhc2sgfSBmcm9tICcuLi90eXBlcy9UYXNrJ1xuXG50eXBlIFByb2plY3RTdW1tYXJ5Q29uZmlnUHJvcHMgPSB7XG4gIHNlY3Rpb246ICdwcm9qZWN0JyB8ICdoZWFkZXInIHwgJ2NsaWVudCcgfCAndGFzaycgfCAncGxhbm5lcidcbiAgZW50aXR5Pzoge1xuICAgIHByb2plY3RJZDogc3RyaW5nIHwgbnVsbFxuICAgIGNsaWVudElkOiBzdHJpbmcgfCBudWxsXG4gIH0gfCBudWxsXG4gIHByb2plY3Q6IFByb2plY3QgfCBudWxsXG4gIHNldFByb2plY3Q6IChwcm9qZWN0OiBQcm9qZWN0IHwgbnVsbCkgPT4gdm9pZFxuICBjbGllbnQ/OiBDbGllbnQgfCBudWxsXG4gIHNldENsaWVudD86IChjbGllbnQ6IENsaWVudCB8IG51bGwpID0+IHZvaWRcbiAgdGFzaz86IFRhc2sgfCBudWxsXG4gIGhhc011bHRpQWdlbnRzPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgdXNlUHJvamVjdFN1bW1hcnlDb25maWcgPSAoe1xuICBzZWN0aW9uLFxuICBlbnRpdHksXG4gIHByb2plY3QsXG4gIHNldFByb2plY3QsXG4gIGNsaWVudDogaW5pdGlhbENsaWVudCA9IG51bGwsXG4gIHNldENsaWVudDogc2V0Q2xpZW50UHJvcCxcbiAgdGFzazogaW5pdGlhbFRhc2sgPSBudWxsLFxuICBoYXNNdWx0aUFnZW50cyxcbn06IFByb2plY3RTdW1tYXJ5Q29uZmlnUHJvcHMpID0+IHtcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB0ID0gdXNlVFdpdGhTZWN0aW9uKFNFQ1RJT05TLmNoYXRBSSlcbiAgY29uc3QgW2FnZW50LCBzZXRBZ2VudF0gPSB1c2VTdGF0ZTxBZ2VudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtpc1dlYlNlYXJjaEFjdGl2ZSwgc2V0SXNXZWJTZWFyY2hBY3RpdmVdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpXG4gIGNvbnN0IFtpc0RlZXBTZWFyY2hBY3RpdmUsIHNldElzRGVlcFNlYXJjaEFjdGl2ZV0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSlcbiAgY29uc3QgW2VudGl0eVZhbHVlcywgc2V0RW50aXR5VmFsdWVzXSA9IHVzZVN0YXRlPHtcbiAgICBwcm9qZWN0SWQ6IHN0cmluZyB8IG51bGxcbiAgICBjbGllbnRJZDogc3RyaW5nIHwgbnVsbFxuICB9PihlbnRpdHkgfHwgeyBwcm9qZWN0SWQ6IG51bGwsIGNsaWVudElkOiBudWxsIH0pXG4gIGNvbnN0IFtjbGllbnQsIHNldENsaWVudFN0YXRlXSA9IHVzZVN0YXRlPENsaWVudCB8IG51bGw+KGluaXRpYWxDbGllbnQgPz8gbnVsbClcblxuICBjb25zdCBzZXRDbGllbnQgPSBzZXRDbGllbnRQcm9wID8/IHNldENsaWVudFN0YXRlXG5cbiAgY29uc3QgW3Rhc2ssIHNldFRhc2tTdGF0ZV0gPSB1c2VTdGF0ZTxUYXNrIHwgbnVsbD4oaW5pdGlhbFRhc2sgPz8gbnVsbClcbiAgY29uc3Qgc2V0VGFzayA9IHVzZUNhbGxiYWNrKChuZXdUYXNrOiBUYXNrIHwgbnVsbCkgPT4gc2V0VGFza1N0YXRlKG5ld1Rhc2spLCBbXSlcblxuICBjb25zdCBjb25maWd1cmVTZXR0aW5nc0l0ZW1zID0gdXNlUmVmKGJ1aWxkQ29uZmlndXJlU2V0dGluZ3NJdGVtcyh1c2VyLCB0KSlcbiAgY29uc3QgW2NoaXBzUHJvamVjdCwgc2V0Q2hpcHNQcm9qZWN0U3RhdGVdID0gdXNlU3RhdGU8Q2hpcHNQcm9qZWN0IHwgbnVsbD4oKCkgPT4ge1xuICAgIGlmICgoc2VjdGlvbiA9PT0gJ3Byb2plY3QnIHx8IHNlY3Rpb24gPT09ICd0YXNrJykgJiYgcHJvamVjdD8uaWQgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcHJvamVjdElkOiBTdHJpbmcocHJvamVjdC5pZCksXG4gICAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgICAgIGNsaWVudE5hbWU6IHByb2plY3QuY2xpZW50Py5uYW1lID8/ICcnLFxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9KVxuXG4gIC8vIFNpbmNyb25pemFyIGNoaXBzUHJvamVjdCBjdWFuZG8gZWwgcHJvamVjdCBwcm9wIGNhbWJpYSAoZWouIG5hdmVnYWNpw7NuIGVudHJlIHByb3llY3RvcyBvIHRhcmVhcylcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoKHNlY3Rpb24gPT09ICdwcm9qZWN0JyB8fCBzZWN0aW9uID09PSAndGFzaycpICYmIHByb2plY3Q/LmlkICE9IG51bGwpIHtcbiAgICAgIHNldENoaXBzUHJvamVjdFN0YXRlKHByZXYgPT4ge1xuICAgICAgICBpZiAocHJldj8ucHJvamVjdElkID09PSBTdHJpbmcocHJvamVjdC5pZCkpIHJldHVybiBwcmV2XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcHJvamVjdElkOiBTdHJpbmcocHJvamVjdC5pZCksXG4gICAgICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgICAgICBjbGllbnROYW1lOiBwcm9qZWN0LmNsaWVudD8ubmFtZSA/PyAnJyxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH0sIFtzZWN0aW9uLCBwcm9qZWN0Py5pZCwgcHJvamVjdD8ubmFtZSwgcHJvamVjdD8uY2xpZW50Py5uYW1lXSlcblxuICAvLyBTaW5jcm9uaXphciBjbGllbnQgY3VhbmRvIGxhIHByb3AgbGxlZ3VlIGRlc3B1w6lzIGRlbCBwcmltZXIgcmVuZGVyIChlai4gc2VjdGlvbiBjbGllbnQsIGRhdG9zIGFzeW5jKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzZWN0aW9uID09PSAnY2xpZW50Jykge1xuICAgICAgc2V0Q2xpZW50U3RhdGUoaW5pdGlhbENsaWVudCA/PyBudWxsKVxuICAgIH1cbiAgfSwgW3NlY3Rpb24sIGluaXRpYWxDbGllbnRdKVxuXG4gIC8vIFNpbmNyb25pemFyIHRhc2sgY3VhbmRvIGxhIHByb3AgbGxlZ3VlIGRlc3B1w6lzIGRlbCBwcmltZXIgcmVuZGVyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHNlY3Rpb24gPT09ICd0YXNrJykge1xuICAgICAgc2V0VGFza1N0YXRlKGluaXRpYWxUYXNrID8/IG51bGwpXG4gICAgfVxuICB9LCBbc2VjdGlvbiwgaW5pdGlhbFRhc2tdKVxuXG4gIC8vIFNpbmNyb25pemFyIGVudGl0eVZhbHVlcyBjdWFuZG8gZW50aXR5IGNhbWJpZSAoZWouIGxsZWd1ZSBkZXNwdcOpcyBkZWwgcHJpbWVyIHJlbmRlcilcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZW50aXR5ICE9IG51bGwpIHtcbiAgICAgIHNldEVudGl0eVZhbHVlcyh7XG4gICAgICAgIHByb2plY3RJZDogZW50aXR5LnByb2plY3RJZCA/PyBudWxsLFxuICAgICAgICBjbGllbnRJZDogZW50aXR5LmNsaWVudElkID8/IG51bGwsXG4gICAgICB9KVxuICAgIH1cbiAgfSwgW2VudGl0eT8ucHJvamVjdElkLCBlbnRpdHk/LmNsaWVudElkXSlcblxuICBjb25zdCByZXN0b3JlQ29uZmlndXJlU2V0dGluZ3MgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uZmlndXJlU2V0dGluZ3NJdGVtcy5jdXJyZW50ID0gY29uZmlndXJlU2V0dGluZ3NJdGVtcy5jdXJyZW50Py5tYXAoaXRlbSA9PiAoe1xuICAgICAgLi4uaXRlbSxcbiAgICAgIGNoZWNrZWQ6ICFpdGVtLmhpZGRlbixcbiAgICB9KSlcbiAgfSwgW10pXG5cbiAgY29uc3Qgc2VsZWN0QWdlbnQgPSB1c2VDYWxsYmFjaygobmV3QWdlbnQ6IEFnZW50KSA9PiB7XG4gICAgc2V0QWdlbnQobmV3QWdlbnQpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGNsZWFyQWdlbnQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0QWdlbnQobnVsbClcbiAgfSwgW10pXG5cbiAgY29uc3QgdG9nZ2xlV2ViU2VhcmNoID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldElzV2ViU2VhcmNoQWN0aXZlKHByZXYgPT4gIXByZXYpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHRvZ2dsZURlZXBTZWFyY2ggPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0SXNEZWVwU2VhcmNoQWN0aXZlKHByZXYgPT4gIXByZXYpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHNldENoaXBzUHJvamVjdCA9IHVzZUNhbGxiYWNrKChuZXdDaGlwc1Byb2plY3Q6IENoaXBzUHJvamVjdCB8IG51bGwpID0+IHtcbiAgICBzZXRDaGlwc1Byb2plY3RTdGF0ZShuZXdDaGlwc1Byb2plY3QpXG4gIH0sIFtdKVxuXG4gIC8vIFBpbiBkZXJpdmFkbyAoUkZDIMKnMTIuMik6IGxhIGVudGlkYWQgbcOhcyBlc3BlY8OtZmljYSBhY3RpdmEgKHRhcmVhID4gcHJveWVjdG8gPiBjbGllbnRlKSxcbiAgLy8gY29uIHN1IHNjb3BlIGhhY2lhIGFycmliYSBlbiBgcGFyZW50c2AuIE1vbm8gaG95OyBhcnJheS1yZWFkeSBwYXJhIGNyb3NzLWVudGl0eS5cbiAgY29uc3QgcGlubmVkQ29udGV4dCA9IHVzZU1lbW88UGlubmVkQ29udGV4dCB8IG51bGw+KCgpID0+IHtcbiAgICBpZiAodGFzaz8uaWQgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ3Rhc2snLFxuICAgICAgICBpZDogdGFzay5pZCxcbiAgICAgICAgbmFtZTogdGFzay5uYW1lLFxuICAgICAgICBwYXJlbnRzOiB7XG4gICAgICAgICAgLi4uKHRhc2suY2xpZW50SWQgIT0gbnVsbCA/IHsgY2xpZW50SWQ6IHRhc2suY2xpZW50SWQgfSA6IHt9KSxcbiAgICAgICAgICAuLi4odGFzay5wcm9qZWN0SWQgIT0gbnVsbCA/IHsgcHJvamVjdElkOiB0YXNrLnByb2plY3RJZCB9IDoge30pLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY2hpcHNQcm9qZWN0Py5wcm9qZWN0SWQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6ICdwcm9qZWN0JyxcbiAgICAgICAgaWQ6IGNoaXBzUHJvamVjdC5wcm9qZWN0SWQsXG4gICAgICAgIG5hbWU6IGNoaXBzUHJvamVjdC5wcm9qZWN0TmFtZSxcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb2plY3Q/LmlkICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6ICdwcm9qZWN0JyxcbiAgICAgICAgaWQ6IHByb2plY3QuaWQsXG4gICAgICAgIG5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgICAgLi4uKHByb2plY3QuY2xpZW50SWQgIT0gbnVsbCA/IHsgcGFyZW50czogeyBjbGllbnRJZDogcHJvamVjdC5jbGllbnRJZCB9IH0gOiB7fSksXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjbGllbnQ/LmlkICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB7IHR5cGU6ICdjbGllbnQnLCBpZDogY2xpZW50LmlkLCBuYW1lOiBjbGllbnQubmFtZSB9XG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH0sIFtcbiAgICB0YXNrPy5pZCxcbiAgICB0YXNrPy5uYW1lLFxuICAgIHRhc2s/LmNsaWVudElkLFxuICAgIHRhc2s/LnByb2plY3RJZCxcbiAgICBjaGlwc1Byb2plY3QsXG4gICAgcHJvamVjdD8uaWQsXG4gICAgcHJvamVjdD8ubmFtZSxcbiAgICBwcm9qZWN0Py5jbGllbnRJZCxcbiAgICBjbGllbnQ/LmlkLFxuICAgIGNsaWVudD8ubmFtZSxcbiAgXSlcblxuICBjb25zdCBjb250ZXh0ID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgZW50aXR5VmFsdWVzLFxuICAgICAgc2VjdGlvbjogc2VjdGlvbiBhcyBTZWN0aW9uLFxuICAgICAgYWdlbnQsXG4gICAgICBzZWxlY3RBZ2VudCxcbiAgICAgIGNsZWFyQWdlbnQsXG4gICAgICBjb25maWd1cmVTZXR0aW5nc0l0ZW1zLFxuICAgICAgcmVzdG9yZUNvbmZpZ3VyZVNldHRpbmdzLFxuICAgICAgc2V0RW50aXR5VmFsdWVzLFxuICAgICAgcHJvamVjdCxcbiAgICAgIHNldFByb2plY3QsXG4gICAgICBjbGllbnQsXG4gICAgICBzZXRDbGllbnQsXG4gICAgICB0YXNrLFxuICAgICAgc2V0VGFzayxcbiAgICAgIGlzV2ViU2VhcmNoQWN0aXZlLFxuICAgICAgdG9nZ2xlV2ViU2VhcmNoLFxuICAgICAgaXNEZWVwU2VhcmNoQWN0aXZlLFxuICAgICAgdG9nZ2xlRGVlcFNlYXJjaCxcbiAgICAgIGhhc011bHRpQWdlbnRzLFxuICAgICAgY2hpcHNQcm9qZWN0LFxuICAgICAgc2V0Q2hpcHNQcm9qZWN0LFxuICAgICAgcGlubmVkQ29udGV4dCxcbiAgICB9KSxcbiAgICBbXG4gICAgICBzZWN0aW9uLFxuICAgICAgZW50aXR5VmFsdWVzPy5wcm9qZWN0SWQsXG4gICAgICBlbnRpdHlWYWx1ZXM/LmNsaWVudElkLFxuICAgICAgYWdlbnQsXG4gICAgICBzZWxlY3RBZ2VudCxcbiAgICAgIGNsZWFyQWdlbnQsXG4gICAgICBzZXRFbnRpdHlWYWx1ZXMsXG4gICAgICByZXN0b3JlQ29uZmlndXJlU2V0dGluZ3MsXG4gICAgICBwcm9qZWN0Py5pZCxcbiAgICAgIHNldFByb2plY3QsXG4gICAgICBjbGllbnQ/LmlkLFxuICAgICAgc2V0Q2xpZW50LFxuICAgICAgdGFzaz8uaWQsXG4gICAgICBzZXRUYXNrLFxuICAgICAgaXNXZWJTZWFyY2hBY3RpdmUsXG4gICAgICB0b2dnbGVXZWJTZWFyY2gsXG4gICAgICBpc0RlZXBTZWFyY2hBY3RpdmUsXG4gICAgICB0b2dnbGVEZWVwU2VhcmNoLFxuICAgICAgaGFzTXVsdGlBZ2VudHMsXG4gICAgICBjaGlwc1Byb2plY3QsXG4gICAgICBzZXRDaGlwc1Byb2plY3QsXG4gICAgICBwaW5uZWRDb250ZXh0LFxuICAgIF1cbiAgKVxuXG4gIHJldHVybiB7XG4gICAgY29udGV4dCxcbiAgICByZXN0b3JlQ29uZmlndXJlU2V0dGluZ3MsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLFNBQVNBLFdBQVcsRUFBRUMsTUFBTSxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxRQUFRLE9BQU87QUFHekUsU0FBU0MsUUFBUSxRQUFRLHFCQUFxQjtBQUM5QyxTQUFTQywyQkFBMkIsUUFBUSwwQkFBMEI7QUFDdEUsU0FBU0MsT0FBTyxRQUFRLHFCQUFxQjtBQUc3QyxTQUFTQyxlQUFlLFFBQVEsUUFBUTtBQW1CeEMsT0FBTyxJQUFNQyx1QkFBdUIsR0FBRyxTQUExQkEsdUJBQXVCQSxDQUFBQyxJQUFBLEVBU0g7RUFBQSxJQUFBQyxnQkFBQTtFQUFBLElBUi9CQyxPQUFPLEdBQUFGLElBQUEsQ0FBUEUsT0FBTztJQUNQQyxNQUFNLEdBQUFILElBQUEsQ0FBTkcsTUFBTTtJQUNOQyxPQUFPLEdBQUFKLElBQUEsQ0FBUEksT0FBTztJQUNQQyxVQUFVLEdBQUFMLElBQUEsQ0FBVkssVUFBVTtJQUFBQyxXQUFBLEdBQUFOLElBQUEsQ0FDVk8sTUFBTTtJQUFFQyxhQUFhLEdBQUFGLFdBQUEsY0FBRyxJQUFJLEdBQUFBLFdBQUE7SUFDakJHLGFBQWEsR0FBQVQsSUFBQSxDQUF4QlUsU0FBUztJQUFBQyxTQUFBLEdBQUFYLElBQUEsQ0FDVFksSUFBSTtJQUFFQyxXQUFXLEdBQUFGLFNBQUEsY0FBRyxJQUFJLEdBQUFBLFNBQUE7SUFDeEJHLGNBQWMsR0FBQWQsSUFBQSxDQUFkYyxjQUFjO0VBRWQsSUFBTUMsSUFBSSxHQUFHbEIsT0FBTyxDQUFDLENBQUM7RUFDdEIsSUFBTW1CLENBQUMsR0FBR2xCLGVBQWUsQ0FBQ0gsUUFBUSxDQUFDc0IsTUFBTSxDQUFDO0VBQzFDLElBQUFDLFNBQUEsR0FBMEJ6QixRQUFRLENBQWUsSUFBSSxDQUFDO0lBQUEwQixVQUFBLEdBQUFDLGNBQUEsQ0FBQUYsU0FB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
239
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVJlZiIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsIlNFQ1RJT05TIiwicmVhZEF1dG9BcHByb3ZlIiwid3JpdGVBdXRvQXBwcm92ZSIsImJ1aWxkQ29uZmlndXJlU2V0dGluZ3NJdGVtcyIsInVzZVVzZXIiLCJ1c2VUV2l0aFNlY3Rpb24iLCJJU19BVVRPX0FQUFJPVkVfRU5BQkxFRCIsInVzZVByb2plY3RTdW1tYXJ5Q29uZmlnIiwiX3JlZiIsIl9wcm9qZWN0JGNsaWVudDMiLCJzZWN0aW9uIiwiZW50aXR5IiwicHJvamVjdCIsInNldFByb2plY3QiLCJfcmVmJGNsaWVudCIsImNsaWVudCIsImluaXRpYWxDbGllbnQiLCJzZXRDbGllbnRQcm9wIiwic2V0Q2xpZW50IiwiX3JlZiR0YXNrIiwidGFzayIsImluaXRpYWxUYXNrIiwiaGFzTXVsdGlBZ2VudHMiLCJ1c2VyIiwidCIsImNoYXRBSSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImFnZW50Iiwic2V0QWdlbnQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImlzV2ViU2VhcmNoQWN0aXZlIiwic2V0SXNXZWJTZWFyY2hBY3RpdmUiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImlzRGVlcFNlYXJjaEFjdGl2ZSIsInNldElzRGVlcFNlYXJjaEFjdGl2ZSIsIl91c2VTdGF0ZTciLCJpZCIsIl91c2VTdGF0ZTgiLCJpc0F1dG9BcHByb3ZlQWN0aXZlIiwic2V0SXNBdXRvQXBwcm92ZUFjdGl2ZSIsIl91c2VTdGF0ZTkiLCJwcm9qZWN0SWQiLCJjbGllbnRJZCIsIl91c2VTdGF0ZTAiLCJlbnRpdHlWYWx1ZXMiLCJzZXRFbnRpdHlWYWx1ZXMiLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJzZXRDbGllbnRTdGF0ZSIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJzZXRUYXNrU3RhdGUiLCJzZXRUYXNrIiwibmV3VGFzayIsImNvbmZpZ3VyZVNldHRpbmdzSXRlbXMiLCJfdXNlU3RhdGUxMyIsIl9wcm9qZWN0JGNsaWVudCRuYW1lIiwiX3Byb2plY3QkY2xpZW50IiwiU3RyaW5nIiwicHJvamVjdE5hbWUiLCJuYW1lIiwiY2xpZW50TmFtZSIsIl91c2VTdGF0ZTE0IiwiY2hpcHNQcm9qZWN0Iiwic2V0Q2hpcHNQcm9qZWN0U3RhdGUiLCJwcmV2IiwiX3Byb2plY3QkY2xpZW50JG5hbWUyIiwiX3Byb2plY3QkY2xpZW50MiIsIl9lbnRpdHkkcHJvamVjdElkIiwiX2VudGl0eSRjbGllbnRJZCIsInJlc3RvcmVDb25maWd1cmVTZXR0aW5ncyIsIl9jb25maWd1cmVTZXR0aW5nc0l0ZSIsImN1cnJlbnQiLCJtYXAiLCJpdGVtIiwiX29iamVjdFNwcmVhZCIsImNoZWNrZWQiLCJoaWRkZW4iLCJzZWxlY3RBZ2VudCIsIm5ld0FnZW50IiwiY2xlYXJBZ2VudCIsInRvZ2dsZVdlYlNlYXJjaCIsInRvZ2dsZURlZXBTZWFyY2giLCJ0b2dnbGVBdXRvQXBwcm92ZSIsIm5leHQiLCJzZXRDaGlwc1Byb2plY3QiLCJuZXdDaGlwc1Byb2plY3QiLCJwaW5uZWRDb250ZXh0IiwidHlwZSIsInBhcmVudHMiLCJjb250ZXh0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVByb2plY3RTdW1tYXJ5Q29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VSZWYsIHVzZU1lbW8sIHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgQ2hpcHNQcm9qZWN0LCBQaW5uZWRDb250ZXh0LCB0eXBlIFNlY3Rpb24gfSBmcm9tICcuLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgU0VDVElPTlMgfSBmcm9tICcuLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgcmVhZEF1dG9BcHByb3ZlLCB3cml0ZUF1dG9BcHByb3ZlIH0gZnJvbSAnLi4vdXRpbHMvYXV0b0FwcHJvdmVTdG9yYWdlJ1xuaW1wb3J0IHsgYnVpbGRDb25maWd1cmVTZXR0aW5nc0l0ZW1zIH0gZnJvbSAnLi4vY29uc3RhbnRzL3Blcm1pc3Npb25zJ1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uL3R5cGVzL2FnZW50J1xuXG5pbXBvcnQgeyB1c2VUV2l0aFNlY3Rpb24gfSBmcm9tICcuL3VzZVQnXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vdHlwZXMvUHJvamVjdCdcbmltcG9ydCB7IENsaWVudCB9IGZyb20gJy4uL3R5cGVzL0NsaWVudCdcbmltcG9ydCB7IFRhc2sgfSBmcm9tICcuLi90eXBlcy9UYXNrJ1xuXG4vKipcbiAqIEF1dG8tYXBwcm92ZSBxdWVkYSBmdWVyYSBkZSBlc3RlIHJlbGVhc2UuIEVsIGFwYWdhZG8gdmEgYWPDoSwgZW4gZWwgb3JpZ2VuIGRlbFxuICogZXN0YWRvLCBwYXJhIHF1ZSBsYSBwcmVmZXJlbmNpYSB5YSBndWFyZGFkYSBlbiBsb2NhbFN0b3JhZ2Ugbm8gcHVlZGFcbiAqIHJlYWN0aXZhcmxvOiBzaW4gZXN0bywgcXVpZW4gbG8gYWN0aXbDsyBwcm9iYW5kbyBzZWd1aXLDrWEgbWFuZGFuZG9cbiAqIGBYLUhJVEwtQXBwcm92YWwtTW9kZTogZnVsbF9hY2Nlc3NgIHNpbiBVSSBwYXJhIGFwYWdhcmxvLlxuICogUGFyYSB2b2x2ZXIgYSBoYWJpbGl0YXJsbzogcG9uZXIgZW4gYHRydWVgIHkgZGVzY29tZW50YXIgZWwgaXRlbSBkZWxcbiAqIHBsdXMtbWVudSBlbiBgTUFJQUlucHV0LnRzeGAuXG4gKi9cbmNvbnN0IElTX0FVVE9fQVBQUk9WRV9FTkFCTEVEID0gZmFsc2VcblxudHlwZSBQcm9qZWN0U3VtbWFyeUNvbmZpZ1Byb3BzID0ge1xuICBzZWN0aW9uOiAncHJvamVjdCcgfCAnaGVhZGVyJyB8ICdjbGllbnQnIHwgJ3Rhc2snIHwgJ3BsYW5uZXInXG4gIGVudGl0eT86IHtcbiAgICBwcm9qZWN0SWQ6IHN0cmluZyB8IG51bGxcbiAgICBjbGllbnRJZDogc3RyaW5nIHwgbnVsbFxuICB9IHwgbnVsbFxuICBwcm9qZWN0OiBQcm9qZWN0IHwgbnVsbFxuICBzZXRQcm9qZWN0OiAocHJvamVjdDogUHJvamVjdCB8IG51bGwpID0+IHZvaWRcbiAgY2xpZW50PzogQ2xpZW50IHwgbnVsbFxuICBzZXRDbGllbnQ/OiAoY2xpZW50OiBDbGllbnQgfCBudWxsKSA9PiB2b2lkXG4gIHRhc2s/OiBUYXNrIHwgbnVsbFxuICBoYXNNdWx0aUFnZW50cz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IHVzZVByb2plY3RTdW1tYXJ5Q29uZmlnID0gKHtcbiAgc2VjdGlvbixcbiAgZW50aXR5LFxuICBwcm9qZWN0LFxuICBzZXRQcm9qZWN0LFxuICBjbGllbnQ6IGluaXRpYWxDbGllbnQgPSBudWxsLFxuICBzZXRDbGllbnQ6IHNldENsaWVudFByb3AsXG4gIHRhc2s6IGluaXRpYWxUYXNrID0gbnVsbCxcbiAgaGFzTXVsdGlBZ2VudHMsXG59OiBQcm9qZWN0U3VtbWFyeUNvbmZpZ1Byb3BzKSA9PiB7XG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgdCA9IHVzZVRXaXRoU2VjdGlvbihTRUNUSU9OUy5jaGF0QUkpXG4gIGNvbnN0IFthZ2VudCwgc2V0QWdlbnRdID0gdXNlU3RhdGU8QWdlbnQgfCBudWxsPihudWxsKVxuICBjb25zdCBbaXNXZWJTZWFyY2hBY3RpdmUsIHNldElzV2ViU2VhcmNoQWN0aXZlXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKVxuICBjb25zdCBbaXNEZWVwU2VhcmNoQWN0aXZlLCBzZXRJc0RlZXBTZWFyY2hBY3RpdmVdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpXG4gIGNvbnN0IFtpc0F1dG9BcHByb3ZlQWN0aXZlLCBzZXRJc0F1dG9BcHByb3ZlQWN0aXZlXSA9IHVzZVN0YXRlPGJvb2xlYW4+KFxuICAgICgpID0+IElTX0FVVE9fQVBQUk9WRV9FTkFCTEVEICYmIHJlYWRBdXRvQXBwcm92ZSh1c2VyPy5pZClcbiAgKVxuICBjb25zdCBbZW50aXR5VmFsdWVzLCBzZXRFbnRpdHlWYWx1ZXNdID0gdXNlU3RhdGU8e1xuICAgIHByb2plY3RJZDogc3RyaW5nIHwgbnVsbFxuICAgIGNsaWVudElkOiBzdHJpbmcgfCBudWxsXG4gIH0+KGVudGl0eSB8fCB7IHByb2plY3RJZDogbnVsbCwgY2xpZW50SWQ6IG51bGwgfSlcbiAgY29uc3QgW2NsaWVudCwgc2V0Q2xpZW50U3RhdGVdID0gdXNlU3RhdGU8Q2xpZW50IHwgbnVsbD4oaW5pdGlhbENsaWVudCA/PyBudWxsKVxuXG4gIGNvbnN0IHNldENsaWVudCA9IHNldENsaWVudFByb3AgPz8gc2V0Q2xpZW50U3RhdGVcblxuICBjb25zdCBbdGFzaywgc2V0VGFza1N0YXRlXSA9IHVzZVN0YXRlPFRhc2sgfCBudWxsPihpbml0aWFsVGFzayA/PyBudWxsKVxuICBjb25zdCBzZXRUYXNrID0gdXNlQ2FsbGJhY2soKG5ld1Rhc2s6IFRhc2sgfCBudWxsKSA9PiBzZXRUYXNrU3RhdGUobmV3VGFzayksIFtdKVxuXG4gIGNvbnN0IGNvbmZpZ3VyZVNldHRpbmdzSXRlbXMgPSB1c2VSZWYoYnVpbGRDb25maWd1cmVTZXR0aW5nc0l0ZW1zKHVzZXIsIHQpKVxuICBjb25zdCBbY2hpcHNQcm9qZWN0LCBzZXRDaGlwc1Byb2plY3RTdGF0ZV0gPSB1c2VTdGF0ZTxDaGlwc1Byb2plY3QgfCBudWxsPigoKSA9PiB7XG4gICAgaWYgKChzZWN0aW9uID09PSAncHJvamVjdCcgfHwgc2VjdGlvbiA9PT0gJ3Rhc2snKSAmJiBwcm9qZWN0Py5pZCAhPSBudWxsKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwcm9qZWN0SWQ6IFN0cmluZyhwcm9qZWN0LmlkKSxcbiAgICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgICAgY2xpZW50TmFtZTogcHJvamVjdC5jbGllbnQ/Lm5hbWUgPz8gJycsXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH0pXG5cbiAgLy8gU2luY3Jvbml6YXIgY2hpcHNQcm9qZWN0IGN1YW5kbyBlbCBwcm9qZWN0IHByb3AgY2FtYmlhIChlai4gbmF2ZWdhY2nDs24gZW50cmUgcHJveWVjdG9zIG8gdGFyZWFzKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICgoc2VjdGlvbiA9PT0gJ3Byb2plY3QnIHx8IHNlY3Rpb24gPT09ICd0YXNrJykgJiYgcHJvamVjdD8uaWQgIT0gbnVsbCkge1xuICAgICAgc2V0Q2hpcHNQcm9qZWN0U3RhdGUocHJldiA9PiB7XG4gICAgICAgIGlmIChwcmV2Py5wcm9qZWN0SWQgPT09IFN0cmluZyhwcm9qZWN0LmlkKSkgcmV0dXJuIHByZXZcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwcm9qZWN0SWQ6IFN0cmluZyhwcm9qZWN0LmlkKSxcbiAgICAgICAgICBwcm9qZWN0TmFtZTogcHJvamVjdC5uYW1lLFxuICAgICAgICAgIGNsaWVudE5hbWU6IHByb2plY3QuY2xpZW50Py5uYW1lID8/ICcnLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfSwgW3NlY3Rpb24sIHByb2plY3Q/LmlkLCBwcm9qZWN0Py5uYW1lLCBwcm9qZWN0Py5jbGllbnQ/Lm5hbWVdKVxuXG4gIC8vIFNpbmNyb25pemFyIGNsaWVudCBjdWFuZG8gbGEgcHJvcCBsbGVndWUgZGVzcHXDqXMgZGVsIHByaW1lciByZW5kZXIgKGVqLiBzZWN0aW9uIGNsaWVudCwgZGF0b3MgYXN5bmMpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHNlY3Rpb24gPT09ICdjbGllbnQnKSB7XG4gICAgICBzZXRDbGllbnRTdGF0ZShpbml0aWFsQ2xpZW50ID8/IG51bGwpXG4gICAgfVxuICB9LCBbc2VjdGlvbiwgaW5pdGlhbENsaWVudF0pXG5cbiAgLy8gU2luY3Jvbml6YXIgdGFzayBjdWFuZG8gbGEgcHJvcCBsbGVndWUgZGVzcHXDqXMgZGVsIHByaW1lciByZW5kZXJcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc2VjdGlvbiA9PT0gJ3Rhc2snKSB7XG4gICAgICBzZXRUYXNrU3RhdGUoaW5pdGlhbFRhc2sgPz8gbnVsbClcbiAgICB9XG4gIH0sIFtzZWN0aW9uLCBpbml0aWFsVGFza10pXG5cbiAgLy8gU2luY3Jvbml6YXIgZW50aXR5VmFsdWVzIGN1YW5kbyBlbnRpdHkgY2FtYmllIChlai4gbGxlZ3VlIGRlc3B1w6lzIGRlbCBwcmltZXIgcmVuZGVyKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChlbnRpdHkgIT0gbnVsbCkge1xuICAgICAgc2V0RW50aXR5VmFsdWVzKHtcbiAgICAgICAgcHJvamVjdElkOiBlbnRpdHkucHJvamVjdElkID8/IG51bGwsXG4gICAgICAgIGNsaWVudElkOiBlbnRpdHkuY2xpZW50SWQgPz8gbnVsbCxcbiAgICAgIH0pXG4gICAgfVxuICB9LCBbZW50aXR5Py5wcm9qZWN0SWQsIGVudGl0eT8uY2xpZW50SWRdKVxuXG4gIGNvbnN0IHJlc3RvcmVDb25maWd1cmVTZXR0aW5ncyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25maWd1cmVTZXR0aW5nc0l0ZW1zLmN1cnJlbnQgPSBjb25maWd1cmVTZXR0aW5nc0l0ZW1zLmN1cnJlbnQ/Lm1hcChpdGVtID0+ICh7XG4gICAgICAuLi5pdGVtLFxuICAgICAgY2hlY2tlZDogIWl0ZW0uaGlkZGVuLFxuICAgIH0pKVxuICB9LCBbXSlcblxuICBjb25zdCBzZWxlY3RBZ2VudCA9IHVzZUNhbGxiYWNrKChuZXdBZ2VudDogQWdlbnQpID0+IHtcbiAgICBzZXRBZ2VudChuZXdBZ2VudClcbiAgfSwgW10pXG5cbiAgY29uc3QgY2xlYXJBZ2VudCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRBZ2VudChudWxsKVxuICB9LCBbXSlcblxuICBjb25zdCB0b2dnbGVXZWJTZWFyY2ggPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0SXNXZWJTZWFyY2hBY3RpdmUocHJldiA9PiAhcHJldilcbiAgfSwgW10pXG5cbiAgY29uc3QgdG9nZ2xlRGVlcFNlYXJjaCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRJc0RlZXBTZWFyY2hBY3RpdmUocHJldiA9PiAhcHJldilcbiAgfSwgW10pXG5cbiAgY29uc3QgdG9nZ2xlQXV0b0FwcHJvdmUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0SXNBdXRvQXBwcm92ZUFjdGl2ZShwcmV2ID0+IHtcbiAgICAgIGNvbnN0IG5leHQgPSAhcHJldlxuICAgICAgd3JpdGVBdXRvQXBwcm92ZSh1c2VyPy5pZCwgbmV4dClcbiAgICAgIHJldHVybiBuZXh0XG4gICAgfSlcbiAgfSwgW3VzZXI/LmlkXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldElzQXV0b0FwcHJvdmVBY3RpdmUoSVNfQVVUT19BUFBST1ZFX0VOQUJMRUQgJiYgcmVhZEF1dG9BcHByb3ZlKHVzZXI/LmlkKSlcbiAgfSwgW3VzZXI/LmlkXSlcblxuICBjb25zdCBzZXRDaGlwc1Byb2plY3QgPSB1c2VDYWxsYmFjaygobmV3Q2hpcHNQcm9qZWN0OiBDaGlwc1Byb2plY3QgfCBudWxsKSA9PiB7XG4gICAgc2V0Q2hpcHNQcm9qZWN0U3RhdGUobmV3Q2hpcHNQcm9qZWN0KVxuICB9LCBbXSlcblxuICAvLyBQaW4gZGVyaXZhZG8gKFJGQyDCpzEyLjIpOiBsYSBlbnRpZGFkIG3DoXMgZXNwZWPDrWZpY2EgYWN0aXZhICh0YXJlYSA+IHByb3llY3RvID4gY2xpZW50ZSksXG4gIC8vIGNvbiBzdSBzY29wZSBoYWNpYSBhcnJpYmEgZW4gYHBhcmVudHNgLiBNb25vIGhveTsgYXJyYXktcmVhZHkgcGFyYSBjcm9zcy1lbnRpdHkuXG4gIGNvbnN0IHBpbm5lZENvbnRleHQgPSB1c2VNZW1vPFBpbm5lZENvbnRleHQgfCBudWxsPigoKSA9PiB7XG4gICAgaWYgKHRhc2s/LmlkICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6ICd0YXNrJyxcbiAgICAgICAgaWQ6IHRhc2suaWQsXG4gICAgICAgIG5hbWU6IHRhc2submFtZSxcbiAgICAgICAgcGFyZW50czoge1xuICAgICAgICAgIC4uLih0YXNrLmNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudElkOiB0YXNrLmNsaWVudElkIH0gOiB7fSksXG4gICAgICAgICAgLi4uKHRhc2sucHJvamVjdElkICE9IG51bGwgPyB7IHByb2plY3RJZDogdGFzay5wcm9qZWN0SWQgfSA6IHt9KSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNoaXBzUHJvamVjdD8ucHJvamVjdElkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiAncHJvamVjdCcsXG4gICAgICAgIGlkOiBjaGlwc1Byb2plY3QucHJvamVjdElkLFxuICAgICAgICBuYW1lOiBjaGlwc1Byb2plY3QucHJvamVjdE5hbWUsXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9qZWN0Py5pZCAhPSBudWxsKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiAncHJvamVjdCcsXG4gICAgICAgIGlkOiBwcm9qZWN0LmlkLFxuICAgICAgICBuYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgICAgIC4uLihwcm9qZWN0LmNsaWVudElkICE9IG51bGwgPyB7IHBhcmVudHM6IHsgY2xpZW50SWQ6IHByb2plY3QuY2xpZW50SWQgfSB9IDoge30pLFxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY2xpZW50Py5pZCAhPSBudWxsKSB7XG4gICAgICByZXR1cm4geyB0eXBlOiAnY2xpZW50JywgaWQ6IGNsaWVudC5pZCwgbmFtZTogY2xpZW50Lm5hbWUgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9LCBbXG4gICAgdGFzaz8uaWQsXG4gICAgdGFzaz8ubmFtZSxcbiAgICB0YXNrPy5jbGllbnRJZCxcbiAgICB0YXNrPy5wcm9qZWN0SWQsXG4gICAgY2hpcHNQcm9qZWN0LFxuICAgIHByb2plY3Q/LmlkLFxuICAgIHByb2plY3Q/Lm5hbWUsXG4gICAgcHJvamVjdD8uY2xpZW50SWQsXG4gICAgY2xpZW50Py5pZCxcbiAgICBjbGllbnQ/Lm5hbWUsXG4gIF0pXG5cbiAgY29uc3QgY29udGV4dCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIGVudGl0eVZhbHVlcyxcbiAgICAgIHNlY3Rpb246IHNlY3Rpb24gYXMgU2VjdGlvbixcbiAgICAgIGFnZW50LFxuICAgICAgc2VsZWN0QWdlbnQsXG4gICAgICBjbGVhckFnZW50LFxuICAgICAgY29uZmlndXJlU2V0dGluZ3NJdGVtcyxcbiAgICAgIHJlc3RvcmVDb25maWd1cmVTZXR0aW5ncyxcbiAgICAgIHNldEVudGl0eVZhbHVlcyxcbiAgICAgIHByb2plY3QsXG4gICAgICBzZXRQcm9qZWN0LFxuICAgICAgY2xpZW50LFxuICAgICAgc2V0Q2xpZW50LFxuICAgICAgdGFzayxcbiAgICAgIHNldFRhc2ssXG4gICAgICBpc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICAgIHRvZ2dsZVdlYlNlYXJjaCxcbiAgICAgIGlzQXV0b0FwcHJvdmVBY3RpdmUsXG4gICAgICB0b2dnbGVBdXRvQXBwcm92ZSxcbiAgICAgIGlzRGVlcFNlYXJjaEFjdGl2ZSxcbiAgICAgIHRvZ2dsZURlZXBTZWFyY2gsXG4gICAgICBoYXNNdWx0aUFnZW50cyxcbiAgICAgIGNoaXBzUHJvamVjdCxcbiAgICAgIHNldENoaXBzUHJvamVjdCxcbiAgICAgIHBpbm5lZENvbnRleHQsXG4gICAgfSksXG4gICAgW1xuICAgICAgc2VjdGlvbixcbiAgICAgIGVudGl0eVZhbHVlcz8ucHJvamVjdElkLFxuICAgICAgZW50aXR5VmFsdWVzPy5jbGllbnRJZCxcbiAgICAgIGFnZW50LFxuICAgICAgc2VsZWN0QWdlbnQsXG4gICAgICBjbGVhckFnZW50LFxuICAgICAgc2V0RW50aXR5VmFsdWVzLFxuICAgICAgcmVzdG9yZUNvbmZpZ3VyZVNldHRpbmdzLFxuICAgICAgcHJvamVjdD8uaWQsXG4gICAgICBzZXRQcm9qZWN0LFxuICAgICAgY2xpZW50Py5pZCxcbiAgICAgIHNldENsaWVudCxcbiAgICAgIHRhc2s/LmlkLFxuICAgICAgc2V0VGFzayxcbiAgICAgIGlzV2ViU2VhcmNoQWN0aXZlLFxuICAgICAgdG9nZ2xlV2ViU2VhcmNoLFxuICAgICAgaXNBdXRvQXBwcm92ZUFjdGl2ZSxcbiAgICAgIHRvZ2dsZUF1dG9BcHByb3ZlLFxuICAgICAgaXNEZWVwU2VhcmNoQWN0aXZlLFxuICAgICAgdG9nZ2xlRGVlcFNlYXJjaCxcbiAgICAgIGhhc011bHRpQWdlbnRzLFxuICAgICAgY2hpcHNQcm9qZWN0LFxuICAgICAgc2V0Q2hpcHNQcm9qZWN0LFxuICAgICAgcGlubmVkQ29udGV4dCxcbiAgICBdXG4gIClcblxuICByZXR1cm4ge1xuICAgIGNvbnRleHQsXG4gICAgcmVzdG9yZUNvbmZpZ3VyZVNldHRpbmdzLFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxTQUFTQSxXQUFXLEVBQUVDLE1BQU0sRUFBRUMsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBR3pFLFNBQVNDLFFBQVEsUUFBUSxxQkFBcUI7QUFDOUMsU0FBU0MsZUFBZSxFQUFFQyxnQkFBZ0IsUUFBUSw2QkFBNkI7QUFDL0UsU0FBU0MsMkJBQTJCLFFBQVEsMEJBQTBCO0FBQ3RFLFNBQVNDLE9BQU8sUUFBUSxxQkFBcUI7QUFHN0MsU0FBU0MsZUFBZSxRQUFRLFFBQVE7QUFLeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQU1DLHVCQUF1QixHQUFHLEtBQUs7QUFnQnJDLE9BQU8sSUFBTUMsdUJBQXVCLEdBQUcsU0FBMUJBLHVCQUF1QkEsQ0FBQUMsSUFBQSxFQVNIO0VBQUEsSUFBQUMsZ0JBQUE7RUFBQSxJQVIvQkMsT0FBTyxHQUFBRixJQUFBLENBQVBFLE9BQU87SUFDUEMsTUFBTSxH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
@@ -0,0 +1,3 @@
1
+ export { useReasoningTrace } from './useReasoningTrace';
2
+ export { reasoningStore } from './reasoningStore';
3
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VSZWFzb25pbmdUcmFjZSIsInJlYXNvbmluZ1N0b3JlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL3VzZVJlYXNvbmluZ1RyYWNlL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IHVzZVJlYXNvbmluZ1RyYWNlIH0gZnJvbSAnLi91c2VSZWFzb25pbmdUcmFjZSdcbmV4cG9ydCB7IHJlYXNvbmluZ1N0b3JlIH0gZnJvbSAnLi9yZWFzb25pbmdTdG9yZSdcbmV4cG9ydCB0eXBlIHsgUmVhc29uaW5nU25hcHNob3QsIFJlYXNvbmluZ1BoYXNlIH0gZnJvbSAnLi9yZWFzb25pbmdTdG9yZSdcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsaUJBQWlCLFFBQVEscUJBQXFCO0FBQ3ZELFNBQVNDLGNBQWMsUUFBUSxrQkFBa0IiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,170 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
+ import { mapReasoningStep, mapReasoningTrace } from '../../utils/reasoningMappers';
6
+ var EMPTY = {
7
+ id: null,
8
+ steps: [],
9
+ summary: null,
10
+ phase: 'idle'
11
+ };
12
+ var snapshots = new Map();
13
+ /** Entre `reasoning_step` narración y el `answer_reset` posterior. */
14
+ var narrationHandoffPending = new Set();
15
+ var listeners = new Set();
16
+ var emitChange = function emitChange() {
17
+ listeners.forEach(function (listener) {
18
+ listener();
19
+ });
20
+ };
21
+ var upsertStep = function upsertStep(steps, step) {
22
+ var at = steps.findIndex(function (current) {
23
+ return current.i === step.i;
24
+ });
25
+ if (at === -1) {
26
+ return [].concat(_toConsumableArray(steps), [step]).sort(function (a, b) {
27
+ return a.i - b.i;
28
+ });
29
+ }
30
+ var next = steps.slice();
31
+ next[at] = step;
32
+ return next;
33
+ };
34
+ var ensureStreaming = function ensureStreaming(id) {
35
+ var existing = snapshots.get(id);
36
+ if (existing) return existing;
37
+ var created = {
38
+ id: id,
39
+ steps: [],
40
+ summary: null,
41
+ phase: 'streaming'
42
+ };
43
+ snapshots.set(id, created);
44
+ return created;
45
+ };
46
+ export var reasoningStore = {
47
+ start: function start(id) {
48
+ snapshots.set(id, {
49
+ id: id,
50
+ steps: [],
51
+ summary: null,
52
+ phase: 'streaming'
53
+ });
54
+ narrationHandoffPending["delete"](id);
55
+ emitChange();
56
+ },
57
+ appendThinking: function appendThinking(id, index, delta) {
58
+ var _existing$text;
59
+ if (!delta) return;
60
+ var current = ensureStreaming(id);
61
+ var existing = current.steps.find(function (step) {
62
+ return step.i === index;
63
+ });
64
+ var step = existing && existing.type === 'thinking' ? _objectSpread(_objectSpread({}, existing), {}, {
65
+ text: "".concat((_existing$text = existing.text) !== null && _existing$text !== void 0 ? _existing$text : '').concat(delta)
66
+ }) : {
67
+ i: index,
68
+ type: 'thinking',
69
+ text: delta
70
+ };
71
+ snapshots.set(id, _objectSpread(_objectSpread({}, current), {}, {
72
+ steps: upsertStep(current.steps, step),
73
+ phase: 'streaming'
74
+ }));
75
+ emitChange();
76
+ },
77
+ applyStep: function applyStep(id, payload) {
78
+ var _payload$type;
79
+ var current = ensureStreaming(id);
80
+ var incoming = mapReasoningStep(payload);
81
+ var existing = current.steps.find(function (step) {
82
+ return step.i === incoming.i;
83
+ });
84
+ var step = existing ? _objectSpread(_objectSpread(_objectSpread({}, existing), incoming), {}, {
85
+ type: (_payload$type = payload.type) !== null && _payload$type !== void 0 ? _payload$type : existing.type
86
+ }) : incoming;
87
+ if (payload.type === 'narration') {
88
+ narrationHandoffPending.add(id);
89
+ }
90
+ snapshots.set(id, _objectSpread(_objectSpread({}, current), {}, {
91
+ steps: upsertStep(current.steps, step),
92
+ phase: 'streaming'
93
+ }));
94
+ emitChange();
95
+ },
96
+ /** Tras answer_reset: lo que sigue en el body es respuesta final, no narración en traza. */markAnswerReset: function markAnswerReset(id) {
97
+ if (!narrationHandoffPending["delete"](id)) return;
98
+ emitChange();
99
+ },
100
+ isNarrationHandoffPending: function isNarrationHandoffPending(id) {
101
+ return narrationHandoffPending.has(id);
102
+ },
103
+ finish: function finish(id, trace) {
104
+ narrationHandoffPending["delete"](id);
105
+ var authoritative = mapReasoningTrace(trace);
106
+ if (authoritative) {
107
+ snapshots.set(id, {
108
+ id: id,
109
+ steps: authoritative.steps,
110
+ summary: authoritative.summary,
111
+ phase: 'done'
112
+ });
113
+ emitChange();
114
+ return;
115
+ }
116
+ var current = snapshots.get(id);
117
+ if (!current) return;
118
+ var steps = current.steps.map(function (step) {
119
+ return step.status === 'running' ? _objectSpread(_objectSpread({}, step), {}, {
120
+ status: 'ok'
121
+ }) : step;
122
+ });
123
+ snapshots.set(id, _objectSpread(_objectSpread({}, current), {}, {
124
+ steps: steps,
125
+ summary: null,
126
+ phase: 'done'
127
+ }));
128
+ emitChange();
129
+ },
130
+ clear: function clear() {
131
+ if (snapshots.size === 0 && narrationHandoffPending.size === 0) return;
132
+ snapshots.clear();
133
+ narrationHandoffPending.clear();
134
+ emitChange();
135
+ },
136
+ remove: function remove(id) {
137
+ var hadSnapshot = snapshots["delete"](id);
138
+ var hadHandoff = narrationHandoffPending["delete"](id);
139
+ if (hadSnapshot || hadHandoff) emitChange();
140
+ },
141
+ rename: function rename(fromId, toId) {
142
+ var current = snapshots.get(fromId);
143
+ if (!current) return;
144
+ snapshots["delete"](fromId);
145
+ snapshots.set(toId, _objectSpread(_objectSpread({}, current), {}, {
146
+ id: toId
147
+ }));
148
+ if (narrationHandoffPending.has(fromId)) {
149
+ narrationHandoffPending["delete"](fromId);
150
+ narrationHandoffPending.add(toId);
151
+ }
152
+ emitChange();
153
+ },
154
+ subscribe: function subscribe(listener) {
155
+ listeners.add(listener);
156
+ return function () {
157
+ listeners["delete"](listener);
158
+ };
159
+ },
160
+ getSnapshot: function getSnapshot() {
161
+ var _snapshots$get;
162
+ var messageId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
163
+ if (!messageId) return EMPTY;
164
+ return (_snapshots$get = snapshots.get(messageId)) !== null && _snapshots$get !== void 0 ? _snapshots$get : EMPTY;
165
+ },
166
+ getServerSnapshot: function getServerSnapshot() {
167
+ return EMPTY;
168
+ }
169
+ };
170
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYXBSZWFzb25pbmdTdGVwIiwibWFwUmVhc29uaW5nVHJhY2UiLCJFTVBUWSIsImlkIiwic3RlcHMiLCJzdW1tYXJ5IiwicGhhc2UiLCJzbmFwc2hvdHMiLCJNYXAiLCJuYXJyYXRpb25IYW5kb2ZmUGVuZGluZyIsIlNldCIsImxpc3RlbmVycyIsImVtaXRDaGFuZ2UiLCJmb3JFYWNoIiwibGlzdGVuZXIiLCJ1cHNlcnRTdGVwIiwic3RlcCIsImF0IiwiZmluZEluZGV4IiwiY3VycmVudCIsImkiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJzb3J0IiwiYSIsImIiLCJuZXh0Iiwic2xpY2UiLCJlbnN1cmVTdHJlYW1pbmciLCJleGlzdGluZyIsImdldCIsImNyZWF0ZWQiLCJzZXQiLCJyZWFzb25pbmdTdG9yZSIsInN0YXJ0IiwiYXBwZW5kVGhpbmtpbmciLCJpbmRleCIsImRlbHRhIiwiX2V4aXN0aW5nJHRleHQiLCJmaW5kIiwidHlwZSIsIl9vYmplY3RTcHJlYWQiLCJ0ZXh0IiwiYXBwbHlTdGVwIiwicGF5bG9hZCIsIl9wYXlsb2FkJHR5cGUiLCJpbmNvbWluZyIsImFkZCIsIm1hcmtBbnN3ZXJSZXNldCIsImlzTmFycmF0aW9uSGFuZG9mZlBlbmRpbmciLCJoYXMiLCJmaW5pc2giLCJ0cmFjZSIsImF1dGhvcml0YXRpdmUiLCJtYXAiLCJzdGF0dXMiLCJjbGVhciIsInNpemUiLCJyZW1vdmUiLCJoYWRTbmFwc2hvdCIsImhhZEhhbmRvZmYiLCJyZW5hbWUiLCJmcm9tSWQiLCJ0b0lkIiwic3Vic2NyaWJlIiwiZ2V0U25hcHNob3QiLCJfc25hcHNob3RzJGdldCIsIm1lc3NhZ2VJZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImdldFNlcnZlclNuYXBzaG90Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL3VzZVJlYXNvbmluZ1RyYWNlL3JlYXNvbmluZ1N0b3JlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgUmVhc29uaW5nU3RlcCxcbiAgUmVhc29uaW5nU3RlcFBheWxvYWQsXG4gIFJlYXNvbmluZ1N1bW1hcnksXG4gIFJlYXNvbmluZ1RyYWNlUGF5bG9hZCxcbn0gZnJvbSAnLi4vLi4vdHlwZXMvcmVhc29uaW5nJ1xuaW1wb3J0IHsgbWFwUmVhc29uaW5nU3RlcCwgbWFwUmVhc29uaW5nVHJhY2UgfSBmcm9tICcuLi8uLi91dGlscy9yZWFzb25pbmdNYXBwZXJzJ1xuXG5leHBvcnQgdHlwZSBSZWFzb25pbmdQaGFzZSA9ICdpZGxlJyB8ICdzdHJlYW1pbmcnIHwgJ2RvbmUnXG5cbmV4cG9ydCB0eXBlIFJlYXNvbmluZ1NuYXBzaG90ID0ge1xuICBpZDogc3RyaW5nIHwgbnVsbFxuICBzdGVwczogUmVhc29uaW5nU3RlcFtdXG4gIHN1bW1hcnk6IFJlYXNvbmluZ1N1bW1hcnkgfCBudWxsXG4gIHBoYXNlOiBSZWFzb25pbmdQaGFzZVxufVxuXG5jb25zdCBFTVBUWTogUmVhc29uaW5nU25hcHNob3QgPSB7IGlkOiBudWxsLCBzdGVwczogW10sIHN1bW1hcnk6IG51bGwsIHBoYXNlOiAnaWRsZScgfVxuXG5jb25zdCBzbmFwc2hvdHMgPSBuZXcgTWFwPHN0cmluZywgUmVhc29uaW5nU25hcHNob3Q+KClcbi8qKiBFbnRyZSBgcmVhc29uaW5nX3N0ZXBgIG5hcnJhY2nDs24geSBlbCBgYW5zd2VyX3Jlc2V0YCBwb3N0ZXJpb3IuICovXG5jb25zdCBuYXJyYXRpb25IYW5kb2ZmUGVuZGluZyA9IG5ldyBTZXQ8c3RyaW5nPigpXG5jb25zdCBsaXN0ZW5lcnMgPSBuZXcgU2V0PCgpID0+IHZvaWQ+KClcblxuY29uc3QgZW1pdENoYW5nZSA9ICgpID0+IHtcbiAgbGlzdGVuZXJzLmZvckVhY2gobGlzdGVuZXIgPT4ge1xuICAgIGxpc3RlbmVyKClcbiAgfSlcbn1cblxuY29uc3QgdXBzZXJ0U3RlcCA9IChzdGVwczogUmVhc29uaW5nU3RlcFtdLCBzdGVwOiBSZWFzb25pbmdTdGVwKTogUmVhc29uaW5nU3RlcFtdID0+IHtcbiAgY29uc3QgYXQgPSBzdGVwcy5maW5kSW5kZXgoY3VycmVudCA9PiBjdXJyZW50LmkgPT09IHN0ZXAuaSlcbiAgaWYgKGF0ID09PSAtMSkge1xuICAgIHJldHVybiBbLi4uc3RlcHMsIHN0ZXBdLnNvcnQoKGEsIGIpID0+IGEuaSAtIGIuaSlcbiAgfVxuICBjb25zdCBuZXh0ID0gc3RlcHMuc2xpY2UoKVxuICBuZXh0W2F0XSA9IHN0ZXBcbiAgcmV0dXJuIG5leHRcbn1cblxuY29uc3QgZW5zdXJlU3RyZWFtaW5nID0gKGlkOiBzdHJpbmcpOiBSZWFzb25pbmdTbmFwc2hvdCA9PiB7XG4gIGNvbnN0IGV4aXN0aW5nID0gc25hcHNob3RzLmdldChpZClcbiAgaWYgKGV4aXN0aW5nKSByZXR1cm4gZXhpc3RpbmdcbiAgY29uc3QgY3JlYXRlZDogUmVhc29uaW5nU25hcHNob3QgPSB7IGlkLCBzdGVwczogW10sIHN1bW1hcnk6IG51bGwsIHBoYXNlOiAnc3RyZWFtaW5nJyB9XG4gIHNuYXBzaG90cy5zZXQoaWQsIGNyZWF0ZWQpXG4gIHJldHVybiBjcmVhdGVkXG59XG5cbmV4cG9ydCBjb25zdCByZWFzb25pbmdTdG9yZSA9IHtcbiAgc3RhcnQoaWQ6IHN0cmluZykge1xuICAgIHNuYXBzaG90cy5zZXQoaWQsIHsgaWQsIHN0ZXBzOiBbXSwgc3VtbWFyeTogbnVsbCwgcGhhc2U6ICdzdHJlYW1pbmcnIH0pXG4gICAgbmFycmF0aW9uSGFuZG9mZlBlbmRpbmcuZGVsZXRlKGlkKVxuICAgIGVtaXRDaGFuZ2UoKVxuICB9LFxuXG4gIGFwcGVuZFRoaW5raW5nKGlkOiBzdHJpbmcsIGluZGV4OiBudW1iZXIsIGRlbHRhOiBzdHJpbmcpIHtcbiAgICBpZiAoIWRlbHRhKSByZXR1cm5cbiAgICBjb25zdCBjdXJyZW50ID0gZW5zdXJlU3RyZWFtaW5nKGlkKVxuICAgIGNvbnN0IGV4aXN0aW5nID0gY3VycmVudC5zdGVwcy5maW5kKHN0ZXAgPT4gc3RlcC5pID09PSBpbmRleClcbiAgICBjb25zdCBzdGVwOiBSZWFzb25pbmdTdGVwID1cbiAgICAgIGV4aXN0aW5nICYmIGV4aXN0aW5nLnR5cGUgPT09ICd0aGlua2luZydcbiAgICAgICAgPyB7IC4uLmV4aXN0aW5nLCB0ZXh0OiBgJHtleGlzdGluZy50ZXh0ID8/ICcnfSR7ZGVsdGF9YCB9XG4gICAgICAgIDogeyBpOiBpbmRleCwgdHlwZTogJ3RoaW5raW5nJywgdGV4dDogZGVsdGEgfVxuICAgIHNuYXBzaG90cy5zZXQoaWQsIHsgLi4uY3VycmVudCwgc3RlcHM6IHVwc2VydFN0ZXAoY3VycmVudC5zdGVwcywgc3RlcCksIHBoYXNlOiAnc3RyZWFtaW5nJyB9KVxuICAgIGVtaXRDaGFuZ2UoKVxuICB9LFxuXG4gIGFwcGx5U3RlcChpZDogc3RyaW5nLCBwYXlsb2FkOiBSZWFzb25pbmdTdGVwUGF5bG9hZCkge1xuICAgIGNvbnN0IGN1cnJlbnQgPSBlbnN1cmVTdHJlYW1pbmcoaWQpXG4gICAgY29uc3QgaW5jb21pbmcgPSBtYXBSZWFzb25pbmdTdGVwKHBheWxvYWQpXG4gICAgY29uc3QgZXhpc3RpbmcgPSBjdXJyZW50LnN0ZXBzLmZpbmQoc3RlcCA9PiBzdGVwLmkgPT09IGluY29taW5nLmkpXG4gICAgY29uc3Qgc3RlcCA9IGV4aXN0aW5nID8geyAuLi5leGlzdGluZywgLi4uaW5jb21pbmcsIHR5cGU6IHBheWxvYWQudHlwZSA/PyBleGlzdGluZy50eXBlIH0gOiBpbmNvbWluZ1xuICAgIGlmIChwYXlsb2FkLnR5cGUgPT09ICduYXJyYXRpb24nKSB7XG4gICAgICBuYXJyYXRpb25IYW5kb2ZmUGVuZGluZy5hZGQoaWQpXG4gICAgfVxuICAgIHNuYXBzaG90cy5zZXQoaWQsIHsgLi4uY3VycmVudCwgc3RlcHM6IHVwc2VydFN0ZXAoY3VycmVudC5zdGVwcywgc3RlcCksIHBoYXNlOiAnc3RyZWFtaW5nJyB9KVxuICAgIGVtaXRDaGFuZ2UoKVxuICB9LFxuXG4gIC8qKiBUcmFzIGFuc3dlcl9yZXNldDogbG8gcXVlIHNpZ3VlIGVuIGVsIGJvZHkgZXMgcmVzcHVlc3RhIGZpbmFsLCBubyBuYXJyYWNpw7NuIGVuIHRyYXphLiAqL1xuICBtYXJrQW5zd2VyUmVzZXQoaWQ6IHN0cmluZykge1xuICAgIGlmICghbmFycmF0aW9uSGFuZG9mZlBlbmRpbmcuZGVsZXRlKGlkKSkgcmV0dXJuXG4gICAgZW1pdENoYW5nZSgpXG4gIH0sXG5cbiAgaXNOYXJyYXRpb25IYW5kb2ZmUGVuZGluZyhpZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG5hcnJhdGlvbkhhbmRvZmZQZW5kaW5nLmhhcyhpZClcbiAgfSxcblxuICBmaW5pc2goaWQ6IHN0cmluZywgdHJhY2U6IFJlYXNvbmluZ1RyYWNlUGF5bG9hZCB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICBuYXJyYXRpb25IYW5kb2ZmUGVuZGluZy5kZWxldGUoaWQpXG4gICAgY29uc3QgYXV0aG9yaXRhdGl2ZSA9IG1hcFJlYXNvbmluZ1RyYWNlKHRyYWNlKVxuICAgIGlmIChhdXRob3JpdGF0aXZlKSB7XG4gICAgICBzbmFwc2hvdHMuc2V0KGlkLCB7IGlkLCBzdGVwczogYXV0aG9yaXRhdGl2ZS5zdGVwcywgc3VtbWFyeTogYXV0aG9yaXRhdGl2ZS5zdW1tYXJ5LCBwaGFzZTogJ2RvbmUnIH0pXG4gICAgICBlbWl0Q2hhbmdlKClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCBjdXJyZW50ID0gc25hcHNob3RzLmdldChpZClcbiAgICBpZiAoIWN1cnJlbnQpIHJldHVyblxuICAgIGNvbnN0IHN0ZXBzID0gY3VycmVudC5zdGVwcy5tYXAoc3RlcCA9PiAoc3RlcC5zdGF0dXMgPT09ICdydW5uaW5nJyA/IHsgLi4uc3RlcCwgc3RhdHVzOiAnb2snIGFzIGNvbnN0IH0gOiBzdGVwKSlcbiAgICBzbmFwc2hvdHMuc2V0KGlkLCB7IC4uLmN1cnJlbnQsIHN0ZXBzLCBzdW1tYXJ5OiBudWxsLCBwaGFzZTogJ2RvbmUnIH0pXG4gICAgZW1pdENoYW5nZSgpXG4gIH0sXG5cbiAgY2xlYXIoKSB7XG4gICAgaWYgKHNuYXBzaG90cy5zaXplID09PSAwICYmIG5hcnJhdGlvbkhhbmRvZmZQZW5kaW5nLnNpemUgPT09IDApIHJldHVyblxuICAgIHNuYXBzaG90cy5jbGVhcigpXG4gICAgbmFycmF0aW9uSGFuZG9mZlBlbmRpbmcuY2xlYXIoKVxuICAgIGVtaXRDaGFuZ2UoKVxuICB9LFxuXG4gIHJlbW92ZShpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgaGFkU25hcHNob3QgPSBzbmFwc2hvdHMuZGVsZXRlKGlkKVxuICAgIGNvbnN0IGhhZEhhbmRvZmYgPSBuYXJyYXRpb25IYW5kb2ZmUGVuZGluZy5kZWxldGUoaWQpXG4gICAgaWYgKGhhZFNuYXBzaG90IHx8IGhhZEhhbmRvZmYpIGVtaXRDaGFuZ2UoKVxuICB9LFxuXG4gIHJlbmFtZShmcm9tSWQ6IHN0cmluZywgdG9JZDogc3RyaW5nKSB7XG4gICAgY29uc3QgY3VycmVudCA9IHNuYXBzaG90cy5nZXQoZnJvbUlkKVxuICAgIGlmICghY3VycmVudCkgcmV0dXJuXG4gICAgc25hcHNob3RzLmRlbGV0ZShmcm9tSWQpXG4gICAgc25hcHNob3RzLnNldCh0b0lkLCB7IC4uLmN1cnJlbnQsIGlkOiB0b0lkIH0pXG4gICAgaWYgKG5hcnJhdGlvbkhhbmRvZmZQZW5kaW5nLmhhcyhmcm9tSWQpKSB7XG4gICAgICBuYXJyYXRpb25IYW5kb2ZmUGVuZGluZy5kZWxldGUoZnJvbUlkKVxuICAgICAgbmFycmF0aW9uSGFuZG9mZlBlbmRpbmcuYWRkKHRvSWQpXG4gICAgfVxuICAgIGVtaXRDaGFuZ2UoKVxuICB9LFxuXG4gIHN1YnNjcmliZShsaXN0ZW5lcjogKCkgPT4gdm9pZCkge1xuICAgIGxpc3RlbmVycy5hZGQobGlzdGVuZXIpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGxpc3RlbmVycy5kZWxldGUobGlzdGVuZXIpXG4gICAgfVxuICB9LFxuXG4gIGdldFNuYXBzaG90KG1lc3NhZ2VJZCA9ICcnKTogUmVhc29uaW5nU25hcHNob3Qge1xuICAgIGlmICghbWVzc2FnZUlkKSByZXR1cm4gRU1QVFlcbiAgICByZXR1cm4gc25hcHNob3RzLmdldChtZXNzYWdlSWQpID8/IEVNUFRZXG4gIH0sXG5cbiAgZ2V0U2VydmVyU25hcHNob3QoKTogUmVhc29uaW5nU25hcHNob3Qge1xuICAgIHJldHVybiBFTVBUWVxuICB9LFxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBTUEsU0FBU0EsZ0JBQWdCLEVBQUVDLGlCQUFpQixRQUFRLDhCQUE4QjtBQVdsRixJQUFNQyxLQUF3QixHQUFHO0VBQUVDLEVBQUUsRUFBRSxJQUFJO0VBQUVDLEtBQUssRUFBRSxFQUFFO0VBQUVDLE9BQU8sRUFBRSxJQUFJO0VBQUVDLEtBQUssRUFBRTtBQUFPLENBQUM7QUFFdEYsSUFBTUMsU0FBUyxHQUFHLElBQUlDLEdBQUcsQ0FBNEIsQ0FBQztBQUN0RDtBQUNBLElBQU1DLHVCQUF1QixHQUFHLElBQUlDLEdBQUcsQ0FBUyxDQUFDO0FBQ2pELElBQU1DLFNBQVMsR0FBRyxJQUFJRCxHQUFHLENBQWEsQ0FBQztBQUV2QyxJQUFNRSxVQUFVLEdBQUcsU0FBYkEsVUFBVUEsQ0FBQSxFQUFTO0VBQ3ZCRCxTQUFTLENBQUNFLE9BQU8sQ0FBQyxVQUFBQyxRQUFRLEVBQUk7SUFDNUJBLFFBQVEsQ0FBQyxDQUFDO0VBQ1osQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELElBQU1DLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFJWCxLQUFzQixFQUFFWSxJQUFtQixFQUFzQjtFQUNuRixJQUFNQyxFQUFFLEdBQUdiLEtBQUssQ0FBQ2MsU0FBUyxDQUFDLFVBQUFDLE9BQU87SUFBQSxPQUFJQSxPQUFPLENBQUNDLENBQUMsS0FBS0osSUFBSSxDQUFDSSxDQUFDO0VBQUEsRUFBQztFQUMzRCxJQUFJSCxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUU7SUFDYixPQUFPLEdBQUFJLE1BQUEsQ0FBQUMsa0JBQUEsQ0FBSWxCLEtBQUssSUFBRVksSUFBSSxHQUFFTyxJQUFJ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RUFFRDhDLE1BQU0sV0FBTkEsTUFBTUEsQ0FBQ3ZELEVBQVUsRUFBRTtJQUNqQixJQUFNd0QsV0FBVyxHQUFHcEQsU0FBUyxVQUFPLENBQUNKLEVBQUUsQ0FBQztJQUN4QyxJQUFNeUQsVUFBVSxHQUFHbkQsdUJBQXVCLFVBQU8sQ0FBQ04sRUFBRSxDQUFDO0lBQ3JELElBQUl3RCxXQUFXLElBQUlDLFVBQVUsRUFBRWhELFVBQVUsQ0FBQyxDQUFDO0VBQzdDLENBQUM7RUFFRGlELE1BQU0sV0FBTkEsTUFBTUEsQ0FBQ0MsTUFBYyxFQUFFQyxJQUFZLEVBQUU7SUFDbkMsSUFBTTVDLE9BQU8sR0FBR1osU0FBUyxDQUFDdUIsR0FBRyxDQUFDZ0MsTUFBTSxDQUFDO0lBQ3JDLElBQUksQ0FBQzNDLE9BQU8sRUFBRTtJQUNkWixTQUFTLFVBQU8sQ0FBQ3VELE1BQU0sQ0FBQztJQUN4QnZELFNBQVMsQ0FBQ3lCLEdBQUcsQ0FBQytCLElBQUksRUFBQXRCLGFBQUEsQ0FBQUEsYUFBQSxLQUFPdEIsT0FBTztNQUFFaEIsRUFBRSxFQUFFNEQ7SUFBSSxFQUFFLENBQUM7SUFDN0MsSUFBSXRELHVCQUF1QixDQUFDeUMsR0FBRyxDQUFDWSxNQUFNLENBQUMsRUFBRTtNQUN2Q3JELHVCQUF1QixVQUFPLENBQUNxRCxNQUFNLENBQUM7TUFDdENyRCx1QkFBdUIsQ0FBQ3NDLEdBQUcsQ0FBQ2dCLElBQUksQ0FBQztJQUNuQztJQUNBbkQsVUFBVSxDQUFDLENBQUM7RUFDZCxDQUFDO0VBRURvRCxTQUFTLFdBQVRBLFNBQVNBLENBQUNsRCxRQUFvQixFQUFFO0lBQzlCSCxTQUFTLENBQUNvQyxHQUFHLENBQUNqQyxRQUFRLENBQUM7SUFDdkIsT0FBTyxZQUFNO01BQ1hILFNBQVMsVUFBTyxDQUFDRyxRQUFRLENBQUM7SUFDNUIsQ0FBQztFQUNILENBQUM7RUFFRG1ELFdBQVcsV0FBWEEsV0FBV0EsQ0FBQSxFQUFvQztJQUFBLElBQUFDLGNBQUE7SUFBQSxJQUFuQ0MsU0FBUyxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxFQUFFO0lBQ3hCLElBQUksQ0FBQ0QsU0FBUyxFQUFFLE9BQU9qRSxLQUFLO0lBQzVCLFFBQUFnRSxjQUFBLEdBQU8zRCxTQUFTLENBQUN1QixHQUFHLENBQUNxQyxTQUFTLENBQUMsY0FBQUQsY0FBQSxjQUFBQSxjQUFBLEdBQUloRSxLQUFLO0VBQzFDLENBQUM7RUFFRHFFLGlCQUFpQixXQUFqQkEsaUJBQWlCQSxDQUFBLEVBQXNCO0lBQ3JDLE9BQU9yRSxLQUFLO0VBQ2Q7QUFDRixDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,14 @@
1
+ import { useSyncExternalStore } from 'react';
2
+ import { reasoningStore } from './reasoningStore';
3
+ var EMPTY = {
4
+ id: null,
5
+ steps: [],
6
+ summary: null,
7
+ phase: 'idle'
8
+ };
9
+ export var useReasoningTrace = function useReasoningTrace(messageId) {
10
+ return useSyncExternalStore(reasoningStore.subscribe, function () {
11
+ return reasoningStore.getSnapshot(messageId !== null && messageId !== void 0 ? messageId : '');
12
+ }, reasoningStore.getServerSnapshot);
13
+ };
14
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTeW5jRXh0ZXJuYWxTdG9yZSIsInJlYXNvbmluZ1N0b3JlIiwiRU1QVFkiLCJpZCIsInN0ZXBzIiwic3VtbWFyeSIsInBoYXNlIiwidXNlUmVhc29uaW5nVHJhY2UiLCJtZXNzYWdlSWQiLCJzdWJzY3JpYmUiLCJnZXRTbmFwc2hvdCIsImdldFNlcnZlclNuYXBzaG90Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL3VzZVJlYXNvbmluZ1RyYWNlL3VzZVJlYXNvbmluZ1RyYWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVN5bmNFeHRlcm5hbFN0b3JlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyByZWFzb25pbmdTdG9yZSwgdHlwZSBSZWFzb25pbmdTbmFwc2hvdCB9IGZyb20gJy4vcmVhc29uaW5nU3RvcmUnXG5cbmNvbnN0IEVNUFRZOiBSZWFzb25pbmdTbmFwc2hvdCA9IHsgaWQ6IG51bGwsIHN0ZXBzOiBbXSwgc3VtbWFyeTogbnVsbCwgcGhhc2U6ICdpZGxlJyB9XG5cbmV4cG9ydCBjb25zdCB1c2VSZWFzb25pbmdUcmFjZSA9IChtZXNzYWdlSWQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBSZWFzb25pbmdTbmFwc2hvdCA9PiB7XG4gIHJldHVybiB1c2VTeW5jRXh0ZXJuYWxTdG9yZShcbiAgICByZWFzb25pbmdTdG9yZS5zdWJzY3JpYmUsXG4gICAgKCkgPT4gcmVhc29uaW5nU3RvcmUuZ2V0U25hcHNob3QobWVzc2FnZUlkID8/ICcnKSxcbiAgICByZWFzb25pbmdTdG9yZS5nZXRTZXJ2ZXJTbmFwc2hvdFxuICApXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLG9CQUFvQixRQUFRLE9BQU87QUFDNUMsU0FBU0MsY0FBYyxRQUFnQyxrQkFBa0I7QUFFekUsSUFBTUMsS0FBd0IsR0FBRztFQUFFQyxFQUFFLEVBQUUsSUFBSTtFQUFFQyxLQUFLLEVBQUUsRUFBRTtFQUFFQyxPQUFPLEVBQUUsSUFBSTtFQUFFQyxLQUFLLEVBQUU7QUFBTyxDQUFDO0FBRXRGLE9BQU8sSUFBTUMsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FBSUMsU0FBb0MsRUFBd0I7RUFDNUYsT0FBT1Isb0JBQW9CLENBQ3pCQyxjQUFjLENBQUNRLFNBQVMsRUFDeEI7SUFBQSxPQUFNUixjQUFjLENBQUNTLFdBQVcsQ0FBQ0YsU0FBUyxhQUFUQSxTQUFTLGNBQVRBLFNBQVMsR0FBSSxFQUFFLENBQUM7RUFBQSxHQUNqRFAsY0FBYyxDQUFDVSxpQkFDakIsQ0FBQztBQUNILENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=