@projectcor/maia-components 2.11.100-3 → 2.11.100-5
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/App.js +4 -2
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.js +212 -14
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.styles.js +99 -9
- package/lib/components/atoms/Chip/Chip.js +5 -12
- package/lib/components/atoms/Chip/styles.js +6 -6
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +28 -121
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +2 -6
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +5 -12
- package/lib/components/atoms/MAIAInput/MAIAInput.js +270 -390
- package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +8 -5
- package/lib/components/atoms/MAIAInput/styles.js +86 -102
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.js +41 -54
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.styles.js +12 -25
- package/lib/components/atoms/icons/index.js +1 -10
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +91 -4
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +7 -18
- package/lib/components/molecules/ChatAIHome/styles.js +38 -54
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +191 -44
- package/lib/components/molecules/ChatAIMessages/newStyles.js +26 -10
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +2 -1
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +4 -1
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +8 -1
- package/lib/components/molecules/ChatFooter/ChatFooter.js +62 -23
- package/lib/components/molecules/Sidebar/Sidebar.js +3 -14
- package/lib/components/molecules/StreamAssistantTurnTimeline/StreamAssistantTurnTimeline.js +91 -0
- package/lib/components/molecules/StreamAssistantTurnTimeline/StreamAssistantTurnTimeline.styles.js +19 -0
- package/lib/components/molecules/StreamAssistantTurnTimeline/index.js +2 -0
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +34 -5
- package/lib/dev/DevStreamTimelineDemo.js +614 -0
- package/lib/dev/mockStreamTimelineDemo.js +417 -0
- package/lib/dev/mockStreamTimelineRunner.js +298 -0
- package/lib/hooks/useAgentModel/useCreateAgent.js +40 -14
- package/lib/hooks/useAgentModel/useUpdateAgent.js +37 -11
- package/lib/hooks/useChatManager/useChatManager.js +132 -46
- package/lib/hooks/useEvent.js +2 -1
- package/lib/hooks/useMentionPopover.js +2 -4
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +183 -23
- package/lib/hooks/useStreamTimeline/index.js +7 -0
- package/lib/hooks/useStreamTimeline/streamTimelineStore.js +37 -0
- package/lib/lang/br/index.js +16 -7
- package/lib/lang/en/index.js +16 -7
- package/lib/lang/es/index.js +16 -7
- package/lib/lang/fr/index.js +15 -9
- package/lib/services/maia/Agents/connectors.js +124 -0
- package/lib/styles/config.js +2 -2
- package/lib/types/agentModal.js +1 -1
- package/lib/types/streamActivity.js +1 -1
- package/lib/types/streamTimeline.js +2 -0
- package/lib/utils/normalizeAgentConnectors.js +28 -3
- package/lib/utils/streamDebugLog.js +170 -0
- package/lib/utils/streamExecutionSteps.js +136 -0
- package/lib/utils/streamTimeline.js +177 -0
- package/package.json +1 -1
- package/lib/components/atoms/MAIAInput/maiaInputLayout.js +0 -25
- package/lib/components/atoms/icons/MaiaInputAddIcon.js +0 -42
- package/lib/components/atoms/icons/MaiaInputAttachIcon.js +0 -29
- package/lib/components/atoms/icons/MaiaInputAttachmentImageIcon.js +0 -33
- package/lib/components/atoms/icons/MaiaInputDeepSearchIcon.js +0 -35
- package/lib/components/atoms/icons/MaiaInputMentionIcon.js +0 -44
- package/lib/components/atoms/icons/MaiaInputRobotIcon.js +0 -29
- package/lib/components/atoms/icons/MaiaInputSendIcon.js +0 -29
- package/lib/components/atoms/icons/MaiaInputSlashIcon.js +0 -29
- package/lib/components/atoms/icons/MaiaInputWebSearchIcon.js +0 -35
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
2
|
import _typeof from "@babel/runtime/helpers/typeof";
|
|
3
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
3
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; }
|
|
4
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; }
|
|
5
6
|
/** Grupo de conectores COR dentro de `connectors`. */
|
|
6
7
|
export var COR_CONNECTOR_GROUP = 'COR';
|
|
7
8
|
|
|
9
|
+
/** Grupo de conectores externos (MCP) dentro de `connectors`. */
|
|
10
|
+
export var MCP_CONNECTOR_GROUP = 'MCP';
|
|
11
|
+
|
|
12
|
+
/** Slug del conector NetSuite (catalogo MCP). */
|
|
13
|
+
export var NETSUITE_CONNECTOR_SLUG = 'netsuite';
|
|
14
|
+
|
|
8
15
|
/** Slugs de tool groups COR que habilita el switch de "acceso a tareas" del ABM. */
|
|
9
16
|
export var COR_TOOL_GROUP_SLUGS = ['tareas', 'proyectos'];
|
|
10
17
|
|
|
@@ -21,12 +28,13 @@ export var buildAgentToolGroupsRequest = function buildAgentToolGroupsRequest(ta
|
|
|
21
28
|
* a partir del switch, para hidratar de forma optimista el agente recién creado/editado sin refetch.
|
|
22
29
|
*/
|
|
23
30
|
export var buildAgentConnectorsFromTaskAccess = function buildAgentConnectorsFromTaskAccess(taskAccess) {
|
|
31
|
+
var mcpSlugs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
24
32
|
return [{
|
|
25
33
|
group: COR_CONNECTOR_GROUP,
|
|
26
34
|
slugs: taskAccess ? [].concat(COR_TOOL_GROUP_SLUGS) : []
|
|
27
35
|
}, {
|
|
28
|
-
group:
|
|
29
|
-
slugs:
|
|
36
|
+
group: MCP_CONNECTOR_GROUP,
|
|
37
|
+
slugs: _toConsumableArray(mcpSlugs)
|
|
30
38
|
}];
|
|
31
39
|
};
|
|
32
40
|
|
|
@@ -60,6 +68,23 @@ export var deriveTaskAccessFromToolGroupSlugs = function deriveTaskAccessFromToo
|
|
|
60
68
|
});
|
|
61
69
|
};
|
|
62
70
|
|
|
71
|
+
/** Slugs MCP habilitados en `connectors[].group === 'MCP'`. */
|
|
72
|
+
export var deriveMcpConnectorSlugs = function deriveMcpConnectorSlugs(connectors) {
|
|
73
|
+
var _normalizeAgentConnec, _normalizeAgentConnec2;
|
|
74
|
+
return (_normalizeAgentConnec = (_normalizeAgentConnec2 = normalizeAgentConnectors(connectors)) === null || _normalizeAgentConnec2 === void 0 || (_normalizeAgentConnec2 = _normalizeAgentConnec2.find(function (connector) {
|
|
75
|
+
return connector.group === MCP_CONNECTOR_GROUP;
|
|
76
|
+
})) === null || _normalizeAgentConnec2 === void 0 ? void 0 : _normalizeAgentConnec2.slugs) !== null && _normalizeAgentConnec !== void 0 ? _normalizeAgentConnec : [];
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
/** Slugs MCP que la compañía ya autorizó (token OAuth), no solo los asignados al agente. */
|
|
80
|
+
export var deriveConnectedConnectorSlugs = function deriveConnectedConnectorSlugs(agentConnectors) {
|
|
81
|
+
return agentConnectors.filter(function (connector) {
|
|
82
|
+
return connector.enabled_for_agent && (!connector.requires_auth || connector.user_authorized);
|
|
83
|
+
}).map(function (connector) {
|
|
84
|
+
return connector.slug;
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
|
|
63
88
|
/** Asegura `connectors` normalizados en un agente proveniente del listado de customs. */
|
|
64
89
|
export var withNormalizedConnectors = function withNormalizedConnectors(agent) {
|
|
65
90
|
var connectors = normalizeAgentConnectors(agent.connectors);
|
|
@@ -67,4 +92,4 @@ export var withNormalizedConnectors = function withNormalizedConnectors(agent) {
|
|
|
67
92
|
connectors: connectors
|
|
68
93
|
}) : agent;
|
|
69
94
|
};
|
|
70
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDT1JfQ09OTkVDVE9SX0dST1VQIiwiTUNQX0NPTk5FQ1RPUl9HUk9VUCIsIk5FVFNVSVRFX0NPTk5FQ1RPUl9TTFVHIiwiQ09SX1RPT0xfR1JPVVBfU0xVR1MiLCJidWlsZEFnZW50VG9vbEdyb3Vwc1JlcXVlc3QiLCJ0YXNrQWNjZXNzIiwiY29uY2F0IiwiYnVpbGRBZ2VudENvbm5lY3RvcnNGcm9tVGFza0FjY2VzcyIsIm1jcFNsdWdzIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiZ3JvdXAiLCJzbHVncyIsIl90b0NvbnN1bWFibGVBcnJheSIsIm5vcm1hbGl6ZUFnZW50Q29ubmVjdG9ycyIsInJhdyIsIkFycmF5IiwiaXNBcnJheSIsInBhcnNlZCIsImZpbHRlciIsImNvbm5lY3RvciIsIl90eXBlb2YiLCJtYXAiLCJzbHVnIiwiZGVyaXZlVGFza0FjY2Vzc0Zyb21Ub29sR3JvdXBTbHVncyIsInNvbWUiLCJkZXJpdmVNY3BDb25uZWN0b3JTbHVncyIsImNvbm5lY3RvcnMiLCJfbm9ybWFsaXplQWdlbnRDb25uZWMiLCJfbm9ybWFsaXplQWdlbnRDb25uZWMyIiwiZmluZCIsImRlcml2ZUNvbm5lY3RlZENvbm5lY3RvclNsdWdzIiwiYWdlbnRDb25uZWN0b3JzIiwiZW5hYmxlZF9mb3JfYWdlbnQiLCJyZXF1aXJlc19hdXRoIiwidXNlcl9hdXRob3JpemVkIiwid2l0aE5vcm1hbGl6ZWRDb25uZWN0b3JzIiwiYWdlbnQiLCJfb2JqZWN0U3ByZWFkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL25vcm1hbGl6ZUFnZW50Q29ubmVjdG9ycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFnZW50Q29ubmVjdG9yIH0gZnJvbSAnLi4vdHlwZXMvYWdlbnQnXG5cbi8qKiBHcnVwbyBkZSBjb25lY3RvcmVzIENPUiBkZW50cm8gZGUgYGNvbm5lY3RvcnNgLiAqL1xuZXhwb3J0IGNvbnN0IENPUl9DT05ORUNUT1JfR1JPVVAgPSAnQ09SJ1xuXG4vKiogR3J1cG8gZGUgY29uZWN0b3JlcyBleHRlcm5vcyAoTUNQKSBkZW50cm8gZGUgYGNvbm5lY3RvcnNgLiAqL1xuZXhwb3J0IGNvbnN0IE1DUF9DT05ORUNUT1JfR1JPVVAgPSAnTUNQJ1xuXG4vKiogU2x1ZyBkZWwgY29uZWN0b3IgTmV0U3VpdGUgKGNhdGFsb2dvIE1DUCkuICovXG5leHBvcnQgY29uc3QgTkVUU1VJVEVfQ09OTkVDVE9SX1NMVUcgPSAnbmV0c3VpdGUnXG5cbi8qKiBTbHVncyBkZSB0b29sIGdyb3VwcyBDT1IgcXVlIGhhYmlsaXRhIGVsIHN3aXRjaCBkZSBcImFjY2VzbyBhIHRhcmVhc1wiIGRlbCBBQk0uICovXG5leHBvcnQgY29uc3QgQ09SX1RPT0xfR1JPVVBfU0xVR1M6IHJlYWRvbmx5IHN0cmluZ1tdID0gWyd0YXJlYXMnLCAncHJveWVjdG9zJ11cblxuLyoqXG4gKiBDb25zdHJ1eWUgZWwgYXJyYXkgYHRvb2xfZ3JvdXBfc2x1Z3NgIHBhcmEgbGEgcnV0YSBgUE9TVCBhZ2VudHMve2lkfS90b29sLWdyb3Vwc2AgYSBwYXJ0aXIgZGVsIHN3aXRjaC5cbiAqIEFjdGl2byDihpIgYFsndGFyZWFzJywgJ3Byb3llY3RvcyddYDsgYXBhZ2FkbyDihpIgYFtdYC5cbiAqL1xuZXhwb3J0IGNvbnN0IGJ1aWxkQWdlbnRUb29sR3JvdXBzUmVxdWVzdCA9ICh0YXNrQWNjZXNzOiBib29sZWFuKTogc3RyaW5nW10gPT5cbiAgdGFza0FjY2VzcyA/IFsuLi5DT1JfVE9PTF9HUk9VUF9TTFVHU10gOiBbXVxuXG4vKipcbiAqIENvbnN0cnV5ZSBsb3MgYGNvbm5lY3RvcnNgIGFncnVwYWRvcyAobWlzbW8gZm9ybWF0byBxdWUgZGV2dWVsdmUgZWwgYmFjayBlbiBsaXN0YWRvL3Nlc2nDs24pXG4gKiBhIHBhcnRpciBkZWwgc3dpdGNoLCBwYXJhIGhpZHJhdGFyIGRlIGZvcm1hIG9wdGltaXN0YSBlbCBhZ2VudGUgcmVjacOpbiBjcmVhZG8vZWRpdGFkbyBzaW4gcmVmZXRjaC5cbiAqL1xuZXhwb3J0IGNvbnN0IGJ1aWxkQWdlbnRDb25uZWN0b3JzRnJvbVRhc2tBY2Nlc3MgPSAoXG4gIHRhc2tBY2Nlc3M6IGJvb2xlYW4sXG4gIG1jcFNsdWdzOiBzdHJpbmdbXSA9IFtdXG4pOiBBZ2VudENvbm5lY3RvcltdID0+IFtcbiAgeyBncm91cDogQ09SX0NPTk5FQ1RPUl9HUk9VUCwgc2x1Z3M6IHRhc2tBY2Nlc3MgPyBbLi4uQ09SX1RPT0xfR1JPVVBfU0xVR1NdIDogW10gfSxcbiAgeyBncm91cDogTUNQX0NPTk5FQ1RPUl9HUk9VUCwgc2x1Z3M6IFsuLi5tY3BTbHVnc10gfSxcbl1cblxuLyoqIE5vcm1hbGl6YSBlbCBhcnJheSBgY29ubmVjdG9yc2AgcXVlIGRldnVlbHZlIGxhIEFQSSBkZSBhZ2VudGVzIG8gc2VzaW9uZXMuICovXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplQWdlbnRDb25uZWN0b3JzID0gKHJhdzogdW5rbm93bik6IEFnZW50Q29ubmVjdG9yW10gfCB1bmRlZmluZWQgPT4ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkocmF3KSkgcmV0dXJuIHVuZGVmaW5lZFxuICBjb25zdCBwYXJzZWQgPSByYXdcbiAgICAuZmlsdGVyKChjb25uZWN0b3IpOiBjb25uZWN0b3IgaXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPT4gISFjb25uZWN0b3IgJiYgdHlwZW9mIGNvbm5lY3RvciA9PT0gJ29iamVjdCcpXG4gICAgLm1hcChjb25uZWN0b3IgPT4ge1xuICAgICAgY29uc3QgZ3JvdXAgPSB0eXBlb2YgY29ubmVjdG9yLmdyb3VwID09PSAnc3RyaW5nJyA/IGNvbm5lY3Rvci5ncm91cCA6ICcnXG4gICAgICBjb25zdCBzbHVncyA9IEFycmF5LmlzQXJyYXkoY29ubmVjdG9yLnNsdWdzKVxuICAgICAgICA/IGNvbm5lY3Rvci5zbHVncy5maWx0ZXIoKHNsdWcpOiBzbHVnIGlzIHN0cmluZyA9PiB0eXBlb2Ygc2x1ZyA9PT0gJ3N0cmluZycpXG4gICAgICAgIDogW11cbiAgICAgIHJldHVybiB7IGdyb3VwLCBzbHVncyB9XG4gICAgfSlcbiAgICAuZmlsdGVyKGNvbm5lY3RvciA9PiBjb25uZWN0b3IuZ3JvdXAubGVuZ3RoID4gMClcblxuICByZXR1cm4gcGFyc2VkLmxlbmd0aCA+IDAgPyBwYXJzZWQgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBEZXJpdmEgZWwgZXN0YWRvIGRlbCBzd2l0Y2ggZGUgXCJhY2Nlc28gYSB0YXJlYXNcIiBkZXNkZSBgdG9vbF9ncm91cF9zbHVnc2AgZGVsIGRldGFsbGUgZGVsIGFnZW50ZVxuICogKGBHRVQgYWdlbnRzL3tpZH1gKS4gQWN0aXZvIHNpIGVsIGFycmF5IHRyYWUgYWwgbWVub3MgdW4gc2x1Zy5cbiAqL1xuZXhwb3J0IGNvbnN0IGRlcml2ZVRhc2tBY2Nlc3NGcm9tVG9vbEdyb3VwU2x1Z3MgPSAocmF3OiB1bmtub3duKTogYm9vbGVhbiA9PlxuICBBcnJheS5pc0FycmF5KHJhdykgJiYgcmF3LnNvbWUoc2x1ZyA9PiB0eXBlb2Ygc2x1ZyA9PT0gJ3N0cmluZycgJiYgc2x1Zy5sZW5ndGggPiAwKVxuXG4vKiogU2x1Z3MgTUNQIGhhYmlsaXRhZG9zIGVuIGBjb25uZWN0b3JzW10uZ3JvdXAgPT09ICdNQ1AnYC4gKi9cbmV4cG9ydCBjb25zdCBkZXJpdmVNY3BDb25uZWN0b3JTbHVncyA9IChjb25uZWN0b3JzOiB1bmtub3duKTogc3RyaW5nW10gPT5cbiAgbm9ybWFsaXplQWdlbnRDb25uZWN0b3JzKGNvbm5lY3RvcnMpPy5maW5kKGNvbm5lY3RvciA9PiBjb25uZWN0b3IuZ3JvdXAgPT09IE1DUF9DT05ORUNUT1JfR1JPVVApPy5zbHVncyA/PyBbXVxuXG4vKiogU2x1Z3MgTUNQIHF1ZSBsYSBjb21wYcOxw61hIHlhIGF1dG9yaXrDsyAodG9rZW4gT0F1dGgpLCBubyBzb2xvIGxvcyBhc2lnbmFkb3MgYWwgYWdlbnRlLiAqL1xuZXhwb3J0IGNvbnN0IGRlcml2ZUNvbm5lY3RlZENvbm5lY3RvclNsdWdzID0gKFxuICBhZ2VudENvbm5lY3RvcnM6IHsgc2x1Zzogc3RyaW5nOyByZXF1aXJlc19hdXRoOiBib29sZWFuOyBlbmFibGVkX2Zvcl9hZ2VudDogYm9vbGVhbjsgdXNlcl9hdXRob3JpemVkOiBib29sZWFuIH1bXVxuKTogc3RyaW5nW10gPT5cbiAgYWdlbnRDb25uZWN0b3JzXG4gICAgLmZpbHRlcihjb25uZWN0b3IgPT4gY29ubmVjdG9yLmVuYWJsZWRfZm9yX2FnZW50ICYmICghY29ubmVjdG9yLnJlcXVpcmVzX2F1dGggfHwgY29ubmVjdG9yLnVzZXJfYXV0aG9yaXplZCkpXG4gICAgLm1hcChjb25uZWN0b3IgPT4gY29ubmVjdG9yLnNsdWcpXG5cbi8qKiBBc2VndXJhIGBjb25uZWN0b3JzYCBub3JtYWxpemFkb3MgZW4gdW4gYWdlbnRlIHByb3ZlbmllbnRlIGRlbCBsaXN0YWRvIGRlIGN1c3RvbXMuICovXG5leHBvcnQgY29uc3Qgd2l0aE5vcm1hbGl6ZWRDb25uZWN0b3JzID0gPFQgZXh0ZW5kcyB7IGNvbm5lY3RvcnM/OiB1bmtub3duIH0+KGFnZW50OiBUKTogVCA9PiB7XG4gIGNvbnN0IGNvbm5lY3RvcnMgPSBub3JtYWxpemVBZ2VudENvbm5lY3RvcnMoYWdlbnQuY29ubmVjdG9ycylcbiAgcmV0dXJuIGNvbm5lY3RvcnMgPyB7IC4uLmFnZW50LCBjb25uZWN0b3JzIH0gOiBhZ2VudFxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUVBO0FBQ0EsT0FBTyxJQUFNQSxtQkFBbUIsR0FBRyxLQUFLOztBQUV4QztBQUNBLE9BQU8sSUFBTUMsbUJBQW1CLEdBQUcsS0FBSzs7QUFFeEM7QUFDQSxPQUFPLElBQU1DLHVCQUF1QixHQUFHLFVBQVU7O0FBRWpEO0FBQ0EsT0FBTyxJQUFNQyxvQkFBdUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUM7O0FBRTlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxJQUFNQywyQkFBMkIsR0FBRyxTQUE5QkEsMkJBQTJCQSxDQUFJQyxVQUFtQjtFQUFB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
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
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; }
|
|
3
|
+
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; }
|
|
4
|
+
/* eslint-disable no-console */
|
|
5
|
+
|
|
6
|
+
var LOG_PREFIX = '[maia-stream]';
|
|
7
|
+
var isStreamDebugEnabled = function isStreamDebugEnabled() {
|
|
8
|
+
if (typeof window === 'undefined') return true;
|
|
9
|
+
return window.__MAIA_STREAM_DEBUG__ !== false;
|
|
10
|
+
};
|
|
11
|
+
var safeString = function safeString(value) {
|
|
12
|
+
var maxLen = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 160;
|
|
13
|
+
if (value == null) return '';
|
|
14
|
+
var text = typeof value === 'string' ? value : JSON.stringify(value);
|
|
15
|
+
if (text.length <= maxLen) return text;
|
|
16
|
+
return "".concat(text.slice(0, maxLen), "\u2026");
|
|
17
|
+
};
|
|
18
|
+
export var summarizeTimelineSnapshot = function summarizeTimelineSnapshot(snapshot) {
|
|
19
|
+
return {
|
|
20
|
+
turnId: snapshot.turnId,
|
|
21
|
+
contentFrozenLength: snapshot.contentFrozenLength,
|
|
22
|
+
segmentCount: snapshot.segments.length,
|
|
23
|
+
segments: snapshot.segments.map(function (segment) {
|
|
24
|
+
if (segment.type === 'execution') {
|
|
25
|
+
return {
|
|
26
|
+
type: segment.type,
|
|
27
|
+
id: segment.id,
|
|
28
|
+
steps: segment.steps.map(function (step) {
|
|
29
|
+
return {
|
|
30
|
+
id: step.id,
|
|
31
|
+
node: step.node,
|
|
32
|
+
toolName: step.toolName,
|
|
33
|
+
status: step.status,
|
|
34
|
+
message: safeString(step.message, 80)
|
|
35
|
+
};
|
|
36
|
+
})
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
type: segment.type,
|
|
41
|
+
id: segment.id,
|
|
42
|
+
textLength: segment.text.length,
|
|
43
|
+
textPreview: safeString(segment.text, 80)
|
|
44
|
+
};
|
|
45
|
+
})
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
export var summarizeHitlContext = function summarizeHitlContext(context) {
|
|
49
|
+
var _context$pendingActio, _context$approval, _context$approval2;
|
|
50
|
+
if (!context) return null;
|
|
51
|
+
return {
|
|
52
|
+
messageId: context.messageId,
|
|
53
|
+
threadIds: context.threadIds,
|
|
54
|
+
pendingTools: (_context$pendingActio = context.pendingActions) === null || _context$pendingActio === void 0 ? void 0 : _context$pendingActio.map(function (action) {
|
|
55
|
+
return action.tool_name;
|
|
56
|
+
}),
|
|
57
|
+
approvalStatus: (_context$approval = context.approval) !== null && _context$approval !== void 0 && _context$approval.manual_approval_detected ? 'manual_detected' : 'button',
|
|
58
|
+
originalThreadId: (_context$approval2 = context.approval) === null || _context$approval2 === void 0 ? void 0 : _context$approval2.original_thread_id
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
export var summarizeApprovalPayload = function summarizeApprovalPayload(approval) {
|
|
62
|
+
var _payload$pending_acti;
|
|
63
|
+
var payload = approval;
|
|
64
|
+
return {
|
|
65
|
+
originalThreadId: payload.original_thread_id,
|
|
66
|
+
sessionId: payload.session_id,
|
|
67
|
+
manualApprovalDetected: payload.manual_approval_detected === true,
|
|
68
|
+
warningMessage: payload.warning_message ? safeString(payload.warning_message, 80) : undefined,
|
|
69
|
+
totalActions: payload.total_actions,
|
|
70
|
+
pendingActions: (_payload$pending_acti = payload.pending_actions) === null || _payload$pending_acti === void 0 ? void 0 : _payload$pending_acti.map(function (action) {
|
|
71
|
+
return {
|
|
72
|
+
tool_name: action.tool_name,
|
|
73
|
+
thread_id: action.thread_id,
|
|
74
|
+
tool_call_id: action.tool_call_id
|
|
75
|
+
};
|
|
76
|
+
})
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
export var summarizeStreamActivity = function summarizeStreamActivity(activity) {
|
|
80
|
+
var _activity$executionSt, _activity$executionSt2, _activity$executionSt3;
|
|
81
|
+
if (!activity) return null;
|
|
82
|
+
return {
|
|
83
|
+
phase: activity.phase,
|
|
84
|
+
message: safeString(activity.message, 80),
|
|
85
|
+
executionStepCount: (_activity$executionSt = (_activity$executionSt2 = activity.executionSteps) === null || _activity$executionSt2 === void 0 ? void 0 : _activity$executionSt2.length) !== null && _activity$executionSt !== void 0 ? _activity$executionSt : 0,
|
|
86
|
+
executionSteps: (_activity$executionSt3 = activity.executionSteps) === null || _activity$executionSt3 === void 0 ? void 0 : _activity$executionSt3.map(function (step) {
|
|
87
|
+
return {
|
|
88
|
+
node: step.node,
|
|
89
|
+
toolName: step.toolName,
|
|
90
|
+
status: step.status,
|
|
91
|
+
message: safeString(step.message, 80)
|
|
92
|
+
};
|
|
93
|
+
})
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
export var streamDebugLog = function streamDebugLog(scope, event, payload) {
|
|
97
|
+
if (!isStreamDebugEnabled()) return;
|
|
98
|
+
if (payload) {
|
|
99
|
+
console.info(LOG_PREFIX, scope, event, payload);
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
console.info(LOG_PREFIX, scope, event);
|
|
103
|
+
};
|
|
104
|
+
export var streamDebugWarn = function streamDebugWarn(scope, event, payload) {
|
|
105
|
+
if (!isStreamDebugEnabled()) return;
|
|
106
|
+
if (payload) {
|
|
107
|
+
console.warn(LOG_PREFIX, scope, event, payload);
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
console.warn(LOG_PREFIX, scope, event);
|
|
111
|
+
};
|
|
112
|
+
export var streamDebugTimeline = function streamDebugTimeline(scope, event, snapshot) {
|
|
113
|
+
streamDebugLog(scope, event, summarizeTimelineSnapshot(snapshot));
|
|
114
|
+
};
|
|
115
|
+
export var streamDebugSse = function streamDebugSse(channel, eventType, payload) {
|
|
116
|
+
streamDebugLog("sse:".concat(channel), eventType, payload);
|
|
117
|
+
};
|
|
118
|
+
export var streamDebugHitlContext = function streamDebugHitlContext(scope, event, context) {
|
|
119
|
+
streamDebugLog(scope, event, {
|
|
120
|
+
hitlContext: summarizeHitlContext(context)
|
|
121
|
+
});
|
|
122
|
+
};
|
|
123
|
+
export var streamDebugApproval = function streamDebugApproval(scope, event, approval, extra) {
|
|
124
|
+
streamDebugLog(scope, event, _objectSpread({
|
|
125
|
+
approval: summarizeApprovalPayload(approval)
|
|
126
|
+
}, extra));
|
|
127
|
+
};
|
|
128
|
+
export var streamDebugActivity = function streamDebugActivity(scope, event, activity, extra) {
|
|
129
|
+
streamDebugLog(scope, event, _objectSpread({
|
|
130
|
+
activity: summarizeStreamActivity(activity)
|
|
131
|
+
}, extra));
|
|
132
|
+
};
|
|
133
|
+
export var streamDebugNode = function streamDebugNode(scope, payload, extra) {
|
|
134
|
+
streamDebugLog(scope, 'node', _objectSpread({
|
|
135
|
+
node: payload.node,
|
|
136
|
+
tool_name: payload.tool_name,
|
|
137
|
+
thread_id: payload.thread_id,
|
|
138
|
+
backendMessage: safeString(payload.message, 120),
|
|
139
|
+
resolvedMessage: extra !== null && extra !== void 0 && extra.resolvedMessage ? safeString(extra.resolvedMessage, 120) : undefined,
|
|
140
|
+
resolvedPhase: extra === null || extra === void 0 ? void 0 : extra.resolvedPhase
|
|
141
|
+
}, extra));
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
/** Alerta cuando el node HITL coincide con tools del approval pendiente (posible UI duplicada). */
|
|
145
|
+
export var streamDebugLogHitlUiOverlap = function streamDebugLogHitlUiOverlap(params) {
|
|
146
|
+
var _params$hitlContext$p, _params$hitlContext, _params$nodePayload$t, _params$nodePayload, _params$nodePayload2, _params$activityMessa, _params$activityMessa2, _params$nodePayload$m, _params$nodePayload3, _params$uiSurfaces$le, _params$uiSurfaces, _params$nodePayload4;
|
|
147
|
+
var pendingTools = (_params$hitlContext$p = (_params$hitlContext = params.hitlContext) === null || _params$hitlContext === void 0 || (_params$hitlContext = _params$hitlContext.pendingActions) === null || _params$hitlContext === void 0 ? void 0 : _params$hitlContext.map(function (action) {
|
|
148
|
+
return action.tool_name;
|
|
149
|
+
})) !== null && _params$hitlContext$p !== void 0 ? _params$hitlContext$p : [];
|
|
150
|
+
var nodeTool = (_params$nodePayload$t = (_params$nodePayload = params.nodePayload) === null || _params$nodePayload === void 0 ? void 0 : _params$nodePayload.tool_name) !== null && _params$nodePayload$t !== void 0 ? _params$nodePayload$t : (_params$nodePayload2 = params.nodePayload) === null || _params$nodePayload2 === void 0 ? void 0 : _params$nodePayload2.node;
|
|
151
|
+
var activityMsg = (_params$activityMessa = (_params$activityMessa2 = params.activityMessage) === null || _params$activityMessa2 === void 0 ? void 0 : _params$activityMessa2.trim().toLowerCase()) !== null && _params$activityMessa !== void 0 ? _params$activityMessa : '';
|
|
152
|
+
var backendMsg = (_params$nodePayload$m = (_params$nodePayload3 = params.nodePayload) === null || _params$nodePayload3 === void 0 || (_params$nodePayload3 = _params$nodePayload3.message) === null || _params$nodePayload3 === void 0 ? void 0 : _params$nodePayload3.trim().toLowerCase()) !== null && _params$nodePayload$m !== void 0 ? _params$nodePayload$m : '';
|
|
153
|
+
var toolOverlap = nodeTool && nodeTool !== 'resuming' && pendingTools.some(function (tool) {
|
|
154
|
+
return tool === nodeTool;
|
|
155
|
+
});
|
|
156
|
+
var hasMultipleSurfaces = ((_params$uiSurfaces$le = (_params$uiSurfaces = params.uiSurfaces) === null || _params$uiSurfaces === void 0 ? void 0 : _params$uiSurfaces.length) !== null && _params$uiSurfaces$le !== void 0 ? _params$uiSurfaces$le : 0) >= 2;
|
|
157
|
+
var messagesMatch = activityMsg.length > 0 && backendMsg.length > 0 && activityMsg === backendMsg;
|
|
158
|
+
if (!toolOverlap && !(hasMultipleSurfaces && messagesMatch)) return;
|
|
159
|
+
streamDebugWarn(params.scope, 'hitl-ui-overlap-suspect', {
|
|
160
|
+
source: params.source,
|
|
161
|
+
uiSurfaces: params.uiSurfaces,
|
|
162
|
+
pendingTools: pendingTools,
|
|
163
|
+
nodeTool: nodeTool,
|
|
164
|
+
backendMessage: safeString((_params$nodePayload4 = params.nodePayload) === null || _params$nodePayload4 === void 0 ? void 0 : _params$nodePayload4.message, 120),
|
|
165
|
+
activityMessage: safeString(params.activityMessage, 120),
|
|
166
|
+
messagesMatch: messagesMatch,
|
|
167
|
+
hitlContext: summarizeHitlContext(params.hitlContext)
|
|
168
|
+
});
|
|
169
|
+
};
|
|
170
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMT0dfUFJFRklYIiwiaXNTdHJlYW1EZWJ1Z0VuYWJsZWQiLCJ3aW5kb3ciLCJfX01BSUFfU1RSRUFNX0RFQlVHX18iLCJzYWZlU3RyaW5nIiwidmFsdWUiLCJtYXhMZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJ0ZXh0IiwiSlNPTiIsInN0cmluZ2lmeSIsImNvbmNhdCIsInNsaWNlIiwic3VtbWFyaXplVGltZWxpbmVTbmFwc2hvdCIsInNuYXBzaG90IiwidHVybklkIiwiY29udGVudEZyb3plbkxlbmd0aCIsInNlZ21lbnRDb3VudCIsInNlZ21lbnRzIiwibWFwIiwic2VnbWVudCIsInR5cGUiLCJpZCIsInN0ZXBzIiwic3RlcCIsIm5vZGUiLCJ0b29sTmFtZSIsInN0YXR1cyIsIm1lc3NhZ2UiLCJ0ZXh0TGVuZ3RoIiwidGV4dFByZXZpZXciLCJzdW1tYXJpemVIaXRsQ29udGV4dCIsImNvbnRleHQiLCJfY29udGV4dCRwZW5kaW5nQWN0aW8iLCJfY29udGV4dCRhcHByb3ZhbCIsIl9jb250ZXh0JGFwcHJvdmFsMiIsIm1lc3NhZ2VJZCIsInRocmVhZElkcyIsInBlbmRpbmdUb29scyIsInBlbmRpbmdBY3Rpb25zIiwiYWN0aW9uIiwidG9vbF9uYW1lIiwiYXBwcm92YWxTdGF0dXMiLCJhcHByb3ZhbCIsIm1hbnVhbF9hcHByb3ZhbF9kZXRlY3RlZCIsIm9yaWdpbmFsVGhyZWFkSWQiLCJvcmlnaW5hbF90aHJlYWRfaWQiLCJzdW1tYXJpemVBcHByb3ZhbFBheWxvYWQiLCJfcGF5bG9hZCRwZW5kaW5nX2FjdGkiLCJwYXlsb2FkIiwic2Vzc2lvbklkIiwic2Vzc2lvbl9pZCIsIm1hbnVhbEFwcHJvdmFsRGV0ZWN0ZWQiLCJ3YXJuaW5nTWVzc2FnZSIsIndhcm5pbmdfbWVzc2FnZSIsInRvdGFsQWN0aW9ucyIsInRvdGFsX2FjdGlvbnMiLCJwZW5kaW5nX2FjdGlvbnMiLCJ0aHJlYWRfaWQiLCJ0b29sX2NhbGxfaWQiLCJzdW1tYXJpemVTdHJlYW1BY3Rpdml0eSIsImFjdGl2aXR5IiwiX2FjdGl2aXR5JGV4ZWN1dGlvblN0IiwiX2FjdGl2aXR5JGV4ZWN1dGlvblN0MiIsIl9hY3Rpdml0eSRleGVjdXRpb25TdDMiLCJwaGFzZSIsImV4ZWN1dGlvblN0ZXBDb3VudCIsImV4ZWN1dGlvblN0ZXBzIiwic3RyZWFtRGVidWdMb2ciLCJzY29wZSIsImV2ZW50IiwiY29uc29sZSIsImluZm8iLCJzdHJlYW1EZWJ1Z1dhcm4iLCJ3YXJuIiwic3RyZWFtRGVidWdUaW1lbGluZSIsInN0cmVhbURlYnVnU3NlIiwiY2hhbm5lbCIsImV2ZW50VHlwZSIsInN0cmVhbURlYnVnSGl0bENvbnRleHQiLCJoaXRsQ29udGV4dCIsInN0cmVhbURlYnVnQXBwcm92YWwiLCJleHRyYSIsIl9vYmplY3RTcHJlYWQiLCJzdHJlYW1EZWJ1Z0FjdGl2aXR5Iiwic3RyZWFtRGVidWdOb2RlIiwiYmFja2VuZE1lc3NhZ2UiLCJyZXNvbHZlZE1lc3NhZ2UiLCJyZXNvbHZlZFBoYXNlIiwic3RyZWFtRGVidWdMb2dIaXRsVWlPdmVybGFwIiwicGFyYW1zIiwiX3BhcmFtcyRoaXRsQ29udGV4dCRwIiwiX3BhcmFtcyRoaXRsQ29udGV4dCIsIl9wYXJhbXMkbm9kZVBheWxvYWQkdCIsIl9wYXJhbXMkbm9kZVBheWxvYWQiLCJfcGFyYW1zJG5vZGVQYXlsb2FkMiIsIl9wYXJhbXMkYWN0aXZpdHlNZXNzYSIsIl9wYXJhbXMkYWN0aXZpdHlNZXNzYTIiLCJfcGFyYW1zJG5vZGVQYXlsb2FkJG0iLCJfcGFyYW1zJG5vZGVQYXlsb2FkMyIsIl9wYXJhbXMkdWlTdXJmYWNlcyRsZSIsIl9wYXJhbXMkdWlTdXJmYWNlcyIsIl9wYXJhbXMkbm9kZVBheWxvYWQ0Iiwibm9kZVRvb2wiLCJub2RlUGF5bG9hZCIsImFjdGl2aXR5TXNnIiwiYWN0aXZpdHlNZXNzYWdlIiwidHJpbSIsInRvTG93ZXJDYXNlIiwiYmFja2VuZE1zZyIsInRvb2xPdmVybGFwIiwic29tZSIsInRvb2wiLCJoYXNNdWx0aXBsZVN1cmZhY2VzIiwidWlTdXJmYWNlcyIsIm1lc3NhZ2VzTWF0Y2giLCJzb3VyY2UiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvc3RyZWFtRGVidWdMb2cudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuaW1wb3J0IHR5cGUgeyBBcHByb3ZhbFJlcXVlc3QgfSBmcm9tICcuLi90eXBlcy9DaGF0J1xuaW1wb3J0IHR5cGUgeyBTdHJlYW1BY3Rpdml0eSwgU3RyZWFtTm9kZUV2ZW50UGF5bG9hZCB9IGZyb20gJy4uL3R5cGVzL3N0cmVhbUFjdGl2aXR5J1xuaW1wb3J0IHR5cGUgeyBTdHJlYW1UaW1lbGluZVNuYXBzaG90IH0gZnJvbSAnLi4vdHlwZXMvc3RyZWFtVGltZWxpbmUnXG5pbXBvcnQgdHlwZSB7IEhpdGxFeGVjdXRpb25Db250ZXh0IH0gZnJvbSAnLi9zdHJlYW1BY3Rpdml0eU1lc3NhZ2VzJ1xuXG5jb25zdCBMT0dfUFJFRklYID0gJ1ttYWlhLXN0cmVhbV0nXG5cbnR5cGUgU3RyZWFtRGVidWdQYXlsb2FkID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj5cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICAvKiogRGVzYWN0aXZhciBsb2dzOiBgd2luZG93Ll9fTUFJQV9TVFJFQU1fREVCVUdfXyA9IGZhbHNlYCAqL1xuICAgIF9fTUFJQV9TVFJFQU1fREVCVUdfXz86IGJvb2xlYW5cbiAgfVxufVxuXG5jb25zdCBpc1N0cmVhbURlYnVnRW5hYmxlZCA9ICgpOiBib29sZWFuID0+IHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gdHJ1ZVxuICByZXR1cm4gd2luZG93Ll9fTUFJQV9TVFJFQU1fREVCVUdfXyAhPT0gZmFsc2Vcbn1cblxuY29uc3Qgc2FmZVN0cmluZyA9ICh2YWx1ZTogdW5rbm93biwgbWF4TGVuID0gMTYwKTogc3RyaW5nID0+IHtcbiAgaWYgKHZhbHVlID09IG51bGwpIHJldHVybiAnJ1xuICBjb25zdCB0ZXh0ID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlIDogSlNPTi5zdHJpbmdpZnkodmFsdWUpXG4gIGlmICh0ZXh0Lmxlbmd0aCA8PSBtYXhMZW4pIHJldHVybiB0ZXh0XG4gIHJldHVybiBgJHt0ZXh0LnNsaWNlKDAsIG1heExlbil94oCmYFxufVxuXG5leHBvcnQgY29uc3Qgc3VtbWFyaXplVGltZWxpbmVTbmFwc2hvdCA9IChzbmFwc2hvdDogU3RyZWFtVGltZWxpbmVTbmFwc2hvdCkgPT4gKHtcbiAgdHVybklkOiBzbmFwc2hvdC50dXJuSWQsXG4gIGNvbnRlbnRGcm96ZW5MZW5ndGg6IHNuYXBzaG90LmNvbnRlbnRGcm96ZW5MZW5ndGgsXG4gIHNlZ21lbnRDb3VudDogc25hcHNob3Quc2VnbWVudHMubGVuZ3RoLFxuICBzZWdtZW50czogc25hcHNob3Quc2VnbWVudHMubWFwKHNlZ21lbnQgPT4ge1xuICAgIGlmIChzZWdtZW50LnR5cGUgPT09ICdleGVjdXRpb24nKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBzZWdtZW50LnR5cGUsXG4gICAgICAgIGlkOiBzZWdtZW50LmlkLFxuICAgICAgICBzdGVwczogc2VnbWVudC5zdGVwcy5tYXAoc3RlcCA9PiAoe1xuICAgICAgICAgIGlkOiBzdGVwLmlkLFxuICAgICAgICAgIG5vZGU6IHN0ZXAubm9kZSxcbiAgICAgICAgICB0b29sTmFtZTogc3RlcC50b29sTmFtZSxcbiAgICAgICAgICBzdGF0dXM6IHN0ZXAuc3RhdHVzLFxuICAgICAgICAgIG1lc3NhZ2U6IHNhZmVTdHJpbmcoc3RlcC5tZXNzYWdlLCA4MCksXG4gICAgICAgIH0pKSxcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IHNlZ21lbnQudHlwZSxcbiAgICAgIGlkOiBzZWdtZW50LmlkLFxuICAgICAgdGV4dExlbmd0aDogc2VnbWVudC50ZXh0Lmxlbmd0aCxcbiAgICAgIHRleHRQcmV2aWV3OiBzYWZlU3RyaW5nKHNlZ21lbnQudGV4dCwgODApLFxuICAgIH1cbiAgfSksXG59KVxuXG5leHBvcnQgY29uc3Qgc3VtbWFyaXplSGl0bENvbnRleHQgPSAoY29udGV4dDogSGl0bEV4ZWN1dGlvbkNvbnRleHQgfCBudWxsIHwgdW5kZWZpbmVkKSA9PiB7XG4gIGlmICghY29udGV4dCkgcmV0dXJuIG51bGxcbiAgcmV0dXJuIHtcbiAgICBtZXNzYWdlSWQ6IGNvbnRleHQubWVzc2FnZUlkLFxuICAgIHRocmVhZElkczogY29udGV4dC50aHJlYWRJZHMsXG4gICAgcGVuZGluZ1Rvb2xzOiBjb250ZXh0LnBlbmRpbmdBY3Rpb25zPy5tYXAoYWN0aW9uID0+IGFjdGlvbi50b29sX25hbWUpLFxuICAgIGFwcHJvdmFsU3RhdHVzOiBjb250ZXh0LmFwcHJvdmFsPy5tYW51YWxfYXBwcm92YWxfZGV0ZWN0ZWQgPyAnbWFudWFsX2RldGVjdGVkJyA6ICdidXR0b24nLFxuICAgIG9yaWdpbmFsVGhyZWFkSWQ6IGNvbnRleHQuYXBwcm92YWw/Lm9yaWdpbmFsX3RocmVhZF9pZCxcbiAgfVxufVxuXG5leHBvcnQgY29uc3Qgc3VtbWFyaXplQXBwcm92YWxQYXlsb2FkID0gKGFwcHJvdmFsOiBBcHByb3ZhbFJlcXVlc3QgfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4ge1xuICBjb25zdCBwYXlsb2FkID0gYXBwcm92YWwgYXMgQXBwcm92YWxSZXF1ZXN0XG4gIHJldHVybiB7XG4gICAgb3JpZ2luYWxUaHJlYWRJZDogcGF5bG9hZC5vcmlnaW5hbF90aHJlYWRfaWQsXG4gICAgc2Vzc2lvbklkOiBwYXlsb2FkLnNlc3Npb25faWQsXG4gICAgbWFudWFsQXBwcm92YWxEZXRlY3RlZDogcGF5bG9hZC5tYW51YWxfYXBwcm92YWxfZGV0ZWN0ZWQgPT09IHRydWUsXG4gICAgd2FybmluZ01lc3NhZ2U6IHBheWxvYWQud2FybmluZ19tZXNzYWdlID8gc2FmZVN0cmluZyhwYXlsb2FkLndhcm5pbmdfbWVzc2FnZSwgODApIDogdW5kZWZpbmVkLFxuICAgIHRvdGFsQWN0aW9uczogcGF5bG9hZC50b3RhbF9hY3Rpb25zLFxuICAgIHBlbmRpbmdBY3Rpb25zOiBwYXlsb2FkLnBlbmRpbmdfYWN0aW9ucz8ubWFwKGFjdGlvbiA9PiAoe1xuICAgICAgdG9vbF9uYW1lOiBhY3Rpb24udG9vbF9uYW1lLFxuICAgICAgdGhyZWFkX2lkOiBhY3Rpb24udGhyZWFkX2lkLFxuICAgICAgdG9vbF9jYWxsX2lkOiBhY3Rpb24udG9vbF9jYWxsX2lkLFxuICAgIH0pKSxcbiAgfVxufVxuXG5leHBvcnQgY29uc3Qgc3VtbWFyaXplU3RyZWFtQWN0aXZpdHkgPSAoYWN0aXZpdHk6IFN0cmVhbUFjdGl2aXR5IHwgbnVsbCB8IHVuZGVmaW5lZCkgPT4ge1xuICBpZiAoIWFjdGl2aXR5KSByZXR1cm4gbnVsbFxuICByZXR1cm4ge1xuICAgIHBoYXNlOiBhY3Rpdml0eS5waGFzZSxcbiAgICBtZXNzYWdlOiBzYWZlU3RyaW5nKGFjdGl2aXR5Lm1lc3NhZ2UsIDgwKSxcbiAgICBleGVjdXRpb25TdGVwQ291bnQ6IGFjdGl2aXR5LmV4ZWN1dGlvblN0ZXBzPy5sZW5ndGggPz8gMCxcbiAgICBleGVjdXRpb25TdGVwczogYWN0aXZpdHkuZXhlY3V0aW9uU3RlcHM/Lm1hcChzdGVwID0+ICh7XG4gICAgICBub2RlOiBzdGVwLm5vZGUsXG4gICAgICB0b29sTmFtZTogc3RlcC50b29sTmFtZSxcbiAgICAgIHN0YXR1czogc3RlcC5zdGF0dXMsXG4gICAgICBtZXNzYWdlOiBzYWZlU3RyaW5nKHN0ZXAubWVzc2FnZSwgODApLFxuICAgIH0pKSxcbiAgfVxufVxuXG5leHBvcnQgY29uc3Qgc3RyZWFtRGVidWdMb2cgPSAoc2NvcGU6IHN0cmluZywgZXZlbnQ6IHN0cmluZywgcGF5bG9hZD86IFN0cmVhbURlYnVnUGF5bG9hZCk6IHZvaWQgPT4ge1xuICBpZiAoIWlzU3RyZWFtRGVidWdFbmFibGVkKCkpIHJldHVyblxuICBpZiAocGF5bG9hZCkge1xuICAgIGNvbnNvbGUuaW5mbyhMT0dfUFJFRklYLCBzY29wZSwgZXZlbnQsIHBheWxvYWQpXG4gICAgcmV0dXJuXG4gIH1cbiAgY29uc29sZS5pbmZvKExPR19QUkVGSVgsIHNjb3BlLCBldmVudClcbn1cblxuZXhwb3J0IGNvbnN0IHN0cmVhbURlYnVnV2FybiA9IChzY29wZTogc3RyaW5nLCBldmVudDogc3RyaW5nLCBwYXlsb2FkPzogU3RyZWFtRGVidWdQYXlsb2FkKTogdm9pZCA9PiB7XG4gIGlmICghaXNTdHJlYW1EZWJ1Z0VuYWJsZWQoKSkgcmV0dXJuXG4gIGlmIChwYXlsb2FkKSB7XG4gICAgY29uc29sZS53YXJuKExPR19QUkVGSVgsIHNjb3BlLCBldmVudCwgcGF5bG9hZClcbiAgICByZXR1cm5cbiAgfVxuICBjb25zb2xlLndhcm4oTE9HX1BSRUZJWCwgc2NvcGUsIGV2ZW50KVxufVxuXG5leHBvcnQgY29uc3Qgc3RyZWFtRGVidWdUaW1lbGluZSA9IChzY29wZTogc3RyaW5nLCBldmVudDogc3RyaW5nLCBzbmFwc2hvdDogU3RyZWFtVGltZWxpbmVTbmFwc2hvdCk6IHZvaWQgPT4ge1xuICBzdHJlYW1EZWJ1Z0xvZyhzY29wZSwgZXZlbnQsIHN1bW1hcml6ZVRpbWVsaW5lU25hcHNob3Qoc25hcHNob3QpKVxufVxuXG5leHBvcnQgY29uc3Qgc3RyZWFtRGVidWdTc2UgPSAoXG4gIGNoYW5uZWw6ICdhc2tNYWlhJyB8ICdjb250aW51ZVRocmVhZCcgfCAncHJvY2Vzc1NTRVN0cmVhbScsXG4gIGV2ZW50VHlwZTogc3RyaW5nLFxuICBwYXlsb2FkPzogU3RyZWFtRGVidWdQYXlsb2FkXG4pOiB2b2lkID0+IHtcbiAgc3RyZWFtRGVidWdMb2coYHNzZToke2NoYW5uZWx9YCwgZXZlbnRUeXBlLCBwYXlsb2FkKVxufVxuXG5leHBvcnQgY29uc3Qgc3RyZWFtRGVidWdIaXRsQ29udGV4dCA9IChcbiAgc2NvcGU6IHN0cmluZyxcbiAgZXZlbnQ6IHN0cmluZyxcbiAgY29udGV4dDogSGl0bEV4ZWN1dGlvbkNvbnRleHQgfCBudWxsIHwgdW5kZWZpbmVkXG4pOiB2b2lkID0+IHtcbiAgc3RyZWFtRGVidWdMb2coc2NvcGUsIGV2ZW50LCB7IGhpdGxDb250ZXh0OiBzdW1tYXJpemVIaXRsQ29udGV4dChjb250ZXh0KSB9KVxufVxuXG5leHBvcnQgY29uc3Qgc3RyZWFtRGVidWdBcHByb3ZhbCA9IChcbiAgc2NvcGU6IHN0cmluZyxcbiAgZXZlbnQ6IHN0cmluZyxcbiAgYXBwcm92YWw6IEFwcHJvdmFsUmVxdWVzdCB8IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBleHRyYT86IFN0cmVhbURlYnVnUGF5bG9hZFxuKTogdm9pZCA9PiB7XG4gIHN0cmVhbURlYnVnTG9nKHNjb3BlLCBldmVudCwge1xuICAgIGFwcHJvdmFsOiBzdW1tYXJpemVBcHByb3ZhbFBheWxvYWQoYXBwcm92YWwpLFxuICAgIC4uLmV4dHJhLFxuICB9KVxufVxuXG5leHBvcnQgY29uc3Qgc3RyZWFtRGVidWdBY3Rpdml0eSA9IChcbiAgc2NvcGU6IHN0cmluZyxcbiAgZXZlbnQ6IHN0cmluZyxcbiAgYWN0aXZpdHk6IFN0cmVhbUFjdGl2aXR5IHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgZXh0cmE/OiBTdHJlYW1EZWJ1Z1BheWxvYWRcbik6IHZvaWQgPT4ge1xuICBzdHJlYW1EZWJ1Z0xvZyhzY29wZSwgZXZlbnQsIHtcbiAgICBhY3Rpdml0eTogc3VtbWFyaXplU3RyZWFtQWN0aXZpdHkoYWN0aXZpdHkpLFxuICAgIC4uLmV4dHJhLFxuICB9KVxufVxuXG5leHBvcnQgY29uc3Qgc3RyZWFtRGVidWdOb2RlID0gKFxuICBzY29wZTogc3RyaW5nLFxuICBwYXlsb2FkOiBTdHJlYW1Ob2RlRXZlbnRQYXlsb2FkLFxuICBleHRyYT86IFN0cmVhbURlYnVnUGF5bG9hZCAmIHsgcmVzb2x2ZWRNZXNzYWdlPzogc3RyaW5nOyByZXNvbHZlZFBoYXNlPzogc3RyaW5nIH1cbik6IHZvaWQgPT4ge1xuICBzdHJlYW1EZWJ1Z0xvZyhzY29wZSwgJ25vZGUnLCB7XG4gICAgbm9kZTogcGF5bG9hZC5ub2RlLFxuICAgIHRvb2xfbmFtZTogcGF5bG9hZC50b29sX25hbWUsXG4gICAgdGhyZWFkX2lkOiBwYXlsb2FkLnRocmVhZF9pZCxcbiAgICBiYWNrZW5kTWVzc2FnZTogc2FmZVN0cmluZyhwYXlsb2FkLm1lc3NhZ2UsIDEyMCksXG4gICAgcmVzb2x2ZWRNZXNzYWdlOiBleHRyYT8ucmVzb2x2ZWRNZXNzYWdlID8gc2FmZVN0cmluZyhleHRyYS5yZXNvbHZlZE1lc3NhZ2UsIDEyMCkgOiB1bmRlZmluZWQsXG4gICAgcmVzb2x2ZWRQaGFzZTogZXh0cmE/LnJlc29sdmVkUGhhc2UsXG4gICAgLi4uZXh0cmEsXG4gIH0pXG59XG5cbi8qKiBBbGVydGEgY3VhbmRvIGVsIG5vZGUgSElUTCBjb2luY2lkZSBjb24gdG9vbHMgZGVsIGFwcHJvdmFsIHBlbmRpZW50ZSAocG9zaWJsZSBVSSBkdXBsaWNhZGEpLiAqL1xuZXhwb3J0IGNvbnN0IHN0cmVhbURlYnVnTG9nSGl0bFVpT3ZlcmxhcCA9IChwYXJhbXM6IHtcbiAgc2NvcGU6IHN0cmluZ1xuICBzb3VyY2U6ICdub2RlJyB8ICdpbml0aWFsQWN0aXZpdHknIHwgJ2FwcHJvdmFsQm94JyB8ICd0aW1lbGluZVNlZ21lbnQnXG4gIG5vZGVQYXlsb2FkPzogU3RyZWFtTm9kZUV2ZW50UGF5bG9hZFxuICBhY3Rpdml0eU1lc3NhZ2U/OiBzdHJpbmdcbiAgaGl0bENvbnRleHQ/OiBIaXRsRXhlY3V0aW9uQ29udGV4dCB8IG51bGxcbiAgdWlTdXJmYWNlcz86IHN0cmluZ1tdXG59KTogdm9pZCA9PiB7XG4gIGNvbnN0IHBlbmRpbmdUb29scyA9IHBhcmFtcy5oaXRsQ29udGV4dD8ucGVuZGluZ0FjdGlvbnM/Lm1hcChhY3Rpb24gPT4gYWN0aW9uLnRvb2xfbmFtZSkgPz8gW11cbiAgY29uc3Qgbm9kZVRvb2wgPSBwYXJhbXMubm9kZVBheWxvYWQ/LnRvb2xfbmFtZSA/PyBwYXJhbXMubm9kZVBheWxvYWQ/Lm5vZGVcbiAgY29uc3QgYWN0aXZpdHlNc2cgPSBwYXJhbXMuYWN0aXZpdHlNZXNzYWdlPy50cmltKCkudG9Mb3dlckNhc2UoKSA/PyAnJ1xuICBjb25zdCBiYWNrZW5kTXNnID0gcGFyYW1zLm5vZGVQYXlsb2FkPy5tZXNzYWdlPy50cmltKCkudG9Mb3dlckNhc2UoKSA/PyAnJ1xuXG4gIGNvbnN0IHRvb2xPdmVybGFwID0gbm9kZVRvb2wgJiYgbm9kZVRvb2wgIT09ICdyZXN1bWluZycgJiYgcGVuZGluZ1Rvb2xzLnNvbWUodG9vbCA9PiB0b29sID09PSBub2RlVG9vbClcbiAgY29uc3QgaGFzTXVsdGlwbGVTdXJmYWNlcyA9IChwYXJhbXMudWlTdXJmYWNlcz8ubGVuZ3RoID8/IDApID49IDJcbiAgY29uc3QgbWVzc2FnZXNNYXRjaCA9IGFjdGl2aXR5TXNnLmxlbmd0aCA+IDAgJiYgYmFja2VuZE1zZy5sZW5ndGggPiAwICYmIGFjdGl2aXR5TXNnID09PSBiYWNrZW5kTXNnXG5cbiAgaWYgKCF0b29sT3ZlcmxhcCAmJiAhKGhhc011bHRpcGxlU3VyZmFjZXMgJiYgbWVzc2FnZXNNYXRjaCkpIHJldHVyblxuXG4gIHN0cmVhbURlYnVnV2FybihwYXJhbXMuc2NvcGUsICdoaXRsLXVpLW92ZXJsYXAtc3VzcGVjdCcsIHtcbiAgICBzb3VyY2U6IHBhcmFtcy5zb3VyY2UsXG4gICAgdWlTdXJmYWNlczogcGFyYW1zLnVpU3VyZmFjZXMsXG4gICAgcGVuZGluZ1Rvb2xzLFxuICAgIG5vZGVUb29sLFxuICAgIGJhY2tlbmRNZXNzYWdlOiBzYWZlU3RyaW5nKHBhcmFtcy5ub2RlUGF5bG9hZD8ubWVzc2FnZSwgMTIwKSxcbiAgICBhY3Rpdml0eU1lc3NhZ2U6IHNhZmVTdHJpbmcocGFyYW1zLmFjdGl2aXR5TWVzc2FnZSwgMTIwKSxcbiAgICBtZXNzYWdlc01hdGNoLFxuICAgIGhpdGxDb250ZXh0OiBzdW1tYXJpemVIaXRsQ29udGV4dChwYXJh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WCxxQkFBQSxJQUFBQyxvQkFBQSxHQUFHVCxNQUFNLENBQUNjLFdBQVcsY0FBQUwsb0JBQUEsZ0JBQUFBLG9CQUFBLEdBQWxCQSxvQkFBQSxDQUFvQnZFLE9BQU8sY0FBQXVFLG9CQUFBLHVCQUEzQkEsb0JBQUEsQ0FBNkJRLElBQUksQ0FBQyxDQUFDLENBQUNDLFdBQVcsQ0FBQyxDQUFDLGNBQUFWLHFCQUFBLGNBQUFBLHFCQUFBLEdBQUksRUFBRTtFQUUxRSxJQUFNWSxXQUFXLEdBQUdQLFFBQVEsSUFBSUEsUUFBUSxLQUFLLFVBQVUsSUFBSWpFLFlBQVksQ0FBQ3lFLElBQUksQ0FBQyxVQUFBQyxJQUFJO0lBQUEsT0FBSUEsSUFBSSxLQUFLVCxRQUFRO0VBQUEsRUFBQztFQUN2RyxJQUFNVSxtQkFBbUIsR0FBRyxFQUFBYixxQkFBQSxJQUFBQyxrQkFBQSxHQUFDWCxNQUFNLENBQUN3QixVQUFVLGNBQUFiLGtCQUFBLHVCQUFqQkEsa0JBQUEsQ0FBbUIvRixNQUFNLGNBQUE4RixxQkFBQSxjQUFBQSxxQkFBQSxHQUFJLENBQUMsS0FBSyxDQUFDO0VBQ2pFLElBQU1lLGFBQWEsR0FBR1YsV0FBVyxDQUFDbkcsTUFBTSxHQUFHLENBQUMsSUFBSXVHLFVBQVUsQ0FBQ3ZHLE1BQU0sR0FBRyxDQUFDLElBQUltRyxXQUFXLEtBQUtJLFVBQVU7RUFFbkcsSUFBSSxDQUFDQyxXQUFXLElBQUksRUFBRUcsbUJBQW1CLElBQUlFLGFBQWEsQ0FBQyxFQUFFO0VBRTdEMUMsZUFBZSxDQUFDaUIsTUFBTSxDQUFDckIsS0FBSyxFQUFFLHlCQUF5QixFQUFFO0lBQ3ZEK0MsTUFBTSxFQUFFMUIsTUFBTSxDQUFDMEIsTUFBTTtJQUNyQkYsVUFBVSxFQUFFeEIsTUFBTSxDQUFDd0IsVUFBVTtJQUM3QjVFLFlBQVksRUFBWkEsWUFBWTtJQUNaaUUsUUFBUSxFQUFSQSxRQUFRO0lBQ1JqQixjQUFjLEVBQUVwRixVQUFVLEVBQUFvRyxvQkFBQSxHQUFDWixNQUFNLENBQUNjLFdBQVcsY0FBQUYsb0JBQUEsdUJBQWxCQSxvQkFBQSxDQUFvQjFFLE9BQU8sRUFBRSxHQUFHLENBQUM7SUFDNUQ4RSxlQUFlLEVBQUV4RyxVQUFVLENBQUN3RixNQUFNLENBQUNnQixlQUFlLEVBQUUsR0FBRyxDQUFDO0lBQ3hEUyxhQUFhLEVBQWJBLGFBQWE7SUFDYm5DLFdBQVcsRUFBRWpELG9CQUFvQixDQUFDMkQsTUFBTSxDQUFDVixXQUFXO0VBQ3RELENBQUMsQ0FBQztBQUNKLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
4
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
5
|
+
import { resolveHitlNodeStreamActivity } from './streamActivityMessages';
|
|
6
|
+
import { streamDebugLog } from './streamDebugLog';
|
|
7
|
+
var executionStepCounter = 0;
|
|
8
|
+
var nextStepId = function nextStepId() {
|
|
9
|
+
executionStepCounter += 1;
|
|
10
|
+
return "exec-step-".concat(executionStepCounter);
|
|
11
|
+
};
|
|
12
|
+
export var resetExecutionStepCounter = function resetExecutionStepCounter() {
|
|
13
|
+
executionStepCounter = 0;
|
|
14
|
+
};
|
|
15
|
+
var completeRunningSteps = function completeRunningSteps(steps) {
|
|
16
|
+
return steps.map(function (step) {
|
|
17
|
+
return step.status === 'running' ? _objectSpread(_objectSpread({}, step), {}, {
|
|
18
|
+
status: 'completed'
|
|
19
|
+
}) : step;
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
export var completeRunningStepsInSteps = completeRunningSteps;
|
|
23
|
+
export var completeAllExecutionSteps = function completeAllExecutionSteps(steps) {
|
|
24
|
+
return steps.map(function (step) {
|
|
25
|
+
return _objectSpread(_objectSpread({}, step), {}, {
|
|
26
|
+
status: 'completed'
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
export var getRunningExecutionSteps = function getRunningExecutionSteps(steps) {
|
|
31
|
+
return steps.filter(function (step) {
|
|
32
|
+
return step.status === 'running';
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
export var shouldShowExecutionTrace = function shouldShowExecutionTrace(steps) {
|
|
36
|
+
if (!(steps !== null && steps !== void 0 && steps.length)) return false;
|
|
37
|
+
var running = getRunningExecutionSteps(steps);
|
|
38
|
+
if (running.length === steps.length) return running.length >= 1;
|
|
39
|
+
if (steps.length >= 2) return true;
|
|
40
|
+
return steps.some(function (step) {
|
|
41
|
+
return step.status === 'completed';
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
export var resolveStepMessageFromNode = function resolveStepMessageFromNode(payload, t, context, threadId) {
|
|
45
|
+
var activity = resolveHitlNodeStreamActivity(payload.message, t, context, threadId !== null && threadId !== void 0 ? threadId : payload.thread_id);
|
|
46
|
+
return activity.message;
|
|
47
|
+
};
|
|
48
|
+
export var pushExecutionStepFromNode = function pushExecutionStepFromNode(currentSteps, payload, t, context, threadId) {
|
|
49
|
+
var _context$pendingActio, _payload$tool_name;
|
|
50
|
+
var message = resolveStepMessageFromNode(payload, t, context, threadId);
|
|
51
|
+
var completedPrevious = completeRunningSteps(currentSteps);
|
|
52
|
+
|
|
53
|
+
// continue-thread: el backend envía `resuming` y enseguida el node de la tool
|
|
54
|
+
// con el mismo mensaje legible. Omitimos `resuming` para no duplicar el indicador.
|
|
55
|
+
if (payload.node === 'resuming' && context !== null && context !== void 0 && (_context$pendingActio = context.pendingActions) !== null && _context$pendingActio !== void 0 && _context$pendingActio.length) {
|
|
56
|
+
streamDebugLog('executionSteps', 'skip:resuming-with-hitl-context', {
|
|
57
|
+
message: message,
|
|
58
|
+
pendingTools: context.pendingActions.map(function (action) {
|
|
59
|
+
return action.tool_name;
|
|
60
|
+
})
|
|
61
|
+
});
|
|
62
|
+
return completedPrevious;
|
|
63
|
+
}
|
|
64
|
+
if (payload.node !== 'resuming') {
|
|
65
|
+
var _lastStep = completedPrevious[completedPrevious.length - 1];
|
|
66
|
+
if ((_lastStep === null || _lastStep === void 0 ? void 0 : _lastStep.node) === 'resuming' && _lastStep.message.trim().toLowerCase() === message.trim().toLowerCase()) {
|
|
67
|
+
streamDebugLog('executionSteps', 'replace:redundant-resuming', {
|
|
68
|
+
resumingMessage: _lastStep.message,
|
|
69
|
+
toolNode: payload.node,
|
|
70
|
+
toolName: payload.tool_name
|
|
71
|
+
});
|
|
72
|
+
completedPrevious = completedPrevious.slice(0, -1);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
var toolName = (_payload$tool_name = payload.tool_name) !== null && _payload$tool_name !== void 0 ? _payload$tool_name : payload.node !== 'resuming' ? payload.node : undefined;
|
|
76
|
+
var lastStep = completedPrevious[completedPrevious.length - 1];
|
|
77
|
+
if ((lastStep === null || lastStep === void 0 ? void 0 : lastStep.status) === 'running' && lastStep.toolName === toolName && lastStep.message.trim().toLowerCase() === message.trim().toLowerCase()) {
|
|
78
|
+
streamDebugLog('executionSteps', 'skip:duplicate-running', {
|
|
79
|
+
node: payload.node,
|
|
80
|
+
toolName: toolName,
|
|
81
|
+
message: message
|
|
82
|
+
});
|
|
83
|
+
return completedPrevious;
|
|
84
|
+
}
|
|
85
|
+
var newStep = {
|
|
86
|
+
id: nextStepId(),
|
|
87
|
+
message: message,
|
|
88
|
+
node: payload.node,
|
|
89
|
+
toolName: toolName,
|
|
90
|
+
status: 'running'
|
|
91
|
+
};
|
|
92
|
+
var nextSteps = [].concat(_toConsumableArray(completedPrevious), [newStep]);
|
|
93
|
+
streamDebugLog('executionSteps', 'push', {
|
|
94
|
+
node: payload.node,
|
|
95
|
+
toolName: newStep.toolName,
|
|
96
|
+
message: newStep.message,
|
|
97
|
+
stepCount: nextSteps.length,
|
|
98
|
+
hasHitlContext: Boolean(context)
|
|
99
|
+
});
|
|
100
|
+
return nextSteps;
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
/** Al iniciar token/content: marca tools como completadas y agrega/actualiza el paso de escritura. */
|
|
104
|
+
export var finalizeExecutionStepsForWriting = function finalizeExecutionStepsForWriting(currentSteps, writingMessage) {
|
|
105
|
+
var completed = completeRunningSteps(currentSteps);
|
|
106
|
+
var writingIndex = completed.findIndex(function (step) {
|
|
107
|
+
return step.node === '__writing__';
|
|
108
|
+
});
|
|
109
|
+
if (writingIndex >= 0) {
|
|
110
|
+
return completed.map(function (step, index) {
|
|
111
|
+
return index === writingIndex ? _objectSpread(_objectSpread({}, step), {}, {
|
|
112
|
+
message: writingMessage,
|
|
113
|
+
status: 'running'
|
|
114
|
+
}) : step;
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
return [].concat(_toConsumableArray(completed), [{
|
|
118
|
+
id: nextStepId(),
|
|
119
|
+
message: writingMessage,
|
|
120
|
+
node: '__writing__',
|
|
121
|
+
status: 'running'
|
|
122
|
+
}]);
|
|
123
|
+
};
|
|
124
|
+
export var mergeActivityWithExecutionSteps = function mergeActivityWithExecutionSteps(activity, steps) {
|
|
125
|
+
return _objectSpread(_objectSpread({}, activity), {}, {
|
|
126
|
+
executionSteps: steps.length > 0 ? steps : undefined
|
|
127
|
+
});
|
|
128
|
+
};
|
|
129
|
+
export var getActiveExecutionStep = function getActiveExecutionStep(steps) {
|
|
130
|
+
if (!steps.length) return null;
|
|
131
|
+
var running = _toConsumableArray(steps).reverse().find(function (step) {
|
|
132
|
+
return step.status === 'running';
|
|
133
|
+
});
|
|
134
|
+
return running !== null && running !== void 0 ? running : steps[steps.length - 1];
|
|
135
|
+
};
|
|
136
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXNvbHZlSGl0bE5vZGVTdHJlYW1BY3Rpdml0eSIsInN0cmVhbURlYnVnTG9nIiwiZXhlY3V0aW9uU3RlcENvdW50ZXIiLCJuZXh0U3RlcElkIiwiY29uY2F0IiwicmVzZXRFeGVjdXRpb25TdGVwQ291bnRlciIsImNvbXBsZXRlUnVubmluZ1N0ZXBzIiwic3RlcHMiLCJtYXAiLCJzdGVwIiwic3RhdHVzIiwiX29iamVjdFNwcmVhZCIsImNvbXBsZXRlUnVubmluZ1N0ZXBzSW5TdGVwcyIsImNvbXBsZXRlQWxsRXhlY3V0aW9uU3RlcHMiLCJnZXRSdW5uaW5nRXhlY3V0aW9uU3RlcHMiLCJmaWx0ZXIiLCJzaG91bGRTaG93RXhlY3V0aW9uVHJhY2UiLCJsZW5ndGgiLCJydW5uaW5nIiwic29tZSIsInJlc29sdmVTdGVwTWVzc2FnZUZyb21Ob2RlIiwicGF5bG9hZCIsInQiLCJjb250ZXh0IiwidGhyZWFkSWQiLCJhY3Rpdml0eSIsIm1lc3NhZ2UiLCJ0aHJlYWRfaWQiLCJwdXNoRXhlY3V0aW9uU3RlcEZyb21Ob2RlIiwiY3VycmVudFN0ZXBzIiwiX2NvbnRleHQkcGVuZGluZ0FjdGlvIiwiX3BheWxvYWQkdG9vbF9uYW1lIiwiY29tcGxldGVkUHJldmlvdXMiLCJub2RlIiwicGVuZGluZ0FjdGlvbnMiLCJwZW5kaW5nVG9vbHMiLCJhY3Rpb24iLCJ0b29sX25hbWUiLCJsYXN0U3RlcCIsInRyaW0iLCJ0b0xvd2VyQ2FzZSIsInJlc3VtaW5nTWVzc2FnZSIsInRvb2xOb2RlIiwidG9vbE5hbWUiLCJzbGljZSIsInVuZGVmaW5lZCIsIm5ld1N0ZXAiLCJpZCIsIm5leHRTdGVwcyIsIl90b0NvbnN1bWFibGVBcnJheSIsInN0ZXBDb3VudCIsImhhc0hpdGxDb250ZXh0IiwiQm9vbGVhbiIsImZpbmFsaXplRXhlY3V0aW9uU3RlcHNGb3JXcml0aW5nIiwid3JpdGluZ01lc3NhZ2UiLCJjb21wbGV0ZWQiLCJ3cml0aW5nSW5kZXgiLCJmaW5kSW5kZXgiLCJpbmRleCIsIm1lcmdlQWN0aXZpdHlXaXRoRXhlY3V0aW9uU3RlcHMiLCJleGVjdXRpb25TdGVwcyIsImdldEFjdGl2ZUV4ZWN1dGlvblN0ZXAiLCJyZXZlcnNlIiwiZmluZCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9zdHJlYW1FeGVjdXRpb25TdGVwcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFN0cmVhbUV4ZWN1dGlvblN0ZXAsIFN0cmVhbU5vZGVFdmVudFBheWxvYWQsIFN0cmVhbUFjdGl2aXR5IH0gZnJvbSAnLi4vdHlwZXMvc3RyZWFtQWN0aXZpdHknXG5pbXBvcnQgdHlwZSB7IEhpdGxFeGVjdXRpb25Db250ZXh0IH0gZnJvbSAnLi9zdHJlYW1BY3Rpdml0eU1lc3NhZ2VzJ1xuaW1wb3J0IHsgcmVzb2x2ZUhpdGxOb2RlU3RyZWFtQWN0aXZpdHkgfSBmcm9tICcuL3N0cmVhbUFjdGl2aXR5TWVzc2FnZXMnXG5pbXBvcnQgeyBzdHJlYW1EZWJ1Z0xvZyB9IGZyb20gJy4vc3RyZWFtRGVidWdMb2cnXG5cbnR5cGUgVHJhbnNsYXRlRm4gPSAoa2V5OiBzdHJpbmcpID0+IHN0cmluZ1xuXG5sZXQgZXhlY3V0aW9uU3RlcENvdW50ZXIgPSAwXG5cbmNvbnN0IG5leHRTdGVwSWQgPSAoKTogc3RyaW5nID0+IHtcbiAgZXhlY3V0aW9uU3RlcENvdW50ZXIgKz0gMVxuICByZXR1cm4gYGV4ZWMtc3RlcC0ke2V4ZWN1dGlvblN0ZXBDb3VudGVyfWBcbn1cblxuZXhwb3J0IGNvbnN0IHJlc2V0RXhlY3V0aW9uU3RlcENvdW50ZXIgPSAoKTogdm9pZCA9PiB7XG4gIGV4ZWN1dGlvblN0ZXBDb3VudGVyID0gMFxufVxuXG5jb25zdCBjb21wbGV0ZVJ1bm5pbmdTdGVwcyA9IChzdGVwczogU3RyZWFtRXhlY3V0aW9uU3RlcFtdKTogU3RyZWFtRXhlY3V0aW9uU3RlcFtdID0+XG4gIHN0ZXBzLm1hcChzdGVwID0+IChzdGVwLnN0YXR1cyA9PT0gJ3J1bm5pbmcnID8geyAuLi5zdGVwLCBzdGF0dXM6ICdjb21wbGV0ZWQnIGFzIGNvbnN0IH0gOiBzdGVwKSlcblxuZXhwb3J0IGNvbnN0IGNvbXBsZXRlUnVubmluZ1N0ZXBzSW5TdGVwcyA9IGNvbXBsZXRlUnVubmluZ1N0ZXBzXG5cbmV4cG9ydCBjb25zdCBjb21wbGV0ZUFsbEV4ZWN1dGlvblN0ZXBzID0gKHN0ZXBzOiBTdHJlYW1FeGVjdXRpb25TdGVwW10pOiBTdHJlYW1FeGVjdXRpb25TdGVwW10gPT5cbiAgc3RlcHMubWFwKHN0ZXAgPT4gKHsgLi4uc3RlcCwgc3RhdHVzOiAnY29tcGxldGVkJyBhcyBjb25zdCB9KSlcblxuZXhwb3J0IGNvbnN0IGdldFJ1bm5pbmdFeGVjdXRpb25TdGVwcyA9IChzdGVwczogU3RyZWFtRXhlY3V0aW9uU3RlcFtdKTogU3RyZWFtRXhlY3V0aW9uU3RlcFtdID0+XG4gIHN0ZXBzLmZpbHRlcihzdGVwID0+IHN0ZXAuc3RhdHVzID09PSAncnVubmluZycpXG5cbmV4cG9ydCBjb25zdCBzaG91bGRTaG93RXhlY3V0aW9uVHJhY2UgPSAoc3RlcHM6IFN0cmVhbUV4ZWN1dGlvblN0ZXBbXSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gPT4ge1xuICBpZiAoIXN0ZXBzPy5sZW5ndGgpIHJldHVybiBmYWxzZVxuICBjb25zdCBydW5uaW5nID0gZ2V0UnVubmluZ0V4ZWN1dGlvblN0ZXBzKHN0ZXBzKVxuICBpZiAocnVubmluZy5sZW5ndGggPT09IHN0ZXBzLmxlbmd0aCkgcmV0dXJuIHJ1bm5pbmcubGVuZ3RoID49IDFcbiAgaWYgKHN0ZXBzLmxlbmd0aCA+PSAyKSByZXR1cm4gdHJ1ZVxuICByZXR1cm4gc3RlcHMuc29tZShzdGVwID0+IHN0ZXAuc3RhdHVzID09PSAnY29tcGxldGVkJylcbn1cblxuZXhwb3J0IGNvbnN0IHJlc29sdmVTdGVwTWVzc2FnZUZyb21Ob2RlID0gKFxuICBwYXlsb2FkOiBTdHJlYW1Ob2RlRXZlbnRQYXlsb2FkLFxuICB0OiBUcmFuc2xhdGVGbixcbiAgY29udGV4dD86IEhpdGxFeGVjdXRpb25Db250ZXh0IHwgbnVsbCxcbiAgdGhyZWFkSWQ/OiBzdHJpbmdcbik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGFjdGl2aXR5ID0gcmVzb2x2ZUhpdGxOb2RlU3RyZWFtQWN0aXZpdHkocGF5bG9hZC5tZXNzYWdlLCB0LCBjb250ZXh0LCB0aHJlYWRJZCA/PyBwYXlsb2FkLnRocmVhZF9pZClcbiAgcmV0dXJuIGFjdGl2aXR5Lm1lc3NhZ2Vcbn1cblxuZXhwb3J0IGNvbnN0IHB1c2hFeGVjdXRpb25TdGVwRnJvbU5vZGUgPSAoXG4gIGN1cnJlbnRTdGVwczogU3RyZWFtRXhlY3V0aW9uU3RlcFtdLFxuICBwYXlsb2FkOiBTdHJlYW1Ob2RlRXZlbnRQYXlsb2FkLFxuICB0OiBUcmFuc2xhdGVGbixcbiAgY29udGV4dD86IEhpdGxFeGVjdXRpb25Db250ZXh0IHwgbnVsbCxcbiAgdGhyZWFkSWQ/OiBzdHJpbmdcbik6IFN0cmVhbUV4ZWN1dGlvblN0ZXBbXSA9PiB7XG4gIGNvbnN0IG1lc3NhZ2UgPSByZXNvbHZlU3RlcE1lc3NhZ2VGcm9tTm9kZShwYXlsb2FkLCB0LCBjb250ZXh0LCB0aHJlYWRJZClcbiAgbGV0IGNvbXBsZXRlZFByZXZpb3VzID0gY29tcGxldGVSdW5uaW5nU3RlcHMoY3VycmVudFN0ZXBzKVxuXG4gIC8vIGNvbnRpbnVlLXRocmVhZDogZWwgYmFja2VuZCBlbnbDrWEgYHJlc3VtaW5nYCB5IGVuc2VndWlkYSBlbCBub2RlIGRlIGxhIHRvb2xcbiAgLy8gY29uIGVsIG1pc21vIG1lbnNhamUgbGVnaWJsZS4gT21pdGltb3MgYHJlc3VtaW5nYCBwYXJhIG5vIGR1cGxpY2FyIGVsIGluZGljYWRvci5cbiAgaWYgKHBheWxvYWQubm9kZSA9PT0gJ3Jlc3VtaW5nJyAmJiBjb250ZXh0Py5wZW5kaW5nQWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgc3RyZWFtRGVidWdMb2coJ2V4ZWN1dGlvblN0ZXBzJywgJ3NraXA6cmVzdW1pbmctd2l0aC1oaXRsLWNvbnRleHQnLCB7XG4gICAgICBtZXNzYWdlLFxuICAgICAgcGVuZGluZ1Rvb2xzOiBjb250ZXh0LnBlbmRpbmdBY3Rpb25zLm1hcChhY3Rpb24gPT4gYWN0aW9uLnRvb2xfbmFtZSksXG4gICAgfSlcbiAgICByZXR1cm4gY29tcGxldGVkUHJldmlvdXNcbiAgfVxuXG4gIGlmIChwYXlsb2FkLm5vZGUgIT09ICdyZXN1bWluZycpIHtcbiAgICBjb25zdCBsYXN0U3RlcCA9IGNvbXBsZXRlZFByZXZpb3VzW2NvbXBsZXRlZFByZXZpb3VzLmxlbmd0aCAtIDFdXG4gICAgaWYgKGxhc3RTdGVwPy5ub2RlID09PSAncmVzdW1pbmcnICYmIGxhc3RTdGVwLm1lc3NhZ2UudHJpbSgpLnRvTG93ZXJDYXNlKCkgPT09IG1lc3NhZ2UudHJpbSgpLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIHN0cmVhbURlYnVnTG9nKCdleGVjdXRpb25TdGVwcycsICdyZXBsYWNlOnJlZHVuZGFudC1yZXN1bWluZycsIHtcbiAgICAgICAgcmVzdW1pbmdNZXNzYWdlOiBsYXN0U3RlcC5tZXNzYWdlLFxuICAgICAgICB0b29sTm9kZTogcGF5bG9hZC5ub2RlLFxuICAgICAgICB0b29sTmFtZTogcGF5bG9hZC50b29sX25hbWUsXG4gICAgICB9KVxuICAgICAgY29tcGxldGVkUHJldmlvdXMgPSBjb21wbGV0ZWRQcmV2aW91cy5zbGljZSgwLCAtMSlcbiAgICB9XG4gIH1cblxuICBjb25zdCB0b29sTmFtZSA9IHBheWxvYWQudG9vbF9uYW1lID8/IChwYXlsb2FkLm5vZGUgIT09ICdyZXN1bWluZycgPyBwYXlsb2FkLm5vZGUgOiB1bmRlZmluZWQpXG4gIGNvbnN0IGxhc3RTdGVwID0gY29tcGxldGVkUHJldmlvdXNbY29tcGxldGVkUHJldmlvdXMubGVuZ3RoIC0gMV1cbiAgaWYgKFxuICAgIGxhc3RTdGVwPy5zdGF0dXMgPT09ICdydW5uaW5nJyAmJlxuICAgIGxhc3RTdGVwLnRvb2xOYW1lID09PSB0b29sTmFtZSAmJlxuICAgIGxhc3RTdGVwLm1lc3NhZ2UudHJpbSgpLnRvTG93ZXJDYXNlKCkgPT09IG1lc3NhZ2UudHJpbSgpLnRvTG93ZXJDYXNlKClcbiAgKSB7XG4gICAgc3RyZWFtRGVidWdMb2coJ2V4ZWN1dGlvblN0ZXBzJywgJ3NraXA6ZHVwbGljYXRlLXJ1bm5pbmcnLCB7XG4gICAgICBub2RlOiBwYXlsb2FkLm5vZGUsXG4gICAgICB0b29sTmFtZSxcbiAgICAgIG1lc3NhZ2UsXG4gICAgfSlcbiAgICByZXR1cm4gY29tcGxldGVkUHJldmlvdXNcbiAgfVxuXG4gIGNvbnN0IG5ld1N0ZXA6IFN0cmVhbUV4ZWN1dGlvblN0ZXAgPSB7XG4gICAgaWQ6IG5leHRTdGVwSWQoKSxcbiAgICBtZXNzYWdlLFxuICAgIG5vZGU6IHBheWxvYWQubm9kZSxcbiAgICB0b29sTmFtZSxcbiAgICBzdGF0dXM6ICdydW5uaW5nJyxcbiAgfVxuICBjb25zdCBuZXh0U3RlcHMgPSBbLi4uY29tcGxldGVkUHJldmlvdXMsIG5ld1N0ZXBdXG4gIHN0cmVhbURlYnVnTG9nKCdleGVjdXRpb25TdGVwcycsICdwdXNoJywge1xuICAgIG5vZGU6IHBheWxvYWQubm9kZSxcbiAgICB0b29sTmFtZTogbmV3U3RlcC50b29sTmFtZSxcbiAgICBtZXNzYWdlOiBuZXdTdGVwLm1lc3NhZ2UsXG4gICAgc3RlcENvdW50OiBuZXh0U3RlcHMubGVuZ3RoLFxuICAgIGhhc0hpdGxDb250ZXh0OiBCb29sZWFuKGNvbnRleHQpLFxuICB9KVxuICByZXR1cm4gbmV4dFN0ZXBzXG59XG5cbi8qKiBBbCBpbmljaWFyIHRva2VuL2NvbnRlbnQ6IG1hcmNhIHRvb2xzIGNvbW8gY29tcGxldGFkYXMgeSBhZ3JlZ2EvYWN0dWFsaXphIGVsIHBhc28gZGUgZXNjcml0dXJhLiAqL1xuZXhwb3J0IGNvbnN0IGZpbmFsaXplRXhlY3V0aW9uU3RlcHNGb3JXcml0aW5nID0gKFxuICBjdXJyZW50U3RlcHM6IFN0cmVhbUV4ZWN1dGlvblN0ZXBbXSxcbiAgd3JpdGluZ01lc3NhZ2U6IHN0cmluZ1xuKTogU3RyZWFtRXhlY3V0aW9uU3RlcFtdID0+IHtcbiAgY29uc3QgY29tcGxldGVkID0gY29tcGxldGVSdW5uaW5nU3RlcHMoY3VycmVudFN0ZXBzKVxuICBjb25zdCB3cml0aW5nSW5kZXggPSBjb21wbGV0ZWQuZmluZEluZGV4KHN0ZXAgPT4gc3RlcC5ub2RlID09PSAnX193cml0aW5nX18nKVxuXG4gIGlmICh3cml0aW5nSW5kZXggPj0gMCkge1xuICAgIHJldHVybiBjb21wbGV0ZWQubWFwKChzdGVwLCBpbmRleCkgPT5cbiAgICAgIGluZGV4ID09PSB3cml0aW5nSW5kZXggPyB7IC4uLnN0ZXAsIG1lc3NhZ2U6IHdyaXRpbmdNZXNzYWdlLCBzdGF0dXM6ICdydW5uaW5nJyBhcyBjb25zdCB9IDogc3RlcFxuICAgIClcbiAgfVxuXG4gIHJldHVybiBbXG4gICAgLi4uY29tcGxldGVkLFxuICAgIHtcbiAgICAgIGlkOiBuZXh0U3RlcElkKCksXG4gICAgICBtZXNzYWdlOiB3cml0aW5nTWVzc2FnZSxcbiAgICAgIG5vZGU6ICdfX3dyaXRpbmdfXycsXG4gICAgICBzdGF0dXM6ICdydW5uaW5nJyBhcyBjb25zdCxcbiAgICB9LFxuICBdXG59XG5cbmV4cG9ydCBjb25zdCBtZXJnZUFjdGl2aXR5V2l0aEV4ZWN1dGlvblN0ZXBzID0gKFxuICBhY3Rpdml0eTogU3RyZWFtQWN0aXZpdHksXG4gIHN0ZXBzOiBTdHJlYW1FeGVjdXRpb25TdGVwW11cbik6IFN0cmVhbUFjdGl2aXR5ID0+ICh7XG4gIC4uLmFjdGl2aXR5LFxuICBleGVjdXRpb25TdGVwczogc3RlcHMubGVuZ3RoID4gMCA/IHN0ZXBzIDogdW5kZWZpbmVkLFxufSlcblxuZXhwb3J0IGNvbnN0IGdldEFjdGl2ZUV4ZWN1dGlvblN0ZXAgPSAoc3RlcHM6IFN0cmVhbUV4ZWN1dGlvblN0ZXBbXSk6IFN0cmVhbUV4ZWN1dGlvblN0ZXAgfCBudWxsID0+IHtcbiAgaWYgKCFzdGVwcy5sZW5ndGgpIHJldHVybiBudWxsXG4gIGNvbnN0IHJ1bm5pbmcgPSBbLi4uc3RlcHNdLnJldmVyc2UoKS5maW5kKHN0ZXAgPT4gc3RlcC5zdGF0dXMgPT09ICdydW5uaW5nJylcbiAgcmV0dXJuIHJ1bm5pbmcgPz8gc3RlcHNbc3RlcHMubGVuZ3RoIC0gMV1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLFNBQVNBLDZCQUE2QixRQUFRLDBCQUEwQjtBQUN4RSxTQUFTQyxjQUFjLFFBQVEsa0JBQWtCO0FBSWpELElBQUlDLG9CQUFvQixHQUFHLENBQUM7QUFFNUIsSUFBTUMsVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQUEsRUFBaUI7RUFDL0JELG9CQUFvQixJQUFJLENBQUM7RUFDekIsb0JBQUFFLE1BQUEsQ0FBb0JGLG9CQUFvQjtBQUMxQyxDQUFDO0FBRUQsT0FBTyxJQUFNRyx5QkFBeUIsR0FBRyxTQUE1QkEseUJBQXlCQSxDQUFBLEVBQWU7RUFDbkRILG9CQUFvQixHQUFHLENBQUM7QUFDMUIsQ0FBQztBQUVELElBQU1JLG9CQUFvQixHQUFHLFNBQXZCQSxvQkFBb0JBLENBQUlDLEtBQTRCO0VBQUEsT0FDeERBLEtBQUssQ0FBQ0MsR0FBRyxDQUFDLFVBQUFDLElBQUk7SUFBQSxPQUFLQSxJQUFJLENBQUNDLE1BQU0sS0FBSyxTQUFTLEdBQUFDLGFBQUEsQ0FBQUEsYUFBQSxLQUFRRixJQUFJO01BQUVDLE1BQU0sRUFBRTtJQUFvQixLQUFLRCxJQUFJO0VBQUEsQ0FBQyxDQUFDO0FBQUE7QUFFbkcsT0FBTyxJQUFNRywyQkFBMkIsR0FBR04sb0JBQW9CO0FBRS9ELE9BQU8sSUFBTU8seUJBQXlCLEdBQUcsU0FBNUJBLHlCQUF5QkEsQ0FBSU4sS0FBNEI7RUFBQSxPQUNwRUEsS0FBSyxDQUFDQyxHQUFHLENBQUMsVUFBQUMsSUFBSTtJQUFBLE9BQUFFLGFBQUEsQ0FBQUEsYUFBQSxLQUFVRixJQUFJO01BQUVDLE1BQU0sRUFBRTtJQUFvQjtFQUFBLENBQUcsQ0FBQztBQUFBO0FBRWhFLE9BQU8sSUFBTUksd0JBQXdCLEdBQUcsU0FBM0JBLHdCQUF3QkEsQ0FB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
|