import { usePluginData, useHostContext } from "@paperclipai/plugin-sdk/ui"; import type { PluginSidebarProps } from "@paperclipai/plugin-sdk/ui"; import { SIDEBAR_PREVIEW_LIMIT, type PermissionKey } from "../constants"; interface AgentPermissionsSummary { agentId: string; agentName: string; permissions: Record; } export function PermissionsNav(_props: PluginSidebarProps) { const { companyId } = useHostContext(); const { data: agentsData, loading, error } = usePluginData( "all-agents-permissions", companyId ? { companyId } : undefined ); if (loading) return (
Loading permissions...
); if (error) return (
Error: {error.message}
); if (!agentsData || agentsData.length === 0) { return (

Permissions

No agents found

); } const agentsWithPermissions = agentsData.filter(a => Object.values(a.permissions).some(v => v) ); return (

Permissions

{agentsWithPermissions.length} agent(s) with custom permissions

    {agentsData.slice(0, SIDEBAR_PREVIEW_LIMIT).map(agent => { const permCount = Object.values(agent.permissions).filter(Boolean).length; return (
  • {agent.agentName}
    {permCount} permission(s) granted
  • ); })}
); }