rewind-mcp-server 0.9.0 → 0.11.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/prompts.js +60 -32
- package/dist/prompts.js.map +1 -1
- package/dist/resources.js +26 -13
- package/dist/resources.js.map +1 -1
- package/dist/server.js +16 -13
- package/dist/server.js.map +1 -1
- package/dist/tools/attending.js +124 -90
- package/dist/tools/attending.js.map +1 -1
- package/dist/tools/collecting.js +85 -49
- package/dist/tools/collecting.js.map +1 -1
- package/dist/tools/cross-domain.js +103 -66
- package/dist/tools/cross-domain.js.map +1 -1
- package/dist/tools/helpers.d.ts +6 -2
- package/dist/tools/helpers.js +20 -11
- package/dist/tools/helpers.js.map +1 -1
- package/dist/tools/listening.js +94 -42
- package/dist/tools/listening.js.map +1 -1
- package/dist/tools/reading.js +53 -26
- package/dist/tools/reading.js.map +1 -1
- package/dist/tools/running.js +71 -28
- 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 +87 -46
- 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 +1 -1
- 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,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output schemas for the reading-domain tools (issue #105).
|
|
3
|
+
*
|
|
4
|
+
* These schemas are the source of truth for the reading tools' return
|
|
5
|
+
* shapes: `reading.ts` derives its `Article` / `Highlight` / `Related`
|
|
6
|
+
* payload types from them via `z.infer`, so the declared schema and the
|
|
7
|
+
* 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, highlightsPaginationSchema } from './shared.js';
|
|
15
|
+
// --- Element schemas ------------------------------------------------------
|
|
16
|
+
/** A saved article, as listed by get_recent_reads. */
|
|
17
|
+
export const articleSchema = z
|
|
18
|
+
.object({
|
|
19
|
+
id: z.number(),
|
|
20
|
+
title: z.string(),
|
|
21
|
+
author: z.string().nullable(),
|
|
22
|
+
url: z.string().nullable(),
|
|
23
|
+
// The list endpoint omits these keys entirely on some rows, so they
|
|
24
|
+
// are optional (nullish), not merely nullable.
|
|
25
|
+
instapaper_url: z.string().nullish(),
|
|
26
|
+
instapaper_app_url: z.string().nullish(),
|
|
27
|
+
domain: z.string().nullable(),
|
|
28
|
+
description: z.string().nullish(),
|
|
29
|
+
estimated_read_min: z.number().nullable(),
|
|
30
|
+
status: z.string(),
|
|
31
|
+
progress: z.number(),
|
|
32
|
+
image: imageSchema(),
|
|
33
|
+
saved_at: z.string(),
|
|
34
|
+
})
|
|
35
|
+
.passthrough();
|
|
36
|
+
/** The parent-article reference embedded in a highlight. */
|
|
37
|
+
const highlightArticleSchema = z
|
|
38
|
+
.object({
|
|
39
|
+
id: z.number().optional(),
|
|
40
|
+
title: z.string(),
|
|
41
|
+
author: z.string().nullable(),
|
|
42
|
+
domain: z.string().nullable(),
|
|
43
|
+
url: z.string().nullish(),
|
|
44
|
+
instapaper_url: z.string().nullish(),
|
|
45
|
+
instapaper_app_url: z.string().nullish(),
|
|
46
|
+
})
|
|
47
|
+
.passthrough();
|
|
48
|
+
/** A single highlight, as listed by get_reading_highlights / get_random_highlight. */
|
|
49
|
+
export const highlightSchema = z
|
|
50
|
+
.object({
|
|
51
|
+
text: z.string(),
|
|
52
|
+
note: z.string().nullable(),
|
|
53
|
+
created_at: z.string(),
|
|
54
|
+
article: highlightArticleSchema,
|
|
55
|
+
})
|
|
56
|
+
.passthrough();
|
|
57
|
+
/** A related-article result from find_similar_articles. */
|
|
58
|
+
export const relatedArticleSchema = z
|
|
59
|
+
.object({
|
|
60
|
+
id: z.number(),
|
|
61
|
+
title: z.string(),
|
|
62
|
+
author: z.string().nullable(),
|
|
63
|
+
url: z.string().nullable(),
|
|
64
|
+
instapaper_url: z.string().nullable(),
|
|
65
|
+
instapaper_app_url: z.string().nullable(),
|
|
66
|
+
domain: z.string().nullable(),
|
|
67
|
+
description: z.string().nullable(),
|
|
68
|
+
score: z.number(),
|
|
69
|
+
})
|
|
70
|
+
.passthrough();
|
|
71
|
+
// --- Tool output schemas --------------------------------------------------
|
|
72
|
+
/**
|
|
73
|
+
* outputSchema for get_recent_reads. The empty-state branch returns
|
|
74
|
+
* `{ items: [] }`, which satisfies the same schema -- no union needed.
|
|
75
|
+
*/
|
|
76
|
+
export const recentReadsOutputSchema = z
|
|
77
|
+
.object({ items: z.array(articleSchema) })
|
|
78
|
+
.passthrough();
|
|
79
|
+
/**
|
|
80
|
+
* outputSchema for get_reading_highlights. Both the populated and the
|
|
81
|
+
* empty-state branch return `{ items, pagination }` -- the empty branch
|
|
82
|
+
* just has `items: []`, so one schema covers both.
|
|
83
|
+
*/
|
|
84
|
+
export const readingHighlightsOutputSchema = z
|
|
85
|
+
.object({
|
|
86
|
+
items: z.array(highlightSchema),
|
|
87
|
+
pagination: highlightsPaginationSchema(),
|
|
88
|
+
})
|
|
89
|
+
.passthrough();
|
|
90
|
+
/**
|
|
91
|
+
* outputSchema for get_random_highlight. The tool returns the raw
|
|
92
|
+
* highlight object unchanged as structuredContent.
|
|
93
|
+
*/
|
|
94
|
+
export const randomHighlightOutputSchema = highlightSchema;
|
|
95
|
+
/** outputSchema for get_reading_stats (flat stats object). */
|
|
96
|
+
export const readingStatsOutputSchema = z
|
|
97
|
+
.object({
|
|
98
|
+
total_articles: z.number(),
|
|
99
|
+
finished_count: z.number(),
|
|
100
|
+
currently_reading_count: z.number(),
|
|
101
|
+
total_highlights: z.number(),
|
|
102
|
+
total_word_count: z.number(),
|
|
103
|
+
avg_estimated_read_min: z.number(),
|
|
104
|
+
})
|
|
105
|
+
.passthrough();
|
|
106
|
+
/**
|
|
107
|
+
* outputSchema for find_similar_articles. The empty-state branch returns
|
|
108
|
+
* `{ items: [] }`, which satisfies the same schema -- no union needed.
|
|
109
|
+
*/
|
|
110
|
+
export const similarArticlesOutputSchema = z
|
|
111
|
+
.object({ items: z.array(relatedArticleSchema) })
|
|
112
|
+
.passthrough();
|
|
113
|
+
/**
|
|
114
|
+
* outputSchema for get_article. The tool builds a transformed, card-shaped
|
|
115
|
+
* payload -- this schema describes that shape, not the raw
|
|
116
|
+
* `/reading/articles/:id` API response. The full body is omitted from
|
|
117
|
+
* structuredContent (it lives in the text content block); highlights are
|
|
118
|
+
* capped at 5, with the true total surfaced via `highlight_count`.
|
|
119
|
+
*/
|
|
120
|
+
export const articleDetailOutputSchema = z
|
|
121
|
+
.object({
|
|
122
|
+
article: z
|
|
123
|
+
.object({
|
|
124
|
+
id: z.number(),
|
|
125
|
+
title: z.string(),
|
|
126
|
+
author: z.string().nullable(),
|
|
127
|
+
url: z.string().nullable(),
|
|
128
|
+
instapaper_url: z.string().nullable(),
|
|
129
|
+
instapaper_app_url: z.string().nullable(),
|
|
130
|
+
domain: z.string().nullable(),
|
|
131
|
+
description: z.string().nullable(),
|
|
132
|
+
word_count: z.number().nullable(),
|
|
133
|
+
estimated_read_min: z.number().nullable(),
|
|
134
|
+
status: z.string(),
|
|
135
|
+
progress: z.number(),
|
|
136
|
+
saved_at: z.string(),
|
|
137
|
+
image: imageSchema(),
|
|
138
|
+
})
|
|
139
|
+
.passthrough(),
|
|
140
|
+
highlights: z.array(z
|
|
141
|
+
.object({
|
|
142
|
+
id: z.number(),
|
|
143
|
+
text: z.string(),
|
|
144
|
+
note: z.string().nullable(),
|
|
145
|
+
created_at: z.string(),
|
|
146
|
+
})
|
|
147
|
+
.passthrough()),
|
|
148
|
+
highlight_count: z.number(),
|
|
149
|
+
})
|
|
150
|
+
.passthrough();
|
|
151
|
+
//# sourceMappingURL=reading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reading.js","sourceRoot":"","sources":["../../../src/tools/schemas/reading.ts"],"names":[],"mappings":"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"}
|