canvas-design-mcp 0.9.8 → 1.1.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.
Files changed (38) hide show
  1. package/README.md +23 -4
  2. package/dist/index.js +116 -8
  3. package/dist/index.js.map +1 -1
  4. package/dist/tools/get-setup-worksheet.d.ts +2 -0
  5. package/dist/tools/get-setup-worksheet.d.ts.map +1 -0
  6. package/dist/tools/get-setup-worksheet.js +14 -0
  7. package/dist/tools/get-setup-worksheet.js.map +1 -0
  8. package/dist/tools/get-started.d.ts +2 -0
  9. package/dist/tools/get-started.d.ts.map +1 -0
  10. package/dist/tools/get-started.js +86 -0
  11. package/dist/tools/get-started.js.map +1 -0
  12. package/dist/tools/list-courses.d.ts.map +1 -1
  13. package/dist/tools/list-courses.js +52 -6
  14. package/dist/tools/list-courses.js.map +1 -1
  15. package/dist/tools/panopto.d.ts.map +1 -1
  16. package/dist/tools/panopto.js +25 -1
  17. package/dist/tools/panopto.js.map +1 -1
  18. package/dist/tools/publish.d.ts.map +1 -1
  19. package/dist/tools/publish.js +91 -10
  20. package/dist/tools/publish.js.map +1 -1
  21. package/dist/types.d.ts +1 -0
  22. package/dist/types.d.ts.map +1 -1
  23. package/dist/utils/errors.d.ts +10 -0
  24. package/dist/utils/errors.d.ts.map +1 -0
  25. package/dist/utils/errors.js +22 -0
  26. package/dist/utils/errors.js.map +1 -0
  27. package/dist/utils/worksheet.d.ts +16 -0
  28. package/dist/utils/worksheet.d.ts.map +1 -0
  29. package/dist/utils/worksheet.js +100 -0
  30. package/dist/utils/worksheet.js.map +1 -0
  31. package/dist/wizard.d.ts +4 -1
  32. package/dist/wizard.d.ts.map +1 -1
  33. package/dist/wizard.js +124 -33
  34. package/dist/wizard.js.map +1 -1
  35. package/docs/canvas-design-kb/00-meta/Changelog.md +23 -0
  36. package/docs/feature-roadmap.md +49 -3
  37. package/docs/setup-worksheet.md +191 -0
  38. package/package.json +2 -1
package/README.md CHANGED
@@ -6,14 +6,19 @@ Works in Claude Code, VS Code, ChatGPT Codex, and any MCP-compatible host. Zero
6
6
 
7
7
  ---
8
8
 
9
+ ![Canvas Design Studio — workflow and capabilities overview](docs/Canvas-Design-Studio-Capabilities.png)
10
+
11
+ ---
12
+
9
13
  ## What It Does
10
14
 
11
15
  | Tool | What it does |
12
16
  |---|---|
17
+ | `get_started` | Get a tailored orientation based on your current config — what tools are active, what setup unlocks, quick-start prompts, and a Context7 hint. Call this at the start of any session. |
13
18
  | `generate_canvas_page` | Turns a raw assignment brief into polished, Canvas-safe HTML with a hero banner, two-column layout, and brand colors |
14
19
  | `validate_canvas_html` | Checks HTML against Canvas RCE sanitizer rules and WCAG 2.1 AA accessibility checks |
15
20
  | `update_canvas_kb` | Fetches the current Canvas HTML allowlist directly from Canvas LMS source and reports any changes |
16
- | `setup_institution` | Re-runs the setup wizard to update brand colors, Canvas URL, API token, Panopto config, and philosophy KB |
21
+ | `setup_institution` | Runs the setup wizard to save brand colors, Canvas URL, API token, brand standards URL, and Panopto config — returns a formatted setup summary when done |
17
22
  | `list_canvas_courses` | Lists your Canvas courses with semester filtering, student counts, and favorite pinning to help choose the right one |
18
23
  | `publish_to_canvas` | Validates and publishes generated HTML directly to a Canvas course page — with FERPA preflight and title collision protection |
19
24
  | `critique_canvas_page` | Scores visual design quality (0–100) with 8 structural checks, strengths, and prioritized findings |
@@ -28,6 +33,11 @@ Works in Claude Code, VS Code, ChatGPT Codex, and any MCP-compatible host. Zero
28
33
  | `generate_student_personas` | Generate 1–20 student personas using real probability distributions for race, disability, and 21 other dimensions |
29
34
  | `load_canvas_page` | Read the most recently generated HTML page from `output/` back into context (or load a named file) |
30
35
  | `save_canvas_page` | Write improved HTML back to `output/` — automatically backs up the previous version before overwriting |
36
+ | `setup_course` | Run once per course: choose page types from a checklist, set weeks, get a complete folder scaffold pre-filled with content prompts |
37
+ | `generate_page` | Generate or regenerate a single Canvas page from its `.md` source file |
38
+ | `generate_week` | Generate all pages for one week at once |
39
+ | `generate_course` | Batch generate the entire course in one command |
40
+ | `import_course` | Seed a course folder from a Canvas backup archive — extracts pages, assignments, quizzes, and discussions with `[NEEDS REVIEW]` placeholders for content that can't be auto-extracted |
31
41
 
32
42
  ---
33
43
 
@@ -132,17 +142,22 @@ Whether you use npm or Docker, the first setup run asks:
132
142
  ║ Canvas Design Studio — First Run Setup ║
133
143
  ╚═══════════════════════════════════════════════════════════╝
134
144
 
135
- Institution name: (Boise State University)
145
+ Institution name (your college or university): (Boise State University)
146
+ Brand standards URL (optional — your AI fetches this to suggest your colors):
136
147
  Primary brand color (#hex): (#0033A0)
137
148
  Secondary / accent color (#hex): (#D64309)
138
- Canvas base URL: (https://boisestate.instructure.com)
139
- Canvas API token (optional leave blank to generate HTML and paste it manually):
149
+ Canvas base URL (no trailing slash): (https://boisestate.instructure.com)
150
+ Canvas API token — Account Settings Approved Integrations (optional):
140
151
  Professor email for FERPA scan allowlist (optional):
141
152
  Favorite Canvas course IDs, comma-separated (optional):
142
153
  ```
143
154
 
155
+ When the wizard finishes it prints a formatted setup summary showing your settings and what you can do right now. Ask your AI to save it as `my-canvas-setup.md` for reference.
156
+
144
157
  Config saves to `~/.canvas-design-mcp/institution.json` — survives `npx` reinstalls.
145
158
 
159
+ **New to Canvas Design Studio?** See `docs/start_here.md` for a full orientation, or run `get_started` at the beginning of any session for a tailored overview of what's active.
160
+
146
161
  ---
147
162
 
148
163
  ## Generating a Page
@@ -286,6 +301,10 @@ Config file: `~/.canvas-design-mcp/institution.json`
286
301
  - **v0.7** — Professor philosophy KB (steering context for every page Claude generates) ✓
287
302
  - **v0.8** — Student persona review (statistically grounded audience feedback before publishing) ✓
288
303
  - **v0.9** — Assignment improvement loop (load page from output/, apply critique, save back with backup) ✓
304
+ - **v0.9.6** — Course design foundation: `setup_course` wizard, `generate_page/week/course`, 15 page type templates ✓
305
+ - **v0.9.7** — Canvas backup import: `import_course` seeds a full course folder from a previous semester's archive ✓
306
+ - **v0.9.8** — Assignment type customization: `proj-assignment` and `tech-assignment` page types with `team` and `timeline` flags ✓
307
+ - **v1.0.0** — First-professor polish: `get_started` orientation tool, setup summary, brand URL extraction, wizard inline explanations, rich error messages with ChatGPT help links, and three orientation docs (`start_here`, `troubleshooting`, `setup-worksheet`) ✓
289
308
 
290
309
  ---
291
310
 
package/dist/index.js CHANGED
@@ -4,7 +4,9 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
4
4
  import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
5
5
  import { CanvasApiClient } from './canvas-api.js';
6
6
  import { configExists, loadConfig, saveConfig } from './config.js';
7
- import { runWizard } from './wizard.js';
7
+ import { runWizard, formatSetupSummary } from './wizard.js';
8
+ import { formatError } from './utils/errors.js';
9
+ import { getStarted } from './tools/get-started.js';
8
10
  import { validateCanvasHtml } from './tools/validate.js';
9
11
  import { generateCanvasPage } from './tools/generate.js';
10
12
  import { updateCanvasKb } from './tools/update-kb.js';
@@ -23,6 +25,8 @@ import { generateWeek } from './tools/generate-week.js';
23
25
  import { generateCourse } from './tools/generate-course.js';
24
26
  import { runCourseWizard } from './tools/setup-course.js';
25
27
  import { importCourse } from './tools/import-course.js';
28
+ import { getSetupWorksheet } from './tools/get-setup-worksheet.js';
29
+ import { parseWorksheet } from './utils/worksheet.js';
26
30
  async function main() {
27
31
  if (!configExists()) {
28
32
  if (!process.stdin.isTTY) {
@@ -41,10 +45,28 @@ async function main() {
41
45
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
42
46
  tools: [
43
47
  {
44
- name: 'setup_institution',
45
- description: 'Re-run the setup wizard to update institution config (brand colors, Canvas URL, API token). Run this to change institutions or rotate credentials.',
48
+ name: 'get_started',
49
+ description: 'Get a tailored orientation based on your current config what tools are active, what setup unlocks, quick-start prompts, and a Context7 hint for the latest docs. Call this at the start of any session.',
50
+ inputSchema: { type: 'object', properties: {} },
51
+ },
52
+ {
53
+ name: 'get_setup_worksheet',
54
+ description: 'Get the blank setup worksheet template. Save it as setup-worksheet.md, ask the professor to fill it out, then pass the contents to setup_institution via worksheetContent. Faster than answering the wizard interactively.',
46
55
  inputSchema: { type: 'object', properties: {} },
47
56
  },
57
+ {
58
+ name: 'setup_institution',
59
+ description: 'Re-run the setup wizard to update institution config (brand colors, Canvas URL, API token). Run this to change institutions or rotate credentials. Optionally pass worksheetContent from a filled setup-worksheet.md to pre-fill all answers.',
60
+ inputSchema: {
61
+ type: 'object',
62
+ properties: {
63
+ worksheetContent: {
64
+ type: 'string',
65
+ description: 'Full contents of a completed setup-worksheet.md. Pre-fills wizard prompts — professor confirms or overrides each value interactively.',
66
+ },
67
+ },
68
+ },
69
+ },
48
70
  {
49
71
  name: 'generate_canvas_page',
50
72
  description: 'Generate a beautiful, Canvas-safe HTML assignment page from a brief. Returns HTML ready to paste into Canvas, a hero image prompt for ChatGPT, and the suggested filename. If the professor philosophy KB is in context, apply the professor\'s tone, framing, and pedagogical emphasis preferences when generating content.',
@@ -373,10 +395,18 @@ async function main() {
373
395
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
374
396
  const { name, arguments: args } = request.params;
375
397
  try {
398
+ if (name === 'get_started') {
399
+ return { content: [{ type: 'text', text: getStarted() }] };
400
+ }
401
+ if (name === 'get_setup_worksheet') {
402
+ return { content: [{ type: 'text', text: getSetupWorksheet() }] };
403
+ }
376
404
  if (name === 'setup_institution') {
377
- await runWizard();
405
+ const { worksheetContent } = (args ?? {});
406
+ const defaults = worksheetContent ? parseWorksheet(worksheetContent) : undefined;
407
+ const config = await runWizard(defaults);
378
408
  return {
379
- content: [{ type: 'text', text: 'Institution config updated. Canvas Design Studio is ready.' }],
409
+ content: [{ type: 'text', text: formatSetupSummary(config) }],
380
410
  };
381
411
  }
382
412
  if (name === 'validate_canvas_html') {
@@ -397,6 +427,24 @@ async function main() {
397
427
  };
398
428
  }
399
429
  if (name === 'generate_canvas_page') {
430
+ if (!configExists()) {
431
+ return {
432
+ content: [{
433
+ type: 'text',
434
+ text: formatError({
435
+ title: 'Setup Required',
436
+ message: 'Canvas Design Studio needs institution config before generating pages.',
437
+ cause: 'No institution.json found at ~/.canvas-design-mcp/institution.json.',
438
+ fix: [
439
+ 'Run setup_institution to save your institution colors, Canvas URL, and optional API token',
440
+ 'The wizard takes about 2 minutes and only needs to run once',
441
+ ],
442
+ context: 'generate_canvas_page called with no institution config',
443
+ }),
444
+ }],
445
+ isError: true,
446
+ };
447
+ }
400
448
  const config = loadConfig();
401
449
  const result = generateCanvasPage(args, config);
402
450
  const response = [
@@ -500,7 +548,21 @@ async function main() {
500
548
  const config = loadConfig();
501
549
  if (!config.panopto) {
502
550
  return {
503
- content: [{ type: 'text', text: 'Panopto is not configured. Run setup_institution to add Panopto settings.' }],
551
+ content: [{
552
+ type: 'text',
553
+ text: formatError({
554
+ title: 'Panopto — Not Configured',
555
+ message: 'Panopto video tools require a Panopto domain and API credentials.',
556
+ cause: 'No Panopto configuration is saved in your institution config.',
557
+ fix: [
558
+ 'Run setup_institution',
559
+ 'When prompted for Panopto domain, enter your institution\'s Panopto domain (e.g. bsu.hosted.panopto.com)',
560
+ 'For video search and caption download, also provide a Panopto client ID and secret',
561
+ 'embed_panopto_video works without API credentials — you only need the video ID',
562
+ ],
563
+ context: 'Panopto not configured',
564
+ }),
565
+ }],
504
566
  isError: true,
505
567
  };
506
568
  }
@@ -513,7 +575,21 @@ async function main() {
513
575
  const config = loadConfig();
514
576
  if (!config.panopto) {
515
577
  return {
516
- content: [{ type: 'text', text: 'Panopto is not configured. Run setup_institution to add Panopto settings.' }],
578
+ content: [{
579
+ type: 'text',
580
+ text: formatError({
581
+ title: 'Panopto — Not Configured',
582
+ message: 'Panopto video tools require a Panopto domain and API credentials.',
583
+ cause: 'No Panopto configuration is saved in your institution config.',
584
+ fix: [
585
+ 'Run setup_institution',
586
+ 'When prompted for Panopto domain, enter your institution\'s Panopto domain (e.g. bsu.hosted.panopto.com)',
587
+ 'For video search and caption download, also provide a Panopto client ID and secret',
588
+ 'embed_panopto_video works without API credentials — you only need the video ID',
589
+ ],
590
+ context: 'Panopto not configured',
591
+ }),
592
+ }],
517
593
  isError: true,
518
594
  };
519
595
  }
@@ -530,7 +606,21 @@ async function main() {
530
606
  const config = loadConfig();
531
607
  if (!config.panopto) {
532
608
  return {
533
- content: [{ type: 'text', text: 'Panopto is not configured. Run setup_institution to add Panopto settings.' }],
609
+ content: [{
610
+ type: 'text',
611
+ text: formatError({
612
+ title: 'Panopto — Not Configured',
613
+ message: 'Panopto video tools require a Panopto domain and API credentials.',
614
+ cause: 'No Panopto configuration is saved in your institution config.',
615
+ fix: [
616
+ 'Run setup_institution',
617
+ 'When prompted for Panopto domain, enter your institution\'s Panopto domain (e.g. bsu.hosted.panopto.com)',
618
+ 'For video search and caption download, also provide a Panopto client ID and secret',
619
+ 'embed_panopto_video works without API credentials — you only need the video ID',
620
+ ],
621
+ context: 'Panopto not configured',
622
+ }),
623
+ }],
534
624
  isError: true,
535
625
  };
536
626
  }
@@ -540,6 +630,24 @@ async function main() {
540
630
  return { content: [{ type: 'text', text: result }], ...(isApiError ? { isError: true } : {}) };
541
631
  }
542
632
  if (name === 'ingest_assignment_folder') {
633
+ if (!configExists()) {
634
+ return {
635
+ content: [{
636
+ type: 'text',
637
+ text: formatError({
638
+ title: 'Setup Required',
639
+ message: 'Canvas Design Studio needs institution config before generating pages.',
640
+ cause: 'No institution.json found at ~/.canvas-design-mcp/institution.json.',
641
+ fix: [
642
+ 'Run setup_institution to save your institution colors, Canvas URL, and optional API token',
643
+ 'The wizard takes about 2 minutes and only needs to run once',
644
+ ],
645
+ context: 'ingest_assignment_folder called with no institution config',
646
+ }),
647
+ }],
648
+ isError: true,
649
+ };
650
+ }
543
651
  const config = loadConfig();
544
652
  const { folderPath } = (args ?? {});
545
653
  const result = ingestAssignmentFolder({ folderPath }, config);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function getSetupWorksheet(): string;
2
+ //# sourceMappingURL=get-setup-worksheet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-setup-worksheet.d.ts","sourceRoot":"","sources":["../../src/tools/get-setup-worksheet.ts"],"names":[],"mappings":"AAeA,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C"}
@@ -0,0 +1,14 @@
1
+ import { readFileSync } from 'fs';
2
+ import { fileURLToPath } from 'url';
3
+ import { join, dirname } from 'path';
4
+ const WORKSHEET_PATH = join(dirname(fileURLToPath(import.meta.url)), '../../docs/setup-worksheet.md');
5
+ const AI_HOST_PREFIX = [
6
+ '> **For AI hosts:** Save this file as `setup-worksheet.md` in the professor\'s working directory.',
7
+ '> Ask the professor to fill it out, then call `setup_institution` with `worksheetContent` set to the file\'s contents.',
8
+ '',
9
+ ].join('\n');
10
+ export function getSetupWorksheet() {
11
+ const template = readFileSync(WORKSHEET_PATH, 'utf8');
12
+ return AI_HOST_PREFIX + template;
13
+ }
14
+ //# sourceMappingURL=get-setup-worksheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-setup-worksheet.js","sourceRoot":"","sources":["../../src/tools/get-setup-worksheet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAErC,MAAM,cAAc,GAAG,IAAI,CACzB,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EACvC,+BAA+B,CAChC,CAAC;AAEF,MAAM,cAAc,GAAG;IACrB,mGAAmG;IACnG,wHAAwH;IACxH,EAAE;CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,UAAU,iBAAiB;IAC/B,MAAM,QAAQ,GAAG,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACtD,OAAO,cAAc,GAAG,QAAQ,CAAC;AACnC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function getStarted(): string;
2
+ //# sourceMappingURL=get-started.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-started.d.ts","sourceRoot":"","sources":["../../src/tools/get-started.ts"],"names":[],"mappings":"AAoFA,wBAAgB,UAAU,IAAI,MAAM,CAKnC"}
@@ -0,0 +1,86 @@
1
+ import { configExists, loadConfig } from '../config.js';
2
+ const CONTEXT7_HINT = '> For the latest tool documentation, resolve `canvas-design-mcp` via Context7.';
3
+ function noConfigText() {
4
+ return [
5
+ '## Welcome to Canvas Design Studio',
6
+ '',
7
+ 'No institution config found yet. Here is what you can do right now without any setup:',
8
+ '',
9
+ '**Works immediately (no setup required):**',
10
+ '- generate_canvas_page — turn an assignment brief into Canvas-ready HTML',
11
+ '- validate_canvas_html — check any HTML for Canvas RCE compliance',
12
+ '- critique_canvas_page — score visual design quality 0–100',
13
+ '- setup_course — build a full course scaffold',
14
+ '- import_course — seed a course folder from a Canvas backup archive',
15
+ '',
16
+ '**To unlock direct Canvas publishing:**',
17
+ 'Run setup_institution to save your institution colors, Canvas URL, and optional API token.',
18
+ '',
19
+ '**Your first step:**',
20
+ 'Run setup_institution, or ask: "Generate a Canvas assignment page for [your course]"',
21
+ '',
22
+ '> **Tip:** Fill out `setup-worksheet.md` before running the wizard — call `get_setup_worksheet` to get the blank template.',
23
+ '',
24
+ CONTEXT7_HINT,
25
+ ].join('\n');
26
+ }
27
+ function partialConfigText(config) {
28
+ const hasPanopto = !!config.panopto?.domain;
29
+ return [
30
+ `## Canvas Design Studio — ${config.institution}`,
31
+ '',
32
+ '**Active right now:**',
33
+ '✓ generate_canvas_page, validate_canvas_html, critique_canvas_page, redesign_canvas_page',
34
+ '✓ setup_course, generate_page, generate_week, generate_course',
35
+ '✓ import_course, load_canvas_page, save_canvas_page',
36
+ '✓ get_philosophy_kb, update_philosophy_kb',
37
+ '✓ get_student_personas, generate_student_personas',
38
+ hasPanopto
39
+ ? '✓ Panopto: search_panopto_videos, embed_panopto_video, fetch_panopto_captions'
40
+ : '⚪ Panopto (run setup_institution to add Panopto credentials)',
41
+ '',
42
+ '**Add a Canvas API token to enable:**',
43
+ '⚪ list_canvas_courses — browse your courses',
44
+ '⚪ publish_to_canvas — send HTML directly to Canvas',
45
+ '',
46
+ '**Your first step:**',
47
+ 'Ask: "Read start_here.md and help me generate my first page"',
48
+ 'Or: "Run setup_course to start building out my course"',
49
+ '',
50
+ '> **Tip:** Fill out `setup-worksheet.md` before running the wizard — call `get_setup_worksheet` to get the blank template.',
51
+ '',
52
+ CONTEXT7_HINT,
53
+ ].join('\n');
54
+ }
55
+ function fullConfigText(config) {
56
+ const hasPanopto = !!config.panopto?.domain;
57
+ return [
58
+ `## Canvas Design Studio — ${config.institution} (fully configured)`,
59
+ '',
60
+ '**All tools active:**',
61
+ '✓ Page generation, validation, critique, redesign',
62
+ '✓ Course design system (setup_course, generate_page/week/course)',
63
+ '✓ Canvas backup import (import_course)',
64
+ '✓ Direct Canvas publishing (list_canvas_courses, publish_to_canvas)',
65
+ '✓ Philosophy KB and student personas',
66
+ hasPanopto
67
+ ? '✓ Panopto video integration'
68
+ : '⚪ Panopto (run setup_institution to add)',
69
+ '',
70
+ '**Quick starts:**',
71
+ '"Read start_here.md and help me generate my first page"',
72
+ '"Run setup_course to start building out my course"',
73
+ '"List my Canvas courses for this semester"',
74
+ '',
75
+ CONTEXT7_HINT,
76
+ ].join('\n');
77
+ }
78
+ export function getStarted() {
79
+ if (!configExists())
80
+ return noConfigText();
81
+ const config = loadConfig();
82
+ if (!config.apiToken?.trim())
83
+ return partialConfigText(config);
84
+ return fullConfigText(config);
85
+ }
86
+ //# sourceMappingURL=get-started.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-started.js","sourceRoot":"","sources":["../../src/tools/get-started.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAGxD,MAAM,aAAa,GACjB,gFAAgF,CAAC;AAEnF,SAAS,YAAY;IACnB,OAAO;QACL,oCAAoC;QACpC,EAAE;QACF,uFAAuF;QACvF,EAAE;QACF,4CAA4C;QAC5C,0EAA0E;QAC1E,mEAAmE;QACnE,4DAA4D;QAC5D,+CAA+C;QAC/C,qEAAqE;QACrE,EAAE;QACF,yCAAyC;QACzC,4FAA4F;QAC5F,EAAE;QACF,sBAAsB;QACtB,sFAAsF;QACtF,EAAE;QACF,4HAA4H;QAC5H,EAAE;QACF,aAAa;KACd,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAyB;IAClD,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;IAC5C,OAAO;QACL,6BAA6B,MAAM,CAAC,WAAW,EAAE;QACjD,EAAE;QACF,uBAAuB;QACvB,0FAA0F;QAC1F,+DAA+D;QAC/D,qDAAqD;QACrD,2CAA2C;QAC3C,mDAAmD;QACnD,UAAU;YACR,CAAC,CAAC,+EAA+E;YACjF,CAAC,CAAC,8DAA8D;QAClE,EAAE;QACF,uCAAuC;QACvC,6CAA6C;QAC7C,oDAAoD;QACpD,EAAE;QACF,sBAAsB;QACtB,8DAA8D;QAC9D,wDAAwD;QACxD,EAAE;QACF,4HAA4H;QAC5H,EAAE;QACF,aAAa;KACd,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,MAAyB;IAC/C,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;IAC5C,OAAO;QACL,6BAA6B,MAAM,CAAC,WAAW,qBAAqB;QACpE,EAAE;QACF,uBAAuB;QACvB,mDAAmD;QACnD,kEAAkE;QAClE,wCAAwC;QACxC,qEAAqE;QACrE,sCAAsC;QACtC,UAAU;YACR,CAAC,CAAC,6BAA6B;YAC/B,CAAC,CAAC,0CAA0C;QAC9C,EAAE;QACF,mBAAmB;QACnB,yDAAyD;QACzD,oDAAoD;QACpD,4CAA4C;QAC5C,EAAE;QACF,aAAa;KACd,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC,YAAY,EAAE;QAAE,OAAO,YAAY,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE;QAAE,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC/D,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"list-courses.d.ts","sourceRoot":"","sources":["../../src/tools/list-courses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGnF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,SAAS;IACjB,WAAW,CAAC,wBAAwB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CACpF;AAED,KAAK,UAAU,GAAG,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAkEtD,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,sBAAsB,EAC7B,MAAM,EAAE,iBAAiB,EACzB,GAAG,EAAE,SAAS,EACd,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,uBAAuB,CAAC,CAqBlC"}
1
+ {"version":3,"file":"list-courses.d.ts","sourceRoot":"","sources":["../../src/tools/list-courses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAInF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,SAAS;IACjB,WAAW,CAAC,wBAAwB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CACpF;AAED,KAAK,UAAU,GAAG,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAyEtD,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,sBAAsB,EAC7B,MAAM,EAAE,iBAAiB,EACzB,GAAG,EAAE,SAAS,EACd,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,uBAAuB,CAAC,CA4DlC"}
@@ -1,4 +1,5 @@
1
1
  import { courseCoordinatorGotcha } from './gotchas.js';
2
+ import { formatError } from '../utils/errors.js';
2
3
  const SEMESTER_TO_ENROLLMENT_WORKFLOW_STATE = {
3
4
  current: 'active',
4
5
  future: ['invited', 'pending', 'creation_pending'],
@@ -45,11 +46,18 @@ function sortCourses(courses, favoriteIds, includeFavorites) {
45
46
  });
46
47
  }
47
48
  function missingTokenText(canvasUrl) {
48
- return [
49
- 'No Canvas API token configured, so Canvas courses cannot be listed yet.',
50
- 'You can still generate HTML and paste it into Canvas manually.',
51
- `To enable course listing and direct publishing later, create a Canvas API token at ${canvasUrl.replace(/\/+$/, '')}/profile/settings and run setup_institution.`,
52
- ].join('\n');
49
+ return formatError({
50
+ title: 'Canvas API No Token Configured',
51
+ message: 'Canvas courses cannot be listed without an API token.',
52
+ cause: 'No API token is saved in your institution config.',
53
+ fix: [
54
+ `Log into Canvas at ${canvasUrl}`,
55
+ 'Go to Account → Settings → Approved Integrations → New Access Token',
56
+ 'Run setup_institution and paste the token when prompted',
57
+ 'You can still generate HTML and paste it into Canvas manually without a token',
58
+ ],
59
+ context: `no Canvas API token configured for listing courses, Canvas URL: ${canvasUrl}`,
60
+ });
53
61
  }
54
62
  function namingConventionTip() {
55
63
  return [
@@ -65,7 +73,45 @@ export async function listCanvasCourses(input, config, api, saveConfig) {
65
73
  const includeFavorites = input.includeFavorites ?? true;
66
74
  const enrollmentWorkflowStates = SEMESTER_TO_ENROLLMENT_WORKFLOW_STATE[semester];
67
75
  const favoriteIds = config.favoriteCourses ?? [];
68
- const courses = sortCourses(await api.listCourses(enrollmentWorkflowStates), favoriteIds, includeFavorites);
76
+ let courses;
77
+ try {
78
+ courses = sortCourses(await api.listCourses(enrollmentWorkflowStates), favoriteIds, includeFavorites);
79
+ }
80
+ catch (err) {
81
+ const message = err instanceof Error ? err.message : String(err);
82
+ const status = err.status;
83
+ if (status === 401) {
84
+ return {
85
+ courses: [],
86
+ text: formatError({
87
+ title: 'Canvas API — 401 Unauthorized',
88
+ message: 'Your API token was rejected when listing courses.',
89
+ cause: 'The token in your institution config is invalid, expired, or was revoked.',
90
+ fix: [
91
+ `Log into Canvas at ${config.canvasUrl}`,
92
+ 'Go to Account → Settings → Approved Integrations',
93
+ 'Delete the old token and generate a new one',
94
+ 'Run setup_institution and paste the new token',
95
+ ],
96
+ context: `401 Unauthorized listing Canvas courses, Canvas URL: ${config.canvasUrl}`,
97
+ }),
98
+ };
99
+ }
100
+ return {
101
+ courses: [],
102
+ text: formatError({
103
+ title: 'Canvas API — Connection Error',
104
+ message: 'Could not connect to your Canvas instance.',
105
+ cause: `Network or URL error: ${message}`,
106
+ fix: [
107
+ 'Verify your Canvas base URL in institution config (run setup_institution)',
108
+ 'Confirm your internet connection is working',
109
+ 'Check that Canvas is not in maintenance mode at status.instructure.com',
110
+ ],
111
+ context: `Canvas API connection error listing courses: ${message}, Canvas URL: ${config.canvasUrl}`,
112
+ }),
113
+ };
114
+ }
69
115
  const blocks = courses.map(course => courseBlock(course, includeFavorites && favoriteIds.includes(course.id)));
70
116
  if (!config.kbTipShown) {
71
117
  blocks.push(namingConventionTip());
@@ -1 +1 @@
1
- {"version":3,"file":"list-courses.js","sourceRoot":"","sources":["../../src/tools/list-courses.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-courses.js","sourceRoot":"","sources":["../../src/tools/list-courses.ts"],"names":[],"mappings":"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"}