@writepanda/mcp 1.90.0 → 1.92.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 +35 -6
  2. package/package.json +1 -1
package/bin/server.mjs CHANGED
@@ -165,7 +165,7 @@ const TOOLS = [
165
165
  {
166
166
  name: "system_get_transcription_language",
167
167
  description:
168
- "Read the active transcription engine selection for the current workspace. Returns { language } where language is one of: 'auto' (Parakeet TDT v3, default — auto-detects English + 25 European languages including Russian/Ukrainian), 'chinese' / 'japanese' / 'korean' / 'hindi' / 'arabic' / 'thai' (each routes to Whisper Large-v3-turbo). Use this when surfacing the active engine to the user or before recommending a switch.",
168
+ "Read the active transcription engine selection for the current workspace. Returns { language } where language is one of: 'auto' (Parakeet TDT v3, default — auto-detects English + 25 European languages including Russian/Ukrainian), or a Whisper Large-v3-turbo language: 'chinese' / 'japanese' / 'korean' / 'hindi' / 'arabic' / 'thai' / 'tamil' / 'telugu' / 'kannada' / 'malayalam' / 'bengali' / 'marathi' / 'gujarati' / 'punjabi'. Use this when surfacing the active engine to the user or before recommending a switch.",
169
169
  inputSchema: { type: "object", properties: {} },
170
170
  command: "system.getTranscriptionLanguage",
171
171
  },
@@ -178,7 +178,23 @@ const TOOLS = [
178
178
  properties: {
179
179
  language: {
180
180
  type: "string",
181
- enum: ["auto", "chinese", "japanese", "korean", "hindi", "arabic", "thai"],
181
+ enum: [
182
+ "auto",
183
+ "chinese",
184
+ "japanese",
185
+ "korean",
186
+ "hindi",
187
+ "arabic",
188
+ "thai",
189
+ "tamil",
190
+ "telugu",
191
+ "kannada",
192
+ "malayalam",
193
+ "bengali",
194
+ "marathi",
195
+ "gujarati",
196
+ "punjabi",
197
+ ],
182
198
  description: "Target language. 'auto' = Parakeet (default); the others route to Whisper.",
183
199
  },
184
200
  },
@@ -1431,19 +1447,22 @@ const TOOLS = [
1431
1447
  {
1432
1448
  name: "project_save",
1433
1449
  description:
1434
- "Overwrite a project with the full JSON you supply. Use this when you've built or mutated a project object client-side and want to persist it. Always pass `expectedRevision` (the revision you read) — the server will reject the write if a concurrent edit happened between your read and save, returning { ok: false, details: { code: 'revision_conflict' } }.",
1450
+ "Persist a project. Two modes: (1) pass a full `project` JSON to OVERWRITE the file (use after building/mutating a project object client-side) — always pass `expectedRevision` so a concurrent edit returns { ok:false, details:{ code:'revision_conflict' } }; (2) OMIT `project` to simply confirm the current on-disk state. The add_*/set_* verbs already autosave, so a bodyless save is a no-op confirmation that returns the current revision — NOT an error. You usually don't need an explicit save at all.",
1435
1451
  inputSchema: {
1436
1452
  type: "object",
1437
1453
  properties: {
1438
1454
  id: { type: "string" },
1439
1455
  path: { type: "string" },
1440
- project: { type: "object", description: "Full project JSON to persist" },
1456
+ project: {
1457
+ type: "object",
1458
+ description:
1459
+ "Full project JSON to persist (overwrite mode). Omit to just confirm current on-disk state — edits via add_*/set_* verbs already autosave.",
1460
+ },
1441
1461
  expectedRevision: {
1442
1462
  type: "number",
1443
- description: "Revision from your last project_read. Strongly recommended.",
1463
+ description: "Revision from your last project_read. Strongly recommended in overwrite mode.",
1444
1464
  },
1445
1465
  },
1446
- required: ["project"],
1447
1466
  },
1448
1467
  command: "project.save",
1449
1468
  },
@@ -1816,6 +1835,16 @@ const TOOLS = [
1816
1835
  description: "Fallback duration when neither endMs nor maxDurationMs is given.",
1817
1836
  },
1818
1837
  volume: { type: "number", description: "Volume multiplier 0–2. Default 0.8." },
1838
+ fadeIn: {
1839
+ type: "number",
1840
+ description:
1841
+ "Fade-in ramp at the overlay's audible start, in ms (e.g. 1000 = 1s). Applied by the export mixer. Omit for a hard start.",
1842
+ },
1843
+ fadeOut: {
1844
+ type: "number",
1845
+ description:
1846
+ "Fade-out ramp ending at the overlay's audible end, in ms. Applied for bounded overlays (endMs/maxDurationMs set); ignored on uncapped full-length overlays. Useful for seam-crossfading a looped music bed. Omit for a hard stop.",
1847
+ },
1819
1848
  maxDurationMs: {
1820
1849
  type: "number",
1821
1850
  description:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@writepanda/mcp",
3
- "version": "1.90.0",
3
+ "version": "1.92.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",