@ourroadmaps/mcp 0.24.1 → 0.25.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.
Files changed (2) hide show
  1. package/dist/index.js +98 -10
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -516,14 +516,92 @@ var updateScenarioSchema = z11.object({
516
516
  var scenarioListSchema = z11.array(scenarioSchema);
517
517
  // ../../packages/shared/src/schemas/slide.ts
518
518
  import { z as z12 } from "zod";
519
+ var SLIDE_TYPES = [
520
+ "title",
521
+ "section_header",
522
+ "bullets",
523
+ "two_column",
524
+ "comparison",
525
+ "timeline",
526
+ "image",
527
+ "quote",
528
+ "code",
529
+ "thank_you"
530
+ ];
531
+ var slideTypeSchema = z12.enum(SLIDE_TYPES);
532
+ var titleContentSchema = z12.object({
533
+ title: z12.string(),
534
+ subtitle: z12.string().optional()
535
+ });
536
+ var sectionHeaderContentSchema = z12.object({
537
+ title: z12.string(),
538
+ subtitle: z12.string().optional()
539
+ });
540
+ var bulletsContentSchema = z12.object({
541
+ title: z12.string().optional(),
542
+ items: z12.array(z12.string()).default([])
543
+ });
544
+ var twoColumnContentSchema = z12.object({
545
+ title: z12.string().optional(),
546
+ left: z12.string().default(""),
547
+ right: z12.string().default("")
548
+ });
549
+ var comparisonContentSchema = z12.object({
550
+ leftLabel: z12.string().default(""),
551
+ leftContent: z12.string().default(""),
552
+ rightLabel: z12.string().default(""),
553
+ rightContent: z12.string().default("")
554
+ });
555
+ var timelineStepSchema = z12.object({
556
+ title: z12.string(),
557
+ description: z12.string().optional()
558
+ });
559
+ var timelineContentSchema = z12.object({
560
+ title: z12.string().optional(),
561
+ steps: z12.array(timelineStepSchema).default([])
562
+ });
563
+ var imageContentSchema = z12.object({
564
+ title: z12.string().optional(),
565
+ imageUrl: z12.string().optional(),
566
+ caption: z12.string().optional()
567
+ });
568
+ var quoteContentSchema = z12.object({
569
+ quote: z12.string().default(""),
570
+ attribution: z12.string().optional()
571
+ });
572
+ var codeContentSchema = z12.object({
573
+ title: z12.string().optional(),
574
+ code: z12.string().default(""),
575
+ language: z12.string().optional(),
576
+ highlightLines: z12.array(z12.number()).optional()
577
+ });
578
+ var thankYouContentSchema = z12.object({
579
+ title: z12.string().default("Thank You"),
580
+ subtitle: z12.string().optional(),
581
+ ctaText: z12.string().optional(),
582
+ ctaUrl: z12.string().optional()
583
+ });
584
+ var typedSlideContentSchema = z12.discriminatedUnion("type", [
585
+ z12.object({ type: z12.literal("title"), ...titleContentSchema.shape }),
586
+ z12.object({ type: z12.literal("section_header"), ...sectionHeaderContentSchema.shape }),
587
+ z12.object({ type: z12.literal("bullets"), ...bulletsContentSchema.shape }),
588
+ z12.object({ type: z12.literal("two_column"), ...twoColumnContentSchema.shape }),
589
+ z12.object({ type: z12.literal("comparison"), ...comparisonContentSchema.shape }),
590
+ z12.object({ type: z12.literal("timeline"), ...timelineContentSchema.shape }),
591
+ z12.object({ type: z12.literal("image"), ...imageContentSchema.shape }),
592
+ z12.object({ type: z12.literal("quote"), ...quoteContentSchema.shape }),
593
+ z12.object({ type: z12.literal("code"), ...codeContentSchema.shape }),
594
+ z12.object({ type: z12.literal("thank_you"), ...thankYouContentSchema.shape })
595
+ ]);
519
596
  var slideContentSchema = z12.object({
520
597
  body: z12.string().optional()
521
598
  });
522
599
  var slideSchema = z12.object({
523
600
  id: z12.string().uuid(),
524
601
  variantId: z12.string().uuid(),
602
+ slideType: slideTypeSchema,
525
603
  title: z12.string(),
526
- content: slideContentSchema.nullable(),
604
+ content: z12.unknown().nullable(),
527
605
  speakerNotes: z12.string().nullable(),
528
606
  order: z12.number().int(),
529
607
  createdAt: z12.string(),
@@ -531,13 +609,12 @@ var slideSchema = z12.object({
531
609
  updatedAt: z12.string().nullable()
532
610
  });
533
611
  var createSlideSchema = z12.object({
534
- title: z12.string().optional(),
535
- content: slideContentSchema.nullable().optional(),
612
+ slideType: slideTypeSchema,
613
+ content: z12.unknown().optional(),
536
614
  speakerNotes: z12.string().nullable().optional()
537
615
  });
538
616
  var updateSlideSchema = z12.object({
539
- title: z12.string().optional(),
540
- content: slideContentSchema.nullable().optional(),
617
+ content: z12.unknown().optional(),
541
618
  speakerNotes: z12.string().nullable().optional()
542
619
  });
543
620
  var slideListSchema = z12.array(slideSchema);
@@ -4222,16 +4299,27 @@ function registerGetSlide(server) {
4222
4299
  }
4223
4300
  function registerCreateSlide(server) {
4224
4301
  server.registerTool("create_slide", {
4225
- description: "Create a new slide in a variant.",
4302
+ description: "Create a new slide in a variant. Slide types: title (title + subtitle), section_header (title + subtitle), bullets (title + items array), two_column (title + left/right text), comparison (leftLabel + leftContent + rightLabel + rightContent), timeline (title + steps array of {title, description}), image (title + imageUrl + caption), quote (quote + attribution), code (title + code + language), thank_you (title + subtitle).",
4226
4303
  inputSchema: {
4227
4304
  variantId: z15.string().describe("The UUID of the variant"),
4228
- title: z15.string().optional().describe("Title of the slide"),
4229
- content: z15.object({ body: z15.string().optional() }).nullable().optional().describe("Slide content with markdown body"),
4305
+ slideType: z15.enum([
4306
+ "title",
4307
+ "section_header",
4308
+ "bullets",
4309
+ "two_column",
4310
+ "comparison",
4311
+ "timeline",
4312
+ "image",
4313
+ "quote",
4314
+ "code",
4315
+ "thank_you"
4316
+ ]).default("bullets").describe("The type of slide to create"),
4317
+ content: z15.record(z15.unknown()).optional().describe('Type-specific content object. For bullets: {title, items: ["..."]}. For title: {title, subtitle}. For two_column: {title, left, right}. For quote: {quote, attribution}. Etc.'),
4230
4318
  speakerNotes: z15.string().nullable().optional().describe("Speaker notes for the slide")
4231
4319
  }
4232
4320
  }, async ({
4233
4321
  variantId,
4234
- title,
4322
+ slideType,
4235
4323
  content,
4236
4324
  speakerNotes
4237
4325
  }) => {
@@ -4248,7 +4336,7 @@ function registerCreateSlide(server) {
4248
4336
  };
4249
4337
  }
4250
4338
  const slide2 = await client2.createSlide(presentationId, variantId, {
4251
- title,
4339
+ slideType: slideType || "bullets",
4252
4340
  content,
4253
4341
  speakerNotes
4254
4342
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ourroadmaps/mcp",
3
- "version": "0.24.1",
3
+ "version": "0.25.0",
4
4
  "description": "MCP server for OurRoadmaps - manage roadmaps, features, and ideas from Claude Code",
5
5
  "type": "module",
6
6
  "bin": {