-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathoverview.json
More file actions
134 lines (134 loc) · 5.54 KB
/
overview.json
File metadata and controls
134 lines (134 loc) · 5.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
{
"name": "Overview",
"access": {
"anon": "On the home page, can only see the public bus and frequent links views; cannot enter the personal overview.",
"user": "The home page serves as the personal workspace.",
"admin": "The home page personal workspace behavior is the same as regular users.",
"agent": "Can read overview results with the same semantics as the home page; REST and MCP should return consistent overview information."
},
"rules": {
"decision-page": "The home page is not a directory page but a decision page for 'what to do next'.",
"current-semester-priority": "The above-the-fold area prioritizes personal learning tasks within the current semester, not historical semester content or complete directory information.",
"homework-todo-layered": "Homework and todos are layered as 'due today / due soon / all incomplete'; homework with no due date does not participate in upcoming due date sorting.",
"non-current-not-disguised": "Non-current-semester subscribed sections must not be disguised as current learning tasks.",
"aggregate-first-for-assistants": "Prefer a single aggregated snapshot tool for common assistant prompts before fanning out into multiple narrower tool calls.",
"focused-extracts-share-window": "Focused tools such as next-class and upcoming-deadlines should stay aligned with the same short-horizon window as the broader dashboard snapshot."
},
"capabilities": {
"authenticated-overview": {
"title": "Authenticated Homepage Overview",
"auth": "user",
"links": {
"models": ["User", "Section", "Homework", "Todo", "Exam"]
},
"web": {
"pages": [
"/?tab=overview",
"/?tab=calendar",
"/?tab=subscriptions",
"/?tab=exams",
"/?tab=homeworks",
"/?tab=todos",
"/?tab=bus",
"/?tab=links"
]
},
"rest": "unavailable",
"mcp": {
"tools": [
{
"name": "get_my_overview",
"returns": "{ user, overview, samples }",
"notes": [
"overview contains pending todo, homework, today's schedule, and upcoming exam counts.",
"samples contains dueTodos[], dueHomeworks[], and upcomingExams[].",
"Count-and-sample oriented tool; use get_my_dashboard for a richer single-call assistant snapshot.",
"Summary mode trims samples further; optional atTime anchors today's bounds for tests or specific-day questions."
]
}
]
},
"display": {
"fields": [
"pendingHomeworksCount",
"upcomingExamsCount",
"pendingTodosCount",
"todaySchedulesCount",
"Today highlight",
"7-day week grid",
"Schedule events per day",
"Pending homeworks (sorted by submissionDueAt)",
"Tomorrow schedule section",
"homework due today/due soon/all badges",
"todo due today/due soon/all badges",
"Pending todos",
"Tab icons and counts"
]
}
},
"assistant-dashboard-snapshot": {
"title": "Assistant Dashboard Snapshot & Focused Extracts",
"auth": "user",
"links": {
"models": ["User", "Section", "Homework", "Todo", "Exam"]
},
"web": "unavailable",
"rest": "unavailable",
"mcp": {
"tools": [
{
"name": "get_my_dashboard",
"returns": "{ user, currentSemester, subscriptions, nextClass, upcomingDeadlines, upcomingEvents, todos, bus }",
"notes": [
"Preferred single-call snapshot for assistant workflows.",
"Overlaps get_my_overview but adds currentSemester, currentSemesterSections, nextClass, merged deadlines, and preferred-bus departures; accepts optional atTime to anchor those time windows instead of using the server clock.",
"Default mode should stay assistant-compact; request full mode when the caller explicitly needs full nested schedule, room, teacher, or homework payloads.",
"Summary mode should be materially smaller than default, focusing on counts and the next few actionable items instead of mirroring the full compact snapshot."
]
},
{
"name": "get_next_class",
"returns": "{ found: Boolean, nextClass, currentSemester }",
"notes": [
"Focused extract for 'what is my next class?' prompts.",
"Accepts optional atTime to anchor the lookup instead of using the server clock."
]
},
{
"name": "get_upcoming_deadlines",
"returns": "{ total: Int, deadlines: TimelineEvent[] }",
"notes": [
"dayLimit defaults to 7.",
"Merges homework_due, exam, and todo_due entries into one ordered list.",
"Accepts optional atTime to anchor the deadline window instead of using the server clock."
]
}
]
},
"display": {
"fields": [
"currentSemester",
"subscriptions.currentSemesterCount",
"nextClass",
"upcomingDeadlines",
"todos.incompleteCount",
"bus.nextDeparture"
]
}
},
"anonymous-overview": {
"title": "Anonymous Homepage",
"auth": "anon",
"web": "stable",
"display": {
"fields": [
"Public bus tab",
"Public dashboard links tab",
"link.title",
"link.description",
"link.icon"
]
}
}
}
}