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.
- package/dist/__tests__/helpers/build-client.d.ts +2 -0
- package/dist/__tests__/helpers/build-client.js +24 -0
- package/dist/__tests__/helpers/build-client.js.map +1 -0
- package/dist/__tests__/helpers.test.js +11 -0
- package/dist/__tests__/helpers.test.js.map +1 -1
- package/dist/__tests__/image-block.live.js +1 -1
- package/dist/__tests__/image-block.live.js.map +1 -1
- package/dist/__tests__/manifest-snapshot.test.js +1 -0
- package/dist/__tests__/manifest-snapshot.test.js.map +1 -1
- package/dist/__tests__/output-schema-attending.test.d.ts +1 -0
- package/dist/__tests__/output-schema-attending.test.js +353 -0
- package/dist/__tests__/output-schema-attending.test.js.map +1 -0
- package/dist/__tests__/output-schema-collecting.test.d.ts +1 -0
- package/dist/__tests__/output-schema-collecting.test.js +155 -0
- package/dist/__tests__/output-schema-collecting.test.js.map +1 -0
- package/dist/__tests__/output-schema-cross-domain.test.d.ts +1 -0
- package/dist/__tests__/output-schema-cross-domain.test.js +142 -0
- package/dist/__tests__/output-schema-cross-domain.test.js.map +1 -0
- package/dist/__tests__/output-schema-listening.test.d.ts +1 -0
- package/dist/__tests__/output-schema-listening.test.js +235 -0
- package/dist/__tests__/output-schema-listening.test.js.map +1 -0
- package/dist/__tests__/output-schema-reading.test.d.ts +1 -0
- package/dist/__tests__/output-schema-reading.test.js +181 -0
- package/dist/__tests__/output-schema-reading.test.js.map +1 -0
- package/dist/__tests__/output-schema-running.test.d.ts +1 -0
- package/dist/__tests__/output-schema-running.test.js +185 -0
- package/dist/__tests__/output-schema-running.test.js.map +1 -0
- package/dist/__tests__/output-schema-watching.test.d.ts +1 -0
- package/dist/__tests__/output-schema-watching.test.js +190 -0
- package/dist/__tests__/output-schema-watching.test.js.map +1 -0
- package/dist/__tests__/output-schema.live.d.ts +1 -0
- package/dist/__tests__/output-schema.live.js +180 -0
- package/dist/__tests__/output-schema.live.js.map +1 -0
- package/dist/__tests__/output-schema.test.d.ts +1 -0
- package/dist/__tests__/output-schema.test.js +38 -0
- package/dist/__tests__/output-schema.test.js.map +1 -0
- package/dist/__tests__/server.test.js +1 -1
- package/dist/server.js +10 -12
- package/dist/server.js.map +1 -1
- package/dist/tools/attending.js +9 -0
- package/dist/tools/attending.js.map +1 -1
- package/dist/tools/collecting.js +5 -0
- package/dist/tools/collecting.js.map +1 -1
- package/dist/tools/cross-domain.js +12 -1
- package/dist/tools/cross-domain.js.map +1 -1
- package/dist/tools/helpers.js +14 -9
- package/dist/tools/helpers.js.map +1 -1
- package/dist/tools/listening.js +12 -1
- package/dist/tools/listening.js.map +1 -1
- package/dist/tools/reading.js +8 -1
- package/dist/tools/reading.js.map +1 -1
- package/dist/tools/running.js +8 -0
- package/dist/tools/running.js.map +1 -1
- package/dist/tools/schemas/attending.d.ts +8225 -0
- package/dist/tools/schemas/attending.js +404 -0
- package/dist/tools/schemas/attending.js.map +1 -0
- package/dist/tools/schemas/collecting.d.ts +1011 -0
- package/dist/tools/schemas/collecting.js +108 -0
- package/dist/tools/schemas/collecting.js.map +1 -0
- package/dist/tools/schemas/cross-domain.d.ts +1001 -0
- package/dist/tools/schemas/cross-domain.js +107 -0
- package/dist/tools/schemas/cross-domain.js.map +1 -0
- package/dist/tools/schemas/listening.d.ts +4298 -0
- package/dist/tools/schemas/listening.js +255 -0
- package/dist/tools/schemas/listening.js.map +1 -0
- package/dist/tools/schemas/reading.d.ts +1421 -0
- package/dist/tools/schemas/reading.js +151 -0
- package/dist/tools/schemas/reading.js.map +1 -0
- package/dist/tools/schemas/running.d.ts +680 -0
- package/dist/tools/schemas/running.js +154 -0
- package/dist/tools/schemas/running.js.map +1 -0
- package/dist/tools/schemas/shared.d.ts +98 -0
- package/dist/tools/schemas/shared.js +74 -0
- package/dist/tools/schemas/shared.js.map +1 -0
- package/dist/tools/schemas/system.d.ts +57 -0
- package/dist/tools/schemas/system.js +22 -0
- package/dist/tools/schemas/system.js.map +1 -0
- package/dist/tools/schemas/watching.d.ts +1821 -0
- package/dist/tools/schemas/watching.js +167 -0
- package/dist/tools/schemas/watching.js.map +1 -0
- package/dist/tools/watching.js +8 -0
- package/dist/tools/watching.js.map +1 -1
- package/dist/ui-bundles.d.ts +10 -11
- package/dist/ui-bundles.js +20 -22
- package/dist/ui-bundles.js.map +1 -1
- package/package.json +5 -4
- package/dist/tools/debug.d.ts +0 -6
- package/dist/tools/debug.js +0 -26
- package/dist/tools/debug.js.map +0 -1
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output schemas for the collecting-domain tools (issue #105).
|
|
3
|
+
*
|
|
4
|
+
* These schemas are the source of truth for the collecting tools' return
|
|
5
|
+
* shapes: `collecting.ts` derives its `VinylItem` / `MediaItem` /
|
|
6
|
+
* `CollectingStats` types from them via `z.infer`, so the declared schema
|
|
7
|
+
* and the TypeScript type cannot drift.
|
|
8
|
+
*
|
|
9
|
+
* Every object schema uses `.passthrough()` so the JSON Schema advertised
|
|
10
|
+
* to clients stays `additionalProperties`-open -- a field the Rewind API
|
|
11
|
+
* adds later does not break client-side validation. See schemas/shared.ts.
|
|
12
|
+
*/
|
|
13
|
+
import { z } from 'zod';
|
|
14
|
+
import { imageSchema, paginationSchema } from './shared.js';
|
|
15
|
+
// --- Element schemas ------------------------------------------------------
|
|
16
|
+
/** A single vinyl/CD/cassette record, as listed by get_vinyl_collection. */
|
|
17
|
+
export const vinylItemSchema = z
|
|
18
|
+
.object({
|
|
19
|
+
id: z.number(),
|
|
20
|
+
discogs_id: z.number(),
|
|
21
|
+
title: z.string(),
|
|
22
|
+
artists: z.array(z.string()),
|
|
23
|
+
year: z.number().nullable(),
|
|
24
|
+
format: z.string(),
|
|
25
|
+
format_detail: z.string(),
|
|
26
|
+
label: z.string(),
|
|
27
|
+
genres: z.array(z.string()),
|
|
28
|
+
styles: z.array(z.string()),
|
|
29
|
+
image: imageSchema(),
|
|
30
|
+
date_added: z.string().nullable(),
|
|
31
|
+
rating: z.number().nullable(),
|
|
32
|
+
discogs_url: z.string().nullable(),
|
|
33
|
+
})
|
|
34
|
+
.passthrough();
|
|
35
|
+
/** A single physical-media item, as listed by get_physical_media. */
|
|
36
|
+
export const mediaItemSchema = z
|
|
37
|
+
.object({
|
|
38
|
+
id: z.number(),
|
|
39
|
+
title: z.string(),
|
|
40
|
+
year: z.number().nullable(),
|
|
41
|
+
tmdb_id: z.number().nullable(),
|
|
42
|
+
imdb_id: z.string().nullable(),
|
|
43
|
+
image: imageSchema(),
|
|
44
|
+
runtime: z.number().nullable(),
|
|
45
|
+
tmdb_rating: z.number().nullable(),
|
|
46
|
+
media_type: z.string(),
|
|
47
|
+
resolution: z.string().nullable(),
|
|
48
|
+
hdr: z.string().nullable(),
|
|
49
|
+
audio: z.string().nullable(),
|
|
50
|
+
audio_channels: z.string().nullable(),
|
|
51
|
+
collected_at: z.string().nullable(),
|
|
52
|
+
})
|
|
53
|
+
.passthrough();
|
|
54
|
+
// --- Tool output schemas --------------------------------------------------
|
|
55
|
+
/**
|
|
56
|
+
* outputSchema for get_vinyl_collection. The empty-state branch returns
|
|
57
|
+
* `{ items: [], pagination }`, which satisfies the same schema -- no union
|
|
58
|
+
* needed.
|
|
59
|
+
*/
|
|
60
|
+
export const vinylCollectionOutputSchema = z
|
|
61
|
+
.object({
|
|
62
|
+
items: z.array(vinylItemSchema),
|
|
63
|
+
pagination: paginationSchema(),
|
|
64
|
+
})
|
|
65
|
+
.passthrough();
|
|
66
|
+
/**
|
|
67
|
+
* outputSchema for get_collecting_stats (flat stats object passed through
|
|
68
|
+
* verbatim from the API). `most_collected_artist` is an open-shaped field
|
|
69
|
+
* the API may fill with an artist object or leave null -- typed as
|
|
70
|
+
* unknown/nullable so it never blocks validation.
|
|
71
|
+
*/
|
|
72
|
+
export const collectingStatsOutputSchema = z
|
|
73
|
+
.object({
|
|
74
|
+
total_items: z.number(),
|
|
75
|
+
by_format: z.record(z.number()),
|
|
76
|
+
wantlist_count: z.number().nullable(),
|
|
77
|
+
unique_artists: z.number().nullable(),
|
|
78
|
+
estimated_value: z.number().nullable(),
|
|
79
|
+
top_genre: z.string().nullable(),
|
|
80
|
+
oldest_release_year: z.number().nullable(),
|
|
81
|
+
newest_release_year: z.number().nullable(),
|
|
82
|
+
most_collected_artist: z.unknown(),
|
|
83
|
+
added_this_year: z.number().nullable(),
|
|
84
|
+
})
|
|
85
|
+
.passthrough();
|
|
86
|
+
/**
|
|
87
|
+
* outputSchema for get_physical_media. The empty-state branch returns
|
|
88
|
+
* `{ items: [], pagination }`, which satisfies the same schema -- no union
|
|
89
|
+
* needed.
|
|
90
|
+
*/
|
|
91
|
+
export const physicalMediaOutputSchema = z
|
|
92
|
+
.object({
|
|
93
|
+
items: z.array(mediaItemSchema),
|
|
94
|
+
pagination: paginationSchema(),
|
|
95
|
+
})
|
|
96
|
+
.passthrough();
|
|
97
|
+
/**
|
|
98
|
+
* outputSchema for get_physical_media_stats. The tool builds a transformed
|
|
99
|
+
* payload -- `total` is computed from the per-format counts, `formats` is
|
|
100
|
+
* the raw API list.
|
|
101
|
+
*/
|
|
102
|
+
export const physicalMediaStatsOutputSchema = z
|
|
103
|
+
.object({
|
|
104
|
+
total: z.number(),
|
|
105
|
+
formats: z.array(z.object({ name: z.string(), count: z.number() }).passthrough()),
|
|
106
|
+
})
|
|
107
|
+
.passthrough();
|
|
108
|
+
//# sourceMappingURL=collecting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collecting.js","sourceRoot":"","sources":["../../../src/tools/schemas/collecting.ts"],"names":[],"mappings":"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"}
|