gogcli-mcp-slides 4.7.1 → 4.8.1
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.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/.mcp.json +3 -2
- package/dist/index.js +62 -8
- package/manifest.json +1 -1
- package/mint.yaml +1 -1
- package/package.json +3 -3
- package/server.json +2 -2
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
},
|
|
8
8
|
"metadata": {
|
|
9
9
|
"description": "Extended Google Slides for Claude via gogcli — auth + full Slides support (create, edit, export, templates, markdown)",
|
|
10
|
-
"version": "4.
|
|
10
|
+
"version": "4.8.1"
|
|
11
11
|
},
|
|
12
12
|
"plugins": [
|
|
13
13
|
{
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"displayName": "gogcli (Slides)",
|
|
16
16
|
"source": "./",
|
|
17
17
|
"description": "Extended Google Slides for Claude via gogcli — auth + full Slides support (create, edit, export, templates, markdown)",
|
|
18
|
-
"version": "4.
|
|
18
|
+
"version": "4.8.1",
|
|
19
19
|
"author": {
|
|
20
20
|
"name": "Chris Hall"
|
|
21
21
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gogcli-mcp-slides",
|
|
3
3
|
"displayName": "gogcli (Slides)",
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.8.1",
|
|
5
5
|
"description": "Extended Google Slides for Claude via gogcli — auth + full Slides support (create, edit, export, templates, markdown)",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Chris Hall",
|
package/.mcp.json
CHANGED
package/dist/index.js
CHANGED
|
@@ -746,6 +746,7 @@ __export(util_exports, {
|
|
|
746
746
|
required: () => required,
|
|
747
747
|
safeExtend: () => safeExtend,
|
|
748
748
|
shallowClone: () => shallowClone,
|
|
749
|
+
sizeCaps: () => sizeCaps,
|
|
749
750
|
slugify: () => slugify,
|
|
750
751
|
stringifyPrimitive: () => stringifyPrimitive,
|
|
751
752
|
toZod: () => toZod,
|
|
@@ -1265,6 +1266,18 @@ function prefixIssues(path, issues) {
|
|
|
1265
1266
|
function unwrapMessage(message) {
|
|
1266
1267
|
return typeof message === "string" ? message : message?.message;
|
|
1267
1268
|
}
|
|
1269
|
+
function sizeCaps(defChecks) {
|
|
1270
|
+
const caps = [];
|
|
1271
|
+
for (const ch of defChecks ?? []) {
|
|
1272
|
+
const d = ch._zod.def;
|
|
1273
|
+
if (!/_(length|size)$|_equals$/.test(d.check))
|
|
1274
|
+
break;
|
|
1275
|
+
const max = d.maximum ?? d.length ?? d.size;
|
|
1276
|
+
if (max >= 0)
|
|
1277
|
+
caps.push([max, ch]);
|
|
1278
|
+
}
|
|
1279
|
+
return caps;
|
|
1280
|
+
}
|
|
1268
1281
|
function attachSchema(issues, start, inst) {
|
|
1269
1282
|
var _a3;
|
|
1270
1283
|
for (let i = start; i < issues.length; i++) {
|
|
@@ -2685,7 +2698,7 @@ ${content.join("\n")}
|
|
|
2685
2698
|
var version = {
|
|
2686
2699
|
major: 4,
|
|
2687
2700
|
minor: 6,
|
|
2688
|
-
patch:
|
|
2701
|
+
patch: 7
|
|
2689
2702
|
};
|
|
2690
2703
|
|
|
2691
2704
|
// ../../node_modules/zod/v4/core/schemas.js
|
|
@@ -3441,6 +3454,31 @@ var $ZodDate = /* @__PURE__ */ $constructor("$ZodDate", (inst, def) => {
|
|
|
3441
3454
|
return payload;
|
|
3442
3455
|
};
|
|
3443
3456
|
});
|
|
3457
|
+
function capSize(inst, size) {
|
|
3458
|
+
const caps = sizeCaps(inst._zod.def.checks);
|
|
3459
|
+
if (!caps.length)
|
|
3460
|
+
return;
|
|
3461
|
+
const cap = Math.min(...caps.map((c) => c[0]));
|
|
3462
|
+
const parse3 = inst._zod.parse;
|
|
3463
|
+
inst._zod.parse = (payload, ctx) => {
|
|
3464
|
+
const n = size(payload.value);
|
|
3465
|
+
if (n > cap && !ctx?.skipChecks && ctx?.direction !== "backward") {
|
|
3466
|
+
for (const [max, ch] of sizeCaps(inst._zod.def.checks)) {
|
|
3467
|
+
if (n > max && ch._zod.def.when(payload)) {
|
|
3468
|
+
const start = payload.issues.length;
|
|
3469
|
+
ch._zod.check(payload);
|
|
3470
|
+
payload.issues[start].continue = false;
|
|
3471
|
+
attachSchema(payload.issues, start, inst);
|
|
3472
|
+
return payload;
|
|
3473
|
+
}
|
|
3474
|
+
}
|
|
3475
|
+
}
|
|
3476
|
+
return parse3(payload, ctx);
|
|
3477
|
+
};
|
|
3478
|
+
}
|
|
3479
|
+
var arraySize = (input2) => Array.isArray(input2) ? input2.length : -1;
|
|
3480
|
+
var mapSize = (input2) => input2 instanceof Map ? input2.size : -1;
|
|
3481
|
+
var setSize = (input2) => input2 instanceof Set ? input2.size : -1;
|
|
3444
3482
|
function handleArrayResult(result, final, index) {
|
|
3445
3483
|
if (result.issues.length) {
|
|
3446
3484
|
final.issues.push(...prefixIssues(index, result.issues));
|
|
@@ -3484,6 +3522,7 @@ var $ZodArray = /* @__PURE__ */ $constructor("$ZodArray", (inst, def) => {
|
|
|
3484
3522
|
}
|
|
3485
3523
|
return payload;
|
|
3486
3524
|
};
|
|
3525
|
+
capSize(inst, arraySize);
|
|
3487
3526
|
});
|
|
3488
3527
|
function handlePropertyResult(result, final, key, input2, optin, optout) {
|
|
3489
3528
|
const isPresent = key in input2;
|
|
@@ -4440,6 +4479,7 @@ var $ZodMap = /* @__PURE__ */ $constructor("$ZodMap", (inst, def) => {
|
|
|
4440
4479
|
return Promise.all(proms).then(() => payload);
|
|
4441
4480
|
return payload;
|
|
4442
4481
|
};
|
|
4482
|
+
capSize(inst, mapSize);
|
|
4443
4483
|
});
|
|
4444
4484
|
function handleMapResult(keyResult, valueResult, final, key, input2, inst, ctx) {
|
|
4445
4485
|
if (keyResult.issues.length) {
|
|
@@ -4506,6 +4546,7 @@ var $ZodSet = /* @__PURE__ */ $constructor("$ZodSet", (inst, def) => {
|
|
|
4506
4546
|
return Promise.all(proms).then(() => payload);
|
|
4507
4547
|
return payload;
|
|
4508
4548
|
};
|
|
4549
|
+
capSize(inst, setSize);
|
|
4509
4550
|
});
|
|
4510
4551
|
function handleSetResult(result, final) {
|
|
4511
4552
|
if (result.issues.length) {
|
|
@@ -14036,9 +14077,15 @@ function generateNullableCheck(doc, ctx, schema, accessor, buildsValue = true) {
|
|
|
14036
14077
|
doc.write(`}`);
|
|
14037
14078
|
return outputVar;
|
|
14038
14079
|
}
|
|
14080
|
+
function generateSizeGate(doc, schema, size) {
|
|
14081
|
+
for (const [max, check2] of sizeCaps(schema._zod.def.checks)) {
|
|
14082
|
+
doc.write(`if (${size} > ${numericOperand(max, check2._zod.def.check)}) return INVALID;`);
|
|
14083
|
+
}
|
|
14084
|
+
}
|
|
14039
14085
|
function generateArrayCheck(doc, ctx, schema, accessor, buildsValue = true) {
|
|
14040
14086
|
const def = schema._zod.def;
|
|
14041
14087
|
doc.write(`if (!Array.isArray(${accessor})) return INVALID;`);
|
|
14088
|
+
generateSizeGate(doc, schema, `${accessor}.length`);
|
|
14042
14089
|
const outputVar = buildsValue ? newVar(ctx) : null;
|
|
14043
14090
|
const iVar = newVar(ctx);
|
|
14044
14091
|
const elemVar = newVar(ctx);
|
|
@@ -14438,6 +14485,7 @@ function literalPropertyKey(ctx, key) {
|
|
|
14438
14485
|
function generateMapCheck(doc, ctx, schema, accessor) {
|
|
14439
14486
|
const def = schema._zod.def;
|
|
14440
14487
|
doc.write(`if (!(${accessor} instanceof Map)) return INVALID;`);
|
|
14488
|
+
generateSizeGate(doc, schema, `${accessor}.size`);
|
|
14441
14489
|
const outputVar = newVar(ctx);
|
|
14442
14490
|
const kVar = newVar(ctx);
|
|
14443
14491
|
const valVar = newVar(ctx);
|
|
@@ -14454,6 +14502,7 @@ function generateMapCheck(doc, ctx, schema, accessor) {
|
|
|
14454
14502
|
function generateSetCheck(doc, ctx, schema, accessor) {
|
|
14455
14503
|
const def = schema._zod.def;
|
|
14456
14504
|
doc.write(`if (!(${accessor} instanceof Set)) return INVALID;`);
|
|
14505
|
+
generateSizeGate(doc, schema, `${accessor}.size`);
|
|
14457
14506
|
const outputVar = newVar(ctx);
|
|
14458
14507
|
const valVar = newVar(ctx);
|
|
14459
14508
|
doc.write(`const ${outputVar} = new Set();`);
|
|
@@ -19763,7 +19812,7 @@ function date4(params) {
|
|
|
19763
19812
|
return _coercedDate(ZodDate, params);
|
|
19764
19813
|
}
|
|
19765
19814
|
|
|
19766
|
-
// ../../node_modules/@modelcontextprotocol/core/dist/auth-BNDyLTqp.mjs
|
|
19815
|
+
// ../../node_modules/@modelcontextprotocol/server/node_modules/@modelcontextprotocol/core/dist/auth-BNDyLTqp.mjs
|
|
19767
19816
|
var LATEST_PROTOCOL_VERSION = "2025-11-25";
|
|
19768
19817
|
var SUPPORTED_PROTOCOL_VERSIONS = [
|
|
19769
19818
|
LATEST_PROTOCOL_VERSION,
|
|
@@ -34516,7 +34565,7 @@ var API_KEY_RE = new RegExp([
|
|
|
34516
34565
|
// webhook signing secret (Stripe-style)
|
|
34517
34566
|
].map((p) => `\\b${p}`).join("|"), "g");
|
|
34518
34567
|
var GOOGLE_OAUTH_TOKEN_RE = /(?<![A-Za-z0-9+/])(?:ya29\.|1\/\/)[A-Za-z0-9._-]{8,}/g;
|
|
34519
|
-
var QUERY_SECRET_RE = new RegExp(`([
|
|
34568
|
+
var QUERY_SECRET_RE = new RegExp(`([?&#;](?:(?:access|refresh|id|auth|session|csrf|xsrf|api)[_-]?token|client[_-]?secret|api[_-]?secret|api[_-]?key|password|passwd|signature|secret|token|auth|key|sig|(?:code[_-]?)?verifier|(?:php|j)?sess(?:ion)?[_-]?id|sid|x[-_]${HEADER_NAME_RUN}?(?:api[-_]?key|token|secret|auth)${HEADER_NAME_RUN})=)[^&#\\s"'<>\`]+`, "gi");
|
|
34520
34569
|
var OAUTH_CODE_RE = /([?&]code=)(?=[^&#\s"'<>`]{16,})[^&#\s"'<>`]+/gi;
|
|
34521
34570
|
var FORM_PASSWORD_RE = /((?:^|[\s,;:"'(\[{])(?:password|passwd)=)[^&#\s"'<>`]+/gim;
|
|
34522
34571
|
var HEADER_SECRET_RE = new RegExp(`(\\b(?:x[-_]${HEADER_NAME_RUN}?(?:api[-_]?key|token|secret|auth)${HEADER_NAME_RUN}|api[-_]?key)\\s*:\\s*)[^\\s,;"'<>\`]+`, "gi");
|
|
@@ -34527,6 +34576,8 @@ var JSON_SECRET_KEYS = [
|
|
|
34527
34576
|
"api[_-]?secret",
|
|
34528
34577
|
"(?:x[_-])?api[_-]?key",
|
|
34529
34578
|
"private[_-]?key",
|
|
34579
|
+
"aws[_-]?secret[_-]?access[_-]?key",
|
|
34580
|
+
// fleet-audit#1297
|
|
34530
34581
|
"code[_-]?verifier",
|
|
34531
34582
|
// PKCE; a bare `verifier` key is too generic for JSON
|
|
34532
34583
|
`x[_-]${HEADER_NAME_RUN}?(?:api[_-]?key|token|secret|auth)${HEADER_NAME_RUN}`,
|
|
@@ -35515,7 +35566,7 @@ var PATH_FLAGS = /* @__PURE__ */ new Set(["out", "output", "out-dir", "output-di
|
|
|
35515
35566
|
var ID_FLAGS = {
|
|
35516
35567
|
drive: /* @__PURE__ */ new Set(["file", "filter-file"])
|
|
35517
35568
|
};
|
|
35518
|
-
var EXEC_FLAGS = /* @__PURE__ */ new Set(["on-change", "on-new", "mmdc"]);
|
|
35569
|
+
var EXEC_FLAGS = /* @__PURE__ */ new Set(["on-change", "on-new", "mmdc", "deploy"]);
|
|
35519
35570
|
var SHORT_PATH_CLUSTER = /^-(?!-)[A-Za-z]*[of]/;
|
|
35520
35571
|
var LONG_FLAG = /^--([A-Za-z0-9][A-Za-z0-9-]*)(?:=([\s\S]*))?$/;
|
|
35521
35572
|
function isPathFlag(service, name) {
|
|
@@ -35967,6 +36018,11 @@ var attachInlineParam = external_exports.array(inlineAttachmentSchema).optional(
|
|
|
35967
36018
|
);
|
|
35968
36019
|
|
|
35969
36020
|
// ../gogcli-mcp/src/tools/gmail.ts
|
|
36021
|
+
var signatureSchema = {
|
|
36022
|
+
signature: external_exports.boolean().optional().describe("Append the Gmail signature from the active send-as address"),
|
|
36023
|
+
signatureFrom: external_exports.string().optional().describe("Append the Gmail signature from this send-as email address"),
|
|
36024
|
+
signatureFile: external_exports.string().optional().describe("Append a local signature file (plain text or HTML), read on the gog server. Must be inside GOG_FILE_ROOTS. Cannot be combined with signature/signatureFrom.")
|
|
36025
|
+
};
|
|
35970
36026
|
var replySchema = {
|
|
35971
36027
|
messageId: external_exports.string().describe("Gmail message ID to reply to \u2014 the short hex `id` from gog_gmail_get / _search (or gog_gmail_messages_search, gogcli-mcp-gmail only). NOT the threadId, NOT the RFC822 `<\u2026@host>` Message-Id header."),
|
|
35972
36028
|
body: external_exports.string().optional().describe("Reply body (plain text; required unless bodyHtml or bodyHtmlFile is set). Any size \u2014 a large body is written to a temp file on the gog server rather than inlined into the command line. Note gog strips trailing newlines from a file-delivered body."),
|
|
@@ -35982,9 +36038,7 @@ var replySchema = {
|
|
|
35982
36038
|
attachInline: attachInlineParam,
|
|
35983
36039
|
from: external_exports.string().optional().describe("Send from this email address (must be a verified send-as alias)"),
|
|
35984
36040
|
autoFromAddressedAlias: external_exports.boolean().optional().describe("When from is omitted, send from the verified send-as alias the original message was addressed TO, instead of the account's primary address \u2014 so a reply to mail sent to an alias goes back out from that alias. Ignored when from is set."),
|
|
35985
|
-
|
|
35986
|
-
signatureFrom: external_exports.string().optional().describe("Append the Gmail signature from this send-as email address"),
|
|
35987
|
-
signatureFile: external_exports.string().optional().describe("Append a local signature file (plain text or HTML), read on the gog server"),
|
|
36041
|
+
...signatureSchema,
|
|
35988
36042
|
account: accountParam
|
|
35989
36043
|
};
|
|
35990
36044
|
var sendReplySchema = external_exports.object({ ...replySchema, confirmToken: confirmTokenParam });
|
|
@@ -36086,7 +36140,7 @@ function registerSlidesTools(server) {
|
|
|
36086
36140
|
}
|
|
36087
36141
|
|
|
36088
36142
|
// ../gogcli-mcp/src/server.ts
|
|
36089
|
-
var VERSION = true ? "4.
|
|
36143
|
+
var VERSION = true ? "4.8.1" : "0.0.0";
|
|
36090
36144
|
|
|
36091
36145
|
// ../gogcli-mcp/src/bootstrap-auth.ts
|
|
36092
36146
|
import { join as join5 } from "node:path";
|
package/manifest.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"manifest_version": "0.3",
|
|
4
4
|
"name": "gogcli-mcp-slides",
|
|
5
5
|
"display_name": "gogcli (Slides)",
|
|
6
|
-
"version": "4.
|
|
6
|
+
"version": "4.8.1",
|
|
7
7
|
"description": "Extended Google Slides for Claude via gogcli — auth + full Slides support (create, edit, export, templates, markdown)",
|
|
8
8
|
"author": {
|
|
9
9
|
"name": "Chris Hall",
|
package/mint.yaml
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gogcli-mcp-slides",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.8.1",
|
|
4
4
|
"mcpName": "io.github.chrischall/gogcli-mcp-slides",
|
|
5
5
|
"description": "Extended Google Slides MCP server via gogcli — auth + full Slides support",
|
|
6
6
|
"author": "Claude Code (AI) <https://www.anthropic.com/claude>",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"test:coverage": "vitest run --coverage"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@chrischall/mcp-utils": "^3.0.
|
|
28
|
-
"@modelcontextprotocol/server": "^2.3.
|
|
27
|
+
"@chrischall/mcp-utils": "^3.0.3",
|
|
28
|
+
"@modelcontextprotocol/server": "^2.3.1",
|
|
29
29
|
"zod": "^4.6.1"
|
|
30
30
|
},
|
|
31
31
|
"license": "MIT",
|
package/server.json
CHANGED
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
"source": "github",
|
|
8
8
|
"subfolder": "packages/gogcli-mcp-slides"
|
|
9
9
|
},
|
|
10
|
-
"version": "4.
|
|
10
|
+
"version": "4.8.1",
|
|
11
11
|
"packages": [
|
|
12
12
|
{
|
|
13
13
|
"registryType": "npm",
|
|
14
14
|
"identifier": "gogcli-mcp-slides",
|
|
15
|
-
"version": "4.
|
|
15
|
+
"version": "4.8.1",
|
|
16
16
|
"transport": {
|
|
17
17
|
"type": "stdio"
|
|
18
18
|
},
|