Що таке M.A.V.E.N Teams
M.A.V.E.N Teams - це те, чим стає M.A.V.E.N, коли ним користується більше ніж одна людина. M.A.V.E.N - це панель керування (control plane) вашим власним парком агентів: кожен рушій, кожен застосунок, на вашій машині. Наодинці це працює, але розвалюється тієї ж миті, коли приєднується друга людина, бо ніщо з цього не знає, хто що зробив, у якому порядку й на якій машині.
Teams відповідає на це одним рішенням, ухваленим один раз: усе, що відбувається, - це подія, дописана до журналу з ланцюжком хешів і підписана. Повідомлення, патч, запуск CI, погодження, агент, що приєднався до кімнати. Немає другого джерела істини, яке треба узгоджувати, і немає питання «хто це погодив і коли», на яке журнал не зміг би відповісти через місяці.
Це окремий продукт на окремому порту - ~/maven-teams, http://localhost:3400,
стан у ~/.maven-teams - і працює він на Next.js 16, React 19 та Node 22.
Що всередині
Section titled “Що всередині”| Chat | Один чат для всіх рушіїв - те саме об’єднання, яке M.A.V.E.N зробив у v6.14, але без OmniRoute. |
| Channels | Кімнати, де люди й агенти працюють разом; повідомлення, патчі, запуски CI та погодження ділять одну стрічку. |
| AI Mastermind | ASK, DISCUSS та MoA, збережені як окремий застосунок - рада, яку ви скликаєте, а не кімната, у якій живете. |
| Hermes | Середовище виконання агентів із його вкладками (агенти, рій, канбан, цілі, …), винесене в окремий пункт рейки. |
| Board | Дошка робочого простору, розгорнута з журналу; картку, віддану агентові, забирає та машина, яка може її виконати. |
| Git & Review | Черга патчів із CI, рецензуванням і погодженням - злиття є рішенням з аудиторським слідом. |
| Workflows | Тригери, кроки та шлюзи. Те, чим насправді були Loop, Pipeline та Kanban. |
| Search | Повнотекстовий пошук по всьому журналу - англійською, українською та російською. |
| Audit log | Реєстр із обома стовпцями хешів, щоб ланцюжок можна було перевірити на око. |
| Settings → Relay | Які машини входять до робочого простору, які з них доступні зараз і як усе з’єднано. |
| Local / Cloud | Де виконується кожна можливість - вирішується для кожної окремо. |
| Forge-застосунки | Ad, D, G, M, N, P, R, S, SEO, VC та X - перенесені цілком. |
Рейка має чотири групи - WORKSPACE, BUILD, FORGE, SYSTEM - і не містить ні агентів, ні моделей. Моделі живуть у Менеджері моделей, доступному з верхньої панелі; агенти живуть усередині Hermes.
Чотири рішення, з яких випливає все інше
Section titled “Чотири рішення, з яких випливає все інше”1. Журнал - це істина, і це файл
Section titled “1. Журнал - це істина, і це файл”$MAVEN_STATE_DIR/events/log.jsonl - один JSON-об’єкт на рядок, дописується, ніколи не
переписується. Кожен рядок несе SHA-256-хеш власного вмісту та хеш попереднього
рядка, а потім підпис Ed25519. Редагування рядка ламає всі наступні хеші - помітно,
на екрані аудиту. tail -f на цьому файлі - живий потік подій
робочого простору; формат, який можна прочитати через cat, переживе програму, що його написала.
2. Види подій - цілі числа, і вони постійні
Section titled “2. Види подій - цілі числа, і вони постійні”Кожна подія має kind - 1001 повідомлення, 2001 патч, 3001 створення каналу.
Читач, який не розпізнає вид, пропускає його, а не падає, і саме це дозволяє
трьом машинам працювати на трьох трохи різних збірках. Вид ніколи не перенумеровується
і ніколи не використовується повторно. Діапазони мають значення:
1000-1999 conversation - messages and what attaches to them2000-2999 work - patches, runs, approvals, decisions3000-3999 the workspace - channels, membership, agents4000-4999 the machine - alerts, health, updates9000-9999 ephemeral - presence and typing. NOT stored, NOT hashed, NOT audited.3. Один ланцюжок на машину, а злиття - це дописування
Section titled “3. Один ланцюжок на машину, а злиття - це дописування”Кожна машина веде власний ланцюжок у власному файлі. Злиття - це: запитати у пірa, що він
записав після останньої події, яку ви бачили, перевірити кожну за ланцюжком і підписом, дописати.
Двоє людей, що відкривають кімнати офлайн, сходяться, коли знову під’єднуються, без жодного
розв’язання конфліктів. Порядковий номер унікальний лише в межах машини - усе, що на нього
спирається, спирається на (machine, seq). Тягнути, ніколи не штовхати.
4. Індекс - похідний і одноразовий
Section titled “4. Індекс - похідний і одноразовий”Плаский файл ідеальний для дописування й марний для запитів, тож є індекс -
SQLite через node:sqlite із FTS5 - і він похідний: видаліть його, і він
відбудується з журналу, не втративши нічого. Жодних міграцій, жодної історії з резервними копіями,
крім копіювання двох файлів. Канали, дошки та запуски воркфлоу розгортаються з журналу
так само, тому сервер, убитий посеред запуску, не може залишити файл стану з написом «running».
- Налаштування - що встановлювати де, і де живуть розмови.
- Відмінності від M.A.V.E.N - що перенесено, що згорнуто, що залишилося.