AAYMA
RU
Войти

AI-Sana — Мэтч задач

Платформа, где бизнес с помощью AI-«прожарки» превращает идею в карточку задачи с рейтингом готовности, а студенческие команды откликаются.

Рабочий MVP
Команда «BGK-TEAM» 11💬 0 комментариевс 23 сентября 2026 г.

О проекте

Команда: BGK-TEAM
Кейс HackAlem.ai: Образование — AI Sana
Стадия: Рабочий MVP

Задача кейса: Challenge Hub: превратить задачу бизнеса в задание для студенческих команд

Суть

Платформа, где бизнес с помощью AI-«прожарки» превращает идею в карточку задачи с рейтингом готовности, а студенческие команды откликаются. Дальше идут мэтч, стартовый пакет и этапы с приёмкой.

Как устроено

Next.js BFF держит бизнес-логику: рейтинг готовности 0–100 считается в коде с историей изменений, рекомендации командам строятся по ролям, навыкам и тематике, отклики, мэтчи и этапы хранятся в PostgreSQL через Drizzle. AI-слой на Mastra (агенты grillAgent и task evaluator, workflows analyze-text и phrase-question) через OpenAI задаёт уточняющие вопросы и предлагает заполнение полей, которые бизнес подтверждает. Данные Mastra и бизнес-данные разнесены по двум БД. Фоновые задачи на pg-boss, файлы в RustFS/S3.

Ключевые решения

  • Mastra agents/workflows
  • grill-сессия уточняющих вопросов
  • детерминированный readiness score
  • рекомендации fit() по навыкам
  • Zod-схемы
  • ADR-driven разработка

Особенности

Разработка шла по ADR (ADR-004…008): каждое решение (score, рекомендации, доступ) оформлено отдельно и реализовано параллельными PR. Полный цикл от черновика до принятого этапа с проверкой роли и владельца на сервере.

Стек

TypeScript · Bun · Turborepo · Next.js 16 · React 19 · Tailwind CSS 4 · shadcn/ui · Mastra · AI SDK 6 · PostgreSQL · pgvector · Drizzle ORM · pg-boss · RustFS/S3 · Docker Compose

Модели

OpenAI gpt-5.4-nano


Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-810705c9-bgk-team.

README

README.md

AI-Sana — Мэтч задач

От знаний — к первой работе. Хакатонный проект команды BGK-TEAM.

AI-Sana — от знаний к первой работе

Что делает проект

AI-Sana помогает бизнесу превратить нечёткую идею в понятную задачу, а студенческим командам — найти проект для практики или подработки. AI уточняет требования, бизнес подтверждает сведения, команда предлагает решение. Дальше участники согласуют работу и принимают результат по измеримым критериям.

Что реализовано

  • Рабочее пространство с вводным сценарием, карточками задач, AI-чатом и переключением темы.
  • Пошаговое уточнение задачи («прожарка»): вопросы, редактирование и подтверждение полей.
  • Рейтинг готовности от 0 до 100 и история его изменений. Баллы рассчитываются в коде.
  • Каталог с фильтрами и рекомендации командам по ролям, навыкам и тематике; виды «колода» и «сетка».
  • Отклики команд, принятие, отклонение и откладывание решения бизнесом.
  • Стартовый пакет после выбора команды, сдача этапов, возврат на доработку и подтверждение результата.
  • Демо-переключение бизнеса и команды, серверные проверки роли и владельца данных.

Как работает решение

  1. Бизнес описывает проблему. AI задаёт уточняющие вопросы и предлагает заполнение карточки.
  2. Бизнес проверяет поля. Подтверждённые сведения участвуют в пересчёте рейтинга и видны исполнителям.
  3. Задача публикуется. Команда находит её в каталоге или рекомендациях и отправляет план решения.
  4. Бизнес выбирает команду. Создаётся мэтч со стартовым пакетом и этапами по критериям успеха.
  5. Команда сдаёт результат. Бизнес принимает этап или возвращает его с замечаниями.

Технологии

ОбластьИспользуется
Язык и инструментыTypeScript, Bun 1.4.2, Node.js ≥24, Turborepo
Интерфейс и BFFNext.js 16.3.6, React 19.2.8, Tailwind CSS 4, shadcn/ui, Radix
AIMastra, AI SDK 6, @mastra/client-js, OpenAI API
ДанныеPostgreSQL с pgvector, Drizzle ORM, Mastra PostgresStore, Zod
Фоновые задачи и файлыpg-boss 10, RustFS / S3, AWS S3 Client
Локальная инфраструктураDocker Compose

В коде AI-модель по умолчанию — openai/gpt-5.4-nano. Модель можно переопределить через LLM_MODEL, CLASSIFIER_MODEL и GRILL_MODEL. Доступ к выбранной модели зависит от учётной записи провайдера.

Архитектура

flowchart LR
    UI["Интерфейс Next.js"] --> BFF["BFF: доступ и бизнес-логика"]
    BFF --> DB["nextjs_db · Drizzle"]
    BFF -->|"Mastra Client SDK"| AI["Mastra: анализ текста и вопросы"]
    AI --> OpenAI["OpenAI API"]
    AI --> AIDB["mastra_db"]
    Workers["Workers · pg-boss"] --> AIDB
    Workers --> S3["RustFS / S3"]
  • apps/presentation-layer — UI, API, состояние задач, рейтинг, отклики и этапы.
  • apps/ai-logic-layer — AI-агенты и workflows analyze-text / phrase-question.
  • apps/workers — отдельный процесс очередей; сейчас содержит демонстрационный обработчик.

UI обращается к AI через BFF и Mastra. Рейтинг, подбор и изменение бизнес-состояния выполняются в приложении. Бизнес-данные и данные Mastra разделены на две БД; запросов с объединением таблиц между ними нет.

Установка и запуск

Нужны Git, Node.js ≥24, Bun 1.4.2 и запущенный Docker с Compose v2. На Windows используйте WSL2 с Docker integration.

git clone https://github.com/BAITC-Hacks/hack-810705c9-bgk-team.git
cd hack-810705c9-bgk-team
cp .env.example .env

Для AI укажите в корневом .env:

OPENAI_API_KEY=<ваш ключ OpenAI>
MASTRA_CHAT_AGENT_ID=grillAgent

Затем запустите:

./start.sh

Скрипт установит зависимости по lockfile, поднимет PostgreSQL и RustFS, применит миграции, добавит демо-данные и запустит UI, Mastra и workers. Существующие записи при заполнении демо-данных сохраняются.

СервисАдрес по умолчанию
Приложениеhttp://localhost:3000
Mastra Studio / APIhttp://localhost:4111
RustFS Consolehttp://localhost:9001

Остановка — Ctrl+C; данные БД сохраняются в Docker volumes. Если запуск не удался, выполните ./doctor.sh. Подробности и настройка портов — в QUICKSTART.md.

Как проверить решение

Быстрое знакомство на демо-данных

  1. Откройте каталог.
  2. В демо-переключателе выберите роль «Команда» и команду BotForge.
  3. Откройте рекомендации: проверьте карточки, объяснение совпадения и переключение колоды/сетки.
  4. В каталоге найдите «Бот статусов доставки» и нажмите «Откликнуться» — откроется карточка с формой отклика.

Полный пользовательский сценарий

  1. Откройте задачи, выберите роль «Бизнес» и «ЛогистикаПро».

  2. Создайте задачу, например:

    Диспетчеры вручную планируют 120 доставок в день в Excel и тратят на это четыре часа. Нужен сервис составления маршрутов с учётом окон доставки. Успех — сократить время планирования до 30 минут на согласованном наборе заказов.

  3. Ответьте на вопросы, проверьте и подтвердите поля и критерии успеха. Посмотрите рейтинг и историю, затем опубликуйте задачу.

  4. Переключитесь на BotForge, найдите задачу в каталоге и отправьте отклик: идея, план, срок, роли команды и способ проверки каждого критерия.

  5. Вернитесь к «ЛогистикаПро», откройте отклик и выберите команду.

  6. От команды сдайте этап со ссылкой на результат и комментарием. От бизнеса подтвердите этап либо верните его на доработку.

Ожидаемый результат: задача проходит путь от черновика до мэтча и принятого этапа; рейтинг обновляется при изменении подтверждённых полей, данные сохраняются в PostgreSQL. Это инструкция для воспроизведения, а не отчёт о пройденном end-to-end тесте.

Данные и интеграции

  • Демо-данные: задачи и профили команд из seed-файла, включая BotForge, DataBrew и PixelUX.
  • Пользовательские данные: описания задач, подтверждённые поля, отклики, критерии и отчёты по этапам.
  • OpenAI API: обработка текста и генерация вопросов через Mastra; нужен ключ и доступ к модели.
  • PostgreSQL и RustFS: локальные сервисы Docker Compose. Наличие RustFS не означает, что документы UI уже загружаются на сервер.
  • Голосовой ввод: использует возможности распознавания речи браузера, если они доступны.

Известные ограничения

  • Это демо без полноценной аутентификации: роль хранится в cookie. Для публичного использования нужна настоящая авторизация.
  • При недоступности AI предусмотрен резервный сценарий уточнения; свободный AI-чат требует настроенного провайдера.
  • Документы рабочего пространства хранятся в памяти браузера; серверное хранение вложений этого интерфейса не подключено.
  • Workers содержат пример очереди; полноценный фоновый бизнес-сценарий не заявляется.
  • Голосовой ввод зависит от браузера и разрешения на микрофон.
  • Итоговый сквозной сценарий с live AI и переносом заполненной БД не подтверждён полной приёмкой; подробности — в заметке интеграции.

Развёрнутая версия

Подтверждённая ссылка на публичный стенд в репозитории не указана. Для демонстрации используйте локальный запуск по инструкции выше.

Документация

Быстрый старт · Деплой · Архитектура · Требования MVP · Архитектурные решения

Звёзды
⭐ 0
Форки
0
Язык
TypeScript
Последний push
в прошлом месяце
Коммиты
99
Авторы
4
Файлы
735
Ветки
21

Авторы коммитов

Nupke 63Samat Kalshabekov 16artsiombr 13Andrey Girin 8

История коммитов

  • 2026-09-23 18:25Merge remote-tracking branch 'origin/main' into test-uiartsiombr
  • 2026-09-23 18:09Merge remote-tracking branch 'origin/main' into test-uiartsiombr
  • 2026-09-23 17:55Merge pull request #19 from BAITC-Hacks/feat/assistant-ui-chatAndrey Girin
  • 2026-09-23 17:54Merge remote-tracking branch 'origin/main' into feat/assistant-ui-chatNupke
  • 2026-09-23 17:53feat(ui): attach files to workspace chat messagesNupke
  • 2026-09-23 17:50Merge pull request #18 from BAITC-Hacks/docs/deployment-guideAndrey Girin
  • 2026-09-23 17:50docs: add concise server deployment guideNupke
  • 2026-09-23 17:40feat(ui): remove voice input from workspace chatNupke
Все коммиты (99)
  • 2026-09-23 17:39Open the onboarding screen from the header logo.Samat Kalshabekov
  • 2026-09-23 17:36Merge remote-tracking branch 'origin/main' into feat/assistant-ui-chatNupke
  • 2026-09-23 17:36feat(ui): render workspace chat with assistant-uiNupke
  • 2026-09-23 17:31Merge demo ownership into main.Samat Kalshabekov
  • 2026-09-23 17:30Scope each demo identity to its own tasks and session.Samat Kalshabekov
  • 2026-09-23 17:19dddartsiombr
  • 2026-09-23 17:13ыыыыartsiombr
  • 2026-09-23 17:11Merge pull request #17 from BAITC-Hacks/docs/simplify-readmeAndrey Girin
  • 2026-09-23 17:09docs: add hackathon jury README with project asset and demo guideNupke
  • 2026-09-23 17:07docs: shorten README to overview and startup commandsNupke
  • 2026-09-23 17:06docs: simplify root READMENupke
  • 2026-09-23 17:05Merge pull request #15 from BAITC-Hacks/feat/adr-009-bff-api-contractAndrey Girin
  • 2026-09-23 17:04style: unify Task Match navigation catalog and recommendationsNupke
  • 2026-09-23 17:03style: align task match page with workspace UINupke
  • 2026-09-23 16:51Merge remote-tracking branch 'origin/main' into integration/pr15-task-matchNupke
  • 2026-09-23 16:51Integrate Task Match services and PR12 into ADR009 API contractsNupke
  • 2026-09-23 16:46Loop the onboarding video instead of stopping after one play.Samat Kalshabekov
  • 2026-09-23 16:44merge: include latest main onboarding documentationNupke
  • 2026-09-23 16:44feat: integrate Task Match into PR12 with stateless Mastra contractsNupke
  • 2026-09-23 16:40add chatartsiombr
  • 2026-09-23 16:39add chatartsiombr
  • 2026-09-23 16:38feat: sync main onboarding and Mastra chat with Task MatchNupke
  • 2026-09-23 16:36Document the first-run onboarding flow.Samat Kalshabekov
  • 2026-09-23 16:32Connect free-form chat to Mastra and add business onboarding.Samat Kalshabekov
  • 2026-09-23 16:30feat: merge current main UI with canonical Task Match servicesNupke
  • 2026-09-23 18:26Merge pull request #14 from BAITC-Hacks/test-uiartsiombr
  • 2026-09-23 16:17feat: connect persistent Task Match flow and verify HTTP acceptanceNupke
  • 2026-09-23 16:06feat: enforce ADR-008 access against integrated database servicesNupke
  • 2026-09-23 16:04feat: integrate ADR-007 matches and stages on canonical task schemaNupke
  • 2026-09-23 16:04Describe themed surfaces in the workspace README.Samat Kalshabekov
  • 2026-09-23 16:03Keep voice dictation inside the chat limit and theme the selects.Samat Kalshabekov
  • 2026-09-23 16:03test(api): add concurrency, AI-ordering, RU-locale and 409 regression testsNupke
  • 2026-09-23 16:02fix(api): close version-check race, move AI calls out of tx, validate Mastra outputNupke
  • 2026-09-23 16:02feat: integrate ADR-006 catalog and recommendations with canonical scoreNupke
  • 2026-09-23 16:00feat: connect canonical ADR-005 score and history to grill mutationsNupke
  • 2026-09-23 15:59feat: integrate ADR-004 canonical grill lifecycleNupke
  • 2026-09-23 15:58Merge workspace persistence into main.Samat Kalshabekov
  • 2026-09-23 15:57Persist the workspace in Postgres through the Next.js API.Samat Kalshabekov
  • 2026-09-23 15:57feat: integrate ADR-002 BFF with current workspace UINupke
  • 2026-09-23 15:55docs: integrate ADR implementation planNupke
  • 2026-09-23 15:45Merge branch 'main' into test-uiartsiombr
  • 2026-09-23 15:45test(api): add route-handler tests and ADR-009 implementation noteNupke
  • 2026-09-23 15:45feat(api): wire up route handlers for the §10 REST surfaceNupke
  • 2026-09-23 15:45feat(api): add minimal in-memory use-cases for every ADR-009 routeNupke
  • 2026-09-23 15:44feat(api): add ADR-009 contracts, error format, and BFF plumbingNupke
  • 2026-09-23 15:42docs: describe strict API actor, proxy defaults and workspace role sync (ADR-008)Nupke
  • 2026-09-23 15:42feat(ui): workspace role follows the demo role cookie (ADR-008)Nupke
  • 2026-09-23 15:41fix(ui): validate demo role switch input with zod and report failures (ADR-008)Nupke
  • 2026-09-23 15:41refactor(ui): expose DemoRoleBar via server-only index (ADR-008)Nupke
  • 2026-09-23 15:41fix(access): executor view uses an explicit allowlist of task and field keys (ADR-008)Nupke
  • 2026-09-23 15:41fix(access): strict demo actor for API and proxy defaults for pages (ADR-008)Nupke
  • 2026-09-23 15:41feat(access): stage confirm/return and proposal update guards; role check before body parsing (ADR-008)Nupke
  • 2026-09-23 15:39feat: update task evaluator agent to return strict raw JSON report format and add zod schema for validationartsiombr
  • 2026-09-23 15:35docs: mark demo mode without authentication and document role cookies (ADR-008)Nupke
  • 2026-09-23 15:34feat: add task evaluator agent and integrate evaluation step into pipelineartsiombr
  • 2026-09-23 15:33feat(ui): demo role switch in app shell with cookie-backed actor and view (ADR-008)Nupke
  • 2026-09-23 15:32fix(access): keep executor view field types genericNupke
  • 2026-09-23 15:32feat(access): guarded ai-log, decision and claim use-cases with stub repository (ADR-008)Nupke
  • 2026-09-23 15:30feat(access): role-based visibility filters for tasks, proposals and stages (ADR-008)Nupke
  • 2026-09-23 15:29Merge pull request #11 from BAITC-Hacks/codex/bolder-workspace-uiSamat Kalshabekov
  • 2026-09-23 15:29feat(access): demo actor cookies, seed actors and ownership guards (ADR-008)Nupke
  • 2026-09-23 15:26Make the workspace easier to scan and add local chat skills.Samat Kalshabekov
  • 2026-09-23 15:20feat(ui): connect task match flow to synchronous BFFNupke
  • 2026-09-23 15:18feat(proposals): implement ADR-007 proposals, match, stages and pointsNupke
  • 2026-09-23 15:18feat(ai): expose stateless inference workflows for BFFNupke
  • 2026-09-23 15:18feat(grill): implement ADR-004 session lifecycleNupke
  • 2026-09-23 15:14feat(recommendations): ADR-006 shared recommendations, catalog and fit()Nupke
  • 2026-09-23 15:13feat(bff): add synchronous task match routes and persistenceNupke
  • 2026-09-23 15:12feat(task): deterministic score, single recalc point and score history (ADR-005)Nupke
  • 2026-09-23 15:10feat(task-match): persist AI inference logs in BFF databaseNupke
  • 2026-09-23 15:08feat(task-match): add BFF domain rules and persistence schemaNupke
  • 2026-09-23 15:06Merge student catalog and team profiles into main.Samat Kalshabekov
  • 2026-09-23 15:05Add the student catalog and switchable team profiles.Samat Kalshabekov
  • 2026-09-23 14:59Merge pull request #5 from BAITC-Hacks/codex/frontend-workspace-demoAndrey Girin
  • 2026-09-23 14:55docs: support parallel ADR implementationNupke
  • 2026-09-23 14:52docs: simplify ADR implementation promptsNupke
  • 2026-09-23 14:51feat: implement stack1-result-control pipeline with grill and translator agentsartsiombr
  • 2026-09-23 14:50docs: add ADR implementation promptsNupke
  • 2026-09-23 14:44Merge pull request #3 from BAITC-Hacks/docs/task-match-adrAndrey Girin
  • 2026-09-23 14:42docs: add proposed ADRs for Task Match MVPNupke
  • 2026-09-23 14:35Add an in-memory Sana workspace demo for the five-minute flow.Samat Kalshabekov
  • 2026-09-23 14:32docs: update Task Match requirements and add platform descriptionNupke
  • 2026-09-23 14:25docs: add Task Match MVP specificationNupke
  • 2026-09-23 14:23Merge pull request #2 from BAITC-Hacks/feat/project-polymath-skillsAndrey Girin
  • 2026-09-23 14:11docs: route team agents to project-adapted polymath skillsNupke
  • 2026-09-23 13:58Note the BGK team name in the README.Samat Kalshabekov
  • 2026-09-23 13:54Add initial documentation file 1h.mdartsiombr
  • 2026-09-23 13:26Merge pull request #1 from BAITC-Hacks/fix/dependency-vulnerabilitiesAndrey Girin
  • 2026-09-23 13:23Fix dependency vulnerabilities and backport response size limitsNupke
  • 2026-09-23 13:11Fix dev shutdown and keep one workspace lockfileNupke
  • 2026-09-23 13:09Add Bun monorepo boilerplateNupke
Структура репозитория (735 файлов)
.agents/skills/ai-elements/SKILL.md
.agents/skills/ai-elements/references/agent.md
.agents/skills/ai-elements/references/artifact.md
.agents/skills/ai-elements/references/attachments.md
.agents/skills/ai-elements/references/audio-player.md
.agents/skills/ai-elements/references/canvas.md
.agents/skills/ai-elements/references/chain-of-thought.md
.agents/skills/ai-elements/references/checkpoint.md
.agents/skills/ai-elements/references/code-block.md
.agents/skills/ai-elements/references/commit.md
.agents/skills/ai-elements/references/confirmation.md
.agents/skills/ai-elements/references/connection.md
.agents/skills/ai-elements/references/context.md
.agents/skills/ai-elements/references/controls.md
.agents/skills/ai-elements/references/conversation.md
.agents/skills/ai-elements/references/edge.md
.agents/skills/ai-elements/references/environment-variables.md
.agents/skills/ai-elements/references/file-tree.md
.agents/skills/ai-elements/references/image.md
.agents/skills/ai-elements/references/inline-citation.md
.agents/skills/ai-elements/references/jsx-preview.md
.agents/skills/ai-elements/references/message.md
.agents/skills/ai-elements/references/mic-selector.md
.agents/skills/ai-elements/references/model-selector.md
.agents/skills/ai-elements/references/node.md
.agents/skills/ai-elements/references/open-in-chat.md
.agents/skills/ai-elements/references/package-info.md
.agents/skills/ai-elements/references/panel.md
.agents/skills/ai-elements/references/persona.md
.agents/skills/ai-elements/references/plan.md
.agents/skills/ai-elements/references/prompt-input.md
.agents/skills/ai-elements/references/queue.md
.agents/skills/ai-elements/references/reasoning.md
.agents/skills/ai-elements/references/sandbox.md
.agents/skills/ai-elements/references/schema-display.md
.agents/skills/ai-elements/references/shimmer.md
.agents/skills/ai-elements/references/snippet.md
.agents/skills/ai-elements/references/sources.md
.agents/skills/ai-elements/references/speech-input.md
.agents/skills/ai-elements/references/stack-trace.md
.agents/skills/ai-elements/references/suggestion.md
.agents/skills/ai-elements/references/task.md
.agents/skills/ai-elements/references/terminal.md
.agents/skills/ai-elements/references/test-results.md
.agents/skills/ai-elements/references/tool.md
.agents/skills/ai-elements/references/toolbar.md
.agents/skills/ai-elements/references/transcription.md
.agents/skills/ai-elements/references/voice-selector.md
.agents/skills/ai-elements/references/web-preview.md
.agents/skills/ai-elements/scripts/agent.tsx
.agents/skills/ai-elements/scripts/artifact.tsx
.agents/skills/ai-elements/scripts/attachments-inline.tsx
.agents/skills/ai-elements/scripts/attachments-list.tsx
.agents/skills/ai-elements/scripts/attachments.tsx
.agents/skills/ai-elements/scripts/audio-player-remote.tsx
.agents/skills/ai-elements/scripts/audio-player.tsx
.agents/skills/ai-elements/scripts/chain-of-thought.tsx
.agents/skills/ai-elements/scripts/checkpoint.tsx
.agents/skills/ai-elements/scripts/code-block-dark.tsx
.agents/skills/ai-elements/scripts/code-block.tsx
.agents/skills/ai-elements/scripts/commit.tsx
.agents/skills/ai-elements/scripts/confirmation-accepted.tsx
.agents/skills/ai-elements/scripts/confirmation-rejected.tsx
.agents/skills/ai-elements/scripts/confirmation-request.tsx
.agents/skills/ai-elements/scripts/confirmation.tsx
.agents/skills/ai-elements/scripts/context.tsx
.agents/skills/ai-elements/scripts/conversation.tsx
.agents/skills/ai-elements/scripts/environment-variables.tsx
.agents/skills/ai-elements/scripts/file-tree-basic.tsx
.agents/skills/ai-elements/scripts/file-tree-expanded.tsx
.agents/skills/ai-elements/scripts/file-tree-selection.tsx
.agents/skills/ai-elements/scripts/file-tree.tsx
.agents/skills/ai-elements/scripts/image.tsx
.agents/skills/ai-elements/scripts/inline-citation.tsx
.agents/skills/ai-elements/scripts/jsx-preview.tsx
.agents/skills/ai-elements/scripts/message.tsx
.agents/skills/ai-elements/scripts/mic-selector.tsx
.agents/skills/ai-elements/scripts/model-selector.tsx
.agents/skills/ai-elements/scripts/open-in-chat.tsx
.agents/skills/ai-elements/scripts/package-info.tsx
.agents/skills/ai-elements/scripts/persona-command.tsx
.agents/skills/ai-elements/scripts/persona-glint.tsx
.agents/skills/ai-elements/scripts/persona-halo.tsx
.agents/skills/ai-elements/scripts/persona-mana.tsx
.agents/skills/ai-elements/scripts/persona-obsidian.tsx
.agents/skills/ai-elements/scripts/persona-opal.tsx
.agents/skills/ai-elements/scripts/plan.tsx
.agents/skills/ai-elements/scripts/prompt-input-cursor.tsx
.agents/skills/ai-elements/scripts/prompt-input-tooltip.tsx
.agents/skills/ai-elements/scripts/prompt-input.tsx
.agents/skills/ai-elements/scripts/queue-prompt-input.tsx
.agents/skills/ai-elements/scripts/queue.tsx
.agents/skills/ai-elements/scripts/reasoning.tsx
.agents/skills/ai-elements/scripts/sandbox.tsx
.agents/skills/ai-elements/scripts/schema-display-basic.tsx
.agents/skills/ai-elements/scripts/schema-display-body.tsx
.agents/skills/ai-elements/scripts/schema-display-nested.tsx
.agents/skills/ai-elements/scripts/schema-display-params.tsx
.agents/skills/ai-elements/scripts/schema-display.tsx
.agents/skills/ai-elements/scripts/shimmer-duration.tsx
.agents/skills/ai-elements/scripts/shimmer-elements.tsx
.agents/skills/ai-elements/scripts/shimmer.tsx
.agents/skills/ai-elements/scripts/snippet-plain.tsx
.agents/skills/ai-elements/scripts/snippet.tsx
.agents/skills/ai-elements/scripts/sources-custom.tsx
.agents/skills/ai-elements/scripts/sources.tsx
.agents/skills/ai-elements/scripts/speech-input.tsx
.agents/skills/ai-elements/scripts/stack-trace-collapsed.tsx
.agents/skills/ai-elements/scripts/stack-trace-no-internal.tsx
.agents/skills/ai-elements/scripts/stack-trace.tsx
.agents/skills/ai-elements/scripts/suggestion-input.tsx
.agents/skills/ai-elements/scripts/suggestion.tsx
.agents/skills/ai-elements/scripts/task.tsx
.agents/skills/ai-elements/scripts/terminal-basic.tsx
.agents/skills/ai-elements/scripts/terminal-clear.tsx
.agents/skills/ai-elements/scripts/terminal-streaming.tsx
.agents/skills/ai-elements/scripts/terminal.tsx
.agents/skills/ai-elements/scripts/test-results-basic.tsx
.agents/skills/ai-elements/scripts/test-results-errors.tsx
.agents/skills/ai-elements/scripts/test-results-suites.tsx
.agents/skills/ai-elements/scripts/test-results.tsx
.agents/skills/ai-elements/scripts/tool-input-available.tsx
.agents/skills/ai-elements/scripts/tool-input-streaming.tsx
.agents/skills/ai-elements/scripts/tool-output-available.tsx
.agents/skills/ai-elements/scripts/tool-output-error.tsx
.agents/skills/ai-elements/scripts/tool.tsx
.agents/skills/ai-elements/scripts/transcription.tsx
.agents/skills/ai-elements/scripts/voice-selector.tsx
.agents/skills/ai-elements/scripts/web-preview.tsx
.agents/skills/ai-sdk/SKILL.md
.agents/skills/convert-documents-to-markdown/SKILL.md
.agents/skills/feature-sliced-design/SKILL.md
.agents/skills/feature-sliced-design/evals/README.md
.agents/skills/feature-sliced-design/evals/evals.json
.agents/skills/feature-sliced-design/references/asset-handling.md
.agents/skills/feature-sliced-design/references/auth-and-api.md
.agents/skills/feature-sliced-design/references/cross-import-patterns.md
.agents/skills/feature-sliced-design/references/excessive-entities.md
.agents/skills/feature-sliced-design/references/framework-integration.md
.agents/skills/feature-sliced-design/references/growth-walkthrough.md
.agents/skills/feature-sliced-design/references/layer-structure.md
.agents/skills/feature-sliced-design/references/migration-guide.md
.agents/skills/feature-sliced-design/references/state-management.md
.agents/skills/hackathon-guide/SKILL.md
.agents/skills/mastra/SKILL.md
.agents/skills/mastra/references/common-errors.md
.agents/skills/mastra/references/core-concepts.md
.agents/skills/mastra/references/create-mastra.md
.agents/skills/mastra/references/embedded-docs.md
.agents/skills/mastra/references/mastra-api.md
.agents/skills/mastra/references/migration-guide.md
.agents/skills/mastra/references/model-selection.md
.agents/skills/mastra/references/remote-docs.md
.agents/skills/mastra/references/trace-intelligence.md
.agents/skills/mastra/references/trace-query.md
.agents/skills/mastra/scripts/provider-registry.mjs
.agents/skills/next-dev-loop/SKILL.md
.agents/skills/rustfs/README.md
.agents/skills/rustfs/SKILL.md
.agents/skills/rustfs/evals/evals.json
.agents/skills/rustfs/known-issues.md
.agents/skills/rustfs/references/architecture.md
.agents/skills/rustfs/references/installation.md
.agents/skills/rustfs/references/migration.md
.agents/skills/rustfs/references/sdks.md
.agents/skills/shadcn/SKILL.md
.agents/skills/shadcn/agents/openai.yml
.agents/skills/shadcn/assets/shadcn-small.png
.agents/skills/shadcn/assets/shadcn.png
.agents/skills/shadcn/cli.md
.agents/skills/shadcn/customization.md
.agents/skills/shadcn/evals/evals.json
.agents/skills/shadcn/mcp.md
.agents/skills/shadcn/registry.md
.agents/skills/shadcn/rules/base-vs-radix.md
.agents/skills/shadcn/rules/chat.md
.agents/skills/shadcn/rules/composition.md
.agents/skills/shadcn/rules/forms.md
.agents/skills/shadcn/rules/icons.md
.agents/skills/shadcn/rules/styling.md
.agents/skills/transformers-js/SKILL.md
.agents/skills/transformers-js/references/CACHE.md
.agents/skills/transformers-js/references/CONFIGURATION.md
.agents/skills/transformers-js/references/EXAMPLES.md
.agents/skills/transformers-js/references/MODEL_ARCHITECTURES.md
.agents/skills/transformers-js/references/MODEL_REGISTRY.md
.agents/skills/transformers-js/references/PIPELINE_OPTIONS.md
.agents/skills/transformers-js/references/TEXT_GENERATION.md
.agents/skills/turborepo/SKILL.md
.agents/skills/turborepo/command/turborepo.md
.agents/skills/turborepo/references/best-practices/RULE.md
.agents/skills/turborepo/references/best-practices/dependencies.md
.agents/skills/turborepo/references/best-practices/packages.md
.agents/skills/turborepo/references/best-practices/structure.md
.agents/skills/turborepo/references/boundaries/RULE.md
.agents/skills/turborepo/references/caching/RULE.md
.agents/skills/turborepo/references/caching/gotchas.md
.agents/skills/turborepo/references/caching/remote-cache.md
.agents/skills/turborepo/references/ci/RULE.md
.agents/skills/turborepo/references/ci/github-actions.md
.agents/skills/turborepo/references/ci/patterns.md
.agents/skills/turborepo/references/ci/vercel.md
.agents/skills/turborepo/references/cli/RULE.md
.agents/skills/turborepo/references/cli/commands.md
.agents/skills/turborepo/references/configuration/RULE.md
.agents/skills/turborepo/references/configuration/global-options.md
.agents/skills/turborepo/references/configuration/gotchas.md
.agents/skills/turborepo/references/configuration/tasks.md
.agents/skills/turborepo/references/environment/RULE.md
.agents/skills/turborepo/references/environment/gotchas.md
.agents/skills/turborepo/references/environment/modes.md
.agents/skills/turborepo/references/filtering/RULE.md
.agents/skills/turborepo/references/filtering/patterns.md
.agents/skills/turborepo/references/watch/RULE.md
.bun-version
.claude/skills/ai-elements
.claude/skills/ai-sdk
.claude/skills/convert-documents-to-markdown
.claude/skills/feature-sliced-design
.claude/skills/hackathon-guide/SKILL.md
.claude/skills/mastra
.claude/skills/next-dev-loop
.claude/skills/rustfs
.claude/skills/shadcn
.claude/skills/transformers-js
.claude/skills/turborepo
.cline/skills/ai-elements
.cline/skills/ai-sdk
.cline/skills/convert-documents-to-markdown
.cline/skills/feature-sliced-design
.cline/skills/hackathon-guide
.cline/skills/mastra
.cline/skills/next-dev-loop
.cline/skills/rustfs
.cline/skills/shadcn
.cline/skills/transformers-js
.cline/skills/turborepo
.dockerignore
.env.example
.gitattributes
.gitignore
.ignore
.npmrc
AGENTS.md
CLAUDE.md
QUICKSTART.md
README.md
apps/ai-logic-layer/.env.example
apps/ai-logic-layer/.gitignore
apps/ai-logic-layer/Dockerfile
apps/ai-logic-layer/package.json
apps/ai-logic-layer/skills/grill-me-acceptance-criteria/SKILL.md
apps/ai-logic-layer/skills/grill-me-job-story/SKILL.md
apps/ai-logic-layer/skills/grill-me-smart/SKILL.md
apps/ai-logic-layer/skills/grill-me-user-story/SKILL.md
apps/ai-logic-layer/skills/task-readiness-checklist/SKILL.md
apps/ai-logic-layer/src/mastra/agents/grill-agent.ts
apps/ai-logic-layer/src/mastra/agents/task-evaluator-agent.ts
apps/ai-logic-layer/src/mastra/agents/task-manager-agent.ts
apps/ai-logic-layer/src/mastra/agents/translator-agent.ts
apps/ai-logic-layer/src/mastra/index.ts
apps/ai-logic-layer/src/mastra/memory.ts
apps/ai-logic-layer/src/mastra/schemas/pipeline.ts
apps/ai-logic-layer/src/mastra/schemas/rating.ts
apps/ai-logic-layer/src/mastra/storage.ts
apps/ai-logic-layer/src/mastra/workflows/inference.ts
apps/ai-logic-layer/src/mastra/workflows/stack-1-result-control.ts
apps/ai-logic-layer/src/mastra/workflows/steps/compile.ts
apps/ai-logic-layer/src/mastra/workflows/steps/exit-rubrics.ts
apps/ai-logic-layer/src/mastra/workflows/steps/init-step.ts
apps/ai-logic-layer/src/mastra/workflows/steps/round-prompts.ts
apps/ai-logic-layer/src/mastra/workflows/steps/round-step.ts
apps/ai-logic-layer/src/mastra/workflows/steps/translator.ts
apps/ai-logic-layer/tsconfig.json
apps/presentation-layer/.env.example
apps/presentation-layer/.gitignore
apps/presentation-layer/Dockerfile
apps/presentation-layer/README.md
apps/presentation-layer/app/api/ai-log/route.ts
apps/presentation-layer/app/api/assistant/route.ts
apps/presentation-layer/app/api/business-logos/[id]/route.ts
apps/presentation-layer/app/api/business-logos/route.ts
apps/presentation-layer/app/api/catalog/route.ts
apps/presentation-layer/app/api/evaluate/route.ts
apps/presentation-layer/app/api/grill/route.ts
apps/presentation-layer/app/api/onboarding/route.ts
apps/presentation-layer/app/api/proposals/[id]/decision/route.ts
apps/presentation-layer/app/api/proposals/[id]/kickoff/route.ts
apps/presentation-layer/app/api/proposals/[id]/milestone/confirm/route.ts
apps/presentation-layer/app/api/proposals/[id]/milestone/route.ts
apps/presentation-layer/app/api/proposals/[id]/route.ts
apps/presentation-layer/app/api/proposals/[id]/stages/route.ts
apps/presentation-layer/app/api/session/route.ts
apps/presentation-layer/app/api/stages/[id]/claim/route.ts
apps/presentation-layer/app/api/stages/[id]/confirm/route.ts
apps/presentation-layer/app/api/stages/[id]/return/route.ts
apps/presentation-layer/app/api/swipes/route.ts
apps/presentation-layer/app/api/tasks/[id]/chat/route.ts
apps/presentation-layer/app/api/tasks/[id]/close/route.ts
apps/presentation-layer/app/api/tasks/[id]/documents/extract/route.ts
apps/presentation-layer/app/api/tasks/[id]/fields/[node]/route.ts
apps/presentation-layer/app/api/tasks/[id]/grill/checkpoint/route.ts
apps/presentation-layer/app/api/tasks/[id]/grill/fields/[node]/route.ts
apps/presentation-layer/app/api/tasks/[id]/grill/finish/route.ts
apps/presentation-layer/app/api/tasks/[id]/grill/route.ts
apps/presentation-layer/app/api/tasks/[id]/grill/turn/route.ts
apps/presentation-layer/app/api/tasks/[id]/proposals/route.ts
apps/presentation-layer/app/api/tasks/[id]/publish/route.ts
apps/presentation-layer/app/api/tasks/[id]/route.ts
apps/presentation-layer/app/api/tasks/[id]/score/history/route.ts
apps/presentation-layer/app/api/tasks/[id]/score/route.ts
apps/presentation-layer/app/api/tasks/route.ts
apps/presentation-layer/app/api/teams/[id]/progress/route.ts
apps/presentation-layer/app/api/teams/[id]/recommendations/route.ts
apps/presentation-layer/app/api/teams/[id]/route.ts
apps/presentation-layer/app/api/teams/route.ts
apps/presentation-layer/app/api/workspace/proposals/[id]/decision/route.ts
apps/presentation-layer/app/api/workspace/proposals/[id]/milestone/confirm/route.ts
apps/presentation-layer/app/api/workspace/proposals/[id]/milestone/route.ts
apps/presentation-layer/app/api/workspace/route.ts
apps/presentation-layer/app/api/workspace/tasks/[id]/route.ts
apps/presentation-layer/app/api/workspace/tasks/route.ts
apps/presentation-layer/app/catalog/page.tsx
apps/presentation-layer/app/favicon.ico
apps/presentation-layer/app/layout.tsx
apps/presentation-layer/app/onboarding/page.tsx
apps/presentation-layer/app/page.tsx
apps/presentation-layer/app/task-match/page.tsx
apps/presentation-layer/app/teams/[id]/recommendations/page.tsx
apps/presentation-layer/components.json
apps/presentation-layer/drizzle.config.ts
apps/presentation-layer/eslint.config.mjs
apps/presentation-layer/next.config.ts
apps/presentation-layer/package.json
apps/presentation-layer/postcss.config.mjs
apps/presentation-layer/proxy.ts
apps/presentation-layer/public/ai-sana-logo.svg
apps/presentation-layer/public/ai-sana-onboarding-poster.webp
apps/presentation-layer/public/ai_sana_onboarding_video.mp4
apps/presentation-layer/public/file.svg
apps/presentation-layer/public/globe.svg
apps/presentation-layer/public/next.svg
apps/presentation-layer/public/vercel.svg
apps/presentation-layer/public/window.svg
apps/presentation-layer/scripts/adr007-smoke.ts
apps/presentation-layer/scripts/integration-http.ts
apps/presentation-layer/scripts/seed-task-match.ts
apps/presentation-layer/scripts/seed.ts
apps/presentation-layer/scripts/test-backend.ts
apps/presentation-layer/scripts/test-onboarding.ts
apps/presentation-layer/src/_app/providers/index.tsx
apps/presentation-layer/src/_app/styles/globals.css
apps/presentation-layer/src/_app/ui/app-page-frame.tsx
apps/presentation-layer/src/_app/ui/app-shell.tsx
apps/presentation-layer/src/_pages/onboarding/index.ts
apps/presentation-layer/src/_pages/onboarding/ui/onboarding-page.tsx
apps/presentation-layer/src/_pages/workspace/api/assistant-client.ts
apps/presentation-layer/src/_pages/workspace/index.ts
apps/presentation-layer/src/_pages/workspace/ui/chat-flow.test.ts
apps/presentation-layer/src/_pages/workspace/ui/chat-flow.ts
apps/presentation-layer/src/_pages/workspace/ui/chat-messages.tsx
apps/presentation-layer/src/_pages/workspace/ui/chat-panel.tsx
apps/presentation-layer/src/_pages/workspace/ui/chat-skills.ts
apps/presentation-layer/src/_pages/workspace/ui/local-ai-analysis.test.ts
apps/presentation-layer/src/_pages/workspace/ui/local-ai-analysis.ts
apps/presentation-layer/src/_pages/workspace/ui/new-task-dialog.tsx
apps/presentation-layer/src/_pages/workspace/ui/task-navigation.tsx
apps/presentation-layer/src/_pages/workspace/ui/use-chat-attachments.ts
apps/presentation-layer/src/_pages/workspace/ui/workspace-page.tsx
apps/presentation-layer/src/entities/.gitkeep
apps/presentation-layer/src/entities/access/index.ts
apps/presentation-layer/src/entities/access/model/types.ts
apps/presentation-layer/src/entities/access/model/visibility.test.ts
apps/presentation-layer/src/entities/access/model/visibility.ts
apps/presentation-layer/src/entities/grill/model/index.ts
apps/presentation-layer/src/entities/grill/model/model.test.ts
apps/presentation-layer/src/entities/proposal/index.ts
apps/presentation-layer/src/entities/proposal/model/compare.test.ts
apps/presentation-layer/src/entities/proposal/model/compare.ts
apps/presentation-layer/src/entities/proposal/model/fit.test.ts
apps/presentation-layer/src/entities/proposal/model/fit.ts
apps/presentation-layer/src/entities/proposal/model/transitions.ts
apps/presentation-layer/src/entities/stage/index.ts
apps/presentation-layer/src/entities/stage/model/portfolio.test.ts
apps/presentation-layer/src/entities/stage/model/portfolio.ts
apps/presentation-layer/src/entities/task-match/index.ts
apps/presentation-layer/src/entities/task-match/model.ts
apps/presentation-layer/src/entities/task-match/projection.ts
apps/presentation-layer/src/entities/task/index.ts
apps/presentation-layer/src/entities/task/model/kickoff.test.ts
apps/presentation-layer/src/entities/task/model/kickoff.ts
apps/presentation-layer/src/entities/task/model/level.test.ts
apps/presentation-layer/src/entities/task/model/level.ts
apps/presentation-layer/src/entities/task/model/nodes.ts
apps/presentation-layer/src/entities/task/model/place.test.ts
apps/presentation-layer/src/entities/task/model/place.ts
apps/presentation-layer/src/entities/task/model/score.fixtures.ts
apps/presentation-layer/src/entities/task/model/score.test.ts
apps/presentation-layer/src/entities/task/model/score.ts
apps/presentation-layer/src/entities/task/model/to-tile.ts
apps/presentation-layer/src/entities/task/ui/task-tile.tsx
apps/presentation-layer/src/entities/team/index.ts
apps/presentation-layer/src/entities/team/model/fit.test.ts
apps/presentation-layer/src/entities/team/model/fit.ts
apps/presentation-layer/src/entities/team/model/types.ts
apps/presentation-layer/src/entities/workspace/api.ts
apps/presentation-layer/src/entities/workspace/assistant.ts
apps/presentation-layer/src/entities/workspace/business-logo.ts
apps/presentation-layer/src/entities/workspace/chat-contracts.ts
apps/presentation-layer/src/entities/workspace/contracts.test.ts
apps/presentation-layer/src/entities/workspace/contracts.ts
apps/presentation-layer/src/entities/workspace/demo-data.ts
apps/presentation-layer/src/entities/workspace/grill.ts
apps/presentation-layer/src/entities/workspace/index.ts
apps/presentation-layer/src/entities/workspace/model.test.ts
apps/presentation-layer/src/entities/workspace/model.ts
apps/presentation-layer/src/entities/workspace/task-scope.test.ts
apps/presentation-layer/src/entities/workspace/task-scope.ts
apps/presentation-layer/src/features/.gitkeep
apps/presentation-layer/src/features/ai-log/api/get-ai-log.ts
apps/presentation-layer/src/features/catalog/api/get-catalog.ts
apps/presentation-layer/src/features/catalog/index.ts
apps/presentation-layer/src/features/catalog/model/sort.test.ts
apps/presentation-layer/src/features/catalog/model/sort.ts
apps/presentation-layer/src/features/catalog/ui/catalog-view.tsx
apps/presentation-layer/src/features/close-task/api/close-task.ts
apps/presentation-layer/src/features/close-task/index.ts
apps/presentation-layer/src/features/decide-proposal/api/decide-proposal.ts
apps/presentation-layer/src/features/decide-proposal/api/list-proposals.ts
apps/presentation-layer/src/features/decide-proposal/index.ts
apps/presentation-layer/src/features/demo-role-switch/api/switch-demo-role.ts
apps/presentation-layer/src/features/demo-role-switch/index.server.ts
apps/presentation-layer/src/features/demo-role-switch/index.ts
apps/presentation-layer/src/features/demo-role-switch/ui/demo-role-bar.tsx
apps/presentation-layer/src/features/demo-role-switch/ui/demo-role-switch.tsx
apps/presentation-layer/src/features/grill/README.md
apps/presentation-layer/src/features/grill/api/service.ts
apps/presentation-layer/src/features/onboarding/index.ts
apps/presentation-layer/src/features/onboarding/ui/onboarding-form.tsx
apps/presentation-layer/src/features/onboarding/ui/onboarding-screen.tsx
apps/presentation-layer/src/features/onboarding/ui/onboarding-video.tsx
apps/presentation-layer/src/features/onboarding/ui/onboarding.module.css
apps/presentation-layer/src/features/recommendations/api/get-recommendations.ts
apps/presentation-layer/src/features/recommendations/api/set-view-mode.ts
apps/presentation-layer/src/features/recommendations/index.ts
apps/presentation-layer/src/features/recommendations/model/rank.test.ts
apps/presentation-layer/src/features/recommendations/model/rank.ts
apps/presentation-layer/src/features/recommendations/ui/deck.tsx
apps/presentation-layer/src/features/recommendations/ui/grid.tsx
apps/presentation-layer/src/features/recommendations/ui/missing-info-dialog.tsx
apps/presentation-layer/src/features/recommendations/ui/recommendations-view.tsx
apps/presentation-layer/src/features/recommendations/ui/task-actions.tsx
apps/presentation-layer/src/features/stage-progress/api/queries.ts
apps/presentation-layer/src/features/stage-progress/api/stage-progress.ts
apps/presentation-layer/src/features/stage-progress/index.ts
apps/presentation-layer/src/features/student-catalog/index.ts
apps/presentation-layer/src/features/student-catalog/ui/student-catalog.tsx
apps/presentation-layer/src/features/submit-proposal/api/submit-proposal.ts
apps/presentation-layer/src/features/submit-proposal/index.ts
apps/presentation-layer/src/features/swipe/api/record-swipe.ts
apps/presentation-layer/src/features/swipe/index.ts
apps/presentation-layer/src/features/swipe/ui/use-swipe.ts
apps/presentation-layer/src/features/task-card/api/access.ts
apps/presentation-layer/src/features/task-card/api/get-score.ts
apps/presentation-layer/src/features/task-card/api/load-score-card.ts
apps/presentation-layer/src/features/task-card/api/open-blocks.ts
apps/presentation-layer/src/features/task-card/api/read-task.ts
apps/presentation-layer/src/features/task-card/api/recalculate-score.integration.test.ts
apps/presentation-layer/src/features/task-card/api/recalculate-score.ts
apps/presentation-layer/src/features/task-card/index.ts
apps/presentation-layer/src/features/task-documents/index.ts
apps/presentation-layer/src/features/task-documents/model/documents.test.ts
apps/presentation-layer/src/features/task-documents/model/documents.ts
apps/presentation-layer/src/features/task-documents/model/task-documents-provider.tsx
apps/presentation-layer/src/features/task-documents/model/use-task-documents.ts
apps/presentation-layer/src/features/task-documents/ui/task-documents-panel.tsx
apps/presentation-layer/src/features/task-editor/index.ts
apps/presentation-layer/src/features/task-editor/ui/task-editor.tsx
apps/presentation-layer/src/features/task-inspector/index.ts
apps/presentation-layer/src/features/task-inspector/ui/task-inspector.tsx
apps/presentation-layer/src/features/task-match/api/http.ts
apps/presentation-layer/src/features/task-match/api/proposals.ts
apps/presentation-layer/src/features/task-match/api/tasks.ts
apps/presentation-layer/src/features/task-match/ui/task-match-flow.tsx
apps/presentation-layer/src/features/team-picker/index.ts
apps/presentation-layer/src/features/team-picker/ui/team-picker.tsx
apps/presentation-layer/src/server/workspace/business-logos.test.ts
apps/presentation-layer/src/server/workspace/business-logos.ts
apps/presentation-layer/src/server/workspace/chat.test.ts
apps/presentation-layer/src/server/workspace/chat.ts
apps/presentation-layer/src/server/workspace/documents.ts
apps/presentation-layer/src/server/workspace/http.ts
apps/presentation-layer/src/server/workspace/service.ts
apps/presentation-layer/src/shared/api/actor.ts
apps/presentation-layer/src/shared/api/assistant-route.ts
apps/presentation-layer/src/shared/api/assistant.test.ts
apps/presentation-layer/src/shared/api/contracts/ai-log.ts
apps/presentation-layer/src/shared/api/contracts/assistant.ts
apps/presentation-layer/src/shared/api/contracts/catalog.ts
apps/presentation-layer/src/shared/api/contracts/common.ts
apps/presentation-layer/src/shared/api/contracts/fields.ts
apps/presentation-layer/src/shared/api/contracts/grill.ts
apps/presentation-layer/src/shared/api/contracts/index.ts
apps/presentation-layer/src/shared/api/contracts/proposals.ts
apps/presentation-layer/src/shared/api/contracts/recommendations.ts
apps/presentation-layer/src/shared/api/contracts/resource-id.ts
apps/presentation-layer/src/shared/api/contracts/score.ts
apps/presentation-layer/src/shared/api/contracts/stages.ts
apps/presentation-layer/src/shared/api/contracts/swipes.ts
apps/presentation-layer/src/shared/api/contracts/task-match.ts
apps/presentation-layer/src/shared/api/contracts/tasks.ts
apps/presentation-layer/src/shared/api/errors.ts
apps/presentation-layer/src/shared/api/flow-route.ts
apps/presentation-layer/src/shared/api/handler.ts
apps/presentation-layer/src/shared/api/mastra.ts
apps/presentation-layer/src/shared/api/route-response.ts
apps/presentation-layer/src/shared/components/ai-elements/agent.tsx
apps/presentation-layer/src/shared/components/ai-elements/artifact.tsx
apps/presentation-layer/src/shared/components/ai-elements/attachments.tsx
apps/presentation-layer/src/shared/components/ai-elements/audio-player.tsx
apps/presentation-layer/src/shared/components/ai-elements/canvas.tsx
apps/presentation-layer/src/shared/components/ai-elements/chain-of-thought.tsx
apps/presentation-layer/src/shared/components/ai-elements/checkpoint.tsx
apps/presentation-layer/src/shared/components/ai-elements/code-block.tsx
apps/presentation-layer/src/shared/components/ai-elements/commit.tsx
apps/presentation-layer/src/shared/components/ai-elements/confirmation.tsx
apps/presentation-layer/src/shared/components/ai-elements/connection.tsx
apps/presentation-layer/src/shared/components/ai-elements/context.tsx
apps/presentation-layer/src/shared/components/ai-elements/controls.tsx
apps/presentation-layer/src/shared/components/ai-elements/conversation.tsx
apps/presentation-layer/src/shared/components/ai-elements/edge.tsx
apps/presentation-layer/src/shared/components/ai-elements/environment-variables.tsx
apps/presentation-layer/src/shared/components/ai-elements/file-tree.tsx
apps/presentation-layer/src/shared/components/ai-elements/image.tsx
apps/presentation-layer/src/shared/components/ai-elements/inline-citation.tsx
apps/presentation-layer/src/shared/components/ai-elements/jsx-preview.tsx
apps/presentation-layer/src/shared/components/ai-elements/message.tsx
apps/presentation-layer/src/shared/components/ai-elements/mic-selector.tsx
apps/presentation-layer/src/shared/components/ai-elements/model-selector.tsx
apps/presentation-layer/src/shared/components/ai-elements/node.tsx
apps/presentation-layer/src/shared/components/ai-elements/open-in-chat.tsx
apps/presentation-layer/src/shared/components/ai-elements/package-info.tsx
apps/presentation-layer/src/shared/components/ai-elements/panel.tsx
apps/presentation-layer/src/shared/components/ai-elements/persona.tsx
apps/presentation-layer/src/shared/components/ai-elements/plan.tsx
apps/presentation-layer/src/shared/components/ai-elements/prompt-input.tsx
apps/presentation-layer/src/shared/components/ai-elements/queue.tsx
apps/presentation-layer/src/shared/components/ai-elements/reasoning.tsx
apps/presentation-layer/src/shared/components/ai-elements/sandbox.tsx
apps/presentation-layer/src/shared/components/ai-elements/schema-display.tsx
apps/presentation-layer/src/shared/components/ai-elements/shimmer.tsx
apps/presentation-layer/src/shared/components/ai-elements/snippet.tsx
apps/presentation-layer/src/shared/components/ai-elements/sources.tsx
apps/presentation-layer/src/shared/components/ai-elements/speech-input.tsx
apps/presentation-layer/src/shared/components/ai-elements/stack-trace.tsx
apps/presentation-layer/src/shared/components/ai-elements/suggestion.tsx
apps/presentation-layer/src/shared/components/ai-elements/task.tsx
apps/presentation-layer/src/shared/components/ai-elements/terminal.tsx
apps/presentation-layer/src/shared/components/ai-elements/test-results.tsx
apps/presentation-layer/src/shared/components/ai-elements/tool.tsx
apps/presentation-layer/src/shared/components/ai-elements/toolbar.tsx
apps/presentation-layer/src/shared/components/ai-elements/transcription.tsx
apps/presentation-layer/src/shared/components/ai-elements/voice-selector.tsx
apps/presentation-layer/src/shared/components/ai-elements/web-preview.tsx
apps/presentation-layer/src/shared/components/ai-sana-logo.module.css
apps/presentation-layer/src/shared/components/ai-sana-logo.tsx
apps/presentation-layer/src/shared/components/icon-action.tsx
apps/presentation-layer/src/shared/components/theme-toggle.tsx
apps/presentation-layer/src/shared/components/ui/accordion.tsx
apps/presentation-layer/src/shared/components/ui/alert-dialog.tsx
apps/presentation-layer/src/shared/components/ui/alert.tsx
apps/presentation-layer/src/shared/components/ui/aspect-ratio.tsx
apps/presentation-layer/src/shared/components/ui/attachment.tsx
apps/presentation-layer/src/shared/components/ui/avatar.tsx
apps/presentation-layer/src/shared/components/ui/badge.tsx
apps/presentation-layer/src/shared/components/ui/breadcrumb.tsx
apps/presentation-layer/src/shared/components/ui/bubble.tsx
apps/presentation-layer/src/shared/components/ui/button-group.tsx
apps/presentation-layer/src/shared/components/ui/button.tsx
apps/presentation-layer/src/shared/components/ui/calendar.tsx
apps/presentation-layer/src/shared/components/ui/card.tsx
apps/presentation-layer/src/shared/components/ui/carousel.tsx
apps/presentation-layer/src/shared/components/ui/chart.tsx
apps/presentation-layer/src/shared/components/ui/checkbox.tsx
apps/presentation-layer/src/shared/components/ui/collapsible.tsx
apps/presentation-layer/src/shared/components/ui/combobox.tsx
apps/presentation-layer/src/shared/components/ui/command.tsx
apps/presentation-layer/src/shared/components/ui/context-menu.tsx
apps/presentation-layer/src/shared/components/ui/dialog.tsx
apps/presentation-layer/src/shared/components/ui/direction.tsx
apps/presentation-layer/src/shared/components/ui/drawer.tsx
apps/presentation-layer/src/shared/components/ui/dropdown-menu.tsx
apps/presentation-layer/src/shared/components/ui/empty.tsx
apps/presentation-layer/src/shared/components/ui/field.tsx
apps/presentation-layer/src/shared/components/ui/hover-card.tsx
apps/presentation-layer/src/shared/components/ui/input-group.tsx
apps/presentation-layer/src/shared/components/ui/input-otp.tsx
apps/presentation-layer/src/shared/components/ui/input.tsx
apps/presentation-layer/src/shared/components/ui/item.tsx
apps/presentation-layer/src/shared/components/ui/kbd.tsx
apps/presentation-layer/src/shared/components/ui/label.tsx
apps/presentation-layer/src/shared/components/ui/marker.tsx
apps/presentation-layer/src/shared/components/ui/menubar.tsx
apps/presentation-layer/src/shared/components/ui/message-scroller.tsx
apps/presentation-layer/src/shared/components/ui/message.tsx
apps/presentation-layer/src/shared/components/ui/native-select.tsx
apps/presentation-layer/src/shared/components/ui/navigation-menu.tsx
apps/presentation-layer/src/shared/components/ui/pagination.tsx
apps/presentation-layer/src/shared/components/ui/popover.tsx
apps/presentation-layer/src/shared/components/ui/progress.tsx
apps/presentation-layer/src/shared/components/ui/questionnaire.tsx
apps/presentation-layer/src/shared/components/ui/radio-group.tsx
apps/presentation-layer/src/shared/components/ui/resizable.tsx
apps/presentation-layer/src/shared/components/ui/scroll-area.tsx
apps/presentation-layer/src/shared/components/ui/select.tsx
apps/presentation-layer/src/shared/components/ui/separator.tsx
apps/presentation-layer/src/shared/components/ui/sheet.tsx
apps/presentation-layer/src/shared/components/ui/sidebar.tsx
apps/presentation-layer/src/shared/components/ui/skeleton.tsx
apps/presentation-layer/src/shared/components/ui/slider.tsx
apps/presentation-layer/src/shared/components/ui/sonner.tsx
apps/presentation-layer/src/shared/components/ui/spinner.tsx
apps/presentation-layer/src/shared/components/ui/switch.tsx
apps/presentation-layer/src/shared/components/ui/table.tsx
apps/presentation-layer/src/shared/components/ui/tabs.tsx
apps/presentation-layer/src/shared/components/ui/textarea.tsx
apps/presentation-layer/src/shared/components/ui/toggle-group.tsx
apps/presentation-layer/src/shared/components/ui/toggle.tsx
apps/presentation-layer/src/shared/components/ui/tooltip.tsx
apps/presentation-layer/src/shared/config/demo-actors.ts
apps/presentation-layer/src/shared/db/index.ts
apps/presentation-layer/src/shared/db/migrations/20260923080214_pretty_nick_fury.sql
apps/presentation-layer/src/shared/db/migrations/20260923104322_task_match_workspace.sql
apps/presentation-layer/src/shared/db/migrations/20260923112428_onboarding_business_logo.sql
apps/presentation-layer/src/shared/db/migrations/20260923113557_task_match_integration.sql
apps/presentation-layer/src/shared/db/migrations/meta/20260923080214_snapshot.json
apps/presentation-layer/src/shared/db/migrations/meta/20260923104322_snapshot.json
apps/presentation-layer/src/shared/db/migrations/meta/20260923112428_snapshot.json
apps/presentation-layer/src/shared/db/migrations/meta/20260923113557_snapshot.json
apps/presentation-layer/src/shared/db/migrations/meta/_journal.json
apps/presentation-layer/src/shared/db/schema.ts
apps/presentation-layer/src/shared/db/seed.ts
apps/presentation-layer/src/shared/db/seed/task-match-seed.ts
apps/presentation-layer/src/shared/hooks/use-async-action.ts
apps/presentation-layer/src/shared/hooks/use-mobile.ts
apps/presentation-layer/src/shared/hooks/use-speech-input.ts
apps/presentation-layer/src/shared/lib/demo-actor.server.ts
apps/presentation-layer/src/shared/lib/demo-actor.test.ts
apps/presentation-layer/src/shared/lib/demo-actor.ts
apps/presentation-layer/src/shared/lib/keyboard-shortcuts.ts
apps/presentation-layer/src/shared/lib/request-error.ts
apps/presentation-layer/src/shared/lib/speech-recognition.test.ts
apps/presentation-layer/src/shared/lib/speech-recognition.ts
apps/presentation-layer/src/shared/lib/utils.ts
apps/presentation-layer/tests/legacy/README.md
apps/presentation-layer/tests/legacy/adr009-prototype.ts.disabled
apps/presentation-layer/tsconfig.json
apps/workers/.env.example
apps/workers/.gitignore
apps/workers/Dockerfile
apps/workers/package.json
apps/workers/src/index.ts
apps/workers/tsconfig.json
bun.lock
docker-compose.dev.yml
docker-compose.prod.yml
docs/ARCHITECTURE.md
docs/DEPLOYMENT.md
docs/TASK_MATCH_MVP_SPEC.md
docs/TASK_MATCH_PLATFORM.md
docs/adr/001-dependency-security-fixes.md
docs/adr/002-module-boundaries-sync-bff.md
docs/adr/002-stack1-result-control-pipeline.md
docs/adr/002-workspace-icons.md
docs/adr/003-ai-layer-contract.md
docs/adr/003-task-readiness-evaluator.md
docs/adr/004-grill-state-and-field-lifecycle.md
docs/adr/005-deterministic-scoring-and-history.md
docs/adr/006-recommendations-and-catalog.md
docs/adr/007-proposals-match-stages-points.md
docs/adr/008-demo-roles-and-access.md
docs/adr/009-bff-api-contract.md
docs/adr/010-acceptance-verification.md
docs/adr/011-interactive-task-manager-assistant.md
docs/adr/2026-09-23-pr12-task-match-integration.md
docs/adr/2026-09-23-pr15-task-match-integration.md
docs/adr/2026-09-23-task-match-integration.md
docs/adr/2026-09-23-task-match-schema-integration.md
docs/adr/2026-09-23-workspace-persistence.md
docs/adr/README.md
docs/adr/implementation-prompts/001-dependency-security-fixes.md
docs/adr/implementation-prompts/002-module-boundaries-sync-bff.md
docs/adr/implementation-prompts/003-ai-layer-contract.md
docs/adr/implementation-prompts/004-grill-state-and-field-lifecycle.md
docs/adr/implementation-prompts/005-deterministic-scoring-and-history.md
docs/adr/implementation-prompts/006-recommendations-and-catalog.md
docs/adr/implementation-prompts/007-proposals-match-stages-points.md
docs/adr/implementation-prompts/008-demo-roles-and-access.md
docs/adr/implementation-prompts/009-bff-api-contract.md
docs/adr/implementation-prompts/010-acceptance-verification.md
docs/adr/implementation-prompts/README.md
docs/adr/notes/009-implementation.md
docs/adr/template.md
doctor.sh
install-skills.sh
memory-bank.md
memory-bank/activeContext.md
memory-bank/productContext.md
memory-bank/progress.md
memory-bank/projectbrief.md
memory-bank/systemPatterns.md
memory-bank/techContext.md
package.json
packages/eslint-config/README.md
packages/eslint-config/base.js
packages/eslint-config/next.js
packages/eslint-config/package.json
packages/eslint-config/react-internal.js
packages/typescript-config/base.json
packages/typescript-config/nextjs.json
packages/typescript-config/package.json
packages/typescript-config/react-library.json
patches/@ai-sdk%[email protected]
scripts/dev.sh
scripts/hackathon-guide.md
scripts/prod.sh
scripts/setup-polymath.mjs
scripts/stack-versions.json
scripts/start.mjs
setup-polymath.sh
setup-skills.sh
skills-lock.json
start.sh
tests/dependency-security.test.mjs
turbo.json
Ветки (21)

Обсуждение 0 комментариев

Войдите, чтобы комментировать

Пока нет комментариев — будьте первым.