@aituber-onair/chat 0.2.1 → 0.3.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 (53) hide show
  1. package/README.ja.md +21 -2
  2. package/README.md +22 -3
  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/openrouter.d.ts +21 -0
  8. package/dist/cjs/constants/openrouter.d.ts.map +1 -0
  9. package/dist/cjs/constants/openrouter.js +34 -0
  10. package/dist/cjs/constants/openrouter.js.map +1 -0
  11. package/dist/cjs/index.d.ts +2 -0
  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/ChatServiceFactory.d.ts.map +1 -1
  16. package/dist/cjs/services/ChatServiceFactory.js +3 -0
  17. package/dist/cjs/services/ChatServiceFactory.js.map +1 -1
  18. package/dist/cjs/services/providers/ChatServiceProvider.d.ts +5 -1
  19. package/dist/cjs/services/providers/ChatServiceProvider.d.ts.map +1 -1
  20. package/dist/cjs/services/providers/openrouter/OpenRouterChatService.d.ts +108 -0
  21. package/dist/cjs/services/providers/openrouter/OpenRouterChatService.d.ts.map +1 -0
  22. package/dist/cjs/services/providers/openrouter/OpenRouterChatService.js +397 -0
  23. package/dist/cjs/services/providers/openrouter/OpenRouterChatService.js.map +1 -0
  24. package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts +53 -0
  25. package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts.map +1 -0
  26. package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js +89 -0
  27. package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -0
  28. package/dist/esm/constants/index.d.ts +1 -0
  29. package/dist/esm/constants/index.d.ts.map +1 -1
  30. package/dist/esm/constants/index.js +1 -0
  31. package/dist/esm/constants/index.js.map +1 -1
  32. package/dist/esm/constants/openrouter.d.ts +21 -0
  33. package/dist/esm/constants/openrouter.d.ts.map +1 -0
  34. package/dist/esm/constants/openrouter.js +29 -0
  35. package/dist/esm/constants/openrouter.js.map +1 -0
  36. package/dist/esm/index.d.ts +2 -0
  37. package/dist/esm/index.d.ts.map +1 -1
  38. package/dist/esm/index.js +3 -0
  39. package/dist/esm/index.js.map +1 -1
  40. package/dist/esm/services/ChatServiceFactory.d.ts.map +1 -1
  41. package/dist/esm/services/ChatServiceFactory.js +3 -0
  42. package/dist/esm/services/ChatServiceFactory.js.map +1 -1
  43. package/dist/esm/services/providers/ChatServiceProvider.d.ts +5 -1
  44. package/dist/esm/services/providers/ChatServiceProvider.d.ts.map +1 -1
  45. package/dist/esm/services/providers/openrouter/OpenRouterChatService.d.ts +108 -0
  46. package/dist/esm/services/providers/openrouter/OpenRouterChatService.d.ts.map +1 -0
  47. package/dist/esm/services/providers/openrouter/OpenRouterChatService.js +393 -0
  48. package/dist/esm/services/providers/openrouter/OpenRouterChatService.js.map +1 -0
  49. package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts +53 -0
  50. package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts.map +1 -0
  51. package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js +85 -0
  52. package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -0
  53. package/package.json +1 -1
@@ -0,0 +1,53 @@
1
+ import { ChatService } from '../../ChatService';
2
+ import { ChatServiceOptions, ChatServiceProvider } from '../ChatServiceProvider';
3
+ /**
4
+ * OpenRouter API provider implementation
5
+ * Provides access to multiple AI models through OpenRouter's unified API
6
+ */
7
+ export declare class OpenRouterChatServiceProvider implements ChatServiceProvider {
8
+ /**
9
+ * Create a chat service instance
10
+ * @param options Service options
11
+ * @returns OpenRouterChatService instance
12
+ */
13
+ createChatService(options: ChatServiceOptions): ChatService;
14
+ /**
15
+ * Get the provider name
16
+ * @returns Provider name ('openrouter')
17
+ */
18
+ getProviderName(): string;
19
+ /**
20
+ * Get the list of supported models
21
+ * Currently only supports gpt-oss-20b:free
22
+ * @returns Array of supported model names
23
+ */
24
+ getSupportedModels(): string[];
25
+ /**
26
+ * Get the default model
27
+ * @returns Default model name (gpt-oss-20b:free)
28
+ */
29
+ getDefaultModel(): string;
30
+ /**
31
+ * Check if this provider supports vision (image processing)
32
+ * @returns Vision support status (false - gpt-oss-20b does not support vision)
33
+ */
34
+ supportsVision(): boolean;
35
+ /**
36
+ * Check if a specific model supports vision capabilities
37
+ * @param model The model name to check
38
+ * @returns True if the model supports vision, false otherwise
39
+ */
40
+ supportsVisionForModel(model: string): boolean;
41
+ /**
42
+ * Get list of free tier models
43
+ * @returns Array of free model names
44
+ */
45
+ getFreeModels(): string[];
46
+ /**
47
+ * Check if a model is free tier
48
+ * @param model Model name to check
49
+ * @returns True if the model is free
50
+ */
51
+ isModelFree(model: string): boolean;
52
+ }
53
+ //# sourceMappingURL=OpenRouterChatServiceProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenRouterChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAGhC;;;GAGG;AACH,qBAAa,6BAA8B,YAAW,mBAAmB;IACvE;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW;IAsC3D;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;;OAIG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAO9B;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,cAAc,IAAI,OAAO;IAIzB;;;;OAIG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI9C;;;OAGG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGpC"}
@@ -0,0 +1,85 @@
1
+ import { MODEL_GPT_OSS_20B_FREE, OPENROUTER_FREE_MODELS, isOpenRouterVisionModel, } from '../../../constants/openrouter';
2
+ import { OpenRouterChatService } from './OpenRouterChatService';
3
+ /**
4
+ * OpenRouter API provider implementation
5
+ * Provides access to multiple AI models through OpenRouter's unified API
6
+ */
7
+ export class OpenRouterChatServiceProvider {
8
+ /**
9
+ * Create a chat service instance
10
+ * @param options Service options
11
+ * @returns OpenRouterChatService instance
12
+ */
13
+ createChatService(options) {
14
+ // For OpenRouter, use the main model as vision model placeholder
15
+ // Only validate if visionModel is explicitly provided
16
+ const visionModel = options.visionModel || options.model || this.getDefaultModel();
17
+ // If visionModel is explicitly provided and different from main model, validate it
18
+ if (options.visionModel &&
19
+ !this.supportsVisionForModel(options.visionModel)) {
20
+ throw new Error(`Model ${options.visionModel} does not support vision capabilities.`);
21
+ }
22
+ // Tools definition
23
+ const tools = options.tools;
24
+ // Extract OpenRouter-specific options
25
+ const appName = options.appName;
26
+ const appUrl = options.appUrl;
27
+ return new OpenRouterChatService(options.apiKey, options.model || this.getDefaultModel(), visionModel, tools, options.endpoint, options.responseLength, appName, appUrl, options.reasoning_effort, options.includeReasoning, options.reasoningMaxTokens);
28
+ }
29
+ /**
30
+ * Get the provider name
31
+ * @returns Provider name ('openrouter')
32
+ */
33
+ getProviderName() {
34
+ return 'openrouter';
35
+ }
36
+ /**
37
+ * Get the list of supported models
38
+ * Currently only supports gpt-oss-20b:free
39
+ * @returns Array of supported model names
40
+ */
41
+ getSupportedModels() {
42
+ return [
43
+ // Free models
44
+ MODEL_GPT_OSS_20B_FREE,
45
+ ];
46
+ }
47
+ /**
48
+ * Get the default model
49
+ * @returns Default model name (gpt-oss-20b:free)
50
+ */
51
+ getDefaultModel() {
52
+ return MODEL_GPT_OSS_20B_FREE;
53
+ }
54
+ /**
55
+ * Check if this provider supports vision (image processing)
56
+ * @returns Vision support status (false - gpt-oss-20b does not support vision)
57
+ */
58
+ supportsVision() {
59
+ return false;
60
+ }
61
+ /**
62
+ * Check if a specific model supports vision capabilities
63
+ * @param model The model name to check
64
+ * @returns True if the model supports vision, false otherwise
65
+ */
66
+ supportsVisionForModel(model) {
67
+ return isOpenRouterVisionModel(model);
68
+ }
69
+ /**
70
+ * Get list of free tier models
71
+ * @returns Array of free model names
72
+ */
73
+ getFreeModels() {
74
+ return OPENROUTER_FREE_MODELS;
75
+ }
76
+ /**
77
+ * Check if a model is free tier
78
+ * @param model Model name to check
79
+ * @returns True if the model is free
80
+ */
81
+ isModelFree(model) {
82
+ return OPENROUTER_FREE_MODELS.includes(model) || model.endsWith(':free');
83
+ }
84
+ }
85
+ //# sourceMappingURL=OpenRouterChatServiceProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenRouterChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAOhE;;;GAGG;AACH,MAAM,OAAO,6BAA6B;IACxC;;;;OAIG;IACH,iBAAiB,CAAC,OAA2B;QAC3C,iEAAiE;QACjE,sDAAsD;QACtD,MAAM,WAAW,GACf,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QAEjE,mFAAmF;QACnF,IACE,OAAO,CAAC,WAAW;YACnB,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,WAAW,CAAC,EACjD,CAAC;YACD,MAAM,IAAI,KAAK,CACb,SAAS,OAAO,CAAC,WAAW,wCAAwC,CACrE,CAAC;QACJ,CAAC;QAED,mBAAmB;QACnB,MAAM,KAAK,GAAiC,OAAO,CAAC,KAAK,CAAC;QAE1D,sCAAsC;QACtC,MAAM,OAAO,GAAI,OAAe,CAAC,OAAO,CAAC;QACzC,MAAM,MAAM,GAAI,OAAe,CAAC,MAAM,CAAC;QAEvC,OAAO,IAAI,qBAAqB,CAC9B,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,EACvC,WAAW,EACX,KAAK,EACL,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,cAAc,EACtB,OAAO,EACP,MAAM,EACN,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,gBAAgB,EACvB,OAAe,CAAC,kBAAkB,CACpC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,kBAAkB;QAChB,OAAO;YACL,cAAc;YACd,sBAAsB;SACvB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,sBAAsB,CAAC,KAAa;QAClC,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,KAAa;QACvB,OAAO,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3E,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aituber-onair/chat",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "description": "Chat and LLM API integration library for AITuber OnAir",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",