terra-mcp-google 0.1.13 → 0.1.14
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/README.md +18 -0
- package/dist/config/constants.d.ts +34 -3
- package/dist/config/constants.js +38 -13
- package/dist/config/constants.js.map +1 -1
- package/dist/core/local-file.js +4 -4
- package/dist/core/local-file.js.map +1 -1
- package/dist/google/auth.js +2 -2
- package/dist/google/auth.js.map +1 -1
- package/dist/setup/setup.js +2 -2
- package/dist/setup/setup.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -20,6 +20,24 @@ terra-mcp client codex # print safe (read-only) MCP config
|
|
|
20
20
|
| `client [codex\|claude\|copilot\|kiro\|all]` | print MCP config with **mutating tools disabled** (`--include-dangerous` keeps them) |
|
|
21
21
|
| *(no command)* | start the stdio server |
|
|
22
22
|
|
|
23
|
+
## Configuration
|
|
24
|
+
|
|
25
|
+
Set these in your MCP client's `env` block (or the launching shell):
|
|
26
|
+
|
|
27
|
+
| Variable | Default | Purpose |
|
|
28
|
+
| --- | --- | --- |
|
|
29
|
+
| `TERRA_MCP_DIR` | `~/.terra-mcp` | Directory holding the OAuth client config + cached token |
|
|
30
|
+
| `GOOGLE_OAUTH_CREDENTIALS` | `<TERRA_MCP_DIR>/client_secret.json` | Google OAuth client JSON; overrides the embedded client |
|
|
31
|
+
| `GOOGLE_OAUTH_TOKEN` | `<TERRA_MCP_DIR>/token.json` | Cached access/refresh token |
|
|
32
|
+
| `TERRA_MCP_SAFE_MODE` | unset | `1` → register **only read-only tools**; drop every mutating tool |
|
|
33
|
+
| `TERRA_MCP_LOCAL_FILE_ROOT` | unset | Only directory `local_path`/`save_path` may touch. Unset = local file up/download disabled |
|
|
34
|
+
| `TERRA_MCP_TOKEN_PROXY_URL` | bundled proxy | OAuth token-exchange proxy (advanced; only when self-hosting it) |
|
|
35
|
+
| `TERRA_MCP_PROXY_KEY` | bundled key | Deterrent key sent to the proxy (ships in the package — not a secret) |
|
|
36
|
+
|
|
37
|
+
**Restricting tools.** Disable the mutating tools server-side with `TERRA_MCP_SAFE_MODE=1`, or
|
|
38
|
+
per-client with `terra-mcp client <agent>` (pass `--include-dangerous` to keep them on). Tools are
|
|
39
|
+
also gated by the **OAuth scopes granted at login** — a Sheets-only grant exposes no `drive_*` tools.
|
|
40
|
+
|
|
23
41
|
## Tools
|
|
24
42
|
|
|
25
43
|
**Auth** — sign-in/out are CLI-only (`terra-mcp auth login`/`logout`).
|
|
@@ -15,12 +15,41 @@ export declare const IDENTITY_SCOPES: string[];
|
|
|
15
15
|
* cached token first).
|
|
16
16
|
*/
|
|
17
17
|
export declare const SCOPES: string[];
|
|
18
|
+
/**
|
|
19
|
+
* Every environment variable this server reads, by name. `constants.ts` is the
|
|
20
|
+
* single place that touches `process.env`; consumers import the resolved values
|
|
21
|
+
* (or the lazy getters) below — never the raw vars. One naming style: `ENV.*`.
|
|
22
|
+
*/
|
|
23
|
+
export declare const ENV: {
|
|
24
|
+
/** Directory holding the OAuth client config + cached token. */
|
|
25
|
+
readonly CONFIG_DIR: "TERRA_MCP_DIR";
|
|
26
|
+
/** Path to a Google OAuth client JSON; overrides the embedded client. */
|
|
27
|
+
readonly OAUTH_CREDENTIALS: "GOOGLE_OAUTH_CREDENTIALS";
|
|
28
|
+
/** Path to the cached OAuth token (access + refresh). */
|
|
29
|
+
readonly OAUTH_TOKEN: "GOOGLE_OAUTH_TOKEN";
|
|
30
|
+
/** OAuth token-exchange proxy endpoint. */
|
|
31
|
+
readonly TOKEN_PROXY_URL: "TERRA_MCP_TOKEN_PROXY_URL";
|
|
32
|
+
/** Shared deterrent key sent to the proxy in `x-proxy-key`. */
|
|
33
|
+
readonly PROXY_KEY: "TERRA_MCP_PROXY_KEY";
|
|
34
|
+
/** "1" → run in safe mode: register only read-only tools. */
|
|
35
|
+
readonly SAFE_MODE: "TERRA_MCP_SAFE_MODE";
|
|
36
|
+
/** The only directory `local_path`/`save_path` may read/write. */
|
|
37
|
+
readonly LOCAL_FILE_ROOT: "TERRA_MCP_LOCAL_FILE_ROOT";
|
|
38
|
+
};
|
|
18
39
|
/** Directory holding the optional OAuth client config and cached token. */
|
|
19
40
|
export declare const CONFIG_DIR: string;
|
|
20
41
|
/** Path to an optional downloaded Google OAuth client JSON. */
|
|
21
42
|
export declare const CLIENT_SECRET_PATH: string;
|
|
22
43
|
/** Path to the cached OAuth token (access + refresh). */
|
|
23
44
|
export declare const TOKEN_PATH: string;
|
|
45
|
+
/**
|
|
46
|
+
* Whether `GOOGLE_OAUTH_CREDENTIALS` was set explicitly (vs. falling back to the
|
|
47
|
+
* default path). Read lazily — tests stub the env at runtime, and "explicit?" is
|
|
48
|
+
* a runtime question, so this is evaluated per call, not frozen at import.
|
|
49
|
+
*/
|
|
50
|
+
export declare const hasExplicitCredentialsPath: () => boolean;
|
|
51
|
+
/** The configured local-file sandbox root, or undefined when disabled. Lazy. */
|
|
52
|
+
export declare const getLocalFileRoot: () => string | undefined;
|
|
24
53
|
/**
|
|
25
54
|
* OAuth token-exchange proxy. Google "Desktop" clients are confidential — the
|
|
26
55
|
* token endpoint requires `client_secret` even with PKCE. To keep the secret out
|
|
@@ -37,7 +66,9 @@ export declare const TOKEN_PROXY_URL: string;
|
|
|
37
66
|
export declare const PROXY_SHARED_KEY: string;
|
|
38
67
|
/** Maximum characters returned in a single tool response before truncation. */
|
|
39
68
|
export declare const CHARACTER_LIMIT = 25000;
|
|
40
|
-
/**
|
|
69
|
+
/**
|
|
70
|
+
* Whether this process runs in safe mode (dangerous tools not registered). The
|
|
71
|
+
* `config` CLI command emits `TERRA_MCP_SAFE_MODE` in the generated MCP config so
|
|
72
|
+
* AI clients can't destroy data.
|
|
73
|
+
*/
|
|
41
74
|
export declare const SAFE_MODE: boolean;
|
|
42
|
-
/** Env var naming the only directory local_path/save_path may read/write. */
|
|
43
|
-
export declare const LOCAL_FILE_ROOT_ENV = "TERRA_MCP_LOCAL_FILE_ROOT";
|
package/dist/config/constants.js
CHANGED
|
@@ -17,12 +17,41 @@ export const IDENTITY_SCOPES = ["https://www.googleapis.com/auth/userinfo.email"
|
|
|
17
17
|
* cached token first).
|
|
18
18
|
*/
|
|
19
19
|
export const SCOPES = [DRIVE_SCOPE, SHEETS_SCOPE, ...IDENTITY_SCOPES];
|
|
20
|
+
/**
|
|
21
|
+
* Every environment variable this server reads, by name. `constants.ts` is the
|
|
22
|
+
* single place that touches `process.env`; consumers import the resolved values
|
|
23
|
+
* (or the lazy getters) below — never the raw vars. One naming style: `ENV.*`.
|
|
24
|
+
*/
|
|
25
|
+
export const ENV = {
|
|
26
|
+
/** Directory holding the OAuth client config + cached token. */
|
|
27
|
+
CONFIG_DIR: "TERRA_MCP_DIR",
|
|
28
|
+
/** Path to a Google OAuth client JSON; overrides the embedded client. */
|
|
29
|
+
OAUTH_CREDENTIALS: "GOOGLE_OAUTH_CREDENTIALS",
|
|
30
|
+
/** Path to the cached OAuth token (access + refresh). */
|
|
31
|
+
OAUTH_TOKEN: "GOOGLE_OAUTH_TOKEN",
|
|
32
|
+
/** OAuth token-exchange proxy endpoint. */
|
|
33
|
+
TOKEN_PROXY_URL: "TERRA_MCP_TOKEN_PROXY_URL",
|
|
34
|
+
/** Shared deterrent key sent to the proxy in `x-proxy-key`. */
|
|
35
|
+
PROXY_KEY: "TERRA_MCP_PROXY_KEY",
|
|
36
|
+
/** "1" → run in safe mode: register only read-only tools. */
|
|
37
|
+
SAFE_MODE: "TERRA_MCP_SAFE_MODE",
|
|
38
|
+
/** The only directory `local_path`/`save_path` may read/write. */
|
|
39
|
+
LOCAL_FILE_ROOT: "TERRA_MCP_LOCAL_FILE_ROOT",
|
|
40
|
+
};
|
|
20
41
|
/** Directory holding the optional OAuth client config and cached token. */
|
|
21
|
-
export const CONFIG_DIR = process.env.
|
|
42
|
+
export const CONFIG_DIR = process.env[ENV.CONFIG_DIR] ?? join(homedir(), ".terra-mcp");
|
|
22
43
|
/** Path to an optional downloaded Google OAuth client JSON. */
|
|
23
|
-
export const CLIENT_SECRET_PATH = process.env.
|
|
44
|
+
export const CLIENT_SECRET_PATH = process.env[ENV.OAUTH_CREDENTIALS] ?? join(CONFIG_DIR, "client_secret.json");
|
|
24
45
|
/** Path to the cached OAuth token (access + refresh). */
|
|
25
|
-
export const TOKEN_PATH = process.env.
|
|
46
|
+
export const TOKEN_PATH = process.env[ENV.OAUTH_TOKEN] ?? join(CONFIG_DIR, "token.json");
|
|
47
|
+
/**
|
|
48
|
+
* Whether `GOOGLE_OAUTH_CREDENTIALS` was set explicitly (vs. falling back to the
|
|
49
|
+
* default path). Read lazily — tests stub the env at runtime, and "explicit?" is
|
|
50
|
+
* a runtime question, so this is evaluated per call, not frozen at import.
|
|
51
|
+
*/
|
|
52
|
+
export const hasExplicitCredentialsPath = () => process.env[ENV.OAUTH_CREDENTIALS] !== undefined;
|
|
53
|
+
/** The configured local-file sandbox root, or undefined when disabled. Lazy. */
|
|
54
|
+
export const getLocalFileRoot = () => process.env[ENV.LOCAL_FILE_ROOT];
|
|
26
55
|
/**
|
|
27
56
|
* OAuth token-exchange proxy. Google "Desktop" clients are confidential — the
|
|
28
57
|
* token endpoint requires `client_secret` even with PKCE. To keep the secret out
|
|
@@ -30,25 +59,21 @@ export const TOKEN_PATH = process.env.GOOGLE_OAUTH_TOKEN ?? join(CONFIG_DIR, "to
|
|
|
30
59
|
* the resulting `code` (and later, refresh tokens) to this Worker, which holds the
|
|
31
60
|
* secret and completes the exchange. See the `quang-mcp-auth-proxy` repo.
|
|
32
61
|
*/
|
|
33
|
-
export const TOKEN_PROXY_URL = process.env.
|
|
62
|
+
export const TOKEN_PROXY_URL = process.env[ENV.TOKEN_PROXY_URL] ??
|
|
34
63
|
"https://quang-mcp-auth-proxy.getting-started-worker.workers.dev/token";
|
|
35
64
|
/**
|
|
36
65
|
* Shared deterrent key sent to the proxy in `x-proxy-key`. This ships in the
|
|
37
66
|
* package, so it is NOT a secret — just a casual-abuse speed bump. The real
|
|
38
67
|
* protection is PKCE (binds each auth code to the CLI that started the flow).
|
|
39
68
|
*/
|
|
40
|
-
export const PROXY_SHARED_KEY = process.env.
|
|
69
|
+
export const PROXY_SHARED_KEY = process.env[ENV.PROXY_KEY] ??
|
|
41
70
|
"f80350f60e2c7950b72f3041c673d1194d45efa38217237ecc7bf87530f093d5";
|
|
42
71
|
/** Maximum characters returned in a single tool response before truncation. */
|
|
43
72
|
export const CHARACTER_LIMIT = 25000;
|
|
44
73
|
/**
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
74
|
+
* Whether this process runs in safe mode (dangerous tools not registered). The
|
|
75
|
+
* `config` CLI command emits `TERRA_MCP_SAFE_MODE` in the generated MCP config so
|
|
76
|
+
* AI clients can't destroy data.
|
|
48
77
|
*/
|
|
49
|
-
const
|
|
50
|
-
/** Whether this process is running with dangerous tools disabled. */
|
|
51
|
-
export const SAFE_MODE = process.env[SAFE_MODE_ENV] === "1";
|
|
52
|
-
/** Env var naming the only directory local_path/save_path may read/write. */
|
|
53
|
-
export const LOCAL_FILE_ROOT_ENV = "TERRA_MCP_LOCAL_FILE_ROOT";
|
|
78
|
+
export const SAFE_MODE = process.env[ENV.SAFE_MODE] === "1";
|
|
54
79
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,+CAA+C;AAC/C,MAAM,CAAC,MAAM,WAAW,GAAG,2BAA2B,CAAC;AACvD,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AAEtC,+DAA+D;AAC/D,MAAM,CAAC,MAAM,WAAW,GAAG,uCAAuC,CAAC;AACnE,iEAAiE;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG,8CAA8C,CAAC;AAE3E,gFAAgF;AAChF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,gDAAgD,EAAE,QAAQ,CAAC,CAAC;AAE5F;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,CAAC;AAEtE,2EAA2E;AAC3E,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,+CAA+C;AAC/C,MAAM,CAAC,MAAM,WAAW,GAAG,2BAA2B,CAAC;AACvD,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AAEtC,+DAA+D;AAC/D,MAAM,CAAC,MAAM,WAAW,GAAG,uCAAuC,CAAC;AACnE,iEAAiE;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG,8CAA8C,CAAC;AAE3E,gFAAgF;AAChF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,gDAAgD,EAAE,QAAQ,CAAC,CAAC;AAE5F;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,CAAC;AAEtE;;;;GAIG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,gEAAgE;IAChE,UAAU,EAAE,eAAe;IAC3B,yEAAyE;IACzE,iBAAiB,EAAE,0BAA0B;IAC7C,yDAAyD;IACzD,WAAW,EAAE,oBAAoB;IACjC,2CAA2C;IAC3C,eAAe,EAAE,2BAA2B;IAC5C,+DAA+D;IAC/D,SAAS,EAAE,qBAAqB;IAChC,6DAA6D;IAC7D,SAAS,EAAE,qBAAqB;IAChC,kEAAkE;IAClE,eAAe,EAAE,2BAA2B;CACpC,CAAC;AAEX,2EAA2E;AAC3E,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AAEvF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,kBAAkB,GAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;AAE/E,yDAAyD;AACzD,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAEzF;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAY,EAAE,CACtD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,SAAS,CAAC;AAEnD,gFAAgF;AAChF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAuB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAE3F;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC;IAChC,uEAAuE,CAAC;AAE1E;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;IAC1B,kEAAkE,CAAC;AAErE,+EAA+E;AAC/E,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AAErC;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC"}
|
package/dist/core/local-file.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { realpath } from "node:fs/promises";
|
|
2
2
|
import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path";
|
|
3
|
-
import {
|
|
4
|
-
const disabledMessage = `Local file access is disabled. Set ${
|
|
3
|
+
import { ENV, getLocalFileRoot } from "../config/constants.js";
|
|
4
|
+
const disabledMessage = `Local file access is disabled. Set ${ENV.LOCAL_FILE_ROOT} to a directory, ` +
|
|
5
5
|
"then keep local_path/save_path inside it.";
|
|
6
6
|
export function isPathInsideRoot(path, root) {
|
|
7
7
|
const rel = relative(root, path);
|
|
8
8
|
return rel === "" || (!!rel && !rel.startsWith("..") && !isAbsolute(rel));
|
|
9
9
|
}
|
|
10
10
|
async function localFileRoot() {
|
|
11
|
-
const root =
|
|
11
|
+
const root = getLocalFileRoot();
|
|
12
12
|
if (!root)
|
|
13
13
|
throw new Error(disabledMessage);
|
|
14
14
|
return realpath(root);
|
|
@@ -18,7 +18,7 @@ function candidatePath(root, path) {
|
|
|
18
18
|
}
|
|
19
19
|
function assertInside(path, root) {
|
|
20
20
|
if (!isPathInsideRoot(path, root)) {
|
|
21
|
-
throw new Error(`Local file path is outside ${
|
|
21
|
+
throw new Error(`Local file path is outside ${ENV.LOCAL_FILE_ROOT}: ${path}`);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
function isNotFound(error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-file.js","sourceRoot":"","sources":["../../src/core/local-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"local-file.js","sourceRoot":"","sources":["../../src/core/local-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnF,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,eAAe,GACnB,sCAAsC,GAAG,CAAC,eAAe,mBAAmB;IAC5E,2CAA2C,CAAC;AAE9C,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,IAAY;IACzD,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjC,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,KAAK,UAAU,aAAa;IAC1B,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;IAChC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IAC5C,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,IAAY;IAC/C,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,IAAY;IAC9C,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,CAAC;AACpG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAY;IAC7C,MAAM,IAAI,GAAG,MAAM,aAAa,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3D,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC7B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY;IAC9C,MAAM,IAAI,GAAG,MAAM,aAAa,EAAE,CAAC;IACnC,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC3C,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC7B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,MAAM,KAAK,CAAC;IACtC,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACtD,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC7B,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/dist/google/auth.js
CHANGED
|
@@ -2,7 +2,7 @@ import { createServer } from "node:http";
|
|
|
2
2
|
import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
|
|
3
3
|
import open from "open";
|
|
4
4
|
import { Auth, google } from "googleapis";
|
|
5
|
-
import { CLIENT_SECRET_PATH, CONFIG_DIR, PROXY_SHARED_KEY, SCOPES, TOKEN_PATH, TOKEN_PROXY_URL, } from "../config/constants.js";
|
|
5
|
+
import { CLIENT_SECRET_PATH, CONFIG_DIR, hasExplicitCredentialsPath, PROXY_SHARED_KEY, SCOPES, TOKEN_PATH, TOKEN_PROXY_URL, } from "../config/constants.js";
|
|
6
6
|
import { NotAuthenticatedError } from "../core/result.js";
|
|
7
7
|
import { EMBEDDED_OAUTH_CLIENT } from "./generated/oauth-client.js";
|
|
8
8
|
const SUCCESS_HTML = (email) => `<!doctype html><html><head><meta charset="utf-8"></head><body style="font-family:system-ui;text-align:center;padding:3rem">
|
|
@@ -12,7 +12,7 @@ const SUCCESS_HTML = (email) => `<!doctype html><html><head><meta charset="utf-8
|
|
|
12
12
|
// ── Token & OAuth client persistence ─────────────────────────────────────────
|
|
13
13
|
/** Read and normalize the OAuth client config (embedded client or local JSON). */
|
|
14
14
|
export async function readClientSecret() {
|
|
15
|
-
const explicitCredentialsPath =
|
|
15
|
+
const explicitCredentialsPath = hasExplicitCredentialsPath();
|
|
16
16
|
if (!explicitCredentialsPath && EMBEDDED_OAUTH_CLIENT) {
|
|
17
17
|
return EMBEDDED_OAUTH_CLIENT;
|
|
18
18
|
}
|
package/dist/google/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/google/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,MAAM,EACN,UAAU,EACV,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AA+BpE,MAAM,YAAY,GAAG,CAAC,KAAc,EAAE,EAAE,CACtC;oBACkB,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;;kBAE7B,CAAC;AAEnB,gFAAgF;AAEhF,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,uBAAuB,GAAG,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/google/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/setup/setup.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { access, mkdir, readFile, stat } from "node:fs/promises";
|
|
2
2
|
import { createInterface } from "node:readline/promises";
|
|
3
3
|
import { stdin as input, stderr as output } from "node:process";
|
|
4
|
-
import { CLIENT_SECRET_PATH, CONFIG_DIR } from "../config/constants.js";
|
|
4
|
+
import { CLIENT_SECRET_PATH, CONFIG_DIR, hasExplicitCredentialsPath } from "../config/constants.js";
|
|
5
5
|
import { getAuthStatus } from "../google/auth.js";
|
|
6
6
|
import { EMBEDDED_OAUTH_CLIENT } from "../google/generated/oauth-client.js";
|
|
7
7
|
import { DANGEROUS_TOOL_NAMES, READ_ONLY_TOOL_NAMES } from "../services/registry.js";
|
|
@@ -145,7 +145,7 @@ async function chooseClient(defaultClient, yes) {
|
|
|
145
145
|
}
|
|
146
146
|
export async function runSetup(options = {}) {
|
|
147
147
|
await mkdir(CONFIG_DIR, { recursive: true });
|
|
148
|
-
const explicitCredentialsPath =
|
|
148
|
+
const explicitCredentialsPath = hasExplicitCredentialsPath();
|
|
149
149
|
console.error(`Config directory: ${CONFIG_DIR}`);
|
|
150
150
|
console.error(`OAuth client config: ${CLIENT_SECRET_PATH}`);
|
|
151
151
|
if (!explicitCredentialsPath && EMBEDDED_OAUTH_CLIENT) {
|
package/dist/setup/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/setup/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/setup/setup.ts"],"names":[],"mappings":"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"}
|