@apify/actors-mcp-server 0.9.20-beta.0 → 0.9.20-beta.10

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 (84) hide show
  1. package/dist/const.d.ts +1 -0
  2. package/dist/const.d.ts.map +1 -1
  3. package/dist/const.js +3 -0
  4. package/dist/const.js.map +1 -1
  5. package/dist/mcp/server.js +3 -3
  6. package/dist/mcp/server.js.map +1 -1
  7. package/dist/tools/core/call_actor_common.d.ts +45 -0
  8. package/dist/tools/core/call_actor_common.d.ts.map +1 -1
  9. package/dist/tools/core/call_actor_common.js +148 -13
  10. package/dist/tools/core/call_actor_common.js.map +1 -1
  11. package/dist/tools/core/fetch_actor_details_common.d.ts +62 -1
  12. package/dist/tools/core/fetch_actor_details_common.d.ts.map +1 -1
  13. package/dist/tools/core/fetch_actor_details_common.js +168 -2
  14. package/dist/tools/core/fetch_actor_details_common.js.map +1 -1
  15. package/dist/tools/core/get_actor_run_common.d.ts +11 -0
  16. package/dist/tools/core/get_actor_run_common.d.ts.map +1 -1
  17. package/dist/tools/core/get_actor_run_common.js +40 -1
  18. package/dist/tools/core/get_actor_run_common.js.map +1 -1
  19. package/dist/tools/core/search_actors_common.d.ts +12 -2
  20. package/dist/tools/core/search_actors_common.d.ts.map +1 -1
  21. package/dist/tools/core/search_actors_common.js +26 -16
  22. package/dist/tools/core/search_actors_common.js.map +1 -1
  23. package/dist/tools/default/call_actor.d.ts.map +1 -1
  24. package/dist/tools/default/call_actor.js +19 -50
  25. package/dist/tools/default/call_actor.js.map +1 -1
  26. package/dist/tools/default/fetch_actor_details.d.ts.map +1 -1
  27. package/dist/tools/default/fetch_actor_details.js +3 -36
  28. package/dist/tools/default/fetch_actor_details.js.map +1 -1
  29. package/dist/tools/default/get_actor_run.d.ts.map +1 -1
  30. package/dist/tools/default/get_actor_run.js +3 -16
  31. package/dist/tools/default/get_actor_run.js.map +1 -1
  32. package/dist/tools/default/search_actors.d.ts.map +1 -1
  33. package/dist/tools/default/search_actors.js +16 -10
  34. package/dist/tools/default/search_actors.js.map +1 -1
  35. package/dist/tools/openai/actor_executor.d.ts.map +1 -1
  36. package/dist/tools/openai/actor_executor.js +6 -26
  37. package/dist/tools/openai/actor_executor.js.map +1 -1
  38. package/dist/tools/openai/call_actor.d.ts.map +1 -1
  39. package/dist/tools/openai/call_actor.js +18 -62
  40. package/dist/tools/openai/call_actor.js.map +1 -1
  41. package/dist/tools/openai/fetch_actor_details.d.ts.map +1 -1
  42. package/dist/tools/openai/fetch_actor_details.js +19 -13
  43. package/dist/tools/openai/fetch_actor_details.js.map +1 -1
  44. package/dist/tools/openai/fetch_actor_details_internal.d.ts.map +1 -1
  45. package/dist/tools/openai/fetch_actor_details_internal.js +16 -51
  46. package/dist/tools/openai/fetch_actor_details_internal.js.map +1 -1
  47. package/dist/tools/openai/get_actor_run.d.ts.map +1 -1
  48. package/dist/tools/openai/get_actor_run.js +3 -25
  49. package/dist/tools/openai/get_actor_run.js.map +1 -1
  50. package/dist/tools/openai/search_actors.d.ts.map +1 -1
  51. package/dist/tools/openai/search_actors.js +18 -12
  52. package/dist/tools/openai/search_actors.js.map +1 -1
  53. package/dist/tools/openai/search_actors_internal.d.ts.map +1 -1
  54. package/dist/tools/openai/search_actors_internal.js +5 -19
  55. package/dist/tools/openai/search_actors_internal.js.map +1 -1
  56. package/dist/tools/structured_output_schemas.d.ts +68 -4
  57. package/dist/tools/structured_output_schemas.d.ts.map +1 -1
  58. package/dist/tools/structured_output_schemas.js +28 -4
  59. package/dist/tools/structured_output_schemas.js.map +1 -1
  60. package/dist/tsconfig.tsbuildinfo +1 -1
  61. package/dist/types.d.ts +9 -1
  62. package/dist/types.d.ts.map +1 -1
  63. package/dist/utils/actor_card.d.ts +7 -2
  64. package/dist/utils/actor_card.d.ts.map +1 -1
  65. package/dist/utils/actor_card.js +20 -8
  66. package/dist/utils/actor_card.js.map +1 -1
  67. package/dist/utils/actor_details.d.ts +21 -95
  68. package/dist/utils/actor_details.d.ts.map +1 -1
  69. package/dist/utils/actor_details.js +39 -180
  70. package/dist/utils/actor_details.js.map +1 -1
  71. package/dist/utils/pricing_info.d.ts +71 -20
  72. package/dist/utils/pricing_info.d.ts.map +1 -1
  73. package/dist/utils/pricing_info.js +362 -129
  74. package/dist/utils/pricing_info.js.map +1 -1
  75. package/dist/utils/progress.d.ts.map +1 -1
  76. package/dist/utils/progress.js +5 -4
  77. package/dist/utils/progress.js.map +1 -1
  78. package/dist/utils/userid_cache.d.ts +12 -4
  79. package/dist/utils/userid_cache.d.ts.map +1 -1
  80. package/dist/utils/userid_cache.js +41 -14
  81. package/dist/utils/userid_cache.js.map +1 -1
  82. package/dist/web/dist/actor-detail-widget.js +2 -2
  83. package/dist/web/dist/search-actors-widget.js +2 -2
  84. package/package.json +1 -1
@@ -1,8 +1,16 @@
1
1
  import type { ApifyClient } from '../apify_client.js';
2
+ import { type PricingTier } from './pricing_info.js';
3
+ export type CachedUserInfo = {
4
+ userId: string | null;
5
+ userPlanTier: PricingTier;
6
+ };
2
7
  /**
3
- * Gets user ID from token, using cache to avoid repeated API calls
4
- * Token is hashed before caching to avoid storing raw tokens
5
- * Returns userId or null if not found
8
+ * Gets user info (id + plan tier) from token, using cache to avoid repeated API calls.
9
+ * Token is hashed before caching to avoid storing raw tokens.
10
+ *
11
+ * Defensive defaults: returns `{ userId: null, userPlanTier: 'FREE' }` when the token is
12
+ * missing/empty, the API call fails, or the plan is unrecognized. Failed lookups are NOT
13
+ * cached so the next call retries.
6
14
  */
7
- export declare function getUserIdFromTokenCached(token: string, apifyClient: ApifyClient): Promise<string | null>;
15
+ export declare function getUserInfoCached(token: string | undefined, apifyClient: ApifyClient): Promise<CachedUserInfo>;
8
16
  //# sourceMappingURL=userid_cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"userid_cache.d.ts","sourceRoot":"","sources":["../../src/utils/userid_cache.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOtD;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC1C,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,WAAW,GACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAexB"}
1
+ {"version":3,"file":"userid_cache.d.ts","sourceRoot":"","sources":["../../src/utils/userid_cache.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGpE,MAAM,MAAM,cAAc,GAAG;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,WAAW,CAAC;CAC7B,CAAC;AAiBF;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACnC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,WAAW,EAAE,WAAW,GACzB,OAAO,CAAC,cAAc,CAAC,CAuBzB"}
@@ -1,28 +1,55 @@
1
1
  import { createHash } from 'node:crypto';
2
+ import log from '@apify/log';
2
3
  import { USER_CACHE_MAX_SIZE, USER_CACHE_TTL_SECS } from '../const.js';
4
+ import { PRICING_TIERS } from './pricing_info.js';
3
5
  import { TTLLRUCache } from './ttl_lru.js';
4
- // LRU cache with TTL for user info - stores the raw User object from API
5
- const userIdCache = new TTLLRUCache(USER_CACHE_MAX_SIZE, USER_CACHE_TTL_SECS);
6
+ const ANONYMOUS_USER_INFO = { userId: null, userPlanTier: 'FREE' };
7
+ // LRU cache with TTL for user info - keyed by hashed token
8
+ const userInfoCache = new TTLLRUCache(USER_CACHE_MAX_SIZE, USER_CACHE_TTL_SECS);
9
+ function normalizePlanTier(tier) {
10
+ if (!tier)
11
+ return 'FREE';
12
+ const upper = tier.toUpperCase();
13
+ const match = PRICING_TIERS.find((t) => t === upper);
14
+ if (match)
15
+ return match;
16
+ // Enterprise / custom plan names fall through to FREE; log so we can spot them in the wild.
17
+ log.info(`Unrecognized plan tier "${tier}", defaulting to FREE`);
18
+ return 'FREE';
19
+ }
6
20
  /**
7
- * Gets user ID from token, using cache to avoid repeated API calls
8
- * Token is hashed before caching to avoid storing raw tokens
9
- * Returns userId or null if not found
21
+ * Gets user info (id + plan tier) from token, using cache to avoid repeated API calls.
22
+ * Token is hashed before caching to avoid storing raw tokens.
23
+ *
24
+ * Defensive defaults: returns `{ userId: null, userPlanTier: 'FREE' }` when the token is
25
+ * missing/empty, the API call fails, or the plan is unrecognized. Failed lookups are NOT
26
+ * cached so the next call retries.
10
27
  */
11
- export async function getUserIdFromTokenCached(token, apifyClient) {
28
+ export async function getUserInfoCached(token, apifyClient) {
29
+ var _a;
30
+ if (!token)
31
+ return ANONYMOUS_USER_INFO;
12
32
  const tokenHash = createHash('sha256').update(token).digest('hex');
13
- const cachedId = userIdCache.get(tokenHash);
14
- if (cachedId)
15
- return cachedId;
33
+ const cached = userInfoCache.get(tokenHash);
34
+ if (cached)
35
+ return cached;
16
36
  try {
17
37
  const user = await apifyClient.user('me').get();
18
- if (!user || !user.id) {
19
- return null;
38
+ if (!(user === null || user === void 0 ? void 0 : user.id)) {
39
+ return { ...ANONYMOUS_USER_INFO };
20
40
  }
21
- userIdCache.set(tokenHash, user.id);
22
- return user.id;
41
+ // `tier` is present on /v2/users/me `plan` response (FREE/BRONZE/SILVER/GOLD/PLATINUM/DIAMOND)
42
+ // but missing from apify-client's type declaration — hence the cast.
43
+ const planTier = (_a = user.plan) === null || _a === void 0 ? void 0 : _a.tier;
44
+ const info = {
45
+ userId: user.id,
46
+ userPlanTier: normalizePlanTier(planTier),
47
+ };
48
+ userInfoCache.set(tokenHash, info);
49
+ return info;
23
50
  }
24
51
  catch {
25
- return null;
52
+ return { ...ANONYMOUS_USER_INFO };
26
53
  }
27
54
  }
28
55
  //# sourceMappingURL=userid_cache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"userid_cache.js","sourceRoot":"","sources":["../../src/utils/userid_cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,yEAAyE;AACzE,MAAM,WAAW,GAAG,IAAI,WAAW,CAAS,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;AAEtF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC1C,KAAa,EACb,WAAwB;IAExB,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,IAAI,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;QAChD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,EAAE,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"userid_cache.js","sourceRoot":"","sources":["../../src/utils/userid_cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,GAAG,MAAM,YAAY,CAAC;AAG7B,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,aAAa,EAAoB,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAO3C,MAAM,mBAAmB,GAAmB,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;AAEnF,2DAA2D;AAC3D,MAAM,aAAa,GAAG,IAAI,WAAW,CAAiB,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;AAEhG,SAAS,iBAAiB,CAAC,IAAwB;IAC/C,IAAI,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IACzB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;IACrD,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,4FAA4F;IAC5F,GAAG,CAAC,IAAI,CAAC,2BAA2B,IAAI,uBAAuB,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACnC,KAAyB,EACzB,WAAwB;;IAExB,IAAI,CAAC,KAAK;QAAE,OAAO,mBAAmB,CAAC;IACvC,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,IAAI,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;QAChD,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAA,EAAE,CAAC;YACZ,OAAO,EAAE,GAAG,mBAAmB,EAAE,CAAC;QACtC,CAAC;QACD,+FAA+F;QAC/F,qEAAqE;QACrE,MAAM,QAAQ,GAAG,MAAC,IAAI,CAAC,IAAsC,0CAAE,IAAI,CAAC;QACpE,MAAM,IAAI,GAAmB;YACzB,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,YAAY,EAAE,iBAAiB,CAAC,QAAQ,CAAC;SAC5C,CAAC;QACF,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACtC,CAAC;AACL,CAAC"}