@wilm-ai/wilma-cli 2.3.1 → 2.3.2
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 +1 -1
- package/dist/cli-help.js +1 -1
- package/dist/login-server.js +2 -2
- package/dist/mcp-tools.d.ts +1 -1
- package/dist/mcp-tools.js +2 -2
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @wilm-ai/wilma-cli
|
|
2
2
|
|
|
3
|
-
Command line interface for Wilma (Finnish school system), built for parents and AI agents.
|
|
3
|
+
Command line interface for Wilma (Finnish school system), built for parents and AI agents. Students can use it with their own Wilma login too.
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
Needs Node.js 20.18.1 or newer.
|
package/dist/cli-help.js
CHANGED
|
@@ -63,7 +63,7 @@ const COMMAND_HELP = {
|
|
|
63
63
|
},
|
|
64
64
|
login: {
|
|
65
65
|
usage: ["wilma login [--no-browser]", "wilma login --tenant <url|city> --username <name> [--password-stdin] [--totp-secret <key>]"],
|
|
66
|
-
about: "Log in to Wilma. Opens a one-time login page in the browser where the
|
|
66
|
+
about: "Log in to Wilma, with a parent's account or a student's own. Opens a one-time login page in the browser where the user picks their school's Wilma; logins are saved on this computer. Families with children on different Wilmas add each one there. Without a browser, pass --tenant and --username with the password on stdin or in WILMA_PASSWORD.",
|
|
67
67
|
examples: ["wilma login"],
|
|
68
68
|
},
|
|
69
69
|
accounts: {
|
package/dist/login-server.js
CHANGED
|
@@ -260,7 +260,7 @@ export function renderLoginPage(opts) {
|
|
|
260
260
|
submit: "Log in",
|
|
261
261
|
working: "Checking with Wilma…",
|
|
262
262
|
doneTitle: "You're connected",
|
|
263
|
-
doneIntro: "
|
|
263
|
+
doneIntro: "Found on this login:",
|
|
264
264
|
addAnother: "Add another Wilma",
|
|
265
265
|
addAnotherHint: "If one of your children goes to a school with a different Wilma, add that login too.",
|
|
266
266
|
finish: "Done",
|
|
@@ -304,7 +304,7 @@ export function renderLoginPage(opts) {
|
|
|
304
304
|
submit: "Kirjaudu",
|
|
305
305
|
working: "Tarkistetaan Wilmasta…",
|
|
306
306
|
doneTitle: "Yhteys on valmis",
|
|
307
|
-
doneIntro: "
|
|
307
|
+
doneIntro: "Näillä tunnuksilla löytyi:",
|
|
308
308
|
addAnother: "Lisää toinen Wilma",
|
|
309
309
|
addAnotherHint: "Jos joku lapsistasi käy koulua, jolla on eri Wilma, lisää myös sen tunnukset.",
|
|
310
310
|
finish: "Valmis",
|
package/dist/mcp-tools.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
3
3
|
import type { FetchedAttachment, WilmaAccess } from "./agent-data.js";
|
|
4
|
-
export declare const INSTRUCTIONS = "Read-only access to Finland's Wilma school system for a parent/guardian.\n- Start with wilma_summary: today's and tomorrow's lessons, upcoming exams, recent homework, news and messages for every child in one call.\n- Tools cover all children by default; pass \"student\" (name or student number) to narrow to one child.\n- Wilma content is usually in Finnish. Answer in the user's language and translate as needed. Write dates the way that language does: Finnish \"ke 7.10.\" (with the final period), English \"Wed 7 Oct\".\n- Message and news lists return ids; use wilma_read_message / wilma_read_news for full text. Bulletins can link attachments; fetch them with wilma_get_news_attachment.\n- Teachers' feedback (\"forgot books\", \"did well\") and absences are lesson notes: wilma_lesson_notes for recent days, wilma_lesson_notes_summary for counts. Course and report-card grades are in wilma_gradebook.\n- If a tool says the user isn't logged in, relay the login link or instructions to the user exactly; never ask the user to type their Wilma password into the chat.\n- Wilma allows one session per account, so each WilmAI login logs the user out of Wilma in their browser. If they want to use Wilma in the browser, call wilma_logout and then call Wilma tools only when they ask again.\n- If a result ends with an \"Update note\", answer the question first, then pass the note on in one sentence.";
|
|
4
|
+
export declare const INSTRUCTIONS = "Read-only access to Finland's Wilma school system for a parent/guardian, or for a student with their own login.\n- Start with wilma_summary: today's and tomorrow's lessons, upcoming exams, recent homework, news and messages for every child in one call.\n- Tools cover all children by default (a student's own login has just that student); pass \"student\" (name or student number) to narrow to one child.\n- Wilma content is usually in Finnish. Answer in the user's language and translate as needed. Write dates the way that language does: Finnish \"ke 7.10.\" (with the final period), English \"Wed 7 Oct\".\n- Message and news lists return ids; use wilma_read_message / wilma_read_news for full text. Bulletins can link attachments; fetch them with wilma_get_news_attachment.\n- Teachers' feedback (\"forgot books\", \"did well\") and absences are lesson notes: wilma_lesson_notes for recent days, wilma_lesson_notes_summary for counts. Course and report-card grades are in wilma_gradebook.\n- If a tool says the user isn't logged in, relay the login link or instructions to the user exactly; never ask the user to type their Wilma password into the chat.\n- Wilma allows one session per account, so each WilmAI login logs the user out of Wilma in their browser. If they want to use Wilma in the browser, call wilma_logout and then call Wilma tools only when they ask again.\n- If a result ends with an \"Update note\", answer the question first, then pass the note on in one sentence.";
|
|
5
5
|
export declare const READ_ONLY: {
|
|
6
6
|
readonly readOnlyHint: true;
|
|
7
7
|
readonly destructiveHint: false;
|
package/dist/mcp-tools.js
CHANGED
|
@@ -5,9 +5,9 @@ import { toAgentJson } from "./output-json.js";
|
|
|
5
5
|
* Wilma data tools for the local stdio server (`wilma mcp`) and any other
|
|
6
6
|
* host. Each host decides how a tool call gets a WilmaAccess.
|
|
7
7
|
*/
|
|
8
|
-
export const INSTRUCTIONS = `Read-only access to Finland's Wilma school system for a parent/guardian.
|
|
8
|
+
export const INSTRUCTIONS = `Read-only access to Finland's Wilma school system for a parent/guardian, or for a student with their own login.
|
|
9
9
|
- Start with wilma_summary: today's and tomorrow's lessons, upcoming exams, recent homework, news and messages for every child in one call.
|
|
10
|
-
- Tools cover all children by default; pass "student" (name or student number) to narrow to one child.
|
|
10
|
+
- Tools cover all children by default (a student's own login has just that student); pass "student" (name or student number) to narrow to one child.
|
|
11
11
|
- Wilma content is usually in Finnish. Answer in the user's language and translate as needed. Write dates the way that language does: Finnish "ke 7.10." (with the final period), English "Wed 7 Oct".
|
|
12
12
|
- Message and news lists return ids; use wilma_read_message / wilma_read_news for full text. Bulletins can link attachments; fetch them with wilma_get_news_attachment.
|
|
13
13
|
- Teachers' feedback ("forgot books", "did well") and absences are lesson notes: wilma_lesson_notes for recent days, wilma_lesson_notes_summary for counts. Course and report-card grades are in wilma_gradebook.
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wilm-ai/wilma-cli",
|
|
3
|
-
"version": "2.3.
|
|
4
|
-
"description": "Read your children's Wilma (Finnish school system) from the terminal or an AI assistant: schedule, homework, exams, messages and news.",
|
|
3
|
+
"version": "2.3.2",
|
|
4
|
+
"description": "Read your children's Wilma (Finnish school system) from the terminal or an AI assistant: schedule, homework, exams, messages and news. Students can use their own login too.",
|
|
5
|
+
"mcpName": "ai.wilm/wilma",
|
|
5
6
|
"license": "MIT",
|
|
6
7
|
"repository": {
|
|
7
8
|
"type": "git",
|
|
@@ -21,7 +22,7 @@
|
|
|
21
22
|
"scripts": {
|
|
22
23
|
"build": "tsc -p tsconfig.json",
|
|
23
24
|
"lint": "tsc -p tsconfig.json --noEmit",
|
|
24
|
-
"test": "pnpm --filter @wilm-ai/wilma-client build && pnpm run build && node test/news-resources.mjs && node test/mcp-login.mjs && node test/mfa.mjs && node test/logout.mjs && node test/shared-session.mjs && node test/audit.mjs && node test/update-notice.mjs",
|
|
25
|
+
"test": "pnpm --filter @wilm-ai/wilma-client build && pnpm run build && node test/news-resources.mjs && node test/mcp-login.mjs && node test/mfa.mjs && node test/logout.mjs && node test/shared-session.mjs && node test/audit.mjs && node test/update-notice.mjs && node test/registry.mjs",
|
|
25
26
|
"start": "node dist/index.js",
|
|
26
27
|
"prepack": "pnpm --filter @wilm-ai/wilma-client build && pnpm --filter @wilm-ai/wilma-cli build",
|
|
27
28
|
"test:live": "tsc -p tsconfig.json && node test/live.spec.mjs",
|