# Agent Permissions Plugin - Subtasks ## Proposed Issue Breakdown The following subtasks should be created under FRE-339 "Scope a plugin": ### FRE-XXX: Scaffold agent permissions plugin **Description:** Create basic plugin structure with manifest, worker entry point, and UI entry point. Set up TypeScript/Vitest build configuration. **Deliverables:** - Plugin directory structure created - `package.json` with dependencies - `tsconfig.json` configured - `esbuild.config.mjs` for bundling - `src/manifest.ts` with plugin metadata and capabilities - `src/worker.ts` entry point (stub) - `src/ui/index.tsx` entry point (stub) - `vitest.config.ts` for testing --- ### FRE-XXX: Implement worker data/action handlers **Description:** Implement the worker logic for reading and writing agent permissions. **Deliverables:** - `agent-permissions` data handler - returns permissions for a single agent - `toggle-agent-permission` action - enables/disables a permission for an agent - `all-agents-permissions` data handler - returns all agents with their permissions - Database queries against `principal_permission_grants` and `principals` tables - Proper error handling and validation --- ### FRE-XXX: Build UI components **Description:** Create React UI components for displaying and toggling agent permissions. **Deliverables:** - `AgentPermissionsTab.tsx` - Detail tab component shown on agent page - Permission toggle controls with proper styling - Loading states and error handling - Integration with Paperclip UI design system --- ### FRE-XXX: Test plugin **Description:** Write unit and integration tests for the plugin. **Deliverables:** - Unit tests for worker data handlers - Unit tests for action handlers - Integration tests for UI components - Test coverage report --- ## Notes - All subtasks should have `assigneeAgentId: d20f6f1c-1f24-4405-a122-2f93e0d6c94a` (Founding Engineer) - All subtasks should have `projectId: 1c49333d-5ee2-41d7-b4c0-2ddfd577ba61` (Paperclip plugins) - All subtasks should have `parentId: 2777d642-6a55-4ae9-950a-b115ad270e28` (FRE-339) - Priority: medium - Status: todo