rewind-mcp-server 0.10.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.
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 +1 -1
  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,680 @@
1
+ /**
2
+ * Output schemas for the running-domain tools (issue #105).
3
+ *
4
+ * These schemas are the source of truth for the running tools' return
5
+ * shapes: `running.ts` derives its `Activity` / `ActivityDetail` types
6
+ * from them via `z.infer`, so the declared schema and the TypeScript
7
+ * 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
+ /** A single run, as listed by get_recent_runs. */
15
+ export declare const activitySchema: z.ZodObject<{
16
+ id: z.ZodNumber;
17
+ strava_id: z.ZodOptional<z.ZodNumber>;
18
+ name: z.ZodString;
19
+ date: z.ZodString;
20
+ distance_mi: z.ZodNumber;
21
+ duration: z.ZodString;
22
+ pace: z.ZodString;
23
+ elevation_ft: z.ZodNumber;
24
+ city: z.ZodNullable<z.ZodString>;
25
+ state: z.ZodNullable<z.ZodString>;
26
+ is_race: z.ZodBoolean;
27
+ strava_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
28
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
29
+ id: z.ZodNumber;
30
+ strava_id: z.ZodOptional<z.ZodNumber>;
31
+ name: z.ZodString;
32
+ date: z.ZodString;
33
+ distance_mi: z.ZodNumber;
34
+ duration: z.ZodString;
35
+ pace: z.ZodString;
36
+ elevation_ft: z.ZodNumber;
37
+ city: z.ZodNullable<z.ZodString>;
38
+ state: z.ZodNullable<z.ZodString>;
39
+ is_race: z.ZodBoolean;
40
+ strava_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
41
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
42
+ id: z.ZodNumber;
43
+ strava_id: z.ZodOptional<z.ZodNumber>;
44
+ name: z.ZodString;
45
+ date: z.ZodString;
46
+ distance_mi: z.ZodNumber;
47
+ duration: z.ZodString;
48
+ pace: z.ZodString;
49
+ elevation_ft: z.ZodNumber;
50
+ city: z.ZodNullable<z.ZodString>;
51
+ state: z.ZodNullable<z.ZodString>;
52
+ is_race: z.ZodBoolean;
53
+ strava_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
54
+ }, z.ZodTypeAny, "passthrough">>;
55
+ /** A single personal record, as listed by get_personal_records. */
56
+ export declare const personalRecordSchema: z.ZodObject<{
57
+ distance_label: z.ZodString;
58
+ time: z.ZodString;
59
+ pace: z.ZodString;
60
+ date: z.ZodString;
61
+ activity_name: z.ZodString;
62
+ activity_id: z.ZodNumber;
63
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
64
+ distance_label: z.ZodString;
65
+ time: z.ZodString;
66
+ pace: z.ZodString;
67
+ date: z.ZodString;
68
+ activity_name: z.ZodString;
69
+ activity_id: z.ZodNumber;
70
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
71
+ distance_label: z.ZodString;
72
+ time: z.ZodString;
73
+ pace: z.ZodString;
74
+ date: z.ZodString;
75
+ activity_name: z.ZodString;
76
+ activity_id: z.ZodNumber;
77
+ }, z.ZodTypeAny, "passthrough">>;
78
+ /** A single per-mile split, as listed by get_activity_splits. */
79
+ export declare const activitySplitSchema: z.ZodObject<{
80
+ split: z.ZodNumber;
81
+ distance_mi: z.ZodNumber;
82
+ moving_time_s: z.ZodNumber;
83
+ elapsed_time_s: z.ZodNumber;
84
+ elevation_ft: z.ZodNumber;
85
+ pace: z.ZodString;
86
+ heartrate: z.ZodNullable<z.ZodNumber>;
87
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
88
+ split: z.ZodNumber;
89
+ distance_mi: z.ZodNumber;
90
+ moving_time_s: z.ZodNumber;
91
+ elapsed_time_s: z.ZodNumber;
92
+ elevation_ft: z.ZodNumber;
93
+ pace: z.ZodString;
94
+ heartrate: z.ZodNullable<z.ZodNumber>;
95
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
96
+ split: z.ZodNumber;
97
+ distance_mi: z.ZodNumber;
98
+ moving_time_s: z.ZodNumber;
99
+ elapsed_time_s: z.ZodNumber;
100
+ elevation_ft: z.ZodNumber;
101
+ pace: z.ZodString;
102
+ heartrate: z.ZodNullable<z.ZodNumber>;
103
+ }, z.ZodTypeAny, "passthrough">>;
104
+ /** A single per-year summary, as listed by get_running_years. */
105
+ export declare const runningYearSchema: z.ZodObject<{
106
+ year: z.ZodNumber;
107
+ total_runs: z.ZodNumber;
108
+ total_distance_mi: z.ZodNumber;
109
+ total_elevation_ft: z.ZodNumber;
110
+ total_duration_s: z.ZodNumber;
111
+ avg_pace: z.ZodNullable<z.ZodString>;
112
+ longest_run_mi: z.ZodNullable<z.ZodNumber>;
113
+ race_count: z.ZodNumber;
114
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
115
+ year: z.ZodNumber;
116
+ total_runs: z.ZodNumber;
117
+ total_distance_mi: z.ZodNumber;
118
+ total_elevation_ft: z.ZodNumber;
119
+ total_duration_s: z.ZodNumber;
120
+ avg_pace: z.ZodNullable<z.ZodString>;
121
+ longest_run_mi: z.ZodNullable<z.ZodNumber>;
122
+ race_count: z.ZodNumber;
123
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
124
+ year: z.ZodNumber;
125
+ total_runs: z.ZodNumber;
126
+ total_distance_mi: z.ZodNumber;
127
+ total_elevation_ft: z.ZodNumber;
128
+ total_duration_s: z.ZodNumber;
129
+ avg_pace: z.ZodNullable<z.ZodString>;
130
+ longest_run_mi: z.ZodNullable<z.ZodNumber>;
131
+ race_count: z.ZodNumber;
132
+ }, z.ZodTypeAny, "passthrough">>;
133
+ /** outputSchema for get_running_stats (flat stats object from `data`). */
134
+ export declare const runningStatsOutputSchema: z.ZodObject<{
135
+ total_runs: z.ZodNumber;
136
+ total_distance_mi: z.ZodNumber;
137
+ total_elevation_ft: z.ZodNumber;
138
+ total_duration: z.ZodString;
139
+ avg_pace: z.ZodNullable<z.ZodString>;
140
+ years_active: z.ZodNumber;
141
+ first_run: z.ZodNullable<z.ZodString>;
142
+ eddington_number: z.ZodNumber;
143
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
144
+ total_runs: z.ZodNumber;
145
+ total_distance_mi: z.ZodNumber;
146
+ total_elevation_ft: z.ZodNumber;
147
+ total_duration: z.ZodString;
148
+ avg_pace: z.ZodNullable<z.ZodString>;
149
+ years_active: z.ZodNumber;
150
+ first_run: z.ZodNullable<z.ZodString>;
151
+ eddington_number: z.ZodNumber;
152
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
153
+ total_runs: z.ZodNumber;
154
+ total_distance_mi: z.ZodNumber;
155
+ total_elevation_ft: z.ZodNumber;
156
+ total_duration: z.ZodString;
157
+ avg_pace: z.ZodNullable<z.ZodString>;
158
+ years_active: z.ZodNumber;
159
+ first_run: z.ZodNullable<z.ZodString>;
160
+ eddington_number: z.ZodNumber;
161
+ }, z.ZodTypeAny, "passthrough">>;
162
+ /**
163
+ * outputSchema for get_recent_runs. The empty-state branch returns
164
+ * `{ items: [] }`, which satisfies the same schema -- no union needed.
165
+ */
166
+ export declare const recentRunsOutputSchema: z.ZodObject<{
167
+ items: z.ZodArray<z.ZodObject<{
168
+ id: z.ZodNumber;
169
+ strava_id: z.ZodOptional<z.ZodNumber>;
170
+ name: z.ZodString;
171
+ date: z.ZodString;
172
+ distance_mi: z.ZodNumber;
173
+ duration: z.ZodString;
174
+ pace: z.ZodString;
175
+ elevation_ft: z.ZodNumber;
176
+ city: z.ZodNullable<z.ZodString>;
177
+ state: z.ZodNullable<z.ZodString>;
178
+ is_race: z.ZodBoolean;
179
+ strava_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
180
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
181
+ id: z.ZodNumber;
182
+ strava_id: z.ZodOptional<z.ZodNumber>;
183
+ name: z.ZodString;
184
+ date: z.ZodString;
185
+ distance_mi: z.ZodNumber;
186
+ duration: z.ZodString;
187
+ pace: z.ZodString;
188
+ elevation_ft: z.ZodNumber;
189
+ city: z.ZodNullable<z.ZodString>;
190
+ state: z.ZodNullable<z.ZodString>;
191
+ is_race: z.ZodBoolean;
192
+ strava_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
193
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
194
+ id: z.ZodNumber;
195
+ strava_id: z.ZodOptional<z.ZodNumber>;
196
+ name: z.ZodString;
197
+ date: z.ZodString;
198
+ distance_mi: z.ZodNumber;
199
+ duration: z.ZodString;
200
+ pace: z.ZodString;
201
+ elevation_ft: z.ZodNumber;
202
+ city: z.ZodNullable<z.ZodString>;
203
+ state: z.ZodNullable<z.ZodString>;
204
+ is_race: z.ZodBoolean;
205
+ strava_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
206
+ }, z.ZodTypeAny, "passthrough">>, "many">;
207
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
208
+ items: z.ZodArray<z.ZodObject<{
209
+ id: z.ZodNumber;
210
+ strava_id: z.ZodOptional<z.ZodNumber>;
211
+ name: z.ZodString;
212
+ date: z.ZodString;
213
+ distance_mi: z.ZodNumber;
214
+ duration: z.ZodString;
215
+ pace: z.ZodString;
216
+ elevation_ft: z.ZodNumber;
217
+ city: z.ZodNullable<z.ZodString>;
218
+ state: z.ZodNullable<z.ZodString>;
219
+ is_race: z.ZodBoolean;
220
+ strava_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
221
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
222
+ id: z.ZodNumber;
223
+ strava_id: z.ZodOptional<z.ZodNumber>;
224
+ name: z.ZodString;
225
+ date: z.ZodString;
226
+ distance_mi: z.ZodNumber;
227
+ duration: z.ZodString;
228
+ pace: z.ZodString;
229
+ elevation_ft: z.ZodNumber;
230
+ city: z.ZodNullable<z.ZodString>;
231
+ state: z.ZodNullable<z.ZodString>;
232
+ is_race: z.ZodBoolean;
233
+ strava_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
234
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
235
+ id: z.ZodNumber;
236
+ strava_id: z.ZodOptional<z.ZodNumber>;
237
+ name: z.ZodString;
238
+ date: z.ZodString;
239
+ distance_mi: z.ZodNumber;
240
+ duration: z.ZodString;
241
+ pace: z.ZodString;
242
+ elevation_ft: z.ZodNumber;
243
+ city: z.ZodNullable<z.ZodString>;
244
+ state: z.ZodNullable<z.ZodString>;
245
+ is_race: z.ZodBoolean;
246
+ strava_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
247
+ }, z.ZodTypeAny, "passthrough">>, "many">;
248
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
249
+ items: z.ZodArray<z.ZodObject<{
250
+ id: z.ZodNumber;
251
+ strava_id: z.ZodOptional<z.ZodNumber>;
252
+ name: z.ZodString;
253
+ date: z.ZodString;
254
+ distance_mi: z.ZodNumber;
255
+ duration: z.ZodString;
256
+ pace: z.ZodString;
257
+ elevation_ft: z.ZodNumber;
258
+ city: z.ZodNullable<z.ZodString>;
259
+ state: z.ZodNullable<z.ZodString>;
260
+ is_race: z.ZodBoolean;
261
+ strava_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
262
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
263
+ id: z.ZodNumber;
264
+ strava_id: z.ZodOptional<z.ZodNumber>;
265
+ name: z.ZodString;
266
+ date: z.ZodString;
267
+ distance_mi: z.ZodNumber;
268
+ duration: z.ZodString;
269
+ pace: z.ZodString;
270
+ elevation_ft: z.ZodNumber;
271
+ city: z.ZodNullable<z.ZodString>;
272
+ state: z.ZodNullable<z.ZodString>;
273
+ is_race: z.ZodBoolean;
274
+ strava_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
275
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
276
+ id: z.ZodNumber;
277
+ strava_id: z.ZodOptional<z.ZodNumber>;
278
+ name: z.ZodString;
279
+ date: z.ZodString;
280
+ distance_mi: z.ZodNumber;
281
+ duration: z.ZodString;
282
+ pace: z.ZodString;
283
+ elevation_ft: z.ZodNumber;
284
+ city: z.ZodNullable<z.ZodString>;
285
+ state: z.ZodNullable<z.ZodString>;
286
+ is_race: z.ZodBoolean;
287
+ strava_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
288
+ }, z.ZodTypeAny, "passthrough">>, "many">;
289
+ }, z.ZodTypeAny, "passthrough">>;
290
+ /**
291
+ * outputSchema for get_personal_records. The empty-state branch returns
292
+ * `{ items: [] }`, which satisfies the same schema.
293
+ */
294
+ export declare const personalRecordsOutputSchema: z.ZodObject<{
295
+ items: z.ZodArray<z.ZodObject<{
296
+ distance_label: z.ZodString;
297
+ time: z.ZodString;
298
+ pace: z.ZodString;
299
+ date: z.ZodString;
300
+ activity_name: z.ZodString;
301
+ activity_id: z.ZodNumber;
302
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
303
+ distance_label: z.ZodString;
304
+ time: z.ZodString;
305
+ pace: z.ZodString;
306
+ date: z.ZodString;
307
+ activity_name: z.ZodString;
308
+ activity_id: z.ZodNumber;
309
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
310
+ distance_label: z.ZodString;
311
+ time: z.ZodString;
312
+ pace: z.ZodString;
313
+ date: z.ZodString;
314
+ activity_name: z.ZodString;
315
+ activity_id: z.ZodNumber;
316
+ }, z.ZodTypeAny, "passthrough">>, "many">;
317
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
318
+ items: z.ZodArray<z.ZodObject<{
319
+ distance_label: z.ZodString;
320
+ time: z.ZodString;
321
+ pace: z.ZodString;
322
+ date: z.ZodString;
323
+ activity_name: z.ZodString;
324
+ activity_id: z.ZodNumber;
325
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
326
+ distance_label: z.ZodString;
327
+ time: z.ZodString;
328
+ pace: z.ZodString;
329
+ date: z.ZodString;
330
+ activity_name: z.ZodString;
331
+ activity_id: z.ZodNumber;
332
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
333
+ distance_label: z.ZodString;
334
+ time: z.ZodString;
335
+ pace: z.ZodString;
336
+ date: z.ZodString;
337
+ activity_name: z.ZodString;
338
+ activity_id: z.ZodNumber;
339
+ }, z.ZodTypeAny, "passthrough">>, "many">;
340
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
341
+ items: z.ZodArray<z.ZodObject<{
342
+ distance_label: z.ZodString;
343
+ time: z.ZodString;
344
+ pace: z.ZodString;
345
+ date: z.ZodString;
346
+ activity_name: z.ZodString;
347
+ activity_id: z.ZodNumber;
348
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
349
+ distance_label: z.ZodString;
350
+ time: z.ZodString;
351
+ pace: z.ZodString;
352
+ date: z.ZodString;
353
+ activity_name: z.ZodString;
354
+ activity_id: z.ZodNumber;
355
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
356
+ distance_label: z.ZodString;
357
+ time: z.ZodString;
358
+ pace: z.ZodString;
359
+ date: z.ZodString;
360
+ activity_name: z.ZodString;
361
+ activity_id: z.ZodNumber;
362
+ }, z.ZodTypeAny, "passthrough">>, "many">;
363
+ }, z.ZodTypeAny, "passthrough">>;
364
+ /** outputSchema for get_running_streaks (nested current/longest). */
365
+ export declare const runningStreaksOutputSchema: z.ZodObject<{
366
+ current: z.ZodObject<{
367
+ days: z.ZodNumber;
368
+ start: z.ZodNullable<z.ZodString>;
369
+ end: z.ZodNullable<z.ZodString>;
370
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
371
+ days: z.ZodNumber;
372
+ start: z.ZodNullable<z.ZodString>;
373
+ end: z.ZodNullable<z.ZodString>;
374
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
375
+ days: z.ZodNumber;
376
+ start: z.ZodNullable<z.ZodString>;
377
+ end: z.ZodNullable<z.ZodString>;
378
+ }, z.ZodTypeAny, "passthrough">>;
379
+ longest: z.ZodObject<{
380
+ days: z.ZodNumber;
381
+ start: z.ZodNullable<z.ZodString>;
382
+ end: z.ZodNullable<z.ZodString>;
383
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
384
+ days: z.ZodNumber;
385
+ start: z.ZodNullable<z.ZodString>;
386
+ end: z.ZodNullable<z.ZodString>;
387
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
388
+ days: z.ZodNumber;
389
+ start: z.ZodNullable<z.ZodString>;
390
+ end: z.ZodNullable<z.ZodString>;
391
+ }, z.ZodTypeAny, "passthrough">>;
392
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
393
+ current: z.ZodObject<{
394
+ days: z.ZodNumber;
395
+ start: z.ZodNullable<z.ZodString>;
396
+ end: z.ZodNullable<z.ZodString>;
397
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
398
+ days: z.ZodNumber;
399
+ start: z.ZodNullable<z.ZodString>;
400
+ end: z.ZodNullable<z.ZodString>;
401
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
402
+ days: z.ZodNumber;
403
+ start: z.ZodNullable<z.ZodString>;
404
+ end: z.ZodNullable<z.ZodString>;
405
+ }, z.ZodTypeAny, "passthrough">>;
406
+ longest: z.ZodObject<{
407
+ days: z.ZodNumber;
408
+ start: z.ZodNullable<z.ZodString>;
409
+ end: z.ZodNullable<z.ZodString>;
410
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
411
+ days: z.ZodNumber;
412
+ start: z.ZodNullable<z.ZodString>;
413
+ end: z.ZodNullable<z.ZodString>;
414
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
415
+ days: z.ZodNumber;
416
+ start: z.ZodNullable<z.ZodString>;
417
+ end: z.ZodNullable<z.ZodString>;
418
+ }, z.ZodTypeAny, "passthrough">>;
419
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
420
+ current: z.ZodObject<{
421
+ days: z.ZodNumber;
422
+ start: z.ZodNullable<z.ZodString>;
423
+ end: z.ZodNullable<z.ZodString>;
424
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
425
+ days: z.ZodNumber;
426
+ start: z.ZodNullable<z.ZodString>;
427
+ end: z.ZodNullable<z.ZodString>;
428
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
429
+ days: z.ZodNumber;
430
+ start: z.ZodNullable<z.ZodString>;
431
+ end: z.ZodNullable<z.ZodString>;
432
+ }, z.ZodTypeAny, "passthrough">>;
433
+ longest: z.ZodObject<{
434
+ days: z.ZodNumber;
435
+ start: z.ZodNullable<z.ZodString>;
436
+ end: z.ZodNullable<z.ZodString>;
437
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
438
+ days: z.ZodNumber;
439
+ start: z.ZodNullable<z.ZodString>;
440
+ end: z.ZodNullable<z.ZodString>;
441
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
442
+ days: z.ZodNumber;
443
+ start: z.ZodNullable<z.ZodString>;
444
+ end: z.ZodNullable<z.ZodString>;
445
+ }, z.ZodTypeAny, "passthrough">>;
446
+ }, z.ZodTypeAny, "passthrough">>;
447
+ /** outputSchema for get_activity_details (a single run's detail object). */
448
+ export declare const activityDetailsOutputSchema: z.ZodObject<{
449
+ id: z.ZodOptional<z.ZodNumber>;
450
+ name: z.ZodString;
451
+ date: z.ZodString;
452
+ distance_mi: z.ZodNumber;
453
+ duration: z.ZodString;
454
+ pace: z.ZodString;
455
+ elevation_ft: z.ZodNumber;
456
+ heartrate_avg: z.ZodNullable<z.ZodNumber>;
457
+ heartrate_max: z.ZodNullable<z.ZodNumber>;
458
+ cadence: z.ZodNullable<z.ZodNumber>;
459
+ calories: z.ZodNullable<z.ZodNumber>;
460
+ suffer_score: z.ZodNullable<z.ZodNumber>;
461
+ city: z.ZodNullable<z.ZodString>;
462
+ state: z.ZodNullable<z.ZodString>;
463
+ is_race: z.ZodBoolean;
464
+ workout_type: z.ZodString;
465
+ strava_url: z.ZodNullable<z.ZodString>;
466
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
467
+ id: z.ZodOptional<z.ZodNumber>;
468
+ name: z.ZodString;
469
+ date: z.ZodString;
470
+ distance_mi: z.ZodNumber;
471
+ duration: z.ZodString;
472
+ pace: z.ZodString;
473
+ elevation_ft: z.ZodNumber;
474
+ heartrate_avg: z.ZodNullable<z.ZodNumber>;
475
+ heartrate_max: z.ZodNullable<z.ZodNumber>;
476
+ cadence: z.ZodNullable<z.ZodNumber>;
477
+ calories: z.ZodNullable<z.ZodNumber>;
478
+ suffer_score: z.ZodNullable<z.ZodNumber>;
479
+ city: z.ZodNullable<z.ZodString>;
480
+ state: z.ZodNullable<z.ZodString>;
481
+ is_race: z.ZodBoolean;
482
+ workout_type: z.ZodString;
483
+ strava_url: z.ZodNullable<z.ZodString>;
484
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
485
+ id: z.ZodOptional<z.ZodNumber>;
486
+ name: z.ZodString;
487
+ date: z.ZodString;
488
+ distance_mi: z.ZodNumber;
489
+ duration: z.ZodString;
490
+ pace: z.ZodString;
491
+ elevation_ft: z.ZodNumber;
492
+ heartrate_avg: z.ZodNullable<z.ZodNumber>;
493
+ heartrate_max: z.ZodNullable<z.ZodNumber>;
494
+ cadence: z.ZodNullable<z.ZodNumber>;
495
+ calories: z.ZodNullable<z.ZodNumber>;
496
+ suffer_score: z.ZodNullable<z.ZodNumber>;
497
+ city: z.ZodNullable<z.ZodString>;
498
+ state: z.ZodNullable<z.ZodString>;
499
+ is_race: z.ZodBoolean;
500
+ workout_type: z.ZodString;
501
+ strava_url: z.ZodNullable<z.ZodString>;
502
+ }, z.ZodTypeAny, "passthrough">>;
503
+ /**
504
+ * outputSchema for get_activity_splits. The empty-state branch returns
505
+ * `{ activity_id, items: [] }`, which satisfies the same schema.
506
+ */
507
+ export declare const activitySplitsOutputSchema: z.ZodObject<{
508
+ activity_id: z.ZodNumber;
509
+ items: z.ZodArray<z.ZodObject<{
510
+ split: z.ZodNumber;
511
+ distance_mi: z.ZodNumber;
512
+ moving_time_s: z.ZodNumber;
513
+ elapsed_time_s: z.ZodNumber;
514
+ elevation_ft: z.ZodNumber;
515
+ pace: z.ZodString;
516
+ heartrate: z.ZodNullable<z.ZodNumber>;
517
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
518
+ split: z.ZodNumber;
519
+ distance_mi: z.ZodNumber;
520
+ moving_time_s: z.ZodNumber;
521
+ elapsed_time_s: z.ZodNumber;
522
+ elevation_ft: z.ZodNumber;
523
+ pace: z.ZodString;
524
+ heartrate: z.ZodNullable<z.ZodNumber>;
525
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
526
+ split: z.ZodNumber;
527
+ distance_mi: z.ZodNumber;
528
+ moving_time_s: z.ZodNumber;
529
+ elapsed_time_s: z.ZodNumber;
530
+ elevation_ft: z.ZodNumber;
531
+ pace: z.ZodString;
532
+ heartrate: z.ZodNullable<z.ZodNumber>;
533
+ }, z.ZodTypeAny, "passthrough">>, "many">;
534
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
535
+ activity_id: z.ZodNumber;
536
+ items: z.ZodArray<z.ZodObject<{
537
+ split: z.ZodNumber;
538
+ distance_mi: z.ZodNumber;
539
+ moving_time_s: z.ZodNumber;
540
+ elapsed_time_s: z.ZodNumber;
541
+ elevation_ft: z.ZodNumber;
542
+ pace: z.ZodString;
543
+ heartrate: z.ZodNullable<z.ZodNumber>;
544
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
545
+ split: z.ZodNumber;
546
+ distance_mi: z.ZodNumber;
547
+ moving_time_s: z.ZodNumber;
548
+ elapsed_time_s: z.ZodNumber;
549
+ elevation_ft: z.ZodNumber;
550
+ pace: z.ZodString;
551
+ heartrate: z.ZodNullable<z.ZodNumber>;
552
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
553
+ split: z.ZodNumber;
554
+ distance_mi: z.ZodNumber;
555
+ moving_time_s: z.ZodNumber;
556
+ elapsed_time_s: z.ZodNumber;
557
+ elevation_ft: z.ZodNumber;
558
+ pace: z.ZodString;
559
+ heartrate: z.ZodNullable<z.ZodNumber>;
560
+ }, z.ZodTypeAny, "passthrough">>, "many">;
561
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
562
+ activity_id: z.ZodNumber;
563
+ items: z.ZodArray<z.ZodObject<{
564
+ split: z.ZodNumber;
565
+ distance_mi: z.ZodNumber;
566
+ moving_time_s: z.ZodNumber;
567
+ elapsed_time_s: z.ZodNumber;
568
+ elevation_ft: z.ZodNumber;
569
+ pace: z.ZodString;
570
+ heartrate: z.ZodNullable<z.ZodNumber>;
571
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
572
+ split: z.ZodNumber;
573
+ distance_mi: z.ZodNumber;
574
+ moving_time_s: z.ZodNumber;
575
+ elapsed_time_s: z.ZodNumber;
576
+ elevation_ft: z.ZodNumber;
577
+ pace: z.ZodString;
578
+ heartrate: z.ZodNullable<z.ZodNumber>;
579
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
580
+ split: z.ZodNumber;
581
+ distance_mi: z.ZodNumber;
582
+ moving_time_s: z.ZodNumber;
583
+ elapsed_time_s: z.ZodNumber;
584
+ elevation_ft: z.ZodNumber;
585
+ pace: z.ZodString;
586
+ heartrate: z.ZodNullable<z.ZodNumber>;
587
+ }, z.ZodTypeAny, "passthrough">>, "many">;
588
+ }, z.ZodTypeAny, "passthrough">>;
589
+ /**
590
+ * outputSchema for get_running_years. The empty-state branch returns
591
+ * `{ items: [] }`, which satisfies the same schema.
592
+ */
593
+ export declare const runningYearsOutputSchema: z.ZodObject<{
594
+ items: z.ZodArray<z.ZodObject<{
595
+ year: z.ZodNumber;
596
+ total_runs: z.ZodNumber;
597
+ total_distance_mi: z.ZodNumber;
598
+ total_elevation_ft: z.ZodNumber;
599
+ total_duration_s: z.ZodNumber;
600
+ avg_pace: z.ZodNullable<z.ZodString>;
601
+ longest_run_mi: z.ZodNullable<z.ZodNumber>;
602
+ race_count: z.ZodNumber;
603
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
604
+ year: z.ZodNumber;
605
+ total_runs: z.ZodNumber;
606
+ total_distance_mi: z.ZodNumber;
607
+ total_elevation_ft: z.ZodNumber;
608
+ total_duration_s: z.ZodNumber;
609
+ avg_pace: z.ZodNullable<z.ZodString>;
610
+ longest_run_mi: z.ZodNullable<z.ZodNumber>;
611
+ race_count: z.ZodNumber;
612
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
613
+ year: z.ZodNumber;
614
+ total_runs: z.ZodNumber;
615
+ total_distance_mi: z.ZodNumber;
616
+ total_elevation_ft: z.ZodNumber;
617
+ total_duration_s: z.ZodNumber;
618
+ avg_pace: z.ZodNullable<z.ZodString>;
619
+ longest_run_mi: z.ZodNullable<z.ZodNumber>;
620
+ race_count: z.ZodNumber;
621
+ }, z.ZodTypeAny, "passthrough">>, "many">;
622
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
623
+ items: z.ZodArray<z.ZodObject<{
624
+ year: z.ZodNumber;
625
+ total_runs: z.ZodNumber;
626
+ total_distance_mi: z.ZodNumber;
627
+ total_elevation_ft: z.ZodNumber;
628
+ total_duration_s: z.ZodNumber;
629
+ avg_pace: z.ZodNullable<z.ZodString>;
630
+ longest_run_mi: z.ZodNullable<z.ZodNumber>;
631
+ race_count: z.ZodNumber;
632
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
633
+ year: z.ZodNumber;
634
+ total_runs: z.ZodNumber;
635
+ total_distance_mi: z.ZodNumber;
636
+ total_elevation_ft: z.ZodNumber;
637
+ total_duration_s: z.ZodNumber;
638
+ avg_pace: z.ZodNullable<z.ZodString>;
639
+ longest_run_mi: z.ZodNullable<z.ZodNumber>;
640
+ race_count: z.ZodNumber;
641
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
642
+ year: z.ZodNumber;
643
+ total_runs: z.ZodNumber;
644
+ total_distance_mi: z.ZodNumber;
645
+ total_elevation_ft: z.ZodNumber;
646
+ total_duration_s: z.ZodNumber;
647
+ avg_pace: z.ZodNullable<z.ZodString>;
648
+ longest_run_mi: z.ZodNullable<z.ZodNumber>;
649
+ race_count: z.ZodNumber;
650
+ }, z.ZodTypeAny, "passthrough">>, "many">;
651
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
652
+ items: z.ZodArray<z.ZodObject<{
653
+ year: z.ZodNumber;
654
+ total_runs: z.ZodNumber;
655
+ total_distance_mi: z.ZodNumber;
656
+ total_elevation_ft: z.ZodNumber;
657
+ total_duration_s: z.ZodNumber;
658
+ avg_pace: z.ZodNullable<z.ZodString>;
659
+ longest_run_mi: z.ZodNullable<z.ZodNumber>;
660
+ race_count: z.ZodNumber;
661
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
662
+ year: z.ZodNumber;
663
+ total_runs: z.ZodNumber;
664
+ total_distance_mi: z.ZodNumber;
665
+ total_elevation_ft: z.ZodNumber;
666
+ total_duration_s: z.ZodNumber;
667
+ avg_pace: z.ZodNullable<z.ZodString>;
668
+ longest_run_mi: z.ZodNullable<z.ZodNumber>;
669
+ race_count: z.ZodNumber;
670
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
671
+ year: z.ZodNumber;
672
+ total_runs: z.ZodNumber;
673
+ total_distance_mi: z.ZodNumber;
674
+ total_elevation_ft: z.ZodNumber;
675
+ total_duration_s: z.ZodNumber;
676
+ avg_pace: z.ZodNullable<z.ZodString>;
677
+ longest_run_mi: z.ZodNullable<z.ZodNumber>;
678
+ race_count: z.ZodNumber;
679
+ }, z.ZodTypeAny, "passthrough">>, "many">;
680
+ }, z.ZodTypeAny, "passthrough">>;