@projectcor/maia-components 2.49.0-beta.1 → 2.49.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/lib/components/atoms/ApprovalBox/ApprovalBox.helpers.js +37 -0
  2. package/lib/components/atoms/ApprovalBox/ApprovalBox.js +3 -37
  3. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.js +117 -0
  4. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.js +31 -101
  5. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.helpers.js +91 -0
  6. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +49 -140
  7. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.helpers.js +257 -0
  8. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +53 -205
  9. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.helpers.js +4 -0
  10. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +2 -4
  11. package/lib/components/atoms/ClientSelector/ClientSelector.helpers.js +26 -0
  12. package/lib/components/atoms/ClientSelector/ClientSelector.js +12 -21
  13. package/lib/components/atoms/ContextMentionChip/buildChipElement.helpers.js +227 -0
  14. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +15 -255
  15. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.helpers.js +59 -0
  16. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +12 -57
  17. package/lib/components/atoms/MAIAInput/MAIAInput.attachments.helpers.js +74 -0
  18. package/lib/components/atoms/MAIAInput/MAIAInput.helpers.js +184 -0
  19. package/lib/components/atoms/MAIAInput/MAIAInput.js +127 -176
  20. package/lib/components/atoms/MAIAInput/MAIAInputEditor.helpers.js +96 -0
  21. package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +40 -113
  22. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.helpers.js +17 -0
  23. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.js +3 -15
  24. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +3 -4
  25. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +3 -11
  26. package/lib/components/atoms/ReasoningBlock/reasoningLeading.js +6 -1
  27. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +2 -3
  28. package/lib/components/atoms/ReasoningBlock/reasoningTimeline.helpers.js +10 -0
  29. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.helpers.js +101 -0
  30. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.js +21 -77
  31. package/lib/components/atoms/TextArea/TextArea.helpers.js +23 -0
  32. package/lib/components/atoms/TextArea/TextArea.js +11 -20
  33. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.helpers.js +37 -0
  34. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +6 -29
  35. package/lib/components/molecules/AbmSection/AbmGeneralSection.helpers.js +68 -0
  36. package/lib/components/molecules/AbmSection/AbmGeneralSection.js +17 -56
  37. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.js +133 -0
  38. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +31 -112
  39. package/lib/components/molecules/AbmSection/AbmLoaderFiles.helpers.js +17 -0
  40. package/lib/components/molecules/AbmSection/AbmLoaderFiles.js +5 -15
  41. package/lib/components/molecules/ChatAIHome/ChatAIHome.helpers.js +370 -0
  42. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +197 -233
  43. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.helpers.js +398 -0
  44. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +209 -235
  45. package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.js +515 -4
  46. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +228 -344
  47. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.helpers.js +5 -0
  48. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +3 -2
  49. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.helpers.js +49 -0
  50. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +36 -33
  51. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.helpers.js +39 -0
  52. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +30 -33
  53. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.helpers.js +41 -0
  54. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +9 -35
  55. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.helpers.js +48 -0
  56. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +9 -44
  57. package/lib/components/molecules/Sidebar/Sidebar.helpers.js +43 -0
  58. package/lib/components/molecules/Sidebar/Sidebar.js +25 -22
  59. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.helpers.js +512 -0
  60. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +309 -643
  61. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.helpers.js +37 -0
  62. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +13 -25
  63. package/lib/constants/formatExtensions.js +7 -8
  64. package/lib/dev/DevReasoningTimeline.js +8 -50
  65. package/lib/hooks/useAgentModel/useCreateAgent.helpers.js +144 -0
  66. package/lib/hooks/useAgentModel/useCreateAgent.js +38 -102
  67. package/lib/hooks/useChatManager/useChatManager.helpers.js +902 -0
  68. package/lib/hooks/useChatManager/useChatManager.js +267 -741
  69. package/lib/hooks/useChatMessages/useChatMessages.helpers.js +365 -0
  70. package/lib/hooks/useChatMessages/useChatMessages.js +59 -285
  71. package/lib/hooks/useClientSearch.helpers.js +36 -0
  72. package/lib/hooks/useClientSearch.js +4 -32
  73. package/lib/hooks/useContextMentions.helpers.js +212 -0
  74. package/lib/hooks/useContextMentions.js +5 -223
  75. package/lib/hooks/useContextMentions.types.js +2 -0
  76. package/lib/hooks/useContextPinPopover.helpers.js +95 -0
  77. package/lib/hooks/useContextPinPopover.js +16 -75
  78. package/lib/hooks/useEntitySearch.helpers.js +407 -0
  79. package/lib/hooks/useEntitySearch.js +52 -436
  80. package/lib/hooks/useMentionPopover.helpers.js +41 -0
  81. package/lib/hooks/useMentionPopover.js +9 -35
  82. package/lib/hooks/useMinimizedPillBottomOffset.helpers.js +47 -0
  83. package/lib/hooks/useMinimizedPillBottomOffset.js +15 -45
  84. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.helpers.js +86 -0
  85. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +8 -82
  86. package/lib/hooks/useProjectSearch.helpers.js +61 -0
  87. package/lib/hooks/useProjectSearch.js +4 -58
  88. package/lib/hooks/useProjectSummaryConfig.helpers.js +62 -0
  89. package/lib/hooks/useProjectSummaryConfig.js +14 -52
  90. package/lib/hooks/useReasoningTrace/reasoningStore.js +8 -39
  91. package/lib/hooks/useRecentClientsSearch.helpers.js +33 -0
  92. package/lib/hooks/useRecentClientsSearch.js +4 -32
  93. package/lib/lang/br/index.js +1 -7
  94. package/lib/lang/en/index.js +1 -7
  95. package/lib/lang/es/index.js +1 -7
  96. package/lib/lang/fr/index.js +1 -7
  97. package/lib/services/maia/Agents/getAgents.helpers.js +241 -0
  98. package/lib/services/maia/Agents/getAgents.js +90 -282
  99. package/lib/services/maia/Orchestrator/orchestrator.helpers.js +130 -0
  100. package/lib/services/maia/Orchestrator/orchestrator.js +38 -121
  101. package/lib/services/utils/mapChatMessages.helpers.js +223 -0
  102. package/lib/services/utils/mapChatMessages.js +25 -254
  103. package/lib/store/sessions/sessionNotifications.helpers.js +45 -0
  104. package/lib/store/sessions/sessionNotifications.js +35 -41
  105. package/lib/store/sessions/sessionStreamManager.helpers.js +134 -0
  106. package/lib/store/sessions/sessionStreamManager.js +172 -236
  107. package/lib/test/mockSseStream.js +121 -0
  108. package/lib/test/streamdownCodeMock.js +6 -0
  109. package/lib/test/streamdownMock.js +12 -0
  110. package/lib/types/Chat.js +1 -1
  111. package/lib/types/agentModal.js +1 -1
  112. package/lib/types/reasoning.js +1 -1
  113. package/lib/utils/imagePreprocessor.helpers.js +28 -0
  114. package/lib/utils/imagePreprocessor.js +12 -37
  115. package/lib/utils/renderContextMentions.helpers.js +110 -0
  116. package/lib/utils/renderContextMentions.js +4 -110
  117. package/lib/utils/streamActivityMessages.helpers.js +222 -0
  118. package/lib/utils/streamActivityMessages.js +4 -221
  119. package/package.json +2 -2
  120. package/lib/components/atoms/ContextCompactedNotice/ContextCompactedNotice.js +0 -53
  121. package/lib/components/atoms/ContextCompactedNotice/ContextCompactedNotice.styles.js +0 -8
  122. package/lib/components/atoms/ContextCompactedNotice/index.js +0 -2
  123. package/lib/types/contextCompaction.js +0 -48
  124. package/lib/types/jest-dom.d.js +0 -2
@@ -5,6 +5,7 @@ import React from 'react';
5
5
  import { resolveToolStepPastLabel } from '../../../utils/streamActivityMessages';
6
6
  import { MaiaStreamdown } from '../MaiaStreamdown/MaiaStreamdown';
7
7
  import { displayRowKey, groupParallelSteps, parallelStepDetail } from './groupParallelSteps';
8
+ import { isVisibleStep as isVisibleReasoningStep } from './reasoningLeading';
8
9
  import { SCParallelContent, SCParallelCount, SCParallelDetail, SCStepRow, SCThinkingText, SCToolStep } from './ReasoningBlock.styles';
9
10
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
10
11
  export var stepLabel = function stepLabel(step, t) {
@@ -18,9 +19,7 @@ export var stepLabel = function stepLabel(step, t) {
18
19
  };
19
20
 
20
21
  /** Los `thinking` son el razonamiento crudo del modelo: fuera de la vista por defecto. */
21
- export var isVisibleStep = function isVisibleStep(step) {
22
- return step.type !== 'thinking';
23
- };
22
+ export var isVisibleStep = isVisibleReasoningStep;
24
23
 
25
24
  /** Solo tool/handoff llevan círculo en la traza; narraciones y thinking no. */
26
25
  export var isActionStep = function isActionStep(step) {
@@ -181,4 +180,4 @@ export var StepList = function StepList(_ref4) {
181
180
  })
182
181
  });
183
182
  };
184
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInJlc29sdmVUb29sU3RlcFBhc3RMYWJlbCIsIk1haWFTdHJlYW1kb3duIiwiZGlzcGxheVJvd0tleSIsImdyb3VwUGFyYWxsZWxTdGVwcyIsInBhcmFsbGVsU3RlcERldGFpbCIsIlNDUGFyYWxsZWxDb250ZW50IiwiU0NQYXJhbGxlbENvdW50IiwiU0NQYXJhbGxlbERldGFpbCIsIlNDU3RlcFJvdyIsIlNDVGhpbmtpbmdUZXh0IiwiU0NUb29sU3RlcCIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsInN0ZXBMYWJlbCIsInN0ZXAiLCJ0IiwidHlwZSIsInRvIiwiYWdlbnQiLCJ0b29sIiwiaXNWaXNpYmxlU3RlcCIsImlzQWN0aW9uU3RlcCIsImlzVGV4dFN0ZXBSb3ciLCJyb3ciLCJraW5kIiwicmVzb2x2ZVJvd0Nvbm5lY3Rpb25zIiwicm93cyIsImluZGV4IiwiY29ubmVjdEFib3ZlIiwibGVuZ3RoIiwiY29ubmVjdEJlbG93IiwiaXNMYXN0UGFpciIsIm5leHRJc1Rlcm1pbmFsVGV4dCIsInN0ZXBSb3dSYWlsUHJvcHMiLCJoYXNNYXJrZXIiLCJzaG93Q2hyb21lIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiJHNob3dDaHJvbWUiLCIkaGFzTWFya2VyIiwiJGNvbm5lY3RBYm92ZSIsIiRjb25uZWN0QmVsb3ciLCIkcmFpbFRocm91Z2giLCIkcmFpbFRvcCIsIiRyYWlsQm90dG9tIiwiUmVhc29uaW5nU3RlcFJvdyIsIl9yZWYiLCJpc0FjdGl2ZSIsIl9yZWYkc2hvd0Nocm9tZSIsImlzVGV4dCIsInRleHQiLCJfb2JqZWN0U3ByZWFkIiwiJHN0YXR1cyIsInN0YXR1cyIsIiRpc0FjdGl2ZSIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiJG11dGVkIiwidmFyaWFudCIsIlBhcmFsbGVsU3RlcFJvdyIsIl9yZWYyIiwic2hvd0RldGFpbCIsIl9yZWYyJHNob3dDaHJvbWUiLCJkZXRhaWwiLCJzdGVwcyIsImNvdW50TGFiZWwiLCJjb3VudCIsImxhYmVsIiwiRGlzcGxheVN0ZXBSb3ciLCJfcmVmMyIsIl9yZWYzJHNob3dDaHJvbWUiLCJTdGVwTGlzdCIsIl9yZWY0IiwiX3JlZjQkc2hvd0RldGFpbCIsIm1hcCIsIl9yZXNvbHZlUm93Q29ubmVjdGlvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL1JlYXNvbmluZ0Jsb2NrL1JlYXNvbmluZ1N0ZXBzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgcmVzb2x2ZVRvb2xTdGVwUGFzdExhYmVsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvc3RyZWFtQWN0aXZpdHlNZXNzYWdlcydcbmltcG9ydCB7IE1haWFTdHJlYW1kb3duIH0gZnJvbSAnLi4vTWFpYVN0cmVhbWRvd24vTWFpYVN0cmVhbWRvd24nXG5pbXBvcnQgdHlwZSB7IFJlYXNvbmluZ1N0ZXAgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9yZWFzb25pbmcnXG5pbXBvcnQgdHlwZSB7IFJlYXNvbmluZ0Rpc3BsYXlSb3cgfSBmcm9tICcuL2dyb3VwUGFyYWxsZWxTdGVwcydcbmltcG9ydCB7IGRpc3BsYXlSb3dLZXksIGdyb3VwUGFyYWxsZWxTdGVwcywgcGFyYWxsZWxTdGVwRGV0YWlsIH0gZnJvbSAnLi9ncm91cFBhcmFsbGVsU3RlcHMnXG5pbXBvcnQge1xuICBTQ1BhcmFsbGVsQ29udGVudCxcbiAgU0NQYXJhbGxlbENvdW50LFxuICBTQ1BhcmFsbGVsRGV0YWlsLFxuICBTQ1N0ZXBSb3csXG4gIFNDVGhpbmtpbmdUZXh0LFxuICBTQ1Rvb2xTdGVwLFxufSBmcm9tICcuL1JlYXNvbmluZ0Jsb2NrLnN0eWxlcydcblxuZXhwb3J0IHR5cGUgVHJhbnNsYXRlRm4gPSBSZXR1cm5UeXBlPHR5cGVvZiB1c2VUPlsndCddXG5cbmV4cG9ydCBjb25zdCBzdGVwTGFiZWwgPSAoc3RlcDogUmVhc29uaW5nU3RlcCwgdDogVHJhbnNsYXRlRm4pOiBzdHJpbmcgPT4ge1xuICBpZiAoc3RlcC50eXBlID09PSAnaGFuZG9mZicpIHtcbiAgICByZXR1cm4gc3RlcC50byA/IHQoJ2NoYXQucmVhc29uaW5nLmNhbGxlZEFnZW50JywgeyBhZ2VudDogc3RlcC50byB9KSA6IHQoJ2NoYXQuYWN0aXZpdHkuZXhlY3V0ZWRBY3Rpb24nKVxuICB9XG4gIGlmICghc3RlcC50b29sKSByZXR1cm4gdCgnY2hhdC5hY3Rpdml0eS5leGVjdXRlZEFjdGlvbicpXG4gIHJldHVybiByZXNvbHZlVG9vbFN0ZXBQYXN0TGFiZWwoc3RlcC50b29sLCB0KVxufVxuXG4vKiogTG9zIGB0aGlua2luZ2Agc29uIGVsIHJhem9uYW1pZW50byBjcnVkbyBkZWwgbW9kZWxvOiBmdWVyYSBkZSBsYSB2aXN0YSBwb3IgZGVmZWN0by4gKi9cbmV4cG9ydCBjb25zdCBpc1Zpc2libGVTdGVwID0gKHN0ZXA6IFJlYXNvbmluZ1N0ZXApOiBib29sZWFuID0+IHN0ZXAudHlwZSAhPT0gJ3RoaW5raW5nJ1xuXG4vKiogU29sbyB0b29sL2hhbmRvZmYgbGxldmFuIGPDrXJjdWxvIGVuIGxhIHRyYXphOyBuYXJyYWNpb25lcyB5IHRoaW5raW5nIG5vLiAqL1xuZXhwb3J0IGNvbnN0IGlzQWN0aW9uU3RlcCA9IChzdGVwOiBSZWFzb25pbmdTdGVwKTogYm9vbGVhbiA9PiBzdGVwLnR5cGUgPT09ICd0b29sJyB8fCBzdGVwLnR5cGUgPT09ICdoYW5kb2ZmJ1xuXG4vKiogTmFycmFjacOzbi90aGlua2luZyBhbCBjaWVycmUgZGUgbGEgdHJhemE6IG5vIGxsZXZhbiByYWlsIGNvbGdhbnRlLiAqL1xuZXhwb3J0IGNvbnN0IGlzVGV4dFN0ZXBSb3cgPSAocm93OiBSZWFzb25pbmdEaXNwbGF5Um93KTogYm9vbGVhbiA9PlxuICByb3cua2luZCA9PT0gJ3NpbmdsZScgJiYgKHJvdy5zdGVwLnR5cGUgPT09ICduYXJyYXRpb24nIHx8IHJvdy5zdGVwLnR5cGUgPT09ICd0aGlua2luZycpXG5cbi8qKiBDb25lY3RvcmVzIGRlIHJhaWw6IHNpbiBsw61uZWEgaGFjaWEgYWJham8gc2kgbG8gc2lndWllbnRlIGVzIG5hcnJhY2nDs24gZmluYWwuICovXG5leHBvcnQgY29uc3QgcmVzb2x2ZVJvd0Nvbm5lY3Rpb25zID0gKFxuICByb3dzOiBSZWFzb25pbmdEaXNwbGF5Um93W10sXG4gIGluZGV4OiBudW1iZXJcbik6IHsgY29ubmVjdEFib3ZlOiBib29sZWFuOyBjb25uZWN0QmVsb3c6IGJvb2xlYW4gfSA9PiB7XG4gIGNvbnN0IGNvbm5lY3RBYm92ZSA9IGluZGV4ID4gMFxuICBpZiAoaW5kZXggPj0gcm93cy5sZW5ndGggLSAxKSB7XG4gICAgcmV0dXJuIHsgY29ubmVjdEFib3ZlLCBjb25uZWN0QmVsb3c6IGZhbHNlIH1cbiAgfVxuXG4gIGNvbnN0IGlzTGFzdFBhaXIgPSBpbmRleCA9PT0gcm93cy5sZW5ndGggLSAyXG4gIGNvbnN0IG5leHRJc1Rlcm1pbmFsVGV4dCA9IGlzTGFzdFBhaXIgJiYgaXNUZXh0U3RlcFJvdyhyb3dzW2luZGV4ICsgMV0pXG5cbiAgcmV0dXJuIHtcbiAgICBjb25uZWN0QWJvdmUsXG4gICAgY29ubmVjdEJlbG93OiAhbmV4dElzVGVybWluYWxUZXh0LFxuICB9XG59XG5cbmNvbnN0IHN0ZXBSb3dSYWlsUHJvcHMgPSAoXG4gIGhhc01hcmtlcjogYm9vbGVhbixcbiAgY29ubmVjdEFib3ZlPzogYm9vbGVhbixcbiAgY29ubmVjdEJlbG93PzogYm9vbGVhbixcbiAgc2hvd0Nocm9tZSA9IHRydWVcbik6IHtcbiAgJHNob3dDaHJvbWU6IGJvb2xlYW5cbiAgJGhhc01hcmtlcjogYm9vbGVhblxuICAkY29ubmVjdEFib3ZlOiBib29sZWFuXG4gICRjb25uZWN0QmVsb3c6IGJvb2xlYW5cbiAgJHJhaWxUaHJvdWdoOiBib29sZWFuXG4gICRyYWlsVG9wOiBib29sZWFuXG4gICRyYWlsQm90dG9tOiBib29sZWFuXG59ID0+ICh7XG4gICRzaG93Q2hyb21lOiBzaG93Q2hyb21lLFxuICAkaGFzTWFya2VyOiBoYXNNYXJrZXIsXG4gICRjb25uZWN0QWJvdmU6ICEhY29ubmVjdEFib3ZlLFxuICAkY29ubmVjdEJlbG93OiAhIWNvbm5lY3RCZWxvdyxcbiAgLy8gTmFycmFjacOzbiBpbmljaWFsIChzaW4gY8OtcmN1bG8pOiBsYSBsw61uZWEgYmFqYSBoYWNpYSBlbCBwcmltZXIgc3RlcC5cbiAgLy8gTmFycmFjacOzbiBmaW5hbDogY29ubmVjdEJlbG93IGVzIGZhbHNlIOKGkiBzaW4gbMOtbmVhIGNvbGdhbnRlLlxuICAkcmFpbFRocm91Z2g6IHNob3dDaHJvbWUgJiYgIWhhc01hcmtlciAmJiAhIWNvbm5lY3RCZWxvdyxcbiAgJHJhaWxUb3A6IHNob3dDaHJvbWUgJiYgaGFzTWFya2VyICYmICEhY29ubmVjdEFib3ZlLFxuICAkcmFpbEJvdHRvbTogc2hvd0Nocm9tZSAmJiBoYXNNYXJrZXIgJiYgISFjb25uZWN0QmVsb3csXG59KVxuXG5leHBvcnQgdHlwZSBSZWFzb25pbmdTdGVwUm93UHJvcHMgPSB7XG4gIHN0ZXA6IFJlYXNvbmluZ1N0ZXBcbiAgdDogVHJhbnNsYXRlRm5cbiAgY29ubmVjdEFib3ZlPzogYm9vbGVhblxuICBjb25uZWN0QmVsb3c/OiBib29sZWFuXG4gIGlzQWN0aXZlPzogYm9vbGVhblxuICAvKiogQ8OtcmN1bG9zIHkgcmFpbDogc29sbyBlbiBlbCBibG9xdWUgZXhwYW5kaWRvLCBubyBlbiB0aW1lbGluZSBlbiB2aXZvLiAqL1xuICBzaG93Q2hyb21lPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgUmVhc29uaW5nU3RlcFJvdyA9ICh7XG4gIHN0ZXAsXG4gIHQsXG4gIGNvbm5lY3RBYm92ZSxcbiAgY29ubmVjdEJlbG93LFxuICBpc0FjdGl2ZSxcbiAgc2hvd0Nocm9tZSA9IHRydWUsXG59OiBSZWFzb25pbmdTdGVwUm93UHJvcHMpID0+IHtcbiAgY29uc3QgaXNUZXh0ID0gc3RlcC50eXBlID09PSAnbmFycmF0aW9uJyB8fCBzdGVwLnR5cGUgPT09ICd0aGlua2luZydcbiAgY29uc3QgaGFzTWFya2VyID0gaXNBY3Rpb25TdGVwKHN0ZXApXG4gIGlmIChpc1RleHQgJiYgIXN0ZXAudGV4dCkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gKFxuICAgIDxTQ1N0ZXBSb3dcbiAgICAgIHsuLi5zdGVwUm93UmFpbFByb3BzKGhhc01hcmtlciwgY29ubmVjdEFib3ZlLCBjb25uZWN0QmVsb3csIHNob3dDaHJvbWUpfVxuICAgICAgJHN0YXR1cz17c3RlcC5zdGF0dXN9XG4gICAgICAkaXNBY3RpdmU9e3Nob3dDaHJvbWUgPyBpc0FjdGl2ZSA6IGZhbHNlfVxuICAgID5cbiAgICAgIHtzaG93Q2hyb21lICYmIGhhc01hcmtlciAmJiA8c3BhbiBjbGFzc05hbWU9XCJSZWFzb25pbmdCbG9jay1tYXJrZXJcIiBhcmlhLWhpZGRlbiAvPn1cbiAgICAgIHtpc1RleHQgPyAoXG4gICAgICAgIDxTQ1RoaW5raW5nVGV4dCAkbXV0ZWQ9e3N0ZXAudHlwZSA9PT0gJ3RoaW5raW5nJ30+XG4gICAgICAgICAgPE1haWFTdHJlYW1kb3duIHZhcmlhbnQ9XCJjaGF0XCI+e3N0ZXAudGV4dH08L01haWFTdHJlYW1kb3duPlxuICAgICAgICA8L1NDVGhpbmtpbmdUZXh0PlxuICAgICAgKSA6IChcbiAgICAgICAgPFNDVG9vbFN0ZXAgJHN0YXR1cz17c3RlcC5zdGF0dXN9PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIlJlYXNvbmluZ0Jsb2NrLXRvb2xMYWJlbFwiPntzdGVwTGFiZWwoc3RlcCwgdCl9PC9zcGFuPlxuICAgICAgICAgIHsvKiBQcmV2aWV3IGRlbCByZXN1bHRhZG8gZGVzaGFiaWxpdGFkbzogdmVyIG5vdGEgZW4gUmVhc29uaW5nQmxvY2sudHN4ICovfVxuICAgICAgICA8L1NDVG9vbFN0ZXA+XG4gICAgICApfVxuICAgIDwvU0NTdGVwUm93PlxuICApXG59XG5cbnR5cGUgUGFyYWxsZWxTdGVwUm93UHJvcHMgPSB7XG4gIHJvdzogRXh0cmFjdDxSZWFzb25pbmdEaXNwbGF5Um93LCB7IGtpbmQ6ICdwYXJhbGxlbCcgfT5cbiAgdDogVHJhbnNsYXRlRm5cbiAgY29ubmVjdEFib3ZlPzogYm9vbGVhblxuICBjb25uZWN0QmVsb3c/OiBib29sZWFuXG4gIHNob3dEZXRhaWw/OiBib29sZWFuXG4gIGlzQWN0aXZlPzogYm9vbGVhblxuICBzaG93Q2hyb21lPzogYm9vbGVhblxufVxuXG5jb25zdCBQYXJhbGxlbFN0ZXBSb3cgPSAoe1xuICByb3csXG4gIHQsXG4gIGNvbm5lY3RBYm92ZSxcbiAgY29ubmVjdEJlbG93LFxuICBzaG93RGV0YWlsLFxuICBpc0FjdGl2ZSxcbiAgc2hvd0Nocm9tZSA9IHRydWUsXG59OiBQYXJhbGxlbFN0ZXBSb3dQcm9wcykgPT4ge1xuICBjb25zdCBkZXRhaWwgPSBzaG93RGV0YWlsID8gcGFyYWxsZWxTdGVwRGV0YWlsKHJvdy5zdGVwcykgOiBudWxsXG4gIGNvbnN0IGNvdW50TGFiZWwgPSB0KCdjaGF0LnJlYXNvbmluZy5wYXJhbGxlbENvdW50JywgeyBjb3VudDogcm93LnN0ZXBzLmxlbmd0aCB9KVxuXG4gIHJldHVybiAoXG4gICAgPFNDU3RlcFJvd1xuICAgICAgey4uLnN0ZXBSb3dSYWlsUHJvcHModHJ1ZSwgY29ubmVjdEFib3ZlLCBjb25uZWN0QmVsb3csIHNob3dDaHJvbWUpfVxuICAgICAgJHN0YXR1cz17cm93LnN0YXR1c31cbiAgICAgICRpc0FjdGl2ZT17c2hvd0Nocm9tZSA/IGlzQWN0aXZlIDogZmFsc2V9XG4gICAgPlxuICAgICAge3Nob3dDaHJvbWUgJiYgPHNwYW4gY2xhc3NOYW1lPVwiUmVhc29uaW5nQmxvY2stbWFya2VyXCIgYXJpYS1oaWRkZW4gLz59XG4gICAgICA8U0NQYXJhbGxlbENvbnRlbnQ+XG4gICAgICAgIDxTQ1Rvb2xTdGVwICRzdGF0dXM9e3Jvdy5zdGF0dXN9PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIlJlYXNvbmluZ0Jsb2NrLXRvb2xMYWJlbFwiPntyb3cubGFiZWx9PC9zcGFuPlxuICAgICAgICAgIDxTQ1BhcmFsbGVsQ291bnQgYXJpYS1sYWJlbD17Y291bnRMYWJlbH0+e2NvdW50TGFiZWx9PC9TQ1BhcmFsbGVsQ291bnQ+XG4gICAgICAgIDwvU0NUb29sU3RlcD5cbiAgICAgICAge2RldGFpbCAmJiA8U0NQYXJhbGxlbERldGFpbD57ZGV0YWlsfTwvU0NQYXJhbGxlbERldGFpbD59XG4gICAgICA8L1NDUGFyYWxsZWxDb250ZW50PlxuICAgIDwvU0NTdGVwUm93PlxuICApXG59XG5cbmV4cG9ydCB0eXBlIERpc3BsYXlTdGVwUm93UHJvcHMgPSB7XG4gIHJvdzogUmVhc29uaW5nRGlzcGxheVJvd1xuICB0OiBUcmFuc2xhdGVGblxuICBjb25uZWN0QWJvdmU/OiBib29sZWFuXG4gIGNvbm5lY3RCZWxvdz86IGJvb2xlYW5cbiAgc2hvd0RldGFpbD86IGJvb2xlYW5cbiAgaXNBY3RpdmU/OiBib29sZWFuXG4gIHNob3dDaHJvbWU/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBEaXNwbGF5U3RlcFJvdyA9ICh7XG4gIHJvdyxcbiAgdCxcbiAgY29ubmVjdEFib3ZlLFxuICBjb25uZWN0QmVsb3csXG4gIHNob3dEZXRhaWwsXG4gIGlzQWN0aXZlLFxuICBzaG93Q2hyb21lID0gdHJ1ZSxcbn06IERpc3BsYXlTdGVwUm93UHJvcHMpID0+IHtcbiAgaWYgKHJvdy5raW5kID09PSAncGFyYWxsZWwnKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQYXJhbGxlbFN0ZXBSb3dcbiAgICAgICAgcm93PXtyb3d9XG4gICAgICAgIHQ9e3R9XG4gICAgICAgIGNvbm5lY3RBYm92ZT17Y29ubmVjdEFib3ZlfVxuICAgICAgICBjb25uZWN0QmVsb3c9e2Nvbm5lY3RCZWxvd31cbiAgICAgICAgc2hvd0RldGFpbD17c2hvd0RldGFpbH1cbiAgICAgICAgaXNBY3RpdmU9e2lzQWN0aXZlfVxuICAgICAgICBzaG93Q2hyb21lPXtzaG93Q2hyb21lfVxuICAgICAgLz5cbiAgICApXG4gIH1cbiAgcmV0dXJuIChcbiAgICA8UmVhc29uaW5nU3RlcFJvd1xuICAgICAgc3RlcD17cm93LnN0ZXB9XG4gICAgICB0PXt0fVxuICAgICAgY29ubmVjdEFib3ZlPXtjb25uZWN0QWJvdmV9XG4gICAgICBjb25uZWN0QmVsb3c9e2Nvbm5lY3RCZWxvd31cbiAgICAgIGlzQWN0aXZlPXtpc0FjdGl2ZX1cbiAgICAgIHNob3dDaHJvbWU9e3Nob3dDaHJvbWV9XG4gICAgLz5cbiAgKVxufVxuXG5leHBvcnQgdHlwZSBTdGVwTGlzdFByb3BzID0ge1xuICBzdGVwczogUmVhc29uaW5nU3RlcFtdXG4gIHQ6IFRyYW5zbGF0ZUZuXG4gIHNob3dEZXRhaWw/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBTdGVwTGlzdCA9ICh7IHN0ZXBzLCB0LCBzaG93RGV0YWlsID0gdHJ1ZSB9OiBTdGVwTGlzdFByb3BzKSA9PiB7XG4gIGNvbnN0IHJvd3MgPSBncm91cFBhcmFsbGVsU3RlcHMoc3RlcHMsIHN0ZXAgPT4gc3RlcExhYmVsKHN0ZXAsIHQpKVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtyb3dzLm1hcCgocm93LCBpbmRleCkgPT4ge1xuICAgICAgICBjb25zdCB7IGNvbm5lY3RBYm92ZSwgY29ubmVjdEJlbG93IH0gPSByZXNvbHZlUm93Q29ubmVjdGlvbnMocm93cywgaW5kZXgpXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPERpc3BsYXlTdGVwUm93XG4gICAgICAgICAgICBrZXk9e2Rpc3BsYXlSb3dLZXkocm93KX1cbiAgICAgICAgICAgIHJvdz17cm93fVxuICAgICAgICAgICAgdD17dH1cbiAgICAgICAgICAgIGNvbm5lY3RBYm92ZT17Y29ubmVjdEFib3ZlfVxuICAgICAgICAgICAgY29ubmVjdEJlbG93PXtjb25uZWN0QmVsb3d9XG4gICAgICAgICAgICBzaG93RGV0YWlsPXtzaG93RGV0YWlsfVxuICAgICAgICAgIC8+XG4gICAgICAgIClcbiAgICAgIH0pfVxuICAgIDwvPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLE9BQU9BLEtBQUssTUFBTSxPQUFPO0FBR3pCLFNBQVNDLHdCQUF3QixRQUFRLHVDQUF1QztBQUNoRixTQUFTQyxjQUFjLFFBQVEsa0NBQWtDO0FBR2pFLFNBQVNDLGFBQWEsRUFBRUMsa0JBQWtCLEVBQUVDLGtCQUFrQixRQUFRLHNCQUFzQjtBQUM1RixTQUNFQyxpQkFBaUIsRUFDakJDLGVBQWUsRUFDZkMsZ0JBQWdCLEVBQ2hCQyxTQUFTLEVBQ1RDLGNBQWMsRUFDZEMsVUFBVSxRQUNMLHlCQUF5QjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUEsRUFBQUMsUUFBQSxJQUFBQyxTQUFBO0FBSWhDLE9BQU8sSUFBTUMsU0FBUyxHQUFHLFNBQVpBLFNBQVNBLENBQUlDLElBQW1CLEVBQUVDLENBQWMsRUFBYTtFQUN4RSxJQUFJRCxJQUFJLENBQUNFLElBQUksS0FBSyxTQUFTLEVBQUU7SUFDM0IsT0FBT0YsSUFBSSxDQUFDRyxFQUFFLEdBQUdGLENBQUMsQ0FBQyw0QkFBNEIsRUFBRTtNQUFFRyxLQUFLLEVBQUVKLElBQUksQ0FBQ0c7SUFBRyxDQUFDLENBQUMsR0FBR0YsQ0FBQyxDQUFDLDhCQUE4QixDQUFDO0VBQzFHO0VBQ0EsSUFBSSxDQUFDRCxJQUFJLENBQUNLLElBQUksRUFBRSxPQUFPSixDQUFDLENBQUMsOEJBQThCLENBQUM7RUFDeEQsT0FBT25CLHdCQUF3QixDQUFDa0IsSUFBSSxDQUFDSyxJQUFJLEVBQUVKLENBQUMsQ0FBQztBQUMvQyxDQUFDOztBQUVEO0FBQ0EsT0FBTyxJQUFNSyxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQUlOLElBQW1CO0VBQUEsT0FBY0EsSUFBSSxDQUFDRSxJQUFJLEtBQUssVUFBVTtBQUFBOztBQUV2RjtBQUNBLE9BQU8sSUFB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
183
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInJlc29sdmVUb29sU3RlcFBhc3RMYWJlbCIsIk1haWFTdHJlYW1kb3duIiwiZGlzcGxheVJvd0tleSIsImdyb3VwUGFyYWxsZWxTdGVwcyIsInBhcmFsbGVsU3RlcERldGFpbCIsImlzVmlzaWJsZVN0ZXAiLCJpc1Zpc2libGVSZWFzb25pbmdTdGVwIiwiU0NQYXJhbGxlbENvbnRlbnQiLCJTQ1BhcmFsbGVsQ291bnQiLCJTQ1BhcmFsbGVsRGV0YWlsIiwiU0NTdGVwUm93IiwiU0NUaGlua2luZ1RleHQiLCJTQ1Rvb2xTdGVwIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50Iiwic3RlcExhYmVsIiwic3RlcCIsInQiLCJ0eXBlIiwidG8iLCJhZ2VudCIsInRvb2wiLCJpc0FjdGlvblN0ZXAiLCJpc1RleHRTdGVwUm93Iiwicm93Iiwia2luZCIsInJlc29sdmVSb3dDb25uZWN0aW9ucyIsInJvd3MiLCJpbmRleCIsImNvbm5lY3RBYm92ZSIsImxlbmd0aCIsImNvbm5lY3RCZWxvdyIsImlzTGFzdFBhaXIiLCJuZXh0SXNUZXJtaW5hbFRleHQiLCJzdGVwUm93UmFpbFByb3BzIiwiaGFzTWFya2VyIiwic2hvd0Nocm9tZSIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsIiRzaG93Q2hyb21lIiwiJGhhc01hcmtlciIsIiRjb25uZWN0QWJvdmUiLCIkY29ubmVjdEJlbG93IiwiJHJhaWxUaHJvdWdoIiwiJHJhaWxUb3AiLCIkcmFpbEJvdHRvbSIsIlJlYXNvbmluZ1N0ZXBSb3ciLCJfcmVmIiwiaXNBY3RpdmUiLCJfcmVmJHNob3dDaHJvbWUiLCJpc1RleHQiLCJ0ZXh0IiwiX29iamVjdFNwcmVhZCIsIiRzdGF0dXMiLCJzdGF0dXMiLCIkaXNBY3RpdmUiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsIiRtdXRlZCIsInZhcmlhbnQiLCJQYXJhbGxlbFN0ZXBSb3ciLCJfcmVmMiIsInNob3dEZXRhaWwiLCJfcmVmMiRzaG93Q2hyb21lIiwiZGV0YWlsIiwic3RlcHMiLCJjb3VudExhYmVsIiwiY291bnQiLCJsYWJlbCIsIkRpc3BsYXlTdGVwUm93IiwiX3JlZjMiLCJfcmVmMyRzaG93Q2hyb21lIiwiU3RlcExpc3QiLCJfcmVmNCIsIl9yZWY0JHNob3dEZXRhaWwiLCJtYXAiLCJfcmVzb2x2ZVJvd0Nvbm5lY3Rpb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9SZWFzb25pbmdCbG9jay9SZWFzb25pbmdTdGVwcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IHJlc29sdmVUb29sU3RlcFBhc3RMYWJlbCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3N0cmVhbUFjdGl2aXR5TWVzc2FnZXMnXG5pbXBvcnQgeyBNYWlhU3RyZWFtZG93biB9IGZyb20gJy4uL01haWFTdHJlYW1kb3duL01haWFTdHJlYW1kb3duJ1xuaW1wb3J0IHR5cGUgeyBSZWFzb25pbmdTdGVwIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvcmVhc29uaW5nJ1xuaW1wb3J0IHR5cGUgeyBSZWFzb25pbmdEaXNwbGF5Um93IH0gZnJvbSAnLi9ncm91cFBhcmFsbGVsU3RlcHMnXG5pbXBvcnQgeyBkaXNwbGF5Um93S2V5LCBncm91cFBhcmFsbGVsU3RlcHMsIHBhcmFsbGVsU3RlcERldGFpbCB9IGZyb20gJy4vZ3JvdXBQYXJhbGxlbFN0ZXBzJ1xuaW1wb3J0IHsgaXNWaXNpYmxlU3RlcCBhcyBpc1Zpc2libGVSZWFzb25pbmdTdGVwIH0gZnJvbSAnLi9yZWFzb25pbmdMZWFkaW5nJ1xuaW1wb3J0IHtcbiAgU0NQYXJhbGxlbENvbnRlbnQsXG4gIFNDUGFyYWxsZWxDb3VudCxcbiAgU0NQYXJhbGxlbERldGFpbCxcbiAgU0NTdGVwUm93LFxuICBTQ1RoaW5raW5nVGV4dCxcbiAgU0NUb29sU3RlcCxcbn0gZnJvbSAnLi9SZWFzb25pbmdCbG9jay5zdHlsZXMnXG5cbmV4cG9ydCB0eXBlIFRyYW5zbGF0ZUZuID0gUmV0dXJuVHlwZTx0eXBlb2YgdXNlVD5bJ3QnXVxuXG5leHBvcnQgY29uc3Qgc3RlcExhYmVsID0gKHN0ZXA6IFJlYXNvbmluZ1N0ZXAsIHQ6IFRyYW5zbGF0ZUZuKTogc3RyaW5nID0+IHtcbiAgaWYgKHN0ZXAudHlwZSA9PT0gJ2hhbmRvZmYnKSB7XG4gICAgcmV0dXJuIHN0ZXAudG8gPyB0KCdjaGF0LnJlYXNvbmluZy5jYWxsZWRBZ2VudCcsIHsgYWdlbnQ6IHN0ZXAudG8gfSkgOiB0KCdjaGF0LmFjdGl2aXR5LmV4ZWN1dGVkQWN0aW9uJylcbiAgfVxuICBpZiAoIXN0ZXAudG9vbCkgcmV0dXJuIHQoJ2NoYXQuYWN0aXZpdHkuZXhlY3V0ZWRBY3Rpb24nKVxuICByZXR1cm4gcmVzb2x2ZVRvb2xTdGVwUGFzdExhYmVsKHN0ZXAudG9vbCwgdClcbn1cblxuLyoqIExvcyBgdGhpbmtpbmdgIHNvbiBlbCByYXpvbmFtaWVudG8gY3J1ZG8gZGVsIG1vZGVsbzogZnVlcmEgZGUgbGEgdmlzdGEgcG9yIGRlZmVjdG8uICovXG5leHBvcnQgY29uc3QgaXNWaXNpYmxlU3RlcCA9IGlzVmlzaWJsZVJlYXNvbmluZ1N0ZXBcblxuLyoqIFNvbG8gdG9vbC9oYW5kb2ZmIGxsZXZhbiBjw61yY3VsbyBlbiBsYSB0cmF6YTsgbmFycmFjaW9uZXMgeSB0aGlua2luZyBuby4gKi9cbmV4cG9ydCBjb25zdCBpc0FjdGlvblN0ZXAgPSAoc3RlcDogUmVhc29uaW5nU3RlcCk6IGJvb2xlYW4gPT4gc3RlcC50eXBlID09PSAndG9vbCcgfHwgc3RlcC50eXBlID09PSAnaGFuZG9mZidcblxuLyoqIE5hcnJhY2nDs24vdGhpbmtpbmcgYWwgY2llcnJlIGRlIGxhIHRyYXphOiBubyBsbGV2YW4gcmFpbCBjb2xnYW50ZS4gKi9cbmV4cG9ydCBjb25zdCBpc1RleHRTdGVwUm93ID0gKHJvdzogUmVhc29uaW5nRGlzcGxheVJvdyk6IGJvb2xlYW4gPT5cbiAgcm93LmtpbmQgPT09ICdzaW5nbGUnICYmIChyb3cuc3RlcC50eXBlID09PSAnbmFycmF0aW9uJyB8fCByb3cuc3RlcC50eXBlID09PSAndGhpbmtpbmcnKVxuXG4vKiogQ29uZWN0b3JlcyBkZSByYWlsOiBzaW4gbMOtbmVhIGhhY2lhIGFiYWpvIHNpIGxvIHNpZ3VpZW50ZSBlcyBuYXJyYWNpw7NuIGZpbmFsLiAqL1xuZXhwb3J0IGNvbnN0IHJlc29sdmVSb3dDb25uZWN0aW9ucyA9IChcbiAgcm93czogUmVhc29uaW5nRGlzcGxheVJvd1tdLFxuICBpbmRleDogbnVtYmVyXG4pOiB7IGNvbm5lY3RBYm92ZTogYm9vbGVhbjsgY29ubmVjdEJlbG93OiBib29sZWFuIH0gPT4ge1xuICBjb25zdCBjb25uZWN0QWJvdmUgPSBpbmRleCA+IDBcbiAgaWYgKGluZGV4ID49IHJvd3MubGVuZ3RoIC0gMSkge1xuICAgIHJldHVybiB7IGNvbm5lY3RBYm92ZSwgY29ubmVjdEJlbG93OiBmYWxzZSB9XG4gIH1cblxuICBjb25zdCBpc0xhc3RQYWlyID0gaW5kZXggPT09IHJvd3MubGVuZ3RoIC0gMlxuICBjb25zdCBuZXh0SXNUZXJtaW5hbFRleHQgPSBpc0xhc3RQYWlyICYmIGlzVGV4dFN0ZXBSb3cocm93c1tpbmRleCArIDFdKVxuXG4gIHJldHVybiB7XG4gICAgY29ubmVjdEFib3ZlLFxuICAgIGNvbm5lY3RCZWxvdzogIW5leHRJc1Rlcm1pbmFsVGV4dCxcbiAgfVxufVxuXG5jb25zdCBzdGVwUm93UmFpbFByb3BzID0gKFxuICBoYXNNYXJrZXI6IGJvb2xlYW4sXG4gIGNvbm5lY3RBYm92ZT86IGJvb2xlYW4sXG4gIGNvbm5lY3RCZWxvdz86IGJvb2xlYW4sXG4gIHNob3dDaHJvbWUgPSB0cnVlXG4pOiB7XG4gICRzaG93Q2hyb21lOiBib29sZWFuXG4gICRoYXNNYXJrZXI6IGJvb2xlYW5cbiAgJGNvbm5lY3RBYm92ZTogYm9vbGVhblxuICAkY29ubmVjdEJlbG93OiBib29sZWFuXG4gICRyYWlsVGhyb3VnaDogYm9vbGVhblxuICAkcmFpbFRvcDogYm9vbGVhblxuICAkcmFpbEJvdHRvbTogYm9vbGVhblxufSA9PiAoe1xuICAkc2hvd0Nocm9tZTogc2hvd0Nocm9tZSxcbiAgJGhhc01hcmtlcjogaGFzTWFya2VyLFxuICAkY29ubmVjdEFib3ZlOiAhIWNvbm5lY3RBYm92ZSxcbiAgJGNvbm5lY3RCZWxvdzogISFjb25uZWN0QmVsb3csXG4gIC8vIE5hcnJhY2nDs24gaW5pY2lhbCAoc2luIGPDrXJjdWxvKTogbGEgbMOtbmVhIGJhamEgaGFjaWEgZWwgcHJpbWVyIHN0ZXAuXG4gIC8vIE5hcnJhY2nDs24gZmluYWw6IGNvbm5lY3RCZWxvdyBlcyBmYWxzZSDihpIgc2luIGzDrW5lYSBjb2xnYW50ZS5cbiAgJHJhaWxUaHJvdWdoOiBzaG93Q2hyb21lICYmICFoYXNNYXJrZXIgJiYgISFjb25uZWN0QmVsb3csXG4gICRyYWlsVG9wOiBzaG93Q2hyb21lICYmIGhhc01hcmtlciAmJiAhIWNvbm5lY3RBYm92ZSxcbiAgJHJhaWxCb3R0b206IHNob3dDaHJvbWUgJiYgaGFzTWFya2VyICYmICEhY29ubmVjdEJlbG93LFxufSlcblxuZXhwb3J0IHR5cGUgUmVhc29uaW5nU3RlcFJvd1Byb3BzID0ge1xuICBzdGVwOiBSZWFzb25pbmdTdGVwXG4gIHQ6IFRyYW5zbGF0ZUZuXG4gIGNvbm5lY3RBYm92ZT86IGJvb2xlYW5cbiAgY29ubmVjdEJlbG93PzogYm9vbGVhblxuICBpc0FjdGl2ZT86IGJvb2xlYW5cbiAgLyoqIEPDrXJjdWxvcyB5IHJhaWw6IHNvbG8gZW4gZWwgYmxvcXVlIGV4cGFuZGlkbywgbm8gZW4gdGltZWxpbmUgZW4gdml2by4gKi9cbiAgc2hvd0Nocm9tZT86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IFJlYXNvbmluZ1N0ZXBSb3cgPSAoe1xuICBzdGVwLFxuICB0LFxuICBjb25uZWN0QWJvdmUsXG4gIGNvbm5lY3RCZWxvdyxcbiAgaXNBY3RpdmUsXG4gIHNob3dDaHJvbWUgPSB0cnVlLFxufTogUmVhc29uaW5nU3RlcFJvd1Byb3BzKSA9PiB7XG4gIGNvbnN0IGlzVGV4dCA9IHN0ZXAudHlwZSA9PT0gJ25hcnJhdGlvbicgfHwgc3RlcC50eXBlID09PSAndGhpbmtpbmcnXG4gIGNvbnN0IGhhc01hcmtlciA9IGlzQWN0aW9uU3RlcChzdGVwKVxuICBpZiAoaXNUZXh0ICYmICFzdGVwLnRleHQpIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8U0NTdGVwUm93XG4gICAgICB7Li4uc3RlcFJvd1JhaWxQcm9wcyhoYXNNYXJrZXIsIGNvbm5lY3RBYm92ZSwgY29ubmVjdEJlbG93LCBzaG93Q2hyb21lKX1cbiAgICAgICRzdGF0dXM9e3N0ZXAuc3RhdHVzfVxuICAgICAgJGlzQWN0aXZlPXtzaG93Q2hyb21lID8gaXNBY3RpdmUgOiBmYWxzZX1cbiAgICA+XG4gICAgICB7c2hvd0Nocm9tZSAmJiBoYXNNYXJrZXIgJiYgPHNwYW4gY2xhc3NOYW1lPVwiUmVhc29uaW5nQmxvY2stbWFya2VyXCIgYXJpYS1oaWRkZW4gLz59XG4gICAgICB7aXNUZXh0ID8gKFxuICAgICAgICA8U0NUaGlua2luZ1RleHQgJG11dGVkPXtzdGVwLnR5cGUgPT09ICd0aGlua2luZyd9PlxuICAgICAgICAgIDxNYWlhU3RyZWFtZG93biB2YXJpYW50PVwiY2hhdFwiPntzdGVwLnRleHR9PC9NYWlhU3RyZWFtZG93bj5cbiAgICAgICAgPC9TQ1RoaW5raW5nVGV4dD5cbiAgICAgICkgOiAoXG4gICAgICAgIDxTQ1Rvb2xTdGVwICRzdGF0dXM9e3N0ZXAuc3RhdHVzfT5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJSZWFzb25pbmdCbG9jay10b29sTGFiZWxcIj57c3RlcExhYmVsKHN0ZXAsIHQpfTwvc3Bhbj5cbiAgICAgICAgICB7LyogUHJldmlldyBkZWwgcmVzdWx0YWRvIGRlc2hhYmlsaXRhZG86IHZlciBub3RhIGVuIFJlYXNvbmluZ0Jsb2NrLnRzeCAqL31cbiAgICAgICAgPC9TQ1Rvb2xTdGVwPlxuICAgICAgKX1cbiAgICA8L1NDU3RlcFJvdz5cbiAgKVxufVxuXG50eXBlIFBhcmFsbGVsU3RlcFJvd1Byb3BzID0ge1xuICByb3c6IEV4dHJhY3Q8UmVhc29uaW5nRGlzcGxheVJvdywgeyBraW5kOiAncGFyYWxsZWwnIH0+XG4gIHQ6IFRyYW5zbGF0ZUZuXG4gIGNvbm5lY3RBYm92ZT86IGJvb2xlYW5cbiAgY29ubmVjdEJlbG93PzogYm9vbGVhblxuICBzaG93RGV0YWlsPzogYm9vbGVhblxuICBpc0FjdGl2ZT86IGJvb2xlYW5cbiAgc2hvd0Nocm9tZT86IGJvb2xlYW5cbn1cblxuY29uc3QgUGFyYWxsZWxTdGVwUm93ID0gKHtcbiAgcm93LFxuICB0LFxuICBjb25uZWN0QWJvdmUsXG4gIGNvbm5lY3RCZWxvdyxcbiAgc2hvd0RldGFpbCxcbiAgaXNBY3RpdmUsXG4gIHNob3dDaHJvbWUgPSB0cnVlLFxufTogUGFyYWxsZWxTdGVwUm93UHJvcHMpID0+IHtcbiAgY29uc3QgZGV0YWlsID0gc2hvd0RldGFpbCA/IHBhcmFsbGVsU3RlcERldGFpbChyb3cuc3RlcHMpIDogbnVsbFxuICBjb25zdCBjb3VudExhYmVsID0gdCgnY2hhdC5yZWFzb25pbmcucGFyYWxsZWxDb3VudCcsIHsgY291bnQ6IHJvdy5zdGVwcy5sZW5ndGggfSlcblxuICByZXR1cm4gKFxuICAgIDxTQ1N0ZXBSb3dcbiAgICAgIHsuLi5zdGVwUm93UmFpbFByb3BzKHRydWUsIGNvbm5lY3RBYm92ZSwgY29ubmVjdEJlbG93LCBzaG93Q2hyb21lKX1cbiAgICAgICRzdGF0dXM9e3Jvdy5zdGF0dXN9XG4gICAgICAkaXNBY3RpdmU9e3Nob3dDaHJvbWUgPyBpc0FjdGl2ZSA6IGZhbHNlfVxuICAgID5cbiAgICAgIHtzaG93Q2hyb21lICYmIDxzcGFuIGNsYXNzTmFtZT1cIlJlYXNvbmluZ0Jsb2NrLW1hcmtlclwiIGFyaWEtaGlkZGVuIC8+fVxuICAgICAgPFNDUGFyYWxsZWxDb250ZW50PlxuICAgICAgICA8U0NUb29sU3RlcCAkc3RhdHVzPXtyb3cuc3RhdHVzfT5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJSZWFzb25pbmdCbG9jay10b29sTGFiZWxcIj57cm93LmxhYmVsfTwvc3Bhbj5cbiAgICAgICAgICA8U0NQYXJhbGxlbENvdW50IGFyaWEtbGFiZWw9e2NvdW50TGFiZWx9Pntjb3VudExhYmVsfTwvU0NQYXJhbGxlbENvdW50PlxuICAgICAgICA8L1NDVG9vbFN0ZXA+XG4gICAgICAgIHtkZXRhaWwgJiYgPFNDUGFyYWxsZWxEZXRhaWw+e2RldGFpbH08L1NDUGFyYWxsZWxEZXRhaWw+fVxuICAgICAgPC9TQ1BhcmFsbGVsQ29udGVudD5cbiAgICA8L1NDU3RlcFJvdz5cbiAgKVxufVxuXG5leHBvcnQgdHlwZSBEaXNwbGF5U3RlcFJvd1Byb3BzID0ge1xuICByb3c6IFJlYXNvbmluZ0Rpc3BsYXlSb3dcbiAgdDogVHJhbnNsYXRlRm5cbiAgY29ubmVjdEFib3ZlPzogYm9vbGVhblxuICBjb25uZWN0QmVsb3c/OiBib29sZWFuXG4gIHNob3dEZXRhaWw/OiBib29sZWFuXG4gIGlzQWN0aXZlPzogYm9vbGVhblxuICBzaG93Q2hyb21lPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgRGlzcGxheVN0ZXBSb3cgPSAoe1xuICByb3csXG4gIHQsXG4gIGNvbm5lY3RBYm92ZSxcbiAgY29ubmVjdEJlbG93LFxuICBzaG93RGV0YWlsLFxuICBpc0FjdGl2ZSxcbiAgc2hvd0Nocm9tZSA9IHRydWUsXG59OiBEaXNwbGF5U3RlcFJvd1Byb3BzKSA9PiB7XG4gIGlmIChyb3cua2luZCA9PT0gJ3BhcmFsbGVsJykge1xuICAgIHJldHVybiAoXG4gICAgICA8UGFyYWxsZWxTdGVwUm93XG4gICAgICAgIHJvdz17cm93fVxuICAgICAgICB0PXt0fVxuICAgICAgICBjb25uZWN0QWJvdmU9e2Nvbm5lY3RBYm92ZX1cbiAgICAgICAgY29ubmVjdEJlbG93PXtjb25uZWN0QmVsb3d9XG4gICAgICAgIHNob3dEZXRhaWw9e3Nob3dEZXRhaWx9XG4gICAgICAgIGlzQWN0aXZlPXtpc0FjdGl2ZX1cbiAgICAgICAgc2hvd0Nocm9tZT17c2hvd0Nocm9tZX1cbiAgICAgIC8+XG4gICAgKVxuICB9XG4gIHJldHVybiAoXG4gICAgPFJlYXNvbmluZ1N0ZXBSb3dcbiAgICAgIHN0ZXA9e3Jvdy5zdGVwfVxuICAgICAgdD17dH1cbiAgICAgIGNvbm5lY3RBYm92ZT17Y29ubmVjdEFib3ZlfVxuICAgICAgY29ubmVjdEJlbG93PXtjb25uZWN0QmVsb3d9XG4gICAgICBpc0FjdGl2ZT17aXNBY3RpdmV9XG4gICAgICBzaG93Q2hyb21lPXtzaG93Q2hyb21lfVxuICAgIC8+XG4gIClcbn1cblxuZXhwb3J0IHR5cGUgU3RlcExpc3RQcm9wcyA9IHtcbiAgc3RlcHM6IFJlYXNvbmluZ1N0ZXBbXVxuICB0OiBUcmFuc2xhdGVGblxuICBzaG93RGV0YWlsPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgU3RlcExpc3QgPSAoeyBzdGVwcywgdCwgc2hvd0RldGFpbCA9IHRydWUgfTogU3RlcExpc3RQcm9wcykgPT4ge1xuICBjb25zdCByb3dzID0gZ3JvdXBQYXJhbGxlbFN0ZXBzKHN0ZXBzLCBzdGVwID0+IHN0ZXBMYWJlbChzdGVwLCB0KSlcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7cm93cy5tYXAoKHJvdywgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgeyBjb25uZWN0QWJvdmUsIGNvbm5lY3RCZWxvdyB9ID0gcmVzb2x2ZVJvd0Nvbm5lY3Rpb25zKHJvd3MsIGluZGV4KVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxEaXNwbGF5U3RlcFJvd1xuICAgICAgICAgICAga2V5PXtkaXNwbGF5Um93S2V5KHJvdyl9XG4gICAgICAgICAgICByb3c9e3Jvd31cbiAgICAgICAgICAgIHQ9e3R9XG4gICAgICAgICAgICBjb25uZWN0QWJvdmU9e2Nvbm5lY3RBYm92ZX1cbiAgICAgICAgICAgIGNvbm5lY3RCZWxvdz17Y29ubmVjdEJlbG93fVxuICAgICAgICAgICAgc2hvd0RldGFpbD17c2hvd0RldGFpbH1cbiAgICAgICAgICAvPlxuICAgICAgICApXG4gICAgICB9KX1cbiAgICA8Lz5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxPQUFPQSxLQUFLLE1BQU0sT0FBTztBQUd6QixTQUFTQyx3QkFBd0IsUUFBUSx1Q0FBdUM7QUFDaEYsU0FBU0MsY0FBYyxRQUFRLGtDQUFrQztBQUdqRSxTQUFTQyxhQUFhLEVBQUVDLGtCQUFrQixFQUFFQyxrQkFBa0IsUUFBUSxzQkFBc0I7QUFDNUYsU0FBU0MsYUFBYSxJQUFJQyxzQkFBc0IsUUFBUSxvQkFBb0I7QUFDNUUsU0FDRUMsaUJBQWlCLEVBQ2pCQyxlQUFlLEVBQ2ZDLGdCQUFnQixFQUNoQkMsU0FBUyxFQUNUQyxjQUFjLEVBQ2RDLFVBQVUsUUFDTCx5QkFBeUI7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBLEVBQUFDLFFBQUEsSUFBQUMsU0FBQTtBQUloQyxPQUFPLElBQU1DLFNBQVMsR0FBRyxTQUFaQSxTQUFTQSxDQUFJQyxJQUFtQixFQUFFQyxDQUFjLEVBQWE7RUFDeEUsSUFBSUQsSUFBSSxDQUFDRSxJQUFJLEtBQUssU0FBUyxFQUFFO0lBQzNCLE9BQU9GLElBQUksQ0FBQ0csRUFBRSxHQUFHRixDQUFDLENBQUMsNEJBQTRCLEVBQUU7TUFBRUcsS0FBSyxFQUFFSixJQUFJLENBQUNHO0lBQUcsQ0FBQyxDQUFDLEdBQUdGLENBQUMsQ0FBQyw4QkFBOEIsQ0FBQztFQUMxRztFQUNBLElBQUksQ0FBQ0QsSUFBSSxDQUFDSyxJQUFJLEVBQUUsT0FBT0osQ0FBQyxDQUFDLDhCQUE4QixDQUFDO0VBQ3hELE9BQU9yQix3QkFBd0IsQ0FBQ29CLElBQUksQ0FBQ0ssSUFBSSxFQUFFSixDQUFDLENBQUM7QUFDL0MsQ0FBQzs7QUFFRDtBQUNB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
@@ -4,15 +4,12 @@ import { useT } from '../../../hooks/useT';
4
4
  import { useReasoningTrace } from '../../../hooks/useReasoningTrace';
5
5
  import { MaiaStreamdown } from '../MaiaStreamdown/MaiaStreamdown';
6
6
  import { displayRowKey, groupParallelSteps } from './groupParallelSteps';
7
+ import { hideTailNarrationRow, readReasoningThinkingFlag } from './reasoningTimeline.helpers';
7
8
  import { hasActionStep, LEADING_NARRATION_INDEX } from './reasoningLeading';
8
9
  import { isSeamlessNarrationCommit, PENDING_NARRATION_KEY, resolvePendingNarrationText } from './reasoningLiveNarration';
9
10
  import { DisplayStepRow, isVisibleStep, stepLabel } from './ReasoningSteps';
10
11
  import { SCReasoningTimeline, SCStepRow, SCThinkingText, SCTimelineRow } from './ReasoningBlock.styles';
11
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
- var readThinkingFlag = function readThinkingFlag() {
13
- if (typeof window === 'undefined') return false;
14
- return !!window.reasoningThinking;
15
- };
16
13
  /** Misma fila para stream live y narración commiteada (evita remount al hacer handoff). */
17
14
  var TimelineNarrationRow = function TimelineNarrationRow(_ref) {
18
15
  var text = _ref.text,
@@ -35,11 +32,6 @@ var TimelineNarrationRow = function TimelineNarrationRow(_ref) {
35
32
  })
36
33
  });
37
34
  };
38
- var hideTailNarrationRow = function hideTailNarrationRow(rows) {
39
- var last = rows.at(-1);
40
- if ((last === null || last === void 0 ? void 0 : last.kind) === 'single' && last.step.type === 'narration') return rows.slice(0, -1);
41
- return rows;
42
- };
43
35
 
44
36
  /**
45
37
  * Traza en vivo: texto plano con espaciado, sin círculos ni rail. El chrome de
@@ -56,7 +48,7 @@ export var ReasoningTimeline = function ReasoningTimeline(_ref2) {
56
48
  t = _useT.t;
57
49
  var _useReasoningTrace = useReasoningTrace(messageId),
58
50
  steps = _useReasoningTrace.steps;
59
- var withThinking = showThinking !== null && showThinking !== void 0 ? showThinking : readThinkingFlag();
51
+ var withThinking = showThinking !== null && showThinking !== void 0 ? showThinking : readReasoningThinkingFlag();
60
52
  var lastStreamedNarrationRef = useRef(null);
61
53
  var pendingNarration = useMemo(function () {
62
54
  return resolvePendingNarrationText(steps, streamActivity, streamingText, messageId, withThinking);
@@ -124,4 +116,4 @@ export var ReasoningTimeline = function ReasoningTimeline(_ref2) {
124
116
  }, PENDING_NARRATION_KEY)]
125
117
  });
126
118
  };
127
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTbW9vdGhTdHJlYW1UZXh0IiwidXNlVCIsInVzZVJlYXNvbmluZ1RyYWNlIiwiTWFpYVN0cmVhbWRvd24iLCJkaXNwbGF5Um93S2V5IiwiZ3JvdXBQYXJhbGxlbFN0ZXBzIiwiaGFzQWN0aW9uU3RlcCIsIkxFQURJTkdfTkFSUkFUSU9OX0lOREVYIiwiaXNTZWFtbGVzc05hcnJhdGlvbkNvbW1pdCIsIlBFTkRJTkdfTkFSUkFUSU9OX0tFWSIsInJlc29sdmVQZW5kaW5nTmFycmF0aW9uVGV4dCIsIkRpc3BsYXlTdGVwUm93IiwiaXNWaXNpYmxlU3RlcCIsInN0ZXBMYWJlbCIsIlNDUmVhc29uaW5nVGltZWxpbmUiLCJTQ1N0ZXBSb3ciLCJTQ1RoaW5raW5nVGV4dCIsIlNDVGltZWxpbmVSb3ciLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwicmVhZFRoaW5raW5nRmxhZyIsIndpbmRvdyIsInJlYXNvbmluZ1RoaW5raW5nIiwiVGltZWxpbmVOYXJyYXRpb25Sb3ciLCJfcmVmIiwidGV4dCIsImxpdmUiLCJjb25uZWN0QWJvdmUiLCJkaXNwbGF5VGV4dCIsImVuYWJsZWQiLCJtYXhDaGFyc1BlckZyYW1lIiwic25hcFRvV29yZEJvdW5kYXJ5IiwiJHNob3dDaHJvbWUiLCIkY29ubmVjdEFib3ZlIiwiJGNvbm5lY3RCZWxvdyIsImNoaWxkcmVuIiwidmFyaWFudCIsImhpZGVUYWlsTmFycmF0aW9uUm93Iiwicm93cyIsImxhc3QiLCJhdCIsImtpbmQiLCJzdGVwIiwidHlwZSIsInNsaWNlIiwiUmVhc29uaW5nVGltZWxpbmUiLCJfcmVmMiIsIl9kaXNwbGF5Um93cyQiLCJtZXNzYWdlSWQiLCJzaG93VGhpbmtpbmciLCJzdHJlYW1BY3Rpdml0eSIsIl9yZWYyJHN0cmVhbWluZ1RleHQiLCJzdHJlYW1pbmdUZXh0IiwiX3VzZVQiLCJ0IiwiX3VzZVJlYXNvbmluZ1RyYWNlIiwic3RlcHMiLCJ3aXRoVGhpbmtpbmciLCJsYXN0U3RyZWFtZWROYXJyYXRpb25SZWYiLCJwZW5kaW5nTmFycmF0aW9uIiwiY3VycmVudCIsImFsbFJvd3MiLCJ2aXNpYmxlIiwiZmlsdGVyIiwiZGlzcGxheVJvd3MiLCJzZWFtbGVzc1Jvd0tleSIsImxlbmd0aCIsInJvd0NvdW50IiwibGVhZGluZ0xpdmUiLCJwaGFzZSIsImkiLCJyZW5kZXJSb3ciLCJyb3ciLCJpbmRleCIsInNlYW1sZXNzIiwiX3JvdyRzdGVwJHRleHQiLCJpc0xlYWRpbmdMaXZlIiwiJHNlYW1sZXNzIiwiY29ubmVjdEJlbG93Iiwic2hvd0RldGFpbCIsInNob3dDaHJvbWUiLCJtYXAiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9SZWFzb25pbmdCbG9jay9SZWFzb25pbmdUaW1lbGluZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB7IHVzZVNtb290aFN0cmVhbVRleHQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VTbW9vdGhTdHJlYW1UZXh0J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyB1c2VSZWFzb25pbmdUcmFjZSB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVJlYXNvbmluZ1RyYWNlJ1xuaW1wb3J0IHR5cGUgeyBTdHJlYW1BY3Rpdml0eSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3N0cmVhbUFjdGl2aXR5J1xuaW1wb3J0IHsgTWFpYVN0cmVhbWRvd24gfSBmcm9tICcuLi9NYWlhU3RyZWFtZG93bi9NYWlhU3RyZWFtZG93bidcbmltcG9ydCB7IGRpc3BsYXlSb3dLZXksIGdyb3VwUGFyYWxsZWxTdGVwcywgdHlwZSBSZWFzb25pbmdEaXNwbGF5Um93IH0gZnJvbSAnLi9ncm91cFBhcmFsbGVsU3RlcHMnXG5pbXBvcnQgeyBoYXNBY3Rpb25TdGVwLCBMRUFESU5HX05BUlJBVElPTl9JTkRFWCB9IGZyb20gJy4vcmVhc29uaW5nTGVhZGluZydcbmltcG9ydCB7IGlzU2VhbWxlc3NOYXJyYXRpb25Db21taXQsIFBFTkRJTkdfTkFSUkFUSU9OX0tFWSwgcmVzb2x2ZVBlbmRpbmdOYXJyYXRpb25UZXh0IH0gZnJvbSAnLi9yZWFzb25pbmdMaXZlTmFycmF0aW9uJ1xuaW1wb3J0IHsgRGlzcGxheVN0ZXBSb3csIGlzVmlzaWJsZVN0ZXAsIHN0ZXBMYWJlbCB9IGZyb20gJy4vUmVhc29uaW5nU3RlcHMnXG5pbXBvcnQgeyBTQ1JlYXNvbmluZ1RpbWVsaW5lLCBTQ1N0ZXBSb3csIFNDVGhpbmtpbmdUZXh0LCBTQ1RpbWVsaW5lUm93IH0gZnJvbSAnLi9SZWFzb25pbmdCbG9jay5zdHlsZXMnXG5cbmV4cG9ydCB0eXBlIFJlYXNvbmluZ1RpbWVsaW5lUHJvcHMgPSB7XG4gIG1lc3NhZ2VJZDogc3RyaW5nXG4gIC8qKiBNdWVzdHJhIHRhbWJpw6luIGVsIHJhem9uYW1pZW50byBjcnVkbyAoYHRoaW5raW5nYCkuIERlZmF1bHQ6IGB3aW5kb3cucmVhc29uaW5nVGhpbmtpbmdgLiAqL1xuICBzaG93VGhpbmtpbmc/OiBib29sZWFuXG4gIHN0cmVhbUFjdGl2aXR5PzogU3RyZWFtQWN0aXZpdHkgfCBudWxsXG4gIC8qKiBUZXh0byBlbiBzdHJlYW1pbmcgZGVsIHBsYWNlaG9sZGVyOyBsYXMgbmFycmFjaW9uZXMgZGUgdHVybm8gc2UgcGludGFuIGFjw6EuICovXG4gIHN0cmVhbWluZ1RleHQ/OiBzdHJpbmdcbn1cblxuY29uc3QgcmVhZFRoaW5raW5nRmxhZyA9ICgpOiBib29sZWFuID0+IHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gZmFsc2VcbiAgcmV0dXJuICEhKHdpbmRvdyBhcyB1bmtub3duIGFzIHsgcmVhc29uaW5nVGhpbmtpbmc/OiBib29sZWFuIH0pLnJlYXNvbmluZ1RoaW5raW5nXG59XG5cbnR5cGUgVGltZWxpbmVOYXJyYXRpb25Sb3dQcm9wcyA9IHtcbiAgdGV4dDogc3RyaW5nXG4gIGxpdmU6IGJvb2xlYW5cbiAgY29ubmVjdEFib3ZlOiBib29sZWFuXG59XG5cbi8qKiBNaXNtYSBmaWxhIHBhcmEgc3RyZWFtIGxpdmUgeSBuYXJyYWNpw7NuIGNvbW1pdGVhZGEgKGV2aXRhIHJlbW91bnQgYWwgaGFjZXIgaGFuZG9mZikuICovXG5jb25zdCBUaW1lbGluZU5hcnJhdGlvblJvdyA9ICh7IHRleHQsIGxpdmUsIGNvbm5lY3RBYm92ZSB9OiBUaW1lbGluZU5hcnJhdGlvblJvd1Byb3BzKSA9PiB7XG4gIGNvbnN0IGRpc3BsYXlUZXh0ID0gdXNlU21vb3RoU3RyZWFtVGV4dCh0ZXh0LCB7XG4gICAgZW5hYmxlZDogbGl2ZSxcbiAgICBtYXhDaGFyc1BlckZyYW1lOiAyNCxcbiAgICBzbmFwVG9Xb3JkQm91bmRhcnk6IHRydWUsXG4gIH0pXG5cbiAgcmV0dXJuIChcbiAgICA8U0NTdGVwUm93ICRzaG93Q2hyb21lPXtmYWxzZX0gJGNvbm5lY3RBYm92ZT17Y29ubmVjdEFib3ZlfSAkY29ubmVjdEJlbG93PXtmYWxzZX0+XG4gICAgICA8U0NUaGlua2luZ1RleHQ+XG4gICAgICAgIDxNYWlhU3RyZWFtZG93biB2YXJpYW50PVwiY2hhdFwiPntkaXNwbGF5VGV4dH08L01haWFTdHJlYW1kb3duPlxuICAgICAgPC9TQ1RoaW5raW5nVGV4dD5cbiAgICA8L1NDU3RlcFJvdz5cbiAgKVxufVxuXG5jb25zdCBoaWRlVGFpbE5hcnJhdGlvblJvdyA9IChyb3dzOiBSZWFzb25pbmdEaXNwbGF5Um93W10pOiBSZWFzb25pbmdEaXNwbGF5Um93W10gPT4ge1xuICBjb25zdCBsYXN0ID0gcm93cy5hdCgtMSlcbiAgaWYgKGxhc3Q/LmtpbmQgPT09ICdzaW5nbGUnICYmIGxhc3Quc3RlcC50eXBlID09PSAnbmFycmF0aW9uJykgcmV0dXJuIHJvd3Muc2xpY2UoMCwgLTEpXG4gIHJldHVybiByb3dzXG59XG5cbi8qKlxuICogVHJhemEgZW4gdml2bzogdGV4dG8gcGxhbm8gY29uIGVzcGFjaWFkbywgc2luIGPDrXJjdWxvcyBuaSByYWlsLiBFbCBjaHJvbWUgZGVcbiAqIHRpbWVsaW5lIChtYXJjYWRvcmVzICsgbMOtbmVhcykgYXBhcmVjZSBhbCBleHBhbmRpciBlbCBSZWFzb25pbmdCbG9jay5cbiAqL1xuZXhwb3J0IGNvbnN0IFJlYXNvbmluZ1RpbWVsaW5lID0gKHtcbiAgbWVzc2FnZUlkLFxuICBzaG93VGhpbmtpbmcsXG4gIHN0cmVhbUFjdGl2aXR5LFxuICBzdHJlYW1pbmdUZXh0ID0gJycsXG59OiBSZWFzb25pbmdUaW1lbGluZVByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IHsgc3RlcHMgfSA9IHVzZVJlYXNvbmluZ1RyYWNlKG1lc3NhZ2VJZClcbiAgY29uc3Qgd2l0aFRoaW5raW5nID0gc2hvd1RoaW5raW5nID8/IHJlYWRUaGlua2luZ0ZsYWcoKVxuICBjb25zdCBsYXN0U3RyZWFtZWROYXJyYXRpb25SZWYgPSB1c2VSZWY8c3RyaW5nIHwgbnVsbD4obnVsbClcblxuICBjb25zdCBwZW5kaW5nTmFycmF0aW9uID0gdXNlTWVtbyhcbiAgICAoKSA9PiByZXNvbHZlUGVuZGluZ05hcnJhdGlvblRleHQoc3RlcHMsIHN0cmVhbUFjdGl2aXR5LCBzdHJlYW1pbmdUZXh0LCBtZXNzYWdlSWQsIHdpdGhUaGlua2luZyksXG4gICAgW3N0ZXBzLCBzdHJlYW1BY3Rpdml0eSwgc3RyZWFtaW5nVGV4dCwgd2l0aFRoaW5raW5nLCBtZXNzYWdlSWRdXG4gIClcblxuICBpZiAocGVuZGluZ05hcnJhdGlvbikge1xuICAgIGxhc3RTdHJlYW1lZE5hcnJhdGlvblJlZi5jdXJyZW50ID0gcGVuZGluZ05hcnJhdGlvblxuICB9XG5cbiAgY29uc3QgYWxsUm93cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHZpc2libGUgPSB3aXRoVGhpbmtpbmcgPyBzdGVwcyA6IHN0ZXBzLmZpbHRlcihpc1Zpc2libGVTdGVwKVxuICAgIHJldHVybiBncm91cFBhcmFsbGVsU3RlcHModmlzaWJsZSwgc3RlcCA9PiBzdGVwTGFiZWwoc3RlcCwgdCkpXG4gIH0sIFtzdGVwcywgd2l0aFRoaW5raW5nLCB0XSlcblxuICBjb25zdCBkaXNwbGF5Um93cyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHBlbmRpbmdOYXJyYXRpb24gPyBoaWRlVGFpbE5hcnJhdGlvblJvdyhhbGxSb3dzKSA6IGFsbFJvd3MpLFxuICAgIFthbGxSb3dzLCBwZW5kaW5nTmFycmF0aW9uXVxuICApXG5cbiAgY29uc3Qgc2VhbWxlc3NSb3dLZXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAocGVuZGluZ05hcnJhdGlvbiB8fCAhYWxsUm93cy5sZW5ndGgpIHJldHVybiBudWxsXG4gICAgY29uc3QgbGFzdCA9IGFsbFJvd3NbYWxsUm93cy5sZW5ndGggLSAxXVxuICAgIGlmIChsYXN0LmtpbmQgIT09ICdzaW5nbGUnKSByZXR1cm4gbnVsbFxuICAgIGlmICghaXNTZWFtbGVzc05hcnJhdGlvbkNvbW1pdChsYXN0LnN0ZXAsIGxhc3RTdHJlYW1lZE5hcnJhdGlvblJlZi5jdXJyZW50KSkgcmV0dXJuIG51bGxcbiAgICByZXR1cm4gZGlzcGxheVJvd0tleShsYXN0KVxuICB9LCBbYWxsUm93cywgcGVuZGluZ05hcnJhdGlvbl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc2VhbWxlc3NSb3dLZXkpIGxhc3RTdHJlYW1lZE5hcnJhdGlvblJlZi5jdXJyZW50ID0gbnVsbFxuICB9LCBbc2VhbWxlc3NSb3dLZXldKVxuXG4gIGlmICghZGlzcGxheVJvd3MubGVuZ3RoICYmICFwZW5kaW5nTmFycmF0aW9uKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IHJvd0NvdW50ID0gZGlzcGxheVJvd3MubGVuZ3RoICsgKHBlbmRpbmdOYXJyYXRpb24gPyAxIDogMClcblxuICBjb25zdCBsZWFkaW5nTGl2ZSA9XG4gICAgc3RyZWFtQWN0aXZpdHk/LnBoYXNlID09PSAnd3JpdGluZycgJiZcbiAgICAhaGFzQWN0aW9uU3RlcChzdGVwcykgJiZcbiAgICBkaXNwbGF5Um93c1swXT8ua2luZCA9PT0gJ3NpbmdsZScgJiZcbiAgICBkaXNwbGF5Um93c1swXS5zdGVwLmkgPT09IExFQURJTkdfTkFSUkFUSU9OX0lOREVYXG5cbiAgY29uc3QgcmVuZGVyUm93ID0gKHJvdzogUmVhc29uaW5nRGlzcGxheVJvdywgaW5kZXg6IG51bWJlciwgc2VhbWxlc3M6IGJvb2xlYW4pID0+IHtcbiAgICBpZiAocm93LmtpbmQgPT09ICdzaW5nbGUnICYmIHJvdy5zdGVwLnR5cGUgPT09ICduYXJyYXRpb24nKSB7XG4gICAgICBjb25zdCBpc0xlYWRpbmdMaXZlID0gbGVhZGluZ0xpdmUgJiYgaW5kZXggPT09IDAgJiYgcm93LnN0ZXAuaSA9PT0gTEVBRElOR19OQVJSQVRJT05fSU5ERVhcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTQ1RpbWVsaW5lUm93IGtleT17ZGlzcGxheVJvd0tleShyb3cpfSAkc2VhbWxlc3M9e3NlYW1sZXNzIHx8IGlzTGVhZGluZ0xpdmV9PlxuICAgICAgICAgIDxUaW1lbGluZU5hcnJhdGlvblJvd1xuICAgICAgICAgICAgdGV4dD17aXNMZWFkaW5nTGl2ZSA/IHN0cmVhbWluZ1RleHQgfHwgcm93LnN0ZXAudGV4dCB8fCAnJyA6IChyb3cuc3RlcC50ZXh0ID8/ICcnKX1cbiAgICAgICAgICAgIGxpdmU9e2lzTGVhZGluZ0xpdmV9XG4gICAgICAgICAgICBjb25uZWN0QWJvdmU9e2luZGV4ID4gMH1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1NDVGltZWxpbmVSb3c+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ1RpbWVsaW5lUm93IGtleT17ZGlzcGxheVJvd0tleShyb3cpfSAkc2VhbWxlc3M9e3NlYW1sZXNzfT5cbiAgICAgICAgPERpc3BsYXlTdGVwUm93XG4gICAgICAgICAgcm93PXtyb3d9XG4gICAgICAgICAgdD17dH1cbiAgICAgICAgICBjb25uZWN0QWJvdmU9e2luZGV4ID4gMH1cbiAgICAgICAgICBjb25uZWN0QmVsb3c9e2luZGV4IDwgcm93Q291bnQgLSAxfVxuICAgICAgICAgIHNob3dEZXRhaWw9e2ZhbHNlfVxuICAgICAgICAgIHNob3dDaHJvbWU9e2ZhbHNlfVxuICAgICAgICAvPlxuICAgICAgPC9TQ1RpbWVsaW5lUm93PlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDUmVhc29uaW5nVGltZWxpbmU+XG4gICAgICB7ZGlzcGxheVJvd3MubWFwKChyb3csIGluZGV4KSA9PiByZW5kZXJSb3cocm93LCBpbmRleCwgZGlzcGxheVJvd0tleShyb3cpID09PSBzZWFtbGVzc1Jvd0tleSkpfVxuICAgICAge3BlbmRpbmdOYXJyYXRpb24gJiYgKFxuICAgICAgICA8U0NUaW1lbGluZVJvdyBrZXk9e1BFTkRJTkdfTkFSUkFUSU9OX0tFWX0gJHNlYW1sZXNzPlxuICAgICAgICAgIDxUaW1lbGluZU5hcnJhdGlvblJvdyB0ZXh0PXtwZW5kaW5nTmFycmF0aW9ufSBsaXZlIGNvbm5lY3RBYm92ZT17ZGlzcGxheVJvd3MubGVuZ3RoID4gMH0gLz5cbiAgICAgICAgPC9TQ1RpbWVsaW5lUm93PlxuICAgICAgKX1cbiAgICA8L1NDUmVhc29uaW5nVGltZWxpbmU+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsS0FBSyxJQUFJQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFFekQsU0FBU0MsbUJBQW1CLFFBQVEsb0NBQW9DO0FBQ3hFLFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFDMUMsU0FBU0MsaUJBQWlCLFFBQVEsa0NBQWtDO0FBRXBFLFNBQVNDLGNBQWMsUUFBUSxrQ0FBa0M7QUFDakUsU0FBU0MsYUFBYSxFQUFFQyxrQkFBa0IsUUFBa0Msc0JBQXNCO0FBQ2xHLFNBQVNDLGFBQWEsRUFB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
119
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTbW9vdGhTdHJlYW1UZXh0IiwidXNlVCIsInVzZVJlYXNvbmluZ1RyYWNlIiwiTWFpYVN0cmVhbWRvd24iLCJkaXNwbGF5Um93S2V5IiwiZ3JvdXBQYXJhbGxlbFN0ZXBzIiwiaGlkZVRhaWxOYXJyYXRpb25Sb3ciLCJyZWFkUmVhc29uaW5nVGhpbmtpbmdGbGFnIiwiaGFzQWN0aW9uU3RlcCIsIkxFQURJTkdfTkFSUkFUSU9OX0lOREVYIiwiaXNTZWFtbGVzc05hcnJhdGlvbkNvbW1pdCIsIlBFTkRJTkdfTkFSUkFUSU9OX0tFWSIsInJlc29sdmVQZW5kaW5nTmFycmF0aW9uVGV4dCIsIkRpc3BsYXlTdGVwUm93IiwiaXNWaXNpYmxlU3RlcCIsInN0ZXBMYWJlbCIsIlNDUmVhc29uaW5nVGltZWxpbmUiLCJTQ1N0ZXBSb3ciLCJTQ1RoaW5raW5nVGV4dCIsIlNDVGltZWxpbmVSb3ciLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiVGltZWxpbmVOYXJyYXRpb25Sb3ciLCJfcmVmIiwidGV4dCIsImxpdmUiLCJjb25uZWN0QWJvdmUiLCJkaXNwbGF5VGV4dCIsImVuYWJsZWQiLCJtYXhDaGFyc1BlckZyYW1lIiwic25hcFRvV29yZEJvdW5kYXJ5IiwiJHNob3dDaHJvbWUiLCIkY29ubmVjdEFib3ZlIiwiJGNvbm5lY3RCZWxvdyIsImNoaWxkcmVuIiwidmFyaWFudCIsIlJlYXNvbmluZ1RpbWVsaW5lIiwiX3JlZjIiLCJfZGlzcGxheVJvd3MkIiwibWVzc2FnZUlkIiwic2hvd1RoaW5raW5nIiwic3RyZWFtQWN0aXZpdHkiLCJfcmVmMiRzdHJlYW1pbmdUZXh0Iiwic3RyZWFtaW5nVGV4dCIsIl91c2VUIiwidCIsIl91c2VSZWFzb25pbmdUcmFjZSIsInN0ZXBzIiwid2l0aFRoaW5raW5nIiwibGFzdFN0cmVhbWVkTmFycmF0aW9uUmVmIiwicGVuZGluZ05hcnJhdGlvbiIsImN1cnJlbnQiLCJhbGxSb3dzIiwidmlzaWJsZSIsImZpbHRlciIsInN0ZXAiLCJkaXNwbGF5Um93cyIsInNlYW1sZXNzUm93S2V5IiwibGVuZ3RoIiwibGFzdCIsImtpbmQiLCJyb3dDb3VudCIsImxlYWRpbmdMaXZlIiwicGhhc2UiLCJpIiwicmVuZGVyUm93Iiwicm93IiwiaW5kZXgiLCJzZWFtbGVzcyIsInR5cGUiLCJfcm93JHN0ZXAkdGV4dCIsImlzTGVhZGluZ0xpdmUiLCIkc2VhbWxlc3MiLCJjb25uZWN0QmVsb3ciLCJzaG93RGV0YWlsIiwic2hvd0Nocm9tZSIsIm1hcCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL1JlYXNvbmluZ0Jsb2NrL1JlYXNvbmluZ1RpbWVsaW5lLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgdXNlU21vb3RoU3RyZWFtVGV4dCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVNtb290aFN0cmVhbVRleHQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IHVzZVJlYXNvbmluZ1RyYWNlIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUmVhc29uaW5nVHJhY2UnXG5pbXBvcnQgdHlwZSB7IFN0cmVhbUFjdGl2aXR5IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvc3RyZWFtQWN0aXZpdHknXG5pbXBvcnQgeyBNYWlhU3RyZWFtZG93biB9IGZyb20gJy4uL01haWFTdHJlYW1kb3duL01haWFTdHJlYW1kb3duJ1xuaW1wb3J0IHsgZGlzcGxheVJvd0tleSwgZ3JvdXBQYXJhbGxlbFN0ZXBzLCB0eXBlIFJlYXNvbmluZ0Rpc3BsYXlSb3cgfSBmcm9tICcuL2dyb3VwUGFyYWxsZWxTdGVwcydcbmltcG9ydCB7IGhpZGVUYWlsTmFycmF0aW9uUm93LCByZWFkUmVhc29uaW5nVGhpbmtpbmdGbGFnIH0gZnJvbSAnLi9yZWFzb25pbmdUaW1lbGluZS5oZWxwZXJzJ1xuaW1wb3J0IHsgaGFzQWN0aW9uU3RlcCwgTEVBRElOR19OQVJSQVRJT05fSU5ERVggfSBmcm9tICcuL3JlYXNvbmluZ0xlYWRpbmcnXG5pbXBvcnQgeyBpc1NlYW1sZXNzTmFycmF0aW9uQ29tbWl0LCBQRU5ESU5HX05BUlJBVElPTl9LRVksIHJlc29sdmVQZW5kaW5nTmFycmF0aW9uVGV4dCB9IGZyb20gJy4vcmVhc29uaW5nTGl2ZU5hcnJhdGlvbidcbmltcG9ydCB7IERpc3BsYXlTdGVwUm93LCBpc1Zpc2libGVTdGVwLCBzdGVwTGFiZWwgfSBmcm9tICcuL1JlYXNvbmluZ1N0ZXBzJ1xuaW1wb3J0IHsgU0NSZWFzb25pbmdUaW1lbGluZSwgU0NTdGVwUm93LCBTQ1RoaW5raW5nVGV4dCwgU0NUaW1lbGluZVJvdyB9IGZyb20gJy4vUmVhc29uaW5nQmxvY2suc3R5bGVzJ1xuXG5leHBvcnQgdHlwZSBSZWFzb25pbmdUaW1lbGluZVByb3BzID0ge1xuICBtZXNzYWdlSWQ6IHN0cmluZ1xuICAvKiogTXVlc3RyYSB0YW1iacOpbiBlbCByYXpvbmFtaWVudG8gY3J1ZG8gKGB0aGlua2luZ2ApLiBEZWZhdWx0OiBgd2luZG93LnJlYXNvbmluZ1RoaW5raW5nYC4gKi9cbiAgc2hvd1RoaW5raW5nPzogYm9vbGVhblxuICBzdHJlYW1BY3Rpdml0eT86IFN0cmVhbUFjdGl2aXR5IHwgbnVsbFxuICAvKiogVGV4dG8gZW4gc3RyZWFtaW5nIGRlbCBwbGFjZWhvbGRlcjsgbGFzIG5hcnJhY2lvbmVzIGRlIHR1cm5vIHNlIHBpbnRhbiBhY8OhLiAqL1xuICBzdHJlYW1pbmdUZXh0Pzogc3RyaW5nXG59XG5cbnR5cGUgVGltZWxpbmVOYXJyYXRpb25Sb3dQcm9wcyA9IHtcbiAgdGV4dDogc3RyaW5nXG4gIGxpdmU6IGJvb2xlYW5cbiAgY29ubmVjdEFib3ZlOiBib29sZWFuXG59XG5cbi8qKiBNaXNtYSBmaWxhIHBhcmEgc3RyZWFtIGxpdmUgeSBuYXJyYWNpw7NuIGNvbW1pdGVhZGEgKGV2aXRhIHJlbW91bnQgYWwgaGFjZXIgaGFuZG9mZikuICovXG5jb25zdCBUaW1lbGluZU5hcnJhdGlvblJvdyA9ICh7IHRleHQsIGxpdmUsIGNvbm5lY3RBYm92ZSB9OiBUaW1lbGluZU5hcnJhdGlvblJvd1Byb3BzKSA9PiB7XG4gIGNvbnN0IGRpc3BsYXlUZXh0ID0gdXNlU21vb3RoU3RyZWFtVGV4dCh0ZXh0LCB7XG4gICAgZW5hYmxlZDogbGl2ZSxcbiAgICBtYXhDaGFyc1BlckZyYW1lOiAyNCxcbiAgICBzbmFwVG9Xb3JkQm91bmRhcnk6IHRydWUsXG4gIH0pXG5cbiAgcmV0dXJuIChcbiAgICA8U0NTdGVwUm93ICRzaG93Q2hyb21lPXtmYWxzZX0gJGNvbm5lY3RBYm92ZT17Y29ubmVjdEFib3ZlfSAkY29ubmVjdEJlbG93PXtmYWxzZX0+XG4gICAgICA8U0NUaGlua2luZ1RleHQ+XG4gICAgICAgIDxNYWlhU3RyZWFtZG93biB2YXJpYW50PVwiY2hhdFwiPntkaXNwbGF5VGV4dH08L01haWFTdHJlYW1kb3duPlxuICAgICAgPC9TQ1RoaW5raW5nVGV4dD5cbiAgICA8L1NDU3RlcFJvdz5cbiAgKVxufVxuXG4vKipcbiAqIFRyYXphIGVuIHZpdm86IHRleHRvIHBsYW5vIGNvbiBlc3BhY2lhZG8sIHNpbiBjw61yY3Vsb3MgbmkgcmFpbC4gRWwgY2hyb21lIGRlXG4gKiB0aW1lbGluZSAobWFyY2Fkb3JlcyArIGzDrW5lYXMpIGFwYXJlY2UgYWwgZXhwYW5kaXIgZWwgUmVhc29uaW5nQmxvY2suXG4gKi9cbmV4cG9ydCBjb25zdCBSZWFzb25pbmdUaW1lbGluZSA9ICh7XG4gIG1lc3NhZ2VJZCxcbiAgc2hvd1RoaW5raW5nLFxuICBzdHJlYW1BY3Rpdml0eSxcbiAgc3RyZWFtaW5nVGV4dCA9ICcnLFxufTogUmVhc29uaW5nVGltZWxpbmVQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCB7IHN0ZXBzIH0gPSB1c2VSZWFzb25pbmdUcmFjZShtZXNzYWdlSWQpXG4gIGNvbnN0IHdpdGhUaGlua2luZyA9IHNob3dUaGlua2luZyA/PyByZWFkUmVhc29uaW5nVGhpbmtpbmdGbGFnKClcbiAgY29uc3QgbGFzdFN0cmVhbWVkTmFycmF0aW9uUmVmID0gdXNlUmVmPHN0cmluZyB8IG51bGw+KG51bGwpXG5cbiAgY29uc3QgcGVuZGluZ05hcnJhdGlvbiA9IHVzZU1lbW8oXG4gICAgKCkgPT4gcmVzb2x2ZVBlbmRpbmdOYXJyYXRpb25UZXh0KHN0ZXBzLCBzdHJlYW1BY3Rpdml0eSwgc3RyZWFtaW5nVGV4dCwgbWVzc2FnZUlkLCB3aXRoVGhpbmtpbmcpLFxuICAgIFtzdGVwcywgc3RyZWFtQWN0aXZpdHksIHN0cmVhbWluZ1RleHQsIHdpdGhUaGlua2luZywgbWVzc2FnZUlkXVxuICApXG5cbiAgaWYgKHBlbmRpbmdOYXJyYXRpb24pIHtcbiAgICBsYXN0U3RyZWFtZWROYXJyYXRpb25SZWYuY3VycmVudCA9IHBlbmRpbmdOYXJyYXRpb25cbiAgfVxuXG4gIGNvbnN0IGFsbFJvd3MgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB2aXNpYmxlID0gd2l0aFRoaW5raW5nID8gc3RlcHMgOiBzdGVwcy5maWx0ZXIoaXNWaXNpYmxlU3RlcClcbiAgICByZXR1cm4gZ3JvdXBQYXJhbGxlbFN0ZXBzKHZpc2libGUsIHN0ZXAgPT4gc3RlcExhYmVsKHN0ZXAsIHQpKVxuICB9LCBbc3RlcHMsIHdpdGhUaGlua2luZywgdF0pXG5cbiAgY29uc3QgZGlzcGxheVJvd3MgPSB1c2VNZW1vKFxuICAgICgpID0+IChwZW5kaW5nTmFycmF0aW9uID8gaGlkZVRhaWxOYXJyYXRpb25Sb3coYWxsUm93cykgOiBhbGxSb3dzKSxcbiAgICBbYWxsUm93cywgcGVuZGluZ05hcnJhdGlvbl1cbiAgKVxuXG4gIGNvbnN0IHNlYW1sZXNzUm93S2V5ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKHBlbmRpbmdOYXJyYXRpb24gfHwgIWFsbFJvd3MubGVuZ3RoKSByZXR1cm4gbnVsbFxuICAgIGNvbnN0IGxhc3QgPSBhbGxSb3dzW2FsbFJvd3MubGVuZ3RoIC0gMV1cbiAgICBpZiAobGFzdC5raW5kICE9PSAnc2luZ2xlJykgcmV0dXJuIG51bGxcbiAgICBpZiAoIWlzU2VhbWxlc3NOYXJyYXRpb25Db21taXQobGFzdC5zdGVwLCBsYXN0U3RyZWFtZWROYXJyYXRpb25SZWYuY3VycmVudCkpIHJldHVybiBudWxsXG4gICAgcmV0dXJuIGRpc3BsYXlSb3dLZXkobGFzdClcbiAgfSwgW2FsbFJvd3MsIHBlbmRpbmdOYXJyYXRpb25dKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHNlYW1sZXNzUm93S2V5KSBsYXN0U3RyZWFtZWROYXJyYXRpb25SZWYuY3VycmVudCA9IG51bGxcbiAgfSwgW3NlYW1sZXNzUm93S2V5XSlcblxuICBpZiAoIWRpc3BsYXlSb3dzLmxlbmd0aCAmJiAhcGVuZGluZ05hcnJhdGlvbikgcmV0dXJuIG51bGxcblxuICBjb25zdCByb3dDb3VudCA9IGRpc3BsYXlSb3dzLmxlbmd0aCArIChwZW5kaW5nTmFycmF0aW9uID8gMSA6IDApXG5cbiAgY29uc3QgbGVhZGluZ0xpdmUgPVxuICAgIHN0cmVhbUFjdGl2aXR5Py5waGFzZSA9PT0gJ3dyaXRpbmcnICYmXG4gICAgIWhhc0FjdGlvblN0ZXAoc3RlcHMpICYmXG4gICAgZGlzcGxheVJvd3NbMF0/LmtpbmQgPT09ICdzaW5nbGUnICYmXG4gICAgZGlzcGxheVJvd3NbMF0uc3RlcC5pID09PSBMRUFESU5HX05BUlJBVElPTl9JTkRFWFxuXG4gIGNvbnN0IHJlbmRlclJvdyA9IChyb3c6IFJlYXNvbmluZ0Rpc3BsYXlSb3csIGluZGV4OiBudW1iZXIsIHNlYW1sZXNzOiBib29sZWFuKSA9PiB7XG4gICAgaWYgKHJvdy5raW5kID09PSAnc2luZ2xlJyAmJiByb3cuc3RlcC50eXBlID09PSAnbmFycmF0aW9uJykge1xuICAgICAgY29uc3QgaXNMZWFkaW5nTGl2ZSA9IGxlYWRpbmdMaXZlICYmIGluZGV4ID09PSAwICYmIHJvdy5zdGVwLmkgPT09IExFQURJTkdfTkFSUkFUSU9OX0lOREVYXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U0NUaW1lbGluZVJvdyBrZXk9e2Rpc3BsYXlSb3dLZXkocm93KX0gJHNlYW1sZXNzPXtzZWFtbGVzcyB8fCBpc0xlYWRpbmdMaXZlfT5cbiAgICAgICAgICA8VGltZWxpbmVOYXJyYXRpb25Sb3dcbiAgICAgICAgICAgIHRleHQ9e2lzTGVhZGluZ0xpdmUgPyBzdHJlYW1pbmdUZXh0IHx8IHJvdy5zdGVwLnRleHQgfHwgJycgOiAocm93LnN0ZXAudGV4dCA/PyAnJyl9XG4gICAgICAgICAgICBsaXZlPXtpc0xlYWRpbmdMaXZlfVxuICAgICAgICAgICAgY29ubmVjdEFib3ZlPXtpbmRleCA+IDB9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9TQ1RpbWVsaW5lUm93PlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8U0NUaW1lbGluZVJvdyBrZXk9e2Rpc3BsYXlSb3dLZXkocm93KX0gJHNlYW1sZXNzPXtzZWFtbGVzc30+XG4gICAgICAgIDxEaXNwbGF5U3RlcFJvd1xuICAgICAgICAgIHJvdz17cm93fVxuICAgICAgICAgIHQ9e3R9XG4gICAgICAgICAgY29ubmVjdEFib3ZlPXtpbmRleCA+IDB9XG4gICAgICAgICAgY29ubmVjdEJlbG93PXtpbmRleCA8IHJvd0NvdW50IC0gMX1cbiAgICAgICAgICBzaG93RGV0YWlsPXtmYWxzZX1cbiAgICAgICAgICBzaG93Q2hyb21lPXtmYWxzZX1cbiAgICAgICAgLz5cbiAgICAgIDwvU0NUaW1lbGluZVJvdz5cbiAgICApXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ1JlYXNvbmluZ1RpbWVsaW5lPlxuICAgICAge2Rpc3BsYXlSb3dzLm1hcCgocm93LCBpbmRleCkgPT4gcmVuZGVyUm93KHJvdywgaW5kZXgsIGRpc3BsYXlSb3dLZXkocm93KSA9PT0gc2VhbWxlc3NSb3dLZXkpKX1cbiAgICAgIHtwZW5kaW5nTmFycmF0aW9uICYmIChcbiAgICAgICAgPFNDVGltZWxpbmVSb3cga2V5PXtQRU5ESU5HX05BUlJBVElPTl9LRVl9ICRzZWFtbGVzcz5cbiAgICAgICAgICA8VGltZWxpbmVOYXJyYXRpb25Sb3cgdGV4dD17cGVuZGluZ05hcnJhdGlvbn0gbGl2ZSBjb25uZWN0QWJvdmU9e2Rpc3BsYXlSb3dzLmxlbmd0aCA+IDB9IC8+XG4gICAgICAgIDwvU0NUaW1lbGluZVJvdz5cbiAgICAgICl9XG4gICAgPC9TQ1JlYXNvbmluZ1RpbWVsaW5lPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLEtBQUssSUFBSUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBRXpELFNBQVNDLG1CQUFtQixRQUFRLG9DQUFvQztBQUN4RSxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQVNDLGlCQUFpQixRQUFRLGtDQUFrQztBQUVwRSxTQUFTQyxjQUFjLFFBQVEsa0NBQWtDO0FBQ2pFLFNBQVNDLGFBQWEsRUFBRUMsa0JBQWtCLFFBQWtDLHNCQUFzQjtBQUNsRyxTQUFTQyxvQkFBb0IsRUFBRUMseUJBQXlCLFFBQVEsNkJBQTZCO0FBQzdGLFNBQVNDLGFBQWEsRUFBRUMsdUJBQXVCLFFBQVEsb0JBQW9CO0FBQzNFLFNBQVNDLHlCQUF5QixFQUFFQyxxQkFBcUIsRUFBRUMsMkJBQTJCLFFBQVEsMEJBQTBCO0FBQ3hILFNBQVNDLGNBQWMsRUFBRUMsYUFBYSxFQUFFQyxTQUFTLFFBQVEsa0JBQWtCO0FBQzNFLFNBQVNDLG1CQUFtQixFQUFFQyxTQUFTLEVBQUVDLGNBQWMsRUFBRUMsYUFBYSxRQUFRLHlCQUF5QjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFpQnZHO0FBQ0EsSUFBTUMsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUFvQkEsQ0FBQUMsSUFBQSxFQUFn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
@@ -8,6 +8,11 @@ export var LEADING_NARRATION_INDEX = -1;
8
8
  export var isLeadingNarrationStep = function isLeadingNarrationStep(step) {
9
9
  return step.i === LEADING_NARRATION_INDEX && step.type === 'narration';
10
10
  };
11
+
12
+ /** Los `thinking` son el razonamiento crudo del modelo: fuera de la vista por defecto. */
13
+ export var isVisibleStep = function isVisibleStep(step) {
14
+ return step.type !== 'thinking';
15
+ };
11
16
  export var findLeadingNarration = function findLeadingNarration(steps) {
12
17
  return steps.find(isLeadingNarrationStep);
13
18
  };
@@ -65,4 +70,4 @@ export var stripOrphanLeadingNarration = function stripOrphanLeadingNarration(st
65
70
  return !isLeadingNarrationStep(step);
66
71
  });
67
72
  };
68
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMRUFESU5HX05BUlJBVElPTl9JTkRFWCIsImlzTGVhZGluZ05hcnJhdGlvblN0ZXAiLCJzdGVwIiwiaSIsInR5cGUiLCJmaW5kTGVhZGluZ05hcnJhdGlvbiIsInN0ZXBzIiwiZmluZCIsImhhc0FjdGlvblN0ZXAiLCJzb21lIiwidG9vbCIsIm5hcnJhdGlvblRleHRzTWF0Y2giLCJjb21taXR0ZWQiLCJzdHJlYW1lZCIsInN0YXJ0c1dpdGgiLCJuYXJyYXRpb25UZXh0c1JlbGF0ZWQiLCJsZWZ0IiwicmlnaHQiLCJsb29rc0xpa2VJbnRlcm1lZGlhdGVOYXJyYXRpb25TdHJlYW0iLCJ0ZXh0IiwidHJpbW1lZCIsInRyaW0iLCJsZW5ndGgiLCJ0ZXN0IiwicGxhY2VMZWFkaW5nTmFycmF0aW9uRmlyc3QiLCJsaXZlU3RlcHMiLCJhdXRob3JpdGF0aXZlU3RlcHMiLCJsZWFkaW5nIiwibWF0Y2hJbmRleCIsImZpbmRJbmRleCIsIm5leHQiLCJzbGljZSIsIl9uZXh0JHNwbGljZSIsInNwbGljZSIsIl9uZXh0JHNwbGljZTIiLCJfc2xpY2VkVG9BcnJheSIsIm5hcnJhdGlvbiIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheSIsIl9vYmplY3RTcHJlYWQiLCJzdHJpcE9ycGhhbkxlYWRpbmdOYXJyYXRpb24iLCJmaWx0ZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9SZWFzb25pbmdCbG9jay9yZWFzb25pbmdMZWFkaW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVhc29uaW5nU3RlcCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3JlYXNvbmluZydcblxuLyoqIFN0ZXAgc2ludMOpdGljbzogbmFycmFjacOzbiBxdWUgbGxlZ8OzIGNvbW8gdG9rZW5zIGFudGVzIGRlIGN1YWxxdWllciBhY2Npw7NuLiAqL1xuZXhwb3J0IGNvbnN0IExFQURJTkdfTkFSUkFUSU9OX0lOREVYID0gLTFcblxuZXhwb3J0IGNvbnN0IGlzTGVhZGluZ05hcnJhdGlvblN0ZXAgPSAoc3RlcDogUmVhc29uaW5nU3RlcCk6IGJvb2xlYW4gPT5cbiAgc3RlcC5pID09PSBMRUFESU5HX05BUlJBVElPTl9JTkRFWCAmJiBzdGVwLnR5cGUgPT09ICduYXJyYXRpb24nXG5cbmV4cG9ydCBjb25zdCBmaW5kTGVhZGluZ05hcnJhdGlvbiA9IChzdGVwczogUmVhc29uaW5nU3RlcFtdKTogUmVhc29uaW5nU3RlcCB8IHVuZGVmaW5lZCA9PlxuICBzdGVwcy5maW5kKGlzTGVhZGluZ05hcnJhdGlvblN0ZXApXG5cbmV4cG9ydCBjb25zdCBoYXNBY3Rpb25TdGVwID0gKHN0ZXBzOiBSZWFzb25pbmdTdGVwW10pOiBib29sZWFuID0+XG4gIHN0ZXBzLnNvbWUoc3RlcCA9PiBzdGVwLnR5cGUgPT09ICd0b29sJyB8fCBzdGVwLnR5cGUgPT09ICdoYW5kb2ZmJyB8fCAoISFzdGVwLnRvb2wgJiYgc3RlcC50eXBlICE9PSAnbmFycmF0aW9uJykpXG5cbmV4cG9ydCBjb25zdCBuYXJyYXRpb25UZXh0c01hdGNoID0gKGNvbW1pdHRlZDogc3RyaW5nIHwgdW5kZWZpbmVkLCBzdHJlYW1lZDogc3RyaW5nIHwgbnVsbCk6IGJvb2xlYW4gPT4ge1xuICBpZiAoIWNvbW1pdHRlZCB8fCAhc3RyZWFtZWQpIHJldHVybiBmYWxzZVxuICBpZiAoY29tbWl0dGVkID09PSBzdHJlYW1lZCkgcmV0dXJuIHRydWVcbiAgcmV0dXJuIGNvbW1pdHRlZC5zdGFydHNXaXRoKHN0cmVhbWVkKVxufVxuXG5leHBvcnQgY29uc3QgbmFycmF0aW9uVGV4dHNSZWxhdGVkID0gKGxlZnQ6IHN0cmluZyB8IHVuZGVmaW5lZCwgcmlnaHQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gPT4ge1xuICBpZiAoIWxlZnQgfHwgIXJpZ2h0KSByZXR1cm4gZmFsc2VcbiAgaWYgKGxlZnQgPT09IHJpZ2h0KSByZXR1cm4gdHJ1ZVxuICByZXR1cm4gbGVmdC5zdGFydHNXaXRoKHJpZ2h0KSB8fCByaWdodC5zdGFydHNXaXRoKGxlZnQpXG59XG5cbi8qKiBOYXJyYWNpw7NuIGludGVybWVkaWEgPSBww6FycmFmbyBjb3J0bzsgdGFibGFzIG8gaGVhZGVycyBpbmRpY2FuIHJlc3B1ZXN0YSBmaW5hbC4gKi9cbmV4cG9ydCBjb25zdCBsb29rc0xpa2VJbnRlcm1lZGlhdGVOYXJyYXRpb25TdHJlYW0gPSAodGV4dDogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IHRyaW1tZWQgPSB0ZXh0LnRyaW0oKVxuICBpZiAoIXRyaW1tZWQpIHJldHVybiB0cnVlXG4gIGlmICh0cmltbWVkLmxlbmd0aCA+IDMyMCkgcmV0dXJuIGZhbHNlXG4gIGlmICgvXFxuKD86I3sxLDN9XFxzfC0tLXxcXHwuK1xcfCkvLnRlc3QodGV4dCkpIHJldHVybiBmYWxzZVxuICByZXR1cm4gdHJ1ZVxufVxuXG4vKipcbiAqIFNpIGxhIG5hcnJhY2nDs24gc2UgZXNjcmliacOzIGFudGVzIHF1ZSBsb3Mgc3RlcHMsIGVuIGVsIGNvbXBsZXRlIGRlbCBiYWNrIHN1ZWxlXG4gKiBxdWVkYXIgYWwgZmluYWwgKGNvbW8gc2kgZnVlcmEgZGVsIMO6bHRpbW8gdG9vbCkuIExhIGRldm9sdmVtb3MgYWwgaW5pY2lvLlxuICovXG5leHBvcnQgY29uc3QgcGxhY2VMZWFkaW5nTmFycmF0aW9uRmlyc3QgPSAoXG4gIGxpdmVTdGVwczogUmVhc29uaW5nU3RlcFtdLFxuICBhdXRob3JpdGF0aXZlU3RlcHM6IFJlYXNvbmluZ1N0ZXBbXVxuKTogUmVhc29uaW5nU3RlcFtdID0+IHtcbiAgY29uc3QgbGVhZGluZyA9IGZpbmRMZWFkaW5nTmFycmF0aW9uKGxpdmVTdGVwcylcbiAgaWYgKCFsZWFkaW5nPy50ZXh0IHx8ICFhdXRob3JpdGF0aXZlU3RlcHMubGVuZ3RoKSByZXR1cm4gYXV0aG9yaXRhdGl2ZVN0ZXBzXG5cbiAgY29uc3QgbWF0Y2hJbmRleCA9IGF1dGhvcml0YXRpdmVTdGVwcy5maW5kSW5kZXgoXG4gICAgc3RlcCA9PiBzdGVwLnR5cGUgPT09ICduYXJyYXRpb24nICYmIG5hcnJhdGlvblRleHRzUmVsYXRlZChzdGVwLnRleHQsIGxlYWRpbmcudGV4dClcbiAgKVxuXG4gIGlmIChtYXRjaEluZGV4ID09PSAwKSByZXR1cm4gYXV0aG9yaXRhdGl2ZVN0ZXBzXG4gIGlmIChtYXRjaEluZGV4ID4gMCkge1xuICAgIGNvbnN0IG5leHQgPSBhdXRob3JpdGF0aXZlU3RlcHMuc2xpY2UoKVxuICAgIGNvbnN0IFtuYXJyYXRpb25dID0gbmV4dC5zcGxpY2UobWF0Y2hJbmRleCwgMSlcbiAgICByZXR1cm4gW25hcnJhdGlvbiwgLi4ubmV4dF1cbiAgfVxuXG4gIHJldHVybiBbeyAuLi5sZWFkaW5nIH0sIC4uLmF1dGhvcml0YXRpdmVTdGVwc11cbn1cblxuLyoqIFR1cm5vIHNvbG8gY29uIG5hcnJhY2nDs24gc2ludMOpdGljYSAoc2luIGFjY2lvbmVzIGRlbCBiYWNrKTogbm8gZXMgcmF6b25hbWllbnRvIHJlYWwuICovXG5leHBvcnQgY29uc3Qgc3RyaXBPcnBoYW5MZWFkaW5nTmFycmF0aW9uID0gKHN0ZXBzOiBSZWFzb25pbmdTdGVwW10pOiBSZWFzb25pbmdTdGVwW10gPT4ge1xuICBjb25zdCBsZWFkaW5nID0gZmluZExlYWRpbmdOYXJyYXRpb24oc3RlcHMpXG4gIGlmICghbGVhZGluZyB8fCBoYXNBY3Rpb25TdGVwKHN0ZXBzKSkgcmV0dXJuIHN0ZXBzXG4gIHJldHVybiBzdGVwcy5maWx0ZXIoc3RlcCA9PiAhaXNMZWFkaW5nTmFycmF0aW9uU3RlcChzdGVwKSlcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQTtBQUNBLE9BQU8sSUFBTUEsdUJBQXVCLEdBQUcsQ0FBQyxDQUFDO0FBRXpDLE9BQU8sSUFBTUMsc0JBQXNCLEdBQUcsU0FBekJBLHNCQUFzQkEsQ0FBSUMsSUFBbUI7RUFBQSxPQUN4REEsSUFBSSxDQUFDQyxDQUFDLEtBQUtILHVCQUF1QixJQUFJRSxJQUFJLENBQUNFLElBQUksS0FB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
73
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMRUFESU5HX05BUlJBVElPTl9JTkRFWCIsImlzTGVhZGluZ05hcnJhdGlvblN0ZXAiLCJzdGVwIiwiaSIsInR5cGUiLCJpc1Zpc2libGVTdGVwIiwiZmluZExlYWRpbmdOYXJyYXRpb24iLCJzdGVwcyIsImZpbmQiLCJoYXNBY3Rpb25TdGVwIiwic29tZSIsInRvb2wiLCJuYXJyYXRpb25UZXh0c01hdGNoIiwiY29tbWl0dGVkIiwic3RyZWFtZWQiLCJzdGFydHNXaXRoIiwibmFycmF0aW9uVGV4dHNSZWxhdGVkIiwibGVmdCIsInJpZ2h0IiwibG9va3NMaWtlSW50ZXJtZWRpYXRlTmFycmF0aW9uU3RyZWFtIiwidGV4dCIsInRyaW1tZWQiLCJ0cmltIiwibGVuZ3RoIiwidGVzdCIsInBsYWNlTGVhZGluZ05hcnJhdGlvbkZpcnN0IiwibGl2ZVN0ZXBzIiwiYXV0aG9yaXRhdGl2ZVN0ZXBzIiwibGVhZGluZyIsIm1hdGNoSW5kZXgiLCJmaW5kSW5kZXgiLCJuZXh0Iiwic2xpY2UiLCJfbmV4dCRzcGxpY2UiLCJzcGxpY2UiLCJfbmV4dCRzcGxpY2UyIiwiX3NsaWNlZFRvQXJyYXkiLCJuYXJyYXRpb24iLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJfb2JqZWN0U3ByZWFkIiwic3RyaXBPcnBoYW5MZWFkaW5nTmFycmF0aW9uIiwiZmlsdGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvUmVhc29uaW5nQmxvY2svcmVhc29uaW5nTGVhZGluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlYXNvbmluZ1N0ZXAgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9yZWFzb25pbmcnXG5cbi8qKiBTdGVwIHNpbnTDqXRpY286IG5hcnJhY2nDs24gcXVlIGxsZWfDsyBjb21vIHRva2VucyBhbnRlcyBkZSBjdWFscXVpZXIgYWNjacOzbi4gKi9cbmV4cG9ydCBjb25zdCBMRUFESU5HX05BUlJBVElPTl9JTkRFWCA9IC0xXG5cbmV4cG9ydCBjb25zdCBpc0xlYWRpbmdOYXJyYXRpb25TdGVwID0gKHN0ZXA6IFJlYXNvbmluZ1N0ZXApOiBib29sZWFuID0+XG4gIHN0ZXAuaSA9PT0gTEVBRElOR19OQVJSQVRJT05fSU5ERVggJiYgc3RlcC50eXBlID09PSAnbmFycmF0aW9uJ1xuXG4vKiogTG9zIGB0aGlua2luZ2Agc29uIGVsIHJhem9uYW1pZW50byBjcnVkbyBkZWwgbW9kZWxvOiBmdWVyYSBkZSBsYSB2aXN0YSBwb3IgZGVmZWN0by4gKi9cbmV4cG9ydCBjb25zdCBpc1Zpc2libGVTdGVwID0gKHN0ZXA6IFJlYXNvbmluZ1N0ZXApOiBib29sZWFuID0+IHN0ZXAudHlwZSAhPT0gJ3RoaW5raW5nJ1xuXG5leHBvcnQgY29uc3QgZmluZExlYWRpbmdOYXJyYXRpb24gPSAoc3RlcHM6IFJlYXNvbmluZ1N0ZXBbXSk6IFJlYXNvbmluZ1N0ZXAgfCB1bmRlZmluZWQgPT5cbiAgc3RlcHMuZmluZChpc0xlYWRpbmdOYXJyYXRpb25TdGVwKVxuXG5leHBvcnQgY29uc3QgaGFzQWN0aW9uU3RlcCA9IChzdGVwczogUmVhc29uaW5nU3RlcFtdKTogYm9vbGVhbiA9PlxuICBzdGVwcy5zb21lKHN0ZXAgPT4gc3RlcC50eXBlID09PSAndG9vbCcgfHwgc3RlcC50eXBlID09PSAnaGFuZG9mZicgfHwgKCEhc3RlcC50b29sICYmIHN0ZXAudHlwZSAhPT0gJ25hcnJhdGlvbicpKVxuXG5leHBvcnQgY29uc3QgbmFycmF0aW9uVGV4dHNNYXRjaCA9IChjb21taXR0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCwgc3RyZWFtZWQ6IHN0cmluZyB8IG51bGwpOiBib29sZWFuID0+IHtcbiAgaWYgKCFjb21taXR0ZWQgfHwgIXN0cmVhbWVkKSByZXR1cm4gZmFsc2VcbiAgaWYgKGNvbW1pdHRlZCA9PT0gc3RyZWFtZWQpIHJldHVybiB0cnVlXG4gIHJldHVybiBjb21taXR0ZWQuc3RhcnRzV2l0aChzdHJlYW1lZClcbn1cblxuZXhwb3J0IGNvbnN0IG5hcnJhdGlvblRleHRzUmVsYXRlZCA9IChsZWZ0OiBzdHJpbmcgfCB1bmRlZmluZWQsIHJpZ2h0OiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuID0+IHtcbiAgaWYgKCFsZWZ0IHx8ICFyaWdodCkgcmV0dXJuIGZhbHNlXG4gIGlmIChsZWZ0ID09PSByaWdodCkgcmV0dXJuIHRydWVcbiAgcmV0dXJuIGxlZnQuc3RhcnRzV2l0aChyaWdodCkgfHwgcmlnaHQuc3RhcnRzV2l0aChsZWZ0KVxufVxuXG4vKiogTmFycmFjacOzbiBpbnRlcm1lZGlhID0gcMOhcnJhZm8gY29ydG87IHRhYmxhcyBvIGhlYWRlcnMgaW5kaWNhbiByZXNwdWVzdGEgZmluYWwuICovXG5leHBvcnQgY29uc3QgbG9va3NMaWtlSW50ZXJtZWRpYXRlTmFycmF0aW9uU3RyZWFtID0gKHRleHQ6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICBjb25zdCB0cmltbWVkID0gdGV4dC50cmltKClcbiAgaWYgKCF0cmltbWVkKSByZXR1cm4gdHJ1ZVxuICBpZiAodHJpbW1lZC5sZW5ndGggPiAzMjApIHJldHVybiBmYWxzZVxuICBpZiAoL1xcbig/OiN7MSwzfVxcc3wtLS18XFx8LitcXHwpLy50ZXN0KHRleHQpKSByZXR1cm4gZmFsc2VcbiAgcmV0dXJuIHRydWVcbn1cblxuLyoqXG4gKiBTaSBsYSBuYXJyYWNpw7NuIHNlIGVzY3JpYmnDsyBhbnRlcyBxdWUgbG9zIHN0ZXBzLCBlbiBlbCBjb21wbGV0ZSBkZWwgYmFjayBzdWVsZVxuICogcXVlZGFyIGFsIGZpbmFsIChjb21vIHNpIGZ1ZXJhIGRlbCDDumx0aW1vIHRvb2wpLiBMYSBkZXZvbHZlbW9zIGFsIGluaWNpby5cbiAqL1xuZXhwb3J0IGNvbnN0IHBsYWNlTGVhZGluZ05hcnJhdGlvbkZpcnN0ID0gKFxuICBsaXZlU3RlcHM6IFJlYXNvbmluZ1N0ZXBbXSxcbiAgYXV0aG9yaXRhdGl2ZVN0ZXBzOiBSZWFzb25pbmdTdGVwW11cbik6IFJlYXNvbmluZ1N0ZXBbXSA9PiB7XG4gIGNvbnN0IGxlYWRpbmcgPSBmaW5kTGVhZGluZ05hcnJhdGlvbihsaXZlU3RlcHMpXG4gIGlmICghbGVhZGluZz8udGV4dCB8fCAhYXV0aG9yaXRhdGl2ZVN0ZXBzLmxlbmd0aCkgcmV0dXJuIGF1dGhvcml0YXRpdmVTdGVwc1xuXG4gIGNvbnN0IG1hdGNoSW5kZXggPSBhdXRob3JpdGF0aXZlU3RlcHMuZmluZEluZGV4KFxuICAgIHN0ZXAgPT4gc3RlcC50eXBlID09PSAnbmFycmF0aW9uJyAmJiBuYXJyYXRpb25UZXh0c1JlbGF0ZWQoc3RlcC50ZXh0LCBsZWFkaW5nLnRleHQpXG4gIClcblxuICBpZiAobWF0Y2hJbmRleCA9PT0gMCkgcmV0dXJuIGF1dGhvcml0YXRpdmVTdGVwc1xuICBpZiAobWF0Y2hJbmRleCA+IDApIHtcbiAgICBjb25zdCBuZXh0ID0gYXV0aG9yaXRhdGl2ZVN0ZXBzLnNsaWNlKClcbiAgICBjb25zdCBbbmFycmF0aW9uXSA9IG5leHQuc3BsaWNlKG1hdGNoSW5kZXgsIDEpXG4gICAgcmV0dXJuIFtuYXJyYXRpb24sIC4uLm5leHRdXG4gIH1cblxuICByZXR1cm4gW3sgLi4ubGVhZGluZyB9LCAuLi5hdXRob3JpdGF0aXZlU3RlcHNdXG59XG5cbi8qKiBUdXJubyBzb2xvIGNvbiBuYXJyYWNpw7NuIHNpbnTDqXRpY2EgKHNpbiBhY2Npb25lcyBkZWwgYmFjayk6IG5vIGVzIHJhem9uYW1pZW50byByZWFsLiAqL1xuZXhwb3J0IGNvbnN0IHN0cmlwT3JwaGFuTGVhZGluZ05hcnJhdGlvbiA9IChzdGVwczogUmVhc29uaW5nU3RlcFtdKTogUmVhc29uaW5nU3RlcFtdID0+IHtcbiAgY29uc3QgbGVhZGluZyA9IGZpbmRMZWFkaW5nTmFycmF0aW9uKHN0ZXBzKVxuICBpZiAoIWxlYWRpbmcgfHwgaGFzQWN0aW9uU3RlcChzdGVwcykpIHJldHVybiBzdGVwc1xuICByZXR1cm4gc3RlcHMuZmlsdGVyKHN0ZXAgPT4gIWlzTGVhZGluZ05hcnJhdGlvblN0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
@@ -1,6 +1,5 @@
1
1
  import { reasoningStore } from '../../../hooks/useReasoningTrace/reasoningStore';
2
- import { findLeadingNarration, hasActionStep, looksLikeIntermediateNarrationStream, narrationTextsMatch } from './reasoningLeading';
3
- import { isVisibleStep } from './ReasoningSteps';
2
+ import { findLeadingNarration, hasActionStep, isVisibleStep, looksLikeIntermediateNarrationStream, narrationTextsMatch } from './reasoningLeading';
4
3
  export var PENDING_NARRATION_KEY = 'pending-narration';
5
4
  export { narrationTextsMatch } from './reasoningLeading';
6
5
  export var visibleReasoningSteps = function visibleReasoningSteps(steps) {
@@ -58,4 +57,4 @@ export var resolvePendingNarrationText = function resolvePendingNarrationText(st
58
57
  if (!last || last.type === 'thinking') return streamingText;
59
58
  return null;
60
59
  };
61
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZWFzb25pbmdTdG9yZSIsImZpbmRMZWFkaW5nTmFycmF0aW9uIiwiaGFzQWN0aW9uU3RlcCIsImxvb2tzTGlrZUludGVybWVkaWF0ZU5hcnJhdGlvblN0cmVhbSIsIm5hcnJhdGlvblRleHRzTWF0Y2giLCJpc1Zpc2libGVTdGVwIiwiUEVORElOR19OQVJSQVRJT05fS0VZIiwidmlzaWJsZVJlYXNvbmluZ1N0ZXBzIiwic3RlcHMiLCJzaG93VGhpbmtpbmciLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJmaWx0ZXIiLCJpc1NlYW1sZXNzTmFycmF0aW9uQ29tbWl0Iiwic3RlcCIsInN0cmVhbWVkVGV4dCIsInR5cGUiLCJ0ZXh0Iiwic2hvdWxkU3RyZWFtTmFycmF0aW9uSW5UaW1lbGluZSIsInN0cmVhbUFjdGl2aXR5Iiwic3RyZWFtaW5nVGV4dCIsIm1lc3NhZ2VJZCIsInBoYXNlIiwidHJpbSIsInZpc2libGUiLCJsZWFkaW5nIiwibGFzdCIsImlzTmFycmF0aW9uSGFuZG9mZlBlbmRpbmciLCJyZXNvbHZlUGVuZGluZ05hcnJhdGlvblRleHQiLCJhdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL1JlYXNvbmluZ0Jsb2NrL3JlYXNvbmluZ0xpdmVOYXJyYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZWFzb25pbmdTdGVwIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvcmVhc29uaW5nJ1xuaW1wb3J0IHR5cGUgeyBTdHJlYW1BY3Rpdml0eSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3N0cmVhbUFjdGl2aXR5J1xuaW1wb3J0IHsgcmVhc29uaW5nU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VSZWFzb25pbmdUcmFjZS9yZWFzb25pbmdTdG9yZSdcbmltcG9ydCB7XG4gIGZpbmRMZWFkaW5nTmFycmF0aW9uLFxuICBoYXNBY3Rpb25TdGVwLFxuICBsb29rc0xpa2VJbnRlcm1lZGlhdGVOYXJyYXRpb25TdHJlYW0sXG4gIG5hcnJhdGlvblRleHRzTWF0Y2gsXG59IGZyb20gJy4vcmVhc29uaW5nTGVhZGluZydcbmltcG9ydCB7IGlzVmlzaWJsZVN0ZXAgfSBmcm9tICcuL1JlYXNvbmluZ1N0ZXBzJ1xuXG5leHBvcnQgY29uc3QgUEVORElOR19OQVJSQVRJT05fS0VZID0gJ3BlbmRpbmctbmFycmF0aW9uJ1xuXG5leHBvcnQgeyBuYXJyYXRpb25UZXh0c01hdGNoIH0gZnJvbSAnLi9yZWFzb25pbmdMZWFkaW5nJ1xuXG5leHBvcnQgY29uc3QgdmlzaWJsZVJlYXNvbmluZ1N0ZXBzID0gKHN0ZXBzOiBSZWFzb25pbmdTdGVwW10sIHNob3dUaGlua2luZyA9IGZhbHNlKTogUmVhc29uaW5nU3RlcFtdID0+XG4gIHNob3dUaGlua2luZyA/IHN0ZXBzIDogc3RlcHMuZmlsdGVyKGlzVmlzaWJsZVN0ZXApXG5cbmV4cG9ydCBjb25zdCBpc1NlYW1sZXNzTmFycmF0aW9uQ29tbWl0ID0gKHN0ZXA6IFJlYXNvbmluZ1N0ZXAsIHN0cmVhbWVkVGV4dDogc3RyaW5nIHwgbnVsbCk6IGJvb2xlYW4gPT5cbiAgc3RlcC50eXBlID09PSAnbmFycmF0aW9uJyAmJiBuYXJyYXRpb25UZXh0c01hdGNoKHN0ZXAudGV4dCwgc3RyZWFtZWRUZXh0KVxuXG4vKipcbiAqIE5hcnJhY2nDs24gZGUgdHVybm86IHRva2VucyBzaW4gc3RlcCB2YW4gYW5jbGFkb3MgYWwgaW5pY2lvLiBVbmEgbmFycmFjacOzblxuICogY29tbWl0ZWFkYSAocHJlIGFuc3dlcl9yZXNldCkgc2UgcGludGEgZW4gc3UgZmlsYSwgbm8gc2UgcmVjdWVsZ2EgYWwgw7psdGltbyB0b29sLlxuICovXG5leHBvcnQgY29uc3Qgc2hvdWxkU3RyZWFtTmFycmF0aW9uSW5UaW1lbGluZSA9IChcbiAgc3RlcHM6IFJlYXNvbmluZ1N0ZXBbXSxcbiAgc3RyZWFtQWN0aXZpdHk6IFN0cmVhbUFjdGl2aXR5IHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgc3RyZWFtaW5nVGV4dDogc3RyaW5nLFxuICBtZXNzYWdlSWQ/OiBzdHJpbmcgfCBudWxsLFxuICBzaG93VGhpbmtpbmcgPSBmYWxzZVxuKTogYm9vbGVhbiA9PiB7XG4gIGlmIChzdHJlYW1BY3Rpdml0eT8ucGhhc2UgIT09ICd3cml0aW5nJykgcmV0dXJuIGZhbHNlXG4gIGlmICghc3RyZWFtaW5nVGV4dC50cmltKCkpIHJldHVybiBmYWxzZVxuXG4gIGNvbnN0IHZpc2libGUgPSB2aXNpYmxlUmVhc29uaW5nU3RlcHMoc3RlcHMsIHNob3dUaGlua2luZylcbiAgY29uc3QgbGVhZGluZyA9IGZpbmRMZWFkaW5nTmFycmF0aW9uKHN0ZXBzKVxuXG4gIC8vIFRva2VucyBhbnRlcyBkZSBjdWFscXVpZXIgYWNjacOzbjogbGEgbmFycmFjacOzbiBlcyBlbCBwcmltZXIgcGFzby5cbiAgaWYgKGxlYWRpbmcgJiYgIWhhc0FjdGlvblN0ZXAodmlzaWJsZSkgJiYgbG9va3NMaWtlSW50ZXJtZWRpYXRlTmFycmF0aW9uU3RyZWFtKHN0cmVhbWluZ1RleHQpKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8vIExlYWRpbmcgeWEgYW5jbGFkYTogZWwgYm9keSB0b2RhdsOtYSBlcyBlc2EgbWlzbWEgbmFycmFjacOzbiAoc2luIHJlc3B1ZXN0YSBmaW5hbCkuXG4gIGlmIChsZWFkaW5nICYmIG5hcnJhdGlvblRleHRzTWF0Y2gobGVhZGluZy50ZXh0LCBzdHJlYW1pbmdUZXh0KSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBjb25zdCBsYXN0ID0gdmlzaWJsZVt2aXNpYmxlLmxlbmd0aCAtIDFdXG4gIGlmICghbGFzdCB8fCBsYXN0LnR5cGUgPT09ICd0aGlua2luZycpIHJldHVybiBmYWxzZVxuXG4gIGlmIChsYXN0LnR5cGUgPT09ICduYXJyYXRpb24nKSB7XG4gICAgaWYgKG1lc3NhZ2VJZCAmJiAhcmVhc29uaW5nU3RvcmUuaXNOYXJyYXRpb25IYW5kb2ZmUGVuZGluZyhtZXNzYWdlSWQpKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgcmV0dXJuIG5hcnJhdGlvblRleHRzTWF0Y2gobGFzdC50ZXh0LCBzdHJlYW1pbmdUZXh0KVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG5cbi8qKiBUZXh0byBkZSBsYSBmaWxhIGxpdmUgYWwgZmluYWwgZGUgbGEgdHJhemE7IG51bGwgc2kgeWEgZXN0w6EgYW5jbGFkYSBvIHZhIGFsIGN1ZXJwby4gKi9cbmV4cG9ydCBjb25zdCByZXNvbHZlUGVuZGluZ05hcnJhdGlvblRleHQgPSAoXG4gIHN0ZXBzOiBSZWFzb25pbmdTdGVwW10sXG4gIHN0cmVhbUFjdGl2aXR5OiBTdHJlYW1BY3Rpdml0eSB8IG51bGwgfCB1bmRlZmluZWQsXG4gIHN0cmVhbWluZ1RleHQ6IHN0cmluZyxcbiAgbWVzc2FnZUlkPzogc3RyaW5nIHwgbnVsbCxcbiAgc2hvd1RoaW5raW5nID0gZmFsc2Vcbik6IHN0cmluZyB8IG51bGwgPT4ge1xuICBpZiAoIXNob3VsZFN0cmVhbU5hcnJhdGlvbkluVGltZWxpbmUoc3RlcHMsIHN0cmVhbUFjdGl2aXR5LCBzdHJlYW1pbmdUZXh0LCBtZXNzYWdlSWQsIHNob3dUaGlua2luZykpIHJldHVybiBudWxsXG5cbiAgY29uc3QgbGVhZGluZyA9IGZpbmRMZWFkaW5nTmFycmF0aW9uKHN0ZXBzKVxuICAvLyBZYSBlc3TDoSBhbmNsYWRhIGFsIGluaWNpbzogbm8gcmVjdWVsZ3VlcyBlbCBtaXNtbyB0ZXh0byBkZXRyw6FzIGRlIGNhZGEgdG9vbC5cbiAgaWYgKGxlYWRpbmcgJiYgbmFycmF0aW9uVGV4dHNNYXRjaChsZWFkaW5nLnRleHQsIHN0cmVhbWluZ1RleHQpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IGxhc3QgPSB2aXNpYmxlUmVhc29uaW5nU3RlcHMoc3RlcHMsIHNob3dUaGlua2luZykuYXQoLTEpXG4gIGlmIChsYXN0Py50eXBlID09PSAnbmFycmF0aW9uJyAmJiBuYXJyYXRpb25UZXh0c01hdGNoKGxhc3QudGV4dCwgc3RyZWFtaW5nVGV4dCkpIHtcbiAgICByZXR1cm4gc3RyZWFtaW5nVGV4dFxuICB9XG5cbiAgaWYgKCFsYXN0IHx8IGxhc3QudHlwZSA9PT0gJ3RoaW5raW5nJykgcmV0dXJuIHN0cmVhbWluZ1RleHRcblxuICByZXR1cm4gbnVsbFxufVxuIl0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSxjQUFjLFFBQVEsaURBQWlEO0FBQ2hGLFNBQ0VDLG9CQUFvQixFQUNwQkMsYUFBYSxFQUNiQyxvQ0FBb0MsRUFDcENDLG1CQUFtQixRQUNkLG9CQUFvQjtBQUMzQixTQUFTQyxhQUFhLFFBQVEsa0JBQWtCO0FBRWhELE9BQU8sSUFBTUMscUJBQXFCLEdBQUcsbUJBQW1CO0FBRXhELFNBQVNGLG1CQUFtQixRQUFRLG9CQUFvQjtBQUV4RCxPQUFPLElBQU1HLHFCQUFxQixHQUFHLFNBQXhCQSxxQkFBcUJBLENBQUlDLEtBQXNCO0VBQUEsSUFBRUMsWUFBWSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxLQUFLO0VBQUEsT0FDaEZELFlBQVksR0FBR0QsS0FBSyxHQUFHQSxLQUFLLENBQUNLLE1BQU0sQ0FBQ1IsYUFBYSxDQUFDO0FBQUE7QUFFcEQsT0FBTyxJQUFNUyx5QkFBeUIsR0FBRyxTQUE1QkEseUJBQXlCQSxDQUFJQyxJQUFtQixFQUFFQyxZQUEyQjtFQUFBLE9BQ3hGRCxJQUFJLENBQUNFLElBQUksS0FBSyxXQUFXLElBQUliLG1CQUFtQixDQUFDVyxJQUFJLENBQUNHLElBQUksRUFBRUYsWUFBWSxDQUFDO0FBQUE7O0FBRTNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxJQUFNRywrQkFBK0IsR0FBRyxTQUFsQ0EsK0JBQStCQSxDQUMxQ1gsS0FBc0IsRUFDdEJZLGNBQWlELEVBQ2pEQyxhQUFxQixFQUNyQkMsU0FBeUIsRUFFYjtFQUFBLElBRFpiLFlBQVksR0FBQUMsU0FBQSxDQUFBQyxN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
60
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZWFzb25pbmdTdG9yZSIsImZpbmRMZWFkaW5nTmFycmF0aW9uIiwiaGFzQWN0aW9uU3RlcCIsImlzVmlzaWJsZVN0ZXAiLCJsb29rc0xpa2VJbnRlcm1lZGlhdGVOYXJyYXRpb25TdHJlYW0iLCJuYXJyYXRpb25UZXh0c01hdGNoIiwiUEVORElOR19OQVJSQVRJT05fS0VZIiwidmlzaWJsZVJlYXNvbmluZ1N0ZXBzIiwic3RlcHMiLCJzaG93VGhpbmtpbmciLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJmaWx0ZXIiLCJpc1NlYW1sZXNzTmFycmF0aW9uQ29tbWl0Iiwic3RlcCIsInN0cmVhbWVkVGV4dCIsInR5cGUiLCJ0ZXh0Iiwic2hvdWxkU3RyZWFtTmFycmF0aW9uSW5UaW1lbGluZSIsInN0cmVhbUFjdGl2aXR5Iiwic3RyZWFtaW5nVGV4dCIsIm1lc3NhZ2VJZCIsInBoYXNlIiwidHJpbSIsInZpc2libGUiLCJsZWFkaW5nIiwibGFzdCIsImlzTmFycmF0aW9uSGFuZG9mZlBlbmRpbmciLCJyZXNvbHZlUGVuZGluZ05hcnJhdGlvblRleHQiLCJhdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL1JlYXNvbmluZ0Jsb2NrL3JlYXNvbmluZ0xpdmVOYXJyYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZWFzb25pbmdTdGVwIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvcmVhc29uaW5nJ1xuaW1wb3J0IHR5cGUgeyBTdHJlYW1BY3Rpdml0eSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3N0cmVhbUFjdGl2aXR5J1xuaW1wb3J0IHsgcmVhc29uaW5nU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VSZWFzb25pbmdUcmFjZS9yZWFzb25pbmdTdG9yZSdcbmltcG9ydCB7XG4gIGZpbmRMZWFkaW5nTmFycmF0aW9uLFxuICBoYXNBY3Rpb25TdGVwLFxuICBpc1Zpc2libGVTdGVwLFxuICBsb29rc0xpa2VJbnRlcm1lZGlhdGVOYXJyYXRpb25TdHJlYW0sXG4gIG5hcnJhdGlvblRleHRzTWF0Y2gsXG59IGZyb20gJy4vcmVhc29uaW5nTGVhZGluZydcblxuZXhwb3J0IGNvbnN0IFBFTkRJTkdfTkFSUkFUSU9OX0tFWSA9ICdwZW5kaW5nLW5hcnJhdGlvbidcblxuZXhwb3J0IHsgbmFycmF0aW9uVGV4dHNNYXRjaCB9IGZyb20gJy4vcmVhc29uaW5nTGVhZGluZydcblxuZXhwb3J0IGNvbnN0IHZpc2libGVSZWFzb25pbmdTdGVwcyA9IChzdGVwczogUmVhc29uaW5nU3RlcFtdLCBzaG93VGhpbmtpbmcgPSBmYWxzZSk6IFJlYXNvbmluZ1N0ZXBbXSA9PlxuICBzaG93VGhpbmtpbmcgPyBzdGVwcyA6IHN0ZXBzLmZpbHRlcihpc1Zpc2libGVTdGVwKVxuXG5leHBvcnQgY29uc3QgaXNTZWFtbGVzc05hcnJhdGlvbkNvbW1pdCA9IChzdGVwOiBSZWFzb25pbmdTdGVwLCBzdHJlYW1lZFRleHQ6IHN0cmluZyB8IG51bGwpOiBib29sZWFuID0+XG4gIHN0ZXAudHlwZSA9PT0gJ25hcnJhdGlvbicgJiYgbmFycmF0aW9uVGV4dHNNYXRjaChzdGVwLnRleHQsIHN0cmVhbWVkVGV4dClcblxuLyoqXG4gKiBOYXJyYWNpw7NuIGRlIHR1cm5vOiB0b2tlbnMgc2luIHN0ZXAgdmFuIGFuY2xhZG9zIGFsIGluaWNpby4gVW5hIG5hcnJhY2nDs25cbiAqIGNvbW1pdGVhZGEgKHByZSBhbnN3ZXJfcmVzZXQpIHNlIHBpbnRhIGVuIHN1IGZpbGEsIG5vIHNlIHJlY3VlbGdhIGFsIMO6bHRpbW8gdG9vbC5cbiAqL1xuZXhwb3J0IGNvbnN0IHNob3VsZFN0cmVhbU5hcnJhdGlvbkluVGltZWxpbmUgPSAoXG4gIHN0ZXBzOiBSZWFzb25pbmdTdGVwW10sXG4gIHN0cmVhbUFjdGl2aXR5OiBTdHJlYW1BY3Rpdml0eSB8IG51bGwgfCB1bmRlZmluZWQsXG4gIHN0cmVhbWluZ1RleHQ6IHN0cmluZyxcbiAgbWVzc2FnZUlkPzogc3RyaW5nIHwgbnVsbCxcbiAgc2hvd1RoaW5raW5nID0gZmFsc2Vcbik6IGJvb2xlYW4gPT4ge1xuICBpZiAoc3RyZWFtQWN0aXZpdHk/LnBoYXNlICE9PSAnd3JpdGluZycpIHJldHVybiBmYWxzZVxuICBpZiAoIXN0cmVhbWluZ1RleHQudHJpbSgpKSByZXR1cm4gZmFsc2VcblxuICBjb25zdCB2aXNpYmxlID0gdmlzaWJsZVJlYXNvbmluZ1N0ZXBzKHN0ZXBzLCBzaG93VGhpbmtpbmcpXG4gIGNvbnN0IGxlYWRpbmcgPSBmaW5kTGVhZGluZ05hcnJhdGlvbihzdGVwcylcblxuICAvLyBUb2tlbnMgYW50ZXMgZGUgY3VhbHF1aWVyIGFjY2nDs246IGxhIG5hcnJhY2nDs24gZXMgZWwgcHJpbWVyIHBhc28uXG4gIGlmIChsZWFkaW5nICYmICFoYXNBY3Rpb25TdGVwKHZpc2libGUpICYmIGxvb2tzTGlrZUludGVybWVkaWF0ZU5hcnJhdGlvblN0cmVhbShzdHJlYW1pbmdUZXh0KSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvLyBMZWFkaW5nIHlhIGFuY2xhZGE6IGVsIGJvZHkgdG9kYXbDrWEgZXMgZXNhIG1pc21hIG5hcnJhY2nDs24gKHNpbiByZXNwdWVzdGEgZmluYWwpLlxuICBpZiAobGVhZGluZyAmJiBuYXJyYXRpb25UZXh0c01hdGNoKGxlYWRpbmcudGV4dCwgc3RyZWFtaW5nVGV4dCkpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgY29uc3QgbGFzdCA9IHZpc2libGVbdmlzaWJsZS5sZW5ndGggLSAxXVxuICBpZiAoIWxhc3QgfHwgbGFzdC50eXBlID09PSAndGhpbmtpbmcnKSByZXR1cm4gZmFsc2VcblxuICBpZiAobGFzdC50eXBlID09PSAnbmFycmF0aW9uJykge1xuICAgIGlmIChtZXNzYWdlSWQgJiYgIXJlYXNvbmluZ1N0b3JlLmlzTmFycmF0aW9uSGFuZG9mZlBlbmRpbmcobWVzc2FnZUlkKSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICAgIHJldHVybiBuYXJyYXRpb25UZXh0c01hdGNoKGxhc3QudGV4dCwgc3RyZWFtaW5nVGV4dClcbiAgfVxuXG4gIHJldHVybiBmYWxzZVxufVxuXG4vKiogVGV4dG8gZGUgbGEgZmlsYSBsaXZlIGFsIGZpbmFsIGRlIGxhIHRyYXphOyBudWxsIHNpIHlhIGVzdMOhIGFuY2xhZGEgbyB2YSBhbCBjdWVycG8uICovXG5leHBvcnQgY29uc3QgcmVzb2x2ZVBlbmRpbmdOYXJyYXRpb25UZXh0ID0gKFxuICBzdGVwczogUmVhc29uaW5nU3RlcFtdLFxuICBzdHJlYW1BY3Rpdml0eTogU3RyZWFtQWN0aXZpdHkgfCBudWxsIHwgdW5kZWZpbmVkLFxuICBzdHJlYW1pbmdUZXh0OiBzdHJpbmcsXG4gIG1lc3NhZ2VJZD86IHN0cmluZyB8IG51bGwsXG4gIHNob3dUaGlua2luZyA9IGZhbHNlXG4pOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgaWYgKCFzaG91bGRTdHJlYW1OYXJyYXRpb25JblRpbWVsaW5lKHN0ZXBzLCBzdHJlYW1BY3Rpdml0eSwgc3RyZWFtaW5nVGV4dCwgbWVzc2FnZUlkLCBzaG93VGhpbmtpbmcpKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IGxlYWRpbmcgPSBmaW5kTGVhZGluZ05hcnJhdGlvbihzdGVwcylcbiAgLy8gWWEgZXN0w6EgYW5jbGFkYSBhbCBpbmljaW86IG5vIHJlY3VlbGd1ZXMgZWwgbWlzbW8gdGV4dG8gZGV0csOhcyBkZSBjYWRhIHRvb2wuXG4gIGlmIChsZWFkaW5nICYmIG5hcnJhdGlvblRleHRzTWF0Y2gobGVhZGluZy50ZXh0LCBzdHJlYW1pbmdUZXh0KSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjb25zdCBsYXN0ID0gdmlzaWJsZVJlYXNvbmluZ1N0ZXBzKHN0ZXBzLCBzaG93VGhpbmtpbmcpLmF0KC0xKVxuICBpZiAobGFzdD8udHlwZSA9PT0gJ25hcnJhdGlvbicgJiYgbmFycmF0aW9uVGV4dHNNYXRjaChsYXN0LnRleHQsIHN0cmVhbWluZ1RleHQpKSB7XG4gICAgcmV0dXJuIHN0cmVhbWluZ1RleHRcbiAgfVxuXG4gIGlmICghbGFzdCB8fCBsYXN0LnR5cGUgPT09ICd0aGlua2luZycpIHJldHVybiBzdHJlYW1pbmdUZXh0XG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdLCJtYXBwaW5ncyI6IkFBRUEsU0FBU0EsY0FBYyxRQUFRLGlEQUFpRDtBQUNoRixTQUNFQyxvQkFBb0IsRUFDcEJDLGFBQWEsRUFDYkMsYUFBYSxFQUNiQyxvQ0FBb0MsRUFDcENDLG1CQUFtQixRQUNkLG9CQUFvQjtBQUUzQixPQUFPLElBQU1DLHFCQUFxQixHQUFHLG1CQUFtQjtBQUV4RCxTQUFTRCxtQkFBbUIsUUFBUSxvQkFBb0I7QUFFeEQsT0FBTyxJQUFNRSxxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXFCQSxDQUFJQyxLQUFzQjtFQUFBLElBQUVDLFlBQVksR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsS0FBSztFQUFBLE9BQ2hGRCxZQUFZLEdBQUdELEtBQUssR0FBR0EsS0FBSyxDQUFDSyxNQUFNLENBQUNWLGFBQWEsQ0FBQztBQUFBO0FBRXBELE9BQU8sSUFBTVcseUJBQXlCLEdBQUcsU0FBNUJBLHlCQUF5QkEsQ0FBSUMsSUFBbUIsRUFBRUMsWUFBMkI7RUFBQSxPQUN4RkQsSUFBSSxDQUFDRSxJQUFJLEtBQUssV0FBVyxJQUFJWixtQkFBbUIsQ0FBQ1UsSUFBSSxDQUFDRyxJQUFJLEVBQUVGLFlBQVksQ0FBQztBQUFBOztBQUUzRTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUcsK0JBQStCLEdBQUcsU0FBbENBLCtCQUErQkEsQ0FDMUNYLEtBQXNCLEVBQ3RCWSxjQUFpRCxFQUNqREMsYUFBcUIsRUFDckJDLFNBQXlCLEVBRWI7RUFBQSxJQURaYixZQUFZLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLEtBQUs7RUFF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
@@ -0,0 +1,10 @@
1
+ export var readReasoningThinkingFlag = function readReasoningThinkingFlag() {
2
+ if (typeof window === 'undefined') return false;
3
+ return !!window.reasoningThinking;
4
+ };
5
+ export var hideTailNarrationRow = function hideTailNarrationRow(rows) {
6
+ var last = rows.at(-1);
7
+ if ((last === null || last === void 0 ? void 0 : last.kind) === 'single' && last.step.type === 'narration') return rows.slice(0, -1);
8
+ return rows;
9
+ };
10
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZWFkUmVhc29uaW5nVGhpbmtpbmdGbGFnIiwid2luZG93IiwicmVhc29uaW5nVGhpbmtpbmciLCJoaWRlVGFpbE5hcnJhdGlvblJvdyIsInJvd3MiLCJsYXN0IiwiYXQiLCJraW5kIiwic3RlcCIsInR5cGUiLCJzbGljZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL1JlYXNvbmluZ0Jsb2NrL3JlYXNvbmluZ1RpbWVsaW5lLmhlbHBlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZWFzb25pbmdEaXNwbGF5Um93IH0gZnJvbSAnLi9ncm91cFBhcmFsbGVsU3RlcHMnXG5cbmV4cG9ydCBjb25zdCByZWFkUmVhc29uaW5nVGhpbmtpbmdGbGFnID0gKCk6IGJvb2xlYW4gPT4ge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiBmYWxzZVxuICByZXR1cm4gISEod2luZG93IGFzIHVua25vd24gYXMgeyByZWFzb25pbmdUaGlua2luZz86IGJvb2xlYW4gfSkucmVhc29uaW5nVGhpbmtpbmdcbn1cblxuZXhwb3J0IGNvbnN0IGhpZGVUYWlsTmFycmF0aW9uUm93ID0gKHJvd3M6IFJlYXNvbmluZ0Rpc3BsYXlSb3dbXSk6IFJlYXNvbmluZ0Rpc3BsYXlSb3dbXSA9PiB7XG4gIGNvbnN0IGxhc3QgPSByb3dzLmF0KC0xKVxuICBpZiAobGFzdD8ua2luZCA9PT0gJ3NpbmdsZScgJiYgbGFzdC5zdGVwLnR5cGUgPT09ICduYXJyYXRpb24nKSByZXR1cm4gcm93cy5zbGljZSgwLCAtMSlcbiAgcmV0dXJuIHJvd3Ncbn1cbiJdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxJQUFNQSx5QkFBeUIsR0FBRyxTQUE1QkEseUJBQXlCQSxDQUFBLEVBQWtCO0VBQ3RELElBQUksT0FBT0MsTUFBTSxLQUFLLFdBQVcsRUFBRSxPQUFPLEtBQUs7RUFDL0MsT0FBTyxDQUFDLENBQUVBLE1BQU0sQ0FBZ0RDLGlCQUFpQjtBQUNuRixDQUFDO0FBRUQsT0FBTyxJQUFNQyxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFJQyxJQUEyQixFQUE0QjtFQUMxRixJQUFNQyxJQUFJLEdBQUdELElBQUksQ0FBQ0UsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0VBQ3hCLElBQUksQ0FBQUQsSUFBSSxhQUFKQSxJQUFJLHVCQUFKQSxJQUFJLENBQUVFLElBQUksTUFBSyxRQUFRLElBQUlGLElBQUksQ0FBQ0csSUFBSSxDQUFDQyxJQUFJLEtBQUssV0FBVyxFQUFFLE9BQU9MLElBQUksQ0FBQ00sS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztFQUN2RixPQUFPTixJQUFJO0FBQ2IsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,101 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import { ACTION_CATEGORY_ORDER } from '../../../utils/actionCategoryMap';
3
+ export var UNGROUPED_SLASH_COMMAND_KEY = '__ungrouped__';
4
+ export var filterSlashCommands = function filterSlashCommands(commands, query) {
5
+ var normalized = query.trim().toLowerCase();
6
+ if (!normalized) return commands;
7
+ return commands.filter(function (command) {
8
+ var _command$subtitle$toL, _command$subtitle;
9
+ return command.title.toLowerCase().includes(normalized) || ((_command$subtitle$toL = (_command$subtitle = command.subtitle) === null || _command$subtitle === void 0 ? void 0 : _command$subtitle.toLowerCase().includes(normalized)) !== null && _command$subtitle$toL !== void 0 ? _command$subtitle$toL : false);
10
+ });
11
+ };
12
+ export var orderSlashCommandsByCategory = function orderSlashCommandsByCategory(filtered) {
13
+ var grouped = new Map();
14
+ filtered.forEach(function (command) {
15
+ var _command$category;
16
+ var key = (_command$category = command.category) !== null && _command$category !== void 0 ? _command$category : UNGROUPED_SLASH_COMMAND_KEY;
17
+ if (!grouped.has(key)) grouped.set(key, []);
18
+ grouped.get(key).push(command);
19
+ });
20
+ var result = [];
21
+ ACTION_CATEGORY_ORDER.forEach(function (categoryKey) {
22
+ var items = grouped.get(categoryKey);
23
+ if (items !== null && items !== void 0 && items.length) result.push.apply(result, _toConsumableArray(items));
24
+ });
25
+ var ungrouped = grouped.get(UNGROUPED_SLASH_COMMAND_KEY);
26
+ if (ungrouped !== null && ungrouped !== void 0 && ungrouped.length) result.push.apply(result, _toConsumableArray(ungrouped));
27
+ return result;
28
+ };
29
+ export var buildSlashCommandRenderGroups = function buildSlashCommandRenderGroups(filtered) {
30
+ var grouped = new Map();
31
+ filtered.forEach(function (command) {
32
+ var _command$category2;
33
+ var key = (_command$category2 = command.category) !== null && _command$category2 !== void 0 ? _command$category2 : UNGROUPED_SLASH_COMMAND_KEY;
34
+ if (!grouped.has(key)) grouped.set(key, []);
35
+ grouped.get(key).push(command);
36
+ });
37
+ var result = [];
38
+ ACTION_CATEGORY_ORDER.forEach(function (categoryKey) {
39
+ var items = grouped.get(categoryKey);
40
+ if (items !== null && items !== void 0 && items.length) result.push({
41
+ key: categoryKey,
42
+ items: items
43
+ });
44
+ });
45
+ var ungrouped = grouped.get(UNGROUPED_SLASH_COMMAND_KEY);
46
+ if (ungrouped !== null && ungrouped !== void 0 && ungrouped.length) result.push({
47
+ key: UNGROUPED_SLASH_COMMAND_KEY,
48
+ items: ungrouped
49
+ });
50
+ return result;
51
+ };
52
+ export var shouldCloseSlashCommandOnOutsideClick = function shouldCloseSlashCommandOnOutsideClick(dropdown, anchor, target) {
53
+ if (!target) return false;
54
+ if (dropdown !== null && dropdown !== void 0 && dropdown.contains(target)) return false;
55
+ if (anchor !== null && anchor !== void 0 && anchor.contains(target)) return false;
56
+ return true;
57
+ };
58
+ export var splitSlashCommandHighlightSegments = function splitSlashCommandHighlightSegments(text, query) {
59
+ var needle = query.trim().toLowerCase();
60
+ if (!needle) return [{
61
+ text: text,
62
+ highlighted: false
63
+ }];
64
+ var haystack = text.toLowerCase();
65
+ if (haystack.indexOf(needle) === -1) return [{
66
+ text: text,
67
+ highlighted: false
68
+ }];
69
+ var segments = [];
70
+ var cursor = 0;
71
+ var nextIdx = haystack.indexOf(needle, cursor);
72
+ while (nextIdx !== -1) {
73
+ if (nextIdx > cursor) {
74
+ segments.push({
75
+ text: text.slice(cursor, nextIdx),
76
+ highlighted: false
77
+ });
78
+ }
79
+ segments.push({
80
+ text: text.slice(nextIdx, nextIdx + needle.length),
81
+ highlighted: true
82
+ });
83
+ cursor = nextIdx + needle.length;
84
+ nextIdx = haystack.indexOf(needle, cursor);
85
+ }
86
+ if (cursor < text.length) {
87
+ segments.push({
88
+ text: text.slice(cursor),
89
+ highlighted: false
90
+ });
91
+ }
92
+ return segments;
93
+ };
94
+ export var resolveSlashCommandHighlightIndex = function resolveSlashCommandHighlightIndex(currentIndex, delta, length) {
95
+ if (!length) return 0;
96
+ return (currentIndex + delta + length) % length;
97
+ };
98
+ export var shouldSelectSlashCommandOnEnter = function shouldSelectSlashCommandOnEnter(commands, highlightedIndex) {
99
+ return Boolean(commands[highlightedIndex]);
100
+ };
101
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBQ1RJT05fQ0FURUdPUllfT1JERVIiLCJVTkdST1VQRURfU0xBU0hfQ09NTUFORF9LRVkiLCJmaWx0ZXJTbGFzaENvbW1hbmRzIiwiY29tbWFuZHMiLCJxdWVyeSIsIm5vcm1hbGl6ZWQiLCJ0cmltIiwidG9Mb3dlckNhc2UiLCJmaWx0ZXIiLCJjb21tYW5kIiwiX2NvbW1hbmQkc3VidGl0bGUkdG9MIiwiX2NvbW1hbmQkc3VidGl0bGUiLCJ0aXRsZSIsImluY2x1ZGVzIiwic3VidGl0bGUiLCJvcmRlclNsYXNoQ29tbWFuZHNCeUNhdGVnb3J5IiwiZmlsdGVyZWQiLCJncm91cGVkIiwiTWFwIiwiZm9yRWFjaCIsIl9jb21tYW5kJGNhdGVnb3J5Iiwia2V5IiwiY2F0ZWdvcnkiLCJoYXMiLCJzZXQiLCJnZXQiLCJwdXNoIiwicmVzdWx0IiwiY2F0ZWdvcnlLZXkiLCJpdGVtcyIsImxlbmd0aCIsImFwcGx5IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwidW5ncm91cGVkIiwiYnVpbGRTbGFzaENvbW1hbmRSZW5kZXJHcm91cHMiLCJfY29tbWFuZCRjYXRlZ29yeTIiLCJzaG91bGRDbG9zZVNsYXNoQ29tbWFuZE9uT3V0c2lkZUNsaWNrIiwiZHJvcGRvd24iLCJhbmNob3IiLCJ0YXJnZXQiLCJjb250YWlucyIsInNwbGl0U2xhc2hDb21tYW5kSGlnaGxpZ2h0U2VnbWVudHMiLCJ0ZXh0IiwibmVlZGxlIiwiaGlnaGxpZ2h0ZWQiLCJoYXlzdGFjayIsImluZGV4T2YiLCJzZWdtZW50cyIsImN1cnNvciIsIm5leHRJZHgiLCJzbGljZSIsInJlc29sdmVTbGFzaENvbW1hbmRIaWdobGlnaHRJbmRleCIsImN1cnJlbnRJbmRleCIsImRlbHRhIiwic2hvdWxkU2VsZWN0U2xhc2hDb21tYW5kT25FbnRlciIsImhpZ2hsaWdodGVkSW5kZXgiLCJCb29sZWFuIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvU2xhc2hDb21tYW5kRHJvcGRvd24vU2xhc2hDb21tYW5kRHJvcGRvd24uaGVscGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFjdGlvbiwgQWN0aW9uQ2F0ZWdvcnlLZXkgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9BY3Rpb24nXG5pbXBvcnQgeyBBQ1RJT05fQ0FURUdPUllfT1JERVIgfSBmcm9tICcuLi8uLi8uLi91dGlscy9hY3Rpb25DYXRlZ29yeU1hcCdcblxuZXhwb3J0IGNvbnN0IFVOR1JPVVBFRF9TTEFTSF9DT01NQU5EX0tFWSA9ICdfX3VuZ3JvdXBlZF9fJ1xuXG5leHBvcnQgY29uc3QgZmlsdGVyU2xhc2hDb21tYW5kcyA9IChjb21tYW5kczogQWN0aW9uW10sIHF1ZXJ5OiBzdHJpbmcpOiBBY3Rpb25bXSA9PiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBxdWVyeS50cmltKCkudG9Mb3dlckNhc2UoKVxuICBpZiAoIW5vcm1hbGl6ZWQpIHJldHVybiBjb21tYW5kc1xuICByZXR1cm4gY29tbWFuZHMuZmlsdGVyKFxuICAgIGNvbW1hbmQgPT5cbiAgICAgIGNvbW1hbmQudGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhub3JtYWxpemVkKSB8fFxuICAgICAgKGNvbW1hbmQuc3VidGl0bGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobm9ybWFsaXplZCkgPz8gZmFsc2UpXG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IG9yZGVyU2xhc2hDb21tYW5kc0J5Q2F0ZWdvcnkgPSAoZmlsdGVyZWQ6IEFjdGlvbltdKTogQWN0aW9uW10gPT4ge1xuICBjb25zdCBncm91cGVkID0gbmV3IE1hcDxzdHJpbmcsIEFjdGlvbltdPigpXG4gIGZpbHRlcmVkLmZvckVhY2goY29tbWFuZCA9PiB7XG4gICAgY29uc3Qga2V5ID0gY29tbWFuZC5jYXRlZ29yeSA/PyBVTkdST1VQRURfU0xBU0hfQ09NTUFORF9LRVlcbiAgICBpZiAoIWdyb3VwZWQuaGFzKGtleSkpIGdyb3VwZWQuc2V0KGtleSwgW10pXG4gICAgZ3JvdXBlZC5nZXQoa2V5KSEucHVzaChjb21tYW5kKVxuICB9KVxuXG4gIGNvbnN0IHJlc3VsdDogQWN0aW9uW10gPSBbXVxuICBBQ1RJT05fQ0FURUdPUllfT1JERVIuZm9yRWFjaChjYXRlZ29yeUtleSA9PiB7XG4gICAgY29uc3QgaXRlbXMgPSBncm91cGVkLmdldChjYXRlZ29yeUtleSlcbiAgICBpZiAoaXRlbXM/Lmxlbmd0aCkgcmVzdWx0LnB1c2goLi4uaXRlbXMpXG4gIH0pXG4gIGNvbnN0IHVuZ3JvdXBlZCA9IGdyb3VwZWQuZ2V0KFVOR1JPVVBFRF9TTEFTSF9DT01NQU5EX0tFWSlcbiAgaWYgKHVuZ3JvdXBlZD8ubGVuZ3RoKSByZXN1bHQucHVzaCguLi51bmdyb3VwZWQpXG4gIHJldHVybiByZXN1bHRcbn1cblxuZXhwb3J0IHR5cGUgU2xhc2hDb21tYW5kUmVuZGVyR3JvdXAgPSB7XG4gIGtleTogQWN0aW9uQ2F0ZWdvcnlLZXkgfCB0eXBlb2YgVU5HUk9VUEVEX1NMQVNIX0NPTU1BTkRfS0VZXG4gIGl0ZW1zOiBBY3Rpb25bXVxufVxuXG5leHBvcnQgY29uc3QgYnVpbGRTbGFzaENvbW1hbmRSZW5kZXJHcm91cHMgPSAoZmlsdGVyZWQ6IEFjdGlvbltdKTogU2xhc2hDb21tYW5kUmVuZGVyR3JvdXBbXSA9PiB7XG4gIGNvbnN0IGdyb3VwZWQgPSBuZXcgTWFwPHN0cmluZywgQWN0aW9uW10+KClcbiAgZmlsdGVyZWQuZm9yRWFjaChjb21tYW5kID0+IHtcbiAgICBjb25zdCBrZXkgPSBjb21tYW5kLmNhdGVnb3J5ID8/IFVOR1JPVVBFRF9TTEFTSF9DT01NQU5EX0tFWVxuICAgIGlmICghZ3JvdXBlZC5oYXMoa2V5KSkgZ3JvdXBlZC5zZXQoa2V5LCBbXSlcbiAgICBncm91cGVkLmdldChrZXkpIS5wdXNoKGNvbW1hbmQpXG4gIH0pXG5cbiAgY29uc3QgcmVzdWx0OiBTbGFzaENvbW1hbmRSZW5kZXJHcm91cFtdID0gW11cbiAgQUNUSU9OX0NBVEVHT1JZX09SREVSLmZvckVhY2goY2F0ZWdvcnlLZXkgPT4ge1xuICAgIGNvbnN0IGl0ZW1zID0gZ3JvdXBlZC5nZXQoY2F0ZWdvcnlLZXkpXG4gICAgaWYgKGl0ZW1zPy5sZW5ndGgpIHJlc3VsdC5wdXNoKHsga2V5OiBjYXRlZ29yeUtleSwgaXRlbXMgfSlcbiAgfSlcbiAgY29uc3QgdW5ncm91cGVkID0gZ3JvdXBlZC5nZXQoVU5HUk9VUEVEX1NMQVNIX0NPTU1BTkRfS0VZKVxuICBpZiAodW5ncm91cGVkPy5sZW5ndGgpIHJlc3VsdC5wdXNoKHsga2V5OiBVTkdST1VQRURfU0xBU0hfQ09NTUFORF9LRVksIGl0ZW1zOiB1bmdyb3VwZWQgfSlcbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5leHBvcnQgY29uc3Qgc2hvdWxkQ2xvc2VTbGFzaENvbW1hbmRPbk91dHNpZGVDbGljayA9IChcbiAgZHJvcGRvd246IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgYW5jaG9yOiBIVE1MRWxlbWVudCB8IG51bGwgfCB1bmRlZmluZWQsXG4gIHRhcmdldDogTm9kZSB8IG51bGxcbik6IGJvb2xlYW4gPT4ge1xuICBpZiAoIXRhcmdldCkgcmV0dXJuIGZhbHNlXG4gIGlmIChkcm9wZG93bj8uY29udGFpbnModGFyZ2V0KSkgcmV0dXJuIGZhbHNlXG4gIGlmIChhbmNob3I/LmNvbnRhaW5zKHRhcmdldCkpIHJldHVybiBmYWxzZVxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgdHlwZSBTbGFzaENvbW1hbmRUZXh0U2VnbWVudCA9IHsgdGV4dDogc3RyaW5nOyBoaWdobGlnaHRlZDogYm9vbGVhbiB9XG5cbmV4cG9ydCBjb25zdCBzcGxpdFNsYXNoQ29tbWFuZEhpZ2hsaWdodFNlZ21lbnRzID0gKHRleHQ6IHN0cmluZywgcXVlcnk6IHN0cmluZyk6IFNsYXNoQ29tbWFuZFRleHRTZWdtZW50W10gPT4ge1xuICBjb25zdCBuZWVkbGUgPSBxdWVyeS50cmltKCkudG9Mb3dlckNhc2UoKVxuICBpZiAoIW5lZWRsZSkgcmV0dXJuIFt7IHRleHQsIGhpZ2hsaWdodGVkOiBmYWxzZSB9XVxuXG4gIGNvbnN0IGhheXN0YWNrID0gdGV4dC50b0xvd2VyQ2FzZSgpXG4gIGlmIChoYXlzdGFjay5pbmRleE9mKG5lZWRsZSkgPT09IC0xKSByZXR1cm4gW3sgdGV4dCwgaGlnaGxpZ2h0ZWQ6IGZhbHNlIH1dXG5cbiAgY29uc3Qgc2VnbWVudHM6IFNsYXNoQ29tbWFuZFRleHRTZWdtZW50W10gPSBbXVxuICBsZXQgY3Vyc29yID0gMFxuICBsZXQgbmV4dElkeCA9IGhheXN0YWNrLmluZGV4T2YobmVlZGxlLCBjdXJzb3IpXG4gIHdoaWxlIChuZXh0SWR4ICE9PSAtMSkge1xuICAgIGlmIChuZXh0SWR4ID4gY3Vyc29yKSB7XG4gICAgICBzZWdtZW50cy5wdXNoKHsgdGV4dDogdGV4dC5zbGljZShjdXJzb3IsIG5leHRJZHgpLCBoaWdobGlnaHRlZDogZmFsc2UgfSlcbiAgICB9XG4gICAgc2VnbWVudHMucHVzaCh7IHRleHQ6IHRleHQuc2xpY2UobmV4dElkeCwgbmV4dElkeCArIG5lZWRsZS5sZW5ndGgpLCBoaWdobGlnaHRlZDogdHJ1ZSB9KVxuICAgIGN1cnNvciA9IG5leHRJZHggKyBuZWVkbGUubGVuZ3RoXG4gICAgbmV4dElkeCA9IGhheXN0YWNrLmluZGV4T2YobmVlZGxlLCBjdXJzb3IpXG4gIH1cbiAgaWYgKGN1cnNvciA8IHRleHQubGVuZ3RoKSB7XG4gICAgc2VnbWVudHMucHVzaCh7IHRleHQ6IHRleHQuc2xpY2UoY3Vyc29yKSwgaGlnaGxpZ2h0ZWQ6IGZhbHNlIH0pXG4gIH1cbiAgcmV0dXJuIHNlZ21lbnRzXG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlU2xhc2hDb21tYW5kSGlnaGxpZ2h0SW5kZXggPSAoY3VycmVudEluZGV4OiBudW1iZXIsIGRlbHRhOiAxIHwgLTEsIGxlbmd0aDogbnVtYmVyKTogbnVtYmVyID0+IHtcbiAgaWYgKCFsZW5ndGgpIHJldHVybiAwXG4gIHJldHVybiAoY3VycmVudEluZGV4ICsgZGVsdGEgKyBsZW5ndGgpICUgbGVuZ3RoXG59XG5cbmV4cG9ydCBjb25zdCBzaG91bGRTZWxlY3RTbGFzaENvbW1hbmRPbkVudGVyID0gKFxuICBjb21tYW5kczogQWN0aW9uW10sXG4gIGhpZ2hsaWdodGVkSW5kZXg6IG51bWJlclxuKTogY29tbWFuZHMgaXMgW0FjdGlvbiwgLi4uQWN0aW9uW11dID0+IEJvb2xlYW4oY29tbWFuZHNbaGlnaGxpZ2h0ZWRJbmRleF0pXG4iXSwibWFwcGluZ3MiOiI7QUFDQSxTQUFTQSxxQkFBcUIsUUFBUSxrQ0FBa0M7QUFFeEUsT0FBTyxJQUFNQywyQkFBMkIsR0FBRyxlQUFlO0FBRTFELE9BQU8sSUFBTUMsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBSUMsUUFBa0IsRUFBRUMsS0FBYSxFQUFlO0VBQ2xGLElBQU1DLFVBQVUsR0FBR0QsS0FBSyxDQUFDRSxJQUFJLENBQUMsQ0FBQyxDQUFDQyxXQUFXLENBQUMsQ0FBQztFQUM3QyxJQUFJLENBQUNGLFVBQVUsRUFBRSxPQUFPRixRQUFRO0VBQ2hDLE9BQU9BLFFBQVEsQ0FBQ0ssTUFBTSxDQUNwQixVQUFBQyxPQUFPO0lBQUEsSUFBQUMscUJBQUEsRUFBQUMsaUJBQUE7SUFBQSxPQUNMRixPQUFPLENBQUNHLEtBQUssQ0FBQ0wsV0FBVyxDQUFDLENBQUMsQ0FBQ00sUUFBUSxDQUFDUixVQUFVLENBQUMsTUFBQUsscUJBQUEsSUFBQUMsaUJBQUEsR0FDL0NGLE9BQU8sQ0FBQ0ssUUFBUSxjQUFBSCxpQkFBQSx1QkFBaEJBLGlCQUFBLENBQWtCSixXQUFXLENBQUMsQ0FBQyxDQUFDTSxRQUFRLENBQUNSLFVBQVUsQ0FBQyxjQUFBSyxxQkFBQSxjQUFBQSxxQkFBQSxHQUFJLEtBQUssQ0FBQztFQUFBLENBQ25FLENBQUM7QUFDSCxDQUFDO0FBRUQsT0FBTyxJQUFNSyw0QkFBNEIsR0FBRyxTQUEvQkEsNEJBQTRCQSxDQUFJQyxRQUFrQixFQUFlO0VBQzVFLElBQU1DLE9BQU8sR0FBRyxJQUFJQyxHQUFHLENBQW1CLENBQUM7RUFDM0NGLFFB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