Skip to content

AI - meeting supervisor - #325

Open
AbhiramUdhayakumar18 wants to merge 2 commits into
nitrocloudofficial:mainfrom
AbhiramUdhayakumar18:main
Open

AI - meeting supervisor#325
AbhiramUdhayakumar18 wants to merge 2 commits into
nitrocloudofficial:mainfrom
AbhiramUdhayakumar18:main

Conversation

@AbhiramUdhayakumar18

Copy link
Copy Markdown

Description

Type of Change

  • feat: New feature
  • fix: Bug fix
  • docs: Documentation update
  • refactor: Internal code change
  • test: Test-only changes
  • chore: Build, CI, or tooling changes

Related Issues

Changes Made

Testing

  • npm run lint
  • npm test
  • Manual testing performed (if applicable)

Screenshots / Recordings

Checklist

  • I have read and followed CONTRIBUTING.md
  • I have added/updated tests where appropriate
  • I have updated docs where appropriate
  • I have kept this PR focused and scoped
  • I have used conventional commits

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new Meeting Supervisor sample app implemented as a NitroStack-based MCP server, with modules/tools for meetings, tasks, calendar OAuth, a “brain” vector-store stub, and agent workflow stubs, plus widget dashboards and Supabase schema + docs.

Changes:

  • Introduces NitroStack MCP server bootstrapping (AppModule, index.ts) and feature modules (meetings/tasks/calendar/brain/agents).
  • Adds widget dashboards (manifest + HTML/React widget UIs) and shared tool-data types.
  • Adds Supabase schema, environment template, package scripts, and a node:test suite for core services/tools.

Reviewed changes

Copilot reviewed 31 out of 34 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
sample-apps/aiMeetingSuperVisor/tsconfig.json TypeScript compiler config for the server build.
sample-apps/aiMeetingSuperVisor/src/widgets/widget-manifest.json Declares widget URIs and tool bindings for dashboards.
sample-apps/aiMeetingSuperVisor/src/widgets/types/tool-data.ts Defines widget-facing tool output types (meetings/tasks).
sample-apps/aiMeetingSuperVisor/src/widgets/out/task-board.html Static HTML widget renderer for task board tool output.
sample-apps/aiMeetingSuperVisor/src/widgets/out/meeting-dashboard.html Static HTML widget renderer for meeting list tool output.
sample-apps/aiMeetingSuperVisor/src/widgets/app/task-board/page.tsx React widget page for task board rendering via postMessage.
sample-apps/aiMeetingSuperVisor/src/widgets/app/meeting-dashboard/page.tsx React widget page for meeting dashboard rendering via postMessage.
sample-apps/aiMeetingSuperVisor/src/tests/project.test.ts Node test coverage for meetings/tasks services/tools and calendar auth URL.
sample-apps/aiMeetingSuperVisor/src/services/database.service.ts Injectable Supabase wrapper for DB access.
sample-apps/aiMeetingSuperVisor/src/modules/tasks/tasks.tools.ts MCP tools for listing/creating/deciding/completing tasks + widget binding.
sample-apps/aiMeetingSuperVisor/src/modules/tasks/tasks.service.ts Task persistence/business logic over Supabase.
sample-apps/aiMeetingSuperVisor/src/modules/tasks/tasks.module.ts NitroStack module wiring for tasks.
sample-apps/aiMeetingSuperVisor/src/modules/meetings/meetings.tools.ts MCP tools for meeting lifecycle + widget binding.
sample-apps/aiMeetingSuperVisor/src/modules/meetings/meetings.service.ts Meeting persistence/business logic over Supabase.
sample-apps/aiMeetingSuperVisor/src/modules/meetings/meetings.module.ts NitroStack module wiring for meetings.
sample-apps/aiMeetingSuperVisor/src/modules/calendar/calendar.tools.ts MCP tools for calendar auth + sync entrypoints.
sample-apps/aiMeetingSuperVisor/src/modules/calendar/calendar.service.ts Google OAuth2 helper + sync stub.
sample-apps/aiMeetingSuperVisor/src/modules/calendar/calendar.module.ts NitroStack module wiring for calendar.
sample-apps/aiMeetingSuperVisor/src/modules/brain/brain.tools.ts MCP tools to query meeting history + external context.
sample-apps/aiMeetingSuperVisor/src/modules/brain/brain.service.ts Vector-store + web-search stubs for “Brain”.
sample-apps/aiMeetingSuperVisor/src/modules/brain/brain.module.ts NitroStack module wiring for brain.
sample-apps/aiMeetingSuperVisor/src/modules/agents/agents.tools.ts MCP tools for analyze meeting/task + suggestions/review entrypoints.
sample-apps/aiMeetingSuperVisor/src/modules/agents/agents.service.ts Agent orchestration shapes (LLM calls stubbed).
sample-apps/aiMeetingSuperVisor/src/modules/agents/agents.module.ts NitroStack module wiring for agents.
sample-apps/aiMeetingSuperVisor/src/index.ts Server bootstrap via McpApplicationFactory.
sample-apps/aiMeetingSuperVisor/src/guards/jwt.guard.ts JWT auth guard for protected tools.
sample-apps/aiMeetingSuperVisor/src/app.module.ts Root NitroStack app module and MCP server metadata.
sample-apps/aiMeetingSuperVisor/README.md Project documentation, architecture, and run instructions.
sample-apps/aiMeetingSuperVisor/plan.md Prototype plan/roadmap and requirements narrative.
sample-apps/aiMeetingSuperVisor/package.json App package metadata, deps, and NitroStack scripts.
sample-apps/aiMeetingSuperVisor/database/schema.sql Supabase schema for users/meetings/tasks/participants.
sample-apps/aiMeetingSuperVisor/.gitignore Ignores build output, env, logs.
sample-apps/aiMeetingSuperVisor/.env.example Environment variable template for Supabase/Google/models/search/vector DB.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +44 to +48
if (input.participant_ids?.length) {
await this.db
.table('meeting_participants')
.insert(input.participant_ids.map((user_id) => ({ meeting_id: data.id, user_id })));
}
Comment on lines +16 to +18
},
"include": ["src/**/*.ts"],
"exclude": ["node_modules", "dist", "src/widgets"]
'use client';

import { useEffect, useState } from 'react';
import { ListMeetingsOutput, Meeting } from '../../types/tool-data.js';
'use client';

import { useEffect, useState } from 'react';
import { ListTasksOutput, Task } from '../../types/tool-data.js';
Comment on lines +12 to +18
private oauth2Client() {
return new google.auth.OAuth2(
process.env.GOOGLE_CLIENT_ID,
process.env.GOOGLE_CLIENT_SECRET,
process.env.GOOGLE_REDIRECT_URI
);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants