rewind-mcp-server 0.10.0 → 1.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.
Files changed (89) hide show
  1. package/dist/__tests__/helpers/build-client.d.ts +2 -0
  2. package/dist/__tests__/helpers/build-client.js +24 -0
  3. package/dist/__tests__/helpers/build-client.js.map +1 -0
  4. package/dist/__tests__/helpers.test.js +11 -0
  5. package/dist/__tests__/helpers.test.js.map +1 -1
  6. package/dist/__tests__/image-block.live.js +1 -1
  7. package/dist/__tests__/image-block.live.js.map +1 -1
  8. package/dist/__tests__/manifest-snapshot.test.js +1 -0
  9. package/dist/__tests__/manifest-snapshot.test.js.map +1 -1
  10. package/dist/__tests__/output-schema-attending.test.d.ts +1 -0
  11. package/dist/__tests__/output-schema-attending.test.js +353 -0
  12. package/dist/__tests__/output-schema-attending.test.js.map +1 -0
  13. package/dist/__tests__/output-schema-collecting.test.d.ts +1 -0
  14. package/dist/__tests__/output-schema-collecting.test.js +155 -0
  15. package/dist/__tests__/output-schema-collecting.test.js.map +1 -0
  16. package/dist/__tests__/output-schema-cross-domain.test.d.ts +1 -0
  17. package/dist/__tests__/output-schema-cross-domain.test.js +142 -0
  18. package/dist/__tests__/output-schema-cross-domain.test.js.map +1 -0
  19. package/dist/__tests__/output-schema-listening.test.d.ts +1 -0
  20. package/dist/__tests__/output-schema-listening.test.js +235 -0
  21. package/dist/__tests__/output-schema-listening.test.js.map +1 -0
  22. package/dist/__tests__/output-schema-reading.test.d.ts +1 -0
  23. package/dist/__tests__/output-schema-reading.test.js +181 -0
  24. package/dist/__tests__/output-schema-reading.test.js.map +1 -0
  25. package/dist/__tests__/output-schema-running.test.d.ts +1 -0
  26. package/dist/__tests__/output-schema-running.test.js +185 -0
  27. package/dist/__tests__/output-schema-running.test.js.map +1 -0
  28. package/dist/__tests__/output-schema-watching.test.d.ts +1 -0
  29. package/dist/__tests__/output-schema-watching.test.js +190 -0
  30. package/dist/__tests__/output-schema-watching.test.js.map +1 -0
  31. package/dist/__tests__/output-schema.live.d.ts +1 -0
  32. package/dist/__tests__/output-schema.live.js +180 -0
  33. package/dist/__tests__/output-schema.live.js.map +1 -0
  34. package/dist/__tests__/output-schema.test.d.ts +1 -0
  35. package/dist/__tests__/output-schema.test.js +38 -0
  36. package/dist/__tests__/output-schema.test.js.map +1 -0
  37. package/dist/__tests__/server.test.js +1 -1
  38. package/dist/server.js +10 -12
  39. package/dist/server.js.map +1 -1
  40. package/dist/tools/attending.js +9 -0
  41. package/dist/tools/attending.js.map +1 -1
  42. package/dist/tools/collecting.js +5 -0
  43. package/dist/tools/collecting.js.map +1 -1
  44. package/dist/tools/cross-domain.js +12 -1
  45. package/dist/tools/cross-domain.js.map +1 -1
  46. package/dist/tools/helpers.js +14 -9
  47. package/dist/tools/helpers.js.map +1 -1
  48. package/dist/tools/listening.js +12 -1
  49. package/dist/tools/listening.js.map +1 -1
  50. package/dist/tools/reading.js +8 -1
  51. package/dist/tools/reading.js.map +1 -1
  52. package/dist/tools/running.js +8 -0
  53. package/dist/tools/running.js.map +1 -1
  54. package/dist/tools/schemas/attending.d.ts +8225 -0
  55. package/dist/tools/schemas/attending.js +404 -0
  56. package/dist/tools/schemas/attending.js.map +1 -0
  57. package/dist/tools/schemas/collecting.d.ts +1011 -0
  58. package/dist/tools/schemas/collecting.js +108 -0
  59. package/dist/tools/schemas/collecting.js.map +1 -0
  60. package/dist/tools/schemas/cross-domain.d.ts +1001 -0
  61. package/dist/tools/schemas/cross-domain.js +107 -0
  62. package/dist/tools/schemas/cross-domain.js.map +1 -0
  63. package/dist/tools/schemas/listening.d.ts +4298 -0
  64. package/dist/tools/schemas/listening.js +255 -0
  65. package/dist/tools/schemas/listening.js.map +1 -0
  66. package/dist/tools/schemas/reading.d.ts +1421 -0
  67. package/dist/tools/schemas/reading.js +151 -0
  68. package/dist/tools/schemas/reading.js.map +1 -0
  69. package/dist/tools/schemas/running.d.ts +680 -0
  70. package/dist/tools/schemas/running.js +154 -0
  71. package/dist/tools/schemas/running.js.map +1 -0
  72. package/dist/tools/schemas/shared.d.ts +98 -0
  73. package/dist/tools/schemas/shared.js +74 -0
  74. package/dist/tools/schemas/shared.js.map +1 -0
  75. package/dist/tools/schemas/system.d.ts +57 -0
  76. package/dist/tools/schemas/system.js +22 -0
  77. package/dist/tools/schemas/system.js.map +1 -0
  78. package/dist/tools/schemas/watching.d.ts +1821 -0
  79. package/dist/tools/schemas/watching.js +167 -0
  80. package/dist/tools/schemas/watching.js.map +1 -0
  81. package/dist/tools/watching.js +8 -0
  82. package/dist/tools/watching.js.map +1 -1
  83. package/dist/ui-bundles.d.ts +10 -11
  84. package/dist/ui-bundles.js +20 -22
  85. package/dist/ui-bundles.js.map +1 -1
  86. package/package.json +5 -4
  87. package/dist/tools/debug.d.ts +0 -6
  88. package/dist/tools/debug.js +0 -26
  89. package/dist/tools/debug.js.map +0 -1
@@ -0,0 +1,404 @@
1
+ /**
2
+ * Output schemas for the attending-domain tools (issue #105).
3
+ *
4
+ * These schemas are the source of truth for the attending tools' return
5
+ * shapes. `attending.ts` derives its event / player / stats types from
6
+ * them via `z.infer` where the structuredContent shape is exactly the
7
+ * tool's return shape, so the declared schema and the TypeScript type
8
+ * cannot drift. Raw MLB Stats API stat-line objects (`batting_line`,
9
+ * `pitching_line`, `season_stats.hitter`, etc.) have dynamic, uncertain
10
+ * keys -- they are modelled as `z.record(z.unknown())` rather than
11
+ * enumerated.
12
+ *
13
+ * Every object schema uses `.passthrough()` so the JSON Schema advertised
14
+ * to clients stays `additionalProperties`-open -- a field the Rewind API
15
+ * adds later does not break client-side validation. See schemas/shared.ts.
16
+ */
17
+ import { z } from 'zod';
18
+ import { imageSchema, paginationSchema } from './shared.js';
19
+ // --- Element schemas ------------------------------------------------------
20
+ /**
21
+ * An opaque MLB Stats API stat line -- dynamic keys, modelled loosely.
22
+ * A factory: get_attended_player uses it ~16 times, and the JSON Schema
23
+ * converter would emit `$ref`s if they were all the same object.
24
+ */
25
+ const statLineSchema = () => z.record(z.unknown());
26
+ /** A venue reference attached to an attended event (null when unknown). */
27
+ const venueSchema = z
28
+ .object({
29
+ id: z.number(),
30
+ name: z.string(),
31
+ city: z.string().nullable(),
32
+ state: z.string().nullable(),
33
+ country: z.string().nullable(),
34
+ capacity: z.number().nullable(),
35
+ })
36
+ .passthrough()
37
+ .nullable();
38
+ /**
39
+ * Full team object, inlined wherever a team is referenced. Mirrors
40
+ * src/lib/schemas/team.ts on the API side. Null when no team applies
41
+ * (e.g. a concert with no sports team).
42
+ */
43
+ const teamSchema = () => z
44
+ .object({
45
+ id: z.number(),
46
+ league: z.string(),
47
+ abbreviation: z.string(),
48
+ location: z.string().nullable(),
49
+ name: z.string(),
50
+ full_name: z.string().nullable(),
51
+ primary_color: z.string().nullable(),
52
+ secondary_color: z.string().nullable(),
53
+ tertiary_color: z.string().nullable(),
54
+ ui_tint_color: z.string().nullable(),
55
+ logo_url: z.string().nullable(),
56
+ logo_dark_url: z.string().nullable(),
57
+ logo_light_url: z.string().nullable(),
58
+ conference: z.string().nullable(),
59
+ division: z.string().nullable(),
60
+ })
61
+ .passthrough()
62
+ .nullable();
63
+ /** A player as listed by get_attended_players. */
64
+ export const playerSchema = z
65
+ .object({
66
+ id: z.number(),
67
+ league: z.string(),
68
+ mlb_stats_id: z.number().nullable(),
69
+ espn_id: z.string().nullable(),
70
+ full_name: z.string(),
71
+ primary_position: z.string().nullable(),
72
+ primary_number: z.string().nullable(),
73
+ birth_date: z.string().nullable(),
74
+ birth_country: z.string().nullable(),
75
+ bats: z.string().nullable(),
76
+ throws: z.string().nullable(),
77
+ primary_team: teamSchema(),
78
+ debut_date: z.string().nullable(),
79
+ photo_silo: imageSchema(),
80
+ photo_full: imageSchema(),
81
+ })
82
+ .passthrough();
83
+ /** A per-player appearance line within an attended event. */
84
+ const appearanceSchema = z
85
+ .object({
86
+ player: playerSchema,
87
+ team: teamSchema(),
88
+ is_home: z.boolean(),
89
+ batting_line: statLineSchema().nullable(),
90
+ pitching_line: statLineSchema().nullable(),
91
+ fielding_line: statLineSchema().nullable(),
92
+ decision: z.enum(['W', 'L', 'SV', 'HLD', 'BS']).nullable(),
93
+ notable: z.boolean(),
94
+ })
95
+ .passthrough();
96
+ /** An attended event, as listed by get_attended_events / get_attended_season. */
97
+ export const attendedEventSchema = z
98
+ .object({
99
+ id: z.number(),
100
+ category: z.enum(['sports', 'music', 'arts']),
101
+ event_type: z.string(),
102
+ event_date: z.string(),
103
+ event_datetime: z.string().nullable(),
104
+ title: z.string(),
105
+ subtitle: z.string().nullable(),
106
+ external_id: z.string().nullable(),
107
+ external_source: z.string().nullable(),
108
+ event_data: z.record(z.unknown()).nullable(),
109
+ notes: z.string().nullable(),
110
+ attended: z.boolean(),
111
+ venue: venueSchema,
112
+ tickets: z.array(z.unknown()),
113
+ })
114
+ .passthrough();
115
+ // --- Tool output schemas --------------------------------------------------
116
+ /** outputSchema for get_attended_events. Empty branch keeps the same shape. */
117
+ export const attendedEventsOutputSchema = z
118
+ .object({
119
+ data: z.array(attendedEventSchema),
120
+ pagination: paginationSchema(),
121
+ })
122
+ .passthrough();
123
+ /** outputSchema for get_attended_players. Empty branch keeps the same shape. */
124
+ export const attendedPlayersOutputSchema = z
125
+ .object({
126
+ data: z.array(playerSchema),
127
+ pagination: paginationSchema(),
128
+ })
129
+ .passthrough();
130
+ /** outputSchema for get_attended_season. */
131
+ export const attendedSeasonOutputSchema = z
132
+ .object({
133
+ league: z.string(),
134
+ season: z.number(),
135
+ attended_count: z.number(),
136
+ wins: z.number(),
137
+ losses: z.number(),
138
+ data: z.array(attendedEventSchema),
139
+ })
140
+ .passthrough();
141
+ /**
142
+ * outputSchema for get_attended_event. Extends the event shape with the
143
+ * full per-player appearance list.
144
+ */
145
+ export const attendedEventDetailOutputSchema = z
146
+ .object({
147
+ id: z.number(),
148
+ category: z.enum(['sports', 'music', 'arts']),
149
+ event_type: z.string(),
150
+ event_date: z.string(),
151
+ event_datetime: z.string().nullable(),
152
+ title: z.string(),
153
+ subtitle: z.string().nullable(),
154
+ external_id: z.string().nullable(),
155
+ external_source: z.string().nullable(),
156
+ event_data: z.record(z.unknown()).nullable(),
157
+ notes: z.string().nullable(),
158
+ attended: z.boolean(),
159
+ venue: venueSchema,
160
+ tickets: z.array(z.unknown()),
161
+ players: z.array(appearanceSchema),
162
+ })
163
+ .passthrough();
164
+ /** outputSchema for get_attending_stats. */
165
+ export const attendingStatsOutputSchema = z
166
+ .object({
167
+ total_events: z.number(),
168
+ attended_events: z.number(),
169
+ by_category: z.array(z.object({ category: z.string(), count: z.number() }).passthrough()),
170
+ by_event_type: z.array(z.object({ event_type: z.string(), count: z.number() }).passthrough()),
171
+ by_year: z.array(z.object({ year: z.string(), count: z.number() }).passthrough()),
172
+ })
173
+ .passthrough();
174
+ /** outputSchema for get_attending_year_in_review. */
175
+ export const attendingYearInReviewOutputSchema = z
176
+ .object({
177
+ year: z.number(),
178
+ total_events: z.number(),
179
+ total_spent_cents: z.number(),
180
+ by_category: z.array(z.object({ category: z.string(), count: z.number() }).passthrough()),
181
+ by_event_type: z.array(z.object({ event_type: z.string(), count: z.number() }).passthrough()),
182
+ monthly: z.array(z.object({ month: z.string(), count: z.number() }).passthrough()),
183
+ top_venues: z.array(z
184
+ .object({
185
+ venue_id: z.number(),
186
+ name: z.string(),
187
+ city: z.string().nullable(),
188
+ count: z.number(),
189
+ })
190
+ .passthrough()),
191
+ top_performers: z.array(z
192
+ .object({
193
+ performer_id: z.number(),
194
+ name: z.string(),
195
+ count: z.number(),
196
+ })
197
+ .passthrough()),
198
+ events: z.array(z
199
+ .object({
200
+ id: z.number(),
201
+ event_date: z.string(),
202
+ event_type: z.string(),
203
+ title: z.string(),
204
+ subtitle: z.string().nullable(),
205
+ venue_name: z.string().nullable(),
206
+ })
207
+ .passthrough()),
208
+ })
209
+ .passthrough();
210
+ /**
211
+ * outputSchema for get_attended_player_stats. The handler returns the raw
212
+ * API response unchanged -- a discriminated union on `supported`. The MCP
213
+ * SDK requires `outputSchema` to be a single object schema, so this is
214
+ * modelled as one permissive `.passthrough()` object: fields that exist on
215
+ * only one branch (`batting`/`pitching`/`games` on supported=true,
216
+ * `reason`/`appearances` on supported=false) are `.optional()`, so both
217
+ * branches conform. `supported` discriminates.
218
+ */
219
+ const playerStatsPlayerSchema = z
220
+ .object({
221
+ id: z.number(),
222
+ full_name: z.string(),
223
+ primary_position: z.string().nullable(),
224
+ primary_team: teamSchema(),
225
+ })
226
+ .passthrough();
227
+ export const attendedPlayerStatsOutputSchema = z
228
+ .object({
229
+ supported: z.boolean(),
230
+ league: z.string(),
231
+ scope: z.enum(['career', 'season']),
232
+ season: z.number().optional(),
233
+ player: playerStatsPlayerSchema,
234
+ // supported=true branch
235
+ hitter: z.literal(true).optional(),
236
+ pitcher: z.literal(true).optional(),
237
+ games: z.number().optional(),
238
+ games_with_box_score: z.number().optional(),
239
+ batting: z
240
+ .object({
241
+ pa: z.number(),
242
+ ab: z.number(),
243
+ h: z.number(),
244
+ hr: z.number(),
245
+ rbi: z.number(),
246
+ bb: z.number(),
247
+ k: z.number(),
248
+ sb: z.number(),
249
+ avg: z.string().nullable(),
250
+ slg: z.string().nullable(),
251
+ })
252
+ .passthrough()
253
+ .optional(),
254
+ pitching: z
255
+ .object({
256
+ ip: z.string(),
257
+ bf: z.number(),
258
+ k: z.number(),
259
+ bb: z.number(),
260
+ er: z.number(),
261
+ era: z.string().nullable(),
262
+ whip: z.string().nullable(),
263
+ decisions: z
264
+ .object({
265
+ w: z.number(),
266
+ l: z.number(),
267
+ sv: z.number(),
268
+ hld: z.number(),
269
+ bs: z.number(),
270
+ })
271
+ .passthrough(),
272
+ })
273
+ .passthrough()
274
+ .optional(),
275
+ // supported=false branch
276
+ reason: z.string().optional(),
277
+ appearances: z
278
+ .array(z
279
+ .object({
280
+ event_id: z.number(),
281
+ event_date: z.string(),
282
+ title: z.string(),
283
+ home_team: z.string().nullable(),
284
+ away_team: z.string().nullable(),
285
+ final_score: z.string().nullable(),
286
+ my_team_won: z.boolean().nullable(),
287
+ })
288
+ .passthrough())
289
+ .optional(),
290
+ })
291
+ .passthrough();
292
+ /**
293
+ * outputSchema for get_attended_player. The handler builds a transformed,
294
+ * nested DESIGN.md-shaped payload -- this schema describes that built shape,
295
+ * not the raw `/attending/players/:id` API response. The MLB stat blocks
296
+ * (`season_stats.hitter`, `career.seasons`, `splits.*`, `attended_summary.*`)
297
+ * have dynamic keys and are modelled as `z.record(z.unknown())`. The
298
+ * `season_stats`, `career`, `splits`, and `season_attended_summary` objects
299
+ * are nullable -- absent for non-MLB players or out-of-season.
300
+ */
301
+ export const attendedPlayerOutputSchema = z
302
+ .object({
303
+ player: z
304
+ .object({
305
+ id: z.number(),
306
+ mlb_stats_id: z.number().nullable(),
307
+ full_name: z.string(),
308
+ primary_position: z.string().nullable(),
309
+ primary_number: z.string().nullable(),
310
+ bats: z.string().nullable(),
311
+ throws: z.string().nullable(),
312
+ debut_date: z.string().nullable(),
313
+ birth_date: z.string().nullable(),
314
+ birth_city: z.string().nullable(),
315
+ birth_state_province: z.string().nullable(),
316
+ birth_country: z.string().nullable(),
317
+ height: z.string().nullable(),
318
+ weight: z.number().nullable(),
319
+ college_name: z.string().nullable(),
320
+ awards: z.array(z
321
+ .object({
322
+ season: z.string(),
323
+ id: z.string(),
324
+ name: z.string(),
325
+ })
326
+ .passthrough()),
327
+ photo_silo: imageSchema(),
328
+ photo_full: imageSchema(),
329
+ league: z.string(),
330
+ primary_team: teamSchema(),
331
+ })
332
+ .passthrough(),
333
+ supported: z.boolean(),
334
+ season_stats: z
335
+ .object({
336
+ season: z.number(),
337
+ fetched_at: z.string(),
338
+ cache_hit: z.boolean(),
339
+ hitter: statLineSchema().nullable(),
340
+ pitcher: statLineSchema().nullable(),
341
+ })
342
+ .passthrough()
343
+ .nullable(),
344
+ career: z
345
+ .object({
346
+ group: z.enum(['hitting', 'pitching']),
347
+ seasons: z.array(statLineSchema()),
348
+ fetched_at: z.string(),
349
+ cache_hit: z.boolean(),
350
+ })
351
+ .passthrough()
352
+ .nullable(),
353
+ splits: z
354
+ .object({
355
+ season: z.number(),
356
+ group: z.enum(['hitting', 'pitching']),
357
+ home: statLineSchema().nullable(),
358
+ away: statLineSchema().nullable(),
359
+ vs_left: statLineSchema().nullable(),
360
+ vs_right: statLineSchema().nullable(),
361
+ fetched_at: z.string(),
362
+ cache_hit: z.boolean(),
363
+ })
364
+ .passthrough()
365
+ .nullable(),
366
+ attended_summary: z
367
+ .object({
368
+ games_attended: z.number(),
369
+ games_with_box_score: z.number(),
370
+ wins: z.number(),
371
+ losses: z.number(),
372
+ hitter: statLineSchema().nullable(),
373
+ pitcher: statLineSchema().nullable(),
374
+ })
375
+ .passthrough(),
376
+ season_attended_summary: z
377
+ .object({
378
+ games_attended: z.number(),
379
+ games_with_box_score: z.number(),
380
+ wins: z.number(),
381
+ losses: z.number(),
382
+ hitter: statLineSchema().nullable(),
383
+ pitcher: statLineSchema().nullable(),
384
+ })
385
+ .passthrough()
386
+ .nullable(),
387
+ season_attended_summary_season: z.number().nullable(),
388
+ attended_appearances: z.array(z
389
+ .object({
390
+ event_id: z.number(),
391
+ event_date: z.string(),
392
+ title: z.string(),
393
+ is_home: z.boolean(),
394
+ batting_line: statLineSchema().nullable(),
395
+ pitching_line: statLineSchema().nullable(),
396
+ decision: z.enum(['W', 'L', 'SV', 'HLD', 'BS']).nullable(),
397
+ notable: z.boolean(),
398
+ notable_reasons: z.array(z.string()),
399
+ })
400
+ .passthrough()),
401
+ attended_appearance_count: z.number(),
402
+ })
403
+ .passthrough();
404
+ //# sourceMappingURL=attending.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attending.js","sourceRoot":"","sources":["../../../src/tools/schemas/attending.ts"],"names":[],"mappings":"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"}