lumnisai 0.1.2 → 0.1.4

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/index.cjs CHANGED
@@ -559,6 +559,136 @@ class ResponsesResource {
559
559
  async listArtifacts(responseId, params) {
560
560
  return this.http.get(`/responses/${responseId}/artifacts`, { params });
561
561
  }
562
+ /**
563
+ * Submit feedback for an active response
564
+ * @param responseId - The response ID
565
+ * @param request - Feedback request details
566
+ */
567
+ async createFeedback(responseId, request) {
568
+ return this.http.post(`/responses/${responseId}/feedback`, request);
569
+ }
570
+ /**
571
+ * List all feedback for a response (consumed and unconsumed)
572
+ * @param responseId - The response ID
573
+ * @param options - Optional parameters
574
+ * @param options.progressId - Optional progress ID to filter feedback
575
+ */
576
+ async listFeedback(responseId, options) {
577
+ const queryParams = {};
578
+ if (options?.progressId)
579
+ queryParams.progress_id = options.progressId;
580
+ return this.http.get(`/responses/${responseId}/feedback`, { params: queryParams });
581
+ }
582
+ }
583
+
584
+ class SkillsResource {
585
+ constructor(http) {
586
+ this.http = http;
587
+ }
588
+ /**
589
+ * Create a new skill guideline
590
+ * @param skillData - Skill guideline data
591
+ * @param options - Optional parameters
592
+ * @param options.userId - Optional user ID for skill ownership
593
+ */
594
+ async create(skillData, options) {
595
+ const params = {};
596
+ if (options?.userId) {
597
+ params.user_id = options.userId;
598
+ }
599
+ return this.http.post("/skills", skillData, { params });
600
+ }
601
+ /**
602
+ * List skill guidelines with optional filtering
603
+ * @param params - Optional filter parameters
604
+ * @param params.category - Filter by skill category
605
+ * @param params.isActive - Filter by active status
606
+ * @param params.page - Page number for pagination
607
+ * @param params.pageSize - Number of items per page
608
+ */
609
+ async list(params) {
610
+ const queryParams = {};
611
+ if (params?.category)
612
+ queryParams.category = params.category;
613
+ if (params?.isActive !== void 0)
614
+ queryParams.is_active = params.isActive;
615
+ if (params?.page)
616
+ queryParams.page = params.page;
617
+ if (params?.pageSize)
618
+ queryParams.page_size = params.pageSize;
619
+ return this.http.get("/skills", { params: queryParams });
620
+ }
621
+ /**
622
+ * Get a skill guideline by ID
623
+ * @param skillId - The skill ID
624
+ */
625
+ async get(skillId) {
626
+ return this.http.get(`/skills/${skillId}`);
627
+ }
628
+ /**
629
+ * Update a skill guideline
630
+ * @param skillId - The skill ID
631
+ * @param updates - Fields to update
632
+ */
633
+ async update(skillId, updates) {
634
+ return this.http.put(`/skills/${skillId}`, updates);
635
+ }
636
+ /**
637
+ * Delete a skill guideline
638
+ * @param skillId - The skill ID
639
+ */
640
+ async delete(skillId) {
641
+ await this.http.delete(`/skills/${skillId}`);
642
+ }
643
+ /**
644
+ * Create a skill usage record
645
+ * @param usageData - Skill usage data
646
+ */
647
+ async createUsage(usageData) {
648
+ return this.http.post("/skills/usage", usageData);
649
+ }
650
+ /**
651
+ * List skill usage records
652
+ * @param params - Optional filter parameters
653
+ * @param params.skillId - Filter by skill ID
654
+ * @param params.responseId - Filter by response ID
655
+ * @param params.page - Page number for pagination
656
+ * @param params.pageSize - Number of items per page
657
+ */
658
+ async listUsage(params) {
659
+ const queryParams = {};
660
+ if (params?.skillId)
661
+ queryParams.skill_id = params.skillId;
662
+ if (params?.responseId)
663
+ queryParams.response_id = params.responseId;
664
+ if (params?.page)
665
+ queryParams.page = params.page;
666
+ if (params?.pageSize)
667
+ queryParams.page_size = params.pageSize;
668
+ return this.http.get("/skills/usage", { params: queryParams });
669
+ }
670
+ /**
671
+ * Update a skill usage record
672
+ * @param usageId - The usage record ID
673
+ * @param updates - Fields to update
674
+ */
675
+ async updateUsage(usageId, updates) {
676
+ return this.http.put(`/skills/usage/${usageId}`, updates);
677
+ }
678
+ /**
679
+ * Get skill effectiveness metrics
680
+ * @param request - Analytics request parameters
681
+ */
682
+ async getAnalytics(request) {
683
+ const queryParams = {};
684
+ if (request?.skillId)
685
+ queryParams.skill_id = request.skillId;
686
+ if (request?.tenantId)
687
+ queryParams.tenant_id = request.tenantId;
688
+ if (request?.daysBack)
689
+ queryParams.days_back = request.daysBack;
690
+ return this.http.get("/skills/analytics", { params: queryParams });
691
+ }
562
692
  }
563
693
 
564
694
  class TenantInfoResource {
@@ -859,6 +989,7 @@ class LumnisClient {
859
989
  integrations;
860
990
  modelPreferences;
861
991
  mcpServers;
992
+ skills;
862
993
  _scopedUserId;
863
994
  _defaultScope;
864
995
  constructor(options = {}) {
@@ -888,6 +1019,7 @@ class LumnisClient {
888
1019
  this.integrations = new IntegrationsResource(this.http);
889
1020
  this.modelPreferences = new ModelPreferencesResource(this.http);
890
1021
  this.mcpServers = new MCPServersResource(this.http);
1022
+ this.skills = new SkillsResource(this.http);
891
1023
  }
892
1024
  forUser(userId) {
893
1025
  return new LumnisClient({
@@ -1102,6 +1234,22 @@ class LumnisClient {
1102
1234
  async testMcpServer(serverId) {
1103
1235
  return this.mcpServers.testConnection(serverId);
1104
1236
  }
1237
+ // Skills methods
1238
+ async createSkill(skillData, options) {
1239
+ return this.skills.create(skillData, options);
1240
+ }
1241
+ async getSkill(skillId) {
1242
+ return this.skills.get(skillId);
1243
+ }
1244
+ async listSkills(params) {
1245
+ return this.skills.list(params);
1246
+ }
1247
+ async updateSkill(skillId, updates) {
1248
+ return this.skills.update(skillId, updates);
1249
+ }
1250
+ async deleteSkill(skillId) {
1251
+ return this.skills.delete(skillId);
1252
+ }
1105
1253
  }
1106
1254
  function createSimpleProgressCallback() {
1107
1255
  let lastStatus;
package/dist/index.d.cts CHANGED
@@ -270,6 +270,7 @@ interface AgentConfig {
270
270
  useCognitiveTools?: boolean;
271
271
  enableTaskValidation?: boolean;
272
272
  generateComprehensiveOutput?: boolean;
273
+ skillIds?: string[];
273
274
  }
274
275
  interface ModelOverrides {
275
276
  [key: string]: string;
@@ -348,6 +349,143 @@ interface ResponseListResponse {
348
349
  limit: number;
349
350
  offset: number;
350
351
  }
352
+ type FeedbackType = 'suggestion' | 'correction' | 'guidance';
353
+ interface CreateFeedbackRequest {
354
+ feedbackText: string;
355
+ feedbackType?: FeedbackType;
356
+ userId?: string;
357
+ progressId?: string;
358
+ toolCallId?: string;
359
+ toolArgsUpdate?: Record<string, any>;
360
+ }
361
+ interface CreateFeedbackResponse {
362
+ feedbackId: UUID;
363
+ createdAt: string;
364
+ }
365
+ interface FeedbackObject {
366
+ feedbackId: UUID;
367
+ responseId: UUID;
368
+ tenantId: UUID;
369
+ userId?: UUID | null;
370
+ feedbackText: string;
371
+ feedbackType: FeedbackType;
372
+ progressId?: UUID | null;
373
+ toolCallId?: string | null;
374
+ toolArgsUpdate?: Record<string, any> | null;
375
+ isConsumed: boolean;
376
+ consumedAt?: string | null;
377
+ createdAt: string;
378
+ }
379
+ interface FeedbackListResponse {
380
+ responseId: UUID;
381
+ progressIdFilter?: UUID | null;
382
+ totalFeedback: number;
383
+ consumedCount: number;
384
+ unconsumedCount: number;
385
+ feedback: FeedbackObject[];
386
+ note: string;
387
+ }
388
+
389
+ interface SkillGuidelineBase {
390
+ name: string;
391
+ description: string;
392
+ content: string;
393
+ category?: string;
394
+ version: string;
395
+ }
396
+ interface SkillGuidelineCreate extends SkillGuidelineBase {
397
+ }
398
+ interface SkillGuidelineUpdate {
399
+ name?: string;
400
+ description?: string;
401
+ content?: string;
402
+ category?: string;
403
+ version?: string;
404
+ isActive?: boolean;
405
+ }
406
+ interface SkillGuidelineResponse extends SkillGuidelineBase {
407
+ id: string;
408
+ tenantId?: string;
409
+ userId?: string;
410
+ isActive: boolean;
411
+ createdAt: string;
412
+ updatedAt: string;
413
+ }
414
+ interface SkillGuidelineListResponse {
415
+ skills: SkillGuidelineResponse[];
416
+ total: number;
417
+ page: number;
418
+ pageSize: number;
419
+ }
420
+ interface SkillUsageBase {
421
+ responseId: string;
422
+ skillId: string;
423
+ skillName: string;
424
+ }
425
+ interface SkillUsageCreate extends SkillUsageBase {
426
+ tenantId: string;
427
+ userId?: string;
428
+ relevanceScore?: number;
429
+ }
430
+ interface SkillUsageUpdate {
431
+ plannerSelected?: boolean;
432
+ usageReasoning?: string;
433
+ priority?: number;
434
+ executionOutcome?: 'success' | 'partial' | 'failed' | 'cancelled' | 'not_executed';
435
+ effectivenessScore?: number;
436
+ feedbackNotes?: string;
437
+ }
438
+ interface SkillUsageResponse extends SkillUsageBase {
439
+ id: string;
440
+ tenantId: string;
441
+ userId?: string;
442
+ relevanceScore?: number;
443
+ retrievedAt?: string;
444
+ plannerSelected: boolean;
445
+ usageReasoning?: string;
446
+ priority?: number;
447
+ selectedAt?: string;
448
+ executionOutcome?: string;
449
+ effectivenessScore?: number;
450
+ feedbackNotes?: string;
451
+ executedAt?: string;
452
+ createdAt: string;
453
+ updatedAt: string;
454
+ }
455
+ interface SkillUsageListResponse {
456
+ usages: SkillUsageResponse[];
457
+ total: number;
458
+ page: number;
459
+ pageSize: number;
460
+ }
461
+ interface SkillEffectivenessMetrics {
462
+ skillId?: string;
463
+ totalRetrievals: number;
464
+ totalSelections: number;
465
+ successfulExecutions: number;
466
+ selectionRate: number;
467
+ successRate: number;
468
+ avgEffectiveness: number;
469
+ usageFrequency: number;
470
+ }
471
+ interface SkillAnalyticsRequest {
472
+ skillId?: string;
473
+ tenantId?: string;
474
+ daysBack?: number;
475
+ }
476
+ interface SelectedSkill {
477
+ skillId: string;
478
+ skillName: string;
479
+ relevanceScore: number;
480
+ usageReasoning: string;
481
+ priority: number;
482
+ }
483
+ interface SkillRetrievalMetadata {
484
+ skillId: string;
485
+ skillName: string;
486
+ relevanceScore: number;
487
+ content: string;
488
+ }
351
489
 
352
490
  interface ThreadObject {
353
491
  threadId: UUID;
@@ -857,6 +995,95 @@ declare class ResponsesResource {
857
995
  * List artifacts generated by a response
858
996
  */
859
997
  listArtifacts(responseId: string, params?: PaginationParams): Promise<ArtifactsListResponse>;
998
+ /**
999
+ * Submit feedback for an active response
1000
+ * @param responseId - The response ID
1001
+ * @param request - Feedback request details
1002
+ */
1003
+ createFeedback(responseId: string, request: CreateFeedbackRequest): Promise<CreateFeedbackResponse>;
1004
+ /**
1005
+ * List all feedback for a response (consumed and unconsumed)
1006
+ * @param responseId - The response ID
1007
+ * @param options - Optional parameters
1008
+ * @param options.progressId - Optional progress ID to filter feedback
1009
+ */
1010
+ listFeedback(responseId: string, options?: {
1011
+ progressId?: string;
1012
+ }): Promise<FeedbackListResponse>;
1013
+ }
1014
+
1015
+ declare class SkillsResource {
1016
+ private readonly http;
1017
+ constructor(http: Http);
1018
+ /**
1019
+ * Create a new skill guideline
1020
+ * @param skillData - Skill guideline data
1021
+ * @param options - Optional parameters
1022
+ * @param options.userId - Optional user ID for skill ownership
1023
+ */
1024
+ create(skillData: SkillGuidelineCreate, options?: {
1025
+ userId?: string;
1026
+ }): Promise<SkillGuidelineResponse>;
1027
+ /**
1028
+ * List skill guidelines with optional filtering
1029
+ * @param params - Optional filter parameters
1030
+ * @param params.category - Filter by skill category
1031
+ * @param params.isActive - Filter by active status
1032
+ * @param params.page - Page number for pagination
1033
+ * @param params.pageSize - Number of items per page
1034
+ */
1035
+ list(params?: {
1036
+ category?: string;
1037
+ isActive?: boolean;
1038
+ page?: number;
1039
+ pageSize?: number;
1040
+ }): Promise<SkillGuidelineListResponse>;
1041
+ /**
1042
+ * Get a skill guideline by ID
1043
+ * @param skillId - The skill ID
1044
+ */
1045
+ get(skillId: string): Promise<SkillGuidelineResponse>;
1046
+ /**
1047
+ * Update a skill guideline
1048
+ * @param skillId - The skill ID
1049
+ * @param updates - Fields to update
1050
+ */
1051
+ update(skillId: string, updates: SkillGuidelineUpdate): Promise<SkillGuidelineResponse>;
1052
+ /**
1053
+ * Delete a skill guideline
1054
+ * @param skillId - The skill ID
1055
+ */
1056
+ delete(skillId: string): Promise<void>;
1057
+ /**
1058
+ * Create a skill usage record
1059
+ * @param usageData - Skill usage data
1060
+ */
1061
+ createUsage(usageData: SkillUsageCreate): Promise<SkillUsageResponse>;
1062
+ /**
1063
+ * List skill usage records
1064
+ * @param params - Optional filter parameters
1065
+ * @param params.skillId - Filter by skill ID
1066
+ * @param params.responseId - Filter by response ID
1067
+ * @param params.page - Page number for pagination
1068
+ * @param params.pageSize - Number of items per page
1069
+ */
1070
+ listUsage(params?: {
1071
+ skillId?: string;
1072
+ responseId?: string;
1073
+ page?: number;
1074
+ pageSize?: number;
1075
+ }): Promise<SkillUsageListResponse>;
1076
+ /**
1077
+ * Update a skill usage record
1078
+ * @param usageId - The usage record ID
1079
+ * @param updates - Fields to update
1080
+ */
1081
+ updateUsage(usageId: string, updates: SkillUsageUpdate): Promise<SkillUsageResponse>;
1082
+ /**
1083
+ * Get skill effectiveness metrics
1084
+ * @param request - Analytics request parameters
1085
+ */
1086
+ getAnalytics(request?: SkillAnalyticsRequest): Promise<SkillEffectivenessMetrics>;
860
1087
  }
861
1088
 
862
1089
  declare class TenantInfoResource {
@@ -973,6 +1200,7 @@ declare class LumnisClient {
973
1200
  readonly integrations: IntegrationsResource;
974
1201
  readonly modelPreferences: ModelPreferencesResource;
975
1202
  readonly mcpServers: MCPServersResource;
1203
+ readonly skills: SkillsResource;
976
1204
  private readonly _scopedUserId?;
977
1205
  private readonly _defaultScope;
978
1206
  constructor(options?: LumnisClientOptions);
@@ -1019,6 +1247,13 @@ declare class LumnisClient {
1019
1247
  deleteMcpServer(serverId: string): Promise<void>;
1020
1248
  listMcpServerTools(serverId: string): Promise<MCPToolListResponse>;
1021
1249
  testMcpServer(serverId: string): Promise<TestConnectionResponse>;
1250
+ createSkill(skillData: SkillGuidelineCreate, options?: {
1251
+ userId?: string;
1252
+ }): Promise<SkillGuidelineResponse>;
1253
+ getSkill(skillId: string): Promise<SkillGuidelineResponse>;
1254
+ listSkills(params?: Parameters<SkillsResource['list']>[0]): Promise<SkillGuidelineListResponse>;
1255
+ updateSkill(skillId: string, updates: SkillGuidelineUpdate): Promise<SkillGuidelineResponse>;
1256
+ deleteSkill(skillId: string): Promise<void>;
1022
1257
  }
1023
1258
 
1024
1259
  interface LumnisErrorOptions {
@@ -1108,4 +1343,4 @@ declare class ProgressTracker {
1108
1343
  }
1109
1344
 
1110
1345
  export = LumnisClient;
1111
- export { type AgentConfig, type ApiKeyMode, type ApiKeyModeRequest, type ApiKeyModeResponse, type ApiProvider, type AppEnabledResponse, type AppsListResponse, type ArtifactObject, type ArtifactsListResponse, AuthenticationError, type BaseResource, type BillingStatus, type BulkDeleteRequest, type BulkDeleteResponse, type BulkUploadResponse, type CancelResponseResponse, type ChunkingStrategy, type ConnectionCallbackRequest, type ConnectionCallbackResponse, type ConnectionInfo, type ConnectionStatus, type ConnectionStatusResponse, type ContentType, type CreateResponseRequest, type CreateResponseResponse, type CreateThreadRequest, type DatabaseStatus, type DeleteApiKeyResponse, type DisconnectRequest, type DisconnectResponse, type DuplicateHandling, type Email, type ErrorResponse, ExternalAPIKeysResource, type ExternalApiKeyResponse, type FileAttachment, type FileChunk, type FileContentResponse, type FileListResponse, type FileMetadata, type FileScope, type FileScopeUpdateRequest, type FileSearchRequest, type FileSearchResponse, type FileSearchResult, type FileStatisticsResponse, type FileUploadResponse, FilesResource, type GetToolsRequest, type GetToolsResponse, type InitiateConnectionRequest, type InitiateConnectionResponse, IntegrationsResource, InternalServerError, LocalFileNotSupportedError, LumnisClient, type LumnisClientOptions, LumnisError, type LumnisErrorOptions, type MCPScope, type MCPServerCreateRequest, type MCPServerListResponse, type MCPServerResponse, type MCPServerUpdateRequest, MCPServersResource, type MCPToolListResponse, type MCPToolResponse, type MCPTransport, type Message, type ModelAvailability, type ModelOverrides, type ModelPreferenceCreate, type ModelPreferencesBulkUpdate, ModelPreferencesResource, type ModelProvider, type ModelType, NotFoundError, type PaginationInfo, type PaginationParams, type Plan, type ProcessingStatus, type ProcessingStatusResponse, type ProgressEntry, ProgressTracker, RateLimitError, type RateLimitErrorOptions, type ResponseArtifact, type ResponseListResponse, type ResponseObject, type ResponseStatus, ResponsesResource, type Scope, type StoreApiKeyRequest, type TenantDetailsResponse, TenantInfoResource, type TenantModelPreference, type TenantModelPreferencesResponse, type TestConnectionResponse, type ThreadListResponse, type ThreadObject, type ThreadResponsesParams, ThreadsResource, type ToolInfo, type UUID, type UpdateAppStatusResponse, type UpdateThreadRequest, type UserConnectionsResponse, type UserCreateRequest, type UserDeleteResponse, type UserIdentifier, type UserListResponse, type UserResponse, type UserUpdateRequest, UsersResource, ValidationError, displayProgress, formatProgressEntry };
1346
+ export { type AgentConfig, type ApiKeyMode, type ApiKeyModeRequest, type ApiKeyModeResponse, type ApiProvider, type AppEnabledResponse, type AppsListResponse, type ArtifactObject, type ArtifactsListResponse, AuthenticationError, type BaseResource, type BillingStatus, type BulkDeleteRequest, type BulkDeleteResponse, type BulkUploadResponse, type CancelResponseResponse, type ChunkingStrategy, type ConnectionCallbackRequest, type ConnectionCallbackResponse, type ConnectionInfo, type ConnectionStatus, type ConnectionStatusResponse, type ContentType, type CreateFeedbackRequest, type CreateFeedbackResponse, type CreateResponseRequest, type CreateResponseResponse, type CreateThreadRequest, type DatabaseStatus, type DeleteApiKeyResponse, type DisconnectRequest, type DisconnectResponse, type DuplicateHandling, type Email, type ErrorResponse, ExternalAPIKeysResource, type ExternalApiKeyResponse, type FeedbackListResponse, type FeedbackObject, type FeedbackType, type FileAttachment, type FileChunk, type FileContentResponse, type FileListResponse, type FileMetadata, type FileScope, type FileScopeUpdateRequest, type FileSearchRequest, type FileSearchResponse, type FileSearchResult, type FileStatisticsResponse, type FileUploadResponse, FilesResource, type GetToolsRequest, type GetToolsResponse, type InitiateConnectionRequest, type InitiateConnectionResponse, IntegrationsResource, InternalServerError, LocalFileNotSupportedError, LumnisClient, type LumnisClientOptions, LumnisError, type LumnisErrorOptions, type MCPScope, type MCPServerCreateRequest, type MCPServerListResponse, type MCPServerResponse, type MCPServerUpdateRequest, MCPServersResource, type MCPToolListResponse, type MCPToolResponse, type MCPTransport, type Message, type ModelAvailability, type ModelOverrides, type ModelPreferenceCreate, type ModelPreferencesBulkUpdate, ModelPreferencesResource, type ModelProvider, type ModelType, NotFoundError, type PaginationInfo, type PaginationParams, type Plan, type ProcessingStatus, type ProcessingStatusResponse, type ProgressEntry, ProgressTracker, RateLimitError, type RateLimitErrorOptions, type ResponseArtifact, type ResponseListResponse, type ResponseObject, type ResponseStatus, ResponsesResource, type Scope, type SelectedSkill, type SkillAnalyticsRequest, type SkillEffectivenessMetrics, type SkillGuidelineBase, type SkillGuidelineCreate, type SkillGuidelineListResponse, type SkillGuidelineResponse, type SkillGuidelineUpdate, type SkillRetrievalMetadata, type SkillUsageBase, type SkillUsageCreate, type SkillUsageListResponse, type SkillUsageResponse, type SkillUsageUpdate, SkillsResource, type StoreApiKeyRequest, type TenantDetailsResponse, TenantInfoResource, type TenantModelPreference, type TenantModelPreferencesResponse, type TestConnectionResponse, type ThreadListResponse, type ThreadObject, type ThreadResponsesParams, ThreadsResource, type ToolInfo, type UUID, type UpdateAppStatusResponse, type UpdateThreadRequest, type UserConnectionsResponse, type UserCreateRequest, type UserDeleteResponse, type UserIdentifier, type UserListResponse, type UserResponse, type UserUpdateRequest, UsersResource, ValidationError, displayProgress, formatProgressEntry };
package/dist/index.d.mts CHANGED
@@ -270,6 +270,7 @@ interface AgentConfig {
270
270
  useCognitiveTools?: boolean;
271
271
  enableTaskValidation?: boolean;
272
272
  generateComprehensiveOutput?: boolean;
273
+ skillIds?: string[];
273
274
  }
274
275
  interface ModelOverrides {
275
276
  [key: string]: string;
@@ -348,6 +349,143 @@ interface ResponseListResponse {
348
349
  limit: number;
349
350
  offset: number;
350
351
  }
352
+ type FeedbackType = 'suggestion' | 'correction' | 'guidance';
353
+ interface CreateFeedbackRequest {
354
+ feedbackText: string;
355
+ feedbackType?: FeedbackType;
356
+ userId?: string;
357
+ progressId?: string;
358
+ toolCallId?: string;
359
+ toolArgsUpdate?: Record<string, any>;
360
+ }
361
+ interface CreateFeedbackResponse {
362
+ feedbackId: UUID;
363
+ createdAt: string;
364
+ }
365
+ interface FeedbackObject {
366
+ feedbackId: UUID;
367
+ responseId: UUID;
368
+ tenantId: UUID;
369
+ userId?: UUID | null;
370
+ feedbackText: string;
371
+ feedbackType: FeedbackType;
372
+ progressId?: UUID | null;
373
+ toolCallId?: string | null;
374
+ toolArgsUpdate?: Record<string, any> | null;
375
+ isConsumed: boolean;
376
+ consumedAt?: string | null;
377
+ createdAt: string;
378
+ }
379
+ interface FeedbackListResponse {
380
+ responseId: UUID;
381
+ progressIdFilter?: UUID | null;
382
+ totalFeedback: number;
383
+ consumedCount: number;
384
+ unconsumedCount: number;
385
+ feedback: FeedbackObject[];
386
+ note: string;
387
+ }
388
+
389
+ interface SkillGuidelineBase {
390
+ name: string;
391
+ description: string;
392
+ content: string;
393
+ category?: string;
394
+ version: string;
395
+ }
396
+ interface SkillGuidelineCreate extends SkillGuidelineBase {
397
+ }
398
+ interface SkillGuidelineUpdate {
399
+ name?: string;
400
+ description?: string;
401
+ content?: string;
402
+ category?: string;
403
+ version?: string;
404
+ isActive?: boolean;
405
+ }
406
+ interface SkillGuidelineResponse extends SkillGuidelineBase {
407
+ id: string;
408
+ tenantId?: string;
409
+ userId?: string;
410
+ isActive: boolean;
411
+ createdAt: string;
412
+ updatedAt: string;
413
+ }
414
+ interface SkillGuidelineListResponse {
415
+ skills: SkillGuidelineResponse[];
416
+ total: number;
417
+ page: number;
418
+ pageSize: number;
419
+ }
420
+ interface SkillUsageBase {
421
+ responseId: string;
422
+ skillId: string;
423
+ skillName: string;
424
+ }
425
+ interface SkillUsageCreate extends SkillUsageBase {
426
+ tenantId: string;
427
+ userId?: string;
428
+ relevanceScore?: number;
429
+ }
430
+ interface SkillUsageUpdate {
431
+ plannerSelected?: boolean;
432
+ usageReasoning?: string;
433
+ priority?: number;
434
+ executionOutcome?: 'success' | 'partial' | 'failed' | 'cancelled' | 'not_executed';
435
+ effectivenessScore?: number;
436
+ feedbackNotes?: string;
437
+ }
438
+ interface SkillUsageResponse extends SkillUsageBase {
439
+ id: string;
440
+ tenantId: string;
441
+ userId?: string;
442
+ relevanceScore?: number;
443
+ retrievedAt?: string;
444
+ plannerSelected: boolean;
445
+ usageReasoning?: string;
446
+ priority?: number;
447
+ selectedAt?: string;
448
+ executionOutcome?: string;
449
+ effectivenessScore?: number;
450
+ feedbackNotes?: string;
451
+ executedAt?: string;
452
+ createdAt: string;
453
+ updatedAt: string;
454
+ }
455
+ interface SkillUsageListResponse {
456
+ usages: SkillUsageResponse[];
457
+ total: number;
458
+ page: number;
459
+ pageSize: number;
460
+ }
461
+ interface SkillEffectivenessMetrics {
462
+ skillId?: string;
463
+ totalRetrievals: number;
464
+ totalSelections: number;
465
+ successfulExecutions: number;
466
+ selectionRate: number;
467
+ successRate: number;
468
+ avgEffectiveness: number;
469
+ usageFrequency: number;
470
+ }
471
+ interface SkillAnalyticsRequest {
472
+ skillId?: string;
473
+ tenantId?: string;
474
+ daysBack?: number;
475
+ }
476
+ interface SelectedSkill {
477
+ skillId: string;
478
+ skillName: string;
479
+ relevanceScore: number;
480
+ usageReasoning: string;
481
+ priority: number;
482
+ }
483
+ interface SkillRetrievalMetadata {
484
+ skillId: string;
485
+ skillName: string;
486
+ relevanceScore: number;
487
+ content: string;
488
+ }
351
489
 
352
490
  interface ThreadObject {
353
491
  threadId: UUID;
@@ -857,6 +995,95 @@ declare class ResponsesResource {
857
995
  * List artifacts generated by a response
858
996
  */
859
997
  listArtifacts(responseId: string, params?: PaginationParams): Promise<ArtifactsListResponse>;
998
+ /**
999
+ * Submit feedback for an active response
1000
+ * @param responseId - The response ID
1001
+ * @param request - Feedback request details
1002
+ */
1003
+ createFeedback(responseId: string, request: CreateFeedbackRequest): Promise<CreateFeedbackResponse>;
1004
+ /**
1005
+ * List all feedback for a response (consumed and unconsumed)
1006
+ * @param responseId - The response ID
1007
+ * @param options - Optional parameters
1008
+ * @param options.progressId - Optional progress ID to filter feedback
1009
+ */
1010
+ listFeedback(responseId: string, options?: {
1011
+ progressId?: string;
1012
+ }): Promise<FeedbackListResponse>;
1013
+ }
1014
+
1015
+ declare class SkillsResource {
1016
+ private readonly http;
1017
+ constructor(http: Http);
1018
+ /**
1019
+ * Create a new skill guideline
1020
+ * @param skillData - Skill guideline data
1021
+ * @param options - Optional parameters
1022
+ * @param options.userId - Optional user ID for skill ownership
1023
+ */
1024
+ create(skillData: SkillGuidelineCreate, options?: {
1025
+ userId?: string;
1026
+ }): Promise<SkillGuidelineResponse>;
1027
+ /**
1028
+ * List skill guidelines with optional filtering
1029
+ * @param params - Optional filter parameters
1030
+ * @param params.category - Filter by skill category
1031
+ * @param params.isActive - Filter by active status
1032
+ * @param params.page - Page number for pagination
1033
+ * @param params.pageSize - Number of items per page
1034
+ */
1035
+ list(params?: {
1036
+ category?: string;
1037
+ isActive?: boolean;
1038
+ page?: number;
1039
+ pageSize?: number;
1040
+ }): Promise<SkillGuidelineListResponse>;
1041
+ /**
1042
+ * Get a skill guideline by ID
1043
+ * @param skillId - The skill ID
1044
+ */
1045
+ get(skillId: string): Promise<SkillGuidelineResponse>;
1046
+ /**
1047
+ * Update a skill guideline
1048
+ * @param skillId - The skill ID
1049
+ * @param updates - Fields to update
1050
+ */
1051
+ update(skillId: string, updates: SkillGuidelineUpdate): Promise<SkillGuidelineResponse>;
1052
+ /**
1053
+ * Delete a skill guideline
1054
+ * @param skillId - The skill ID
1055
+ */
1056
+ delete(skillId: string): Promise<void>;
1057
+ /**
1058
+ * Create a skill usage record
1059
+ * @param usageData - Skill usage data
1060
+ */
1061
+ createUsage(usageData: SkillUsageCreate): Promise<SkillUsageResponse>;
1062
+ /**
1063
+ * List skill usage records
1064
+ * @param params - Optional filter parameters
1065
+ * @param params.skillId - Filter by skill ID
1066
+ * @param params.responseId - Filter by response ID
1067
+ * @param params.page - Page number for pagination
1068
+ * @param params.pageSize - Number of items per page
1069
+ */
1070
+ listUsage(params?: {
1071
+ skillId?: string;
1072
+ responseId?: string;
1073
+ page?: number;
1074
+ pageSize?: number;
1075
+ }): Promise<SkillUsageListResponse>;
1076
+ /**
1077
+ * Update a skill usage record
1078
+ * @param usageId - The usage record ID
1079
+ * @param updates - Fields to update
1080
+ */
1081
+ updateUsage(usageId: string, updates: SkillUsageUpdate): Promise<SkillUsageResponse>;
1082
+ /**
1083
+ * Get skill effectiveness metrics
1084
+ * @param request - Analytics request parameters
1085
+ */
1086
+ getAnalytics(request?: SkillAnalyticsRequest): Promise<SkillEffectivenessMetrics>;
860
1087
  }
861
1088
 
862
1089
  declare class TenantInfoResource {
@@ -973,6 +1200,7 @@ declare class LumnisClient {
973
1200
  readonly integrations: IntegrationsResource;
974
1201
  readonly modelPreferences: ModelPreferencesResource;
975
1202
  readonly mcpServers: MCPServersResource;
1203
+ readonly skills: SkillsResource;
976
1204
  private readonly _scopedUserId?;
977
1205
  private readonly _defaultScope;
978
1206
  constructor(options?: LumnisClientOptions);
@@ -1019,6 +1247,13 @@ declare class LumnisClient {
1019
1247
  deleteMcpServer(serverId: string): Promise<void>;
1020
1248
  listMcpServerTools(serverId: string): Promise<MCPToolListResponse>;
1021
1249
  testMcpServer(serverId: string): Promise<TestConnectionResponse>;
1250
+ createSkill(skillData: SkillGuidelineCreate, options?: {
1251
+ userId?: string;
1252
+ }): Promise<SkillGuidelineResponse>;
1253
+ getSkill(skillId: string): Promise<SkillGuidelineResponse>;
1254
+ listSkills(params?: Parameters<SkillsResource['list']>[0]): Promise<SkillGuidelineListResponse>;
1255
+ updateSkill(skillId: string, updates: SkillGuidelineUpdate): Promise<SkillGuidelineResponse>;
1256
+ deleteSkill(skillId: string): Promise<void>;
1022
1257
  }
1023
1258
 
1024
1259
  interface LumnisErrorOptions {
@@ -1107,4 +1342,4 @@ declare class ProgressTracker {
1107
1342
  reset(): void;
1108
1343
  }
1109
1344
 
1110
- export { type AgentConfig, type ApiKeyMode, type ApiKeyModeRequest, type ApiKeyModeResponse, type ApiProvider, type AppEnabledResponse, type AppsListResponse, type ArtifactObject, type ArtifactsListResponse, AuthenticationError, type BaseResource, type BillingStatus, type BulkDeleteRequest, type BulkDeleteResponse, type BulkUploadResponse, type CancelResponseResponse, type ChunkingStrategy, type ConnectionCallbackRequest, type ConnectionCallbackResponse, type ConnectionInfo, type ConnectionStatus, type ConnectionStatusResponse, type ContentType, type CreateResponseRequest, type CreateResponseResponse, type CreateThreadRequest, type DatabaseStatus, type DeleteApiKeyResponse, type DisconnectRequest, type DisconnectResponse, type DuplicateHandling, type Email, type ErrorResponse, ExternalAPIKeysResource, type ExternalApiKeyResponse, type FileAttachment, type FileChunk, type FileContentResponse, type FileListResponse, type FileMetadata, type FileScope, type FileScopeUpdateRequest, type FileSearchRequest, type FileSearchResponse, type FileSearchResult, type FileStatisticsResponse, type FileUploadResponse, FilesResource, type GetToolsRequest, type GetToolsResponse, type InitiateConnectionRequest, type InitiateConnectionResponse, IntegrationsResource, InternalServerError, LocalFileNotSupportedError, LumnisClient, type LumnisClientOptions, LumnisError, type LumnisErrorOptions, type MCPScope, type MCPServerCreateRequest, type MCPServerListResponse, type MCPServerResponse, type MCPServerUpdateRequest, MCPServersResource, type MCPToolListResponse, type MCPToolResponse, type MCPTransport, type Message, type ModelAvailability, type ModelOverrides, type ModelPreferenceCreate, type ModelPreferencesBulkUpdate, ModelPreferencesResource, type ModelProvider, type ModelType, NotFoundError, type PaginationInfo, type PaginationParams, type Plan, type ProcessingStatus, type ProcessingStatusResponse, type ProgressEntry, ProgressTracker, RateLimitError, type RateLimitErrorOptions, type ResponseArtifact, type ResponseListResponse, type ResponseObject, type ResponseStatus, ResponsesResource, type Scope, type StoreApiKeyRequest, type TenantDetailsResponse, TenantInfoResource, type TenantModelPreference, type TenantModelPreferencesResponse, type TestConnectionResponse, type ThreadListResponse, type ThreadObject, type ThreadResponsesParams, ThreadsResource, type ToolInfo, type UUID, type UpdateAppStatusResponse, type UpdateThreadRequest, type UserConnectionsResponse, type UserCreateRequest, type UserDeleteResponse, type UserIdentifier, type UserListResponse, type UserResponse, type UserUpdateRequest, UsersResource, ValidationError, LumnisClient as default, displayProgress, formatProgressEntry };
1345
+ export { type AgentConfig, type ApiKeyMode, type ApiKeyModeRequest, type ApiKeyModeResponse, type ApiProvider, type AppEnabledResponse, type AppsListResponse, type ArtifactObject, type ArtifactsListResponse, AuthenticationError, type BaseResource, type BillingStatus, type BulkDeleteRequest, type BulkDeleteResponse, type BulkUploadResponse, type CancelResponseResponse, type ChunkingStrategy, type ConnectionCallbackRequest, type ConnectionCallbackResponse, type ConnectionInfo, type ConnectionStatus, type ConnectionStatusResponse, type ContentType, type CreateFeedbackRequest, type CreateFeedbackResponse, type CreateResponseRequest, type CreateResponseResponse, type CreateThreadRequest, type DatabaseStatus, type DeleteApiKeyResponse, type DisconnectRequest, type DisconnectResponse, type DuplicateHandling, type Email, type ErrorResponse, ExternalAPIKeysResource, type ExternalApiKeyResponse, type FeedbackListResponse, type FeedbackObject, type FeedbackType, type FileAttachment, type FileChunk, type FileContentResponse, type FileListResponse, type FileMetadata, type FileScope, type FileScopeUpdateRequest, type FileSearchRequest, type FileSearchResponse, type FileSearchResult, type FileStatisticsResponse, type FileUploadResponse, FilesResource, type GetToolsRequest, type GetToolsResponse, type InitiateConnectionRequest, type InitiateConnectionResponse, IntegrationsResource, InternalServerError, LocalFileNotSupportedError, LumnisClient, type LumnisClientOptions, LumnisError, type LumnisErrorOptions, type MCPScope, type MCPServerCreateRequest, type MCPServerListResponse, type MCPServerResponse, type MCPServerUpdateRequest, MCPServersResource, type MCPToolListResponse, type MCPToolResponse, type MCPTransport, type Message, type ModelAvailability, type ModelOverrides, type ModelPreferenceCreate, type ModelPreferencesBulkUpdate, ModelPreferencesResource, type ModelProvider, type ModelType, NotFoundError, type PaginationInfo, type PaginationParams, type Plan, type ProcessingStatus, type ProcessingStatusResponse, type ProgressEntry, ProgressTracker, RateLimitError, type RateLimitErrorOptions, type ResponseArtifact, type ResponseListResponse, type ResponseObject, type ResponseStatus, ResponsesResource, type Scope, type SelectedSkill, type SkillAnalyticsRequest, type SkillEffectivenessMetrics, type SkillGuidelineBase, type SkillGuidelineCreate, type SkillGuidelineListResponse, type SkillGuidelineResponse, type SkillGuidelineUpdate, type SkillRetrievalMetadata, type SkillUsageBase, type SkillUsageCreate, type SkillUsageListResponse, type SkillUsageResponse, type SkillUsageUpdate, SkillsResource, type StoreApiKeyRequest, type TenantDetailsResponse, TenantInfoResource, type TenantModelPreference, type TenantModelPreferencesResponse, type TestConnectionResponse, type ThreadListResponse, type ThreadObject, type ThreadResponsesParams, ThreadsResource, type ToolInfo, type UUID, type UpdateAppStatusResponse, type UpdateThreadRequest, type UserConnectionsResponse, type UserCreateRequest, type UserDeleteResponse, type UserIdentifier, type UserListResponse, type UserResponse, type UserUpdateRequest, UsersResource, ValidationError, LumnisClient as default, displayProgress, formatProgressEntry };
package/dist/index.d.ts CHANGED
@@ -270,6 +270,7 @@ interface AgentConfig {
270
270
  useCognitiveTools?: boolean;
271
271
  enableTaskValidation?: boolean;
272
272
  generateComprehensiveOutput?: boolean;
273
+ skillIds?: string[];
273
274
  }
274
275
  interface ModelOverrides {
275
276
  [key: string]: string;
@@ -348,6 +349,143 @@ interface ResponseListResponse {
348
349
  limit: number;
349
350
  offset: number;
350
351
  }
352
+ type FeedbackType = 'suggestion' | 'correction' | 'guidance';
353
+ interface CreateFeedbackRequest {
354
+ feedbackText: string;
355
+ feedbackType?: FeedbackType;
356
+ userId?: string;
357
+ progressId?: string;
358
+ toolCallId?: string;
359
+ toolArgsUpdate?: Record<string, any>;
360
+ }
361
+ interface CreateFeedbackResponse {
362
+ feedbackId: UUID;
363
+ createdAt: string;
364
+ }
365
+ interface FeedbackObject {
366
+ feedbackId: UUID;
367
+ responseId: UUID;
368
+ tenantId: UUID;
369
+ userId?: UUID | null;
370
+ feedbackText: string;
371
+ feedbackType: FeedbackType;
372
+ progressId?: UUID | null;
373
+ toolCallId?: string | null;
374
+ toolArgsUpdate?: Record<string, any> | null;
375
+ isConsumed: boolean;
376
+ consumedAt?: string | null;
377
+ createdAt: string;
378
+ }
379
+ interface FeedbackListResponse {
380
+ responseId: UUID;
381
+ progressIdFilter?: UUID | null;
382
+ totalFeedback: number;
383
+ consumedCount: number;
384
+ unconsumedCount: number;
385
+ feedback: FeedbackObject[];
386
+ note: string;
387
+ }
388
+
389
+ interface SkillGuidelineBase {
390
+ name: string;
391
+ description: string;
392
+ content: string;
393
+ category?: string;
394
+ version: string;
395
+ }
396
+ interface SkillGuidelineCreate extends SkillGuidelineBase {
397
+ }
398
+ interface SkillGuidelineUpdate {
399
+ name?: string;
400
+ description?: string;
401
+ content?: string;
402
+ category?: string;
403
+ version?: string;
404
+ isActive?: boolean;
405
+ }
406
+ interface SkillGuidelineResponse extends SkillGuidelineBase {
407
+ id: string;
408
+ tenantId?: string;
409
+ userId?: string;
410
+ isActive: boolean;
411
+ createdAt: string;
412
+ updatedAt: string;
413
+ }
414
+ interface SkillGuidelineListResponse {
415
+ skills: SkillGuidelineResponse[];
416
+ total: number;
417
+ page: number;
418
+ pageSize: number;
419
+ }
420
+ interface SkillUsageBase {
421
+ responseId: string;
422
+ skillId: string;
423
+ skillName: string;
424
+ }
425
+ interface SkillUsageCreate extends SkillUsageBase {
426
+ tenantId: string;
427
+ userId?: string;
428
+ relevanceScore?: number;
429
+ }
430
+ interface SkillUsageUpdate {
431
+ plannerSelected?: boolean;
432
+ usageReasoning?: string;
433
+ priority?: number;
434
+ executionOutcome?: 'success' | 'partial' | 'failed' | 'cancelled' | 'not_executed';
435
+ effectivenessScore?: number;
436
+ feedbackNotes?: string;
437
+ }
438
+ interface SkillUsageResponse extends SkillUsageBase {
439
+ id: string;
440
+ tenantId: string;
441
+ userId?: string;
442
+ relevanceScore?: number;
443
+ retrievedAt?: string;
444
+ plannerSelected: boolean;
445
+ usageReasoning?: string;
446
+ priority?: number;
447
+ selectedAt?: string;
448
+ executionOutcome?: string;
449
+ effectivenessScore?: number;
450
+ feedbackNotes?: string;
451
+ executedAt?: string;
452
+ createdAt: string;
453
+ updatedAt: string;
454
+ }
455
+ interface SkillUsageListResponse {
456
+ usages: SkillUsageResponse[];
457
+ total: number;
458
+ page: number;
459
+ pageSize: number;
460
+ }
461
+ interface SkillEffectivenessMetrics {
462
+ skillId?: string;
463
+ totalRetrievals: number;
464
+ totalSelections: number;
465
+ successfulExecutions: number;
466
+ selectionRate: number;
467
+ successRate: number;
468
+ avgEffectiveness: number;
469
+ usageFrequency: number;
470
+ }
471
+ interface SkillAnalyticsRequest {
472
+ skillId?: string;
473
+ tenantId?: string;
474
+ daysBack?: number;
475
+ }
476
+ interface SelectedSkill {
477
+ skillId: string;
478
+ skillName: string;
479
+ relevanceScore: number;
480
+ usageReasoning: string;
481
+ priority: number;
482
+ }
483
+ interface SkillRetrievalMetadata {
484
+ skillId: string;
485
+ skillName: string;
486
+ relevanceScore: number;
487
+ content: string;
488
+ }
351
489
 
352
490
  interface ThreadObject {
353
491
  threadId: UUID;
@@ -857,6 +995,95 @@ declare class ResponsesResource {
857
995
  * List artifacts generated by a response
858
996
  */
859
997
  listArtifacts(responseId: string, params?: PaginationParams): Promise<ArtifactsListResponse>;
998
+ /**
999
+ * Submit feedback for an active response
1000
+ * @param responseId - The response ID
1001
+ * @param request - Feedback request details
1002
+ */
1003
+ createFeedback(responseId: string, request: CreateFeedbackRequest): Promise<CreateFeedbackResponse>;
1004
+ /**
1005
+ * List all feedback for a response (consumed and unconsumed)
1006
+ * @param responseId - The response ID
1007
+ * @param options - Optional parameters
1008
+ * @param options.progressId - Optional progress ID to filter feedback
1009
+ */
1010
+ listFeedback(responseId: string, options?: {
1011
+ progressId?: string;
1012
+ }): Promise<FeedbackListResponse>;
1013
+ }
1014
+
1015
+ declare class SkillsResource {
1016
+ private readonly http;
1017
+ constructor(http: Http);
1018
+ /**
1019
+ * Create a new skill guideline
1020
+ * @param skillData - Skill guideline data
1021
+ * @param options - Optional parameters
1022
+ * @param options.userId - Optional user ID for skill ownership
1023
+ */
1024
+ create(skillData: SkillGuidelineCreate, options?: {
1025
+ userId?: string;
1026
+ }): Promise<SkillGuidelineResponse>;
1027
+ /**
1028
+ * List skill guidelines with optional filtering
1029
+ * @param params - Optional filter parameters
1030
+ * @param params.category - Filter by skill category
1031
+ * @param params.isActive - Filter by active status
1032
+ * @param params.page - Page number for pagination
1033
+ * @param params.pageSize - Number of items per page
1034
+ */
1035
+ list(params?: {
1036
+ category?: string;
1037
+ isActive?: boolean;
1038
+ page?: number;
1039
+ pageSize?: number;
1040
+ }): Promise<SkillGuidelineListResponse>;
1041
+ /**
1042
+ * Get a skill guideline by ID
1043
+ * @param skillId - The skill ID
1044
+ */
1045
+ get(skillId: string): Promise<SkillGuidelineResponse>;
1046
+ /**
1047
+ * Update a skill guideline
1048
+ * @param skillId - The skill ID
1049
+ * @param updates - Fields to update
1050
+ */
1051
+ update(skillId: string, updates: SkillGuidelineUpdate): Promise<SkillGuidelineResponse>;
1052
+ /**
1053
+ * Delete a skill guideline
1054
+ * @param skillId - The skill ID
1055
+ */
1056
+ delete(skillId: string): Promise<void>;
1057
+ /**
1058
+ * Create a skill usage record
1059
+ * @param usageData - Skill usage data
1060
+ */
1061
+ createUsage(usageData: SkillUsageCreate): Promise<SkillUsageResponse>;
1062
+ /**
1063
+ * List skill usage records
1064
+ * @param params - Optional filter parameters
1065
+ * @param params.skillId - Filter by skill ID
1066
+ * @param params.responseId - Filter by response ID
1067
+ * @param params.page - Page number for pagination
1068
+ * @param params.pageSize - Number of items per page
1069
+ */
1070
+ listUsage(params?: {
1071
+ skillId?: string;
1072
+ responseId?: string;
1073
+ page?: number;
1074
+ pageSize?: number;
1075
+ }): Promise<SkillUsageListResponse>;
1076
+ /**
1077
+ * Update a skill usage record
1078
+ * @param usageId - The usage record ID
1079
+ * @param updates - Fields to update
1080
+ */
1081
+ updateUsage(usageId: string, updates: SkillUsageUpdate): Promise<SkillUsageResponse>;
1082
+ /**
1083
+ * Get skill effectiveness metrics
1084
+ * @param request - Analytics request parameters
1085
+ */
1086
+ getAnalytics(request?: SkillAnalyticsRequest): Promise<SkillEffectivenessMetrics>;
860
1087
  }
861
1088
 
862
1089
  declare class TenantInfoResource {
@@ -973,6 +1200,7 @@ declare class LumnisClient {
973
1200
  readonly integrations: IntegrationsResource;
974
1201
  readonly modelPreferences: ModelPreferencesResource;
975
1202
  readonly mcpServers: MCPServersResource;
1203
+ readonly skills: SkillsResource;
976
1204
  private readonly _scopedUserId?;
977
1205
  private readonly _defaultScope;
978
1206
  constructor(options?: LumnisClientOptions);
@@ -1019,6 +1247,13 @@ declare class LumnisClient {
1019
1247
  deleteMcpServer(serverId: string): Promise<void>;
1020
1248
  listMcpServerTools(serverId: string): Promise<MCPToolListResponse>;
1021
1249
  testMcpServer(serverId: string): Promise<TestConnectionResponse>;
1250
+ createSkill(skillData: SkillGuidelineCreate, options?: {
1251
+ userId?: string;
1252
+ }): Promise<SkillGuidelineResponse>;
1253
+ getSkill(skillId: string): Promise<SkillGuidelineResponse>;
1254
+ listSkills(params?: Parameters<SkillsResource['list']>[0]): Promise<SkillGuidelineListResponse>;
1255
+ updateSkill(skillId: string, updates: SkillGuidelineUpdate): Promise<SkillGuidelineResponse>;
1256
+ deleteSkill(skillId: string): Promise<void>;
1022
1257
  }
1023
1258
 
1024
1259
  interface LumnisErrorOptions {
@@ -1108,4 +1343,4 @@ declare class ProgressTracker {
1108
1343
  }
1109
1344
 
1110
1345
  export = LumnisClient;
1111
- export { type AgentConfig, type ApiKeyMode, type ApiKeyModeRequest, type ApiKeyModeResponse, type ApiProvider, type AppEnabledResponse, type AppsListResponse, type ArtifactObject, type ArtifactsListResponse, AuthenticationError, type BaseResource, type BillingStatus, type BulkDeleteRequest, type BulkDeleteResponse, type BulkUploadResponse, type CancelResponseResponse, type ChunkingStrategy, type ConnectionCallbackRequest, type ConnectionCallbackResponse, type ConnectionInfo, type ConnectionStatus, type ConnectionStatusResponse, type ContentType, type CreateResponseRequest, type CreateResponseResponse, type CreateThreadRequest, type DatabaseStatus, type DeleteApiKeyResponse, type DisconnectRequest, type DisconnectResponse, type DuplicateHandling, type Email, type ErrorResponse, ExternalAPIKeysResource, type ExternalApiKeyResponse, type FileAttachment, type FileChunk, type FileContentResponse, type FileListResponse, type FileMetadata, type FileScope, type FileScopeUpdateRequest, type FileSearchRequest, type FileSearchResponse, type FileSearchResult, type FileStatisticsResponse, type FileUploadResponse, FilesResource, type GetToolsRequest, type GetToolsResponse, type InitiateConnectionRequest, type InitiateConnectionResponse, IntegrationsResource, InternalServerError, LocalFileNotSupportedError, LumnisClient, type LumnisClientOptions, LumnisError, type LumnisErrorOptions, type MCPScope, type MCPServerCreateRequest, type MCPServerListResponse, type MCPServerResponse, type MCPServerUpdateRequest, MCPServersResource, type MCPToolListResponse, type MCPToolResponse, type MCPTransport, type Message, type ModelAvailability, type ModelOverrides, type ModelPreferenceCreate, type ModelPreferencesBulkUpdate, ModelPreferencesResource, type ModelProvider, type ModelType, NotFoundError, type PaginationInfo, type PaginationParams, type Plan, type ProcessingStatus, type ProcessingStatusResponse, type ProgressEntry, ProgressTracker, RateLimitError, type RateLimitErrorOptions, type ResponseArtifact, type ResponseListResponse, type ResponseObject, type ResponseStatus, ResponsesResource, type Scope, type StoreApiKeyRequest, type TenantDetailsResponse, TenantInfoResource, type TenantModelPreference, type TenantModelPreferencesResponse, type TestConnectionResponse, type ThreadListResponse, type ThreadObject, type ThreadResponsesParams, ThreadsResource, type ToolInfo, type UUID, type UpdateAppStatusResponse, type UpdateThreadRequest, type UserConnectionsResponse, type UserCreateRequest, type UserDeleteResponse, type UserIdentifier, type UserListResponse, type UserResponse, type UserUpdateRequest, UsersResource, ValidationError, displayProgress, formatProgressEntry };
1346
+ export { type AgentConfig, type ApiKeyMode, type ApiKeyModeRequest, type ApiKeyModeResponse, type ApiProvider, type AppEnabledResponse, type AppsListResponse, type ArtifactObject, type ArtifactsListResponse, AuthenticationError, type BaseResource, type BillingStatus, type BulkDeleteRequest, type BulkDeleteResponse, type BulkUploadResponse, type CancelResponseResponse, type ChunkingStrategy, type ConnectionCallbackRequest, type ConnectionCallbackResponse, type ConnectionInfo, type ConnectionStatus, type ConnectionStatusResponse, type ContentType, type CreateFeedbackRequest, type CreateFeedbackResponse, type CreateResponseRequest, type CreateResponseResponse, type CreateThreadRequest, type DatabaseStatus, type DeleteApiKeyResponse, type DisconnectRequest, type DisconnectResponse, type DuplicateHandling, type Email, type ErrorResponse, ExternalAPIKeysResource, type ExternalApiKeyResponse, type FeedbackListResponse, type FeedbackObject, type FeedbackType, type FileAttachment, type FileChunk, type FileContentResponse, type FileListResponse, type FileMetadata, type FileScope, type FileScopeUpdateRequest, type FileSearchRequest, type FileSearchResponse, type FileSearchResult, type FileStatisticsResponse, type FileUploadResponse, FilesResource, type GetToolsRequest, type GetToolsResponse, type InitiateConnectionRequest, type InitiateConnectionResponse, IntegrationsResource, InternalServerError, LocalFileNotSupportedError, LumnisClient, type LumnisClientOptions, LumnisError, type LumnisErrorOptions, type MCPScope, type MCPServerCreateRequest, type MCPServerListResponse, type MCPServerResponse, type MCPServerUpdateRequest, MCPServersResource, type MCPToolListResponse, type MCPToolResponse, type MCPTransport, type Message, type ModelAvailability, type ModelOverrides, type ModelPreferenceCreate, type ModelPreferencesBulkUpdate, ModelPreferencesResource, type ModelProvider, type ModelType, NotFoundError, type PaginationInfo, type PaginationParams, type Plan, type ProcessingStatus, type ProcessingStatusResponse, type ProgressEntry, ProgressTracker, RateLimitError, type RateLimitErrorOptions, type ResponseArtifact, type ResponseListResponse, type ResponseObject, type ResponseStatus, ResponsesResource, type Scope, type SelectedSkill, type SkillAnalyticsRequest, type SkillEffectivenessMetrics, type SkillGuidelineBase, type SkillGuidelineCreate, type SkillGuidelineListResponse, type SkillGuidelineResponse, type SkillGuidelineUpdate, type SkillRetrievalMetadata, type SkillUsageBase, type SkillUsageCreate, type SkillUsageListResponse, type SkillUsageResponse, type SkillUsageUpdate, SkillsResource, type StoreApiKeyRequest, type TenantDetailsResponse, TenantInfoResource, type TenantModelPreference, type TenantModelPreferencesResponse, type TestConnectionResponse, type ThreadListResponse, type ThreadObject, type ThreadResponsesParams, ThreadsResource, type ToolInfo, type UUID, type UpdateAppStatusResponse, type UpdateThreadRequest, type UserConnectionsResponse, type UserCreateRequest, type UserDeleteResponse, type UserIdentifier, type UserListResponse, type UserResponse, type UserUpdateRequest, UsersResource, ValidationError, displayProgress, formatProgressEntry };
package/dist/index.mjs CHANGED
@@ -555,6 +555,136 @@ class ResponsesResource {
555
555
  async listArtifacts(responseId, params) {
556
556
  return this.http.get(`/responses/${responseId}/artifacts`, { params });
557
557
  }
558
+ /**
559
+ * Submit feedback for an active response
560
+ * @param responseId - The response ID
561
+ * @param request - Feedback request details
562
+ */
563
+ async createFeedback(responseId, request) {
564
+ return this.http.post(`/responses/${responseId}/feedback`, request);
565
+ }
566
+ /**
567
+ * List all feedback for a response (consumed and unconsumed)
568
+ * @param responseId - The response ID
569
+ * @param options - Optional parameters
570
+ * @param options.progressId - Optional progress ID to filter feedback
571
+ */
572
+ async listFeedback(responseId, options) {
573
+ const queryParams = {};
574
+ if (options?.progressId)
575
+ queryParams.progress_id = options.progressId;
576
+ return this.http.get(`/responses/${responseId}/feedback`, { params: queryParams });
577
+ }
578
+ }
579
+
580
+ class SkillsResource {
581
+ constructor(http) {
582
+ this.http = http;
583
+ }
584
+ /**
585
+ * Create a new skill guideline
586
+ * @param skillData - Skill guideline data
587
+ * @param options - Optional parameters
588
+ * @param options.userId - Optional user ID for skill ownership
589
+ */
590
+ async create(skillData, options) {
591
+ const params = {};
592
+ if (options?.userId) {
593
+ params.user_id = options.userId;
594
+ }
595
+ return this.http.post("/skills", skillData, { params });
596
+ }
597
+ /**
598
+ * List skill guidelines with optional filtering
599
+ * @param params - Optional filter parameters
600
+ * @param params.category - Filter by skill category
601
+ * @param params.isActive - Filter by active status
602
+ * @param params.page - Page number for pagination
603
+ * @param params.pageSize - Number of items per page
604
+ */
605
+ async list(params) {
606
+ const queryParams = {};
607
+ if (params?.category)
608
+ queryParams.category = params.category;
609
+ if (params?.isActive !== void 0)
610
+ queryParams.is_active = params.isActive;
611
+ if (params?.page)
612
+ queryParams.page = params.page;
613
+ if (params?.pageSize)
614
+ queryParams.page_size = params.pageSize;
615
+ return this.http.get("/skills", { params: queryParams });
616
+ }
617
+ /**
618
+ * Get a skill guideline by ID
619
+ * @param skillId - The skill ID
620
+ */
621
+ async get(skillId) {
622
+ return this.http.get(`/skills/${skillId}`);
623
+ }
624
+ /**
625
+ * Update a skill guideline
626
+ * @param skillId - The skill ID
627
+ * @param updates - Fields to update
628
+ */
629
+ async update(skillId, updates) {
630
+ return this.http.put(`/skills/${skillId}`, updates);
631
+ }
632
+ /**
633
+ * Delete a skill guideline
634
+ * @param skillId - The skill ID
635
+ */
636
+ async delete(skillId) {
637
+ await this.http.delete(`/skills/${skillId}`);
638
+ }
639
+ /**
640
+ * Create a skill usage record
641
+ * @param usageData - Skill usage data
642
+ */
643
+ async createUsage(usageData) {
644
+ return this.http.post("/skills/usage", usageData);
645
+ }
646
+ /**
647
+ * List skill usage records
648
+ * @param params - Optional filter parameters
649
+ * @param params.skillId - Filter by skill ID
650
+ * @param params.responseId - Filter by response ID
651
+ * @param params.page - Page number for pagination
652
+ * @param params.pageSize - Number of items per page
653
+ */
654
+ async listUsage(params) {
655
+ const queryParams = {};
656
+ if (params?.skillId)
657
+ queryParams.skill_id = params.skillId;
658
+ if (params?.responseId)
659
+ queryParams.response_id = params.responseId;
660
+ if (params?.page)
661
+ queryParams.page = params.page;
662
+ if (params?.pageSize)
663
+ queryParams.page_size = params.pageSize;
664
+ return this.http.get("/skills/usage", { params: queryParams });
665
+ }
666
+ /**
667
+ * Update a skill usage record
668
+ * @param usageId - The usage record ID
669
+ * @param updates - Fields to update
670
+ */
671
+ async updateUsage(usageId, updates) {
672
+ return this.http.put(`/skills/usage/${usageId}`, updates);
673
+ }
674
+ /**
675
+ * Get skill effectiveness metrics
676
+ * @param request - Analytics request parameters
677
+ */
678
+ async getAnalytics(request) {
679
+ const queryParams = {};
680
+ if (request?.skillId)
681
+ queryParams.skill_id = request.skillId;
682
+ if (request?.tenantId)
683
+ queryParams.tenant_id = request.tenantId;
684
+ if (request?.daysBack)
685
+ queryParams.days_back = request.daysBack;
686
+ return this.http.get("/skills/analytics", { params: queryParams });
687
+ }
558
688
  }
559
689
 
560
690
  class TenantInfoResource {
@@ -855,6 +985,7 @@ class LumnisClient {
855
985
  integrations;
856
986
  modelPreferences;
857
987
  mcpServers;
988
+ skills;
858
989
  _scopedUserId;
859
990
  _defaultScope;
860
991
  constructor(options = {}) {
@@ -884,6 +1015,7 @@ class LumnisClient {
884
1015
  this.integrations = new IntegrationsResource(this.http);
885
1016
  this.modelPreferences = new ModelPreferencesResource(this.http);
886
1017
  this.mcpServers = new MCPServersResource(this.http);
1018
+ this.skills = new SkillsResource(this.http);
887
1019
  }
888
1020
  forUser(userId) {
889
1021
  return new LumnisClient({
@@ -1098,6 +1230,22 @@ class LumnisClient {
1098
1230
  async testMcpServer(serverId) {
1099
1231
  return this.mcpServers.testConnection(serverId);
1100
1232
  }
1233
+ // Skills methods
1234
+ async createSkill(skillData, options) {
1235
+ return this.skills.create(skillData, options);
1236
+ }
1237
+ async getSkill(skillId) {
1238
+ return this.skills.get(skillId);
1239
+ }
1240
+ async listSkills(params) {
1241
+ return this.skills.list(params);
1242
+ }
1243
+ async updateSkill(skillId, updates) {
1244
+ return this.skills.update(skillId, updates);
1245
+ }
1246
+ async deleteSkill(skillId) {
1247
+ return this.skills.delete(skillId);
1248
+ }
1101
1249
  }
1102
1250
  function createSimpleProgressCallback() {
1103
1251
  let lastStatus;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "lumnisai",
3
3
  "type": "module",
4
- "version": "0.1.2",
4
+ "version": "0.1.4",
5
5
  "description": "Official Node.js SDK for the Lumnis AI API",
6
6
  "author": "Lumnis AI",
7
7
  "license": "MIT",
@@ -66,6 +66,7 @@
66
66
  "release": "bumpp && pnpm publish",
67
67
  "start": "tsx src/index.ts",
68
68
  "test": "vitest",
69
- "typecheck": "tsc --noEmit"
69
+ "typecheck": "tsc --noEmit",
70
+ "example:skills": "tsx examples/skills-example.ts"
70
71
  }
71
72
  }