gogcli-mcp-slides 2.19.0 → 2.19.2
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/dist/index.js +71 -2
- package/manifest.json +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
- package/src/index.ts +5 -1
|
@@ -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": "2.19.
|
|
10
|
+
"version": "2.19.2"
|
|
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": "2.19.
|
|
18
|
+
"version": "2.19.2",
|
|
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": "2.19.
|
|
4
|
+
"version": "2.19.2",
|
|
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/dist/index.js
CHANGED
|
@@ -31119,6 +31119,13 @@ function isGogFileArg(arg) {
|
|
|
31119
31119
|
return typeof arg !== "string";
|
|
31120
31120
|
}
|
|
31121
31121
|
var runExecutor = new AsyncLocalStorage();
|
|
31122
|
+
var defaultExecutor;
|
|
31123
|
+
function setDefaultGogExecutor(executor) {
|
|
31124
|
+
defaultExecutor = executor ? { executor } : void 0;
|
|
31125
|
+
}
|
|
31126
|
+
function activeExecutor() {
|
|
31127
|
+
return runExecutor.getStore() ?? defaultExecutor;
|
|
31128
|
+
}
|
|
31122
31129
|
var TIMEOUT_MS = 3e4;
|
|
31123
31130
|
function readonlyEnvEnabled() {
|
|
31124
31131
|
return readEnvVar("GOG_READONLY") !== void 0 && parseBoolEnv("GOG_READONLY", { default: true });
|
|
@@ -31279,7 +31286,7 @@ async function run(args, options = {}) {
|
|
|
31279
31286
|
const { account, spawner, interactive = false, timeout, readonly: readonly2 = false, redactMode = "full" } = options;
|
|
31280
31287
|
const redact = redactMode === "tokens" ? redactGoogleTokens : redactSecrets2;
|
|
31281
31288
|
const fullArgs = assembleArgs(args, { account, interactive, readonly: readonly2 });
|
|
31282
|
-
const store =
|
|
31289
|
+
const store = activeExecutor();
|
|
31283
31290
|
try {
|
|
31284
31291
|
let output;
|
|
31285
31292
|
if (spawner) {
|
|
@@ -31852,7 +31859,68 @@ function registerSlidesTools(server) {
|
|
|
31852
31859
|
}
|
|
31853
31860
|
|
|
31854
31861
|
// ../gogcli-mcp/src/server.ts
|
|
31855
|
-
var VERSION = true ? "2.19.
|
|
31862
|
+
var VERSION = true ? "2.19.2" : "0.0.0";
|
|
31863
|
+
|
|
31864
|
+
// ../gogcli-mcp/src/connector-runtime.ts
|
|
31865
|
+
var DEFAULT_TIMEOUT_MS = 3e4;
|
|
31866
|
+
var DEADLINE_GRACE_MS = 5e3;
|
|
31867
|
+
var RUNNER_GOG_FAILED = 422;
|
|
31868
|
+
var RUNNER_DRAINING = 503;
|
|
31869
|
+
function makeFlyExecutor(endpoint, key) {
|
|
31870
|
+
return async (args, opts) => {
|
|
31871
|
+
const deadlineMs = (opts?.timeout ?? DEFAULT_TIMEOUT_MS) + DEADLINE_GRACE_MS;
|
|
31872
|
+
let res;
|
|
31873
|
+
try {
|
|
31874
|
+
res = await fetch(endpoint + "/run", {
|
|
31875
|
+
method: "POST",
|
|
31876
|
+
headers: {
|
|
31877
|
+
Authorization: "Bearer " + key,
|
|
31878
|
+
"Content-Type": "application/json"
|
|
31879
|
+
},
|
|
31880
|
+
body: JSON.stringify({ args }),
|
|
31881
|
+
signal: AbortSignal.timeout(deadlineMs)
|
|
31882
|
+
});
|
|
31883
|
+
} catch (err) {
|
|
31884
|
+
const name = err instanceof Error ? err.name : "";
|
|
31885
|
+
if (name === "TimeoutError" || name === "AbortError") {
|
|
31886
|
+
throw new Error(
|
|
31887
|
+
`gog-runner did not respond within ${deadlineMs}ms (${endpoint}) \u2014 the Fly backend may be cold or wedged`
|
|
31888
|
+
);
|
|
31889
|
+
}
|
|
31890
|
+
throw err;
|
|
31891
|
+
}
|
|
31892
|
+
if (!res.ok) {
|
|
31893
|
+
const body = await res.json().catch(() => null);
|
|
31894
|
+
const detail = body && typeof body.error === "string" ? body.stderr && body.stderr.trim() && body.stderr.trim() !== body.error.trim() ? `${body.error}
|
|
31895
|
+
${body.stderr}` : body.error : "";
|
|
31896
|
+
if (res.status === RUNNER_GOG_FAILED) {
|
|
31897
|
+
throw new Error(detail || "gog failed on the runner (no detail supplied)");
|
|
31898
|
+
}
|
|
31899
|
+
if (res.status === RUNNER_DRAINING || body?.retryable === true) {
|
|
31900
|
+
throw new Error(
|
|
31901
|
+
`gog-runner is restarting; retry this call.${detail ? ` ${detail}` : ""}`
|
|
31902
|
+
);
|
|
31903
|
+
}
|
|
31904
|
+
if (detail) {
|
|
31905
|
+
throw new Error(detail);
|
|
31906
|
+
}
|
|
31907
|
+
throw new Error(
|
|
31908
|
+
`gog-runner HTTP ${res.status}: the response did not come from the runner, so the request never reached gog. The backend Machine was most likely starting or shutting down \u2014 this is transient, retry the same call.`
|
|
31909
|
+
);
|
|
31910
|
+
}
|
|
31911
|
+
const { stdout } = await res.json();
|
|
31912
|
+
return stdout;
|
|
31913
|
+
};
|
|
31914
|
+
}
|
|
31915
|
+
|
|
31916
|
+
// ../gogcli-mcp/src/remote-runner.ts
|
|
31917
|
+
function useRemoteGogRunner(env = process.env) {
|
|
31918
|
+
const endpoint = readEnvVar("GOG_RUNNER_URL", { env });
|
|
31919
|
+
const key = readEnvVar("GOG_RUNNER_KEY", { env });
|
|
31920
|
+
if (!endpoint || !key) return false;
|
|
31921
|
+
setDefaultGogExecutor(makeFlyExecutor(endpoint.replace(/\/+$/, ""), key));
|
|
31922
|
+
return true;
|
|
31923
|
+
}
|
|
31856
31924
|
|
|
31857
31925
|
// src/tools/slides-extra.ts
|
|
31858
31926
|
function registerExtraSlidesTools(server) {
|
|
@@ -32550,6 +32618,7 @@ function registerExtraSlidesTools(server) {
|
|
|
32550
32618
|
}
|
|
32551
32619
|
|
|
32552
32620
|
// src/index.ts
|
|
32621
|
+
useRemoteGogRunner();
|
|
32553
32622
|
await runMcp({
|
|
32554
32623
|
name: "gogcli-slides",
|
|
32555
32624
|
version: VERSION,
|
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": "2.19.
|
|
6
|
+
"version": "2.19.2",
|
|
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gogcli-mcp-slides",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.2",
|
|
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>",
|
package/server.json
CHANGED
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
"source": "github",
|
|
8
8
|
"subfolder": "packages/gogcli-mcp-slides"
|
|
9
9
|
},
|
|
10
|
-
"version": "2.19.
|
|
10
|
+
"version": "2.19.2",
|
|
11
11
|
"packages": [
|
|
12
12
|
{
|
|
13
13
|
"registryType": "npm",
|
|
14
14
|
"identifier": "gogcli-mcp-slides",
|
|
15
|
-
"version": "2.19.
|
|
15
|
+
"version": "2.19.2",
|
|
16
16
|
"transport": {
|
|
17
17
|
"type": "stdio"
|
|
18
18
|
},
|
package/src/index.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { runMcp } from '@chrischall/mcp-utils';
|
|
3
|
-
import { VERSION, authToolsFor, registerSlidesTools } from '../../gogcli-mcp/src/lib.js';
|
|
3
|
+
import { VERSION, authToolsFor, registerSlidesTools, useRemoteGogRunner } from '../../gogcli-mcp/src/lib.js';
|
|
4
4
|
import { registerExtraSlidesTools } from './tools/slides-extra.js';
|
|
5
5
|
|
|
6
|
+
// Execute `gog` on the Fly backend when the host points us at one; without
|
|
7
|
+
// it, nothing changes and we spawn the local binary as before.
|
|
8
|
+
useRemoteGogRunner();
|
|
9
|
+
|
|
6
10
|
await runMcp({
|
|
7
11
|
name: 'gogcli-slides',
|
|
8
12
|
version: VERSION,
|