gogcli-mcp-docs 4.3.0 → 4.5.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.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/dist/index.js +66 -41
- package/manifest.json +1 -1
- package/package.json +2 -2
- package/server.json +2 -2
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
},
|
|
8
8
|
"metadata": {
|
|
9
9
|
"description": "Extended Google Docs for Claude via gogcli — auth + full Docs and comments support",
|
|
10
|
-
"version": "4.
|
|
10
|
+
"version": "4.5.0"
|
|
11
11
|
},
|
|
12
12
|
"plugins": [
|
|
13
13
|
{
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"displayName": "gogcli (Docs)",
|
|
16
16
|
"source": "./",
|
|
17
17
|
"description": "Extended Google Docs for Claude via gogcli — auth + full Docs and comments support",
|
|
18
|
-
"version": "4.
|
|
18
|
+
"version": "4.5.0",
|
|
19
19
|
"author": {
|
|
20
20
|
"name": "Chris Hall"
|
|
21
21
|
},
|
package/dist/index.js
CHANGED
|
@@ -34468,6 +34468,67 @@ function errorResult(message) {
|
|
|
34468
34468
|
};
|
|
34469
34469
|
}
|
|
34470
34470
|
|
|
34471
|
+
// ../../node_modules/@chrischall/mcp-utils/dist/server/confirm-token.js
|
|
34472
|
+
function createSpentTokenStore() {
|
|
34473
|
+
const spent2 = /* @__PURE__ */ new Map();
|
|
34474
|
+
return {
|
|
34475
|
+
has: (nonce) => spent2.has(nonce),
|
|
34476
|
+
add: (nonce, exp) => {
|
|
34477
|
+
spent2.set(nonce, exp);
|
|
34478
|
+
},
|
|
34479
|
+
prune: (now) => {
|
|
34480
|
+
for (const [nonce, exp] of spent2)
|
|
34481
|
+
if (exp < now)
|
|
34482
|
+
spent2.delete(nonce);
|
|
34483
|
+
},
|
|
34484
|
+
clear: () => spent2.clear(),
|
|
34485
|
+
get size() {
|
|
34486
|
+
return spent2.size;
|
|
34487
|
+
}
|
|
34488
|
+
};
|
|
34489
|
+
}
|
|
34490
|
+
var PROCESS_SPENT = createSpentTokenStore();
|
|
34491
|
+
var confirmTokenParam = external_exports.string().optional().describe(`ONLY for the two-step confirmation fallback (a client without MCP elicitation). The confirmToken from this same tool's phase-1 "confirmation-required" response, passed back ONLY after the user has seen that preview and explicitly approved it in chat \u2014 never on the first call, never invented, never reused. Call again with the same arguments. Ignored when the client supports elicitation.`);
|
|
34492
|
+
|
|
34493
|
+
// ../../node_modules/@chrischall/mcp-utils/dist/config/index.js
|
|
34494
|
+
import { homedir } from "node:os";
|
|
34495
|
+
import { isAbsolute, join, resolve } from "node:path";
|
|
34496
|
+
var PLACEHOLDER_RE = /^\$\{[^}]*\}$/;
|
|
34497
|
+
function readEnvVar(key, opts = {}) {
|
|
34498
|
+
const env = opts.env ?? process.env;
|
|
34499
|
+
const raw = env[key];
|
|
34500
|
+
if (typeof raw === "string") {
|
|
34501
|
+
const trimmed = raw.trim();
|
|
34502
|
+
if (trimmed.length > 0 && trimmed !== "undefined" && trimmed !== "null" && !PLACEHOLDER_RE.test(trimmed)) {
|
|
34503
|
+
return trimmed;
|
|
34504
|
+
}
|
|
34505
|
+
}
|
|
34506
|
+
return opts.default;
|
|
34507
|
+
}
|
|
34508
|
+
var TRUE_TOKENS = /* @__PURE__ */ new Set(["1", "true", "yes", "on"]);
|
|
34509
|
+
var FALSE_TOKENS = /* @__PURE__ */ new Set(["0", "false", "no", "off"]);
|
|
34510
|
+
function parseBoolEnv(key, opts = {}) {
|
|
34511
|
+
const fallback = opts.default ?? false;
|
|
34512
|
+
const raw = readEnvVar(key, { env: opts.env });
|
|
34513
|
+
if (raw === void 0)
|
|
34514
|
+
return fallback;
|
|
34515
|
+
const token = raw.toLowerCase();
|
|
34516
|
+
if (TRUE_TOKENS.has(token))
|
|
34517
|
+
return true;
|
|
34518
|
+
if (FALSE_TOKENS.has(token))
|
|
34519
|
+
return false;
|
|
34520
|
+
return fallback;
|
|
34521
|
+
}
|
|
34522
|
+
function expandPath(p) {
|
|
34523
|
+
let expanded = p;
|
|
34524
|
+
if (p === "~") {
|
|
34525
|
+
expanded = homedir();
|
|
34526
|
+
} else if (p.startsWith("~/")) {
|
|
34527
|
+
expanded = join(homedir(), p.slice(2));
|
|
34528
|
+
}
|
|
34529
|
+
return isAbsolute(expanded) ? expanded : resolve(expanded);
|
|
34530
|
+
}
|
|
34531
|
+
|
|
34471
34532
|
// ../../node_modules/@chrischall/mcp-utils/dist/server/index.js
|
|
34472
34533
|
var SERVER_PROTOCOL_VERSIONS = Object.freeze([
|
|
34473
34534
|
"2026-07-28",
|
|
@@ -34643,45 +34704,6 @@ function runMcp(opts) {
|
|
|
34643
34704
|
return handle;
|
|
34644
34705
|
}
|
|
34645
34706
|
|
|
34646
|
-
// ../../node_modules/@chrischall/mcp-utils/dist/config/index.js
|
|
34647
|
-
import { homedir } from "node:os";
|
|
34648
|
-
import { isAbsolute, join, resolve } from "node:path";
|
|
34649
|
-
var PLACEHOLDER_RE = /^\$\{[^}]*\}$/;
|
|
34650
|
-
function readEnvVar(key, opts = {}) {
|
|
34651
|
-
const env = opts.env ?? process.env;
|
|
34652
|
-
const raw = env[key];
|
|
34653
|
-
if (typeof raw === "string") {
|
|
34654
|
-
const trimmed = raw.trim();
|
|
34655
|
-
if (trimmed.length > 0 && trimmed !== "undefined" && trimmed !== "null" && !PLACEHOLDER_RE.test(trimmed)) {
|
|
34656
|
-
return trimmed;
|
|
34657
|
-
}
|
|
34658
|
-
}
|
|
34659
|
-
return opts.default;
|
|
34660
|
-
}
|
|
34661
|
-
var TRUE_TOKENS = /* @__PURE__ */ new Set(["1", "true", "yes", "on"]);
|
|
34662
|
-
var FALSE_TOKENS = /* @__PURE__ */ new Set(["0", "false", "no", "off"]);
|
|
34663
|
-
function parseBoolEnv(key, opts = {}) {
|
|
34664
|
-
const fallback = opts.default ?? false;
|
|
34665
|
-
const raw = readEnvVar(key, { env: opts.env });
|
|
34666
|
-
if (raw === void 0)
|
|
34667
|
-
return fallback;
|
|
34668
|
-
const token = raw.toLowerCase();
|
|
34669
|
-
if (TRUE_TOKENS.has(token))
|
|
34670
|
-
return true;
|
|
34671
|
-
if (FALSE_TOKENS.has(token))
|
|
34672
|
-
return false;
|
|
34673
|
-
return fallback;
|
|
34674
|
-
}
|
|
34675
|
-
function expandPath(p) {
|
|
34676
|
-
let expanded = p;
|
|
34677
|
-
if (p === "~") {
|
|
34678
|
-
expanded = homedir();
|
|
34679
|
-
} else if (p.startsWith("~/")) {
|
|
34680
|
-
expanded = join(homedir(), p.slice(2));
|
|
34681
|
-
}
|
|
34682
|
-
return isAbsolute(expanded) ? expanded : resolve(expanded);
|
|
34683
|
-
}
|
|
34684
|
-
|
|
34685
34707
|
// ../../node_modules/@chrischall/mcp-utils/dist/fs/confine.js
|
|
34686
34708
|
import { existsSync, realpathSync } from "node:fs";
|
|
34687
34709
|
import { dirname, isAbsolute as isAbsolute2, relative, resolve as resolve2, sep } from "node:path";
|
|
@@ -35563,6 +35585,9 @@ function formatAuthHealth(raw, now) {
|
|
|
35563
35585
|
return accounts.map((a) => formatOneAccountHealth(a, now)).join("\n\n");
|
|
35564
35586
|
}
|
|
35565
35587
|
|
|
35588
|
+
// ../gogcli-mcp/src/send-confirm-token.ts
|
|
35589
|
+
var spent = createSpentTokenStore();
|
|
35590
|
+
|
|
35566
35591
|
// ../gogcli-mcp/src/tools/auth.ts
|
|
35567
35592
|
var AUTH_RUN_SUBCOMMANDS = ["list", "status", "services", "remove", "alias"];
|
|
35568
35593
|
function registerAuthToolsWith(server, defaultServices) {
|
|
@@ -35848,7 +35873,7 @@ var replySchema = {
|
|
|
35848
35873
|
signatureFile: external_exports.string().optional().describe("Append a local signature file (plain text or HTML), read on the gog server"),
|
|
35849
35874
|
account: accountParam
|
|
35850
35875
|
};
|
|
35851
|
-
var sendReplySchema = external_exports.object(replySchema);
|
|
35876
|
+
var sendReplySchema = external_exports.object({ ...replySchema, confirmToken: confirmTokenParam });
|
|
35852
35877
|
|
|
35853
35878
|
// ../gogcli-mcp/src/tools/sheets.ts
|
|
35854
35879
|
var cellValueParam = external_exports.union([external_exports.string(), external_exports.number(), external_exports.boolean(), external_exports.null()]);
|
|
@@ -35860,7 +35885,7 @@ var failIfNotEmptyParam = external_exports.boolean().optional().describe(
|
|
|
35860
35885
|
);
|
|
35861
35886
|
|
|
35862
35887
|
// ../gogcli-mcp/src/server.ts
|
|
35863
|
-
var VERSION = true ? "4.
|
|
35888
|
+
var VERSION = true ? "4.5.0" : "0.0.0";
|
|
35864
35889
|
|
|
35865
35890
|
// ../gogcli-mcp/src/bootstrap-auth.ts
|
|
35866
35891
|
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-docs",
|
|
5
5
|
"display_name": "gogcli (Docs)",
|
|
6
|
-
"version": "4.
|
|
6
|
+
"version": "4.5.0",
|
|
7
7
|
"description": "Extended Google Docs for Claude via gogcli — auth + full Docs and comments support",
|
|
8
8
|
"author": {
|
|
9
9
|
"name": "Chris Hall",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gogcli-mcp-docs",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.5.0",
|
|
4
4
|
"mcpName": "io.github.chrischall/gogcli-mcp-docs",
|
|
5
5
|
"description": "Extended Google Docs MCP server via gogcli — all base tools plus full Docs support",
|
|
6
6
|
"author": "Claude Code (AI) <https://www.anthropic.com/claude>",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"test:coverage": "vitest run --coverage"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@chrischall/mcp-utils": "^2.
|
|
27
|
+
"@chrischall/mcp-utils": "^2.6.0",
|
|
28
28
|
"@modelcontextprotocol/server": "^2.0.0",
|
|
29
29
|
"zod": "^4.6.1"
|
|
30
30
|
},
|
package/server.json
CHANGED
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
"source": "github",
|
|
8
8
|
"subfolder": "packages/gogcli-mcp-docs"
|
|
9
9
|
},
|
|
10
|
-
"version": "4.
|
|
10
|
+
"version": "4.5.0",
|
|
11
11
|
"packages": [
|
|
12
12
|
{
|
|
13
13
|
"registryType": "npm",
|
|
14
14
|
"identifier": "gogcli-mcp-docs",
|
|
15
|
-
"version": "4.
|
|
15
|
+
"version": "4.5.0",
|
|
16
16
|
"transport": {
|
|
17
17
|
"type": "stdio"
|
|
18
18
|
},
|