brightspace-mcp-server 2.0.0 → 3.0.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/README.md +33 -52
- package/build/api/client.d.ts +32 -7
- package/build/api/client.d.ts.map +1 -1
- package/build/api/client.js +93 -27
- package/build/api/client.js.map +1 -1
- package/build/auth/auth-cooldown.d.ts +8 -0
- package/build/auth/auth-cooldown.d.ts.map +1 -1
- package/build/auth/auth-cooldown.js +15 -2
- package/build/auth/auth-cooldown.js.map +1 -1
- package/build/auth/auth-lock.d.ts.map +1 -1
- package/build/auth/auth-lock.js +51 -3
- package/build/auth/auth-lock.js.map +1 -1
- package/build/auth/auth-runner.d.ts +15 -4
- package/build/auth/auth-runner.d.ts.map +1 -1
- package/build/auth/auth-runner.js +128 -109
- package/build/auth/auth-runner.js.map +1 -1
- package/build/auth/browser-auth.d.ts +2 -1
- package/build/auth/browser-auth.d.ts.map +1 -1
- package/build/auth/browser-auth.js +15 -4
- package/build/auth/browser-auth.js.map +1 -1
- package/build/auth/purdue-sso.d.ts +7 -0
- package/build/auth/purdue-sso.d.ts.map +1 -1
- package/build/auth/purdue-sso.js +46 -0
- package/build/auth/purdue-sso.js.map +1 -1
- package/build/auth/sso-flow.d.ts +2 -1
- package/build/auth/sso-flow.d.ts.map +1 -1
- package/build/auth/sso-flow.js +10 -3
- package/build/auth/sso-flow.js.map +1 -1
- package/build/auth/suny-sso.d.ts +3 -0
- package/build/auth/suny-sso.d.ts.map +1 -1
- package/build/auth/suny-sso.js +2 -0
- package/build/auth/suny-sso.js.map +1 -1
- package/build/auth-cli.js +49 -4
- package/build/auth-cli.js.map +1 -1
- package/build/index.js +13 -61
- package/build/index.js.map +1 -1
- package/build/setup.js +32 -13
- package/build/setup.js.map +1 -1
- package/build/tools/tool-helpers.d.ts +7 -1
- package/build/tools/tool-helpers.d.ts.map +1 -1
- package/build/tools/tool-helpers.js +96 -11
- package/build/tools/tool-helpers.js.map +1 -1
- package/build/utils/browser-install.d.ts +23 -0
- package/build/utils/browser-install.d.ts.map +1 -0
- package/build/utils/browser-install.js +33 -0
- package/build/utils/browser-install.js.map +1 -0
- package/build/utils/commands.d.ts +26 -0
- package/build/utils/commands.d.ts.map +1 -0
- package/build/utils/commands.js +26 -0
- package/build/utils/commands.js.map +1 -0
- package/build/utils/config.d.ts.map +1 -1
- package/build/utils/config.js +4 -2
- package/build/utils/config.js.map +1 -1
- package/build/utils/download-errors.d.ts +45 -0
- package/build/utils/download-errors.d.ts.map +1 -0
- package/build/utils/download-errors.js +45 -0
- package/build/utils/download-errors.js.map +1 -0
- package/build/utils/download-helpers.d.ts.map +1 -1
- package/build/utils/download-helpers.js +2 -1
- package/build/utils/download-helpers.js.map +1 -1
- package/build/utils/file-validator.d.ts +1 -1
- package/build/utils/file-validator.d.ts.map +1 -1
- package/build/utils/file-validator.js +47 -7
- package/build/utils/file-validator.js.map +1 -1
- package/build/utils/install-sites.d.ts +61 -0
- package/build/utils/install-sites.d.ts.map +1 -0
- package/build/utils/install-sites.js +207 -0
- package/build/utils/install-sites.js.map +1 -0
- package/build/utils/self-update.d.ts +61 -0
- package/build/utils/self-update.d.ts.map +1 -0
- package/build/utils/self-update.js +92 -0
- package/build/utils/self-update.js.map +1 -0
- package/build/utils/update-checker.d.ts +85 -7
- package/build/utils/update-checker.d.ts.map +1 -1
- package/build/utils/update-checker.js +141 -36
- package/build/utils/update-checker.js.map +1 -1
- package/package.json +1 -1
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/build/setup.js
CHANGED
|
@@ -10,10 +10,11 @@ import * as readline from "node:readline";
|
|
|
10
10
|
import * as fs from "node:fs";
|
|
11
11
|
import * as path from "node:path";
|
|
12
12
|
import * as os from "node:os";
|
|
13
|
-
import {
|
|
13
|
+
import { spawn } from "node:child_process";
|
|
14
14
|
import { fileURLToPath } from "node:url";
|
|
15
15
|
import { getConfigStorePath } from "./utils/config-store.js";
|
|
16
16
|
import { saveSecureConfig } from "./utils/secure-config.js";
|
|
17
|
+
import { AUTH_COMMAND } from "./utils/commands.js";
|
|
17
18
|
// ANSI helpers
|
|
18
19
|
const bold = (s) => `\x1b[1m${s}\x1b[0m`;
|
|
19
20
|
const green = (s) => `\x1b[32m${s}\x1b[0m`;
|
|
@@ -25,7 +26,7 @@ const SCHOOL_PRESETS = {
|
|
|
25
26
|
name: "Purdue University",
|
|
26
27
|
baseUrl: "https://purdue.brightspace.com",
|
|
27
28
|
usernameLabel: "Purdue career account username or full email",
|
|
28
|
-
mfaNote: "
|
|
29
|
+
mfaNote: "Microsoft Authenticator number matching can run without a browser window.",
|
|
29
30
|
},
|
|
30
31
|
suny: {
|
|
31
32
|
name: "SUNY",
|
|
@@ -206,15 +207,12 @@ function configureMcpClient(configPath) {
|
|
|
206
207
|
function runAuth() {
|
|
207
208
|
const scriptPath = path.resolve(thisDir, "auth-cli.js");
|
|
208
209
|
return new Promise((resolve) => {
|
|
209
|
-
const child =
|
|
210
|
-
timeout: 8 * 60 * 1000,
|
|
210
|
+
const child = spawn(process.execPath, [scriptPath], {
|
|
211
211
|
env: { ...process.env },
|
|
212
|
-
|
|
213
|
-
resolve(!error);
|
|
212
|
+
stdio: "inherit",
|
|
214
213
|
});
|
|
215
|
-
|
|
216
|
-
child.
|
|
217
|
-
child.stderr?.pipe(process.stderr);
|
|
214
|
+
child.once("error", () => resolve(false));
|
|
215
|
+
child.once("close", (code) => resolve(code === 0));
|
|
218
216
|
});
|
|
219
217
|
}
|
|
220
218
|
// ── Main wizard ────────────────────────────────────────────────────
|
|
@@ -303,7 +301,7 @@ async function main() {
|
|
|
303
301
|
}
|
|
304
302
|
console.log("");
|
|
305
303
|
// Re-open readline for remaining prompts
|
|
306
|
-
|
|
304
|
+
let rl2 = readline.createInterface({
|
|
307
305
|
input: process.stdin,
|
|
308
306
|
output: process.stdout,
|
|
309
307
|
});
|
|
@@ -315,11 +313,30 @@ async function main() {
|
|
|
315
313
|
console.log(dim(" MFA: You will be prompted to approve the sign-in on your phone during auth."));
|
|
316
314
|
}
|
|
317
315
|
console.log("");
|
|
316
|
+
// Only two outcomes exist: a hidden browser or a visible one. Which kind of
|
|
317
|
+
// MFA you have is detected at sign-in time, so offering "approve a prompt"
|
|
318
|
+
// and "type a code" as separate choices would be a distinction the code does
|
|
319
|
+
// not make, and picking between them would change nothing on disk.
|
|
320
|
+
console.log(" How do you complete MFA?");
|
|
321
|
+
console.log(" 1. On your phone, or by typing a code here (recommended)");
|
|
322
|
+
console.log(" 2. In a visible browser window");
|
|
323
|
+
let mfaChoice = "";
|
|
324
|
+
while (!/^[12]$/.test(mfaChoice)) {
|
|
325
|
+
mfaChoice = await ask(rl2, " Choose 1 or 2 [1]: ") || "1";
|
|
326
|
+
if (!/^[12]$/.test(mfaChoice))
|
|
327
|
+
console.log(yellow(" Please enter 1 or 2."));
|
|
328
|
+
}
|
|
329
|
+
const headless = mfaChoice !== "2";
|
|
330
|
+
console.log(dim(headless
|
|
331
|
+
? " Authentication will run without a browser window."
|
|
332
|
+
: " A browser window will open when authentication is needed."));
|
|
333
|
+
console.log("");
|
|
318
334
|
// ── Step 5: Save config ──────────────────────────────────────────
|
|
319
335
|
const config = {
|
|
320
336
|
baseUrl,
|
|
321
337
|
username,
|
|
322
338
|
password,
|
|
339
|
+
headless,
|
|
323
340
|
};
|
|
324
341
|
if (campus) {
|
|
325
342
|
config.campus = campus;
|
|
@@ -331,19 +348,21 @@ async function main() {
|
|
|
331
348
|
// ── Step 6: Authenticate now? ────────────────────────────────────
|
|
332
349
|
const authNow = await ask(rl2, "Would you like to authenticate now? (yes/no): ");
|
|
333
350
|
if (/^y(es)?$/i.test(authNow)) {
|
|
351
|
+
rl2.close();
|
|
334
352
|
console.log("");
|
|
335
353
|
console.log(dim(" Starting authentication..."));
|
|
336
354
|
console.log("");
|
|
337
355
|
const ok = await runAuth();
|
|
356
|
+
rl2 = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
338
357
|
if (ok) {
|
|
339
358
|
console.log(green("\n Authentication successful!"));
|
|
340
359
|
}
|
|
341
360
|
else {
|
|
342
|
-
console.log(yellow(
|
|
361
|
+
console.log(yellow(`\n Authentication failed. You can retry later with: ${AUTH_COMMAND}`));
|
|
343
362
|
}
|
|
344
363
|
}
|
|
345
364
|
else {
|
|
346
|
-
console.log(dim(
|
|
365
|
+
console.log(dim(` You can authenticate later by running: ${AUTH_COMMAND}`));
|
|
347
366
|
}
|
|
348
367
|
console.log("");
|
|
349
368
|
// ── Step 7: Claude Desktop auto-config ───────────────────────────
|
|
@@ -398,7 +417,7 @@ async function main() {
|
|
|
398
417
|
console.log(` Config saved to: ${dim(getConfigStorePath())}`);
|
|
399
418
|
console.log("");
|
|
400
419
|
console.log(" Next steps:");
|
|
401
|
-
console.log(
|
|
420
|
+
console.log(` 1. Run '${AUTH_COMMAND}' to authenticate (if you haven't already)`);
|
|
402
421
|
console.log(" 2. Restart Claude Desktop");
|
|
403
422
|
console.log(" 3. Ask Claude about your Brightspace courses!");
|
|
404
423
|
console.log("");
|
package/build/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,13 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
7
7
|
/**
|
|
8
|
-
* Wrap data as MCP-compatible tool result
|
|
8
|
+
* Wrap data as MCP-compatible tool result.
|
|
9
|
+
*
|
|
10
|
+
* Every tool returns through here, which makes it the one place an update
|
|
11
|
+
* notice can reach a user regardless of which tool they happen to call. The
|
|
12
|
+
* notice is appended as a separate content block so content[0].text stays a
|
|
13
|
+
* pure JSON document for anything parsing it, and it is throttled inside
|
|
14
|
+
* getUpdateNotice so a busy session is not spammed.
|
|
9
15
|
*/
|
|
10
16
|
export declare function toolResponse(data: unknown): CallToolResult;
|
|
11
17
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-helpers.d.ts","sourceRoot":"","sources":["../../src/tools/tool-helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-helpers.d.ts","sourceRoot":"","sources":["../../src/tools/tool-helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAcpE;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAY1D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAU7D;AA2DD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CA+E5D"}
|
|
@@ -5,19 +5,32 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { ZodError } from "zod";
|
|
7
7
|
import { ApiError, RateLimitError, NetworkError } from "../api/index.js";
|
|
8
|
+
import { TokenRefreshError } from "../api/errors.js";
|
|
9
|
+
import { AuthProcessError } from "../auth/auth-runner.js";
|
|
8
10
|
import { log } from "../utils/logger.js";
|
|
11
|
+
import { AUTH_COMMAND } from "../utils/commands.js";
|
|
12
|
+
import { getUpdateNotice } from "../utils/update-checker.js";
|
|
13
|
+
import { DownloadError, isSafeDetail, } from "../utils/download-errors.js";
|
|
9
14
|
/**
|
|
10
|
-
* Wrap data as MCP-compatible tool result
|
|
15
|
+
* Wrap data as MCP-compatible tool result.
|
|
16
|
+
*
|
|
17
|
+
* Every tool returns through here, which makes it the one place an update
|
|
18
|
+
* notice can reach a user regardless of which tool they happen to call. The
|
|
19
|
+
* notice is appended as a separate content block so content[0].text stays a
|
|
20
|
+
* pure JSON document for anything parsing it, and it is throttled inside
|
|
21
|
+
* getUpdateNotice so a busy session is not spammed.
|
|
11
22
|
*/
|
|
12
23
|
export function toolResponse(data) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
24
|
+
const content = [
|
|
25
|
+
{
|
|
26
|
+
type: "text",
|
|
27
|
+
text: JSON.stringify(data, null, 2),
|
|
28
|
+
},
|
|
29
|
+
];
|
|
30
|
+
const notice = getUpdateNotice();
|
|
31
|
+
if (notice)
|
|
32
|
+
content.push({ type: "text", text: notice });
|
|
33
|
+
return { content };
|
|
21
34
|
}
|
|
22
35
|
/**
|
|
23
36
|
* Wrap error message as MCP-compatible tool result
|
|
@@ -33,6 +46,51 @@ export function errorResponse(message) {
|
|
|
33
46
|
isError: true,
|
|
34
47
|
};
|
|
35
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* What to tell the user for each way an automatic sign-in can fail.
|
|
51
|
+
*
|
|
52
|
+
* Authentication is the one failure mode where "an unexpected error occurred"
|
|
53
|
+
* costs the user a fix they could apply themselves, and it now happens inside
|
|
54
|
+
* an ordinary tool call rather than in a dedicated auth step. The text is
|
|
55
|
+
* keyed off AuthProcessError.kind, a closed set this package assigns itself;
|
|
56
|
+
* nothing is derived from the caught message, so a child process cannot put
|
|
57
|
+
* words in the response. The full error still goes to the log.
|
|
58
|
+
*/
|
|
59
|
+
const AUTH_FAILURE_GUIDANCE = {
|
|
60
|
+
busy: "A sign-in is already running in another process. Let it finish, then try again.",
|
|
61
|
+
cooldown: "Automatic sign-in is paused because an MFA prompt went unanswered. " +
|
|
62
|
+
`Run \`${AUTH_COMMAND}\` in a terminal to retry now and see the number to enter.`,
|
|
63
|
+
unsupported: "This login needs something your AI client cannot supply, usually a code from an "
|
|
64
|
+
+ "authenticator app. " +
|
|
65
|
+
`Run \`${AUTH_COMMAND}\` in a terminal and sign in there.`,
|
|
66
|
+
secureStorage: "The operating system credential store is locked or unavailable, so the saved " +
|
|
67
|
+
"password could not be read. Unlock your keychain or keyring, then try again.",
|
|
68
|
+
transport: "Brightspace could not be reached to sign in. The saved session was kept. " +
|
|
69
|
+
"Check your connection and try again in a few minutes.",
|
|
70
|
+
timeout: "The sign-in did not finish in time, usually a missed MFA prompt. " +
|
|
71
|
+
`Run \`${AUTH_COMMAND}\` in a terminal to complete it with the number visible.`,
|
|
72
|
+
failed: `The sign-in did not complete. Run \`${AUTH_COMMAND}\` in a terminal to see why, ` +
|
|
73
|
+
"or `brightspace-setup` if your saved school or username is wrong.",
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* What to tell someone when a download fails.
|
|
77
|
+
*
|
|
78
|
+
* Same contract as AUTH_FAILURE_GUIDANCE: keyed off a kind this package
|
|
79
|
+
* assigns, never off the caught message, so a Content-Disposition header or a
|
|
80
|
+
* file body cannot put words in a tool response. The only value that crosses
|
|
81
|
+
* from the remote side is a detected MIME type, and only after isSafeDetail
|
|
82
|
+
* confirms it is a bare type token.
|
|
83
|
+
*/
|
|
84
|
+
const DOWNLOAD_FAILURE_GUIDANCE = {
|
|
85
|
+
unsupportedType: "The file's format is not on the allowed download list. " +
|
|
86
|
+
"Open it from Brightspace in a browser instead.",
|
|
87
|
+
undetectableType: "The file's format could not be identified, so it was not saved. " +
|
|
88
|
+
"This usually means Brightspace returned an error page instead of the file.",
|
|
89
|
+
badFilename: "The name Brightspace gave this file cannot be used on disk. " +
|
|
90
|
+
"Pass customFilename to choose one yourself.",
|
|
91
|
+
pathTraversal: "The name Brightspace gave this file pointed outside the download " +
|
|
92
|
+
"directory and was refused. Pass customFilename to choose one yourself.",
|
|
93
|
+
};
|
|
36
94
|
/**
|
|
37
95
|
* Sanitize errors for user-friendly messages
|
|
38
96
|
*
|
|
@@ -41,14 +99,41 @@ export function errorResponse(message) {
|
|
|
41
99
|
export function sanitizeError(error) {
|
|
42
100
|
// Log full error to stderr for debugging (token redaction handled by logger)
|
|
43
101
|
log("ERROR", "Tool error", error);
|
|
102
|
+
// Authentication runs inside the tool call now, so its failures surface
|
|
103
|
+
// here rather than from a dedicated auth tool. Checked first: the kind
|
|
104
|
+
// carries guidance that the generic branches below would throw away.
|
|
105
|
+
if (error instanceof AuthProcessError) {
|
|
106
|
+
return errorResponse(`Could not sign in to Brightspace automatically. ${AUTH_FAILURE_GUIDANCE[error.kind]}`);
|
|
107
|
+
}
|
|
108
|
+
// Checked before NetworkError, which it extends: a token service that is
|
|
109
|
+
// briefly down is not a dead internet connection, and the saved session
|
|
110
|
+
// survives it.
|
|
111
|
+
if (error instanceof TokenRefreshError) {
|
|
112
|
+
return errorResponse("Brightspace could not renew your session right now. Your saved login was kept. " +
|
|
113
|
+
"Try again in a few minutes.");
|
|
114
|
+
}
|
|
44
115
|
// Map to user-friendly messages
|
|
116
|
+
// Without this every validation failure lands in the generic fallback, which
|
|
117
|
+
// is how a .doc download reported nothing more than "unexpected error".
|
|
118
|
+
if (error instanceof DownloadError) {
|
|
119
|
+
const detail = error.detail && isSafeDetail(error.detail)
|
|
120
|
+
? ` (detected type: ${error.detail})`
|
|
121
|
+
: "";
|
|
122
|
+
return errorResponse(`Could not save the file.${detail} ${DOWNLOAD_FAILURE_GUIDANCE[error.kind]}`);
|
|
123
|
+
}
|
|
45
124
|
if (error instanceof ApiError) {
|
|
46
125
|
if (error.status === 404) {
|
|
47
126
|
return errorResponse("Resource not found. The course or item may not exist, or you may not have access.");
|
|
48
127
|
}
|
|
49
128
|
if (error.status === 401) {
|
|
50
|
-
|
|
51
|
-
|
|
129
|
+
// A stale install is a common cause of sign-in failing, so this is the
|
|
130
|
+
// one error worth attaching the update notice to.
|
|
131
|
+
const result = errorResponse("Authentication expired. Auto-reauthentication was attempted but failed. " +
|
|
132
|
+
`Please run \`${AUTH_COMMAND}\` in your terminal, then try again.`);
|
|
133
|
+
const notice = getUpdateNotice();
|
|
134
|
+
if (notice)
|
|
135
|
+
result.content.push({ type: "text", text: notice });
|
|
136
|
+
return result;
|
|
52
137
|
}
|
|
53
138
|
if (error.status === 403) {
|
|
54
139
|
return errorResponse("Access denied. You may not have permission to access this resource.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-helpers.js","sourceRoot":"","sources":["../../src/tools/tool-helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-helpers.js","sourceRoot":"","sources":["../../src/tools/tool-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brightspace MCP Server. Copyright (c) 2026 Rohan Muppa. MIT licensed.
|
|
3
|
+
*
|
|
4
|
+
* Recognising a missing Playwright browser.
|
|
5
|
+
*
|
|
6
|
+
* This package's postinstall downloads Chromium. npm skips postinstall under
|
|
7
|
+
* `--ignore-scripts` and under the newer allow-scripts policy, both of which
|
|
8
|
+
* are common on global installs, so the package can land without a browser and
|
|
9
|
+
* fail only later, at first sign-in.
|
|
10
|
+
*
|
|
11
|
+
* Playwright's own message does say what to run, but by the time it has been
|
|
12
|
+
* wrapped in BrowserAuthError and then flattened into a generic
|
|
13
|
+
* "Authentication failed" by the auth runner, the actionable command is gone.
|
|
14
|
+
* Matching the error lets us keep the fix attached to the failure.
|
|
15
|
+
*
|
|
16
|
+
* Matching reactively rather than probing for the executable up front keeps us
|
|
17
|
+
* off Playwright's internals, and means no false positives: this only ever
|
|
18
|
+
* fires after a launch has genuinely failed.
|
|
19
|
+
*/
|
|
20
|
+
export declare const PLAYWRIGHT_INSTALL_HINT: string;
|
|
21
|
+
/** True when an error is Playwright reporting that no browser binary exists. */
|
|
22
|
+
export declare function isMissingBrowserError(error: unknown): boolean;
|
|
23
|
+
//# sourceMappingURL=browser-install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-install.d.ts","sourceRoot":"","sources":["../../src/utils/browser-install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,eAAO,MAAM,uBAAuB,QAKoD,CAAC;AAEzF,gFAAgF;AAChF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAO7D"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brightspace MCP Server. Copyright (c) 2026 Rohan Muppa. MIT licensed.
|
|
3
|
+
*
|
|
4
|
+
* Recognising a missing Playwright browser.
|
|
5
|
+
*
|
|
6
|
+
* This package's postinstall downloads Chromium. npm skips postinstall under
|
|
7
|
+
* `--ignore-scripts` and under the newer allow-scripts policy, both of which
|
|
8
|
+
* are common on global installs, so the package can land without a browser and
|
|
9
|
+
* fail only later, at first sign-in.
|
|
10
|
+
*
|
|
11
|
+
* Playwright's own message does say what to run, but by the time it has been
|
|
12
|
+
* wrapped in BrowserAuthError and then flattened into a generic
|
|
13
|
+
* "Authentication failed" by the auth runner, the actionable command is gone.
|
|
14
|
+
* Matching the error lets us keep the fix attached to the failure.
|
|
15
|
+
*
|
|
16
|
+
* Matching reactively rather than probing for the executable up front keeps us
|
|
17
|
+
* off Playwright's internals, and means no false positives: this only ever
|
|
18
|
+
* fires after a launch has genuinely failed.
|
|
19
|
+
*/
|
|
20
|
+
import { CLEAR_NPX_CACHE_COMMAND } from "./commands.js";
|
|
21
|
+
export const PLAYWRIGHT_INSTALL_HINT = "Chromium is not installed, so sign-in cannot start. Your package manager " +
|
|
22
|
+
"skipped this package's postinstall script, which is what normally downloads it " +
|
|
23
|
+
"(common with --ignore-scripts or an allow-scripts policy). Run: " +
|
|
24
|
+
"npx playwright install chromium" +
|
|
25
|
+
`. If that does not help, reinstall and clear caches with ${CLEAR_NPX_CACHE_COMMAND}.`;
|
|
26
|
+
/** True when an error is Playwright reporting that no browser binary exists. */
|
|
27
|
+
export function isMissingBrowserError(error) {
|
|
28
|
+
const message = error instanceof Error ? error.message : typeof error === "string" ? error : "";
|
|
29
|
+
if (!message)
|
|
30
|
+
return false;
|
|
31
|
+
return /Executable doesn't exist|playwright install|Failed to launch.*because executable doesn't exist/i.test(message);
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=browser-install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-install.js","sourceRoot":"","sources":["../../src/utils/browser-install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD,MAAM,CAAC,MAAM,uBAAuB,GAClC,2EAA2E;IAC3E,iFAAiF;IACjF,kEAAkE;IAClE,iCAAiC;IACjC,4DAA4D,uBAAuB,GAAG,CAAC;AAEzF,gFAAgF;AAChF,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,MAAM,OAAO,GACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAClF,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,OAAO,iGAAiG,CAAC,IAAI,CAC3G,OAAO,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brightspace MCP Server. Copyright (c) 2026 Rohan Muppa. MIT licensed.
|
|
3
|
+
*
|
|
4
|
+
* Canonical command strings shown to users.
|
|
5
|
+
*
|
|
6
|
+
* Every npx command here is pinned to @latest deliberately. Invoking npx with
|
|
7
|
+
* a bare package name, no version tag, prefers a binary already on PATH, so on
|
|
8
|
+
* a machine with an old global install it silently runs that stale copy
|
|
9
|
+
* instead of fetching the current release. That is exactly how a healthy
|
|
10
|
+
* v2.0.0 server ended up printing instructions that executed v1.2.6, whose
|
|
11
|
+
* sign-in flow no longer worked. Pinning makes every printed command
|
|
12
|
+
* self-updating.
|
|
13
|
+
*
|
|
14
|
+
* Import these instead of writing the command inline. A release test greps the
|
|
15
|
+
* source for untagged forms and fails the build if one reappears.
|
|
16
|
+
*/
|
|
17
|
+
export declare const PACKAGE_NAME = "brightspace-mcp-server";
|
|
18
|
+
/** Re-authenticate. Always runs the current published release. */
|
|
19
|
+
export declare const AUTH_COMMAND = "npx -y brightspace-mcp-server@latest auth";
|
|
20
|
+
/** Re-run the setup wizard. Always runs the current published release. */
|
|
21
|
+
export declare const SETUP_COMMAND = "npx -y brightspace-mcp-server@latest setup";
|
|
22
|
+
/** Bring a global install up to date. The only fix for a stale `npm i -g` copy. */
|
|
23
|
+
export declare const GLOBAL_INSTALL_COMMAND = "npm install -g brightspace-mcp-server@latest";
|
|
24
|
+
/** Drop cached npx copies so the next `@latest` genuinely refetches. */
|
|
25
|
+
export declare const CLEAR_NPX_CACHE_COMMAND = "npx clear-npx-cache";
|
|
26
|
+
//# sourceMappingURL=commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/utils/commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,eAAO,MAAM,YAAY,2BAA2B,CAAC;AAErD,kEAAkE;AAClE,eAAO,MAAM,YAAY,8CAAuC,CAAC;AAEjE,0EAA0E;AAC1E,eAAO,MAAM,aAAa,+CAAwC,CAAC;AAEnE,mFAAmF;AACnF,eAAO,MAAM,sBAAsB,iDAA0C,CAAC;AAE9E,wEAAwE;AACxE,eAAO,MAAM,uBAAuB,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brightspace MCP Server. Copyright (c) 2026 Rohan Muppa. MIT licensed.
|
|
3
|
+
*
|
|
4
|
+
* Canonical command strings shown to users.
|
|
5
|
+
*
|
|
6
|
+
* Every npx command here is pinned to @latest deliberately. Invoking npx with
|
|
7
|
+
* a bare package name, no version tag, prefers a binary already on PATH, so on
|
|
8
|
+
* a machine with an old global install it silently runs that stale copy
|
|
9
|
+
* instead of fetching the current release. That is exactly how a healthy
|
|
10
|
+
* v2.0.0 server ended up printing instructions that executed v1.2.6, whose
|
|
11
|
+
* sign-in flow no longer worked. Pinning makes every printed command
|
|
12
|
+
* self-updating.
|
|
13
|
+
*
|
|
14
|
+
* Import these instead of writing the command inline. A release test greps the
|
|
15
|
+
* source for untagged forms and fails the build if one reappears.
|
|
16
|
+
*/
|
|
17
|
+
export const PACKAGE_NAME = "brightspace-mcp-server";
|
|
18
|
+
/** Re-authenticate. Always runs the current published release. */
|
|
19
|
+
export const AUTH_COMMAND = `npx -y ${PACKAGE_NAME}@latest auth`;
|
|
20
|
+
/** Re-run the setup wizard. Always runs the current published release. */
|
|
21
|
+
export const SETUP_COMMAND = `npx -y ${PACKAGE_NAME}@latest setup`;
|
|
22
|
+
/** Bring a global install up to date. The only fix for a stale `npm i -g` copy. */
|
|
23
|
+
export const GLOBAL_INSTALL_COMMAND = `npm install -g ${PACKAGE_NAME}@latest`;
|
|
24
|
+
/** Drop cached npx copies so the next `@latest` genuinely refetches. */
|
|
25
|
+
export const CLEAR_NPX_CACHE_COMMAND = "npx clear-npx-cache";
|
|
26
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/utils/commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,wBAAwB,CAAC;AAErD,kEAAkE;AAClE,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,YAAY,cAAc,CAAC;AAEjE,0EAA0E;AAC1E,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,YAAY,eAAe,CAAC;AAEnE,mFAAmF;AACnF,MAAM,CAAC,MAAM,sBAAsB,GAAG,kBAAkB,YAAY,SAAS,CAAC;AAE9E,wEAAwE;AACxE,MAAM,CAAC,MAAM,uBAAuB,GAAG,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAKnD,wBAAsB,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAKnD,wBAAsB,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC,CAsErD;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAIhG;AASD,YAAY,EAAE,SAAS,EAAE,CAAC"}
|
package/build/utils/config.js
CHANGED
|
@@ -25,8 +25,10 @@ export async function loadConfig() {
|
|
|
25
25
|
: store?.sessionDir
|
|
26
26
|
? expandTilde(store.sessionDir)
|
|
27
27
|
: path.join(os.homedir(), ".d2l-session");
|
|
28
|
-
//
|
|
29
|
-
const headless =
|
|
28
|
+
// Code-entry and other interactive MFA methods need a visible browser.
|
|
29
|
+
const headless = process.env.D2L_HEADLESS !== undefined
|
|
30
|
+
? process.env.D2L_HEADLESS !== "false"
|
|
31
|
+
: store?.headless ?? true;
|
|
30
32
|
// Resolve tokenTtl: env > store > default (3600)
|
|
31
33
|
const tokenTtl = process.env.D2L_TOKEN_TTL
|
|
32
34
|
? parseInt(process.env.D2L_TOKEN_TTL, 10)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAE7D,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACnF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAC9E,CAAC;IAED,4CAA4C;IAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe;QAC7C,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QAC1C,CAAC,CAAC,KAAK,EAAE,UAAU;YACjB,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC;YAC/B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;IAE9C,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Purdue Brightspace MCP Server
|
|
3
|
+
* Copyright (c) 2026 Rohan Muppa. All rights reserved.
|
|
4
|
+
* Licensed under MIT — see LICENSE file for details.
|
|
5
|
+
*
|
|
6
|
+
* Typed download failures.
|
|
7
|
+
*
|
|
8
|
+
* A download that failed validation used to throw a plain Error, which
|
|
9
|
+
* sanitizeError has no branch for, so every one of them reached the user as
|
|
10
|
+
* "An unexpected error occurred. Please try again." That is the least useful
|
|
11
|
+
* sentence available, and it hid a real bug for as long as the tool has
|
|
12
|
+
* existed: no legacy Office file could ever be downloaded.
|
|
13
|
+
*
|
|
14
|
+
* The guidance keyed off `kind` follows the same contract as the auth table:
|
|
15
|
+
* the text is chosen from a closed set this package controls, never built from
|
|
16
|
+
* a caught message. That matters here more than on the auth path, because a
|
|
17
|
+
* download error message can embed a MIME type and a filename that both
|
|
18
|
+
* originate from remote HTTP headers or remote file bytes.
|
|
19
|
+
*/
|
|
20
|
+
/** Closed set of ways a download can fail before the bytes reach disk. */
|
|
21
|
+
export type DownloadFailureKind = "unsupportedType" | "undetectableType" | "badFilename" | "pathTraversal";
|
|
22
|
+
export declare class DownloadError extends Error {
|
|
23
|
+
readonly kind: DownloadFailureKind;
|
|
24
|
+
/**
|
|
25
|
+
* One short fact worth showing the user, currently only a detected MIME
|
|
26
|
+
* type. Rendered only after isSafeDetail approves it, so a crafted
|
|
27
|
+
* Content-Disposition header or file body cannot put prose in a response.
|
|
28
|
+
*/
|
|
29
|
+
readonly detail?: string | undefined;
|
|
30
|
+
constructor(kind: DownloadFailureKind, message: string,
|
|
31
|
+
/**
|
|
32
|
+
* One short fact worth showing the user, currently only a detected MIME
|
|
33
|
+
* type. Rendered only after isSafeDetail approves it, so a crafted
|
|
34
|
+
* Content-Disposition header or file body cannot put prose in a response.
|
|
35
|
+
*/
|
|
36
|
+
detail?: string | undefined);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* True only for something shaped like a bare MIME type.
|
|
40
|
+
*
|
|
41
|
+
* This is the narrowest shape that still answers "what actually went wrong",
|
|
42
|
+
* and it admits no spaces, so no free text, path, or response body can pass.
|
|
43
|
+
*/
|
|
44
|
+
export declare function isSafeDetail(value: string): boolean;
|
|
45
|
+
//# sourceMappingURL=download-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"download-errors.d.ts","sourceRoot":"","sources":["../../src/utils/download-errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,0EAA0E;AAC1E,MAAM,MAAM,mBAAmB,GAC3B,iBAAiB,GACjB,kBAAkB,GAClB,aAAa,GACb,eAAe,CAAC;AAEpB,qBAAa,aAAc,SAAQ,KAAK;aAEpB,IAAI,EAAE,mBAAmB;IAEzC;;;;OAIG;aACa,MAAM,CAAC,EAAE,MAAM;gBAPf,IAAI,EAAE,mBAAmB,EACzC,OAAO,EAAE,MAAM;IACf;;;;OAIG;IACa,MAAM,CAAC,EAAE,MAAM,YAAA;CAKlC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD"}
|