@apify/actors-mcp-server 0.9.20-beta.1 → 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 +56 -4
  57. package/dist/tools/structured_output_schemas.d.ts.map +1 -1
  58. package/dist/tools/structured_output_schemas.js +27 -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 +8 -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 +19 -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,12 +1,9 @@
1
- import { z } from 'zod';
2
- import { FAILURE_CATEGORY, HelperTools, TOOL_STATUS } from '../const.js';
3
1
  import { connectMCPClient } from '../mcp/client.js';
4
2
  import { filterSchemaProperties, shortenProperties } from '../tools/utils.js';
5
3
  import { getActorMcpUrlCached } from './actor.js';
6
4
  import { formatActorForWidget, formatActorToActorCard, formatActorToStructuredCard } from './actor_card.js';
7
5
  import { searchActorsByKeywords } from './actor_search.js';
8
6
  import { logHttpError } from './logging.js';
9
- import { buildMCPResponse } from './mcp.js';
10
7
  const ACTOR_DETAILS_PICTURE_SEARCH_LIMIT = 5;
11
8
  /**
12
9
  * Convert a type object to TypeScript-like string representation.
@@ -15,41 +12,22 @@ const ACTOR_DETAILS_PICTURE_SEARCH_LIMIT = 5;
15
12
  * Example:
16
13
  * Input: { first_number: "number", tags: ["string"], user: { name: "string" } }
17
14
  * Output: "{ first_number: number, tags: string[], user: { name: string } }"
15
+ *
16
+ * Values that are not string / object / array are skipped (not rendered) at every nesting level.
18
17
  */
19
- function typeObjectToString(obj) {
20
- const pairs = [];
21
- for (const [key, value] of Object.entries(obj)) {
22
- if (Array.isArray(value)) {
23
- // Array type
24
- const itemType = typeValueToString(value[0]);
25
- pairs.push(`${key}: ${itemType}[]`);
26
- }
27
- else if (typeof value === 'object' && value !== null) {
28
- // Nested object type
29
- const nestedStr = typeObjectToString(value);
30
- pairs.push(`${key}: ${nestedStr}`);
31
- }
32
- else if (typeof value === 'string') {
33
- // Primitive type
34
- pairs.push(`${key}: ${value}`);
35
- }
36
- }
18
+ export function typeObjectToString(obj) {
19
+ const pairs = Object.entries(obj)
20
+ .filter(([, v]) => Array.isArray(v) || (v !== null && typeof v === 'object') || typeof v === 'string')
21
+ .map(([k, v]) => `${k}: ${typeValueToString(v)}`);
37
22
  return `{ ${pairs.join(', ')} }`;
38
23
  }
39
- /**
40
- * Convert a single type value to string.
41
- */
42
24
  function typeValueToString(value) {
43
- if (Array.isArray(value)) {
44
- const itemType = typeValueToString(value[0]);
45
- return `${itemType}[]`;
46
- }
47
- if (typeof value === 'object' && value !== null) {
25
+ if (Array.isArray(value))
26
+ return `${typeValueToString(value[0])}[]`;
27
+ if (value !== null && typeof value === 'object')
48
28
  return typeObjectToString(value);
49
- }
50
- if (typeof value === 'string') {
29
+ if (typeof value === 'string')
51
30
  return value;
52
- }
53
31
  return 'unknown';
54
32
  }
55
33
  /**
@@ -65,13 +43,14 @@ export function resolveReadmeContent(details) {
65
43
  }
66
44
  export async function fetchActorDetails(apifyClient, actorName, cardOptions) {
67
45
  try {
46
+ // Use only the actor name part (after '/') for better keyword search relevance —
47
+ // "apify/instagram-scraper" returns unrelated results, while "instagram-scraper" finds the correct actor.
48
+ const actorSlug = actorName.split('/').pop() || actorName;
49
+ const actor = apifyClient.actor(actorName);
68
50
  const [actorInfo, buildInfo, storeActors] = await Promise.all([
69
- apifyClient.actor(actorName).get(),
70
- apifyClient.actor(actorName).defaultBuild().then(async (build) => build.get()),
71
- // Fetch from store to get the processed pictureUrl (with resizing parameters).
72
- // Use only the actor name part (after '/') for better keyword search relevance —
73
- // searching "apify/instagram-scraper" returns unrelated results, while "instagram-scraper" finds the correct actor.
74
- searchActorsByKeywords(actorName.split('/').pop() || actorName, apifyClient.token || '', ACTOR_DETAILS_PICTURE_SEARCH_LIMIT).catch(() => []),
51
+ actor.get(),
52
+ actor.defaultBuild().then(async (build) => build.get()),
53
+ searchActorsByKeywords(actorSlug, apifyClient.token || '', ACTOR_DETAILS_PICTURE_SEARCH_LIMIT).catch(() => []),
75
54
  ]);
76
55
  if (!actorInfo || !buildInfo || !buildInfo.actorDefinition)
77
56
  return null;
@@ -102,92 +81,21 @@ export async function fetchActorDetails(apifyClient, actorName, cardOptions) {
102
81
  }
103
82
  }
104
83
  /**
105
- * Process actor details for response formatting.
106
- * Formats README with link, builds text content, and creates structured content.
107
- * @param details - Raw actor details from fetchActorDetails
108
- * @returns Processed actor details with formatted content
84
+ * Build the widget actor-details payload for the openai variant.
85
+ * Returns the Actor URL and the structured `actorDetails` object.
109
86
  */
110
- export function processActorDetailsForResponse(details) {
87
+ export function buildActorDetailsForWidget(details, userTier) {
111
88
  const actorUrl = `https://apify.com/${details.actorInfo.username}/${details.actorInfo.name}`;
112
- // Add link to README title
113
89
  const formattedReadme = details.readme.replace(/^# /, `# [README](${actorUrl}/readme): `);
114
- const texts = [
115
- `# Actor information\n${details.actorCard}`,
116
- formattedReadme,
117
- ];
118
- // Include input schema if it has properties
119
- const hasInputSchema = details.inputSchema.properties && Object.keys(details.inputSchema.properties).length !== 0;
120
- if (hasInputSchema) {
121
- texts.push(`# [Input schema](${actorUrl}/input)\n\`\`\`json\n${JSON.stringify(details.inputSchema)}\n\`\`\``);
122
- }
123
- const structuredContent = {
90
+ return {
91
+ actorUrl,
124
92
  actorDetails: {
125
- actorInfo: formatActorForWidget(details.actorInfo),
93
+ actorInfo: formatActorForWidget(details.actorInfo, userTier),
126
94
  actorCard: details.actorCard,
127
95
  readme: formattedReadme,
128
96
  inputSchema: details.inputSchema,
129
97
  },
130
98
  };
131
- return {
132
- actorUrl,
133
- texts,
134
- structuredContent,
135
- formattedReadme,
136
- };
137
- }
138
- /**
139
- * Shared schema for actor details output options.
140
- * Used by both public and internal fetch-actor-details tools.
141
- *
142
- * Behavior:
143
- * - If output is undefined or empty object: use defaults (all true except mcpTools and outputSchema)
144
- * - If any property is explicitly set: only include sections with explicit true values
145
- */
146
- export const actorDetailsOutputOptionsSchema = z.object({
147
- description: z.boolean().optional().describe('Include Actor description text only.'),
148
- stats: z.boolean().optional().describe('Include usage statistics (users, runs, success rate).'),
149
- pricing: z.boolean().optional().describe('Include pricing model and costs.'),
150
- rating: z.boolean().optional().describe('Include user rating (out of 5 stars).'),
151
- metadata: z.boolean().optional().describe('Include developer, categories, last modified date, and deprecation status.'),
152
- inputSchema: z.boolean().optional().describe('Include required input parameters schema.'),
153
- readme: z.boolean().optional().describe('Include Actor README documentation (summary when available, full otherwise).'),
154
- outputSchema: z.boolean().optional().describe('Include inferred output schema from recent successful runs (TypeScript type).'),
155
- mcpTools: z.boolean().optional().describe('List available tools (only for MCP server Actors).'),
156
- });
157
- export const actorDetailsOutputDefaults = {
158
- description: true,
159
- stats: true,
160
- pricing: true,
161
- rating: true,
162
- metadata: true,
163
- inputSchema: true,
164
- readme: true,
165
- outputSchema: false,
166
- mcpTools: false,
167
- };
168
- /**
169
- * Resolve output options with smart defaults.
170
- * If output is undefined/empty, returns defaults.
171
- * If any property is explicitly set, undefined properties are treated as false.
172
- */
173
- export function resolveOutputOptions(output) {
174
- // Check if output has any explicit true/false values
175
- const hasExplicitOptions = output && Object.values(output).some((v) => v !== undefined);
176
- if (!hasExplicitOptions) {
177
- return actorDetailsOutputDefaults;
178
- }
179
- // Return output with undefined treated as false (explicit true required)
180
- return {
181
- description: (output === null || output === void 0 ? void 0 : output.description) === true,
182
- stats: (output === null || output === void 0 ? void 0 : output.stats) === true,
183
- pricing: (output === null || output === void 0 ? void 0 : output.pricing) === true,
184
- rating: (output === null || output === void 0 ? void 0 : output.rating) === true,
185
- metadata: (output === null || output === void 0 ? void 0 : output.metadata) === true,
186
- inputSchema: (output === null || output === void 0 ? void 0 : output.inputSchema) === true,
187
- readme: (output === null || output === void 0 ? void 0 : output.readme) === true,
188
- outputSchema: (output === null || output === void 0 ? void 0 : output.outputSchema) === true,
189
- mcpTools: (output === null || output === void 0 ? void 0 : output.mcpTools) === true,
190
- };
191
99
  }
192
100
  /**
193
101
  * Gets MCP tools information for an Actor.
@@ -211,9 +119,22 @@ export async function getMcpToolsMessage(actorName, apifyClient, apifyToken, pay
211
119
  try {
212
120
  const toolsResponse = await client.listTools();
213
121
  const mcpToolsInfo = toolsResponse.tools
214
- .map((tool) => `**${tool.name}**\n${tool.description || 'No description'}\nInput schema:\n\`\`\`json\n${JSON.stringify(tool.inputSchema)}\n\`\`\``)
122
+ .map((tool) => [
123
+ `**${tool.name}**`,
124
+ tool.description || 'No description',
125
+ 'Input schema:',
126
+ '```json',
127
+ JSON.stringify(tool.inputSchema),
128
+ '```',
129
+ ].join('\n'))
215
130
  .join('\n\n');
216
- return `# Available MCP Tools\nThis Actor is an MCP server with ${toolsResponse.tools.length} tools.\nTo call a tool, use: "${actorName}:{toolName}"\n\n${mcpToolsInfo}`;
131
+ return [
132
+ '# Available MCP Tools',
133
+ `This Actor is an MCP server with ${toolsResponse.tools.length} tools.`,
134
+ `To call a tool, use: "${actorName}:{toolName}"`,
135
+ '',
136
+ mcpToolsInfo,
137
+ ].join('\n');
217
138
  }
218
139
  catch (error) {
219
140
  logHttpError(error, `Failed to list MCP tools for Actor '${actorName}'`, { actorName });
@@ -226,6 +147,7 @@ export async function getMcpToolsMessage(actorName, apifyClient, apifyToken, pay
226
147
  /**
227
148
  * Build card options from resolved output flags.
228
149
  * Maps boolean output flags to card rendering options (explicit true required).
150
+ * Caller adds `userTier` if needed — this helper stays focused on flags.
229
151
  */
230
152
  export function buildCardOptions(output) {
231
153
  return {
@@ -236,67 +158,4 @@ export function buildCardOptions(output) {
236
158
  includeMetadata: output.metadata,
237
159
  };
238
160
  }
239
- /**
240
- * Build error response for when actor is not found.
241
- */
242
- export function buildActorNotFoundResponse(actorName) {
243
- return buildMCPResponse({
244
- texts: [`Actor information for '${actorName}' was not found.
245
- Please verify Actor ID or name format and ensure that the Actor exists.
246
- You can search for available Actors using the tool: ${HelperTools.STORE_SEARCH}.`],
247
- isError: true,
248
- telemetry: { toolStatus: TOOL_STATUS.SOFT_FAIL, failureCategory: FAILURE_CATEGORY.INVALID_INPUT },
249
- });
250
- }
251
- /**
252
- * Build text and structured response for actor details.
253
- * Handles all resolved output options: description, stats, readme, inputSchema, outputSchema, mcpTools.
254
- * All output properties should be boolean (resolved via resolveOutputOptions).
255
- */
256
- export async function buildActorDetailsTextResponse(options) {
257
- const { actorName, details, output, cardOptions, apifyClient, apifyToken, actorOutputSchema, paymentProvider, mcpSessionId } = options;
258
- const actorUrl = `https://apify.com/${details.actorInfo.username}/${details.actorInfo.name}`;
259
- const texts = [];
260
- // Build actor card only if any card section is requested
261
- const needsCard = cardOptions.includeDescription
262
- || cardOptions.includeStats
263
- || cardOptions.includePricing
264
- || cardOptions.includeRating
265
- || cardOptions.includeMetadata;
266
- if (needsCard) {
267
- texts.push(`# Actor information\n${details.actorCard}`);
268
- }
269
- // Add README content if requested (prefer readmeSummary, fall back to full readme)
270
- const resolvedReadme = output.readme ? resolveReadmeContent(details) : undefined;
271
- if (resolvedReadme) {
272
- texts.push(`${resolvedReadme.heading}\n${resolvedReadme.content}`);
273
- }
274
- // Add input schema if requested
275
- if (output.inputSchema) {
276
- texts.push(`# [Input schema](${actorUrl}/input)\n\`\`\`json\n${JSON.stringify(details.inputSchema)}\n\`\`\``);
277
- }
278
- // Add output schema if requested
279
- if (output.outputSchema) {
280
- if (actorOutputSchema && Object.keys(actorOutputSchema).length > 0) {
281
- const typeString = typeObjectToString(actorOutputSchema);
282
- texts.push(`# Output Schema (TypeScript)\nInferred from recent successful runs:\n\`\`\`typescript\ntype ActorOutput = ${typeString}\n\`\`\``);
283
- }
284
- else {
285
- texts.push(`# Output Schema\nNo output schema available. The Actor may not have recent successful runs, or the output structure could not be determined.`);
286
- }
287
- }
288
- // Handle MCP tools
289
- if (output.mcpTools) {
290
- const message = await getMcpToolsMessage(actorName, apifyClient, apifyToken, paymentProvider, mcpSessionId);
291
- texts.push(message);
292
- }
293
- // Build structured content
294
- const structuredContent = {
295
- actorInfo: needsCard ? details.actorCardStructured : undefined,
296
- readme: resolvedReadme === null || resolvedReadme === void 0 ? void 0 : resolvedReadme.content,
297
- inputSchema: output.inputSchema ? details.inputSchema : undefined,
298
- outputSchema: output.outputSchema ? (actorOutputSchema !== null && actorOutputSchema !== void 0 ? actorOutputSchema : {}) : undefined,
299
- };
300
- return { texts, structuredContent };
301
- }
302
161
  //# sourceMappingURL=actor_details.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"actor_details.js","sourceRoot":"","sources":["../../src/utils/actor_details.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actor_details.js","sourceRoot":"","sources":["../../src/utils/actor_details.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,58 @@
1
+ /**
2
+ * Pricing output contract for Actor cards.
3
+ *
4
+ * Text callers:
5
+ * - `pricingInfoToString`: complete mode for `fetch-actor-details`
6
+ * - `pricingInfoToSimplifiedString`: simplified mode for `search-actors`
7
+ *
8
+ * Structured callers:
9
+ * - `pricingInfoToStructured`: complete mode
10
+ * - `pricingInfoToSimplifiedStructured`: simplified mode
11
+ *
12
+ * Structured output shape is mostly the same in both modes:
13
+ * {
14
+ * model: string,
15
+ * userTier?: PricingTier,
16
+ * pricePerUnit?: number,
17
+ * unitName?: string,
18
+ * trialMinutes?: number,
19
+ * tieredPricing?: [{ tier: string, pricePerUnit: number }],
20
+ * events?: [{
21
+ * title: string,
22
+ * description?: string,
23
+ * priceUsd?: number,
24
+ * tieredPricing?: [{ tier: string, priceUsd: number }],
25
+ * }],
26
+ * pricingNote?: string,
27
+ * eventDescriptionsOmitted?: boolean,
28
+ * eventDescriptionsNote?: string,
29
+ * }
30
+ *
31
+ * Complete mode keeps full tier matrices and never sets `pricingNote`.
32
+ *
33
+ * Simplified mode picks a single tier from each tiered map
34
+ * (requested tier -> FREE -> first entry) and emits `pricingNote` only when
35
+ * the Actor actually has multiple tiers *and* they resolve consistently. The
36
+ * note is omitted for single-tier Actors (the note's "higher tiers may offer
37
+ * lower prices" promise is vacuous) and when PAY_PER_EVENT events resolve
38
+ * to different tiers (no truthful single label).
39
+ *
40
+ * Simplified `PAY_PER_EVENT` also trims long event lists:
41
+ * - `events.length <= 5`: keep event descriptions
42
+ * - `events.length > 5`: omit event descriptions and set
43
+ * `eventDescriptionsOmitted` / `eventDescriptionsNote`
44
+ *
45
+ * Single-tier buckets stay as 1-element `tieredPricing` arrays in both modes.
46
+ * `FREE` or `null` input returns the free text / structured shape.
47
+ *
48
+ * Full examples and contract details are documented inline in this module.
49
+ */
1
50
  import type { ActorRunPricingInfo, PricePerEventActorPricingInfo as PricePerEventActorPricingInfoOutdated } from 'apify-client';
2
51
  export type TieredEventPrice = {
3
52
  tieredEventPriceUsd: number;
4
53
  };
5
- export type PricingTier = 'FREE' | 'BRONZE' | 'SILVER' | 'GOLD' | 'PLATINUM' | 'DIAMOND';
54
+ export declare const PRICING_TIERS: readonly ["FREE", "BRONZE", "SILVER", "GOLD", "PLATINUM", "DIAMOND"];
55
+ export type PricingTier = typeof PRICING_TIERS[number];
6
56
  export type ActorChargeEvent = {
7
57
  eventTitle: string;
8
58
  eventDescription?: string;
@@ -19,16 +69,20 @@ type PricePerEventActorPricingInfo = PricePerEventActorPricingInfoOutdated & {
19
69
  actorChargeEvents: Record<string, ActorChargeEvent>;
20
70
  };
21
71
  };
22
- export type PricingInfo = ActorRunPricingInfo & {
72
+ export type PricingInfo = (ActorRunPricingInfo & {
23
73
  tieredPricing?: TieredPricing;
24
- } | PricePerEventActorPricingInfo;
74
+ }) | PricePerEventActorPricingInfo;
25
75
  /**
26
- * Custom type to transform raw API pricing data into a clean, client-friendly format
27
- * that matches the style of the unstructured text output instead of using the raw API format.
76
+ * Public structured pricing contract returned by actor cards.
77
+ *
78
+ * `tieredPricing` and event-level `tieredPricing` always use arrays.
79
+ * The difference between modes is array length:
80
+ * - complete mode: full tier matrix
81
+ * - simplified mode: 1 resolved tier
28
82
  */
29
83
  export type StructuredPricingInfo = {
30
84
  model: string;
31
- isFree: boolean;
85
+ userTier?: PricingTier;
32
86
  pricePerUnit?: number;
33
87
  unitName?: string;
34
88
  trialMinutes?: number;
@@ -38,28 +92,25 @@ export type StructuredPricingInfo = {
38
92
  }[];
39
93
  events?: {
40
94
  title: string;
41
- description: string;
95
+ description?: string;
42
96
  priceUsd?: number;
43
97
  tieredPricing?: {
44
98
  tier: string;
45
99
  priceUsd: number;
46
100
  }[];
47
101
  }[];
102
+ pricingNote?: string;
103
+ eventDescriptionsOmitted?: boolean;
104
+ eventDescriptionsNote?: string;
48
105
  };
49
- /**
50
- * Returns the most recent valid pricing information from a list of pricing infos,
51
- * based on the provided current date.
52
- *
53
- * Filters out pricing infos that have a `startedAt` date in the future or missing,
54
- * then sorts the remaining infos by `startedAt` in descending order (most recent first).
55
- * Returns the most recent valid pricing info, or `null` if none are valid.
56
- */
57
106
  export declare function getCurrentPricingInfo(pricingInfos: PricingInfo[], now: Date): PricingInfo | null;
107
+ /** Complete text contract used by `fetch-actor-details`. */
58
108
  export declare function pricingInfoToString(pricingInfo: PricingInfo | null): string;
59
- /**
60
- * Transform and normalize API response to match unstructured text output format
61
- * instead of just dumping raw API data - ensures consistency across structured & unstructured modes.
62
- */
63
- export declare function pricingInfoToStructured(pricingInfo: PricingInfo | null): StructuredPricingInfo;
109
+ /** Complete structured contract used by `fetch-actor-details`. */
110
+ export declare function pricingInfoToStructured(pricingInfo: PricingInfo | null, userTier: PricingTier): StructuredPricingInfo;
111
+ /** Simplified text contract used by `search-actors`. */
112
+ export declare function pricingInfoToSimplifiedString(pricingInfo: PricingInfo | null, userTier: PricingTier): string;
113
+ /** Simplified structured contract used by `search-actors`. */
114
+ export declare function pricingInfoToSimplifiedStructured(pricingInfo: PricingInfo | null, userTier: PricingTier): StructuredPricingInfo;
64
115
  export {};
65
116
  //# sourceMappingURL=pricing_info.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pricing_info.d.ts","sourceRoot":"","sources":["../../src/utils/pricing_info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,mBAAmB,EACnB,6BAA6B,IAAI,qCAAqC,EACzE,MAAM,cAAc,CAAC;AAItB,MAAM,MAAM,gBAAgB,GAAG;IAC3B,mBAAmB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;AAEzF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;CAC1E,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IACxB,CAAC,IAAI,EAAE,MAAM,GAAG;QACZ,qBAAqB,EAAE,MAAM,CAAC;KACjC,CAAC;CACL,CAAC;AAEF,KAAK,6BAA6B,GAAG,qCAAqC,GAAG;IACzE,eAAe,EAAE;QACb,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;KACvD,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,mBAAmB,GAAG;IAC5C,aAAa,CAAC,EAAE,aAAa,CAAC;CACjC,GAAG,6BAA6B,CAAC;AAElC;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;KACxB,EAAE,CAAC;IACJ,MAAM,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE;YACZ,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,EAAE,MAAM,CAAC;SACpB,EAAE,CAAC;KACP,EAAE,CAAC;CACP,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,IAAI,GAAG,WAAW,GAAG,IAAI,CAmBhG;AA4CD,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,GAAG,MAAM,CAgC3E;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,GAAG,qBAAqB,CAoD9F"}
1
+ {"version":3,"file":"pricing_info.d.ts","sourceRoot":"","sources":["../../src/utils/pricing_info.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAEH,OAAO,KAAK,EACR,mBAAmB,EACnB,6BAA6B,IAAI,qCAAqC,EACzE,MAAM,cAAc,CAAC;AAItB,MAAM,MAAM,gBAAgB,GAAG;IAC3B,mBAAmB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,aAAa,sEAAuE,CAAC;AAClG,MAAM,MAAM,WAAW,GAAG,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAEvD,MAAM,MAAM,gBAAgB,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;CAC1E,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IACxB,CAAC,IAAI,EAAE,MAAM,GAAG;QACZ,qBAAqB,EAAE,MAAM,CAAC;KACjC,CAAC;CACL,CAAC;AAEF,KAAK,6BAA6B,GAAG,qCAAqC,GAAG;IACzE,eAAe,EAAE;QACb,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;KACvD,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,mBAAmB,GAAG;IAC7C,aAAa,CAAC,EAAE,aAAa,CAAC;CACjC,CAAC,GAAG,6BAA6B,CAAC;AAEnC;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;KACxB,EAAE,CAAC;IACJ,MAAM,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE;YACZ,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,EAAE,MAAM,CAAC;SACpB,EAAE,CAAC;KACP,EAAE,CAAC;IACJ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAgFF,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,IAAI,GAAG,WAAW,GAAG,IAAI,CAahG;AAED,4DAA4D;AAC5D,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,GAAG,MAAM,CAa3E;AA+DD,kEAAkE;AAClE,wBAAgB,uBAAuB,CACnC,WAAW,EAAE,WAAW,GAAG,IAAI,EAC/B,QAAQ,EAAE,WAAW,GACtB,qBAAqB,CAcvB;AA2CD,wDAAwD;AACxD,wBAAgB,6BAA6B,CACzC,WAAW,EAAE,WAAW,GAAG,IAAI,EAC/B,QAAQ,EAAE,WAAW,GACtB,MAAM,CAaR;AA+DD,8DAA8D;AAC9D,wBAAgB,iCAAiC,CAC7C,WAAW,EAAE,WAAW,GAAG,IAAI,EAC/B,QAAQ,EAAE,WAAW,GACtB,qBAAqB,CAWvB"}