@aituber-onair/chat 0.22.0 → 0.23.0

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 (57) hide show
  1. package/README.ja.md +18 -2
  2. package/README.md +18 -2
  3. package/dist/cjs/constants/index.d.ts +1 -0
  4. package/dist/cjs/constants/index.d.ts.map +1 -1
  5. package/dist/cjs/constants/index.js +1 -0
  6. package/dist/cjs/constants/index.js.map +1 -1
  7. package/dist/cjs/constants/xai.d.ts +11 -0
  8. package/dist/cjs/constants/xai.d.ts.map +1 -0
  9. package/dist/cjs/constants/xai.js +24 -0
  10. package/dist/cjs/constants/xai.js.map +1 -0
  11. package/dist/cjs/index.d.ts +3 -1
  12. package/dist/cjs/index.d.ts.map +1 -1
  13. package/dist/cjs/index.js +6 -1
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/services/providers/ChatServiceProvider.d.ts +2 -0
  16. package/dist/cjs/services/providers/ChatServiceProvider.d.ts.map +1 -1
  17. package/dist/cjs/services/providers/index.d.ts +2 -1
  18. package/dist/cjs/services/providers/index.d.ts.map +1 -1
  19. package/dist/cjs/services/providers/index.js +2 -0
  20. package/dist/cjs/services/providers/index.js.map +1 -1
  21. package/dist/cjs/services/providers/xai/XAIChatService.d.ts +65 -0
  22. package/dist/cjs/services/providers/xai/XAIChatService.d.ts.map +1 -0
  23. package/dist/cjs/services/providers/xai/XAIChatService.js +150 -0
  24. package/dist/cjs/services/providers/xai/XAIChatService.js.map +1 -0
  25. package/dist/cjs/services/providers/xai/XAIChatServiceProvider.d.ts +38 -0
  26. package/dist/cjs/services/providers/xai/XAIChatServiceProvider.d.ts.map +1 -0
  27. package/dist/cjs/services/providers/xai/XAIChatServiceProvider.js +76 -0
  28. package/dist/cjs/services/providers/xai/XAIChatServiceProvider.js.map +1 -0
  29. package/dist/esm/constants/index.d.ts +1 -0
  30. package/dist/esm/constants/index.d.ts.map +1 -1
  31. package/dist/esm/constants/index.js +1 -0
  32. package/dist/esm/constants/index.js.map +1 -1
  33. package/dist/esm/constants/xai.d.ts +11 -0
  34. package/dist/esm/constants/xai.d.ts.map +1 -0
  35. package/dist/esm/constants/xai.js +20 -0
  36. package/dist/esm/constants/xai.js.map +1 -0
  37. package/dist/esm/index.d.ts +3 -1
  38. package/dist/esm/index.d.ts.map +1 -1
  39. package/dist/esm/index.js +3 -0
  40. package/dist/esm/index.js.map +1 -1
  41. package/dist/esm/services/providers/ChatServiceProvider.d.ts +2 -0
  42. package/dist/esm/services/providers/ChatServiceProvider.d.ts.map +1 -1
  43. package/dist/esm/services/providers/index.d.ts +2 -1
  44. package/dist/esm/services/providers/index.d.ts.map +1 -1
  45. package/dist/esm/services/providers/index.js +2 -0
  46. package/dist/esm/services/providers/index.js.map +1 -1
  47. package/dist/esm/services/providers/xai/XAIChatService.d.ts +65 -0
  48. package/dist/esm/services/providers/xai/XAIChatService.d.ts.map +1 -0
  49. package/dist/esm/services/providers/xai/XAIChatService.js +146 -0
  50. package/dist/esm/services/providers/xai/XAIChatService.js.map +1 -0
  51. package/dist/esm/services/providers/xai/XAIChatServiceProvider.d.ts +38 -0
  52. package/dist/esm/services/providers/xai/XAIChatServiceProvider.d.ts.map +1 -0
  53. package/dist/esm/services/providers/xai/XAIChatServiceProvider.js +72 -0
  54. package/dist/esm/services/providers/xai/XAIChatServiceProvider.js.map +1 -0
  55. package/dist/umd/aituber-onair-chat.js +245 -0
  56. package/dist/umd/aituber-onair-chat.min.js +6 -6
  57. package/package.json +1 -1
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XAIChatServiceProvider = void 0;
4
+ const xai_1 = require("../../../constants/xai");
5
+ const XAIChatService_1 = require("./XAIChatService");
6
+ const utils_1 = require("../../../utils");
7
+ /**
8
+ * xAI API provider implementation
9
+ */
10
+ class XAIChatServiceProvider {
11
+ /**
12
+ * Create a chat service instance
13
+ */
14
+ createChatService(options) {
15
+ const model = options.model || this.getDefaultModel();
16
+ const visionModel = (0, utils_1.resolveVisionModel)({
17
+ model,
18
+ visionModel: options.visionModel,
19
+ defaultModel: this.getDefaultModel(),
20
+ defaultVisionModel: this.getDefaultVisionModel(),
21
+ supportsVisionForModel: (visionModel) => this.supportsVisionForModel(visionModel),
22
+ validate: 'explicit',
23
+ });
24
+ const tools = options.tools;
25
+ return new XAIChatService_1.XAIChatService(options.apiKey, model, visionModel, tools, options.endpoint || xai_1.ENDPOINT_XAI_CHAT_COMPLETIONS_API, options.responseLength);
26
+ }
27
+ /**
28
+ * Get the provider name
29
+ */
30
+ getProviderName() {
31
+ return 'xai';
32
+ }
33
+ /**
34
+ * Get the list of supported models
35
+ */
36
+ getSupportedModels() {
37
+ return [
38
+ xai_1.MODEL_GROK_4_20_REASONING,
39
+ xai_1.MODEL_GROK_4_20_NON_REASONING,
40
+ xai_1.MODEL_GROK_4_1_FAST_REASONING,
41
+ xai_1.MODEL_GROK_4_1_FAST_NON_REASONING,
42
+ ];
43
+ }
44
+ /**
45
+ * Get the default model
46
+ */
47
+ getDefaultModel() {
48
+ return xai_1.MODEL_GROK_4_1_FAST_NON_REASONING;
49
+ }
50
+ /**
51
+ * Get the default vision model
52
+ */
53
+ getDefaultVisionModel() {
54
+ return xai_1.MODEL_GROK_4_1_FAST_NON_REASONING;
55
+ }
56
+ /**
57
+ * Check if this provider supports vision
58
+ */
59
+ supportsVision() {
60
+ return this.getVisionSupportLevel() !== 'unsupported';
61
+ }
62
+ getVisionSupportLevel() {
63
+ return 'supported';
64
+ }
65
+ /**
66
+ * Check if a specific model supports vision capabilities
67
+ */
68
+ supportsVisionForModel(model) {
69
+ return (0, xai_1.isXaiVisionModel)(model);
70
+ }
71
+ getVisionSupportLevelForModel(model) {
72
+ return this.supportsVisionForModel(model) ? 'supported' : 'unsupported';
73
+ }
74
+ }
75
+ exports.XAIChatServiceProvider = XAIChatServiceProvider;
76
+ //# sourceMappingURL=XAIChatServiceProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XAIChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/xai/XAIChatServiceProvider.ts"],"names":[],"mappings":";;;AAAA,gDAOgC;AAEhC,qDAAkD;AAOlD,0CAAoD;AAEpD;;GAEG;AACH,MAAa,sBAAsB;IAGjC;;OAEG;IACH,iBAAiB,CAAC,OAA8B;QAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACtD,MAAM,WAAW,GAAG,IAAA,0BAAkB,EAAC;YACrC,KAAK;YACL,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;YACpC,kBAAkB,EAAE,IAAI,CAAC,qBAAqB,EAAE;YAChD,sBAAsB,EAAE,CAAC,WAAW,EAAE,EAAE,CACtC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC;YAC1C,QAAQ,EAAE,UAAU;SACrB,CAAC,CAAC;QAEH,MAAM,KAAK,GAAiC,OAAO,CAAC,KAAK,CAAC;QAE1D,OAAO,IAAI,+BAAc,CACvB,OAAO,CAAC,MAAM,EACd,KAAK,EACL,WAAW,EACX,KAAK,EACL,OAAO,CAAC,QAAQ,IAAI,uCAAiC,EACrD,OAAO,CAAC,cAAc,CACvB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO;YACL,+BAAyB;YACzB,mCAA6B;YAC7B,mCAA6B;YAC7B,uCAAiC;SAClC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,uCAAiC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,OAAO,uCAAiC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,qBAAqB,EAAE,KAAK,aAAa,CAAC;IACxD,CAAC;IAED,qBAAqB;QACnB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,KAAa;QAClC,OAAO,IAAA,sBAAgB,EAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,6BAA6B,CAAC,KAAa;QACzC,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;IAC1E,CAAC;CACF;AApFD,wDAoFC"}
@@ -6,6 +6,7 @@ export * from './gemini';
6
6
  export * from './claude';
7
7
  export * from './openrouter';
8
8
  export * from './zai';
9
+ export * from './xai';
9
10
  export * from './kimi';
10
11
  export * from './chat';
11
12
  export * from './prompts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
@@ -6,6 +6,7 @@ export * from './gemini';
6
6
  export * from './claude';
7
7
  export * from './openrouter';
8
8
  export * from './zai';
9
+ export * from './xai';
9
10
  export * from './kimi';
10
11
  export * from './chat';
11
12
  export * from './prompts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare const ENDPOINT_XAI_CHAT_COMPLETIONS_API = "https://api.x.ai/v1/chat/completions";
2
+ export declare const MODEL_GROK_4_20_REASONING = "grok-4.20-0309-reasoning";
3
+ export declare const MODEL_GROK_4_20_NON_REASONING = "grok-4.20-0309-non-reasoning";
4
+ export declare const MODEL_GROK_4_1_FAST_REASONING = "grok-4-1-fast-reasoning";
5
+ export declare const MODEL_GROK_4_1_FAST_NON_REASONING = "grok-4-1-fast-non-reasoning";
6
+ export declare const XAI_VISION_SUPPORTED_MODELS: string[];
7
+ /**
8
+ * Check if a model supports vision capabilities
9
+ */
10
+ export declare function isXaiVisionModel(model: string): boolean;
11
+ //# sourceMappingURL=xai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xai.d.ts","sourceRoot":"","sources":["../../../src/constants/xai.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iCAAiC,yCACN,CAAC;AAGzC,eAAO,MAAM,yBAAyB,6BAA6B,CAAC;AACpE,eAAO,MAAM,6BAA6B,iCAAiC,CAAC;AAC5E,eAAO,MAAM,6BAA6B,4BAA4B,CAAC;AACvE,eAAO,MAAM,iCAAiC,gCAAgC,CAAC;AAG/E,eAAO,MAAM,2BAA2B,UAKvC,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEvD"}
@@ -0,0 +1,20 @@
1
+ export const ENDPOINT_XAI_CHAT_COMPLETIONS_API = 'https://api.x.ai/v1/chat/completions';
2
+ // xAI Grok models
3
+ export const MODEL_GROK_4_20_REASONING = 'grok-4.20-0309-reasoning';
4
+ export const MODEL_GROK_4_20_NON_REASONING = 'grok-4.20-0309-non-reasoning';
5
+ export const MODEL_GROK_4_1_FAST_REASONING = 'grok-4-1-fast-reasoning';
6
+ export const MODEL_GROK_4_1_FAST_NON_REASONING = 'grok-4-1-fast-non-reasoning';
7
+ // Vision support for models
8
+ export const XAI_VISION_SUPPORTED_MODELS = [
9
+ MODEL_GROK_4_20_REASONING,
10
+ MODEL_GROK_4_20_NON_REASONING,
11
+ MODEL_GROK_4_1_FAST_REASONING,
12
+ MODEL_GROK_4_1_FAST_NON_REASONING,
13
+ ];
14
+ /**
15
+ * Check if a model supports vision capabilities
16
+ */
17
+ export function isXaiVisionModel(model) {
18
+ return XAI_VISION_SUPPORTED_MODELS.includes(model);
19
+ }
20
+ //# sourceMappingURL=xai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xai.js","sourceRoot":"","sources":["../../../src/constants/xai.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iCAAiC,GAC5C,sCAAsC,CAAC;AAEzC,kBAAkB;AAClB,MAAM,CAAC,MAAM,yBAAyB,GAAG,0BAA0B,CAAC;AACpE,MAAM,CAAC,MAAM,6BAA6B,GAAG,8BAA8B,CAAC;AAC5E,MAAM,CAAC,MAAM,6BAA6B,GAAG,yBAAyB,CAAC;AACvE,MAAM,CAAC,MAAM,iCAAiC,GAAG,6BAA6B,CAAC;AAE/E,4BAA4B;AAC5B,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,yBAAyB;IACzB,6BAA6B;IAC7B,6BAA6B;IAC7B,iCAAiC;CAClC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,2BAA2B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrD,CAAC"}
@@ -5,7 +5,7 @@
5
5
  export * from './types';
6
6
  export type { ChatService } from './services/ChatService';
7
7
  export { ChatServiceFactory } from './services/ChatServiceFactory';
8
- export type { ChatServiceOptions, ChatServiceOptionsByProvider, ChatProviderName, OpenAIChatServiceOptions, OpenAICompatibleChatServiceOptions, OpenRouterChatServiceOptions, GeminiChatServiceOptions, ClaudeChatServiceOptions, ZAIChatServiceOptions, KimiChatServiceOptions, ChatServiceProvider, VisionSupportLevel, } from './services/providers/ChatServiceProvider';
8
+ export type { ChatServiceOptions, ChatServiceOptionsByProvider, ChatProviderName, OpenAIChatServiceOptions, OpenAICompatibleChatServiceOptions, OpenRouterChatServiceOptions, GeminiChatServiceOptions, ClaudeChatServiceOptions, ZAIChatServiceOptions, XAIChatServiceOptions, KimiChatServiceOptions, ChatServiceProvider, VisionSupportLevel, } from './services/providers/ChatServiceProvider';
9
9
  export { OpenAIChatService } from './services/providers/openai/OpenAIChatService';
10
10
  export { OpenAIChatServiceProvider } from './services/providers/openai/OpenAIChatServiceProvider';
11
11
  export { OpenAICompatibleChatServiceProvider } from './services/providers/openaiCompatible/OpenAICompatibleChatServiceProvider';
@@ -17,6 +17,8 @@ export { OpenRouterChatService } from './services/providers/openrouter/OpenRoute
17
17
  export { OpenRouterChatServiceProvider } from './services/providers/openrouter/OpenRouterChatServiceProvider';
18
18
  export { ZAIChatService } from './services/providers/zai/ZAIChatService';
19
19
  export { ZAIChatServiceProvider } from './services/providers/zai/ZAIChatServiceProvider';
20
+ export { XAIChatService } from './services/providers/xai/XAIChatService';
21
+ export { XAIChatServiceProvider } from './services/providers/xai/XAIChatServiceProvider';
20
22
  export { KimiChatService } from './services/providers/kimi/KimiChatService';
21
23
  export { KimiChatServiceProvider } from './services/providers/kimi/KimiChatServiceProvider';
22
24
  export * from './constants';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,SAAS,CAAC;AAGxB,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,YAAY,EACV,kBAAkB,EAClB,4BAA4B,EAC5B,gBAAgB,EAChB,wBAAwB,EACxB,kCAAkC,EAClC,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,0CAA0C,CAAC;AAGlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAClG,OAAO,EAAE,mCAAmC,EAAE,MAAM,2EAA2E,CAAC;AAGhI,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAGlG,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAGlG,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAC9F,OAAO,EAAE,6BAA6B,EAAE,MAAM,+DAA+D,CAAC;AAG9G,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AAGzF,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAG5F,cAAc,aAAa,CAAC;AAG5B,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,SAAS,CAAC;AAGxB,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,YAAY,EACV,kBAAkB,EAClB,4BAA4B,EAC5B,gBAAgB,EAChB,wBAAwB,EACxB,kCAAkC,EAClC,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,0CAA0C,CAAC;AAGlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAClG,OAAO,EAAE,mCAAmC,EAAE,MAAM,2EAA2E,CAAC;AAGhI,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAGlG,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAGlG,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAC9F,OAAO,EAAE,6BAA6B,EAAE,MAAM,+DAA+D,CAAC;AAG9G,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AAGzF,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AAGzF,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAG5F,cAAc,aAAa,CAAC;AAG5B,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/esm/index.js CHANGED
@@ -21,6 +21,9 @@ export { OpenRouterChatServiceProvider } from './services/providers/openrouter/O
21
21
  // Z.ai provider exports
22
22
  export { ZAIChatService } from './services/providers/zai/ZAIChatService';
23
23
  export { ZAIChatServiceProvider } from './services/providers/zai/ZAIChatServiceProvider';
24
+ // xAI provider exports
25
+ export { XAIChatService } from './services/providers/xai/XAIChatService';
26
+ export { XAIChatServiceProvider } from './services/providers/xai/XAIChatServiceProvider';
24
27
  // Kimi provider exports
25
28
  export { KimiChatService } from './services/providers/kimi/KimiChatService';
26
29
  export { KimiChatServiceProvider } from './services/providers/kimi/KimiChatServiceProvider';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,2BAA2B;AAC3B,cAAc,SAAS,CAAC;AAIxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAkBnE,0BAA0B;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAClG,OAAO,EAAE,mCAAmC,EAAE,MAAM,2EAA2E,CAAC;AAEhI,0BAA0B;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAElG,0BAA0B;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAElG,8BAA8B;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAC9F,OAAO,EAAE,6BAA6B,EAAE,MAAM,+DAA+D,CAAC;AAE9G,wBAAwB;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AAEzF,wBAAwB;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAE5F,oBAAoB;AACpB,cAAc,aAAa,CAAC;AAE5B,kBAAkB;AAClB,cAAc,SAAS,CAAC;AAExB,WAAW;AACX,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,2BAA2B;AAC3B,cAAc,SAAS,CAAC;AAIxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAmBnE,0BAA0B;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAClG,OAAO,EAAE,mCAAmC,EAAE,MAAM,2EAA2E,CAAC;AAEhI,0BAA0B;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAElG,0BAA0B;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAElG,8BAA8B;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAC9F,OAAO,EAAE,6BAA6B,EAAE,MAAM,+DAA+D,CAAC;AAE9G,wBAAwB;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AAEzF,uBAAuB;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AAEzF,wBAAwB;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAE5F,oBAAoB;AACpB,cAAc,aAAa,CAAC;AAE5B,kBAAkB;AAClB,cAAc,SAAS,CAAC;AAExB,WAAW;AACX,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
@@ -69,6 +69,7 @@ export type ClaudeChatServiceOptions = DisallowKeys<BaseChatServiceOptions, 'end
69
69
  };
70
70
  export type KimiChatServiceOptions = DisallowKeys<BaseChatServiceOptions, 'verbosity' | 'reasoning_effort' | 'gpt5Preset' | 'gpt5EndpointPreference' | 'enableReasoningSummary' | 'includeReasoning' | 'reasoningMaxTokens'>;
71
71
  export type ZAIChatServiceOptions = DisallowKeys<BaseChatServiceOptions, 'verbosity' | 'reasoning_effort' | 'gpt5Preset' | 'gpt5EndpointPreference' | 'enableReasoningSummary' | 'includeReasoning' | 'reasoningMaxTokens' | 'baseUrl'>;
72
+ export type XAIChatServiceOptions = DisallowKeys<BaseChatServiceOptions, 'verbosity' | 'reasoning_effort' | 'gpt5Preset' | 'gpt5EndpointPreference' | 'enableReasoningSummary' | 'includeReasoning' | 'reasoningMaxTokens' | 'baseUrl' | 'thinking' | 'responseFormat'>;
72
73
  export type ChatServiceOptions<TExtra extends Record<string, unknown> = Record<string, unknown>> = BaseChatServiceOptions & TExtra;
73
74
  export type ChatServiceOptionsByProvider = {
74
75
  openai: OpenAIChatServiceOptions;
@@ -77,6 +78,7 @@ export type ChatServiceOptionsByProvider = {
77
78
  gemini: GeminiChatServiceOptions;
78
79
  claude: ClaudeChatServiceOptions;
79
80
  zai: ZAIChatServiceOptions;
81
+ xai: XAIChatServiceOptions;
80
82
  kimi: KimiChatServiceOptions;
81
83
  };
82
84
  export type ChatProviderName = keyof ChatServiceOptionsByProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"ChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../src/services/providers/ChatServiceProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../src/services/providers/ChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,cAAc;IACd,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,qDAAqD;IACrD,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,uFAAuF;IACvF,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5E,2FAA2F;IAC3F,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,+IAA+I;IAC/I,sBAAsB,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IACvD,mGAAmG;IACnG,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,+FAA+F;IAC/F,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,+DAA+D;IAC/D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oDAAoD;IACpD,cAAc,CAAC,EAAE;QACf,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,aAAa,CAAC;QAC7C,WAAW,CAAC,EAAE,GAAG,CAAC;KACnB,CAAC;IACF,6CAA6C;IAC7C,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;QAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF,iDAAiD;IACjD,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;KACpD,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK;CACjB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,YAAY,CACjD,sBAAsB,EACtB,SAAS,GAAG,UAAU,GAAG,kBAAkB,GAAG,oBAAoB,CACnE,GAAG;IACF,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG,IAAI,CACnD,wBAAwB,EACxB,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,YAAY,CAC/C,GAAG;IACF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,KAAK,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,YAAY,CACrD,sBAAsB,EACpB,YAAY,GACZ,wBAAwB,GACxB,wBAAwB,GACxB,WAAW,GACX,SAAS,GACT,UAAU,GACV,gBAAgB,CACnB,GAAG;IACF,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,YAAY,CACjD,sBAAsB,EACpB,UAAU,GACV,SAAS,GACT,WAAW,GACX,kBAAkB,GAClB,YAAY,GACZ,wBAAwB,GACxB,wBAAwB,GACxB,kBAAkB,GAClB,oBAAoB,GACpB,gBAAgB,GAChB,UAAU,CACb,GAAG;IACF,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,YAAY,CACjD,sBAAsB,EACpB,UAAU,GACV,SAAS,GACT,WAAW,GACX,kBAAkB,GAClB,YAAY,GACZ,wBAAwB,GACxB,wBAAwB,GACxB,kBAAkB,GAClB,oBAAoB,GACpB,gBAAgB,GAChB,UAAU,CACb,GAAG;IACF,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,YAAY,CAC/C,sBAAsB,EACpB,WAAW,GACX,kBAAkB,GAClB,YAAY,GACZ,wBAAwB,GACxB,wBAAwB,GACxB,kBAAkB,GAClB,oBAAoB,CACvB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,YAAY,CAC9C,sBAAsB,EACpB,WAAW,GACX,kBAAkB,GAClB,YAAY,GACZ,wBAAwB,GACxB,wBAAwB,GACxB,kBAAkB,GAClB,oBAAoB,GACpB,SAAS,CACZ,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,YAAY,CAC9C,sBAAsB,EACpB,WAAW,GACX,kBAAkB,GAClB,YAAY,GACZ,wBAAwB,GACxB,wBAAwB,GACxB,kBAAkB,GAClB,oBAAoB,GACpB,SAAS,GACT,UAAU,GACV,gBAAgB,CACnB,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAC5B,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC9D,sBAAsB,GAAG,MAAM,CAAC;AAEpC,MAAM,MAAM,4BAA4B,GAAG;IACzC,MAAM,EAAE,wBAAwB,CAAC;IACjC,mBAAmB,EAAE,kCAAkC,CAAC;IACxD,UAAU,EAAE,4BAA4B,CAAC;IACzC,MAAM,EAAE,wBAAwB,CAAC;IACjC,MAAM,EAAE,wBAAwB,CAAC;IACjC,GAAG,EAAE,qBAAqB,CAAC;IAC3B,GAAG,EAAE,qBAAqB,CAAC;IAC3B,IAAI,EAAE,sBAAsB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,MAAM,4BAA4B,CAAC;AAElE,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;AAEzE;;;GAGG;AACH,MAAM,WAAW,mBAAmB,CAAC,QAAQ,GAAG,sBAAsB;IACpE;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,QAAQ,GAAG,WAAW,CAAC;IAElD;;;OAGG;IACH,eAAe,IAAI,MAAM,CAAC;IAE1B;;;OAGG;IACH,kBAAkB,IAAI,MAAM,EAAE,CAAC;IAE/B;;;OAGG;IACH,eAAe,IAAI,MAAM,CAAC;IAE1B;;;;;OAKG;IACH,qBAAqB,IAAI,kBAAkB,CAAC;IAE5C;;OAEG;IACH,6BAA6B,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAAC;IAElE;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC;IAE1B;;;OAGG;IACH,sBAAsB,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CACjD"}
@@ -4,6 +4,7 @@ import { KimiChatServiceProvider } from './kimi/KimiChatServiceProvider';
4
4
  import { OpenAICompatibleChatServiceProvider } from './openaiCompatible/OpenAICompatibleChatServiceProvider';
5
5
  import { OpenAIChatServiceProvider } from './openai/OpenAIChatServiceProvider';
6
6
  import { OpenRouterChatServiceProvider } from './openrouter/OpenRouterChatServiceProvider';
7
+ import { XAIChatServiceProvider } from './xai/XAIChatServiceProvider';
7
8
  import { ZAIChatServiceProvider } from './zai/ZAIChatServiceProvider';
8
- export declare const DEFAULT_CHAT_SERVICE_PROVIDERS: (ClaudeChatServiceProvider | GeminiChatServiceProvider | KimiChatServiceProvider | OpenAICompatibleChatServiceProvider | OpenAIChatServiceProvider | OpenRouterChatServiceProvider | ZAIChatServiceProvider)[];
9
+ export declare const DEFAULT_CHAT_SERVICE_PROVIDERS: (ClaudeChatServiceProvider | GeminiChatServiceProvider | KimiChatServiceProvider | OpenAICompatibleChatServiceProvider | OpenAIChatServiceProvider | OpenRouterChatServiceProvider | XAIChatServiceProvider | ZAIChatServiceProvider)[];
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,mCAAmC,EAAE,MAAM,wDAAwD,CAAC;AAC7G,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,eAAO,MAAM,8BAA8B,gNAQ1C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,mCAAmC,EAAE,MAAM,wDAAwD,CAAC;AAC7G,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,eAAO,MAAM,8BAA8B,yOAS1C,CAAC"}
@@ -4,6 +4,7 @@ import { KimiChatServiceProvider } from './kimi/KimiChatServiceProvider';
4
4
  import { OpenAICompatibleChatServiceProvider } from './openaiCompatible/OpenAICompatibleChatServiceProvider';
5
5
  import { OpenAIChatServiceProvider } from './openai/OpenAIChatServiceProvider';
6
6
  import { OpenRouterChatServiceProvider } from './openrouter/OpenRouterChatServiceProvider';
7
+ import { XAIChatServiceProvider } from './xai/XAIChatServiceProvider';
7
8
  import { ZAIChatServiceProvider } from './zai/ZAIChatServiceProvider';
8
9
  export const DEFAULT_CHAT_SERVICE_PROVIDERS = [
9
10
  new OpenAIChatServiceProvider(),
@@ -12,6 +13,7 @@ export const DEFAULT_CHAT_SERVICE_PROVIDERS = [
12
13
  new ClaudeChatServiceProvider(),
13
14
  new OpenRouterChatServiceProvider(),
14
15
  new ZAIChatServiceProvider(),
16
+ new XAIChatServiceProvider(),
15
17
  new KimiChatServiceProvider(),
16
18
  ];
17
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,mCAAmC,EAAE,MAAM,wDAAwD,CAAC;AAC7G,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,IAAI,yBAAyB,EAAE;IAC/B,IAAI,mCAAmC,EAAE;IACzC,IAAI,yBAAyB,EAAE;IAC/B,IAAI,yBAAyB,EAAE;IAC/B,IAAI,6BAA6B,EAAE;IACnC,IAAI,sBAAsB,EAAE;IAC5B,IAAI,uBAAuB,EAAE;CAC9B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,mCAAmC,EAAE,MAAM,wDAAwD,CAAC;AAC7G,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,IAAI,yBAAyB,EAAE;IAC/B,IAAI,mCAAmC,EAAE;IACzC,IAAI,yBAAyB,EAAE;IAC/B,IAAI,yBAAyB,EAAE;IAC/B,IAAI,6BAA6B,EAAE;IACnC,IAAI,sBAAsB,EAAE;IAC5B,IAAI,sBAAsB,EAAE;IAC5B,IAAI,uBAAuB,EAAE;CAC9B,CAAC"}
@@ -0,0 +1,65 @@
1
+ import { ChatService } from '../../ChatService';
2
+ import { Message, MessageWithVision } from '../../../types';
3
+ import { ToolDefinition, ToolChatCompletion } from '../../../types';
4
+ import { ChatResponseLength } from '../../../constants/chat';
5
+ /**
6
+ * xAI implementation of ChatService (OpenAI-compatible Chat Completions)
7
+ */
8
+ export declare class XAIChatService implements ChatService {
9
+ /** Provider name */
10
+ readonly provider: string;
11
+ private apiKey;
12
+ private model;
13
+ private visionModel;
14
+ private tools;
15
+ private endpoint;
16
+ private responseLength?;
17
+ /**
18
+ * Constructor
19
+ * @param apiKey xAI API key
20
+ * @param model Name of the model to use
21
+ * @param visionModel Name of the vision model
22
+ */
23
+ constructor(apiKey: string, model?: string, visionModel?: string, tools?: ToolDefinition[], endpoint?: string, responseLength?: ChatResponseLength);
24
+ /**
25
+ * Get the current model name
26
+ */
27
+ getModel(): string;
28
+ /**
29
+ * Get the current vision model name
30
+ */
31
+ getVisionModel(): string;
32
+ /**
33
+ * Process chat messages
34
+ */
35
+ processChat(messages: Message[], onPartialResponse: (text: string) => void, onCompleteResponse: (text: string) => Promise<void>): Promise<void>;
36
+ /**
37
+ * Process chat messages with images
38
+ */
39
+ processVisionChat(messages: MessageWithVision[], onPartialResponse: (text: string) => void, onCompleteResponse: (text: string) => Promise<void>): Promise<void>;
40
+ /**
41
+ * Process chat messages with tools (text only)
42
+ */
43
+ chatOnce(messages: Message[], stream?: boolean, onPartialResponse?: (text: string) => void, maxTokens?: number): Promise<ToolChatCompletion>;
44
+ /**
45
+ * Process vision chat messages with tools
46
+ */
47
+ visionChatOnce(messages: MessageWithVision[], stream?: boolean, onPartialResponse?: (text: string) => void, maxTokens?: number): Promise<ToolChatCompletion>;
48
+ private parseResponse;
49
+ private callXAI;
50
+ /**
51
+ * Build request body (OpenAI-compatible Chat Completions)
52
+ */
53
+ private buildRequestBody;
54
+ private buildToolsDefinition;
55
+ private handleStream;
56
+ /**
57
+ * Parse streaming response with tool support
58
+ */
59
+ private parseStream;
60
+ /**
61
+ * Parse non-streaming response
62
+ */
63
+ private parseOneShot;
64
+ }
65
+ //# sourceMappingURL=XAIChatService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XAIChatService.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/xai/XAIChatService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAMpE,OAAO,EACL,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAUjC;;GAEG;AACH,qBAAa,cAAe,YAAW,WAAW;IAChD,oBAAoB;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAS;IAElC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,cAAc,CAAC,CAAqB;IAE5C;;;;;OAKG;gBAED,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAA0C,EACjD,WAAW,GAAE,MAA0C,EACvD,KAAK,CAAC,EAAE,cAAc,EAAE,EACxB,QAAQ,GAAE,MAA0C,EACpD,cAAc,CAAC,EAAE,kBAAkB;IAUrC;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACG,WAAW,CACf,QAAQ,EAAE,OAAO,EAAE,EACnB,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EACzC,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAClD,OAAO,CAAC,IAAI,CAAC;IAehB;;OAEG;IACG,iBAAiB,CACrB,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EACzC,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAClD,OAAO,CAAC,IAAI,CAAC;IAsBhB;;OAEG;IACG,QAAQ,CACZ,QAAQ,EAAE,OAAO,EAAE,EACnB,MAAM,GAAE,OAAc,EACtB,iBAAiB,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAe,EACpD,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC;IAK9B;;OAEG;IACG,cAAc,CAClB,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,MAAM,GAAE,OAAe,EACvB,iBAAiB,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAe,EACpD,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC;YAgBhB,aAAa;YAUb,OAAO;IAerB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA6BxB,OAAO,CAAC,oBAAoB;YAId,YAAY;IAO1B;;OAEG;YACW,WAAW;IAUzB;;OAEG;IACH,OAAO,CAAC,YAAY;CAGrB"}
@@ -0,0 +1,146 @@
1
+ import { ENDPOINT_XAI_CHAT_COMPLETIONS_API, MODEL_GROK_4_1_FAST_NON_REASONING, isXaiVisionModel, } from '../../../constants/xai';
2
+ import { getMaxTokensForResponseLength, } from '../../../constants/chat';
3
+ import { ChatServiceHttpClient } from '../../../utils/chatServiceHttpClient';
4
+ import { buildOpenAICompatibleTools, parseOpenAICompatibleOneShot, parseOpenAICompatibleTextStream, parseOpenAICompatibleToolStream, processChatWithOptionalTools, } from '../../../utils';
5
+ /**
6
+ * xAI implementation of ChatService (OpenAI-compatible Chat Completions)
7
+ */
8
+ export class XAIChatService {
9
+ /**
10
+ * Constructor
11
+ * @param apiKey xAI API key
12
+ * @param model Name of the model to use
13
+ * @param visionModel Name of the vision model
14
+ */
15
+ constructor(apiKey, model = MODEL_GROK_4_1_FAST_NON_REASONING, visionModel = MODEL_GROK_4_1_FAST_NON_REASONING, tools, endpoint = ENDPOINT_XAI_CHAT_COMPLETIONS_API, responseLength) {
16
+ /** Provider name */
17
+ this.provider = 'xai';
18
+ this.apiKey = apiKey;
19
+ this.model = model;
20
+ this.tools = tools || [];
21
+ this.endpoint = endpoint;
22
+ this.responseLength = responseLength;
23
+ this.visionModel = visionModel;
24
+ }
25
+ /**
26
+ * Get the current model name
27
+ */
28
+ getModel() {
29
+ return this.model;
30
+ }
31
+ /**
32
+ * Get the current vision model name
33
+ */
34
+ getVisionModel() {
35
+ return this.visionModel;
36
+ }
37
+ /**
38
+ * Process chat messages
39
+ */
40
+ async processChat(messages, onPartialResponse, onCompleteResponse) {
41
+ await processChatWithOptionalTools({
42
+ hasTools: this.tools.length > 0,
43
+ runWithoutTools: async () => {
44
+ const res = await this.callXAI(messages, this.model, true);
45
+ return this.handleStream(res, onPartialResponse);
46
+ },
47
+ runWithTools: () => this.chatOnce(messages, true, onPartialResponse),
48
+ onCompleteResponse,
49
+ toolErrorMessage: 'processChat received tool_calls. ' +
50
+ 'ChatProcessor must use chatOnce() loop when tools are enabled.',
51
+ });
52
+ }
53
+ /**
54
+ * Process chat messages with images
55
+ */
56
+ async processVisionChat(messages, onPartialResponse, onCompleteResponse) {
57
+ if (!isXaiVisionModel(this.visionModel)) {
58
+ throw new Error(`Model ${this.visionModel} does not support vision capabilities.`);
59
+ }
60
+ await processChatWithOptionalTools({
61
+ hasTools: this.tools.length > 0,
62
+ runWithoutTools: async () => {
63
+ const res = await this.callXAI(messages, this.visionModel, true);
64
+ return this.handleStream(res, onPartialResponse);
65
+ },
66
+ runWithTools: () => this.visionChatOnce(messages, true, onPartialResponse),
67
+ onCompleteResponse,
68
+ toolErrorMessage: 'processVisionChat received tool_calls. ' +
69
+ 'ChatProcessor must use visionChatOnce() loop when tools are enabled.',
70
+ });
71
+ }
72
+ /**
73
+ * Process chat messages with tools (text only)
74
+ */
75
+ async chatOnce(messages, stream = true, onPartialResponse = () => { }, maxTokens) {
76
+ const res = await this.callXAI(messages, this.model, stream, maxTokens);
77
+ return this.parseResponse(res, stream, onPartialResponse);
78
+ }
79
+ /**
80
+ * Process vision chat messages with tools
81
+ */
82
+ async visionChatOnce(messages, stream = false, onPartialResponse = () => { }, maxTokens) {
83
+ if (!isXaiVisionModel(this.visionModel)) {
84
+ throw new Error(`Model ${this.visionModel} does not support vision capabilities.`);
85
+ }
86
+ const res = await this.callXAI(messages, this.visionModel, stream, maxTokens);
87
+ return this.parseResponse(res, stream, onPartialResponse);
88
+ }
89
+ async parseResponse(res, stream, onPartialResponse) {
90
+ return stream
91
+ ? this.parseStream(res, onPartialResponse)
92
+ : this.parseOneShot(await res.json());
93
+ }
94
+ async callXAI(messages, model, stream = false, maxTokens) {
95
+ const body = this.buildRequestBody(messages, model, stream, maxTokens);
96
+ const res = await ChatServiceHttpClient.post(this.endpoint, body, {
97
+ Authorization: `Bearer ${this.apiKey}`,
98
+ });
99
+ return res;
100
+ }
101
+ /**
102
+ * Build request body (OpenAI-compatible Chat Completions)
103
+ */
104
+ buildRequestBody(messages, model, stream, maxTokens) {
105
+ const body = {
106
+ model,
107
+ stream,
108
+ messages,
109
+ };
110
+ const tokenLimit = maxTokens !== undefined
111
+ ? maxTokens
112
+ : getMaxTokensForResponseLength(this.responseLength);
113
+ if (tokenLimit !== undefined) {
114
+ body.max_tokens = tokenLimit;
115
+ }
116
+ const tools = this.buildToolsDefinition();
117
+ if (tools.length > 0) {
118
+ body.tools = tools;
119
+ body.tool_choice = 'auto';
120
+ }
121
+ return body;
122
+ }
123
+ buildToolsDefinition() {
124
+ return buildOpenAICompatibleTools(this.tools, 'chat-completions');
125
+ }
126
+ async handleStream(res, onPartial) {
127
+ return parseOpenAICompatibleTextStream(res, onPartial, {
128
+ onJsonError: (payload) => console.debug('Failed to parse SSE data:', payload),
129
+ });
130
+ }
131
+ /**
132
+ * Parse streaming response with tool support
133
+ */
134
+ async parseStream(res, onPartial) {
135
+ return parseOpenAICompatibleToolStream(res, onPartial, {
136
+ onJsonError: (payload) => console.debug('Failed to parse SSE data:', payload),
137
+ });
138
+ }
139
+ /**
140
+ * Parse non-streaming response
141
+ */
142
+ parseOneShot(data) {
143
+ return parseOpenAICompatibleOneShot(data);
144
+ }
145
+ }
146
+ //# sourceMappingURL=XAIChatService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XAIChatService.js","sourceRoot":"","sources":["../../../../../src/services/providers/xai/XAIChatService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { ChatService } from '../../ChatService';
2
+ import { XAIChatServiceOptions, ChatServiceProvider, VisionSupportLevel } from '../ChatServiceProvider';
3
+ /**
4
+ * xAI API provider implementation
5
+ */
6
+ export declare class XAIChatServiceProvider implements ChatServiceProvider<XAIChatServiceOptions> {
7
+ /**
8
+ * Create a chat service instance
9
+ */
10
+ createChatService(options: XAIChatServiceOptions): ChatService;
11
+ /**
12
+ * Get the provider name
13
+ */
14
+ getProviderName(): string;
15
+ /**
16
+ * Get the list of supported models
17
+ */
18
+ getSupportedModels(): string[];
19
+ /**
20
+ * Get the default model
21
+ */
22
+ getDefaultModel(): string;
23
+ /**
24
+ * Get the default vision model
25
+ */
26
+ private getDefaultVisionModel;
27
+ /**
28
+ * Check if this provider supports vision
29
+ */
30
+ supportsVision(): boolean;
31
+ getVisionSupportLevel(): VisionSupportLevel;
32
+ /**
33
+ * Check if a specific model supports vision capabilities
34
+ */
35
+ supportsVisionForModel(model: string): boolean;
36
+ getVisionSupportLevelForModel(model: string): VisionSupportLevel;
37
+ }
38
+ //# sourceMappingURL=XAIChatServiceProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XAIChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/xai/XAIChatServiceProvider.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAIhC;;GAEG;AACH,qBAAa,sBACX,YAAW,mBAAmB,CAAC,qBAAqB,CAAC;IAErD;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,WAAW;IAwB9D;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAS9B;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;OAEG;IACH,cAAc,IAAI,OAAO;IAIzB,qBAAqB,IAAI,kBAAkB;IAI3C;;OAEG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI9C,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;CAGjE"}
@@ -0,0 +1,72 @@
1
+ import { ENDPOINT_XAI_CHAT_COMPLETIONS_API, MODEL_GROK_4_20_REASONING, MODEL_GROK_4_20_NON_REASONING, MODEL_GROK_4_1_FAST_REASONING, MODEL_GROK_4_1_FAST_NON_REASONING, isXaiVisionModel, } from '../../../constants/xai';
2
+ import { XAIChatService } from './XAIChatService';
3
+ import { resolveVisionModel } from '../../../utils';
4
+ /**
5
+ * xAI API provider implementation
6
+ */
7
+ export class XAIChatServiceProvider {
8
+ /**
9
+ * Create a chat service instance
10
+ */
11
+ createChatService(options) {
12
+ const model = options.model || this.getDefaultModel();
13
+ const visionModel = resolveVisionModel({
14
+ model,
15
+ visionModel: options.visionModel,
16
+ defaultModel: this.getDefaultModel(),
17
+ defaultVisionModel: this.getDefaultVisionModel(),
18
+ supportsVisionForModel: (visionModel) => this.supportsVisionForModel(visionModel),
19
+ validate: 'explicit',
20
+ });
21
+ const tools = options.tools;
22
+ return new XAIChatService(options.apiKey, model, visionModel, tools, options.endpoint || ENDPOINT_XAI_CHAT_COMPLETIONS_API, options.responseLength);
23
+ }
24
+ /**
25
+ * Get the provider name
26
+ */
27
+ getProviderName() {
28
+ return 'xai';
29
+ }
30
+ /**
31
+ * Get the list of supported models
32
+ */
33
+ getSupportedModels() {
34
+ return [
35
+ MODEL_GROK_4_20_REASONING,
36
+ MODEL_GROK_4_20_NON_REASONING,
37
+ MODEL_GROK_4_1_FAST_REASONING,
38
+ MODEL_GROK_4_1_FAST_NON_REASONING,
39
+ ];
40
+ }
41
+ /**
42
+ * Get the default model
43
+ */
44
+ getDefaultModel() {
45
+ return MODEL_GROK_4_1_FAST_NON_REASONING;
46
+ }
47
+ /**
48
+ * Get the default vision model
49
+ */
50
+ getDefaultVisionModel() {
51
+ return MODEL_GROK_4_1_FAST_NON_REASONING;
52
+ }
53
+ /**
54
+ * Check if this provider supports vision
55
+ */
56
+ supportsVision() {
57
+ return this.getVisionSupportLevel() !== 'unsupported';
58
+ }
59
+ getVisionSupportLevel() {
60
+ return 'supported';
61
+ }
62
+ /**
63
+ * Check if a specific model supports vision capabilities
64
+ */
65
+ supportsVisionForModel(model) {
66
+ return isXaiVisionModel(model);
67
+ }
68
+ getVisionSupportLevelForModel(model) {
69
+ return this.supportsVisionForModel(model) ? 'supported' : 'unsupported';
70
+ }
71
+ }
72
+ //# sourceMappingURL=XAIChatServiceProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XAIChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/xai/XAIChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,yBAAyB,EACzB,6BAA6B,EAC7B,6BAA6B,EAC7B,iCAAiC,EACjC,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;GAEG;AACH,MAAM,OAAO,sBAAsB;IAGjC;;OAEG;IACH,iBAAiB,CAAC,OAA8B;QAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACtD,MAAM,WAAW,GAAG,kBAAkB,CAAC;YACrC,KAAK;YACL,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;YACpC,kBAAkB,EAAE,IAAI,CAAC,qBAAqB,EAAE;YAChD,sBAAsB,EAAE,CAAC,WAAW,EAAE,EAAE,CACtC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC;YAC1C,QAAQ,EAAE,UAAU;SACrB,CAAC,CAAC;QAEH,MAAM,KAAK,GAAiC,OAAO,CAAC,KAAK,CAAC;QAE1D,OAAO,IAAI,cAAc,CACvB,OAAO,CAAC,MAAM,EACd,KAAK,EACL,WAAW,EACX,KAAK,EACL,OAAO,CAAC,QAAQ,IAAI,iCAAiC,EACrD,OAAO,CAAC,cAAc,CACvB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO;YACL,yBAAyB;YACzB,6BAA6B;YAC7B,6BAA6B;YAC7B,iCAAiC;SAClC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,iCAAiC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,OAAO,iCAAiC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,qBAAqB,EAAE,KAAK,aAAa,CAAC;IACxD,CAAC;IAED,qBAAqB;QACnB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,KAAa;QAClC,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,6BAA6B,CAAC,KAAa;QACzC,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;IAC1E,CAAC;CACF"}