@aituber-onair/chat 0.55.0 → 0.57.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 (95) hide show
  1. package/README.ja.md +48 -8
  2. package/README.md +54 -9
  3. package/dist/cjs/constants/claude.d.ts +1 -0
  4. package/dist/cjs/constants/claude.d.ts.map +1 -1
  5. package/dist/cjs/constants/claude.js +3 -1
  6. package/dist/cjs/constants/claude.js.map +1 -1
  7. package/dist/cjs/constants/openai.d.ts +5 -3
  8. package/dist/cjs/constants/openai.d.ts.map +1 -1
  9. package/dist/cjs/constants/openai.js +24 -7
  10. package/dist/cjs/constants/openai.js.map +1 -1
  11. package/dist/cjs/constants/xai.d.ts +1 -0
  12. package/dist/cjs/constants/xai.d.ts.map +1 -1
  13. package/dist/cjs/constants/xai.js +7 -2
  14. package/dist/cjs/constants/xai.js.map +1 -1
  15. package/dist/cjs/services/ChatService.d.ts +2 -0
  16. package/dist/cjs/services/ChatService.d.ts.map +1 -1
  17. package/dist/cjs/services/ChatServiceFactory.d.ts.map +1 -1
  18. package/dist/cjs/services/ChatServiceFactory.js +20 -15
  19. package/dist/cjs/services/ChatServiceFactory.js.map +1 -1
  20. package/dist/cjs/services/providers/ChatServiceProvider.d.ts +2 -0
  21. package/dist/cjs/services/providers/ChatServiceProvider.d.ts.map +1 -1
  22. package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.d.ts.map +1 -1
  23. package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.js +1 -0
  24. package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.js.map +1 -1
  25. package/dist/cjs/services/providers/geminiNano/GeminiNanoChatService.d.ts +24 -3
  26. package/dist/cjs/services/providers/geminiNano/GeminiNanoChatService.d.ts.map +1 -1
  27. package/dist/cjs/services/providers/geminiNano/GeminiNanoChatService.js +211 -15
  28. package/dist/cjs/services/providers/geminiNano/GeminiNanoChatService.js.map +1 -1
  29. package/dist/cjs/services/providers/geminiNano/GeminiNanoChatServiceProvider.d.ts.map +1 -1
  30. package/dist/cjs/services/providers/geminiNano/GeminiNanoChatServiceProvider.js +1 -0
  31. package/dist/cjs/services/providers/geminiNano/GeminiNanoChatServiceProvider.js.map +1 -1
  32. package/dist/cjs/services/providers/openai/OpenAIChatService.js +1 -1
  33. package/dist/cjs/services/providers/openai/OpenAIChatService.js.map +1 -1
  34. package/dist/cjs/services/providers/openai/OpenAIChatServiceProvider.d.ts.map +1 -1
  35. package/dist/cjs/services/providers/openai/OpenAIChatServiceProvider.js +10 -0
  36. package/dist/cjs/services/providers/openai/OpenAIChatServiceProvider.js.map +1 -1
  37. package/dist/cjs/services/providers/xai/XAIChatServiceProvider.d.ts.map +1 -1
  38. package/dist/cjs/services/providers/xai/XAIChatServiceProvider.js +1 -0
  39. package/dist/cjs/services/providers/xai/XAIChatServiceProvider.js.map +1 -1
  40. package/dist/cjs/utils/index.d.ts +1 -0
  41. package/dist/cjs/utils/index.d.ts.map +1 -1
  42. package/dist/cjs/utils/index.js +1 -0
  43. package/dist/cjs/utils/index.js.map +1 -1
  44. package/dist/cjs/utils/openaiCompatibleEndpoint.d.ts +57 -0
  45. package/dist/cjs/utils/openaiCompatibleEndpoint.d.ts.map +1 -0
  46. package/dist/cjs/utils/openaiCompatibleEndpoint.js +193 -0
  47. package/dist/cjs/utils/openaiCompatibleEndpoint.js.map +1 -0
  48. package/dist/esm/constants/claude.d.ts +1 -0
  49. package/dist/esm/constants/claude.d.ts.map +1 -1
  50. package/dist/esm/constants/claude.js +2 -0
  51. package/dist/esm/constants/claude.js.map +1 -1
  52. package/dist/esm/constants/openai.d.ts +5 -3
  53. package/dist/esm/constants/openai.d.ts.map +1 -1
  54. package/dist/esm/constants/openai.js +23 -6
  55. package/dist/esm/constants/openai.js.map +1 -1
  56. package/dist/esm/constants/xai.d.ts +1 -0
  57. package/dist/esm/constants/xai.d.ts.map +1 -1
  58. package/dist/esm/constants/xai.js +6 -1
  59. package/dist/esm/constants/xai.js.map +1 -1
  60. package/dist/esm/services/ChatService.d.ts +2 -0
  61. package/dist/esm/services/ChatService.d.ts.map +1 -1
  62. package/dist/esm/services/ChatServiceFactory.d.ts.map +1 -1
  63. package/dist/esm/services/ChatServiceFactory.js +21 -16
  64. package/dist/esm/services/ChatServiceFactory.js.map +1 -1
  65. package/dist/esm/services/providers/ChatServiceProvider.d.ts +2 -0
  66. package/dist/esm/services/providers/ChatServiceProvider.d.ts.map +1 -1
  67. package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.d.ts.map +1 -1
  68. package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.js +2 -1
  69. package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.js.map +1 -1
  70. package/dist/esm/services/providers/geminiNano/GeminiNanoChatService.d.ts +24 -3
  71. package/dist/esm/services/providers/geminiNano/GeminiNanoChatService.d.ts.map +1 -1
  72. package/dist/esm/services/providers/geminiNano/GeminiNanoChatService.js +211 -15
  73. package/dist/esm/services/providers/geminiNano/GeminiNanoChatService.js.map +1 -1
  74. package/dist/esm/services/providers/geminiNano/GeminiNanoChatServiceProvider.d.ts.map +1 -1
  75. package/dist/esm/services/providers/geminiNano/GeminiNanoChatServiceProvider.js +1 -0
  76. package/dist/esm/services/providers/geminiNano/GeminiNanoChatServiceProvider.js.map +1 -1
  77. package/dist/esm/services/providers/openai/OpenAIChatService.js +1 -1
  78. package/dist/esm/services/providers/openai/OpenAIChatService.js.map +1 -1
  79. package/dist/esm/services/providers/openai/OpenAIChatServiceProvider.d.ts.map +1 -1
  80. package/dist/esm/services/providers/openai/OpenAIChatServiceProvider.js +11 -1
  81. package/dist/esm/services/providers/openai/OpenAIChatServiceProvider.js.map +1 -1
  82. package/dist/esm/services/providers/xai/XAIChatServiceProvider.d.ts.map +1 -1
  83. package/dist/esm/services/providers/xai/XAIChatServiceProvider.js +2 -1
  84. package/dist/esm/services/providers/xai/XAIChatServiceProvider.js.map +1 -1
  85. package/dist/esm/utils/index.d.ts +1 -0
  86. package/dist/esm/utils/index.d.ts.map +1 -1
  87. package/dist/esm/utils/index.js +1 -0
  88. package/dist/esm/utils/index.js.map +1 -1
  89. package/dist/esm/utils/openaiCompatibleEndpoint.d.ts +57 -0
  90. package/dist/esm/utils/openaiCompatibleEndpoint.d.ts.map +1 -0
  91. package/dist/esm/utils/openaiCompatibleEndpoint.js +186 -0
  92. package/dist/esm/utils/openaiCompatibleEndpoint.js.map +1 -0
  93. package/dist/umd/aituber-onair-chat.js +500 -25
  94. package/dist/umd/aituber-onair-chat.min.js +8 -8
  95. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { ENDPOINT_OPENAI_CHAT_COMPLETIONS_API, ENDPOINT_OPENAI_RESPONSES_API, MODEL_GPT_5_NANO, MODEL_GPT_5_MINI, MODEL_GPT_5, MODEL_GPT_5_1, MODEL_GPT_5_4, MODEL_GPT_5_5, MODEL_GPT_5_6, MODEL_GPT_6_ASTRA, MODEL_GPT_5_6_SOL, MODEL_GPT_5_6_TERRA, MODEL_GPT_5_6_LUNA, MODEL_GPT_5_4_MINI, MODEL_GPT_5_4_NANO, MODEL_GPT_5_4_PRO, MODEL_GPT_4_1, MODEL_GPT_4_1_MINI, MODEL_GPT_4_1_NANO, MODEL_GPT_4O_MINI, MODEL_GPT_4O, MODEL_O3_MINI, MODEL_O1_MINI, MODEL_O1, VISION_SUPPORTED_MODELS, isOpenAIReasoningModel, isResponsesOnlyGPT5Model, allowsReasoningXHigh, allowsReasoningMax, allowsReasoningNone, allowsReasoningMinimal, allowsReasoningLow, getDefaultReasoningEffortForOpenAIModel, } from '../../../constants';
1
+ import { ENDPOINT_OPENAI_CHAT_COMPLETIONS_API, ENDPOINT_OPENAI_RESPONSES_API, MODEL_GPT_5_NANO, MODEL_GPT_5_MINI, MODEL_GPT_5, MODEL_GPT_5_1, MODEL_GPT_5_4, MODEL_GPT_5_5, MODEL_GPT_5_6, MODEL_GPT_6_ASTRA, MODEL_GPT_6_LUNA, MODEL_GPT_6_SOL, MODEL_GPT_5_6_SOL, MODEL_GPT_5_6_TERRA, MODEL_GPT_5_6_LUNA, MODEL_GPT_5_4_MINI, MODEL_GPT_5_4_NANO, MODEL_GPT_5_4_PRO, MODEL_GPT_4_1, MODEL_GPT_4_1_MINI, MODEL_GPT_4_1_NANO, MODEL_GPT_4O_MINI, MODEL_GPT_4O, MODEL_O3_MINI, MODEL_O1_MINI, MODEL_O1, VISION_SUPPORTED_MODELS, isOpenAIReasoningModel, isResponsesOnlyGPT5Model, allowsReasoningXHigh, allowsReasoningMax, allowsReasoningNone, allowsReasoningMinimal, allowsReasoningLow, getDefaultReasoningEffortForOpenAIModel, } from '../../../constants';
2
2
  import { GPT5_PRESETS } from '../../../constants/chat';
3
3
  import { OpenAIChatService } from './OpenAIChatService';
4
4
  import { resolveVisionModel } from '../../../utils';
@@ -36,6 +36,14 @@ export class OpenAIChatServiceProvider {
36
36
  visionModel === MODEL_GPT_6_ASTRA) {
37
37
  shouldUseResponsesAPI = true;
38
38
  }
39
+ else if (modelName === MODEL_GPT_6_SOL ||
40
+ visionModel === MODEL_GPT_6_SOL ||
41
+ modelName === MODEL_GPT_6_LUNA ||
42
+ visionModel === MODEL_GPT_6_LUNA) {
43
+ const preference = optimizedOptions.gpt5EndpointPreference || 'responses';
44
+ shouldUseResponsesAPI =
45
+ preference !== 'chat' || optimizedOptions.reasoning_effort !== 'none';
46
+ }
39
47
  else if (isResponsesOnlyGPT5Model(modelName)) {
40
48
  // GPT-5.4 Pro is Responses API only
41
49
  shouldUseResponsesAPI = true;
@@ -88,6 +96,8 @@ export class OpenAIChatServiceProvider {
88
96
  MODEL_GPT_5_5,
89
97
  MODEL_GPT_5_6,
90
98
  MODEL_GPT_6_ASTRA,
99
+ MODEL_GPT_6_SOL,
100
+ MODEL_GPT_6_LUNA,
91
101
  MODEL_GPT_5_6_SOL,
92
102
  MODEL_GPT_5_6_TERRA,
93
103
  MODEL_GPT_5_6_LUNA,
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAIChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/openai/OpenAIChatServiceProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OpenAIChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/openai/OpenAIChatServiceProvider.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"XAIChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/xai/XAIChatServiceProvider.ts"],"names":[],"mappings":"AAWA,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;IA4B9D;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAU9B;;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"}
1
+ {"version":3,"file":"XAIChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/xai/XAIChatServiceProvider.ts"],"names":[],"mappings":"AAYA,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;IA4B9D;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAW9B;;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"}
@@ -1,4 +1,4 @@
1
- import { ENDPOINT_XAI_CHAT_COMPLETIONS_API, MODEL_GROK_4_6, MODEL_GROK_4_5, MODEL_GROK_4_3, MODEL_GROK_4_20_REASONING, MODEL_GROK_4_20_NON_REASONING, getDefaultXaiReasoningEffort, isXaiVisionModel, normalizeXaiReasoningEffort, } from '../../../constants/xai';
1
+ import { ENDPOINT_XAI_CHAT_COMPLETIONS_API, MODEL_GROK_4_6, MODEL_GROK_4_7, MODEL_GROK_4_5, MODEL_GROK_4_3, MODEL_GROK_4_20_REASONING, MODEL_GROK_4_20_NON_REASONING, getDefaultXaiReasoningEffort, isXaiVisionModel, normalizeXaiReasoningEffort, } from '../../../constants/xai';
2
2
  import { XAIChatService } from './XAIChatService';
3
3
  import { resolveVisionModel } from '../../../utils';
4
4
  /**
@@ -33,6 +33,7 @@ export class XAIChatServiceProvider {
33
33
  getSupportedModels() {
34
34
  return [
35
35
  MODEL_GROK_4_6,
36
+ MODEL_GROK_4_7,
36
37
  MODEL_GROK_4_5,
37
38
  MODEL_GROK_4_3,
38
39
  MODEL_GROK_4_20_REASONING,
@@ -1 +1 @@
1
- {"version":3,"file":"XAIChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/xai/XAIChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,cAAc,EACd,cAAc,EACd,cAAc,EACd,yBAAyB,EACzB,6BAA6B,EAC7B,4BAA4B,EAC5B,gBAAgB,EAChB,2BAA2B,GAC5B,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,EACtB,2BAA2B,CACzB,KAAK,EACL,OAAO,CAAC,gBAAgB,IAAI,4BAA4B,CAAC,KAAK,CAAC,CAChE,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO;YACL,cAAc;YACd,cAAc;YACd,cAAc;YACd,yBAAyB;YACzB,6BAA6B;SAC9B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,OAAO,cAAc,CAAC;IACxB,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"}
1
+ {"version":3,"file":"XAIChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/xai/XAIChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,yBAAyB,EACzB,6BAA6B,EAC7B,4BAA4B,EAC5B,gBAAgB,EAChB,2BAA2B,GAC5B,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,EACtB,2BAA2B,CACzB,KAAK,EACL,OAAO,CAAC,gBAAgB,IAAI,4BAA4B,CAAC,KAAK,CAAC,CAChE,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO;YACL,cAAc;YACd,cAAc;YACd,cAAc;YACd,cAAc;YACd,yBAAyB;YACzB,6BAA6B;SAC9B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,OAAO,cAAc,CAAC;IACxB,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"}
@@ -7,6 +7,7 @@ export * from './screenplay';
7
7
  export * from './emotionParser';
8
8
  export * from './runOnce';
9
9
  export * from './openaiCompatibleSse';
10
+ export * from './openaiCompatibleEndpoint';
10
11
  export * from './openaiCompatibleTools';
11
12
  export * from './processChatFlow';
12
13
  export * from './visionModelResolver';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iBAAiB,CAAC"}
@@ -7,6 +7,7 @@ export * from './screenplay';
7
7
  export * from './emotionParser';
8
8
  export * from './runOnce';
9
9
  export * from './openaiCompatibleSse';
10
+ export * from './openaiCompatibleEndpoint';
10
11
  export * from './openaiCompatibleTools';
11
12
  export * from './processChatFlow';
12
13
  export * from './visionModelResolver';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,57 @@
1
+ /** A local server with an OpenAI-compatible Chat Completions endpoint. */
2
+ export type OpenAICompatibleLocalPresetId = 'ollama' | 'lmStudio' | 'llamaCpp' | 'vllm';
3
+ export interface OpenAICompatibleLocalPreset {
4
+ id: OpenAICompatibleLocalPresetId;
5
+ label: string;
6
+ baseUrl: string;
7
+ docsUrl: string;
8
+ corsHint?: string;
9
+ }
10
+ /** Default local URLs. Change the port when your server uses a custom one. */
11
+ export declare const OPENAI_COMPATIBLE_LOCAL_PRESETS: readonly OpenAICompatibleLocalPreset[];
12
+ export type OpenAICompatibleEndpointErrorCode = 'invalid-url' | 'network' | 'aborted' | 'timeout' | 'http' | 'invalid-response';
13
+ /** Error returned by endpoint resolution and model discovery. */
14
+ export declare class OpenAICompatibleEndpointError extends Error {
15
+ readonly code: OpenAICompatibleEndpointErrorCode;
16
+ readonly status?: number;
17
+ constructor(code: OpenAICompatibleEndpointErrorCode, message: string, status?: number);
18
+ }
19
+ export interface ResolvedOpenAICompatibleEndpoint {
20
+ baseUrl: string;
21
+ chatCompletionsUrl: string;
22
+ modelsUrl: string;
23
+ }
24
+ /**
25
+ * Accepts an origin, API base URL, or full Chat Completions URL.
26
+ * Query strings and fragments are rejected rather than discarded.
27
+ */
28
+ export declare function resolveOpenAICompatibleEndpoint(input: string): ResolvedOpenAICompatibleEndpoint;
29
+ export interface ListOpenAICompatibleModelsOptions {
30
+ endpoint: string;
31
+ apiKey?: string;
32
+ timeoutMs?: number;
33
+ fetch?: typeof fetch;
34
+ signal?: AbortSignal;
35
+ }
36
+ /**
37
+ * Lists model IDs from GET /models, preserving server order.
38
+ * @throws {RangeError} If timeoutMs is not a positive finite number.
39
+ */
40
+ export declare function listOpenAICompatibleModels(options: ListOpenAICompatibleModelsOptions): Promise<string[]>;
41
+ export type OpenAICompatibleConnectionResult = {
42
+ ok: true;
43
+ latencyMs: number;
44
+ models: string[];
45
+ modelFound?: boolean;
46
+ } | {
47
+ ok: false;
48
+ error: OpenAICompatibleEndpointError;
49
+ };
50
+ /**
51
+ * Tests GET /models without generating tokens.
52
+ * @throws {RangeError} If timeoutMs is not a positive finite number.
53
+ */
54
+ export declare function testOpenAICompatibleConnection(options: ListOpenAICompatibleModelsOptions & {
55
+ model?: string;
56
+ }): Promise<OpenAICompatibleConnectionResult>;
57
+ //# sourceMappingURL=openaiCompatibleEndpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openaiCompatibleEndpoint.d.ts","sourceRoot":"","sources":["../../../src/utils/openaiCompatibleEndpoint.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,MAAM,6BAA6B,GACrC,QAAQ,GACR,UAAU,GACV,UAAU,GACV,MAAM,CAAC;AAEX,MAAM,WAAW,2BAA2B;IAC1C,EAAE,EAAE,6BAA6B,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,8EAA8E;AAC9E,eAAO,MAAM,+BAA+B,EAAE,SAAS,2BAA2B,EAmC/E,CAAC;AAEJ,MAAM,MAAM,iCAAiC,GACzC,aAAa,GACb,SAAS,GACT,SAAS,GACT,SAAS,GACT,MAAM,GACN,kBAAkB,CAAC;AAEvB,iEAAiE;AACjE,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,QAAQ,CAAC,IAAI,EAAE,iCAAiC,CAAC;IACjD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;gBAGvB,IAAI,EAAE,iCAAiC,EACvC,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM;CAOlB;AAED,MAAM,WAAW,gCAAgC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,MAAM,GACZ,gCAAgC,CA4ClC;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,MAAM,EAAE,CAAC,CA2GnB;AAED,MAAM,MAAM,gCAAgC,GACxC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACvE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,6BAA6B,CAAA;CAAE,CAAC;AAExD;;;GAGG;AACH,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,iCAAiC,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9D,OAAO,CAAC,gCAAgC,CAAC,CAyB3C"}
@@ -0,0 +1,186 @@
1
+ /** Default local URLs. Change the port when your server uses a custom one. */
2
+ export const OPENAI_COMPATIBLE_LOCAL_PRESETS = [
3
+ {
4
+ id: 'ollama',
5
+ label: 'Ollama',
6
+ baseUrl: 'http://localhost:11434/v1',
7
+ docsUrl: 'https://docs.ollama.com/api/openai-compatibility',
8
+ corsHint: 'Set OLLAMA_ORIGINS to allow additional browser origins.',
9
+ },
10
+ {
11
+ id: 'lmStudio',
12
+ label: 'LM Studio',
13
+ baseUrl: 'http://localhost:1234/v1',
14
+ docsUrl: 'https://lmstudio.ai/docs/developer/openai-compat',
15
+ corsHint: 'Start the server with lms server start --cors for browser access.',
16
+ },
17
+ {
18
+ id: 'llamaCpp',
19
+ label: 'llama.cpp',
20
+ baseUrl: 'http://127.0.0.1:8080/v1',
21
+ docsUrl: 'https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md',
22
+ corsHint: 'All origins are allowed by default; use --cors-origins to restrict them.',
23
+ },
24
+ {
25
+ id: 'vllm',
26
+ label: 'vLLM',
27
+ baseUrl: 'http://localhost:8000/v1',
28
+ docsUrl: 'https://docs.vllm.ai/en/latest/serving/online_serving/openai_compatible_server/',
29
+ corsHint: 'All origins are allowed by default; use --allowed-origins to restrict them.',
30
+ },
31
+ ];
32
+ /** Error returned by endpoint resolution and model discovery. */
33
+ export class OpenAICompatibleEndpointError extends Error {
34
+ constructor(code, message, status) {
35
+ super(message);
36
+ this.name = 'OpenAICompatibleEndpointError';
37
+ this.code = code;
38
+ this.status = status;
39
+ }
40
+ }
41
+ /**
42
+ * Accepts an origin, API base URL, or full Chat Completions URL.
43
+ * Query strings and fragments are rejected rather than discarded.
44
+ */
45
+ export function resolveOpenAICompatibleEndpoint(input) {
46
+ let url;
47
+ try {
48
+ url = new URL(input.trim());
49
+ }
50
+ catch {
51
+ throw new OpenAICompatibleEndpointError('invalid-url', 'Enter a valid HTTP or HTTPS endpoint URL.');
52
+ }
53
+ if ((url.protocol !== 'http:' && url.protocol !== 'https:') ||
54
+ url.search ||
55
+ url.hash ||
56
+ url.username ||
57
+ url.password) {
58
+ throw new OpenAICompatibleEndpointError('invalid-url', 'Use an HTTP or HTTPS endpoint URL without credentials, a query, or a fragment.');
59
+ }
60
+ const path = url.pathname.replace(/\/+$/, '');
61
+ if (path.endsWith('/api/chat') || path.endsWith('/api/generate')) {
62
+ throw new OpenAICompatibleEndpointError('invalid-url', "This looks like Ollama's native API URL. Use the OpenAI-compatible base URL instead, e.g. http://localhost:11434/v1.");
63
+ }
64
+ const basePath = !path || path === '/'
65
+ ? '/v1'
66
+ : path.endsWith('/chat/completions')
67
+ ? path.slice(0, -'/chat/completions'.length)
68
+ : path;
69
+ const baseUrl = `${url.origin}${basePath}`;
70
+ return {
71
+ baseUrl,
72
+ chatCompletionsUrl: `${baseUrl}/chat/completions`,
73
+ modelsUrl: `${baseUrl}/models`,
74
+ };
75
+ }
76
+ /**
77
+ * Lists model IDs from GET /models, preserving server order.
78
+ * @throws {RangeError} If timeoutMs is not a positive finite number.
79
+ */
80
+ export async function listOpenAICompatibleModels(options) {
81
+ const { modelsUrl } = resolveOpenAICompatibleEndpoint(options.endpoint);
82
+ const timeoutMs = options.timeoutMs ?? 8000;
83
+ if (!Number.isFinite(timeoutMs) || timeoutMs <= 0) {
84
+ throw new RangeError('timeoutMs must be a positive finite number.');
85
+ }
86
+ if (options.signal?.aborted) {
87
+ throw new OpenAICompatibleEndpointError('aborted', 'The models request was aborted by the caller.');
88
+ }
89
+ const controller = new AbortController();
90
+ let abortCause;
91
+ const onAbort = () => {
92
+ if (!abortCause)
93
+ abortCause = 'caller';
94
+ controller.abort();
95
+ };
96
+ options.signal?.addEventListener('abort', onAbort, { once: true });
97
+ if (options.signal?.aborted)
98
+ onAbort();
99
+ const timeout = setTimeout(() => {
100
+ if (!abortCause)
101
+ abortCause = 'timeout';
102
+ controller.abort();
103
+ }, timeoutMs);
104
+ try {
105
+ const headers = {};
106
+ if (options.apiKey?.trim()) {
107
+ headers.Authorization = `Bearer ${options.apiKey.trim()}`;
108
+ }
109
+ const response = await (options.fetch ?? fetch)(modelsUrl, {
110
+ method: 'GET',
111
+ headers,
112
+ signal: controller.signal,
113
+ });
114
+ if (abortCause) {
115
+ throw new OpenAICompatibleEndpointError('aborted', 'The models request was aborted by the caller.');
116
+ }
117
+ if (!response.ok) {
118
+ throw new OpenAICompatibleEndpointError('http', `Model listing failed with HTTP ${response.status}.`, response.status);
119
+ }
120
+ let body;
121
+ try {
122
+ body = await response.json();
123
+ }
124
+ catch {
125
+ throw new OpenAICompatibleEndpointError('invalid-response', 'The models endpoint did not return valid JSON.');
126
+ }
127
+ if (!body ||
128
+ typeof body !== 'object' ||
129
+ !('data' in body) ||
130
+ !Array.isArray(body.data) ||
131
+ !body.data.every((model) => model &&
132
+ typeof model === 'object' &&
133
+ 'id' in model &&
134
+ typeof model.id === 'string')) {
135
+ throw new OpenAICompatibleEndpointError('invalid-response', 'The models response must contain data with model IDs.');
136
+ }
137
+ if (abortCause) {
138
+ throw new OpenAICompatibleEndpointError('aborted', 'The models request was aborted by the caller.');
139
+ }
140
+ return [...new Set(body.data.map((model) => model.id))];
141
+ }
142
+ catch (error) {
143
+ if (abortCause === 'caller') {
144
+ throw new OpenAICompatibleEndpointError('aborted', 'The models request was aborted by the caller.');
145
+ }
146
+ if (abortCause === 'timeout') {
147
+ throw new OpenAICompatibleEndpointError('timeout', `The models request timed out after ${timeoutMs} ms.`);
148
+ }
149
+ if (error instanceof OpenAICompatibleEndpointError)
150
+ throw error;
151
+ throw new OpenAICompatibleEndpointError('network', 'Could not reach the models endpoint. In a browser, this is usually a CORS restriction or the server is not running.');
152
+ }
153
+ finally {
154
+ clearTimeout(timeout);
155
+ options.signal?.removeEventListener('abort', onAbort);
156
+ }
157
+ }
158
+ /**
159
+ * Tests GET /models without generating tokens.
160
+ * @throws {RangeError} If timeoutMs is not a positive finite number.
161
+ */
162
+ export async function testOpenAICompatibleConnection(options) {
163
+ const startedAt = Date.now();
164
+ try {
165
+ const models = await listOpenAICompatibleModels(options);
166
+ return {
167
+ ok: true,
168
+ latencyMs: Date.now() - startedAt,
169
+ models,
170
+ ...(options.model !== undefined
171
+ ? { modelFound: models.includes(options.model) }
172
+ : {}),
173
+ };
174
+ }
175
+ catch (error) {
176
+ if (error instanceof RangeError)
177
+ throw error;
178
+ return {
179
+ ok: false,
180
+ error: error instanceof OpenAICompatibleEndpointError
181
+ ? error
182
+ : new OpenAICompatibleEndpointError('network', 'Could not reach the models endpoint. In a browser, this is usually a CORS restriction or the server is not running.'),
183
+ };
184
+ }
185
+ }
186
+ //# sourceMappingURL=openaiCompatibleEndpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openaiCompatibleEndpoint.js","sourceRoot":"","sources":["../../../src/utils/openaiCompatibleEndpoint.ts"],"names":[],"mappings":"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"}