@cyanheads/seerr-mcp-server 0.1.0 → 0.1.2

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 (44) hide show
  1. package/AGENTS.md +19 -16
  2. package/CLAUDE.md +19 -16
  3. package/Dockerfile +11 -7
  4. package/LICENSE +1 -1
  5. package/README.md +7 -7
  6. package/changelog/0.1.x/0.1.1.md +30 -0
  7. package/changelog/0.1.x/0.1.2.md +22 -0
  8. package/changelog/template.md +5 -3
  9. package/dist/index.js +0 -0
  10. package/dist/mcp-server/resources/definitions/index.d.ts +1 -0
  11. package/dist/mcp-server/resources/definitions/index.d.ts.map +1 -1
  12. package/dist/mcp-server/resources/definitions/request.resource.d.ts +7 -3
  13. package/dist/mcp-server/resources/definitions/request.resource.d.ts.map +1 -1
  14. package/dist/mcp-server/resources/definitions/request.resource.js +17 -5
  15. package/dist/mcp-server/resources/definitions/request.resource.js.map +1 -1
  16. package/dist/mcp-server/tools/definitions/index.d.ts +152 -142
  17. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
  18. package/dist/mcp-server/tools/definitions/list-requests.tool.d.ts +16 -9
  19. package/dist/mcp-server/tools/definitions/list-requests.tool.d.ts.map +1 -1
  20. package/dist/mcp-server/tools/definitions/list-requests.tool.js +74 -11
  21. package/dist/mcp-server/tools/definitions/list-requests.tool.js.map +1 -1
  22. package/dist/mcp-server/tools/definitions/request-media.tool.d.ts +7 -2
  23. package/dist/mcp-server/tools/definitions/request-media.tool.d.ts.map +1 -1
  24. package/dist/mcp-server/tools/definitions/request-media.tool.js +18 -4
  25. package/dist/mcp-server/tools/definitions/request-media.tool.js.map +1 -1
  26. package/dist/mcp-server/tools/definitions/request-status.tool.d.ts +4 -2
  27. package/dist/mcp-server/tools/definitions/request-status.tool.d.ts.map +1 -1
  28. package/dist/mcp-server/tools/definitions/request-status.tool.js +11 -4
  29. package/dist/mcp-server/tools/definitions/request-status.tool.js.map +1 -1
  30. package/dist/mcp-server/tools/definitions/search-media.tool.d.ts +1 -1
  31. package/dist/services/seerr/normalizers.d.ts +5 -1
  32. package/dist/services/seerr/normalizers.d.ts.map +1 -1
  33. package/dist/services/seerr/normalizers.js +21 -7
  34. package/dist/services/seerr/normalizers.js.map +1 -1
  35. package/dist/services/seerr/seerr-service.d.ts +12 -2
  36. package/dist/services/seerr/seerr-service.d.ts.map +1 -1
  37. package/dist/services/seerr/seerr-service.js +42 -16
  38. package/dist/services/seerr/seerr-service.js.map +1 -1
  39. package/dist/services/seerr/titles.d.ts +47 -0
  40. package/dist/services/seerr/titles.d.ts.map +1 -0
  41. package/dist/services/seerr/titles.js +96 -0
  42. package/dist/services/seerr/titles.js.map +1 -0
  43. package/package.json +11 -9
  44. package/server.json +3 -3
@@ -24,8 +24,8 @@ export declare const requestMediaTool: import("@cyanheads/mcp-ts-core").ToolDefi
24
24
  }>;
25
25
  tmdbId: z.ZodNumber;
26
26
  mode: z.ZodDefault<z.ZodEnum<{
27
- request: "request";
28
27
  preview: "preview";
28
+ request: "request";
29
29
  }>>;
30
30
  is4k: z.ZodDefault<z.ZodBoolean>;
31
31
  seasons: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodArray<z.ZodNumber>]>>;
@@ -35,8 +35,8 @@ export declare const requestMediaTool: import("@cyanheads/mcp-ts-core").ToolDefi
35
35
  languageProfileId: z.ZodOptional<z.ZodNumber>;
36
36
  }, z.core.$strip>, z.ZodObject<{
37
37
  mode: z.ZodEnum<{
38
- request: "request";
39
38
  preview: "preview";
39
+ request: "request";
40
40
  }>;
41
41
  resolved: z.ZodObject<{
42
42
  tmdbId: z.ZodNumber;
@@ -103,6 +103,11 @@ export declare const requestMediaTool: import("@cyanheads/mcp-ts-core").ToolDefi
103
103
  readonly code: JsonRpcErrorCode.InvalidParams;
104
104
  readonly when: "an explicit season list was given but the instance disallows partial requests.";
105
105
  readonly recovery: "Use seasons:\"all\" to request the full series instead of specific seasons.";
106
+ }, {
107
+ readonly reason: "special_episodes_not_enabled";
108
+ readonly code: JsonRpcErrorCode.InvalidParams;
109
+ readonly when: "the season list includes 0 (Specials) but the instance has special episodes disabled.";
110
+ readonly recovery: "Drop season 0 from the list, or confirm specialEpisodesEnabled via seerr_service_options first.";
106
111
  }, {
107
112
  readonly reason: "duplicate_request";
108
113
  readonly code: JsonRpcErrorCode.InvalidParams;
@@ -1 +1 @@
1
- {"version":3,"file":"request-media.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/request-media.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAY,MAAM,+BAA+B,CAAC;AAW3E,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA4V3B,CAAC"}
1
+ {"version":3,"file":"request-media.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/request-media.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAY,MAAM,+BAA+B,CAAC;AAW3E,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAkX3B,CAAC"}
@@ -48,12 +48,12 @@ export const requestMediaTool = tool('seerr_request_media', {
48
48
  .union([
49
49
  z.literal('all'),
50
50
  z
51
- .array(z.number().int().min(1))
51
+ .array(z.number().int().min(0))
52
52
  .min(1)
53
- .describe('Explicit list of season numbers to request, e.g. [1, 2].'),
53
+ .describe('Explicit list of season numbers to request, e.g. [1, 2]. Season 0 is Specials — accepted only when the instance enables special episodes.'),
54
54
  ])
55
55
  .optional()
56
- .describe('TV only. "all" requests every season, or an explicit list of season numbers (e.g. [1,2]). Season 0 (Specials) is excluded unless the instance enables special episodes. Required for TV requests; ignored for movies.'),
56
+ .describe('TV only. "all" hands the whole series to the instance, which decides whether that includes season 0 (Specials). An explicit list (e.g. [1,2]) requests exactly those seasons, and season 0 is rejected unless the instance enables special episodes. Required for TV requests; ignored for movies.'),
57
57
  serverId: z
58
58
  .number()
59
59
  .int()
@@ -159,6 +159,12 @@ export const requestMediaTool = tool('seerr_request_media', {
159
159
  when: 'an explicit season list was given but the instance disallows partial requests.',
160
160
  recovery: 'Use seasons:"all" to request the full series instead of specific seasons.',
161
161
  },
162
+ {
163
+ reason: 'special_episodes_not_enabled',
164
+ code: JsonRpcErrorCode.InvalidParams,
165
+ when: 'the season list includes 0 (Specials) but the instance has special episodes disabled.',
166
+ recovery: 'Drop season 0 from the list, or confirm specialEpisodesEnabled via seerr_service_options first.',
167
+ },
162
168
  {
163
169
  reason: 'duplicate_request',
164
170
  code: JsonRpcErrorCode.InvalidParams,
@@ -205,11 +211,19 @@ export const requestMediaTool = tool('seerr_request_media', {
205
211
  ...ctx.recoveryFor('four_k_not_enabled'),
206
212
  });
207
213
  }
208
- if (Array.isArray(input.seasons) && !partialRequestsEnabled) {
214
+ /**
215
+ * Season constraints apply to the TV arm only — `buildPayload` drops `seasons`
216
+ * for a movie, so a movie request carrying one is a no-op, not a violation.
217
+ */
218
+ const seasonList = input.mediaType === 'tv' && Array.isArray(input.seasons) ? input.seasons : undefined;
219
+ if (seasonList && !partialRequestsEnabled) {
209
220
  throw ctx.fail('partial_requests_disabled', undefined, {
210
221
  ...ctx.recoveryFor('partial_requests_disabled'),
211
222
  });
212
223
  }
224
+ if (seasonList?.includes(0) && settings.enableSpecialEpisodes !== true) {
225
+ throw ctx.fail('special_episodes_not_enabled', 'Season 0 (Specials) cannot be requested — special episodes are disabled on this instance.', { ...ctx.recoveryFor('special_episodes_not_enabled') });
226
+ }
213
227
  const resolved = {
214
228
  tmdbId: input.tmdbId,
215
229
  mediaType: input.mediaType,
@@ -1 +1 @@
1
- {"version":3,"file":"request-media.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/request-media.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-media.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/request-media.tool.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,10 @@
4
4
  * (PII-redacted), a routing summary (names/IDs only — no filesystem paths), and a
5
5
  * status-tuned recovery hint. A missing request id surfaces as request_not_found
6
6
  * (Seerr's raw HTTP 404 is classified in the service layer). `profileName` is null
7
- * at this endpoint, so routing.profileName is optional; `title` is not on the
8
- * request object, so it is left unpopulated.
7
+ * at this endpoint, so routing.profileName is optional. `title` is not on the
8
+ * request object; it is joined from the media detail endpoint on every call — one
9
+ * request, one extra read, so it needs no opt-in flag. A request with no tmdbId,
10
+ * or a detail lookup that fails, degrades to no title rather than failing.
9
11
  * @module mcp-server/tools/definitions/request-status.tool
10
12
  */
11
13
  import { z } from '@cyanheads/mcp-ts-core';
@@ -1 +1 @@
1
- {"version":3,"file":"request-status.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/request-status.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAKjE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAsG5B,CAAC"}
1
+ {"version":3,"file":"request-status.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/request-status.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAMjE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA4G5B,CAAC"}
@@ -4,8 +4,10 @@
4
4
  * (PII-redacted), a routing summary (names/IDs only — no filesystem paths), and a
5
5
  * status-tuned recovery hint. A missing request id surfaces as request_not_found
6
6
  * (Seerr's raw HTTP 404 is classified in the service layer). `profileName` is null
7
- * at this endpoint, so routing.profileName is optional; `title` is not on the
8
- * request object, so it is left unpopulated.
7
+ * at this endpoint, so routing.profileName is optional. `title` is not on the
8
+ * request object; it is joined from the media detail endpoint on every call — one
9
+ * request, one extra read, so it needs no opt-in flag. A request with no tmdbId,
10
+ * or a detail lookup that fails, degrades to no title rather than failing.
9
11
  * @module mcp-server/tools/definitions/request-status.tool
10
12
  */
11
13
  import { tool, z } from '@cyanheads/mcp-ts-core';
@@ -13,6 +15,7 @@ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
13
15
  import { projectRequestDetail } from '../../../services/seerr/normalizers.js';
14
16
  import { getSeerrService } from '../../../services/seerr/seerr-service.js';
15
17
  import { StatusRef, statusText } from '../../../services/seerr/status.js';
18
+ import { hydrateRequestTitle } from '../../../services/seerr/titles.js';
16
19
  export const requestStatusTool = tool('seerr_request_status', {
17
20
  title: 'seerr-mcp-server: request status',
18
21
  description: 'Fetch one media request by ID and return its decoded request status, decoded media availability (including 4K), requester, a routing summary, and a next-step hint tuned to the current state. Get the requestId from seerr_request_media (created.requestId) or seerr_list_requests.',
@@ -27,7 +30,10 @@ export const requestStatusTool = tool('seerr_request_status', {
27
30
  output: z.object({
28
31
  requestId: z.number().describe('The request ID.'),
29
32
  mediaType: z.enum(['movie', 'tv']).describe('Movie or TV.'),
30
- title: z.string().optional().describe('Title of the requested media when joinable.'),
33
+ title: z
34
+ .string()
35
+ .optional()
36
+ .describe('Title of the requested media, joined from the media record; absent when the request carries no tmdbId or the lookup failed.'),
31
37
  tmdbId: z.number().optional().describe('TMDB ID of the media.'),
32
38
  requestStatus: StatusRef.describe('Decoded request status {raw,label}.'),
33
39
  mediaStatus: StatusRef.optional().describe('Decoded media availability {raw,label}.'),
@@ -68,10 +74,11 @@ export const requestStatusTool = tool('seerr_request_status', {
68
74
  async handler(input, ctx) {
69
75
  const seerr = getSeerrService();
70
76
  const raw = await seerr.getRequest(input.requestId, ctx);
71
- const detail = projectRequestDetail(raw);
77
+ const detail = await hydrateRequestTitle(projectRequestDetail(raw), seerr, ctx);
72
78
  ctx.log.info('Seerr request status fetched', {
73
79
  requestId: input.requestId,
74
80
  status: detail.requestStatus.label,
81
+ titleResolved: detail.title !== undefined,
75
82
  });
76
83
  return detail;
77
84
  },
@@ -1 +1 @@
1
- {"version":3,"file":"request-status.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/request-status.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-status.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/request-status.tool.ts"],"names":[],"mappings":"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"}
@@ -10,9 +10,9 @@ import { z } from '@cyanheads/mcp-ts-core';
10
10
  export declare const searchMediaTool: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
11
11
  query: z.ZodString;
12
12
  mediaType: z.ZodDefault<z.ZodEnum<{
13
+ all: "all";
13
14
  movie: "movie";
14
15
  tv: "tv";
15
- all: "all";
16
16
  }>>;
17
17
  page: z.ZodDefault<z.ZodNumber>;
18
18
  language: z.ZodOptional<z.ZodString>;
@@ -97,6 +97,7 @@ export interface DomainRequestDetail {
97
97
  };
98
98
  seasons?: number[];
99
99
  stateGuidance?: string;
100
+ title?: string;
100
101
  tmdbId?: number;
101
102
  updatedAt: string;
102
103
  }
@@ -105,7 +106,10 @@ export interface DomainRequestDetail {
105
106
  * `DomainRequestDetail`. The media-type discriminator is `type` (not `mediaType`);
106
107
  * `requestedBy` is projected to `{ id, displayName }`; `modifiedBy`, `serviceUrl`,
107
108
  * tokens, and paths are dropped by omission. `routing` carries names/IDs only.
108
- * `title` is intentionally absent — request objects have no title field.
109
+ * `title` is never set here — request objects have no title field, so it is
110
+ * joined from the media detail endpoint by `hydrateRequestTitle` (`titles.ts`),
111
+ * keeping this projection sync and I/O-free.
112
+ * `stateGuidance` reads `status4k` for a 4K request and `status` otherwise.
109
113
  */
110
114
  export declare function projectRequestDetail(raw: RawMediaRequest): DomainRequestDetail;
111
115
  //# sourceMappingURL=normalizers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalizers.d.ts","sourceRoot":"","sources":["../../../src/services/seerr/normalizers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,KAAK,aAAa,EAA0C,MAAM,aAAa,CAAC;AACzF,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,OAAO,EACR,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAQnD;AAED,gGAAgG;AAChG,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,YAAY,GAAG,kBAAkB,CAMxE;AAED,6GAA6G;AAC7G,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CAM/D;AAED,0EAA0E;AAC1E,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,GAAG,iBAAiB,GAAG,SAAS,CAWhG;AAQD,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,GAAG;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAOA;AAED,uGAAuG;AACvG,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAQA;AAED,uDAAuD;AACvD,wBAAgB,aAAa,CAAC,GAAG,EAAE,iBAAiB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAElF;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,aAAa,EAClB,YAAY,EAAE,OAAO,GACpB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAMlD;AAED,gHAAgH;AAChH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,UAAU,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IACpE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,GAAG,mBAAmB,CA8B9E"}
1
+ {"version":3,"file":"normalizers.d.ts","sourceRoot":"","sources":["../../../src/services/seerr/normalizers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,KAAK,aAAa,EAA0C,MAAM,aAAa,CAAC;AACzF,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,OAAO,EACR,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAQnD;AAED,gGAAgG;AAChG,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,YAAY,GAAG,kBAAkB,CAMxE;AAED,6GAA6G;AAC7G,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CAM/D;AAED,0EAA0E;AAC1E,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,GAAG,iBAAiB,GAAG,SAAS,CAWhG;AAQD,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,GAAG;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAOA;AAED,uGAAuG;AACvG,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAQA;AAED,uDAAuD;AACvD,wBAAgB,aAAa,CAAC,GAAG,EAAE,iBAAiB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAElF;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,aAAa,EAClB,YAAY,EAAE,OAAO,GACpB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAMlD;AAED,gHAAgH;AAChH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,UAAU,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IACpE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,GAAG,mBAAmB,CAqC9E"}
@@ -116,7 +116,10 @@ export function redactRootFolder(raw, includePaths) {
116
116
  * `DomainRequestDetail`. The media-type discriminator is `type` (not `mediaType`);
117
117
  * `requestedBy` is projected to `{ id, displayName }`; `modifiedBy`, `serviceUrl`,
118
118
  * tokens, and paths are dropped by omission. `routing` carries names/IDs only.
119
- * `title` is intentionally absent — request objects have no title field.
119
+ * `title` is never set here — request objects have no title field, so it is
120
+ * joined from the media detail endpoint by `hydrateRequestTitle` (`titles.ts`),
121
+ * keeping this projection sync and I/O-free.
122
+ * `stateGuidance` reads `status4k` for a 4K request and `status` otherwise.
120
123
  */
121
124
  export function projectRequestDetail(raw) {
122
125
  const mediaType = raw.type === 'tv' ? 'tv' : 'movie';
@@ -124,7 +127,14 @@ export function projectRequestDetail(raw) {
124
127
  const mediaStatus = typeof raw.media?.status === 'number' ? decodeMediaStatus(raw.media.status) : undefined;
125
128
  const mediaStatus4k = typeof raw.media?.status4k === 'number' ? decodeMediaStatus(raw.media.status4k) : undefined;
126
129
  const seasons = normalizeSeasons(raw);
127
- const guidance = stateGuidanceFor(requestStatus, mediaStatus);
130
+ const is4k = raw.is4k === true;
131
+ /**
132
+ * A 4K request downloads through the 4K Radarr/Sonarr service, whose progress
133
+ * lives on `status4k` — the non-4K `status` describes a separate pipeline and
134
+ * commonly sits at `unknown` while the 4K copy is already processing.
135
+ */
136
+ const availability = is4k && mediaStatus4k ? mediaStatus4k : mediaStatus;
137
+ const guidance = stateGuidanceFor(requestStatus, availability);
128
138
  const tmdbId = raw.media?.tmdbId;
129
139
  return {
130
140
  requestId: raw.id,
@@ -133,21 +143,25 @@ export function projectRequestDetail(raw) {
133
143
  requestStatus,
134
144
  ...(mediaStatus ? { mediaStatus } : {}),
135
145
  ...(mediaStatus4k ? { mediaStatus4k } : {}),
136
- is4k: raw.is4k === true,
146
+ is4k,
137
147
  ...(seasons.length > 0 ? { seasons } : {}),
138
148
  requestedBy: raw.requestedBy ? redactUser(raw.requestedBy) : { id: 0, displayName: 'Unknown' },
139
149
  routing: {
140
150
  ...(typeof raw.serverId === 'number' ? { serverId: raw.serverId } : {}),
141
151
  ...(raw.profileName ? { profileName: raw.profileName } : {}),
142
- is4k: raw.is4k === true,
152
+ is4k,
143
153
  },
144
154
  createdAt: raw.createdAt ?? '',
145
155
  updatedAt: raw.updatedAt ?? '',
146
156
  ...(guidance ? { stateGuidance: guidance } : {}),
147
157
  };
148
158
  }
149
- /** Derive a next-step hint from the decoded request + media status. Guidance only — never an ETA. */
150
- function stateGuidanceFor(requestStatus, mediaStatus) {
159
+ /**
160
+ * Derive a next-step hint from the decoded request status plus the availability
161
+ * that tracks THIS request (`status4k` for a 4K request, `status` otherwise).
162
+ * Guidance only — never an ETA.
163
+ */
164
+ function stateGuidanceFor(requestStatus, availability) {
151
165
  switch (requestStatus.label) {
152
166
  case 'pending':
153
167
  return 'Awaiting approval in Seerr. An operator must approve it before it downloads.';
@@ -162,7 +176,7 @@ function stateGuidanceFor(requestStatus, mediaStatus) {
162
176
  default:
163
177
  return;
164
178
  }
165
- switch (mediaStatus?.label) {
179
+ switch (availability?.label) {
166
180
  case 'processing':
167
181
  case 'pending':
168
182
  return 'Approved and downloading via Radarr/Sonarr. Check back shortly.';
@@ -1 +1 @@
1
- {"version":3,"file":"normalizers.js","sourceRoot":"","sources":["../../../src/services/seerr/normalizers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"normalizers.js","sourceRoot":"","sources":["../../../src/services/seerr/normalizers.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,16 @@ import type { CreateRequestBody, RawMediaRequest, RawMovieDetail, RawPublicSetti
21
21
  * for method-return clarity (same shape as the list entries).
22
22
  */
23
23
  export type RawMediaRequestDetail = RawMediaRequest;
24
+ /**
25
+ * Per-call overrides for the media-detail reads (`getMovie` / `getTv`). Both are
26
+ * called on a required path (`seerr_get_media`, where the detail IS the answer)
27
+ * and on a best-effort path (the title join), whose failure is absorbed — so the
28
+ * retry budget has to be the caller's choice rather than one fixed policy.
29
+ */
30
+ export interface DetailReadOptions {
31
+ /** Retry budget for this call. Omit for the framework default; `0` = single attempt. */
32
+ maxRetries?: number;
33
+ }
24
34
  /** Filters accepted by `listRequests`. */
25
35
  export interface ListRequestsParams {
26
36
  filter: string;
@@ -43,9 +53,9 @@ export declare class SeerrService {
43
53
  language?: string;
44
54
  }, ctx: Context): Promise<RawSearchResponse>;
45
55
  /** `GET /movie/{id}` — movie detail. 500 "Unable to retrieve movie." → media_not_found. */
46
- getMovie(tmdbId: number, ctx: Context): Promise<RawMovieDetail>;
56
+ getMovie(tmdbId: number, ctx: Context, options?: DetailReadOptions): Promise<RawMovieDetail>;
47
57
  /** `GET /tv/{id}` — TV detail. */
48
- getTv(tmdbId: number, ctx: Context): Promise<RawTvDetail>;
58
+ getTv(tmdbId: number, ctx: Context, options?: DetailReadOptions): Promise<RawTvDetail>;
49
59
  /** `GET /tv/{id}/season/{n}` — episode list for one season. */
50
60
  getSeason(tmdbId: number, seasonNumber: number, ctx: Context): Promise<RawSeasonDetail>;
51
61
  /** `GET /request` — list requests with filters. */
@@ -1 +1 @@
1
- {"version":3,"file":"seerr-service.d.ts","sourceRoot":"","sources":["../../../src/services/seerr/seerr-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seerr-service.d.ts","sourceRoot":"","sources":["../../../src/services/seerr/seerr-service.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,28 @@ import { throwClassifiedSeerrError } from './errors.js';
19
19
  const SERVICE_NAME = 'Seerr';
20
20
  const SETTINGS_CACHE_KEY = 'seerr:settings:public';
21
21
  const SETTINGS_CACHE_TTL_SECONDS = 300;
22
+ /**
23
+ * Percent-encode a query key or value for Seerr. Seerr validates the UNDECODED
24
+ * query string with `express-openapi-validator`, which rejects any value matching
25
+ * `/[:\/?#\[\]@!$&'()*+,;=]/` — so neither `URLSearchParams` (form-encodes a space
26
+ * to `+`, itself reserved) nor bare `encodeURIComponent` (leaves `!`, `'`, `(`,
27
+ * `)`, `*` intact) is sufficient. Those five are escaped on top of
28
+ * `encodeURIComponent`, which already covers the rest of the set.
29
+ */
30
+ function encodeQueryComponent(value) {
31
+ return encodeURIComponent(value).replace(/[!'()*]/g, (char) => `%${char.charCodeAt(0).toString(16).toUpperCase()}`);
32
+ }
33
+ /**
34
+ * Build a query string from ordered params, skipping `undefined` values. Every
35
+ * query-building call site goes through here so a free-text param can never
36
+ * reach Seerr under-encoded.
37
+ */
38
+ function buildQuery(params) {
39
+ return Object.entries(params)
40
+ .filter(([, value]) => value !== undefined)
41
+ .map(([key, value]) => `${encodeQueryComponent(key)}=${encodeQueryComponent(String(value))}`)
42
+ .join('&');
43
+ }
22
44
  export class SeerrService {
23
45
  baseUrl;
24
46
  apiKey;
@@ -34,18 +56,23 @@ export class SeerrService {
34
56
  * ------------------------------------------------------------------ */
35
57
  /** `GET /search` — title disambiguation. */
36
58
  search(params, ctx) {
37
- const qs = new URLSearchParams({ query: params.query, page: String(params.page) });
38
- if (params.language)
39
- qs.set('language', params.language);
40
- return this.request(`/search?${qs.toString()}`, ctx);
59
+ const qs = buildQuery({
60
+ query: params.query,
61
+ page: params.page,
62
+ language: params.language,
63
+ });
64
+ return this.request(`/search?${qs}`, ctx);
41
65
  }
42
66
  /** `GET /movie/{id}` — movie detail. 500 "Unable to retrieve movie." → media_not_found. */
43
- getMovie(tmdbId, ctx) {
44
- return this.request(`/movie/${tmdbId}`, ctx, { notFoundKind: 'media' });
67
+ getMovie(tmdbId, ctx, options = {}) {
68
+ return this.request(`/movie/${tmdbId}`, ctx, {
69
+ notFoundKind: 'media',
70
+ ...options,
71
+ });
45
72
  }
46
73
  /** `GET /tv/{id}` — TV detail. */
47
- getTv(tmdbId, ctx) {
48
- return this.request(`/tv/${tmdbId}`, ctx, { notFoundKind: 'media' });
74
+ getTv(tmdbId, ctx, options = {}) {
75
+ return this.request(`/tv/${tmdbId}`, ctx, { notFoundKind: 'media', ...options });
49
76
  }
50
77
  /** `GET /tv/{id}/season/{n}` — episode list for one season. */
51
78
  getSeason(tmdbId, seasonNumber, ctx) {
@@ -58,18 +85,16 @@ export class SeerrService {
58
85
  * ------------------------------------------------------------------ */
59
86
  /** `GET /request` — list requests with filters. */
60
87
  listRequests(params, ctx) {
61
- const qs = new URLSearchParams({
62
- take: String(params.take),
63
- skip: String(params.skip),
88
+ const qs = buildQuery({
89
+ take: params.take,
90
+ skip: params.skip,
64
91
  filter: params.filter,
65
92
  sort: params.sort,
66
93
  sortDirection: params.sortDirection,
94
+ mediaType: params.mediaType && params.mediaType !== 'all' ? params.mediaType : undefined,
95
+ requestedBy: params.requestedById,
67
96
  });
68
- if (params.mediaType && params.mediaType !== 'all')
69
- qs.set('mediaType', params.mediaType);
70
- if (typeof params.requestedById === 'number')
71
- qs.set('requestedBy', String(params.requestedById));
72
- return this.request(`/request?${qs.toString()}`, ctx);
97
+ return this.request(`/request?${qs}`, ctx);
73
98
  }
74
99
  /** `GET /request/{id}` — single request. 404 "Request not found." → request_not_found. */
75
100
  getRequest(requestId, ctx) {
@@ -162,6 +187,7 @@ export class SeerrService {
162
187
  operation: `SeerrService.request ${method} ${path}`,
163
188
  context: { requestId: ctx.requestId, timestamp: ctx.timestamp },
164
189
  baseDelayMs: options.baseDelayMs ?? 300,
190
+ ...(options.maxRetries !== undefined ? { maxRetries: options.maxRetries } : {}),
165
191
  signal: ctx.signal,
166
192
  });
167
193
  }
@@ -1 +1 @@
1
- {"version":3,"file":"seerr-service.js","sourceRoot":"","sources":["../../../src/services/seerr/seerr-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seerr-service.js","sourceRoot":"","sources":["../../../src/services/seerr/seerr-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @fileoverview Title hydration for request-shaped output. Seerr's `MediaRequest`
3
+ * objects carry no title field — only `media.tmdbId` — so a readable request row
4
+ * costs one extra `GET /movie/{id}` or `GET /tv/{id}` per distinct title. This
5
+ * module owns that join and the three properties it needs:
6
+ *
7
+ * - **De-duplication.** A 4K and a non-4K request for one film, or several
8
+ * seasons of one show, share a `(mediaType, tmdbId)` and resolve once.
9
+ * - **Bounded fan-out.** Lookups run through a fixed-size worker pool, never
10
+ * one-shot `Promise.all` over an entire page. Each leg is single-attempt, so
11
+ * the pool's width is also the real ceiling on upstream calls.
12
+ * - **Degradation.** A lookup that throws, returns an empty title, or has no
13
+ * `tmdbId` to look up yields no title and no error — the row keeps every
14
+ * other field. Callers disclose the count; nothing here throws.
15
+ * @module services/seerr/titles
16
+ */
17
+ import type { Context } from '@cyanheads/mcp-ts-core';
18
+ import type { DomainRequestDetail } from './normalizers.js';
19
+ import type { SeerrService } from './seerr-service.js';
20
+ /** The identity of one title lookup — the pair that de-duplicates a request page. */
21
+ export interface TitleKey {
22
+ mediaType: 'movie' | 'tv';
23
+ tmdbId: number;
24
+ }
25
+ /** Outcome of one hydration pass. */
26
+ export interface TitleLookup {
27
+ /** Resolved titles, keyed by {@link titleKeyOf}. A key absent here did not resolve. */
28
+ titles: Map<string, string>;
29
+ /** Distinct pairs looked up — the number of upstream detail calls this pass made. */
30
+ uniqueKeys: number;
31
+ }
32
+ /** Map key for a resolved title. */
33
+ export declare function titleKeyOf(mediaType: 'movie' | 'tv', tmdbId: number): string;
34
+ /**
35
+ * Resolve titles for a batch of `(mediaType, tmdbId)` pairs. Duplicates collapse
36
+ * before any fetch, so N rows sharing a title cost one call. Never throws — a
37
+ * failed leg is absorbed, leaving its key absent from `titles`.
38
+ */
39
+ export declare function resolveTitles(keys: readonly TitleKey[], seerr: SeerrService, ctx: Context): Promise<TitleLookup>;
40
+ /**
41
+ * Attach a resolved title to a single projected request detail. Returns the
42
+ * detail untouched when there is no `tmdbId` to look up or the lookup fails —
43
+ * the shared path behind seerr_request_status and the request resource, both of
44
+ * which hydrate unconditionally (one request, one extra call).
45
+ */
46
+ export declare function hydrateRequestTitle(detail: DomainRequestDetail, seerr: SeerrService, ctx: Context): Promise<DomainRequestDetail>;
47
+ //# sourceMappingURL=titles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"titles.d.ts","sourceRoot":"","sources":["../../../src/services/seerr/titles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAmBvD,qFAAqF;AACrF,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qCAAqC;AACrC,MAAM,WAAW,WAAW;IAC1B,uFAAuF;IACvF,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,qFAAqF;IACrF,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,oCAAoC;AACpC,wBAAgB,UAAU,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,SAAS,QAAQ,EAAE,EACzB,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,WAAW,CAAC,CAyBtB;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,mBAAmB,CAAC,CAI9B"}