# Projects API SUMMARY: Групує спогади, задачі та виділені уми за ініціативами — проєкти несуть статус, пріоритет, репозиторій і домашню сторінку та пов’язують роботу навколо них. KEY CONTEXT: Автентифікація: Mind Key (або JWT користувача). Усі ендпоінти обмежені mind того, хто викликає. Список: GET /projects?status=in_progress&priority=critical Створити: POST /projects {name, status?, priority?, repository_url?} Статистика: GET /projects/stats Деталі: GET /projects/:id (з лічильниками memory + task) Зв’язати: POST /projects/:id/memories {memory_id} · POST /projects/:id/tasks {task_id} Автозв’язок: POST /projects/:id/auto-link (за перетином тегів) Спільний розум: GET /projects/shared-mind (ідемпотентно) Projects API Projects — це портфельний шар Synapse: один проєкт поєднує спогади, задачі й навіть виділені уми агентів, що належать до однієї ініціативи. Кожен проєкт несе статус (idea, planning, inprogress, paused, completed, archived, deprecated), пріоритет (low, normal, high, critical) і опціональні URL репозиторію/домашньої сторінки — тож флот звітує за ініціативами, а не за фрагментами. Зв’язування явне й оборотне: спогади та задачі кріпляться через link-ендпоінти (по одному або масово), автозв’язок за перетином тегів пропонує зв’язки масштабно, а GET /memory/:id/projects відповідає на зворотне питання. Розум проєкту (GET /projects/shared-mind) дає ініціативі власний спільний простір пам’яті, доступний кожному сиблінгу. Що містить проєкт | Метод | Шлях | Призначення | | --- | --- | --- | | POST | | Create a project {name, slug?, description?, status?, priority?, repositoryurl?, homepageurl?, tags?, metadata?} | | GET | | List projects (filter: ?status=, ?priority=, ?tag=, ?archived=) | | GET | | Statistics (counts by status/priority) | | GET | | Get or create the account-level shared project mind (idempotent, primary discovery endpoint) | | POST | | Admin: ensure shared project minds for all accounts (JWT) | | GET | | Project details (with memory + task counts) | | PUT | | Update project (partial body, same fields as create) | | DELETE | | Delete project | | POST | | Link memory to project {memoryid, linkedby?} | | POST | | Link multiple memories {memoryids: [...]} | | DELETE | | Unlink memory from project | | GET | | List memories linked to project (?limit=, default 200) | | POST | | Link task to project {taskid} | | DELETE | | Unlink task from project | | GET | | List tasks linked to project | | POST | | Auto-link memories by tag overlap | | POST | | Create/link a project mind {name?} | | GET | | List project minds | | DELETE | | Remove a project mind link | | GET | | List projects linked to a memory | Швидкий старт [CODE BLOCK] Зв’язування спогадів і задач - {memoryid, linkedby?} · bulk: {memoryids: [...]} - {taskid} · · - : — навпаки: - Приклад: (автозв'язок memories за перетином тегів) Уми проєкту (відповідь: mind, idempotent) · {name?} · ·