@projectcor/maia-components 2.35.4-0 → 2.35.4-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/App.js +44 -19
- package/lib/components/atoms/ApprovalBox/ApprovalBox.js +4 -63
- package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +3 -31
- package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +4 -16
- package/lib/components/atoms/ContextMentionChip/buildChipElement.js +1 -12
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +5 -127
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +29 -2
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +33 -24
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +19 -2
- package/lib/components/atoms/MAIAInput/MAIAInput.js +17 -234
- package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +2 -84
- package/lib/components/atoms/MAIAInput/styles.js +11 -15
- package/lib/components/atoms/icons/SkillsNavIcon.js +7 -4
- package/lib/components/atoms/icons/index.js +1 -5
- package/lib/components/index.js +2 -1
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +11 -34
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +9 -7
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +8 -4
- package/lib/components/molecules/ChatAIMessages/newStyles.js +29 -26
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +23 -60
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +69 -70
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +242 -333
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +104 -131
- package/lib/components/molecules/ChatFooter/ChatFooter.js +5 -15
- package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +8 -1
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +3 -1
- package/lib/components/molecules/Sidebar/Sidebar.js +32 -34
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +2 -2
- package/lib/components/molecules/Sidebar/Sidebar.spec.js +22 -2
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +12 -21
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +1 -8
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +184 -430
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +22 -78
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +72 -132
- package/lib/components/organisms/ChatAIPage/ChatAIPage.js +484 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPage.spec.js +231 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPage.styles.js +16 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.js +253 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.spec.js +139 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.styles.js +13 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHome.js +217 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHome.spec.js +102 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHome.styles.js +147 -0
- package/lib/components/organisms/ChatAIPage/getDaypart.js +9 -0
- package/lib/components/organisms/ChatAIPage/getDaypart.spec.js +19 -0
- package/lib/components/organisms/ChatAIPage/index.js +3 -0
- package/lib/components/organisms/ChatAIPage/pageHomeMockCards.js +17 -0
- package/lib/constants/config.js +4 -1
- package/lib/constants/permissions/index.js +2 -2
- package/lib/constants/permissions/utils.js +6 -3
- package/lib/dev/DevMaiaPage.js +30 -0
- package/lib/hooks/useAgentModel/useCreateAgent.js +6 -6
- package/lib/hooks/useAgentModel/useUpdateAgent.js +6 -6
- package/lib/hooks/useChatManager/useChatManager.js +4 -5
- package/lib/hooks/useContextMentions.js +56 -96
- package/lib/hooks/useEntitySearch.js +278 -92
- package/lib/hooks/useEvent.js +2 -15
- package/lib/hooks/useEvent.spec.js +2 -7
- package/lib/hooks/useIsMaiaPageRoute.js +26 -0
- package/lib/hooks/useIsMaiaPageRoute.spec.js +26 -0
- package/lib/hooks/useMentionAllowedTypes.js +25 -9
- package/lib/hooks/useMentionAllowedTypes.spec.js +15 -4
- package/lib/hooks/useMentionPopover.js +33 -9
- package/lib/index.js +5 -2
- package/lib/lang/br/index.js +32 -39
- package/lib/lang/en/index.js +32 -39
- package/lib/lang/es/index.js +33 -40
- package/lib/lang/fr/index.js +32 -39
- package/lib/services/maia/Agents/setAgentToolGroups.js +2 -2
- package/lib/services/maia/Agents/setAgentToolGroups.spec.js +3 -3
- package/lib/services/maia/Orchestrator/orchestrator.js +3 -6
- package/lib/services/maia/Skills/createSkill.js +1 -1
- package/lib/services/maia/Skills/createSkill.spec.js +5 -14
- package/lib/services/maia/Skills/getSkills.js +40 -70
- package/lib/services/maia/Skills/updateSkill.js +1 -1
- package/lib/services/maia/Skills/updateSkill.spec.js +4 -11
- package/lib/styles/cascade.js +29 -3
- package/lib/styles/transitions.js +3 -1
- package/lib/types/agentModal.js +1 -1
- package/lib/types/global.d.js +1 -1
- package/lib/types/skill.js +1 -1
- package/lib/utils/contextMentionTriggers.js +5 -2
- package/lib/utils/contextMentionTriggers.spec.js +6 -8
- package/lib/utils/maiaPageRoute.js +24 -0
- package/lib/utils/maiaPageRoute.spec.js +23 -0
- package/lib/utils/normalizeAgentConnectors.js +16 -44
- package/lib/utils/normalizeAgentConnectors.spec.js +13 -43
- package/lib/utils/renderContextMentions.js +18 -39
- package/package.json +1 -1
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.js +0 -208
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +0 -107
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.styles.js +0 -77
- package/lib/components/atoms/SkillsDropdown/index.js +0 -2
- package/lib/components/atoms/icons/PlusIcon.js +0 -29
- package/lib/components/atoms/icons/SkillCreatedByIcon.js +0 -20
- package/lib/components/atoms/icons/SkillVisibilityEveryoneIcon.js +0 -23
- package/lib/components/atoms/icons/SkillVisibilityOnlyMeIcon.js +0 -23
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +0 -77
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +0 -128
- package/lib/hooks/useAgentModel/useCreateAgent.spec.js +0 -95
- package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +0 -96
- package/lib/hooks/useSkillsCatalog.js +0 -66
- package/lib/hooks/useSkillsCatalog.spec.js +0 -88
- package/lib/services/maia/Orchestrator/orchestrator.spec.js +0 -72
- package/lib/services/maia/Skills/getSkills.spec.js +0 -152
package/lib/types/global.d.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2dsb2JhbC5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVuZGVmICovXG4vKiBlc2xpbnQtZGlzYWJsZSB2YXJzLW9uLXRvcCAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdmFyICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IFVzZXJQcm9wcyB9IGZyb20gJy4vdXNlclR5cGUuZCdcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgV2luZG93IGV4dGVuZHMgV2luZG93IHtcbiAgICBsYW5nOiBzdHJpbmdcbiAgICB1c2VySW5mbzogVXNlclByb3BzXG4gICAgQXBwY3VlczogYW55XG4gICAgbWFpYVByb2plY3RTdW1tYXJ5QWNjZXNzPzogc3RyaW5nXG4gICAgbWFpYUNoYXRBaUFjY2Vzcz86IHN0cmluZ1xuICAgIE1BSUFfUFJPSkVDVF9TVU1NQVJZX0ZFQVRVUkVfQUNDRVNTPzogc3RyaW5nIHwgYm9vbGVhblxuICAgIE1BSUFfSU5fVEFTS19BQ0NFU1M/
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2dsb2JhbC5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVuZGVmICovXG4vKiBlc2xpbnQtZGlzYWJsZSB2YXJzLW9uLXRvcCAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdmFyICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IFVzZXJQcm9wcyB9IGZyb20gJy4vdXNlclR5cGUuZCdcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgV2luZG93IGV4dGVuZHMgV2luZG93IHtcbiAgICBsYW5nOiBzdHJpbmdcbiAgICB1c2VySW5mbzogVXNlclByb3BzXG4gICAgQXBwY3VlczogYW55XG4gICAgbWFpYVByb2plY3RTdW1tYXJ5QWNjZXNzPzogc3RyaW5nXG4gICAgbWFpYUNoYXRBaUFjY2Vzcz86IHN0cmluZ1xuICAgIE1BSUFfUFJPSkVDVF9TVU1NQVJZX0ZFQVRVUkVfQUNDRVNTPzogc3RyaW5nIHwgYm9vbGVhblxuICAgIE1BSUFfSU5fVEFTS19BQ0NFU1M/OiBzdHJpbmcgfCBib29sZWFuXG4gICAgTUFJQV9TS0lMTFNfQUNDRVNTPzogc3RyaW5nIHwgYm9vbGVhblxuICAgIE1BSUFfSE9VUl9BR0VOVF9GRUFUVVJFX0FDQ0VTUz86IHN0cmluZyB8IGJvb2xlYW5cbiAgICBNQUlBX1NJREVCQVJfRkVBVFVSRV9BQ0NFU1M/OiBzdHJpbmcgfCBib29sZWFuXG4gICAgJF9zYzogYW55XG4gICAgb3BlblBhbmVsPzogKHRhc2tJZDogc3RyaW5nIHwgbnVtYmVyLCBzZWN0aW9uOiBzdHJpbmcpID0+IHZvaWRcbiAgICBuZXdQcm9qZWN0RGFzaGJvYXJkPzoge1xuICAgICAgYWRkRXhpc3RpbmdUYXNrVG9EYXNoYm9hcmQ6ICh0YXNrSWRzOiBudW1iZXJbXSkgPT4gdm9pZFxuICAgICAgZWRpdEV4aXN0aW5nVGFza0luRGFzaGJvYXJkOiAodGFza0lkczogbnVtYmVyW10pID0+IHZvaWRcbiAgICAgIGRlbGV0ZUV4aXN0aW5nVGFza0Zyb21EYXNoYm9hcmQ6ICh0YXNrSWRzOiBudW1iZXJbXSkgPT4gdm9pZFxuICAgIH1cbiAgICB0YXNrUGFuZWw/OiB7XG4gICAgICB0YXNrSWQ6IHN0cmluZ1xuICAgICAgcmVmZXRjaFRhc2s6ICgpID0+IHZvaWRcbiAgICB9XG4gIH1cbiAgaW50ZXJmYWNlIFdpbmRvd0V2ZW50TWFwIHtcbiAgICAvLyBlbmFibGVkIHdpbmRvdyBldmVudCBsaXN0ZW5lciAnbG9jYXRpb25jaGFuZ2UnXG4gICAgbG9jYXRpb25jaGFuZ2U6IEN1c3RvbUV2ZW50XG4gIH1cblxuICB0eXBlIFRyYW5zbGF0aW9uRnVuY3Rpb24gPSAoa2V5OiBzdHJpbmcpID0+IHN0cmluZ1xuICB2YXIgJF9jYToge1xuICAgIGdldENvb2tpZUFUUzogKCkgPT4gc3RyaW5nXG4gICAgcmVmcmVzaFRva2VuOiAoKSA9PiBQcm9taXNlPHZvaWQ+XG4gIH1cbiAgdmFyICRfc2M6IGFueVxuICBkZWNsYXJlIHZhciBwcm9jZXNzOiBOb2RlSlMuUHJvY2Vzc1xuICBkZWNsYXJlIHZhciBtYWlhQWdlbnRQbUFjY2Vzczogc3RyaW5nXG4gIGRlY2xhcmUgdmFyIE1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFM6IHN0cmluZ1xuICBkZWNsYXJlIHZhciBNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1M6IHN0cmluZ1xuICBkZWNsYXJlIHZhciBNQUlBX1NJREVCQVJfRkVBVFVSRV9BQ0NFU1M6IHN0cmluZ1xuICBkZWNsYXJlIHZhciBtYWlhUHJvamVjdFN1bW1hcnlBY2Nlc3M6IHN0cmluZ1xuICBkZWNsYXJlIHZhciBtYWlhRmFxc0FjY2Vzczogc3RyaW5nXG59XG4iXSwibWFwcGluZ3MiOiIiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/lib/types/skill.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL3NraWxsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFNraWxsID0ge1xuICBpZDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICBjb250ZW50OiBzdHJpbmdcbiAgY3JlYXRlZF9hdD86IHN0cmluZ1xuICB1cGRhdGVkX2F0Pzogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIFNraWxsc1Jlc3BvbnNlID0ge1xuICBkYXRhOiBTa2lsbFtdXG4gIGhhc19tb3JlPzogYm9vbGVhblxuICBuZXh0X29mZnNldD86IG51bWJlciB8IG51bGxcbn1cbiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -5,10 +5,12 @@ export var TYPE_TO_TRIGGER_SEQUENCE = {
|
|
|
5
5
|
task: 2,
|
|
6
6
|
project: 3,
|
|
7
7
|
client: 4,
|
|
8
|
-
/** Triggers con slash: @@/ mcp (atRunLength negativo en el editor) */
|
|
8
|
+
/** Triggers con slash: @/ skills, @@/ mcp (atRunLength negativo en el editor) */
|
|
9
|
+
skill: -1,
|
|
9
10
|
mcp: -2
|
|
10
11
|
};
|
|
11
12
|
export var getMentionTabPrefix = function getMentionTabPrefix(type) {
|
|
13
|
+
if (type === 'skill') return '@/';
|
|
12
14
|
var mapped = TYPE_TO_TRIGGER_SEQUENCE[type];
|
|
13
15
|
if (mapped === undefined) return '@';
|
|
14
16
|
if (mapped < 0) return "".concat('@'.repeat(Math.abs(mapped)), "/");
|
|
@@ -16,6 +18,7 @@ export var getMentionTabPrefix = function getMentionTabPrefix(type) {
|
|
|
16
18
|
};
|
|
17
19
|
export var getAtRunTabTypes = function getAtRunTabTypes(allowedTypes) {
|
|
18
20
|
return allowedTypes.filter(function (type) {
|
|
21
|
+
if (type === 'skill') return false;
|
|
19
22
|
var mapped = TYPE_TO_TRIGGER_SEQUENCE[type];
|
|
20
23
|
return mapped === undefined || mapped > 0;
|
|
21
24
|
});
|
|
@@ -48,4 +51,4 @@ export var getTriggerSequenceFromType = function getTriggerSequenceFromType(type
|
|
|
48
51
|
var idx = allowedTypes.indexOf(type);
|
|
49
52
|
return idx >= 0 ? idx + 1 : 1;
|
|
50
53
|
};
|
|
51
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUWVBFX1RPX1RSSUdHRVJfU0VRVUVOQ0UiLCJ1c2VyIiwidGFzayIsInByb2plY3QiLCJjbGllbnQiLCJza2lsbCIsIm1jcCIsImdldE1lbnRpb25UYWJQcmVmaXgiLCJ0eXBlIiwibWFwcGVkIiwidW5kZWZpbmVkIiwiY29uY2F0IiwicmVwZWF0IiwiTWF0aCIsImFicyIsImdldEF0UnVuVGFiVHlwZXMiLCJhbGxvd2VkVHlwZXMiLCJmaWx0ZXIiLCJnZXRUeXBlRnJvbVRyaWdnZXJTZXF1ZW5jZSIsImF0UnVuTGVuZ3RoIiwiZGVmYXVsdFR5cGUiLCJfT2JqZWN0JGVudHJpZXMkZmluZCQyIiwiX09iamVjdCRlbnRyaWVzJGZpbmQyIiwiX2FsbG93ZWRUeXBlcyR0YWJJZHgiLCJfT2JqZWN0JGVudHJpZXMkZmluZCQiLCJfT2JqZWN0JGVudHJpZXMkZmluZCIsInNsYXNoVHlwZSIsIk9iamVjdCIsImVudHJpZXMiLCJmaW5kIiwiX3JlZiIsIl9yZWYyIiwiX3NsaWNlZFRvQXJyYXkiLCJsZW4iLCJpbmNsdWRlcyIsIm5vcm1hbGl6ZWQiLCJtYXgiLCJmbG9vciIsIm1hcHBlZFR5cGUiLCJfcmVmMyIsIl9yZWY0IiwidGFiSWR4IiwibWluIiwibGVuZ3RoIiwiZ2V0VHJpZ2dlclNlcXVlbmNlRnJvbVR5cGUiLCJpZHgiLCJpbmRleE9mIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NvbnRleHRNZW50aW9uVHJpZ2dlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGV4dEVudGl0eVR5cGUgfSBmcm9tICcuLi90eXBlcy9jb250ZXh0TWVudGlvbidcblxuLyoqIFNlY3VlbmNpYSBkZSBgQGAgKHBvc2l0aXZhKSBvIGBAL2AvYEBAL2DigKYgKG5lZ2F0aXZhID0gcnVuIGRlIEAgKyBzbGFzaCkgcG9yIHRpcG8gZGUgdGFiLiAqL1xuZXhwb3J0IGNvbnN0IFRZUEVfVE9fVFJJR0dFUl9TRVFVRU5DRTogUGFydGlhbDxSZWNvcmQ8Q29udGV4dEVudGl0eVR5cGUsIG51bWJlcj4+ID0ge1xuICB1c2VyOiAxLFxuICB0YXNrOiAyLFxuICBwcm9qZWN0OiAzLFxuICBjbGllbnQ6IDQsXG4gIC8qKiBUcmlnZ2VycyBjb24gc2xhc2g6IEAvIHNraWxscywgQEAvIG1jcCAoYXRSdW5MZW5ndGggbmVnYXRpdm8gZW4gZWwgZWRpdG9yKSAqL1xuICBza2lsbDogLTEsXG4gIG1jcDogLTIsXG59XG5cbmV4cG9ydCBjb25zdCBnZXRNZW50aW9uVGFiUHJlZml4ID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlKTogc3RyaW5nID0+IHtcbiAgaWYgKHR5cGUgPT09ICdza2lsbCcpIHJldHVybiAnQC8nXG4gIGNvbnN0IG1hcHBlZCA9IFRZUEVfVE9fVFJJR0dFUl9TRVFVRU5DRVt0eXBlXVxuICBpZiAobWFwcGVkID09PSB1bmRlZmluZWQpIHJldHVybiAnQCdcbiAgaWYgKG1hcHBlZCA8IDApIHJldHVybiBgJHsnQCcucmVwZWF0KE1hdGguYWJzKG1hcHBlZCkpfS9gXG4gIHJldHVybiAnQCcucmVwZWF0KG1hcHBlZClcbn1cblxuZXhwb3J0IGNvbnN0IGdldEF0UnVuVGFiVHlwZXMgPSAoYWxsb3dlZFR5cGVzOiBDb250ZXh0RW50aXR5VHlwZVtdKTogQ29udGV4dEVudGl0eVR5cGVbXSA9PlxuICBhbGxvd2VkVHlwZXMuZmlsdGVyKHR5cGUgPT4ge1xuICAgIGlmICh0eXBlID09PSAnc2tpbGwnKSByZXR1cm4gZmFsc2VcbiAgICBjb25zdCBtYXBwZWQgPSBUWVBFX1RPX1RSSUdHRVJfU0VRVUVOQ0VbdHlwZV1cbiAgICByZXR1cm4gbWFwcGVkID09PSB1bmRlZmluZWQgfHwgbWFwcGVkID4gMFxuICB9KVxuXG5leHBvcnQgY29uc3QgZ2V0VHlwZUZyb21UcmlnZ2VyU2VxdWVuY2UgPSAoXG4gIGF0UnVuTGVuZ3RoOiBudW1iZXIsXG4gIGFsbG93ZWRUeXBlczogQ29udGV4dEVudGl0eVR5cGVbXSxcbiAgZGVmYXVsdFR5cGU6IENvbnRleHRFbnRpdHlUeXBlXG4pOiBDb250ZXh0RW50aXR5VHlwZSA9PiB7XG4gIGlmIChhdFJ1bkxlbmd0aCA8IDApIHtcbiAgICBjb25zdCBzbGFzaFR5cGUgPSAoT2JqZWN0LmVudHJpZXMoVFlQRV9UT19UUklHR0VSX1NFUVVFTkNFKS5maW5kKChbLCBsZW5dKSA9PiBsZW4gPT09IGF0UnVuTGVuZ3RoKT8uWzBdID8/XG4gICAgICBudWxsKSBhcyBDb250ZXh0RW50aXR5VHlwZSB8IG51bGxcbiAgICBpZiAoc2xhc2hUeXBlICYmIGFsbG93ZWRUeXBlcy5pbmNsdWRlcyhzbGFzaFR5cGUpKSByZXR1cm4gc2xhc2hUeXBlXG4gICAgcmV0dXJuIGRlZmF1bHRUeXBlXG4gIH1cbiAgY29uc3Qgbm9ybWFsaXplZCA9IE1hdGgubWF4KDEsIE1hdGguZmxvb3IoYXRSdW5MZW5ndGgpKVxuICBjb25zdCBtYXBwZWRUeXBlID0gKE9iamVjdC5lbnRyaWVzKFRZUEVfVE9fVFJJR0dFUl9TRVFVRU5DRSkuZmluZCgoWywgbGVuXSkgPT4gbGVuID09PSBub3JtYWxpemVkKT8uWzBdID8/XG4gICAgbnVsbCkgYXMgQ29udGV4dEVudGl0eVR5cGUgfCBudWxsXG4gIGlmIChtYXBwZWRUeXBlICYmIGFsbG93ZWRUeXBlcy5pbmNsdWRlcyhtYXBwZWRUeXBlKSkgcmV0dXJuIG1hcHBlZFR5cGVcbiAgY29uc3QgdGFiSWR4ID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgbm9ybWFsaXplZCAtIDEpLCBhbGxvd2VkVHlwZXMubGVuZ3RoIC0gMSlcbiAgcmV0dXJuIGFsbG93ZWRUeXBlc1t0YWJJZHhdID8/IGRlZmF1bHRUeXBlXG59XG5cbmV4cG9ydCBjb25zdCBnZXRUcmlnZ2VyU2VxdWVuY2VGcm9tVHlwZSA9ICh0eXBlOiBDb250ZXh0RW50aXR5VHlwZSwgYWxsb3dlZFR5cGVzOiBDb250ZXh0RW50aXR5VHlwZVtdKTogbnVtYmVyID0+IHtcbiAgY29uc3QgbWFwcGVkID0gVFlQRV9UT19UUklHR0VSX1NFUVVFTkNFW3R5cGVdXG4gIGlmIChtYXBwZWQgIT09IHVuZGVmaW5lZCkgcmV0dXJuIG1hcHBlZFxuICBjb25zdCBpZHggPSBhbGxvd2VkVHlwZXMuaW5kZXhPZih0eXBlKVxuICByZXR1cm4gaWR4ID49IDAgPyBpZHggKyAxIDogMVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBRUE7QUFDQSxPQUFPLElBQU1BLHdCQUFvRSxHQUFHO0VBQ2xGQyxJQUFJLEVBQUUsQ0FBQztFQUNQQyxJQUFJLEVBQUUsQ0FBQztFQUNQQyxPQUFPLEVBQUUsQ0FBQztFQUNWQyxNQUFNLEVBQUUsQ0FBQztFQUNUO0VBQ0FDLEtBQUssRUFBRSxDQUFDLENBQUM7RUFDVEMsR0FBRyxFQUFFLENBQUM7QUFDUixDQUFDO0FBRUQsT0FBTyxJQUFNQyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFJQyxJQUF1QixFQUFhO0VBQ3RFLElBQUlBLElBQUksS0FBSyxPQUFPLEVBQUUsT0FBTyxJQUFJO0VBQ2pDLElBQU1DLE1BQU0sR0FBR1Qsd0JBQXdCLENBQUNRLElBQUksQ0FBQztFQUM3QyxJQUFJQyxNQUFNLEtBQUtDLFNBQVMsRUFBRSxPQUFPLEdBQUc7RUFDcEMsSUFBSUQsTUFBTSxHQUFHLENBQUMsRUFBRSxVQUFBRSxNQUFBLENBQVUsR0FBRyxDQUFDQyxNQUFNLENBQUNDLElBQUksQ0FBQ0MsR0FBRyxDQUFDTCxNQUFNLENBQUMsQ0FBQztFQUN0RCxPQUFPLEdBQUcsQ0FBQ0csTUFBTSxDQUFDSCxNQUFNLENBQUM7QUFDM0IsQ0FBQztBQUVELE9BQU8sSUFBTU0sZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFnQkEsQ0FBSUMsWUFBaUM7RUFBQSxPQUNoRUEsWUFBWSxDQUFDQyxNQUFNLENBQUMsVUFBQVQsSUFBSSxFQUFJO0lBQzFCLElBQUlBLElBQUksS0FBSyxPQUFPLEVBQUUsT0FBTyxLQUFLO0lBQ2xDLElBQU1DLE1BQU0sR0FBR1Qsd0JBQXdCLENBQUNRLElBQUksQ0FBQztJQUM3QyxPQUFPQyxNQUFNLEtBQUtDLFNBQVMsSUFBSUQsTUFBTSxH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
|
|
@@ -7,32 +7,30 @@ describe('contextMentionTriggers', function () {
|
|
|
7
7
|
expect(getMentionTabPrefix('task')).toBe('@@');
|
|
8
8
|
expect(getMentionTabPrefix('project')).toBe('@@@');
|
|
9
9
|
expect(getMentionTabPrefix('client')).toBe('@@@@');
|
|
10
|
+
expect(getMentionTabPrefix('skill')).toBe('@/');
|
|
10
11
|
expect(getMentionTabPrefix('mcp')).toBe('@@/');
|
|
11
12
|
});
|
|
12
|
-
it('does not map skill to a mention trigger', function () {
|
|
13
|
-
expect(getMentionTabPrefix('skill')).toBe('@');
|
|
14
|
-
});
|
|
15
13
|
});
|
|
16
14
|
describe('getAtRunTabTypes', function () {
|
|
17
15
|
it('excludes slash-triggered types', function () {
|
|
18
|
-
expect(getAtRunTabTypes([].concat(allowed))).toEqual(['user', 'task', 'project', 'client'
|
|
16
|
+
expect(getAtRunTabTypes([].concat(allowed))).toEqual(['user', 'task', 'project', 'client']);
|
|
19
17
|
});
|
|
20
18
|
});
|
|
21
19
|
describe('getTypeFromTriggerSequence', function () {
|
|
22
20
|
it('resolves positive @ runs and negative slash runs', function () {
|
|
23
21
|
expect(getTypeFromTriggerSequence(2, [].concat(allowed), 'user')).toBe('task');
|
|
24
|
-
expect(getTypeFromTriggerSequence(-1, [].concat(allowed), 'user')).toBe('
|
|
22
|
+
expect(getTypeFromTriggerSequence(-1, [].concat(allowed), 'user')).toBe('skill');
|
|
25
23
|
expect(getTypeFromTriggerSequence(-2, [].concat(allowed), 'user')).toBe('mcp');
|
|
26
24
|
});
|
|
27
25
|
it('falls back to the default when the slash type is not allowed', function () {
|
|
28
|
-
expect(getTypeFromTriggerSequence(-
|
|
26
|
+
expect(getTypeFromTriggerSequence(-1, ['user', 'task'], 'user')).toBe('user');
|
|
29
27
|
});
|
|
30
28
|
});
|
|
31
29
|
describe('getTriggerSequenceFromType', function () {
|
|
32
30
|
it('returns the mapped sequence or the tab index', function () {
|
|
33
31
|
expect(getTriggerSequenceFromType('project', [].concat(allowed))).toBe(3);
|
|
34
|
-
expect(getTriggerSequenceFromType('skill', [].concat(allowed))).toBe(
|
|
32
|
+
expect(getTriggerSequenceFromType('skill', [].concat(allowed))).toBe(-1);
|
|
35
33
|
});
|
|
36
34
|
});
|
|
37
35
|
});
|
|
38
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRBdFJ1blRhYlR5cGVzIiwiZ2V0TWVudGlvblRhYlByZWZpeCIsImdldFRyaWdnZXJTZXF1ZW5jZUZyb21UeXBlIiwiZ2V0VHlwZUZyb21UcmlnZ2VyU2VxdWVuY2UiLCJhbGxvd2VkIiwiZGVzY3JpYmUiLCJpdCIsImV4cGVjdCIsInRvQmUiLCJjb25jYXQiLCJ0b0VxdWFsIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NvbnRleHRNZW50aW9uVHJpZ2dlcnMuc3BlYy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBnZXRBdFJ1blRhYlR5cGVzLFxuICBnZXRNZW50aW9uVGFiUHJlZml4LFxuICBnZXRUcmlnZ2VyU2VxdWVuY2VGcm9tVHlwZSxcbiAgZ2V0VHlwZUZyb21UcmlnZ2VyU2VxdWVuY2UsXG59IGZyb20gJy4vY29udGV4dE1lbnRpb25UcmlnZ2VycydcblxuY29uc3QgYWxsb3dlZCA9IFsndXNlcicsICd0YXNrJywgJ3Byb2plY3QnLCAnY2xpZW50JywgJ3NraWxsJywgJ21jcCddIGFzIGNvbnN0XG5cbmRlc2NyaWJlKCdjb250ZXh0TWVudGlvblRyaWdnZXJzJywgKCkgPT4ge1xuICBkZXNjcmliZSgnZ2V0TWVudGlvblRhYlByZWZpeCcsICgpID0+
|
|
36
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRBdFJ1blRhYlR5cGVzIiwiZ2V0TWVudGlvblRhYlByZWZpeCIsImdldFRyaWdnZXJTZXF1ZW5jZUZyb21UeXBlIiwiZ2V0VHlwZUZyb21UcmlnZ2VyU2VxdWVuY2UiLCJhbGxvd2VkIiwiZGVzY3JpYmUiLCJpdCIsImV4cGVjdCIsInRvQmUiLCJjb25jYXQiLCJ0b0VxdWFsIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NvbnRleHRNZW50aW9uVHJpZ2dlcnMuc3BlYy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBnZXRBdFJ1blRhYlR5cGVzLFxuICBnZXRNZW50aW9uVGFiUHJlZml4LFxuICBnZXRUcmlnZ2VyU2VxdWVuY2VGcm9tVHlwZSxcbiAgZ2V0VHlwZUZyb21UcmlnZ2VyU2VxdWVuY2UsXG59IGZyb20gJy4vY29udGV4dE1lbnRpb25UcmlnZ2VycydcblxuY29uc3QgYWxsb3dlZCA9IFsndXNlcicsICd0YXNrJywgJ3Byb2plY3QnLCAnY2xpZW50JywgJ3NraWxsJywgJ21jcCddIGFzIGNvbnN0XG5cbmRlc2NyaWJlKCdjb250ZXh0TWVudGlvblRyaWdnZXJzJywgKCkgPT4ge1xuICBkZXNjcmliZSgnZ2V0TWVudGlvblRhYlByZWZpeCcsICgpID0+IHtcbiAgICBpdCgnbWFwcyB0eXBlcyB0byBAIHJ1bnMgYW5kIHNsYXNoIHByZWZpeGVzJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KGdldE1lbnRpb25UYWJQcmVmaXgoJ3VzZXInKSkudG9CZSgnQCcpXG4gICAgICBleHBlY3QoZ2V0TWVudGlvblRhYlByZWZpeCgndGFzaycpKS50b0JlKCdAQCcpXG4gICAgICBleHBlY3QoZ2V0TWVudGlvblRhYlByZWZpeCgncHJvamVjdCcpKS50b0JlKCdAQEAnKVxuICAgICAgZXhwZWN0KGdldE1lbnRpb25UYWJQcmVmaXgoJ2NsaWVudCcpKS50b0JlKCdAQEBAJylcbiAgICAgIGV4cGVjdChnZXRNZW50aW9uVGFiUHJlZml4KCdza2lsbCcpKS50b0JlKCdALycpXG4gICAgICBleHBlY3QoZ2V0TWVudGlvblRhYlByZWZpeCgnbWNwJykpLnRvQmUoJ0BALycpXG4gICAgfSlcbiAgfSlcblxuICBkZXNjcmliZSgnZ2V0QXRSdW5UYWJUeXBlcycsICgpID0+IHtcbiAgICBpdCgnZXhjbHVkZXMgc2xhc2gtdHJpZ2dlcmVkIHR5cGVzJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KGdldEF0UnVuVGFiVHlwZXMoWy4uLmFsbG93ZWRdKSkudG9FcXVhbChbJ3VzZXInLCAndGFzaycsICdwcm9qZWN0JywgJ2NsaWVudCddKVxuICAgIH0pXG4gIH0pXG5cbiAgZGVzY3JpYmUoJ2dldFR5cGVGcm9tVHJpZ2dlclNlcXVlbmNlJywgKCkgPT4ge1xuICAgIGl0KCdyZXNvbHZlcyBwb3NpdGl2ZSBAIHJ1bnMgYW5kIG5lZ2F0aXZlIHNsYXNoIHJ1bnMnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoZ2V0VHlwZUZyb21UcmlnZ2VyU2VxdWVuY2UoMiwgWy4uLmFsbG93ZWRdLCAndXNlcicpKS50b0JlKCd0YXNrJylcbiAgICAgIGV4cGVjdChnZXRUeXBlRnJvbVRyaWdnZXJTZXF1ZW5jZSgtMSwgWy4uLmFsbG93ZWRdLCAndXNlcicpKS50b0JlKCdza2lsbCcpXG4gICAgICBleHBlY3QoZ2V0VHlwZUZyb21UcmlnZ2VyU2VxdWVuY2UoLTIsIFsuLi5hbGxvd2VkXSwgJ3VzZXInKSkudG9CZSgnbWNwJylcbiAgICB9KVxuXG4gICAgaXQoJ2ZhbGxzIGJhY2sgdG8gdGhlIGRlZmF1bHQgd2hlbiB0aGUgc2xhc2ggdHlwZSBpcyBub3QgYWxsb3dlZCcsICgpID0+IHtcbiAgICAgIGV4cGVjdChnZXRUeXBlRnJvbVRyaWdnZXJTZXF1ZW5jZSgtMSwgWyd1c2VyJywgJ3Rhc2snXSwgJ3VzZXInKSkudG9CZSgndXNlcicpXG4gICAgfSlcbiAgfSlcblxuICBkZXNjcmliZSgnZ2V0VHJpZ2dlclNlcXVlbmNlRnJvbVR5cGUnLCAoKSA9PiB7XG4gICAgaXQoJ3JldHVybnMgdGhlIG1hcHBlZCBzZXF1ZW5jZSBvciB0aGUgdGFiIGluZGV4JywgKCkgPT4ge1xuICAgICAgZXhwZWN0KGdldFRyaWdnZXJTZXF1ZW5jZUZyb21UeXBlKCdwcm9qZWN0JywgWy4uLmFsbG93ZWRdKSkudG9CZSgzKVxuICAgICAgZXhwZWN0KGdldFRyaWdnZXJTZXF1ZW5jZUZyb21UeXBlKCdza2lsbCcsIFsuLi5hbGxvd2VkXSkpLnRvQmUoLTEpXG4gICAgfSlcbiAgfSlcbn0pXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQ0VBLGdCQUFnQixFQUNoQkMsbUJBQW1CLEVBQ25CQywwQkFBMEIsRUFDMUJDLDBCQUEwQixRQUNyQiwwQkFBMEI7QUFFakMsSUFBTUMsT0FBTyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQVU7QUFFOUVDLFFBQVEsQ0FBQyx3QkFBd0IsRUFBRSxZQUFNO0VBQ3ZDQSxRQUFRLENBQUMscUJBQXFCLEVBQUUsWUFBTTtJQUNwQ0MsRUFBRSxDQUFDLHlDQUF5QyxFQUFFLFlBQU07TUFDbERDLE1BQU0sQ0FBQ04sbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQ08sSUFBSSxDQUFDLEdBQUcsQ0FBQztNQUM3Q0QsTUFBTSxDQUFDTixtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDTyxJQUFJLENBQUMsSUFBSSxDQUFDO01BQzlDRCxNQUFNLENBQUNOLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUNPLElBQUksQ0FBQyxLQUFLLENBQUM7TUFDbERELE1BQU0sQ0FBQ04sbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQ08sSUFBSSxDQUFDLE1BQU0sQ0FBQztNQUNsREQsTUFBTSxDQUFDTixtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDTyxJQUFJLENBQUMsSUFBSSxDQUFDO01BQy9DRCxNQUFNLENBQUNOLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUNPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDaEQsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0VBRUZILFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxZQUFNO0lBQ2pDQyxFQUFFLENBQUMsZ0NBQWdDLEVBQUUsWUFBTTtNQUN6Q0MsTUFBTSxDQUFDUCxnQkFBZ0IsSUFBQVMsTUFBQSxDQUFLTCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUNNLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZGLENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztFQUVGTCxRQUFRLENBQUMsNEJBQTRCLEVBQUUsWUFBTTtJQUMzQ0MsRUFBRSxDQUFDLGtEQUFrRCxFQUFFLFlBQU07TUFDM0RDLE1BQU0sQ0FBQ0osMEJBQTBCLENBQUMsQ0FBQyxLQUFBTSxNQUFBLENBQU1MLE9BQU8sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDSSxJQUFJLENBQUMsTUFBTSxDQUFDO01BQ3hFRCxNQUFNLENBQUNKLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxLQUFBTSxNQUFBLENBQU1MLE9BQU8sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDSSxJQUFJLENBQUMsT0FBTyxDQUFDO01BQzFFRCxNQUFNLENBQUNKLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxLQUFBTSxNQUFBLENBQU1MLE9BQU8sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDSSxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQzFFLENBQUMsQ0FBQztJQUVGRixFQUFFLENBQUMsOERBQThELEVBQUUsWUFBTTtNQUN2RUMsTUFBTSxDQUFDSiwwQkFBMEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDSyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQy9FLENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztFQUVGSCxRQUFRLENBQUMsNEJBQTRCLEVBQUUsWUFBTTtJQUMzQ0MsRUFBRSxDQUFDLDhDQUE4QyxFQUFFLFlBQU07TUFDdkRDLE1BQU0sQ0FBQ0wsMEJBQTBCLENBQUMsU0FBUyxLQUFBTyxNQUFBLENBQU1MLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQ0ksSUFBSSxDQUFDLENBQUMsQ0FBQztNQUNuRUQsTUFBTSxDQUFDTCwwQkFBMEIsQ0FBQyxPQUFPLEtBQUFPLE1BQUEsQ0FBTUwsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export var MAIA_PAGE_PRESENCE_EVENT = 'maia-page-presence';
|
|
2
|
+
export var MAIA_PAGE_ROOT_ATTR = 'data-maia-page';
|
|
3
|
+
export var isMaiaPagePath = function isMaiaPagePath() {
|
|
4
|
+
var pathname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : typeof window === 'undefined' ? '' : window.location.pathname;
|
|
5
|
+
return pathname.replace(/\/$/, '') === '/maia';
|
|
6
|
+
};
|
|
7
|
+
export var isMaiaPageActive = function isMaiaPageActive() {
|
|
8
|
+
if (typeof document === 'undefined') return false;
|
|
9
|
+
return document.documentElement.hasAttribute(MAIA_PAGE_ROOT_ATTR) || isMaiaPagePath();
|
|
10
|
+
};
|
|
11
|
+
export var setMaiaPagePresence = function setMaiaPagePresence(active) {
|
|
12
|
+
if (typeof document === 'undefined') return;
|
|
13
|
+
if (active) {
|
|
14
|
+
document.documentElement.setAttribute(MAIA_PAGE_ROOT_ATTR, '');
|
|
15
|
+
} else {
|
|
16
|
+
document.documentElement.removeAttribute(MAIA_PAGE_ROOT_ATTR);
|
|
17
|
+
}
|
|
18
|
+
document.dispatchEvent(new CustomEvent(MAIA_PAGE_PRESENCE_EVENT, {
|
|
19
|
+
detail: {
|
|
20
|
+
active: active
|
|
21
|
+
}
|
|
22
|
+
}));
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQUlBX1BBR0VfUFJFU0VOQ0VfRVZFTlQiLCJNQUlBX1BBR0VfUk9PVF9BVFRSIiwiaXNNYWlhUGFnZVBhdGgiLCJwYXRobmFtZSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIndpbmRvdyIsImxvY2F0aW9uIiwicmVwbGFjZSIsImlzTWFpYVBhZ2VBY3RpdmUiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsImhhc0F0dHJpYnV0ZSIsInNldE1haWFQYWdlUHJlc2VuY2UiLCJhY3RpdmUiLCJzZXRBdHRyaWJ1dGUiLCJyZW1vdmVBdHRyaWJ1dGUiLCJkaXNwYXRjaEV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJkZXRhaWwiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvbWFpYVBhZ2VSb3V0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgTUFJQV9QQUdFX1BSRVNFTkNFX0VWRU5UID0gJ21haWEtcGFnZS1wcmVzZW5jZSdcbmV4cG9ydCBjb25zdCBNQUlBX1BBR0VfUk9PVF9BVFRSID0gJ2RhdGEtbWFpYS1wYWdlJ1xuXG5leHBvcnQgY29uc3QgaXNNYWlhUGFnZVBhdGggPSAocGF0aG5hbWUgPSB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyA/ICcnIDogd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKTogYm9vbGVhbiA9PlxuICBwYXRobmFtZS5yZXBsYWNlKC9cXC8kLywgJycpID09PSAnL21haWEnXG5cbmV4cG9ydCBjb25zdCBpc01haWFQYWdlQWN0aXZlID0gKCk6IGJvb2xlYW4gPT4ge1xuICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykgcmV0dXJuIGZhbHNlXG4gIHJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuaGFzQXR0cmlidXRlKE1BSUFfUEFHRV9ST09UX0FUVFIpIHx8IGlzTWFpYVBhZ2VQYXRoKClcbn1cblxuZXhwb3J0IGNvbnN0IHNldE1haWFQYWdlUHJlc2VuY2UgPSAoYWN0aXZlOiBib29sZWFuKTogdm9pZCA9PiB7XG4gIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSByZXR1cm5cblxuICBpZiAoYWN0aXZlKSB7XG4gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNldEF0dHJpYnV0ZShNQUlBX1BBR0VfUk9PVF9BVFRSLCAnJylcbiAgfSBlbHNlIHtcbiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKE1BSUFfUEFHRV9ST09UX0FUVFIpXG4gIH1cblxuICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudChNQUlBX1BBR0VfUFJFU0VOQ0VfRVZFTlQsIHsgZGV0YWlsOiB7IGFjdGl2ZSB9IH0pKVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQU1BLHdCQUF3QixHQUFHLG9CQUFvQjtBQUM1RCxPQUFPLElBQU1DLG1CQUFtQixHQUFHLGdCQUFnQjtBQUVuRCxPQUFPLElBQU1DLGNBQWMsR0FBRyxTQUFqQkEsY0FBY0EsQ0FBQTtFQUFBLElBQUlDLFFBQVEsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsT0FBT0csTUFBTSxLQUFLLFdBQVcsR0FBRyxFQUFFLEdBQUdBLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDTCxRQUFRO0VBQUEsT0FDckdBLFFBQVEsQ0FBQ00sT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxPQUFPO0FBQUE7QUFFekMsT0FBTyxJQUFNQyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFBLEVBQWtCO0VBQzdDLElBQUksT0FBT0MsUUFBUSxLQUFLLFdBQVcsRUFBRSxPQUFPLEtBQUs7RUFDakQsT0FBT0EsUUFBUSxDQUFDQyxlQUFlLENBQUNDLFlBQVksQ0FBQ1osbUJBQW1CLENBQUMsSUFBSUMsY0FBYyxDQUFDLENBQUM7QUFDdkYsQ0FBQztBQUVELE9BQU8sSUFBTVksbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBSUMsTUFBZSxFQUFXO0VBQzVELElBQUksT0FBT0osUUFBUSxLQUFLLFdBQVcsRUFBRTtFQUVyQyxJQUFJSSxNQUFNLEVBQUU7SUFDVkosUUFBUSxDQUFDQyxlQUFlLENBQUNJLFlBQVksQ0FBQ2YsbUJBQW1CLEVBQUUsRUFBRSxDQUFDO0VBQ2hFLENBQUMsTUFBTTtJQUNMVSxRQUFRLENBQUNDLGVBQWUsQ0FBQ0ssZUFBZSxDQUFDaEIsbUJBQW1CLENBQUM7RUFDL0Q7RUFFQVUsUUFBUSxDQUFDTyxhQUFhLENBQUMsSUFBSUMsV0FBVyxDQUFDbkIsd0JBQXdCLEVBQUU7SUFBRW9CLE1BQU0sRUFBRTtNQUFFTCxNQUFNLEVBQU5BO0lBQU87RUFBRSxDQUFDLENBQUMsQ0FBQztBQUMzRixDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { isMaiaPageActive, isMaiaPagePath, MAIA_PAGE_ROOT_ATTR, setMaiaPagePresence } from './maiaPageRoute';
|
|
2
|
+
describe('maiaPageRoute', function () {
|
|
3
|
+
afterEach(function () {
|
|
4
|
+
document.documentElement.removeAttribute(MAIA_PAGE_ROOT_ATTR);
|
|
5
|
+
window.history.replaceState({}, '', '/');
|
|
6
|
+
});
|
|
7
|
+
it('matches the /maia section and ignores a trailing slash', function () {
|
|
8
|
+
expect(isMaiaPagePath('/maia')).toBe(true);
|
|
9
|
+
expect(isMaiaPagePath('/maia/')).toBe(true);
|
|
10
|
+
expect(isMaiaPagePath('/tasks')).toBe(false);
|
|
11
|
+
expect(isMaiaPagePath('/maia/settings')).toBe(false);
|
|
12
|
+
});
|
|
13
|
+
it('treats the page as active from the path or the presence attribute', function () {
|
|
14
|
+
window.history.replaceState({}, '', '/tasks');
|
|
15
|
+
expect(isMaiaPageActive()).toBe(false);
|
|
16
|
+
setMaiaPagePresence(true);
|
|
17
|
+
expect(isMaiaPageActive()).toBe(true);
|
|
18
|
+
setMaiaPagePresence(false);
|
|
19
|
+
window.history.replaceState({}, '', '/maia');
|
|
20
|
+
expect(isMaiaPageActive()).toBe(true);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc01haWFQYWdlQWN0aXZlIiwiaXNNYWlhUGFnZVBhdGgiLCJNQUlBX1BBR0VfUk9PVF9BVFRSIiwic2V0TWFpYVBhZ2VQcmVzZW5jZSIsImRlc2NyaWJlIiwiYWZ0ZXJFYWNoIiwiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJyZW1vdmVBdHRyaWJ1dGUiLCJ3aW5kb3ciLCJoaXN0b3J5IiwicmVwbGFjZVN0YXRlIiwiaXQiLCJleHBlY3QiLCJ0b0JlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL21haWFQYWdlUm91dGUuc3BlYy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc01haWFQYWdlQWN0aXZlLCBpc01haWFQYWdlUGF0aCwgTUFJQV9QQUdFX1JPT1RfQVRUUiwgc2V0TWFpYVBhZ2VQcmVzZW5jZSB9IGZyb20gJy4vbWFpYVBhZ2VSb3V0ZSdcblxuZGVzY3JpYmUoJ21haWFQYWdlUm91dGUnLCAoKSA9PiB7XG4gIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShNQUlBX1BBR0VfUk9PVF9BVFRSKVxuICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh7fSwgJycsICcvJylcbiAgfSlcblxuICBpdCgnbWF0Y2hlcyB0aGUgL21haWEgc2VjdGlvbiBhbmQgaWdub3JlcyBhIHRyYWlsaW5nIHNsYXNoJywgKCkgPT4ge1xuICAgIGV4cGVjdChpc01haWFQYWdlUGF0aCgnL21haWEnKSkudG9CZSh0cnVlKVxuICAgIGV4cGVjdChpc01haWFQYWdlUGF0aCgnL21haWEvJykpLnRvQmUodHJ1ZSlcbiAgICBleHBlY3QoaXNNYWlhUGFnZVBhdGgoJy90YXNrcycpKS50b0JlKGZhbHNlKVxuICAgIGV4cGVjdChpc01haWFQYWdlUGF0aCgnL21haWEvc2V0dGluZ3MnKSkudG9CZShmYWxzZSlcbiAgfSlcblxuICBpdCgndHJlYXRzIHRoZSBwYWdlIGFzIGFjdGl2ZSBmcm9tIHRoZSBwYXRoIG9yIHRoZSBwcmVzZW5jZSBhdHRyaWJ1dGUnLCAoKSA9PiB7XG4gICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKHt9LCAnJywgJy90YXNrcycpXG4gICAgZXhwZWN0KGlzTWFpYVBhZ2VBY3RpdmUoKSkudG9CZShmYWxzZSlcblxuICAgIHNldE1haWFQYWdlUHJlc2VuY2UodHJ1ZSlcbiAgICBleHBlY3QoaXNNYWlhUGFnZUFjdGl2ZSgpKS50b0JlKHRydWUpXG5cbiAgICBzZXRNYWlhUGFnZVByZXNlbmNlKGZhbHNlKVxuICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh7fSwgJycsICcvbWFpYScpXG4gICAgZXhwZWN0KGlzTWFpYVBhZ2VBY3RpdmUoKSkudG9CZSh0cnVlKVxuICB9KVxufSlcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsZ0JBQWdCLEVBQUVDLGNBQWMsRUFBRUMsbUJBQW1CLEVBQUVDLG1CQUFtQixRQUFRLGlCQUFpQjtBQUU1R0MsUUFBUSxDQUFDLGVBQWUsRUFBRSxZQUFNO0VBQzlCQyxTQUFTLENBQUMsWUFBTTtJQUNkQyxRQUFRLENBQUNDLGVBQWUsQ0FBQ0MsZUFBZSxDQUFDTixtQkFBbUIsQ0FBQztJQUM3RE8sTUFBTSxDQUFDQyxPQUFPLENBQUNDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDO0VBQzFDLENBQUMsQ0FBQztFQUVGQyxFQUFFLENBQUMsd0RBQXdELEVBQUUsWUFBTTtJQUNqRUMsTUFBTSxDQUFDWixjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQ2EsSUFBSSxDQUFDLElBQUksQ0FBQztJQUMxQ0QsTUFBTSxDQUFDWixjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQ2EsSUFBSSxDQUFDLElBQUksQ0FBQztJQUMzQ0QsTUFBTSxDQUFDWixjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQ2EsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUM1Q0QsTUFBTSxDQUFDWixjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDYSxJQUFJLENBQUMsS0FBSyxDQUFDO0VBQ3RELENBQUMsQ0FBQztFQUVGRixFQUFFLENBQUMsbUVBQW1FLEVBQUUsWUFBTTtJQUM1RUgsTUFBTSxDQUFDQyxPQUFPLENBQUNDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDO0lBQzdDRSxNQUFNLENBQUNiLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDYyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBRXRDWCxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7SUFDekJVLE1BQU0sQ0FBQ2IsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUNjLElBQUksQ0FBQyxJQUFJLENBQUM7SUFFckNYLG1CQUFtQixDQUFDLEtBQUssQ0FBQztJQUMxQk0sTUFBTSxDQUFDQyxPQUFPLENBQUNDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDO0lBQzVDRSxNQUFNLENBQUNiLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDYyxJQUFJLENBQUMsSUFBSSxDQUFDO0VBQ3ZDLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -2,50 +2,28 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
2
2
|
import _typeof from "@babel/runtime/helpers/typeof";
|
|
3
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
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 { normalizeCorEntitySlug } from './corConnectorMentionTypes';
|
|
6
|
-
|
|
7
5
|
/** Grupo de conectores COR dentro de `connectors`. */
|
|
8
6
|
export var COR_CONNECTOR_GROUP = 'COR';
|
|
9
7
|
|
|
10
|
-
/**
|
|
11
|
-
|
|
12
|
-
* Orden = jerarquía de COR (cliente > proyecto > tarea), de más amplio a más específico —
|
|
13
|
-
* es el orden en que se muestran los toggles en el tab Permisos.
|
|
14
|
-
*/
|
|
15
|
-
export var COR_TOOL_GROUP_SLUGS = ['clientes', 'proyectos', 'tareas'];
|
|
16
|
-
|
|
17
|
-
/** Estado de los 3 conectores COR, uno por slug. */
|
|
18
|
-
|
|
19
|
-
/** Los 3 conectores vienen prendidos por defecto en agentes nuevos (manual y MAIAKER). */
|
|
20
|
-
export var DEFAULT_COR_ACCESS = {
|
|
21
|
-
clientes: true,
|
|
22
|
-
proyectos: true,
|
|
23
|
-
tareas: true
|
|
24
|
-
};
|
|
25
|
-
var ENTITY_BY_SLUG = {
|
|
26
|
-
clientes: 'client',
|
|
27
|
-
proyectos: 'project',
|
|
28
|
-
tareas: 'task'
|
|
29
|
-
};
|
|
8
|
+
/** Slugs de tool groups COR que habilita el switch de "acceso a tareas" del ABM. */
|
|
9
|
+
export var COR_TOOL_GROUP_SLUGS = ['tareas', 'proyectos'];
|
|
30
10
|
|
|
31
11
|
/**
|
|
32
|
-
* Construye el array `tool_group_slugs` para la ruta `POST agents/{id}/tool-groups`
|
|
33
|
-
*
|
|
12
|
+
* Construye el array `tool_group_slugs` para la ruta `POST agents/{id}/tool-groups` a partir del switch.
|
|
13
|
+
* Activo → `['tareas', 'proyectos']`; apagado → `[]`.
|
|
34
14
|
*/
|
|
35
|
-
export var buildAgentToolGroupsRequest = function buildAgentToolGroupsRequest(
|
|
36
|
-
return
|
|
37
|
-
return corAccess[slug];
|
|
38
|
-
});
|
|
15
|
+
export var buildAgentToolGroupsRequest = function buildAgentToolGroupsRequest(taskAccess) {
|
|
16
|
+
return taskAccess ? [].concat(COR_TOOL_GROUP_SLUGS) : [];
|
|
39
17
|
};
|
|
40
18
|
|
|
41
19
|
/**
|
|
42
20
|
* Construye los `connectors` agrupados (mismo formato que devuelve el back en listado/sesión)
|
|
43
|
-
* a partir del
|
|
21
|
+
* a partir del switch, para hidratar de forma optimista el agente recién creado/editado sin refetch.
|
|
44
22
|
*/
|
|
45
|
-
export var
|
|
23
|
+
export var buildAgentConnectorsFromTaskAccess = function buildAgentConnectorsFromTaskAccess(taskAccess) {
|
|
46
24
|
return [{
|
|
47
25
|
group: COR_CONNECTOR_GROUP,
|
|
48
|
-
slugs:
|
|
26
|
+
slugs: taskAccess ? [].concat(COR_TOOL_GROUP_SLUGS) : []
|
|
49
27
|
}, {
|
|
50
28
|
group: 'MCP',
|
|
51
29
|
slugs: []
|
|
@@ -73,19 +51,13 @@ export var normalizeAgentConnectors = function normalizeAgentConnectors(raw) {
|
|
|
73
51
|
};
|
|
74
52
|
|
|
75
53
|
/**
|
|
76
|
-
* Deriva el estado de
|
|
77
|
-
* (`GET agents/{id}`).
|
|
78
|
-
* (tolera variantes de entidad/legacy vía `normalizeCorEntitySlug`), a diferencia del viejo
|
|
79
|
-
* "prendido si el array trae cualquier slug" que no distinguía un conector de otro.
|
|
54
|
+
* Deriva el estado del switch de "acceso a tareas" desde `tool_group_slugs` del detalle del agente
|
|
55
|
+
* (`GET agents/{id}`). Activo si el array trae al menos un slug.
|
|
80
56
|
*/
|
|
81
|
-
export var
|
|
82
|
-
|
|
83
|
-
return typeof slug === 'string';
|
|
84
|
-
})
|
|
85
|
-
return COR_TOOL_GROUP_SLUGS.reduce(function (acc, slug) {
|
|
86
|
-
acc[slug] = entities.has(ENTITY_BY_SLUG[slug]);
|
|
87
|
-
return acc;
|
|
88
|
-
}, {});
|
|
57
|
+
export var deriveTaskAccessFromToolGroupSlugs = function deriveTaskAccessFromToolGroupSlugs(raw) {
|
|
58
|
+
return Array.isArray(raw) && raw.some(function (slug) {
|
|
59
|
+
return typeof slug === 'string' && slug.length > 0;
|
|
60
|
+
});
|
|
89
61
|
};
|
|
90
62
|
|
|
91
63
|
/** Asegura `connectors` normalizados en un agente proveniente del listado de customs. */
|
|
@@ -95,4 +67,4 @@ export var withNormalizedConnectors = function withNormalizedConnectors(agent) {
|
|
|
95
67
|
connectors: connectors
|
|
96
68
|
}) : agent;
|
|
97
69
|
};
|
|
98
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDT1JfQ09OTkVDVE9SX0dST1VQIiwiQ09SX1RPT0xfR1JPVVBfU0xVR1MiLCJidWlsZEFnZW50VG9vbEdyb3Vwc1JlcXVlc3QiLCJ0YXNrQWNjZXNzIiwiY29uY2F0IiwiYnVpbGRBZ2VudENvbm5lY3RvcnNGcm9tVGFza0FjY2VzcyIsImdyb3VwIiwic2x1Z3MiLCJub3JtYWxpemVBZ2VudENvbm5lY3RvcnMiLCJyYXciLCJBcnJheSIsImlzQXJyYXkiLCJ1bmRlZmluZWQiLCJwYXJzZWQiLCJmaWx0ZXIiLCJjb25uZWN0b3IiLCJfdHlwZW9mIiwibWFwIiwic2x1ZyIsImxlbmd0aCIsImRlcml2ZVRhc2tBY2Nlc3NGcm9tVG9vbEdyb3VwU2x1Z3MiLCJzb21lIiwid2l0aE5vcm1hbGl6ZWRDb25uZWN0b3JzIiwiYWdlbnQiLCJjb25uZWN0b3JzIiwiX29iamVjdFNwcmVhZCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9ub3JtYWxpemVBZ2VudENvbm5lY3RvcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBZ2VudENvbm5lY3RvciB9IGZyb20gJy4uL3R5cGVzL2FnZW50J1xuXG4vKiogR3J1cG8gZGUgY29uZWN0b3JlcyBDT1IgZGVudHJvIGRlIGBjb25uZWN0b3JzYC4gKi9cbmV4cG9ydCBjb25zdCBDT1JfQ09OTkVDVE9SX0dST1VQID0gJ0NPUidcblxuLyoqIFNsdWdzIGRlIHRvb2wgZ3JvdXBzIENPUiBxdWUgaGFiaWxpdGEgZWwgc3dpdGNoIGRlIFwiYWNjZXNvIGEgdGFyZWFzXCIgZGVsIEFCTS4gKi9cbmV4cG9ydCBjb25zdCBDT1JfVE9PTF9HUk9VUF9TTFVHUzogcmVhZG9ubHkgc3RyaW5nW10gPSBbJ3RhcmVhcycsICdwcm95ZWN0b3MnXVxuXG4vKipcbiAqIENvbnN0cnV5ZSBlbCBhcnJheSBgdG9vbF9ncm91cF9zbHVnc2AgcGFyYSBsYSBydXRhIGBQT1NUIGFnZW50cy97aWR9L3Rvb2wtZ3JvdXBzYCBhIHBhcnRpciBkZWwgc3dpdGNoLlxuICogQWN0aXZvIOKGkiBgWyd0YXJlYXMnLCAncHJveWVjdG9zJ11gOyBhcGFnYWRvIOKGkiBgW11gLlxuICovXG5leHBvcnQgY29uc3QgYnVpbGRBZ2VudFRvb2xHcm91cHNSZXF1ZXN0ID0gKHRhc2tBY2Nlc3M6IGJvb2xlYW4pOiBzdHJpbmdbXSA9PlxuICB0YXNrQWNjZXNzID8gWy4uLkNPUl9UT09MX0dST1VQX1NMVUdTXSA6IFtdXG5cbi8qKlxuICogQ29uc3RydXllIGxvcyBgY29ubmVjdG9yc2AgYWdydXBhZG9zIChtaXNtbyBmb3JtYXRvIHF1ZSBkZXZ1ZWx2ZSBlbCBiYWNrIGVuIGxpc3RhZG8vc2VzacOzbilcbiAqIGEgcGFydGlyIGRlbCBzd2l0Y2gsIHBhcmEgaGlkcmF0YXIgZGUgZm9ybWEgb3B0aW1pc3RhIGVsIGFnZW50ZSByZWNpw6luIGNyZWFkby9lZGl0YWRvIHNpbiByZWZldGNoLlxuICovXG5leHBvcnQgY29uc3QgYnVpbGRBZ2VudENvbm5lY3RvcnNGcm9tVGFza0FjY2VzcyA9ICh0YXNrQWNjZXNzOiBib29sZWFuKTogQWdlbnRDb25uZWN0b3JbXSA9PiBbXG4gIHsgZ3JvdXA6IENPUl9DT05ORUNUT1JfR1JPVVAsIHNsdWdzOiB0YXNrQWNjZXNzID8gWy4uLkNPUl9UT09MX0dST1VQX1NMVUdTXSA6IFtdIH0sXG4gIHsgZ3JvdXA6ICdNQ1AnLCBzbHVnczogW10gfSxcbl1cblxuLyoqIE5vcm1hbGl6YSBlbCBhcnJheSBgY29ubmVjdG9yc2AgcXVlIGRldnVlbHZlIGxhIEFQSSBkZSBhZ2VudGVzIG8gc2VzaW9uZXMuICovXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplQWdlbnRDb25uZWN0b3JzID0gKHJhdzogdW5rbm93bik6IEFnZW50Q29ubmVjdG9yW10gfCB1bmRlZmluZWQgPT4ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkocmF3KSkgcmV0dXJuIHVuZGVmaW5lZFxuICBjb25zdCBwYXJzZWQgPSByYXdcbiAgICAuZmlsdGVyKChjb25uZWN0b3IpOiBjb25uZWN0b3IgaXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPT4gISFjb25uZWN0b3IgJiYgdHlwZW9mIGNvbm5lY3RvciA9PT0gJ29iamVjdCcpXG4gICAgLm1hcChjb25uZWN0b3IgPT4ge1xuICAgICAgY29uc3QgZ3JvdXAgPSB0eXBlb2YgY29ubmVjdG9yLmdyb3VwID09PSAnc3RyaW5nJyA/IGNvbm5lY3Rvci5ncm91cCA6ICcnXG4gICAgICBjb25zdCBzbHVncyA9IEFycmF5LmlzQXJyYXkoY29ubmVjdG9yLnNsdWdzKVxuICAgICAgICA/IGNvbm5lY3Rvci5zbHVncy5maWx0ZXIoKHNsdWcpOiBzbHVnIGlzIHN0cmluZyA9PiB0eXBlb2Ygc2x1ZyA9PT0gJ3N0cmluZycpXG4gICAgICAgIDogW11cbiAgICAgIHJldHVybiB7IGdyb3VwLCBzbHVncyB9XG4gICAgfSlcbiAgICAuZmlsdGVyKGNvbm5lY3RvciA9PiBjb25uZWN0b3IuZ3JvdXAubGVuZ3RoID4gMClcblxuICByZXR1cm4gcGFyc2VkLmxlbmd0aCA+IDAgPyBwYXJzZWQgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBEZXJpdmEgZWwgZXN0YWRvIGRlbCBzd2l0Y2ggZGUgXCJhY2Nlc28gYSB0YXJlYXNcIiBkZXNkZSBgdG9vbF9ncm91cF9zbHVnc2AgZGVsIGRldGFsbGUgZGVsIGFnZW50ZVxuICogKGBHRVQgYWdlbnRzL3tpZH1gKS4gQWN0aXZvIHNpIGVsIGFycmF5IHRyYWUgYWwgbWVub3MgdW4gc2x1Zy5cbiAqL1xuZXhwb3J0IGNvbnN0IGRlcml2ZVRhc2tBY2Nlc3NGcm9tVG9vbEdyb3VwU2x1Z3MgPSAocmF3OiB1bmtub3duKTogYm9vbGVhbiA9PlxuICBBcnJheS5pc0FycmF5KHJhdykgJiYgcmF3LnNvbWUoc2x1ZyA9PiB0eXBlb2Ygc2x1ZyA9PT0gJ3N0cmluZycgJiYgc2x1Zy5sZW5ndGggPiAwKVxuXG4vKiogQXNlZ3VyYSBgY29ubmVjdG9yc2Agbm9ybWFsaXphZG9zIGVuIHVuIGFnZW50ZSBwcm92ZW5pZW50ZSBkZWwgbGlzdGFkbyBkZSBjdXN0b21zLiAqL1xuZXhwb3J0IGNvbnN0IHdpdGhOb3JtYWxpemVkQ29ubmVjdG9ycyA9IDxUIGV4dGVuZHMgeyBjb25uZWN0b3JzPzogdW5rbm93biB9PihhZ2VudDogVCk6IFQgPT4ge1xuICBjb25zdCBjb25uZWN0b3JzID0gbm9ybWFsaXplQWdlbnRDb25uZWN0b3JzKGFnZW50LmNvbm5lY3RvcnMpXG4gIHJldHVybiBjb25uZWN0b3JzID8geyAuLi5hZ2VudCwgY29ubmVjdG9ycyB9IDogYWdlbnRcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUVBO0FBQ0EsT0FBTyxJQUFNQSxtQkFBbUIsR0FBRyxLQUFLOztBQUV4QztBQUNBLE9BQU8sSUFBTUMsb0JBQXVDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDOztBQUU5RTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUMsMkJBQTJCLEdBQUcsU0FBOUJBLDJCQUEyQkEsQ0FBSUMsVUFBbUI7RUFBQSxPQUM3REEsVUFBVSxNQUFBQyxNQUFBLENBQU9ILG9CQUFvQixJQUFJLEVBQUU7QUFBQTs7QUFFN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1JLGtDQUFrQyxHQUFHLFNBQXJDQSxrQ0FBa0NBLENBQUlGLFVBQW1CO0VBQUEsT0FBdUIsQ0FDM0Y7SUFBRUcsS0FBSyxFQUFFTixtQkFBbUI7SUFBRU8sS0FBSyxFQUFFSixVQUFVLE1BQUFDLE1BQUEsQ0FBT0gsb0JBQW9CLElBQUk7RUFBRyxDQUFDLEVBQ2xGO0lBQUVLLEtBQUssRUFBRSxLQUFLO0lBQUVDLEtBQUssRUFBRTtFQUFHLENBQUMsQ0FDNUI7QUFBQTs7QUFFRDtBQUNBLE9BQU8sSUFBTUMsd0JBQXdCLEdBQUcsU0FBM0JBLHdCQUF3QkEsQ0FBSUMsR0FBWSxFQUFtQztFQUN0RixJQUFJLENBQUNDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixHQUFHLENBQUMsRUFBRSxPQUFPRyxTQUFTO0VBQ3pDLElBQU1DLE1BQU0sR0FBR0osR0FBRyxDQUNmSyxNQUFNLENBQUMsVUFBQ0MsU0FBUztJQUFBLE9BQTJDLENBQUMsQ0FBQ0EsU0FBUyxJQUFJQyxPQUFBLENBQU9ELFNBQVMsTUFBSyxRQUFRO0VBQUEsRUFBQyxDQUN6R0UsR0FBRyxDQUFDLFVBQUFGLFNBQVMsRUFBSTtJQUNoQixJQUFNVCxLQUFLLEdBQUcsT0FBT1MsU0FBUyxDQUFDVCxLQUFLLEtBQUssUUFBUSxHQUFHUyxTQUFTLENBQUNULEtBQUssR0FBRyxFQUFFO0lBQ3hFLElBQU1DLEtBQUssR0FBR0csS0FBSyxDQUFDQyxPQUFPLENBQUNJLFNBQVMsQ0FBQ1IsS0FBSyxDQUFDLEdBQ3hDUSxTQUFTLENBQUNSLEtBQUssQ0FBQ08sTUFBTSxDQUFDLFVBQUNJLElBQUk7TUFBQSxPQUFxQixPQUFPQSxJQUFJLEtBQUssUUFBUTtJQUFBLEVBQUMsR0FDMUUsRUFBRTtJQUNOLE9BQU87TUFBRVosS0FBSyxFQUFMQSxLQUFLO01BQUVDLEtBQUssRUFBTEE7SUFBTSxDQUFDO0VBQ3pCLENBQUMsQ0FBQyxDQUNETyxNQUFNLENBQUMsVUFBQUMsU0FBUztJQUFBLE9BQUlBLFNBQVMsQ0FBQ1QsS0FBSyxDQUFDYSxNQUFNLEdBQUcsQ0FBQztFQUFBLEVBQUM7RUFFbEQsT0FBT04sTUFBTSxDQUFDTSxNQUFNLEdBQUcsQ0FBQyxHQUFHTixNQUFNLEdBQUdELFNBQVM7QUFDL0MsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTVEsa0NBQWtDLEdBQUcsU0FBckNBLGtDQUFrQ0EsQ0FBSVgsR0FBWTtFQUFBLE9BQzdEQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0YsR0FBRyxDQUFDLElBQUlBLEdBQUcsQ0FBQ1ksSUFBSSxDQUFDLFVBQUFILElBQUk7SUFBQSxPQUFJLE9BQU9BLElBQUksS0FBSyxRQUFRLElBQUlBLElBQUksQ0FBQ0MsTUFBTSxHQUFHLENBQUM7RUFBQSxFQUFDO0FBQUE7O0FBRXJGO0FBQ0EsT0FBTyxJQUFNRyx3QkFBd0IsR0FBRyxTQUEzQkEsd0JBQXdCQSxDQUF3Q0MsS0FBUSxFQUFRO0VBQzNGLElBQU1DLFVBQVUsR0FBR2hCLHdCQUF3QixDQUFDZSxLQUFLLENBQUNDLFVBQVUsQ0FBQztFQUM3RCxPQUFPQSxVQUFVLEdBQUFDLGFBQUEsQ0FBQUEsYUFBQSxLQUFRRixLQUFLO0lBQUVDLFVBQVUsRUFBVkE7RUFBVSxLQUFLRCxLQUFLO0FBQ3RELENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1,31 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { buildAgentConnectorsFromTaskAccess, buildAgentToolGroupsRequest, deriveTaskAccessFromToolGroupSlugs, normalizeAgentConnectors, withNormalizedConnectors } from './normalizeAgentConnectors';
|
|
2
2
|
describe('normalizeAgentConnectors', function () {
|
|
3
|
-
it('builds tool group slugs from
|
|
4
|
-
expect(buildAgentToolGroupsRequest(
|
|
5
|
-
expect(buildAgentToolGroupsRequest(
|
|
6
|
-
clientes: false,
|
|
7
|
-
proyectos: true,
|
|
8
|
-
tareas: false
|
|
9
|
-
})).toEqual(['proyectos']);
|
|
10
|
-
expect(buildAgentToolGroupsRequest({
|
|
11
|
-
clientes: false,
|
|
12
|
-
proyectos: false,
|
|
13
|
-
tareas: false
|
|
14
|
-
})).toEqual([]);
|
|
3
|
+
it('builds tool group slugs from the task-access switch', function () {
|
|
4
|
+
expect(buildAgentToolGroupsRequest(true)).toEqual(['tareas', 'proyectos']);
|
|
5
|
+
expect(buildAgentToolGroupsRequest(false)).toEqual([]);
|
|
15
6
|
});
|
|
16
|
-
it('hydrates COR and MCP connectors from the
|
|
17
|
-
expect(
|
|
7
|
+
it('hydrates COR and MCP connectors from the switch', function () {
|
|
8
|
+
expect(buildAgentConnectorsFromTaskAccess(true)).toEqual([{
|
|
18
9
|
group: 'COR',
|
|
19
|
-
slugs: ['
|
|
10
|
+
slugs: ['tareas', 'proyectos']
|
|
20
11
|
}, {
|
|
21
12
|
group: 'MCP',
|
|
22
13
|
slugs: []
|
|
23
14
|
}]);
|
|
24
|
-
expect(
|
|
25
|
-
clientes: false,
|
|
26
|
-
proyectos: false,
|
|
27
|
-
tareas: false
|
|
28
|
-
})[0].slugs).toEqual([]);
|
|
15
|
+
expect(buildAgentConnectorsFromTaskAccess(false)[0].slugs).toEqual([]);
|
|
29
16
|
});
|
|
30
17
|
it('returns undefined for non-arrays or connectors without a group', function () {
|
|
31
18
|
expect(normalizeAgentConnectors(null)).toBeUndefined();
|
|
@@ -45,27 +32,10 @@ describe('normalizeAgentConnectors', function () {
|
|
|
45
32
|
slugs: ['tareas', 'proyectos']
|
|
46
33
|
}]);
|
|
47
34
|
});
|
|
48
|
-
it('derives
|
|
49
|
-
expect(
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
tareas: true
|
|
53
|
-
});
|
|
54
|
-
expect(deriveCorAccessFromToolGroupSlugs(['client_read', 'proyectos'])).toEqual({
|
|
55
|
-
clientes: true,
|
|
56
|
-
proyectos: true,
|
|
57
|
-
tareas: false
|
|
58
|
-
});
|
|
59
|
-
expect(deriveCorAccessFromToolGroupSlugs([''])).toEqual({
|
|
60
|
-
clientes: false,
|
|
61
|
-
proyectos: false,
|
|
62
|
-
tareas: false
|
|
63
|
-
});
|
|
64
|
-
expect(deriveCorAccessFromToolGroupSlugs(null)).toEqual({
|
|
65
|
-
clientes: false,
|
|
66
|
-
proyectos: false,
|
|
67
|
-
tareas: false
|
|
68
|
-
});
|
|
35
|
+
it('derives task access from non-empty slug arrays', function () {
|
|
36
|
+
expect(deriveTaskAccessFromToolGroupSlugs(['tareas'])).toBe(true);
|
|
37
|
+
expect(deriveTaskAccessFromToolGroupSlugs([''])).toBe(false);
|
|
38
|
+
expect(deriveTaskAccessFromToolGroupSlugs(null)).toBe(false);
|
|
69
39
|
});
|
|
70
40
|
it('replaces connectors only when they normalize to something', function () {
|
|
71
41
|
var withConnectors = {
|
|
@@ -86,4 +56,4 @@ describe('normalizeAgentConnectors', function () {
|
|
|
86
56
|
expect(withNormalizedConnectors(without)).toBe(without);
|
|
87
57
|
});
|
|
88
58
|
});
|
|
89
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJidWlsZEFnZW50Q29ubmVjdG9yc0Zyb21UYXNrQWNjZXNzIiwiYnVpbGRBZ2VudFRvb2xHcm91cHNSZXF1ZXN0IiwiZGVyaXZlVGFza0FjY2Vzc0Zyb21Ub29sR3JvdXBTbHVncyIsIm5vcm1hbGl6ZUFnZW50Q29ubmVjdG9ycyIsIndpdGhOb3JtYWxpemVkQ29ubmVjdG9ycyIsImRlc2NyaWJlIiwiaXQiLCJleHBlY3QiLCJ0b0VxdWFsIiwiZ3JvdXAiLCJzbHVncyIsInRvQmVVbmRlZmluZWQiLCJ0b0JlIiwid2l0aENvbm5lY3RvcnMiLCJpZCIsImNvbm5lY3RvcnMiLCJ3aXRob3V0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL25vcm1hbGl6ZUFnZW50Q29ubmVjdG9ycy5zcGVjLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJ1aWxkQWdlbnRDb25uZWN0b3JzRnJvbVRhc2tBY2Nlc3MsXG4gIGJ1aWxkQWdlbnRUb29sR3JvdXBzUmVxdWVzdCxcbiAgZGVyaXZlVGFza0FjY2Vzc0Zyb21Ub29sR3JvdXBTbHVncyxcbiAgbm9ybWFsaXplQWdlbnRDb25uZWN0b3JzLFxuICB3aXRoTm9ybWFsaXplZENvbm5lY3RvcnMsXG59IGZyb20gJy4vbm9ybWFsaXplQWdlbnRDb25uZWN0b3JzJ1xuXG5kZXNjcmliZSgnbm9ybWFsaXplQWdlbnRDb25uZWN0b3JzJywgKCkgPT4ge1xuICBpdCgnYnVpbGRzIHRvb2wgZ3JvdXAgc2x1Z3MgZnJvbSB0aGUgdGFzay1hY2Nlc3Mgc3dpdGNoJywgKCkgPT4ge1xuICAgIGV4cGVjdChidWlsZEFnZW50VG9vbEdyb3Vwc1JlcXVlc3QodHJ1ZSkpLnRvRXF1YWwoWyd0YXJlYXMnLCAncHJveWVjdG9zJ10pXG4gICAgZXhwZWN0KGJ1aWxkQWdlbnRUb29sR3JvdXBzUmVxdWVzdChmYWxzZSkpLnRvRXF1YWwoW10pXG4gIH0pXG5cbiAgaXQoJ2h5ZHJhdGVzIENPUiBhbmQgTUNQIGNvbm5lY3RvcnMgZnJvbSB0aGUgc3dpdGNoJywgKCkgPT4ge1xuICAgIGV4cGVjdChidWlsZEFnZW50Q29ubmVjdG9yc0Zyb21UYXNrQWNjZXNzKHRydWUpKS50b0VxdWFsKFtcbiAgICAgIHsgZ3JvdXA6ICdDT1InLCBzbHVnczogWyd0YXJlYXMnLCAncHJveWVjdG9zJ10gfSxcbiAgICAgIHsgZ3JvdXA6ICdNQ1AnLCBzbHVnczogW10gfSxcbiAgICBdKVxuICAgIGV4cGVjdChidWlsZEFnZW50Q29ubmVjdG9yc0Zyb21UYXNrQWNjZXNzKGZhbHNlKVswXS5zbHVncykudG9FcXVhbChbXSlcbiAgfSlcblxuICBpdCgncmV0dXJucyB1bmRlZmluZWQgZm9yIG5vbi1hcnJheXMgb3IgY29ubmVjdG9ycyB3aXRob3V0IGEgZ3JvdXAnLCAoKSA9PiB7XG4gICAgZXhwZWN0KG5vcm1hbGl6ZUFnZW50Q29ubmVjdG9ycyhudWxsKSkudG9CZVVuZGVmaW5lZCgpXG4gICAgZXhwZWN0KG5vcm1hbGl6ZUFnZW50Q29ubmVjdG9ycyhbeyBzbHVnczogWyd0YXJlYXMnXSB9XSkpLnRvQmVVbmRlZmluZWQoKVxuICB9KVxuXG4gIGl0KCdrZWVwcyB2YWxpZCBncm91cHMgYW5kIHN0cmluZyBzbHVncycsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBub3JtYWxpemVBZ2VudENvbm5lY3RvcnMoW1xuICAgICAgICB7IGdyb3VwOiAnQ09SJywgc2x1Z3M6IFsndGFyZWFzJywgMSwgJ3Byb3llY3RvcyddIH0sXG4gICAgICAgIHsgZ3JvdXA6ICcnLCBzbHVnczogWyd4J10gfSxcbiAgICAgIF0pXG4gICAgKS50b0VxdWFsKFt7IGdyb3VwOiAnQ09SJywgc2x1Z3M6IFsndGFyZWFzJywgJ3Byb3llY3RvcyddIH1dKVxuICB9KVxuXG4gIGl0KCdkZXJpdmVzIHRhc2sgYWNjZXNzIGZyb20gbm9uLWVtcHR5IHNsdWcgYXJyYXlzJywgKCkgPT4ge1xuICAgIGV4cGVjdChkZXJpdmVUYXNrQWNjZXNzRnJvbVRvb2xHcm91cFNsdWdzKFsndGFyZWFzJ10pKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KGRlcml2ZVRhc2tBY2Nlc3NGcm9tVG9vbEdyb3VwU2x1Z3MoWycnXSkpLnRvQmUoZmFsc2UpXG4gICAgZXhwZWN0KGRlcml2ZVRhc2tBY2Nlc3NGcm9tVG9vbEdyb3VwU2x1Z3MobnVsbCkpLnRvQmUoZmFsc2UpXG4gIH0pXG5cbiAgaXQoJ3JlcGxhY2VzIGNvbm5lY3RvcnMgb25seSB3aGVuIHRoZXkgbm9ybWFsaXplIHRvIHNvbWV0aGluZycsICgpID0+IHtcbiAgICBjb25zdCB3aXRoQ29ubmVjdG9ycyA9IHsgaWQ6ICcxJywgY29ubmVjdG9yczogW3sgZ3JvdXA6ICdDT1InLCBzbHVnczogWyd0YXJlYXMnXSB9XSB9XG4gICAgZXhwZWN0KHdpdGhOb3JtYWxpemVkQ29ubmVjdG9ycyh3aXRoQ29ubmVjdG9ycykuY29ubmVjdG9ycykudG9FcXVhbChbeyBncm91cDogJ0NPUicsIHNsdWdzOiBbJ3RhcmVhcyddIH1dKVxuICAgIGNvbnN0IHdpdGhvdXQgPSB7IGlkOiAnMScsIGNvbm5lY3RvcnM6IFtdIH1cbiAgICBleHBlY3Qod2l0aE5vcm1hbGl6ZWRDb25uZWN0b3JzKHdpdGhvdXQpKS50b0JlKHdpdGhvdXQpXG4gIH0pXG59KVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUNFQSxrQ0FBa0MsRUFDbENDLDJCQUEyQixFQUMzQkMsa0NBQWtDLEVBQ2xDQyx3QkFBd0IsRUFDeEJDLHdCQUF3QixRQUNuQiw0QkFBNEI7QUFFbkNDLFFBQVEsQ0FBQywwQkFBMEIsRUFBRSxZQUFNO0VBQ3pDQyxFQUFFLENBQUMscURBQXFELEVBQUUsWUFBTTtJQUM5REMsTUFBTSxDQUFDTiwyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDTyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDMUVELE1BQU0sQ0FBQ04sMkJBQTJCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQ08sT0FBTyxDQUFDLEVBQUUsQ0FBQztFQUN4RCxD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
|