gws-axi 0.10.0 → 0.10.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.
@@ -6,8 +6,17 @@ export declare const SERVICE_SCOPES: {
6
6
  readonly drive: "https://www.googleapis.com/auth/drive";
7
7
  readonly slides: "https://www.googleapis.com/auth/presentations";
8
8
  };
9
- export declare const ADDITIONAL_SCOPES: readonly ["https://www.googleapis.com/auth/gmail.settings.basic", "https://www.googleapis.com/auth/drive.activity.readonly"];
10
9
  export type ServiceName = keyof typeof SERVICE_SCOPES;
10
+ export interface AdditionalScope {
11
+ /** The full OAuth scope URL. */
12
+ scope: string;
13
+ /** Parent service — groups the doctor check and the `--check runtime.<service>` filter. */
14
+ service: ServiceName;
15
+ /** Human label for the capability this scope unlocks. */
16
+ capability: string;
17
+ }
18
+ export declare const ADDITIONAL_SCOPE_INFO: AdditionalScope[];
19
+ export declare const ADDITIONAL_SCOPES: string[];
11
20
  export declare const SERVICES: ServiceName[];
12
21
  export declare const REQUIRED_APIS: Record<ServiceName, string>;
13
22
  export declare const ADDITIONAL_APIS: readonly ["driveactivity.googleapis.com"];
@@ -6,19 +6,21 @@ export const SERVICE_SCOPES = {
6
6
  drive: "https://www.googleapis.com/auth/drive",
7
7
  slides: "https://www.googleapis.com/auth/presentations",
8
8
  };
9
- // Scopes layered on top of the representative per-service scope above.
10
- // gmail.settings.basic is required for Gmail filter management
11
- // (users.settings.filters.*); it is NOT covered by gmail.modify. Kept
12
- // separate so the per-service probe/health checks keep keying off the
13
- // single representative scope in SERVICE_SCOPES.
14
- export const ADDITIONAL_SCOPES = [
15
- "https://www.googleapis.com/auth/gmail.settings.basic",
16
- // drive.activity.readonly powers `drive activity`; it is read-only and NOT
17
- // implied by auth/drive, so it must be requested explicitly. Incremental on
18
- // the already-restricted drive scope, so it doesn't worsen the consent
19
- // posture. Pre-existing accounts must re-auth once to gain it.
20
- "https://www.googleapis.com/auth/drive.activity.readonly",
9
+ export const ADDITIONAL_SCOPE_INFO = [
10
+ {
11
+ scope: "https://www.googleapis.com/auth/gmail.settings.basic",
12
+ service: "gmail",
13
+ capability: "Gmail filter management",
14
+ },
15
+ {
16
+ // drive.activity.readonly powers `drive activity`; read-only and incremental
17
+ // on the already-restricted drive scope, so it doesn't worsen the consent posture.
18
+ scope: "https://www.googleapis.com/auth/drive.activity.readonly",
19
+ service: "drive",
20
+ capability: "drive activity timeline",
21
+ },
21
22
  ];
23
+ export const ADDITIONAL_SCOPES = ADDITIONAL_SCOPE_INFO.map((s) => s.scope);
22
24
  export const SERVICES = [
23
25
  "gmail",
24
26
  "calendar",
@@ -1 +1 @@
1
- {"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../../src/auth/scopes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAU,CAAC;AAEnE,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,KAAK,EAAE,8CAA8C;IACrD,QAAQ,EAAE,0CAA0C;IACpD,IAAI,EAAE,2CAA2C;IACjD,KAAK,EAAE,uCAAuC;IAC9C,MAAM,EAAE,+CAA+C;CAC/C,CAAC;AAEX,uEAAuE;AACvE,+DAA+D;AAC/D,sEAAsE;AACtE,sEAAsE;AACtE,iDAAiD;AACjD,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,sDAAsD;IACtD,2EAA2E;IAC3E,4EAA4E;IAC5E,uEAAuE;IACvE,+DAA+D;IAC/D,yDAAyD;CACjD,CAAC;AAIX,MAAM,CAAC,MAAM,QAAQ,GAAkB;IACrC,OAAO;IACP,UAAU;IACV,MAAM;IACN,OAAO;IACP,QAAQ;CACT,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAgC;IACxD,KAAK,EAAE,sBAAsB;IAC7B,QAAQ,EAAE,8BAA8B;IACxC,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,sBAAsB;IAC7B,MAAM,EAAE,uBAAuB;CAChC,CAAC;AAEF,6EAA6E;AAC7E,8EAA8E;AAC9E,yCAAyC;AACzC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,8BAA8B,CAAU,CAAC;AAEzE,MAAM,UAAU,SAAS;IACvB,OAAO,CAAC,GAAG,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,eAAe,CAAC,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../../src/auth/scopes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAU,CAAC;AAEnE,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,KAAK,EAAE,8CAA8C;IACrD,QAAQ,EAAE,0CAA0C;IACpD,IAAI,EAAE,2CAA2C;IACjD,KAAK,EAAE,uCAAuC;IAC9C,MAAM,EAAE,+CAA+C;CAC/C,CAAC;AAoBX,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD;QACE,KAAK,EAAE,sDAAsD;QAC7D,OAAO,EAAE,OAAO;QAChB,UAAU,EAAE,yBAAyB;KACtC;IACD;QACE,6EAA6E;QAC7E,mFAAmF;QACnF,KAAK,EAAE,yDAAyD;QAChE,OAAO,EAAE,OAAO;QAChB,UAAU,EAAE,yBAAyB;KACtC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAE3E,MAAM,CAAC,MAAM,QAAQ,GAAkB;IACrC,OAAO;IACP,UAAU;IACV,MAAM;IACN,OAAO;IACP,QAAQ;CACT,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAgC;IACxD,KAAK,EAAE,sBAAsB;IAC7B,QAAQ,EAAE,8BAA8B;IACxC,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,sBAAsB;IAC7B,MAAM,EAAE,uBAAuB;CAChC,CAAC;AAEF,6EAA6E;AAC7E,8EAA8E;AAC9E,yCAAyC;AACzC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,8BAA8B,CAAU,CAAC;AAEzE,MAAM,UAAU,SAAS;IACvB,OAAO,CAAC,GAAG,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,eAAe,CAAC,CAAC;AAC/D,CAAC"}
@@ -1,9 +1,24 @@
1
1
  import { type ServiceName } from "../auth/scopes.js";
2
+ import { type StoredTokens } from "./tokens.js";
2
3
  export interface ProbeResult {
3
4
  service: ServiceName;
4
5
  status: "ok" | "warn" | "fail";
5
6
  detail: string;
6
7
  }
8
+ export interface ProbeContext {
9
+ email: string;
10
+ tokens: StoredTokens;
11
+ accessToken: string;
12
+ }
13
+ /**
14
+ * Presence checks for each ADDITIONAL_SCOPES entry — scopes layered on top of
15
+ * a service's representative scope that are NOT implied by it. These are a
16
+ * cheap token-string check (no API call). Each result is keyed to its parent
17
+ * service so it groups under that service and honors `--check runtime.<service>`.
18
+ * A missing one is a `fail` prompting re-auth — surfacing it here instead of
19
+ * only when the dependent command is run.
20
+ */
21
+ export declare function probeAdditionalScopes(ctx: ProbeContext): ProbeResult[];
7
22
  /**
8
23
  * Run all service probes for a single account in parallel (where they're
9
24
  * independent) and return results keyed by service name.
@@ -1,4 +1,4 @@
1
- import { SERVICE_SCOPES } from "../auth/scopes.js";
1
+ import { ADDITIONAL_SCOPE_INFO, SERVICE_SCOPES, } from "../auth/scopes.js";
2
2
  import { getValidAccessToken } from "./tokens.js";
3
3
  function hasScope(tokens, scope) {
4
4
  const granted = tokens.scope.split(" ").filter(Boolean);
@@ -159,6 +159,31 @@ function probeSlides(ctx, driveOk) {
159
159
  }
160
160
  return { service, status: "ok", detail: "scope granted (no cheap direct probe)" };
161
161
  }
162
+ /**
163
+ * Presence checks for each ADDITIONAL_SCOPES entry — scopes layered on top of
164
+ * a service's representative scope that are NOT implied by it. These are a
165
+ * cheap token-string check (no API call). Each result is keyed to its parent
166
+ * service so it groups under that service and honors `--check runtime.<service>`.
167
+ * A missing one is a `fail` prompting re-auth — surfacing it here instead of
168
+ * only when the dependent command is run.
169
+ */
170
+ export function probeAdditionalScopes(ctx) {
171
+ return ADDITIONAL_SCOPE_INFO.map(({ scope, service, capability }) => {
172
+ const shortName = scope.replace("https://www.googleapis.com/auth/", "");
173
+ if (hasScope(ctx.tokens, scope)) {
174
+ return {
175
+ service,
176
+ status: "ok",
177
+ detail: `${shortName} granted (${capability}) ✓`,
178
+ };
179
+ }
180
+ return {
181
+ service,
182
+ status: "fail",
183
+ detail: `${shortName} scope NOT granted — ${capability} unavailable; re-auth to grant it`,
184
+ };
185
+ });
186
+ }
162
187
  /**
163
188
  * Run all service probes for a single account in parallel (where they're
164
189
  * independent) and return results keyed by service name.
@@ -191,7 +216,14 @@ export async function probeAccount(email) {
191
216
  const driveOk = drive.status === "ok";
192
217
  const docs = probeDocs(ctx, driveOk);
193
218
  const slides = probeSlides(ctx, driveOk);
194
- return [gmail, calendar, docs, drive, slides];
219
+ return [
220
+ gmail,
221
+ calendar,
222
+ docs,
223
+ drive,
224
+ slides,
225
+ ...probeAdditionalScopes(ctx),
226
+ ];
195
227
  }
196
228
  function errorResult(service, err) {
197
229
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"probe.js","sourceRoot":"","sources":["../../../src/google/probe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"probe.js","sourceRoot":"","sources":["../../../src/google/probe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,43 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { ADDITIONAL_SCOPE_INFO, BASE_SCOPES, SERVICE_SCOPES, } from "../auth/scopes.js";
3
+ import { probeAdditionalScopes } from "./probe.js";
4
+ function ctxWithScopes(scopes) {
5
+ const tokens = {
6
+ client_id: "test",
7
+ access_token: "tok",
8
+ refresh_token: "ref",
9
+ expiry_date: 4_102_444_800_000, // far future
10
+ scope: scopes.join(" "),
11
+ token_type: "Bearer",
12
+ obtained_at: "2026-01-01T00:00:00.000Z",
13
+ };
14
+ return { email: "x@example.com", tokens, accessToken: "tok" };
15
+ }
16
+ describe("probeAdditionalScopes", () => {
17
+ it("returns one result per ADDITIONAL_SCOPE_INFO entry, keyed to its service", () => {
18
+ const results = probeAdditionalScopes(ctxWithScopes([]));
19
+ expect(results).toHaveLength(ADDITIONAL_SCOPE_INFO.length);
20
+ for (const info of ADDITIONAL_SCOPE_INFO) {
21
+ expect(results.some((r) => r.service === info.service)).toBe(true);
22
+ }
23
+ });
24
+ it("marks a granted additional scope ok", () => {
25
+ const granted = ADDITIONAL_SCOPE_INFO[0];
26
+ const results = probeAdditionalScopes(ctxWithScopes([
27
+ ...BASE_SCOPES,
28
+ ...Object.values(SERVICE_SCOPES),
29
+ granted.scope,
30
+ ]));
31
+ const row = results.find((r) => r.detail.includes(granted.capability));
32
+ expect(row?.status).toBe("ok");
33
+ });
34
+ it("marks a missing additional scope fail with a re-auth prompt containing 'scope'", () => {
35
+ // No additional scopes granted.
36
+ const results = probeAdditionalScopes(ctxWithScopes([...BASE_SCOPES, ...Object.values(SERVICE_SCOPES)]));
37
+ expect(results.every((r) => r.status === "fail")).toBe(true);
38
+ // Detail must contain "scope" so doctor's scope-gap rollup (/scope/i) catches it.
39
+ expect(results.every((r) => /scope/i.test(r.detail))).toBe(true);
40
+ expect(results.every((r) => /re-auth/i.test(r.detail))).toBe(true);
41
+ });
42
+ });
43
+ //# sourceMappingURL=probe.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"probe.test.js","sourceRoot":"","sources":["../../../src/google/probe.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAqB,MAAM,YAAY,CAAC;AAGtE,SAAS,aAAa,CAAC,MAAgB;IACrC,MAAM,MAAM,GAAiB;QAC3B,SAAS,EAAE,MAAM;QACjB,YAAY,EAAE,KAAK;QACnB,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,iBAAiB,EAAE,aAAa;QAC7C,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QACvB,UAAU,EAAE,QAAQ;QACpB,WAAW,EAAE,0BAA0B;KACxC,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AAChE,CAAC;AAED,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC3D,KAAK,MAAM,IAAI,IAAI,qBAAqB,EAAE,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,OAAO,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,qBAAqB,CACnC,aAAa,CAAC;YACZ,GAAG,WAAW;YACd,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;YAChC,OAAO,CAAC,KAAK;SACd,CAAC,CACH,CAAC;QACF,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,GAAG,EAAE;QACxF,gCAAgC;QAChC,MAAM,OAAO,GAAG,qBAAqB,CACnC,aAAa,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAClE,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,kFAAkF;QAClF,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gws-axi",
3
- "version": "0.10.0",
3
+ "version": "0.10.1",
4
4
  "description": "AXI-compliant Google Workspace CLI — token-efficient TOON output, agent-guided auth setup, unified interface for Gmail, Calendar, Docs, Drive, Slides",
5
5
  "type": "module",
6
6
  "repository": {