@iblai/iblai-api 2025.10.27-google-calendar-support-2-ai → 2025.11.3-teams-bot-renovation-ai

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 (39) hide show
  1. package/dist/index.cjs.js +306 -35
  2. package/dist/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +307 -36
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/index.umd.js +306 -35
  6. package/dist/index.umd.js.map +1 -1
  7. package/dist/types/index.d.ts +4 -1
  8. package/dist/types/models/MentorSettings.d.ts +1 -0
  9. package/dist/types/models/MentorSettingsPublic.d.ts +1 -0
  10. package/dist/types/models/NotificationTemplateDetail.d.ts +3 -2
  11. package/dist/types/models/NotificationTemplateList.d.ts +3 -2
  12. package/dist/types/models/PatchedNotificationTemplateDetail.d.ts +3 -2
  13. package/dist/types/models/PatchedPlatformPublicImageAsset.d.ts +11 -0
  14. package/dist/types/models/PlatformPrompt.d.ts +2 -5
  15. package/dist/types/models/PlatformPublicImageAsset.d.ts +11 -0
  16. package/dist/types/models/RecommendationTypeEnum.d.ts +2 -8
  17. package/dist/types/models/{Type768Enum.d.ts → Type2a5Enum.d.ts} +3 -1
  18. package/dist/types/models/V2PersonalizedMentorsResponse.d.ts +29 -0
  19. package/dist/types/services/AiMentorService.d.ts +1 -0
  20. package/dist/types/services/AiSearchService.d.ts +124 -9
  21. package/dist/types/services/CoreService.d.ts +66 -0
  22. package/package.json +1 -1
  23. package/sdk_schema.yml +636 -23
  24. package/src/core/OpenAPI.ts +1 -1
  25. package/src/index.ts +4 -1
  26. package/src/models/MentorSettings.ts +1 -0
  27. package/src/models/MentorSettingsPublic.ts +1 -0
  28. package/src/models/NotificationTemplateDetail.ts +3 -2
  29. package/src/models/NotificationTemplateList.ts +3 -2
  30. package/src/models/PatchedNotificationTemplateDetail.ts +3 -2
  31. package/src/models/PatchedPlatformPublicImageAsset.ts +16 -0
  32. package/src/models/PlatformPrompt.ts +2 -5
  33. package/src/models/PlatformPublicImageAsset.ts +16 -0
  34. package/src/models/RecommendationTypeEnum.ts +2 -8
  35. package/src/models/{Type768Enum.ts → Type2a5Enum.ts} +3 -1
  36. package/src/models/V2PersonalizedMentorsResponse.ts +34 -0
  37. package/src/services/AiMentorService.ts +1 -0
  38. package/src/services/AiSearchService.ts +218 -10
  39. package/src/services/CoreService.ts +155 -0
@@ -21,7 +21,7 @@ export type OpenAPIConfig = {
21
21
 
22
22
  export const OpenAPI: OpenAPIConfig = {
23
23
  BASE: 'https://base.manager.iblai.app',
24
- VERSION: '4.73.0-ai-plus',
24
+ VERSION: '4.80.0-ai-plus',
25
25
  WITH_CREDENTIALS: false,
26
26
  CREDENTIALS: 'include',
27
27
  TOKEN: undefined,
package/src/index.ts CHANGED
@@ -457,6 +457,7 @@ export type { PatchedNotification } from './models/PatchedNotification';
457
457
  export type { PatchedNotificationTemplateDetail } from './models/PatchedNotificationTemplateDetail';
458
458
  export type { PatchedNotificationToggle } from './models/PatchedNotificationToggle';
459
459
  export type { PatchedPeriodicAgentCreate } from './models/PatchedPeriodicAgentCreate';
460
+ export type { PatchedPlatformPublicImageAsset } from './models/PatchedPlatformPublicImageAsset';
460
461
  export type { PatchedPlatformPublicMetadata } from './models/PatchedPlatformPublicMetadata';
461
462
  export type { PatchedPlayWrightScript } from './models/PatchedPlayWrightScript';
462
463
  export type { PatchedProject } from './models/PatchedProject';
@@ -546,6 +547,7 @@ export type { PlatformMembershipConfigPostRequest } from './models/PlatformMembe
546
547
  export type { PlatformMetrics } from './models/PlatformMetrics';
547
548
  export type { PlatformPrompt } from './models/PlatformPrompt';
548
549
  export type { PlatformPromptResponse } from './models/PlatformPromptResponse';
550
+ export type { PlatformPublicImageAsset } from './models/PlatformPublicImageAsset';
549
551
  export type { PlatformPublicMetadata } from './models/PlatformPublicMetadata';
550
552
  export type { PlatformSkillPointBulkRequest } from './models/PlatformSkillPointBulkRequest';
551
553
  export type { PlatformSkillPointBulkResponse } from './models/PlatformSkillPointBulkResponse';
@@ -790,7 +792,7 @@ export type { TrendEntry } from './models/TrendEntry';
790
792
  export type { TriggerRequest } from './models/TriggerRequest';
791
793
  export type { TriggerResponse } from './models/TriggerResponse';
792
794
  export { TtsProviderEnum } from './models/TtsProviderEnum';
793
- export { Type768Enum } from './models/Type768Enum';
795
+ export { Type2a5Enum } from './models/Type2a5Enum';
794
796
  export { TypeC42Enum } from './models/TypeC42Enum';
795
797
  export type { Unit } from './models/Unit';
796
798
  export type { UnitWithChildren } from './models/UnitWithChildren';
@@ -851,6 +853,7 @@ export type { UserSkill } from './models/UserSkill';
851
853
  export type { UserSkillPointsPercentile } from './models/UserSkillPointsPercentile';
852
854
  export type { UserTrendByPeriod } from './models/UserTrendByPeriod';
853
855
  export type { V2GlobalMentorSearchResponse } from './models/V2GlobalMentorSearchResponse';
856
+ export type { V2PersonalizedMentorsResponse } from './models/V2PersonalizedMentorsResponse';
854
857
  export type { V2RecommendationResponse } from './models/V2RecommendationResponse';
855
858
  export type { ValidateSourceResponse } from './models/ValidateSourceResponse';
856
859
  export type { Value } from './models/Value';
@@ -71,6 +71,7 @@ export type MentorSettings = {
71
71
  readonly created_at: string;
72
72
  readonly updated_at: string;
73
73
  readonly platform_key: string;
74
+ readonly llm_config: any;
74
75
  readonly system_prompt: string;
75
76
  readonly llm_provider: string;
76
77
  readonly llm_temperature: number;
@@ -69,5 +69,6 @@ export type MentorSettingsPublic = {
69
69
  readonly created_at: string;
70
70
  readonly updated_at: string;
71
71
  readonly platform_key: string;
72
+ readonly llm_config: any;
72
73
  };
73
74
 
@@ -5,7 +5,7 @@
5
5
  import type { ConsumerChannel } from './ConsumerChannel';
6
6
  import type { NullEnum } from './NullEnum';
7
7
  import type { Spa } from './Spa';
8
- import type { Type768Enum } from './Type768Enum';
8
+ import type { Type2a5Enum } from './Type2a5Enum';
9
9
  /**
10
10
  * Serializer for detailed template view and editing
11
11
  */
@@ -30,6 +30,7 @@ export type NotificationTemplateDetail = {
30
30
  * * `PROGRAM_INVITATION` - Program Invitation
31
31
  * * `COURSE_INVITATION` - Course Invitation
32
32
  * * `USER_NOTIF_LEARNER_PROGRESS` - User Notif Learner Progress
33
+ * * `PROACTIVE_LEARNER_NOTIFICATION` - Proactive Learner Notification
33
34
  * * `ROLE_CHANGE` - Role Change
34
35
  * * `COURSE_LICENSE_ASSIGNMENT` - Course License Assignment
35
36
  * * `COURSE_LICENSE_GROUP_ASSIGNMENT` - Course License Group Assignment
@@ -38,7 +39,7 @@ export type NotificationTemplateDetail = {
38
39
  * * `USER_LICENSE_ASSIGNMENT` - User License Assignment
39
40
  * * `USER_LICENSE_GROUP_ASSIGNMENT` - User License Group Assignment
40
41
  */
41
- readonly type: (Type768Enum | NullEnum) | null;
42
+ readonly type: (Type2a5Enum | NullEnum) | null;
42
43
  /**
43
44
  * A friendly name for the notification template.
44
45
  */
@@ -4,7 +4,7 @@
4
4
  /* eslint-disable */
5
5
  import type { BlankEnum } from './BlankEnum';
6
6
  import type { NullEnum } from './NullEnum';
7
- import type { Type768Enum } from './Type768Enum';
7
+ import type { Type2a5Enum } from './Type2a5Enum';
8
8
  /**
9
9
  * Serializer for listing notification templates with inheritance info
10
10
  */
@@ -29,6 +29,7 @@ export type NotificationTemplateList = {
29
29
  * * `PROGRAM_INVITATION` - Program Invitation
30
30
  * * `COURSE_INVITATION` - Course Invitation
31
31
  * * `USER_NOTIF_LEARNER_PROGRESS` - User Notif Learner Progress
32
+ * * `PROACTIVE_LEARNER_NOTIFICATION` - Proactive Learner Notification
32
33
  * * `ROLE_CHANGE` - Role Change
33
34
  * * `COURSE_LICENSE_ASSIGNMENT` - Course License Assignment
34
35
  * * `COURSE_LICENSE_GROUP_ASSIGNMENT` - Course License Group Assignment
@@ -37,7 +38,7 @@ export type NotificationTemplateList = {
37
38
  * * `USER_LICENSE_ASSIGNMENT` - User License Assignment
38
39
  * * `USER_LICENSE_GROUP_ASSIGNMENT` - User License Group Assignment
39
40
  */
40
- type?: (Type768Enum | BlankEnum | NullEnum) | null;
41
+ type?: (Type2a5Enum | BlankEnum | NullEnum) | null;
41
42
  /**
42
43
  * A friendly name for the notification template.
43
44
  */
@@ -5,7 +5,7 @@
5
5
  import type { ConsumerChannel } from './ConsumerChannel';
6
6
  import type { NullEnum } from './NullEnum';
7
7
  import type { Spa } from './Spa';
8
- import type { Type768Enum } from './Type768Enum';
8
+ import type { Type2a5Enum } from './Type2a5Enum';
9
9
  /**
10
10
  * Serializer for detailed template view and editing
11
11
  */
@@ -30,6 +30,7 @@ export type PatchedNotificationTemplateDetail = {
30
30
  * * `PROGRAM_INVITATION` - Program Invitation
31
31
  * * `COURSE_INVITATION` - Course Invitation
32
32
  * * `USER_NOTIF_LEARNER_PROGRESS` - User Notif Learner Progress
33
+ * * `PROACTIVE_LEARNER_NOTIFICATION` - Proactive Learner Notification
33
34
  * * `ROLE_CHANGE` - Role Change
34
35
  * * `COURSE_LICENSE_ASSIGNMENT` - Course License Assignment
35
36
  * * `COURSE_LICENSE_GROUP_ASSIGNMENT` - Course License Group Assignment
@@ -38,7 +39,7 @@ export type PatchedNotificationTemplateDetail = {
38
39
  * * `USER_LICENSE_ASSIGNMENT` - User License Assignment
39
40
  * * `USER_LICENSE_GROUP_ASSIGNMENT` - User License Group Assignment
40
41
  */
41
- readonly type?: (Type768Enum | NullEnum) | null;
42
+ readonly type?: (Type2a5Enum | NullEnum) | null;
42
43
  /**
43
44
  * A friendly name for the notification template.
44
45
  */
@@ -0,0 +1,16 @@
1
+ /* generated using openapi-typescript-codegen -- do not edit */
2
+ /* istanbul ignore file */
3
+ /* tslint:disable */
4
+ /* eslint-disable */
5
+ export type PatchedPlatformPublicImageAsset = {
6
+ readonly id?: number;
7
+ /**
8
+ * Category of the asset
9
+ */
10
+ category?: string;
11
+ image?: string;
12
+ readonly url?: string;
13
+ readonly created_on?: string;
14
+ readonly last_updated?: string;
15
+ };
16
+
@@ -21,13 +21,10 @@ export type PlatformPrompt = {
21
21
  */
22
22
  prompt_text?: string;
23
23
  /**
24
- * Type of resource to recommend (catalog items or mentors)
24
+ * Prompt category. Use 'catalog' for courses/programs/resources/pathways; use 'mentors' for mentor prompts.
25
25
  *
26
26
  * * `mentors` - Mentor Recommendations
27
- * * `courses` - Course Recommendations
28
- * * `programs` - Program Recommendations
29
- * * `resources` - Resource Recommendations
30
- * * `pathways` - Pathway Recommendations
27
+ * * `catalog` - Catalog Recommendations
31
28
  */
32
29
  recommendation_type?: RecommendationTypeEnum;
33
30
  /**
@@ -0,0 +1,16 @@
1
+ /* generated using openapi-typescript-codegen -- do not edit */
2
+ /* istanbul ignore file */
3
+ /* tslint:disable */
4
+ /* eslint-disable */
5
+ export type PlatformPublicImageAsset = {
6
+ readonly id: number;
7
+ /**
8
+ * Category of the asset
9
+ */
10
+ category: string;
11
+ image: string;
12
+ readonly url: string;
13
+ readonly created_on: string;
14
+ readonly last_updated: string;
15
+ };
16
+
@@ -4,15 +4,9 @@
4
4
  /* eslint-disable */
5
5
  /**
6
6
  * * `mentors` - Mentor Recommendations
7
- * * `courses` - Course Recommendations
8
- * * `programs` - Program Recommendations
9
- * * `resources` - Resource Recommendations
10
- * * `pathways` - Pathway Recommendations
7
+ * * `catalog` - Catalog Recommendations
11
8
  */
12
9
  export enum RecommendationTypeEnum {
13
10
  MENTORS = 'mentors',
14
- COURSES = 'courses',
15
- PROGRAMS = 'programs',
16
- RESOURCES = 'resources',
17
- PATHWAYS = 'pathways',
11
+ CATALOG = 'catalog',
18
12
  }
@@ -16,6 +16,7 @@
16
16
  * * `PROGRAM_INVITATION` - Program Invitation
17
17
  * * `COURSE_INVITATION` - Course Invitation
18
18
  * * `USER_NOTIF_LEARNER_PROGRESS` - User Notif Learner Progress
19
+ * * `PROACTIVE_LEARNER_NOTIFICATION` - Proactive Learner Notification
19
20
  * * `ROLE_CHANGE` - Role Change
20
21
  * * `COURSE_LICENSE_ASSIGNMENT` - Course License Assignment
21
22
  * * `COURSE_LICENSE_GROUP_ASSIGNMENT` - Course License Group Assignment
@@ -24,7 +25,7 @@
24
25
  * * `USER_LICENSE_ASSIGNMENT` - User License Assignment
25
26
  * * `USER_LICENSE_GROUP_ASSIGNMENT` - User License Group Assignment
26
27
  */
27
- export enum Type768Enum {
28
+ export enum Type2a5Enum {
28
29
  DEFAULT_TEMPLATE = 'DEFAULT_TEMPLATE',
29
30
  APP_REGISTRATION = 'APP_REGISTRATION',
30
31
  USER_NOTIF_USER_REGISTRATION = 'USER_NOTIF_USER_REGISTRATION',
@@ -38,6 +39,7 @@ export enum Type768Enum {
38
39
  PROGRAM_INVITATION = 'PROGRAM_INVITATION',
39
40
  COURSE_INVITATION = 'COURSE_INVITATION',
40
41
  USER_NOTIF_LEARNER_PROGRESS = 'USER_NOTIF_LEARNER_PROGRESS',
42
+ PROACTIVE_LEARNER_NOTIFICATION = 'PROACTIVE_LEARNER_NOTIFICATION',
41
43
  ROLE_CHANGE = 'ROLE_CHANGE',
42
44
  COURSE_LICENSE_ASSIGNMENT = 'COURSE_LICENSE_ASSIGNMENT',
43
45
  COURSE_LICENSE_GROUP_ASSIGNMENT = 'COURSE_LICENSE_GROUP_ASSIGNMENT',
@@ -0,0 +1,34 @@
1
+ /* generated using openapi-typescript-codegen -- do not edit */
2
+ /* istanbul ignore file */
3
+ /* tslint:disable */
4
+ /* eslint-disable */
5
+ /**
6
+ * Response serializer for V2 Personalized Mentors Search.
7
+ */
8
+ export type V2PersonalizedMentorsResponse = {
9
+ /**
10
+ * List of personalized mentor search results
11
+ */
12
+ results: Array<any>;
13
+ /**
14
+ * Total number of results
15
+ */
16
+ count: number;
17
+ /**
18
+ * URL for next page of results
19
+ */
20
+ next: string | null;
21
+ /**
22
+ * URL for previous page of results
23
+ */
24
+ previous: string | null;
25
+ /**
26
+ * Current page number
27
+ */
28
+ current_page: number;
29
+ /**
30
+ * Total number of pages
31
+ */
32
+ total_pages: number;
33
+ };
34
+
@@ -8141,6 +8141,7 @@ export class AiMentorService {
8141
8141
  });
8142
8142
  }
8143
8143
  /**
8144
+ * Return True if the token is valid and link is enabled, else False
8144
8145
  * @returns ShareableMentorLink
8145
8146
  * @throws ApiError
8146
8147
  */
@@ -6,6 +6,7 @@ import type { MentorSearchResponse } from '../models/MentorSearchResponse';
6
6
  import type { PlatformPrompt } from '../models/PlatformPrompt';
7
7
  import type { PlatformPromptResponse } from '../models/PlatformPromptResponse';
8
8
  import type { V2GlobalMentorSearchResponse } from '../models/V2GlobalMentorSearchResponse';
9
+ import type { V2PersonalizedMentorsResponse } from '../models/V2PersonalizedMentorsResponse';
9
10
  import type { V2RecommendationResponse } from '../models/V2RecommendationResponse';
10
11
  import type { CancelablePromise } from '../core/CancelablePromise';
11
12
  import { OpenAPI } from '../core/OpenAPI';
@@ -40,7 +41,7 @@ export class AiSearchService {
40
41
  category,
41
42
  includeMainPublicMentors = false,
42
43
  limit,
43
- llm,
44
+ llmProviders,
44
45
  offset,
45
46
  query,
46
47
  tenant,
@@ -62,9 +63,9 @@ export class AiSearchService {
62
63
  */
63
64
  limit?: number,
64
65
  /**
65
- * LLM model filter
66
+ * LLM provider filter
66
67
  */
67
- llm?: string,
68
+ llmProviders?: string,
68
69
  /**
69
70
  * Number of results to skip
70
71
  */
@@ -85,7 +86,7 @@ export class AiSearchService {
85
86
  'category': category,
86
87
  'include_main_public_mentors': includeMainPublicMentors,
87
88
  'limit': limit,
88
- 'llm': llm,
89
+ 'llm_providers': llmProviders,
89
90
  'offset': offset,
90
91
  'platform_key': platformKey,
91
92
  'query': query,
@@ -217,6 +218,125 @@ export class AiSearchService {
217
218
  },
218
219
  });
219
220
  }
221
+ /**
222
+ * Get mentors created by a specific user
223
+ *
224
+ * Get mentors created by a specific user within a given organization/platform.
225
+ * This endpoint provides a personalized view of the user's own mentors with
226
+ * support for filtering, pagination, and detailed mentor information.
227
+ *
228
+ * **Authentication Required:**
229
+ * - username: Required for personalized mentor access
230
+ * - platform_key: Required for tenant-specific content
231
+ *
232
+ * **Features:**
233
+ * - User's own mentors only
234
+ * - Personalization data (access counts, last used)
235
+ * - Filtering and faceted search
236
+ * - Pagination support
237
+ * - Detail and list views
238
+ *
239
+ * @returns V2PersonalizedMentorsResponse
240
+ * @throws ApiError
241
+ */
242
+ public static v2PersonalizedMentors({
243
+ platformKey,
244
+ audience,
245
+ category,
246
+ limit,
247
+ llmProviders,
248
+ offset,
249
+ orderBy,
250
+ orderDirection,
251
+ query,
252
+ returnFacet,
253
+ tags,
254
+ username,
255
+ visibility,
256
+ }: {
257
+ /**
258
+ * Platform key for authentication
259
+ */
260
+ platformKey: string,
261
+ /**
262
+ * Filter by audience
263
+ */
264
+ audience?: Array<string>,
265
+ /**
266
+ * Mentor category filter
267
+ */
268
+ category?: string,
269
+ /**
270
+ * Number of results per page
271
+ */
272
+ limit?: number,
273
+ /**
274
+ * Filter by LLM provider
275
+ */
276
+ llmProviders?: Array<string>,
277
+ /**
278
+ * Number of results to skip
279
+ */
280
+ offset?: number,
281
+ /**
282
+ * Field to sort by
283
+ */
284
+ orderBy?: string,
285
+ /**
286
+ * Sort direction
287
+ *
288
+ * * `asc` - asc
289
+ * * `desc` - desc
290
+ */
291
+ orderDirection?: 'asc' | 'desc',
292
+ /**
293
+ * Search query for personalized mentors
294
+ */
295
+ query?: string,
296
+ /**
297
+ * Include facet data in response
298
+ */
299
+ returnFacet?: boolean,
300
+ /**
301
+ * Filter by tags
302
+ */
303
+ tags?: Array<string>,
304
+ /**
305
+ * Username for authentication (required for unauthenticated requests)
306
+ */
307
+ username?: string,
308
+ /**
309
+ * Filter by visibility
310
+ */
311
+ visibility?: Array<string>,
312
+ }): CancelablePromise<V2PersonalizedMentorsResponse> {
313
+ return __request(OpenAPI, {
314
+ method: 'GET',
315
+ url: '/api/ai-search/personalized-mentors/',
316
+ query: {
317
+ 'audience': audience,
318
+ 'category': category,
319
+ 'limit': limit,
320
+ 'llm_providers': llmProviders,
321
+ 'offset': offset,
322
+ 'order_by': orderBy,
323
+ 'order_direction': orderDirection,
324
+ 'platform_key': platformKey,
325
+ 'query': query,
326
+ 'return_facet': returnFacet,
327
+ 'tags': tags,
328
+ 'username': username,
329
+ 'visibility': visibility,
330
+ },
331
+ errors: {
332
+ 400: `Bad request - invalid parameters`,
333
+ 401: `Unauthorized - missing credentials`,
334
+ 403: `Forbidden - insufficient permissions`,
335
+ 404: `Mentor not found`,
336
+ 500: `Internal server error`,
337
+ },
338
+ });
339
+ }
220
340
  /**
221
341
  * List recommendation prompts for a platform
222
342
  * Get all recommendation prompts for a specific platform. Optionally filter by SPA URL or recommendation type.
@@ -299,6 +419,88 @@ export class AiSearchService {
299
419
  },
300
420
  });
301
421
  }
422
+ /**
423
+ * List recommendation prompts for a platform
424
+ * Get all recommendation prompts for a specific platform. Optionally filter by SPA URL or recommendation type.
425
+ * @returns PlatformPromptResponse
426
+ * @throws ApiError
427
+ */
428
+ public static listPlatformPrompts2(): CancelablePromise<Array<PlatformPromptResponse>> {
429
+ return __request(OpenAPI, {
430
+ method: 'GET',
431
+ url: '/api/ai-search/recommendation/prompts/',
432
+ errors: {
433
+ 400: `Invalid parameters`,
434
+ 401: `Authentication required`,
435
+ 403: `Admin permissions required`,
436
+ },
437
+ });
438
+ }
439
+ /**
440
+ * Create a new recommendation prompt
441
+ * Create a new recommendation prompt for a platform and SPA.
442
+ * @returns PlatformPromptResponse
443
+ * @throws ApiError
444
+ */
445
+ public static createPlatformPrompt2({
446
+ requestBody,
447
+ }: {
448
+ requestBody?: PlatformPrompt,
449
+ }): CancelablePromise<PlatformPromptResponse> {
450
+ return __request(OpenAPI, {
451
+ method: 'POST',
452
+ url: '/api/ai-search/recommendation/prompts/',
453
+ body: requestBody,
454
+ mediaType: 'application/json',
455
+ errors: {
456
+ 400: `Invalid data`,
457
+ 401: `Authentication required`,
458
+ 403: `Admin permissions required`,
459
+ 409: `Prompt already exists for this combination`,
460
+ },
461
+ });
462
+ }
463
+ /**
464
+ * Update an existing recommendation prompt
465
+ * Update an existing prompt by ID. Must provide platform_key to verify ownership.
466
+ * @returns PlatformPromptResponse
467
+ * @throws ApiError
468
+ */
469
+ public static updatePlatformPrompt2({
470
+ requestBody,
471
+ }: {
472
+ requestBody?: PlatformPrompt,
473
+ }): CancelablePromise<PlatformPromptResponse> {
474
+ return __request(OpenAPI, {
475
+ method: 'PUT',
476
+ url: '/api/ai-search/recommendation/prompts/',
477
+ body: requestBody,
478
+ mediaType: 'application/json',
479
+ errors: {
480
+ 400: `Invalid data`,
481
+ 401: `Authentication required`,
482
+ 403: `Admin permissions required or platform mismatch`,
483
+ 404: `Prompt not found`,
484
+ },
485
+ });
486
+ }
487
+ /**
488
+ * Delete a recommendation prompt
489
+ * Delete a recommendation prompt by ID. Must provide platform_key to verify ownership. This permanently removes the prompt.
490
+ * @returns void
491
+ * @throws ApiError
492
+ */
493
+ public static deletePlatformPrompt2(): CancelablePromise<void> {
494
+ return __request(OpenAPI, {
495
+ method: 'DELETE',
496
+ url: '/api/ai-search/recommendation/prompts/',
497
+ errors: {
498
+ 401: `Authentication required`,
499
+ 403: `Admin permissions required or platform mismatch`,
500
+ 404: `Prompt not found`,
501
+ },
502
+ });
503
+ }
302
504
  /**
303
505
  * Generate AI-driven course recommendations
304
506
  *
@@ -331,7 +533,6 @@ export class AiSearchService {
331
533
  * @throws ApiError
332
534
  */
333
535
  public static v2CourseRecommendations({
334
- platformKey,
335
536
  assessmentId,
336
537
  contextType,
337
538
  difficultyLevels,
@@ -343,6 +544,8 @@ export class AiSearchService {
343
544
  limit = 5,
344
545
  page = 1,
345
546
  pageSize = 10,
547
+ platformKey,
548
+ platformOrg,
346
549
  rankingPrompt,
347
550
  rankingStrategy,
348
551
  recommendationType = 'courses',
@@ -352,10 +555,6 @@ export class AiSearchService {
352
555
  useLlmRanking = false,
353
556
  useRagSearch = true,
354
557
  }: {
355
- /**
356
- * Platform key for tenant-scoped recommendations
357
- */
358
- platformKey: string,
359
558
  /**
360
559
  * Assessment ID if triggered by assessment completion
361
560
  */
@@ -400,6 +599,14 @@ export class AiSearchService {
400
599
  * Number of recommendations per page (max 100)
401
600
  */
402
601
  pageSize?: number,
602
+ /**
603
+ * Platform key for tenant-scoped recommendations
604
+ */
605
+ platformKey?: string,
606
+ /**
607
+ * Platform org identifier (optional - avoids database lookup if provided)
608
+ */
609
+ platformOrg?: string | null,
403
610
  /**
404
611
  * Custom prompt for LLM ranking (only if ranking_strategy='custom'). Define how the LLM should evaluate and order the recommendations.
405
612
  */
@@ -414,7 +621,7 @@ export class AiSearchService {
414
621
  */
415
622
  rankingStrategy?: 'relevance' | 'difficulty' | 'personalized' | 'custom',
416
623
  /**
417
- * Type of resource to recommend (catalog items or mentors)
624
+ * Type of resource to recommend. Catalog types (courses/programs/resources/pathways) will use the platform's 'catalog' prompt category if configured.
418
625
  *
419
626
  * * `mentors` - Mentor Recommendations
420
627
  * * `courses` - Course Recommendations
@@ -460,6 +667,7 @@ export class AiSearchService {
460
667
  'page': page,
461
668
  'page_size': pageSize,
462
669
  'platform_key': platformKey,
670
+ 'platform_org': platformOrg,
463
671
  'ranking_prompt': rankingPrompt,
464
672
  'ranking_strategy': rankingStrategy,
465
673
  'recommendation_type': recommendationType,