@jamestesting888/tum-mcp 0.9.4 → 0.10.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/CHANGELOG.md +25 -0
- package/README.md +5 -4
- package/docs/development.md +20 -1
- package/docs/lecture-notes.md +15 -3
- package/docs/setup.md +11 -1
- package/docs/study.md +71 -2
- package/docs/tum-mcp.md +5 -1
- package/npm/backend/manifest.json +2 -2
- package/npm/backend/{tum_mcp-0.9.4-py3-none-any.whl → tum_mcp-0.10.0-py3-none-any.whl} +0 -0
- package/npm/tum-mcp.mjs +5 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# Changes
|
|
2
2
|
|
|
3
|
+
## 0.10.0 — 2026-10-27
|
|
4
|
+
|
|
5
|
+
- Add the optional `video-notes` extension (`tum-mcp install video-notes`): short
|
|
6
|
+
narrated, animated explainers from prepared Study topics, one per selected topic,
|
|
7
|
+
under the course's `videos/` folder. The skill plans storyboards from the prepared
|
|
8
|
+
content only; `tum-mcp video-notes` checks storyboards, measures narration, renders
|
|
9
|
+
with a pinned Manim/Typst runtime installed on first use, verifies sync, loudness,
|
|
10
|
+
captions and layout, and publishes with receipts, archives and crash recovery.
|
|
11
|
+
- Play published videos in the local app above each topic's Content, with chapters,
|
|
12
|
+
captions, a transcript and a notice when the topic changed after the video was made.
|
|
13
|
+
Hosted study sites never request or include videos.
|
|
14
|
+
- Keep extension selections forward compatible: unknown on/off settings from newer
|
|
15
|
+
releases are preserved, and the video setting is only written when enabled.
|
|
16
|
+
- Use NVIDIA GPUs for Prepare Lecture recognition on Windows x64 and Linux/WSL x86_64.
|
|
17
|
+
`auto` selects CUDA for a CUDA 12 GPU of compute capability 7.0+, adds a pinned cuBLAS to
|
|
18
|
+
the runtime (no CUDA toolkit or cuDNN), checks the GPU during installation and
|
|
19
|
+
otherwise stays on CPU int8. `TUM_MCP_LECTURE_ENGINE` also accepts `cuda`.
|
|
20
|
+
- Document the eSpeak data path limit that breaks local Kokoro on macOS in Audio Notes.
|
|
21
|
+
- Keep the local course app loading on Windows: the preview server now queues the
|
|
22
|
+
app's burst of parallel module requests instead of refusing all but five.
|
|
23
|
+
|
|
24
|
+
## 0.9.5 — 2026-10-27
|
|
25
|
+
|
|
26
|
+
- Simplify the course project overview wording.
|
|
27
|
+
|
|
3
28
|
## 0.9.4 — 2026-10-27
|
|
4
29
|
|
|
5
30
|
- Document the course project folders, including optional extension outputs.
|
package/README.md
CHANGED
|
@@ -51,16 +51,18 @@ Run `tum-mcp install` to choose extensions, then reload your client.
|
|
|
51
51
|
| `lecture` | `prepare-lecture` | Lecture Notes with the professor's extra explanations, timestamps and selected critical visuals. Prefers transcripts and slides; local recognition is optional. |
|
|
52
52
|
| `studocu` | `sync-studocu` | Search and collect selected supplementary PDFs saved in your browser. Personal use only; excluded from published sites. |
|
|
53
53
|
| `audio-notes` | `audio-notes` | Turn prepared Study lessons into concise audio tracks, with resumable generation and coverage tracking. Voice setup happens when used. |
|
|
54
|
+
| `video-notes` | `video-notes` | Turn prepared Study topics into short narrated, animated explainers that play inside the local app, with checked sync, captions and layout. The render runtime installs when first used. |
|
|
54
55
|
|
|
55
56
|
Use `tum-mcp doctor` to see installed workflows and `tum-mcp uninstall` to remove
|
|
56
57
|
them.
|
|
57
58
|
|
|
58
59
|
[Lecture and recognition](docs/lecture-notes.md) ·
|
|
59
|
-
[Studocu collection](docs/study.md#studocu-materials) ·
|
|
60
|
+
[Studocu collection](docs/study.md#studocu-materials) ·
|
|
61
|
+
[Video Notes](docs/study.md#create-and-maintain-video-notes) · [Setup details](docs/setup.md)
|
|
60
62
|
|
|
61
63
|
## Course project
|
|
62
64
|
|
|
63
|
-
|
|
65
|
+
After initialization, a course project looks something like this:
|
|
64
66
|
|
|
65
67
|
```text
|
|
66
68
|
course/
|
|
@@ -74,10 +76,9 @@ course/
|
|
|
74
76
|
lecture-assets/ Optional: selected lecture figures
|
|
75
77
|
.tum-mcp/ Private course state, comments and lecture evidence
|
|
76
78
|
audio/ Optional: scripts, tracks and chapters for Audio Notes
|
|
79
|
+
videos/ Optional: storyboards, scenes and explainer videos for Video Notes
|
|
77
80
|
```
|
|
78
81
|
|
|
79
|
-
Existing projects may use `study/` instead of `app/`.
|
|
80
|
-
|
|
81
82
|
## Privacy, updates and removal
|
|
82
83
|
|
|
83
84
|
Sessions are encrypted locally. Your agent uses your configured AI provider to
|
package/docs/development.md
CHANGED
|
@@ -70,6 +70,9 @@ Desktop jobs additionally install the optional hash-locked CPU recognizer and
|
|
|
70
70
|
transcribe the synthetic speech fixture; supported Apple Silicon runners also
|
|
71
71
|
exercise MLX. This explicit test downloads public pinned model files, never campus
|
|
72
72
|
recordings. Ordinary test runs skip it unless `TUM_MCP_LECTURE_ASR_INTEGRATION=1`.
|
|
73
|
+
Linux and Windows jobs also install the hash-locked CUDA runtime and load its pinned
|
|
74
|
+
cuBLAS the way CTranslate2 does, without a GPU (`TUM_MCP_LECTURE_CUDA_LIBRARIES=1`);
|
|
75
|
+
GPU inference itself runs in the native test only on a host with an NVIDIA GPU.
|
|
73
76
|
Recognition runs before package lifecycle checks to expose native dependency
|
|
74
77
|
failures early. Windows also runs the affected browser/UTF-8 fixture checks first.
|
|
75
78
|
Its complete job budget is 35 minutes for native ACL and subprocess coverage;
|
|
@@ -105,7 +108,8 @@ tag and artifact integrity before pushing the release documentation.
|
|
|
105
108
|
| `src/tum_mcp/credentials.py`, `transport.py`, `settings.py` | Shared campus credential vault, HTTP transport and account policy |
|
|
106
109
|
| `src/tum_mcp/client_*.py` | Host-specific configuration and managed skill installation |
|
|
107
110
|
| `src/tum_mcp/study_*.py` | Course snapshots, teaching, build, preview and project-local passage comments |
|
|
108
|
-
| `src/tum_mcp/bundled/skills/` | Canonical versioned source of reading, study and
|
|
111
|
+
| `src/tum_mcp/bundled/skills/` | Canonical versioned source of reading, study, audio and video skills and their references/assets |
|
|
112
|
+
| `src/tum_mcp/video_*.py`, `bundled/video_runtime/` | Video Notes contracts, lint, media checks, orchestration and the isolated render worker |
|
|
109
113
|
| `npm/` | Private-runtime installation, updates, integrity and cleanup |
|
|
110
114
|
| `tests/` | Synthetic backend, package and owned-browser checks |
|
|
111
115
|
|
|
@@ -147,6 +151,21 @@ session reuse. Automated synthetic sign-in does not certify human SSO on every O
|
|
|
147
151
|
For UI changes, exercise the generated app at narrow/wide widths in both themes;
|
|
148
152
|
check keyboard navigation, reduced motion, source links and retained progress.
|
|
149
153
|
|
|
154
|
+
## Optional Video Notes runtime
|
|
155
|
+
|
|
156
|
+
`install video-notes` only selects the workflow. `tum-mcp video-notes runtime install`
|
|
157
|
+
creates a uv venv per lock under the data directory from
|
|
158
|
+
`bundled/video_runtime/requirements.lock` (universal, hash-pinned). Everything is a
|
|
159
|
+
wheel except `pycairo`, `manimpango` and `srt`, which build from hashed sources; the
|
|
160
|
+
locked `pkgconf` wheel is installed first and provides `pkg-config`. Regenerate the
|
|
161
|
+
lock with the command in its header. Helper code (`vnotes/`, `worker.py`, fonts) runs
|
|
162
|
+
from the package, so changing it never reinstalls the runtime; it does change the
|
|
163
|
+
render profile and therefore the chapter cache. Default tests use a fake worker and
|
|
164
|
+
the synthetic media in `tests/fixtures/video/` (`generate.py` recreates them). Set
|
|
165
|
+
`TUM_MCP_VIDEO_RENDER_INTEGRATION=1` to install the real runtime into a temporary
|
|
166
|
+
data directory and render, mix, check and publish a synthetic video; the browser
|
|
167
|
+
playback tests also run WebKit when Playwright's WebKit is installed.
|
|
168
|
+
|
|
150
169
|
## Optional Lecture extension
|
|
151
170
|
|
|
152
171
|
Base setup exposes five workflows and no `tum_live_*` tools. `install lecture`
|
package/docs/lecture-notes.md
CHANGED
|
@@ -64,8 +64,9 @@ revision-pinned public model weights; neither is part of the base runtime.
|
|
|
64
64
|
| Apple Silicon macOS 15+ | MLX acceleration by default |
|
|
65
65
|
| Apple Silicon macOS 14 | CPU int8 |
|
|
66
66
|
| Intel macOS 13+ | CPU int8 |
|
|
67
|
-
| Windows x64 | CPU int8; Microsoft Visual C++ runtime required |
|
|
68
|
-
| Linux/WSL x86_64
|
|
67
|
+
| Windows x64 | NVIDIA CUDA when a GPU is detected, otherwise CPU int8; Microsoft Visual C++ runtime required |
|
|
68
|
+
| Linux/WSL x86_64, glibc 2.28+ | NVIDIA CUDA when a GPU is detected, otherwise CPU int8 |
|
|
69
|
+
| Linux ARM64, glibc 2.28+ | CPU int8 |
|
|
69
70
|
|
|
70
71
|
Native Windows ARM64, 32-bit systems and musl Linux have no supported locked
|
|
71
72
|
runtime. Use captions/imported WebVTT there. CPU inference requires compatible
|
|
@@ -80,9 +81,20 @@ video frames. They are unnecessary for imported captions and cached text.
|
|
|
80
81
|
`lecture runtime status` reports the selected engine and missing prerequisites.
|
|
81
82
|
Use `lecture runtime install` to retry after fixing a prerequisite. Advanced users
|
|
82
83
|
can set `TUM_MCP_LECTURE_ENGINE=cpu` consistently for installation and preparation
|
|
83
|
-
to bypass Metal; the default `auto` retains existing MLX runtimes and model caches.
|
|
84
|
+
to bypass Metal or CUDA; the default `auto` retains existing MLX runtimes and model caches.
|
|
84
85
|
An engine switch uses separate caches. No cloud transcription API is configured.
|
|
85
86
|
|
|
87
|
+
On Windows x64 and Linux/WSL x86_64, `auto` uses an NVIDIA GPU of compute capability
|
|
88
|
+
7.0 or newer (GTX 16, RTX 20 series and later) when its driver supports CUDA 12
|
|
89
|
+
(driver 525 or newer); older GPUs stay on CPU. Only the driver is needed: the runtime
|
|
90
|
+
adds a pinned cuBLAS (about 600 MB) and decodes in float16, without a CUDA toolkit
|
|
91
|
+
or cuDNN. Installation first creates a cuBLAS handle on the GPU. If that fails,
|
|
92
|
+
automatic selection records it (`lecture-runtime/cuda-unusable.json` in the data
|
|
93
|
+
directory) and installs the CPU runtime instead, so `tum-mcp update` keeps working.
|
|
94
|
+
After a driver fix, `TUM_MCP_LECTURE_ENGINE=cuda tum-mcp lecture runtime install`
|
|
95
|
+
retries and, on success, clears that record. `cuda` never falls back silently;
|
|
96
|
+
`lecture runtime status` shows when a GPU was declined.
|
|
97
|
+
|
|
86
98
|
CPU decoding uses int8, one worker and at most four threads. It consumes the full
|
|
87
99
|
retained audio, with word timestamps and no VAD retiming. ASR remains fallible,
|
|
88
100
|
especially for names and notation; compare important wording with slides and the
|
package/docs/setup.md
CHANGED
|
@@ -38,6 +38,15 @@ Audio Notes is optional: use `tum-mcp install audio-notes`. It adds the
|
|
|
38
38
|
`audio-notes` skill for prepared Study content; synthesis is set up when used.
|
|
39
39
|
Existing course audio is retained when the extension is disabled.
|
|
40
40
|
|
|
41
|
+
Video Notes is optional: use `tum-mcp install video-notes`. It adds the
|
|
42
|
+
`video-notes` skill and the `tum-mcp video-notes` commands for prepared Study content.
|
|
43
|
+
Its render runtime (about 320 MB) installs on first use; `tum-mcp video-notes runtime
|
|
44
|
+
status` lists any prerequisite (macOS: `brew install cairo`; Linux/WSL: Cairo and
|
|
45
|
+
Pango development packages and a C compiler) without installing it. Course videos are
|
|
46
|
+
retained when the extension is disabled. Clients pinned to a runtime generation older
|
|
47
|
+
than this release cannot read the enabled Video Notes setting and would hide Studocu
|
|
48
|
+
tools; refresh them with `tum-mcp update` or `setup --client NAME`.
|
|
49
|
+
|
|
41
50
|
## Terminal output
|
|
42
51
|
|
|
43
52
|
`tum-mcp doctor` is the overview for saved connections, optional extensions,
|
|
@@ -229,7 +238,8 @@ protected. `--forget-credentials` removes saved local credentials and session
|
|
|
229
238
|
keys; it does not revoke remote credentials. Settings, custom skills, course
|
|
230
239
|
cache, downloads and assignment work are retained by these commands.
|
|
231
240
|
No command recursively deletes the campus
|
|
232
|
-
data root. Course audio and optional
|
|
241
|
+
data root. Course audio and videos, the optional video render runtime and shared
|
|
242
|
+
speech models/runtimes also remain.
|
|
233
243
|
Remove a shared speech cache only when explicitly requested and no other course
|
|
234
244
|
needs it; its host paths are documented in the audio skill. If removal is
|
|
235
245
|
interrupted, run `tum-mcp setup --client NAME` to recover before reuse.
|
package/docs/study.md
CHANGED
|
@@ -8,7 +8,8 @@ The optional `prepare-lecture` skill adds a Lecture Notes workspace; install it
|
|
|
8
8
|
`tum-mcp install lecture`. See [Lecture Notes](lecture-notes.md).
|
|
9
9
|
The optional `sync-studocu` skill collects selected student-uploaded material separately.
|
|
10
10
|
The optional `audio-notes` skill turns prepared lessons into spoken tracks; install
|
|
11
|
-
it with `tum-mcp install audio-notes`.
|
|
11
|
+
it with `tum-mcp install audio-notes`. The optional `video-notes` skill turns prepared
|
|
12
|
+
topics into short narrated explainer videos; install it with `tum-mcp install video-notes`.
|
|
12
13
|
|
|
13
14
|
## Start with one course
|
|
14
15
|
|
|
@@ -43,6 +44,7 @@ pse-ws26/
|
|
|
43
44
|
content.json Optional source-backed Study content
|
|
44
45
|
exercises.json Optional prepared exercise guidance
|
|
45
46
|
audio/ Optional category audio derived from the prepared website
|
|
47
|
+
videos/ Optional explainer videos derived from the prepared website
|
|
46
48
|
```
|
|
47
49
|
|
|
48
50
|
`AGENTS.md` retains user rules and points agents to `.tum-mcp/course.md`. That short
|
|
@@ -241,7 +243,7 @@ previously managed lecture images. A notes-only export with notes excluded is re
|
|
|
241
243
|
|
|
242
244
|
Only the selected generated website renderer and data are uploaded. Downloaded
|
|
243
245
|
originals, credentials, AGENTS.md, study inventory, passage comments, progress,
|
|
244
|
-
audio and arbitrary files stay local. Git itself is not required: the publisher
|
|
246
|
+
audio, videos and arbitrary files stay local. Git itself is not required: the publisher
|
|
245
247
|
uses authenticated GitHub API calls through `gh`. Local publication settings do
|
|
246
248
|
not contain credentials.
|
|
247
249
|
|
|
@@ -339,6 +341,73 @@ for the updated study website”** to reconcile added, changed, removed or moved
|
|
|
339
341
|
material with the previous verified coverage. This is an agent skill, not a new
|
|
340
342
|
`tum-mcp study` CLI subcommand or a built-in speech service.
|
|
341
343
|
|
|
344
|
+
## Create and maintain video notes
|
|
345
|
+
|
|
346
|
+
Install the optional workflow with `tum-mcp install video-notes`. After
|
|
347
|
+
`prepare-study` has authored the course, ask for explainer videos, for example:
|
|
348
|
+
|
|
349
|
+
```text
|
|
350
|
+
Plan explainer videos for the topics in this study website that benefit from animation,
|
|
351
|
+
then make the BFS one first.
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
The agent proposes which topics get a video and records a reason for each topic it
|
|
355
|
+
leaves text-first. Each video covers one topic, usually 3 to 8 minutes, in short
|
|
356
|
+
chapters. It is a visual adaptation of the prepared lesson: the problem first, the
|
|
357
|
+
course's own example before the general rule, consistent colors per symbol, one or
|
|
358
|
+
two pause-and-think questions from the topic's practice, and a short recap. Nothing
|
|
359
|
+
outside the prepared content is added; a missing example is reported back to
|
|
360
|
+
`prepare-study`.
|
|
361
|
+
|
|
362
|
+
Behind the skill, `tum-mcp video-notes` does the checkable work. It prints the
|
|
363
|
+
fingerprints a storyboard cites and rejects storyboards whose sources changed. It
|
|
364
|
+
measures one narration file per sentence and renders the scenes with a pinned Manim
|
|
365
|
+
and Typst runtime (no LaTeX needed). It enforces that animations fit their narration
|
|
366
|
+
frame by frame and reports overlapping or off-screen text. Each run produces a
|
|
367
|
+
contact sheet per chapter for review, and the final video is checked for codec,
|
|
368
|
+
sync, loudness, captions and chapters before publication. Unchanged chapters are
|
|
369
|
+
reused, interrupted runs resume, and a failed publication restores the previous
|
|
370
|
+
files.
|
|
371
|
+
|
|
372
|
+
Narration follows the Audio Notes policy: the free ElevenLabs website when it really
|
|
373
|
+
generates and downloads the text, otherwise local Kokoro, with no accounts or
|
|
374
|
+
payments. Kokoro has no German voice, so a German topic without a working voice
|
|
375
|
+
keeps its narration pending; a silent draft can be rendered for review but is never
|
|
376
|
+
published.
|
|
377
|
+
|
|
378
|
+
```text
|
|
379
|
+
videos/
|
|
380
|
+
plan.json Which topics get videos, and why others are text-first
|
|
381
|
+
storyboards/03_topic.json Beats, narration, on-screen items and source locators
|
|
382
|
+
scenes/03_topic/chapters.py Manim scenes using the bundled helpers
|
|
383
|
+
tracks/03_topic.mp4 Published H.264/AAC video
|
|
384
|
+
captions/03_topic.vtt Captions from measured narration
|
|
385
|
+
chapters/03_topic.vtt Chapter markers (and a JSON copy)
|
|
386
|
+
posters/03_topic.jpg Poster frame
|
|
387
|
+
narration/03_topic.txt Transcript
|
|
388
|
+
manifest.json Verified receipts for published videos
|
|
389
|
+
style.json, voice.json Course look and actual narrator profiles
|
|
390
|
+
README.md, COVERAGE.md Generated overview and coverage
|
|
391
|
+
.build/ Narration audio, timing, runs and caches
|
|
392
|
+
archive/ Superseded published files
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
Published videos appear above the topic's Content in the local app (`tum-mcp study`)
|
|
396
|
+
with chapters, captions and a transcript link, and show a notice when the topic
|
|
397
|
+
changed after the video was made. They load when you press play. Hosted study sites
|
|
398
|
+
never include or request videos; copy files from `videos/tracks/` to watch them
|
|
399
|
+
elsewhere. `tum-mcp video-notes inspect PROJECT` reports planned, stale, pending and
|
|
400
|
+
published videos, and `tum-mcp study demo PROJECT --videos` adds a synthetic preview
|
|
401
|
+
clip.
|
|
402
|
+
|
|
403
|
+
The render runtime (about 320 MB) installs on first use with
|
|
404
|
+
`tum-mcp video-notes runtime install`. Windows x64 needs nothing else. macOS 14+ on
|
|
405
|
+
Apple Silicon needs `brew install cairo` and the Xcode Command Line Tools; Linux and
|
|
406
|
+
WSL on x86_64 with glibc 2.28+ need `libcairo2-dev`, `libpango1.0-dev` and a C
|
|
407
|
+
compiler. `runtime status` prints the exact command and never runs it for you.
|
|
408
|
+
Windows on ARM, Intel Macs, Linux ARM64 and musl Linux are not supported: Manim's
|
|
409
|
+
OpenGL dependencies publish no wheels there.
|
|
410
|
+
|
|
342
411
|
## Studocu materials
|
|
343
412
|
|
|
344
413
|
Install the optional extension with `tum-mcp install studocu` and reload your
|
package/docs/tum-mcp.md
CHANGED
|
@@ -227,12 +227,16 @@ The Codex adapter uses a contained Node launcher to pin the managed Python in
|
|
|
227
227
|
isolated mode; portable stdio manifests require a bare or contained executable.
|
|
228
228
|
The base pack contains five skills: `read-content`, `sync-course`,
|
|
229
229
|
`prepare-study`, `prepare-exercises` and `publish-course`. Optional extensions add
|
|
230
|
-
`prepare-lecture`, `sync-studocu` and `
|
|
230
|
+
`prepare-lecture`, `sync-studocu`, `audio-notes` and `video-notes`; choose them with
|
|
231
|
+
`tum-mcp install`.
|
|
231
232
|
Website-specific retrieval guidance is loaded from references within read-content.
|
|
232
233
|
Teaching and content guidance lives with prepare-study; the course app and its
|
|
233
234
|
synthetic example ship as reusable assets and define the site's design.
|
|
234
235
|
Audio Notes converts prepared content into category tracks and maintains coverage,
|
|
235
236
|
scripts, voice settings, candidates and archives under the course's `audio/` root.
|
|
237
|
+
Video Notes turns prepared topics into narrated explainer videos under `videos/`;
|
|
238
|
+
`tum-mcp video-notes` validates storyboards, measures narration, renders with an
|
|
239
|
+
optional pinned runtime and publishes checked videos for the local app only.
|
|
236
240
|
Publish Course uses host GitHub CLI authentication to create a private repository
|
|
237
241
|
and a public Pages website after explicit publication consent. It chooses a course
|
|
238
242
|
and semester name, updates the same site after successful study builds, and shows
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"wheel": "tum_mcp-0.
|
|
3
|
-
"wheelSha256": "
|
|
2
|
+
"wheel": "tum_mcp-0.10.0-py3-none-any.whl",
|
|
3
|
+
"wheelSha256": "69a13997a3c5630f411e0237f33f7b59224b56d96bbcea07f263b939df1a5eff",
|
|
4
4
|
"requirementsSha256": "39a401b6e606d3292eb91b8fe9ef60367d4852f203eb409dc52f38b76e513ccf"
|
|
5
5
|
}
|
|
Binary file
|
package/npm/tum-mcp.mjs
CHANGED
|
@@ -24,13 +24,14 @@ try {
|
|
|
24
24
|
['setup', 'Configure your coding client and managed runtime.'],
|
|
25
25
|
['login', 'Sign in to selected campus services.'],
|
|
26
26
|
['doctor', 'Show connections, extensions and relevant client/runtime health.'],
|
|
27
|
-
['install', 'Choose optional Lecture, Studocu or
|
|
27
|
+
['install', 'Choose optional Lecture, Studocu, Audio Notes or Video Notes workflows.'],
|
|
28
28
|
['uninstall', 'Choose extensions or All to remove TUM MCP.'],
|
|
29
29
|
['manage', 'Manage TUMonline permissions.'],
|
|
30
30
|
['skills', 'Inspect and validate workflow skills.'],
|
|
31
31
|
['study', 'Prepare, preview and publish a course app.'],
|
|
32
32
|
['lecture', 'Prepare lecture recording evidence (optional extension).'],
|
|
33
33
|
['studocu', 'Collect selected supplementary materials (optional extension).'],
|
|
34
|
+
['video-notes', 'Render and maintain explainer videos (optional extension).'],
|
|
34
35
|
['discover', 'List accessible courses or channels.'],
|
|
35
36
|
['update', 'Update the package and configured clients.'],
|
|
36
37
|
['logout', 'Remove one saved connection.'],
|
|
@@ -42,7 +43,7 @@ try {
|
|
|
42
43
|
} else if (['--version', 'version'].includes(args[0])) {
|
|
43
44
|
console.log(version);
|
|
44
45
|
} else if (args[0] === 'install' && args.some(arg => ['--help', '-h'].includes(arg))) {
|
|
45
|
-
printHelp(version, 'Choose optional workflows to install, or provide their names.', 'tum-mcp install [lecture|studocu|audio-notes]... [OPTIONS]', [
|
|
46
|
+
printHelp(version, 'Choose optional workflows to install, or provide their names.', 'tum-mcp install [lecture|studocu|audio-notes|video-notes]... [OPTIONS]', [
|
|
46
47
|
['Options', [['--asr / --no-asr', 'Provision isolated lecture recognition; models load on demand.'], ['--json', 'Print machine-readable results.'], ['-h, --help', 'Show this help.']]],
|
|
47
48
|
]);
|
|
48
49
|
} else if (['setup', 'update', 'uninstall'].includes(args[0]) && args.some(arg => ['--help', '-h'].includes(arg))) {
|
|
@@ -59,7 +60,7 @@ try {
|
|
|
59
60
|
},
|
|
60
61
|
uninstall: {
|
|
61
62
|
description: 'Remove managed setup while retaining saved user data by default.',
|
|
62
|
-
usage: 'tum-mcp uninstall [lecture|studocu|audio-notes]... [OPTIONS]',
|
|
63
|
+
usage: 'tum-mcp uninstall [lecture|studocu|audio-notes|video-notes]... [OPTIONS]',
|
|
63
64
|
options: [['(no arguments)', 'Choose extensions or All in the interactive picker.'], ['--client NAME', 'Remove one client registration.'], ['--host local|windows', 'Choose the client host.'], ['--purge-runtime', 'Remove verified runtimes when All is selected.'], ['--forget-credentials', 'Forget saved credentials when All is selected.']],
|
|
64
65
|
},
|
|
65
66
|
};
|
|
@@ -68,7 +69,7 @@ try {
|
|
|
68
69
|
['Options', [...selected.options, ['-h, --help', 'Show this help.']]],
|
|
69
70
|
]);
|
|
70
71
|
} else {
|
|
71
|
-
const hasExtension = args.slice(1).some(arg => ['lecture', 'studocu', 'audio-notes'].includes(arg));
|
|
72
|
+
const hasExtension = args.slice(1).some(arg => ['lecture', 'studocu', 'audio-notes', 'video-notes'].includes(arg));
|
|
72
73
|
let packageAction = args[0] === 'update';
|
|
73
74
|
if (args[0] === 'update') {
|
|
74
75
|
if (args.length > 2 || (args.length === 2 && args[1] !== '--local')) throw new Error('Usage: tum-mcp update [--local]. Use --help for details.');
|