@projectcor/maia-components 2.11.100-6 → 2.11.100-8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/lib/App.js +2 -4
  2. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.js +14 -212
  3. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.styles.js +9 -99
  4. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +4 -91
  5. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +61 -264
  6. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +4 -1
  7. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +5 -34
  8. package/lib/hooks/useAgentModel/useCreateAgent.js +14 -40
  9. package/lib/hooks/useAgentModel/useUpdateAgent.js +11 -37
  10. package/lib/hooks/useChatManager/useChatManager.js +66 -167
  11. package/lib/hooks/useEvent.js +1 -2
  12. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +23 -183
  13. package/lib/lang/br/index.js +2 -14
  14. package/lib/lang/en/index.js +2 -14
  15. package/lib/lang/es/index.js +2 -14
  16. package/lib/lang/fr/index.js +2 -14
  17. package/lib/services/maia/Agents/getAgents.js +54 -30
  18. package/lib/services/maia/RecentContexts/getRecentContexts.js +32 -3
  19. package/lib/services/maia/bootstrap/agentsPrefetchSession.js +97 -0
  20. package/lib/services/maia/bootstrap/fetchAgentsList.js +267 -0
  21. package/lib/services/maia/bootstrap/prefetchMaiaAgents.js +96 -0
  22. package/lib/services/maia/bootstrap/prefetchMaiaRecentContexts.js +56 -0
  23. package/lib/services/maia/bootstrap/recentContextsPrefetchSession.js +88 -0
  24. package/lib/types/agentModal.js +1 -1
  25. package/lib/types/streamActivity.js +1 -1
  26. package/lib/utils/normalizeAgentConnectors.js +3 -28
  27. package/package.json +1 -1
  28. package/lib/components/molecules/StreamAssistantTurnTimeline/StreamAssistantTurnTimeline.js +0 -91
  29. package/lib/components/molecules/StreamAssistantTurnTimeline/StreamAssistantTurnTimeline.styles.js +0 -19
  30. package/lib/components/molecules/StreamAssistantTurnTimeline/index.js +0 -2
  31. package/lib/dev/DevStreamTimelineDemo.js +0 -614
  32. package/lib/dev/mockStreamTimelineDemo.js +0 -417
  33. package/lib/dev/mockStreamTimelineRunner.js +0 -298
  34. package/lib/hooks/useStreamTimeline/index.js +0 -7
  35. package/lib/hooks/useStreamTimeline/streamTimelineStore.js +0 -37
  36. package/lib/services/maia/Agents/connectors.js +0 -124
  37. package/lib/types/streamTimeline.js +0 -2
  38. package/lib/utils/streamDebugLog.js +0 -170
  39. package/lib/utils/streamExecutionSteps.js +0 -136
  40. package/lib/utils/streamTimeline.js +0 -177
@@ -0,0 +1,97 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
3
+ import { mapCORLang } from '../../../lang/utils';
4
+ var session = null;
5
+ export var buildAgentsPrefetchKey = function buildAgentsPrefetchKey(section, lang, isMultiAgents) {
6
+ return "".concat(section, ":").concat(mapCORLang(lang), ":").concat(isMultiAgents ? '1' : '0');
7
+ };
8
+
9
+ /**
10
+ * Guarda el resultado del hover hasta que se abre MAIA (takeAgentsPrefetch).
11
+ * Si el usuario cierra el modal, resetAgentsPrefetchSession invalida la sesión.
12
+ */
13
+ export var registerAgentsPrefetch = function registerAgentsPrefetch(key, promise) {
14
+ session = {
15
+ key: key,
16
+ promise: promise
17
+ };
18
+ return promise.then(function (result) {
19
+ var _session;
20
+ if (((_session = session) === null || _session === void 0 ? void 0 : _session.key) === key) {
21
+ session = {
22
+ key: key,
23
+ result: result
24
+ };
25
+ }
26
+ return result;
27
+ })["catch"](function (error) {
28
+ var _session2;
29
+ if (((_session2 = session) === null || _session2 === void 0 ? void 0 : _session2.key) === key) {
30
+ session = null;
31
+ }
32
+ throw error;
33
+ });
34
+ };
35
+ export var hasAgentsPrefetchReady = function hasAgentsPrefetchReady(key) {
36
+ var _session3;
37
+ return ((_session3 = session) === null || _session3 === void 0 ? void 0 : _session3.key) === key && session.result != null;
38
+ };
39
+ export var hasAgentsPrefetchInFlight = function hasAgentsPrefetchInFlight(key) {
40
+ var _session4;
41
+ return ((_session4 = session) === null || _session4 === void 0 ? void 0 : _session4.key) === key && session.promise != null && session.result == null;
42
+ };
43
+
44
+ /**
45
+ * Consumido al abrir MAIA: devuelve agents prefetched y limpia la sesión.
46
+ * Si el prefetch sigue en vuelo, espera la misma Promise (una sola petición).
47
+ */
48
+ export var takeAgentsPrefetch = /*#__PURE__*/function () {
49
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(key) {
50
+ var _session5, result, _t;
51
+ return _regeneratorRuntime.wrap(function (_context) {
52
+ while (1) switch (_context.prev = _context.next) {
53
+ case 0:
54
+ if (!(!session || session.key !== key)) {
55
+ _context.next = 1;
56
+ break;
57
+ }
58
+ return _context.abrupt("return", null);
59
+ case 1:
60
+ _context.prev = 1;
61
+ if (!(session.promise && !session.result)) {
62
+ _context.next = 2;
63
+ break;
64
+ }
65
+ _context.next = 2;
66
+ return session.promise;
67
+ case 2:
68
+ if (!(!session || session.key !== key || !session.result)) {
69
+ _context.next = 3;
70
+ break;
71
+ }
72
+ return _context.abrupt("return", null);
73
+ case 3:
74
+ _session5 = session, result = _session5.result;
75
+ session = null;
76
+ return _context.abrupt("return", result);
77
+ case 4:
78
+ _context.prev = 4;
79
+ _t = _context["catch"](1);
80
+ session = null;
81
+ return _context.abrupt("return", null);
82
+ case 5:
83
+ case "end":
84
+ return _context.stop();
85
+ }
86
+ }, _callee, null, [[1, 4]]);
87
+ }));
88
+ return function takeAgentsPrefetch(_x) {
89
+ return _ref.apply(this, arguments);
90
+ };
91
+ }();
92
+
93
+ /** Al cerrar MAIA: invalidar prefetch para que el próximo hover vuelva a pedir agents. */
94
+ export var resetAgentsPrefetchSession = function resetAgentsPrefetchSession() {
95
+ session = null;
96
+ };
97
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYXBDT1JMYW5nIiwic2Vzc2lvbiIsImJ1aWxkQWdlbnRzUHJlZmV0Y2hLZXkiLCJzZWN0aW9uIiwibGFuZyIsImlzTXVsdGlBZ2VudHMiLCJjb25jYXQiLCJyZWdpc3RlckFnZW50c1ByZWZldGNoIiwia2V5IiwicHJvbWlzZSIsInRoZW4iLCJyZXN1bHQiLCJfc2Vzc2lvbiIsImVycm9yIiwiX3Nlc3Npb24yIiwiaGFzQWdlbnRzUHJlZmV0Y2hSZWFkeSIsIl9zZXNzaW9uMyIsImhhc0FnZW50c1ByZWZldGNoSW5GbGlnaHQiLCJfc2Vzc2lvbjQiLCJ0YWtlQWdlbnRzUHJlZmV0Y2giLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJfc2Vzc2lvbjUiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiYWJydXB0Iiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJyZXNldEFnZW50c1ByZWZldGNoU2Vzc2lvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9tYWlhL2Jvb3RzdHJhcC9hZ2VudHNQcmVmZXRjaFNlc3Npb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IG1hcENPUkxhbmcgfSBmcm9tICcuLi8uLi8uLi9sYW5nL3V0aWxzJ1xuaW1wb3J0IHR5cGUgeyBGZXRjaEFnZW50c0xpc3RSZXN1bHQgfSBmcm9tICcuL2ZldGNoQWdlbnRzTGlzdCdcblxudHlwZSBBZ2VudHNQcmVmZXRjaFNlc3Npb24gPSB7XG4gIGtleTogc3RyaW5nXG4gIHJlc3VsdD86IEZldGNoQWdlbnRzTGlzdFJlc3VsdFxuICBwcm9taXNlPzogUHJvbWlzZTxGZXRjaEFnZW50c0xpc3RSZXN1bHQ+XG59XG5cbmxldCBzZXNzaW9uOiBBZ2VudHNQcmVmZXRjaFNlc3Npb24gfCBudWxsID0gbnVsbFxuXG5leHBvcnQgY29uc3QgYnVpbGRBZ2VudHNQcmVmZXRjaEtleSA9IChzZWN0aW9uOiBTZWN0aW9uLCBsYW5nOiBzdHJpbmcsIGlzTXVsdGlBZ2VudHM6IGJvb2xlYW4pOiBzdHJpbmcgPT5cbiAgYCR7c2VjdGlvbn06JHttYXBDT1JMYW5nKGxhbmcpfToke2lzTXVsdGlBZ2VudHMgPyAnMScgOiAnMCd9YFxuXG4vKipcbiAqIEd1YXJkYSBlbCByZXN1bHRhZG8gZGVsIGhvdmVyIGhhc3RhIHF1ZSBzZSBhYnJlIE1BSUEgKHRha2VBZ2VudHNQcmVmZXRjaCkuXG4gKiBTaSBlbCB1c3VhcmlvIGNpZXJyYSBlbCBtb2RhbCwgcmVzZXRBZ2VudHNQcmVmZXRjaFNlc3Npb24gaW52YWxpZGEgbGEgc2VzacOzbi5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyQWdlbnRzUHJlZmV0Y2ggPSAoXG4gIGtleTogc3RyaW5nLFxuICBwcm9taXNlOiBQcm9taXNlPEZldGNoQWdlbnRzTGlzdFJlc3VsdD5cbik6IFByb21pc2U8RmV0Y2hBZ2VudHNMaXN0UmVzdWx0PiA9PiB7XG4gIHNlc3Npb24gPSB7IGtleSwgcHJvbWlzZSB9XG5cbiAgcmV0dXJuIHByb21pc2VcbiAgICAudGhlbihyZXN1bHQgPT4ge1xuICAgICAgaWYgKHNlc3Npb24/LmtleSA9PT0ga2V5KSB7XG4gICAgICAgIHNlc3Npb24gPSB7IGtleSwgcmVzdWx0IH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9KVxuICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICBpZiAoc2Vzc2lvbj8ua2V5ID09PSBrZXkpIHtcbiAgICAgICAgc2Vzc2lvbiA9IG51bGxcbiAgICAgIH1cbiAgICAgIHRocm93IGVycm9yXG4gICAgfSlcbn1cblxuZXhwb3J0IGNvbnN0IGhhc0FnZW50c1ByZWZldGNoUmVhZHkgPSAoa2V5OiBzdHJpbmcpOiBib29sZWFuID0+IHNlc3Npb24/LmtleSA9PT0ga2V5ICYmIHNlc3Npb24ucmVzdWx0ICE9IG51bGxcblxuZXhwb3J0IGNvbnN0IGhhc0FnZW50c1ByZWZldGNoSW5GbGlnaHQgPSAoa2V5OiBzdHJpbmcpOiBib29sZWFuID0+XG4gIHNlc3Npb24/LmtleSA9PT0ga2V5ICYmIHNlc3Npb24ucHJvbWlzZSAhPSBudWxsICYmIHNlc3Npb24ucmVzdWx0ID09IG51bGxcblxuLyoqXG4gKiBDb25zdW1pZG8gYWwgYWJyaXIgTUFJQTogZGV2dWVsdmUgYWdlbnRzIHByZWZldGNoZWQgeSBsaW1waWEgbGEgc2VzacOzbi5cbiAqIFNpIGVsIHByZWZldGNoIHNpZ3VlIGVuIHZ1ZWxvLCBlc3BlcmEgbGEgbWlzbWEgUHJvbWlzZSAodW5hIHNvbGEgcGV0aWNpw7NuKS5cbiAqL1xuZXhwb3J0IGNvbnN0IHRha2VBZ2VudHNQcmVmZXRjaCA9IGFzeW5jIChrZXk6IHN0cmluZyk6IFByb21pc2U8RmV0Y2hBZ2VudHNMaXN0UmVzdWx0IHwgbnVsbD4gPT4ge1xuICBpZiAoIXNlc3Npb24gfHwgc2Vzc2lvbi5rZXkgIT09IGtleSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICB0cnkge1xuICAgIGlmIChzZXNzaW9uLnByb21pc2UgJiYgIXNlc3Npb24ucmVzdWx0KSB7XG4gICAgICBhd2FpdCBzZXNzaW9uLnByb21pc2VcbiAgICB9XG5cbiAgICBpZiAoIXNlc3Npb24gfHwgc2Vzc2lvbi5rZXkgIT09IGtleSB8fCAhc2Vzc2lvbi5yZXN1bHQpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgY29uc3QgeyByZXN1bHQgfSA9IHNlc3Npb25cbiAgICBzZXNzaW9uID0gbnVsbFxuICAgIHJldHVybiByZXN1bHRcbiAgfSBjYXRjaCB7XG4gICAgc2Vzc2lvbiA9IG51bGxcbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbi8qKiBBbCBjZXJyYXIgTUFJQTogaW52YWxpZGFyIHByZWZldGNoIHBhcmEgcXVlIGVsIHByw7N4aW1vIGhvdmVyIHZ1ZWx2YSBhIHBlZGlyIGFnZW50cy4gKi9cbmV4cG9ydCBjb25zdCByZXNldEFnZW50c1ByZWZldGNoU2Vzc2lvbiA9ICgpOiB2b2lkID0+IHtcbiAgc2Vzc2lvbiA9IG51bGxcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFDQSxTQUFTQSxVQUFVLFFBQVEscUJBQXFCO0FBU2hELElBQUlDLE9BQXFDLEdBQUcsSUFBSTtBQUVoRCxPQUFPLElBQU1DLHNCQUFzQixHQUFHLFNBQXpCQSxzQkFBc0JBLENBQUlDLE9BQWdCLEVBQUVDLElBQVksRUFBRUMsYUFBc0I7RUFBQSxVQUFBQyxNQUFBLENBQ3hGSCxPQUFPLE9BQUFHLE1BQUEsQ0FBSU4sVUFBVSxDQUFDSSxJQUFJLENBQUMsT0FBQUUsTUFBQSxDQUFJRCxhQUFhLEdBQUcsR0FBRyxHQUFHLEdBQUc7QUFBQSxDQUFFOztBQUUvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUUsc0JBQXNCLEdBQUcsU0FBekJBLHNCQUFzQkEsQ0FDakNDLEdBQVcsRUFDWEMsT0FBdUMsRUFDSjtFQUNuQ1IsT0FBTyxHQUFHO0lBQUVPLEdBQUcsRUFBSEEsR0FBRztJQUFFQyxPQUFPLEVBQVBBO0VBQVEsQ0FBQztFQUUxQixPQUFPQSxPQUFPLENBQ1hDLElBQUksQ0FBQyxVQUFBQyxNQUFNLEVBQUk7SUFBQSxJQUFBQyxRQUFBO0lBQ2QsSUFBSSxFQUFBQSxRQUFBLEdBQUFYLE9BQU8sY0FBQVcsUUFBQSx1QkFBUEEsUUFBQSxDQUFTSixHQUFHLE1BQUtBLEdBQUcsRUFBRTtNQUN4QlAsT0FBTyxHQUFHO1FBQUVPLEdBQUcsRUFBSEEsR0FBRztRQUFFRyxNQUFNLEVBQU5BO01BQU8sQ0FBQztJQUMzQjtJQUNBLE9BQU9BLE1BQU07RUFDZixDQUFDLENBQUMsU0FDSSxDQUFDLFVBQUFFLEtBQUssRUFBSTtJQUFBLElBQUFDLFNBQUE7SUFDZCxJQUFJLEVBQUFBLFNBQUEsR0FBQWIsT0FBTyxjQUFBYSxTQUFBLHVCQUFQQSxTQUFBLENBQVNOLEdB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
@@ -0,0 +1,267 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
4
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
5
+ import { fetchMaia } from '../client';
6
+ import { withNormalizedConnectors } from '../../../utils/normalizeAgentConnectors';
7
+ import { mapCORLang } from '../../../lang/utils';
8
+ var isMaiaAgent = function isMaiaAgent(agent) {
9
+ return (agent === null || agent === void 0 ? void 0 : agent.type) === 'orchestrator';
10
+ };
11
+ export var is403AgentFetchError = function is403AgentFetchError(err) {
12
+ var _error$response, _error$message, _error$message2;
13
+ var error = err;
14
+ return (error === null || error === void 0 || (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) === 403 || (error === null || error === void 0 ? void 0 : error.status) === 403 || Boolean(error === null || error === void 0 || (_error$message = error.message) === null || _error$message === void 0 ? void 0 : _error$message.includes("You don't have permission to view agents")) || Boolean(error === null || error === void 0 || (_error$message2 = error.message) === null || _error$message2 === void 0 ? void 0 : _error$message2.includes('Failed fetching data'));
15
+ };
16
+ export var mergeAgentsWithoutDuplicates = function mergeAgentsWithoutDuplicates(base, extra) {
17
+ var ids = new Set(base.map(function (agent) {
18
+ return agent.id;
19
+ }));
20
+ var merged = _toConsumableArray(base);
21
+ extra.forEach(function (agent) {
22
+ if (!ids.has(agent.id)) merged.push(agent);
23
+ });
24
+ return merged;
25
+ };
26
+ export var sortAgentsList = function sortAgentsList(agents) {
27
+ var maiaAgents = agents.filter(isMaiaAgent);
28
+ var otherAgents = agents.filter(function (ag) {
29
+ return !isMaiaAgent(ag);
30
+ });
31
+ var favorites = otherAgents.filter(function (ag) {
32
+ return ag.is_favorite;
33
+ }).sort(function (a, b) {
34
+ return a.name.localeCompare(b.name);
35
+ });
36
+ var nonFavorites = otherAgents.filter(function (ag) {
37
+ return !ag.is_favorite;
38
+ }).sort(function (a, b) {
39
+ return a.name.localeCompare(b.name);
40
+ });
41
+ return maiaAgents.length ? [].concat(_toConsumableArray(maiaAgents), _toConsumableArray(favorites), _toConsumableArray(nonFavorites)) : [].concat(_toConsumableArray(favorites), _toConsumableArray(nonFavorites));
42
+ };
43
+ var normalizeCustomAgentsFromApi = function normalizeCustomAgentsFromApi(agents) {
44
+ return agents.map(function (agent) {
45
+ return agent.type === 'custom' ? withNormalizedConnectors(agent) : agent;
46
+ });
47
+ };
48
+ var fetchGlobalCloneAgents = /*#__PURE__*/function () {
49
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(lang, canFetchCloneAgents) {
50
+ var cloneResponse, cloneData, _t;
51
+ return _regeneratorRuntime.wrap(function (_context) {
52
+ while (1) switch (_context.prev = _context.next) {
53
+ case 0:
54
+ if (!(!window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS || !canFetchCloneAgents)) {
55
+ _context.next = 1;
56
+ break;
57
+ }
58
+ return _context.abrupt("return", []);
59
+ case 1:
60
+ _context.prev = 1;
61
+ _context.next = 2;
62
+ return fetchMaia({
63
+ path: "agents?agent_type=clone&entity=global&lang=".concat(mapCORLang(lang)),
64
+ method: 'GET'
65
+ });
66
+ case 2:
67
+ cloneResponse = _context.sent;
68
+ _context.next = 3;
69
+ return cloneResponse.json();
70
+ case 3:
71
+ cloneData = _context.sent;
72
+ return _context.abrupt("return", (cloneData.data || []).filter(function (ag) {
73
+ return ag.type === 'clone';
74
+ }));
75
+ case 4:
76
+ _context.prev = 4;
77
+ _t = _context["catch"](1);
78
+ if (!is403AgentFetchError(_t)) {
79
+ _context.next = 5;
80
+ break;
81
+ }
82
+ return _context.abrupt("return", []);
83
+ case 5:
84
+ throw _t;
85
+ case 6:
86
+ case "end":
87
+ return _context.stop();
88
+ }
89
+ }, _callee, null, [[1, 4]]);
90
+ }));
91
+ return function fetchGlobalCloneAgents(_x, _x2) {
92
+ return _ref.apply(this, arguments);
93
+ };
94
+ }();
95
+ export var fetchAgentsList = /*#__PURE__*/function () {
96
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref2) {
97
+ var section, lang, isMultiAgents, canFetchCloneAgents, mappedLang, customAgents, customHasMore, customNextOffset, maiaAgents, loadCloneAgents, loadCustomAgents, agentParsed, queryParams, queryString, path, _yield$Promise$all3, _yield$Promise$all4, response, globalCloneAgents, data, _agentParsed, _t4;
98
+ return _regeneratorRuntime.wrap(function (_context4) {
99
+ while (1) switch (_context4.prev = _context4.next) {
100
+ case 0:
101
+ section = _ref2.section, lang = _ref2.lang, isMultiAgents = _ref2.isMultiAgents, canFetchCloneAgents = _ref2.canFetchCloneAgents;
102
+ mappedLang = mapCORLang(lang);
103
+ if (!isMultiAgents) {
104
+ _context4.next = 2;
105
+ break;
106
+ }
107
+ customAgents = [];
108
+ customHasMore = false;
109
+ customNextOffset = null;
110
+ maiaAgents = [];
111
+ loadCloneAgents = /*#__PURE__*/function () {
112
+ var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
113
+ var _maiaData$data, _yield$Promise$all, _yield$Promise$all2, maiaResponse, globalCloneAgents, maiaData, orchestrators, _t2;
114
+ return _regeneratorRuntime.wrap(function (_context2) {
115
+ while (1) switch (_context2.prev = _context2.next) {
116
+ case 0:
117
+ if (canFetchCloneAgents) {
118
+ _context2.next = 1;
119
+ break;
120
+ }
121
+ return _context2.abrupt("return");
122
+ case 1:
123
+ _context2.prev = 1;
124
+ _context2.next = 2;
125
+ return Promise.all([fetchMaia({
126
+ path: "agents?agent_type=orchestrator&lang=".concat(mappedLang),
127
+ method: 'GET'
128
+ }), fetchGlobalCloneAgents(lang, canFetchCloneAgents)]);
129
+ case 2:
130
+ _yield$Promise$all = _context2.sent;
131
+ _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 2);
132
+ maiaResponse = _yield$Promise$all2[0];
133
+ globalCloneAgents = _yield$Promise$all2[1];
134
+ _context2.next = 3;
135
+ return maiaResponse.json();
136
+ case 3:
137
+ maiaData = _context2.sent;
138
+ orchestrators = ((_maiaData$data = maiaData.data) === null || _maiaData$data === void 0 ? void 0 : _maiaData$data.filter(isMaiaAgent)) || [];
139
+ maiaAgents = mergeAgentsWithoutDuplicates(orchestrators, globalCloneAgents);
140
+ _context2.next = 5;
141
+ break;
142
+ case 4:
143
+ _context2.prev = 4;
144
+ _t2 = _context2["catch"](1);
145
+ if (is403AgentFetchError(_t2)) {
146
+ _context2.next = 5;
147
+ break;
148
+ }
149
+ throw _t2;
150
+ case 5:
151
+ case "end":
152
+ return _context2.stop();
153
+ }
154
+ }, _callee2, null, [[1, 4]]);
155
+ }));
156
+ return function loadCloneAgents() {
157
+ return _ref4.apply(this, arguments);
158
+ };
159
+ }();
160
+ loadCustomAgents = /*#__PURE__*/function () {
161
+ var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
162
+ var customResponse, customData, _t3;
163
+ return _regeneratorRuntime.wrap(function (_context3) {
164
+ while (1) switch (_context3.prev = _context3.next) {
165
+ case 0:
166
+ _context3.prev = 0;
167
+ _context3.next = 1;
168
+ return fetchMaia({
169
+ path: 'agents?agent_type=custom&limit=7&offset=0',
170
+ method: 'GET'
171
+ });
172
+ case 1:
173
+ customResponse = _context3.sent;
174
+ _context3.next = 2;
175
+ return customResponse.json();
176
+ case 2:
177
+ customData = _context3.sent;
178
+ customAgents = normalizeCustomAgentsFromApi(customData.data || []);
179
+ customHasMore = customData.has_more || false;
180
+ customNextOffset = customData.next_offset || null;
181
+ _context3.next = 4;
182
+ break;
183
+ case 3:
184
+ _context3.prev = 3;
185
+ _t3 = _context3["catch"](0);
186
+ if (is403AgentFetchError(_t3)) {
187
+ _context3.next = 4;
188
+ break;
189
+ }
190
+ throw _t3;
191
+ case 4:
192
+ case "end":
193
+ return _context3.stop();
194
+ }
195
+ }, _callee3, null, [[0, 3]]);
196
+ }));
197
+ return function loadCustomAgents() {
198
+ return _ref5.apply(this, arguments);
199
+ };
200
+ }();
201
+ _context4.next = 1;
202
+ return Promise.all([loadCloneAgents(), loadCustomAgents()]);
203
+ case 1:
204
+ agentParsed = sortAgentsList(!canFetchCloneAgents ? customAgents : maiaAgents.length ? [].concat(_toConsumableArray(maiaAgents), _toConsumableArray(customAgents)) : customAgents);
205
+ return _context4.abrupt("return", {
206
+ data: agentParsed,
207
+ has_more: customHasMore,
208
+ next_offset: customNextOffset
209
+ });
210
+ case 2:
211
+ queryParams = new URLSearchParams();
212
+ if (section === 'project' || section === 'client' || section === 'header' || section === 'task' || section === 'planner') {
213
+ queryParams.append('agent_type', 'orchestrator');
214
+ queryParams.append('lang', mappedLang);
215
+ if (section === 'header') {
216
+ queryParams.append('limit', '7');
217
+ queryParams.append('offset', '0');
218
+ }
219
+ }
220
+ queryString = queryParams.toString();
221
+ path = "agents".concat(queryString ? "?".concat(queryString) : '');
222
+ _context4.prev = 3;
223
+ _context4.next = 4;
224
+ return Promise.all([fetchMaia({
225
+ path: path,
226
+ method: 'GET'
227
+ }), fetchGlobalCloneAgents(lang, canFetchCloneAgents)]);
228
+ case 4:
229
+ _yield$Promise$all3 = _context4.sent;
230
+ _yield$Promise$all4 = _slicedToArray(_yield$Promise$all3, 2);
231
+ response = _yield$Promise$all4[0];
232
+ globalCloneAgents = _yield$Promise$all4[1];
233
+ _context4.next = 5;
234
+ return response.json();
235
+ case 5:
236
+ data = _context4.sent;
237
+ _agentParsed = sortAgentsList(mergeAgentsWithoutDuplicates(data.data || [], globalCloneAgents));
238
+ return _context4.abrupt("return", {
239
+ data: _agentParsed,
240
+ has_more: data.has_more,
241
+ next_offset: data.next_offset
242
+ });
243
+ case 6:
244
+ _context4.prev = 6;
245
+ _t4 = _context4["catch"](3);
246
+ if (!is403AgentFetchError(_t4)) {
247
+ _context4.next = 7;
248
+ break;
249
+ }
250
+ return _context4.abrupt("return", {
251
+ data: [],
252
+ has_more: false,
253
+ next_offset: null
254
+ });
255
+ case 7:
256
+ throw _t4;
257
+ case 8:
258
+ case "end":
259
+ return _context4.stop();
260
+ }
261
+ }, _callee4, null, [[3, 6]]);
262
+ }));
263
+ return function fetchAgentsList(_x3) {
264
+ return _ref3.apply(this, arguments);
265
+ };
266
+ }();
267
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaE1haWEiLCJ3aXRoTm9ybWFsaXplZENvbm5lY3RvcnMiLCJtYXBDT1JMYW5nIiwiaXNNYWlhQWdlbnQiLCJhZ2VudCIsInR5cGUiLCJpczQwM0FnZW50RmV0Y2hFcnJvciIsImVyciIsIl9lcnJvciRyZXNwb25zZSIsIl9lcnJvciRtZXNzYWdlIiwiX2Vycm9yJG1lc3NhZ2UyIiwiZXJyb3IiLCJyZXNwb25zZSIsInN0YXR1cyIsIkJvb2xlYW4iLCJtZXNzYWdlIiwiaW5jbHVkZXMiLCJtZXJnZUFnZW50c1dpdGhvdXREdXBsaWNhdGVzIiwiYmFzZSIsImV4dHJhIiwiaWRzIiwiU2V0IiwibWFwIiwiaWQiLCJtZXJnZWQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJmb3JFYWNoIiwiaGFzIiwicHVzaCIsInNvcnRBZ2VudHNMaXN0IiwiYWdlbnRzIiwibWFpYUFnZW50cyIsImZpbHRlciIsIm90aGVyQWdlbnRzIiwiYWciLCJmYXZvcml0ZXMiLCJpc19mYXZvcml0ZSIsInNvcnQiLCJhIiwiYiIsIm5hbWUiLCJsb2NhbGVDb21wYXJlIiwibm9uRmF2b3JpdGVzIiwibGVuZ3RoIiwiY29uY2F0Iiwibm9ybWFsaXplQ3VzdG9tQWdlbnRzRnJvbUFwaSIsImZldGNoR2xvYmFsQ2xvbmVBZ2VudHMiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJsYW5nIiwiY2FuRmV0Y2hDbG9uZUFnZW50cyIsImNsb25lUmVzcG9uc2UiLCJjbG9uZURhdGEiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0Iiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsImFicnVwdCIsInBhdGgiLCJtZXRob2QiLCJzZW50IiwianNvbiIsImRhdGEiLCJzdG9wIiwiX3giLCJfeDIiLCJhcHBseSIsImFyZ3VtZW50cyIsImZldGNoQWdlbnRzTGlzdCIsIl9yZWYzIiwiX2NhbGxlZTQiLCJfcmVmMiIsInNlY3Rpb24iLCJpc011bHRpQWdlbnRzIiwibWFwcGVkTGFuZyIsImN1c3RvbUFnZW50cyIsImN1c3RvbUhhc01vcmUiLCJjdXN0b21OZXh0T2Zmc2V0IiwibG9hZENsb25lQWdlbnRzIiwibG9hZEN1c3RvbUFnZW50cyIsImFnZW50UGFyc2VkIiwicXVlcnlQYXJhbXMiLCJxdWVyeVN0cmluZyIsIl95aWVsZCRQcm9taXNlJGFsbDMiLCJfeWllbGQkUHJvbWlzZSRhbGw0IiwiZ2xvYmFsQ2xvbmVBZ2VudHMiLCJfYWdlbnRQYXJzZWQiLCJfdDQiLCJfY29udGV4dDQiLCJfcmVmNCIsIl9jYWxsZWUyIiwiX21haWFEYXRhJGRhdGEiLCJfeWllbGQkUHJvbWlzZSRhbGwiLCJfeWllbGQkUHJvbWlzZSRhbGwyIiwibWFpYVJlc3BvbnNlIiwibWFpYURhdGEiLCJvcmNoZXN0cmF0b3JzIiwiX3QyIiwiX2NvbnRleHQyIiwiUHJvbWlzZSIsImFsbCIsIl9zbGljZWRUb0FycmF5IiwiX3JlZjUiLCJfY2FsbGVlMyIsImN1c3RvbVJlc3BvbnNlIiwiY3VzdG9tRGF0YSIsIl90MyIsIl9jb250ZXh0MyIsImhhc19tb3JlIiwibmV4dF9vZmZzZXQiLCJVUkxTZWFyY2hQYXJhbXMiLCJhcHBlbmQiLCJ0b1N0cmluZyIsIl94MyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9tYWlhL2Jvb3RzdHJhcC9mZXRjaEFnZW50c0xpc3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vY2xpZW50J1xuaW1wb3J0IHsgd2l0aE5vcm1hbGl6ZWRDb25uZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvbm9ybWFsaXplQWdlbnRDb25uZWN0b3JzJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IFNlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgbWFwQ09STGFuZyB9IGZyb20gJy4uLy4uLy4uL2xhbmcvdXRpbHMnXG5cbmNvbnN0IGlzTWFpYUFnZW50ID0gKGFnZW50OiBBZ2VudCkgPT4gYWdlbnQ/LnR5cGUgPT09ICdvcmNoZXN0cmF0b3InXG5cbmV4cG9ydCBjb25zdCBpczQwM0FnZW50RmV0Y2hFcnJvciA9IChlcnI6IHVua25vd24pOiBib29sZWFuID0+IHtcbiAgY29uc3QgZXJyb3IgPSBlcnIgYXMgeyByZXNwb25zZT86IHsgc3RhdHVzPzogbnVtYmVyIH07IHN0YXR1cz86IG51bWJlcjsgbWVzc2FnZT86IHN0cmluZyB9XG4gIHJldHVybiAoXG4gICAgZXJyb3I/LnJlc3BvbnNlPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgIGVycm9yPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgIEJvb2xlYW4oZXJyb3I/Lm1lc3NhZ2U/LmluY2x1ZGVzKFwiWW91IGRvbid0IGhhdmUgcGVybWlzc2lvbiB0byB2aWV3IGFnZW50c1wiKSkgfHxcbiAgICBCb29sZWFuKGVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcygnRmFpbGVkIGZldGNoaW5nIGRhdGEnKSlcbiAgKVxufVxuXG5leHBvcnQgY29uc3QgbWVyZ2VBZ2VudHNXaXRob3V0RHVwbGljYXRlcyA9IChiYXNlOiBBZ2VudFtdLCBleHRyYTogQWdlbnRbXSk6IEFnZW50W10gPT4ge1xuICBjb25zdCBpZHMgPSBuZXcgU2V0KGJhc2UubWFwKGFnZW50ID0+IGFnZW50LmlkKSlcbiAgY29uc3QgbWVyZ2VkID0gWy4uLmJhc2VdXG4gIGV4dHJhLmZvckVhY2goYWdlbnQgPT4ge1xuICAgIGlmICghaWRzLmhhcyhhZ2VudC5pZCkpIG1lcmdlZC5wdXNoKGFnZW50KVxuICB9KVxuICByZXR1cm4gbWVyZ2VkXG59XG5cbmV4cG9ydCBjb25zdCBzb3J0QWdlbnRzTGlzdCA9IChhZ2VudHM6IEFnZW50W10pOiBBZ2VudFtdID0+IHtcbiAgY29uc3QgbWFpYUFnZW50cyA9IGFnZW50cy5maWx0ZXIoaXNNYWlhQWdlbnQpXG4gIGNvbnN0IG90aGVyQWdlbnRzID0gYWdlbnRzLmZpbHRlcihhZyA9PiAhaXNNYWlhQWdlbnQoYWcpKVxuICBjb25zdCBmYXZvcml0ZXMgPSBvdGhlckFnZW50cy5maWx0ZXIoYWcgPT4gYWcuaXNfZmF2b3JpdGUpLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpXG4gIGNvbnN0IG5vbkZhdm9yaXRlcyA9IG90aGVyQWdlbnRzLmZpbHRlcihhZyA9PiAhYWcuaXNfZmF2b3JpdGUpLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpXG4gIHJldHVybiBtYWlhQWdlbnRzLmxlbmd0aCA/IFsuLi5tYWlhQWdlbnRzLCAuLi5mYXZvcml0ZXMsIC4uLm5vbkZhdm9yaXRlc10gOiBbLi4uZmF2b3JpdGVzLCAuLi5ub25GYXZvcml0ZXNdXG59XG5cbmNvbnN0IG5vcm1hbGl6ZUN1c3RvbUFnZW50c0Zyb21BcGkgPSAoYWdlbnRzOiBBZ2VudFtdKTogQWdlbnRbXSA9PlxuICBhZ2VudHMubWFwKGFnZW50ID0+IChhZ2VudC50eXBlID09PSAnY3VzdG9tJyA/IHdpdGhOb3JtYWxpemVkQ29ubmVjdG9ycyhhZ2VudCkgOiBhZ2VudCkpXG5cbmV4cG9ydCB0eXBlIEZldGNoQWdlbnRzTGlzdFBhcmFtcyA9IHtcbiAgc2VjdGlvbjogU2VjdGlvblxuICBsYW5nOiBzdHJpbmdcbiAgaXNNdWx0aUFnZW50czogYm9vbGVhblxuICBjYW5GZXRjaENsb25lQWdlbnRzOiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIEZldGNoQWdlbnRzTGlzdFJlc3VsdCA9IHtcbiAgZGF0YTogQWdlbnRbXVxuICBoYXNfbW9yZT86IGJvb2xlYW5cbiAgbmV4dF9vZmZzZXQ/OiBudW1iZXIgfCBudWxsXG59XG5cbmNvbnN0IGZldGNoR2xvYmFsQ2xvbmVBZ2VudHMgPSBhc3luYyAobGFuZzogc3RyaW5nLCBjYW5GZXRjaENsb25lQWdlbnRzOiBib29sZWFuKTogUHJvbWlzZTxBZ2VudFtdPiA9PiB7XG4gIGlmICghd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMgfHwgIWNhbkZldGNoQ2xvbmVBZ2VudHMpIHJldHVybiBbXVxuXG4gIHRyeSB7XG4gICAgY29uc3QgY2xvbmVSZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICBwYXRoOiBgYWdlbnRzP2FnZW50X3R5cGU9Y2xvbmUmZW50aXR5PWdsb2JhbCZsYW5nPSR7bWFwQ09STGFuZyhsYW5nKX1gLFxuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICB9KVxuICAgIGNvbnN0IGNsb25lRGF0YSA9IGF3YWl0IGNsb25lUmVzcG9uc2UuanNvbigpXG4gICAgcmV0dXJuIChjbG9uZURhdGEuZGF0YSB8fCBbXSkuZmlsdGVyKChhZzogQWdlbnQpID0+IGFnLnR5cGUgPT09ICdjbG9uZScpXG4gIH0gY2F0Y2ggKGNsb25lRXJyb3IpIHtcbiAgICBpZiAoaXM0MDNBZ2VudEZldGNoRXJyb3IoY2xvbmVFcnJvcikpIHJldHVybiBbXVxuICAgIHRocm93IGNsb25lRXJyb3JcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZmV0Y2hBZ2VudHNMaXN0ID0gYXN5bmMgKHtcbiAgc2VjdGlvbixcbiAgbGFuZyxcbiAgaXNNdWx0aUFnZW50cyxcbiAgY2FuRmV0Y2hDbG9uZUFnZW50cyxcbn06IEZldGNoQWdlbnRzTGlzdFBhcmFtcyk6IFByb21pc2U8RmV0Y2hBZ2VudHNMaXN0UmVzdWx0PiA9PiB7XG4gIGNvbnN0IG1hcHBlZExhbmcgPSBtYXBDT1JMYW5nKGxhbmcpXG5cbiAgaWYgKGlzTXVsdGlBZ2VudHMpIHtcbiAgICBsZXQgY3VzdG9tQWdlbnRzOiBBZ2VudFtdID0gW11cbiAgICBsZXQgY3VzdG9tSGFzTW9yZSA9IGZhbHNlXG4gICAgbGV0IGN1c3RvbU5leHRPZmZzZXQ6IG51bWJlciB8IG51bGwgPSBudWxsXG4gICAgbGV0IG1haWFBZ2VudHM6IEFnZW50W10gPSBbXVxuXG4gICAgY29uc3QgbG9hZENsb25lQWdlbnRzID0gYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKCFjYW5GZXRjaENsb25lQWdlbnRzKSByZXR1cm5cblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgW21haWFSZXNwb25zZSwgZ2xvYmFsQ2xvbmVBZ2VudHNdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgIGZldGNoTWFpYSh7XG4gICAgICAgICAgICBwYXRoOiBgYWdlbnRzP2FnZW50X3R5cGU9b3JjaGVzdHJhdG9yJmxhbmc9JHttYXBwZWRMYW5nfWAsXG4gICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGZldGNoR2xvYmFsQ2xvbmVBZ2VudHMobGFuZywgY2FuRmV0Y2hDbG9uZUFnZW50cyksXG4gICAgICAgIF0pXG4gICAgICAgIGNvbnN0IG1haWFEYXRhID0gYXdhaXQgbWFpYVJlc3BvbnNlLmpzb24oKVxuICAgICAgICBjb25zdCBvcmNoZXN0cmF0b3JzID0gbWFpYURhdGEuZGF0YT8uZmlsdGVyKGlzTWFpYUFnZW50KSB8fCBbXVxuICAgICAgICBtYWlhQWdlbnRzID0gbWVyZ2VBZ2VudHNXaXRob3V0RHVwbGljYXRlcyhvcmNoZXN0cmF0b3JzLCBnbG9iYWxDbG9uZUFnZW50cylcbiAgICAgIH0gY2F0Y2ggKG1haWFFcnJvcjogdW5rbm93bikge1xuICAgICAgICBpZiAoIWlzNDAzQWdlbnRGZXRjaEVycm9yKG1haWFFcnJvcikpIHRocm93IG1haWFFcnJvclxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGxvYWRDdXN0b21BZ2VudHMgPSBhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjdXN0b21SZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICAgICAgcGF0aDogJ2FnZW50cz9hZ2VudF90eXBlPWN1c3RvbSZsaW1pdD03Jm9mZnNldD0wJyxcbiAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBjdXN0b21EYXRhID0gYXdhaXQgY3VzdG9tUmVzcG9uc2UuanNvbigpXG4gICAgICAgIGN1c3RvbUFnZW50cyA9IG5vcm1hbGl6ZUN1c3RvbUFnZW50c0Zyb21BcGkoY3VzdG9tRGF0YS5kYXRhIHx8IFtdKVxuICAgICAgICBjdXN0b21IYXNNb3JlID0gY3VzdG9tRGF0YS5oYXNfbW9yZSB8fCBmYWxzZVxuICAgICAgICBjdXN0b21OZXh0T2Zmc2V0ID0gY3VzdG9tRGF0YS5uZXh0X29mZnNldCB8fCBudWxsXG4gICAgICB9IGNhdGNoIChjdXN0b21FcnJvcjogdW5rbm93bikge1xuICAgICAgICBpZiAoIWlzNDAzQWdlbnRGZXRjaEVycm9yKGN1c3RvbUVycm9yKSkgdGhyb3cgY3VzdG9tRXJyb3JcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChbbG9hZENsb25lQWdlbnRzKCksIGxvYWRDdXN0b21BZ2VudHMoKV0pXG5cbiAgICBjb25zdCBhZ2VudFBhcnNlZCA9IHNvcnRBZ2VudHNMaXN0KFxuICAgICAgIWNhbkZldGNoQ2xvbmVBZ2VudHMgPyBjdXN0b21BZ2VudHMgOiBtYWlhQWdlbnRzLmxlbmd0aCA/IFsuLi5tYWlhQWdlbnRzLCAuLi5jdXN0b21BZ2VudHNdIDogY3VzdG9tQWdlbnRzXG4gICAgKVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGE6IGFnZW50UGFyc2VkLFxuICAgICAgaGFzX21vcmU6IGN1c3RvbUhhc01vcmUsXG4gICAgICBuZXh0X29mZnNldDogY3VzdG9tTmV4dE9mZnNldCxcbiAgICB9XG4gIH1cblxuICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICBpZiAoXG4gICAgc2VjdGlvbiA9PT0gJ3Byb2plY3QnIHx8XG4gICAgc2VjdGlvbiA9PT0gJ2NsaWVudCcgfHxcbiAgICBzZWN0aW9uID09PSAnaGVhZGVyJyB8fFxuICAgIHNlY3Rpb24gPT09ICd0YXNrJyB8fFxuICAgIHNlY3Rpb24gPT09ICdwbGFubmVyJ1xuICApIHtcbiAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2FnZW50X3R5cGUnLCAnb3JjaGVzdHJhdG9yJylcbiAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xhbmcnLCBtYXBwZWRMYW5nKVxuICAgIGlmIChzZWN0aW9uID09PSAnaGVhZGVyJykge1xuICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdsaW1pdCcsICc3JylcbiAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnb2Zmc2V0JywgJzAnKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHF1ZXJ5U3RyaW5nID0gcXVlcnlQYXJhbXMudG9TdHJpbmcoKVxuICBjb25zdCBwYXRoID0gYGFnZW50cyR7cXVlcnlTdHJpbmcgPyBgPyR7cXVlcnlTdHJpbmd9YCA6ICcnfWBcblxuICB0cnkge1xuICAgIGNvbnN0IFtyZXNwb25zZSwgZ2xvYmFsQ2xvbmVBZ2VudHNdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgZmV0Y2hNYWlhKHsgcGF0aCwgbWV0aG9kOiAnR0VUJyB9KSxcbiAgICAgIGZldGNoR2xvYmFsQ2xvbmVBZ2VudHMobGFuZywgY2FuRmV0Y2hDbG9uZUFnZW50cyksXG4gICAgXSlcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gICAgY29uc3QgYWdlbnRQYXJzZWQgPSBzb3J0QWdlbnRzTGlzdChtZXJnZUFnZW50c1dpdGhvdXREdXBsaWNhdGVzKGRhdGEuZGF0YSB8fCBbXSwgZ2xvYmFsQ2xvbmVBZ2VudHMpKVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGE6IGFnZW50UGFyc2VkLFxuICAgICAgaGFzX21vcmU6IGRhdGEuaGFzX21vcmUsXG4gICAgICBuZXh0X29mZnNldDogZGF0YS5uZXh0X29mZnNldCxcbiAgICB9XG4gIH0gY2F0Y2ggKHJlc3BvbnNlRXJyb3I6IHVua25vd24pIHtcbiAgICBpZiAoaXM0MDNBZ2VudEZldGNoRXJyb3IocmVzcG9uc2VFcnJvcikpIHtcbiAgICAgIHJldHVybiB7IGRhdGE6IFtdLCBoYXNfbW9yZTogZmFsc2UsIG5leHRfb2Zmc2V0OiBudWxsIH1cbiAgICB9XG4gICAgdGhyb3cgcmVzcG9uc2VFcnJvclxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxTQUFTQSxTQUFTLFFBQVEsV0FBVztBQUNyQyxTQUFTQyx3QkFBd0IsUUFBUSx5Q0FBeUM7QUFHbEYsU0FBU0MsVUFBVSxRQUFRLHFCQUFxQjtBQUVoRCxJQUFNQyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBSUMsS0FBWTtFQUFBLE9BQUssQ0FBQUEsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVDLElBQUksTUFBSyxjQUFjO0FBQUE7QUFFcEUsT0FBTyxJQUFNQyxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFJQyxHQUFZLEVBQWM7RUFBQSxJQUFBQyxlQUFBLEVBQUFDLGNBQUEsRUFBQUMsZUFBQTtFQUM3RCxJQUFNQyxLQUFLLEdBQUdKLEdBQTRFO0VBQzFGLE9BQ0UsQ0FBQUksS0FBSyxhQUFMQSxLQUFLLGdCQUFBSCxlQUFBLEdBQUxHLEtBQUssQ0FBRUMsUUFBUSxjQUFBSixlQUFBLHVCQUFmQSxlQUFBLENBQWlCSyxNQUFNLE1BQUssR0FBRyxJQUMvQixDQUFBRixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRUUsTUFBTSxNQUFLLEdBQUcsSUFDckJDLE9BQU8sQ0FBQ0gsS0FBSyxhQUFMQSxLQUFLLGdCQUFBRixjQUFBLEdBQUxFLEtBQUssQ0FBRUksT0FBTyxjQUFBTixjQUFBLHVCQUFkQSxjQUFBLENBQWdCTyxRQUFRLENBQUMsMENBQTBDLENBQUMsQ0FBQyxJQUM3RUYsT0FBTyxDQUFDSCxLQUFLLGFBQUxBLEtBQUssZ0JBQUFELGVBQUEsR0FBTEMsS0FBSyxDQUFFSSxPQUFPLGNBQUFMLGVBQUEsdUJBQWRBLGVBQUEsQ0FBZ0JNLFFBQVEsQ0FBQyxzQkFB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
@@ -0,0 +1,96 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
3
+ import { isMaiaCloneAgentsRoleBlocked } from '../../../constants/maiaTaskPanelAccess';
4
+ import { mapCORLang } from '../../../lang/utils';
5
+ import { resetAgentsPrefetchSession } from './agentsPrefetchSession';
6
+ import { fetchAgentsList } from './fetchAgentsList';
7
+ import { buildAgentsPrefetchKey, hasAgentsPrefetchInFlight, hasAgentsPrefetchReady, registerAgentsPrefetch } from './agentsPrefetchSession';
8
+ import { prefetchMaiaRecentContexts } from './prefetchMaiaRecentContexts';
9
+ import { resetRecentContextsPrefetchSession } from './recentContextsPrefetchSession';
10
+ export { takeAgentsPrefetch, resetAgentsPrefetchSession, buildAgentsPrefetchKey } from './agentsPrefetchSession';
11
+ export { prefetchMaiaRecentContexts } from './prefetchMaiaRecentContexts';
12
+ export var resetMaiaPrefetchSession = function resetMaiaPrefetchSession() {
13
+ resetAgentsPrefetchSession();
14
+ resetRecentContextsPrefetchSession();
15
+ };
16
+ var resolveLang = function resolveLang(lang) {
17
+ var _ref, _window$lang, _window$userInfo;
18
+ if (lang) {
19
+ return mapCORLang(lang);
20
+ }
21
+ if (typeof window === 'undefined') {
22
+ return 'es';
23
+ }
24
+ var raw = (_ref = (_window$lang = window.lang) !== null && _window$lang !== void 0 ? _window$lang : (_window$userInfo = window.userInfo) === null || _window$userInfo === void 0 || (_window$userInfo = _window$userInfo.info) === null || _window$userInfo === void 0 ? void 0 : _window$userInfo.lang) !== null && _ref !== void 0 ? _ref : 'es';
25
+ return mapCORLang(String(raw).trim().toLowerCase());
26
+ };
27
+ var prefetchAgentsList = /*#__PURE__*/function () {
28
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref2) {
29
+ var _window$userInfo2;
30
+ var section, resolvedLang, roleId, isMultiAgents, userLike, canFetchCloneAgents, prefetchKey, promise;
31
+ return _regeneratorRuntime.wrap(function (_context) {
32
+ while (1) switch (_context.prev = _context.next) {
33
+ case 0:
34
+ section = _ref2.section, resolvedLang = _ref2.resolvedLang, roleId = _ref2.roleId;
35
+ isMultiAgents = !!window.MAIA_CHAT_AI_FEATURE_ACCESS && !!window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS;
36
+ userLike = roleId != null ? {
37
+ role_id: roleId
38
+ } : (_window$userInfo2 = window.userInfo) === null || _window$userInfo2 === void 0 ? void 0 : _window$userInfo2.info;
39
+ canFetchCloneAgents = !isMaiaCloneAgentsRoleBlocked(userLike, section);
40
+ prefetchKey = buildAgentsPrefetchKey(section, resolvedLang, isMultiAgents);
41
+ if (!(hasAgentsPrefetchReady(prefetchKey) || hasAgentsPrefetchInFlight(prefetchKey))) {
42
+ _context.next = 1;
43
+ break;
44
+ }
45
+ return _context.abrupt("return");
46
+ case 1:
47
+ promise = fetchAgentsList({
48
+ section: section,
49
+ lang: resolvedLang,
50
+ isMultiAgents: isMultiAgents,
51
+ canFetchCloneAgents: canFetchCloneAgents
52
+ });
53
+ _context.next = 2;
54
+ return registerAgentsPrefetch(prefetchKey, promise)["catch"](function () {
55
+ return undefined;
56
+ });
57
+ case 2:
58
+ case "end":
59
+ return _context.stop();
60
+ }
61
+ }, _callee);
62
+ }));
63
+ return function prefetchAgentsList(_x) {
64
+ return _ref3.apply(this, arguments);
65
+ };
66
+ }();
67
+
68
+ /**
69
+ * Prefetch en hover/idle: agents + recent-contexts (si MAIA FA activo).
70
+ * getAgents / getRecentContexts consumen la sesión al abrir; resetMaiaPrefetchSession al cerrar.
71
+ */
72
+ export var prefetchMaiaAgents = /*#__PURE__*/function () {
73
+ var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref4) {
74
+ var section, lang, roleId, resolvedLang;
75
+ return _regeneratorRuntime.wrap(function (_context2) {
76
+ while (1) switch (_context2.prev = _context2.next) {
77
+ case 0:
78
+ section = _ref4.section, lang = _ref4.lang, roleId = _ref4.roleId;
79
+ resolvedLang = resolveLang(lang);
80
+ _context2.next = 1;
81
+ return Promise.allSettled([prefetchAgentsList({
82
+ section: section,
83
+ resolvedLang: resolvedLang,
84
+ roleId: roleId
85
+ }), prefetchMaiaRecentContexts()]);
86
+ case 1:
87
+ case "end":
88
+ return _context2.stop();
89
+ }
90
+ }, _callee2);
91
+ }));
92
+ return function prefetchMaiaAgents(_x2) {
93
+ return _ref5.apply(this, arguments);
94
+ };
95
+ }();
96
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc01haWFDbG9uZUFnZW50c1JvbGVCbG9ja2VkIiwibWFwQ09STGFuZyIsInJlc2V0QWdlbnRzUHJlZmV0Y2hTZXNzaW9uIiwiZmV0Y2hBZ2VudHNMaXN0IiwiYnVpbGRBZ2VudHNQcmVmZXRjaEtleSIsImhhc0FnZW50c1ByZWZldGNoSW5GbGlnaHQiLCJoYXNBZ2VudHNQcmVmZXRjaFJlYWR5IiwicmVnaXN0ZXJBZ2VudHNQcmVmZXRjaCIsInByZWZldGNoTWFpYVJlY2VudENvbnRleHRzIiwicmVzZXRSZWNlbnRDb250ZXh0c1ByZWZldGNoU2Vzc2lvbiIsInRha2VBZ2VudHNQcmVmZXRjaCIsInJlc2V0TWFpYVByZWZldGNoU2Vzc2lvbiIsInJlc29sdmVMYW5nIiwibGFuZyIsIl9yZWYiLCJfd2luZG93JGxhbmciLCJfd2luZG93JHVzZXJJbmZvIiwid2luZG93IiwicmF3IiwidXNlckluZm8iLCJpbmZvIiwiU3RyaW5nIiwidHJpbSIsInRvTG93ZXJDYXNlIiwicHJlZmV0Y2hBZ2VudHNMaXN0IiwiX3JlZjMiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIl9yZWYyIiwiX3dpbmRvdyR1c2VySW5mbzIiLCJzZWN0aW9uIiwicmVzb2x2ZWRMYW5nIiwicm9sZUlkIiwiaXNNdWx0aUFnZW50cyIsInVzZXJMaWtlIiwiY2FuRmV0Y2hDbG9uZUFnZW50cyIsInByZWZldGNoS2V5IiwicHJvbWlzZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTIiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsInJvbGVfaWQiLCJhYnJ1cHQiLCJ1bmRlZmluZWQiLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsInByZWZldGNoTWFpYUFnZW50cyIsIl9yZWY1IiwiX2NhbGxlZTIiLCJfcmVmNCIsIl9jb250ZXh0MiIsIlByb21pc2UiLCJhbGxTZXR0bGVkIiwiX3gyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL21haWEvYm9vdHN0cmFwL3ByZWZldGNoTWFpYUFnZW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgaXNNYWlhQ2xvbmVBZ2VudHNSb2xlQmxvY2tlZCB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9tYWlhVGFza1BhbmVsQWNjZXNzJ1xuaW1wb3J0IHsgbWFwQ09STGFuZyB9IGZyb20gJy4uLy4uLy4uL2xhbmcvdXRpbHMnXG5pbXBvcnQgeyByZXNldEFnZW50c1ByZWZldGNoU2Vzc2lvbiB9IGZyb20gJy4vYWdlbnRzUHJlZmV0Y2hTZXNzaW9uJ1xuaW1wb3J0IHsgZmV0Y2hBZ2VudHNMaXN0IH0gZnJvbSAnLi9mZXRjaEFnZW50c0xpc3QnXG5pbXBvcnQge1xuICBidWlsZEFnZW50c1ByZWZldGNoS2V5LFxuICBoYXNBZ2VudHNQcmVmZXRjaEluRmxpZ2h0LFxuICBoYXNBZ2VudHNQcmVmZXRjaFJlYWR5LFxuICByZWdpc3RlckFnZW50c1ByZWZldGNoLFxufSBmcm9tICcuL2FnZW50c1ByZWZldGNoU2Vzc2lvbidcbmltcG9ydCB7IHByZWZldGNoTWFpYVJlY2VudENvbnRleHRzIH0gZnJvbSAnLi9wcmVmZXRjaE1haWFSZWNlbnRDb250ZXh0cydcbmltcG9ydCB7IHJlc2V0UmVjZW50Q29udGV4dHNQcmVmZXRjaFNlc3Npb24gfSBmcm9tICcuL3JlY2VudENvbnRleHRzUHJlZmV0Y2hTZXNzaW9uJ1xuXG5leHBvcnQgdHlwZSBQcmVmZXRjaE1haWFBZ2VudHNQYXJhbXMgPSB7XG4gIHNlY3Rpb246IFNlY3Rpb25cbiAgbGFuZz86IHN0cmluZ1xuICAvKiogUGFyYSByZXNvbHZlciBwZXJtaXNvcyBkZSBjbG9uZSBhZ2VudHMgY3VhbmRvIG5vIGhheSBVc2VyUHJvdmlkZXIgbW9udGFkbyAqL1xuICByb2xlSWQ/OiBudW1iZXJcbn1cblxuZXhwb3J0IHsgdGFrZUFnZW50c1ByZWZldGNoLCByZXNldEFnZW50c1ByZWZldGNoU2Vzc2lvbiwgYnVpbGRBZ2VudHNQcmVmZXRjaEtleSB9IGZyb20gJy4vYWdlbnRzUHJlZmV0Y2hTZXNzaW9uJ1xuZXhwb3J0IHsgcHJlZmV0Y2hNYWlhUmVjZW50Q29udGV4dHMgfSBmcm9tICcuL3ByZWZldGNoTWFpYVJlY2VudENvbnRleHRzJ1xuXG5leHBvcnQgY29uc3QgcmVzZXRNYWlhUHJlZmV0Y2hTZXNzaW9uID0gKCk6IHZvaWQgPT4ge1xuICByZXNldEFnZW50c1ByZWZldGNoU2Vzc2lvbigpXG4gIHJlc2V0UmVjZW50Q29udGV4dHNQcmVmZXRjaFNlc3Npb24oKVxufVxuXG5jb25zdCByZXNvbHZlTGFuZyA9IChsYW5nPzogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgaWYgKGxhbmcpIHtcbiAgICByZXR1cm4gbWFwQ09STGFuZyhsYW5nKVxuICB9XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiAnZXMnXG4gIH1cbiAgY29uc3QgcmF3ID0gd2luZG93LmxhbmcgPz8gd2luZG93LnVzZXJJbmZvPy5pbmZvPy5sYW5nID8/ICdlcydcbiAgcmV0dXJuIG1hcENPUkxhbmcoU3RyaW5nKHJhdykudHJpbSgpLnRvTG93ZXJDYXNlKCkpXG59XG5cbmNvbnN0IHByZWZldGNoQWdlbnRzTGlzdCA9IGFzeW5jICh7XG4gIHNlY3Rpb24sXG4gIHJlc29sdmVkTGFuZyxcbiAgcm9sZUlkLFxufToge1xuICBzZWN0aW9uOiBTZWN0aW9uXG4gIHJlc29sdmVkTGFuZzogc3RyaW5nXG4gIHJvbGVJZD86IG51bWJlclxufSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICBjb25zdCBpc011bHRpQWdlbnRzID0gISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgY29uc3QgdXNlckxpa2UgPSByb2xlSWQgIT0gbnVsbCA/IHsgcm9sZV9pZDogcm9sZUlkIH0gOiB3aW5kb3cudXNlckluZm8/LmluZm9cbiAgY29uc3QgY2FuRmV0Y2hDbG9uZUFnZW50cyA9ICFpc01haWFDbG9uZUFnZW50c1JvbGVCbG9ja2VkKHVzZXJMaWtlLCBzZWN0aW9uKVxuICBjb25zdCBwcmVmZXRjaEtleSA9IGJ1aWxkQWdlbnRzUHJlZmV0Y2hLZXkoc2VjdGlvbiwgcmVzb2x2ZWRMYW5nLCBpc011bHRpQWdlbnRzKVxuXG4gIGlmIChoYXNBZ2VudHNQcmVmZXRjaFJlYWR5KHByZWZldGNoS2V5KSB8fCBoYXNBZ2VudHNQcmVmZXRjaEluRmxpZ2h0KHByZWZldGNoS2V5KSkge1xuICAgIHJldHVyblxuICB9XG5cbiAgY29uc3QgcHJvbWlzZSA9IGZldGNoQWdlbnRzTGlzdCh7XG4gICAgc2VjdGlvbixcbiAgICBsYW5nOiByZXNvbHZlZExhbmcsXG4gICAgaXNNdWx0aUFnZW50cyxcbiAgICBjYW5GZXRjaENsb25lQWdlbnRzLFxuICB9KVxuXG4gIGF3YWl0IHJlZ2lzdGVyQWdlbnRzUHJlZmV0Y2gocHJlZmV0Y2hLZXksIHByb21pc2UpLmNhdGNoKCgpID0+IHVuZGVmaW5lZClcbn1cblxuLyoqXG4gKiBQcmVmZXRjaCBlbiBob3Zlci9pZGxlOiBhZ2VudHMgKyByZWNlbnQtY29udGV4dHMgKHNpIE1BSUEgRkEgYWN0aXZvKS5cbiAqIGdldEFnZW50cyAvIGdldFJlY2VudENvbnRleHRzIGNvbnN1bWVuIGxhIHNlc2nDs24gYWwgYWJyaXI7IHJlc2V0TWFpYVByZWZldGNoU2Vzc2lvbiBhbCBjZXJyYXIuXG4gKi9cbmV4cG9ydCBjb25zdCBwcmVmZXRjaE1haWFBZ2VudHMgPSBhc3luYyAoeyBzZWN0aW9uLCBsYW5nLCByb2xlSWQgfTogUHJlZmV0Y2hNYWlhQWdlbnRzUGFyYW1zKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGNvbnN0IHJlc29sdmVkTGFuZyA9IHJlc29sdmVMYW5nKGxhbmcpXG5cbiAgYXdhaXQgUHJvbWlzZS5hbGxTZXR0bGVkKFtwcmVmZXRjaEFnZW50c0xpc3QoeyBzZWN0aW9uLCByZXNvbHZlZExhbmcsIHJvbGVJZCB9KSwgcHJlZmV0Y2hNYWlhUmVjZW50Q29udGV4dHMoKV0pXG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQ0EsU0FBU0EsNEJBQTRCLFFBQVEsd0NBQXdDO0FBQ3JGLFNBQVNDLFVBQVUsUUFBUSxxQkFBcUI7QUFDaEQsU0FBU0MsMEJBQTBCLFFBQVEseUJBQXlCO0FBQ3BFLFNBQVNDLGVBQWUsUUFBUSxtQkFBbUI7QUFDbkQsU0FDRUMsc0JBQXNCLEVBQ3RCQyx5QkFBeUIsRUFDekJDLHNCQUFzQixFQUN0QkMsc0JBQXNCLFFBQ2pCLHlCQUF5QjtBQUNoQyxTQUFTQywwQkFBMEIsUUFBUSw4QkFBOEI7QUFDekUsU0FBU0Msa0NBQWtDLFFBQVEsaUNBQWlDO0FBU3BGLFNBQVNDLGtCQUFrQixFQUFFUiwwQkFBMEIsRUFBRUUsc0JBQXNCLFFBQVEseUJBQXlCO0FBQ2hILFNBQVNJLDBCQUEwQixRQUFRLDhCQUE4QjtBQUV6RSxPQUFPLElBQU1HLHdCQUF3QixHQUFHLFNBQTNCQSx3QkFBd0JBLENBQUEsRUFBZTtFQUNsRFQsMEJBQTBCLENBQUMsQ0FBQztFQUM1Qk8sa0NBQWtDLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRUQsSUFBTUcsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUlDLElBQWEsRUFBYTtFQUFBLElBQUFDLElBQUEsRUFBQUMsWUFBQSxFQUFBQyxnQkFBQTtFQUM3QyxJQUFJSCxJQUFJLEVBQUU7SUFDUixPQUFPWixVQUFVLENBQUNZLElBQUksQ0FBQztFQUN6QjtFQUNBLElBQUksT0FBT0ksTUFBTSxLQUFLLFdBQVcsRUFBRTtJQUNqQyxPQUFPLElBQUk7RUFDYjtFQUNBLElBQU1DLEdBQUcsSUFBQUosSUFBQSxJQUFBQyxZQUFBLEdB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
@@ -0,0 +1,56 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
3
+ import { fetchRecentContextsList } from '../RecentContexts/getRecentContexts';
4
+ import { buildRecentContextsPrefetchKey, DEFAULT_RECENT_CONTEXTS_PREFETCH_LIMIT, hasRecentContextsPrefetchInFlight, hasRecentContextsPrefetchReady, registerRecentContextsPrefetch } from './recentContextsPrefetchSession';
5
+ var hasMaiaChatFeatureAccess = function hasMaiaChatFeatureAccess() {
6
+ return typeof window !== 'undefined' && Boolean(window.MAIA_CHAT_AI_FEATURE_ACCESS);
7
+ };
8
+ export { takeRecentContextsPrefetch, resetRecentContextsPrefetchSession, buildRecentContextsPrefetchKey } from './recentContextsPrefetchSession';
9
+
10
+ /**
11
+ * Prefetch en hover/idle cuando MAIA_CHAT_AI_FEATURE_ACCESS está activo.
12
+ * getRecentContexts consume con takeRecentContextsPrefetch; al cerrar el modal se resetea.
13
+ */
14
+ export var prefetchMaiaRecentContexts = /*#__PURE__*/function () {
15
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
16
+ var limit,
17
+ prefetchKey,
18
+ promise,
19
+ _args = arguments;
20
+ return _regeneratorRuntime.wrap(function (_context) {
21
+ while (1) switch (_context.prev = _context.next) {
22
+ case 0:
23
+ limit = _args.length > 0 && _args[0] !== undefined ? _args[0] : DEFAULT_RECENT_CONTEXTS_PREFETCH_LIMIT;
24
+ if (hasMaiaChatFeatureAccess()) {
25
+ _context.next = 1;
26
+ break;
27
+ }
28
+ return _context.abrupt("return");
29
+ case 1:
30
+ prefetchKey = buildRecentContextsPrefetchKey({
31
+ limit: limit
32
+ });
33
+ if (!(hasRecentContextsPrefetchReady(prefetchKey) || hasRecentContextsPrefetchInFlight(prefetchKey))) {
34
+ _context.next = 2;
35
+ break;
36
+ }
37
+ return _context.abrupt("return");
38
+ case 2:
39
+ promise = fetchRecentContextsList({
40
+ limit: limit
41
+ });
42
+ _context.next = 3;
43
+ return registerRecentContextsPrefetch(prefetchKey, promise)["catch"](function () {
44
+ return undefined;
45
+ });
46
+ case 3:
47
+ case "end":
48
+ return _context.stop();
49
+ }
50
+ }, _callee);
51
+ }));
52
+ return function prefetchMaiaRecentContexts() {
53
+ return _ref.apply(this, arguments);
54
+ };
55
+ }();
56
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaFJlY2VudENvbnRleHRzTGlzdCIsImJ1aWxkUmVjZW50Q29udGV4dHNQcmVmZXRjaEtleSIsIkRFRkFVTFRfUkVDRU5UX0NPTlRFWFRTX1BSRUZFVENIX0xJTUlUIiwiaGFzUmVjZW50Q29udGV4dHNQcmVmZXRjaEluRmxpZ2h0IiwiaGFzUmVjZW50Q29udGV4dHNQcmVmZXRjaFJlYWR5IiwicmVnaXN0ZXJSZWNlbnRDb250ZXh0c1ByZWZldGNoIiwiaGFzTWFpYUNoYXRGZWF0dXJlQWNjZXNzIiwid2luZG93IiwiQm9vbGVhbiIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUyIsInRha2VSZWNlbnRDb250ZXh0c1ByZWZldGNoIiwicmVzZXRSZWNlbnRDb250ZXh0c1ByZWZldGNoU2Vzc2lvbiIsInByZWZldGNoTWFpYVJlY2VudENvbnRleHRzIiwiX3JlZiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwibGltaXQiLCJwcmVmZXRjaEtleSIsInByb21pc2UiLCJfYXJncyIsImFyZ3VtZW50cyIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiYWJydXB0Iiwic3RvcCIsImFwcGx5Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL21haWEvYm9vdHN0cmFwL3ByZWZldGNoTWFpYVJlY2VudENvbnRleHRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZldGNoUmVjZW50Q29udGV4dHNMaXN0IH0gZnJvbSAnLi4vUmVjZW50Q29udGV4dHMvZ2V0UmVjZW50Q29udGV4dHMnXG5pbXBvcnQge1xuICBidWlsZFJlY2VudENvbnRleHRzUHJlZmV0Y2hLZXksXG4gIERFRkFVTFRfUkVDRU5UX0NPTlRFWFRTX1BSRUZFVENIX0xJTUlULFxuICBoYXNSZWNlbnRDb250ZXh0c1ByZWZldGNoSW5GbGlnaHQsXG4gIGhhc1JlY2VudENvbnRleHRzUHJlZmV0Y2hSZWFkeSxcbiAgcmVnaXN0ZXJSZWNlbnRDb250ZXh0c1ByZWZldGNoLFxufSBmcm9tICcuL3JlY2VudENvbnRleHRzUHJlZmV0Y2hTZXNzaW9uJ1xuXG5jb25zdCBoYXNNYWlhQ2hhdEZlYXR1cmVBY2Nlc3MgPSAoKTogYm9vbGVhbiA9PlxuICB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiBCb29sZWFuKHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MpXG5cbmV4cG9ydCB7XG4gIHRha2VSZWNlbnRDb250ZXh0c1ByZWZldGNoLFxuICByZXNldFJlY2VudENvbnRleHRzUHJlZmV0Y2hTZXNzaW9uLFxuICBidWlsZFJlY2VudENvbnRleHRzUHJlZmV0Y2hLZXksXG59IGZyb20gJy4vcmVjZW50Q29udGV4dHNQcmVmZXRjaFNlc3Npb24nXG5cbi8qKlxuICogUHJlZmV0Y2ggZW4gaG92ZXIvaWRsZSBjdWFuZG8gTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTIGVzdMOhIGFjdGl2by5cbiAqIGdldFJlY2VudENvbnRleHRzIGNvbnN1bWUgY29uIHRha2VSZWNlbnRDb250ZXh0c1ByZWZldGNoOyBhbCBjZXJyYXIgZWwgbW9kYWwgc2UgcmVzZXRlYS5cbiAqL1xuZXhwb3J0IGNvbnN0IHByZWZldGNoTWFpYVJlY2VudENvbnRleHRzID0gYXN5bmMgKFxuICBsaW1pdDogbnVtYmVyID0gREVGQVVMVF9SRUNFTlRfQ09OVEVYVFNfUFJFRkVUQ0hfTElNSVRcbik6IFByb21pc2U8dm9pZD4gPT4ge1xuICBpZiAoIWhhc01haWFDaGF0RmVhdHVyZUFjY2VzcygpKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCBwcmVmZXRjaEtleSA9IGJ1aWxkUmVjZW50Q29udGV4dHNQcmVmZXRjaEtleSh7IGxpbWl0IH0pXG5cbiAgaWYgKGhhc1JlY2VudENvbnRleHRzUHJlZmV0Y2hSZWFkeShwcmVmZXRjaEtleSkgfHwgaGFzUmVjZW50Q29udGV4dHNQcmVmZXRjaEluRmxpZ2h0KHByZWZldGNoS2V5KSkge1xuICAgIHJldHVyblxuICB9XG5cbiAgY29uc3QgcHJvbWlzZSA9IGZldGNoUmVjZW50Q29udGV4dHNMaXN0KHsgbGltaXQgfSlcblxuICBhd2FpdCByZWdpc3RlclJlY2VudENvbnRleHRzUHJlZmV0Y2gocHJlZmV0Y2hLZXksIHByb21pc2UpLmNhdGNoKCgpID0+IHVuZGVmaW5lZClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxTQUFTQSx1QkFBdUIsUUFBUSxxQ0FBcUM7QUFDN0UsU0FDRUMsOEJBQThCLEVBQzlCQyxzQ0FBc0MsRUFDdENDLGlDQUFpQyxFQUNqQ0MsOEJBQThCLEVBQzlCQyw4QkFBOEIsUUFDekIsaUNBQWlDO0FBRXhDLElBQU1DLHdCQUF3QixHQUFHLFNBQTNCQSx3QkFBd0JBLENBQUE7RUFBQSxPQUM1QixPQUFPQyxNQUFNLEtBQUssV0FBVyxJQUFJQyxPQUFPLENBQUNELE1BQU0sQ0FBQ0UsMkJBQTJCLENBQUM7QUFBQTtBQUU5RSxTQUNFQywwQkFBMEIsRUFDMUJDLGtDQUFrQyxFQUNsQ1YsOEJBQThCLFFBQ3pCLGlDQUFpQzs7QUFFeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1XLDBCQUEwQjtFQUFBLElBQUFDLElBQUEsR0FBQUMsaUJBQUEsY0FBQUMsbUJBQUEsQ0FBQUMsSUFBQSxDQUFHLFNBQUFDLFFBQUE7SUFBQSxJQUFBQyxLQUFBO01BQUFDLFdBQUE7TUFBQUMsT0FBQTtNQUFBQyxLQUFBLEdBQUFDLFNBQUE7SUFBQSxPQUFBUCxtQkFBQSxDQUFBUSxJQUFBLFdBQUFDLFFBQUE7TUFBQSxrQkFBQUEsUUFBQSxDQUFBQyxJQUFBLEdBQUFELFFBQUEsQ0FBQUUsSUFBQTtRQUFBO1VBQ3hDUixLQUFhLEdBQUFHLEtBQUEsQ0FBQU0sTUFBQSxRQUFBTixLQUFBLFFBQUFPLFNBQUEsR0FBQVAsS0FBQSxNQUFHbkIsc0NBQXNDO1VBQUEsSUFFakRJLHdCQUF3QixDQUFDLENBQUM7WUFBQWtCLFFBQUEsQ0FBQUUsSUFBQTtZQUFBO1VBQUE7VUFBQSxPQUFBRixRQUFBLENBQUFLLE1BQUE7UUFBQTtVQUl6QlYsV0FBVyxHQUFHbEIsOEJBQThCLENBQUM7WUFBRWlCLEtBQUssRUFBTEE7VUFBTSxDQUFDLENBQUM7VUFBQSxNQUV6RGQsOEJBQThCLENBQUNlLFdBQVcsQ0FBQyxJQUFJaEIsaUNBQWlDLENBQUNnQixXQUFXLENBQUM7WUFBQUssUUFBQSxDQUFBRSxJQUFBO1lBQUE7VUFBQTtVQUFBLE9BQUFGLFFBQUEsQ0FBQUssTUFBQTtRQUFBO1VBSTNGVCxPQUFPLEdBQUdwQix1QkFBdUIsQ0FBQztZQUFFa0IsS0FBSyxFQUFMQTtVQUFNLENBQUMsQ0FBQztVQUFBTSxRQUFBLENBQUFFLElBQUE7VUFBQSxPQUU1Q3JCLDhCQUE4QixDQUFDYyxXQUFXLEVBQUVDLE9BQU8sQ0FBQyxTQUFNLENBQUM7WUFBQSxPQUFNUSxTQUFTO1VBQUEsRUFBQztRQUFBO1FBQUE7VUFBQSxPQUFBSixRQUFBLENBQUFNLElBQUE7TUFBQTtJQUFBLEdBQUFiLE9BQUE7RUFBQSxDQUNsRjtFQUFBLGdCQWhCWUwsMEJBQTBCQSxDQUFBO0lBQUEsT0FBQUMsSUFBQSxDQUFBa0IsS0FBQSxPQUFBVCxTQUFBO0VBQUE7QUFBQSxHQWdCdEMiLCJpZ25vcmVMaXN0IjpbXX0=