@mate-academy/llm-gateway 2.5.3 → 3.0.1

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 (72) hide show
  1. package/README.md +411 -117
  2. package/dist/LLMService.factory.d.ts +10 -19
  3. package/dist/LLMService.factory.js +22 -22
  4. package/dist/LLMService.factory.js.map +1 -1
  5. package/dist/LLMService.typedefs.d.ts +51 -4
  6. package/dist/LLMService.typedefs.js.map +1 -1
  7. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.entity.d.ts +2 -3
  8. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.entity.js +1 -1
  9. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.entity.js.map +1 -1
  10. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAIService.factory.d.ts +3 -4
  11. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAIService.factory.js +2 -1
  12. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAIService.factory.js.map +1 -1
  13. package/dist/providers/GoogleGenerativeAI/schemas/GoogleSchemaAdapter.d.ts +12 -0
  14. package/dist/providers/GoogleGenerativeAI/schemas/GoogleSchemaAdapter.js +72 -0
  15. package/dist/providers/GoogleGenerativeAI/schemas/GoogleSchemaAdapter.js.map +1 -0
  16. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.d.ts +2 -3
  17. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js +9 -9
  18. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js.map +1 -1
  19. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.d.ts +2 -3
  20. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.js +4 -4
  21. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.js.map +1 -1
  22. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAISpeechToText.service.d.ts +2 -3
  23. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAISpeechToText.service.js +1 -1
  24. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAISpeechToText.service.js.map +1 -1
  25. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAITextToSpeech.service.d.ts +2 -3
  26. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAITextToSpeech.service.js +1 -1
  27. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAITextToSpeech.service.js.map +1 -1
  28. package/dist/providers/OpenAI/OpenAI.entity.d.ts +3 -4
  29. package/dist/providers/OpenAI/OpenAI.entity.js +1 -1
  30. package/dist/providers/OpenAI/OpenAI.entity.js.map +1 -1
  31. package/dist/providers/OpenAI/OpenAIService.factory.d.ts +3 -4
  32. package/dist/providers/OpenAI/OpenAIService.factory.js +2 -1
  33. package/dist/providers/OpenAI/OpenAIService.factory.js.map +1 -1
  34. package/dist/providers/OpenAI/schemas/OpenAISchemaAdapter.d.ts +14 -0
  35. package/dist/providers/OpenAI/schemas/OpenAISchemaAdapter.js +87 -0
  36. package/dist/providers/OpenAI/schemas/OpenAISchemaAdapter.js.map +1 -0
  37. package/dist/providers/OpenAI/services/OpenAIAssistance.service.d.ts +2 -3
  38. package/dist/providers/OpenAI/services/OpenAIAssistance.service.js +8 -8
  39. package/dist/providers/OpenAI/services/OpenAIAssistance.service.js.map +1 -1
  40. package/dist/providers/OpenAI/services/OpenAICompletion.service.d.ts +2 -3
  41. package/dist/providers/OpenAI/services/OpenAICompletion.service.js +4 -4
  42. package/dist/providers/OpenAI/services/OpenAICompletion.service.js.map +1 -1
  43. package/dist/providers/OpenAI/services/OpenAISpeechToText.service.d.ts +2 -3
  44. package/dist/providers/OpenAI/services/OpenAISpeechToText.service.js +1 -1
  45. package/dist/providers/OpenAI/services/OpenAISpeechToText.service.js.map +1 -1
  46. package/dist/providers/OpenAI/services/OpenAITextToSpeech.service.d.ts +2 -3
  47. package/dist/providers/OpenAI/services/OpenAITextToSpeech.service.js +1 -1
  48. package/dist/providers/OpenAI/services/OpenAITextToSpeech.service.js.map +1 -1
  49. package/dist/services/LLMAssistanceService.abstract.d.ts +2 -3
  50. package/dist/services/LLMAssistanceService.abstract.js.map +1 -1
  51. package/dist/services/LLMBaseService.abstract.d.ts +3 -4
  52. package/dist/services/LLMBaseService.abstract.js +1 -1
  53. package/dist/services/LLMBaseService.abstract.js.map +1 -1
  54. package/dist/services/LLMCompletionService.abstract.d.ts +2 -3
  55. package/dist/services/LLMCompletionService.abstract.js.map +1 -1
  56. package/dist/services/LLMServicePurposeFactory.abstract.d.ts +7 -3
  57. package/dist/services/LLMServicePurposeFactory.abstract.js.map +1 -1
  58. package/dist/services/LLMSpeechToTextService.abstract.d.ts +2 -3
  59. package/dist/services/LLMSpeechToTextService.abstract.js.map +1 -1
  60. package/dist/services/LLMTextToSpeechService.abstract.d.ts +2 -3
  61. package/dist/services/LLMTextToSpeechService.abstract.js.map +1 -1
  62. package/dist/utilities/schema/LLMSchema.d.ts +4 -20
  63. package/dist/utilities/schema/LLMSchema.js +8 -147
  64. package/dist/utilities/schema/LLMSchema.js.map +1 -1
  65. package/dist/utilities/schema/LLMSchemaInterface.d.ts +3 -7
  66. package/dist/utilities/schema/adapters/SchemaAdapterInterface.d.ts +12 -0
  67. package/dist/utilities/schema/adapters/SchemaAdapterInterface.js +3 -0
  68. package/dist/utilities/schema/adapters/SchemaAdapterInterface.js.map +1 -0
  69. package/dist/utilities/schema/adapters/SchemaAdapterRegistry.d.ts +28 -0
  70. package/dist/utilities/schema/adapters/SchemaAdapterRegistry.js +36 -0
  71. package/dist/utilities/schema/adapters/SchemaAdapterRegistry.js.map +1 -0
  72. package/package.json +8 -9
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAITextToSpeech.service.js","sourceRoot":"","sources":["../../../../src/providers/OpenAI/services/OpenAITextToSpeech.service.ts"],"names":[],"mappings":";;;AACA,mCAAgC;AAChC,+DAK+B;AAC/B,yCAAoD;AAEpD,MAAa,yBACX,SAAQ,iCAA2C;IACnD,SAAS,GAAkB,IAAI,CAAC;IAEhC,YACE,MAAc,EACd,OAAgD;QAEhD,KAAK,CAAC,kCAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,QAAQ;QACV,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,OAAqD;QAErD,IAAI,CAAC;YACH,MAAM,EACJ,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,GAAG,OAAO,CAAC;YAEZ,WAAW,EAAE,cAAc,EAAE,CAAC;YAE9B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC5D,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,KAAK,EAAE,IAAI;gBACX,YAAY;gBACZ,KAAK,EAAE,aAAa,EAAE,KAAK,IAAI,OAAO;gBACtC,eAAe,EAAE,aAAa,EAAE,eAAe;gBAC/C,KAAK,EAAE,aAAa,EAAE,KAAK;aAC5B,EAAE;gBACD,MAAM,EAAE,WAAW;aACpB,CAAC,CAAC;YAEH,WAAW,EAAE,cAAc,EAAE,CAAC;YAE9B,MAAM,gBAAgB,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;YAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAElD,WAAW,EAAE,cAAc,EAAE,CAAC;YAE9B,OAAO;gBACL,KAAK,EAAE,WAAW;gBAClB,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;aACpD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM;iBACR,KAAK,CAAC,cAAc,CAAC;iBACrB,KAAK,CAAC,uBAAuB,EAAE;gBAC9B,KAAK;gBACL,OAAO;aACR,CAAC,CAAC;YAEL,OAAO,EAAE,KAAK,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;CACF;AAlED,8DAkEC"}
1
+ {"version":3,"file":"OpenAITextToSpeech.service.js","sourceRoot":"","sources":["../../../../src/providers/OpenAI/services/OpenAITextToSpeech.service.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,+DAM+B;AAC/B,yCAAoD;AAEpD,MAAa,yBACX,SAAQ,iCAA2C;IACnD,SAAS,GAAkB,IAAI,CAAC;IAEhC,YACE,MAA6B,EAC7B,OAAgD;QAEhD,KAAK,CAAC,kCAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,QAAQ;QACV,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,OAAqD;QAErD,IAAI,CAAC;YACH,MAAM,EACJ,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,GAAG,OAAO,CAAC;YAEZ,WAAW,EAAE,cAAc,EAAE,CAAC;YAE9B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC5D,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,KAAK,EAAE,IAAI;gBACX,YAAY;gBACZ,KAAK,EAAE,aAAa,EAAE,KAAK,IAAI,OAAO;gBACtC,eAAe,EAAE,aAAa,EAAE,eAAe;gBAC/C,KAAK,EAAE,aAAa,EAAE,KAAK;aAC5B,EAAE;gBACD,MAAM,EAAE,WAAW;aACpB,CAAC,CAAC;YAEH,WAAW,EAAE,cAAc,EAAE,CAAC;YAE9B,MAAM,gBAAgB,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;YAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAElD,WAAW,EAAE,cAAc,EAAE,CAAC;YAE9B,OAAO;gBACL,KAAK,EAAE,WAAW;gBAClB,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;aACpD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM;gBACT,EAAE,KAAK,CAAC,cAAc,CAAC;iBACtB,KAAK,CAAC,uBAAuB,EAAE;gBAC9B,KAAK;gBACL,OAAO;aACR,CAAC,CAAC;YAEL,OAAO,EAAE,KAAK,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;CACF;AAlED,8DAkEC"}
@@ -1,9 +1,8 @@
1
- import { type Logger } from '@mate-academy/core';
2
- import { type LLMAssistanceOptions, type LLMAssistanceResult, type LLMAssistanceMessage, type LLMCreateAssistantOptions, type LLMCreateAssistantResult, type LLMCreateChatOptions, type LLMCreateChatResult, type LLMCreateFileStorageOptions, type LLMCreateFileStorageResult, type LLMInstanceOptions, type LLMModel, type LLMProviders, LLMPurposes, type LLMUploadFileOptions, type LLMUploadFileResult, type LLMStructuredResult } from '../LLMService.typedefs';
1
+ import { type LLMLogger, type LLMAssistanceOptions, type LLMAssistanceResult, type LLMAssistanceMessage, type LLMCreateAssistantOptions, type LLMCreateAssistantResult, type LLMCreateChatOptions, type LLMCreateChatResult, type LLMCreateFileStorageOptions, type LLMCreateFileStorageResult, type LLMInstanceOptions, type LLMModel, type LLMProviders, LLMPurposes, type LLMUploadFileOptions, type LLMUploadFileResult, type LLMStructuredResult } from '../LLMService.typedefs';
3
2
  import { LLMBaseService } from '../services';
4
3
  import { type LLMSchemaInterface, type InferSchema } from '../utilities/schema';
5
4
  export declare abstract class LLMAssistanceService<Provider extends LLMProviders> extends LLMBaseService<LLMPurposes.Assistance, Provider> {
6
- constructor(provider: Provider, logger: Logger, options: LLMInstanceOptions[Provider]);
5
+ constructor(provider: Provider, logger: LLMLogger | undefined, options: LLMInstanceOptions[Provider]);
7
6
  abstract uploadFile(options: LLMUploadFileOptions): Promise<LLMUploadFileResult>;
8
7
  abstract deleteFile(fileId: string): Promise<void>;
9
8
  abstract createFileStorage(options: LLMCreateFileStorageOptions<Provider>): Promise<LLMCreateFileStorageResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"LLMAssistanceService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMAssistanceService.abstract.ts"],"names":[],"mappings":";;;AACA,+DAiB+B;AAC/B,yCAA4C;AAC5C,iEAA8D;AAG9D,MAAsB,oBACpB,SAAQ,yBAGP;IACD,YACE,QAAkB,EAClB,MAAc,EACd,OAAqC;QAErC,KAAK,CACH,QAAQ,EACR,mBAAmB,EACnB,iCAAW,CAAC,UAAU,EACtB,MAAM,EACN,OAAO,CACR,CAAC;IACJ,CAAC;IAmDS,WAAW,CAAC,IAA0B;QAC9C,OAAO,2CAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAES,cAAc,GAAG,CAAC,IAA0B,EAAW,EAAE;QACjE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC,CAAA;CACF;AA3ED,oDA2EC"}
1
+ {"version":3,"file":"LLMAssistanceService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMAssistanceService.abstract.ts"],"names":[],"mappings":";;;AAAA,+DAkB+B;AAC/B,yCAA4C;AAC5C,iEAA8D;AAG9D,MAAsB,oBACpB,SAAQ,yBAGP;IACD,YACE,QAAkB,EAClB,MAA6B,EAC7B,OAAqC;QAErC,KAAK,CACH,QAAQ,EACR,mBAAmB,EACnB,iCAAW,CAAC,UAAU,EACtB,MAAM,EACN,OAAO,CACR,CAAC;IACJ,CAAC;IAmDS,WAAW,CAAC,IAA0B;QAC9C,OAAO,2CAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAES,cAAc,GAAG,CAAC,IAA0B,EAAW,EAAE;QACjE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC,CAAA;CACF;AA3ED,oDA2EC"}
@@ -1,12 +1,11 @@
1
- import { type Logger } from '@mate-academy/core';
2
- import { type LLMInstanceOptions, type LLMInstances, type LLMProviderAvailableModels, type LLMProviders, type LLMPurposes } from '../LLMService.typedefs';
1
+ import { type LLMLogger, type LLMInstanceOptions, type LLMInstances, type LLMProviderAvailableModels, type LLMProviders, type LLMPurposes } from '../LLMService.typedefs';
3
2
  export declare abstract class LLMBaseService<Purpose extends LLMPurposes, Provider extends LLMProviders> {
4
3
  readonly provider: Provider;
5
4
  readonly serviceName: string;
6
5
  readonly purpose: Purpose;
7
- logger: Logger;
6
+ logger: LLMLogger | undefined;
8
7
  options: LLMInstanceOptions[Provider];
9
- constructor(provider: Provider, serviceName: string, purpose: Purpose, logger: Logger, options: LLMInstanceOptions[Provider]);
8
+ constructor(provider: Provider, serviceName: string, purpose: Purpose, logger: LLMLogger | undefined, options: LLMInstanceOptions[Provider]);
10
9
  abstract get instance(): LLMInstances[Provider];
11
10
  get models(): Partial<LLMProviderAvailableModels<Provider>>;
12
11
  protected initLogger(): void;
@@ -20,7 +20,7 @@ class LLMBaseService {
20
20
  return LLMService_constants_1.LLM_SERVICE_MODELS[this.provider][this.purpose];
21
21
  }
22
22
  initLogger() {
23
- this.logger = this.logger.child(`${this.provider}:${this.serviceName}`);
23
+ this.logger = this.logger?.child(`${this.provider}:${this.serviceName}`);
24
24
  }
25
25
  }
26
26
  exports.LLMBaseService = LLMBaseService;
@@ -1 +1 @@
1
- {"version":3,"file":"LLMBaseService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMBaseService.abstract.ts"],"names":[],"mappings":";;;AAQA,iEAA4D;AAE5D,MAAsB,cAAc;IAKhB;IACA;IACA;IACT;IACA;IALT,YACkB,QAAkB,EAClB,WAAmB,EACnB,OAAgB,EACzB,MAAc,EACd,OAAqC;QAJ5B,aAAQ,GAAR,QAAQ,CAAU;QAClB,gBAAW,GAAX,WAAW,CAAQ;QACnB,YAAO,GAAP,OAAO,CAAS;QACzB,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAA8B;QAE5C,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAID,IAAW,MAAM;QACf,OAAO,yCAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IAES,UAAU;QAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1E,CAAC;CACF;AAvBD,wCAuBC"}
1
+ {"version":3,"file":"LLMBaseService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMBaseService.abstract.ts"],"names":[],"mappings":";;;AAQA,iEAA4D;AAE5D,MAAsB,cAAc;IAKhB;IACA;IACA;IACT;IACA;IALT,YACkB,QAAkB,EAClB,WAAmB,EACnB,OAAgB,EACzB,MAA6B,EAC7B,OAAqC;QAJ5B,aAAQ,GAAR,QAAQ,CAAU;QAClB,gBAAW,GAAX,WAAW,CAAQ;QACnB,YAAO,GAAP,OAAO,CAAS;QACzB,WAAM,GAAN,MAAM,CAAuB;QAC7B,YAAO,GAAP,OAAO,CAA8B;QAE5C,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAID,IAAW,MAAM;QACf,OAAO,yCAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IAES,UAAU;QAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3E,CAAC;CACF;AAvBD,wCAuBC"}
@@ -1,9 +1,8 @@
1
- import { type Logger } from '@mate-academy/core';
2
- import { LLMPurposes, type LLMProviders, type LLMSendMessageOptions, type LLMCompletionResult, type LLMInstanceOptions, type LLMStructuredResult } from '../LLMService.typedefs';
1
+ import { type LLMLogger, LLMPurposes, type LLMProviders, type LLMSendMessageOptions, type LLMCompletionResult, type LLMInstanceOptions, type LLMStructuredResult } from '../LLMService.typedefs';
3
2
  import { LLMBaseService } from '../services';
4
3
  import { type LLMSchemaInterface, type InferSchema } from '../utilities/schema';
5
4
  export declare abstract class LLMCompletionService<Provider extends LLMProviders> extends LLMBaseService<LLMPurposes.Completion, Provider> {
6
- constructor(provider: Provider, logger: Logger, options: LLMInstanceOptions[Provider]);
5
+ constructor(provider: Provider, logger: LLMLogger | undefined, options: LLMInstanceOptions[Provider]);
7
6
  abstract sendMessage<S extends LLMSchemaInterface>(options: LLMSendMessageOptions<Provider> & {
8
7
  schema: S;
9
8
  }): Promise<LLMStructuredResult<InferSchema<S>>>;
@@ -1 +1 @@
1
- {"version":3,"file":"LLMCompletionService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMCompletionService.abstract.ts"],"names":[],"mappings":";;;AACA,+DAO+B;AAC/B,yCAA4C;AAG5C,MAAsB,oBAGpB,SAAQ,yBAAgD;IACxD,YACE,QAAkB,EAClB,MAAc,EACd,OAAqC;QAErC,KAAK,CACH,QAAQ,EACR,mBAAmB,EACnB,iCAAW,CAAC,UAAU,EACtB,MAAM,EACN,OAAO,CACR,CAAC;IACJ,CAAC;CAaF;AA7BD,oDA6BC"}
1
+ {"version":3,"file":"LLMCompletionService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMCompletionService.abstract.ts"],"names":[],"mappings":";;;AAAA,+DAQ+B;AAC/B,yCAA4C;AAG5C,MAAsB,oBAGpB,SAAQ,yBAAgD;IACxD,YACE,QAAkB,EAClB,MAA6B,EAC7B,OAAqC;QAErC,KAAK,CACH,QAAQ,EACR,mBAAmB,EACnB,iCAAW,CAAC,UAAU,EACtB,MAAM,EACN,OAAO,CACR,CAAC;IACJ,CAAC;CAaF;AA7BD,oDA6BC"}
@@ -1,5 +1,9 @@
1
- import { type Logger } from '@mate-academy/core';
2
- import { type LLMInstanceOptions, type LLMProviders, type LLMPurposes, type LLMServiceByPurpose } from '../LLMService.typedefs';
1
+ import { type LLMLogger, type LLMInstanceOptions, type LLMProviders, type LLMPurposes, type LLMServiceByPurpose } from '../LLMService.typedefs';
2
+ export interface LLMCreateServiceOptions<Provider extends LLMProviders, Purpose extends LLMPurposes> {
3
+ purpose: Purpose;
4
+ logger?: LLMLogger;
5
+ options: LLMInstanceOptions[Provider];
6
+ }
3
7
  export declare abstract class LLMServicePurposeFactory<Provider extends LLMProviders> {
4
- abstract createService<Purpose extends LLMPurposes>(purpose: Purpose, logger: Logger, options: LLMInstanceOptions[Provider]): LLMServiceByPurpose<Provider>[Purpose];
8
+ abstract createService<Purpose extends LLMPurposes>(options: LLMCreateServiceOptions<Provider, Purpose>): LLMServiceByPurpose<Provider>[Purpose];
5
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LLMServicePurposeFactory.abstract.js","sourceRoot":"","sources":["../../src/services/LLMServicePurposeFactory.abstract.ts"],"names":[],"mappings":";;;AAQA,MAAsB,wBAAwB;CAM7C;AAND,4DAMC"}
1
+ {"version":3,"file":"LLMServicePurposeFactory.abstract.js","sourceRoot":"","sources":["../../src/services/LLMServicePurposeFactory.abstract.ts"],"names":[],"mappings":";;;AAiBA,MAAsB,wBAAwB;CAI7C;AAJD,4DAIC"}
@@ -1,7 +1,6 @@
1
- import { type Logger } from '@mate-academy/core';
2
- import { LLMPurposes, type LLMProviders, type LLMTranscribeOptions, type LLMTranscribeResult, type LLMInstanceOptions } from '../LLMService.typedefs';
1
+ import { type LLMLogger, LLMPurposes, type LLMProviders, type LLMTranscribeOptions, type LLMTranscribeResult, type LLMInstanceOptions } from '../LLMService.typedefs';
3
2
  import { LLMBaseService } from '../services';
4
3
  export declare abstract class LLMSpeechToTextService<Provider extends LLMProviders> extends LLMBaseService<LLMPurposes.SpeechToText, Provider> {
5
- constructor(provider: Provider, logger: Logger, options: LLMInstanceOptions[Provider]);
4
+ constructor(provider: Provider, logger: LLMLogger | undefined, options: LLMInstanceOptions[Provider]);
6
5
  abstract transcribe(options: LLMTranscribeOptions<Provider>): Promise<LLMTranscribeResult>;
7
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LLMSpeechToTextService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMSpeechToTextService.abstract.ts"],"names":[],"mappings":";;;AACA,+DAM+B;AAC/B,yCAA4C;AAE5C,MAAsB,sBAGpB,SAAQ,yBAAkD;IAC1D,YACE,QAAkB,EAClB,MAAc,EACd,OAAqC;QAErC,KAAK,CACH,QAAQ,EACR,qBAAqB,EACrB,iCAAW,CAAC,YAAY,EACxB,MAAM,EACN,OAAO,CACR,CAAC;IACJ,CAAC;CAKF;AArBD,wDAqBC"}
1
+ {"version":3,"file":"LLMSpeechToTextService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMSpeechToTextService.abstract.ts"],"names":[],"mappings":";;;AAAA,+DAO+B;AAC/B,yCAA4C;AAE5C,MAAsB,sBAGpB,SAAQ,yBAAkD;IAC1D,YACE,QAAkB,EAClB,MAA6B,EAC7B,OAAqC;QAErC,KAAK,CACH,QAAQ,EACR,qBAAqB,EACrB,iCAAW,CAAC,YAAY,EACxB,MAAM,EACN,OAAO,CACR,CAAC;IACJ,CAAC;CAKF;AArBD,wDAqBC"}
@@ -1,7 +1,6 @@
1
- import { type Logger } from '@mate-academy/core';
2
- import { LLMPurposes, type LLMProviders, type LLMCreateSpeechOptions, type LLMCreateSpeechResult, type LLMInstanceOptions } from '../LLMService.typedefs';
1
+ import { type LLMLogger, LLMPurposes, type LLMProviders, type LLMCreateSpeechOptions, type LLMCreateSpeechResult, type LLMInstanceOptions } from '../LLMService.typedefs';
3
2
  import { LLMBaseService } from '../services';
4
3
  export declare abstract class LLMTextToSpeechService<Provider extends LLMProviders> extends LLMBaseService<LLMPurposes.TextToSpeech, Provider> {
5
- constructor(provider: Provider, logger: Logger, options: LLMInstanceOptions[Provider]);
4
+ constructor(provider: Provider, logger: LLMLogger | undefined, options: LLMInstanceOptions[Provider]);
6
5
  abstract createSpeech(options: LLMCreateSpeechOptions<Provider>): Promise<LLMCreateSpeechResult>;
7
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LLMTextToSpeechService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMTextToSpeechService.abstract.ts"],"names":[],"mappings":";;;AACA,+DAM+B;AAC/B,yCAA4C;AAE5C,MAAsB,sBAGpB,SAAQ,yBAAkD;IAC1D,YACE,QAAkB,EAClB,MAAc,EACd,OAAqC;QAErC,KAAK,CACH,QAAQ,EACR,qBAAqB,EACrB,iCAAW,CAAC,YAAY,EACxB,MAAM,EACN,OAAO,CACR,CAAC;IACJ,CAAC;CAKF;AArBD,wDAqBC"}
1
+ {"version":3,"file":"LLMTextToSpeechService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMTextToSpeechService.abstract.ts"],"names":[],"mappings":";;;AAAA,+DAO+B;AAC/B,yCAA4C;AAE5C,MAAsB,sBAGpB,SAAQ,yBAAkD;IAC1D,YACE,QAAkB,EAClB,MAA6B,EAC7B,OAAqC;QAErC,KAAK,CACH,QAAQ,EACR,qBAAqB,EACrB,iCAAW,CAAC,YAAY,EACxB,MAAM,EACN,OAAO,CACR,CAAC;IACJ,CAAC;CAKF;AArBD,wDAqBC"}
@@ -1,4 +1,5 @@
1
- import { type LLMSchemaInterface, type ParseResult, type InferSchema } from './LLMSchemaInterface';
1
+ import type { LLMProviders } from '../../LLMService.typedefs';
2
+ import type { LLMSchemaInterface, ParseResult, InferSchema } from './LLMSchemaInterface';
2
3
  /**
3
4
  * Concrete implementation of schema builder using Zod as the underlying validator.
4
5
  * This implementation can be replaced with another validator without changing the public API.
@@ -103,24 +104,7 @@ export declare class LLMSchema<T = any> implements LLMSchemaInterface<T> {
103
104
  _parse(data: unknown): ParseResult<T>;
104
105
  /**
105
106
  * @internal
106
- * Converts schema to OpenAI JSON Schema format
107
+ * Converts schema to provider-specific format using the adapter registry
107
108
  */
108
- _toOpenAISchema(): any;
109
- /**
110
- * @internal
111
- * Converts schema to Google Generative AI format
112
- */
113
- _toGoogleSchema(): any;
114
- /**
115
- * @internal
116
- * Converts JSON Schema to Google's Type-based format
117
- */
118
- private _convertJsonSchemaToGoogleFormat;
119
- /**
120
- * @internal
121
- * Normalizes JSON Schema for OpenAI structured_response:
122
- * - For each object, sets required to all property keys.
123
- * - Any property that was optional becomes nullable.
124
- */
125
- private _normalizeForOpenAIStructuredResponse;
109
+ _toProviderSchema(provider: LLMProviders): any;
126
110
  }
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LLMSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const zod_to_json_schema_1 = require("zod-to-json-schema");
6
- const genai_1 = require("@google/genai");
6
+ const SchemaAdapterRegistry_1 = require("./adapters/SchemaAdapterRegistry");
7
7
  /**
8
8
  * Concrete implementation of schema builder using Zod as the underlying validator.
9
9
  * This implementation can be replaced with another validator without changing the public API.
@@ -204,157 +204,18 @@ class LLMSchema {
204
204
  }
205
205
  /**
206
206
  * @internal
207
- * Converts schema to OpenAI JSON Schema format
207
+ * Converts schema to provider-specific format using the adapter registry
208
208
  */
209
- _toOpenAISchema() {
210
- const raw = (0, zod_to_json_schema_1.zodToJsonSchema)(this.zodSchema, {
211
- target: 'openApi3',
212
- $refStrategy: 'none',
213
- });
214
- return this._normalizeForOpenAIStructuredResponse(raw);
215
- }
216
- /**
217
- * @internal
218
- * Converts schema to Google Generative AI format
219
- */
220
- _toGoogleSchema() {
209
+ _toProviderSchema(provider) {
210
+ const adapter = (0, SchemaAdapterRegistry_1.getSchemaAdapter)(provider);
211
+ if (!adapter) {
212
+ throw new Error(`Provider ${provider} does not support structured output`);
213
+ }
221
214
  const jsonSchema = (0, zod_to_json_schema_1.zodToJsonSchema)(this.zodSchema, {
222
215
  target: 'jsonSchema7',
223
216
  $refStrategy: 'none',
224
217
  });
225
- return this._convertJsonSchemaToGoogleFormat(jsonSchema);
226
- }
227
- /**
228
- * @internal
229
- * Converts JSON Schema to Google's Type-based format
230
- */
231
- _convertJsonSchemaToGoogleFormat(jsonSchema) {
232
- // Handle null type
233
- if (jsonSchema.type === 'null') {
234
- return { type: genai_1.Type.STRING, nullable: true };
235
- }
236
- // Handle arrays with anyOf (for unions)
237
- if (jsonSchema.anyOf) {
238
- // For now, we'll use the first type in the union
239
- // This is a simplification - full union support would be more complex
240
- return this._convertJsonSchemaToGoogleFormat(jsonSchema.anyOf[0]);
241
- }
242
- // Handle objects
243
- if (jsonSchema.type === 'object') {
244
- const properties = {};
245
- const required = jsonSchema.required || [];
246
- for (const [key, value] of Object.entries(jsonSchema.properties || {})) {
247
- const convertedProperty = this._convertJsonSchemaToGoogleFormat(value);
248
- properties[key] = convertedProperty;
249
- }
250
- return {
251
- type: genai_1.Type.OBJECT,
252
- properties,
253
- required,
254
- propertyOrdering: Object.keys(properties),
255
- };
256
- }
257
- // Handle arrays
258
- if (jsonSchema.type === 'array') {
259
- return {
260
- type: genai_1.Type.ARRAY,
261
- items: this._convertJsonSchemaToGoogleFormat(jsonSchema.items || {}),
262
- };
263
- }
264
- // Handle strings
265
- if (jsonSchema.type === 'string') {
266
- if (jsonSchema.enum) {
267
- return {
268
- type: genai_1.Type.STRING,
269
- enum: jsonSchema.enum,
270
- };
271
- }
272
- return { type: genai_1.Type.STRING };
273
- }
274
- // Handle numbers
275
- if (jsonSchema.type === 'number' || jsonSchema.type === 'integer') {
276
- return { type: genai_1.Type.NUMBER };
277
- }
278
- // Handle booleans
279
- if (jsonSchema.type === 'boolean') {
280
- return { type: genai_1.Type.BOOLEAN };
281
- }
282
- // Default fallback
283
- return { type: genai_1.Type.STRING };
284
- }
285
- /**
286
- * @internal
287
- * Normalizes JSON Schema for OpenAI structured_response:
288
- * - For each object, sets required to all property keys.
289
- * - Any property that was optional becomes nullable.
290
- */
291
- _normalizeForOpenAIStructuredResponse(schema) {
292
- const copy = JSON.parse(JSON.stringify(schema));
293
- const allowsNull = (node) => {
294
- if (!node || typeof node !== 'object') {
295
- return false;
296
- }
297
- if (node.nullable === true) {
298
- return true;
299
- }
300
- if (node.type === 'null') {
301
- return true;
302
- }
303
- if (Array.isArray(node.type) && node.type.includes('null')) {
304
- return true;
305
- }
306
- const list = node.anyOf || node.oneOf;
307
- return Array.isArray(list)
308
- ? list.some((node) => node?.type === 'null' || node?.nullable === true)
309
- : false;
310
- };
311
- const makeNullable = (node) => {
312
- if (!node
313
- || typeof node !== 'object'
314
- || allowsNull(node)) {
315
- return;
316
- }
317
- if (node.anyOf) {
318
- node.anyOf = [...node.anyOf, { type: 'null' }];
319
- }
320
- else if (node.oneOf) {
321
- node.oneOf = [...node.oneOf, { type: 'null' }];
322
- }
323
- else {
324
- node.nullable = true; // OpenAPI 3 nullable flag
325
- }
326
- };
327
- const visit = (node) => {
328
- if (!node || typeof node !== 'object') {
329
- return;
330
- }
331
- // Handle composition
332
- for (const key of ['anyOf', 'oneOf', 'allOf']) {
333
- if (Array.isArray(node[key])) {
334
- node[key].forEach(visit);
335
- }
336
- }
337
- // Recurse arrays
338
- if (node.type === 'array' && node.items) {
339
- visit(node.items);
340
- }
341
- // Objects: enforce required includes all properties
342
- if (node.type === 'object' && node.properties) {
343
- const props = node.properties;
344
- const originalRequired = new Set(node.required || []);
345
- const keys = Object.keys(props);
346
- // Previously optional -> make nullable
347
- for (const key of keys) {
348
- if (!originalRequired.has(key)) {
349
- makeNullable(props[key]);
350
- }
351
- visit(props[key]);
352
- }
353
- node.required = keys; // all properties required
354
- }
355
- };
356
- visit(copy);
357
- return copy;
218
+ return adapter.convertSchema(jsonSchema);
358
219
  }
359
220
  }
360
221
  exports.LLMSchema = LLMSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"LLMSchema.js","sourceRoot":"","sources":["../../../src/utilities/schema/LLMSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LLMSchema.js","sourceRoot":"","sources":["../../../src/utilities/schema/LLMSchema.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { LLMProviders } from '../../LLMService.typedefs';
1
2
  /**
2
3
  * Result of parsing data against a schema
3
4
  */
@@ -17,15 +18,10 @@ export interface LLMSchemaInterface<T = any> {
17
18
  */
18
19
  _parse(data: unknown): ParseResult<T>;
19
20
  /**
20
- * Convert schema to OpenAI JSON Schema format
21
+ * Convert schema to provider-specific format using registered adapters
21
22
  * @internal - Used internally by the package
22
23
  */
23
- _toOpenAISchema(): any;
24
- /**
25
- * Convert schema to Google Generative AI format
26
- * @internal - Used internally by the package
27
- */
28
- _toGoogleSchema(): any;
24
+ _toProviderSchema(provider: LLMProviders): any;
29
25
  optional(): LLMSchemaInterface<T | undefined>;
30
26
  nullable(): LLMSchemaInterface<T | null>;
31
27
  default(value: any): LLMSchemaInterface<T>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Interface for schema adapters that convert generic JSON Schema
3
+ * to provider-specific formats
4
+ */
5
+ export interface SchemaAdapterInterface {
6
+ /**
7
+ * Converts a JSON Schema to provider-specific format
8
+ * @param jsonSchema - The JSON Schema to convert
9
+ * @returns The provider-specific schema format
10
+ */
11
+ convertSchema(jsonSchema: any): any;
12
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=SchemaAdapterInterface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaAdapterInterface.js","sourceRoot":"","sources":["../../../../src/utilities/schema/adapters/SchemaAdapterInterface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ import type { LLMProviders } from '../../../LLMService.typedefs';
2
+ import type { SchemaAdapterInterface } from './SchemaAdapterInterface';
3
+ import { OpenAISchemaAdapter } from '../../../providers/OpenAI/schemas/OpenAISchemaAdapter';
4
+ import { GoogleSchemaAdapter } from '../../../providers/GoogleGenerativeAI/schemas/GoogleSchemaAdapter';
5
+ /**
6
+ * Type-safe registry of schema adapters for all supported providers.
7
+ *
8
+ * When adding a new provider:
9
+ * 1. Add the provider to LLMProviders enum
10
+ * 2. Create the schema adapter implementing SchemaAdapterInterface
11
+ * 3. Add the adapter to this registry (TypeScript will enforce this)
12
+ * 4. Set to `null` if the provider doesn't support structured output
13
+ *
14
+ * This ensures compile-time safety and forces developers to handle all providers.
15
+ */
16
+ export declare const SCHEMA_ADAPTER_REGISTRY: {
17
+ readonly OpenAI: OpenAISchemaAdapter;
18
+ readonly GoogleGenerativeAI: GoogleSchemaAdapter;
19
+ };
20
+ /**
21
+ * Type-safe helper to get a schema adapter for a provider.
22
+ * Returns null if the provider doesn't support structured output.
23
+ */
24
+ export declare function getSchemaAdapter(provider: LLMProviders): SchemaAdapterInterface | null;
25
+ /**
26
+ * Type-safe helper to check if a provider supports structured output.
27
+ */
28
+ export declare function providerSupportsStructuredOutput(provider: LLMProviders): boolean;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SCHEMA_ADAPTER_REGISTRY = void 0;
4
+ exports.getSchemaAdapter = getSchemaAdapter;
5
+ exports.providerSupportsStructuredOutput = providerSupportsStructuredOutput;
6
+ const OpenAISchemaAdapter_1 = require("../../../providers/OpenAI/schemas/OpenAISchemaAdapter");
7
+ const GoogleSchemaAdapter_1 = require("../../../providers/GoogleGenerativeAI/schemas/GoogleSchemaAdapter");
8
+ /**
9
+ * Type-safe registry of schema adapters for all supported providers.
10
+ *
11
+ * When adding a new provider:
12
+ * 1. Add the provider to LLMProviders enum
13
+ * 2. Create the schema adapter implementing SchemaAdapterInterface
14
+ * 3. Add the adapter to this registry (TypeScript will enforce this)
15
+ * 4. Set to `null` if the provider doesn't support structured output
16
+ *
17
+ * This ensures compile-time safety and forces developers to handle all providers.
18
+ */
19
+ exports.SCHEMA_ADAPTER_REGISTRY = {
20
+ OpenAI: new OpenAISchemaAdapter_1.OpenAISchemaAdapter(),
21
+ GoogleGenerativeAI: new GoogleSchemaAdapter_1.GoogleSchemaAdapter(),
22
+ };
23
+ /**
24
+ * Type-safe helper to get a schema adapter for a provider.
25
+ * Returns null if the provider doesn't support structured output.
26
+ */
27
+ function getSchemaAdapter(provider) {
28
+ return exports.SCHEMA_ADAPTER_REGISTRY[provider];
29
+ }
30
+ /**
31
+ * Type-safe helper to check if a provider supports structured output.
32
+ */
33
+ function providerSupportsStructuredOutput(provider) {
34
+ return exports.SCHEMA_ADAPTER_REGISTRY[provider] !== null;
35
+ }
36
+ //# sourceMappingURL=SchemaAdapterRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaAdapterRegistry.js","sourceRoot":"","sources":["../../../../src/utilities/schema/adapters/SchemaAdapterRegistry.ts"],"names":[],"mappings":";;;AAyBA,4CAEC;AAKD,4EAEC;AAhCD,wFAAqF;AACrF,oGAAiG;AAEjG;;;;;;;;;;GAUG;AACU,QAAA,uBAAuB,GAAG;IACrC,MAAM,EAAE,IAAI,yCAAmB,EAAE;IACjC,kBAAkB,EAAE,IAAI,yCAAmB,EAAE;CACyB,CAAC;AAEzE;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,QAAsB;IACrD,OAAO,+BAAuB,CAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,SAAgB,gCAAgC,CAAC,QAAsB;IACrE,OAAO,+BAAuB,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;AACpD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mate-academy/llm-gateway",
3
- "version": "2.5.3",
3
+ "version": "3.0.1",
4
4
  "description": "A gateway package for LLM services.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -60,26 +60,25 @@
60
60
  "@types/inquirer": "^9.0.9",
61
61
  "@types/jest": "^30.0.0",
62
62
  "@types/mime-types": "^3.0.1",
63
- "@typescript-eslint/eslint-plugin": "^8.40.0",
63
+ "@typescript-eslint/eslint-plugin": "^8.41.0",
64
64
  "dotenv": "^17.2.1",
65
- "eslint": "^9.33.0",
65
+ "eslint": "^9.34.0",
66
66
  "eslint-plugin-no-only-tests": "^3.3.0",
67
67
  "glob": "^11.0.3",
68
- "inquirer": "^12.9.3",
69
- "jest": "^30.0.5",
68
+ "inquirer": "^12.9.4",
69
+ "jest": "^30.1.1",
70
70
  "terser": "^5.43.1",
71
71
  "ts-jest": "^29.4.1",
72
72
  "tsc-alias": "^1.8.16",
73
73
  "typescript": "^5.9.2",
74
- "typescript-eslint": "^8.40.0"
74
+ "typescript-eslint": "^8.41.0"
75
75
  },
76
76
  "dependencies": {
77
- "@google/genai": "^1.15.0",
78
- "@mate-academy/core": "^1.10.6",
77
+ "@google/genai": "^1.16.0",
79
78
  "axios": "^1.11.0",
80
79
  "js-tiktoken": "^1.0.21",
81
80
  "mime-types": "^3.0.1",
82
- "openai": "^5.12.2",
81
+ "openai": "^5.16.0",
83
82
  "uuid": "^11.1.0",
84
83
  "zod": "^3.25.76",
85
84
  "zod-to-json-schema": "^3.24.6"