@projectcor/maia-components 2.31.1-1 → 2.31.1-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +8 -4
- package/lib/components/atoms/ReasoningBlock/reasoningLeading.js +59 -0
- package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +27 -21
- package/lib/hooks/useChatManager/useChatManager.js +7 -6
- package/lib/hooks/useReasoningTrace/reasoningStore.js +54 -2
- package/lib/store/sessions/sessionStreamManager.js +17 -10
- package/package.json +1 -1
|
@@ -4,6 +4,7 @@ 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 { hasActionStep, LEADING_NARRATION_INDEX } from './reasoningLeading';
|
|
7
8
|
import { isSeamlessNarrationCommit, PENDING_NARRATION_KEY, resolvePendingNarrationText } from './reasoningLiveNarration';
|
|
8
9
|
import { DisplayStepRow, isVisibleStep, stepLabel } from './ReasoningSteps';
|
|
9
10
|
import { SCReasoningTimeline, SCStepRow, SCThinkingText, SCTimelineRow } from './ReasoningBlock.styles';
|
|
@@ -45,6 +46,7 @@ var hideTailNarrationRow = function hideTailNarrationRow(rows) {
|
|
|
45
46
|
* timeline (marcadores + líneas) aparece al expandir el ReasoningBlock.
|
|
46
47
|
*/
|
|
47
48
|
export var ReasoningTimeline = function ReasoningTimeline(_ref2) {
|
|
49
|
+
var _displayRows$;
|
|
48
50
|
var messageId = _ref2.messageId,
|
|
49
51
|
showThinking = _ref2.showThinking,
|
|
50
52
|
streamActivity = _ref2.streamActivity,
|
|
@@ -83,14 +85,16 @@ export var ReasoningTimeline = function ReasoningTimeline(_ref2) {
|
|
|
83
85
|
}, [seamlessRowKey]);
|
|
84
86
|
if (!displayRows.length && !pendingNarration) return null;
|
|
85
87
|
var rowCount = displayRows.length + (pendingNarration ? 1 : 0);
|
|
88
|
+
var leadingLive = (streamActivity === null || streamActivity === void 0 ? void 0 : streamActivity.phase) === 'writing' && !hasActionStep(steps) && ((_displayRows$ = displayRows[0]) === null || _displayRows$ === void 0 ? void 0 : _displayRows$.kind) === 'single' && displayRows[0].step.i === LEADING_NARRATION_INDEX;
|
|
86
89
|
var renderRow = function renderRow(row, index, seamless) {
|
|
87
90
|
if (row.kind === 'single' && row.step.type === 'narration') {
|
|
88
91
|
var _row$step$text;
|
|
92
|
+
var isLeadingLive = leadingLive && index === 0 && row.step.i === LEADING_NARRATION_INDEX;
|
|
89
93
|
return /*#__PURE__*/_jsx(SCTimelineRow, {
|
|
90
|
-
$seamless: seamless,
|
|
94
|
+
$seamless: seamless || isLeadingLive,
|
|
91
95
|
children: /*#__PURE__*/_jsx(TimelineNarrationRow, {
|
|
92
|
-
text: (_row$step$text = row.step.text) !== null && _row$step$text !== void 0 ? _row$step$text : '',
|
|
93
|
-
live:
|
|
96
|
+
text: isLeadingLive ? streamingText || row.step.text || '' : (_row$step$text = row.step.text) !== null && _row$step$text !== void 0 ? _row$step$text : '',
|
|
97
|
+
live: isLeadingLive,
|
|
94
98
|
connectAbove: index > 0
|
|
95
99
|
})
|
|
96
100
|
}, displayRowKey(row));
|
|
@@ -120,4 +124,4 @@ export var ReasoningTimeline = function ReasoningTimeline(_ref2) {
|
|
|
120
124
|
}, PENDING_NARRATION_KEY)]
|
|
121
125
|
});
|
|
122
126
|
};
|
|
123
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTbW9vdGhTdHJlYW1UZXh0IiwidXNlVCIsInVzZVJlYXNvbmluZ1RyYWNlIiwiTWFpYVN0cmVhbWRvd24iLCJkaXNwbGF5Um93S2V5IiwiZ3JvdXBQYXJhbGxlbFN0ZXBzIiwiaXNTZWFtbGVzc05hcnJhdGlvbkNvbW1pdCIsIlBFTkRJTkdfTkFSUkFUSU9OX0tFWSIsInJlc29sdmVQZW5kaW5nTmFycmF0aW9uVGV4dCIsIkRpc3BsYXlTdGVwUm93IiwiaXNWaXNpYmxlU3RlcCIsInN0ZXBMYWJlbCIsIlNDUmVhc29uaW5nVGltZWxpbmUiLCJTQ1N0ZXBSb3ciLCJTQ1RoaW5raW5nVGV4dCIsIlNDVGltZWxpbmVSb3ciLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwicmVhZFRoaW5raW5nRmxhZyIsIndpbmRvdyIsInJlYXNvbmluZ1RoaW5raW5nIiwiVGltZWxpbmVOYXJyYXRpb25Sb3ciLCJfcmVmIiwidGV4dCIsImxpdmUiLCJjb25uZWN0QWJvdmUiLCJkaXNwbGF5VGV4dCIsImVuYWJsZWQiLCJtYXhDaGFyc1BlckZyYW1lIiwic25hcFRvV29yZEJvdW5kYXJ5IiwiJHNob3dDaHJvbWUiLCIkY29ubmVjdEFib3ZlIiwiJGNvbm5lY3RCZWxvdyIsImNoaWxkcmVuIiwidmFyaWFudCIsImhpZGVUYWlsTmFycmF0aW9uUm93Iiwicm93cyIsImxhc3QiLCJhdCIsImtpbmQiLCJzdGVwIiwidHlwZSIsInNsaWNlIiwiUmVhc29uaW5nVGltZWxpbmUiLCJfcmVmMiIsIm1lc3NhZ2VJZCIsInNob3dUaGlua2luZyIsInN0cmVhbUFjdGl2aXR5IiwiX3JlZjIkc3RyZWFtaW5nVGV4dCIsInN0cmVhbWluZ1RleHQiLCJfdXNlVCIsInQiLCJfdXNlUmVhc29uaW5nVHJhY2UiLCJzdGVwcyIsIndpdGhUaGlua2luZyIsImxhc3RTdHJlYW1lZE5hcnJhdGlvblJlZiIsInBlbmRpbmdOYXJyYXRpb24iLCJjdXJyZW50IiwiYWxsUm93cyIsInZpc2libGUiLCJmaWx0ZXIiLCJkaXNwbGF5Um93cyIsInNlYW1sZXNzUm93S2V5IiwibGVuZ3RoIiwicm93Q291bnQiLCJyZW5kZXJSb3ciLCJyb3ciLCJpbmRleCIsInNlYW1sZXNzIiwiX3JvdyRzdGVwJHRleHQiLCIkc2VhbWxlc3MiLCJjb25uZWN0QmVsb3ciLCJzaG93RGV0YWlsIiwic2hvd0Nocm9tZSIsIm1hcCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL1JlYXNvbmluZ0Jsb2NrL1JlYXNvbmluZ1RpbWVsaW5lLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgdXNlU21vb3RoU3RyZWFtVGV4dCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVNtb290aFN0cmVhbVRleHQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IHVzZVJlYXNvbmluZ1RyYWNlIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUmVhc29uaW5nVHJhY2UnXG5pbXBvcnQgdHlwZSB7IFN0cmVhbUFjdGl2aXR5IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvc3RyZWFtQWN0aXZpdHknXG5pbXBvcnQgeyBNYWlhU3RyZWFtZG93biB9IGZyb20gJy4uL01haWFTdHJlYW1kb3duL01haWFTdHJlYW1kb3duJ1xuaW1wb3J0IHsgZGlzcGxheVJvd0tleSwgZ3JvdXBQYXJhbGxlbFN0ZXBzLCB0eXBlIFJlYXNvbmluZ0Rpc3BsYXlSb3cgfSBmcm9tICcuL2dyb3VwUGFyYWxsZWxTdGVwcydcbmltcG9ydCB7IGlzU2VhbWxlc3NOYXJyYXRpb25Db21taXQsIFBFTkRJTkdfTkFSUkFUSU9OX0tFWSwgcmVzb2x2ZVBlbmRpbmdOYXJyYXRpb25UZXh0IH0gZnJvbSAnLi9yZWFzb25pbmdMaXZlTmFycmF0aW9uJ1xuaW1wb3J0IHsgRGlzcGxheVN0ZXBSb3csIGlzVmlzaWJsZVN0ZXAsIHN0ZXBMYWJlbCB9IGZyb20gJy4vUmVhc29uaW5nU3RlcHMnXG5pbXBvcnQgeyBTQ1JlYXNvbmluZ1RpbWVsaW5lLCBTQ1N0ZXBSb3csIFNDVGhpbmtpbmdUZXh0LCBTQ1RpbWVsaW5lUm93IH0gZnJvbSAnLi9SZWFzb25pbmdCbG9jay5zdHlsZXMnXG5cbmV4cG9ydCB0eXBlIFJlYXNvbmluZ1RpbWVsaW5lUHJvcHMgPSB7XG4gIG1lc3NhZ2VJZDogc3RyaW5nXG4gIC8qKiBNdWVzdHJhIHRhbWJpw6luIGVsIHJhem9uYW1pZW50byBjcnVkbyAoYHRoaW5raW5nYCkuIERlZmF1bHQ6IGB3aW5kb3cucmVhc29uaW5nVGhpbmtpbmdgLiAqL1xuICBzaG93VGhpbmtpbmc/OiBib29sZWFuXG4gIHN0cmVhbUFjdGl2aXR5PzogU3RyZWFtQWN0aXZpdHkgfCBudWxsXG4gIC8qKiBUZXh0byBlbiBzdHJlYW1pbmcgZGVsIHBsYWNlaG9sZGVyOyBsYXMgbmFycmFjaW9uZXMgZGUgdHVybm8gc2UgcGludGFuIGFjw6EuICovXG4gIHN0cmVhbWluZ1RleHQ/OiBzdHJpbmdcbn1cblxuY29uc3QgcmVhZFRoaW5raW5nRmxhZyA9ICgpOiBib29sZWFuID0+IHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gZmFsc2VcbiAgcmV0dXJuICEhKHdpbmRvdyBhcyB1bmtub3duIGFzIHsgcmVhc29uaW5nVGhpbmtpbmc/OiBib29sZWFuIH0pLnJlYXNvbmluZ1RoaW5raW5nXG59XG5cbnR5cGUgVGltZWxpbmVOYXJyYXRpb25Sb3dQcm9wcyA9IHtcbiAgdGV4dDogc3RyaW5nXG4gIGxpdmU6IGJvb2xlYW5cbiAgY29ubmVjdEFib3ZlOiBib29sZWFuXG59XG5cbi8qKiBNaXNtYSBmaWxhIHBhcmEgc3RyZWFtIGxpdmUgeSBuYXJyYWNpw7NuIGNvbW1pdGVhZGEgKGV2aXRhIHJlbW91bnQgYWwgaGFjZXIgaGFuZG9mZikuICovXG5jb25zdCBUaW1lbGluZU5hcnJhdGlvblJvdyA9ICh7IHRleHQsIGxpdmUsIGNvbm5lY3RBYm92ZSB9OiBUaW1lbGluZU5hcnJhdGlvblJvd1Byb3BzKSA9PiB7XG4gIGNvbnN0IGRpc3BsYXlUZXh0ID0gdXNlU21vb3RoU3RyZWFtVGV4dCh0ZXh0LCB7XG4gICAgZW5hYmxlZDogbGl2ZSxcbiAgICBtYXhDaGFyc1BlckZyYW1lOiAyNCxcbiAgICBzbmFwVG9Xb3JkQm91bmRhcnk6IHRydWUsXG4gIH0pXG5cbiAgcmV0dXJuIChcbiAgICA8U0NTdGVwUm93ICRzaG93Q2hyb21lPXtmYWxzZX0gJGNvbm5lY3RBYm92ZT17Y29ubmVjdEFib3ZlfSAkY29ubmVjdEJlbG93PXtmYWxzZX0+XG4gICAgICA8U0NUaGlua2luZ1RleHQ+XG4gICAgICAgIDxNYWlhU3RyZWFtZG93biB2YXJpYW50PVwiY2hhdFwiPntkaXNwbGF5VGV4dH08L01haWFTdHJlYW1kb3duPlxuICAgICAgPC9TQ1RoaW5raW5nVGV4dD5cbiAgICA8L1NDU3RlcFJvdz5cbiAgKVxufVxuXG5jb25zdCBoaWRlVGFpbE5hcnJhdGlvblJvdyA9IChyb3dzOiBSZWFzb25pbmdEaXNwbGF5Um93W10pOiBSZWFzb25pbmdEaXNwbGF5Um93W10gPT4ge1xuICBjb25zdCBsYXN0ID0gcm93cy5hdCgtMSlcbiAgaWYgKGxhc3Q/LmtpbmQgPT09ICdzaW5nbGUnICYmIGxhc3Quc3RlcC50eXBlID09PSAnbmFycmF0aW9uJykgcmV0dXJuIHJvd3Muc2xpY2UoMCwgLTEpXG4gIHJldHVybiByb3dzXG59XG5cbi8qKlxuICogVHJhemEgZW4gdml2bzogdGV4dG8gcGxhbm8gY29uIGVzcGFjaWFkbywgc2luIGPDrXJjdWxvcyBuaSByYWlsLiBFbCBjaHJvbWUgZGVcbiAqIHRpbWVsaW5lIChtYXJjYWRvcmVzICsgbMOtbmVhcykgYXBhcmVjZSBhbCBleHBhbmRpciBlbCBSZWFzb25pbmdCbG9jay5cbiAqL1xuZXhwb3J0IGNvbnN0IFJlYXNvbmluZ1RpbWVsaW5lID0gKHtcbiAgbWVzc2FnZUlkLFxuICBzaG93VGhpbmtpbmcsXG4gIHN0cmVhbUFjdGl2aXR5LFxuICBzdHJlYW1pbmdUZXh0ID0gJycsXG59OiBSZWFzb25pbmdUaW1lbGluZVByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IHsgc3RlcHMgfSA9IHVzZVJlYXNvbmluZ1RyYWNlKG1lc3NhZ2VJZClcbiAgY29uc3Qgd2l0aFRoaW5raW5nID0gc2hvd1RoaW5raW5nID8/IHJlYWRUaGlua2luZ0ZsYWcoKVxuICBjb25zdCBsYXN0U3RyZWFtZWROYXJyYXRpb25SZWYgPSB1c2VSZWY8c3RyaW5nIHwgbnVsbD4obnVsbClcblxuICBjb25zdCBwZW5kaW5nTmFycmF0aW9uID0gdXNlTWVtbyhcbiAgICAoKSA9PiByZXNvbHZlUGVuZGluZ05hcnJhdGlvblRleHQoc3RlcHMsIHN0cmVhbUFjdGl2aXR5LCBzdHJlYW1pbmdUZXh0LCBtZXNzYWdlSWQsIHdpdGhUaGlua2luZyksXG4gICAgW3N0ZXBzLCBzdHJlYW1BY3Rpdml0eSwgc3RyZWFtaW5nVGV4dCwgd2l0aFRoaW5raW5nLCBtZXNzYWdlSWRdXG4gIClcblxuICBpZiAocGVuZGluZ05hcnJhdGlvbikge1xuICAgIGxhc3RTdHJlYW1lZE5hcnJhdGlvblJlZi5jdXJyZW50ID0gcGVuZGluZ05hcnJhdGlvblxuICB9XG5cbiAgY29uc3QgYWxsUm93cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHZpc2libGUgPSB3aXRoVGhpbmtpbmcgPyBzdGVwcyA6IHN0ZXBzLmZpbHRlcihpc1Zpc2libGVTdGVwKVxuICAgIHJldHVybiBncm91cFBhcmFsbGVsU3RlcHModmlzaWJsZSwgc3RlcCA9PiBzdGVwTGFiZWwoc3RlcCwgdCkpXG4gIH0sIFtzdGVwcywgd2l0aFRoaW5raW5nLCB0XSlcblxuICBjb25zdCBkaXNwbGF5Um93cyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHBlbmRpbmdOYXJyYXRpb24gPyBoaWRlVGFpbE5hcnJhdGlvblJvdyhhbGxSb3dzKSA6IGFsbFJvd3MpLFxuICAgIFthbGxSb3dzLCBwZW5kaW5nTmFycmF0aW9uXVxuICApXG5cbiAgY29uc3Qgc2VhbWxlc3NSb3dLZXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAocGVuZGluZ05hcnJhdGlvbiB8fCAhYWxsUm93cy5sZW5ndGgpIHJldHVybiBudWxsXG4gICAgY29uc3QgbGFzdCA9IGFsbFJvd3NbYWxsUm93cy5sZW5ndGggLSAxXVxuICAgIGlmIChsYXN0LmtpbmQgIT09ICdzaW5nbGUnKSByZXR1cm4gbnVsbFxuICAgIGlmICghaXNTZWFtbGVzc05hcnJhdGlvbkNvbW1pdChsYXN0LnN0ZXAsIGxhc3RTdHJlYW1lZE5hcnJhdGlvblJlZi5jdXJyZW50KSkgcmV0dXJuIG51bGxcbiAgICByZXR1cm4gZGlzcGxheVJvd0tleShsYXN0KVxuICB9LCBbYWxsUm93cywgcGVuZGluZ05hcnJhdGlvbl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc2VhbWxlc3NSb3dLZXkpIGxhc3RTdHJlYW1lZE5hcnJhdGlvblJlZi5jdXJyZW50ID0gbnVsbFxuICB9LCBbc2VhbWxlc3NSb3dLZXldKVxuXG4gIGlmICghZGlzcGxheVJvd3MubGVuZ3RoICYmICFwZW5kaW5nTmFycmF0aW9uKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IHJvd0NvdW50ID0gZGlzcGxheVJvd3MubGVuZ3RoICsgKHBlbmRpbmdOYXJyYXRpb24gPyAxIDogMClcblxuICBjb25zdCByZW5kZXJSb3cgPSAocm93OiBSZWFzb25pbmdEaXNwbGF5Um93LCBpbmRleDogbnVtYmVyLCBzZWFtbGVzczogYm9vbGVhbikgPT4ge1xuICAgIGlmIChyb3cua2luZCA9PT0gJ3NpbmdsZScgJiYgcm93LnN0ZXAudHlwZSA9PT0gJ25hcnJhdGlvbicpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTQ1RpbWVsaW5lUm93IGtleT17ZGlzcGxheVJvd0tleShyb3cpfSAkc2VhbWxlc3M9e3NlYW1sZXNzfT5cbiAgICAgICAgICA8VGltZWxpbmVOYXJyYXRpb25Sb3cgdGV4dD17cm93LnN0ZXAudGV4dCA/PyAnJ30gbGl2ZT17ZmFsc2V9IGNvbm5lY3RBYm92ZT17aW5kZXggPiAwfSAvPlxuICAgICAgICA8L1NDVGltZWxpbmVSb3c+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ1RpbWVsaW5lUm93IGtleT17ZGlzcGxheVJvd0tleShyb3cpfSAkc2VhbWxlc3M9e3NlYW1sZXNzfT5cbiAgICAgICAgPERpc3BsYXlTdGVwUm93XG4gICAgICAgICAgcm93PXtyb3d9XG4gICAgICAgICAgdD17dH1cbiAgICAgICAgICBjb25uZWN0QWJvdmU9e2luZGV4ID4gMH1cbiAgICAgICAgICBjb25uZWN0QmVsb3c9e2luZGV4IDwgcm93Q291bnQgLSAxfVxuICAgICAgICAgIHNob3dEZXRhaWw9e2ZhbHNlfVxuICAgICAgICAgIHNob3dDaHJvbWU9e2ZhbHNlfVxuICAgICAgICAvPlxuICAgICAgPC9TQ1RpbWVsaW5lUm93PlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDUmVhc29uaW5nVGltZWxpbmU+XG4gICAgICB7ZGlzcGxheVJvd3MubWFwKChyb3csIGluZGV4KSA9PiByZW5kZXJSb3cocm93LCBpbmRleCwgZGlzcGxheVJvd0tleShyb3cpID09PSBzZWFtbGVzc1Jvd0tleSkpfVxuICAgICAge3BlbmRpbmdOYXJyYXRpb24gJiYgKFxuICAgICAgICA8U0NUaW1lbGluZVJvdyBrZXk9e1BFTkRJTkdfTkFSUkFUSU9OX0tFWX0gJHNlYW1sZXNzPlxuICAgICAgICAgIDxUaW1lbGluZU5hcnJhdGlvblJvdyB0ZXh0PXtwZW5kaW5nTmFycmF0aW9ufSBsaXZlIGNvbm5lY3RBYm92ZT17ZGlzcGxheVJvd3MubGVuZ3RoID4gMH0gLz5cbiAgICAgICAgPC9TQ1RpbWVsaW5lUm93PlxuICAgICAg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
|
|
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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
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
3
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
4
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
5
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6
|
+
/** Step sintético: narración que llegó como tokens antes de cualquier acción. */
|
|
7
|
+
export var LEADING_NARRATION_INDEX = -1;
|
|
8
|
+
export var isLeadingNarrationStep = function isLeadingNarrationStep(step) {
|
|
9
|
+
return step.i === LEADING_NARRATION_INDEX && step.type === 'narration';
|
|
10
|
+
};
|
|
11
|
+
export var findLeadingNarration = function findLeadingNarration(steps) {
|
|
12
|
+
return steps.find(isLeadingNarrationStep);
|
|
13
|
+
};
|
|
14
|
+
export var hasActionStep = function hasActionStep(steps) {
|
|
15
|
+
return steps.some(function (step) {
|
|
16
|
+
return step.type === 'tool' || step.type === 'handoff' || !!step.tool && step.type !== 'narration';
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
export var narrationTextsMatch = function narrationTextsMatch(committed, streamed) {
|
|
20
|
+
if (!committed || !streamed) return false;
|
|
21
|
+
if (committed === streamed) return true;
|
|
22
|
+
return committed.startsWith(streamed);
|
|
23
|
+
};
|
|
24
|
+
export var narrationTextsRelated = function narrationTextsRelated(left, right) {
|
|
25
|
+
if (!left || !right) return false;
|
|
26
|
+
if (left === right) return true;
|
|
27
|
+
return left.startsWith(right) || right.startsWith(left);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
/** Narración intermedia = párrafo corto; tablas o headers indican respuesta final. */
|
|
31
|
+
export var looksLikeIntermediateNarrationStream = function looksLikeIntermediateNarrationStream(text) {
|
|
32
|
+
var trimmed = text.trim();
|
|
33
|
+
if (!trimmed) return true;
|
|
34
|
+
if (trimmed.length > 320) return false;
|
|
35
|
+
if (/\n(?:#{1,3}\s|---|\|.+\|)/.test(text)) return false;
|
|
36
|
+
return true;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Si la narración se escribió antes que los steps, en el complete del back suele
|
|
41
|
+
* quedar al final (como si fuera del último tool). La devolvemos al inicio.
|
|
42
|
+
*/
|
|
43
|
+
export var placeLeadingNarrationFirst = function placeLeadingNarrationFirst(liveSteps, authoritativeSteps) {
|
|
44
|
+
var leading = findLeadingNarration(liveSteps);
|
|
45
|
+
if (!(leading !== null && leading !== void 0 && leading.text) || !authoritativeSteps.length) return authoritativeSteps;
|
|
46
|
+
var matchIndex = authoritativeSteps.findIndex(function (step) {
|
|
47
|
+
return step.type === 'narration' && narrationTextsRelated(step.text, leading.text);
|
|
48
|
+
});
|
|
49
|
+
if (matchIndex === 0) return authoritativeSteps;
|
|
50
|
+
if (matchIndex > 0) {
|
|
51
|
+
var next = authoritativeSteps.slice();
|
|
52
|
+
var _next$splice = next.splice(matchIndex, 1),
|
|
53
|
+
_next$splice2 = _slicedToArray(_next$splice, 1),
|
|
54
|
+
narration = _next$splice2[0];
|
|
55
|
+
return [narration].concat(_toConsumableArray(next));
|
|
56
|
+
}
|
|
57
|
+
return [_objectSpread({}, leading)].concat(_toConsumableArray(authoritativeSteps));
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMRUFESU5HX05BUlJBVElPTl9JTkRFWCIsImlzTGVhZGluZ05hcnJhdGlvblN0ZXAiLCJzdGVwIiwiaSIsInR5cGUiLCJmaW5kTGVhZGluZ05hcnJhdGlvbiIsInN0ZXBzIiwiZmluZCIsImhhc0FjdGlvblN0ZXAiLCJzb21lIiwidG9vbCIsIm5hcnJhdGlvblRleHRzTWF0Y2giLCJjb21taXR0ZWQiLCJzdHJlYW1lZCIsInN0YXJ0c1dpdGgiLCJuYXJyYXRpb25UZXh0c1JlbGF0ZWQiLCJsZWZ0IiwicmlnaHQiLCJsb29rc0xpa2VJbnRlcm1lZGlhdGVOYXJyYXRpb25TdHJlYW0iLCJ0ZXh0IiwidHJpbW1lZCIsInRyaW0iLCJsZW5ndGgiLCJ0ZXN0IiwicGxhY2VMZWFkaW5nTmFycmF0aW9uRmlyc3QiLCJsaXZlU3RlcHMiLCJhdXRob3JpdGF0aXZlU3RlcHMiLCJsZWFkaW5nIiwibWF0Y2hJbmRleCIsImZpbmRJbmRleCIsIm5leHQiLCJzbGljZSIsIl9uZXh0JHNwbGljZSIsInNwbGljZSIsIl9uZXh0JHNwbGljZTIiLCJfc2xpY2VkVG9BcnJheSIsIm5hcnJhdGlvbiIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheSIsIl9vYmplY3RTcHJlYWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9SZWFzb25pbmdCbG9jay9yZWFzb25pbmdMZWFkaW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVhc29uaW5nU3RlcCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3JlYXNvbmluZydcblxuLyoqIFN0ZXAgc2ludMOpdGljbzogbmFycmFjacOzbiBxdWUgbGxlZ8OzIGNvbW8gdG9rZW5zIGFudGVzIGRlIGN1YWxxdWllciBhY2Npw7NuLiAqL1xuZXhwb3J0IGNvbnN0IExFQURJTkdfTkFSUkFUSU9OX0lOREVYID0gLTFcblxuZXhwb3J0IGNvbnN0IGlzTGVhZGluZ05hcnJhdGlvblN0ZXAgPSAoc3RlcDogUmVhc29uaW5nU3RlcCk6IGJvb2xlYW4gPT5cbiAgc3RlcC5pID09PSBMRUFESU5HX05BUlJBVElPTl9JTkRFWCAmJiBzdGVwLnR5cGUgPT09ICduYXJyYXRpb24nXG5cbmV4cG9ydCBjb25zdCBmaW5kTGVhZGluZ05hcnJhdGlvbiA9IChzdGVwczogUmVhc29uaW5nU3RlcFtdKTogUmVhc29uaW5nU3RlcCB8IHVuZGVmaW5lZCA9PlxuICBzdGVwcy5maW5kKGlzTGVhZGluZ05hcnJhdGlvblN0ZXApXG5cbmV4cG9ydCBjb25zdCBoYXNBY3Rpb25TdGVwID0gKHN0ZXBzOiBSZWFzb25pbmdTdGVwW10pOiBib29sZWFuID0+XG4gIHN0ZXBzLnNvbWUoc3RlcCA9PiBzdGVwLnR5cGUgPT09ICd0b29sJyB8fCBzdGVwLnR5cGUgPT09ICdoYW5kb2ZmJyB8fCAoISFzdGVwLnRvb2wgJiYgc3RlcC50eXBlICE9PSAnbmFycmF0aW9uJykpXG5cbmV4cG9ydCBjb25zdCBuYXJyYXRpb25UZXh0c01hdGNoID0gKGNvbW1pdHRlZDogc3RyaW5nIHwgdW5kZWZpbmVkLCBzdHJlYW1lZDogc3RyaW5nIHwgbnVsbCk6IGJvb2xlYW4gPT4ge1xuICBpZiAoIWNvbW1pdHRlZCB8fCAhc3RyZWFtZWQpIHJldHVybiBmYWxzZVxuICBpZiAoY29tbWl0dGVkID09PSBzdHJlYW1lZCkgcmV0dXJuIHRydWVcbiAgcmV0dXJuIGNvbW1pdHRlZC5zdGFydHNXaXRoKHN0cmVhbWVkKVxufVxuXG5leHBvcnQgY29uc3QgbmFycmF0aW9uVGV4dHNSZWxhdGVkID0gKGxlZnQ6IHN0cmluZyB8IHVuZGVmaW5lZCwgcmlnaHQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gPT4ge1xuICBpZiAoIWxlZnQgfHwgIXJpZ2h0KSByZXR1cm4gZmFsc2VcbiAgaWYgKGxlZnQgPT09IHJpZ2h0KSByZXR1cm4gdHJ1ZVxuICByZXR1cm4gbGVmdC5zdGFydHNXaXRoKHJpZ2h0KSB8fCByaWdodC5zdGFydHNXaXRoKGxlZnQpXG59XG5cbi8qKiBOYXJyYWNpw7NuIGludGVybWVkaWEgPSBww6FycmFmbyBjb3J0bzsgdGFibGFzIG8gaGVhZGVycyBpbmRpY2FuIHJlc3B1ZXN0YSBmaW5hbC4gKi9cbmV4cG9ydCBjb25zdCBsb29rc0xpa2VJbnRlcm1lZGlhdGVOYXJyYXRpb25TdHJlYW0gPSAodGV4dDogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IHRyaW1tZWQgPSB0ZXh0LnRyaW0oKVxuICBpZiAoIXRyaW1tZWQpIHJldHVybiB0cnVlXG4gIGlmICh0cmltbWVkLmxlbmd0aCA+IDMyMCkgcmV0dXJuIGZhbHNlXG4gIGlmICgvXFxuKD86I3sxLDN9XFxzfC0tLXxcXHwuK1xcfCkvLnRlc3QodGV4dCkpIHJldHVybiBmYWxzZVxuICByZXR1cm4gdHJ1ZVxufVxuXG4vKipcbiAqIFNpIGxhIG5hcnJhY2nDs24gc2UgZXNjcmliacOzIGFudGVzIHF1ZSBsb3Mgc3RlcHMsIGVuIGVsIGNvbXBsZXRlIGRlbCBiYWNrIHN1ZWxlXG4gKiBxdWVkYXIgYWwgZmluYWwgKGNvbW8gc2kgZnVlcmEgZGVsIMO6bHRpbW8gdG9vbCkuIExhIGRldm9sdmVtb3MgYWwgaW5pY2lvLlxuICovXG5leHBvcnQgY29uc3QgcGxhY2VMZWFkaW5nTmFycmF0aW9uRmlyc3QgPSAoXG4gIGxpdmVTdGVwczogUmVhc29uaW5nU3RlcFtdLFxuICBhdXRob3JpdGF0aXZlU3RlcHM6IFJlYXNvbmluZ1N0ZXBbXVxuKTogUmVhc29uaW5nU3RlcFtdID0+IHtcbiAgY29uc3QgbGVhZGluZyA9IGZpbmRMZWFkaW5nTmFycmF0aW9uKGxpdmVTdGVwcylcbiAgaWYgKCFsZWFkaW5nPy50ZXh0IHx8ICFhdXRob3JpdGF0aXZlU3RlcHMubGVuZ3RoKSByZXR1cm4gYXV0aG9yaXRhdGl2ZVN0ZXBzXG5cbiAgY29uc3QgbWF0Y2hJbmRleCA9IGF1dGhvcml0YXRpdmVTdGVwcy5maW5kSW5kZXgoXG4gICAgc3RlcCA9PiBzdGVwLnR5cGUgPT09ICduYXJyYXRpb24nICYmIG5hcnJhdGlvblRleHRzUmVsYXRlZChzdGVwLnRleHQsIGxlYWRpbmcudGV4dClcbiAgKVxuXG4gIGlmIChtYXRjaEluZGV4ID09PSAwKSByZXR1cm4gYXV0aG9yaXRhdGl2ZVN0ZXBzXG4gIGlmIChtYXRjaEluZGV4ID4gMCkge1xuICAgIGNvbnN0IG5leHQgPSBhdXRob3JpdGF0aXZlU3RlcHMuc2xpY2UoKVxuICAgIGNvbnN0IFtuYXJyYXRpb25dID0gbmV4dC5zcGxpY2UobWF0Y2hJbmRleCwgMSlcbiAgICByZXR1cm4gW25hcnJhdGlvbiwgLi4ubmV4dF1cbiAgfVxuXG4gIHJldHVybiBbeyAuLi5sZWFkaW5nIH0sIC4uLmF1dGhvcml0YXRpdmVTdGVwc11cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQTtBQUNBLE9BQU8sSUFBTUEsdUJBQXVCLEdBQUcsQ0FBQyxDQUFDO0FBRXpDLE9BQU8sSUFBTUMsc0JBQXNCLEdBQUcsU0FBekJBLHNCQUFzQkEsQ0FBSUMsSUFBbUI7RUFBQSxPQUN4REEsSUFBSSxDQUFDQyxDQUFDLEtBQUtILHVCQUF1QixJQUFJRSxJQUFJLENBQUNFLElBQUksS0FBSyxXQUFXO0FBQUE7QUFFakUsT0FBTyxJQUFNQyxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFJQyxLQUFzQjtFQUFBLE9BQ3pEQSxLQUFLLENBQUNDLElBQUksQ0FBQ04sc0JBQXNCLENBQUM7QUFBQTtBQUVwQyxPQUFPLElBQU1PLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBSUYsS0FBc0I7RUFBQSxPQUNsREEsS0FBSyxDQUFDRyxJQUFJLENBQUMsVUFBQVAsSUFBSTtJQUFBLE9BQUlBLElBQUksQ0FBQ0UsSUFBSSxLQUFLLE1BQU0sSUFBSUYsSUFBSSxDQUFDRSxJQUFJLEtBQUssU0FBUyxJQUFLLENBQUMsQ0FBQ0YsSUFBSSxDQUFDUSxJQUFJLElBQUlSLElBQUksQ0FBQ0UsSUFBSSxLQUFLLFdBQVk7RUFBQSxFQUFDO0FBQUE7QUFFbkgsT0FBTyxJQUFNTyxtQkFBbUIsR0FBRyxT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
|
|
@@ -1,58 +1,64 @@
|
|
|
1
1
|
import { reasoningStore } from '../../../hooks/useReasoningTrace/reasoningStore';
|
|
2
|
+
import { findLeadingNarration, hasActionStep, looksLikeIntermediateNarrationStream, narrationTextsMatch } from './reasoningLeading';
|
|
2
3
|
import { isVisibleStep } from './ReasoningSteps';
|
|
3
4
|
export var PENDING_NARRATION_KEY = 'pending-narration';
|
|
5
|
+
export { narrationTextsMatch } from './reasoningLeading';
|
|
4
6
|
export var visibleReasoningSteps = function visibleReasoningSteps(steps) {
|
|
5
7
|
var showThinking = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
6
8
|
return showThinking ? steps : steps.filter(isVisibleStep);
|
|
7
9
|
};
|
|
8
|
-
export var narrationTextsMatch = function narrationTextsMatch(committed, streamed) {
|
|
9
|
-
if (!committed || !streamed) return false;
|
|
10
|
-
if (committed === streamed) return true;
|
|
11
|
-
// Mientras streamea: el texto en curso es prefijo de la narración commiteada.
|
|
12
|
-
return committed.startsWith(streamed);
|
|
13
|
-
};
|
|
14
10
|
export var isSeamlessNarrationCommit = function isSeamlessNarrationCommit(step, streamedText) {
|
|
15
11
|
return step.type === 'narration' && narrationTextsMatch(step.text, streamedText);
|
|
16
12
|
};
|
|
17
13
|
|
|
18
14
|
/**
|
|
19
|
-
* Narración de turno
|
|
20
|
-
*
|
|
21
|
-
* Tras una narración en la traza, lo que sigue escribiéndose es la respuesta final.
|
|
15
|
+
* Narración de turno: tokens sin step van anclados al inicio. Una narración
|
|
16
|
+
* commiteada (pre answer_reset) se pinta en su fila, no se recuelga al último tool.
|
|
22
17
|
*/
|
|
23
18
|
export var shouldStreamNarrationInTimeline = function shouldStreamNarrationInTimeline(steps, streamActivity, streamingText, messageId) {
|
|
24
19
|
var showThinking = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
25
20
|
if ((streamActivity === null || streamActivity === void 0 ? void 0 : streamActivity.phase) !== 'writing') return false;
|
|
26
21
|
if (!streamingText.trim()) return false;
|
|
27
22
|
var visible = visibleReasoningSteps(steps, showThinking);
|
|
23
|
+
var leading = findLeadingNarration(steps);
|
|
24
|
+
|
|
25
|
+
// Tokens antes de cualquier acción: la narración es el primer paso.
|
|
26
|
+
if (leading && !hasActionStep(visible) && looksLikeIntermediateNarrationStream(streamingText)) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Leading ya anclada: el body todavía es esa misma narración (sin respuesta final).
|
|
31
|
+
if (leading && narrationTextsMatch(leading.text, streamingText)) {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
if (!visible.length && looksLikeIntermediateNarrationStream(streamingText)) {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
28
37
|
var last = visible[visible.length - 1];
|
|
29
38
|
if (!last || last.type === 'thinking') return false;
|
|
30
|
-
|
|
31
|
-
// Carrera commit: narración commiteada, body aún no limpiado (pre answer_reset).
|
|
32
39
|
if (last.type === 'narration') {
|
|
33
40
|
if (messageId && !reasoningStore.isNarrationHandoffPending(messageId)) {
|
|
34
41
|
return false;
|
|
35
42
|
}
|
|
36
43
|
return narrationTextsMatch(last.text, streamingText);
|
|
37
44
|
}
|
|
38
|
-
|
|
39
|
-
// Narración intermedia: solo tras una acción (tool/handoff). Lo demás va al cuerpo.
|
|
40
|
-
if (last.type === 'tool' || last.type === 'handoff') {
|
|
41
|
-
return true;
|
|
42
|
-
}
|
|
43
45
|
return false;
|
|
44
46
|
};
|
|
45
47
|
|
|
46
|
-
/** Texto de la fila live al final de la traza; null si ya está
|
|
48
|
+
/** Texto de la fila live al final de la traza; null si ya está anclada o va al cuerpo. */
|
|
47
49
|
export var resolvePendingNarrationText = function resolvePendingNarrationText(steps, streamActivity, streamingText, messageId) {
|
|
48
50
|
var showThinking = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
49
51
|
if (!shouldStreamNarrationInTimeline(steps, streamActivity, streamingText, messageId, showThinking)) return null;
|
|
52
|
+
var leading = findLeadingNarration(steps);
|
|
53
|
+
// Ya está anclada al inicio: no recuelgues el mismo texto detrás de cada tool.
|
|
54
|
+
if (leading && narrationTextsMatch(leading.text, streamingText)) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
50
57
|
var last = visibleReasoningSteps(steps, showThinking).at(-1);
|
|
51
|
-
// Step commiteado pero body/stream aún no limpiado: seguir en fila live para no
|
|
52
|
-
// desmontar MaiaStreamdown 1 frame antes del answer_reset.
|
|
53
58
|
if ((last === null || last === void 0 ? void 0 : last.type) === 'narration' && narrationTextsMatch(last.text, streamingText)) {
|
|
54
59
|
return streamingText;
|
|
55
60
|
}
|
|
56
|
-
return streamingText;
|
|
61
|
+
if (!last || last.type === 'thinking') return streamingText;
|
|
62
|
+
return null;
|
|
57
63
|
};
|
|
58
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZWFzb25pbmdTdG9yZSIsImZpbmRMZWFkaW5nTmFycmF0aW9uIiwiaGFzQWN0aW9uU3RlcCIsImxvb2tzTGlrZUludGVybWVkaWF0ZU5hcnJhdGlvblN0cmVhbSIsIm5hcnJhdGlvblRleHRzTWF0Y2giLCJpc1Zpc2libGVTdGVwIiwiUEVORElOR19OQVJSQVRJT05fS0VZIiwidmlzaWJsZVJlYXNvbmluZ1N0ZXBzIiwic3RlcHMiLCJzaG93VGhpbmtpbmciLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJmaWx0ZXIiLCJpc1NlYW1sZXNzTmFycmF0aW9uQ29tbWl0Iiwic3RlcCIsInN0cmVhbWVkVGV4dCIsInR5cGUiLCJ0ZXh0Iiwic2hvdWxkU3RyZWFtTmFycmF0aW9uSW5UaW1lbGluZSIsInN0cmVhbUFjdGl2aXR5Iiwic3RyZWFtaW5nVGV4dCIsIm1lc3NhZ2VJZCIsInBoYXNlIiwidHJpbSIsInZpc2libGUiLCJsZWFkaW5nIiwibGFzdCIsImlzTmFycmF0aW9uSGFuZG9mZlBlbmRpbmciLCJyZXNvbHZlUGVuZGluZ05hcnJhdGlvblRleHQiLCJhdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL1JlYXNvbmluZ0Jsb2NrL3JlYXNvbmluZ0xpdmVOYXJyYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZWFzb25pbmdTdGVwIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvcmVhc29uaW5nJ1xuaW1wb3J0IHR5cGUgeyBTdHJlYW1BY3Rpdml0eSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3N0cmVhbUFjdGl2aXR5J1xuaW1wb3J0IHsgcmVhc29uaW5nU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VSZWFzb25pbmdUcmFjZS9yZWFzb25pbmdTdG9yZSdcbmltcG9ydCB7XG4gIGZpbmRMZWFkaW5nTmFycmF0aW9uLFxuICBoYXNBY3Rpb25TdGVwLFxuICBsb29rc0xpa2VJbnRlcm1lZGlhdGVOYXJyYXRpb25TdHJlYW0sXG4gIG5hcnJhdGlvblRleHRzTWF0Y2gsXG59IGZyb20gJy4vcmVhc29uaW5nTGVhZGluZydcbmltcG9ydCB7IGlzVmlzaWJsZVN0ZXAgfSBmcm9tICcuL1JlYXNvbmluZ1N0ZXBzJ1xuXG5leHBvcnQgY29uc3QgUEVORElOR19OQVJSQVRJT05fS0VZID0gJ3BlbmRpbmctbmFycmF0aW9uJ1xuXG5leHBvcnQgeyBuYXJyYXRpb25UZXh0c01hdGNoIH0gZnJvbSAnLi9yZWFzb25pbmdMZWFkaW5nJ1xuXG5leHBvcnQgY29uc3QgdmlzaWJsZVJlYXNvbmluZ1N0ZXBzID0gKHN0ZXBzOiBSZWFzb25pbmdTdGVwW10sIHNob3dUaGlua2luZyA9IGZhbHNlKTogUmVhc29uaW5nU3RlcFtdID0+XG4gIHNob3dUaGlua2luZyA/IHN0ZXBzIDogc3RlcHMuZmlsdGVyKGlzVmlzaWJsZVN0ZXApXG5cbmV4cG9ydCBjb25zdCBpc1NlYW1sZXNzTmFycmF0aW9uQ29tbWl0ID0gKHN0ZXA6IFJlYXNvbmluZ1N0ZXAsIHN0cmVhbWVkVGV4dDogc3RyaW5nIHwgbnVsbCk6IGJvb2xlYW4gPT5cbiAgc3RlcC50eXBlID09PSAnbmFycmF0aW9uJyAmJiBuYXJyYXRpb25UZXh0c01hdGNoKHN0ZXAudGV4dCwgc3RyZWFtZWRUZXh0KVxuXG4vKipcbiAqIE5hcnJhY2nDs24gZGUgdHVybm86IHRva2VucyBzaW4gc3RlcCB2YW4gYW5jbGFkb3MgYWwgaW5pY2lvLiBVbmEgbmFycmFjacOzblxuICogY29tbWl0ZWFkYSAocHJlIGFuc3dlcl9yZXNldCkgc2UgcGludGEgZW4gc3UgZmlsYSwgbm8gc2UgcmVjdWVsZ2EgYWwgw7psdGltbyB0b29sLlxuICovXG5leHBvcnQgY29uc3Qgc2hvdWxkU3RyZWFtTmFycmF0aW9uSW5UaW1lbGluZSA9IChcbiAgc3RlcHM6IFJlYXNvbmluZ1N0ZXBbXSxcbiAgc3RyZWFtQWN0aXZpdHk6IFN0cmVhbUFjdGl2aXR5IHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgc3RyZWFtaW5nVGV4dDogc3RyaW5nLFxuICBtZXNzYWdlSWQ/OiBzdHJpbmcgfCBudWxsLFxuICBzaG93VGhpbmtpbmcgPSBmYWxzZVxuKTogYm9vbGVhbiA9PiB7XG4gIGlmIChzdHJlYW1BY3Rpdml0eT8ucGhhc2UgIT09ICd3cml0aW5nJykgcmV0dXJuIGZhbHNlXG4gIGlmICghc3RyZWFtaW5nVGV4dC50cmltKCkpIHJldHVybiBmYWxzZVxuXG4gIGNvbnN0IHZpc2libGUgPSB2aXNpYmxlUmVhc29uaW5nU3RlcHMoc3RlcHMsIHNob3dUaGlua2luZylcbiAgY29uc3QgbGVhZGluZyA9IGZpbmRMZWFkaW5nTmFycmF0aW9uKHN0ZXBzKVxuXG4gIC8vIFRva2VucyBhbnRlcyBkZSBjdWFscXVpZXIgYWNjacOzbjogbGEgbmFycmFjacOzbiBlcyBlbCBwcmltZXIgcGFzby5cbiAgaWYgKGxlYWRpbmcgJiYgIWhhc0FjdGlvblN0ZXAodmlzaWJsZSkgJiYgbG9va3NMaWtlSW50ZXJtZWRpYXRlTmFycmF0aW9uU3RyZWFtKHN0cmVhbWluZ1RleHQpKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8vIExlYWRpbmcgeWEgYW5jbGFkYTogZWwgYm9keSB0b2RhdsOtYSBlcyBlc2EgbWlzbWEgbmFycmFjacOzbiAoc2luIHJlc3B1ZXN0YSBmaW5hbCkuXG4gIGlmIChsZWFkaW5nICYmIG5hcnJhdGlvblRleHRzTWF0Y2gobGVhZGluZy50ZXh0LCBzdHJlYW1pbmdUZXh0KSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAoIXZpc2libGUubGVuZ3RoICYmIGxvb2tzTGlrZUludGVybWVkaWF0ZU5hcnJhdGlvblN0cmVhbShzdHJlYW1pbmdUZXh0KSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBjb25zdCBsYXN0ID0gdmlzaWJsZVt2aXNpYmxlLmxlbmd0aCAtIDFdXG4gIGlmICghbGFzdCB8fCBsYXN0LnR5cGUgPT09ICd0aGlua2luZycpIHJldHVybiBmYWxzZVxuXG4gIGlmIChsYXN0LnR5cGUgPT09ICduYXJyYXRpb24nKSB7XG4gICAgaWYgKG1lc3NhZ2VJZCAmJiAhcmVhc29uaW5nU3RvcmUuaXNOYXJyYXRpb25IYW5kb2ZmUGVuZGluZyhtZXNzYWdlSWQpKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgcmV0dXJuIG5hcnJhdGlvblRleHRzTWF0Y2gobGFzdC50ZXh0LCBzdHJlYW1pbmdUZXh0KVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG5cbi8qKiBUZXh0byBkZSBsYSBmaWxhIGxpdmUgYWwgZmluYWwgZGUgbGEgdHJhemE7IG51bGwgc2kgeWEgZXN0w6EgYW5jbGFkYSBvIHZhIGFsIGN1ZXJwby4gKi9cbmV4cG9ydCBjb25zdCByZXNvbHZlUGVuZGluZ05hcnJhdGlvblRleHQgPSAoXG4gIHN0ZXBzOiBSZWFzb25pbmdTdGVwW10sXG4gIHN0cmVhbUFjdGl2aXR5OiBTdHJlYW1BY3Rpdml0eSB8IG51bGwgfCB1bmRlZmluZWQsXG4gIHN0cmVhbWluZ1RleHQ6IHN0cmluZyxcbiAgbWVzc2FnZUlkPzogc3RyaW5nIHwgbnVsbCxcbiAgc2hvd1RoaW5raW5nID0gZmFsc2Vcbik6IHN0cmluZyB8IG51bGwgPT4ge1xuICBpZiAoIXNob3VsZFN0cmVhbU5hcnJhdGlvbkluVGltZWxpbmUoc3RlcHMsIHN0cmVhbUFjdGl2aXR5LCBzdHJlYW1pbmdUZXh0LCBtZXNzYWdlSWQsIHNob3dUaGlua2luZykpIHJldHVybiBudWxsXG5cbiAgY29uc3QgbGVhZGluZyA9IGZpbmRMZWFkaW5nTmFycmF0aW9uKHN0ZXBzKVxuICAvLyBZYSBlc3TDoSBhbmNsYWRhIGFsIGluaWNpbzogbm8gcmVjdWVsZ3VlcyBlbCBtaXNtbyB0ZXh0byBkZXRyw6FzIGRlIGNhZGEgdG9vbC5cbiAgaWYgKGxlYWRpbmcgJiYgbmFycmF0aW9uVGV4dHNNYXRjaChsZWFkaW5nLnRleHQsIHN0cmVhbWluZ1RleHQpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IGxhc3QgPSB2aXNpYmxlUmVhc29uaW5nU3RlcHMoc3RlcHMsIHNob3dUaGlua2luZykuYXQoLTEpXG4gIGlmIChsYXN0Py50eXBlID09PSAnbmFycmF0aW9uJyAmJiBuYXJyYXRpb25UZXh0c01hdGNoKGxhc3QudGV4dCwgc3RyZWFtaW5nVGV4dCkpIHtcbiAgICByZXR1cm4gc3RyZWFtaW5nVGV4dFxuICB9XG5cbiAgaWYgKCFsYXN0IHx8IGxhc3QudHlwZSA9PT0gJ3RoaW5raW5nJykgcmV0dXJuIHN0cmVhbWluZ1RleHRcblxuICByZXR1cm4gbnVsbFxufVxuIl0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSxjQUFjLFFBQVEsaURBQWlEO0FBQ2hGLFNBQ0VDLG9CQUFvQixFQUNwQkMsYUFBYSxFQUNiQyxvQ0FBb0MsRUFDcENDLG1CQUFtQixRQUNkLG9CQUFvQjtBQUMzQixTQUFTQyxhQUFhLFFBQVEsa0JBQWtCO0FBRWhELE9BQU8sSUFBTUMscUJBQXFCLEdBQUcsbUJBQW1CO0FBRXhELFNBQVNGLG1CQUFtQixRQUFRLG9CQUFvQjtBQUV4RCxPQUFPLElBQU1HLHFCQUFxQixHQUFHLFNBQXhCQSxxQkFBcUJBLENBQUlDLEtBQXNCO0VBQUEsSUFBRUMsWUFBWSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxLQUFLO0VBQUEsT0FDaEZELFlBQVksR0FBR0QsS0FBSyxHQUFHQSxLQUFLLENBQUNLLE1BQU0sQ0FBQ1IsYUFBYSxDQUFDO0FBQUE7QUFFcEQsT0FBTyxJQUFNUyx5QkFBeUIsR0FBRyxTQUE1QkEseUJBQXlCQSxDQUFJQyxJQUFtQixFQUFFQyxZQUEyQjtFQUFBLE9BQ3hGRCxJQUFJLENBQUNFLElBQUksS0FBSyxXQUFXLElBQUliLG1CQUFtQixDQUFDVyxJQUFJLENBQUNHLElBQUksRUFBRUYsWUFBWSxDQUFDO0FBQUE7O0FBRTNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxJQUFNRywrQkFBK0IsR0FBRyxTQUFsQ0EsK0JBQStCQSxDQUMxQ1gsS0FBc0IsRUFDdEJZLGNBQWlELEVBQ2pEQyxhQUFxQixFQUNyQkMsU0FBeUIsRUFFYjtFQUFBLElBRFpiLFlBQVksR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsS0FBSztFQUVwQixJQUFJLENBQUFVLGNBQWMsYUFBZEEsY0FBYyx1QkFBZEEsY0FBYyxDQUFFRyxLQUFLLE1BQUssU0FBUyxFQUFFLE9BQU8sS0FBSztFQUNyRCxJQUFJLENBQUNGLGFBQWEsQ0FBQ0csSUFBSSxDQUFDLENBQUMsRUFBRSxPQUFPLEtBQUs7RUFFdkMsSUFBTUMsT0FBTyxHQUFHbEIscUJBQXFCLENBQUNDLEtBQUssRUFBRUMsWUFBWSxDQUFDO0VBQzFELElBQU1pQixPQUFPLEdBQUd6QixvQkFBb0IsQ0FBQ08sS0FBSyxDQUFDOztFQUUzQztFQUNBLElBQUlrQixPQUFPLElBQUksQ0FBQ3hCLGFBQWEsQ0FBQ3VCLE9BQU8sQ0FBQyxJQUFJdEIsb0NBQW9DLENBQUNrQixhQUFhLENBQUMsRUFBRTtJQUM3RixPQUFPLElBQUk7RUFDYjs7RUFFQTtFQUNBLElBQUlLLE9BQU8sSUFBSXRCLG1CQUFtQixDQUFDc0IsT0FBTyxDQUFDUixJQUFJLEVBQUVHLGFBQWEsQ0FBQyxFQUFFO0lBQy9ELE9BQU8sSUFBSTtFQUNiO0VBRUEsSUFBSSxDQUFDSSxPQUFPLENBQUNkLE1BQU0sSUFBSVIsb0NBQW9DLENBQUNrQixhQUFhLENBQUMsRUFBRTtJQUMxRSxPQUFPLElBQUk7RUFDYjtFQUVBLElBQU1NLElBQUksR0FBR0YsT0FBTyxDQUFDQSxPQUFPLENBQUNkLE1BQU0sR0FBRyxDQUFDLENBQUM7RUFDeEMsSUFBSSxDQUFDZ0IsSUFBSSxJQUFJQSxJQUFJLENBQUNWLElBQUksS0FBSyxVQUFVLEVBQUUsT0FBTyxLQUFLO0VBRW5ELElBQUlVLElBQUksQ0FBQ1YsSUFBSSxLQUFLLFdBQVcsRUFBRTtJQUM3QixJQUFJSyxTQUFTLElBQUksQ0FBQ3RCLGNBQWMsQ0FBQzRCLHlCQUF5QixDQUFDTixTQUFTLENBQUMsRUFBRTtNQUNyRSxPQUFPLEtBQUs7SUFDZDtJQUNBLE9BQU9sQixtQkFBbUIsQ0FBQ3VCLElBQUksQ0FBQ1QsSUFBSSxFQUFFRyxhQUFhLENBQUM7RUFDdEQ7RUFFQSxPQUFPLEtBQUs7QUFDZCxDQUFDOztBQUVEO0FBQ0EsT0FBTyxJQUFNUSwyQkFBMkIsR0FBRyxTQUE5QkEsMkJBQTJCQSxDQUN0Q3JCLEtBQXNCLEVBQ3RCWSxjQUFpRCxFQUNqREMsYUFBcUIsRUFDckJDLFNBQXlCLEVBRVA7RUFBQSxJQURsQmIsWUFBWSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxLQUFLO0VBRXBCLElBQUksQ0FBQ1MsK0JBQStCLENBQUNYLEtBQUssRUFBRVksY0FBYyxFQUFFQyxhQUFhLEVBQUVDLFNBQVMsRUFBRWIsWUFBWSxDQUFDLEVBQUUsT0FBTyxJQUFJO0VBRWhILElBQU1pQixPQUFPLEdBQUd6QixvQkFBb0IsQ0FBQ08sS0FBSyxDQUFDO0VBQzNDO0VBQ0EsSUFBSWtCLE9BQU8sSUFBSXRCLG1CQUFtQixDQUFDc0IsT0FBTyxDQUFDUixJQUFJLEVBQUVHLGFBQWEsQ0FBQyxFQUFFO0lBQy9ELE9BQU8sSUFBSTtFQUNiO0VBRUEsSUFBTU0sSUFBSSxHQUFHcEIscUJBQXFCLENBQUNDLEtBQUssRUFBRUMsWUFBWSxDQUFDLENBQUNxQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7RUFDOUQsSUFBSSxDQUFBSCxJQUFJLGFBQUpBLElBQUksdUJBQUpBLElBQUksQ0FBRVYsSUFBSSxNQUFLLFdBQVcsSUFBSWIsbUJBQW1CLENBQUN1QixJQUFJLENBQUNULElBQUksRUFBRUcsYUFBYSxDQUFDLEVBQUU7SUFDL0UsT0FBT0EsYUFBYTtFQUN0QjtFQUVBLElBQUksQ0FBQ00sSUFBSSxJQUFJQSxJQUFJLENBQUNWLElBQUksS0FBSyxVQUFVLEVBQUUsT0FBT0ksYUFBYTtFQUUzRCxPQUFPLElBQUk7QUFDYixDQUFDIiwiaWdub3JlTGlzdCI6W119
|