d0f04f13f8
Phase N.1 — Data Model: - Extend Notification model with category, priority, task fields (status, action, assignee, dueDate, completedAt/By), reminder fields (remindAt, recurrence, nextRemindAt), and targeting metadata (sourceId, senderId, channel) - Add NotificationCategory, NotificationPriority, TaskStatus enums - Add NotificationBroadcast model for group notifications - Shared types with parseTaskAction()/buildTaskAction() helpers Phase N.2 — API: - Extend notification router: listTasks, taskCounts, updateTaskStatus, createReminder/update/delete/list, createBroadcast/listBroadcasts, createTask, assignTask, delete - Broadcast targeting: resolve recipients by user/role/project/orgUnit/all - Task-action registry: approve_vacation, reject_vacation, confirm_assignment - Reminder scheduler: 60s poll interval, recurring support, catch-up on start - SSE events: TASK_ASSIGNED, TASK_COMPLETED, TASK_STATUS_CHANGED, REMINDER_DUE, BROADCAST_SENT Phase N.3 — AI Assistant: - 7 new tools: list_tasks, get_task_detail, update_task_status, execute_task_action, create_reminder, create_task_for_user, send_broadcast - execute_task_action dispatches to task-action registry with per-action permission checks, marks tasks as completed by AI Phase N.4 — Frontend: - Enhanced NotificationBell with task badge, tabs (All/Tasks/Reminders) - TaskCard component with priority badges, due dates, action buttons - ReminderModal for creating/editing personal reminders - BroadcastModal for targeted group notifications (manager+) - NotificationCenter full-page with 5 tabs and bulk actions - TaskWidget dashboard widget showing open tasks - Admin broadcast management page - AppShell nav links for Notifications and Broadcasts - SSE hook handlers for task/reminder events Phase N.5 — Auto-Tasks: - Vacation create → APPROVAL tasks for all managers - Vacation approve/reject → mark approval tasks as DONE - Demand create → TASK for managers to fill staffing needs Co-Authored-By: claude-flow <ruv@ruv.net>
38 lines
979 B
JSON
38 lines
979 B
JSON
{
|
|
"name": "@planarchy/api",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"exports": {
|
|
".": "./src/index.ts",
|
|
"./router": "./src/router/index.ts",
|
|
"./trpc": "./src/trpc.ts",
|
|
"./sse": "./src/sse/event-bus.ts",
|
|
"./lib/reminder-scheduler": "./src/lib/reminder-scheduler.ts"
|
|
},
|
|
"scripts": {
|
|
"typecheck": "tsc --noEmit",
|
|
"test:unit": "vitest run"
|
|
},
|
|
"dependencies": {
|
|
"@node-rs/argon2": "^2.0.2",
|
|
"@planarchy/application": "workspace:*",
|
|
"@planarchy/db": "workspace:*",
|
|
"@planarchy/engine": "workspace:*",
|
|
"@planarchy/shared": "workspace:*",
|
|
"@planarchy/staffing": "workspace:*",
|
|
"@trpc/server": "^11.0.0",
|
|
"@types/nodemailer": "^7.0.11",
|
|
"ioredis": "^5.10.0",
|
|
"nodemailer": "^8.0.1",
|
|
"openai": "^6.27.0",
|
|
"zod": "^3.23.8"
|
|
},
|
|
"devDependencies": {
|
|
"@planarchy/tsconfig": "workspace:*",
|
|
"@types/node": "^22.10.2",
|
|
"typescript": "^5.6.3",
|
|
"vitest": "^2.1.8"
|
|
}
|
|
}
|