diff --git a/frontend/src/pages/Admin/Agents/GMailSkillPanel/index.jsx b/frontend/src/pages/Admin/Agents/GMailSkillPanel/index.jsx index a9809274..bb6c0f25 100644 --- a/frontend/src/pages/Admin/Agents/GMailSkillPanel/index.jsx +++ b/frontend/src/pages/Admin/Agents/GMailSkillPanel/index.jsx @@ -133,7 +133,7 @@ export default function GMailSkillPanel({ a: ( ), diff --git a/frontend/src/pages/Admin/Agents/OutlookSkillPanel/index.jsx b/frontend/src/pages/Admin/Agents/OutlookSkillPanel/index.jsx index ea5cdbb8..c91daddf 100644 --- a/frontend/src/pages/Admin/Agents/OutlookSkillPanel/index.jsx +++ b/frontend/src/pages/Admin/Agents/OutlookSkillPanel/index.jsx @@ -225,7 +225,7 @@ export default function OutlookSkillPanel({ a: ( ), diff --git a/frontend/src/pages/Admin/Agents/index.jsx b/frontend/src/pages/Admin/Agents/index.jsx index 0e106e5a..9e9b5a46 100644 --- a/frontend/src/pages/Admin/Agents/index.jsx +++ b/frontend/src/pages/Admin/Agents/index.jsx @@ -13,11 +13,16 @@ import { Robot, Hammer, FlowArrow, + Package, } from "@phosphor-icons/react"; import ContextualSaveBar from "@/components/ContextualSaveBar"; import { castToType } from "@/utils/types"; import { FullScreenLoader } from "@/components/Preloader"; -import { getDefaultSkills, getConfigurableSkills } from "./skills"; +import { + getDefaultSkills, + getConfigurableSkills, + getAppIntegrationSkills, +} from "./skills.jsx"; import { DefaultBadge } from "./Badges/default"; import ImportedSkillList from "./Imported/SkillList"; import ImportedSkillConfig from "./Imported/ImportedSkillConfig"; @@ -68,20 +73,25 @@ export default function AdminAgents() { fileSystemAgentAvailable, createFilesAgentAvailable, }); + const allAppIntegrationSkills = getAppIntegrationSkills(t); // Filter skills based on mode restrictions // singleUserOnly -> hidden in multi-user mode // multiUserOnly -> hidden when NOT in multi-user mode const isMultiUserMode = settings?.MultiUserMode ?? false; + const filterSkillsByMode = ([_, skillConfig]) => { + if (!skillConfig.mode) return true; + if (skillConfig.mode.includes("singleUserOnly") && isMultiUserMode) + return false; + if (skillConfig.mode.includes("multiUserOnly") && !isMultiUserMode) + return false; + return true; + }; const configurableSkills = Object.fromEntries( - Object.entries(allConfigurableSkills).filter(([_, skillConfig]) => { - if (!skillConfig.mode) return true; - if (skillConfig.mode.includes("singleUserOnly") && isMultiUserMode) - return false; - if (skillConfig.mode.includes("multiUserOnly") && !isMultiUserMode) - return false; - return true; - }) + Object.entries(allConfigurableSkills).filter(filterSkillsByMode) + ); + const appIntegrationSkills = Object.fromEntries( + Object.entries(allAppIntegrationSkills).filter(filterSkillsByMode) ); // Alert user if they try to leave the page with unsaved changes @@ -232,6 +242,8 @@ export default function AdminAgents() { SelectedSkillComponent = ImportedSkillConfig; } else if (configurableSkills[selectedSkill]) { SelectedSkillComponent = configurableSkills[selectedSkill]?.component; + } else if (appIntegrationSkills[selectedSkill]) { + SelectedSkillComponent = appIntegrationSkills[selectedSkill]?.component; } else { SelectedSkillComponent = defaultSkills[selectedSkill]?.component; } @@ -382,6 +394,17 @@ export default function AdminAgents() { activeSkills={agentSkills} /> +
App Integrations
+Custom Skills
@@ -484,7 +507,7 @@ export default function AdminAgents() { setHasChanges={setHasChanges} {...defaultSkills[selectedSkill]} /> - ) : ( + ) : configurableSkills?.[selectedSkill] ? ( // The selected skill is a configurable skill - show the configurable skill panelApp Integrations
+Custom Skills
@@ -680,7 +729,7 @@ export default function AdminAgents() { setHasChanges={setHasChanges} {...defaultSkills[selectedSkill]} /> - ) : ( + ) : configurableSkills?.[selectedSkill] ? ( // The selected skill is a configurable skill - show the configurable skill panel