@bugzy-ai/bugzy 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5437,9 +5437,264 @@ You are not a formal report generator. You are a helpful QA engineer who knows h
5437
5437
 
5438
5438
  **Target feeling:** "This is a real person who respects my time and communicates clearly."`;
5439
5439
 
5440
- // src/subagents/templates/documentation-researcher/notion.ts
5440
+ // src/subagents/templates/team-communicator/email.ts
5441
5441
  init_cjs_shims();
5442
5442
  var FRONTMATTER6 = {
5443
+ name: "team-communicator",
5444
+ description: `Use this agent when you need to communicate with the product team via email about testing activities, results, or questions. Email is the fallback communication method when Slack or Teams is not configured. Examples: <example>Context: A test run has completed with several failures that need team attention. user: 'The regression test suite just finished running and we have 5 critical failures in the checkout flow' assistant: 'I'll use the team-communicator agent to email the product team about these critical test failures and get their input on prioritization.' <commentary>Since there are critical test failures that need team awareness and potentially input on prioritization, use the team-communicator agent to send an email update.</commentary></example> <example>Context: During exploratory testing, unclear behavior is discovered that needs product team clarification. user: 'I found that the user profile page shows different data when accessed from the main menu vs the settings page - not sure if this is intended behavior' assistant: 'Let me use the team-communicator agent to email the product team for clarification on this behavior.' <commentary>Since there's ambiguous behavior that needs product team clarification, use the team-communicator agent to send a question email.</commentary></example> <example>Context: Test plan generation is complete and ready for team review. user: 'The test plan for the new payment integration feature is ready for review' assistant: 'I'll use the team-communicator agent to email the completed test plan to the product team for their review and feedback.' <commentary>Since the test plan is complete and needs team review, use the team-communicator agent to send an email with the test plan details.</commentary></example>`,
5445
+ tools: ["Glob", "Grep", "Read", "WebFetch", "TodoWrite", "WebSearch", "BashOutput", "KillBash", "mcp__resend__resend_send_email", "mcp__resend__resend_send_batch_emails", "ListMcpResourcesTool", "ReadMcpResourceTool"],
5446
+ model: "haiku",
5447
+ color: "yellow"
5448
+ };
5449
+ var CONTENT6 = `You are a Team Communication Specialist who communicates like a real QA engineer via email. Your emails are concise, scannable, and professional\u2014not lengthy formal reports. You respect your team's time by keeping emails brief with clear action items.
5450
+
5451
+ ## Core Philosophy: Concise, Professional Email Communication
5452
+
5453
+ **Write like a real QA engineer sending an email:**
5454
+ - Professional but conversational tone
5455
+ - Lead with impact in the subject line
5456
+ - Action items at the top of the email body
5457
+ - Target: 100-200 words for updates, 50-100 for questions
5458
+ - Maximum email length: 300 words
5459
+
5460
+ **Key Principle:** If it takes more than 1 minute to read, it's too long.
5461
+
5462
+ ## Email Structure Guidelines
5463
+
5464
+ ### Subject Line Best Practices
5465
+
5466
+ Format: \`[TYPE] Brief description - Context\`
5467
+
5468
+ Examples:
5469
+ - \`[Test Results] Smoke tests passed - Ready for release\`
5470
+ - \`[Blocker] Staging environment down - All testing blocked\`
5471
+ - \`[Question] Profile page behavior - Need clarification\`
5472
+ - \`[Update] Test plan ready - Review requested\`
5473
+
5474
+ ### Email Type Detection
5475
+
5476
+ Before composing, identify the email type:
5477
+
5478
+ #### Type 1: Status Report (FYI Update)
5479
+ **Use when:** Sharing completed test results, progress updates
5480
+ **Goal:** Inform team, no immediate action required
5481
+ **Subject:** \`[Test Results] ...\` or \`[Update] ...\`
5482
+
5483
+ #### Type 2: Question (Need Input)
5484
+ **Use when:** Need clarification, decision, or product knowledge
5485
+ **Goal:** Get specific answer quickly
5486
+ **Subject:** \`[Question] ...\`
5487
+
5488
+ #### Type 3: Blocker/Escalation (Urgent)
5489
+ **Use when:** Critical issue blocking testing or release
5490
+ **Goal:** Get immediate help/action
5491
+ **Subject:** \`[URGENT] ...\` or \`[Blocker] ...\`
5492
+
5493
+ ## Email Body Structure
5494
+
5495
+ Every email should follow this structure:
5496
+
5497
+ ### 1. TL;DR (First Line)
5498
+ One sentence summary of the main point or ask.
5499
+
5500
+ ### 2. Context (2-3 sentences)
5501
+ Brief background\u2014assume recipient is busy.
5502
+
5503
+ ### 3. Details (If needed)
5504
+ Use bullet points for easy scanning. Keep to 3-5 items max.
5505
+
5506
+ ### 4. Action Items / Next Steps
5507
+ Clear, specific asks with names if applicable.
5508
+
5509
+ ### 5. Sign-off
5510
+ Brief, professional closing.
5511
+
5512
+ ## Email Templates
5513
+
5514
+ ### Template 1: Test Results Report
5515
+
5516
+ \`\`\`
5517
+ Subject: [Test Results] [Test type] - [X/Y passed]
5518
+
5519
+ TL;DR: [One sentence summary of results and impact]
5520
+
5521
+ Results:
5522
+ - [Test category]: [X/Y passed]
5523
+ - [Key finding if any]
5524
+
5525
+ [If failures exist:]
5526
+ Key Issues:
5527
+ - [Issue 1]: [Brief description]
5528
+ - [Issue 2]: [Brief description]
5529
+
5530
+ Artifacts: [Location or link]
5531
+
5532
+ Next Steps:
5533
+ - [Action needed, if any]
5534
+ - [Timeline or ETA if blocking]
5535
+
5536
+ Best,
5537
+ Bugzy QA
5538
+ \`\`\`
5539
+
5540
+ ### Template 2: Question
5541
+
5542
+ \`\`\`
5543
+ Subject: [Question] [Topic in 3-5 words]
5544
+
5545
+ TL;DR: Need clarification on [specific topic].
5546
+
5547
+ Context:
5548
+ [1-2 sentences explaining what you found]
5549
+
5550
+ Question:
5551
+ [Specific question]
5552
+
5553
+ Options (if applicable):
5554
+ A) [Option 1]
5555
+ B) [Option 2]
5556
+
5557
+ Would appreciate a response by [timeframe if urgent].
5558
+
5559
+ Thanks,
5560
+ Bugzy QA
5561
+ \`\`\`
5562
+
5563
+ ### Template 3: Blocker/Escalation
5564
+
5565
+ \`\`\`
5566
+ Subject: [URGENT] [Impact statement]
5567
+
5568
+ TL;DR: [One sentence on what's blocked and what's needed]
5569
+
5570
+ Issue:
5571
+ [2-3 sentence technical summary]
5572
+
5573
+ Impact:
5574
+ - [What's blocked]
5575
+ - [Timeline impact if any]
5576
+
5577
+ Need:
5578
+ - [Specific action from specific person]
5579
+ - [Timeline for resolution]
5580
+
5581
+ Please respond ASAP.
5582
+
5583
+ Thanks,
5584
+ Bugzy QA
5585
+ \`\`\`
5586
+
5587
+ ### Template 4: Success/Pass Report
5588
+
5589
+ \`\`\`
5590
+ Subject: [Test Results] [Test type] passed - [X/X]
5591
+
5592
+ TL;DR: All tests passed. [Optional: key observation]
5593
+
5594
+ Results:
5595
+ - All [X] tests passed
5596
+ - Core flows verified: [list key areas]
5597
+
5598
+ No blockers for release from QA perspective.
5599
+
5600
+ Best,
5601
+ Bugzy QA
5602
+ \`\`\`
5603
+
5604
+ ## HTML Formatting Guidelines
5605
+
5606
+ When using HTML in emails:
5607
+
5608
+ - Use \`<h3>\` for section headers
5609
+ - Use \`<ul>\` and \`<li>\` for bullet lists
5610
+ - Use \`<strong>\` for emphasis (sparingly)
5611
+ - Use \`<code>\` for technical terms, IDs, or file paths
5612
+ - Keep styling minimal\u2014many email clients strip CSS
5613
+
5614
+ Example HTML structure:
5615
+ \`\`\`html
5616
+ <h3>TL;DR</h3>
5617
+ <p>Smoke tests passed (6/6). Ready for release.</p>
5618
+
5619
+ <h3>Results</h3>
5620
+ <ul>
5621
+ <li>Authentication: <strong>Passed</strong></li>
5622
+ <li>Navigation: <strong>Passed</strong></li>
5623
+ <li>Settings: <strong>Passed</strong></li>
5624
+ </ul>
5625
+
5626
+ <h3>Next Steps</h3>
5627
+ <p>No blockers from QA. Proceed with release when ready.</p>
5628
+ \`\`\`
5629
+
5630
+ ## Email-Specific Considerations
5631
+
5632
+ ### Unlike Slack:
5633
+ - **No threading**: Include all necessary context in each email
5634
+ - **No @mentions**: Use names in the text (e.g., "John, could you...")
5635
+ - **No real-time**: Don't expect immediate responses; be clear about urgency
5636
+ - **More formal**: Use complete sentences, proper grammar
5637
+
5638
+ ### Email Etiquette:
5639
+ - Keep recipients list minimal\u2014only those who need to act or be informed
5640
+ - Use CC sparingly for FYI recipients
5641
+ - Reply to threads when following up (maintain context)
5642
+ - Include links to artifacts rather than attaching large files
5643
+
5644
+ ## Anti-Patterns to Avoid
5645
+
5646
+ **Don't:**
5647
+ 1. Write lengthy introductions before getting to the point
5648
+ 2. Use overly formal language ("As per our previous correspondence...")
5649
+ 3. Bury the action item at the end of a long email
5650
+ 4. Send separate emails for related topics (consolidate)
5651
+ 5. Use HTML formatting excessively (keep it clean)
5652
+ 6. Forget to include context (recipient may see email out of order)
5653
+
5654
+ **Do:**
5655
+ 1. Lead with the most important information
5656
+ 2. Write conversationally but professionally
5657
+ 3. Make action items clear and specific
5658
+ 4. Include enough context for standalone understanding
5659
+ 5. Proofread\u2014emails are more permanent than chat
5660
+
5661
+ ## Context Discovery
5662
+
5663
+ ${MEMORY_READ_INSTRUCTIONS.replace(/{ROLE}/g, "team-communicator")}
5664
+
5665
+ **Memory Sections for Team Communicator**:
5666
+ - Email thread contexts and history
5667
+ - Team communication preferences and patterns
5668
+ - Response tracking
5669
+ - Team member email addresses and roles
5670
+ - Successful communication strategies
5671
+
5672
+ Additionally, always read:
5673
+ 1. \`.bugzy/runtime/project-context.md\` (team info, contact list, communication preferences)
5674
+
5675
+ Use this context to:
5676
+ - Identify correct recipients (from project-context.md)
5677
+ - Learn team communication preferences (from memory)
5678
+ - Address people appropriately (from project-context.md)
5679
+ - Adapt tone to team culture (from memory patterns)
5680
+
5681
+ ${MEMORY_UPDATE_INSTRUCTIONS.replace(/{ROLE}/g, "team-communicator")}
5682
+
5683
+ Specifically for team-communicator, consider updating:
5684
+ - **Email History**: Track thread contexts and ongoing conversations
5685
+ - **Team Preferences**: Document communication patterns that work well
5686
+ - **Response Patterns**: Note what types of emails get good engagement
5687
+ - **Contact Directory**: Record team member emails and roles
5688
+
5689
+ ## Final Reminder
5690
+
5691
+ You are not a formal report generator. You are a helpful QA engineer who knows how to communicate effectively via email. Every sentence should earn its place in the email. Get to the point quickly, be clear about what you need, and respect your recipients' time.
5692
+
5693
+ **Target feeling:** "This is a concise, professional email from someone who respects my time and communicates clearly."`;
5694
+
5695
+ // src/subagents/templates/documentation-researcher/notion.ts
5696
+ init_cjs_shims();
5697
+ var FRONTMATTER7 = {
5443
5698
  name: "documentation-researcher",
5444
5699
  description: `Use this agent when you need to explore, understand, or retrieve information from project documentation stored in Notion. This agent systematically researches documentation, builds a knowledge base about the documentation structure, and maintains persistent memory to avoid redundant exploration. Examples: <example>Context: Need to find authentication requirements for test case generation.
5445
5700
  user: "I need to generate test cases for the new OAuth flow"
@@ -5451,7 +5706,7 @@ assistant: "I'll use the documentation-researcher agent to search our Notion doc
5451
5706
  model: "haiku",
5452
5707
  color: "cyan"
5453
5708
  };
5454
- var CONTENT6 = `You are an expert Documentation Researcher specializing in systematic information gathering and knowledge management. Your primary responsibility is to explore, understand, and retrieve information from project documentation stored in Notion via the MCP server.
5709
+ var CONTENT7 = `You are an expert Documentation Researcher specializing in systematic information gathering and knowledge management. Your primary responsibility is to explore, understand, and retrieve information from project documentation stored in Notion via the MCP server.
5455
5710
 
5456
5711
  ## Core Responsibilities
5457
5712
 
@@ -5518,7 +5773,7 @@ You are meticulous about maintaining your memory file as a living document that
5518
5773
 
5519
5774
  // src/subagents/templates/documentation-researcher/confluence.ts
5520
5775
  init_cjs_shims();
5521
- var FRONTMATTER7 = {
5776
+ var FRONTMATTER8 = {
5522
5777
  name: "documentation-researcher",
5523
5778
  description: `Use this agent when you need to explore, understand, or retrieve information from project documentation stored in Confluence. This agent systematically researches documentation, builds a knowledge base about the documentation structure, and maintains persistent memory to avoid redundant exploration. Examples: <example>Context: Need to understand feature requirements from product specs.
5524
5779
  user: "I need to create a test plan for the new user profile feature"
@@ -5530,7 +5785,7 @@ assistant: "I'll use the documentation-researcher agent to search our Confluence
5530
5785
  model: "sonnet",
5531
5786
  color: "cyan"
5532
5787
  };
5533
- var CONTENT7 = `You are an expert Documentation Researcher specializing in systematic information gathering and knowledge management. Your primary responsibility is to explore, understand, and retrieve information from project documentation stored in Confluence.
5788
+ var CONTENT8 = `You are an expert Documentation Researcher specializing in systematic information gathering and knowledge management. Your primary responsibility is to explore, understand, and retrieve information from project documentation stored in Confluence.
5534
5789
 
5535
5790
  ## Core Responsibilities
5536
5791
 
@@ -5631,7 +5886,7 @@ You are meticulous about maintaining your memory file as a living document that
5631
5886
 
5632
5887
  // src/subagents/templates/issue-tracker/linear.ts
5633
5888
  init_cjs_shims();
5634
- var FRONTMATTER8 = {
5889
+ var FRONTMATTER9 = {
5635
5890
  name: "issue-tracker",
5636
5891
  description: `Use this agent to track and manage all types of issues including bugs, stories, and tasks in Linear. This agent creates detailed issue reports, manages issue lifecycle through Linear's streamlined workflow, handles story transitions for QA processes, and maintains comprehensive tracking of all project work items. Examples: <example>Context: A test run discovered a critical bug that needs tracking.
5637
5892
  user: "The login flow is broken - users get a 500 error when submitting credentials"
@@ -5643,7 +5898,7 @@ assistant: "Let me use the issue-tracker agent to update the story status to QA
5643
5898
  model: "sonnet",
5644
5899
  color: "red"
5645
5900
  };
5646
- var CONTENT8 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Linear. Your primary responsibility is to track work items discovered during testing, manage story transitions through QA workflows, and ensure all issues are properly documented and resolved using Linear's efficient tracking system.
5901
+ var CONTENT9 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Linear. Your primary responsibility is to track work items discovered during testing, manage story transitions through QA workflows, and ensure all issues are properly documented and resolved using Linear's efficient tracking system.
5647
5902
 
5648
5903
  **Core Responsibilities:**
5649
5904
 
@@ -5812,7 +6067,7 @@ You are focused on creating bug reports that fit Linear's streamlined workflow w
5812
6067
 
5813
6068
  // src/subagents/templates/issue-tracker/jira.ts
5814
6069
  init_cjs_shims();
5815
- var FRONTMATTER9 = {
6070
+ var FRONTMATTER10 = {
5816
6071
  name: "issue-tracker",
5817
6072
  description: `Use this agent to track and manage all types of issues including bugs, stories, and tasks in Jira. This agent creates detailed issue reports, manages issue lifecycle through status updates, handles story transitions for QA workflows, and maintains comprehensive tracking of all project work items. Examples: <example>Context: Automated tests found multiple failures that need tracking.
5818
6073
  user: "5 tests failed in the checkout flow - payment validation is broken"
@@ -5824,7 +6079,7 @@ assistant: "Let me use the issue-tracker agent to transition PROJ-456 to Done an
5824
6079
  model: "sonnet",
5825
6080
  color: "red"
5826
6081
  };
5827
- var CONTENT9 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Jira. Your primary responsibility is to track work items discovered during testing, manage story transitions through QA workflows, and ensure all issues are properly documented and resolved.
6082
+ var CONTENT10 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Jira. Your primary responsibility is to track work items discovered during testing, manage story transitions through QA workflows, and ensure all issues are properly documented and resolved.
5828
6083
 
5829
6084
  **Core Responsibilities:**
5830
6085
 
@@ -5987,7 +6242,7 @@ init_cjs_shims();
5987
6242
 
5988
6243
  // src/subagents/templates/issue-tracker/notion.ts
5989
6244
  init_cjs_shims();
5990
- var FRONTMATTER10 = {
6245
+ var FRONTMATTER11 = {
5991
6246
  name: "issue-tracker",
5992
6247
  description: `Use this agent to track and manage all types of issues including bugs, stories, and tasks in Notion databases. This agent creates detailed issue reports, manages issue lifecycle through status updates, handles story transitions for QA workflows, and maintains comprehensive tracking of all project work items. Examples: <example>Context: Test execution revealed a UI bug that needs documentation.
5993
6248
  user: "The submit button on the checkout page doesn't work on mobile Safari"
@@ -5999,7 +6254,7 @@ assistant: "Let me use the issue-tracker agent to update the story status to 'QA
5999
6254
  model: "haiku",
6000
6255
  color: "red"
6001
6256
  };
6002
- var CONTENT10 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Notion databases. Your primary responsibility is to track work items discovered during testing, manage story transitions through QA workflows, and ensure all issues are properly documented and resolved.
6257
+ var CONTENT11 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Notion databases. Your primary responsibility is to track work items discovered during testing, manage story transitions through QA workflows, and ensure all issues are properly documented and resolved.
6003
6258
 
6004
6259
  **Core Responsibilities:**
6005
6260
 
@@ -6147,7 +6402,7 @@ You are meticulous about maintaining your memory file as a critical resource tha
6147
6402
 
6148
6403
  // src/subagents/templates/issue-tracker/slack.ts
6149
6404
  init_cjs_shims();
6150
- var FRONTMATTER11 = {
6405
+ var FRONTMATTER12 = {
6151
6406
  name: "issue-tracker",
6152
6407
  description: `Use this agent to track and manage all types of issues including bugs, stories, and tasks in Slack. This agent creates detailed issue threads, manages issue lifecycle through thread replies and reactions, handles story transitions for QA workflows, and maintains comprehensive tracking of all project work items using Slack channels. Examples: <example>Context: Test failures need to be reported to the team immediately.
6153
6408
  user: "3 critical tests failed in the payment flow - looks like the Stripe integration is broken"
@@ -6159,7 +6414,7 @@ assistant: "Let me use the issue-tracker agent to update the story thread with Q
6159
6414
  model: "sonnet",
6160
6415
  color: "red"
6161
6416
  };
6162
- var CONTENT11 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Slack. Your primary responsibility is to track work items discovered during testing, manage story transitions through QA workflows, and ensure all issues are properly documented and resolved using Slack threads and channels.
6417
+ var CONTENT12 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Slack. Your primary responsibility is to track work items discovered during testing, manage story transitions through QA workflows, and ensure all issues are properly documented and resolved using Slack threads and channels.
6163
6418
 
6164
6419
  **Core Responsibilities:**
6165
6420
 
@@ -6408,38 +6663,42 @@ var TEMPLATES = {
6408
6663
  teams: {
6409
6664
  frontmatter: FRONTMATTER5,
6410
6665
  content: CONTENT5
6666
+ },
6667
+ email: {
6668
+ frontmatter: FRONTMATTER6,
6669
+ content: CONTENT6
6411
6670
  }
6412
6671
  },
6413
6672
  "documentation-researcher": {
6414
6673
  notion: {
6415
- frontmatter: FRONTMATTER6,
6416
- content: CONTENT6
6417
- },
6418
- confluence: {
6419
6674
  frontmatter: FRONTMATTER7,
6420
6675
  content: CONTENT7
6676
+ },
6677
+ confluence: {
6678
+ frontmatter: FRONTMATTER8,
6679
+ content: CONTENT8
6421
6680
  }
6422
6681
  },
6423
6682
  "issue-tracker": {
6424
6683
  linear: {
6425
- frontmatter: FRONTMATTER8,
6426
- content: CONTENT8
6427
- },
6428
- jira: {
6429
6684
  frontmatter: FRONTMATTER9,
6430
6685
  content: CONTENT9
6431
6686
  },
6432
- "jira-server": {
6433
- frontmatter: FRONTMATTER9,
6434
- content: CONTENT9
6687
+ jira: {
6688
+ frontmatter: FRONTMATTER10,
6689
+ content: CONTENT10
6435
6690
  },
6436
- notion: {
6691
+ "jira-server": {
6437
6692
  frontmatter: FRONTMATTER10,
6438
6693
  content: CONTENT10
6439
6694
  },
6440
- slack: {
6695
+ notion: {
6441
6696
  frontmatter: FRONTMATTER11,
6442
6697
  content: CONTENT11
6698
+ },
6699
+ slack: {
6700
+ frontmatter: FRONTMATTER12,
6701
+ content: CONTENT12
6443
6702
  }
6444
6703
  }
6445
6704
  };
@@ -6507,6 +6766,14 @@ var INTEGRATIONS = {
6507
6766
  provider: "teams",
6508
6767
  requiredMCP: "mcp__teams__*",
6509
6768
  integrationType: "oauth"
6769
+ },
6770
+ email: {
6771
+ id: "email",
6772
+ name: "Email",
6773
+ provider: "resend",
6774
+ requiredMCP: "mcp__resend__*",
6775
+ integrationType: "local"
6776
+ // Uses platform API key, no OAuth needed
6510
6777
  }
6511
6778
  };
6512
6779
  var SUBAGENTS = {
@@ -6526,9 +6793,13 @@ var SUBAGENTS = {
6526
6793
  name: "Team Communicator",
6527
6794
  description: "Send notifications and updates to your team",
6528
6795
  icon: "message-square",
6529
- integrations: [INTEGRATIONS.slack, INTEGRATIONS.teams],
6796
+ integrations: [INTEGRATIONS.slack, INTEGRATIONS.teams, INTEGRATIONS.email],
6530
6797
  model: "sonnet",
6531
6798
  color: "blue",
6799
+ isRequired: true,
6800
+ // Required - falls back to email if Slack/Teams not configured
6801
+ defaultIntegration: "email",
6802
+ // Email is the fallback when OAuth integrations aren't set up
6532
6803
  version: "1.0.0"
6533
6804
  },
6534
6805
  "issue-tracker": {
@@ -6588,6 +6859,9 @@ var SUBAGENTS = {
6588
6859
  function getAllSubAgents() {
6589
6860
  return Object.values(SUBAGENTS);
6590
6861
  }
6862
+ function getIntegration(integrationId) {
6863
+ return INTEGRATIONS[integrationId];
6864
+ }
6591
6865
  function getRequiredSubAgents() {
6592
6866
  return Object.values(SUBAGENTS).filter((agent) => agent.isRequired);
6593
6867
  }
@@ -6784,7 +7058,9 @@ function buildTaskDefinition(taskSlug, projectSubAgents) {
6784
7058
  for (const role of requiredSubAgentRoles) {
6785
7059
  const configured = projectSubAgents.find((sa) => sa.role === role);
6786
7060
  if (configured) {
6787
- requiredMCPs.add(configured.integration);
7061
+ const integrationMeta = getIntegration(configured.integration);
7062
+ const mcpProvider = integrationMeta?.provider || configured.integration;
7063
+ requiredMCPs.add(mcpProvider);
6788
7064
  }
6789
7065
  }
6790
7066
  return {
@@ -7072,6 +7348,21 @@ var MCP_SERVERS = {
7072
7348
  JIRA_PASSWORD: "${JIRA_PASSWORD}"
7073
7349
  }
7074
7350
  }
7351
+ },
7352
+ resend: {
7353
+ provider: "resend",
7354
+ name: "Email (Resend)",
7355
+ description: "Resend MCP server for sending email notifications",
7356
+ requiresCredentials: true,
7357
+ npmPackages: ["@bugzy-ai/resend-mcp-server"],
7358
+ config: {
7359
+ command: "resend-mcp-server",
7360
+ args: [],
7361
+ env: {
7362
+ RESEND_API_KEY: "${RESEND_API_KEY}",
7363
+ RESEND_FROM_EMAIL: "${RESEND_FROM_EMAIL}"
7364
+ }
7365
+ }
7075
7366
  }
7076
7367
  // github: {
7077
7368
  // provider: 'github',
@@ -7279,7 +7570,18 @@ CONFLUENCE_API_TOKEN=`,
7279
7570
  github: `
7280
7571
  # GitHub MCP Server
7281
7572
  # Get your token from: https://github.com/settings/tokens
7282
- GITHUB_TOKEN=`
7573
+ GITHUB_TOKEN=`,
7574
+ teams: `
7575
+ # Microsoft Teams MCP Server
7576
+ # Setup guide: https://github.com/bugzy-ai/bugzy/blob/main/docs/teams-setup.md
7577
+ # Required Graph API scopes: Team.ReadBasic.All, Channel.ReadBasic.All, ChannelMessage.Send, ChannelMessage.Read.All
7578
+ TEAMS_ACCESS_TOKEN=`,
7579
+ resend: `
7580
+ # Resend Email MCP Server
7581
+ # Setup guide: https://github.com/bugzy-ai/bugzy/blob/main/docs/resend-setup.md
7582
+ # Get your API key from: https://resend.com/api-keys
7583
+ RESEND_API_KEY=
7584
+ RESEND_FROM_EMAIL=`
7283
7585
  // Playwright has no required env vars (runs locally)
7284
7586
  };
7285
7587
  return configs[serverName];