@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.
- package/dist/const.d.ts +1 -0
- package/dist/const.d.ts.map +1 -1
- package/dist/const.js +3 -0
- package/dist/const.js.map +1 -1
- package/dist/mcp/server.js +3 -3
- package/dist/mcp/server.js.map +1 -1
- package/dist/tools/core/call_actor_common.d.ts +45 -0
- package/dist/tools/core/call_actor_common.d.ts.map +1 -1
- package/dist/tools/core/call_actor_common.js +148 -13
- package/dist/tools/core/call_actor_common.js.map +1 -1
- package/dist/tools/core/fetch_actor_details_common.d.ts +62 -1
- package/dist/tools/core/fetch_actor_details_common.d.ts.map +1 -1
- package/dist/tools/core/fetch_actor_details_common.js +168 -2
- package/dist/tools/core/fetch_actor_details_common.js.map +1 -1
- package/dist/tools/core/get_actor_run_common.d.ts +11 -0
- package/dist/tools/core/get_actor_run_common.d.ts.map +1 -1
- package/dist/tools/core/get_actor_run_common.js +40 -1
- package/dist/tools/core/get_actor_run_common.js.map +1 -1
- package/dist/tools/core/search_actors_common.d.ts +12 -2
- package/dist/tools/core/search_actors_common.d.ts.map +1 -1
- package/dist/tools/core/search_actors_common.js +26 -16
- package/dist/tools/core/search_actors_common.js.map +1 -1
- package/dist/tools/default/call_actor.d.ts.map +1 -1
- package/dist/tools/default/call_actor.js +19 -50
- package/dist/tools/default/call_actor.js.map +1 -1
- package/dist/tools/default/fetch_actor_details.d.ts.map +1 -1
- package/dist/tools/default/fetch_actor_details.js +3 -36
- package/dist/tools/default/fetch_actor_details.js.map +1 -1
- package/dist/tools/default/get_actor_run.d.ts.map +1 -1
- package/dist/tools/default/get_actor_run.js +3 -16
- package/dist/tools/default/get_actor_run.js.map +1 -1
- package/dist/tools/default/search_actors.d.ts.map +1 -1
- package/dist/tools/default/search_actors.js +16 -10
- package/dist/tools/default/search_actors.js.map +1 -1
- package/dist/tools/openai/actor_executor.d.ts.map +1 -1
- package/dist/tools/openai/actor_executor.js +6 -26
- package/dist/tools/openai/actor_executor.js.map +1 -1
- package/dist/tools/openai/call_actor.d.ts.map +1 -1
- package/dist/tools/openai/call_actor.js +18 -62
- package/dist/tools/openai/call_actor.js.map +1 -1
- package/dist/tools/openai/fetch_actor_details.d.ts.map +1 -1
- package/dist/tools/openai/fetch_actor_details.js +19 -13
- package/dist/tools/openai/fetch_actor_details.js.map +1 -1
- package/dist/tools/openai/fetch_actor_details_internal.d.ts.map +1 -1
- package/dist/tools/openai/fetch_actor_details_internal.js +16 -51
- package/dist/tools/openai/fetch_actor_details_internal.js.map +1 -1
- package/dist/tools/openai/get_actor_run.d.ts.map +1 -1
- package/dist/tools/openai/get_actor_run.js +3 -25
- package/dist/tools/openai/get_actor_run.js.map +1 -1
- package/dist/tools/openai/search_actors.d.ts.map +1 -1
- package/dist/tools/openai/search_actors.js +18 -12
- package/dist/tools/openai/search_actors.js.map +1 -1
- package/dist/tools/openai/search_actors_internal.d.ts.map +1 -1
- package/dist/tools/openai/search_actors_internal.js +5 -19
- package/dist/tools/openai/search_actors_internal.js.map +1 -1
- package/dist/tools/structured_output_schemas.d.ts +68 -4
- package/dist/tools/structured_output_schemas.d.ts.map +1 -1
- package/dist/tools/structured_output_schemas.js +28 -4
- package/dist/tools/structured_output_schemas.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +9 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/actor_card.d.ts +7 -2
- package/dist/utils/actor_card.d.ts.map +1 -1
- package/dist/utils/actor_card.js +20 -8
- package/dist/utils/actor_card.js.map +1 -1
- package/dist/utils/actor_details.d.ts +21 -95
- package/dist/utils/actor_details.d.ts.map +1 -1
- package/dist/utils/actor_details.js +39 -180
- package/dist/utils/actor_details.js.map +1 -1
- package/dist/utils/pricing_info.d.ts +71 -20
- package/dist/utils/pricing_info.d.ts.map +1 -1
- package/dist/utils/pricing_info.js +362 -129
- package/dist/utils/pricing_info.js.map +1 -1
- package/dist/utils/progress.d.ts.map +1 -1
- package/dist/utils/progress.js +5 -4
- package/dist/utils/progress.js.map +1 -1
- package/dist/utils/userid_cache.d.ts +12 -4
- package/dist/utils/userid_cache.d.ts.map +1 -1
- package/dist/utils/userid_cache.js +41 -14
- package/dist/utils/userid_cache.js.map +1 -1
- package/dist/web/dist/actor-detail-widget.js +2 -2
- package/dist/web/dist/search-actors-widget.js +2 -2
- package/package.json +1 -1
|
@@ -1,160 +1,393 @@
|
|
|
1
|
-
import { ACTOR_PRICING_MODEL } from '../const.js';
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
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).
|
|
5
39
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
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.
|
|
9
49
|
*/
|
|
50
|
+
import { ACTOR_PRICING_MODEL } from '../const.js';
|
|
51
|
+
export const PRICING_TIERS = ['FREE', 'BRONZE', 'SILVER', 'GOLD', 'PLATINUM', 'DIAMOND'];
|
|
52
|
+
const FREE_ACTOR_TEXT = 'This Actor is free to use. You are only charged for Apify platform usage.';
|
|
53
|
+
const UNKNOWN_PRICING_TEXT = 'Pricing information is not available.';
|
|
54
|
+
const EVENTS_UNAVAILABLE_TEXT = 'Pricing information for events is not available.';
|
|
55
|
+
const EVENT_DESCRIPTION_LIMIT = 5;
|
|
56
|
+
const EVENT_DESCRIPTIONS_OMITTED_NOTE = 'Event descriptions were omitted because this actor has many pricing events. '
|
|
57
|
+
+ 'Use fetch-actor-details for full pricing details.';
|
|
58
|
+
function resolveTier(map, userTier) {
|
|
59
|
+
if (map[userTier])
|
|
60
|
+
return { tier: userTier, value: map[userTier] };
|
|
61
|
+
if (map.FREE)
|
|
62
|
+
return { tier: 'FREE', value: map.FREE };
|
|
63
|
+
// Pathological fallback: actor provides neither the user's tier nor FREE.
|
|
64
|
+
// `Object.entries` order is spec-guaranteed to be insertion order for string keys,
|
|
65
|
+
// so we pick whichever tier the API serialised first. Rarely fires — virtually every
|
|
66
|
+
// actor defines FREE.
|
|
67
|
+
const [firstTier, firstValue] = Object.entries(map)[0];
|
|
68
|
+
return { tier: firstTier, value: firstValue };
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Builds the simplified-mode pricing note, or returns null when no note should be shown.
|
|
72
|
+
* DIAMOND is the top tier — "higher tiers may offer lower prices" is vacuous, so we skip
|
|
73
|
+
* the note for DIAMOND users.
|
|
74
|
+
*/
|
|
75
|
+
function buildPricingNote(resolvedTier) {
|
|
76
|
+
if (resolvedTier === 'DIAMOND')
|
|
77
|
+
return null;
|
|
78
|
+
return `Prices shown are for ${resolvedTier} tier. `
|
|
79
|
+
+ `Higher tiers may offer lower prices — use fetch-actor-details to see the full pricing table.`;
|
|
80
|
+
}
|
|
81
|
+
function getSingleResolvedTier(resolvedTiers) {
|
|
82
|
+
var _a;
|
|
83
|
+
if (resolvedTiers.size !== 1)
|
|
84
|
+
return null;
|
|
85
|
+
return (_a = resolvedTiers.values().next().value) !== null && _a !== void 0 ? _a : null;
|
|
86
|
+
}
|
|
87
|
+
function isFreeActor(info) {
|
|
88
|
+
return !info || info.pricingModel === ACTOR_PRICING_MODEL.FREE;
|
|
89
|
+
}
|
|
90
|
+
function hasTiers(map) {
|
|
91
|
+
return !!map && Object.keys(map).length > 0;
|
|
92
|
+
}
|
|
93
|
+
function hasMultipleTiers(map) {
|
|
94
|
+
return !!map && Object.keys(map).length > 1;
|
|
95
|
+
}
|
|
96
|
+
function shouldOmitEventDescriptions(eventCount) {
|
|
97
|
+
return eventCount > EVENT_DESCRIPTION_LIMIT;
|
|
98
|
+
}
|
|
99
|
+
function convertMinutesToGreatestUnit(minutes) {
|
|
100
|
+
if (minutes < 60)
|
|
101
|
+
return { value: minutes, unit: 'minutes' };
|
|
102
|
+
if (minutes < 60 * 24)
|
|
103
|
+
return { value: Math.floor(minutes / 60), unit: 'hours' };
|
|
104
|
+
return { value: Math.floor(minutes / (60 * 24)), unit: 'days' };
|
|
105
|
+
}
|
|
10
106
|
export function getCurrentPricingInfo(pricingInfos, now) {
|
|
11
|
-
|
|
107
|
+
var _a;
|
|
12
108
|
const validPricingInfos = pricingInfos.filter((info) => {
|
|
13
109
|
if (!info.startedAt)
|
|
14
110
|
return false;
|
|
15
|
-
|
|
16
|
-
return startedAt <= now;
|
|
111
|
+
return new Date(info.startedAt) <= now;
|
|
17
112
|
});
|
|
18
|
-
// Sort and return the most recent pricing info
|
|
19
113
|
validPricingInfos.sort((a, b) => {
|
|
20
114
|
const aDate = new Date(a.startedAt || 0);
|
|
21
115
|
const bDate = new Date(b.startedAt || 0);
|
|
22
|
-
return bDate.getTime() - aDate.getTime();
|
|
116
|
+
return bDate.getTime() - aDate.getTime();
|
|
23
117
|
});
|
|
24
|
-
|
|
25
|
-
|
|
118
|
+
return (_a = validPricingInfos[0]) !== null && _a !== void 0 ? _a : null;
|
|
119
|
+
}
|
|
120
|
+
/** Complete text contract used by `fetch-actor-details`. */
|
|
121
|
+
export function pricingInfoToString(pricingInfo) {
|
|
122
|
+
if (isFreeActor(pricingInfo))
|
|
123
|
+
return FREE_ACTOR_TEXT;
|
|
124
|
+
switch (pricingInfo.pricingModel) {
|
|
125
|
+
case ACTOR_PRICING_MODEL.PRICE_PER_DATASET_ITEM:
|
|
126
|
+
return formatDatasetItemComplete(pricingInfo);
|
|
127
|
+
case ACTOR_PRICING_MODEL.FLAT_PRICE_PER_MONTH:
|
|
128
|
+
return formatRentalComplete(pricingInfo);
|
|
129
|
+
case ACTOR_PRICING_MODEL.PAY_PER_EVENT:
|
|
130
|
+
return formatPayPerEventComplete(pricingInfo.pricingPerEvent);
|
|
131
|
+
default:
|
|
132
|
+
return UNKNOWN_PRICING_TEXT;
|
|
26
133
|
}
|
|
27
|
-
return null;
|
|
28
134
|
}
|
|
29
|
-
function
|
|
30
|
-
|
|
31
|
-
|
|
135
|
+
function formatDatasetItemComplete(info) {
|
|
136
|
+
var _a;
|
|
137
|
+
const unitLabel = info.unitName ? `${info.unitName}s` : 'results';
|
|
138
|
+
const tierEntries = info.tieredPricing ? Object.entries(info.tieredPricing) : [];
|
|
139
|
+
if (tierEntries.length > 1) {
|
|
140
|
+
const tierList = tierEntries
|
|
141
|
+
.map(([tier, obj]) => `${tier}: $${obj.tieredPricePerUnitUsd * 1000}`)
|
|
142
|
+
.join(', ');
|
|
143
|
+
return `This Actor has tiered pricing per 1000 ${unitLabel}: ${tierList}.`;
|
|
32
144
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
return
|
|
145
|
+
const price = tierEntries.length === 1
|
|
146
|
+
? tierEntries[0][1].tieredPricePerUnitUsd
|
|
147
|
+
: ((_a = info.pricePerUnitUsd) !== null && _a !== void 0 ? _a : 0);
|
|
148
|
+
return `This Actor costs $${price * 1000} per 1000 ${unitLabel}.`;
|
|
37
149
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
* @param pricingPerEvent
|
|
49
|
-
*/
|
|
50
|
-
function payPerEventPricingToString(pricingPerEvent) {
|
|
51
|
-
if (!pricingPerEvent || !pricingPerEvent.actorChargeEvents)
|
|
52
|
-
return 'Pricing information for events is not available.';
|
|
53
|
-
const eventStrings = [];
|
|
54
|
-
for (const event of Object.values(pricingPerEvent.actorChargeEvents)) {
|
|
55
|
-
let eventStr = `\t- **${event.eventTitle}**: ${event.eventDescription} `;
|
|
56
|
-
if (typeof event.eventPriceUsd === 'number') {
|
|
57
|
-
eventStr += `(Flat price: $${event.eventPriceUsd} per event)`;
|
|
58
|
-
}
|
|
59
|
-
else if (event.eventTieredPricingUsd) {
|
|
60
|
-
const tiers = Object.entries(event.eventTieredPricingUsd)
|
|
61
|
-
.map(([tier, price]) => `${tier}: $${price.tieredEventPriceUsd}`)
|
|
62
|
-
.join(', ');
|
|
63
|
-
eventStr += `(Tiered pricing: ${tiers} per event)`;
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
eventStr += '(No price info)';
|
|
67
|
-
}
|
|
68
|
-
eventStrings.push(eventStr);
|
|
150
|
+
function formatRentalComplete(info) {
|
|
151
|
+
var _a;
|
|
152
|
+
const { value, unit } = convertMinutesToGreatestUnit(info.trialMinutes || 0);
|
|
153
|
+
const tierEntries = info.tieredPricing ? Object.entries(info.tieredPricing) : [];
|
|
154
|
+
if (tierEntries.length > 1) {
|
|
155
|
+
const tierList = tierEntries
|
|
156
|
+
.map(([tier, obj]) => `${tier}: $${obj.tieredPricePerUnitUsd}`)
|
|
157
|
+
.join(', ');
|
|
158
|
+
return `This Actor is rental and has tiered pricing per month: ${tierList}, `
|
|
159
|
+
+ `with a trial period of ${value} ${unit}.`;
|
|
69
160
|
}
|
|
70
|
-
|
|
161
|
+
const price = tierEntries.length === 1
|
|
162
|
+
? tierEntries[0][1].tieredPricePerUnitUsd
|
|
163
|
+
: ((_a = info.pricePerUnitUsd) !== null && _a !== void 0 ? _a : 0);
|
|
164
|
+
return `This Actor is rental and costs $${price} per month, with a trial period of ${value} ${unit}.`;
|
|
71
165
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
166
|
+
function formatPayPerEventComplete(pricingPerEvent) {
|
|
167
|
+
if (!(pricingPerEvent === null || pricingPerEvent === void 0 ? void 0 : pricingPerEvent.actorChargeEvents))
|
|
168
|
+
return EVENTS_UNAVAILABLE_TEXT;
|
|
169
|
+
const eventLines = Object.values(pricingPerEvent.actorChargeEvents).map((event) => {
|
|
170
|
+
var _a;
|
|
171
|
+
const detail = formatCompleteEventDetail(event);
|
|
172
|
+
return `\t- **${event.eventTitle}**: ${(_a = event.eventDescription) !== null && _a !== void 0 ? _a : ''} (${detail})`;
|
|
173
|
+
});
|
|
174
|
+
return `This Actor is paid per event:\n${eventLines.join('\n')}`;
|
|
175
|
+
}
|
|
176
|
+
function formatCompleteEventDetail(event) {
|
|
177
|
+
if (typeof event.eventPriceUsd === 'number')
|
|
178
|
+
return `$${event.eventPriceUsd} per event`;
|
|
179
|
+
const tiered = event.eventTieredPricingUsd;
|
|
180
|
+
if (!hasTiers(tiered))
|
|
181
|
+
return 'No price info';
|
|
182
|
+
if (hasMultipleTiers(tiered)) {
|
|
183
|
+
return `${Object.entries(tiered)
|
|
184
|
+
.map(([tier, price]) => `${tier}: $${price.tieredEventPriceUsd}`)
|
|
185
|
+
.join(', ')} per event`;
|
|
77
186
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
187
|
+
const [price] = Object.values(tiered);
|
|
188
|
+
return `$${price.tieredEventPriceUsd} per event`;
|
|
189
|
+
}
|
|
190
|
+
/** Complete structured contract used by `fetch-actor-details`. */
|
|
191
|
+
export function pricingInfoToStructured(pricingInfo, userTier) {
|
|
192
|
+
const base = createStructuredBase(pricingInfo, userTier);
|
|
193
|
+
if (isFreeActor(pricingInfo))
|
|
194
|
+
return base;
|
|
195
|
+
switch (pricingInfo.pricingModel) {
|
|
196
|
+
case ACTOR_PRICING_MODEL.PRICE_PER_DATASET_ITEM:
|
|
197
|
+
return { ...base, unitName: pricingInfo.unitName || 'result', ...structureTieredUnitComplete(pricingInfo) };
|
|
198
|
+
case ACTOR_PRICING_MODEL.FLAT_PRICE_PER_MONTH:
|
|
199
|
+
return { ...base, trialMinutes: pricingInfo.trialMinutes, ...structureTieredUnitComplete(pricingInfo) };
|
|
200
|
+
case ACTOR_PRICING_MODEL.PAY_PER_EVENT:
|
|
201
|
+
return { ...base, ...structurePayPerEventComplete(pricingInfo.pricingPerEvent) };
|
|
202
|
+
default:
|
|
203
|
+
return base;
|
|
88
204
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
205
|
+
}
|
|
206
|
+
function createStructuredBase(pricingInfo, userTier) {
|
|
207
|
+
return {
|
|
208
|
+
model: (pricingInfo === null || pricingInfo === void 0 ? void 0 : pricingInfo.pricingModel) || ACTOR_PRICING_MODEL.FREE,
|
|
209
|
+
userTier,
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
function structureTieredUnitComplete(info) {
|
|
213
|
+
var _a;
|
|
214
|
+
const patch = { pricePerUnit: (_a = info.pricePerUnitUsd) !== null && _a !== void 0 ? _a : 0 };
|
|
215
|
+
if (hasTiers(info.tieredPricing)) {
|
|
216
|
+
patch.tieredPricing = Object.entries(info.tieredPricing).map(([tier, obj]) => ({
|
|
217
|
+
tier,
|
|
218
|
+
pricePerUnit: obj.tieredPricePerUnitUsd,
|
|
219
|
+
}));
|
|
99
220
|
}
|
|
100
|
-
|
|
101
|
-
|
|
221
|
+
return patch;
|
|
222
|
+
}
|
|
223
|
+
function structurePayPerEventComplete(pricingPerEvent) {
|
|
224
|
+
if (!(pricingPerEvent === null || pricingPerEvent === void 0 ? void 0 : pricingPerEvent.actorChargeEvents))
|
|
225
|
+
return {};
|
|
226
|
+
return {
|
|
227
|
+
events: Object.values(pricingPerEvent.actorChargeEvents).map((event) => ({
|
|
228
|
+
title: event.eventTitle,
|
|
229
|
+
description: event.eventDescription || '',
|
|
230
|
+
priceUsd: typeof event.eventPriceUsd === 'number' ? event.eventPriceUsd : undefined,
|
|
231
|
+
tieredPricing: event.eventTieredPricingUsd
|
|
232
|
+
? Object.entries(event.eventTieredPricingUsd)
|
|
233
|
+
.map(([tier, price]) => ({ tier, priceUsd: price.tieredEventPriceUsd }))
|
|
234
|
+
: undefined,
|
|
235
|
+
})),
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
/** Simplified text contract used by `search-actors`. */
|
|
239
|
+
export function pricingInfoToSimplifiedString(pricingInfo, userTier) {
|
|
240
|
+
if (isFreeActor(pricingInfo))
|
|
241
|
+
return FREE_ACTOR_TEXT;
|
|
242
|
+
switch (pricingInfo.pricingModel) {
|
|
243
|
+
case ACTOR_PRICING_MODEL.PRICE_PER_DATASET_ITEM:
|
|
244
|
+
return formatDatasetItemSimplified(pricingInfo, userTier);
|
|
245
|
+
case ACTOR_PRICING_MODEL.FLAT_PRICE_PER_MONTH:
|
|
246
|
+
return formatRentalSimplified(pricingInfo, userTier);
|
|
247
|
+
case ACTOR_PRICING_MODEL.PAY_PER_EVENT:
|
|
248
|
+
return formatPayPerEventSimplified(pricingInfo.pricingPerEvent, userTier);
|
|
249
|
+
default:
|
|
250
|
+
return UNKNOWN_PRICING_TEXT;
|
|
102
251
|
}
|
|
103
|
-
return 'Pricing information is not available.';
|
|
104
252
|
}
|
|
105
|
-
|
|
106
|
-
* Transform and normalize API response to match unstructured text output format
|
|
107
|
-
* instead of just dumping raw API data - ensures consistency across structured & unstructured modes.
|
|
108
|
-
*/
|
|
109
|
-
export function pricingInfoToStructured(pricingInfo) {
|
|
253
|
+
function formatDatasetItemSimplified(info, userTier) {
|
|
110
254
|
var _a;
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
return
|
|
255
|
+
const unitLabel = info.unitName ? `${info.unitName}s` : 'results';
|
|
256
|
+
if (hasTiers(info.tieredPricing)) {
|
|
257
|
+
const { tier, value } = resolveTier(info.tieredPricing, userTier);
|
|
258
|
+
const base = `This Actor costs $${value.tieredPricePerUnitUsd * 1000} per 1000 ${unitLabel}.`;
|
|
259
|
+
const note = hasMultipleTiers(info.tieredPricing) ? buildPricingNote(tier) : null;
|
|
260
|
+
return note ? `${base} ${note}` : base;
|
|
117
261
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
262
|
+
return `This Actor costs $${((_a = info.pricePerUnitUsd) !== null && _a !== void 0 ? _a : 0) * 1000} per 1000 ${unitLabel}.`;
|
|
263
|
+
}
|
|
264
|
+
function formatRentalSimplified(info, userTier) {
|
|
265
|
+
var _a;
|
|
266
|
+
const { value, unit } = convertMinutesToGreatestUnit(info.trialMinutes || 0);
|
|
267
|
+
if (hasTiers(info.tieredPricing)) {
|
|
268
|
+
const { tier, value: entry } = resolveTier(info.tieredPricing, userTier);
|
|
269
|
+
const base = `This Actor is rental and costs $${entry.tieredPricePerUnitUsd} per month, `
|
|
270
|
+
+ `with a trial period of ${value} ${unit}.`;
|
|
271
|
+
const note = hasMultipleTiers(info.tieredPricing) ? buildPricingNote(tier) : null;
|
|
272
|
+
return note ? `${base} ${note}` : base;
|
|
127
273
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
274
|
+
return `This Actor is rental and costs $${(_a = info.pricePerUnitUsd) !== null && _a !== void 0 ? _a : 0} per month, with a trial period of ${value} ${unit}.`;
|
|
275
|
+
}
|
|
276
|
+
function formatPayPerEventSimplified(pricingPerEvent, userTier) {
|
|
277
|
+
if (!(pricingPerEvent === null || pricingPerEvent === void 0 ? void 0 : pricingPerEvent.actorChargeEvents))
|
|
278
|
+
return EVENTS_UNAVAILABLE_TEXT;
|
|
279
|
+
const events = Object.values(pricingPerEvent.actorChargeEvents);
|
|
280
|
+
const omitDescriptions = shouldOmitEventDescriptions(events.length);
|
|
281
|
+
const resolvedTiers = new Set();
|
|
282
|
+
const eventLines = events.map((event) => {
|
|
283
|
+
var _a;
|
|
284
|
+
let price;
|
|
285
|
+
if (typeof event.eventPriceUsd === 'number') {
|
|
286
|
+
price = event.eventPriceUsd;
|
|
136
287
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
288
|
+
else if (event.eventTieredPricingUsd) {
|
|
289
|
+
const tieredMap = event.eventTieredPricingUsd;
|
|
290
|
+
if (hasTiers(tieredMap)) {
|
|
291
|
+
const { tier, value } = resolveTier(tieredMap, userTier);
|
|
292
|
+
resolvedTiers.add(tier);
|
|
293
|
+
price = value.tieredEventPriceUsd;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
const detail = typeof price === 'number' ? `$${price} per event` : 'No price info';
|
|
297
|
+
if (omitDescriptions)
|
|
298
|
+
return `\t- **${event.eventTitle}**: ${detail}`;
|
|
299
|
+
return `\t- **${event.eventTitle}**: ${(_a = event.eventDescription) !== null && _a !== void 0 ? _a : ''} (${detail})`;
|
|
300
|
+
});
|
|
301
|
+
const body = `This Actor is paid per event:\n${eventLines.join('\n')}`;
|
|
302
|
+
const anyMultiTier = events.some((event) => hasMultipleTiers(event.eventTieredPricingUsd));
|
|
303
|
+
const noteTier = anyMultiTier ? getSingleResolvedTier(resolvedTiers) : null;
|
|
304
|
+
const pricingNote = noteTier ? buildPricingNote(noteTier) : null;
|
|
305
|
+
const tail = [pricingNote, omitDescriptions ? EVENT_DESCRIPTIONS_OMITTED_NOTE : null]
|
|
306
|
+
.filter((n) => !!n)
|
|
307
|
+
.join('\n');
|
|
308
|
+
return tail ? `${body}\n${tail}` : body;
|
|
309
|
+
}
|
|
310
|
+
/** Simplified structured contract used by `search-actors`. */
|
|
311
|
+
export function pricingInfoToSimplifiedStructured(pricingInfo, userTier) {
|
|
312
|
+
const base = createStructuredBase(pricingInfo, userTier);
|
|
313
|
+
if (isFreeActor(pricingInfo))
|
|
314
|
+
return base;
|
|
315
|
+
const { patch, noteTier } = resolveSimplifiedPatch(pricingInfo, userTier);
|
|
316
|
+
const pricingNote = noteTier ? buildPricingNote(noteTier) : null;
|
|
317
|
+
return {
|
|
318
|
+
...base,
|
|
319
|
+
...patch,
|
|
320
|
+
...(pricingNote ? { pricingNote } : {}),
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
function resolveSimplifiedPatch(pricingInfo, userTier) {
|
|
324
|
+
switch (pricingInfo.pricingModel) {
|
|
325
|
+
case ACTOR_PRICING_MODEL.PRICE_PER_DATASET_ITEM: {
|
|
326
|
+
const r = structureTieredUnitSimplified(pricingInfo, userTier);
|
|
327
|
+
return { patch: { unitName: pricingInfo.unitName || 'result', ...r.patch }, noteTier: r.noteTier };
|
|
328
|
+
}
|
|
329
|
+
case ACTOR_PRICING_MODEL.FLAT_PRICE_PER_MONTH: {
|
|
330
|
+
const r = structureTieredUnitSimplified(pricingInfo, userTier);
|
|
331
|
+
return { patch: { trialMinutes: pricingInfo.trialMinutes, ...r.patch }, noteTier: r.noteTier };
|
|
156
332
|
}
|
|
333
|
+
case ACTOR_PRICING_MODEL.PAY_PER_EVENT:
|
|
334
|
+
return structurePayPerEventSimplified(pricingInfo.pricingPerEvent, userTier);
|
|
335
|
+
default:
|
|
336
|
+
return { patch: {}, noteTier: null };
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
function structureTieredUnitSimplified(info, userTier) {
|
|
340
|
+
var _a;
|
|
341
|
+
const patch = { pricePerUnit: (_a = info.pricePerUnitUsd) !== null && _a !== void 0 ? _a : 0 };
|
|
342
|
+
if (hasTiers(info.tieredPricing)) {
|
|
343
|
+
const { tier, value } = resolveTier(info.tieredPricing, userTier);
|
|
344
|
+
patch.tieredPricing = [{ tier, pricePerUnit: value.tieredPricePerUnitUsd }];
|
|
345
|
+
patch.pricePerUnit = value.tieredPricePerUnitUsd;
|
|
346
|
+
return { patch, noteTier: hasMultipleTiers(info.tieredPricing) ? tier : null };
|
|
157
347
|
}
|
|
158
|
-
return
|
|
348
|
+
return { patch, noteTier: null };
|
|
349
|
+
}
|
|
350
|
+
function structurePayPerEventSimplified(pricingPerEvent, userTier) {
|
|
351
|
+
if (!(pricingPerEvent === null || pricingPerEvent === void 0 ? void 0 : pricingPerEvent.actorChargeEvents))
|
|
352
|
+
return { patch: {}, noteTier: null };
|
|
353
|
+
const rawEvents = Object.values(pricingPerEvent.actorChargeEvents);
|
|
354
|
+
const omitDescriptions = shouldOmitEventDescriptions(rawEvents.length);
|
|
355
|
+
const resolvedTiers = new Set();
|
|
356
|
+
const events = rawEvents.map((event) => {
|
|
357
|
+
const baseEvent = {
|
|
358
|
+
title: event.eventTitle,
|
|
359
|
+
...(omitDescriptions ? {} : { description: event.eventDescription || '' }),
|
|
360
|
+
};
|
|
361
|
+
if (typeof event.eventPriceUsd === 'number') {
|
|
362
|
+
return { ...baseEvent, priceUsd: event.eventPriceUsd };
|
|
363
|
+
}
|
|
364
|
+
const tieredMap = event.eventTieredPricingUsd;
|
|
365
|
+
if (!hasTiers(tieredMap))
|
|
366
|
+
return baseEvent;
|
|
367
|
+
const { tier, value } = resolveTier(tieredMap, userTier);
|
|
368
|
+
resolvedTiers.add(tier);
|
|
369
|
+
// `priceUsd` is set in addition to `tieredPricing` so the widget's FREE-tier
|
|
370
|
+
// fallback (src/web/src/utils/formatting.ts) can render a concrete price for
|
|
371
|
+
// FREE-tier users instead of the generic "Pay per event" fallback.
|
|
372
|
+
return {
|
|
373
|
+
...baseEvent,
|
|
374
|
+
priceUsd: value.tieredEventPriceUsd,
|
|
375
|
+
tieredPricing: [{ tier, priceUsd: value.tieredEventPriceUsd }],
|
|
376
|
+
};
|
|
377
|
+
});
|
|
378
|
+
const anyMultiTier = rawEvents.some((event) => hasMultipleTiers(event.eventTieredPricingUsd));
|
|
379
|
+
const noteTier = anyMultiTier ? getSingleResolvedTier(resolvedTiers) : null;
|
|
380
|
+
return {
|
|
381
|
+
patch: {
|
|
382
|
+
events,
|
|
383
|
+
...(omitDescriptions
|
|
384
|
+
? {
|
|
385
|
+
eventDescriptionsOmitted: true,
|
|
386
|
+
eventDescriptionsNote: EVENT_DESCRIPTIONS_OMITTED_NOTE,
|
|
387
|
+
}
|
|
388
|
+
: {}),
|
|
389
|
+
},
|
|
390
|
+
noteTier,
|
|
391
|
+
};
|
|
159
392
|
}
|
|
160
393
|
//# sourceMappingURL=pricing_info.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pricing_info.js","sourceRoot":"","sources":["../../src/utils/pricing_info.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pricing_info.js","sourceRoot":"","sources":["../../src/utils/pricing_info.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/utils/progress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,qBAAa,eAAe;IACxB,OAAO,CAAC,aAAa,CAAC,CAAkB;IACxC,OAAO,CAAC,gBAAgB,CAAC,CAAwD;IACjF,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,UAAU,CAAC,CAAiB;IACpC,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,eAAe,CAAC,CAAqC;gBAEjD,OAAO,EAAE;QACjB,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAChC,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QACzE,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KACxD;IAOK,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuCrD,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAkCtF,IAAI,IAAI,IAAI;CAMf;AAED,wBAAgB,qBAAqB,CACjC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAC1C,gBAAgB,EAAE,CAAC,CAAC,YAAY,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,EACrF,MAAM,CAAC,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GACrD,eAAe,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/utils/progress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,qBAAa,eAAe;IACxB,OAAO,CAAC,aAAa,CAAC,CAAkB;IACxC,OAAO,CAAC,gBAAgB,CAAC,CAAwD;IACjF,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,UAAU,CAAC,CAAiB;IACpC,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,eAAe,CAAC,CAAqC;gBAEjD,OAAO,EAAE;QACjB,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAChC,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QACzE,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KACxD;IAOK,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuCrD,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAkCtF,IAAI,IAAI,IAAI;CAMf;AAED,wBAAgB,qBAAqB,CACjC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAC1C,gBAAgB,EAAE,CAAC,CAAC,YAAY,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,EACrF,MAAM,CAAC,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GACrD,eAAe,GAAG,IAAI,CAQxB"}
|
package/dist/utils/progress.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PROGRESS_NOTIFICATION_INTERVAL_MS } from '../const.js';
|
|
1
|
+
import { PROGRESS_NOTIFICATION_INTERVAL_MS, RELATED_TASK_META_KEY } from '../const.js';
|
|
2
2
|
export class ProgressTracker {
|
|
3
3
|
constructor(options) {
|
|
4
4
|
Object.defineProperty(this, "progressToken", {
|
|
@@ -45,7 +45,7 @@ export class ProgressTracker {
|
|
|
45
45
|
async updateProgress(message) {
|
|
46
46
|
this.currentProgress += 1;
|
|
47
47
|
// Send progress notification only if progressToken and sendNotification are available
|
|
48
|
-
if (this.progressToken && this.sendNotification) {
|
|
48
|
+
if (this.progressToken !== undefined && this.progressToken !== null && this.sendNotification) {
|
|
49
49
|
try {
|
|
50
50
|
const notification = {
|
|
51
51
|
method: 'notifications/progress',
|
|
@@ -57,7 +57,7 @@ export class ProgressTracker {
|
|
|
57
57
|
// Per MCP spec: progress notifications during task execution should include related-task metadata
|
|
58
58
|
...(this.taskId && {
|
|
59
59
|
_meta: {
|
|
60
|
-
|
|
60
|
+
[RELATED_TASK_META_KEY]: {
|
|
61
61
|
taskId: this.taskId,
|
|
62
62
|
},
|
|
63
63
|
},
|
|
@@ -117,7 +117,8 @@ export class ProgressTracker {
|
|
|
117
117
|
}
|
|
118
118
|
export function createProgressTracker(progressToken, sendNotification, taskId, onStatusMessage) {
|
|
119
119
|
// Create tracker if we have either progress notification support or a status message callback
|
|
120
|
-
|
|
120
|
+
const hasProgressNotificationSupport = progressToken !== undefined && progressToken !== null && !!sendNotification;
|
|
121
|
+
if (!hasProgressNotificationSupport && !onStatusMessage) {
|
|
121
122
|
return null;
|
|
122
123
|
}
|
|
123
124
|
return new ProgressTracker({ progressToken, sendNotification, taskId, onStatusMessage });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/utils/progress.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/utils/progress.ts"],"names":[],"mappings":"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"}
|