movie-agent 1.1.0 → 1.1.1

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 (46) hide show
  1. package/README.md +10 -1
  2. package/dist/agent.d.ts +6 -4
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +33 -16
  5. package/dist/agent.js.map +1 -1
  6. package/dist/cache.d.ts +40 -5
  7. package/dist/cache.d.ts.map +1 -1
  8. package/dist/cache.js +95 -11
  9. package/dist/cache.js.map +1 -1
  10. package/dist/factory.d.ts.map +1 -1
  11. package/dist/factory.js +1 -1
  12. package/dist/factory.js.map +1 -1
  13. package/dist/format.d.ts +14 -1
  14. package/dist/format.d.ts.map +1 -1
  15. package/dist/format.js +22 -1
  16. package/dist/format.js.map +1 -1
  17. package/dist/index.d.ts +1 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +5 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/llm.d.ts.map +1 -1
  22. package/dist/llm.js +15 -4
  23. package/dist/llm.js.map +1 -1
  24. package/dist/providers.d.ts +9 -1
  25. package/dist/providers.d.ts.map +1 -1
  26. package/dist/providers.js +27 -0
  27. package/dist/providers.js.map +1 -1
  28. package/dist/rateLimiter.d.ts +59 -0
  29. package/dist/rateLimiter.d.ts.map +1 -0
  30. package/dist/rateLimiter.js +99 -0
  31. package/dist/rateLimiter.js.map +1 -0
  32. package/dist/sanitize.d.ts +24 -0
  33. package/dist/sanitize.d.ts.map +1 -0
  34. package/dist/sanitize.js +137 -0
  35. package/dist/sanitize.js.map +1 -0
  36. package/dist/tmdbApi.d.ts +37 -1
  37. package/dist/tmdbApi.d.ts.map +1 -1
  38. package/dist/tmdbApi.js +70 -22
  39. package/dist/tmdbApi.js.map +1 -1
  40. package/dist/types.d.ts +2 -0
  41. package/dist/types.d.ts.map +1 -1
  42. package/dist/validate.d.ts +5 -0
  43. package/dist/validate.d.ts.map +1 -1
  44. package/dist/validate.js +38 -1
  45. package/dist/validate.js.map +1 -1
  46. package/package.json +6 -3
package/README.md CHANGED
@@ -11,6 +11,7 @@ An intelligent movie recommendation system that helps users discover movies base
11
11
  - ⚡ Fast responses using TMDb API
12
12
  - 🎯 Smart filtering by runtime, release year, and streaming platforms
13
13
  - 📦 Easy integration into web applications and APIs
14
+ - 🔒 Multi-tenant cache isolation for secure deployments (see [Cache Isolation Guide](docs/CACHE_ISOLATION.md))
14
15
 
15
16
  ## Prerequisites
16
17
 
@@ -178,7 +179,8 @@ interface UserInput {
178
179
  "genres": ["Action", "Adventure"],
179
180
  "description": "...",
180
181
  "streamingPlatforms": [...],
181
- "matchReason": "..."
182
+ "matchReason": "...",
183
+ "posterUrl": "https://image.tmdb.org/t/p/w500/abc123.jpg"
182
184
  }
183
185
  ],
184
186
  "metadata": {...}
@@ -507,7 +509,13 @@ import {
507
509
  AgentResponse,
508
510
  MovieRecommendation,
509
511
  ErrorResponse,
512
+ buildPosterUrl, // Utility to build poster URLs with different sizes
513
+ TMDB_IMAGE_BASE_URL, // Base URL for TMDb images
510
514
  } from 'movie-agent';
515
+
516
+ // Build poster URL with custom size (default is w500)
517
+ const smallPoster = buildPosterUrl('/abc123.jpg', 'w185');
518
+ // => "https://image.tmdb.org/t/p/w185/abc123.jpg"
511
519
  ```
512
520
 
513
521
  ## Response Format
@@ -532,6 +540,7 @@ interface MovieRecommendation {
532
540
  overview: string;
533
541
  streamingPlatforms: StreamingPlatform[];
534
542
  matchReason: string;
543
+ posterUrl: string | null; // Full URL to movie poster image (w500 size)
535
544
  }
536
545
  ```
537
546
 
package/dist/agent.d.ts CHANGED
@@ -7,6 +7,7 @@ export declare class MovieAgent {
7
7
  private tmdbClient;
8
8
  private logger;
9
9
  private llmService;
10
+ private debug;
10
11
  /**
11
12
  * Creates a new MovieAgent instance
12
13
  * @param tmdbClient - Optional TMDb API client for testing
@@ -15,11 +16,12 @@ export declare class MovieAgent {
15
16
  * @param llmProvider - LLM provider to use ('gemini' or 'azure')
16
17
  * @param llmApiKey - API key for the LLM provider
17
18
  * @param azureConfig - Azure OpenAI configuration (endpoint and deployment)
19
+ * @param debug - Whether to include detailed error information in responses (default: false for production safety)
18
20
  */
19
21
  constructor(tmdbClient?: TmdbApiClient, logger?: (message: string) => void, enableLLM?: boolean, llmProvider?: 'gemini' | 'azure', llmApiKey?: string, azureConfig?: {
20
22
  endpoint?: string;
21
23
  deployment?: string;
22
- });
24
+ }, debug?: boolean);
23
25
  /**
24
26
  * Gets movie recommendations based on user input
25
27
  * @param input - User input with mood, platforms, genres, runtime, and year preferences
@@ -60,11 +62,11 @@ export declare class MovieAgent {
60
62
  */
61
63
  private discoverCandidates;
62
64
  /**
63
- * Fetches watch providers for each candidate movie
64
- * @param candidates - Array of movie details
65
+ * Extracts watch providers from movie details and filters to those with providers
66
+ * @param candidates - Array of movie details with embedded providers
65
67
  * @returns Array of movies with platform information
66
68
  */
67
- private fetchWatchProviders;
69
+ private extractWatchProviders;
68
70
  /**
69
71
  * Applies user-specified filters to movies
70
72
  * @param movies - Movies with provider information
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,aAAa,EAGb,aAAa,EACd,MAAM,SAAS,CAAC;AASjB,OAAO,aAA+B,MAAM,WAAW,CAAC;AAcxD;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,UAAU,CAAoB;IAEtC;;;;;;;;OAQG;gBAED,UAAU,CAAC,EAAE,aAAa,EAC1B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAClC,SAAS,CAAC,EAAE,OAAO,EACnB,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,EAChC,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAa1D;;;;OAIG;IACG,kBAAkB,CACtB,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;IAgEzC;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAmEnB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAqBrB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAerB;;;;;OAKG;YACW,kBAAkB;IA0ChC;;;;OAIG;YACW,mBAAmB;IAgCjC;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IA+BpB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAoCrB;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAiC7B;;;;OAIG;IACG,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC;IAoB/D;;;;;OAKG;IACG,MAAM,CACV,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAC/B,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC;IAwBhC;;OAEG;IACH,OAAO,CAAC,cAAc;IAsBtB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;CAuC5B"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,aAAa,EAGb,aAAa,EACd,MAAM,SAAS,CAAC;AAWjB,OAAO,aAGN,MAAM,WAAW,CAAC;AAcnB;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,KAAK,CAAU;IAEvB;;;;;;;;;OASG;gBAED,UAAU,CAAC,EAAE,aAAa,EAC1B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAClC,SAAS,CAAC,EAAE,OAAO,EACnB,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,EAChC,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,EACxD,KAAK,CAAC,EAAE,OAAO;IAgBjB;;;;OAIG;IACG,kBAAkB,CACtB,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;IAkEzC;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAoB3B;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAmEnB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA+BrB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAerB;;;;;OAKG;YACW,kBAAkB;IA2ChC;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IA8B7B;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IA+BpB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAoCrB;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAkC7B;;;;OAIG;IACG,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC;IAoB/D;;;;;OAKG;IACG,MAAM,CACV,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAC/B,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC;IAwBhC;;OAEG;IACH,OAAO,CAAC,cAAc;IAsBtB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;CAuC5B"}
package/dist/agent.js CHANGED
@@ -25,8 +25,9 @@ class MovieAgent {
25
25
  * @param llmProvider - LLM provider to use ('gemini' or 'azure')
26
26
  * @param llmApiKey - API key for the LLM provider
27
27
  * @param azureConfig - Azure OpenAI configuration (endpoint and deployment)
28
+ * @param debug - Whether to include detailed error information in responses (default: false for production safety)
28
29
  */
29
- constructor(tmdbClient, logger, enableLLM, llmProvider, llmApiKey, azureConfig) {
30
+ constructor(tmdbClient, logger, enableLLM, llmProvider, llmApiKey, azureConfig, debug) {
30
31
  this.tmdbClient = tmdbClient ?? new tmdbApi_1.default();
31
32
  this.logger =
32
33
  logger ?? ((message) => console.log(`[MovieAgent] ${message}`));
@@ -35,6 +36,8 @@ class MovieAgent {
35
36
  this.llmService = shouldEnableLLM
36
37
  ? new llm_1.LLMService(llmApiKey, llmProvider, azureConfig)
37
38
  : null;
39
+ // Default to false for production safety - only expose details when explicitly enabled
40
+ this.debug = debug ?? false;
38
41
  }
39
42
  /**
40
43
  * Gets movie recommendations based on user input
@@ -51,17 +54,17 @@ class MovieAgent {
51
54
  this.logger('Step 2: Resolving genres');
52
55
  const genres = this.resolveGenres(input);
53
56
  this.logger(`Resolved genres: ${genres.join(', ')}`);
54
- // Step 3: Discover candidate movies via TMDb
55
- this.logger('Step 3: Discovering candidate movies');
57
+ // Step 3: Discover candidate movies via TMDb (with watch providers)
58
+ this.logger('Step 3: Discovering candidate movies with providers');
56
59
  const candidates = await this.discoverCandidates(input, genres);
57
60
  this.logger(`Found ${candidates.length} candidate movies`);
58
61
  if (candidates.length === 0) {
59
62
  return this.createErrorResponse('NO_RESULTS', 'No movies found matching the criteria');
60
63
  }
61
- // Step 4: Fetch watch providers for each candidate (region CA)
62
- this.logger('Step 4: Fetching watch providers');
63
- const moviesWithProviders = await this.fetchWatchProviders(candidates);
64
- this.logger(`Fetched providers for ${moviesWithProviders.length} movies`);
64
+ // Step 4: Extract watch providers from embedded data (region CA)
65
+ this.logger('Step 4: Extracting watch providers');
66
+ const moviesWithProviders = this.extractWatchProviders(candidates);
67
+ this.logger(`${moviesWithProviders.length} movies have streaming providers`);
65
68
  // Step 5: Apply filters (platforms, runtime, year)
66
69
  this.logger('Step 5: Applying filters');
67
70
  const filtered = this.applyFilters(moviesWithProviders, input);
@@ -95,12 +98,17 @@ class MovieAgent {
95
98
  * @returns ErrorResponse object
96
99
  */
97
100
  createErrorResponse(errorType, message, details) {
101
+ // Log detailed error information server-side for debugging
102
+ if (details) {
103
+ this.logger(`Error details: ${details}`);
104
+ }
98
105
  return {
99
106
  error: true,
100
107
  errorType,
101
108
  message,
102
109
  timestamp: new Date().toISOString(),
103
- details,
110
+ // Only include details in response when debug mode is enabled
111
+ details: this.debug ? details : undefined,
104
112
  };
105
113
  }
106
114
  /**
@@ -147,6 +155,14 @@ class MovieAgent {
147
155
  * @throws Error if validation fails
148
156
  */
149
157
  validateInput(input) {
158
+ // Validate mood if provided
159
+ if (input.mood !== undefined) {
160
+ (0, validate_1.validateMood)(input.mood);
161
+ }
162
+ // Validate genre if provided
163
+ if (input.genre !== undefined) {
164
+ (0, validate_1.validateGenre)(input.genre);
165
+ }
150
166
  // Validate platforms if provided
151
167
  if (input.platforms && input.platforms.length > 0) {
152
168
  (0, validate_1.validatePlatforms)(input.platforms);
@@ -214,22 +230,22 @@ class MovieAgent {
214
230
  // Fetch detailed information for top candidates
215
231
  // Limit to top 20 to avoid excessive API calls
216
232
  const topCandidates = response.results.slice(0, 20);
217
- // Fetch details for each movie
218
- const detailsPromises = topCandidates.map(movie => this.tmdbClient.getMovieDetails(movie.id));
233
+ // Fetch details with watch providers in a single call per movie
234
+ // This uses append_to_response to reduce API calls by 50%
235
+ const detailsPromises = topCandidates.map(movie => this.tmdbClient.getMovieDetailsWithProviders(movie.id));
219
236
  const details = await Promise.all(detailsPromises);
220
237
  return details;
221
238
  }
222
239
  /**
223
- * Fetches watch providers for each candidate movie
224
- * @param candidates - Array of movie details
240
+ * Extracts watch providers from movie details and filters to those with providers
241
+ * @param candidates - Array of movie details with embedded providers
225
242
  * @returns Array of movies with platform information
226
243
  */
227
- async fetchWatchProviders(candidates) {
244
+ extractWatchProviders(candidates) {
228
245
  const moviesWithProviders = [];
229
- // Fetch providers for each movie
230
246
  for (const movie of candidates) {
231
247
  try {
232
- const platforms = await (0, providers_1.getCanadianProviders)(movie.id, 'CA', this.tmdbClient);
248
+ const platforms = (0, providers_1.extractPlatformsFromProviders)(movie['watch/providers'], 'CA');
233
249
  // Only include movies with at least one provider
234
250
  if (platforms.length > 0) {
235
251
  moviesWithProviders.push({
@@ -240,7 +256,7 @@ class MovieAgent {
240
256
  }
241
257
  catch (error) {
242
258
  // Log error but continue with other movies
243
- this.logger(`Failed to fetch providers for movie ${movie.id}: ${error instanceof Error ? error.message : String(error)}`);
259
+ this.logger(`Failed to extract providers for movie ${movie.id}: ${error instanceof Error ? error.message : String(error)}`);
244
260
  }
245
261
  }
246
262
  return moviesWithProviders;
@@ -335,6 +351,7 @@ class MovieAgent {
335
351
  runtime: movie.runtime || 0,
336
352
  overview: movie.overview || '',
337
353
  genres: movie.genres || [],
354
+ poster_path: movie.poster_path,
338
355
  }, streamingPlatforms, reason);
339
356
  });
340
357
  }
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/cache.d.ts CHANGED
@@ -1,14 +1,35 @@
1
1
  /**
2
2
  * Simple in-memory cache with TTL support
3
3
  */
4
+ /**
5
+ * Optional context for cache key isolation in multi-tenant scenarios.
6
+ * Allows separating cache entries by user, session, or tenant.
7
+ */
8
+ export interface CacheContext {
9
+ /** User identifier for user-specific cache isolation */
10
+ userId?: string;
11
+ /** Session identifier for session-specific cache isolation */
12
+ sessionId?: string;
13
+ /** Tenant identifier for multi-tenant cache isolation */
14
+ tenantId?: string;
15
+ }
4
16
  export declare class Cache {
5
17
  private store;
6
18
  private defaultTtl;
19
+ private context?;
7
20
  /**
8
21
  * Creates a new cache instance
9
22
  * @param defaultTtl Default time-to-live in seconds
23
+ * @param context Optional context for cache key isolation (e.g., userId, sessionId, tenantId)
24
+ * @throws Error if any context value is an empty string
25
+ */
26
+ constructor(defaultTtl?: number, context?: CacheContext);
27
+ /**
28
+ * Prefixes a cache key with context information for isolation.
29
+ * @param key Base cache key
30
+ * @returns Prefixed cache key with context
10
31
  */
11
- constructor(defaultTtl?: number);
32
+ private prefixKey;
12
33
  /**
13
34
  * Sets a value in the cache
14
35
  * @param key Cache key
@@ -50,9 +71,21 @@ export declare class Cache {
50
71
  prune(): number;
51
72
  }
52
73
  /**
53
- * Gets the global cache instance
74
+ * Gets the global cache instance.
75
+ *
76
+ * NOTE: The global cache instance does not support context-based isolation.
77
+ * For multi-tenant scenarios requiring cache isolation, create separate Cache
78
+ * instances with appropriate context parameters instead of using the global singleton.
79
+ *
80
+ * @example
81
+ * // For single-tenant CLI usage (default):
82
+ * const cache = getCache(3600);
83
+ *
84
+ * // For multi-tenant scenarios, use separate instances:
85
+ * const tenantCache = new Cache(3600, { tenantId: 'tenant1' });
86
+ *
54
87
  * @param ttl Default TTL for the cache (only used on first call)
55
- * @returns Global cache instance
88
+ * @returns Global cache instance without context
56
89
  */
57
90
  export declare function getCache(ttl?: number): Cache;
58
91
  /**
@@ -62,14 +95,16 @@ export declare function resetCache(): void;
62
95
  /**
63
96
  * Generates a cache key for discover parameters
64
97
  * @param params Discover parameters object
98
+ * @param context Optional context for multi-tenant cache isolation
65
99
  * @returns Cache key string
66
100
  */
67
- export declare function generateDiscoverCacheKey(params: Record<string, any>): string;
101
+ export declare function generateDiscoverCacheKey(params: Record<string, any>, context?: CacheContext): string;
68
102
  /**
69
103
  * Generates a cache key for watch providers
70
104
  * @param movieId Movie ID
71
105
  * @param region Region code
106
+ * @param context Optional context for multi-tenant cache isolation
72
107
  * @returns Cache key string
73
108
  */
74
- export declare function generateProvidersCacheKey(movieId: number | string, region: string): string;
109
+ export declare function generateProvidersCacheKey(movieId: number | string, region: string, context?: CacheContext): string;
75
110
  //# sourceMappingURL=cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,qBAAa,KAAK;IAChB,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,UAAU,CAAS;IAE3B;;;OAGG;gBACS,UAAU,GAAE,MAAa;IAKrC;;;;;OAKG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAMjD;;;;OAIG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAgBlC;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;OAGG;IACH,IAAI,IAAI,MAAM;IAId;;;OAGG;IACH,KAAK,IAAI,MAAM;CAahB;AAKD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAK5C;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAK5E;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,MAAM,EAAE,MAAM,GACb,MAAM,CAER"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA6CD,qBAAa,KAAK;IAChB,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAC,CAAe;IAE/B;;;;;OAKG;gBACS,UAAU,GAAE,MAAa,EAAE,OAAO,CAAC,EAAE,YAAY;IA6B7D;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAIjB;;;;;OAKG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAOjD;;;;OAIG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAiBlC;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAK5B;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;OAGG;IACH,IAAI,IAAI,MAAM;IAId;;;OAGG;IACH,KAAK,IAAI,MAAM;CAahB;AAKD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAK5C;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,OAAO,CAAC,EAAE,YAAY,GACrB,MAAM,CAOR;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,YAAY,GACrB,MAAM,CAIR"}
package/dist/cache.js CHANGED
@@ -8,14 +8,79 @@ exports.getCache = getCache;
8
8
  exports.resetCache = resetCache;
9
9
  exports.generateDiscoverCacheKey = generateDiscoverCacheKey;
10
10
  exports.generateProvidersCacheKey = generateProvidersCacheKey;
11
+ /**
12
+ * Sanitizes a context value to prevent cache key collisions.
13
+ * Encodes special characters to ensure unique, safe cache keys.
14
+ * Uses encodeURIComponent to handle special characters like colons, slashes, etc.
15
+ * @param value Context value to sanitize
16
+ * @returns Sanitized value safe for use in cache keys
17
+ * @throws Error if value is empty
18
+ */
19
+ function sanitizeContextValue(value) {
20
+ if (!value || value.trim() === '') {
21
+ throw new Error('Context values cannot be empty strings');
22
+ }
23
+ // Use URI encoding to handle special characters safely
24
+ // This prevents collisions from characters like ':', '/', ';', etc.
25
+ return encodeURIComponent(value);
26
+ }
27
+ /**
28
+ * Applies context prefix to a cache key for multi-tenant isolation.
29
+ * Prefixes are applied in order: tenant -> user -> session
30
+ * @param key Base cache key
31
+ * @param context Optional context for isolation
32
+ * @returns Prefixed cache key if context is provided, otherwise the original key
33
+ */
34
+ function applyContextPrefix(key, context) {
35
+ if (!context) {
36
+ return key;
37
+ }
38
+ const prefixParts = [];
39
+ if (context.tenantId) {
40
+ prefixParts.push(`tenant:${sanitizeContextValue(context.tenantId)}`);
41
+ }
42
+ if (context.userId) {
43
+ prefixParts.push(`user:${sanitizeContextValue(context.userId)}`);
44
+ }
45
+ if (context.sessionId) {
46
+ prefixParts.push(`session:${sanitizeContextValue(context.sessionId)}`);
47
+ }
48
+ return prefixParts.length > 0 ? `${prefixParts.join(':')}:${key}` : key;
49
+ }
11
50
  class Cache {
12
51
  /**
13
52
  * Creates a new cache instance
14
53
  * @param defaultTtl Default time-to-live in seconds
54
+ * @param context Optional context for cache key isolation (e.g., userId, sessionId, tenantId)
55
+ * @throws Error if any context value is an empty string
15
56
  */
16
- constructor(defaultTtl = 3600) {
57
+ constructor(defaultTtl = 3600, context) {
17
58
  this.store = new Map();
18
59
  this.defaultTtl = defaultTtl;
60
+ // Validate context values if provided
61
+ if (context) {
62
+ if (context.tenantId !== undefined &&
63
+ (!context.tenantId || context.tenantId.trim() === '')) {
64
+ throw new Error('Context values cannot be empty strings');
65
+ }
66
+ if (context.userId !== undefined &&
67
+ (!context.userId || context.userId.trim() === '')) {
68
+ throw new Error('Context values cannot be empty strings');
69
+ }
70
+ if (context.sessionId !== undefined &&
71
+ (!context.sessionId || context.sessionId.trim() === '')) {
72
+ throw new Error('Context values cannot be empty strings');
73
+ }
74
+ }
75
+ this.context = context;
76
+ }
77
+ /**
78
+ * Prefixes a cache key with context information for isolation.
79
+ * @param key Base cache key
80
+ * @returns Prefixed cache key with context
81
+ */
82
+ prefixKey(key) {
83
+ return applyContextPrefix(key, this.context);
19
84
  }
20
85
  /**
21
86
  * Sets a value in the cache
@@ -26,7 +91,8 @@ class Cache {
26
91
  set(key, value, ttl) {
27
92
  const effectiveTtl = ttl ?? this.defaultTtl;
28
93
  const expiresAt = Date.now() + effectiveTtl * 1000;
29
- this.store.set(key, { value, expiresAt });
94
+ const prefixedKey = this.prefixKey(key);
95
+ this.store.set(prefixedKey, { value, expiresAt });
30
96
  }
31
97
  /**
32
98
  * Gets a value from the cache
@@ -34,13 +100,14 @@ class Cache {
34
100
  * @returns Cached value or undefined if not found or expired
35
101
  */
36
102
  get(key) {
37
- const entry = this.store.get(key);
103
+ const prefixedKey = this.prefixKey(key);
104
+ const entry = this.store.get(prefixedKey);
38
105
  if (!entry) {
39
106
  return undefined;
40
107
  }
41
108
  // Check if entry has expired
42
109
  if (Date.now() > entry.expiresAt) {
43
- this.store.delete(key);
110
+ this.store.delete(prefixedKey);
44
111
  return undefined;
45
112
  }
46
113
  return entry.value;
@@ -59,7 +126,8 @@ class Cache {
59
126
  * @returns true if key existed and was deleted
60
127
  */
61
128
  delete(key) {
62
- return this.store.delete(key);
129
+ const prefixedKey = this.prefixKey(key);
130
+ return this.store.delete(prefixedKey);
63
131
  }
64
132
  /**
65
133
  * Clears all entries from the cache
@@ -94,9 +162,21 @@ exports.Cache = Cache;
94
162
  // Singleton instance for application-wide use
95
163
  let cacheInstance = null;
96
164
  /**
97
- * Gets the global cache instance
165
+ * Gets the global cache instance.
166
+ *
167
+ * NOTE: The global cache instance does not support context-based isolation.
168
+ * For multi-tenant scenarios requiring cache isolation, create separate Cache
169
+ * instances with appropriate context parameters instead of using the global singleton.
170
+ *
171
+ * @example
172
+ * // For single-tenant CLI usage (default):
173
+ * const cache = getCache(3600);
174
+ *
175
+ * // For multi-tenant scenarios, use separate instances:
176
+ * const tenantCache = new Cache(3600, { tenantId: 'tenant1' });
177
+ *
98
178
  * @param ttl Default TTL for the cache (only used on first call)
99
- * @returns Global cache instance
179
+ * @returns Global cache instance without context
100
180
  */
101
181
  function getCache(ttl) {
102
182
  if (!cacheInstance) {
@@ -113,21 +193,25 @@ function resetCache() {
113
193
  /**
114
194
  * Generates a cache key for discover parameters
115
195
  * @param params Discover parameters object
196
+ * @param context Optional context for multi-tenant cache isolation
116
197
  * @returns Cache key string
117
198
  */
118
- function generateDiscoverCacheKey(params) {
199
+ function generateDiscoverCacheKey(params, context) {
119
200
  // Sort keys to ensure consistent key generation
120
201
  const sortedKeys = Object.keys(params).sort();
121
202
  const keyParts = sortedKeys.map(key => `${key}=${params[key]}`);
122
- return `discover:${keyParts.join('&')}`;
203
+ const baseKey = `discover:${keyParts.join('&')}`;
204
+ return applyContextPrefix(baseKey, context);
123
205
  }
124
206
  /**
125
207
  * Generates a cache key for watch providers
126
208
  * @param movieId Movie ID
127
209
  * @param region Region code
210
+ * @param context Optional context for multi-tenant cache isolation
128
211
  * @returns Cache key string
129
212
  */
130
- function generateProvidersCacheKey(movieId, region) {
131
- return `providers:${movieId}:${region}`;
213
+ function generateProvidersCacheKey(movieId, region, context) {
214
+ const baseKey = `providers:${movieId}:${region}`;
215
+ return applyContextPrefix(baseKey, context);
132
216
  }
133
217
  //# sourceMappingURL=cache.js.map
package/dist/cache.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAE/B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAG5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU;IAqDnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAQ,GAAG,UAAU;CAiC1C"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAE/B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAG5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU;IAsDnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAQ,GAAG,UAAU;CAiC1C"}
package/dist/factory.js CHANGED
@@ -72,7 +72,7 @@ class MovieAgentFactory {
72
72
  enableLLM = true;
73
73
  }
74
74
  // Create and return MovieAgent instance
75
- return new agent_1.MovieAgent(tmdbClient, logger, enableLLM, llmProvider, llmApiKey, azureConfig);
75
+ return new agent_1.MovieAgent(tmdbClient, logger, enableLLM, llmProvider, llmApiKey, azureConfig, config.debug);
76
76
  }
77
77
  /**
78
78
  * Creates a MovieAgent instance from environment variables
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
package/dist/format.d.ts CHANGED
@@ -5,9 +5,21 @@ import { MovieRecommendation, StreamingPlatform, AgentResponse, ResponseMetadata
5
5
  * @returns Formatted description within word count constraints
6
6
  */
7
7
  export declare function buildDescription(overview: string): string;
8
+ /**
9
+ * TMDb image base URL for constructing poster URLs
10
+ * @see https://developer.themoviedb.org/docs/image-basics
11
+ */
12
+ export declare const TMDB_IMAGE_BASE_URL = "https://image.tmdb.org/t/p/";
13
+ /**
14
+ * Builds a full poster URL from a TMDb poster_path
15
+ * @param posterPath - The poster_path from TMDb API (e.g., "/abc123.jpg")
16
+ * @param size - Image size (default: 'w500')
17
+ * @returns Full URL to the poster image, or null if no poster available
18
+ */
19
+ export declare function buildPosterUrl(posterPath: string | null | undefined, size?: string): string | null;
8
20
  /**
9
21
  * Formats a movie with streaming providers into a MovieRecommendation
10
- * @param movie - TMDb movie object with id, title, release_date, runtime, overview, genres
22
+ * @param movie - TMDb movie object with id, title, release_date, runtime, overview, genres, poster_path
11
23
  * @param providers - Streaming provider information
12
24
  * @param reason - Why this movie was recommended
13
25
  * @returns Formatted MovieRecommendation
@@ -22,6 +34,7 @@ export declare function toRecommendation(movie: {
22
34
  id: number;
23
35
  name: string;
24
36
  }>;
37
+ poster_path?: string | null;
25
38
  }, providers: StreamingPlatform[], reason: string): MovieRecommendation;
26
39
  /**
27
40
  * Formats the complete agent response with recommendations and metadata
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAuCzD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE;IACL,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7C,EACD,SAAS,EAAE,iBAAiB,EAAE,EAC9B,MAAM,EAAE,MAAM,GACb,mBAAmB,CAcrB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,eAAe,EAAE,mBAAmB,EAAE,EACtC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,GAAG,cAAc,CAAC,GACpE,aAAa,CAkBf"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAuCzD;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,gCAAgC,CAAC;AAEjE;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACrC,IAAI,GAAE,MAAe,GACpB,MAAM,GAAG,IAAI,CAKf;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE;IACL,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,EACD,SAAS,EAAE,iBAAiB,EAAE,EAC9B,MAAM,EAAE,MAAM,GACb,mBAAmB,CAgBrB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,eAAe,EAAE,mBAAmB,EAAE,EACtC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,GAAG,cAAc,CAAC,GACpE,aAAa,CAkBf"}