@writepanda/mcp 1.55.0 → 1.56.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/bin/server.mjs +25 -5
  2. package/package.json +1 -1
package/bin/server.mjs CHANGED
@@ -1193,7 +1193,7 @@ const TOOLS = [
1193
1193
  {
1194
1194
  name: "project_set_webcam_layout",
1195
1195
  description:
1196
- "Set the webcam layout preset and optional position/scale for the current project. Use 'none' to hide the webcam overlay entirely.",
1196
+ "Set the webcam layout preset and optional position/scale for the current project. Use 'none' to hide the webcam overlay entirely. Use 'podcast' for a two-speaker composite (host + guest as co-equal tiles).",
1197
1197
  inputSchema: {
1198
1198
  type: "object",
1199
1199
  properties: {
@@ -1202,7 +1202,7 @@ const TOOLS = [
1202
1202
  preset: {
1203
1203
  type: "string",
1204
1204
  description:
1205
- "picture-in-picture | vertical-stack | side-by-side | none. 'none' hides the webcam.",
1205
+ "picture-in-picture | vertical-stack | side-by-side | podcast | none. 'podcast' shows two co-equal speaker tiles; 'none' hides the webcam.",
1206
1206
  },
1207
1207
  cx: {
1208
1208
  type: "number",
@@ -1443,20 +1443,40 @@ const TOOLS = [
1443
1443
  {
1444
1444
  name: "project_set_clip_kind",
1445
1445
  description:
1446
- "Stamp a clip's capture origin authoritatively: kind = camera | screen | upload. project.read returns each clip's kind (your visual-strategy signal: camera → designed segments + emphasis zooms; screen → cursor zooms). On pre-v1.28 projects kind wasn't recorded, so project.read INFERS it (flagged kindInferred:true) — and inference can be wrong. Use this to correct/lock it. `camera` = talking-head; `screen` = screen recording (maybe with webcam PiP); `upload` = imported file.",
1446
+ "Stamp a clip's capture origin authoritatively: kind = camera | screen | upload | podcast. project.read returns each clip's kind (your visual-strategy signal: camera → designed segments + emphasis zooms; screen → cursor zooms). On pre-v1.28 projects kind wasn't recorded, so project.read INFERS it (flagged kindInferred:true) — and inference can be wrong. Use this to correct/lock it. `camera` = talking-head; `screen` = screen recording (maybe with webcam PiP); `upload` = imported file; `podcast` = two-speaker composite (host=mediaPath, guest=webcamPath).",
1447
1447
  inputSchema: {
1448
1448
  type: "object",
1449
1449
  properties: {
1450
1450
  id: { type: "string" },
1451
1451
  path: { type: "string" },
1452
1452
  clipId: { type: "string", description: "Clip id from project_read mainTrack.clips[n].id" },
1453
- kind: { type: "string", enum: ["camera", "screen", "upload"] },
1453
+ kind: { type: "string", enum: ["camera", "screen", "upload", "podcast"] },
1454
1454
  expectedRevision: { type: "number" },
1455
1455
  },
1456
1456
  required: ["clipId", "kind"],
1457
1457
  },
1458
1458
  command: "project.set-clip-kind",
1459
1459
  },
1460
+ {
1461
+ name: "project_set_webcam_offset",
1462
+ description:
1463
+ "Fine-tune a podcast composite's guest/host sync. offsetMs shifts the guest (webcamPath) relative to the host: positive delays the guest, negative advances it, 0 clears it (±10000). Honored in preview + export — the guest VIDEO and AUDIO shift together. Use when the two speakers look or sound slightly out of sync.",
1464
+ inputSchema: {
1465
+ type: "object",
1466
+ properties: {
1467
+ id: { type: "string" },
1468
+ path: { type: "string" },
1469
+ clipId: { type: "string", description: "Clip id of the podcast composite" },
1470
+ offsetMs: {
1471
+ type: "number",
1472
+ description: "Guest time nudge in ms (±10000). Positive delays guest; 0 clears.",
1473
+ },
1474
+ expectedRevision: { type: "number" },
1475
+ },
1476
+ required: ["clipId", "offsetMs"],
1477
+ },
1478
+ command: "project.set-webcam-offset",
1479
+ },
1460
1480
 
1461
1481
  // ── transcript-based editing ────────────────────────────────────
1462
1482
  {
@@ -2230,7 +2250,7 @@ const TOOLS = [
2230
2250
  const server = new Server(
2231
2251
  {
2232
2252
  name: "pandastudio",
2233
- version: "1.55.0",
2253
+ version: "1.56.0",
2234
2254
  },
2235
2255
  {
2236
2256
  capabilities: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@writepanda/mcp",
3
- "version": "1.55.0",
3
+ "version": "1.56.0",
4
4
  "description": "Model Context Protocol server for PandaStudio. Exposes the desktop video editor's automation surface to Cursor, Continue, Cline, Claude Desktop, and any MCP-compliant client.",
5
5
  "keywords": [
6
6
  "pandastudio",